expectedNodesAndGateways.put("admire.dataAccess.relational.DAS2", "g1");
expectedNodesAndGateways.put("uk.org.ogsadai.TupleSelect", "g1");
expectedNodesAndGateways.put("uk.org.ogsadai.TupleArithmeticProject", "g1");
expectedNodesAndGateways.put("uk.org.ogsadai.TupleUnionAll", "g1");
Graph graph = graphs.iterator().next();
assertNodesAndAnnotations(
expectedNodesAndGateways,
graph,
"gateway");
TestExecutionEngineRegistry execEngineRegistry =
new TestExecutionEngineRegistry();
execEngineRegistry.addExecutionEngine("e1", new MockLocation("e1"));
execEngineRegistry.addExecutionEngine("e2", new MockLocation("e2"));
execEngineRegistry.addExecutionEngine("e3", new MockLocation("e3"));
execEngineRegistry.addExecutionEngine("e4", new MockLocation("e4"));
execEngineRegistry.addDataSourceMapping("res1", "e1");
execEngineRegistry.addDataSourceMapping("res2", "e2");
SimpleLocalOptimiser localOptimiser = new SimpleLocalOptimiser();
List<Optimiser> localOptimisers = new ArrayList<Optimiser>();
AddCandidateExecutionEngines addCandidateExecutionEngines = new AddCandidateExecutionEngines();
addCandidateExecutionEngines.setExecutionEngineRegistry(execEngineRegistry);
ProcessLocalDataSourceAnchors processLocalDataSourceAnchors = new ProcessLocalDataSourceAnchors();
processLocalDataSourceAnchors.setExecutionEngineRegistry(execEngineRegistry);
PropagateExecutionEngineAllocations propagateExecutionEngineAllocations = new PropagateExecutionEngineAllocations();
localOptimisers.add(addCandidateExecutionEngines);
localOptimisers.add(processLocalDataSourceAnchors);
localOptimisers.add(propagateExecutionEngineAllocations);
localOptimiser.setOptimisers(localOptimisers);
Graph local = localOptimiser.optimise(graph);
Map<String, List<String>> expectedNodesAndExecutionEngines =
new HashMap<String, List<String>>();
expectedNodesAndExecutionEngines.put("admire.dataAccess.relational.DAS1", Arrays.asList("e1"));
expectedNodesAndExecutionEngines.put("admire.dataAccess.relational.DAS2", Arrays.asList("e2"));
expectedNodesAndExecutionEngines.put("uk.org.ogsadai.TupleSelect", Arrays.asList("e1", "e2"));