[jboss-cvs] JBossAS SVN: r89561 - in projects/jboss-osgi/trunk: runtime/equinox/src/main/resources and 4 other directories.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Sat May 30 14:56:09 EDT 2009


Author: thomas.diesler at jboss.com
Date: 2009-05-30 14:56:09 -0400 (Sat, 30 May 2009)
New Revision: 89561

Modified:
   projects/jboss-osgi/trunk/integration/jbossas/src/main/java/org/jboss/osgi/jbossas/integration/ManagementServiceBean.java
   projects/jboss-osgi/trunk/runtime/equinox/src/main/resources/osgi-deployers-jboss-beans.xml
   projects/jboss-osgi/trunk/runtime/felix/src/main/resources/osgi-deployers-jboss-beans.xml
   projects/jboss-osgi/trunk/runtime/knopflerfish/src/main/resources/osgi-deployers-jboss-beans.xml
   projects/jboss-osgi/trunk/spi/src/main/java/org/jboss/osgi/spi/testing/capability/Capability.java
   projects/jboss-osgi/trunk/spi/src/main/java/org/jboss/osgi/spi/testing/capability/HuskyCapability.java
   projects/jboss-osgi/trunk/spi/src/main/java/org/jboss/osgi/spi/testing/capability/JAXBCapability.java
   projects/jboss-osgi/trunk/spi/src/main/java/org/jboss/osgi/spi/testing/capability/MicrocontainerCapability.java
   projects/jboss-osgi/trunk/spi/src/main/java/org/jboss/osgi/spi/testing/capability/XMLBindingCapability.java
   projects/jboss-osgi/trunk/spi/src/main/java/org/jboss/osgi/spi/testing/internal/OSGiRuntimeImpl.java
Log:
Support nested capabilities

Modified: projects/jboss-osgi/trunk/integration/jbossas/src/main/java/org/jboss/osgi/jbossas/integration/ManagementServiceBean.java
===================================================================
--- projects/jboss-osgi/trunk/integration/jbossas/src/main/java/org/jboss/osgi/jbossas/integration/ManagementServiceBean.java	2009-05-30 18:19:34 UTC (rev 89560)
+++ projects/jboss-osgi/trunk/integration/jbossas/src/main/java/org/jboss/osgi/jbossas/integration/ManagementServiceBean.java	2009-05-30 18:56:09 UTC (rev 89561)
@@ -25,6 +25,7 @@
 
 import javax.management.MBeanServer;
 
+import org.jboss.logging.Logger;
 import org.osgi.framework.BundleContext;
 
 /**
@@ -35,6 +36,8 @@
  */
 public class ManagementServiceBean 
 {
+   private static Logger log = Logger.getLogger(ManagementServiceBean.class);
+   
    private MBeanServer mbeanServer;
    private BundleContext context;
    
@@ -50,6 +53,8 @@
 
    public void start()
    {
+      // Register the MBeanServer 
       context.registerService(MBeanServer.class.getName(), mbeanServer, null);
+      log.debug("MBeanServer registered");
    }
 }
\ No newline at end of file

Modified: projects/jboss-osgi/trunk/runtime/equinox/src/main/resources/osgi-deployers-jboss-beans.xml
===================================================================
--- projects/jboss-osgi/trunk/runtime/equinox/src/main/resources/osgi-deployers-jboss-beans.xml	2009-05-30 18:19:34 UTC (rev 89560)
+++ projects/jboss-osgi/trunk/runtime/equinox/src/main/resources/osgi-deployers-jboss-beans.xml	2009-05-30 18:56:09 UTC (rev 89561)
@@ -32,6 +32,7 @@
             org.xml.sax,
             
             <!-- jboss -->
+            org.jboss.osgi.common.log;version=1.0,
             org.jboss.osgi.common.service;version=1.0,
             org.jboss.osgi.jbossas.integration,
             org.jboss.osgi.spi;version=1.0,

