use of com.hortonworks.streamline.streams.layout.component.Edge in project streamline by hortonworks.
the class TestTopologyDagCreatingVisitorTest method visitProcessor_connectedFromSource.
@Test
public void visitProcessor_connectedFromSource() throws Exception {
StreamlineSource originSource = TopologyTestHelper.createStreamlineSource("1");
StreamlineProcessor originProcessor = TopologyTestHelper.createStreamlineProcessor("2");
TopologyDag originTopologyDag = new TopologyDag();
originTopologyDag.add(originSource);
originTopologyDag.add(originProcessor);
originTopologyDag.addEdge(new Edge("e1", originSource, originProcessor, "default", Stream.Grouping.SHUFFLE));
TestRunSource testSource = createTestRunSource(originSource);
TestRunProcessor testProcessor = createTestRunProcessor(originProcessor);
TestTopologyDagCreatingVisitor visitor = new TestTopologyDagCreatingVisitor(originTopologyDag, Collections.singletonMap(originSource.getName(), testSource), Collections.singletonMap(originProcessor.getName(), testProcessor), Collections.emptyMap(), Collections.emptyMap());
visitor.visit(originSource);
visitor.visit(originProcessor);
TopologyDag testTopologyDag = visitor.getTestTopologyDag();
List<OutputComponent> testProcessors = testTopologyDag.getOutputComponents().stream().filter(o -> (o instanceof TestRunProcessor && o.getName().equals(originProcessor.getName()))).collect(toList());
List<OutputComponent> testSources = testTopologyDag.getOutputComponents().stream().filter(o -> (o instanceof TestRunSource && o.getName().equals(originSource.getName()))).collect(toList());
TestRunProcessor testRunProcessor = (TestRunProcessor) testProcessors.get(0);
TestRunSource testRunSource = (TestRunSource) testSources.get(0);
assertEquals(1, testTopologyDag.getEdgesFrom(testRunSource).size());
assertEquals(1, testTopologyDag.getEdgesTo(testRunProcessor).size());
assertTrue(testTopologyDag.getEdgesFrom(testRunSource).get(0) == testTopologyDag.getEdgesTo(testRunProcessor).get(0));
}
use of com.hortonworks.streamline.streams.layout.component.Edge in project streamline by hortonworks.
the class TopologyComponentFactory method getStreamlineEdge.
public Edge getStreamlineEdge(TopologyEdge topologyEdge) {
Edge edge = new Edge();
edge.setId(topologyEdge.getId().toString());
edge.setFrom(getOutputComponent(topologyEdge));
edge.setTo(getInputComponent(topologyEdge));
Set<StreamGrouping> streamGroupings = new HashSet<>();
for (TopologyEdge.StreamGrouping streamGrouping : topologyEdge.getStreamGroupings()) {
Stream stream = getStream(catalogService.getStreamInfo(topologyEdge.getTopologyId(), streamGrouping.getStreamId(), topologyEdge.getVersionId()));
Stream.Grouping grouping = Stream.Grouping.valueOf(streamGrouping.getGrouping().name());
streamGroupings.add(new StreamGrouping(stream, grouping, streamGrouping.getFields()));
}
edge.addStreamGroupings(streamGroupings);
return edge;
}
use of com.hortonworks.streamline.streams.layout.component.Edge in project streamline by hortonworks.
the class TestTopologyDagCreatingVisitor method copyEdges.
private void copyEdges(InputComponent inputComponent) {
List<Edge> edgesTo = originTopologyDag.getEdgesTo(inputComponent);
edgesTo.forEach(e -> {
OutputComponent from = e.getFrom();
InputComponent to = e.getTo();
Edge newEdge = new Edge(e.getId(), e.getFrom(), e.getTo(), e.getStreamGroupings());
StreamlineSource replacedSource = sourceToReplacedTestSourceMap.get(from.getName());
StreamlineProcessor replacedProcessorSource = processorToReplacedTestProcessorMap.get(from.getName());
StreamlineSink replacedSink = sinkToReplacedTestSinkMap.get(to.getName());
StreamlineProcessor replacedProcessorSink = processorToReplacedTestProcessorMap.get(to.getName());
if (replacedSource != null) {
newEdge.setFrom(replacedSource);
} else if (replacedProcessorSource != null) {
newEdge.setFrom(replacedProcessorSource);
}
if (replacedSink != null) {
newEdge.setTo(replacedSink);
} else if (replacedProcessorSink != null) {
newEdge.setTo(replacedProcessorSink);
}
testTopologyDag.addEdge(newEdge);
});
}
use of com.hortonworks.streamline.streams.layout.component.Edge in project streamline by hortonworks.
the class TopologyTestRunnerTest method injectTestTopology.
private void injectTestTopology(Topology topology) {
StreamlineSource originSource = TopologyTestHelper.createStreamlineSource("1");
StreamlineProcessor originProcessor = TopologyTestHelper.createStreamlineProcessor("2");
StreamlineSink originSink = TopologyTestHelper.createStreamlineSink("3");
TopologyDag topologyDag = new TopologyDag();
topologyDag.add(originSource);
topologyDag.add(originProcessor);
topologyDag.add(originSink);
topologyDag.addEdge(new Edge("e1", originSource, originProcessor, "default", Stream.Grouping.SHUFFLE));
topologyDag.addEdge(new Edge("e2", originProcessor, originSink, "default", Stream.Grouping.SHUFFLE));
topology.setTopologyDag(topologyDag);
}
use of com.hortonworks.streamline.streams.layout.component.Edge in project streamline by hortonworks.
the class TestTopologyDagCreatingVisitorTest method visitProcessor_connectedFromProcessor.
@Test
public void visitProcessor_connectedFromProcessor() throws Exception {
StreamlineProcessor originProcessor = TopologyTestHelper.createStreamlineProcessor("1");
StreamlineProcessor originProcessor2 = TopologyTestHelper.createStreamlineProcessor("2");
TopologyDag originTopologyDag = new TopologyDag();
originTopologyDag.add(originProcessor);
originTopologyDag.add(originProcessor2);
originTopologyDag.addEdge(new Edge("e1", originProcessor, originProcessor2, "default", Stream.Grouping.SHUFFLE));
TestRunProcessor testProcessor = createTestRunProcessor(originProcessor);
TestRunProcessor testProcessor2 = createTestRunProcessor(originProcessor2);
Map<String, TestRunProcessor> processorMap = new HashMap<>();
processorMap.put(originProcessor.getName(), testProcessor);
processorMap.put(originProcessor2.getName(), testProcessor2);
TestTopologyDagCreatingVisitor visitor = new TestTopologyDagCreatingVisitor(originTopologyDag, Collections.emptyMap(), processorMap, Collections.emptyMap(), Collections.emptyMap());
visitor.visit(originProcessor);
visitor.visit(originProcessor2);
TopologyDag testTopologyDag = visitor.getTestTopologyDag();
List<OutputComponent> testProcessors = testTopologyDag.getOutputComponents().stream().filter(o -> (o instanceof TestRunProcessor)).collect(toList());
Optional<OutputComponent> testRunProcessorOptional = testProcessors.stream().filter(o -> o.getName().equals(originProcessor.getName())).findAny();
Optional<OutputComponent> testRunProcessor2Optional = testProcessors.stream().filter(o -> o.getName().equals(originProcessor2.getName())).findAny();
assertTrue(testRunProcessorOptional.isPresent());
assertTrue(testRunProcessor2Optional.isPresent());
TestRunProcessor testRunProcessor = (TestRunProcessor) testRunProcessorOptional.get();
TestRunProcessor testRunProcessor2 = (TestRunProcessor) testRunProcessor2Optional.get();
assertEquals(1, testTopologyDag.getEdgesFrom(testRunProcessor).size());
assertEquals(1, testTopologyDag.getEdgesTo(testRunProcessor2).size());
assertTrue(testTopologyDag.getEdgesFrom(testRunProcessor).get(0) == testTopologyDag.getEdgesTo(testRunProcessor2).get(0));
}
Aggregations