You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@felix.apache.org by pa...@apache.org on 2008/10/21 23:56:32 UTC
svn commit: r706792 - in
/felix/trunk/framework/src/main/java/org/apache/felix/framework:
ExtensionManager.java util/manifestparser/ManifestParser.java
Author: pauls
Date: Tue Oct 21 14:56:31 2008
New Revision: 706792
URL: http://svn.apache.org/viewvc?rev=706792&view=rev
Log:
Don't try to install extension bundles as fragments because they are different. Furthermore, fail to install extension bundles if they have incomplete metadata (FELIX-770).
Modified:
felix/trunk/framework/src/main/java/org/apache/felix/framework/ExtensionManager.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/ExtensionManager.java
URL: http://svn.apache.org/viewvc/felix/trunk/framework/src/main/java/org/apache/felix/framework/ExtensionManager.java?rev=706792&r1=706791&r2=706792&view=diff
==============================================================================
--- felix/trunk/framework/src/main/java/org/apache/felix/framework/ExtensionManager.java (original)
+++ felix/trunk/framework/src/main/java/org/apache/felix/framework/ExtensionManager.java Tue Oct 21 14:56:31 2008
@@ -245,12 +245,8 @@
*/
boolean isExtensionBundle(Map headers)
{
- R4Directive dir = ManifestParser.parseExtensionBundleHeader((String)
- headers.get(Constants.FRAGMENT_HOST));
-
- return (dir != null) && (Constants.EXTENSION_FRAMEWORK.equals(
- dir.getValue()) || Constants.EXTENSION_BOOTCLASSPATH.equals(
- dir.getValue()));
+ return (ManifestParser.parseExtensionBundleHeader((String)
+ headers.get(Constants.FRAGMENT_HOST)) != null);
}
/**
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=706792&r1=706791&r2=706792&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 Oct 21 14:56:31 2008
@@ -252,7 +252,7 @@
// fragment constants in FelixConstants when fragments are
// fully implemented.
String fragmentHost = (String) headerMap.get(Constants.FRAGMENT_HOST);
- if (fragmentHost != null)
+ if ((fragmentHost != null) && (parseExtensionBundleHeader(fragmentHost) == null))
{
if ((headerMap.get(Constants.IMPORT_PACKAGE) != null)
|| (headerMap.get(Constants.EXPORT_PACKAGE) != null)
@@ -763,9 +763,17 @@
}
}
- if (parseExtensionBundleHeader((String)
- m_headerMap.get(Constants.FRAGMENT_HOST)) != null)
+ R4Directive extension = parseExtensionBundleHeader((String)
+ m_headerMap.get(Constants.FRAGMENT_HOST));
+
+ if (extension != null)
{
+ if (!(Constants.EXTENSION_FRAMEWORK.equals(extension.getValue()) ||
+ Constants.EXTENSION_BOOTCLASSPATH.equals(extension.getValue())))
+ {
+ throw new BundleException(
+ "Extension bundle must have either 'extension:=framework' or 'extension:=bootclasspath'");
+ }
checkExtensionBundle();
}
}