Modified: projects/jboss-osgi/trunk/runtime/felix/src/main/resources/osgi-deployers-jboss-beans.xml
===================================================================
--- projects/jboss-osgi/trunk/runtime/felix/src/main/resources/osgi-deployers-jboss-beans.xml	2009-05-30 18:19:34 UTC (rev 89560)
+++ projects/jboss-osgi/trunk/runtime/felix/src/main/resources/osgi-deployers-jboss-beans.xml	2009-05-30 18:56:09 UTC (rev 89561)
@@ -30,6 +30,7 @@
             org.jboss.logging,
             
             <!-- jboss -->
+            org.jboss.osgi.common.log;version=1.0,
             org.jboss.osgi.common.service;version=1.0,
             org.jboss.osgi.jbossas.integration,
             org.jboss.osgi.spi;version=1.0,

Modified: projects/jboss-osgi/trunk/runtime/knopflerfish/src/main/resources/osgi-deployers-jboss-beans.xml
===================================================================
--- projects/jboss-osgi/trunk/runtime/knopflerfish/src/main/resources/osgi-deployers-jboss-beans.xml	2009-05-30 18:19:34 UTC (rev 89560)
+++ projects/jboss-osgi/trunk/runtime/knopflerfish/src/main/resources/osgi-deployers-jboss-beans.xml	2009-05-30 18:56:09 UTC (rev 89561)
@@ -31,6 +31,7 @@
             org.xml.sax,
             
             <!-- jboss -->
+            org.jboss.osgi.common.log;version=1.0,
             org.jboss.osgi.common.service;version=1.0,
             org.jboss.osgi.jbossas.integration,
             org.jboss.osgi.spi;version=1.0,

Modified: projects/jboss-osgi/trunk/spi/src/main/java/org/jboss/osgi/spi/testing/capability/Capability.java
===================================================================
--- projects/jboss-osgi/trunk/spi/src/main/java/org/jboss/osgi/spi/testing/capability/Capability.java	2009-05-30 18:19:34 UTC (rev 89560)
+++ projects/jboss-osgi/trunk/spi/src/main/java/org/jboss/osgi/spi/testing/capability/Capability.java	2009-05-30 18:56:09 UTC (rev 89561)
@@ -39,6 +39,8 @@
 {
    private String serviceName;
    private Properties props = new Properties();
+   
+   private Set<Capability> dependencies = new LinkedHashSet<Capability>();
    private Set<String> bundles = new LinkedHashSet<String>();
 
    public Capability(String serviceName)
@@ -61,14 +63,16 @@
       bundles.add(bundle);
    }
 
-   protected void addBundles(List<String> bundles)
+   protected void addDependency(Capability dependency)
    {
-      for (String bundle : bundles)
-      {
-         addBundle(bundle);
-      }
+      dependencies.add(dependency);
    }
 
+   public List<Capability> getDependencies()
+   {
+      return new ArrayList<Capability>(dependencies);
+   }
+   
    public List<String> getBundles()
    {
       return new ArrayList<String>(bundles);

Modified: projects/jboss-osgi/trunk/spi/src/main/java/org/jboss/osgi/spi/testing/capability/HuskyCapability.java
===================================================================
--- projects/jboss-osgi/trunk/spi/src/main/java/org/jboss/osgi/spi/testing/capability/HuskyCapability.java	2009-05-30 18:19:34 UTC (rev 89560)
+++ projects/jboss-osgi/trunk/spi/src/main/java/org/jboss/osgi/spi/testing/capability/HuskyCapability.java	2009-05-30 18:56:09 UTC (rev 89561)
@@ -38,7 +38,7 @@
       // [TODO] make this a reference
       super("org.jboss.osgi.husky.runtime.Connector");
       
-      addBundles(new JMXCapability().getBundles());
+      addDependency(new JMXCapability());
       addBundle("bundles/jboss-osgi-husky.jar");
    }
 }
\ No newline at end of file

