Author: antelder
Date: Thu Nov 26 10:26:25 2009
New Revision: 884488

URL: http://svn.apache.org/viewvc?rev=884488&view=rev
Log:
Add support for specifying the domain uri and aditional contributions, eg mvn 
tuscany:run -Ddomain=tribes:foo 
-Dcontributions=..\calculator\target\sample-calculator.jar

Modified:
    
tuscany/maven-plugins/trunk/maven-tuscany-plugin/src/main/java/org/apache/tuscany/maven/plugin/TuscanyRunMojo.java

Modified: 
tuscany/maven-plugins/trunk/maven-tuscany-plugin/src/main/java/org/apache/tuscany/maven/plugin/TuscanyRunMojo.java
URL: 
http://svn.apache.org/viewvc/tuscany/maven-plugins/trunk/maven-tuscany-plugin/src/main/java/org/apache/tuscany/maven/plugin/TuscanyRunMojo.java?rev=884488&r1=884487&r2=884488&view=diff
==============================================================================
--- 
tuscany/maven-plugins/trunk/maven-tuscany-plugin/src/main/java/org/apache/tuscany/maven/plugin/TuscanyRunMojo.java
 (original)
+++ 
tuscany/maven-plugins/trunk/maven-tuscany-plugin/src/main/java/org/apache/tuscany/maven/plugin/TuscanyRunMojo.java
 Thu Nov 26 10:26:25 2009
@@ -20,14 +20,15 @@
 
 import java.io.File;
 import java.net.MalformedURLException;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.StringTokenizer;
 
 import org.apache.maven.plugin.AbstractMojo;
 import org.apache.maven.plugin.MojoExecutionException;
 import org.apache.maven.plugin.MojoFailureException;
 import org.apache.maven.plugin.logging.Log;
-import org.apache.tuscany.sca.node.Contribution;
-import org.apache.tuscany.sca.node.Node;
-import org.apache.tuscany.sca.node.NodeFactory;
+import org.apache.tuscany.sca.domain.node.DomainNode;
 
 /**
  * Maven Mojo to run the SCA contribution project in Tuscany.
@@ -72,34 +73,48 @@
      */
     protected File finalName;
 
+    /**
+     * @parameter expression="${domain}" default-value="vm:default"
+     */
+    private String domain;
+    
+    /**
+     * @parameter expression="${contributions}" 
+     */
+    private String contributions;
+
     public void execute() throws MojoExecutionException, MojoFailureException {
         getLog().info("Starting Tuscany Runtime...");
 
-        Contribution contribution = getProjectContribution();
-        // TODO allow specifying dependent contributions
+        List<String> contributionList = new ArrayList<String>();
 
-        Node node = NodeFactory.newInstance().createNode(contribution);
-        node.start();
+        addProjectContribution(contributionList);
+        
+        if (contributions != null) {
+            StringTokenizer st = new StringTokenizer(contributions, ",");
+            while (st.hasMoreTokens()) {
+                contributionList.add(st.nextToken());
+            }
+        }
 
-        waitForShutdown(node, getLog());
+        DomainNode domainNode = new DomainNode(domain, 
contributionList.toArray(new String[contributionList.size()]));
 
+        waitForShutdown(domainNode, getLog());
     }
 
-    protected Contribution getProjectContribution() throws 
MojoExecutionException {
+    protected void addProjectContribution(List<String> cs) throws 
MojoExecutionException {
         try {
 
-            String contribution =
-                new File(buildDirectory.getParent(), finalName.getName() + 
packaging).toURI().toURL().toString();
+            String contribution = new File(buildDirectory.getParent(), 
finalName.getName() + packaging).toURI().toURL().toString();
             getLog().info("Project contribution: " + contribution);
-
-            return new Contribution(contribution, contribution);
-
+            cs.add(contribution);
+            
         } catch (MalformedURLException e) {
             throw new MojoExecutionException("", e);
         }
     }
 
-    protected void waitForShutdown(Node node, Log log) {
+    protected void waitForShutdown(DomainNode node, Log log) {
         Runtime.getRuntime().addShutdownHook(new ShutdownThread(node, log));
         synchronized (this) {
             try {
@@ -113,10 +128,10 @@
 
     protected static class ShutdownThread extends Thread {
 
-        private Node node;
+        private DomainNode node;
         private Log log;
 
-        public ShutdownThread(Node node, Log log) {
+        public ShutdownThread(DomainNode node, Log log) {
             super();
             this.node = node;
             this.log = log;
@@ -128,7 +143,6 @@
 
                 log.info("Stopping Tuscany Runtime...");
                 node.stop();
-                node.destroy();
 
             } catch (Exception e) {
                 log.error(e);


Reply via email to