InfoQ

InfoQ

News

My Bookmarks

Login or Register to enable bookmarks for unlimited time.

The content has been bookmarked!

There was an error bookmarking this content! Please retry.

JSR 291 (OSGi R4.1) Available for Public Review

Posted by Scott Delap on Dec 13, 2006

Sections
Development
Topics
Java ,
JCP Standards
Tags
OSGi ,
JSR 294 ,
JSR 291 ,
JSR 277
JSR 291 has been made available for public review. JSR 291 is also known as OSGi core spec R4.1. This JSR strives to:
...define a dynamic component framework including component lifecycle for existing Java SE platforms. The dynamic component model will support assembly of applications from components and support implementation detail hiding between components as well as lifecycle management of those components.
OSGi itself has been around as a non-JSR specification for some time. Open source implementations include Equinox which forms the foundation for the Eclipse IDE, Felix, and Knopflerfish. Among the key features:
  • Allows for Reusable and Dynamic Components
  • Classloading allowing reload of parts of the application.
  • Fine-grained Service concept
  • Simple Life Cycle
  • POJO friendly
  • Extremely Light-weight
  • Deploy on Java ME, Java SE, Java EE
  • Good tooling support (Eclipse)

Expert group member Niclas Hedhman broke the news of the public review on his blog. The JSR 291 website has not been updated to reflect this change yet. In the meantime the draft is available for download on the JSR-291 mail archive.

Many industry veterans are watching the progress of this JSR in comparison to JSR 277/294. These JSR's are defining the packaging of modules and dynamic deployment in respect to the upcoming Java 7 Dolphin release. JSR 291 is targeted at existing needs and Java SE platforms.  From the specification documentfor 291:

No current JSR (either complete or in process) defines a dynamic component and lifecycle solution to run on top of the existing family of Java SE platforms. However, JSR 232 does include this capability to run on top of Java ME (CDC based platforms) along with a comprehensive set of mobility services.

JSR 277 has been filed to examine changes to the static module definition to be used within the Java SE platform for Java 7 (Dolphin) and beyond. JSR 277 is targeted for specification delivery in 2H/2007 with RI/TCK delivery as an integral part of Dolphin in 2008.

This JSR aims to address the current needs for dynamic components based on existing Java SE platforms. When Dolphin becomes available, the specification lead of this JSR will either perform a maintenance release of this JSR or raise a follow on JSR to add Dolphin to the list of compatible supported platforms and to exploit Dolphin technology for static modules, as appropriate.

Concern has been raised about the seemingly overlapping nature of these three JSR's overall. In the meantime industry use of OSGi has continued to increase in application server development and frameworks such as Spring while JSR 291 has been in development.

10 comments

Watch Thread Reply

