You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by rf...@apache.org on 2010/02/06 01:28:36 UTC

svn commit: r907138 - in /tuscany/sca-java-2.x/trunk/modules/extensibility-equinox/src: main/java/org/apache/tuscany/sca/extensibility/equinox/ test/java/org/apache/tuscany/sca/extensibility/equinox/ test/resources/

Author: rfeng
Date: Sat Feb  6 00:28:36 2010
New Revision: 907138

URL: http://svn.apache.org/viewvc?rev=907138&view=rev
Log:
Only search for bundles with SCA-Version: 1.1 header for Tuscany 2.x extension points and extensions

Added:
    tuscany/sca-java-2.x/trunk/modules/extensibility-equinox/src/test/resources/test-bundle-v1.jar   (with props)
    tuscany/sca-java-2.x/trunk/modules/extensibility-equinox/src/test/resources/test-bundle-v2.jar   (with props)
Removed:
    tuscany/sca-java-2.x/trunk/modules/extensibility-equinox/src/test/resources/test-bundle.jar
Modified:
    tuscany/sca-java-2.x/trunk/modules/extensibility-equinox/src/main/java/org/apache/tuscany/sca/extensibility/equinox/EquinoxServiceDiscoverer.java
    tuscany/sca-java-2.x/trunk/modules/extensibility-equinox/src/test/java/org/apache/tuscany/sca/extensibility/equinox/EquinoxServiceDiscovererTestCase.java

Modified: tuscany/sca-java-2.x/trunk/modules/extensibility-equinox/src/main/java/org/apache/tuscany/sca/extensibility/equinox/EquinoxServiceDiscoverer.java
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/extensibility-equinox/src/main/java/org/apache/tuscany/sca/extensibility/equinox/EquinoxServiceDiscoverer.java?rev=907138&r1=907137&r2=907138&view=diff
==============================================================================
--- tuscany/sca-java-2.x/trunk/modules/extensibility-equinox/src/main/java/org/apache/tuscany/sca/extensibility/equinox/EquinoxServiceDiscoverer.java (original)
+++ tuscany/sca-java-2.x/trunk/modules/extensibility-equinox/src/main/java/org/apache/tuscany/sca/extensibility/equinox/EquinoxServiceDiscoverer.java Sat Feb  6 00:28:36 2010
@@ -63,21 +63,14 @@
         this.context = context;
         Bundle bundle = context.getBundle();
         this.version = getSCAVersion(bundle);
+        if (this.version.equals(Version.emptyVersion)) {
+            this.version = Version.parseVersion("1.1");
+        }
     }
 
     private Version getSCAVersion(Bundle bundle) {
-        Version scaVersion = Version.emptyVersion;
         String header = (String)bundle.getHeaders().get("SCA-Version");
-        if (header == null) {
-            scaVersion = Version.parseVersion("1.1");
-        } else {
-            header = header.trim();
-            if (header.equals("")) {
-                header = "1.1";
-            }
-            scaVersion = Version.parseVersion(header);
-        }
-        return scaVersion;
+        return Version.parseVersion(header);
     }
     
     /*
@@ -231,7 +224,7 @@
         }
         if (isTuscanyService) {
             Version scaVersion = getSCAVersion(bundle);
-            return scaVersion.compareTo(version) >= 0;
+            return scaVersion.compareTo(version) == 0;
         }
         return true;
     }
@@ -242,11 +235,14 @@
         for (Bundle b : context.getBundles()) {
             if (isProviderBundle(b, isTuscanyService)) {
                 set.add(b);
-            } else {
-                if (b.getBundleId() != 0) {
+            }
+            /*
+            else {
+                if (b.getBundleId() != 0 && isTuscanyService) {
                     logger.warning("Bundle is skipped for service discovery: " + toString(b));
                 }
             }
+            */
         }
         return set;
     }

Modified: tuscany/sca-java-2.x/trunk/modules/extensibility-equinox/src/test/java/org/apache/tuscany/sca/extensibility/equinox/EquinoxServiceDiscovererTestCase.java
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/extensibility-equinox/src/test/java/org/apache/tuscany/sca/extensibility/equinox/EquinoxServiceDiscovererTestCase.java?rev=907138&r1=907137&r2=907138&view=diff
==============================================================================
--- tuscany/sca-java-2.x/trunk/modules/extensibility-equinox/src/test/java/org/apache/tuscany/sca/extensibility/equinox/EquinoxServiceDiscovererTestCase.java (original)
+++ tuscany/sca-java-2.x/trunk/modules/extensibility-equinox/src/test/java/org/apache/tuscany/sca/extensibility/equinox/EquinoxServiceDiscovererTestCase.java Sat Feb  6 00:28:36 2010
@@ -19,17 +19,9 @@
 
 package org.apache.tuscany.sca.extensibility.equinox;
 
-import java.io.BufferedInputStream;
-import java.io.File;
-import java.io.FileInputStream;
 import java.io.IOException;
 import java.io.InputStream;
-import java.lang.reflect.Method;
-import java.util.ArrayList;
 import java.util.Collection;
