I just wasted an hour trying to figure out why my test was complaining about 
missing the `org.osgi.service.component` package. The Apache Felix SCR bundle I 
was using was clearly exporting and importing it. Since I was testing launchpad 
I blamed myself so I dug deep into things but could not figure it out.

Until I realized I had SCR in my repository twice. 



Reasonable people would assume that 2.0.10.v20170501-2007 is the same bundle as 
2.0.10 so I only looked at the first one, the original Apache Felix. Until I 
finally became desperate enough and looked at the Eclipse version, which indeed 
turned out to be a variation.

Apache Felix original:

Export-Package
  org.apache.felix.scr.component         {version=1.1.0, imported-as=[1.1,1.2)}
  org.apache.felix.scr.info              {version=1.0.0, imported-as=[1.0,1.1)}
  org.osgi.service.component             {version=1.3, imported-as=[1.3,1.4)}
  org.osgi.service.component.runtime     {version=1.3, imported-as=[1.3,1.4)}
  org.osgi.service.component.runtime.dto {version=1.3, imported-as=[1.3,1.4)}
  org.osgi.util.function                 {version=1.0, imported-as=[1.0,2)}
  org.osgi.util.promise                  {version=1.0, imported-as=[1.0,2)}

The Eclipse variation:

Export-Package
  org.apache.felix.scr.component         {version=1.1.0, imported-as=[1.1,1.2)}
  org.apache.felix.scr.info              {version=1.0.0, imported-as=[1.0,1.1)}

This is just wrong. If you wrap a bundle and change its signature you **must** 
give it a new name because you fundamentally modify the public API. You do not 
own that other person's namespace! Just changing the micro/patch part of the 
version is just wrong. These kind of self inflicted wounds cause imho the most 
pain in software development.

That all said, it does make another case for the resolver. If I'd used that one 
I'd seen it immediately.

Kind regards,

        Peter Kriens


_______________________________________________
OSGi Developer Mail List
osgi-dev@mail.osgi.org
https://mail.osgi.org/mailman/listinfo/osgi-dev

Reply via email to