felix-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Marcel Offermans <marcel.offerm...@luminis.nl>
Subject Re: DependencyManager vs iPOJO
Date Wed, 18 May 2011 23:12:30 GMT
Hello Marian,

On 18 May 2011, at 22:15 , marian grigoras wrote:

> I would like to understand the relation between DependencyManager and iPOJO.
> I see that both are apache projects, both under active development - is
> there any difference in the problem they try to solve?

They solve the same problem: managing dependencies. They just solve it in slightly different

Let me get back in time to explain their origins.

In the early days of OSGi, the only solution for managing dependencies (besides doing it yourself
using ServiceTrackers) was a project called service binder. It's seen by many as the predecessor
of what is now called Declarative Services. It used an XML file to declare dependencies. Around
that time I was doing a fairly big OSGi project and we needed a solution to manage dependencies.
We evaluated service binder, but had a need to more dynamically declare dependencies. None
of us were big fans of XML either. That's why we came up with the Dependency Manager. We tried
to make it as easy to use as possible, with POJOs as implementations, and as little extra
code as possible (which is why we can inject dependencies directly into instance members so
you don't need to provide bind/unbind methods for example).

Once finished, we decided to share this implementation with the community, which led to a
whitepaper and a presentation about the topic at the OSGi world congress in Paris (as listed
on http://felix.apache.org/site/presentations.html where you can still download the slides).
When the Felix project was started at Apache, the code was donated as part of this project
and I've been basically extending it ever since. More recently, Pierre and Arjun have contributed
various pieces of code as well and very recently the 3.0 version was released.

iPOJO in the mean time was started by Clement to build a more advanced solution than the service
binder or declarative services as well. It makes some different design and implementation
choices, but in the end you can do very similar things with it. I'm sure Clement can more
vividly explain its history than I can. :)

> I'm currently using DependencyManager and appreciate defining components
> (and their dependencies) at runtime. For example, to create components from
> dynamic configurations: new config file for a configuration factory is
> loaded by FileInstall and a new component can be created with the given
> config. Thus I can control the number of similar components with different
> configurations by adding/removing configuration files in the directory
> monitored by FileInstall. Could I cover this scenario with iPOJO too?

I'll leave that one for Clement to answer.

> Sorry if this sounds trivial, but I was not able to find any resources
> relating the 2 projects to each other.

It's no trivial question as far as I'm concerned. It is interesting to see there are many
different solutions, and in good OSGi spirit they can all be used together if you want. Obviously
I'm biased here, but I think everybody should try for themselves and decide which one they
like best.

Greetings, Marcel

  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message