[jboss-osgi-commits] JBoss-OSGI SVN: r99988 - in projects/jboss-osgi/trunk/testsuite/example/src/test: java/org/jboss/test/osgi/example/serviceloader/client and 1 other directories.
jboss-osgi-commits at lists.jboss.org
jboss-osgi-commits at lists.jboss.org
Wed Jan 27 06:09:27 EST 2010
Author: thomas.diesler at jboss.com
Date: 2010-01-27 06:09:26 -0500 (Wed, 27 Jan 2010)
New Revision: 99988
Modified:
projects/jboss-osgi/trunk/testsuite/example/src/test/java/org/jboss/test/osgi/example/serviceloader/ServiceLoaderTestCase.java
projects/jboss-osgi/trunk/testsuite/example/src/test/java/org/jboss/test/osgi/example/serviceloader/client/ServiceLoaderClientActivator.java
projects/jboss-osgi/trunk/testsuite/example/src/test/resources/serviceloader/example-serviceloader-api.bnd
projects/jboss-osgi/trunk/testsuite/example/src/test/resources/serviceloader/example-serviceloader-impl.bnd
Log:
Use version attribute in service lookup
Modified: projects/jboss-osgi/trunk/testsuite/example/src/test/java/org/jboss/test/osgi/example/serviceloader/ServiceLoaderTestCase.java
===================================================================
--- projects/jboss-osgi/trunk/testsuite/example/src/test/java/org/jboss/test/osgi/example/serviceloader/ServiceLoaderTestCase.java 2010-01-27 11:08:44 UTC (rev 99987)
+++ projects/jboss-osgi/trunk/testsuite/example/src/test/java/org/jboss/test/osgi/example/serviceloader/ServiceLoaderTestCase.java 2010-01-27 11:09:26 UTC (rev 99988)
@@ -87,8 +87,9 @@
OSGiBundle clientBundle = runtime.installBundle("example-serviceloader-client.jar");
clientBundle.start();
- OSGiServiceReference sref = runtime.getServiceReference(AccountService.class.getName());
- assertNotNull("AccountService available", sref);
+ OSGiServiceReference[] srefs = runtime.getServiceReferences(AccountService.class.getName(), "(version=1.0.0)");
+ assertNotNull("AccountService available", srefs);
+ assertEquals("One AccountService available", 1, srefs.length);
assertBundleState(Bundle.ACTIVE, implBundle.getState());
assertBundleState(Bundle.ACTIVE, clientBundle.getState());
Modified: projects/jboss-osgi/trunk/testsuite/example/src/test/java/org/jboss/test/osgi/example/serviceloader/client/ServiceLoaderClientActivator.java
===================================================================
--- projects/jboss-osgi/trunk/testsuite/example/src/test/java/org/jboss/test/osgi/example/serviceloader/client/ServiceLoaderClientActivator.java 2010-01-27 11:08:44 UTC (rev 99987)
+++ projects/jboss-osgi/trunk/testsuite/example/src/test/java/org/jboss/test/osgi/example/serviceloader/client/ServiceLoaderClientActivator.java 2010-01-27 11:09:26 UTC (rev 99988)
@@ -27,6 +27,7 @@
import org.jboss.test.osgi.example.serviceloader.service.AccountService;
import org.osgi.framework.BundleActivator;
import org.osgi.framework.BundleContext;
+import org.osgi.framework.InvalidSyntaxException;
import org.osgi.framework.ServiceReference;
/**
@@ -46,9 +47,22 @@
// Get the registered service.
// Note, the example-serviceloader-impl does NOT register the service itself.
- // Instead, jboss-osgi-serviceloader generically registeres all services in META-INF/services
- ServiceReference sref = context.getServiceReference(AccountService.class.getName());
- service = (AccountService)context.getService(sref);
+ // Instead, jboss-osgi-serviceloader generically registeres all services in META-INF/services
+
+ ServiceReference[] srefs = null;
+ try
+ {
+ String filter = "(version=1.0.0)";
+ srefs = context.getServiceReferences(AccountService.class.getName(), filter);
+ }
+ catch (InvalidSyntaxException ex)
+ {
+ // ignore
+ }
+ if (srefs == null || srefs.length != 1)
+ throw new IllegalStateException("Cannot obtain service");
+
+ service = (AccountService)context.getService(srefs[0]);
}
public void stop(BundleContext context)
Modified: projects/jboss-osgi/trunk/testsuite/example/src/test/resources/serviceloader/example-serviceloader-api.bnd
===================================================================
--- projects/jboss-osgi/trunk/testsuite/example/src/test/resources/serviceloader/example-serviceloader-api.bnd 2010-01-27 11:08:44 UTC (rev 99987)
+++ projects/jboss-osgi/trunk/testsuite/example/src/test/resources/serviceloader/example-serviceloader-api.bnd 2010-01-27 11:09:26 UTC (rev 99988)
@@ -2,5 +2,5 @@
Bundle-SymbolicName: example-serviceloader-api
-Export-Package: org.jboss.test.osgi.example.serviceloader.service
+Export-Package: org.jboss.test.osgi.example.serviceloader.service;version="1.0.0"
Modified: projects/jboss-osgi/trunk/testsuite/example/src/test/resources/serviceloader/example-serviceloader-impl.bnd
===================================================================
--- projects/jboss-osgi/trunk/testsuite/example/src/test/resources/serviceloader/example-serviceloader-impl.bnd 2010-01-27 11:08:44 UTC (rev 99987)
+++ projects/jboss-osgi/trunk/testsuite/example/src/test/resources/serviceloader/example-serviceloader-impl.bnd 2010-01-27 11:09:26 UTC (rev 99988)
@@ -1,8 +1,8 @@
# bnd build -classpath target/test-classes -output target/test-libs/example-serviceloader-impl.jar src/test/resources/example/serviceloader/example-serviceloader-impl.bnd
Bundle-SymbolicName: example-serviceloader-impl
-
-Import-Package: org.jboss.test.osgi.example.serviceloader.service
+Bundle-Version: 1.0.0
+Import-Package: org.jboss.test.osgi.example.serviceloader.service;version="[1.0,2.0)"
Private-Package: org.jboss.test.osgi.example.serviceloader.service.internal
Include-Resource: META-INF/services/org.jboss.test.osgi.example.serviceloader.service.AccountService=../META-INF/services/org.jboss.test.osgi.example.serviceloader.service.AccountService
More information about the jboss-osgi-commits
mailing list