You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by rm...@apache.org on 2012/01/12 10:32:09 UTC

svn commit: r1230451 - in /openejb/trunk/maven-plugins/tomee-maven-plugin/src/main/java/org/apache/openejb/maven/plugin: AbstractTomEEMojo.java StartTomEEMojo.java StopTomEEMojo.java

Author: rmannibucau
Date: Thu Jan 12 09:32:09 2012
New Revision: 1230451

URL: http://svn.apache.org/viewvc?rev=1230451&view=rev
Log:
trying to use remote server

Modified:
    openejb/trunk/maven-plugins/tomee-maven-plugin/src/main/java/org/apache/openejb/maven/plugin/AbstractTomEEMojo.java
    openejb/trunk/maven-plugins/tomee-maven-plugin/src/main/java/org/apache/openejb/maven/plugin/StartTomEEMojo.java
    openejb/trunk/maven-plugins/tomee-maven-plugin/src/main/java/org/apache/openejb/maven/plugin/StopTomEEMojo.java

Modified: openejb/trunk/maven-plugins/tomee-maven-plugin/src/main/java/org/apache/openejb/maven/plugin/AbstractTomEEMojo.java
URL: http://svn.apache.org/viewvc/openejb/trunk/maven-plugins/tomee-maven-plugin/src/main/java/org/apache/openejb/maven/plugin/AbstractTomEEMojo.java?rev=1230451&r1=1230450&r2=1230451&view=diff
==============================================================================
--- openejb/trunk/maven-plugins/tomee-maven-plugin/src/main/java/org/apache/openejb/maven/plugin/AbstractTomEEMojo.java (original)
+++ openejb/trunk/maven-plugins/tomee-maven-plugin/src/main/java/org/apache/openejb/maven/plugin/AbstractTomEEMojo.java Thu Jan 12 09:32:09 2012
@@ -25,24 +25,23 @@ import org.apache.maven.artifact.reposit
 import org.apache.maven.artifact.resolver.ArtifactResolver;
 import org.apache.maven.plugin.MojoExecutionException;
 import org.apache.maven.plugin.MojoFailureException;
+import org.apache.openejb.config.RemoteServer;
 
-import java.io.BufferedReader;
 import java.io.File;
 import java.io.FileInputStream;
 import java.io.FileOutputStream;
 import java.io.FileWriter;
 import java.io.IOException;
 import java.io.InputStream;
-import java.io.InputStreamReader;
 import java.io.OutputStream;
 import java.net.URI;
 import java.net.URISyntaxException;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Enumeration;
-import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
+import java.util.concurrent.CountDownLatch;
 import java.util.zip.ZipEntry;
 import java.util.zip.ZipFile;
 
