Author: thomas.diesler(a)jboss.com
Date: 2009-08-26 06:02:04 -0400 (Wed, 26 Aug 2009)
New Revision: 92822
Modified:
projects/jboss-osgi/projects/runtime/microcontainer/trunk/src/main/java/org/jboss/osgi/plugins/facade/bundle/OSGiBundleManager.java
projects/jboss-osgi/projects/runtime/microcontainer/trunk/src/test/java/org/jboss/test/osgi/integration/simple/SimpleBundleTestCase.java
Log:
[JBOSGI-139] Implement system BundleContext.loadClass()
getServiceReference on the system context ignores isAssignable
Modified:
projects/jboss-osgi/projects/runtime/microcontainer/trunk/src/main/java/org/jboss/osgi/plugins/facade/bundle/OSGiBundleManager.java
===================================================================
---
projects/jboss-osgi/projects/runtime/microcontainer/trunk/src/main/java/org/jboss/osgi/plugins/facade/bundle/OSGiBundleManager.java 2009-08-26
09:48:25 UTC (rev 92821)
+++
projects/jboss-osgi/projects/runtime/microcontainer/trunk/src/main/java/org/jboss/osgi/plugins/facade/bundle/OSGiBundleManager.java 2009-08-26
10:02:04 UTC (rev 92822)
@@ -673,9 +673,13 @@
*/
ServiceReference getServiceReference(OSGiBundleState bundleState, String clazz)
{
- Collection<OSGiServiceState> services = getServices(bundleState, clazz, null,
true);
+ // Ignore isAssignable for the system context
+ boolean checkAssignable = (bundleState.getBundleId() != 0);
+
+ Collection<OSGiServiceState> services = getServices(bundleState, clazz, null,
checkAssignable);
if (services == null || services.isEmpty())
return null;
+
OSGiServiceState service = services.iterator().next();
return service.getReferenceInternal();
}
Modified:
projects/jboss-osgi/projects/runtime/microcontainer/trunk/src/test/java/org/jboss/test/osgi/integration/simple/SimpleBundleTestCase.java
===================================================================
---
projects/jboss-osgi/projects/runtime/microcontainer/trunk/src/test/java/org/jboss/test/osgi/integration/simple/SimpleBundleTestCase.java 2009-08-26
09:48:25 UTC (rev 92821)
+++
projects/jboss-osgi/projects/runtime/microcontainer/trunk/src/test/java/org/jboss/test/osgi/integration/simple/SimpleBundleTestCase.java 2009-08-26
10:02:04 UTC (rev 92822)
@@ -67,12 +67,13 @@
BundleContext bndContext = bundle.getBundleContext();
assertNotNull("BundleContext not null", bndContext);
+ // getServiceReference from bundle context
ServiceReference sref =
bndContext.getServiceReference(SimpleService.class.getName());
assertNotNull("ServiceReference not null", sref);
- // [TODO] getServiceReference from system context
- //sref = sysContext.getServiceReference(SimpleService.class.getName());
- //assertNotNull("ServiceReference not null", sref);
+ // getServiceReference from system context
+ sref = sysContext.getServiceReference(SimpleService.class.getName());
+ assertNotNull("ServiceReference not null", sref);
bundle.uninstall();
assertEquals("Bundle state", Bundle.UNINSTALLED, bundle.getState());
Show replies by date