summaryrefslogtreecommitdiffstats
path: root/java/sca/modules/sca-client-impl
diff options
context:
space:
mode:
authorantelder <antelder@13f79535-47bb-0310-9956-ffa450edef68>2009-06-08 10:43:41 +0000
committerantelder <antelder@13f79535-47bb-0310-9956-ffa450edef68>2009-06-08 10:43:41 +0000
commit081650ead4099bea3723c041ab2f9c04364e8f6b (patch)
treef655f273ac3418064de66af6a8e90d7180043831 /java/sca/modules/sca-client-impl
parentfd57cb165e71a45a460f0ede0d83f450e5a041e6 (diff)
Update the SCAClient impl to work with multiple nodes in a domain
git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@782588 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'java/sca/modules/sca-client-impl')
-rw-r--r--java/sca/modules/sca-client-impl/src/main/java/org/apache/tuscany/sca/client/impl/SCAClientImpl.java23
1 files changed, 16 insertions, 7 deletions
diff --git a/java/sca/modules/sca-client-impl/src/main/java/org/apache/tuscany/sca/client/impl/SCAClientImpl.java b/java/sca/modules/sca-client-impl/src/main/java/org/apache/tuscany/sca/client/impl/SCAClientImpl.java
index c72938d849..3cb79c3e3c 100644
--- a/java/sca/modules/sca-client-impl/src/main/java/org/apache/tuscany/sca/client/impl/SCAClientImpl.java
+++ b/java/sca/modules/sca-client-impl/src/main/java/org/apache/tuscany/sca/client/impl/SCAClientImpl.java
@@ -20,9 +20,12 @@
package org.apache.tuscany.sca.client.impl;
import java.net.URI;
+import java.util.List;
+import org.apache.tuscany.sca.assembly.Endpoint2;
import org.apache.tuscany.sca.node.Node;
import org.apache.tuscany.sca.node.NodeFinder;
+import org.apache.tuscany.sca.node.impl.NodeImpl;
import org.oasisopen.sca.NoSuchDomainException;
import org.oasisopen.sca.NoSuchServiceException;
import org.oasisopen.sca.client.SCAClient;
@@ -34,17 +37,23 @@ public class SCAClientImpl implements SCAClient {
if (domainURI == null) {
domainURI = URI.create(Node.DEFAULT_DOMAIN_URI);
}
- Node node = NodeFinder.getNode(domainURI);
- if (node == null) {
+ List<Node> nodes = NodeFinder.getNodes(domainURI);
+ if (nodes == null || nodes.size() < 1) {
throw new NoSuchDomainException(domainURI.toString());
}
-
- T service = node.getService(serviceInterface, serviceName);
- if (service == null) {
- throw new NoSuchServiceException(serviceName);
+
+ for (Node n : nodes) {
+ if (n instanceof NodeImpl) {
+ for ( Endpoint2 e : ((NodeImpl)n).getServiceEndpoints()) {
+ // TODO: implement more complete matching
+ if (serviceName.equals(e.getComponent().getName())) {
+ return n.getService(serviceInterface, serviceName);
+ }
+ }
+ }
}
- return service;
+ throw new NoSuchServiceException(serviceName);
}
}