You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by js...@apache.org on 2007/09/29 01:50:27 UTC

svn commit: r580520 - in /incubator/tuscany/sandbox/sebastien/java/sca/domain-and-node: org/apache/tuscany/sca/domain/ org/apache/tuscany/sca/node/ samples/

Author: jsdelfino
Date: Fri Sep 28 16:50:25 2007
New Revision: 580520

URL: http://svn.apache.org/viewvc?rev=580520&view=rev
Log:
Refining domain and node API with some of Simon's comments.

Added:
    incubator/tuscany/sandbox/sebastien/java/sca/domain-and-node/org/apache/tuscany/sca/domain/SCADomainFinder.java   (with props)
    incubator/tuscany/sandbox/sebastien/java/sca/domain-and-node/samples/SampleMiniUnitTestDomainWithClient.java   (with props)
    incubator/tuscany/sandbox/sebastien/java/sca/domain-and-node/samples/SampleTuscanyDomainImplementation.java   (with props)
    incubator/tuscany/sandbox/sebastien/java/sca/domain-and-node/samples/SampleTuscanyNodeImplementation.java
      - copied, changed from r579871, incubator/tuscany/sandbox/sebastien/java/sca/domain-and-node/samples/SampleCalculatorNode.java
    incubator/tuscany/sandbox/sebastien/java/sca/domain-and-node/samples/SampleUnitTestCalculatorNodeWithClient.java
      - copied, changed from r579871, incubator/tuscany/sandbox/sebastien/java/sca/domain-and-node/samples/SampleCalculatorNodeWithClient.java
Removed:
    incubator/tuscany/sandbox/sebastien/java/sca/domain-and-node/samples/SampleCalculatorNode.java
    incubator/tuscany/sandbox/sebastien/java/sca/domain-and-node/samples/SampleCalculatorNodeWithClient.java
    incubator/tuscany/sandbox/sebastien/java/sca/domain-and-node/samples/SampleDomain.java
    incubator/tuscany/sandbox/sebastien/java/sca/domain-and-node/samples/SampleDomainWithClient.java
Modified:
    incubator/tuscany/sandbox/sebastien/java/sca/domain-and-node/org/apache/tuscany/sca/domain/SCADomain.java
    incubator/tuscany/sandbox/sebastien/java/sca/domain-and-node/org/apache/tuscany/sca/domain/SCADomainFactory.java
    incubator/tuscany/sandbox/sebastien/java/sca/domain-and-node/org/apache/tuscany/sca/node/SCANode.java
    incubator/tuscany/sandbox/sebastien/java/sca/domain-and-node/samples/SampleClient.java

Modified: incubator/tuscany/sandbox/sebastien/java/sca/domain-and-node/org/apache/tuscany/sca/domain/SCADomain.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/sandbox/sebastien/java/sca/domain-and-node/org/apache/tuscany/sca/domain/SCADomain.java?rev=580520&r1=580519&r2=580520&view=diff
==============================================================================
--- incubator/tuscany/sandbox/sebastien/java/sca/domain-and-node/org/apache/tuscany/sca/domain/SCADomain.java (original)
+++ incubator/tuscany/sandbox/sebastien/java/sca/domain-and-node/org/apache/tuscany/sca/domain/SCADomain.java Fri Sep 28 16:50:25 2007
@@ -55,16 +55,17 @@
     /**
      * Add an SCA contribution to the domain.
      *  
+     * @param uri the URI of the contribution
      * @param url the URL of the contribution
      */
-    void addContribution(URL url);
+    void addContribution(String uri, URL url);
     
     /**
      * Remove a contribution from the domain.
      * 
      * @param url the URL of the contribution
      */
-    void removeContribution(URL url);
+    void removeContribution(String uri);
 
     /**
      * Add a deployable composite to the domain.

Modified: incubator/tuscany/sandbox/sebastien/java/sca/domain-and-node/org/apache/tuscany/sca/domain/SCADomainFactory.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/sandbox/sebastien/java/sca/domain-and-node/org/apache/tuscany/sca/domain/SCADomainFactory.java?rev=580520&r1=580519&r2=580520&view=diff
==============================================================================
--- incubator/tuscany/sandbox/sebastien/java/sca/domain-and-node/org/apache/tuscany/sca/domain/SCADomainFactory.java (original)
+++ incubator/tuscany/sandbox/sebastien/java/sca/domain-and-node/org/apache/tuscany/sca/domain/SCADomainFactory.java Fri Sep 28 16:50:25 2007
@@ -20,7 +20,7 @@
 package org.apache.tuscany.sca.domain;
 
 /**
- * A factory for SCA domains.
+ * A factory for SCA domains. 
  * 
  * @version $Rev$ $Date$
  */
