You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-commits@axis.apache.org by ve...@apache.org on 2012/02/14 23:30:21 UTC

svn commit: r1244247 - in /axis/axis1/java/trunk/maven/maven-axis-server-plugin/src/main: java/org/apache/axis/maven/server/ resources/META-INF/plexus/

Author: veithen
Date: Tue Feb 14 22:30:21 2012
New Revision: 1244247

URL: http://svn.apache.org/viewvc?rev=1244247&view=rev
Log:
Some more refactorings of the maven-axis-server-plugin.

Added:
    axis/axis1/java/trunk/maven/maven-axis-server-plugin/src/main/java/org/apache/axis/maven/server/DefaultProcessManager.java
      - copied, changed from r1243252, axis/axis1/java/trunk/maven/maven-axis-server-plugin/src/main/java/org/apache/axis/maven/server/DefaultServerManager.java
    axis/axis1/java/trunk/maven/maven-axis-server-plugin/src/main/java/org/apache/axis/maven/server/ProcessManager.java
      - copied, changed from r1243252, axis/axis1/java/trunk/maven/maven-axis-server-plugin/src/main/java/org/apache/axis/maven/server/ServerManager.java
Removed:
    axis/axis1/java/trunk/maven/maven-axis-server-plugin/src/main/java/org/apache/axis/maven/server/DefaultServerManager.java
    axis/axis1/java/trunk/maven/maven-axis-server-plugin/src/main/java/org/apache/axis/maven/server/ServerManager.java
Modified:
    axis/axis1/java/trunk/maven/maven-axis-server-plugin/src/main/java/org/apache/axis/maven/server/AbstractServerMojo.java
    axis/axis1/java/trunk/maven/maven-axis-server-plugin/src/main/java/org/apache/axis/maven/server/StartServerMojo.java
    axis/axis1/java/trunk/maven/maven-axis-server-plugin/src/main/java/org/apache/axis/maven/server/StopAllMojo.java
    axis/axis1/java/trunk/maven/maven-axis-server-plugin/src/main/resources/META-INF/plexus/components.xml

Modified: axis/axis1/java/trunk/maven/maven-axis-server-plugin/src/main/java/org/apache/axis/maven/server/AbstractServerMojo.java
URL: http://svn.apache.org/viewvc/axis/axis1/java/trunk/maven/maven-axis-server-plugin/src/main/java/org/apache/axis/maven/server/AbstractServerMojo.java?rev=1244247&r1=1244246&r2=1244247&view=diff
==============================================================================
--- axis/axis1/java/trunk/maven/maven-axis-server-plugin/src/main/java/org/apache/axis/maven/server/AbstractServerMojo.java (original)
+++ axis/axis1/java/trunk/maven/maven-axis-server-plugin/src/main/java/org/apache/axis/maven/server/AbstractServerMojo.java Tue Feb 14 22:30:21 2012
@@ -33,9 +33,9 @@ public abstract class AbstractServerMojo
     /**
      * @component
      */
-    private ServerManager serverManager;
+    private ProcessManager processManager;
 
-    public ServerManager getServerManager() {
-        return serverManager;
+    public ProcessManager getProcessManager() {
+        return processManager;
     }
 }

Copied: axis/axis1/java/trunk/maven/maven-axis-server-plugin/src/main/java/org/apache/axis/maven/server/DefaultProcessManager.java (from r1243252, axis/axis1/java/trunk/maven/maven-axis-server-plugin/src/main/java/org/apache/axis/maven/server/DefaultServerManager.java)
URL: http://svn.apache.org/viewvc/axis/axis1/java/trunk/maven/maven-axis-server-plugin/src/main/java/org/apache/axis/maven/server/DefaultProcessManager.java?p2=axis/axis1/java/trunk/maven/maven-axis-server-plugin/src/main/java/org/apache/axis/maven/server/DefaultProcessManager.java&p1=axis/axis1/java/trunk/maven/maven-axis-server-plugin/src/main/java/org/apache/axis/maven/server/DefaultServerManager.java&r1=1243252&r2=1244247&rev=1244247&view=diff
==============================================================================
--- axis/axis1/java/trunk/maven/maven-axis-server-plugin/src/main/java/org/apache/axis/maven/server/DefaultServerManager.java (original)
+++ axis/axis1/java/trunk/maven/maven-axis-server-plugin/src/main/java/org/apache/axis/maven/server/DefaultProcessManager.java Tue Feb 14 22:30:21 2012
@@ -19,18 +19,15 @@
 package org.apache.axis.maven.server;
 
 import java.io.File;
