# Simple Run from Java Class

**URL:** <https://forum.cloverdx.com/t/simple-run-from-java-class/1151>\
**Category:** CloverDX Platform\
**Created:** [January 9, 2013, 12:00am UTC](https://forum.cloverdx.com/t/simple-run-from-java-class/1151 "2013-01-09T00:00:00Z")\
**Posts on this page:** 13\
**Page:** 1

<div class="post-metadata">

**Author:** ![aruehmann](https://avatars.discourse-cdn.com/v4/letter/a/f08c70/32.png) [@aruehmann](https://forum.cloverdx.com/u/aruehmann)\
**Post date:** [January 9, 2013, 12:00am UTC](https://forum.cloverdx.com/t/simple-run-from-java-class/1151/1 "2013-01-09T00:00:00Z")

</div>

Hey,

I have read [http://wiki.clovergui.net/doku.php?id=embedding\_clover](http://wiki.clovergui.net/doku.php?id=embedding%5Fclover) and more sources.

Now i want to run my simple Example in Java.  
The example is made with cloverETL Designer gui.  
The graph runs without mistakes and give me the right solution.

Libary used: cloveretl.engine.jar  
EngineInitializer.initEngine(pluginsRootDirectory, configFileName, logHost);

i need a little bit of code to understand how i can run a cloverETL graph in my java class.

Thank you

---

<div class="post-metadata">

**Author:** ![David\_Hlidek](https://avatars.discourse-cdn.com/v4/letter/d/58f4c7/32.png) [@David\_Hlidek](https://forum.cloverdx.com/u/David_Hlidek)\
**Post date:** [January 9, 2013, 12:23pm UTC](https://forum.cloverdx.com/t/simple-run-from-java-class/1151/2 "2013-01-09T12:23:05Z")

</div>

Hi aruehmann,

in section “Loading graph definition from XML” is all what you are looking for.

“in” parameter in sample code is path to your graph file.

I hope this helps.

---

<div class="post-metadata">

**Author:** ![aruehmann](https://avatars.discourse-cdn.com/v4/letter/a/f08c70/32.png) [@aruehmann](https://forum.cloverdx.com/u/aruehmann)\
**Post date:** [January 9, 2013, 1:04pm UTC](https://forum.cloverdx.com/t/simple-run-from-java-class/1151/3 "2013-01-09T13:04:18Z")

</div>

Thanks  
that helps me a lot!

now i have the next problem:  
pluginsRootDirectory, configFileName, logHost

where can i find values for thie parameters?

---

<div class="post-metadata">

**Author:** ![aruehmann](https://avatars.discourse-cdn.com/v4/letter/a/f08c70/32.png) [@aruehmann](https://forum.cloverdx.com/u/aruehmann)\
**Post date:** [January 9, 2013, 1:48pm UTC](https://forum.cloverdx.com/t/simple-run-from-java-class/1151/4 "2013-01-09T13:48:43Z")

</div>

My code:

```auto

package org.company.components;

import java.io.IOException;
import java.io.InputStream;

import org.jetel.exception.ComponentNotReadyException;
import org.jetel.exception.GraphConfigurationException;
import org.jetel.exception.XMLConfigurationException;
import org.jetel.graph.TransformationGraph;
import org.jetel.graph.TransformationGraphXMLReaderWriter;
import org.jetel.graph.runtime.EngineInitializer;
import org.jetel.graph.runtime.GraphRuntimeContext;
import org.jetel.graph.runtime.IThreadManager;
import org.jetel.graph.runtime.SimpleThreadManager;
import org.jetel.graph.runtime.WatchDog;

import de.schlichtherle.io.FileInputStream;

public class NewComponent {
	public static void main(String[] args) throws IOException
	{
		  // engine customization
		  GraphRuntimeContext runtimeContext = new GraphRuntimeContext();

		   TransformationGraph graph = null;
		   InputStream graphInputStream = null;
		  
		  // engine initialization - should be called only once
		  
		  EngineInitializer.initEngine("C:\\Program Files\\CloverETL Designer Community\\plugins", "C:\\Users\\aruehmann\\workspace\\CSVtoXLSX\\workspace.prm", null);

		  
		  graphInputStream = new FileInputStream("C:\\Users\\aruehmann\\workspace\\CSVtoXLSX\\graph\\CSVtoXLSX.grf");
		  // graph loading
		  try {
			graph = TransformationGraphXMLReaderWriter.loadGraph(graphInputStream, runtimeContext);
		} catch (XMLConfigurationException | GraphConfigurationException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}

		  // engine initialization
		  try {
			EngineInitializer.initGraph(graph, runtimeContext);
		} catch (ComponentNotReadyException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}

		  // graph running
		  IThreadManager threadManager = new SimpleThreadManager();
		  WatchDog watchDog = new WatchDog(graph, runtimeContext);
		  threadManager.executeWatchDog(watchDog);

	}
}

```

Failure message:

```auto

org.jetel.exception.XMLConfigurationException: Can't load property definition from workspace.prm
	at org.jetel.graph.TransformationGraphXMLReaderWriter.instantiateProperties(TransformationGraphXMLReaderWriter.java:749)
	at org.jetel.graph.TransformationGraphXMLReaderWriter.read(TransformationGraphXMLReaderWriter.java:356)
	at org.jetel.graph.TransformationGraphXMLReaderWriter.read(TransformationGraphXMLReaderWriter.java:302)
	at org.jetel.graph.TransformationGraphXMLReaderWriter.loadGraph(TransformationGraphXMLReaderWriter.java:231)
	at org.company.components.NewComponent.main(NewComponent.java:52)
Caused by: java.io.FileNotFoundException: workspace.prm (Das System kann die angegebene Datei nicht finden)

```

Can not find my mistake please help me

Thanks

---

<div class="post-metadata">

**Author:** ![David\_Hlidek](https://avatars.discourse-cdn.com/v4/letter/d/58f4c7/32.png) [@David\_Hlidek](https://forum.cloverdx.com/u/David_Hlidek)\
**Post date:** [January 9, 2013, 3:09pm UTC](https://forum.cloverdx.com/t/simple-run-from-java-class/1151/5 "2013-01-09T15:09:37Z")

</div>

The signature is:

```auto

public static void initEngine(java.lang.String pluginsRootDirectory,
                              java.lang.String defaultPropertiesFile,
                              java.lang.String logHost)

```

where:  
\* pluginsRootDirectory you set correctly  
\* defaultPropertiesFile is not path to .prm file but path to properties file for engine [http://doc.cloveretl.com/documentation/ … tings.html](http://doc.cloveretl.com/documentation/UserGuide/index.jsp?topic=/com.cloveretl.gui.docs/docs/cloveretl-default-settings.html)  
\* logHost can be kept empty (“”)

---

<div class="post-metadata">

**Author:** ![David\_Hlidek](https://avatars.discourse-cdn.com/v4/letter/d/58f4c7/32.png) [@David\_Hlidek](https://forum.cloverdx.com/u/David_Hlidek)\
**Post date:** [January 9, 2013, 3:15pm UTC](https://forum.cloverdx.com/t/simple-run-from-java-class/1151/6 "2013-01-09T15:15:16Z")

</div>

You can also find information in javadoc available at [http://sourceforge.net/projects/clovere … rel-3.3.0/](http://sourceforge.net/projects/cloveretl/files/cloveretl.engine/rel-3.3.0/)

---

<div class="post-metadata">

**Author:** ![aruehmann](https://avatars.discourse-cdn.com/v4/letter/a/f08c70/32.png) [@aruehmann](https://forum.cloverdx.com/u/aruehmann)\
**Post date:** [January 11, 2013, 3:18pm UTC](https://forum.cloverdx.com/t/simple-run-from-java-class/1151/7 "2013-01-11T15:18:03Z")

</div>

Thanks,  
im sorry but i cant solve the problem…

my Code:

```auto

package org.company.components;

import java.io.IOException;
import java.io.InputStream;

import org.jetel.exception.ComponentNotReadyException;
import org.jetel.exception.GraphConfigurationException;
import org.jetel.exception.XMLConfigurationException;
import org.jetel.graph.TransformationGraph;
import org.jetel.graph.TransformationGraphXMLReaderWriter;
import org.jetel.graph.runtime.EngineInitializer;
import org.jetel.graph.runtime.GraphRuntimeContext;
import org.jetel.graph.runtime.IThreadManager;
import org.jetel.graph.runtime.SimpleThreadManager;
import org.jetel.graph.runtime.WatchDog;

import de.schlichtherle.io.FileInputStream;

public class NewComponent {
	public static void main(String[] args) throws IOException
	{
		  // engine customization
		  GraphRuntimeContext runtimeContext = new GraphRuntimeContext();

		   TransformationGraph graph = null;
		   InputStream graphInputStream = null;
		  
		  // engine initialization - should be called only once
		  
		  EngineInitializer.initEngine("D:\\eclipse\\plugins\\com.cloveretl.gui_3.3.0.021P\\lib\\plugins", "C:\\Program Files\\CloverETL Designer Community\\plugins\\com.cloveretl.gui_3.3.0.021P\\lib\\plugins\\org.jetel.engine\\plugin.xml", "");

		  
		  graphInputStream = new FileInputStream("C:\\cloverETL\\graph\\runGraph.grf");
		  // graph loading
		  try {
			graph = TransformationGraphXMLReaderWriter.loadGraph(graphInputStream, runtimeContext);
		} catch (XMLConfigurationException | GraphConfigurationException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}

		  // engine initialization
		  try {
			EngineInitializer.initGraph(graph, runtimeContext);
		} catch (ComponentNotReadyException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}

		  // graph running
		  IThreadManager threadManager = new SimpleThreadManager();
		  WatchDog watchDog = new WatchDog(graph, runtimeContext);
		  threadManager.executeWatchDog(watchDog);
	}
}

```

The Problem is _TransformationGraphXMLReaderWriter.loadGraph_  
when i use my graph path i become this:

```auto

INFO [main] - ***CloverETL framework/transformation graph, (c) 2002-2012 Javlin a.s, released under GNU Lesser General Public License***
INFO [main] - Running with CloverETL library version 3.3.0 build#021 compiled 15/10/2012 15:10:55
INFO [main] - Running on 4 CPU(s), OS Windows 7, architecture amd64, Java version 1.7.0_09, max available memory for JVM 1223360 KB
INFO [main] - Loading default properties from: defaultProperties
INFO [main] - Loading Clover properties from file:C:\Program Files\CloverETL Designer Community\plugins\com.cloveretl.gui_3.3.0.021P\lib\plugins\org.jetel.engine\plugin.xml
DEBUG [main] - Plugin org.jetel.bulkloader loaded.
	id - org.jetel.bulkloader
	version - 3.3.0.
	provider-name - null
		component { className = org.jetel.component.OracleDataWriter; type = ORACLE_DATA_WRITER; }
		component { className = org.jetel.component.DB2DataWriter; type = DB2_DATA_WRITER; }
		component { className = org.jetel.component.InformixDataWriter; type = INFORMIX_DATA_WRITER; }
		component { className = org.jetel.component.MsSqlDataWriter; type = MS_SQL_DATA_WRITER; }
		component { className = org.jetel.component.MysqlDataWriter; type = MYSQL_DATA_WRITER; }
		component { className = org.jetel.component.PostgreSqlDataWriter; type = POSTGRESQL_DATA_WRITER; }
		component { className = org.jetel.component.InfobrightDataWriter; type = INFOBRIGHT_DATA_WRITER; }

DEBUG [main] - Plugin org.jetel.component loaded.
	id - org.jetel.component
	version - 3.3.0.
	provider-name - Javlin a.s.
		component { className = org.jetel.component.DataReader; type = DATA_READER; }
		component { className = org.jetel.component.DataWriter; type = DATA_WRITER; }
		component { className = org.jetel.component.DelimitedDataReader; type = DELIMITED_DATA_READER; }
		component { className = org.jetel.component.DelimitedDataWriter; type = DELIMITED_DATA_WRITER; }
		component { className = org.jetel.component.SimpleCopy; type = SIMPLE_COPY; }
		component { className = org.jetel.component.Concatenate; type = CONCATENATE; }
		component { className = org.jetel.component.SimpleGather; type = SIMPLE_GATHER; }
		component { className = org.jetel.component.Reformat; type = REFORMAT; }
		component { className = org.jetel.component.DBInputTable; type = DB_INPUT_TABLE; }
		component { className = org.jetel.component.Sort; type = SORT; }
		component { className = org.jetel.component.DBOutputTable; type = DB_OUTPUT_TABLE; }
		component { className = org.jetel.component.FixLenDataWriter; type = FIXLEN_DATA_WRITER; }
		component { className = org.jetel.component.Dedup; type = DEDUP; }
		component { className = org.jetel.component.FixLenDataReader; type = FIXLEN_DATA_READER; }
		component { className = org.jetel.component.Merge; type = MERGE; }
		component { className = org.jetel.component.MergeJoin; type = MERGE_JOIN; }
		component { className = org.jetel.component.MergeJoin; type = EXT_MERGE_JOIN; }
		component { className = org.jetel.component.MergeJoin; type = SORTED_JOIN; }
		component { className = org.jetel.component.Trash; type = TRASH; }
		component { className = org.jetel.component.DBExecute; type = DB_EXECUTE; }
		component { className = org.jetel.component.HashJoin; type = HASH_JOIN; }
		component { className = org.jetel.component.HashJoin; type = EXT_HASH_JOIN; }
		component { className = org.jetel.component.CheckForeignKey; type = CHECK_FOREIGN_KEY; }
		component { className = org.jetel.component.DBFDataReader; type = DBF_DATA_READER; }
		component { className = org.jetel.component.DBFDataWriter; type = DBF_DATA_WRITER; }
		component { className = org.jetel.component.ExtFilter; type = EXT_FILTER; }
		component { className = org.jetel.component.ExtSort; type = EXT_SORT; }
		component { className = org.jetel.component.SortWithinGroups; type = SORT_WITHIN_GROUPS; }
		component { className = org.jetel.component.Partition; type = PARTITION; }
		component { className = org.jetel.component.DataIntersection; type = DATA_INTERSECTION; }
		component { className = org.jetel.component.Aggregate; type = AGGREGATE; }
		component { className = org.jetel.component.SystemExecute; type = SYS_EXECUTE; }
		component { className = org.jetel.component.RunGraph; type = RUN_GRAPH; }
		component { className = org.jetel.component.HttpConnector; type = HTTP_CONNECTOR; }
		component { className = org.jetel.component.KeyGenerator; type = KEY_GEN; }
		component { className = org.jetel.component.AproxMergeJoin; type = APROX_MERGE_JOIN; }
		component { className = org.jetel.component.DBJoin; type = DBJOIN; }
		component { className = org.jetel.component.XLSReader; type = XLS_READER; }
		component { className = org.jetel.component.XLSWriter; type = XLS_WRITER; }
		component { className = org.jetel.component.CloverDataWriter; type = CLOVER_WRITER; }
		component { className = org.jetel.component.CloverDataReader; type = CLOVER_READER; }
		component { className = org.jetel.component.StructureWriter; type = STRUCTURE_WRITER; }
		component { className = org.jetel.component.Normalizer; type = NORMALIZER; }
		component { className = org.jetel.component.Denormalizer; type = DENORMALIZER; }
		component { className = org.jetel.component.Rollup; type = ROLLUP; }
		component { className = org.jetel.component.JmsReader; type = JMS_READER; }
		component { className = org.jetel.component.JmsWriter; type = JMS_WRITER; }
		component { className = org.jetel.component.LookupJoin; type = LOOKUP_JOIN; }
		component { className = org.jetel.component.LookupTableReaderWriter; type = LOOKUP_TABLE_READER_WRITER; }
		component { className = org.jetel.component.DataGenerator; type = DATA_GENERATOR; }
		component { className = org.jetel.component.SequenceChecker; type = SEQUENCE_CHECKER; }
		component { className = org.jetel.component.TextTableWriter; type = TEXT_TABLE_WRITER; }
		component { className = org.jetel.component.XmlXPathReader; type = XML_XPATH_READER; }
		component { className = org.jetel.component.XMLExtract; type = XML_EXTRACT; }
		component { className = org.jetel.component.XmlReader; type = XML_READER; }
		component { className = org.jetel.component.SpeedLimiter; type = SPEED_LIMITER; }
		component { className = org.jetel.component.JavaExecute; type = JAVA_EXECUTE; }
		component { className = org.jetel.component.XmlWriter; type = XML_WRITER; }
		component { className = org.jetel.component.ExtXmlWriter; type = EXT_XML_WRITER; }
		component { className = org.jetel.component.XSLDataTransformer; type = XSL_TRANSFORMER; }

DEBUG [main] - Plugin org.jetel.connection loaded.
	id - org.jetel.connection
	version - 3.3.0.
	provider-name - Javlin a.s.
		connection { className = org.jetel.connection.jdbc.DBConnection; type = JDBC; }
		connection { className = org.jetel.connection.jms.JmsConnection; type = JMS; }

DEBUG [main] - Plugin org.jetel.ctlfunction loaded.
	id - org.jetel.ctlfunction
	version - 3.3.0.
	provider-name - Javlin a.s.
		ctlfunction { libraryName = math; className = org.jetel.ctl.extensions.MathLib; }
		ctlfunction { libraryName = date; className = org.jetel.ctl.extensions.DateLib; }
		ctlfunction { libraryName = string; className = org.jetel.ctl.extensions.StringLib; }
		ctlfunction { libraryName = convert; className = org.jetel.ctl.extensions.ConvertLib; }
		ctlfunction { libraryName = container; className = org.jetel.ctl.extensions.ContainerLib; }
		ctlfunction { libraryName = random; className = org.jetel.ctl.extensions.RandomLib; }
		ctlfunction { libraryName = util; className = org.jetel.ctl.extensions.UtilLib; }
		ctlfunction { libraryName = dynamic; className = org.jetel.ctl.extensions.DynamicLib; }

DEBUG [main] - Plugin org.jetel.engine loaded.
	id - org.jetel.engine
	version - 3.3.0.
	provider-name - Javlin a.s.
		dictionaryType { className = org.jetel.graph.dictionary.StringDictionaryType; type = string; }
		dictionaryType { className = org.jetel.graph.dictionary.ObjectDictionaryType; type = object; }
		dictionaryType { className = org.jetel.graph.dictionary.ReadableChannelDictionaryType; type = readable.channel; }
		dictionaryType { className = org.jetel.graph.dictionary.WritableChannelDictionaryType; type = writable.channel; }
		dictionaryType { className = org.jetel.graph.dictionary.IntegerDictionaryType; type = integer; }
		dictionaryType { className = org.jetel.graph.dictionary.LongDictionaryType; type = long; }
		dictionaryType { className = org.jetel.graph.dictionary.DecimalDictionaryType; type = decimal; }
		dictionaryType { className = org.jetel.graph.dictionary.NumberDictionaryType; type = number; }
		dictionaryType { className = org.jetel.graph.dictionary.DateDictionaryType; type = date; }
		dictionaryType { className = org.jetel.graph.dictionary.BooleanDictionaryType; type = boolean; }
		dictionaryType { className = org.jetel.graph.dictionary.ByteDictionaryType; type = byte; }
		dictionaryType { className = org.jetel.graph.dictionary.ListDictionaryType; type = list; }
		dictionaryType { className = org.jetel.graph.dictionary.MapDictionaryType; type = map; }
		tlCompiler { className = org.jetel.ctl.TLCompiler; type = simple.compiler; }
		ctlfunction { libraryName = integral; className = org.jetel.ctl.extensions.IntegralLib; }

DEBUG [main] - Plugin org.jetel.jdbc loaded.
	id - org.jetel.jdbc
	version - 3.3.0.
	provider-name - Javlin a.s.
		jdbcSpecific { name = Generic; class = org.jetel.connection.jdbc.specific.impl.DefaultJdbcSpecific; database = GENERIC; }
		jdbcSpecific { name = DB2; class = org.jetel.connection.jdbc.specific.impl.DB2Specific; database = DB2; }
		jdbcSpecific { name = Derby; class = org.jetel.connection.jdbc.specific.impl.DerbySpecific; productName = Apache Derby; database = DERBY; }
		jdbcSpecific { name = Firebird; class = org.jetel.connection.jdbc.specific.impl.FirebirdSpecific; database = FIREBIRD; }
		jdbcSpecific { name = Generic ODBC; class = org.jetel.connection.jdbc.specific.impl.GenericODBCSpecific; database = GENERICODBC; }
		jdbcSpecific { name = Informix; class = org.jetel.connection.jdbc.specific.impl.InformixSpecific; database = INFORMIX; }
		jdbcSpecific { name = Microsoft Access; class = org.jetel.connection.jdbc.specific.impl.MSAccessSpecific; database = MSACCESS; }
		jdbcSpecific { name = MS SQL Server 2008-2012; class = org.jetel.connection.jdbc.specific.impl.MSSQLSpecific; productName = Microsoft SQL Server; database = MSSQL; }
		jdbcSpecific { name = MS SQL Server 2000-2005; class = org.jetel.connection.jdbc.specific.impl.MSSQLSpecific2005; database = MSSQL2005; }
		jdbcSpecific { name = MySQL; class = org.jetel.connection.jdbc.specific.impl.MySQLSpecific; productName = MySQL; database = MYSQL; }
		jdbcSpecific { name = Oracle; class = org.jetel.connection.jdbc.specific.impl.OracleSpecific; productName = Oracle; database = ORACLE; }
		jdbcSpecific { name = Pervasive; class = org.jetel.connection.jdbc.specific.impl.PervasiveSpecific; database = PERVASIVE; }
		jdbcSpecific { name = PostgreSQL; class = org.jetel.connection.jdbc.specific.impl.PostgreSpecific; database = POSTGRE; }
		jdbcSpecific { name = Sybase; class = org.jetel.connection.jdbc.specific.impl.SybaseSpecific; database = SYBASE; }
		jdbcSpecific { name = SQLite; class = org.jetel.connection.jdbc.specific.impl.SQLiteSpecific; database = SQLITE; }
		jdbcDriver { driverLibrary = lib/mysql/mysql-connector-java-5.1.15-bin.jar; jdbcSpecific = MYSQL; name = MySQL; dbDriver = org.gjt.mm.mysql.Driver; jdbc.zeroDateTimeBehavior = convertToNull; urlHint = jdbc:mysql://hostname:3306/database; database = MYSQL; }
		jdbcDriver { driverLibrary = lib/oracle/ojdbc6.jar; jdbcSpecific = ORACLE; name = Oracle; dbDriver = oracle.jdbc.OracleDriver; urlHint = jdbc:oracle:thin:@host:1521:SID,jdbc:oracle:thin:@cluster-alias:1521/service_name,jdbc:oracle:thin:@(DESCRIPTION=(LOAD_BALANCE=on)(ADDRESS=(PROTOCOL=TCP)(HOST=host1)(PORT=1521))(ADDRESS=(PROTOCOL=TCP)(HOST=host2)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=service_name))),jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=cluster_alias)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=service_name))),jdbc:oracle:thin:@host:1521/service_name; database = ORACLE; }
		jdbcDriver { driverLibrary = lib/postgre/postgresql-8.3-603.jdbc3.jar; jdbcSpecific = POSTGRE; name = PostgreSQL; dbDriver = org.postgresql.Driver; urlHint = jdbc:postgresql://hostname/database; database = POSTGRE; }
		jdbcDriver { driverLibrary = lib/jtds/jtds-1.2.4.jar; jdbcSpecific = MSSQL; name = Microsoft SQL Server; dbDriver = net.sourceforge.jtds.jdbc.Driver; urlHint = jdbc:jtds:sqlserver://hostname:1433/database; database = MSSQL; }
		jdbcDriver { driverLibrary = sun.jdbc.odbc.JdbcOdbcDriver; jdbcSpecific = GENERICODBC; name = Generic ODBC; dbDriver = sun.jdbc.odbc.JdbcOdbcDriver; urlHint = jdbc:odbc:dsn_source;; database = GENERICODBC; }
		jdbcDriver { driverLibrary = sun.jdbc.odbc.JdbcOdbcDriver; jdbcSpecific = MSACCESS; name = Microsoft Access; dbDriver = sun.jdbc.odbc.JdbcOdbcDriver; urlHint = jdbc:odbc:driver={Microsoft Access Driver (*.mdb)};DBQ=database_file,jdbc:odbc:driver={Microsoft Access Driver (*.mdb, *.accdb)};DBQ=database_file,jdbc:odbc:odbc_source_name; database = MSACCESS; }
		jdbcDriver { driverLibrary = lib/jtds/jtds-1.2.4.jar; jdbcSpecific = SYBASE; name = Sybase; dbDriver = net.sourceforge.jtds.jdbc.Driver; urlHint = jdbc:jtds:sybase://hostname:7100/database; database = SYBASE; }
		jdbcDriver { driverLibrary = lib/sqlite/sqlite-jdbc-3.6.20.1.jar; jdbcSpecific = SQLITE; name = SQLite; dbDriver = org.sqlite.JDBC; urlHint = jdbc:sqlite:C:/database; database = SQLITE; }
		jdbcDriver { driverLibrary = lib/derby/derbyclient.jar; jdbcSpecific = DERBY; name = Derby; dbDriver = org.apache.derby.jdbc.ClientDriver; urlHint = jdbc:derby://hostname:1527/derby.db; database = DERBY; }
		jdbcDriver { driverLibrary = lib/firebird/jaybird-full-2.1.6.jar; jdbcSpecific = FIREBIRD; name = Firebird; dbDriver = org.firebirdsql.jdbc.FBDriver; urlHint = jdbc:firebirdsql:localhost/3050:/firebird/test.gdb; database = FIREBIRD; }

DEBUG [main] - Plugin org.jetel.license loaded.
	id - org.jetel.license
	version - 3.3.0.
	provider-name - Javlin a.s.

DEBUG [main] - Plugin org.jetel.lookup loaded.
	id - org.jetel.lookup
	version - 3.3.0.
	provider-name - Javlin a.s.
		lookup { className = org.jetel.lookup.SimpleLookupTable; type = simpleLookup; }
		lookup { className = org.jetel.lookup.DBLookupTable; type = dbLookup; }
		lookup { className = org.jetel.lookup.RangeLookupTable; type = rangeLookup; }

DEBUG [main] - Plugin org.jetel.sequence loaded.
	id - org.jetel.sequence
	version - 3.3.0.
	provider-name - Javlin a.s.
		sequence { className = org.jetel.sequence.SimpleSequence; type = SIMPLE_SEQUENCE; }
		sequence { className = org.jetel.sequence.PrimitiveSequence; type = PRIMITIVE_SEQUENCE; }

DEBUG [main] - Plugin org.jetel.thirdparty loaded.
	id - org.jetel.thirdparty
	version - 3.3.0.
	provider-name - Javlin a.s.
		component { className = org.jetel.component.Filter; type = FILTER; }
		component { className = com.linagora.component.LdapReader; type = LDAP_READER; }
		component { className = com.linagora.component.LdapWriter; type = LDAP_WRITER; }

DEBUG [main] - Plugin org.jetel.tlfunction loaded.
	id - org.jetel.tlfunction
	version - 3.3.0.
	provider-name - Javlin a.s.
		tlfunction { libraryName = math; className = org.jetel.interpreter.extensions.MathLib; function = sqrt,log,log10,exp,round,pow,pi,e,random,random_gaussian,random_boolean,random_int,random_long,abs,bit_and,bit_or,bit_xor,bit_set,bit_invert,bit_is_set,bit_lshift,bit_rshift; }
		tlfunction { libraryName = date; className = org.jetel.interpreter.extensions.DateLib; function = today,dateadd,datediff,trunc,trunc_date,random_date; }
		tlfunction { libraryName = string; className = org.jetel.interpreter.extensions.StringLib; function = concat,uppercase,lowercase,substring,left,right,trim,length,replace,split,char_at,is_blank,is_ascii,is_number,is_integer,is_long,is_date,remove_diacritic,remove_blank_space,get_alphanumeric_chars,translate,join,index_of,count_char,chop,remove_nonprintable,remove_nonascii,find,cut,random_string; }
		tlfunction { libraryName = convert; className = org.jetel.interpreter.extensions.ConvertLib; function = num2str,date2str,str2date,date2num,str2num,try_convert,base64byte,byte2base64,bits2str,str2bits,hex2byte,byte2hex,num2num,num2bool,bool2num,str2bool,long2date,date2long,to_string,md5,sha,long2pacdecimal,pacdecimal2long,get_field_name,get_field_type; }
		tlfunction { libraryName = container; className = org.jetel.interpreter.extensions.ContainerLib; function = remove_all,push,pop,poll,remove,insert,sort,copy,reverse,dict_put_str,dict_get_str; }

org.jetel.exception.XMLConfigurationException: Can't load property definition from workspace.prm
	at org.jetel.graph.TransformationGraphXMLReaderWriter.instantiateProperties(TransformationGraphXMLReaderWriter.java:749)
	at org.jetel.graph.TransformationGraphXMLReaderWriter.read(TransformationGraphXMLReaderWriter.java:356)
	at org.jetel.graph.TransformationGraphXMLReaderWriter.read(TransformationGraphXMLReaderWriter.java:302)
	at org.jetel.graph.TransformationGraphXMLReaderWriter.loadGraph(TransformationGraphXMLReaderWriter.java:231)
	at org.company.components.NewComponent.main(NewComponent.java:36)
Caused by: java.io.FileNotFoundException: workspace.prm (Das System kann die angegebene Datei nicht finden)
	at java.io.FileInputStream.open(Native Method)
	at java.io.FileInputStream.<init>(Unknown Source)
	at java.io.FileInputStream.<init>(Unknown Source)
	at org.jetel.util.file.FileUtils.getInputStream(FileUtils.java:527)
	at org.jetel.util.file.FileUtils.getReadableChannel(FileUtils.java:437)
	at org.jetel.graph.TransformationGraph.loadGraphPropertiesSafe(TransformationGraph.java:925)
	at org.jetel.graph.TransformationGraphXMLReaderWriter.instantiateProperties(TransformationGraphXMLReaderWriter.java:747)
	... 4 more
Exception in thread "main" java.lang.NullPointerException
	at org.jetel.graph.runtime.EngineInitializer.initGraph(EngineInitializer.java:248)
	at org.company.components.NewComponent.main(NewComponent.java:44)

```

if i use the workspace for _graphInputStream = new FileInputStream(“C:\\cloverETL\\workspace.prm”);_ i become this:

```auto

INFO [main] - ***CloverETL framework/transformation graph, (c) 2002-2012 Javlin a.s, released under GNU Lesser General Public License***
INFO [main] - Running with CloverETL library version 3.3.0 build#021 compiled 15/10/2012 15:10:55
INFO [main] - Running on 4 CPU(s), OS Windows 7, architecture amd64, Java version 1.7.0_09, max available memory for JVM 1223360 KB
INFO [main] - Loading default properties from: defaultProperties
INFO [main] - Loading Clover properties from file:C:\Program Files\CloverETL Designer Community\plugins\com.cloveretl.gui_3.3.0.021P\lib\plugins\org.jetel.engine\plugin.xml
DEBUG [main] - Plugin org.jetel.bulkloader loaded.
	id - org.jetel.bulkloader
	version - 3.3.0.
	provider-name - null
		component { className = org.jetel.component.OracleDataWriter; type = ORACLE_DATA_WRITER; }
		component { className = org.jetel.component.DB2DataWriter; type = DB2_DATA_WRITER; }
		component { className = org.jetel.component.InformixDataWriter; type = INFORMIX_DATA_WRITER; }
		component { className = org.jetel.component.MsSqlDataWriter; type = MS_SQL_DATA_WRITER; }
		component { className = org.jetel.component.MysqlDataWriter; type = MYSQL_DATA_WRITER; }
		component { className = org.jetel.component.PostgreSqlDataWriter; type = POSTGRESQL_DATA_WRITER; }
		component { className = org.jetel.component.InfobrightDataWriter; type = INFOBRIGHT_DATA_WRITER; }

DEBUG [main] - Plugin org.jetel.component loaded.
	id - org.jetel.component
	version - 3.3.0.
	provider-name - Javlin a.s.
		component { className = org.jetel.component.DataReader; type = DATA_READER; }
		component { className = org.jetel.component.DataWriter; type = DATA_WRITER; }
		component { className = org.jetel.component.DelimitedDataReader; type = DELIMITED_DATA_READER; }
		component { className = org.jetel.component.DelimitedDataWriter; type = DELIMITED_DATA_WRITER; }
		component { className = org.jetel.component.SimpleCopy; type = SIMPLE_COPY; }
		component { className = org.jetel.component.Concatenate; type = CONCATENATE; }
		component { className = org.jetel.component.SimpleGather; type = SIMPLE_GATHER; }
		component { className = org.jetel.component.Reformat; type = REFORMAT; }
		component { className = org.jetel.component.DBInputTable; type = DB_INPUT_TABLE; }
		component { className = org.jetel.component.Sort; type = SORT; }
		component { className = org.jetel.component.DBOutputTable; type = DB_OUTPUT_TABLE; }
		component { className = org.jetel.component.FixLenDataWriter; type = FIXLEN_DATA_WRITER; }
		component { className = org.jetel.component.Dedup; type = DEDUP; }
		component { className = org.jetel.component.FixLenDataReader; type = FIXLEN_DATA_READER; }
		component { className = org.jetel.component.Merge; type = MERGE; }
		component { className = org.jetel.component.MergeJoin; type = MERGE_JOIN; }
		component { className = org.jetel.component.MergeJoin; type = EXT_MERGE_JOIN; }
		component { className = org.jetel.component.MergeJoin; type = SORTED_JOIN; }
		component { className = org.jetel.component.Trash; type = TRASH; }
		component { className = org.jetel.component.DBExecute; type = DB_EXECUTE; }
		component { className = org.jetel.component.HashJoin; type = HASH_JOIN; }
		component { className = org.jetel.component.HashJoin; type = EXT_HASH_JOIN; }
		component { className = org.jetel.component.CheckForeignKey; type = CHECK_FOREIGN_KEY; }
		component { className = org.jetel.component.DBFDataReader; type = DBF_DATA_READER; }
		component { className = org.jetel.component.DBFDataWriter; type = DBF_DATA_WRITER; }
		component { className = org.jetel.component.ExtFilter; type = EXT_FILTER; }
		component { className = org.jetel.component.ExtSort; type = EXT_SORT; }
		component { className = org.jetel.component.SortWithinGroups; type = SORT_WITHIN_GROUPS; }
		component { className = org.jetel.component.Partition; type = PARTITION; }
		component { className = org.jetel.component.DataIntersection; type = DATA_INTERSECTION; }
		component { className = org.jetel.component.Aggregate; type = AGGREGATE; }
		component { className = org.jetel.component.SystemExecute; type = SYS_EXECUTE; }
		component { className = org.jetel.component.RunGraph; type = RUN_GRAPH; }
		component { className = org.jetel.component.HttpConnector; type = HTTP_CONNECTOR; }
		component { className = org.jetel.component.KeyGenerator; type = KEY_GEN; }
		component { className = org.jetel.component.AproxMergeJoin; type = APROX_MERGE_JOIN; }
		component { className = org.jetel.component.DBJoin; type = DBJOIN; }
		component { className = org.jetel.component.XLSReader; type = XLS_READER; }
		component { className = org.jetel.component.XLSWriter; type = XLS_WRITER; }
		component { className = org.jetel.component.CloverDataWriter; type = CLOVER_WRITER; }
		component { className = org.jetel.component.CloverDataReader; type = CLOVER_READER; }
		component { className = org.jetel.component.StructureWriter; type = STRUCTURE_WRITER; }
		component { className = org.jetel.component.Normalizer; type = NORMALIZER; }
		component { className = org.jetel.component.Denormalizer; type = DENORMALIZER; }
		component { className = org.jetel.component.Rollup; type = ROLLUP; }
		component { className = org.jetel.component.JmsReader; type = JMS_READER; }
		component { className = org.jetel.component.JmsWriter; type = JMS_WRITER; }
		component { className = org.jetel.component.LookupJoin; type = LOOKUP_JOIN; }
		component { className = org.jetel.component.LookupTableReaderWriter; type = LOOKUP_TABLE_READER_WRITER; }
		component { className = org.jetel.component.DataGenerator; type = DATA_GENERATOR; }
		component { className = org.jetel.component.SequenceChecker; type = SEQUENCE_CHECKER; }
		component { className = org.jetel.component.TextTableWriter; type = TEXT_TABLE_WRITER; }
		component { className = org.jetel.component.XmlXPathReader; type = XML_XPATH_READER; }
		component { className = org.jetel.component.XMLExtract; type = XML_EXTRACT; }
		component { className = org.jetel.component.XmlReader; type = XML_READER; }
		component { className = org.jetel.component.SpeedLimiter; type = SPEED_LIMITER; }
		component { className = org.jetel.component.JavaExecute; type = JAVA_EXECUTE; }
		component { className = org.jetel.component.XmlWriter; type = XML_WRITER; }
		component { className = org.jetel.component.ExtXmlWriter; type = EXT_XML_WRITER; }
		component { className = org.jetel.component.XSLDataTransformer; type = XSL_TRANSFORMER; }

DEBUG [main] - Plugin org.jetel.connection loaded.
	id - org.jetel.connection
	version - 3.3.0.
	provider-name - Javlin a.s.
		connection { className = org.jetel.connection.jdbc.DBConnection; type = JDBC; }
		connection { className = org.jetel.connection.jms.JmsConnection; type = JMS; }

DEBUG [main] - Plugin org.jetel.ctlfunction loaded.
	id - org.jetel.ctlfunction
	version - 3.3.0.
	provider-name - Javlin a.s.
		ctlfunction { libraryName = math; className = org.jetel.ctl.extensions.MathLib; }
		ctlfunction { libraryName = date; className = org.jetel.ctl.extensions.DateLib; }
		ctlfunction { libraryName = string; className = org.jetel.ctl.extensions.StringLib; }
		ctlfunction { libraryName = convert; className = org.jetel.ctl.extensions.ConvertLib; }
		ctlfunction { libraryName = container; className = org.jetel.ctl.extensions.ContainerLib; }
		ctlfunction { libraryName = random; className = org.jetel.ctl.extensions.RandomLib; }
		ctlfunction { libraryName = util; className = org.jetel.ctl.extensions.UtilLib; }
		ctlfunction { libraryName = dynamic; className = org.jetel.ctl.extensions.DynamicLib; }

DEBUG [main] - Plugin org.jetel.engine loaded.
	id - org.jetel.engine
	version - 3.3.0.
	provider-name - Javlin a.s.
		dictionaryType { className = org.jetel.graph.dictionary.StringDictionaryType; type = string; }
		dictionaryType { className = org.jetel.graph.dictionary.ObjectDictionaryType; type = object; }
		dictionaryType { className = org.jetel.graph.dictionary.ReadableChannelDictionaryType; type = readable.channel; }
		dictionaryType { className = org.jetel.graph.dictionary.WritableChannelDictionaryType; type = writable.channel; }
		dictionaryType { className = org.jetel.graph.dictionary.IntegerDictionaryType; type = integer; }
		dictionaryType { className = org.jetel.graph.dictionary.LongDictionaryType; type = long; }
		dictionaryType { className = org.jetel.graph.dictionary.DecimalDictionaryType; type = decimal; }
		dictionaryType { className = org.jetel.graph.dictionary.NumberDictionaryType; type = number; }
		dictionaryType { className = org.jetel.graph.dictionary.DateDictionaryType; type = date; }
		dictionaryType { className = org.jetel.graph.dictionary.BooleanDictionaryType; type = boolean; }
		dictionaryType { className = org.jetel.graph.dictionary.ByteDictionaryType; type = byte; }
		dictionaryType { className = org.jetel.graph.dictionary.ListDictionaryType; type = list; }
		dictionaryType { className = org.jetel.graph.dictionary.MapDictionaryType; type = map; }
		tlCompiler { className = org.jetel.ctl.TLCompiler; type = simple.compiler; }
		ctlfunction { libraryName = integral; className = org.jetel.ctl.extensions.IntegralLib; }

DEBUG [main] - Plugin org.jetel.jdbc loaded.
	id - org.jetel.jdbc
	version - 3.3.0.
	provider-name - Javlin a.s.
		jdbcSpecific { name = Generic; class = org.jetel.connection.jdbc.specific.impl.DefaultJdbcSpecific; database = GENERIC; }
		jdbcSpecific { name = DB2; class = org.jetel.connection.jdbc.specific.impl.DB2Specific; database = DB2; }
		jdbcSpecific { name = Derby; class = org.jetel.connection.jdbc.specific.impl.DerbySpecific; productName = Apache Derby; database = DERBY; }
		jdbcSpecific { name = Firebird; class = org.jetel.connection.jdbc.specific.impl.FirebirdSpecific; database = FIREBIRD; }
		jdbcSpecific { name = Generic ODBC; class = org.jetel.connection.jdbc.specific.impl.GenericODBCSpecific; database = GENERICODBC; }
		jdbcSpecific { name = Informix; class = org.jetel.connection.jdbc.specific.impl.InformixSpecific; database = INFORMIX; }
		jdbcSpecific { name = Microsoft Access; class = org.jetel.connection.jdbc.specific.impl.MSAccessSpecific; database = MSACCESS; }
		jdbcSpecific { name = MS SQL Server 2008-2012; class = org.jetel.connection.jdbc.specific.impl.MSSQLSpecific; productName = Microsoft SQL Server; database = MSSQL; }
		jdbcSpecific { name = MS SQL Server 2000-2005; class = org.jetel.connection.jdbc.specific.impl.MSSQLSpecific2005; database = MSSQL2005; }
		jdbcSpecific { name = MySQL; class = org.jetel.connection.jdbc.specific.impl.MySQLSpecific; productName = MySQL; database = MYSQL; }
		jdbcSpecific { name = Oracle; class = org.jetel.connection.jdbc.specific.impl.OracleSpecific; productName = Oracle; database = ORACLE; }
		jdbcSpecific { name = Pervasive; class = org.jetel.connection.jdbc.specific.impl.PervasiveSpecific; database = PERVASIVE; }
		jdbcSpecific { name = PostgreSQL; class = org.jetel.connection.jdbc.specific.impl.PostgreSpecific; database = POSTGRE; }
		jdbcSpecific { name = Sybase; class = org.jetel.connection.jdbc.specific.impl.SybaseSpecific; database = SYBASE; }
		jdbcSpecific { name = SQLite; class = org.jetel.connection.jdbc.specific.impl.SQLiteSpecific; database = SQLITE; }
		jdbcDriver { driverLibrary = lib/mysql/mysql-connector-java-5.1.15-bin.jar; jdbcSpecific = MYSQL; name = MySQL; dbDriver = org.gjt.mm.mysql.Driver; jdbc.zeroDateTimeBehavior = convertToNull; urlHint = jdbc:mysql://hostname:3306/database; database = MYSQL; }
		jdbcDriver { driverLibrary = lib/oracle/ojdbc6.jar; jdbcSpecific = ORACLE; name = Oracle; dbDriver = oracle.jdbc.OracleDriver; urlHint = jdbc:oracle:thin:@host:1521:SID,jdbc:oracle:thin:@cluster-alias:1521/service_name,jdbc:oracle:thin:@(DESCRIPTION=(LOAD_BALANCE=on)(ADDRESS=(PROTOCOL=TCP)(HOST=host1)(PORT=1521))(ADDRESS=(PROTOCOL=TCP)(HOST=host2)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=service_name))),jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=cluster_alias)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=service_name))),jdbc:oracle:thin:@host:1521/service_name; database = ORACLE; }
		jdbcDriver { driverLibrary = lib/postgre/postgresql-8.3-603.jdbc3.jar; jdbcSpecific = POSTGRE; name = PostgreSQL; dbDriver = org.postgresql.Driver; urlHint = jdbc:postgresql://hostname/database; database = POSTGRE; }
		jdbcDriver { driverLibrary = lib/jtds/jtds-1.2.4.jar; jdbcSpecific = MSSQL; name = Microsoft SQL Server; dbDriver = net.sourceforge.jtds.jdbc.Driver; urlHint = jdbc:jtds:sqlserver://hostname:1433/database; database = MSSQL; }
		jdbcDriver { driverLibrary = sun.jdbc.odbc.JdbcOdbcDriver; jdbcSpecific = GENERICODBC; name = Generic ODBC; dbDriver = sun.jdbc.odbc.JdbcOdbcDriver; urlHint = jdbc:odbc:dsn_source;; database = GENERICODBC; }
		jdbcDriver { driverLibrary = sun.jdbc.odbc.JdbcOdbcDriver; jdbcSpecific = MSACCESS; name = Microsoft Access; dbDriver = sun.jdbc.odbc.JdbcOdbcDriver; urlHint = jdbc:odbc:driver={Microsoft Access Driver (*.mdb)};DBQ=database_file,jdbc:odbc:driver={Microsoft Access Driver (*.mdb, *.accdb)};DBQ=database_file,jdbc:odbc:odbc_source_name; database = MSACCESS; }
		jdbcDriver { driverLibrary = lib/jtds/jtds-1.2.4.jar; jdbcSpecific = SYBASE; name = Sybase; dbDriver = net.sourceforge.jtds.jdbc.Driver; urlHint = jdbc:jtds:sybase://hostname:7100/database; database = SYBASE; }
		jdbcDriver { driverLibrary = lib/sqlite/sqlite-jdbc-3.6.20.1.jar; jdbcSpecific = SQLITE; name = SQLite; dbDriver = org.sqlite.JDBC; urlHint = jdbc:sqlite:C:/database; database = SQLITE; }
		jdbcDriver { driverLibrary = lib/derby/derbyclient.jar; jdbcSpecific = DERBY; name = Derby; dbDriver = org.apache.derby.jdbc.ClientDriver; urlHint = jdbc:derby://hostname:1527/derby.db; database = DERBY; }
		jdbcDriver { driverLibrary = lib/firebird/jaybird-full-2.1.6.jar; jdbcSpecific = FIREBIRD; name = Firebird; dbDriver = org.firebirdsql.jdbc.FBDriver; urlHint = jdbc:firebirdsql:localhost/3050:/firebird/test.gdb; database = FIREBIRD; }

DEBUG [main] - Plugin org.jetel.license loaded.
	id - org.jetel.license
	version - 3.3.0.
	provider-name - Javlin a.s.

DEBUG [main] - Plugin org.jetel.lookup loaded.
	id - org.jetel.lookup
	version - 3.3.0.
	provider-name - Javlin a.s.
		lookup { className = org.jetel.lookup.SimpleLookupTable; type = simpleLookup; }
		lookup { className = org.jetel.lookup.DBLookupTable; type = dbLookup; }
		lookup { className = org.jetel.lookup.RangeLookupTable; type = rangeLookup; }

DEBUG [main] - Plugin org.jetel.sequence loaded.
	id - org.jetel.sequence
	version - 3.3.0.
	provider-name - Javlin a.s.
		sequence { className = org.jetel.sequence.SimpleSequence; type = SIMPLE_SEQUENCE; }
		sequence { className = org.jetel.sequence.PrimitiveSequence; type = PRIMITIVE_SEQUENCE; }

DEBUG [main] - Plugin org.jetel.thirdparty loaded.
	id - org.jetel.thirdparty
	version - 3.3.0.
	provider-name - Javlin a.s.
		component { className = org.jetel.component.Filter; type = FILTER; }
		component { className = com.linagora.component.LdapReader; type = LDAP_READER; }
		component { className = com.linagora.component.LdapWriter; type = LDAP_WRITER; }

DEBUG [main] - Plugin org.jetel.tlfunction loaded.
	id - org.jetel.tlfunction
	version - 3.3.0.
	provider-name - Javlin a.s.
		tlfunction { libraryName = math; className = org.jetel.interpreter.extensions.MathLib; function = sqrt,log,log10,exp,round,pow,pi,e,random,random_gaussian,random_boolean,random_int,random_long,abs,bit_and,bit_or,bit_xor,bit_set,bit_invert,bit_is_set,bit_lshift,bit_rshift; }
		tlfunction { libraryName = date; className = org.jetel.interpreter.extensions.DateLib; function = today,dateadd,datediff,trunc,trunc_date,random_date; }
		tlfunction { libraryName = string; className = org.jetel.interpreter.extensions.StringLib; function = concat,uppercase,lowercase,substring,left,right,trim,length,replace,split,char_at,is_blank,is_ascii,is_number,is_integer,is_long,is_date,remove_diacritic,remove_blank_space,get_alphanumeric_chars,translate,join,index_of,count_char,chop,remove_nonprintable,remove_nonascii,find,cut,random_string; }
		tlfunction { libraryName = convert; className = org.jetel.interpreter.extensions.ConvertLib; function = num2str,date2str,str2date,date2num,str2num,try_convert,base64byte,byte2base64,bits2str,str2bits,hex2byte,byte2hex,num2num,num2bool,bool2num,str2bool,long2date,date2long,to_string,md5,sha,long2pacdecimal,pacdecimal2long,get_field_name,get_field_type; }
		tlfunction { libraryName = container; className = org.jetel.interpreter.extensions.ContainerLib; function = remove_all,push,pop,poll,remove,insert,sort,copy,reverse,dict_put_str,dict_get_str; }

[Fatal Error] :1:1: Content ist nicht zulässig in Prolog.
ERROR [main] - Error when parsing graph's XML definition --> on line 1 row 1
org.xml.sax.SAXParseException; lineNumber: 1; columnNumber: 1; Content ist nicht zulässig in Prolog.
	at com.sun.org.apache.xerces.internal.parsers.DOMParser.parse(Unknown Source)
	at com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderImpl.parse(Unknown Source)
	at javax.xml.parsers.DocumentBuilder.parse(Unknown Source)
	at org.jetel.graph.TransformationGraphXMLReaderWriter.prepareDocument(TransformationGraphXMLReaderWriter.java:260)
	at org.jetel.graph.TransformationGraphXMLReaderWriter.read(TransformationGraphXMLReaderWriter.java:300)
	at org.jetel.graph.TransformationGraphXMLReaderWriter.loadGraph(TransformationGraphXMLReaderWriter.java:231)
	at org.company.components.NewComponent.main(NewComponent.java:36)
org.jetel.exception.XMLConfigurationException: org.xml.sax.SAXParseException; lineNumber: 1; columnNumber: 1; Content ist nicht zulässig in Prolog.
	at org.jetel.graph.TransformationGraphXMLReaderWriter.prepareDocument(TransformationGraphXMLReaderWriter.java:268)
	at org.jetel.graph.TransformationGraphXMLReaderWriter.read(TransformationGraphXMLReaderWriter.java:300)
	at org.jetel.graph.TransformationGraphXMLReaderWriter.loadGraph(TransformationGraphXMLReaderWriter.java:231)
	at org.company.components.NewComponent.main(NewComponent.java:36)
Caused by: org.xml.sax.SAXParseException; lineNumber: 1; columnNumber: 1; Content ist nicht zulässig in Prolog.
	at com.sun.org.apache.xerces.internal.parsers.DOMParser.parse(Unknown Source)
	at com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderImpl.parse(Unknown Source)
	at javax.xml.parsers.DocumentBuilder.parse(Unknown Source)
	at org.jetel.graph.TransformationGraphXMLReaderWriter.prepareDocument(TransformationGraphXMLReaderWriter.java:260)
	... 3 more
Exception in thread "main" java.lang.NullPointerException
	at org.jetel.graph.runtime.EngineInitializer.initGraph(EngineInitializer.java:248)
	at org.company.components.NewComponent.main(NewComponent.java:44)

```

I dont understand the problem and all javadoc and forum reads cant help me.  
Sorry for my maybe stupid posts!

Thanks for your help

---

<div class="post-metadata">

**Author:** ![David\_Hlidek](https://avatars.discourse-cdn.com/v4/letter/d/58f4c7/32.png) [@David\_Hlidek](https://forum.cloverdx.com/u/David_Hlidek)\
**Post date:** [January 15, 2013, 12:47pm UTC](https://forum.cloverdx.com/t/simple-run-from-java-class/1151/8 "2013-01-15T12:47:34Z")

</div>

Hi,

now there are 2 problems:

1] second parameter EngineInitializer.initEngine should be path to engine properties file, as I mentioned last time. It is plain key=value file, not xml. Please take a look into referred documentation.

2] use runtimeContext.setContextURL(workspace\_prm\_folder) to define folder where workspace.prm is located

I hope this helps.

---

<div class="post-metadata">

**Author:** ![aruehmann](https://avatars.discourse-cdn.com/v4/letter/a/f08c70/32.png) [@aruehmann](https://forum.cloverdx.com/u/aruehmann)\
**Post date:** [January 16, 2013, 2:45pm UTC](https://forum.cloverdx.com/t/simple-run-from-java-class/1151/9 "2013-01-16T14:45:31Z")

</div>

Thank you but i cant fix the problem

> 1] second parameter EngineInitializer.initEngine should be path to engine properties file, as I mentioned last time. It is plain key=value file, not xml. Please take a look into referred documentation.

where is the path to engine? I cant find the “org/jetel/data/” subdirectory!

I was unable to create a local defaultProperties file on my own.

How can i fix the problem this is the last test for my evaluation.  
I need for my company a running version next week please help me.

Thank you

---

<div class="post-metadata">

**Author:** ![David\_Hlidek](https://avatars.discourse-cdn.com/v4/letter/d/58f4c7/32.png) [@David\_Hlidek](https://forum.cloverdx.com/u/David_Hlidek)\
**Post date:** [January 16, 2013, 2:52pm UTC](https://forum.cloverdx.com/t/simple-run-from-java-class/1151/10 "2013-01-16T14:52:35Z")

</div>

Hi,

In [http://sourceforge.net/projects/clovere … p/download](http://sourceforge.net/projects/cloveretl/files/cloveretl.engine/rel-3.3.0/cloverETL.src.rel-3-3-0.zip/download) is file “cloverETL\cloveretl.engine\src\org\jetel\data\defaultProperties”. That is it.

---

<div class="post-metadata">

**Author:** ![aruehmann](https://avatars.discourse-cdn.com/v4/letter/a/f08c70/32.png) [@aruehmann](https://forum.cloverdx.com/u/aruehmann)\
**Post date:** [January 16, 2013, 3:58pm UTC](https://forum.cloverdx.com/t/simple-run-from-java-class/1151/11 "2013-01-16T15:58:44Z")

</div>

Thanks,

my graph runs perfect with the new defaultPropertie file in clover.

In java i had the same mistake:

```auto

package org.company.components;

import java.io.IOException;
import java.io.InputStream;
import java.net.URL;

import org.jetel.exception.ComponentNotReadyException;
import org.jetel.exception.GraphConfigurationException;
import org.jetel.exception.XMLConfigurationException;
import org.jetel.graph.TransformationGraph;
import org.jetel.graph.TransformationGraphXMLReaderWriter;
import org.jetel.graph.runtime.EngineInitializer;
import org.jetel.graph.runtime.GraphRuntimeContext;
import org.jetel.graph.runtime.IThreadManager;
import org.jetel.graph.runtime.SimpleThreadManager;
import org.jetel.graph.runtime.WatchDog;

import de.schlichtherle.io.FileInputStream;

public class NewComponent {
	public static void main(String[] args) throws IOException
	{
		  // engine customization
		  GraphRuntimeContext runtimeContext = new GraphRuntimeContext();

		   TransformationGraph graph = null;
		   InputStream graphInputStream = null;
		   
		   URL workspace = new URL("file:///C:/cloverETL");
		  
		  // engine initialization - should be called only once
		  runtimeContext.setContextURL(workspace); 
		  
		  EngineInitializer.initEngine("D:\\eclipse\\plugins\\com.cloveretl.gui_3.3.0.021P\\lib\\plugins", "C:\\Users\\aruehmann\\Desktop\\cloverETL\\defaultProperties", "");

		  
		  graphInputStream = new FileInputStream("C:\\cloverETL\\workspace.prm");
		  // graph loading
		try {
			graph = TransformationGraphXMLReaderWriter.loadGraph(graphInputStream, runtimeContext);
		} catch (XMLConfigurationException | GraphConfigurationException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}

		  // engine initialization
		  try {
			EngineInitializer.initGraph(graph, runtimeContext);
		} catch (ComponentNotReadyException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}

		  // graph running
		  IThreadManager threadManager = new SimpleThreadManager();
		  WatchDog watchDog = new WatchDog(graph, runtimeContext);
		  threadManager.executeWatchDog(watchDog);
	}
}

```

```auto

[Fatal Error] :1:1: Content ist nicht zulässig in Prolog.
ERROR [main] - Error when parsing graph's XML definition --> on line 1 row 1
org.xml.sax.SAXParseException; lineNumber: 1; columnNumber: 1; Content ist nicht zulässig in Prolog.
	at com.sun.org.apache.xerces.internal.parsers.DOMParser.parse(Unknown Source)
	at com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderImpl.parse(Unknown Source)
	at javax.xml.parsers.DocumentBuilder.parse(Unknown Source)
	at org.jetel.graph.TransformationGraphXMLReaderWriter.prepareDocument(TransformationGraphXMLReaderWriter.java:260)
	at org.jetel.graph.TransformationGraphXMLReaderWriter.read(TransformationGraphXMLReaderWriter.java:300)
	at org.jetel.graph.TransformationGraphXMLReaderWriter.loadGraph(TransformationGraphXMLReaderWriter.java:231)
	at org.company.components.NewComponent.main(NewComponent.java:40)
org.jetel.exception.XMLConfigurationException: org.xml.sax.SAXParseException; lineNumber: 1; columnNumber: 1; Content ist nicht zulässig in Prolog.
	at org.jetel.graph.TransformationGraphXMLReaderWriter.prepareDocument(TransformationGraphXMLReaderWriter.java:268)
	at org.jetel.graph.TransformationGraphXMLReaderWriter.read(TransformationGraphXMLReaderWriter.java:300)
	at org.jetel.graph.TransformationGraphXMLReaderWriter.loadGraph(TransformationGraphXMLReaderWriter.java:231)
	at org.company.components.NewComponent.main(NewComponent.java:40)
Caused by: org.xml.sax.SAXParseException; lineNumber: 1; columnNumber: 1; Content ist nicht zulässig in Prolog.
	at com.sun.org.apache.xerces.internal.parsers.DOMParser.parse(Unknown Source)
	at com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderImpl.parse(Unknown Source)
	at javax.xml.parsers.DocumentBuilder.parse(Unknown Source)
	at org.jetel.graph.TransformationGraphXMLReaderWriter.prepareDocument(TransformationGraphXMLReaderWriter.java:260)
	... 3 more
Exception in thread "main" java.lang.NullPointerException
	at org.jetel.graph.runtime.EngineInitializer.initGraph(EngineInitializer.java:248)
	at org.company.components.NewComponent.main(NewComponent.java:48)

```

Whats wrong i use the defaultProperties file and set Conext URL right!  
It is a simple graph to transform csv data in xls data.

Is there a easier way to execute my graph from java or can you help me to fix the problems?

Thank you very much for your help and time

Andree

---

<div class="post-metadata">

**Author:** ![David\_Hlidek](https://avatars.discourse-cdn.com/v4/letter/d/58f4c7/32.png) [@David\_Hlidek](https://forum.cloverdx.com/u/David_Hlidek)\
**Post date:** [January 17, 2013, 9:05am UTC](https://forum.cloverdx.com/t/simple-run-from-java-class/1151/12 "2013-01-17T09:05:40Z")

</div>

Hi,

Seems to me from your Java code, you are trying to load workspace.prm file (parameters passed to graph) instead of \*.grf graph file.

```auto

graphInputStream = new FileInputStream("C:\\cloverETL\\workspace.prm");
        // graph loading
      try {
         graph = TransformationGraphXMLReaderWriter.loadGraph(graphInputStream, runtimeContext);
      } catch (XMLConfigurationException | GraphConfigurationException e) {
         // TODO Auto-generated catch block
         e.printStackTrace();
      }

```

change to something like:

```auto

graphInputStream = new FileInputStream("C:\\cloverETL\\graphs\\myGraphName.grf");

```

---

<div class="post-metadata">

**Author:** ![aruehmann](https://avatars.discourse-cdn.com/v4/letter/a/f08c70/32.png) [@aruehmann](https://forum.cloverdx.com/u/aruehmann)\
**Post date:** [January 18, 2013, 1:03pm UTC](https://forum.cloverdx.com/t/simple-run-from-java-class/1151/13 "2013-01-18T13:03:57Z")

</div>

Thank you its work fine.

I changed the graphInputStream that was the mistake.

Im very happy thank you for all your help.

Best regards,  
Andree
