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/26 23:09:55 UTC
svn commit: r916838 - in /tuscany/sca-java-2.x/trunk:
itest/nodes/binding-sca-tribes/src/test/java/org/apache/tuscany/sca/itest/bindingsca/
modules/extensibility/src/main/java/org/apache/tuscany/sca/core/
modules/extensibility/src/main/java/org/apache/...
Author: rfeng
Date: Fri Feb 26 22:09:55 2010
New Revision: 916838
URL: http://svn.apache.org/viewvc?rev=916838&view=rev
Log:
Add a test for remote invocations between nodes created from two different node factories
Modified:
tuscany/sca-java-2.x/trunk/itest/nodes/binding-sca-tribes/src/test/java/org/apache/tuscany/sca/itest/bindingsca/BindingSCATestCase.java
tuscany/sca-java-2.x/trunk/modules/extensibility/src/main/java/org/apache/tuscany/sca/core/DefaultExtensionPointRegistry.java
tuscany/sca-java-2.x/trunk/modules/extensibility/src/main/java/org/apache/tuscany/sca/extensibility/ContextClassLoaderServiceDiscoverer.java
tuscany/sca-java-2.x/trunk/modules/extensibility/src/main/java/org/apache/tuscany/sca/extensibility/ServiceDiscovery.java
tuscany/sca-java-2.x/trunk/modules/node-api/src/main/java/org/apache/tuscany/sca/node/NodeFactory.java
tuscany/sca-java-2.x/trunk/modules/web-javascript/src/main/java/org/apache/tuscany/sca/web/javascript/DefaultComponentJavaScriptGeneratorExtensionPoint.java
tuscany/sca-java-2.x/trunk/modules/web-javascript/src/main/java/org/apache/tuscany/sca/web/javascript/DefaultJavascriptProxyFactoryExtensionPoint.java
Modified: tuscany/sca-java-2.x/trunk/itest/nodes/binding-sca-tribes/src/test/java/org/apache/tuscany/sca/itest/bindingsca/BindingSCATestCase.java
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/itest/nodes/binding-sca-tribes/src/test/java/org/apache/tuscany/sca/itest/bindingsca/BindingSCATestCase.java?rev=916838&r1=916837&r2=916838&view=diff
==============================================================================
--- tuscany/sca-java-2.x/trunk/itest/nodes/binding-sca-tribes/src/test/java/org/apache/tuscany/sca/itest/bindingsca/BindingSCATestCase.java (original)
+++ tuscany/sca-java-2.x/trunk/itest/nodes/binding-sca-tribes/src/test/java/org/apache/tuscany/sca/itest/bindingsca/BindingSCATestCase.java Fri Feb 26 22:09:55 2010
@@ -88,18 +88,24 @@
* Two node factories and two nodes
*/
@Test
- public void testTwoFactoriesTwoNodes() {
+ public void testTwoFactoriesTwoNodes() throws Exception {
NodeFactory factory1 = NodeFactory.newInstance();
Node node1 = createClientNode(factory1);
NodeFactory factory2 = NodeFactory.newInstance();
Node node2 = createServiceNode(factory2);
node1.start();
node2.start();
+ Thread.sleep(1000);
try {
- runClient(node1);
- Assert.fail("ServiceRuntimeException should have been thrown.");
- } catch (ServiceRuntimeException e) {
- // ignore
+ // This call doesn't require the Local service, it should be successful
+ createCustomer(node1);
+ try {
+ runClient(node1);
+ // We cannot make local call to remote endpoints
+ Assert.fail("ServiceRuntimeException should have been thrown.");
+ } catch (ServiceRuntimeException e) {
+ // ignore
+ }
} finally {
node2.stop();
node1.stop();
@@ -122,6 +128,13 @@
Assert.assertEquals("Ray", client.getName(id));
}
+ static String createCustomer(Node node) {
+ Client client = node.getService(Client.class, "ClientComponent/Client");
+ String id = client.create("John");
+ Assert.assertNotNull(id);
+ return id;
+ }
+
/**
* One node factory and one node for both composites
*/
Modified: tuscany/sca-java-2.x/trunk/modules/extensibility/src/main/java/org/apache/tuscany/sca/core/DefaultExtensionPointRegistry.java
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/extensibility/src/main/java/org/apache/tuscany/sca/core/DefaultExtensionPointRegistry.java?rev=916838&r1=916837&r2=916838&view=diff
==============================================================================
--- tuscany/sca-java-2.x/trunk/modules/extensibility/src/main/java/org/apache/tuscany/sca/core/DefaultExtensionPointRegistry.java (original)
+++ tuscany/sca-java-2.x/trunk/modules/extensibility/src/main/java/org/apache/tuscany/sca/core/DefaultExtensionPointRegistry.java Fri Feb 26 22:09:55 2010
@@ -50,7 +50,7 @@
this.discovery = ServiceDiscovery.getInstance();
}
- protected DefaultExtensionPointRegistry(ServiceDiscovery discovery) {
+ public DefaultExtensionPointRegistry(ServiceDiscovery discovery) {
this.discovery = discovery;
}
Modified: tuscany/sca-java-2.x/trunk/modules/extensibility/src/main/java/org/apache/tuscany/sca/extensibility/ContextClassLoaderServiceDiscoverer.java
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/extensibility/src/main/java/org/apache/tuscany/sca/extensibility/ContextClassLoaderServiceDiscoverer.java?rev=916838&r1=916837&r2=916838&view=diff
==============================================================================
--- tuscany/sca-java-2.x/trunk/modules/extensibility/src/main/java/org/apache/tuscany/sca/extensibility/ContextClassLoaderServiceDiscoverer.java (original)
+++ tuscany/sca-java-2.x/trunk/modules/extensibility/src/main/java/org/apache/tuscany/sca/extensibility/ContextClassLoaderServiceDiscoverer.java Fri Feb 26 22:09:55 2010
@@ -115,17 +115,25 @@
this.classLoaderReference = new WeakReference<ClassLoader>(classLoader);
}
+ public ContextClassLoaderServiceDiscoverer(ClassLoader classLoader) {
+ if (classLoader == null) {
+ classLoader = Thread.currentThread().getContextClassLoader();
+ }
+ this.classLoaderReference = new WeakReference<ClassLoader>(classLoader);
+ }
+
public ClassLoader getContextClassLoader() {
//return classLoaderReference.get();
return Thread.currentThread().getContextClassLoader();
}
- private List<URL> getResources(final String name) throws IOException {
+ private Collection<URL> getResources(final String name) throws IOException {
try {
- return AccessController.doPrivileged(new PrivilegedExceptionAction<List<URL>>() {
- public List<URL> run() throws IOException {
+ return AccessController.doPrivileged(new PrivilegedExceptionAction<Collection<URL>>() {
+ public Collection<URL> run() throws IOException {
List<URL> urls = Collections.list(classLoaderReference.get().getResources(name));
- return urls;
+ // Eliminate the duplicate URLs (which can be found from child/parent classloaders)
+ return new HashSet<URL>(urls);
}
});
} catch (PrivilegedActionException e) {
Modified: tuscany/sca-java-2.x/trunk/modules/extensibility/src/main/java/org/apache/tuscany/sca/extensibility/ServiceDiscovery.java
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/extensibility/src/main/java/org/apache/tuscany/sca/extensibility/ServiceDiscovery.java?rev=916838&r1=916837&r2=916838&view=diff
==============================================================================
--- tuscany/sca-java-2.x/trunk/modules/extensibility/src/main/java/org/apache/tuscany/sca/extensibility/ServiceDiscovery.java (original)
+++ tuscany/sca-java-2.x/trunk/modules/extensibility/src/main/java/org/apache/tuscany/sca/extensibility/ServiceDiscovery.java Fri Feb 26 22:09:55 2010
@@ -83,7 +83,7 @@
}
} catch (Throwable e) {
}
- discoverer = new ContextClassLoaderServiceDiscoverer();
+ discoverer = new ContextClassLoaderServiceDiscoverer(getClass().getClassLoader());
return discoverer;
}
Modified: tuscany/sca-java-2.x/trunk/modules/node-api/src/main/java/org/apache/tuscany/sca/node/NodeFactory.java
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/node-api/src/main/java/org/apache/tuscany/sca/node/NodeFactory.java?rev=916838&r1=916837&r2=916838&view=diff
==============================================================================
--- tuscany/sca-java-2.x/trunk/modules/node-api/src/main/java/org/apache/tuscany/sca/node/NodeFactory.java (original)
+++ tuscany/sca-java-2.x/trunk/modules/node-api/src/main/java/org/apache/tuscany/sca/node/NodeFactory.java Fri Feb 26 22:09:55 2010
@@ -472,6 +472,8 @@
}
public void destroy() {
+ count = 0;
+ instance = null;
}
/**
Modified: tuscany/sca-java-2.x/trunk/modules/web-javascript/src/main/java/org/apache/tuscany/sca/web/javascript/DefaultComponentJavaScriptGeneratorExtensionPoint.java
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/web-javascript/src/main/java/org/apache/tuscany/sca/web/javascript/DefaultComponentJavaScriptGeneratorExtensionPoint.java?rev=916838&r1=916837&r2=916838&view=diff
==============================================================================
--- tuscany/sca-java-2.x/trunk/modules/web-javascript/src/main/java/org/apache/tuscany/sca/web/javascript/DefaultComponentJavaScriptGeneratorExtensionPoint.java (original)
+++ tuscany/sca-java-2.x/trunk/modules/web-javascript/src/main/java/org/apache/tuscany/sca/web/javascript/DefaultComponentJavaScriptGeneratorExtensionPoint.java Fri Feb 26 22:09:55 2010
@@ -32,7 +32,6 @@
import org.apache.tuscany.sca.core.ExtensionPointRegistry;
import org.apache.tuscany.sca.core.UtilityExtensionPoint;
import org.apache.tuscany.sca.extensibility.ServiceDeclaration;
-import org.apache.tuscany.sca.extensibility.ServiceDiscovery;
import org.apache.tuscany.sca.monitor.Monitor;
import org.apache.tuscany.sca.monitor.MonitorFactory;
@@ -127,7 +126,7 @@
// Get the proxy factories declarations
Collection<ServiceDeclaration> factoryDeclarations = null;
try {
- factoryDeclarations = ServiceDiscovery.getInstance().getServiceDeclarations(ComponentJavaScriptGenerator.class);
+ factoryDeclarations = extensionPoints.getServiceDiscovery().getServiceDeclarations(ComponentJavaScriptGenerator.class);
} catch (IOException e) {
IllegalStateException ie = new IllegalStateException(e);
error("IllegalStateException", factoryDeclarations, ie);
Modified: tuscany/sca-java-2.x/trunk/modules/web-javascript/src/main/java/org/apache/tuscany/sca/web/javascript/DefaultJavascriptProxyFactoryExtensionPoint.java
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/web-javascript/src/main/java/org/apache/tuscany/sca/web/javascript/DefaultJavascriptProxyFactoryExtensionPoint.java?rev=916838&r1=916837&r2=916838&view=diff
==============================================================================
--- tuscany/sca-java-2.x/trunk/modules/web-javascript/src/main/java/org/apache/tuscany/sca/web/javascript/DefaultJavascriptProxyFactoryExtensionPoint.java (original)
+++ tuscany/sca-java-2.x/trunk/modules/web-javascript/src/main/java/org/apache/tuscany/sca/web/javascript/DefaultJavascriptProxyFactoryExtensionPoint.java Fri Feb 26 22:09:55 2010
@@ -45,10 +45,11 @@
private final Map<Class<?>, JavascriptProxyFactory> factoriesByType = new HashMap<Class<?>, JavascriptProxyFactory>();
private Monitor monitor = null;
-
+ private ExtensionPointRegistry registry;
private boolean loaded = false;
public DefaultJavascriptProxyFactoryExtensionPoint(ExtensionPointRegistry extensionPoints) {
+ this.registry = extensionPoints;
UtilityExtensionPoint utilities = extensionPoints.getExtensionPoint(UtilityExtensionPoint.class);
MonitorFactory monitorFactory = utilities.getUtility(MonitorFactory.class);
if (monitorFactory != null) {
@@ -116,7 +117,7 @@
if (bindingType.isInterface()) {
// Dynamically load a factory class declared under META-INF/services
try {
- Class<?> factoryClass = ServiceDiscovery.getInstance().getServiceDeclaration(bindingType).getClass();
+ Class<?> factoryClass = registry.getServiceDiscovery().getServiceDeclaration(bindingType).getClass();
if (factoryClass != null) {
try {