-import java.net.URL;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Iterator;
 import java.util.List;
 
-import org.apache.axis.client.AdminClient;
 import org.codehaus.plexus.logging.LogEnabled;
 import org.codehaus.plexus.logging.Logger;
-import org.codehaus.plexus.util.StringUtils;
 
-public class DefaultServerManager implements ServerManager, LogEnabled {
+public class DefaultProcessManager implements ProcessManager, LogEnabled {
     private final List managedProcesses = new ArrayList();
     
     private Logger logger;
@@ -39,32 +36,15 @@ public class DefaultServerManager implem
         this.logger = logger;
     }
 
-    public void startServer(String jvm, String[] classpath, int port, String[] vmArgs, File workDir, File[] deployments, File[] undeployments, File[] jwsDirs, int timeout) throws Exception {
-        AdminClient adminClient = new AdminClient(true);
-        adminClient.setTargetEndpointAddress(new URL("http://localhost:" + port + "/axis/services/AdminService"));
-        List cmdline = new ArrayList();
-        cmdline.add(jvm);
-        cmdline.add("-cp");
-        cmdline.add(StringUtils.join(classpath, File.pathSeparator));
-        cmdline.addAll(Arrays.asList(vmArgs));
-        cmdline.add("org.apache.axis.server.standalone.StandaloneAxisServer");
-        cmdline.add("-p");
-        cmdline.add(String.valueOf(port));
-        cmdline.add("-w");
-        cmdline.add(workDir.getAbsolutePath());
-        if (jwsDirs != null && jwsDirs.length > 0) {
-            cmdline.add("-j");
-            cmdline.add(StringUtils.join(jwsDirs, File.pathSeparator));
-        }
+    public void startProcess(String description, String[] cmdline, File workDir, ProcessStartAction startAction, ProcessStopAction stopAction) throws Exception {
         if (logger.isDebugEnabled()) {
-            logger.debug("Starting process with command line: " + cmdline);
+            logger.debug("Starting process with command line: " + Arrays.asList(cmdline));
         }
-        Process process = Runtime.getRuntime().exec((String[])cmdline.toArray(new String[cmdline.size()]), null, workDir);
-        managedProcesses.add(new ManagedProcess(process, "Server on port " + port, new AxisServerStopAction(adminClient, undeployments)));
-        new Thread(new StreamPump(process.getInputStream(), System.out), "axis-server-" + port + "-stdout").start();
-        new Thread(new StreamPump(process.getErrorStream(), System.err), "axis-server-" + port + "-stderr").start();
-        
-        new AxisServerStartAction(port, adminClient, deployments, timeout).execute(logger, process);
+        Process process = Runtime.getRuntime().exec(cmdline, null, workDir);
+        managedProcesses.add(new ManagedProcess(process, description, stopAction));
+        new Thread(new StreamPump(process.getInputStream(), System.out)).start();
+        new Thread(new StreamPump(process.getErrorStream(), System.err)).start();
+        startAction.execute(logger, process);
     }
     
     public void stopAll() throws Exception {

Copied: axis/axis1/java/trunk/maven/maven-axis-server-plugin/src/main/java/org/apache/axis/maven/server/ProcessManager.java (from r1243252, axis/axis1/java/trunk/maven/maven-axis-server-plugin/src/main/java/org/apache/axis/maven/server/ServerManager.java)
URL: http://svn.apache.org/viewvc/axis/axis1/java/trunk/maven/maven-axis-server-plugin/src/main/java/org/apache/axis/maven/server/ProcessManager.java?p2=axis/axis1/java/trunk/maven/maven-axis-server-plugin/src/main/java/org/apache/axis/maven/server/ProcessManager.java&p1=axis/axis1/java/trunk/maven/maven-axis-server-plugin/src/main/java/org/apache/axis/maven/server/ServerManager.java&r1=1243252&r2=1244247&rev=1244247&view=diff
==============================================================================
--- axis/axis1/java/trunk/maven/maven-axis-server-plugin/src/main/java/org/apache/axis/maven/server/ServerManager.java (original)
+++ axis/axis1/java/trunk/maven/maven-axis-server-plugin/src/main/java/org/apache/axis/maven/server/ProcessManager.java Tue Feb 14 22:30:21 2012
@@ -20,7 +20,7 @@ package org.apache.axis.maven.server;
 
 import java.io.File;
 
-public interface ServerManager {
-    void startServer(String jvm, String[] classpath, int port, String[] vmArgs, File workDir, File[] deployments, File[] undeployments, File[] jwsDirs, int timeout) throws Exception;
+public interface ProcessManager {
+    void startProcess(String description, String[] cmdline, File workDir, ProcessStartAction startAction, ProcessStopAction stopAction) throws Exception;
     void stopAll() throws Exception;
 }

Modified: axis/axis1/java/trunk/maven/maven-axis-server-plugin/src/main/java/org/apache/axis/maven/server/StartServerMojo.java
URL: http://svn.apache.org/viewvc/axis/axis1/java/trunk/maven/maven-axis-server-plugin/src/main/java/org/apache/axis/maven/server/StartServerMojo.java?rev=1244247&r1=1244246&r2=1244247&view=diff
==============================================================================
--- axis/axis1/java/trunk/maven/maven-axis-server-plugin/src/main/java/org/apache/axis/maven/server/StartServerMojo.java (original)
+++ axis/axis1/java/trunk/maven/maven-axis-server-plugin/src/main/java/org/apache/axis/maven/server/StartServerMojo.java Tue Feb 14 22:30:21 2012
@@ -20,6 +20,7 @@ package org.apache.axis.maven.server;
 
 import java.io.File;
 import java.io.IOException;
+import java.net.URL;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.List;
@@ -28,6 +29,7 @@ import javax.xml.parsers.DocumentBuilder
 import javax.xml.parsers.DocumentBuilderFactory;
 import javax.xml.parsers.ParserConfigurationException;
 
+import org.apache.axis.client.AdminClient;
 import org.apache.axis.deployment.wsdd.WSDDConstants;
 import org.apache.maven.artifact.DependencyResolutionRequiredException;
 import org.apache.maven.execution.MavenSession;
@@ -39,6 +41,7 @@ import org.apache.maven.toolchain.Toolch
 import org.apache.maven.toolchain.ToolchainManager;
 import org.codehaus.plexus.util.DirectoryScanner;
 import org.codehaus.plexus.util.FileUtils;
+import org.codehaus.plexus.util.StringUtils;
 import org.w3c.dom.Element;
 
 /**
@@ -159,26 +162,26 @@ public class StartServerMojo extends Abs
         Log log = getLog();
         
         // Locate java executable to use
-        String executable;
+        String jvm;
         Toolchain tc = toolchainManager.getToolchainFromBuildContext("jdk", session);
         if (tc != null) {
-            executable = tc.findTool("java");
+            jvm = tc.findTool("java");
         } else {
-            executable = System.getProperty("java.home") + File.separator + "bin" + File.separator + "java";
+            jvm = System.getProperty("java.home") + File.separator + "bin" + File.separator + "java";
         }
         if (log.isDebugEnabled()) {
-            log.debug("Java executable: " + executable);
+            log.debug("Java executable: " + jvm);
         }
         
         // Get class path
-        List classPathElements;
+        List classpath;
         try {
-            classPathElements = project.getTestClasspathElements();
+            classpath = project.getTestClasspathElements();
         } catch (DependencyResolutionRequiredException ex) {
             throw new MojoExecutionException("Unexpected exception", ex);
         }
         if (log.isDebugEnabled()) {
-            log.debug("Class path elements: " + classPathElements);
+            log.debug("Class path elements: " + classpath);
         }
         
         // Select WSDD files
@@ -271,16 +274,32 @@ public class StartServerMojo extends Abs
         }
         
         // Start the server
+        List cmdline = new ArrayList();
+        cmdline.add(jvm);
+        cmdline.add("-cp");
+        cmdline.add(StringUtils.join(classpath.iterator(), File.pathSeparator));
+        cmdline.addAll(vmArgs);
+        cmdline.add("org.apache.axis.server.standalone.StandaloneAxisServer");
+        cmdline.add("-p");
+        cmdline.add(String.valueOf(port));
+        cmdline.add("-w");
+        cmdline.add(workDir.getAbsolutePath());
+        if (jwsDirs != null && jwsDirs.length > 0) {
+            cmdline.add("-j");
+            cmdline.add(StringUtils.join(jwsDirs, File.pathSeparator));
+        }
         try {
-            getServerManager().startServer(executable,
-                    (String[])classPathElements.toArray(new String[classPathElements.size()]),
-                    port,
-                    (String[])vmArgs.toArray(new String[vmArgs.size()]),
+            AdminClient adminClient = new AdminClient(true);
+            adminClient.setTargetEndpointAddress(new URL("http://localhost:" + port + "/axis/services/AdminService"));
+            getProcessManager().startProcess(
+                    "Server on port " + port,
+                    (String[])cmdline.toArray(new String[cmdline.size()]),
                     workDir,
-                    (File[])deployments.toArray(new File[deployments.size()]),
-                    (File[])undeployments.toArray(new File[undeployments.size()]),
-                    jwsDirs,
-                    debug || foreground ? Integer.MAX_VALUE : 20000);
+                    new AxisServerStartAction(port, adminClient,
+                            (File[])deployments.toArray(new File[deployments.size()]),
+                            debug || foreground ? Integer.MAX_VALUE : 20000),
+                    new AxisServerStopAction(adminClient,
+                            (File[])undeployments.toArray(new File[undeployments.size()])));
         } catch (Exception ex) {
             throw new MojoFailureException("Failed to start server", ex);
         }

Modified: axis/axis1/java/trunk/maven/maven-axis-server-plugin/src/main/java/org/apache/axis/maven/server/StopAllMojo.java
URL: http://svn.apache.org/viewvc/axis/axis1/java/trunk/maven/maven-axis-server-plugin/src/main/java/org/apache/axis/maven/server/StopAllMojo.java?rev=1244247&r1=1244246&r2=1244247&view=diff
==============================================================================
--- axis/axis1/java/trunk/maven/maven-axis-server-plugin/src/main/java/org/apache/axis/maven/server/StopAllMojo.java (original)
+++ axis/axis1/java/trunk/maven/maven-axis-server-plugin/src/main/java/org/apache/axis/maven/server/StopAllMojo.java Tue Feb 14 22:30:21 2012
@@ -30,7 +30,7 @@ import org.apache.maven.plugin.MojoFailu
 public class StopAllMojo extends AbstractServerMojo {
     public void execute() throws MojoExecutionException, MojoFailureException {
         try {
-            getServerManager().stopAll();
+            getProcessManager().stopAll();
         } catch (Exception ex) {
             throw new MojoFailureException("Errors occurred while attempting to stop processes", ex);
         }

Modified: axis/axis1/java/trunk/maven/maven-axis-server-plugin/src/main/resources/META-INF/plexus/components.xml
URL: http://svn.apache.org/viewvc/axis/axis1/java/trunk/maven/maven-axis-server-plugin/src/main/resources/META-INF/plexus/components.xml?rev=1244247&r1=1244246&r2=1244247&view=diff
==============================================================================
--- axis/axis1/java/trunk/maven/maven-axis-server-plugin/src/main/resources/META-INF/plexus/components.xml (original)
+++ axis/axis1/java/trunk/maven/maven-axis-server-plugin/src/main/resources/META-INF/plexus/components.xml Tue Feb 14 22:30:21 2012
@@ -20,8 +20,8 @@
 <component-set>
     <components>
         <component>
-            <role>org.apache.axis.maven.server.ServerManager</role>
-            <implementation>org.apache.axis.maven.server.DefaultServerManager</implementation>
+            <role>org.apache.axis.maven.server.ProcessManager</role>
+            <implementation>org.apache.axis.maven.server.DefaultProcessManager</implementation>
         </component>
     </components>
 </component-set>
\ No newline at end of file