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