Java – OSGi: Does Blueprint replace Declarative Services

blueprint-osgijavaosgiosgi-ds

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)?

Best Answer

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).

Related Topic