Six Stars

Unable to Build Routes in 7.0.1 ESB with Nested Talend Jobs

Following upgrade of project from 6.5 to 7.0.1, routes which contained a Talend job (using cTalendJob) that calls a sub-job (with tRunJob) fail to build.


It appears that the the way in which jobs are built in 7.0.1 has changed from 6.5. In 7.0.1 it seems that each Talend Job has it's own module id (routeName_jobName), whereas in 6.5 only the job called by cTalendJob appears as a module, and the module includes and sub-jobs called by tRunJob.


Building my simplified test case, the generated "pom-feature.xml" file, both the TestMainJob and TestSubJob appear as "install" instructions, but when reviewing the lastGenerated.log file, only the last shown install instruction seems to have happened.

There is a warning message that suggests that there shouldn't be two such entries:

[WARNING] 'build.plugins.plugin.(groupId:artifactId)' must be unique but found duplicate declaration of plugin org.apache.maven.plugins:maven-install-plugin @ line 51, column 15


This results in the route failing to build, since the dependency is on TestMainJob, but only TestSubJob has been installed. I can't see what causes the order of these modules to be created.


There is a nasty side-effect too. If the module had previously been built successfully, such as without the sub-job being called, the route .kar is built with the old version of TestMainJob because only TestSubJob has been installed, but the old version of TestMainJob remains in the repository, and is included in the (now apparently successfully but incorrectly) built .kar file.


I've looked at this issue every which way I can, and the only thing I can think of is that there is a bug with the way the pom-feature.xml is generated. I really don't want to have to do a new deployment with the old version, but without fixing this issue, I can't use 7.0.1.

If anyone can point me in the right direction as to how to fix this, that would be great - even if it means updating the source-code and rebuilding.