Eclipse Runtime and Spring

January 5, 2008

I’ve been watching with interest the moves towards a proposal for an Eclipse Runtime project, to focus efforts around Eclipse as a runtime platform, with Equinox/OSGi at its core. OSGi is the Java component specification on which the Eclipse platform is built. In fact, Equinox is the reference implementation for the OSGi R4.1 framework and JSR 291. The other work I’ve been following with interest is the Spring framework’s OSGi integration, namely Spring Dynamic Modules for OSGi Service Platforms. The combination of an Eclipse Runtime and Spring as a runtime platform has huge potential, and it is potential that can be realised and exploited today. Apart from the proven dynamic component model and advanced classloading capabilities of OSGi, and the rich development environment that Eclipse provides for it, and the productivity advantages of developing on the platform that is also your runtime, and the Spring framework as a whole, and the wonderful power and simplicity of inversion-of-control and dependency injection, one of the key use cases I keep coming back to when I think about this is hot service re-deployment, being able to update services other components are using without having to bounce the server and without those components missing a beat. In the always-needs-to-be-on, software-as-a-service cloud of the rapidly approaching future, this is a key business operations requirement. I agree with the assertion that the Java market will continue to fragment, but I think a lot of people will head in this direction.

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: