JSR 291 approved despite Sun's No vote

JSR 291 is a specification for a dynamic component framework based on the OSGi model. It just passed its Final Approval Ballot with 12 yes votes and 2 no votes. One of the no votes was from Sun.

JSR 291 is a specification for a dynamic component framework based on the OSGi model. It just passed its Final Approval Ballot with 12 yes votes and 2 no votes. One of the no votes was from Sun, which wrote:

The JSR 291 specification is simply a reference to the OSGi Core spec version r4. No other specification work has been created in the context of the JCP JSR 291 expert group. Rather the work to update the r4 spec occurred in the OSGi working group.

This manner of working contradicts the goals of the JCP to create expert groups empowered to evolve Java technology with the freedom to make design choices and technical decisions based on the needs of the Java Community.

In other words, Sun objected to the JCP simply "rubber-stamping" the work of the OSGi. Many others disagreed. When voting Yes, the Nortel representative wrote:

This JSR is demonstrates, how the work done by other technical bodies can be incorporated to strengthen Java. It is not about just giving a rubber stamped JSR number, but providing a channel to leverage and enhance the interoperability with other non-java concepts. JCP EC should continue promoting similar alliances, instead of rejecting concepts just because it was not invented or enhanced by Java community.

On the jsr-291 expert group mailing list, opinion was uniformly positive. For example Andy Piper of BEA wrote:

The fact that JSR-291 represented a relatively light specification workload is testament to the quality of the OSGi specifications, rather than to any notion of "rubber-stamping".

Part of the premise of adopting 291 was the assumption that OSGi was a mature technology, so a very lengthy, involved process would have invalidated one of the key starting assumptions.

And Jon Bostrom from Nokia summed it up quite well:

My old boss Bill Joy one of the founders of Sun used to say that no matter what company you work for, all of the smart people in the world do not work there. So you should create an environment where those smart people can make your company better. I think that this applies to the JCP as well. As people try to use Java for more and more things, the JCP needs to be open to bringing in good ideas from other places, standards bodies, Open source, etc....

As a 27 year veteran of software I have seen how the "not invented here" syndrome has created costly and fragmented solutions in many companies time and time again. Because of this I applaud the work of JCP and OSGi in JSR 232 and JSR 291 to leverage each other and create a unified solution that can be used by the largest audience possible. This approach benefits us all by helping to make a bigger Java Pie for us all to enjoy!

Sun is sponsoring their own Java Module system under JSR 277 which somewhat overlaps the JSR 291 work. But at JavaOne this year, Sun indicated that JSR 277 would accept modules in different formats including the JSR 291/OSGi format.