Friday, December 29, 2006

Eclipse RCP and Spring: Code Example from Spring Experience 2006

The example that I used during my talk about Spring and Eclipse RCP at The Spring Experience 2006 is now available for download:
I zipped all the projects of my workspace. You just need to have an Eclipse 3.2 target platform installed and the Equinox 3.2 bundles added to it. The workspace includes two launch configs, one for the server (starts an embedded jetty) and one for the client (starts a modified RCP Mail Example application).

Sunday, December 10, 2006

Slides from The Spring Experience 2006

Today I gave a talk at The Spring Experience 2006 about the usage of Eclipse RCP together with the Spring Framework. I discussed several variants of using Spring in the typical RCP settings and ended with the theme "Spring and OSGi everywhere", where you have the Equinox OSGi runtime and Spring deployed as a set of bundles on the client side as well as on the server side. From my point of view this is a very promising combination of these technologies. You can find the slides online in the events section. And I will make the code example I showed during the talk available shortly.

Friday, December 08, 2006

AJEER 2.0

Congratulations and many thanks to Heiko Seeberger. He recently joined the AJEER project at SourceForge and ported AJEER to Eclipse 3.2 - which is really great news. You can download AJEER 2.0 from the SourceForge site and play with it or use it for your projects. The new version of AJEER not just works fine with Eclipse 3.2, it works fine with the current versions of AJDT as well. So you benefit from all the nice improvements of the new AspectJ versions.

Apart from the pure coding work Heiko also worked on the documentation, some Getting-Started guide, an update-site, and an example. Really cool!!!

Thursday, December 07, 2006

Equinox Aspects Incubator Code Available

After a lengthy period of legal clarifications we got the first version of the new AspectJ-Load-Time-Weaaving extension for the Equinox OSGi runtime out. Matthew Webster put his code into the CVS and wrote a nice Getting Started page. You should definitely take a look at it and try things out. The two aspect adoption models (co-op and opt-in, more information here) provide a powerful set of possibilities to use load-time aspect weaving for OSGi-based applications (Eclipse-RCP, for example, as well as server-side-OSGi stuff :-).
You might also take a look at bug entries for the Equinox Incubator component which start with [Aspects] to find out more about bugs, additional features and so on.
If you are going to join EclipseCon 2007, please vote for Matthews Long Talk: AOP and OSGi - A Marriage Made in Heaven.

Wednesday, December 06, 2006

Forth Article on Eclipse Internals Available

In the forth episode of my "Under-the-Hood"-Series for the German Eclipse-Magazin I discuss the potential behind the Extension-Point-Mechanism which is at the heart of the Eclipse architecture. My message is, that you can use the Equinox Extension-Registry for much more than just adding extensions to existing RCP extension points like views and editors. The mechanism allows you to create really flexible architectures for your business applications - on the client side as well as on the server. Unfortunately the article is written in German (and can be found here) but if you would like to know more about my experiences and are not familiar with the German language do not hesitate to contact me.

Tuesday, December 05, 2006

Inject Dependencies into Extensions via Spring

After a while using the Spring-OSGi bridge I tried to use more Spring features on the client side within my Eclipse-RCP- or Equinox-based apps. Especially the question how to inject dependencies into extensions like views or editors seemed quite interesting to me.

And it is pretty easy to realize this. The only thing you need to do is: Define the view or editor in your Spring application context as a normal Spring bean (including dependency injection, AOP or whatever) and write an extension factory for the extension. This extension factory implements IExecutableExtensionFactory and is called by the Extension Registry to create the extension for you. You just need to implement the create-Method by invoking the Spring app context getBean(..) to let Spring create the real view or editor object for you. Then you put this extension factory into the extension declaration within the plugin.xml file instead of the real view or editor. Thats basically it. Cool, isn't it?

After doing this you should take care that your extension factory implements IExecutableExtension and delegates that call to the real extension if your extension implements this interface for some reason (views do so to get some initialization data). And you should take care of the definition within the Spring app context and that the context creates a new object each time you call getBean(..).

Monday, December 04, 2006

Eclipse at The Spring Experience 2006

This week will start The Spring Experience 2006 in Hollywood, Florida. This is a conference entirely on the Spring Framework and it is filled with a huge number of interesting presentations. I would especially recommend the talk by Adrian Colyer about the combination of Spring and OSGi. You should not miss it. Happily they invited me to this great event to give a presentation on Spring and Eclipse RCP which is scheduled for next Sunday. So, don't miss it. :-)

Session-Slides online

I finally uploaded the slides from my past events all at once. You can find them all together in the events section. They include my slides from the Server-Side-Eclipse-Symposium in Esslingen about the Spring-OSGi combination, my slides from WJAX about Server-Side-Eclipse and Spring-and-OSGi-combined, the presentation on "The Eclipse Way" at the XP Days Germany and my two sessions on Eclipse-RCP and the Equinox-OSGi-integration at the iX Conference last week in Frankfurt. All material is online now. Have fun! Feedback is always welcome!!! :-)