Author: antelder
Date: Thu Jan 28 18:40:43 2010
New Revision: 904206

URL: http://svn.apache.org/viewvc?rev=904206&view=rev
Log:
Change the tuscanyClient scheme to pbe all lower case so it works with the 
toLowerCase in the DefaultEndpointRegistryFactory, and move all the remote code 
in the scaclient to happen at invocation time. This now works for multiple 
local and remote nodes in one or separate JVMs

Modified:
    
tuscany/sca-java-2.x/trunk/distribution/tomcat/testing/helloworld-scaclient-javase/src/main/java/testing/HelloworldClient.java
    
tuscany/sca-java-2.x/trunk/itest/scaclient-api-rmi/src/test/java/test/scaclient/SCAClientTestCase.java
    
tuscany/sca-java-2.x/trunk/itest/scaclient-api/src/test/java/test/scaclient/SCAClientTestCase.java
    
tuscany/sca-java-2.x/trunk/modules/core/src/main/java/org/apache/tuscany/sca/core/runtime/DefaultDomainRegistryFactory.java
    
tuscany/sca-java-2.x/trunk/modules/endpoint-hazelcast-client/src/main/java/org/apache/tuscany/sca/endpoint/hazelcast/client/HazelcastClientEndpointRegistry.java
    
tuscany/sca-java-2.x/trunk/modules/endpoint-hazelcast-client/src/main/resources/META-INF/services/org.apache.tuscany.sca.runtime.EndpointRegistry
    
tuscany/sca-java-2.x/trunk/modules/endpoint-hazelcast/src/main/java/org/apache/tuscany/sca/endpoint/hazelcast/ConfigURI.java
    
tuscany/sca-java-2.x/trunk/modules/sca-client-rmi/src/main/java/org/apache/tuscany/sca/client/rmi/SCAClientFactoryImpl.java
    
tuscany/sca-java-2.x/trunk/modules/sca-client-rmi/src/main/java/org/apache/tuscany/sca/client/rmi/SCAClientProxyHandler.java
    
tuscany/sca-java-2.x/trunk/modules/sca-client-rmi/src/test/java/org/apache/tuscany/sca/client/rmi/ClientTestCase.java

Modified: 
tuscany/sca-java-2.x/trunk/distribution/tomcat/testing/helloworld-scaclient-javase/src/main/java/testing/HelloworldClient.java
URL: 
http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/distribution/tomcat/testing/helloworld-scaclient-javase/src/main/java/testing/HelloworldClient.java?rev=904206&r1=904205&r2=904206&view=diff
==============================================================================
--- 
tuscany/sca-java-2.x/trunk/distribution/tomcat/testing/helloworld-scaclient-javase/src/main/java/testing/HelloworldClient.java
 (original)
+++ 
tuscany/sca-java-2.x/trunk/distribution/tomcat/testing/helloworld-scaclient-javase/src/main/java/testing/HelloworldClient.java
 Thu Jan 28 18:40:43 2010
@@ -33,7 +33,7 @@
                if (args.length > 0) {
                        domainURI = URI.create(args[0]);
                } else {
-                       domainURI = URI.create("tuscany:default");
+                       domainURI = 
URI.create("tuscany:default?remotes=192.168.1.73:14820");
                }
                
                SCAClientFactory factory = 
SCAClientFactory.newInstance(domainURI);

Modified: 
tuscany/sca-java-2.x/trunk/itest/scaclient-api-rmi/src/test/java/test/scaclient/SCAClientTestCase.java
URL: 
http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/itest/scaclient-api-rmi/src/test/java/test/scaclient/SCAClientTestCase.java?rev=904206&r1=904205&r2=904206&view=diff
==============================================================================
--- 
tuscany/sca-java-2.x/trunk/itest/scaclient-api-rmi/src/test/java/test/scaclient/SCAClientTestCase.java
 (original)
+++ 
tuscany/sca-java-2.x/trunk/itest/scaclient-api-rmi/src/test/java/test/scaclient/SCAClientTestCase.java
 Thu Jan 28 18:40:43 2010