-import java.util.List;
-import java.util.jar.JarInputStream;
-import java.util.jar.Manifest;
 
 import org.apache.tuscany.sca.extensibility.ServiceDeclaration;
 import org.junit.AfterClass;
@@ -46,7 +38,8 @@
  */
 public class EquinoxServiceDiscovererTestCase {
     private static EquinoxServiceDiscoverer discoverer;
-    private static Bundle testBundle;
+    private static Bundle testBundle1;
+    private static Bundle testBundle2;
     private static TestEquinoxHost host;
 
     private static String getState(Bundle b) {
@@ -82,44 +75,15 @@
         host = new TestEquinoxHost();
         BundleContext context = host.start();
 
-        InputStream is = EquinoxServiceDiscovererTestCase.class.getResourceAsStream("/test-bundle.jar");
-        testBundle = context.installBundle("test-bundle", is);
+        InputStream is = EquinoxServiceDiscovererTestCase.class.getResourceAsStream("/test-bundle-v1.jar");
+        testBundle1 = context.installBundle("test-bundle-v1", is);
         is.close();
+        
+        is = EquinoxServiceDiscovererTestCase.class.getResourceAsStream("/test-bundle-v2.jar");
+        testBundle2 = context.installBundle("test-bundle-v2", is);
+        is.close();
+
         discoverer = new EquinoxServiceDiscoverer(context);
-        File dep = new File("target/bundles");
-        List<Bundle> bundles = new ArrayList<Bundle>();
-        if(dep.isDirectory()) {
-        for (File f : dep.listFiles()) {
-                BufferedInputStream bis = new BufferedInputStream(new FileInputStream(f));
-                JarInputStream jis = new JarInputStream(bis);
-                Manifest manifest = jis.getManifest();
-                if (manifest == null || manifest.getMainAttributes().getValue("Bundle-Name") == null) {
-                    bis.close();
-                    continue;
-                }
-                bis.close();
-                bis = new BufferedInputStream(new FileInputStream(f));
-                Bundle b = context.installBundle(f.getName(), bis);
-                System.out.println("Installed " + b.getSymbolicName() + " [" + getState(b) + "]");
-                bundles.add(b);
-                bis.close();
-            }
-        }
-        for (Bundle b : bundles) {
-            b.start();
-            System.out.println("Started "+b.getSymbolicName() + " [" + getState(b) + "]");
-            /*
-            // Get the Platform.getExtensionRegistry()
-            if ("org.eclipse.core.runtime".equals(b.getSymbolicName())) {
-                // The Platform class loaded by the bundle is different that the one
-                // on the classpath
-                Class<?> cls = b.loadClass("org.eclipse.core.runtime.Platform");
-                Method m = cls.getMethod("getExtensionRegistry");
-                Object reg = m.invoke(cls);
-                System.out.println(reg);
-            }
-            */
-        }
     }
 
     /**
@@ -127,9 +91,13 @@
      */
     @AfterClass
     public static void tearDownAfterClass() throws Exception {
-        if (testBundle != null) {
+        if (testBundle1 != null) {
+            // Uninstall the bundle to clean up the cache
+            testBundle1.uninstall();
+        }
+        if (testBundle2 != null) {
             // Uninstall the bundle to clean up the cache
-            testBundle.uninstall();
+            testBundle2.uninstall();
         }
         host.stop();
         System.out.println("Done");
@@ -137,8 +105,9 @@
 
     @Test
     public void testDiscovery() throws IOException {
+        // Both version 1 and 2 should be found because test.TestService is not a Tuscany service
         Collection<ServiceDeclaration> descriptors = discoverer.getServiceDeclarations("test.TestService");
-        Assert.assertEquals(1, descriptors.size());
+        Assert.assertEquals(2, descriptors.size());
         descriptors = discoverer.getServiceDeclarations("notthere");
         Assert.assertEquals(0, descriptors.size());
     }
@@ -151,5 +120,13 @@
         Assert.assertNull(descriptor);
     }
 
+    @Test
+    public void testTuscanyDiscovery() throws IOException {
+        Collection<ServiceDeclaration> descriptors = discoverer.getServiceDeclarations("org.apache.tuscany.sca.test.TestService");
+        // Only the version 2 should be found
+        Assert.assertEquals(1, descriptors.size());
+        ServiceDeclaration sd = descriptors.iterator().next();
+        Assert.assertEquals("2", sd.getAttributes().get("version"));
+    }
 
 }

Added: tuscany/sca-java-2.x/trunk/modules/extensibility-equinox/src/test/resources/test-bundle-v1.jar
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/extensibility-equinox/src/test/resources/test-bundle-v1.jar?rev=907138&view=auto
==============================================================================
Binary file - no diff available.

Propchange: tuscany/sca-java-2.x/trunk/modules/extensibility-equinox/src/test/resources/test-bundle-v1.jar
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: tuscany/sca-java-2.x/trunk/modules/extensibility-equinox/src/test/resources/test-bundle-v2.jar
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/extensibility-equinox/src/test/resources/test-bundle-v2.jar?rev=907138&view=auto
==============================================================================
Binary file - no diff available.

Propchange: tuscany/sca-java-2.x/trunk/modules/extensibility-equinox/src/test/resources/test-bundle-v2.jar
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream