>Richard S. Hall a écrit : >> Clement Escoffier wrote: >>> Hello >>> >>> Felix Meschberger a écrit : >>>> Hi Richard, >>>> >>>> In Felix-277 you propose to "privatize" the ServiceTracker and make the >>>> LogService package a dynamic dependency. I think, this is a good >>>> idea and >>>> will, as noted in the issue, implement this. >>>> >>>> While doing this, there is another Compendium Service dependency in >>>> the scr: >>>> Configuration Admin Service. This is a more complicated dependency >>>> because >>>> scr does not only call into the ConfigurationAdmin service but also >>>> registers a ManagedServiceFactory for factory components. So, if the >>>> OSGi cm >>>> packages are not available, factory components will not work (and >>>> configuration retrieval by other components may fail). >>>> >>>> What do you think of having scr export and re-import the OSGi cm >>>> package ? >>>> This way, the framework would select the cm package to which other >>>> bundles >>>> get wired and scr will have the OSGi cm packages regardless of >>>> whether a CM >>>> implementation exporting it is available. >>> It is what I do for the Log service and the Config Admin in iPOJO. It >>> increase the size of the bundle but I did not find another acceptable >>> solution. >>> The pom file contains folowing BND instructions: >>> <Import-Package> >>> org.osgi.framework; version="1.3", >>> org.osgi.service.cm; version="1.2", >>> org.osgi.service.log; version="1.3" >>> </Import-Package> >>> <Export-Package> >>> org.apache.felix.ipojo; version="0.7.1", >>> ....... (some other iPOJO packages) ..... >>> org.osgi.service.cm; version="1.2", >>> org.osgi.service.log; version="1.3" >>> </Export-Package> >> >> Shouldn't BND automatically detect the versions for you from the >> packageinfo files? >BND inserts versions for imported (and re-exported version), but does >not add version for non imported packages (In the previous snippet, BND >can add 1.3 and 1.2 version but cannot discover 0.7.1 version).
Well, you could add a packageinfo file to your iPOJO directories too, then BND will automatically "discover" the version of iPOJO packages too as far as I understand it. But at a minimum, you can simplify your pom by removing the versions from the cm and log packages, since they do have packageinfo files, so they should be detected properly. -> richard