Search in sources :

Example 16 with ProcessorTopology

use of org.apache.kafka.streams.processor.internals.ProcessorTopology in project apache-kafka-on-k8s by banzaicloud.

the class InternalStreamsBuilderTest method shouldBuildSimpleGlobalTableTopology.

@Test
public void shouldBuildSimpleGlobalTableTopology() throws Exception {
    builder.globalTable("table", consumed, new MaterializedInternal<>(Materialized.<String, String, KeyValueStore<Bytes, byte[]>>as("globalTable"), builder, storePrefix));
    final ProcessorTopology topology = builder.internalTopologyBuilder.buildGlobalStateTopology();
    final List<StateStore> stateStores = topology.globalStateStores();
    assertEquals(1, stateStores.size());
    assertEquals("globalTable", stateStores.get(0).name());
}
Also used : ProcessorTopology(org.apache.kafka.streams.processor.internals.ProcessorTopology) StateStore(org.apache.kafka.streams.processor.StateStore) KeyValueStore(org.apache.kafka.streams.state.KeyValueStore) Test(org.junit.Test)

Example 17 with ProcessorTopology

use of org.apache.kafka.streams.processor.internals.ProcessorTopology in project apache-kafka-on-k8s by banzaicloud.

the class KStreamBuilderTest method shouldAddTimestampExtractorToTableWithKeyValSerdePerSource.

@Test
public void shouldAddTimestampExtractorToTableWithKeyValSerdePerSource() {
    builder.table(null, new MockTimestampExtractor(), null, null, "topic", "store");
    final ProcessorTopology processorTopology = builder.build(null);
    assertThat(processorTopology.source("topic").getTimestampExtractor(), instanceOf(MockTimestampExtractor.class));
}
Also used : ProcessorTopology(org.apache.kafka.streams.processor.internals.ProcessorTopology) MockTimestampExtractor(org.apache.kafka.test.MockTimestampExtractor) Test(org.junit.Test)

Example 18 with ProcessorTopology

use of org.apache.kafka.streams.processor.internals.ProcessorTopology in project apache-kafka-on-k8s by banzaicloud.

the class KStreamBuilderTest method kStreamTimestampExtractorShouldBeNull.

@Test
public void kStreamTimestampExtractorShouldBeNull() {
    builder.stream("topic");
    final ProcessorTopology processorTopology = builder.build(null);
    assertNull(processorTopology.source("topic").getTimestampExtractor());
}
Also used : ProcessorTopology(org.apache.kafka.streams.processor.internals.ProcessorTopology) Test(org.junit.Test)

Example 19 with ProcessorTopology

use of org.apache.kafka.streams.processor.internals.ProcessorTopology in project apache-kafka-on-k8s by banzaicloud.

the class KStreamBuilderTest method shouldStillMaterializeSourceKTableIfStateNameNotSpecified.

@Test
public void shouldStillMaterializeSourceKTableIfStateNameNotSpecified() {
    KTable table1 = builder.table("topic1", "table1");
    KTable table2 = builder.table("topic2", (String) null);
    final ProcessorTopology topology = builder.build(null);
    assertEquals(2, topology.stateStores().size());
    assertEquals("table1", topology.stateStores().get(0).name());
    final String internalStoreName = topology.stateStores().get(1).name();
    assertTrue(internalStoreName.contains(KTableImpl.STATE_STORE_NAME));
    assertEquals(2, topology.storeToChangelogTopic().size());
    assertEquals("topic1", topology.storeToChangelogTopic().get("table1"));
    assertEquals("topic2", topology.storeToChangelogTopic().get(internalStoreName));
    assertEquals(table1.queryableStoreName(), "table1");
    assertNull(table2.queryableStoreName());
}
Also used : ProcessorTopology(org.apache.kafka.streams.processor.internals.ProcessorTopology) Test(org.junit.Test)

Example 20 with ProcessorTopology

use of org.apache.kafka.streams.processor.internals.ProcessorTopology in project apache-kafka-on-k8s by banzaicloud.

the class KStreamBuilderTest method shouldAddTimestampExtractorToStreamWithKeyValSerdePerSource.

@Test
public void shouldAddTimestampExtractorToStreamWithKeyValSerdePerSource() {
    builder.stream(new MockTimestampExtractor(), null, null, "topic");
    final ProcessorTopology processorTopology = builder.build(null);
    for (final SourceNode sourceNode : processorTopology.sources()) {
        assertThat(sourceNode.getTimestampExtractor(), instanceOf(MockTimestampExtractor.class));
    }
}
Also used : ProcessorTopology(org.apache.kafka.streams.processor.internals.ProcessorTopology) SourceNode(org.apache.kafka.streams.processor.internals.SourceNode) MockTimestampExtractor(org.apache.kafka.test.MockTimestampExtractor) Test(org.junit.Test)

Aggregations

ProcessorTopology (org.apache.kafka.streams.processor.internals.ProcessorTopology)95 Test (org.junit.Test)89 Bytes (org.apache.kafka.common.utils.Bytes)17 MockTimestampExtractor (org.apache.kafka.test.MockTimestampExtractor)14 StateStore (org.apache.kafka.streams.processor.StateStore)13 StreamsConfig (org.apache.kafka.streams.StreamsConfig)10 KeyValueStore (org.apache.kafka.streams.state.KeyValueStore)8 FailOnInvalidTimestamp (org.apache.kafka.streams.processor.FailOnInvalidTimestamp)6 Pattern (java.util.regex.Pattern)5 StreamsBuilder (org.apache.kafka.streams.StreamsBuilder)5 HashSet (java.util.HashSet)4 Properties (java.util.Properties)4 Set (java.util.Set)4 CoreMatchers.containsString (org.hamcrest.CoreMatchers.containsString)4 List (java.util.List)3 KTable (org.apache.kafka.streams.kstream.KTable)3 InternalTopologyBuilder (org.apache.kafka.streams.processor.internals.InternalTopologyBuilder)3 SourceNode (org.apache.kafka.streams.processor.internals.SourceNode)3 Arrays.asList (java.util.Arrays.asList)2 Collections (java.util.Collections)2