Version 4.2 of OSGi Java component technology available
The OSGi Alliance has released version 4.2 of the OSGi (Open Service Gateway initiative) specification. OSGi is a Java component technology which serves as a basis for development environments like Eclipse. The OSGi components, called bundles, export code and services to others. They can be installed and exchanged individually at runtime. As a result, OSGi allows software modules to be dynamically discovered at runtime. The platform requires a Java Virtual Machine (JVM) and provides a JVM-based OSGi framework.
Among other things, the new version stipulates how to launch OSGi engines transparently. This allows an application to, for example, be tested with the Equinox or Felix engines by replacing the respective JAR (Java Archive) in the bootstrap classpath. Formerly known as distributed OSGi, Remote Services now provide connections between OSGi-based virtual machines.
The Blueprint Service feature behaves in a similar way to the Spring Framework's Inversion-of-Control and Dependency-Injection mechanisms. It allows clients to determine which of the services with external configuration files are to be wired dynamically. Bundle Tracker is an extension to the previously existing Service Tracker. The new tracker is designed to provide an overview of the incoming and outgoing bundles. Other enhancements include the ability to intercept events between services and an ability to explicitly deny access through the permissions system.
Popular open source implementations of the specification are Apache Felix and Eclipse Equinox; almost all enterprise application vendors use OSGi to provide modularised Java software. Examples include IBM WebSphere, Oracles WebLogic, JBoss and Sun GlassFish Enterprise Server. SAP also plans to base the next generation of its NetWeaver platform on OSGi.
The current versions of Equinox (version 3.5), which is developed under the umbrella of the Eclipse Foundation, and Apache's Felix (version 2.0) are already being upgraded to provide compatibility, but neither can be called OSGi 4.2 compliant yet.