The next major release of the Pentaho Platform will include significant enhancements to OSGI support. Many of these features are in active development and may or may not make it in the next release. Those that do make it in may be modified from how they're described here.
The enhancements to the OSGI environment break down into several areas:
- Core OSGI / Karaf Infrastructure
- Infrastructure to integrate with the Non-OSGI elements of our product
- Related with the previous, components facilitating the migration of existing code into OSGI
- New features being developed within OSGI
The Felix OSGI environment that shipped with 5.1 has been replaced by Apache Karaf. Karaf is a full application framework built on-top of the bare OSGI runtime. I provides such services as Hot Deployment, Provisioning, Runtime Configuration changes, remote SSH access and JMX integration. We have a slightly customized Karaf assembly deployed within the BA and DI Servers as well as within the PDI-OSGI-Bridge (described later). Documentation for the Karaf Assembly is located at Apache Karaf environment and Assembly
Karaf provisions bundles through logical collections called Features. Pentaho has created many features for the 6.0 development work. You can browse short summaries of the features here: Pentaho's Apache Karaf Features
Integration and Migration Work
PDI OSGI Bridge
6.0 ships with the PDI-OSGI-Bridge plugin in both the client and server environments. It enables the development of PDI plugins from within OSGI. Details of how to take advantage of the bridge are located here: OSGI-enabled Kettle. All new PDI plugins will be developed as OSGI Bundles and many of the existing ones will be converted in future releases.
The Karaf environment supplies many features which have been integrated with the server. Authentication into the Karaf container is done using Spring Security. The HTTP Servlet environment exposed to OSGI is bridged out to the Application Server the product is running within (Tomcat). Other systems have been ported or re-written within the OSGI environments such as RequireJS configuration, Localization and Configuration. Most of these are detailed below.