[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