[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