private void addGroupingStrategy(Map<String, List<StreamRepartitionMetadata>> streamsMap, String stream, StreamDefinition schema, String topicName, String datasourceName, StreamRepartitionStrategy gs) { List<StreamRepartitionMetadata> dsStreamMeta; if (streamsMap.containsKey(topicName)) { dsStreamMeta = streamsMap.get(topicName); } else { dsStreamMeta = new ArrayList<StreamRepartitionMetadata>(); streamsMap.put(topicName, dsStreamMeta); } StreamRepartitionMetadata targetSm = null; for (StreamRepartitionMetadata sm : dsStreamMeta) { if (stream.equalsIgnoreCase(sm.getStreamId())) { targetSm = sm; break; } } if (targetSm == null) { targetSm = new StreamRepartitionMetadata(topicName, schema.getStreamId()); dsStreamMeta.add(targetSm); } if (!targetSm.groupingStrategies.contains(gs)) { targetSm.addGroupStrategy(gs); } }
Assert.assertEquals(STREAM1, streamMeta.getStreamId()); Assert.assertEquals(TEST_TOPIC, streamMeta.getTopicName()); Assert.assertEquals(1, streamMeta.groupingStrategies.size()); Assert.assertEquals(STREAM2, streamMeta.getStreamId()); Assert.assertEquals(TEST_TOPIC, streamMeta.getTopicName()); Assert.assertEquals(1, streamMeta.groupingStrategies.size());
@JsonIgnore public StreamRepartitionMetadata getStream(String streamName) { for (List<StreamRepartitionMetadata> meta : this.streamRepartitionMetadataMap.values()) { Optional<StreamRepartitionMetadata> m = meta.stream().filter((t) -> t.getStreamId().equalsIgnoreCase(streamName)).findFirst(); if (m.isPresent()) { return m.get(); } } return null; }
for (String topic : plainStringTopics) { String streamId = getStreamNameByTopic(topic); StreamRepartitionMetadata streamRepartitionMetadata = new StreamRepartitionMetadata(topic, "defaultStringStream"); StreamRepartitionStrategy gs = new StreamRepartitionStrategy(); gs.numTotalParticipatingRouterBolts = 1; gs.startSequence = 0; streamRepartitionMetadata.addGroupStrategy(gs); streamRepartitionMetadataMap.put(topic, Arrays.asList(streamRepartitionMetadata)); StreamRepartitionMetadata streamRepartitionMetadata = new StreamRepartitionMetadata(topic, "defaultStringStream"); StreamRepartitionStrategy gs = new StreamRepartitionStrategy(); gs.numTotalParticipatingRouterBolts = 1; gs.startSequence = 0; streamRepartitionMetadata.addGroupStrategy(gs); streamRepartitionMetadataMap.put(topic, Arrays.asList(streamRepartitionMetadata));
StreamRepartitionMetadata m1 = new StreamRepartitionMetadata(dataSourceName, "s1"); StreamRepartitionMetadata m2 = new StreamRepartitionMetadata(dataSourceName, "s2"); Map<String, List<StreamRepartitionMetadata>> dataSources = new HashMap<String, List<StreamRepartitionMetadata>>(); dataSources.put(dataSourceName, Arrays.asList(m1, m2));
@Override protected KafkaSpoutWrapper createKafkaSpout(Config config, Map conf, TopologyContext context, SpoutOutputCollector collector, String topic, String topic2SchemeClsName, SpoutSpec streamMetadatas, Map<String, StreamDefinition> sds) { Assert.assertEquals(1, streamMetadatas.getStreamRepartitionMetadataMap().size()); Assert.assertTrue(streamMetadatas.getStream("s1") != null); Assert.assertTrue(streamMetadatas.getStream("s2") != null); Assert.assertEquals(topicName, streamMetadatas.getStream("s1").getTopicName()); Assert.assertEquals(topicName, streamMetadatas.getStream("s2").getTopicName()); LOG.info("successfully verified new topic and streams"); verified.set(true); return null; } };
Assert.assertEquals(STREAM1, streamMeta.getStreamId()); Assert.assertEquals(TEST_TOPIC, streamMeta.getTopicName()); Assert.assertEquals(1, streamMeta.groupingStrategies.size());
if (!event.getStreamId().equals(md.getStreamId())) { continue;
StreamRepartitionMetadata m1 = new StreamRepartitionMetadata(dataSourceName, "s1");
Assert.assertEquals(STREAM1, streamMeta.getStreamId()); Assert.assertEquals(TEST_TOPIC, streamMeta.getTopicName()); Assert.assertEquals(1, streamMeta.groupingStrategies.size());
dsMap.put(ds.getName(), ds); StreamRepartitionMetadata m1 = new StreamRepartitionMetadata(ds.getName(), "s1");