@@ -44,14 +44,5 @@
      * @return a new SCA domain
      */
     public abstract SCADomain createSCADomain(String domainURI);
-    
-    /**
-     * Returns an existing SCA domain.
-     * 
-     * @param domainURI the URI of the domain, this is the endpoint
-     * URI of the domain administration service
-     * @return the SCA domain
-     */
-    public abstract SCADomain getSCADomain(String domainURI);
     
 }

Added: incubator/tuscany/sandbox/sebastien/java/sca/domain-and-node/org/apache/tuscany/sca/domain/SCADomainFinder.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/sandbox/sebastien/java/sca/domain-and-node/org/apache/tuscany/sca/domain/SCADomainFinder.java?rev=580520&view=auto
==============================================================================
--- incubator/tuscany/sandbox/sebastien/java/sca/domain-and-node/org/apache/tuscany/sca/domain/SCADomainFinder.java (added)
+++ incubator/tuscany/sandbox/sebastien/java/sca/domain-and-node/org/apache/tuscany/sca/domain/SCADomainFinder.java Fri Sep 28 16:50:25 2007
@@ -0,0 +1,48 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ * 
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.    
+ */
+
+package org.apache.tuscany.sca.domain;
+
+/**
+ * A finder for SCA domains.
+ * 
+ * @version $Rev$ $Date$
+ */
+public abstract class SCADomainFinder {
+    
+        
+    /**
+     * Returns a new SCA domain finder instance.
+     *  
+     * @return a new SCA domain finder
+     */
+    public static SCADomainFinder newInstance() {
+        return null;
+    }
+
+    /**
+     * Finds an existing SCA domain.
+     * 
+     * @param domainURI the URI of the domain, this is the endpoint
+     * URI of the domain administration service
+     * @return the SCA domain
+     */
+    public abstract SCADomain getSCADomain(String domainURI);
+    
+}

Propchange: incubator/tuscany/sandbox/sebastien/java/sca/domain-and-node/org/apache/tuscany/sca/domain/SCADomainFinder.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/tuscany/sandbox/sebastien/java/sca/domain-and-node/org/apache/tuscany/sca/domain/SCADomainFinder.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Modified: incubator/tuscany/sandbox/sebastien/java/sca/domain-and-node/org/apache/tuscany/sca/node/SCANode.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/sandbox/sebastien/java/sca/domain-and-node/org/apache/tuscany/sca/node/SCANode.java?rev=580520&r1=580519&r2=580520&view=diff
==============================================================================
--- incubator/tuscany/sandbox/sebastien/java/sca/domain-and-node/org/apache/tuscany/sca/node/SCANode.java (original)
+++ incubator/tuscany/sandbox/sebastien/java/sca/domain-and-node/org/apache/tuscany/sca/node/SCANode.java Fri Sep 28 16:50:25 2007
@@ -23,8 +23,6 @@
 
 import javax.xml.namespace.QName;
 
-import org.apache.tuscany.sca.domain.SCADomain;
-
 
 /**
  * Represents an SCA processing node. An SCA node belongs to an SCA domain.
@@ -45,14 +43,6 @@
     public void stop();
 
     /**
-     * Configure the node with a deployable composite and the contributions
-     * that it requires.
-     * @param composite
-     * @param contributions
-     */
-    public void configure(QName composite, URL... contributions);
-
-    /**
      * Returns the URI of the SCA node. That URI is the endpoint of the
      * SCA node administration service.
      * 
@@ -61,19 +51,34 @@
     public String getURI();
     
     /**
-     * Returns the SCA domain that the node belongs to.
+     * Returns the URI of the SCA domain that the node belongs to.
      * 
-     * @return the SCA domain that the node belongs to 
+     * @return the URI of the SCA domain that the node belongs to 
      */
-    public SCADomain getSCADomain();
+    public String getDomainURI();
     
     /**
-     * Start the deployable composite loaded in the node.
+     * Load an SCA contribution into the node.
+     *  
+     * @param uri the URI of the contribution
+     * @param url the URL of the contribution
+     */
+    void loadContribution(String uri, URL url);
+
+    /**
+     * Unload contributions loaded in the node.
+     */
+    void unloadContributions();
+    
+    /**
+     * Start the specified deployable composite on the node.
+     * 
+     * @param composite
      */
