Author: antelder
Date: Fri Jul  3 16:20:44 2009
New Revision: 790961

URL: http://svn.apache.org/viewvc?rev=790961&view=rev
Log:
Start bringing up the client api to the recent proposals

Removed:
    
tuscany/java/sca/modules/sca-client-impl/src/main/java/org/apache/tuscany/sca/client/impl/SCAClientImpl.java
Modified:
    
tuscany/java/sca/modules/sca-client-impl/src/main/java/org/apache/tuscany/sca/client/impl/SCAClientFactoryImpl.java

Modified: 
tuscany/java/sca/modules/sca-client-impl/src/main/java/org/apache/tuscany/sca/client/impl/SCAClientFactoryImpl.java
URL: 
http://svn.apache.org/viewvc/tuscany/java/sca/modules/sca-client-impl/src/main/java/org/apache/tuscany/sca/client/impl/SCAClientFactoryImpl.java?rev=790961&r1=790960&r2=790961&view=diff
==============================================================================
--- 
tuscany/java/sca/modules/sca-client-impl/src/main/java/org/apache/tuscany/sca/client/impl/SCAClientFactoryImpl.java
 (original)
+++ 
tuscany/java/sca/modules/sca-client-impl/src/main/java/org/apache/tuscany/sca/client/impl/SCAClientFactoryImpl.java
 Fri Jul  3 16:20:44 2009
@@ -19,14 +19,41 @@
 
 package org.apache.tuscany.sca.client.impl;
 
-import org.oasisopen.sca.client.SCAClient;
+import java.net.URI;
+import java.util.List;
+
+import org.apache.tuscany.sca.node.Node;
+import org.apache.tuscany.sca.node.NodeFinder;
+import org.oasisopen.sca.NoSuchDomainException;
+import org.oasisopen.sca.NoSuchServiceException;
+import org.oasisopen.sca.ServiceUnavailableException;
 import org.oasisopen.sca.client.SCAClientFactory;
 
 public class SCAClientFactoryImpl extends SCAClientFactory {
 
-    @Override
-    protected SCAClient createSCAClient() {
-        return new SCAClientImpl();
+    public SCAClientFactoryImpl(URI domainURI) {
+        super(domainURI);
     }
 
+    @Override
+    public <T> T getService(Class<T> serviceInterface, String serviceName) 
throws NoSuchServiceException, NoSuchDomainException {
+        URI domainURI = getDomainURI();
+        if (domainURI == null) {
+            domainURI = URI.create(Node.DEFAULT_DOMAIN_URI);
+        }
+        List<Node> nodes = NodeFinder.getNodes(domainURI);
+        if (nodes == null || nodes.size() < 1) {
+            throw new NoSuchDomainException(domainURI.toString());
+        }
+
+        for (Node n : nodes) {
+            try {
+                return n.getService(serviceInterface, serviceName);
+            } catch(ServiceUnavailableException e) {
+                // Ingore and continue
+            }
+        }
+
+        throw new NoSuchServiceException(serviceName);
+    }
 }


Reply via email to