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

