You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@felix.apache.org by ri...@apache.org on 2009/01/27 20:34:12 UTC
svn commit: r738197 - in
/felix/trunk/framework/src/main/java/org/apache/felix/framework:
BundleImpl.java util/manifestparser/ManifestParser.java
Author: rickhall
Date: Tue Jan 27 19:34:12 2009
New Revision: 738197
URL: http://svn.apache.org/viewvc?rev=738197&view=rev
Log:
Improved handling Bundle-Version. (FELIX-851)
Modified:
felix/trunk/framework/src/main/java/org/apache/felix/framework/BundleImpl.java
felix/trunk/framework/src/main/java/org/apache/felix/framework/util/manifestparser/ManifestParser.java
Modified: felix/trunk/framework/src/main/java/org/apache/felix/framework/BundleImpl.java
URL: http://svn.apache.org/viewvc/felix/trunk/framework/src/main/java/org/apache/felix/framework/BundleImpl.java?rev=738197&r1=738196&r2=738197&view=diff
==============================================================================
--- felix/trunk/framework/src/main/java/org/apache/felix/framework/BundleImpl.java (original)
+++ felix/trunk/framework/src/main/java/org/apache/felix/framework/BundleImpl.java Tue Jan 27 19:34:12 2009
@@ -965,9 +965,9 @@
if (id != getBundleId())
{
String sym = bundles[i].getSymbolicName();
- Version ver = Version.parseVersion((String) ((BundleImpl) bundles[i])
- .getCurrentModule().getHeaders().get(Constants.BUNDLE_VERSION));
- if (symName.equals(sym) && bundleVersion.equals(ver))
+ Version ver = ((ModuleImpl)
+ ((BundleImpl) bundles[i]).getCurrentModule()).getVersion();
+ if ((symName != null) && (sym != null) && symName.equals(sym) && bundleVersion.equals(ver))
{
throw new BundleException("Bundle symbolic name and version are not unique: " + sym + ':' + ver);
}
Modified: felix/trunk/framework/src/main/java/org/apache/felix/framework/util/manifestparser/ManifestParser.java
URL: http://svn.apache.org/viewvc/felix/trunk/framework/src/main/java/org/apache/felix/framework/util/manifestparser/ManifestParser.java?rev=738197&r1=738196&r2=738197&view=diff
==============================================================================
--- felix/trunk/framework/src/main/java/org/apache/felix/framework/util/manifestparser/ManifestParser.java (original)
+++ felix/trunk/framework/src/main/java/org/apache/felix/framework/util/manifestparser/ManifestParser.java Tue Jan 27 19:34:12 2009
@@ -63,14 +63,34 @@
Map dupeMap = new HashMap();
//
+ // Parse bundle version.
+ //
+
+ m_bundleVersion = Version.emptyVersion;
+ if (headerMap.get(Constants.BUNDLE_VERSION) != null)
+ {
+ try
+ {
+ m_bundleVersion = Version.parseVersion((String) headerMap.get(Constants.BUNDLE_VERSION));
+ }
+ catch (RuntimeException ex)
+ {
+ // R4 bundle versions must parse, R3 bundle version may not.
+ if (manifestVersion.equals("2"))
+ {
+ throw ex;
+ }
+ m_bundleVersion = Version.emptyVersion;
+ }
+ }
+
+ //
// Parse bundle symbolic name.
//
ICapability moduleCap = parseBundleSymbolicName(m_headerMap);
if (moduleCap != null)
{
- m_bundleVersion = (Version)
- moduleCap.getProperties().get(Constants.BUNDLE_VERSION_ATTRIBUTE);
m_bundleSymbolicName = (String)
moduleCap.getProperties().get(Constants.BUNDLE_SYMBOLICNAME_ATTRIBUTE);
@@ -811,7 +831,7 @@
}
// Get bundle version.
- Version bundleVersion = null;
+ Version bundleVersion = Version.emptyVersion;
if (headerMap.get(Constants.BUNDLE_VERSION) != null)
{
try