-    void startComposite();
+    void startComposite(QName composite);
     
     /**
-     * Stop the deployable composite loaded in the node.
+     * Stop the deployable composite running on the node.
      */
     void stopComposite();
     

Modified: incubator/tuscany/sandbox/sebastien/java/sca/domain-and-node/samples/SampleClient.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/sandbox/sebastien/java/sca/domain-and-node/samples/SampleClient.java?rev=580520&r1=580519&r2=580520&view=diff
==============================================================================
--- incubator/tuscany/sandbox/sebastien/java/sca/domain-and-node/samples/SampleClient.java (original)
+++ incubator/tuscany/sandbox/sebastien/java/sca/domain-and-node/samples/SampleClient.java Fri Sep 28 16:50:25 2007
@@ -1,7 +1,7 @@
 package samples;
 
 import org.apache.tuscany.sca.domain.SCADomain;
-import org.apache.tuscany.sca.domain.SCADomainFactory;
+import org.apache.tuscany.sca.domain.SCADomainFinder;
 
 /**
  * A sample client that gets a handle to a domain, gets a service proxy and
@@ -13,11 +13,11 @@
     
     public static void main(String[] args) throws Exception {
         
-        // Get a domain factory
-        SCADomainFactory domainFactory = SCADomainFactory.newInstance();
+        // Get a domain finder
+        SCADomainFinder domainFinder = SCADomainFinder.newInstance();
         
-        // Get a handle to the SCA domain
-        SCADomain domain = domainFactory.getSCADomain("http://mydomain:7890/mybigdomain");
+        // Find the specified SCA domain
+        SCADomain domain = domainFinder.getSCADomain("http://mydomain:7890/mybigdomain");
         
         // Get a proxy to the Calculator service
         Calculator calculator = domain.getService(Calculator.class, "CalculatorServiceComponent");

Added: incubator/tuscany/sandbox/sebastien/java/sca/domain-and-node/samples/SampleMiniUnitTestDomainWithClient.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/sandbox/sebastien/java/sca/domain-and-node/samples/SampleMiniUnitTestDomainWithClient.java?rev=580520&view=auto
==============================================================================
--- incubator/tuscany/sandbox/sebastien/java/sca/domain-and-node/samples/SampleMiniUnitTestDomainWithClient.java (added)
+++ incubator/tuscany/sandbox/sebastien/java/sca/domain-and-node/samples/SampleMiniUnitTestDomainWithClient.java Fri Sep 28 16:50:25 2007
@@ -0,0 +1,52 @@
+package samples;
+
+import java.net.URL;
+
+import javax.xml.namespace.QName;
+
+import org.apache.tuscany.sca.domain.SCADomain;
+import org.apache.tuscany.sca.domain.SCADomainFactory;
+
+/**
+ * Create a mini in-VM local SCA domain, add a contribution to it, add a
+ * deployable composite, start it, get a proxy to a service
+ * and invoke it.
+ *
+ * @version $Rev$ $Date$
+ */
+public class SampleMiniUnitTestDomainWithClient {
+    
+    public static void main(String[] args) throws Exception {
+        
+        // Get a domain factory
+        SCADomainFactory domainFactory = SCADomainFactory.newInstance();
+        
+        // Create an SCA domain
+        SCADomain domain = domainFactory.createSCADomain("http://mydomain:7890/asmalldomain");
+        
+        // Start the domain admin service
+        domain.start();
+
+        // Add the calculator JAR contribution to the domain 
+        domain.addContribution("urn:calculator", new URL("file://home/bob/tuscany/sample-calculator-ws-1.0.jar"));
+        
+        // Add the Calculator deployable composite to the domain composite
+        domain.addComposite(new QName("http://calc", "Calculator"));
+        
+        // Start the Calculator composite
+        domain.startComposite(new QName("http://calc", "Calculator"));
+
+        // Get a proxy to the Calculator service
+        Calculator calculator = domain.getService(Calculator.class, "CalculatorServiceComponent");
+        
+        // Invoke it
+        System.out.println("result = " + calculator.add(1, 2));
+
+        // Stop the composite
+        domain.stopComposite(new QName("http://calc", "Calculator"));
+        
+        // Stop the domain admin service
+        domain.stop();
+    }
+
+}

