Custom CTL Development

Discussion on developing CloverETL engine, transformation components etc.

zone1511
Posts: 1
Joined: Sun Jul 23, 2017 6:45 pm

Custom CTL Development

Postby zone1511 » Tue Jul 25, 2017 8:05 pm

Hi All,
I follow the post http://blog.cloveretl.com/custom-ctl-functions and have the following question regarding the Custom CTL development cycle
1. Is it neeed to seperate the project into two project (CloverETL Engine plugin project and Designer plugin project)? can we combine it into single project?
2. when I updated code in engine plugin project, what steps I needed in order to deploy the change to clover etl engine?
3. If i call the custom ctl function in reformat component which will process say 100 rows, will I get 100 instance of my customize CTL function or i get one instance and its execute method called 100 times?
4. if my customize ctl function need some initialize parameter, should I set it from the graphic's parameter and read it via context.getGraph().getGraphParameteres()?

jandikovae
Posts: 27
Joined: Fri Nov 04, 2016 8:51 am

Re: Custom CTL Development

Postby jandikovae » Thu Aug 03, 2017 8:39 am

Hi,
Please accept my apologies for the delayed response. As the article is from January 2014, I wanted to review first if it is still up to date.

Let me start with answers to your questions:
1. Yes, it is necessary to keep the projects separate. As you can see in the detailed description, one of them (Engine plugin) is a Java Project, and the other one (Designer plugin) is a Plug-in Project from newly installed Eclipse Plug-in Development Environment.
Therefore, you can't combine them because each of them is a different type of plugin and both require a different structure.

2. This whole procedure is a little bit fragile, I am afraid, and if you change something in Engine plugin, you have to make sure that you have also imported the changes properly to the Designer plugin again (step 17-19 in the related Custom Component article). It is recommended to start with the Designer plugin from scratch. Both plugins are then deployed together in the "Export" step at the very end of the procedure.

3. One instance is executed 100 times.

4. This is not standard behavior. However, you should be able to use context.getGraph.getParameters function. Or did you mean, by any chance, function argument?

In addition, the article has been published a couple of years ago and has been tested in 3.5 version. I was able to confirm that it is still working in 4.7-M1, however, you should update the plugin.xml file (created automatically after assigning an extension to the Designer plugin). Please add the following to the <enginePlugin> section in the plugin.xml file and replace the pluginId with the right value:

Code: Select all

<exportedPlugin
        pluginId="NameOfEnginePluginProject">
</exportedPlugin>


While reviewing the whole article I have also noticed that it is quite hard to follow the instructions using two articles together, therefore we have decided to rewrite the article and add some valuable updates. If you are interested in the new article, please send us your contact information to support@cloveretl.com so that we can inform you when it is ready.

Thanks Eva
---
Eva Jandikova
CloverCARE Support
CloverETL | Rapid Data Integration

Visit us online at http://www.cloveretl.com
How to speed up communication with CloverCARE support

jandikovae
Posts: 27
Joined: Fri Nov 04, 2016 8:51 am

Re: Custom CTL Development

Postby jandikovae » Wed Sep 06, 2017 12:33 pm

Hi,
A new article has been published today regarding the Custom CTL functions. Please review the following link:

http://blog.cloveretl.com/extending-ctl-with-java-functions

Best Regards, Eva
---
Eva Jandikova
CloverCARE Support
CloverETL | Rapid Data Integration

Visit us online at http://www.cloveretl.com
How to speed up communication with CloverCARE support