Customer Portal

Documentation out of date

Comments 6

  • Avatar
    avackova
    0
    Comment actions Permalink
    Hello,
    this code is valid for CloverETL 3.1 as well. What error message do you get during the execution?
  • Avatar
    dbrock
    0
    Comment actions Permalink
    Agata, thanks for getting back to me. Here is the error I see. It occurs at run-time, the java compilation step. The reason I concluded the java interface changed is when I started a new denormalizer component and "converted to java", I noticed the override methods had changed. Am I barking up the wrong tree?

    INFO [main] - Compiling dynamic class MyDenormalize...
    ERROR [main] - Compiler output:\nMyDenormalize.java:14: cannot find symbol
    symbol : class Properties
    location: class MyDenormalize
    public boolean init(Properties parameters,
    ^
    1 error

    ERROR [main] - Error during graph initialization !
    Element [1318434231903:OneTouchTest]-Phase 0 can't be initilized.
    at org.jetel.graph.TransformationGraph.init(TransformationGraph.java:458)
    at org.jetel.graph.runtime.EngineInitializer.initGraph(EngineInitializer.java:202)
    at org.jetel.graph.runtime.EngineInitializer.initGraph(EngineInitializer.java:165)
    at org.jetel.main.runGraph.runGraph(runGraph.java:364)
    at org.jetel.main.runGraph.main(runGraph.java:328)
    Caused by: DENORMALIZER0 ...FAILED !
    Reason: Cannot compile the dynamic class!
    at org.jetel.graph.Phase.init(Phase.java:170)
    at org.jetel.graph.TransformationGraph.init(TransformationGraph.java:456)
    ... 4 more
    Caused by: Cannot compile the dynamic class!
    at org.jetel.util.compile.DynamicJavaClass.instantiate(DynamicJavaClass.java:74)
    at org.jetel.component.Denormalizer.createDenormalizerDynamic(Denormalizer.java:216)
    at org.jetel.component.Denormalizer.createRecordDenormalizer(Denormalizer.java:269)
    at org.jetel.component.Denormalizer.init(Denormalizer.java:241)
    at org.jetel.graph.Phase.init(Phase.java:165)
    ... 5 more
    Caused by: org.jetel.util.compile.CompilationException: Compilation failed! See compiler output for more details.
    at org.jetel.util.compile.DynamicCompiler.compile(DynamicCompiler.java:121)
    at org.jetel.util.compile.DynamicJavaClass.instantiate(DynamicJavaClass.java:66)
    ... 9 more
  • Avatar
    avackova
    0
    Comment actions Permalink
    Hello,
    CTLRecordDenormalize implements RecordDenormalize and it is used, when transformation for Denormalizer is written in CTL2. CloverETL converts CTL2 code to the object extending CTLRecordDenormalize type. But when you write the transformation in java it's better and easier to extend the DataRecordDenormalize type. The error above suggests that you are missing JRE System Library on the class path. Please check it in Project properties - Libraries should contain two entries: Properties.png
    No other CloverETL libraries can be set.
    This new libraries container was introduced in CloverETL 3.1 and all class paths should be fixed manually for projects created in older CloverETL Designer.
  • Avatar
    dbrock
    0
    Comment actions Permalink
    Thanks Agata. I checked the project properties and I do indeed have the JDK1.6 and the Clover Engine libraries on my build path. Not sure what else could confuse the issue. It seems that the compiler is unhappy because it doesn't know what the "Properties" object type is. Is this class definition packaged elsewhere?

    Most importantly, if you take my java code above, does my code compile at runtime in 3.1 for you?

    CloverCompilationIssue.gif
  • Avatar
    avackova
    0
    Comment actions Permalink
    Hello,
    java.util.Properties is part of JRE, so it is included in any java. Your code works properly in my CloverETL Designer 3.1.2.
    Please try to create new CloverETL project and copy all required resources to it. I still believe, that the problem is in the class-path configuration.
  • Avatar
    dbrock
    0
    Comment actions Permalink
    Thanks. Sorry for the wild goose chase. Embarrassingly enough, this was a copy and paste mistake. I was actually missing the import java.util.Properties; line from the top of my java based transform logic.

Please sign in to leave a comment.