[jboss-cvs] JBossAS SVN: r89664 - in projects/jboss-osgi/trunk: bundles/common/src/main/java/org/jboss/osgi/common/service and 9 other directories.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Tue Jun 2 08:55:11 EDT 2009


Author: thomas.diesler at jboss.com
Date: 2009-06-02 08:55:10 -0400 (Tue, 02 Jun 2009)
New Revision: 89664

Added:
   projects/jboss-osgi/trunk/testsuite/example/src/test/java/org/jboss/test/osgi/example/microcontainer/bundleA/SomeServiceActivator.java
Removed:
   projects/jboss-osgi/trunk/testsuite/example/src/test/java/org/jboss/test/osgi/example/microcontainer/bundleA/ServiceActivator.java
Modified:
   projects/jboss-osgi/trunk/bundles/common/src/main/java/org/jboss/osgi/common/internal/AbstractCommonServicesActivator.java
   projects/jboss-osgi/trunk/bundles/common/src/main/java/org/jboss/osgi/common/internal/CommonServicesActivator.java
   projects/jboss-osgi/trunk/bundles/common/src/main/java/org/jboss/osgi/common/service/DeployerServiceDelegate.java
   projects/jboss-osgi/trunk/bundles/hotdeploy/src/main/java/org/jboss/osgi/service/hotdeploy/internal/DeploymentScannerImpl.java
   projects/jboss-osgi/trunk/spi/src/main/java/org/jboss/osgi/spi/testing/OSGiTest.java
   projects/jboss-osgi/trunk/spi/src/main/java/org/jboss/osgi/spi/testing/internal/EmbeddedRuntime.java
   projects/jboss-osgi/trunk/spi/src/main/java/org/jboss/osgi/spi/testing/internal/OSGiRuntimeImpl.java
   projects/jboss-osgi/trunk/testsuite/example/src/test/java/org/jboss/test/osgi/example/jmx/JMXTestCase.java
   projects/jboss-osgi/trunk/testsuite/example/src/test/java/org/jboss/test/osgi/example/microcontainer/MicrocontainerTestCase.java
   projects/jboss-osgi/trunk/testsuite/example/src/test/java/org/jboss/test/osgi/example/microcontainer/bundleA/SomeService.java
   projects/jboss-osgi/trunk/testsuite/example/src/test/java/org/jboss/test/osgi/example/microcontainer/bundleB/SomeBean.java
   projects/jboss-osgi/trunk/testsuite/example/src/test/java/org/jboss/test/osgi/example/microcontainer/bundleB/SomeBeanMBean.java
   projects/jboss-osgi/trunk/testsuite/example/src/test/resources/mcservice/META-INF/mcservice-jboss-beans.xml
   projects/jboss-osgi/trunk/testsuite/example/src/test/resources/mcservice/example-mcservice-bundleA.bnd
   projects/jboss-osgi/trunk/testsuite/example/src/test/resources/mcservice/example-mcservice-bundleB.bnd
Log:
Provide a propper MC service example

Modified: projects/jboss-osgi/trunk/bundles/common/src/main/java/org/jboss/osgi/common/internal/AbstractCommonServicesActivator.java
===================================================================
--- projects/jboss-osgi/trunk/bundles/common/src/main/java/org/jboss/osgi/common/internal/AbstractCommonServicesActivator.java	2009-06-02 11:32:13 UTC (rev 89663)
+++ projects/jboss-osgi/trunk/bundles/common/src/main/java/org/jboss/osgi/common/internal/AbstractCommonServicesActivator.java	2009-06-02 12:55:10 UTC (rev 89664)
@@ -32,6 +32,7 @@
 import org.jboss.osgi.common.service.DeployerServiceDelegate;
 import org.jboss.osgi.spi.service.DeployerService;
 import org.osgi.framework.BundleContext;
+import org.osgi.framework.Constants;
 import org.osgi.framework.ServiceReference;
 import org.osgi.service.log.LogReaderService;
 import org.osgi.util.tracker.ServiceTracker;
@@ -60,21 +61,23 @@
       logTracker.open();
    }
 
-   protected DeployerServiceDelegate registerDeployerServices(BundleContext context)
+   protected DeployerService registerDeployerServices(BundleContext context)
    {
       // Register the SystemDeployerService
       Properties props = new Properties();
-      props.setProperty("provider", "system");
-      SystemDeployerService service = new SystemDeployerService(context);
-      context.registerService(DeployerService.class.getName(), service, props);
+      props.put("provider", "system");
+      SystemDeployerService systemDeployer = new SystemDeployerService(context);
+      context.registerService(DeployerService.class.getName(), systemDeployer, props);
       
       // Register the DeployerServiceDelegate
-      DeployerServiceDelegate delegate = new DeployerServiceDelegate(context);
-      context.registerService(DeployerServiceDelegate.class.getName(), delegate, null);
-      return delegate;
+      props = new Properties();
+      props.put(Constants.SERVICE_RANKING, Integer.MAX_VALUE);
+      DeployerService deployerDelegate = new DeployerServiceDelegate(context);
+      context.registerService(DeployerService.class.getName(), deployerDelegate, props);
+      return deployerDelegate;
    }
 
-   protected void registerDeployerServiceMBean(MBeanServer mbeanServer, DeployerServiceDelegate delegate)
+   protected void registerDeployerServiceMBean(MBeanServer mbeanServer, DeployerService delegate)
    {
       try
       {

Modified: projects/jboss-osgi/trunk/bundles/common/src/main/java/org/jboss/osgi/common/internal/CommonServicesActivator.java
===================================================================
--- projects/jboss-osgi/trunk/bundles/common/src/main/java/org/jboss/osgi/common/internal/CommonServicesActivator.java	2009-06-02 11:32:13 UTC (rev 89663)
+++ projects/jboss-osgi/trunk/bundles/common/src/main/java/org/jboss/osgi/common/internal/CommonServicesActivator.java	2009-06-02 12:55:10 UTC (rev 89664)
@@ -27,7 +27,7 @@
 import javax.management.MBeanServer;
 
 import org.jboss.osgi.common.log.LogServiceTracker;
-import org.jboss.osgi.common.service.DeployerServiceDelegate;
+import org.jboss.osgi.spi.service.DeployerService;
 import org.osgi.framework.BundleActivator;
 import org.osgi.framework.BundleContext;
 import org.osgi.framework.ServiceReference;
@@ -58,13 +58,13 @@
       trackLogReaderService(context);
       
       // Register the system SystemDeployerService and DeployerServiceDelegate
-      DeployerServiceDelegate delegate = registerDeployerServices(context);
+      DeployerService deployer = registerDeployerServices(context);
       
       // Track the MBeanServer and register the DeployerServiceDelegate
-      trackMBeanServer(context, delegate);
+      trackMBeanServer(context, deployer);
    }
 
-   private void trackMBeanServer(BundleContext context, final DeployerServiceDelegate delegate)
+   private void trackMBeanServer(BundleContext context, final DeployerService deployer)
    {
       ServiceTracker jmxTracker = new ServiceTracker(context, MBeanServer.class.getName(), null)
       {
@@ -72,7 +72,7 @@
          public Object addingService(ServiceReference reference)
          {
             MBeanServer mbeanServer = (MBeanServer)super.addingService(reference);
-            registerDeployerServiceMBean(mbeanServer, delegate);
+            registerDeployerServiceMBean(mbeanServer, deployer);
             return mbeanServer;
          }
 

Modified: projects/jboss-osgi/trunk/bundles/common/src/main/java/org/jboss/osgi/common/service/DeployerServiceDelegate.java
===================================================================
--- projects/jboss-osgi/trunk/bundles/common/src/main/java/org/jboss/osgi/common/service/DeployerServiceDelegate.java	2009-06-02 11:32:13 UTC (rev 89663)
+++ projects/jboss-osgi/trunk/bundles/common/src/main/java/org/jboss/osgi/common/service/DeployerServiceDelegate.java	2009-06-02 12:55:10 UTC (rev 89664)
@@ -99,7 +99,6 @@
    private DeployerService getMicrocontainerDeployerService()
    {
       DeployerService service = null;
-
       try
       {
          String filter = "(provider=microcontainer)";
@@ -112,18 +111,27 @@
       {
          throw new IllegalArgumentException(ex);
       }
-
       return service;
    }
 
    private DeployerService getSystemDeployerService()
    {
-      String serviceName = DeployerService.class.getName();
-      ServiceReference sref = context.getServiceReference(serviceName);
-      if (sref == null)
+      DeployerService service = null;
+      try
+      {
+         String filter = "(provider=system)";
+         String serviceName = DeployerService.class.getName();
+         ServiceReference[] srefs = context.getServiceReferences(serviceName, filter);
+         if (srefs != null)
+            service = (DeployerService)context.getService(srefs[0]);
+      }
+      catch (InvalidSyntaxException ex)
+      {
+         throw new IllegalArgumentException(ex);
+      }
+      
+      if (service == null)
          throw new IllegalStateException("Cannot obtain system DeployerService");
-      
-      return (DeployerService)context.getService(sref);
+      return service;
    }
-
 }
\ No newline at end of file

Modified: projects/jboss-osgi/trunk/bundles/hotdeploy/src/main/java/org/jboss/osgi/service/hotdeploy/internal/DeploymentScannerImpl.java
===================================================================
--- projects/jboss-osgi/trunk/bundles/hotdeploy/src/main/java/org/jboss/osgi/service/hotdeploy/internal/DeploymentScannerImpl.java	2009-06-02 11:32:13 UTC (rev 89663)
+++ projects/jboss-osgi/trunk/bundles/hotdeploy/src/main/java/org/jboss/osgi/service/hotdeploy/internal/DeploymentScannerImpl.java	2009-06-02 12:55:10 UTC (rev 89664)
@@ -35,9 +35,9 @@
 import java.util.jar.Manifest;
 
 import org.jboss.osgi.common.log.LogServiceTracker;
-import org.jboss.osgi.common.service.DeployerServiceDelegate;
 import org.jboss.osgi.service.hotdeploy.DeploymentScannerService;
 import org.jboss.osgi.spi.service.BundleInfo;
+import org.jboss.osgi.spi.service.DeployerService;
 import org.jboss.osgi.spi.service.BundleInfo.State;
 import org.osgi.framework.Bundle;
 import org.osgi.framework.BundleContext;
@@ -60,7 +60,7 @@
    private File scanLocation;
    private long scanCount;
 
-   private DeployerServiceDelegate delegate;
+   private DeployerService deployer;
    private ScannerThread scannerThread;
    private List<BundleInfo> lastScan = new ArrayList<BundleInfo>();
    private boolean traceBundles = false;
@@ -71,8 +71,8 @@
       this.context = context;
 
       // Get the DeployerServiceDelegate
-      ServiceReference sref = context.getServiceReference(DeployerServiceDelegate.class.getName());
-      delegate = (DeployerServiceDelegate)context.getService(sref);
+      ServiceReference sref = context.getServiceReference(DeployerService.class.getName());
+      deployer = (DeployerService)context.getService(sref);
 
       initScanner(context);
    }
@@ -136,7 +136,7 @@
       try
       {
          BundleInfo[] infoArr = diff.toArray(new BundleInfo[diff.size()]);
-         delegate.undeploy(infoArr);
+         deployer.undeploy(infoArr);
       }
       catch (Exception ex)
       {
@@ -162,7 +162,7 @@
       try
       {
          BundleInfo[] infoArr = diff.toArray(new BundleInfo[diff.size()]);
-         delegate.deploy(infoArr);
+         deployer.deploy(infoArr);
       }
       catch (Exception ex)
       {

Modified: projects/jboss-osgi/trunk/spi/src/main/java/org/jboss/osgi/spi/testing/OSGiTest.java
===================================================================
--- projects/jboss-osgi/trunk/spi/src/main/java/org/jboss/osgi/spi/testing/OSGiTest.java	2009-06-02 11:32:13 UTC (rev 89663)
+++ projects/jboss-osgi/trunk/spi/src/main/java/org/jboss/osgi/spi/testing/OSGiTest.java	2009-06-02 12:55:10 UTC (rev 89664)
@@ -46,7 +46,7 @@
    // Provide logging
    final Logger log = Logger.getLogger(OSGiTest.class);
 
-   private OSGiTestHelper helper = new OSGiTestHelper();
+   private OSGiTestHelper helper;
 
    protected OSGiTest()
    {
@@ -55,6 +55,20 @@
    }
 
    /**
+    * Get the test helper used by this test
+    * 
+    * Overwrite if you need to supply another helper
+    * i.e. one that you have statically setup 
+    */
+   protected OSGiTestHelper getTestHelper()
+   {
+      if (helper == null)
+         helper = new OSGiTestHelper();
+         
+      return helper;
+   }
+
+   /**
     * Writes a a debug start messge
     */
    @Before
@@ -95,7 +109,7 @@
     */
    protected OSGiRuntime getDefaultRuntime()
    {
-      return helper.getDefaultRuntime();
+      return getTestHelper().getDefaultRuntime();
    }
 
    /**
@@ -103,7 +117,7 @@
     */
    protected OSGiRuntime getEmbeddedRuntime()
    {
-      return helper.getEmbeddedRuntime();
+      return getTestHelper().getEmbeddedRuntime();
    }
 
    /**
@@ -111,7 +125,7 @@
     */
    public OSGiRuntime getRemoteRuntime()
    {
-      return helper.getRemoteRuntime();
+      return getTestHelper().getRemoteRuntime();
    }
 
    /**
@@ -119,7 +133,7 @@
     */
    protected URL getResourceURL(String resource)
    {
-      return helper.getResourceURL(resource);
+      return getTestHelper().getResourceURL(resource);
    }
 
    /**
@@ -127,7 +141,7 @@
     */
    protected File getResourceFile(String resource)
    {
-      return helper.getResourceFile(resource);
+      return getTestHelper().getResourceFile(resource);
    }
 
    /**
@@ -135,7 +149,7 @@
     */
    protected URL getTestArchiveURL(String archive)
    {
-      return helper.getTestArchiveURL(archive);
+      return getTestHelper().getTestArchiveURL(archive);
    }
 
    /**
@@ -143,7 +157,7 @@
     */
    protected File getTestArchiveFile(String archive)
    {
-      return helper.getTestArchiveFile(archive);
+      return getTestHelper().getTestArchiveFile(archive);
    }
    
    /**
@@ -151,7 +165,7 @@
     */
    public InitialContext getInitialContext() throws NamingException
    {
-      return helper.getInitialContext();
+      return getTestHelper().getInitialContext();
    }
 
    /**
@@ -159,7 +173,7 @@
     */
    public Integer getJndiPort()
    {
-      return helper.getJndiPort();
+      return getTestHelper().getJndiPort();
    }
 
    /**
@@ -167,6 +181,6 @@
     */
    public String getServerHost()
    {
-      return helper.getServerHost();
+      return getTestHelper().getServerHost();
    }
 }

Modified: projects/jboss-osgi/trunk/spi/src/main/java/org/jboss/osgi/spi/testing/internal/EmbeddedRuntime.java
===================================================================
--- projects/jboss-osgi/trunk/spi/src/main/java/org/jboss/osgi/spi/testing/internal/EmbeddedRuntime.java	2009-06-02 11:32:13 UTC (rev 89663)
+++ projects/jboss-osgi/trunk/spi/src/main/java/org/jboss/osgi/spi/testing/internal/EmbeddedRuntime.java	2009-06-02 12:55:10 UTC (rev 89664)
@@ -37,6 +37,7 @@
 import org.jboss.osgi.spi.framework.OSGiBootstrapProvider;
 import org.jboss.osgi.spi.framework.OSGiFramework;
 import org.jboss.osgi.spi.logging.LogEntryCache;
+import org.jboss.osgi.spi.service.DeployerService;
 import org.jboss.osgi.spi.testing.OSGiBundle;
 import org.jboss.osgi.spi.testing.OSGiPackageAdmin;
 import org.jboss.osgi.spi.testing.OSGiRuntime;
@@ -66,9 +67,15 @@
 
    public OSGiBundle installBundle(String location) throws BundleException
    {
+      String symbolicName = getSymbolicName(location);
+      
       URL bundleURL = getTestHelper().getTestArchiveURL(location);
-      Bundle bundle = getBundleContext().installBundle(bundleURL.toExternalForm());
-      return new EmbeddedBundle(bundle);
+      ServiceReference sref = getBundleContext().getServiceReference(DeployerService.class.getName());
+      DeployerService service = (DeployerService)getBundleContext().getService(sref);
+      service.deploy(bundleURL);
+      
+      OSGiBundle bundle = getBundle(symbolicName, null);
+      return bundle;
    }
 
    public OSGiBundle[] getBundles()

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-06-02 11:32:13 UTC (rev 89663)
+++ projects/jboss-osgi/trunk/spi/src/main/java/org/jboss/osgi/spi/testing/internal/OSGiRuntimeImpl.java	2009-06-02 12:55:10 UTC (rev 89664)
@@ -231,21 +231,22 @@
 
    protected String getSymbolicName(String location)
    {
-      String symbolicName = null;
+      Manifest manifest;
       try
       {
          File archiveFile = getTestHelper().getTestArchiveFile(location);
          JarFile jarFile = new JarFile(archiveFile);
-         Manifest manifest = jarFile.getManifest();
+         manifest = jarFile.getManifest();
          jarFile.close();
-         
-         Attributes attribs = manifest.getMainAttributes();
-         symbolicName = attribs.getValue(Constants.BUNDLE_SYMBOLICNAME);
       }
       catch (IOException ex)
       {
+         throw new IllegalStateException("Cannot get manifest from: " + location);
 
       }
+      
+      Attributes attribs = manifest.getMainAttributes();
+      String symbolicName = attribs.getValue(Constants.BUNDLE_SYMBOLICNAME);
       if (symbolicName == null)
          throw new IllegalArgumentException("Cannot obtain Bundle-SymbolicName for: " + location);
 

Modified: projects/jboss-osgi/trunk/testsuite/example/src/test/java/org/jboss/test/osgi/example/jmx/JMXTestCase.java
===================================================================
--- projects/jboss-osgi/trunk/testsuite/example/src/test/java/org/jboss/test/osgi/example/jmx/JMXTestCase.java	2009-06-02 11:32:13 UTC (rev 89663)
+++ projects/jboss-osgi/trunk/testsuite/example/src/test/java/org/jboss/test/osgi/example/jmx/JMXTestCase.java	2009-06-02 12:55:10 UTC (rev 89664)
@@ -25,9 +25,7 @@
 
 import static org.junit.Assert.assertEquals;
 
-import javax.management.MBeanServerConnection;
 import javax.management.ObjectName;
-import javax.naming.InitialContext;
 
 import org.jboss.osgi.spi.capability.JMXCapability;
 import org.jboss.osgi.spi.capability.JNDICapability;
@@ -77,17 +75,4 @@
       FooMBean foo = (FooMBean)MBeanProxy.get(FooMBean.class, oname, runtime.getMBeanServer());
       assertEquals("hello", foo.echo("hello"));
    }
-
-   @Test
-   public void testRMIAdaptor() throws Exception
-   {
-      // Lookup the MBeanServerConnection
-      InitialContext iniCtx = runtime.getInitialContext();
-      MBeanServerConnection rmiAdaptor = (MBeanServerConnection)iniCtx.lookup("jmx/invoker/RMIAdaptor");
-
-      // Access the MBean through the MBeanServerConnection
-      ObjectName oname = new ObjectName("jboss.osgi:service=mbean-test-service");
-      FooMBean foo = (FooMBean)MBeanProxy.get(FooMBean.class, oname, rmiAdaptor);
-      assertEquals("hello", foo.echo("hello"));
-   }
 }
\ No newline at end of file

Modified: projects/jboss-osgi/trunk/testsuite/example/src/test/java/org/jboss/test/osgi/example/microcontainer/MicrocontainerTestCase.java
===================================================================
--- projects/jboss-osgi/trunk/testsuite/example/src/test/java/org/jboss/test/osgi/example/microcontainer/MicrocontainerTestCase.java	2009-06-02 11:32:13 UTC (rev 89663)
+++ projects/jboss-osgi/trunk/testsuite/example/src/test/java/org/jboss/test/osgi/example/microcontainer/MicrocontainerTestCase.java	2009-06-02 12:55:10 UTC (rev 89664)
@@ -23,29 +23,17 @@
 
 //$Id$
 
-import static org.jboss.osgi.spi.management.ManagedFrameworkMBean.MBEAN_MANAGED_FRAMEWORK;
-import static org.jboss.osgi.spi.service.DeployerService.MBEAN_DEPLOYER_SERVICE;
-import static org.jboss.osgi.spi.service.MicrocontainerService.BEAN_KERNEL;
-import static org.jboss.osgi.spi.service.MicrocontainerService.BEAN_MBEAN_SERVER;
-import static org.jboss.osgi.spi.service.MicrocontainerService.BEAN_SYSTEM_BUNDLE_CONTEXT;
-import static org.jboss.osgi.spi.service.MicrocontainerServiceMBean.MBEAN_MICROCONTAINER_SERVICE;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertTrue;
+import static org.jboss.test.osgi.example.microcontainer.bundleB.SomeBeanMBean.MBEAN_NAME;
+import static org.junit.Assert.assertEquals;
 
-import java.util.List;
-import java.util.Set;
-
-import javax.management.ObjectName;
-
 import org.jboss.osgi.spi.capability.JNDICapability;
 import org.jboss.osgi.spi.capability.MicrocontainerCapability;
 import org.jboss.osgi.spi.management.MBeanProxy;
-import org.jboss.osgi.spi.management.ManagedFrameworkMBean;
-import org.jboss.osgi.spi.service.DeployerService;
-import org.jboss.osgi.spi.service.MicrocontainerServiceMBean;
+import org.jboss.osgi.spi.testing.OSGiBundle;
 import org.jboss.osgi.spi.testing.OSGiRuntime;
 import org.jboss.osgi.spi.testing.OSGiTest;
 import org.jboss.osgi.spi.testing.OSGiTestHelper;
+import org.jboss.test.osgi.example.microcontainer.bundleB.SomeBeanMBean;
 import org.junit.AfterClass;
 import org.junit.BeforeClass;
 import org.junit.Test;
@@ -58,7 +46,9 @@
  */
 public class MicrocontainerTestCase extends OSGiTest
 {
-   private static OSGiRuntime runtime;
+   static OSGiRuntime runtime;
+   static OSGiBundle bundleA;
+   static OSGiBundle bundleB;
 
    @BeforeClass
    public static void setUpClass() throws Exception
@@ -66,60 +56,31 @@
       runtime = new OSGiTestHelper().getDefaultRuntime();
       runtime.addCapability(new JNDICapability());
       runtime.addCapability(new MicrocontainerCapability());
+      
+      bundleA = runtime.installBundle("example-mcservice-bundleA.jar");
+      bundleB = runtime.installBundle("example-mcservice-bundleB.jar");
+      
+      bundleA.start();
    }
 
    @AfterClass
    public static void tearDownClass() throws Exception
    {
+      if (bundleA != null)
+         bundleA.uninstall();
+      
+      if (bundleB != null)
+         bundleB.uninstall();
+      
       runtime.shutdown();
    }
 
    @Test
-   public void testServiceAccess() throws Exception
-   {
-      MicrocontainerServiceMBean mcService = MBeanProxy.get(MicrocontainerServiceMBean.class, MBEAN_MICROCONTAINER_SERVICE, runtime.getMBeanServer());
-      List<String> registeredBeans = mcService.getRegisteredBeans();
-      assertTrue("BundleContext registered with MC", registeredBeans.contains(BEAN_SYSTEM_BUNDLE_CONTEXT));
-      assertTrue("MBeanServer registered with MC", registeredBeans.contains(BEAN_MBEAN_SERVER));
-      assertTrue("Kernel registered with MC", registeredBeans.contains(BEAN_KERNEL));
-   }
-
-   /**
-    * Test whether the bundle can be deployed through the MicrocontainerServiceMBean
-    */
-   @Test
-   public void testBundleDeployment() throws Exception
-   {
-      DeployerService deployer = MBeanProxy.get(DeployerService.class, MBEAN_DEPLOYER_SERVICE, runtime.getMBeanServer());
-      deployer.deploy(getTestArchiveURL("example-mcservice-bundleA.jar"));
-
-      ManagedFrameworkMBean frameworkMBean = MBeanProxy.get(ManagedFrameworkMBean.class, MBEAN_MANAGED_FRAMEWORK, runtime.getMBeanServer());
-      Set<ObjectName> bundles = frameworkMBean.getBundles();
-      assertTrue("Managed bundle registered", bundles.toString().indexOf("jboss.osgi:bundle=example-mcservice-bundleA") > 0);
-
-      deployer.undeploy(getTestArchiveURL("example-mcservice-bundleA.jar"));
-   }
-
-   @Test
    public void testBeansDeployment() throws Exception
    {
-      MicrocontainerServiceMBean mcService = MBeanProxy.get(MicrocontainerServiceMBean.class, MBEAN_MICROCONTAINER_SERVICE, runtime.getMBeanServer());
-      DeployerService deployer = MBeanProxy.get(DeployerService.class, MBEAN_DEPLOYER_SERVICE, runtime.getMBeanServer());
-      
-      deployer.deploy(getTestArchiveURL("example-mcservice-bundleB.jar"));
-
-      ManagedFrameworkMBean frameworkMBean = MBeanProxy.get(ManagedFrameworkMBean.class, MBEAN_MANAGED_FRAMEWORK, runtime.getMBeanServer());
-      Set<ObjectName> bundles = frameworkMBean.getBundles();
-      assertTrue("Managed bundle registered", bundles.toString().indexOf("jboss.osgi:bundle=example-mcservice-bundleB") > 0);
-
-      // Check whether the bean is registered
-      List<String> registeredBeans = mcService.getRegisteredBeans();
-      assertTrue("SomeBean registered", registeredBeans.contains("SomeBean"));
-
-      deployer.undeploy(getTestArchiveURL("example-mcservice-bundleB.jar"));
-
-      // Check whether the bean is unregistered
-      registeredBeans = mcService.getRegisteredBeans();
-      assertFalse("SomeBean unregistered", registeredBeans.contains("SomeBean"));
+      // Access the bean through JMX
+      SomeBeanMBean someBean = MBeanProxy.get(SomeBeanMBean.class, MBEAN_NAME, runtime.getMBeanServer());
+      assertEquals("hello", someBean.echo("hello"));
+      assertEquals("hello", someBean.callSomeService("hello"));
    }
 }
\ No newline at end of file

Deleted: projects/jboss-osgi/trunk/testsuite/example/src/test/java/org/jboss/test/osgi/example/microcontainer/bundleA/ServiceActivator.java
===================================================================
--- projects/jboss-osgi/trunk/testsuite/example/src/test/java/org/jboss/test/osgi/example/microcontainer/bundleA/ServiceActivator.java	2009-06-02 11:32:13 UTC (rev 89663)
+++ projects/jboss-osgi/trunk/testsuite/example/src/test/java/org/jboss/test/osgi/example/microcontainer/bundleA/ServiceActivator.java	2009-06-02 12:55:10 UTC (rev 89664)
@@ -1,46 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2005, JBoss Inc., and individual contributors as indicated
- * by the @authors tag. See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-package org.jboss.test.osgi.example.microcontainer.bundleA;
-
-//$Id$
-
-import org.osgi.framework.BundleActivator;
-import org.osgi.framework.BundleContext;
-
-/**
- * A Service Activator
- * 
- * @author thomas.diesler at jboss.com
- * @since 24-Apr-2009
- */
-public class ServiceActivator implements BundleActivator
-{
-   public void start(BundleContext context)
-   {
-      SomeService service = new SomeService(context);
-      context.registerService(SomeService.class.getName(), service, null);
-   }
-
-   public void stop(BundleContext context)
-   {
-   }
-}
\ No newline at end of file

Modified: projects/jboss-osgi/trunk/testsuite/example/src/test/java/org/jboss/test/osgi/example/microcontainer/bundleA/SomeService.java
===================================================================
--- projects/jboss-osgi/trunk/testsuite/example/src/test/java/org/jboss/test/osgi/example/microcontainer/bundleA/SomeService.java	2009-06-02 11:32:13 UTC (rev 89663)
+++ projects/jboss-osgi/trunk/testsuite/example/src/test/java/org/jboss/test/osgi/example/microcontainer/bundleA/SomeService.java	2009-06-02 12:55:10 UTC (rev 89664)
@@ -23,9 +23,8 @@
 
 //$Id$
 
-import static org.jboss.osgi.spi.service.MicrocontainerService.BEAN_SYSTEM_BUNDLE_CONTEXT;
-
 import org.jboss.osgi.spi.service.MicrocontainerService;
+import org.jboss.test.osgi.example.microcontainer.bundleB.SomeBean;
 import org.osgi.framework.BundleContext;
 import org.osgi.framework.ServiceReference;
 
@@ -42,25 +41,15 @@
    public SomeService(BundleContext context)
    {
       this.context = context;
-      
-      MicrocontainerService mcService = getMicrocontainerService();
-      BundleContext bundleContext = (BundleContext)mcService.getRegisteredBean(BEAN_SYSTEM_BUNDLE_CONTEXT);
-      if (bundleContext == null)
-         throw new IllegalStateException("No BundleContext as MC Bean");
    }
 
-//   public String callSomeBean(String msg)
-//   {
-//      MicrocontainerService mcService = getMicrocontainerService();
-//      SomeBean bean = (SomeBean)mcService.getRegisteredBean(SomeBean.class.getName());
-//      return bean.echo(msg);
-//   }
-   
-   public String echo(String msg)
+   public String callSomeBean(String msg)
    {
-      return msg;
+      MicrocontainerService mcService = getMicrocontainerService();
+      SomeBean bean = (SomeBean)mcService.getRegisteredBean("SomeBean");
+      return bean.echo(msg);
    }
-
+   
    private MicrocontainerService getMicrocontainerService()
    {
       ServiceReference sref = context.getServiceReference(MicrocontainerService.class.getName());

Copied: projects/jboss-osgi/trunk/testsuite/example/src/test/java/org/jboss/test/osgi/example/microcontainer/bundleA/SomeServiceActivator.java (from rev 89649, projects/jboss-osgi/trunk/testsuite/example/src/test/java/org/jboss/test/osgi/example/microcontainer/bundleA/ServiceActivator.java)
===================================================================
--- projects/jboss-osgi/trunk/testsuite/example/src/test/java/org/jboss/test/osgi/example/microcontainer/bundleA/SomeServiceActivator.java	                        (rev 0)
+++ projects/jboss-osgi/trunk/testsuite/example/src/test/java/org/jboss/test/osgi/example/microcontainer/bundleA/SomeServiceActivator.java	2009-06-02 12:55:10 UTC (rev 89664)
@@ -0,0 +1,46 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.test.osgi.example.microcontainer.bundleA;
+
+//$Id$
+
+import org.osgi.framework.BundleActivator;
+import org.osgi.framework.BundleContext;
+
+/**
+ * A Service Activator
+ * 
+ * @author thomas.diesler at jboss.com
+ * @since 24-Apr-2009
+ */
+public class SomeServiceActivator implements BundleActivator
+{
+   public void start(BundleContext context)
+   {
+      SomeService service = new SomeService(context);
+      context.registerService(SomeService.class.getName(), service, null);
+   }
+
+   public void stop(BundleContext context)
+   {
+   }
+}
\ No newline at end of file

Modified: projects/jboss-osgi/trunk/testsuite/example/src/test/java/org/jboss/test/osgi/example/microcontainer/bundleB/SomeBean.java
===================================================================
--- projects/jboss-osgi/trunk/testsuite/example/src/test/java/org/jboss/test/osgi/example/microcontainer/bundleB/SomeBean.java	2009-06-02 11:32:13 UTC (rev 89663)
+++ projects/jboss-osgi/trunk/testsuite/example/src/test/java/org/jboss/test/osgi/example/microcontainer/bundleB/SomeBean.java	2009-06-02 12:55:10 UTC (rev 89664)
@@ -26,6 +26,10 @@
 import javax.management.MBeanServer;
 import javax.management.ObjectName;
 
+import org.jboss.test.osgi.example.microcontainer.bundleA.SomeService;
+import org.osgi.framework.BundleContext;
+import org.osgi.framework.ServiceReference;
+
 /**
  * An MC bean that accesses some OSGi service
  * 
@@ -34,6 +38,7 @@
  */
 public class SomeBean implements SomeBeanMBean
 {
+   private BundleContext bundleContext;
    private MBeanServer mbeanServer;
 
    public void setMbeanServer(MBeanServer server)
@@ -41,6 +46,23 @@
       this.mbeanServer = server;
    }
 
+   public void setBundleContext(BundleContext systemContext)
+   {
+      this.bundleContext = systemContext;
+   }
+
+   public String echo(String msg)
+   {
+      return msg;
+   }
+   
+   public String callSomeService(String msg)
+   {
+      ServiceReference sref = bundleContext.getServiceReference(SomeService.class.getName());
+      SomeService service = (SomeService)bundleContext.getService(sref);
+      return service.callSomeBean(msg);
+   }
+
    public void create() throws Exception
    {
       mbeanServer.registerMBean(this, new ObjectName("jboss.osgi:bean=SomeBean"));
@@ -50,9 +72,4 @@
    {
       mbeanServer.unregisterMBean(new ObjectName("jboss.osgi:bean=SomeBean"));
    }
-   
-   public String echo(String msg)
-   {
-      return msg;
-   }
 }

Modified: projects/jboss-osgi/trunk/testsuite/example/src/test/java/org/jboss/test/osgi/example/microcontainer/bundleB/SomeBeanMBean.java
===================================================================
--- projects/jboss-osgi/trunk/testsuite/example/src/test/java/org/jboss/test/osgi/example/microcontainer/bundleB/SomeBeanMBean.java	2009-06-02 11:32:13 UTC (rev 89663)
+++ projects/jboss-osgi/trunk/testsuite/example/src/test/java/org/jboss/test/osgi/example/microcontainer/bundleB/SomeBeanMBean.java	2009-06-02 12:55:10 UTC (rev 89664)
@@ -21,9 +21,17 @@
  */
 package org.jboss.test.osgi.example.microcontainer.bundleB;
 
+import javax.management.ObjectName;
+
+import org.jboss.osgi.spi.management.ObjectNameFactory;
+
 //$Id$
 
 public interface SomeBeanMBean
 {
+   ObjectName MBEAN_NAME = ObjectNameFactory.create("jboss.osgi:bean=SomeBean");
+   
+   String callSomeService(String msg);
+   
    String echo(String msg);
 }

Modified: projects/jboss-osgi/trunk/testsuite/example/src/test/resources/mcservice/META-INF/mcservice-jboss-beans.xml
===================================================================
--- projects/jboss-osgi/trunk/testsuite/example/src/test/resources/mcservice/META-INF/mcservice-jboss-beans.xml	2009-06-02 11:32:13 UTC (rev 89663)
+++ projects/jboss-osgi/trunk/testsuite/example/src/test/resources/mcservice/META-INF/mcservice-jboss-beans.xml	2009-06-02 12:55:10 UTC (rev 89664)
@@ -1,6 +1,7 @@
 <deployment xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:jboss:bean-deployer:2.0 bean-deployer_2_0.xsd" xmlns="urn:jboss:bean-deployer:2.0">
 
   <bean name="SomeBean" class="org.jboss.test.osgi.example.microcontainer.bundleB.SomeBean">
+    <property name="bundleContext"><inject bean="jboss.osgi:service=BundleContext"/></property>
     <property name="mbeanServer"><inject bean="jboss.osgi:service=MBeanServer"/></property>
   </bean>
 

Modified: projects/jboss-osgi/trunk/testsuite/example/src/test/resources/mcservice/example-mcservice-bundleA.bnd
===================================================================
--- projects/jboss-osgi/trunk/testsuite/example/src/test/resources/mcservice/example-mcservice-bundleA.bnd	2009-06-02 11:32:13 UTC (rev 89663)
+++ projects/jboss-osgi/trunk/testsuite/example/src/test/resources/mcservice/example-mcservice-bundleA.bnd	2009-06-02 12:55:10 UTC (rev 89664)
@@ -2,8 +2,8 @@
 
 Bundle-SymbolicName: example-mcservice-bundleA
 
-Bundle-Activator: org.jboss.test.osgi.example.microcontainer.bundleA.ServiceActivator
+Bundle-Activator: org.jboss.test.osgi.example.microcontainer.bundleA.SomeServiceActivator
 
 Export-Package: org.jboss.test.osgi.example.microcontainer.bundleA
 
-Import-Package: org.jboss.osgi.spi.service, org.osgi.framework
+Import-Package: org.jboss.test.osgi.example.microcontainer.bundleB, org.jboss.osgi.spi.service, org.osgi.framework

Modified: projects/jboss-osgi/trunk/testsuite/example/src/test/resources/mcservice/example-mcservice-bundleB.bnd
===================================================================
--- projects/jboss-osgi/trunk/testsuite/example/src/test/resources/mcservice/example-mcservice-bundleB.bnd	2009-06-02 11:32:13 UTC (rev 89663)
+++ projects/jboss-osgi/trunk/testsuite/example/src/test/resources/mcservice/example-mcservice-bundleB.bnd	2009-06-02 12:55:10 UTC (rev 89664)
@@ -4,7 +4,7 @@
 
 Export-Package: org.jboss.test.osgi.example.microcontainer.bundleB 
 
-Import-Package: javax.management
+Import-Package: javax.management, org.jboss.osgi.spi.management, org.jboss.test.osgi.example.microcontainer.bundleA, org.osgi.framework
 
 Include-Resource: META-INF/mcservice-jboss-beans.xml=META-INF/mcservice-jboss-beans.xml
 -removeheaders: Include-Resource




More information about the jboss-cvs-commits mailing list