@@ -61,6 +61,15 @@
 
     @Test
     public void testExplicitRemote() throws Exception {
+        node = 
NodeFactory.newInstance().createNode(URI.create("tuscany:myFooDomain?listen=127.0.0.1:14821"),
 new String[] {"target/classes"});
+        node.start();
+
+        HelloworldService service = 
SCAClientFactory.newInstance(URI.create("tuscany:myFooDomain?remotes=127.0.0.1:14821")).getService(HelloworldService.class,
 "HelloworldComponent");
+        assertEquals("Hello petra", service.sayHello("petra"));
+    }
+
+    @Test
+    public void testExplicitRemote2() throws Exception {
         node = 
NodeFactory.getInstance().createNode(URI.create("tuscany:myFooDomain?listen=127.0.0.1:14821"),
 new String[] {"target/classes"});
         node.start();
 

Modified: 
tuscany/sca-java-2.x/trunk/itest/scaclient-api/src/test/java/test/scaclient/SCAClientTestCase.java
URL: 
http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/itest/scaclient-api/src/test/java/test/scaclient/SCAClientTestCase.java?rev=904206&r1=904205&r2=904206&view=diff
==============================================================================
--- 
tuscany/sca-java-2.x/trunk/itest/scaclient-api/src/test/java/test/scaclient/SCAClientTestCase.java
 (original)
+++ 
tuscany/sca-java-2.x/trunk/itest/scaclient-api/src/test/java/test/scaclient/SCAClientTestCase.java
 Thu Jan 28 18:40:43 2010
@@ -27,6 +27,7 @@
 
 import org.apache.tuscany.sca.node.Node;
 import org.apache.tuscany.sca.node.NodeFactory;
+import org.junit.Ignore;
 import org.junit.Test;
 import org.oasisopen.sca.client.SCAClientFactory;
 
@@ -58,6 +59,15 @@
         assertEquals("Hello petra", service.sayHello("petra"));
     }
 
+//    @Test @Ignore
+//    public void testHTTPURI() throws Exception {
+//        node = 
NodeFactory.getInstance().createNode(URI.create("http://defaultDomain";), new 
String[] {"target/classes"});
+//        node.start();
+//
+//        HelloworldService service = 
SCAClientFactory.newInstance(URI.create("http://defaultDomain";)).getService(HelloworldService.class,
 "HelloworldComponent");
+//        assertEquals("Hello petra", service.sayHello("petra"));
+//    }
+
     @Override
     protected void tearDown() throws Exception {
         node.stop();

Modified: 
tuscany/sca-java-2.x/trunk/modules/core/src/main/java/org/apache/tuscany/sca/core/runtime/DefaultDomainRegistryFactory.java
URL: 
http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/core/src/main/java/org/apache/tuscany/sca/core/runtime/DefaultDomainRegistryFactory.java?rev=904206&r1=904205&r2=904206&view=diff
==============================================================================
--- 
tuscany/sca-java-2.x/trunk/modules/core/src/main/java/org/apache/tuscany/sca/core/runtime/DefaultDomainRegistryFactory.java
 (original)
+++ 
tuscany/sca-java-2.x/trunk/modules/core/src/main/java/org/apache/tuscany/sca/core/runtime/DefaultDomainRegistryFactory.java
 Thu Jan 28 18:40:43 2010
@@ -76,7 +76,7 @@
         }
         
         String key;
