[jboss-cvs] JBossAS SVN: r99988 - in projects/jboss-osgi/trunk/testsuite/example/src/test: java/org/jboss/test/osgi/example/serviceloader/client and 1 other directories.

jboss-cvs-commits at lists.jboss.org jboss-cvs-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-cvs-commits mailing list