Modified: projects/jboss-osgi/trunk/spi/src/main/java/org/jboss/osgi/spi/testing/capability/JAXBCapability.java
===================================================================
--- projects/jboss-osgi/trunk/spi/src/main/java/org/jboss/osgi/spi/testing/capability/JAXBCapability.java	2009-05-30 18:19:34 UTC (rev 89560)
+++ projects/jboss-osgi/trunk/spi/src/main/java/org/jboss/osgi/spi/testing/capability/JAXBCapability.java	2009-05-30 18:56:09 UTC (rev 89561)
@@ -37,7 +37,7 @@
       // [TODO] make this a reference
       super("org.jboss.osgi.common.service.JAXBService");
       
-      addBundles(new XMLParserCapability().getBundles());
+      addDependency(new XMLParserCapability());
       addBundle("bundles/jboss-osgi-jaxb.jar");
    }
 }
\ No newline at end of file

Modified: projects/jboss-osgi/trunk/spi/src/main/java/org/jboss/osgi/spi/testing/capability/MicrocontainerCapability.java
===================================================================
--- projects/jboss-osgi/trunk/spi/src/main/java/org/jboss/osgi/spi/testing/capability/MicrocontainerCapability.java	2009-05-30 18:19:34 UTC (rev 89560)
+++ projects/jboss-osgi/trunk/spi/src/main/java/org/jboss/osgi/spi/testing/capability/MicrocontainerCapability.java	2009-05-30 18:56:09 UTC (rev 89561)
@@ -38,8 +38,8 @@
       // [TODO] make this a reference
       super("org.jboss.osgi.common.service.MicrocontainerService");
       
-      addBundles(new JMXCapability().getBundles());
-      addBundles(new XMLBindingCapability().getBundles());
+      addDependency(new JMXCapability());
+      addDependency(new XMLBindingCapability());
       addBundle("bundles/jboss-osgi-microcontainer.jar");
    }
 }
\ No newline at end of file

Modified: projects/jboss-osgi/trunk/spi/src/main/java/org/jboss/osgi/spi/testing/capability/XMLBindingCapability.java
===================================================================
--- projects/jboss-osgi/trunk/spi/src/main/java/org/jboss/osgi/spi/testing/capability/XMLBindingCapability.java	2009-05-30 18:19:34 UTC (rev 89560)
+++ projects/jboss-osgi/trunk/spi/src/main/java/org/jboss/osgi/spi/testing/capability/XMLBindingCapability.java	2009-05-30 18:56:09 UTC (rev 89561)
@@ -38,7 +38,7 @@
       // [TODO] make this a reference
       super ("org.jboss.osgi.common.service.XMLBindingService");
       
-      addBundles(new JAXBCapability().getBundles());
+      addDependency(new JAXBCapability());
       addBundle("bundles/jboss-osgi-common-core.jar");
       addBundle("bundles/jboss-osgi-xml-binding.jar");
    }

Modified: projects/jboss-osgi/trunk/spi/src/main/java/org/jboss/osgi/spi/testing/internal/OSGiRuntimeImpl.java
===================================================================
--- projects/jboss-osgi/trunk/spi/src/main/java/org/jboss/osgi/spi/testing/internal/OSGiRuntimeImpl.java	2009-05-30 18:19:34 UTC (rev 89560)
+++ projects/jboss-osgi/trunk/spi/src/main/java/org/jboss/osgi/spi/testing/internal/OSGiRuntimeImpl.java	2009-05-30 18:56:09 UTC (rev 89561)
@@ -88,6 +88,11 @@
 
    public void addCapability(Capability capability) throws BundleException
    {
+      // Add dependent capabilies
+      for (Capability dependency : capability.getDependencies())
+         addCapability(dependency);
+      
+      // Check if the service provided by the capability exists already
       OSGiServiceReference sref = getServiceReference(capability.getServiceName());
       if (sref == null)
       {
@@ -140,6 +145,13 @@
             }
          }
       }
+      
+      List<Capability> dependencies = capability.getDependencies();
+      Collections.reverse(dependencies);
+      
+      // Remove dependent capabilities
+      for (Capability dependency : dependencies)
+         removeCapability(dependency);
    }
 
    public void startLogEntryTracking(LogEntryCache logEntryCache)




More information about the jboss-cvs-commits mailing list