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