Page 1 of 1

Custom CTL Development

Posted: Tue Jul 25, 2017 8:05 pm
by zone1511
Hi All,
I follow the post 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()?

Re: Custom CTL Development

Posted: Thu Aug 03, 2017 8:39 am
by jandikovae
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


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 so that we can inform you when it is ready.

Thanks Eva

Re: Custom CTL Development

Posted: Wed Sep 06, 2017 12:33 pm
by jandikovae
A new article has been published today regarding the Custom CTL functions. Please review the following link:

Best Regards, Eva