# GraphExecutor class?

**URL:** https://forum.cloverdx.com/t/graphexecutor-class/387
**Category:** CloverDX Platform
**Created:** [September 10, 2008, 12:00am UTC](https://forum.cloverdx.com/t/graphexecutor-class/387 "2008-09-10T00:00:00Z")
**Posts on this page:** 3
**Page:** 1

<div class="post-metadata">

### Author: ![bretonf](https://avatars.discourse-cdn.com/v4/letter/b/dbc845/32.png) [@bretonf](https://forum.cloverdx.com/u/bretonf)
#### Post date: [September 10, 2008, 12:00am UTC](https://forum.cloverdx.com/t/graphexecutor-class/387/1 "2008-09-10T00:00:00Z")

</div>

Hello,

For our developments, we’ve made our own RunGraph class. We’ve been using the GraphExecutor class introduced in cloverETL engine 2.4, in order to, well, run the graphs.  
It seems to have disappeared from the newest version, 2.5.  
I have looked through the change log, but didn’t see anything about this.

Has another class replaced it? Which classes have a method for calling the runGraph() method to run the engine?

Same question for the class CloverURLStreamHandlerFactory, which seems to have been removed in the latest version too.

---

<div class="post-metadata">

### Author: ![hwhwhw](https://avatars.discourse-cdn.com/v4/letter/h/9d8465/32.png) [@hwhwhw](https://forum.cloverdx.com/u/hwhwhw)
#### Post date: [September 10, 2008, 8:44am UTC](https://forum.cloverdx.com/t/graphexecutor-class/387/2 "2008-09-10T08:44:13Z")

</div>

It changed greatly between the various versions,  
I had to track its various versions,  
it has been carrying out the internal structure of the optimization and therefore not compatible between different versions.

---

<div class="post-metadata">

### Author: ![mzatopek](https://avatars.discourse-cdn.com/v4/letter/m/b5e925/32.png) [@mzatopek](https://forum.cloverdx.com/u/mzatopek)
#### Post date: [September 27, 2008, 9:47am UTC](https://forum.cloverdx.com/t/graphexecutor-class/387/3 "2008-09-27T09:47:36Z")

</div>

Yes, the graph launching procedure was essentially reimplemented due clover server needs (check it out at [http://www.cloveretl.org/clover-server/](http://www.cloveretl.org/clover-server/)). Unfortunately public change log doesn’t usually contain implementation updates. Please, revise your code according our runGraph main class.

I have prepared small extract from the runGraph launcher:

//clover engine initialization  
EngineInitializer.initEngine(pluginsRootDirectory, configFileName, logHost);  
//build graph from xml  
TransformationGraph graph = TransformationGraphXMLReaderWriter.loadGraph(in, runtimeContext.getAdditionalProperties());  
//prepare default runtime context  
GraphRuntimeContext runtimeContext = new GraphRuntimeContext();  
//initialize graph  
EngineInitializer.initGraph(graph, runtimeContext);  
//prepare simple thread manager  
IThreadManager threadManager = new SimpleThreadManager();  
//prepare watchdog for running graph  
WatchDog watchDog = new WatchDog(graph, runtimeContext);  
//launch graph  
Future futureResult = threadManager.executeWatchDog(watchDog);  
//wait for result  
Result result = futureResult.get();  
//release all graph resources  
graph.free();
