views:

612

answers:

2

The new R4.2 spec for OSGi describes the Blueprint service, for dependency injection and service wiring.

Does Blueprint replace Declarative Services (which is still part of the spec, as well), or are they intended to work together?

Is Blueprint already available for the popular implementations (Felix and Equinox)?

+4  A: 

I asked myself the same question and while discussing this with others involved in the topic, the tenor was that although the two are overlapping to some degree, the use case when to use which is pretty different. DS is a light weight solution to avoid Activators and model service dependencies declaratively. BP is basically a DI container targeting enterprise deployments. It is also more common for "regular" Java developers not that familiar with the dynamic nature of OSGi (hiding a lot behind proxies).

Implementation wise, there are two projects working on it (all of them are container agnostic and not officially released). Spring DM 2.0 is going to provide an implementation (2.0.0.M1 already contains a working implementation) as well as Apache as part of its geronimo project (slideshow).

Cheers, Mirko

Mirko Jahn
+1  A: 

For my experience within Felix based environment, DS is the only dependency injector that is mature enougth and that provides consistency with others parts of OSGi Compendium specs such as ConfigAdmin.

Blueprint seems to me as a political inclusion of Spring DM in OSGi specs.

iPojo is an alternative based on Java annotations instead of XML descriptors, its hide some part of OSGi foundation.

Gloubib