Propchange: incubator/tuscany/sandbox/sebastien/java/sca/domain-and-node/samples/SampleMiniUnitTestDomainWithClient.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/tuscany/sandbox/sebastien/java/sca/domain-and-node/samples/SampleMiniUnitTestDomainWithClient.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: incubator/tuscany/sandbox/sebastien/java/sca/domain-and-node/samples/SampleTuscanyDomainImplementation.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/sandbox/sebastien/java/sca/domain-and-node/samples/SampleTuscanyDomainImplementation.java?rev=580520&view=auto
==============================================================================
--- incubator/tuscany/sandbox/sebastien/java/sca/domain-and-node/samples/SampleTuscanyDomainImplementation.java (added)
+++ incubator/tuscany/sandbox/sebastien/java/sca/domain-and-node/samples/SampleTuscanyDomainImplementation.java Fri Sep 28 16:50:25 2007
@@ -0,0 +1,53 @@
+package samples;
+
+import java.net.URL;
+
+import javax.xml.namespace.QName;
+
+import org.apache.tuscany.sca.domain.SCADomain;
+import org.apache.tuscany.sca.domain.SCADomainFactory;
+
+/**
+ * Shows how to create an SCA domain service, add a contribution to it, add a
+ * deployable composite, start the composite, let it run.
+ * 
+ * This is to show how Tuscany can implement a domain service using
+ * the proposed API.
+ *
+ * @version $Rev$ $Date$
+ */
+public class SampleTuscanyDomainImplementation {
+    
+    public static void main(String[] args) throws Exception {
+        
+        // Get a domain factory
+        SCADomainFactory domainFactory = SCADomainFactory.newInstance();
+        
+        // Create an SCA domain
+        SCADomain domain = domainFactory.createSCADomain("http://mydomain:7890/asmalldomain");
+        
+        // Start the domain admin service
+        domain.start();
+
+        // Add the calculator JAR contribution to the domain 
+        domain.addContribution("urn:calculator", new URL("file://home/bob/tuscany/sample-calculator-ws-1.0.jar"));
+        
+        // Add the Calculator deployable composite to the domain composite
+        domain.addComposite(new QName("http://calc", "Calculator"));
+        
+        // Start the Calculator composite
+        domain.startComposite(new QName("http://calc", "Calculator"));
+        
+        // The Calculator composite exposes a Web Service, let it run and let
+        // clients invoke it
+        System.out.println("Press enter to shutdown...");
+        System.in.read();
+
+        // Stop the composite
+        domain.stopComposite(new QName("http://calc", "Calculator"));
+        
+        // Stop the domain admin service
+        domain.stop();
+    }
+
+}

Propchange: incubator/tuscany/sandbox/sebastien/java/sca/domain-and-node/samples/SampleTuscanyDomainImplementation.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/tuscany/sandbox/sebastien/java/sca/domain-and-node/samples/SampleTuscanyDomainImplementation.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Copied: incubator/tuscany/sandbox/sebastien/java/sca/domain-and-node/samples/SampleTuscanyNodeImplementation.java (from r579871, incubator/tuscany/sandbox/sebastien/java/sca/domain-and-node/samples/SampleCalculatorNode.java)
URL: http://svn.apache.org/viewvc/incubator/tuscany/sandbox/sebastien/java/sca/domain-and-node/samples/SampleTuscanyNodeImplementation.java?p2=incubator/tuscany/sandbox/sebastien/java/sca/domain-and-node/samples/SampleTuscanyNodeImplementation.java&p1=incubator/tuscany/sandbox/sebastien/java/sca/domain-and-node/samples/SampleCalculatorNode.java&r1=579871&r2=580520&rev=580520&view=diff
==============================================================================
--- incubator/tuscany/sandbox/sebastien/java/sca/domain-and-node/samples/SampleCalculatorNode.java (original)
+++ incubator/tuscany/sandbox/sebastien/java/sca/domain-and-node/samples/SampleTuscanyNodeImplementation.java Fri Sep 28 16:50:25 2007
@@ -12,7 +12,7 @@
  *
  * @version $Rev$ $Date$
  */
