[jboss-osgi-commits] JBoss-OSGI SVN: r92737 - in projects/jboss-osgi/projects/runtime/microcontainer/trunk/src: main/java/org/jboss/osgi/plugins/facade/plugins and 1 other directories.

jboss-osgi-commits at lists.jboss.org jboss-osgi-commits at lists.jboss.org
Mon Aug 24 07:08:07 EDT 2009


Author: thomas.diesler at jboss.com
Date: 2009-08-24 07:08:07 -0400 (Mon, 24 Aug 2009)
New Revision: 92737

Modified:
   projects/jboss-osgi/projects/runtime/microcontainer/trunk/src/main/java/org/jboss/osgi/plugins/deployers/bundle/OSGiBundleClassLoadingDeployer.java
   projects/jboss-osgi/projects/runtime/microcontainer/trunk/src/main/java/org/jboss/osgi/plugins/facade/plugins/SystemPackagesPluginImpl.java
   projects/jboss-osgi/projects/runtime/microcontainer/trunk/src/test/resources/bootstrap/bootstrap.xml
Log:
Skip adding package requirements for resolution=optional 

Modified: projects/jboss-osgi/projects/runtime/microcontainer/trunk/src/main/java/org/jboss/osgi/plugins/deployers/bundle/OSGiBundleClassLoadingDeployer.java
===================================================================
--- projects/jboss-osgi/projects/runtime/microcontainer/trunk/src/main/java/org/jboss/osgi/plugins/deployers/bundle/OSGiBundleClassLoadingDeployer.java	2009-08-24 11:01:04 UTC (rev 92736)
+++ projects/jboss-osgi/projects/runtime/microcontainer/trunk/src/main/java/org/jboss/osgi/plugins/deployers/bundle/OSGiBundleClassLoadingDeployer.java	2009-08-24 11:08:07 UTC (rev 92737)
@@ -37,6 +37,9 @@
 import org.jboss.osgi.plugins.facade.bundle.OSGiBundleManager;
 import org.jboss.osgi.spi.metadata.OSGiMetaData;
 import org.jboss.osgi.spi.metadata.PackageAttribute;
+import org.jboss.osgi.spi.metadata.Parameter;
+import org.jboss.osgi.spi.util.ConstantsHelper;
+import org.osgi.framework.Constants;
 
 /**
  * OSGiBundleClassLoadingDeployer.
@@ -86,7 +89,9 @@
       Capability capability = new ModuleCapability(metadata.getBundleSymbolicName(), metadata.getBundleVersion());
       classLoadingMetaData.getCapabilities().addCapability(capability);
 
-      // [TODO] discuss wether import package requirements should resolve agains export capabilities
+      // [TODO] Should system packages be added as capabilities?
+      SystemPackagesPlugin syspackPlugin = bundleManager.getPlugin(SystemPackagesPlugin.class);
+      
       ArrayList<String> exportedNames = new ArrayList<String>();
       
       List<PackageAttribute> exported = metadata.getExportPackages();
@@ -104,11 +109,21 @@
       List<PackageAttribute> imported = metadata.getImportPackages();
       if (imported != null)
       {
-         SystemPackagesPlugin syspackPlugin = bundleManager.getPlugin(SystemPackagesPlugin.class);
          for (PackageAttribute packageAttribute : imported)
          {
             String packageName = packageAttribute.getPackageInfo().getName();
-            if (syspackPlugin.isSystemPackage(packageName) == false && exportedNames.contains(packageName) == false)
+            
+            boolean isSystemPackage = syspackPlugin.isSystemPackage(packageName);
+            
+            boolean isOptional = false;
+            Parameter resolution = packageAttribute.getParameter(Constants.RESOLUTION_DIRECTIVE);
+            if (resolution != null && Constants.RESOLUTION_OPTIONAL.equals(resolution.getValue()))
+               isOptional = true;
+
+            // [TODO] Should import package requirements resolve against export capabilities?
+            boolean isExportPackage = exportedNames.contains(packageName);
+            
+            if (!isSystemPackage && !isExportPackage && !isOptional)
             {
                // [TODO] add version ranges
                PackageRequirement requirement = new PackageRequirement(packageName);

Modified: projects/jboss-osgi/projects/runtime/microcontainer/trunk/src/main/java/org/jboss/osgi/plugins/facade/plugins/SystemPackagesPluginImpl.java
===================================================================
--- projects/jboss-osgi/projects/runtime/microcontainer/trunk/src/main/java/org/jboss/osgi/plugins/facade/plugins/SystemPackagesPluginImpl.java	2009-08-24 11:01:04 UTC (rev 92736)
+++ projects/jboss-osgi/projects/runtime/microcontainer/trunk/src/main/java/org/jboss/osgi/plugins/facade/plugins/SystemPackagesPluginImpl.java	2009-08-24 11:08:07 UTC (rev 92737)
@@ -70,6 +70,7 @@
    {
       if (systemPackages.size() == 0)
       {
+         systemPackages.add("javax.management");
          systemPackages.add("org.osgi.framework");
          systemPackages.add("org.osgi.service.startlevel");
          systemPackages.add("org.osgi.service.packageadmin");

Modified: projects/jboss-osgi/projects/runtime/microcontainer/trunk/src/test/resources/bootstrap/bootstrap.xml
===================================================================
--- projects/jboss-osgi/projects/runtime/microcontainer/trunk/src/test/resources/bootstrap/bootstrap.xml	2009-08-24 11:01:04 UTC (rev 92736)
+++ projects/jboss-osgi/projects/runtime/microcontainer/trunk/src/test/resources/bootstrap/bootstrap.xml	2009-08-24 11:08:07 UTC (rev 92737)
@@ -22,6 +22,11 @@
   
   <bean name="OSGiSystemPackages" class="org.jboss.osgi.plugins.facade.plugins.SystemPackagesPluginImpl">
     <constructor><parameter><inject bean="OSGiBundleManager" /></parameter></constructor>
+    <property name="extraPackages">
+      <list elementClass="java.lang.String">
+        <value>org.jboss.logging;version=[2.0,3.0)</value>
+      </list>
+    </property>
   </bean>
   
   <bean name="OSGiStoragePlugin" class="org.jboss.osgi.plugins.facade.plugins.BundleStoragePluginImpl">



More information about the jboss-osgi-commits mailing list