@@ -326,87 +325,53 @@ public abstract class AbstractTomEEMojo 
     }
 
     protected void run() {
-        final ProcessBuilder builder = baseProcessBuilder();
-        builder.command(java(),
-                "-javaagent:" + new File(catalinaBase, "lib/openejb-javaagent.jar").getAbsolutePath(),
-                "-cp", cp());
-        if (args != null && args.length() > 0) {
-            builder.command().addAll(Arrays.asList(args.split(" ")));
-        }
+        System.setProperty("openejb.home", catalinaBase.getAbsolutePath());
         if (debug) {
-            builder.command().addAll(Arrays.asList(
-                    "-Xnoagent", "-Xdebug", "-Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=" + debugPort
-            ));
-        }
-        builder.command().addAll(systemProperties());
-        builder.command().addAll(Arrays.asList("org.apache.catalina.startup.Bootstrap", getCmd()));
-        builder.redirectErrorStream(true);
-
-        final Process process;
-        try {
-            process = builder.start();
-        } catch (Exception e) {
-            throw new TomEEException(e.getMessage(), e);
+            System.setProperty("openejb.server.debug", "true");
+            System.setProperty("server.debug.port", Integer.toString(debugPort));
         }
 
-        final InputStream is = process.getInputStream();
-        final BufferedReader br = new BufferedReader(new InputStreamReader(is));
-        String line;
-        do {
-            try {
-                line = br.readLine();
-                getLog().info(line);
-            } catch (IOException e) {
-                line = null;
+        final List<String> strings = new ArrayList<String>();
+        if (systemVariables != null) {
+            for (Map.Entry<String, String> entry : systemVariables.entrySet()) {
+                if (entry.getValue().contains(" ")) {
+                    strings.add(String.format("'-D%s=%s'", entry.getKey(), entry.getValue()));
+                } else {
+                    strings.add(String.format("-D%s=%s", entry.getKey(), entry.getValue()));
+                }
             }
-        } while (line != null);
-
-        try {
-            process.waitFor();
-        } catch (InterruptedException e) {
-            throw new TomEEException(e.getMessage(), e);
         }
-    }
-
-    protected static String java() {
-        return new File(System.getProperty("java.home"), "/bin/java").getAbsolutePath();
-    }
-
-    protected ProcessBuilder baseProcessBuilder() {
-        final ProcessBuilder processBuilder = new ProcessBuilder();
-        processBuilder.directory(catalinaBase);
-        return processBuilder;
-    }
-
-    protected List<String> systemProperties() {
-        // using a map since it is easier to read
-        final Map<String, String> prop = new HashMap<String, String>();
-        prop.put("java.util.logging.config.file", new File(catalinaBase, "conf/logging.properties").getAbsolutePath());
-        prop.put("java.util.logging.manager", "org.apache.juli.ClassLoaderLogManager");
-        prop.put("java.endorsed.dirs", new File(catalinaBase, "endorsed").getAbsolutePath());
-        prop.put("catalina.base", catalinaBase.getAbsolutePath());
-        prop.put("catalina.home", catalinaBase.getAbsolutePath());
-        prop.put("java.io.tmpdir", new File(catalinaBase, "temp").getAbsolutePath());
-        if (debug) {
-            prop.put("java.compiler", "NONE");
+        if (args != null) {
+            strings.addAll(Arrays.asList(args.split(" ")));
         }
         if (getNoShutdownHook()) {
-            prop.put("tomee.noshutdownhook", "true");
+            strings.add("-Dtomee.noshutdownhook=true");
         }
-        if (systemVariables != null) {
-            prop.putAll(systemVariables);
+
+        final RemoteServer server = new RemoteServer(Integer.MAX_VALUE, false);
+        final CountDownLatch latch = new CountDownLatch(1);
+        if (!getNoShutdownHook()) {
+            Runtime.getRuntime().addShutdownHook(new Thread() {
+                @Override public void run() {
+                    server.stop();
+                    latch.countDown();
+                }
+            });
         }
 
-        // converting it
-        final List<String> strings = new ArrayList<String>();
-        for (Map.Entry<String, String> entry : prop.entrySet()) {
-            if (entry.getValue().contains(" ")) {
-                strings.add(String.format("'-D%s=%s'", entry.getKey(), entry.getValue()));
-            } else {
-                strings.add(String.format("-D%s=%s", entry.getKey(), entry.getValue()));
+        server.start(strings, getCmd(), false);
+
+        if (!getNoShutdownHook()) {
+            try {
+                latch.await();
+            } catch (InterruptedException e) {
+                // ignored
             }
         }
-        return strings;
+    }
+
+    protected static String java() {
+        return new File(System.getProperty("java.home"), "/bin/java").getAbsolutePath();
     }
 
     protected boolean getNoShutdownHook() {

Modified: openejb/trunk/maven-plugins/tomee-maven-plugin/src/main/java/org/apache/openejb/maven/plugin/StartTomEEMojo.java
URL: http://svn.apache.org/viewvc/openejb/trunk/maven-plugins/tomee-maven-plugin/src/main/java/org/apache/openejb/maven/plugin/StartTomEEMojo.java?rev=1230451&r1=1230450&r2=1230451&view=diff
==============================================================================
--- openejb/trunk/maven-plugins/tomee-maven-plugin/src/main/java/org/apache/openejb/maven/plugin/StartTomEEMojo.java (original)
+++ openejb/trunk/maven-plugins/tomee-maven-plugin/src/main/java/org/apache/openejb/maven/plugin/StartTomEEMojo.java Thu Jan 12 09:32:09 2012
@@ -24,6 +24,6 @@ package org.apache.openejb.maven.plugin;
 public class StartTomEEMojo extends AbstractTomEEMojo {
     @Override
     public String getCmd() {
-        return "startd";
+        return "start";
     }
 }

Modified: openejb/trunk/maven-plugins/tomee-maven-plugin/src/main/java/org/apache/openejb/maven/plugin/StopTomEEMojo.java
URL: http://svn.apache.org/viewvc/openejb/trunk/maven-plugins/tomee-maven-plugin/src/main/java/org/apache/openejb/maven/plugin/StopTomEEMojo.java?rev=1230451&r1=1230450&r2=1230451&view=diff
==============================================================================
--- openejb/trunk/maven-plugins/tomee-maven-plugin/src/main/java/org/apache/openejb/maven/plugin/StopTomEEMojo.java (original)
+++ openejb/trunk/maven-plugins/tomee-maven-plugin/src/main/java/org/apache/openejb/maven/plugin/StopTomEEMojo.java Thu Jan 12 09:32:09 2012
@@ -24,6 +24,6 @@ package org.apache.openejb.maven.plugin;
 public class StopTomEEMojo extends AbstractTomEEMojo {
     @Override
     public String getCmd() {
-        return "stopd";
+        return "stop";
     }
 }