You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by an...@apache.org on 2011/03/31 20:29:05 UTC

svn commit: r1087400 - in /tuscany/sca-java-2.x/trunk/maven/maven-tuscany-plugin: pom.xml src/main/java/org/apache/tuscany/maven/plugin/TuscanyRunMojo.java

Author: antelder
Date: Thu Mar 31 18:29:04 2011
New Revision: 1087400

URL: http://svn.apache.org/viewvc?rev=1087400&view=rev
Log:
Add start of a way to run webapps from the tuscany plugin

Modified:
    tuscany/sca-java-2.x/trunk/maven/maven-tuscany-plugin/pom.xml
    tuscany/sca-java-2.x/trunk/maven/maven-tuscany-plugin/src/main/java/org/apache/tuscany/maven/plugin/TuscanyRunMojo.java

Modified: tuscany/sca-java-2.x/trunk/maven/maven-tuscany-plugin/pom.xml
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/maven/maven-tuscany-plugin/pom.xml?rev=1087400&r1=1087399&r2=1087400&view=diff
==============================================================================
--- tuscany/sca-java-2.x/trunk/maven/maven-tuscany-plugin/pom.xml (original)
+++ tuscany/sca-java-2.x/trunk/maven/maven-tuscany-plugin/pom.xml Thu Mar 31 18:29:04 2011
@@ -48,7 +48,6 @@
           <artifactId>maven-artifact</artifactId>
           <version>2.0.3</version>
        </dependency>
-
        <dependency>
           <groupId>org.apache.tuscany.sca</groupId>
           <artifactId>tuscany-base-runtime</artifactId>
@@ -59,16 +58,36 @@
           <artifactId>tuscany-domain-hazelcast</artifactId>
           <version>2.0-SNAPSHOT</version>
        </dependency>
-        <dependency>
-            <groupId>jline</groupId>
-            <artifactId>jline</artifactId>
-            <version>0.9.95-huynhjl</version>
-        </dependency>
-      <dependency>
-          <groupId>org.mortbay.jetty</groupId>
-          <artifactId>jetty</artifactId>
-          <version>6.1.19</version>
-      </dependency>
+       <dependency>
+          <groupId>jline</groupId>
+          <artifactId>jline</artifactId>
+          <version>0.9.95-huynhjl</version>
+       </dependency>
+       <dependency>
+          <groupId>org.apache.tomcat.embed</groupId>
+          <artifactId>tomcat-embed-core</artifactId>
+          <version>7.0.8</version>
+       </dependency>
+       <dependency>
+          <groupId>org.apache.tomcat.embed</groupId>
+          <artifactId>tomcat-embed-logging-juli</artifactId>
+          <version>7.0.8</version>
+       </dependency>
+       <dependency>
+          <groupId>org.apache.tomcat.embed</groupId>
+          <artifactId>tomcat-embed-jasper</artifactId>
+          <version>7.0.8</version>
+       </dependency>
+       <dependency>
+          <groupId>org.apache.tomcat</groupId>
+          <artifactId>tomcat-jasper-el</artifactId>
+          <version>7.0.8</version>
+       </dependency>
+       <dependency>
+          <groupId>org.eclipse.jdt.core.compiler</groupId>
+          <artifactId>ecj</artifactId>
+          <version>3.5.1</version>
+       </dependency>
 
     </dependencies>
 

Modified: tuscany/sca-java-2.x/trunk/maven/maven-tuscany-plugin/src/main/java/org/apache/tuscany/maven/plugin/TuscanyRunMojo.java
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/maven/maven-tuscany-plugin/src/main/java/org/apache/tuscany/maven/plugin/TuscanyRunMojo.java?rev=1087400&r1=1087399&r2=1087400&view=diff
==============================================================================
--- tuscany/sca-java-2.x/trunk/maven/maven-tuscany-plugin/src/main/java/org/apache/tuscany/maven/plugin/TuscanyRunMojo.java (original)
+++ tuscany/sca-java-2.x/trunk/maven/maven-tuscany-plugin/src/main/java/org/apache/tuscany/maven/plugin/TuscanyRunMojo.java Thu Mar 31 18:29:04 2011
@@ -26,6 +26,12 @@ import java.net.URLClassLoader;
 import java.util.ArrayList;
 import java.util.List;
 
+import javax.servlet.ServletException;
+
+import org.apache.catalina.LifecycleException;
+import org.apache.catalina.core.AprLifecycleListener;
+import org.apache.catalina.core.StandardServer;
+import org.apache.catalina.startup.Tomcat;
 import org.apache.maven.artifact.Artifact;
 import org.apache.maven.plugin.AbstractMojo;
 import org.apache.maven.plugin.MojoExecutionException;
@@ -114,11 +120,38 @@ public class TuscanyRunMojo extends Abst
     public void execute() throws MojoExecutionException, MojoFailureException {
         if (mainClass != null) {
             executeMainMethod();
+        } else if (".war".equals(packaging)) {
+            try {
+                executeTomcat();
+            } catch (Exception e) {
+                throw new MojoExecutionException("Exception running Tuscany/Tomcat", e);
+            }
         } else {
             executeShell();
         }
     }
 
+    private void executeTomcat() throws ServletException, LifecycleException, MalformedURLException {
+        getLog().info("Starting Tuscany/Tomcat...");
+        
+        Tomcat tomcat = new Tomcat();
+        tomcat.setPort(8080);
+
+        tomcat.setBaseDir("target");
+        String appBase = "../src/main/webapp";
+        tomcat.getHost().setAppBase(".");
+        String contextPath = "/" + artifactId;
+
+        StandardServer server = (StandardServer)tomcat.getServer();
+        server.setParentClassLoader(getMainClassLoader());
+        AprLifecycleListener listener = new AprLifecycleListener();
+        server.addLifecycleListener(listener);
+
+        tomcat.addWebapp(contextPath, appBase);
+        tomcat.start();
+        tomcat.getServer().await();
+    }
+
     private void executeShell() throws MojoExecutionException {
         getLog().info("Starting Tuscany Shell...");