THINGS TO DO This POC only moved the basic web service functionality to a plugin. There is extra work need to completely move the scheduler to a plugin.
- Remove the "scheduler" module from the "pentaho-platform" project.
- Remove the scheduler dependency from the extensions module on the "pentaho-platform" project. This will cause the project import/export to fail. That needs to be fixed.
- Moving the code to a plugin requires all the links to the scheduler to be fixed.
- The scheduler UI needs to me implemented in the plugin.
- Make sure the PDI scheduling endpoints still work.
- The file browse functionality is not showing the files.
- Fix the issue with loading more than one Plugin life cycle listeners.
- Update the Pentaho pipeline and add the scheduler plugin to the build.
To build the project, from the root folder, execute:
mvn clean install
To deploy the plugin:
- Download the following pentaho-platform branch and build the "scheduler" and "extensions" modules: https://github.com/pentaho/pentaho-platform/tree/BACKLOG-37772
- Copy the resulting pentaho-platform-extensions-9.6.0.0-SNAPSHOT.jar to pentaho-server/tomcat/webapps/pentaho/WEB-INF/lib.
- Remove pentaho-platform-scheduler-9.6.0.0-SNAPSHOT.jar from pentaho-server/tomcat/webapps/pentaho/WEB-INF/lib.
- On the pentaho-server/pentaho-solutions/system directory, remove the listed lines from the indicated files:
-
pentahoObjects.spring.xml:
<bean id="IScheduler2" class="org.pentaho.platform.scheduler2.quartz.QuartzScheduler" scope="singleton"> <pen:publish as-type="INTERFACES"> <pen:attributes> <pen:attr key="priority" value="50"/> </pen:attributes> </pen:publish> </bean>
-
pentahoServices.spring.xml:
<wss:binding url="/webservices/Scheduler"> <wss:service> <ws:service impl="org.pentaho.platform.scheduler2.ws.DefaultSchedulerService"/> </wss:service> </wss:binding> <bean class="org.pentaho.platform.web.http.api.resources.SchedulerResource"/>
-
systemListeners.xml:
<bean id="quartzSystemListener" class="org.pentaho.platform.scheduler2.quartz.EmbeddedQuartzSystemListener" /> <bean id="versionCheckerSystemListener" class="org.pentaho.platform.scheduler2.versionchecker.EmbeddedVersionCheckSystemListener"> <property name="repeatIntervalSeconds"> <value>86400</value> </property> <property name="requestedReleases" value="Minor, GA" /> <property name="disableVersionCheck"> <value>false</value> </property> </bean>
- Expand pentaho-scheduler-plugin-9.6.0.0-SNAPSHOT.zip and drop the scheduler-plugin directory in pentaho-server/pentaho-solutions/system.
- To test, open a browser and go to "http://localhost:8080/pentaho/plugin/scheduler-plugin/api/scheduler/getJobs" You should get an empty jobs XML tag.