Flow fourth = fourthFlow( third.getSink(), path + "/fourth" ); LockingFlowListener firstFlowListener = new LockingFlowListener(); LockingFlowListener secondFlowListener = new LockingFlowListener(); LockingFlowListener thirdFlowListener = new LockingFlowListener(); LockingFlowListener fourthFlowListener = new LockingFlowListener();
Flow fourth = fourthFlow( third.getSink(), path + "/fourth" ); LockingFlowListener firstFlowListener = new LockingFlowListener(); LockingFlowListener secondFlowListener = new LockingFlowListener(); LockingFlowListener thirdFlowListener = new LockingFlowListener(); LockingFlowListener fourthFlowListener = new LockingFlowListener();
LockingFlowListener flowListener = new LockingFlowListener();
LockingFlowListener flowListener = new LockingFlowListener();
final LockingFlowListener listener = new LockingFlowListener();
final LockingFlowListener listener = new LockingFlowListener();
@Test public void testSimpleRiffleCascade() throws IOException, InterruptedException { getPlatform().copyFromLocal( inputFileIps ); String path = "perpetualcascade"; Flow first = firstFlow( path ); Flow second = secondFlow( first.getSink(), path ); Flow third = thirdFlow( second.getSink(), path ); Flow fourth = fourthFlow( third.getSink(), path ); ProcessFlow firstProcess = new ProcessFlow( "first", first ); ProcessFlow secondProcess = new ProcessFlow( "second", second ); ProcessFlow thirdProcess = new ProcessFlow( "third", third ); ProcessFlow fourthProcess = new ProcessFlow( "fourth", fourth ); LockingFlowListener flowListener = new LockingFlowListener(); secondProcess.addListener( flowListener ); Cascade cascade = new CascadeConnector( getProperties() ).connect( fourthProcess, secondProcess, firstProcess, thirdProcess ); cascade.start(); cascade.complete(); assertTrue( "did not start", flowListener.started.tryAcquire( 2, TimeUnit.SECONDS ) ); assertTrue( "did not complete", flowListener.completed.tryAcquire( 2, TimeUnit.SECONDS ) ); validateLength( fourth, 20 ); }
@Test public void testStartWithoutComplete() throws Exception { getPlatform().copyFromLocal( inputFileLower ); Tap sourceLower = new Hfs( new TextLine( new Fields( "offset", "line" ) ), inputFileLower ); Map sources = new HashMap(); sources.put( "lower", sourceLower ); Function splitter = new RegexSplitter( new Fields( "num", "char" ), " " ); // using null pos so all fields are written Tap sink = new Hfs( new TextLine(), getOutputPath( "withoutcomplete" ), SinkMode.REPLACE ); Pipe pipeLower = new Each( new Pipe( "lower" ), new Fields( "line" ), splitter ); pipeLower = new GroupBy( pipeLower, new Fields( "num" ) ); Flow flow = getPlatform().getFlowConnector( getProperties() ).connect( sources, sink, pipeLower ); LockingFlowListener listener = new LockingFlowListener(); flow.addListener( listener ); flow.start(); assertTrue( listener.completed.tryAcquire( 90, TimeUnit.SECONDS ) ); }
@Test public void testSimpleRiffleCascade() throws IOException, InterruptedException { getPlatform().copyFromLocal( inputFileIps ); String path = "perpetualcascade"; Flow first = firstFlow( path ); Flow second = secondFlow( first.getSink(), path ); Flow third = thirdFlow( second.getSink(), path ); Flow fourth = fourthFlow( third.getSink(), path ); ProcessFlow firstProcess = new ProcessFlow( "first", first ); ProcessFlow secondProcess = new ProcessFlow( "second", second ); ProcessFlow thirdProcess = new ProcessFlow( "third", third ); ProcessFlow fourthProcess = new ProcessFlow( "fourth", fourth ); LockingFlowListener flowListener = new LockingFlowListener(); secondProcess.addListener( flowListener ); Cascade cascade = new CascadeConnector( getProperties() ).connect( fourthProcess, secondProcess, firstProcess, thirdProcess ); cascade.start(); cascade.complete(); assertTrue( "did not start", flowListener.started.tryAcquire( 2, TimeUnit.SECONDS ) ); assertTrue( "did not complete", flowListener.completed.tryAcquire( 2, TimeUnit.SECONDS ) ); validateLength( fourth, 20 ); }
@Test public void testStartWithoutComplete() throws Exception { getPlatform().copyFromLocal( inputFileLower ); Tap sourceLower = new Hfs( new TextLine( new Fields( "offset", "line" ) ), inputFileLower ); Map sources = new HashMap(); sources.put( "lower", sourceLower ); Function splitter = new RegexSplitter( new Fields( "num", "char" ), " " ); // using null pos so all fields are written Tap sink = new Hfs( new TextLine(), getOutputPath( "withoutcomplete" ), SinkMode.REPLACE ); Pipe pipeLower = new Each( new Pipe( "lower" ), new Fields( "line" ), splitter ); pipeLower = new GroupBy( pipeLower, new Fields( "num" ) ); Flow flow = getPlatform().getFlowConnector( getProperties() ).connect( sources, sink, pipeLower ); LockingFlowListener listener = new LockingFlowListener(); flow.addListener( listener ); flow.start(); assertTrue( listener.completed.tryAcquire( 90, TimeUnit.SECONDS ) ); }