// construct the plan
FileDataSource sourceA = new FileDataSource(new DummyInputFormat(), "file:///test/file1", "Source A");
FileDataSource sourceB = new FileDataSource(new DummyInputFormat(), "file:///test/file2", "Source B");
FileDataSource sourceC = new FileDataSource(new DummyInputFormat(), "file:///test/file3", "Source C");
MapOperator map1 = MapOperator.builder(new IdentityMap()).input(sourceA).name("Map 1").build();
ReduceOperator reduce1 = ReduceOperator.builder(new IdentityReduce(), IntValue.class, 0)
.input(map1)
.name("Reduce 1")
.build();
JoinOperator match1 = JoinOperator.builder(new DummyMatchStub(), IntValue.class, 0, 0)
.input1(sourceB, sourceB, sourceC)
.input2(sourceC)
.name("Match 1")
.build();
;
CoGroupOperator cogroup1 = CoGroupOperator.builder(new DummyCoGroupStub(), IntValue.class, 0,0)
.input1(sourceA)
.input2(sourceB)
.name("CoGroup 1")
.build();
CrossOperator cross1 = CrossOperator.builder(new DummyCrossStub())
.input1(reduce1)
.input2(cogroup1)
.name("Cross 1")
.build();
CoGroupOperator cogroup2 = CoGroupOperator.builder(new DummyCoGroupStub(), IntValue.class, 0,0)
.input1(cross1)
.input2(cross1)
.name("CoGroup 2")
.build();
CoGroupOperator cogroup3 = CoGroupOperator.builder(new DummyCoGroupStub(), IntValue.class, 0,0)
.input1(map1)
.input2(match1)
.name("CoGroup 3")
.build();
MapOperator map2 = MapOperator.builder(new IdentityMap()).input(cogroup3).name("Map 2").build();
CoGroupOperator cogroup4 = CoGroupOperator.builder(new DummyCoGroupStub(), IntValue.class, 0,0)
.input1(map2)
.input2(match1)
.name("CoGroup 4")