EclipseCon 2008 took place between the 17:th and the 20:th of March and was held in Santa Clara, California. It is an event for, maybe not that surprising, people working with Eclipse, OSGi and sub-projects built on the Eclipse platform. This year there were 1400 visitors spread out among the four event days. EclipseCon is co-hosted with OSGi DevCon which focuses on the OSGi technology and surrounding projects.
Lots of tutorials
The first day was the tutorial day with 22 simultaneous labs and tutorials. All in
all there were about 80 sessions that you could attend, including “An introduction
to Pax tools for OSGi” hosted by Stuart. Unfortunately we did not have time to
see all of the tutorials, and it was often difficult deciding which ones to attend.
The sessions ranged from “introduction” to “advanced” in both core Eclipse, such as Equinox and the Debugger frameworks, and in the variety of sub-projects such as GMF, eRCP, BIRT etc. One interesting session was about the new debugger service framework, abbreviated as DSF, which supports asynchronous calls to and callbacks from the debug target. Much of the framework is dealing with the issues that stem from working asynchronously.
The framework is created by Windriver, a big player in C/C++ development for embedded devices, because debugging embedded devices in most cases has a different nature than debugging Java code. Embedded devices often have slow communication links and the response often come in data chunks because of optimization issues. These characteristics do not fit well with the standard debugging framework in Eclipse.
The OSGi tutorials were well attended, with the Spring Dynamic Modules tutorial almost standing room only. It was also good to see a lot of interest in the OSGi service registry from plugin developers, who are more used to the Eclipse extension point registry. The overall feeling was that most people knew the basics of OSGi and were now eager to learn best practices and more advanced use.
Fake Steve Jobs
Tuesday was the starting day of the “ordinary” conference. The keynote speaker was Dan Lyon a.k.a Fake Steve Jobs. Dan Lyon has been working as a tech writer for many years, and started his blog called Fake Steve Jobs where he was writing tech articles as he thought Steve Job would have written them. After a while, people started to try and guess who this Fake Steve guy was and ultimately his own boss was discussing it openly, to his surprise. Dan had no choice but to come clean, but the popularity of the blog still remained. Sun, Microsoft, Oracle and even Eclipse get hit by his wild bashes, where the latter was something he was nervous about, being a keynote speaker at EclipseCon. But not everything is fictional and as he put it: – People are returning because I occasionally put some seriousness in my blog entries.
Services vs. Extensions
Among the interesting sessions for the day, was a session by Neil Bartlett regarding how to integrate Eclipse Extensions in OSGi services and vice versa. Eclipse extensions are the base for how plug-ins extend the Eclipse platform, such as adding menu entries, dialogs, wizards etc. to the workbench. OSGi is the platform on which Eclipse plug-ins are implemented, and it provides modularity and dynamic services. By using extensions and OSGi services it is possible to write very modular applications which supports lazy loading, being robust and dynamic in nature.
Services + Extensions using dependency injection
Neil also gave a talk on how dependency injection could bridge the gap between extension points and services. This is a very promising approach because it would free developers from having to decide which one to use in their components, and this decision could then be made at configuration/ deployment time. The prototype work is now being continued in an official Eclipse incubator project.
Automatically repairing pre-OSGi code
Erik Wistrand from Makewave (Knopflerfish framework) had a short talk on using bytecode manipulation at load-time to automatically detect and repair potentially problematic legacy code. This is a popular topic at the moment, as many people are looking at how to migrate their current applications to OSGi so they can start taking advantage of OSGi for new components.
OSGi on Android
In another session, Neil Bartlett and BJ Hargrave, a senior manager at IBM, were
presenting how they got two different open-source OSGi containers running on the Google Android mobile platform. Both Equinox, the OSGi container developed by Eclipse, and Concierge which is a small container and a research project developed at ETH Zurich, were running on the Android emulator.
Other OSGi frameworks able to run on Android are Apache Felix, which was the first container running on it, and mBedded Server, which is a commercial OSGi container developed by ProSyst. Being able to run is not the same as being supported by Google though, but it is interesting to see that there was not that much work involved in introducing OSGi to Android.
Open Source Microsoft
Wednesday started off with a keynote from Sam Ramji, director of the Open Source Software Lab at Microsoft. Knowing that the audience was probably quite skeptical about Microsoft’s relationship with open-source Sam’s first slide was about project “Supernova”, where Microsoft decides to buy Eclipse and use it for Visual Studio because they really love Java! After that ice-breaker, Sam went on to discuss some of the open-source projects his lab works on, such as dynamic languages, and how Microsoft has much more focus on interoperability these days. He already has developers working with Mozilla and Apache, but more relevant for Eclipse, they are looking at helping with SWT (Standard Widget Toolkit) support for WPF (Windows Presentation Foundation).However, during the Q&A session Sam said there’s no plan for Microsoft to join Eclipse, or even have their developers become committers, which made this sound like a token effort.
The initial work of Eclipse 4.0 was presented by Mike Wilson, Jochen Krause, Jeff McAffer and Steve Northover. The current state is “wild ideas” and the trends getting focus in this release are that Java software development is moving into Rich Web GUI backed by services, and that the IDE will move to be a mix of web and desktop targets. The presenters want to see an effort to take what currently exists and put it “in the web space”.
The community work in Eclipse is quite good today, but people need to be much more involved in the future platform.
They also want to see that work is put into making it easier to create plug-
The timeline for e4 (Eclipse 4.0 platform) is that the project will be proposed and started after the Eclipse Summit later this year. Until now, everything is ideas that may or may not be included in the project. There will be regular platform builds of e4, including milestones, and it will be ready within 2 years from start.
It will not be an easy task to create the next version of the Eclipse platform, because of its widespread use and the many wills of the multitude of Eclipse projects. The time when Eclipse was just a Java IDE is now long gone and there are a lot of people that have invested a lot, both in time and money, in their existing projects.
Among the things that make OSGi, and also the plug-in concept of Eclipse, great is the possibility of having different versions of the same functionality available for applications without conflict. One application might need version 1.x of a jar file while another requires an API incompatible version 2.x, and with proper versions on the packages there will be no conflict. Although being a good thing, it can be quite challenging to keep the versions correctly updated. Sometimes the changes you do to a code base might break an API compatibility, sometimes not. To remedythe situation in Eclipse, there is a new toolkit called “API Tooling”. The description, which is taken directly from the developer site, states: “API tooling will assist developers in API maintenance by reporting API defects such as binary incompatibilities, incorrect plug-in version numbers, missing or incorrect @since tags, and usage of non-API code between plug-ins”. An example of functionality in the toolkit is that offending code is marked in eclipse and quick-fix will be provided for changes that can be automated. The tools are scheduled to be included in the Eclipse Ganymede release in June.
Thursday’s keynote was given by Cory Doctorow about the “information economy” where information is a commodity, and you should therefore try to keep the cost of “creating” information low. This was a very entertaining talk where he stressed the importance of collaboration over restricting access. With collaboration you can (hopefully) still maintain a competitive edge – while restricting access to information is a temporary solution that often drives up costs, like old fashioned protectionism. Cory finished by asking everyone to help preserve their existing freedoms, such as the freedom on the Internet.
It was nice to see that that OSGi as a concept has matured among both the speakers and visitors as opposed to last years EclipseCon where it was more in a state of hype and excitement. It was also interesting that OSGi is creeping into mobile phones, Spring revealed their Titan platform for Windows Mobile phones containing an OSGi container besides being MIDP compatible. Another announcement made during the conference was that EclipseLink has been chosen as the JPA 2.0 Reference implementation.
Tobias Södergren and Stuart McCulloch
Originally published in JayView.