Votes by Corby Page Posted
Re: Votes by Corby Page Posted
looking quite promising, Spring support will also mean more adoption by Floyd Marinescu Posted
50k for the RI and TCK by Noah Campbell Posted
Re: 50k for the RI and TCK by Scott Delap Posted
Re: 50k for the RI and TCK by BJ Hargrave Posted
Re: 50k for the RI and TCK by Stephen McConnell Posted
Re: 50k for the RI and TCK by Glyn Normington Posted
Re: 50k for the RI and TCK by Stephen McConnell Posted
Re: 50k for the RI and TCK by Glyn Normington Posted
  1. Back to top

    Votes

    by Corby Page

    The best way to kill this JSR is through votes of the JSR committee. IBM, BEA, Intel, Apache, and Google should be leading the effort to vote no on future deliverables for the JSR. If I count correctly, they should only have to recruit three more 'no' votes to keep this bloat out of Dolphin.

  2. Back to top

    Re: Votes

    by Corby Page

    Sorry, to clarify, I am talking about JSR-277. JSR-291 looks like it's coming along nicely. :)

  3. Back to top

    looking quite promising, Spring support will also mean more adoption

    by Floyd Marinescu

    I'm seeing a lot of interest in OSGi these days. I also had the opportunity to interview Adrian Colyer (Interface21) about Spring's OSGi plans and things are looking quite interesting - exposing Spring apps as OSGi bundles will be made fairly easy.

    I hope that these two competing efforts don't turn into another Sun vs. IBM + the community debate.

  4. Back to top

    50k for the RI and TCK

    by Noah Campbell

    Does anyone know if this is due to a licensing issue with the OSGi?

    -Noah
    www.noahcampbell.info

  5. Back to top

    Re: 50k for the RI and TCK

    by Scott Delap

    Could you clarify what you are referring to in reference to 50k for the RI/TCK? JSR 277 and 294 do not have implementations yet to there is nothing you could purchase. OSGi is an open Java specification. The Eclipse Equinox implementation for instance is open source and has no cost. I really can't think of any way which licensing plays a role in this debate.

  6. Back to top

    Re: 50k for the RI and TCK

    by BJ Hargrave

    The $50K in the JSR 291 filing has nothing to do with OSGi licensing terms. You can see the OSGi spec license at www2.osgi.org/Main/OSGiSpecificationLicense. Something needed to be put in the JSR filing and the $ figure was just an upper bound. I fully expect the RI will come from open source (that is, no cost). The TCK will be licensed at no cost to qualified individuals and open source organizations. Commercial users of the TCK may be charged a fee (capped at $50K per the JSR filing).

  7. Back to top

    Re: 50k for the RI and TCK

    by Stephen McConnell

    Just for reference - is it correct to assume that the OSGI does not have a formal TCK for any of its existing specifications?

  8. Back to top

    Re: 50k for the RI and TCK

    by Glyn Normington

    Just for reference - is it correct to assume that the OSGI does not have a formal TCK for any of its existing specifications?

    No, for example the OSGi Core Specification, referenced by JSR 291, already has a TCK.

  9. Back to top

    Re: 50k for the RI and TCK

    by Stephen McConnell

    Just for reference - is it correct to assume that the OSGI does not have a formal TCK for any of its existing specifications?

    No, for example the OSGi Core Specification, referenced by JSR 291, already has a TCK.


    Thank you for the clarification.
    Is the TCK available to the public?

  10. Back to top

    Re: 50k for the RI and TCK

    by Glyn Normington

    Is the TCK available to the public?


    There are three ways to obtain the OSGi R4 TCK:

    • Pay for the TCK as part of JSR 232

    • I believe the JSR 232 TCK is available at no cost to qualifying open source projects and not-for-profit organisations.

    • Pay to join the OSGi Alliance



    I expect the same to be true of the OSGi R4 V4.1 TCK for JSR 291.

Educational Content

Jesper Boeg on Priming Kanban

In this interview, Jesper Boeg, author of the new InfoQ book – Priming Kanban, discusses the keys to using Kanban effectively, and how to get started if you are currently using other approaches.

New-age Transactional Systems - Not Your Grandpa's OLTP

John Hugg discusses high volume transaction processing applications with high and low frequency profiles, and how VoltDB can be used for that purpose.

Cool Code

Kevlin Henney examines code samples to see what can be learned from them starting from the premise that one won’t write great code unless he knows how to read it.

Collaboration: At the Extremities of Extreme

Jason Ayers share the observations he made watching a team of developers collaborating in real time on the same code base, pushing XP, pair programming and continuous integration to their extremes.

Yesod Web Framework

Michael Snoyman presents Yesod, a web framework written in Haskell and containing a web server, templating, ORM, libraries (templating, gravatar, etc.).

Transactions without Transactions

Richard Kreuter and Kyle Banker on how to avoid classical RDBMS transactional systems by using compensation mechanisms, transactional messaging or transactional procedures.

Attila Szegedi on JVM and GC Performance Tuning at Twitter

Attila Szegedi talks about performance tuning Java and Scala programs at Twitter: how to approach GC problems, the importance of asynchronous I/O, when to use MySQL/Cassandra/Redis, and much more.

10 tips on how to prevent business value risk

One category of risk that project teams need to ensure they address is business value failure – delivering a product that fails to provide value for the business investor.