Stefan, That sounds like a really good idea. Thanks for doing that for me.
Ben On Wed, Apr 15, 2015, at 03:43 PM, Stefan Seelmann wrote: > On 04/15/2015 08:43 AM, Stefan Seelmann wrote: > > On 04/08/2015 10:57 PM, Benjamin Abernathy wrote: > >> Stefan, > >> > >> I think I have found a reasonable solution. I implemented it and it > >> passes the integration tests as well as solves the problem I am > >> experiencing in OSGi. Here is what I did. > >> > >> 1. I updated the parent pom by adding the following properties: > >> > >> <slf4j.api.version.min>1.7</slf4j.api.version.min> > >> <slf4j.api.version.max>1.8</slf4j.api.version.max> > >> > >> 2. Then in each child pom that had an import declaration for org.slf4j, > >> I changed the import statement from: > >> > >> org.slf4j;version=${slf4j.api.version}, > >> > >> to: > >> > >> org.slf4j;version="[${slf4j.api.version.min},${slf4j.api.version.max})", > >> > >> > >> This approach has some drawbacks: > >> > >> 1. You now have three places that may need to be updated when the > >> version of slf4j is updated. > >> 2. BND (which is called by maven-bundle-plugin) is not the one deciding > >> the what version should be used. > >> > >> Now, supposedly BND can choose a version range, but I could not get > >> consistent behavior from the build using that approach. > > > > You mean the following? I tried to use BND range macro which magically > > works: > > > > org.slf4j;version="$«range;[==,=+)»", > > > > The result in mainifest is then org.slf4j;version="[1.7,1.8)" > > > > But I didn't find lot of documenation why it works. And the maven build > > prints out a warning (but still it works): > > > > [INFO] --- maven-bundle-plugin:2.5.3:bundle (default-bundle) @ > > api-ldap-model --- > > [WARNING] Bundle > > org.apache.directory.api:api-ldap-model:bundle:1.0.0-M30-SNAPSHOT : No > > translation found for macro: range;[==,=+), in > > > > I think I finally found a good solution. > > In parent pom I added a property that defines the range macro > > <slf4j.api.bundleversion>"$«range;[==,=+)»"</slf4j.api.bundleversion> > > And in the actual poms the Import-Package instruction just looks like > this > > org.slf4j;version=${slf4j.api.bundleversion}, > > So in case the macro magic makes problems we just have to change the > property in parent pom. All tests (API, ApacheDS, Studio) work fine, > I'll commit the changes tomorrow. > > Kind Regards, > Stefan >