OSGi took center stage at EclipseCon yesterday as conference attendees heard talks explaining why they should use this open-source application framework, even while others groused that the application model delineated by OSGi was too complex to implement yet.
The OSGi Alliance and the Eclipse Foundation have spent a lot of time and effort evangelizing the OSGi application framework, but even Eclipse Foundation director Mike Milinkovich admitted that enterprise users aren’t quite up to speed on the technology. “For enterprise application developers, just giving them the bare-bones OSGi programming model and saying ‘Good luck with that’ is not the solution,” he said.
While OSGi use remains strong for developers building on top of Eclipse and for vendors, uptake has been slow inside enterprises, said Jason van Zyl, creator of Apache Maven and founder of Sonatype, which sells OSGi bundle-making tools. OSGi is a set of specifications that define a component system for Java.
One of the reasons for that lack of uptake is that the OSGi development model is quite complicated, said van Zyl. For non-Eclipse projects, building an application that adheres to OSGi design principles is difficult, he added. Another issue, according to him, has been a lack of tools for building and dealing with OSGi-deployable artifacts.
Another company, Paremus, has built an OSGi shell that functions in a manner similar to Red Hat’s yum and Debian’s apt-get. The tool pulls down all the OSGi bundles needed to make a specific project run, and then properly installs them.
Another reason for slow OSGi adoption has been the lack of reference implementations for enterprise users. The Eclipse Foundation announced the release of two new projects aimed at offering enterprise users a view of how to build with OSGi: Eclipse Virgo and Eclipse Gemini.
Eclipse Virgo, formerly the application server known as DM Server, was created by SpringSource. Virgo gives developers a version of Eclipse designed specifically to function as a runtime environment for enterprise applications, and it allows developers to bring existing Spring applications into an OSGi-based environment with little recoding required.
Eclipse Gemini, on the other hand, is a reference implementation of the OSGi Alliance Enterprise standards 4.2, which were completed earlier this year. It is designed to show developers how to build systems based on the OSGi framework.
For developers building applications on top of Eclipse, the big news at EclipseCon was around the rewrite of the platform, known as Eclipse 4 (E4). For mainline developers, E4 won’t change much; CDT and JDT are both being left largely alone by this update. What is being changed is the underlying architecture. The focus is on preparing Eclipse to become the basic framework for building services and applications.
“E4 as a platform is more relevant to people today who are building RCP applications,” said Milinkovich. “It’s not going to fundamentally change the Java tools. For people building desktop applications with Eclipse, it’s a significant step forward. They can use style sheets to change the look of an application. It will make it easier to break the hard-coded dependencies within the Eclipse workbench, and to turn that into a set of model relationships. People are starting to talk about it.”
E4 should arrive at the end of July, if the road map holds fast. Milinkovich said the project is gaining a head of steam, and it should be on track to meet that deadline.
The Eclipse Foundation wasn’t the only group with new software to discuss at EclipseCon. Red Hat announced the release of JBoss Enterprise SOA Platform 5.0. This updated SOA suite includes an ESB, transformations and a new rules engine. The company also announced the release of JBoss Developer Studio 3.0, which brings tools specific to the JBoss platform into this Eclipse-based IDE.
Excelsior was on hand to demonstrate Excelsior JET, which is designed to keep Eclipse RCP applications secure when deployed in the field. JET is a Java SE 6 virtual machine that uses an ahead-of-time compiler to obscure JAR files. JET also modifies bytecode to hamper decompilation, and it allows developers to time-limit their RCP applications for distribution as demonstration materials.
Instantiations released versions 5.0 of WindowTester Pro and WindowBuilder Pro. Chief on the update list were speed improvements to accelerate the running of tests and building of GUIs. In addition, developers using WindowTester Pro can now insert their own conditions for tests, rather than relying on simply timeouts to determine success or failure. WindowTester Pro 5.0 also adds further support for Linux.