Yesterday, at EclipseCon, the OSGi EEG has finished the OSGi 4.2 Entreprise Release and made it publicly available. You can downlad it here.
The news includes several new Entreprise use-cases and improves the OSGI programming model. Some JEE technologies has been add to the OSGi specification.
Here is an overview of the main new features :
- Blueprint : This is a standard based on Spring-DM. Like this last, it adds an IOC container to OSGi. It's reallay more comfortable to develop OSGi bundles with Spring DM and now, that's the standard. I think this a great news for the OSGi developers. With that new features, the developer can use the IOC container without binding the application to a specific container.
- Framework Launching : If you wanted to embed an OSGi framework in your application, before this release, you needed to choose one implementation and bind your launching to this implementation. Now OSGi provides a a standard way to start an OSGi Framework.
- Remove Services (and Admin) : Previously Distributed OSGi, this functionality enables your services to be distributed to remote consumers and enables your bundles to consume remote services. Your remote services doesn't need to implement a specific interface, you just have to configure some properties to make your services remote.
- Web Applications : This is a standard way to deploy war files in an OSGI Framework. In the past, we can already do that with PAX-Web by example, but that was not standard. This adds several Manifest Headers (context path by example) and give a way to the web application to communicate with the others bundles.
- JDBC specification : Adds a simple DataSourceFactory class to register the drivers and APIs to get these drivers and DataSource. So you don't need anymore to use complicated private packages to make your JDBC Driver work in your OSGi bundle.
- JPA : Describes a way to use JPA from an OSGi application. That alllows you to update JPA implementation without restarting it and you can have several JPA Providers in the same system. This specification works in pair with the JDBC specification we talked above.
- JNDI : Simple bridge between the OSGi Service Registry and JNDI. Now you can lookup BundleContext or OSGi Service with JNDI. And you can also obtain a JNDI Initial context from OSGi. Your JTA Implementation will be discovered and also appeared in the Service Registry.
- JMX : With this specification you can access to OSGi Framework with JMX. You can install, uninstall, start and stop a bundle and get informations about the installed bundles and services.
The main purposes of this Enterprise Release is to make the deploy of OSGi Framework in enterprise environment easier. But these features can of course also be used in not-enterprise environment.