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/11/02 17:34:51 UTC

svn commit: r1405038 - in /openejb/trunk/openejb: container/openejb-core/src/main/java/org/apache/openejb/config/ maven/tomee-maven-plugin/src/main/java/org/apache/openejb/maven/plugin/

Author: rmannibucau
Date: Fri Nov  2 16:34:50 2012
New Revision: 1405038

URL: http://svn.apache.org/viewvc?rev=1405038&view=rev
Log:
updating tomee maven plugin to use remoteserver properly

Modified:
    openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/RemoteServer.java
    openejb/trunk/openejb/maven/tomee-maven-plugin/src/main/java/org/apache/openejb/maven/plugin/AbstractTomEEMojo.java
    openejb/trunk/openejb/maven/tomee-maven-plugin/src/main/java/org/apache/openejb/maven/plugin/StopTomEEMojo.java

Modified: openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/RemoteServer.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/RemoteServer.java?rev=1405038&r1=1405037&r2=1405038&view=diff
==============================================================================
--- openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/RemoteServer.java (original)
+++ openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/RemoteServer.java Fri Nov  2 16:34:50 2012
@@ -26,7 +26,12 @@ import java.io.OutputStream;
 import java.lang.reflect.Field;
 import java.net.InetSocketAddress;
 import java.net.Socket;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Properties;
 
 /**
  * @version $Rev$ $Date$
@@ -423,18 +428,22 @@ public class RemoteServer {
     public void stop() {
         if (!serverHasAlreadyBeenStarted) {
             try {
-                shutdown();
-
-                // check tomcat was effectively shutted down
-                // we can have some concurrent shutdown commands (catalina shutdown hook for instance)
-                // so we can have to wait here since it is important to be synchronous in this method
-                waitForServerShutdown();
+                forceStop();
             } catch (Exception e) {
                 e.printStackTrace(System.err);
             }
         }
     }
 
+    public void forceStop() throws Exception {
+        shutdown();
+
+        // check tomcat was effectively shutted down
+        // we can have some concurrent shutdown commands (catalina shutdown hook for instance)
+        // so we can have to wait here since it is important to be synchronous in this method
+        waitForServerShutdown();
+    }
+
     private void waitForServerShutdown() throws InterruptedException {
         if (verbose) {
             System.out.print("Waiting for TomEE shutdown.");

Modified: openejb/trunk/openejb/maven/tomee-maven-plugin/src/main/java/org/apache/openejb/maven/plugin/AbstractTomEEMojo.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/maven/tomee-maven-plugin/src/main/java/org/apache/openejb/maven/plugin/AbstractTomEEMojo.java?rev=1405038&r1=1405037&r2=1405038&view=diff
==============================================================================
--- openejb/trunk/openejb/maven/tomee-maven-plugin/src/main/java/org/apache/openejb/maven/plugin/AbstractTomEEMojo.java (original)
+++ openejb/trunk/openejb/maven/tomee-maven-plugin/src/main/java/org/apache/openejb/maven/plugin/AbstractTomEEMojo.java Fri Nov  2 16:34:50 2012
@@ -525,15 +525,21 @@ public abstract class AbstractTomEEMojo 
 
         System.setProperty("server.shutdown.port", Integer.toString(tomeeShutdownPort));
         final RemoteServer server = new RemoteServer(getConnectAttempts(), false);
-        if (!getNoShutdownHook()) {
-            addShutdownHooks(server);
+        addShutdownHooks(server); // some shutdown hooks are always added (see UpdatableTomEEMojo)
+
+        if (getNoShutdownHook()) {
+            Runtime.getRuntime().addShutdownHook(new Thread() {
+                @Override public void run() {
+                    server.stop();
+                }
+            });
         }
 
         getLog().info("Running '" + getClass().getSimpleName().replace("TomEEMojo", "").toLowerCase(Locale.ENGLISH)
                 + "'. Configured TomEE in plugin is " + tomeeHost + ":" + tomeeHttpPort
                 + " (plugin shutdown port is " + tomeeShutdownPort + ")");
 
-        server.start(strings, getCmd(), false);
+        serverCmd(server, strings);
 
         if (!getNoShutdownHook()) {
             try {
@@ -544,12 +550,12 @@ public abstract class AbstractTomEEMojo 
         }
     }
 
+    protected void serverCmd(final RemoteServer server, final List<String> strings) {
+        server.start(strings, getCmd(), false);
+    }
+
     protected void addShutdownHooks(final RemoteServer server) {
-        Runtime.getRuntime().addShutdownHook(new Thread() {
-            @Override public void run() {
-                server.stop();
-            }
-        });
+        // no-op
     }
 
     protected  int getConnectAttempts() {

Modified: openejb/trunk/openejb/maven/tomee-maven-plugin/src/main/java/org/apache/openejb/maven/plugin/StopTomEEMojo.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/maven/tomee-maven-plugin/src/main/java/org/apache/openejb/maven/plugin/StopTomEEMojo.java?rev=1405038&r1=1405037&r2=1405038&view=diff
==============================================================================
--- openejb/trunk/openejb/maven/tomee-maven-plugin/src/main/java/org/apache/openejb/maven/plugin/StopTomEEMojo.java (original)
+++ openejb/trunk/openejb/maven/tomee-maven-plugin/src/main/java/org/apache/openejb/maven/plugin/StopTomEEMojo.java Fri Nov  2 16:34:50 2012
@@ -21,6 +21,9 @@ import org.apache.maven.plugin.MojoExecu
 import org.apache.maven.plugin.MojoFailureException;
 import org.apache.maven.plugins.annotations.Mojo;
 import org.apache.maven.plugins.annotations.ResolutionScope;
+import org.apache.openejb.config.RemoteServer;
+
+import java.util.List;
 
 
 @Mojo(name = "stop", requiresDependencyResolution = ResolutionScope.RUNTIME_PLUS_SYSTEM)
@@ -34,4 +37,13 @@ public class StopTomEEMojo extends Abstr
     public void execute() throws MojoExecutionException, MojoFailureException {
         run(); // skip other processings which are useless for a stop
     }
+
+    @Override
+    protected void serverCmd(final RemoteServer server, final List<String> strings) {
+        try {
+            server.forceStop();
+        } catch (Exception e) {
+            getLog().error(e.getMessage(), e);
+        }
+    }
 }