I am just migrating the OSGi Installer HC 
(https://github.com/apache/sling-org-apache-sling-installer-hc/) to the 
bnd-maven-plugin and I observed one difference to the maven-bundle-plugin:

The bundle version for SNAPSHOTs by default looks like "1.0.1.<Timestamp>" 
instead of "1.0.1.SNAPSHOT" (as it was with the maven-bundle-plugin).
The reason for that is this line: 
https://github.com/bndtools/bnd/blob/d7511968b0ec96f1bec5bd3de59f8010cb3cb9f1/maven/bnd-maven-plugin/src/main/java/aQute/bnd/maven/plugin/BndMavenPlugin.java#L262
 wich
sets the snapshot instruction to the timestamp 
(http://bnd.bndtools.org/instructions/snapshot.html). This leads to the 
SNAPSHOT qualifier in the version being replaced by the timestamp in the 
generated bundle version.

This is IMHO problematic in combination with the OSGi Installer, as that 
behaves differently when it detects a SNAPSHOT 
(https://github.com/apache/sling-org-apache-sling-installer-core/blob/1561f5e626bab4859b4c060ef1bec06026018f18/src/main/java/org/apache/sling/installer/core/impl/tasks/BundleInfo.java#L109).
 

Should we configure all our bundles in a way that SNAPSHOT in the version is 
not being replaced, or can we come up with a more intelligent solution in the 
OSGi Installer?
I noticed that in the manifest we have in addition still 
"Implementation-Version: 1.0.1-SNAPSHOT" on which we could maybe base the 
SNAPSHOT detection of the OSGi Installer.

WDYT?
Konrad


Reply via email to