GlassFish Server Open Source Edition 3.1 - OSGi

Introduction

The high-level goals for OSGi for 3.1 are to improve upon OSGi technology usage and to integrate the latest Felix and OSGi technology releases.

Scope

Feature ID Priority Description Eng Response Owner(s) Estimate (Man Days) Source of Requirement Status / Comments
OSGi-01 P2 Upgrading core OSGi runtime Yes Richard 25 Performance, specification compliance Complete
OSGi-02 P2 Embeddable GlassFish Yes Sahoo, Richard 30 Expand use case, market demand Complete
OSGi-03 P3 Implementation of various Enterprise OSGi Specs Yes Sahoo, Others ? Specification compliance Mostly complete
OSGi-04 P4 OSGi & Java EE integration (Experimental) Yes Sahoo, Others ? New opportunity Mostly complete
OSGi-05 P4 Generic OSGi Features Yes Richard, Sahoo ? Expand use cases, productivity Started

Feature Overview

Upgrading core OSGi runtime (OSGi-01)

GlassFish will continue to use and distribute Felix as the default OSGi runtime. Currently, GlassFish uses Felix 2.0.2 and in this release we shall upgrade to Felix 3.0.x. Felix 3.0 (yet to be released) has a new resolver which is not only faster, but also has many important bug fixes.

Embeddable GlassFish (OSGi-02)

We will allow GlassFish to be embedded in existing OSGi as well as non-OSGi runtime and yet function like a regular GlassFish. See this for example.

Implementation of Enterprise OSGi Specs (OSGi-03)

In order to support hybrid (OSGi + Java EE) application development, we shall try to implement as many relevant enterprise OSGi specs as possible, but because of resource constraints and other technical issues we may not be able to meet our end goal. At the very least, we shall try to cover the following specs and be compliant with the specs:

OSGi/HTTP Service

RFC #66 (OSGi/Web Container)

RFC #98 (OSGi/JTA)

RFC #122 (OSGi/JDBC)

RFC #142 (OSGi/JNDI) : Due to lack of resource, this won't be done as part of 3.1. We will try to provide alternative means to lookup OSGi services from EE components.

RFC #143 (OSGi/JPA) : Since GlassFish uses EclipseLink as the persistence provider, the implementation will be part of eclipselink.

OSGi & Java EE integration (Experimental) (OSGi-04)

These are to do with features related to hybrid applications that are not currently covered by OSGi enterprise specs, but we shall implement them as we think they are important use cases:

OSGi/EJB Container: Automatic enlistment of EJBs as OSGi services and allow EJBs to run with OSGi context

JPA in hybrid applications: This is not currently covered in RFC #143

JAX-RS and OSGi: Better integration of Jersey bundles in glassfish, explore use of OSGi/HTTP Service by Jersey, etc.

CDI and OSGi: To be explored

Resolve META-INF/services issue in OSGi.

Generic OSGi Features (OSGi-05)

This includes features that are not just specific to enterprise OSGi use case, but they will be very much used by enterprise OSGi users. e.g.,

a) OBR integration: We plan to have OBR integration in place so that GlassFish deployment process can resolve dependencies of bundles via OBR. OBR integration will also help us having a better provisioning story for embedded glassfish use case, for we can then provide a la carte access to GF modules via OBR.

b) Adopt Apache Gogo shell: This provides a scripting environment for administering OSGi runtime

c) Better integration of OSGi web console and admin console

Design Document

one-pager

Milestone Schedule

Item # Date/Milestone Feature-ID Description QA/Docs Handover? Status / Comments
01 M3 OSGi-01   Yes Started. By M2, we would hope to upgrade to Felix 3.0 and buy M3, we would have done final Felix integration for this release.
02 M3 OSGi-02 Complete the feature No Mostly complete.
03 M5 OSGi-03 Complete the feature, run compliance test Docs only Some features are already available, but compliance test execution is pending.
04 M5 OSGi-04 Complete the feature No Mostly complete.
05 M4 OSGi-05 Complete the feature No Not started

Task List

Task Target Milestone Start End Date Owner(s) Feature ID Status / Comments
Integrate Felix 3.0.x M2     Richard OSGi-01-01 Complete - Integrated 3.0.6
Improve module metadata M2     Chriss Casso (He will coordinate with various module owners) OSGi-02-01 Started
Support Embedded GlassFish in OSGi M3     Sahoo, Richard OSGi-02-02 Complete
Verify OSGi HTTP Service implementation specification compliance M4 M2 M4 Sahoo, Mohit OSGi-03-01 Complete, Success ratio:29/29
RFC #66 CT M4 M2 M4 Mohit, Sahoo OSGi-03-02 Started - Need to investigate test failures
RFC #122 CT M4 M3 M4 Mohit, Sahoo OSGi-03-03 Started - success ratio: 5/5 (with embedded derby driver), 4/5 (with any other driver because of CT issue 1841
RFC #98 CT M4 M2 M4 Mohit, Sahoo OSGi-03-04 Started - success ratio: 228/263 - Analysing test failures, issues - 13321 ,13325
RFC #142 M5 M3 M5 Sahoo OSGi-03-05 Dropped - lack of resource
RFC #143 M6     Sahoo OSGi-03-06 Provide sample and document steps for using RFC #143 in GlassFish. Sahoo working with EclipseLink team.
Allow EJBs to run within OSGi context M5     Sahoo OSGi-04-01 Complete
JPA in hybrid applications M3     Sahoo OSGi-04-02 Complete
Support multiple JPA providers for OSGi enterprise applications M5     Sahoo OSGi-04-03 Need to support Hibernate and Open/JPA - Dropped at this point of time
Jesey/OSGi       Jersey Team OSGi-04-04 Complete - See Jersey user guide
Explore use of CDI in hybrid applications M5     Siva OSGi-04-05 Complete, See T-13 in the CDI tasks page
Provide an API to handle META-INF/services in OSGi context M2     Sahoo, Richard OSGi-04-06 Complete
Stop relying on Thread context class loader for META-INF/services M3     Jersey, Metro Team OSGi-04-07  
JCA resource such as jdbc-resource, jms-resource (connection-factory & destination) as OSGi service M2     JCA Team OSGi-04-08 Complete
Make OBR runtime part of GlassFish M2     Sahoo OSGi-05-01 Complete
Integration of OBR with deployment backend M5     Richard OSGi-05-02 Dropped - lack of resource - User advised to use OSGi console to deploy via OBR
Provide a la carte access to GF modules via OBR M4     Richard OSGi-05-03 Dropped - lack of resource
Adopt Apache Felix Gogo shell M4     Richard OSGi-05-04 Complete (Oct. 6, 2010)
Better integration with OSGi Web Console and GF Admin Console M4     Mohit OSGi-05-05 Complete. (usage)

Dev Tests

  • Coming soon

References

Email Alias