Hi Alexander, Alexander Shutyaev schrieb: > I solved my problem and guess what... found another one. You once wrote > in org.apache.felix.dev I quote: > > "your component does not have to care about getting the configuration > from the Configuration Admin. It is provided by the Declarative Services > implementation in the ComponentContext given to the activate method" > > That was what I actually wanted and that is how Apache Felix behaves. I > however use Equinox and when I switched the SCR (or DS) package back to > equinox it just stopped working the way it did (and the way I want). I > inspected the source code of Felix and Equinox and found out one big > difference: Felix registers some of it's classes as a > ManagedServiceFactory (thus catching my configurations from > ConfigurationAdmin) while Equinox does not.
Yes, the Apache Felix SCR registers a ManagedServiceFactory on behalf of each ComponentFactory to be fed with the Configurations and create Component instances of them. I am not exactly fluent how Equinox DS does it. > > As this was your work I guess you'll say something like "Don't use that > baaad Equinox, use our good Felix" =) That's not quite alright with me > but still I'm using scr bundle from Felix. Well, you won't hear me say that, and I for sure never will say that. Our goal at Apache Felix is to be 100% spec compliant because we see the spec as good tool for implementors to work against. And I assume the Equinox people are working the same way. > The question is who is right in this case: Felix or Equinox? I'm not an > English native speaker, so it's very hard for me to argue about > specifications aspects and so I ask you as a man who studied this > problem. Maybe the specification itself isn't clear enough? > > So anyway there's a bug somewhere: either Felix, or Equinox or the OSGi > specification. I think we should find out where and post some kind of > bug report. I cannot tell, whether Equinox DS is wrong. What I know is, that I am pretty confident that Apache Felix DS does it right. OTOH if I remember correctly, Equinox DS should do it right to, because I once used Equinox DS as well as Equinox CA to launch part of Apache Sling which encompassed a ComponentFactory (see [1]). Maybe someone from the Equinox can shed some light on this ? Regards Felix [1] http://cwiki.apache.org/SLING/launching-a-jcr-repository-inside-equinox.html _______________________________________________ OSGi Developer Mail List [email protected] https://mail.osgi.org/mailman/listinfo/osgi-dev
