X-Git-Url: http://git.argeo.org/?a=blobdiff_plain;ds=sidebyside;f=runtime%2Forg.argeo.slc.repo%2Fsrc%2Fmain%2Fjava%2Forg%2Fargeo%2Fslc%2Frepo%2Fosgi%2FBndWrapper.java;fp=runtime%2Forg.argeo.slc.repo%2Fsrc%2Fmain%2Fjava%2Forg%2Fargeo%2Fslc%2Frepo%2Fosgi%2FBndWrapper.java;h=55ad84dfdcfc2cfc7de1d367b8c075b245722a7e;hb=50070c24a1b27dda7ac6669871caf008726d372d;hp=564dd52d360d9349ea9ecde8050270e3ac15bd04;hpb=fcb4107c86716dc5dfef7edf47c5fc9131d66b0b;p=gpl%2Fargeo-slc.git diff --git a/runtime/org.argeo.slc.repo/src/main/java/org/argeo/slc/repo/osgi/BndWrapper.java b/runtime/org.argeo.slc.repo/src/main/java/org/argeo/slc/repo/osgi/BndWrapper.java index 564dd52d3..55ad84dfd 100644 --- a/runtime/org.argeo.slc.repo/src/main/java/org/argeo/slc/repo/osgi/BndWrapper.java +++ b/runtime/org.argeo.slc.repo/src/main/java/org/argeo/slc/repo/osgi/BndWrapper.java @@ -35,26 +35,41 @@ public class BndWrapper implements Constants, CategorizedNameVersion, Jar jar = new Jar(null, in); Manifest sourceManifest = jar.getManifest(); - String sourceVersion = sourceManifest.getMainAttributes().getValue( - BUNDLE_VERSION); + Version versionToUse; - if (version == null && sourceVersion == null) { - throw new SlcException("A bundle version must be defined."); - } else if (version == null && sourceVersion != null) { - versionToUse = new Version(sourceVersion); - } else if (version != null && sourceVersion == null) { - versionToUse = new Version(version); - } else {// both set - versionToUse = new Version(version); - Version sv = new Version(sourceVersion); - if (versionToUse.getMajor() != sv.getMajor() - || versionToUse.getMinor() != sv.getMinor() - || versionToUse.getMicro() != sv.getMicro()) { - log.warn("The new version (" - + versionToUse - + ") is not consistant with the wrapped bundle version (" - + sv + ")"); + if (sourceManifest != null) { + String sourceSymbolicName = sourceManifest.getMainAttributes() + .getValue(BUNDLE_SYMBOLICNAME); + if (sourceSymbolicName != null + && sourceSymbolicName.equals(name)) + log.warn("The new symbolic name (" + + name + + ") is not consistant with the wrapped bundle symbolic name (" + + sourceSymbolicName + ")"); + + String sourceVersion = sourceManifest.getMainAttributes() + .getValue(BUNDLE_VERSION); + if (version == null && sourceVersion == null) { + throw new SlcException("A bundle version must be defined."); + } else if (version == null && sourceVersion != null) { + versionToUse = new Version(sourceVersion); + version = sourceVersion; // set wrapper version + } else if (version != null && sourceVersion == null) { + versionToUse = new Version(version); + } else {// both set + versionToUse = new Version(version); + Version sv = new Version(sourceVersion); + if (versionToUse.getMajor() != sv.getMajor() + || versionToUse.getMinor() != sv.getMinor() + || versionToUse.getMicro() != sv.getMicro()) { + log.warn("The new version (" + + versionToUse + + ") is not consistant with the wrapped bundle version (" + + sv + ")"); + } } + } else { + versionToUse = new Version(version); } Properties properties = new Properties();