Custom component and 3.0.0 release

Hi.

I’ve got a problem with the new 3.0.0 release of CloverETL Engine.

Indeed I can’t use a custom component without putting in the classpath of my program the custom component jar.

Otherwise I have this error message :

*******************************************************************************
ERROR [main] - Unknown component: BUFFER_COMPARE class: com.infodb.component.BufferCompare
java.lang.ClassNotFoundException: com.infodb.component.BufferCompare
*******************************************************************************

Yet, at the beginning of the process, the component seems to be well loaded as you can see below :

*******************************************************************************
DEBUG [main] - Plugin com.infodb.component loaded.
id - com.infodb.component
version - 3.0.0
provider-name - null
component { className = com.infodb.component.BufferCompare; type = BUFFER_COMPARE; }
*******************************************************************************

Have I missed something in the migration to 3.0.0 release?

Thanks for your help.

Maxime.

Hello Maxani,
it should work. Do you run CloverETL from command line or from Eclipse?

Hi.

Actually it works great from Eclipse but not from command line.

It did work with release 2.9.4 with the same main program.

Any idea ?

This is is strange.
Try to compare Eclipse command line with your one. To see what Eclipse exactly executes go to Window → Show view → Other → Debug → Debug. Then when you right click on the clover launch, there is Properties item in the context menu. You can see command line, that Eclipse executes to run the graph.

The command lines are the same.

The problem is that my custom component class is in the same Java project. That’s why Eclipse may see it even if it’s not in the classpath of the command line.

But when I make the package with my custom component in plugin folder and execute it from command line the jvm doesn’t see it. I really have to put it in the classpath of the executable jar file’s manifest file to make it work.

Seems that loading of my custom component fails even if log output says “loaded” !

I can’t reproduce the issue. Do you have runtime tag in your plugin.xml file?
Following example works properly:

<plugin
   id="com.agata.components" version="1.0">

    <runtime>
        <library path="agata.jar"/>
       </runtime> 

    <extension point-id="component">
        <parameter id="className" value="com.agata.components.Agata"/>
        <parameter id="type" value="AGATA"/>
    </extension>

</plugin>

OK I’m very sorry. It’s my fault.
I made an unfortunate Copy/Paste then the runtime tag was wrong.

Now it works.

Thanks a lot and sorry again.