/** * the only output field is for StreamEvent. * * @param declarer */ @Override public void declareOutputFields(OutputFieldsDeclarer declarer) { for (int i = 0; i < numOfRouterBolts; i++) { String streamId = StreamIdConversion.generateStreamIdBetween(spoutName, routeBoltName + i); declarer.declareStream(streamId, new Fields(AlertConstants.FIELD_0)); LOG.info("declare stream between spout and streamRouterBolt " + streamId); } }
public MockStreamReceiver(int partition) { outputStreamIds = new ArrayList<>(partition); for (int i = 0; i < partition; i++) { outputStreamIds.add(StreamIdConversion.generateStreamIdByPartition(i)); } }
@Test public void testGenerateStreamIdBetween() { String result = StreamIdConversion.generateStreamIdBetween("source1", "target1"); Assert.assertEquals("stream_source1_to_target1", result); result = StreamIdConversion.generateStreamIdBetween("", "target1"); Assert.assertEquals("stream__to_target1", result); result = StreamIdConversion.generateStreamIdBetween("source1", null); Assert.assertEquals("stream_source1_to_null", result); }
@Test public void testGenerateStreamIdByPartition() { String result = StreamIdConversion.generateStreamIdByPartition(1); Assert.assertEquals("stream_1", result); result = StreamIdConversion.generateStreamIdByPartition(-1); Assert.assertEquals("stream_-1", result); result = StreamIdConversion.generateStreamIdByPartition(0); Assert.assertEquals("stream_0", result); }
String sid = StreamIdConversion.generateStreamIdBetween(spout.getSpoutName(), spout.getRouteBoltName() + (hash % numOfRouterBolts)); if (LOG.isDebugEnabled()) { LOG.debug("Emitted tuple: {} with message Id: {}, with topic {}, to streamId {}", convertedTuple, messageId, topic, sid);
String targetStreamId = StreamIdConversion.generateStreamIdBetween(sourceId, streamRoute.getTargetComponentId()); try { PartitionedEvent emittedEvent = new PartitionedEvent(newEvent, partition, streamRoute.getPartitionKey());
String streamId = StreamIdConversion.generateStreamIdBetween(spoutName, boltName); List<String> outputStreamIds = new ArrayList<>(numOfAlertBolts); for (int j = 0; j < numOfAlertBolts; j++) { String sid = StreamIdConversion.generateStreamIdBetween(boltName, alertBoltNamePrefix + j); outputStreamIds.add(sid); BoltDeclarer boltDeclarer = builder.setBolt(boltName, alertBolts[i]).setNumTasks(1); for (int j = 0; j < numOfRouterBolts; j++) { String streamId = StreamIdConversion.generateStreamIdBetween(streamRouterBoltNamePrefix + j, boltName); boltDeclarer.fieldsGrouping(streamRouterBoltNamePrefix + j, streamId, new Fields());
BoltDeclarer boltDecl = topoBuilder.setBolt("engineBolt" + i, bolt); boltDecl.fieldsGrouping(spoutId, StreamIdConversion.generateStreamIdBetween(AlertConstants.DEFAULT_SPOUT_NAME, AlertConstants.DEFAULT_ROUTERBOLT_NAME + i), new Fields());
String.format(StreamIdConversion.generateStreamIdBetween(routerBolt.getBoltId(), "alertBolt1")))); Assert.assertTrue("Should collect stream stream_routerBolt_to_alertBolt2", streamCollected.keySet().contains( String.format(StreamIdConversion.generateStreamIdBetween(routerBolt.getBoltId(), "alertBolt2"))));