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 2011/07/22 16:33:25 UTC

svn commit: r1149620 - in /felix/trunk/framework/src/main: java/org/apache/felix/framework/ExtensionManager.java resources/default.properties

Author: rickhall
Date: Fri Jul 22 14:33:22 2011
New Revision: 1149620

URL: http://svn.apache.org/viewvc?rev=1149620&view=rev
Log:
Implement generic capabilities for the system bundle. (FELIX_3502)

Modified:
    felix/trunk/framework/src/main/java/org/apache/felix/framework/ExtensionManager.java
    felix/trunk/framework/src/main/resources/default.properties

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=1149620&r1=1149619&r2=1149620&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 Fri Jul 22 14:33:22 2011
@@ -181,23 +181,42 @@ class ExtensionManager extends URLStream
         // We must construct the system bundle's export metadata.
         // Get configuration property that specifies which class path
         // packages should be exported by the system bundle.
-        String syspkgs = (String) m_configMap.get(FelixConstants.FRAMEWORK_SYSTEMPACKAGES);
+        String syspkgs =
+            (String) m_configMap.get(FelixConstants.FRAMEWORK_SYSTEMPACKAGES);
         // If no system packages were specified, load our default value.
         syspkgs = (syspkgs == null)
             ? Util.getDefaultProperty(logger, Constants.FRAMEWORK_SYSTEMPACKAGES)
             : syspkgs;
         syspkgs = (syspkgs == null) ? "" : syspkgs;
         // If any extra packages are specified, then append them.
-        String extra = (String) m_configMap.get(FelixConstants.FRAMEWORK_SYSTEMPACKAGES_EXTRA);
-        syspkgs = (extra == null) ? syspkgs : syspkgs + "," + extra;
+        String pkgextra =
+            (String) m_configMap.get(FelixConstants.FRAMEWORK_SYSTEMPACKAGES_EXTRA);
+        syspkgs = (pkgextra == null) ? syspkgs : syspkgs + "," + pkgextra;
         m_headerMap.put(FelixConstants.BUNDLE_MANIFESTVERSION, "2");
         m_headerMap.put(FelixConstants.EXPORT_PACKAGE, syspkgs);
+
+        // The system bundle alsp provides framework generic capabilities
+        // as well as arbitrary user-defined generic capabilities. We must
+        // construct the system bundle's capabilitie metadata. Get the
+        // configuration property that specifies which capabilities should
+        // be provided by the system bundle.
+        String syscaps =
+            (String) m_configMap.get(FelixConstants.FRAMEWORK_SYSTEMCAPABILITIES);
+        // If no system capabilities were specified, load our default value.
+        syscaps = (syscaps == null)
+            ? Util.getDefaultProperty(logger, Constants.FRAMEWORK_SYSTEMCAPABILITIES)
+            : syscaps;
+        syscaps = (syscaps == null) ? "" : syscaps;
+        // If any extra capabilities are specified, then append them.
+        String capextra =
+            (String) m_configMap.get(FelixConstants.FRAMEWORK_SYSTEMCAPABILITIES_EXTRA);
+        syscaps = (capextra == null) ? syscaps : syscaps + "," + capextra;
+        m_headerMap.put(FelixConstants.PROVIDE_CAPABILITY, syscaps);
         try
         {
             ManifestParser mp = new ManifestParser(
                 m_logger, m_configMap, m_systemBundleRevision, m_headerMap);
-            List<BundleCapability> caps = aliasSymbolicName(mp.getCapabilities());
-            setCapabilities(caps);
+            setCapabilities(mp.getCapabilities());
         }
         catch (Exception ex)
         {

Modified: felix/trunk/framework/src/main/resources/default.properties
URL: http://svn.apache.org/viewvc/felix/trunk/framework/src/main/resources/default.properties?rev=1149620&r1=1149619&r2=1149620&view=diff
==============================================================================
--- felix/trunk/framework/src/main/resources/default.properties (original)
+++ felix/trunk/framework/src/main/resources/default.properties Fri Jul 22 14:33:22 2011
@@ -18,6 +18,25 @@
 #
 # Framework config properties.
 #
+
+# New-style generic execution environment capabilities.
+org.osgi.framework.system.capabilities= \
+ ${dollar}{eecap-${dollar}{java.specification.version}}
+
+eecap-1.7= osgi.ee; osgi.ee="OSGi/Minimum"; version:List<Version>="1.0,1.1,1.2", \
+ osgi.ee; osgi.ee="JavaSE"; version:List<Version>="1.2,1.3,1.4,1.5,1.6,1.7"
+eecap-1.6= osgi.ee; osgi.ee="OSGi/Minimum"; version:List<Version>="1.0,1.1,1.2", \
+ osgi.ee; osgi.ee="JavaSE"; version:List<Version>="1.2,1.3,1.4,1.5,1.6"
+eecap-1.5= osgi.ee; osgi.ee="OSGi/Minimum"; version:List<Version>="1.0,1.1,1.2", \
+ osgi.ee; osgi.ee="JavaSE"; version:List<Version>="1.2,1.3,1.4,1.5"
+eecap-1.4= osgi.ee; osgi.ee="OSGi/Minimum"; version:List<Version>="1.0,1.1,1.2", \
+ osgi.ee; osgi.ee="JavaSE"; version:List<Version>="1.2,1.3,1.4"
+eecap-1.3= osgi.ee; osgi.ee="OSGi/Minimum"; version:List<Version>="1.0,1.1", \
+ osgi.ee; osgi.ee="JavaSE"; version:List<Version>="1.2,1.3"
+eecap-1.2= osgi.ee; osgi.ee="OSGi/Minimum"; version:List<Version>="1.0,1.1", \
+ osgi.ee; osgi.ee="JavaSE"; version:List<Version>="1.2"
+
+# Deprecated old-style execution environment properties.
 org.osgi.framework.executionenvironment= \
  ${dollar}{ee-${dollar}{java.specification.version}}
 
@@ -27,7 +46,9 @@ ee-1.6=JavaSE-1.6,J2SE-1.5,J2SE-1.4,J2SE
 ee-1.5=J2SE-1.5,J2SE-1.4,J2SE-1.3,OSGi/Minimum-1.2,OSGi/Minimum-1.1,OSGi/Minimum-1.0
 ee-1.4=J2SE-1.4,J2SE-1.3,OSGi/Minimum-1.2,OSGi/Minimum-1.1,OSGi/Minimum-1.0
 ee-1.3=J2SE-1.3,OSGi/Minimum-1.1,OSGi/Minimum-1.0
+ee-1.2=J2SE-1.2,OSGi/Minimum-1.1,OSGi/Minimum-1.0
 
+# Default packages exported by system bundle.
 org.osgi.framework.system.packages=org.osgi.framework; version=1.6.0, \
  org.osgi.framework.launch; version=1.0.0, \
  org.osgi.framework.wiring; version=1.0.0, \