I did manage to get the bnd-maven-plugin to generate the Export-Package header 
as it is today - with “.SNAPSHOT” on the version - but I had to add a 
packageinfo file to every exported package (as described by the snippet posted 
below) - they had the same content, but I had to put them there.  This could be 
a good thing long-term if we ever get to the point of actually versioning the 
packages instead of just the entire bundle, but it’s a just lot of duplication 
right now.

I’m struggling with coming up with a way I’d actually use multiple SNAPSHOT 
versions of the same module - I can’t think of where this would make any sense. 
 In fact, it happened to me by accident when working with one client, and it 
was a huge problem/mess.  Further, even if .SNAPSHOT is on the version of the 
exported package, what exactly does that accomplish?  The versions of the 
exported packages for a given module would always be the same (i.e. they’d 
always have the .SNAPSHOT at the end), so the only way to tell what version of 
which package you’re using would be by the Bundle-Version anyway - and it 
doesn’t help either because it’s listed as .SNAPSHOT.  The only way I could see 
actually using this to any effect would be to use the bnd-maven-plugin default 
option of putting in a timestamp - that actually provides something you can 
work with to distinguish bundles and package versions.

So while I’m a little nervous changing the export package versioning scheme we 
use (by dropping the .SNAPSHOT), it feels like the right thing to do in this 
case.

As far as having access to the OSGi Version for the bundle - can you point me 
to a specific example so I can figure out what I’d do there?

> On Apr 5, 2016, at 4:15 PM, Raul Kripalani <ra...@apache.org> wrote:
> 
> On Tue, Apr 5, 2016 at 11:00 PM, Matt Pavlovich <mattr...@gmail.com> wrote:
> 
>> I was ruminating about this as well-- I agree its not exact; however, is
>> there any real impact?  The bundle version is indicated by the SNAPSHOT.
>> How would the package export having the .SNAPSHOT qualifier (which would
>> not impact any wiring) have any undesirable impact?
>> 
> 
> Hmmm... To be frank, off the top of my head right now, I can't come up with
> a scenario where one would want to run coexisting SNAPSHOT and FINAL
> modules for the same version. But the fact that one doesn't come to mind
> doesn't mean that it's ok to bypass semantic accuracy.
> 
> In fact, the bnd docs even recognise using qualifiers to designate build
> specifiers in package exports. So right now it feels like a shortcoming/bug
> of the bnd-maven-plugin.
> 
> If you now export the package (from any bundle that has the package on its
>> class path), it will be properly versioned.
>>  bnd.bnd:
>>    build = ${tstamp}
>>    Export-Package: com.example.*
>> The resulting manifest will look like:
>>  Manifest:
>>    Export-Package: com.example; version=1.2.0.*v201010101010*
> 
> 
> http://www.aqute.biz/Bnd/Versioning
> 
> My conclusion is that changing our package export policy as a consequence
> of a possible (temporary) bug in the bnd-maven-plugin doesn't seem a sound
> approach IMHO.
> 
> My preference would be to open a bug upstream and send a PR to fix the
> issue there.
> 
> Cheers,
> 
> *Raúl Kripalani*
> PMC & Committer @ Apache Ignite, Apache Camel | Integration, Big Data and
> Messaging Engineer
> http://about.me/raulkripalani | http://www.linkedin.com/in/raulkripalani
> Blog: raul.io
> <http://raul.io/?utm_source=email&utm_medium=email&utm_campaign=apache> |
> twitter: @raulvk <https://twitter.com/raulvk>

Reply via email to