-        if (endpointRegistryURI.startsWith("tuscany:") || 
endpointRegistryURI.startsWith("tuscanyClient:")){ 
+        if (endpointRegistryURI.startsWith("tuscany:") || 
endpointRegistryURI.startsWith("tuscanyclient:")){ 
             key = "tuscany:," + domainURI;
         } else {
             key = endpointRegistryURI + "," + domainURI;
@@ -98,7 +98,7 @@
             return endpointRegistry;
         }
 
-        String scheme = "tuscanyClient:".equals(endpointRegistryURI) ? 
"tuscanyClient" : URI.create(endpointRegistryURI).getScheme();
+        String scheme = "tuscanyclient:".equals(endpointRegistryURI) ? 
"tuscanyClient" : URI.create(endpointRegistryURI).getScheme();
         if (scheme != null) {
             scheme = scheme.toLowerCase();
         } else {
@@ -134,7 +134,7 @@
         for (EndpointListener listener : listeners) {
             endpointRegistry.addListener(listener);
         }
-        if (!"tuscanyClient:".equals(endpointRegistryURI)) {
+        if (!"tuscanyclient:".equals(endpointRegistryURI)) {
             endpointRegistries.put(key, endpointRegistry);
         }
         return endpointRegistry;

Modified: 
tuscany/sca-java-2.x/trunk/modules/endpoint-hazelcast-client/src/main/java/org/apache/tuscany/sca/endpoint/hazelcast/client/HazelcastClientEndpointRegistry.java
URL: 
http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/endpoint-hazelcast-client/src/main/java/org/apache/tuscany/sca/endpoint/hazelcast/client/HazelcastClientEndpointRegistry.java?rev=904206&r1=904205&r2=904206&view=diff
==============================================================================
--- 
tuscany/sca-java-2.x/trunk/modules/endpoint-hazelcast-client/src/main/java/org/apache/tuscany/sca/endpoint/hazelcast/client/HazelcastClientEndpointRegistry.java
 (original)
+++ 
tuscany/sca-java-2.x/trunk/modules/endpoint-hazelcast-client/src/main/java/org/apache/tuscany/sca/endpoint/hazelcast/client/HazelcastClientEndpointRegistry.java
 Thu Jan 28 18:40:43 2010
@@ -37,7 +37,7 @@
                                      Map<String, String> attributes,
                                      String domainRegistryURI,
                                      String domainURI) {
-        super(registry, attributes, domainURI, domainRegistryURI);
+        super(registry, attributes, domainRegistryURI, domainURI);
     }
 
     @Override

Modified: 
tuscany/sca-java-2.x/trunk/modules/endpoint-hazelcast-client/src/main/resources/META-INF/services/org.apache.tuscany.sca.runtime.EndpointRegistry
URL: 
http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/endpoint-hazelcast-client/src/main/resources/META-INF/services/org.apache.tuscany.sca.runtime.EndpointRegistry?rev=904206&r1=904205&r2=904206&view=diff
==============================================================================
--- 
tuscany/sca-java-2.x/trunk/modules/endpoint-hazelcast-client/src/main/resources/META-INF/services/org.apache.tuscany.sca.runtime.EndpointRegistry
 (original)
+++ 
tuscany/sca-java-2.x/trunk/modules/endpoint-hazelcast-client/src/main/resources/META-INF/services/org.apache.tuscany.sca.runtime.EndpointRegistry
 Thu Jan 28 18:40:43 2010
@@ -14,5 +14,5 @@
 # KIND, either express or implied.  See the License for the
 # specific language governing permissions and limitations
 # under the License.
-org.apache.tuscany.sca.endpoint.hazelcast.client.HazelcastClientEndpointRegistry;ranking=150,scheme=tuscanyClient
+org.apache.tuscany.sca.endpoint.hazelcast.client.HazelcastClientEndpointRegistry;ranking=150,scheme=tuscanyclient
 

Modified: 
tuscany/sca-java-2.x/trunk/modules/endpoint-hazelcast/src/main/java/org/apache/tuscany/sca/endpoint/hazelcast/ConfigURI.java
URL: 
http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/endpoint-hazelcast/src/main/java/org/apache/tuscany/sca/endpoint/hazelcast/ConfigURI.java?rev=904206&r1=904205&r2=904206&view=diff
==============================================================================
--- 
tuscany/sca-java-2.x/trunk/modules/endpoint-hazelcast/src/main/java/org/apache/tuscany/sca/endpoint/hazelcast/ConfigURI.java
 (original)
+++ 
tuscany/sca-java-2.x/trunk/modules/endpoint-hazelcast/src/main/java/org/apache/tuscany/sca/endpoint/hazelcast/ConfigURI.java
 Thu Jan 28 18:40:43 2010
@@ -59,8 +59,8 @@
     }
 
     private void parseURI(String uri) {
-        if (uri.startsWith("tuscanyClient:")) {
-            uri = uri.replace("tuscanyClient:", "tuscany:");    
+        if (uri.startsWith("tuscanyclient:")) {
+            uri = uri.replace("tuscanyclient:", "tuscany:");    
         }
         
         if (!uri.startsWith("tuscany:")) {
@@ -69,10 +69,10 @@
         
         // make it a URI so java.net.URI can be used to parse it
         int i = uri.indexOf(":");
-        if (uri.charAt("tuscany:".length()+1) != '/') {
+        if (uri.charAt("tuscany:".length()) != '/') {
             uri = uri.replaceFirst(":", ":/");
         }
-        if (uri.charAt("tuscany:".length()+2) != '/') {
+        if (uri.charAt("tuscany:".length()+1) != '/') {
             uri = uri.replaceFirst(":/", "://");
         }
         URI configURI = URI.create(uri);

Modified: 
tuscany/sca-java-2.x/trunk/modules/sca-client-rmi/src/main/java/org/apache/tuscany/sca/client/rmi/SCAClientFactoryImpl.java
URL: 
http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/sca-client-rmi/src/main/java/org/apache/tuscany/sca/client/rmi/SCAClientFactoryImpl.java?rev=904206&r1=904205&r2=904206&view=diff
==============================================================================
--- 
tuscany/sca-java-2.x/trunk/modules/sca-client-rmi/src/main/java/org/apache/tuscany/sca/client/rmi/SCAClientFactoryImpl.java
 (original)
+++ 
tuscany/sca-java-2.x/trunk/modules/sca-client-rmi/src/main/java/org/apache/tuscany/sca/client/rmi/SCAClientFactoryImpl.java
 Thu Jan 28 18:40:43 2010
@@ -56,10 +56,32 @@
         if (extensionsRegistry != null) {
             UtilityExtensionPoint utilities = 
extensionsRegistry.getExtensionPoint(UtilityExtensionPoint.class);
             DomainRegistryFactory domainRegistryFactory = 
utilities.getUtility(DomainRegistryFactory.class);
-            this.endpointRegistry = 
domainRegistryFactory.getEndpointRegistry("tuscanyClient:", 
getDomainURI().toString()); // TODO: shouldnt use null for reg uri
+            this.endpointRegistry = 
domainRegistryFactory.getEndpointRegistry(getRegistryURI(), getDomainName()); 
         }
     }   
     
+    private String getRegistryURI() {
+        String uri = getDomainURI().toString();
+        if (uri.startsWith("tuscany:")) {
+            uri = uri.replace("tuscany:", "tuscanyclient:");
+        }
+        return uri;
+    }
+
+    private String getDomainName() {
+        if (getDomainURI().getHost() != null) {
+            return getDomainURI().getHost();
+        }
+        String uri = getDomainURI().toString();
+        if (!uri.startsWith("tuscany://")) {
+            if (uri.startsWith("tuscany:")) {
+                uri = uri.replace("tuscany:", "tuscany://");
+                return URI.create(uri).getHost();
+            }
+        }
+        return uri;
+    }
+
     @Override
     public <T> T getService(Class<T> serviceInterface, String serviceName) 
throws NoSuchServiceException, NoSuchDomainException {
         
@@ -78,7 +100,7 @@
 
         String uri = getDomainURI().toString();
         if (uri.startsWith("tuscany:")) {
-            uri = uri.replace("tuscany:", "tuscanyClient:");
+            uri = uri.replace("tuscany:", "tuscanyclient://");
         }
         InvocationHandler handler = new SCAClientProxyHandler(nodeFactory, 
uri, serviceName);
         return (T)Proxy.newProxyInstance(serviceInterface.getClassLoader(), 
new Class[] {serviceInterface}, handler);

Modified: 
tuscany/sca-java-2.x/trunk/modules/sca-client-rmi/src/main/java/org/apache/tuscany/sca/client/rmi/SCAClientProxyHandler.java
URL: 
http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/sca-client-rmi/src/main/java/org/apache/tuscany/sca/client/rmi/SCAClientProxyHandler.java?rev=904206&r1=904205&r2=904206&view=diff
==============================================================================
--- 
tuscany/sca-java-2.x/trunk/modules/sca-client-rmi/src/main/java/org/apache/tuscany/sca/client/rmi/SCAClientProxyHandler.java
 (original)
+++ 
tuscany/sca-java-2.x/trunk/modules/sca-client-rmi/src/main/java/org/apache/tuscany/sca/client/rmi/SCAClientProxyHandler.java
 Thu Jan 28 18:40:43 2010
@@ -55,25 +55,26 @@
         this.nodeFactory = nodeFactory;
         this.domainURI = domainURI;
         this.serviceName = serviceName;
-        this.extensionsRegistry = nodeFactory.getExtensionPoints();
-        RMIHostExtensionPoint rmiHosts = 
extensionsRegistry.getExtensionPoint(RMIHostExtensionPoint.class);
-        this.rmiHost = new ExtensibleRMIHost(rmiHosts);
-
-        FactoryExtensionPoint factories = 
extensionsRegistry.getExtensionPoint(FactoryExtensionPoint.class);
-        AssemblyFactory assemblyFactory = 
factories.getFactory(AssemblyFactory.class);
-
-        this.endpointReference = assemblyFactory.createEndpointReference();
-        
endpointReference.setReference(assemblyFactory.createComponentReference());
-        Endpoint targetEndpoint = assemblyFactory.createEndpoint();
-        targetEndpoint.setURI(serviceName);
-        endpointReference.setTargetEndpoint(targetEndpoint);
     }
 
     public Object invoke(Object proxy, Method method, Object[] args) throws 
Throwable {
         Node node = null;
         try {
 
-            node = 
NodeFactory.newInstance().createNode(URI.create(domainURI)).start();
+            nodeFactory = (NodeFactoryImpl)NodeFactory.newInstance();
+            node = nodeFactory.createNode(URI.create(domainURI)).start();
+            this.extensionsRegistry = nodeFactory.getExtensionPoints();
+            RMIHostExtensionPoint rmiHosts = 
extensionsRegistry.getExtensionPoint(RMIHostExtensionPoint.class);
+            this.rmiHost = new ExtensibleRMIHost(rmiHosts);
+
+            FactoryExtensionPoint factories = 
extensionsRegistry.getExtensionPoint(FactoryExtensionPoint.class);
+            AssemblyFactory assemblyFactory = 
factories.getFactory(AssemblyFactory.class);
+
+            this.endpointReference = assemblyFactory.createEndpointReference();
+            
endpointReference.setReference(assemblyFactory.createComponentReference());
+            Endpoint targetEndpoint = assemblyFactory.createEndpoint();
+            targetEndpoint.setURI(serviceName);
+            endpointReference.setTargetEndpoint(targetEndpoint);
             UtilityExtensionPoint utilities = 
extensionsRegistry.getExtensionPoint(UtilityExtensionPoint.class);
             DomainRegistryFactory domainRegistryFactory = 
utilities.getUtility(DomainRegistryFactory.class);
             this.endpointRegistry = 
domainRegistryFactory.getEndpointRegistry(null, domainURI);

Modified: 
tuscany/sca-java-2.x/trunk/modules/sca-client-rmi/src/test/java/org/apache/tuscany/sca/client/rmi/ClientTestCase.java
URL: 
http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/sca-client-rmi/src/test/java/org/apache/tuscany/sca/client/rmi/ClientTestCase.java?rev=904206&r1=904205&r2=904206&view=diff
==============================================================================
--- 
tuscany/sca-java-2.x/trunk/modules/sca-client-rmi/src/test/java/org/apache/tuscany/sca/client/rmi/ClientTestCase.java
 (original)
+++ 
tuscany/sca-java-2.x/trunk/modules/sca-client-rmi/src/test/java/org/apache/tuscany/sca/client/rmi/ClientTestCase.java
 Thu Jan 28 18:40:43 2010
@@ -40,7 +40,7 @@
         Node node = 
NodeFactory.newInstance().createNode(URI.create("tuscany:foo?listen=127.0.0.1:14828"),
 new String[]{"../../samples/calculator/target/sample-calculator.jar"});
         node.start();
         
-        SCAClientFactoryImpl cf = new 
SCAClientFactoryImpl(URI.create("tuscanyClient:foo?remotes=127.0.0.1:14828"));
+        SCAClientFactoryImpl cf = new 
SCAClientFactoryImpl(URI.create("tuscanyclient:foo?remotes=127.0.0.1:14828"));
         CalculatorService service = cf.getService(CalculatorService.class, 
"CalculatorServiceComponent");
         assertEquals(3, service.add(1, 2), 0);
         


Reply via email to