ProcessorNode makeProcessorNode(Processor<?> processor, Fields outputFields, boolean preservesKey) { return new ProcessorNode(processor, UniqueIdGen.getInstance().getUniqueStreamId(), outputFields, preservesKey); }
private void setUpWindowedProcessorBolt(Processor<?> processor, Window<?, ?> window) { ProcessorNode node = new ProcessorNode(processor, "outputstream", new Fields("value")); node.setWindowed(true); Mockito.when(mockStreamToProcessors.get(Mockito.anyString())).thenReturn(Collections.singletonList(node)); Mockito.when(mockStreamToProcessors.keySet()).thenReturn(Collections.singleton("inputstream")); graph = new DefaultDirectedGraph<>(new StreamsEdgeFactory()); graph.addVertex(node); bolt = new WindowedProcessorBolt("bolt1", graph, Collections.singletonList(node), window); bolt.setStreamToInitialProcessors(mockStreamToProcessors); bolt.prepare(new HashMap<>(), mockTopologyContext, mockOutputCollector); }
private void setUpProcessorBolt(Processor<?> processor, Set<String> windowedParentStreams, boolean isWindowed, String tsFieldName) { ProcessorNode node = new ProcessorNode(processor, "outputstream", new Fields("value")); node.setWindowedParentStreams(windowedParentStreams); node.setWindowed(isWindowed); Mockito.when(mockStreamToProcessors.get(Mockito.anyString())).thenReturn(Collections.singletonList(node)); Mockito.when(mockStreamToProcessors.keySet()).thenReturn(Collections.singleton("inputstream")); Map<GlobalStreamId, Grouping> mockSources = Mockito.mock(Map.class); GlobalStreamId mockGlobalStreamId = Mockito.mock(GlobalStreamId.class); Mockito.when(mockTopologyContext.getThisSources()).thenReturn(mockSources); Mockito.when(mockSources.keySet()).thenReturn(Collections.singleton(mockGlobalStreamId)); Mockito.when(mockGlobalStreamId.get_streamId()).thenReturn("inputstream"); Mockito.when(mockGlobalStreamId.get_componentId()).thenReturn("bolt0"); Mockito.when(mockTopologyContext.getComponentTasks(Mockito.anyString())).thenReturn(Collections.singletonList(1)); graph.addVertex(node); bolt = new ProcessorBolt("bolt1", graph, Collections.singletonList(node)); if (tsFieldName != null && !tsFieldName.isEmpty()) { bolt.setTimestampField(tsFieldName); } bolt.setStreamToInitialProcessors(mockStreamToProcessors); bolt.prepare(new HashMap<>(), mockTopologyContext, mockOutputCollector); }
private void setUpStatefulProcessorBolt(Processor<?> processor) { ProcessorNode node = new ProcessorNode(processor, "outputstream", new Fields("value")); node.setEmitsPair(true); Mockito.when(mockStreamToProcessors.get(Mockito.anyString())).thenReturn(Collections.singletonList(node)); graph = new DefaultDirectedGraph(new StreamsEdgeFactory()); graph.addVertex(node); bolt = new StatefulProcessorBolt<>("bolt1", graph, Collections.singletonList(node)); bolt.setStreamToInitialProcessors(mockStreamToProcessors); bolt.prepare(new HashMap<>(), mockTopologyContext, mockOutputCollector); bolt.initState(mockKeyValueState); }
private void splitStatefulProcessor(ProcessorNode processorNode, TopologyBuilder topologyBuilder) { for (Node parent : StreamUtil.<Node>getParents(graph, processorNode)) { ProcessorNode identity = new ProcessorNode(new MapProcessor<>(new IdentityFunction<>()), UniqueIdGen.getInstance().getUniqueStreamId(), parent.getOutputFields()); addNode(parent, identity); graph.removeEdge(parent, processorNode); processorNode.removeParentStreams(parent); addNode(identity, processorNode); curGroup.add(identity); } processCurGroup(topologyBuilder); }