Customer Portal

Simple Run from Java Class

Comments 12

  • Avatar
    admin
    0
    Comment actions Permalink
    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.
  • Avatar
    aruehmann
    0
    Comment actions Permalink
    Thanks
    that helps me a lot!

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

    where can i find values for thie parameters?
  • Avatar
    aruehmann
    0
    Comment actions Permalink
    My code:

    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:

    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
  • Avatar
    admin
    0
    Comment actions Permalink
    The signature is:


    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
    * logHost can be kept empty ("")
  • Avatar
    admin
    0
    Comment actions Permalink
    You can also find information in javadoc available at http://sourceforge.net/projects/clovere ... rel-3.3.0/
  • Avatar
    aruehmann
    0
    Comment actions Permalink
    Thanks,
    im sorry but i cant solve the problem...

    my Code:

    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:

    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:

    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
  • Avatar
    admin
    0
    Comment actions Permalink
    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.
  • Avatar
    aruehmann
    0
    Comment actions Permalink
    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
  • Avatar
    admin
    0
    Comment actions Permalink
    Hi,

    In http://sourceforge.net/projects/clovere ... p/download is file "cloverETL\cloveretl.engine\src\org\jetel\data\defaultProperties". That is it.
  • Avatar
    aruehmann
    0
    Comment actions Permalink
    Thanks,

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

    In java i had the same mistake:

    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);
    }
    }



    [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
  • Avatar
    admin
    0
    Comment actions Permalink
    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.


    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:


    graphInputStream = new FileInputStream("C:\\cloverETL\\graphs\\myGraphName.grf");
  • Avatar
    aruehmann
    0
    Comment actions Permalink
    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

Please sign in to leave a comment.