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