Problem setting
Version 1.6.0 of the Pentaho Platform and the PCI (Pre-Configured Installation) went GA before Pentaho Data Integration and shipped with a version 2.5.1 of PDI.
That means that if you want to run your 3.0 transformations on the platform, you need to upgrade the KettleComponent to make use of the new 3.0 API.
The next version of the Pentaho platform has an updated KettleComponent for version 3.0 to work with.
Compiling the new KettleComponent
To modify the Pentaho platform source code to run PDI version 3 transformations and jobs, follow these steps:
- Get the source code for the Pentaho platform version 1.6.0
- Put the new Kettle jar files into directory third-party/lib/ (from PDI directory lib/ )
- kettle-engine-3.0.jar
- kettle-ui-swt-3.0.jar
- add jar file ognl.jar to third-party/lib as well (from PDI directory libext/ )
- If you want to run the webservices step in (3.0.1) then add jar file wstx-asl-3.2.0.jar to third-party/lib as well (from PDI directory libext/webservices )
- modify the source code (org.pentaho.plugin.kettle) of the KettleComponent with these Java classes:
- upgrade the jar file
- third-party/lib/apache/commons-digester-1.7.jar
-
- to the one found in PDI : libext/commons/commons-digester-1.8.jar
- Modify the Pentaho build file (build.xml) to produce and handle Java5 code.
- change the "javac" targets from
- source="1.4" target="1.4"
- to:
- source="1.5" target="1.5"
- change the "javac" targets from
That should allow you to build the Pentaho platform and run the latest Kettle transformations and jobs on it.
If you are not willing to build the code from scratch, there is an alternative exit:
1) Download the pentaho 1.7 PCI and extract the following files from pentaho.war/WEB-INF/lib:
commons-digester-1.8.jar
kettle-engine-3.0.jar
ognl-2.6.9.jar
pentaho-connections-1.7.0.24.jar
pentaho-plugin-1.7.1.jar
2) Copy your current version of open pentaho-plugin-1.6.0.GA.jar and replace the kettle directory with the one from pentaho-plugin-1.7.1.jar
3) Copy the new version of pentaho-plugin-1.6.0.GA.jar and all the files you extracted from the 1.7 version except for the pentaho-plugin-1.7.1.jar and copy them into your pentaho.war/WEB-INF/lib
4) Restart the server and you will be able to load kettle 3.0 transformation from Pentaho ...
I had a problem adding custom plugins because pentaho dont seem to find the jar file anywhere even if you specify it in the kettle-plugins.xml file. So for adding custom plugins I added them directly in the kettle-engine-3.0.jar. To do so it is necessary to add the step to the kettle-stesp.xml and copy the classes inside the kettle-engine.3.jar
Regards
Thanks a lot for the explanation! Maybe it's very obvious but it took me a while to find the right source code packages (see point 1 of the explanation). The packages I had to check out:
svn co svn://source.pentaho.org/svnroot/pentaho/trunk
svn co svn://source.pentaho.org/svnroot/pentaho-solutions/trunk
svn co svn://source.pentaho.org/svnroot/pentaho-commons/trunk
svn co svn://source.pentaho.org/svnroot/pentaho-data/trunk
svn co svn://source.pentaho.org/svnroot/pentaho-preconfiguredinstall/trunk