-public class SampleCalculatorNode {
+public class SampleTuscanyNodeImplementation {
     
     public static void main(String[] args) throws Exception {
         
@@ -25,12 +25,11 @@
         // Start the node
         node.start();
         
-        // Configure the node to run the Calculator composite, out of the
-        // sample-calculator JAR contribution
-        node.configure(new QName("http://calc", "Calculator"), new URL("file://home/bob/tuscany/sample-calculator-ws-1.0.jar"));
+        // Load the sample-calculator JAR contribution into the node
+        node.loadContribution("urn:calculator",  new URL("file://home/bob/tuscany/sample-calculator-ws-1.0.jar"));
         
-        // Start the composite we just loaded into the node
-        node.startComposite();
+        // Start the Calculator composite
+        node.startComposite(new QName("http://calc", "Calculator"));
 
         // This composite exposes a Calculator Web Service, sit there and
         // let client invoke the service
@@ -39,6 +38,9 @@
 
         // Stop the composite
         node.stopComposite();
+        
+        // Cleanup the node
+        node.unloadContributions();
         
         // Stop the node
         node.stop();

Copied: incubator/tuscany/sandbox/sebastien/java/sca/domain-and-node/samples/SampleUnitTestCalculatorNodeWithClient.java (from r579871, incubator/tuscany/sandbox/sebastien/java/sca/domain-and-node/samples/SampleCalculatorNodeWithClient.java)
URL: http://svn.apache.org/viewvc/incubator/tuscany/sandbox/sebastien/java/sca/domain-and-node/samples/SampleUnitTestCalculatorNodeWithClient.java?p2=incubator/tuscany/sandbox/sebastien/java/sca/domain-and-node/samples/SampleUnitTestCalculatorNodeWithClient.java&p1=incubator/tuscany/sandbox/sebastien/java/sca/domain-and-node/samples/SampleCalculatorNodeWithClient.java&r1=579871&r2=580520&rev=580520&view=diff
==============================================================================
--- incubator/tuscany/sandbox/sebastien/java/sca/domain-and-node/samples/SampleCalculatorNodeWithClient.java (original)
+++ incubator/tuscany/sandbox/sebastien/java/sca/domain-and-node/samples/SampleUnitTestCalculatorNodeWithClient.java Fri Sep 28 16:50:25 2007
@@ -5,6 +5,7 @@
 import javax.xml.namespace.QName;
 
 import org.apache.tuscany.sca.domain.SCADomain;
+import org.apache.tuscany.sca.domain.SCADomainFinder;
 import org.apache.tuscany.sca.node.SCANode;
 import org.apache.tuscany.sca.node.SCANodeFactory;
 
@@ -14,7 +15,7 @@
  *
  * @version $Rev$ $Date$
  */
-public class SampleCalculatorNodeWithClient {
+public class SampleUnitTestCalculatorNodeWithClient {
     
     public static void main(String[] args) throws Exception {
         
@@ -27,24 +28,29 @@
         // Start the node
         node.start();
         
-        // Configure the node to run the Calculator composite, out of the
-        // sample-calculator JAR contribution
-        node.configure(new QName("http://calc", "Calculator"), new URL("file://home/bob/tuscany/sample-calculator-1.0.jar"));
+        // Load the sample-calculator JAR contribution into the node
+        node.loadContribution("urn:calculator",  new URL("file://home/bob/tuscany/sample-calculator-ws-1.0.jar"));
         
-        // Start the composite we just loaded into the node
-        node.startComposite();
+        // Start the Calculator composite
+        node.startComposite(new QName("http://calc", "Calculator"));
+
+        // Get a domain finder
+        SCADomainFinder domainFinder = SCADomainFinder.newInstance();
         
-        // Get a handle to the SCA domain that the node belongs to
-        SCADomain domain = node.getSCADomain();
+        // Get a handle to our SCA domain
+        SCADomain domain = domainFinder.getSCADomain("http://mydomain:7890/thebigdomain");
         
         // Get a proxy to the Calculator service
         Calculator calculator = domain.getService(Calculator.class, "CalculatorServiceComponent");
         
         // Invoke the Calculator service
         System.out.println("result = " + calculator.add(1, 2));
-
+        
         // Stop the composite
         node.stopComposite();
+        
+        // Cleanup the node
+        node.unloadContributions();
         
         // Stop the node
         node.stop();



---------------------------------------------------------------------
To unsubscribe, e-mail: tuscany-commits-unsubscribe@ws.apache.org
For additional commands, e-mail: tuscany-commits-help@ws.apache.org