Author: veithen Date: Tue Dec 11 17:26:34 2012 New Revision: 1420298 URL: http://svn.apache.org/viewvc?rev=1420298&view=rev Log: * Added a Daemon implementation for the Axis stand-alone server. * Simplified the maven-axis-server-plugin: now all processes controlled by the plug-in are Daemon implementations.
Added: axis/axis1/java/trunk/axis-standalone-server/src/main/java/org/apache/axis/server/standalone/ServerException.java (with props) axis/axis1/java/trunk/axis-standalone-server/src/main/java/org/apache/axis/server/standalone/cli/ axis/axis1/java/trunk/axis-standalone-server/src/main/java/org/apache/axis/server/standalone/cli/Configurator.java (with props) axis/axis1/java/trunk/axis-standalone-server/src/main/java/org/apache/axis/server/standalone/cli/ConfiguratorException.java (with props) axis/axis1/java/trunk/axis-standalone-server/src/main/java/org/apache/axis/server/standalone/cli/Main.java (with props) axis/axis1/java/trunk/axis-standalone-server/src/main/java/org/apache/axis/server/standalone/daemon/ axis/axis1/java/trunk/axis-standalone-server/src/main/java/org/apache/axis/server/standalone/daemon/AxisServerDaemon.java (with props) axis/axis1/java/trunk/maven/maven-axis-server-plugin/src/main/java/org/apache/axis/tools/maven/server/AbstractDaemonControlMojo.java - copied, changed from r1419001, axis/axis1/java/trunk/maven/maven-axis-server-plugin/src/main/java/org/apache/axis/tools/maven/server/AbstractServerMojo.java axis/axis1/java/trunk/maven/maven-axis-server-plugin/src/main/java/org/apache/axis/tools/maven/server/AbstractStartDaemonMojo.java - copied, changed from r1419166, axis/axis1/java/trunk/maven/maven-axis-server-plugin/src/main/java/org/apache/axis/tools/maven/server/AbstractStartProcessMojo.java axis/axis1/java/trunk/maven/maven-axis-server-plugin/src/main/java/org/apache/axis/tools/maven/server/DaemonManager.java - copied, changed from r1419001, axis/axis1/java/trunk/maven/maven-axis-server-plugin/src/main/java/org/apache/axis/tools/maven/server/ProcessManager.java axis/axis1/java/trunk/maven/maven-axis-server-plugin/src/main/java/org/apache/axis/tools/maven/server/DefaultDaemonManager.java - copied, changed from r1419001, axis/axis1/java/trunk/maven/maven-axis-server-plugin/src/main/java/org/apache/axis/tools/maven/server/DefaultProcessManager.java axis/axis1/java/trunk/maven/maven-axis-server-plugin/src/main/java/org/apache/axis/tools/maven/server/RemoteDaemon.java - copied, changed from r1419001, axis/axis1/java/trunk/maven/maven-axis-server-plugin/src/main/java/org/apache/axis/tools/maven/server/ManagedProcess.java Removed: axis/axis1/java/trunk/maven/maven-axis-server-plugin/src/main/java/org/apache/axis/tools/maven/server/AbstractServerMojo.java axis/axis1/java/trunk/maven/maven-axis-server-plugin/src/main/java/org/apache/axis/tools/maven/server/AbstractStartProcessMojo.java axis/axis1/java/trunk/maven/maven-axis-server-plugin/src/main/java/org/apache/axis/tools/maven/server/AxisServerProcessControl.java axis/axis1/java/trunk/maven/maven-axis-server-plugin/src/main/java/org/apache/axis/tools/maven/server/DaemonProcessControl.java axis/axis1/java/trunk/maven/maven-axis-server-plugin/src/main/java/org/apache/axis/tools/maven/server/DefaultProcessManager.java axis/axis1/java/trunk/maven/maven-axis-server-plugin/src/main/java/org/apache/axis/tools/maven/server/ManagedProcess.java axis/axis1/java/trunk/maven/maven-axis-server-plugin/src/main/java/org/apache/axis/tools/maven/server/ProcessControl.java axis/axis1/java/trunk/maven/maven-axis-server-plugin/src/main/java/org/apache/axis/tools/maven/server/ProcessManager.java Modified: axis/axis1/java/trunk/axis-standalone-server/pom.xml axis/axis1/java/trunk/axis-standalone-server/src/main/java/org/apache/axis/server/standalone/LimitSessionManager.java axis/axis1/java/trunk/axis-standalone-server/src/main/java/org/apache/axis/server/standalone/QuitHandler.java axis/axis1/java/trunk/axis-standalone-server/src/main/java/org/apache/axis/server/standalone/QuitListener.java axis/axis1/java/trunk/axis-standalone-server/src/main/java/org/apache/axis/server/standalone/StandaloneAxisServer.java axis/axis1/java/trunk/axis-standalone-server/src/main/java/org/apache/axis/server/standalone/StandaloneAxisServlet.java axis/axis1/java/trunk/distribution/pom.xml axis/axis1/java/trunk/maven/maven-axis-server-plugin/pom.xml axis/axis1/java/trunk/maven/maven-axis-server-plugin/src/main/java/org/apache/axis/tools/maven/server/StartDaemonMojo.java axis/axis1/java/trunk/maven/maven-axis-server-plugin/src/main/java/org/apache/axis/tools/maven/server/StartServerMojo.java axis/axis1/java/trunk/maven/maven-axis-server-plugin/src/main/java/org/apache/axis/tools/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/axis-standalone-server/pom.xml URL: http://svn.apache.org/viewvc/axis/axis1/java/trunk/axis-standalone-server/pom.xml?rev=1420298&r1=1420297&r2=1420298&view=diff ============================================================================== --- axis/axis1/java/trunk/axis-standalone-server/pom.xml (original) +++ axis/axis1/java/trunk/axis-standalone-server/pom.xml Tue Dec 11 17:26:34 2012 @@ -49,12 +49,31 @@ <version>1.2</version> </dependency> <dependency> + <groupId>commons-daemon</groupId> + <artifactId>commons-daemon</artifactId> + </dependency> + <dependency> <!-- Jetty 6.1 is the last version with support for Java 1.4 --> <groupId>org.mortbay.jetty</groupId> <artifactId>jetty</artifactId> <version>6.1.26</version> </dependency> </dependencies> + <build> + <plugins> + <plugin> + <artifactId>maven-jar-plugin</artifactId> + <configuration> + <archive> + <manifest> + <addClasspath>true</addClasspath> + <mainClass>org.apache.axis.server.standalone.cli.Main</mainClass> + </manifest> + </archive> + </configuration> + </plugin> + </plugins> + </build> <reporting> <plugins> <plugin> Modified: axis/axis1/java/trunk/axis-standalone-server/src/main/java/org/apache/axis/server/standalone/LimitSessionManager.java URL: http://svn.apache.org/viewvc/axis/axis1/java/trunk/axis-standalone-server/src/main/java/org/apache/axis/server/standalone/LimitSessionManager.java?rev=1420298&r1=1420297&r2=1420298&view=diff ============================================================================== --- axis/axis1/java/trunk/axis-standalone-server/src/main/java/org/apache/axis/server/standalone/LimitSessionManager.java (original) +++ axis/axis1/java/trunk/axis-standalone-server/src/main/java/org/apache/axis/server/standalone/LimitSessionManager.java Tue Dec 11 17:26:34 2012 @@ -32,7 +32,7 @@ import org.mortbay.jetty.servlet.HashSes * * @author Andreas Veithen */ -public class LimitSessionManager extends HashSessionManager { +final class LimitSessionManager extends HashSessionManager { // This is only needed to get access to some protected methods/fields. class Session extends HashSessionManager.Session { private static final long serialVersionUID = -6648322281268846583L; @@ -54,7 +54,7 @@ public class LimitSessionManager extends private Timer timer; private TimerTask task; - public LimitSessionManager(int maxSessions) { + LimitSessionManager(int maxSessions) { this.maxSessions = maxSessions; } Modified: axis/axis1/java/trunk/axis-standalone-server/src/main/java/org/apache/axis/server/standalone/QuitHandler.java URL: http://svn.apache.org/viewvc/axis/axis1/java/trunk/axis-standalone-server/src/main/java/org/apache/axis/server/standalone/QuitHandler.java?rev=1420298&r1=1420297&r2=1420298&view=diff ============================================================================== --- axis/axis1/java/trunk/axis-standalone-server/src/main/java/org/apache/axis/server/standalone/QuitHandler.java (original) +++ axis/axis1/java/trunk/axis-standalone-server/src/main/java/org/apache/axis/server/standalone/QuitHandler.java Tue Dec 11 17:26:34 2012 @@ -29,10 +29,13 @@ import org.apache.axis.utils.Admin; /** * Handler that looks for the {@link MessageContext#QUIT_REQUESTED} flag set by {@link Admin} and * initiates the shutdown procedure if the flag is set. + * <p> + * Note: this is an internal class that should not be used by application code. * * @author Andreas Veithen */ -public class QuitHandler extends BasicHandler { +// Must be public so that the Axis core can load it +public final class QuitHandler extends BasicHandler { public static final String QUIT_LISTENER = QuitListener.class.getName(); public void invoke(MessageContext msgContext) throws AxisFault { Modified: axis/axis1/java/trunk/axis-standalone-server/src/main/java/org/apache/axis/server/standalone/QuitListener.java URL: http://svn.apache.org/viewvc/axis/axis1/java/trunk/axis-standalone-server/src/main/java/org/apache/axis/server/standalone/QuitListener.java?rev=1420298&r1=1420297&r2=1420298&view=diff ============================================================================== --- axis/axis1/java/trunk/axis-standalone-server/src/main/java/org/apache/axis/server/standalone/QuitListener.java (original) +++ axis/axis1/java/trunk/axis-standalone-server/src/main/java/org/apache/axis/server/standalone/QuitListener.java Tue Dec 11 17:26:34 2012 @@ -23,7 +23,7 @@ package org.apache.axis.server.standalon * * @author Andreas Veithen */ -class QuitListener { +final class QuitListener { private boolean quit; synchronized void requestQuit() { Added: axis/axis1/java/trunk/axis-standalone-server/src/main/java/org/apache/axis/server/standalone/ServerException.java URL: http://svn.apache.org/viewvc/axis/axis1/java/trunk/axis-standalone-server/src/main/java/org/apache/axis/server/standalone/ServerException.java?rev=1420298&view=auto ============================================================================== --- axis/axis1/java/trunk/axis-standalone-server/src/main/java/org/apache/axis/server/standalone/ServerException.java (added) +++ axis/axis1/java/trunk/axis-standalone-server/src/main/java/org/apache/axis/server/standalone/ServerException.java Tue Dec 11 17:26:34 2012 @@ -0,0 +1,27 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.apache.axis.server.standalone; + +public class ServerException extends Exception { + private static final long serialVersionUID = 2996112474203025829L; + + public ServerException(Throwable cause) { + super(cause); + } +} Propchange: axis/axis1/java/trunk/axis-standalone-server/src/main/java/org/apache/axis/server/standalone/ServerException.java ------------------------------------------------------------------------------ svn:eol-style = native Modified: axis/axis1/java/trunk/axis-standalone-server/src/main/java/org/apache/axis/server/standalone/StandaloneAxisServer.java URL: http://svn.apache.org/viewvc/axis/axis1/java/trunk/axis-standalone-server/src/main/java/org/apache/axis/server/standalone/StandaloneAxisServer.java?rev=1420298&r1=1420297&r2=1420298&view=diff ============================================================================== --- axis/axis1/java/trunk/axis-standalone-server/src/main/java/org/apache/axis/server/standalone/StandaloneAxisServer.java (original) +++ axis/axis1/java/trunk/axis-standalone-server/src/main/java/org/apache/axis/server/standalone/StandaloneAxisServer.java Tue Dec 11 17:26:34 2012 @@ -19,16 +19,10 @@ package org.apache.axis.server.standalone; import java.io.File; +import java.io.IOException; import java.util.ArrayList; import java.util.List; -import org.apache.commons.cli.CommandLine; -import org.apache.commons.cli.CommandLineParser; -import org.apache.commons.cli.GnuParser; -import org.apache.commons.cli.HelpFormatter; -import org.apache.commons.cli.Option; -import org.apache.commons.cli.Options; -import org.apache.commons.cli.ParseException; import org.mortbay.jetty.Server; import org.mortbay.jetty.SessionManager; import org.mortbay.jetty.servlet.Context; @@ -45,82 +39,71 @@ import org.mortbay.resource.ResourceColl * * @author Andreas Veithen */ -public class StandaloneAxisServer { - public static void main(String[] args) throws Exception { - Options options = new Options(); - - { - Option option = new Option("p", true, "the HTTP port"); - option.setArgName("port"); - option.setRequired(true); - options.addOption(option); - } - - { - Option option = new Option("w", true, "the work directory"); - option.setArgName("dir"); - option.setRequired(true); - options.addOption(option); - } - - { - Option option = new Option("j", true, "a list of directories to look up JWS files from"); - option.setArgName("dirs"); - options.addOption(option); - } - - { - Option option = new Option("m", true, "the maximum number of concurrently active sessions"); - option.setArgName("count"); - options.addOption(option); - } - - if (args.length == 0) { - HelpFormatter formatter = new HelpFormatter(); - formatter.printHelp(StandaloneAxisServer.class.getName(), options); - return; - } - - CommandLineParser parser = new GnuParser(); - CommandLine cmdLine; - try { - cmdLine = parser.parse(options, args); - } catch (ParseException ex) { - System.err.println(ex.getMessage()); - System.exit(1); - return; // Make compiler happy - } - - int port = Integer.parseInt(cmdLine.getOptionValue("p")); - - int maxSessions; - if (cmdLine.hasOption("m")) { - maxSessions = Integer.parseInt(cmdLine.getOptionValue("m")); - } else { - maxSessions = -1; - } - +public final class StandaloneAxisServer { + private int port; + private File workDir; + private int maxSessions = -1; + private File[] jwsDirs; + + private Server server; + private QuitListener quitListener; + + public int getPort() { + return port; + } + + public void setPort(int port) { + this.port = port; + } + + public File getWorkDir() { + return workDir; + } + + public void setWorkDir(File workDir) { + this.workDir = workDir; + } + + public int getMaxSessions() { + return maxSessions; + } + + public void setMaxSessions(int maxSessions) { + this.maxSessions = maxSessions; + } + + public File[] getJwsDirs() { + return jwsDirs == null ? null : (File[])jwsDirs.clone(); + } + + public void setJwsDirs(File[] jwsDirs) { + this.jwsDirs = jwsDirs == null ? null : (File[])jwsDirs.clone(); + } + + public void init() throws ServerException { StandaloneAxisServlet servlet = new StandaloneAxisServlet(); List resources = new ArrayList(); // Add the work dir as a resource so that Axis can create its server-config.wsdd file there - File workDir = new File(cmdLine.getOptionValue("w")); new File(workDir, "WEB-INF").mkdir(); - resources.add(Resource.newResource(workDir.getAbsolutePath())); + try { + resources.add(Resource.newResource(workDir.getAbsolutePath())); + } catch (IOException ex) { + throw new ServerException(ex); + } - boolean enableJWS; - if (cmdLine.hasOption("j")) { - String[] jwsDirs = cmdLine.getOptionValue("j").split(File.pathSeparator); + if (jwsDirs != null) { for (int i=0; i<jwsDirs.length; i++) { - resources.add(Resource.newResource(jwsDirs[i])); + try { + resources.add(Resource.newResource(jwsDirs[i].getAbsolutePath())); + } catch (IOException ex) { + throw new ServerException(ex); + } } - enableJWS = true; - } else { - enableJWS = false; } - Server server = new Server(port); + server = new Server(port); server.setGracefulShutdown(1000); Context context = new Context(server, "/axis"); context.setBaseResource(new ResourceCollection((Resource[])resources.toArray(new Resource[resources.size()]))); @@ -131,7 +114,7 @@ public class StandaloneAxisServer { sessionManager = new LimitSessionManager(maxSessions); } context.setSessionHandler(new SessionHandler(sessionManager)); - QuitListener quitListener = new QuitListener(); + quitListener = new QuitListener(); context.setAttribute(QuitHandler.QUIT_LISTENER, quitListener); ServletHandler servletHandler = context.getServletHandler(); ServletHolder axisServletHolder = new ServletHolder(servlet); @@ -149,18 +132,31 @@ public class StandaloneAxisServer { mapping.setPathSpec("/servlet/AxisServlet"); servletHandler.addServletMapping(mapping); } - if (enableJWS) { + if (jwsDirs != null && jwsDirs.length > 0) { ServletMapping mapping = new ServletMapping(); mapping.setServletName("AxisServlet"); mapping.setPathSpec("*.jws"); servletHandler.addServletMapping(mapping); } - server.start(); + } + + public void start() throws ServerException { + try { + server.start(); + } catch (Exception ex) { + throw new ServerException(ex); + } + } + + public void awaitQuitRequest() throws InterruptedException { + quitListener.awaitQuitRequest(); + } + + public void stop() throws ServerException { try { - quitListener.awaitQuitRequest(); - } catch (InterruptedException ex) { - // Just continue and stop the server + server.stop(); + } catch (Exception ex) { + throw new ServerException(ex); } - server.stop(); } } Modified: axis/axis1/java/trunk/axis-standalone-server/src/main/java/org/apache/axis/server/standalone/StandaloneAxisServlet.java URL: http://svn.apache.org/viewvc/axis/axis1/java/trunk/axis-standalone-server/src/main/java/org/apache/axis/server/standalone/StandaloneAxisServlet.java?rev=1420298&r1=1420297&r2=1420298&view=diff ============================================================================== --- axis/axis1/java/trunk/axis-standalone-server/src/main/java/org/apache/axis/server/standalone/StandaloneAxisServlet.java (original) +++ axis/axis1/java/trunk/axis-standalone-server/src/main/java/org/apache/axis/server/standalone/StandaloneAxisServlet.java Tue Dec 11 17:26:34 2012 @@ -37,7 +37,7 @@ import org.apache.axis.utils.XMLUtils; * * @author Andreas Veithen */ -public class StandaloneAxisServlet extends AxisServlet { +final class StandaloneAxisServlet extends AxisServlet { private final List/*<URL>*/ wsddUrls; public StandaloneAxisServlet() { Added: axis/axis1/java/trunk/axis-standalone-server/src/main/java/org/apache/axis/server/standalone/cli/Configurator.java URL: http://svn.apache.org/viewvc/axis/axis1/java/trunk/axis-standalone-server/src/main/java/org/apache/axis/server/standalone/cli/Configurator.java?rev=1420298&view=auto ============================================================================== --- axis/axis1/java/trunk/axis-standalone-server/src/main/java/org/apache/axis/server/standalone/cli/Configurator.java (added) +++ axis/axis1/java/trunk/axis-standalone-server/src/main/java/org/apache/axis/server/standalone/cli/Configurator.java Tue Dec 11 17:26:34 2012 @@ -0,0 +1,98 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.apache.axis.server.standalone.cli; + +import java.io.File; +import java.io.PrintWriter; + +import org.apache.axis.server.standalone.StandaloneAxisServer; +import org.apache.commons.cli.CommandLine; +import org.apache.commons.cli.CommandLineParser; +import org.apache.commons.cli.GnuParser; +import org.apache.commons.cli.HelpFormatter; +import org.apache.commons.cli.Option; +import org.apache.commons.cli.Options; +import org.apache.commons.cli.ParseException; + +public final class Configurator { + public static final Configurator INSTANCE = new Configurator(); + + private final Options options; + + private Configurator() { + options = new Options(); + + { + Option option = new Option("p", true, "the HTTP port"); + option.setArgName("port"); + option.setRequired(true); + options.addOption(option); + } + + { + Option option = new Option("w", true, "the work directory"); + option.setArgName("dir"); + option.setRequired(true); + options.addOption(option); + } + + { + Option option = new Option("j", true, "a list of directories to look up JWS files from"); + option.setArgName("dirs"); + options.addOption(option); + } + + { + Option option = new Option("m", true, "the maximum number of concurrently active sessions"); + option.setArgName("count"); + options.addOption(option); + } + } + + public void printHelp(PrintWriter pw, String app) { + HelpFormatter formatter = new HelpFormatter(); + formatter.printUsage(pw, 100, app, options); + formatter.printOptions(pw, 100, options, 1, 2); + pw.flush(); + } + + public void configure(StandaloneAxisServer server, String[] args) throws ConfiguratorException { + CommandLineParser parser = new GnuParser(); + CommandLine cmdLine; + try { + cmdLine = parser.parse(options, args); + } catch (ParseException ex) { + throw new ConfiguratorException(ex.getMessage()); + } + + server.setPort(Integer.parseInt(cmdLine.getOptionValue("p"))); + server.setWorkDir(new File(cmdLine.getOptionValue("w"))); + if (cmdLine.hasOption("m")) { + server.setMaxSessions(Integer.parseInt(cmdLine.getOptionValue("m"))); + } + if (cmdLine.hasOption("j")) { + String[] jwsDirStrings = cmdLine.getOptionValue("j").split(File.pathSeparator); + File[] jwsDirs = new File[jwsDirStrings.length]; + for (int i=0; i<jwsDirStrings.length; i++) { + jwsDirs[i] = new File(jwsDirStrings[i]); + } + server.setJwsDirs(jwsDirs); + } + } +} Propchange: axis/axis1/java/trunk/axis-standalone-server/src/main/java/org/apache/axis/server/standalone/cli/Configurator.java ------------------------------------------------------------------------------ svn:eol-style = native Added: axis/axis1/java/trunk/axis-standalone-server/src/main/java/org/apache/axis/server/standalone/cli/ConfiguratorException.java URL: http://svn.apache.org/viewvc/axis/axis1/java/trunk/axis-standalone-server/src/main/java/org/apache/axis/server/standalone/cli/ConfiguratorException.java?rev=1420298&view=auto ============================================================================== --- axis/axis1/java/trunk/axis-standalone-server/src/main/java/org/apache/axis/server/standalone/cli/ConfiguratorException.java (added) +++ axis/axis1/java/trunk/axis-standalone-server/src/main/java/org/apache/axis/server/standalone/cli/ConfiguratorException.java Tue Dec 11 17:26:34 2012 @@ -0,0 +1,31 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.apache.axis.server.standalone.cli; + +public class ConfiguratorException extends Exception { + private static final long serialVersionUID = 664045878448812254L; + + public ConfiguratorException(Throwable cause) { + super(cause); + } + + public ConfiguratorException(String message) { + super(message); + } +} Propchange: axis/axis1/java/trunk/axis-standalone-server/src/main/java/org/apache/axis/server/standalone/cli/ConfiguratorException.java ------------------------------------------------------------------------------ svn:eol-style = native Added: axis/axis1/java/trunk/axis-standalone-server/src/main/java/org/apache/axis/server/standalone/cli/Main.java URL: http://svn.apache.org/viewvc/axis/axis1/java/trunk/axis-standalone-server/src/main/java/org/apache/axis/server/standalone/cli/Main.java?rev=1420298&view=auto ============================================================================== --- axis/axis1/java/trunk/axis-standalone-server/src/main/java/org/apache/axis/server/standalone/cli/Main.java (added) +++ axis/axis1/java/trunk/axis-standalone-server/src/main/java/org/apache/axis/server/standalone/cli/Main.java Tue Dec 11 17:26:34 2012 @@ -0,0 +1,62 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.apache.axis.server.standalone.cli; + +import java.io.PrintWriter; + +import org.apache.axis.server.standalone.ServerException; +import org.apache.axis.server.standalone.StandaloneAxisServer; + +/** + * Main class to run the stand-alone server from the command line. + * + * @author Andreas Veithen + */ +public class Main { + public static void main(String[] args) { + StandaloneAxisServer server = new StandaloneAxisServer(); + + if (args.length == 0) { + Configurator.INSTANCE.printHelp(new PrintWriter(System.out), Main.class.getName()); + return; + } + + try { + Configurator.INSTANCE.configure(server, args); + } catch (ConfiguratorException ex) { + System.err.println(ex.getMessage()); + System.exit(1); + return; // Make compiler happy + } + + try { + server.init(); + server.start(); + try { + server.awaitQuitRequest(); + } catch (InterruptedException ex) { + // Just continue and stop the server + } + server.stop(); + } catch (ServerException ex) { + ex.printStackTrace(); + System.exit(1); + } + } +} Propchange: axis/axis1/java/trunk/axis-standalone-server/src/main/java/org/apache/axis/server/standalone/cli/Main.java ------------------------------------------------------------------------------ svn:eol-style = native Added: axis/axis1/java/trunk/axis-standalone-server/src/main/java/org/apache/axis/server/standalone/daemon/AxisServerDaemon.java URL: http://svn.apache.org/viewvc/axis/axis1/java/trunk/axis-standalone-server/src/main/java/org/apache/axis/server/standalone/daemon/AxisServerDaemon.java?rev=1420298&view=auto ============================================================================== --- axis/axis1/java/trunk/axis-standalone-server/src/main/java/org/apache/axis/server/standalone/daemon/AxisServerDaemon.java (added) +++ axis/axis1/java/trunk/axis-standalone-server/src/main/java/org/apache/axis/server/standalone/daemon/AxisServerDaemon.java Tue Dec 11 17:26:34 2012 @@ -0,0 +1,52 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.apache.axis.server.standalone.daemon; + +import org.apache.axis.server.standalone.StandaloneAxisServer; +import org.apache.axis.server.standalone.cli.Configurator; +import org.apache.commons.daemon.Daemon; +import org.apache.commons.daemon.DaemonContext; +import org.apache.commons.daemon.DaemonInitException; + +/** + * {@link Daemon} implementation that runs the stand-alone Axis server. + * + * @author Andreas Veithen + */ +public class AxisServerDaemon implements Daemon { + private StandaloneAxisServer server; + + public void init(DaemonContext context) throws DaemonInitException, Exception { + server = new StandaloneAxisServer(); + Configurator.INSTANCE.configure(server, context.getArguments()); + server.init(); + } + + public void start() throws Exception { + server.start(); + } + + public void stop() throws Exception { + server.stop(); + } + + public void destroy() { + server = null; + } +} Propchange: axis/axis1/java/trunk/axis-standalone-server/src/main/java/org/apache/axis/server/standalone/daemon/AxisServerDaemon.java ------------------------------------------------------------------------------ svn:eol-style = native Modified: axis/axis1/java/trunk/distribution/pom.xml URL: http://svn.apache.org/viewvc/axis/axis1/java/trunk/distribution/pom.xml?rev=1420298&r1=1420297&r2=1420298&view=diff ============================================================================== --- axis/axis1/java/trunk/distribution/pom.xml (original) +++ axis/axis1/java/trunk/distribution/pom.xml Tue Dec 11 17:26:34 2012 @@ -48,6 +48,11 @@ <version>${project.version}</version> </dependency> <dependency> + <groupId>${project.groupId}</groupId> + <artifactId>axis-standalone-server</artifactId> + <version>${project.version}</version> + </dependency> + <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> </dependency> Modified: axis/axis1/java/trunk/maven/maven-axis-server-plugin/pom.xml URL: http://svn.apache.org/viewvc/axis/axis1/java/trunk/maven/maven-axis-server-plugin/pom.xml?rev=1420298&r1=1420297&r2=1420298&view=diff ============================================================================== --- axis/axis1/java/trunk/maven/maven-axis-server-plugin/pom.xml (original) +++ axis/axis1/java/trunk/maven/maven-axis-server-plugin/pom.xml Tue Dec 11 17:26:34 2012 @@ -41,10 +41,6 @@ <dependencies> <dependency> <groupId>${project.groupId}</groupId> - <artifactId>axis-rt-core</artifactId> - </dependency> - <dependency> - <groupId>${project.groupId}</groupId> <artifactId>axis-model</artifactId> <version>${project.version}</version> </dependency> Copied: axis/axis1/java/trunk/maven/maven-axis-server-plugin/src/main/java/org/apache/axis/tools/maven/server/AbstractDaemonControlMojo.java (from r1419001, axis/axis1/java/trunk/maven/maven-axis-server-plugin/src/main/java/org/apache/axis/tools/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/tools/maven/server/AbstractDaemonControlMojo.java?p2=axis/axis1/java/trunk/maven/maven-axis-server-plugin/src/main/java/org/apache/axis/tools/maven/server/AbstractDaemonControlMojo.java&p1=axis/axis1/java/trunk/maven/maven-axis-server-plugin/src/main/java/org/apache/axis/tools/maven/server/AbstractServerMojo.java&r1=1419001&r2=1420298&rev=1420298&view=diff ============================================================================== --- axis/axis1/java/trunk/maven/maven-axis-server-plugin/src/main/java/org/apache/axis/tools/maven/server/AbstractServerMojo.java (original) +++ axis/axis1/java/trunk/maven/maven-axis-server-plugin/src/main/java/org/apache/axis/tools/maven/server/AbstractDaemonControlMojo.java Tue Dec 11 17:26:34 2012 @@ -24,7 +24,7 @@ import org.apache.maven.plugin.MojoFailu import com.github.veithen.ulog.PlexusLoggerInjector; -public abstract class AbstractServerMojo extends AbstractMojo { +public abstract class AbstractDaemonControlMojo extends AbstractMojo { /** * @component */ @@ -35,7 +35,7 @@ public abstract class AbstractServerMojo /** * @component */ - private ProcessManager processManager; + private DaemonManager daemonManager; /** * Set this to <code>true</code> to skip running tests, but still compile them. This is the same @@ -45,8 +45,8 @@ public abstract class AbstractServerMojo */ private boolean skipTests; - public ProcessManager getProcessManager() { - return processManager; + public final DaemonManager getDaemonManager() { + return daemonManager; } public final void execute() throws MojoExecutionException, MojoFailureException { Copied: axis/axis1/java/trunk/maven/maven-axis-server-plugin/src/main/java/org/apache/axis/tools/maven/server/AbstractStartDaemonMojo.java (from r1419166, axis/axis1/java/trunk/maven/maven-axis-server-plugin/src/main/java/org/apache/axis/tools/maven/server/AbstractStartProcessMojo.java) URL: http://svn.apache.org/viewvc/axis/axis1/java/trunk/maven/maven-axis-server-plugin/src/main/java/org/apache/axis/tools/maven/server/AbstractStartDaemonMojo.java?p2=axis/axis1/java/trunk/maven/maven-axis-server-plugin/src/main/java/org/apache/axis/tools/maven/server/AbstractStartDaemonMojo.java&p1=axis/axis1/java/trunk/maven/maven-axis-server-plugin/src/main/java/org/apache/axis/tools/maven/server/AbstractStartProcessMojo.java&r1=1419166&r2=1420298&rev=1420298&view=diff ============================================================================== --- axis/axis1/java/trunk/maven/maven-axis-server-plugin/src/main/java/org/apache/axis/tools/maven/server/AbstractStartProcessMojo.java (original) +++ axis/axis1/java/trunk/maven/maven-axis-server-plugin/src/main/java/org/apache/axis/tools/maven/server/AbstractStartDaemonMojo.java Tue Dec 11 17:26:34 2012 @@ -19,6 +19,8 @@ package org.apache.axis.tools.maven.server; import java.io.File; +import java.io.IOException; +import java.net.ServerSocket; import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; @@ -51,7 +53,7 @@ import org.codehaus.plexus.logging.LogEn import org.codehaus.plexus.logging.Logger; import org.codehaus.plexus.util.StringUtils; -public abstract class AbstractStartProcessMojo extends AbstractServerMojo implements LogEnabled { +public abstract class AbstractStartDaemonMojo extends AbstractDaemonControlMojo implements LogEnabled { /** * The maven project. * @@ -171,14 +173,10 @@ public abstract class AbstractStartProce private Logger logger; - public void enableLogging(Logger logger) { + public final void enableLogging(Logger logger) { this.logger = logger; } - protected boolean isDebug() { - return debug; - } - protected final void addDependency(String groupId, String artifactId, String version) { additionalDependencies.add(artifactFactory.createArtifact(groupId, artifactId, version, Artifact.SCOPE_TEST, "jar")); classpath = null; @@ -244,7 +242,18 @@ public abstract class AbstractStartProce return classpath; } - protected final void startJavaProcess(String description, String mainClass, String[] args, File workDir, ProcessControl processControl) throws MojoExecutionException, MojoFailureException { + private int allocatePort() throws MojoFailureException { + try { + ServerSocket ss = new ServerSocket(0); + int port = ss.getLocalPort(); + ss.close(); + return port; + } catch (IOException ex) { + throw new MojoFailureException("Failed to allocate port number", ex); + } + } + + protected final void startDaemon(String description, String daemonClass, String[] args, File workDir) throws MojoExecutionException, MojoFailureException { Log log = getLog(); // Locate java executable to use @@ -259,6 +268,8 @@ public abstract class AbstractStartProce log.debug("Java executable: " + jvm); } + int controlPort = allocatePort(); + // Get class path List classpath; try { @@ -290,14 +301,16 @@ public abstract class AbstractStartProce cmdline.add("-cp"); cmdline.add(StringUtils.join(classpath.iterator(), File.pathSeparator)); cmdline.addAll(vmArgs); - cmdline.add(mainClass); + cmdline.add("org.apache.axis.tools.daemon.Launcher"); + cmdline.add(daemonClass); + cmdline.add(String.valueOf(controlPort)); cmdline.addAll(Arrays.asList(args)); try { - getProcessManager().startProcess( + getDaemonManager().startDaemon( description, (String[])cmdline.toArray(new String[cmdline.size()]), workDir, - processControl); + controlPort); } catch (Exception ex) { throw new MojoFailureException("Failed to start server", ex); } @@ -306,4 +319,11 @@ public abstract class AbstractStartProce private static void processVMArgs(List vmArgs, String args) { vmArgs.addAll(Arrays.asList(args.split(" "))); } + + protected final void doExecute() throws MojoExecutionException, MojoFailureException { + addAxisDependency("daemon-launcher"); + doStartDaemon(); + } + + protected abstract void doStartDaemon() throws MojoExecutionException, MojoFailureException; } Copied: axis/axis1/java/trunk/maven/maven-axis-server-plugin/src/main/java/org/apache/axis/tools/maven/server/DaemonManager.java (from r1419001, axis/axis1/java/trunk/maven/maven-axis-server-plugin/src/main/java/org/apache/axis/tools/maven/server/ProcessManager.java) URL: http://svn.apache.org/viewvc/axis/axis1/java/trunk/maven/maven-axis-server-plugin/src/main/java/org/apache/axis/tools/maven/server/DaemonManager.java?p2=axis/axis1/java/trunk/maven/maven-axis-server-plugin/src/main/java/org/apache/axis/tools/maven/server/DaemonManager.java&p1=axis/axis1/java/trunk/maven/maven-axis-server-plugin/src/main/java/org/apache/axis/tools/maven/server/ProcessManager.java&r1=1419001&r2=1420298&rev=1420298&view=diff ============================================================================== --- axis/axis1/java/trunk/maven/maven-axis-server-plugin/src/main/java/org/apache/axis/tools/maven/server/ProcessManager.java (original) +++ axis/axis1/java/trunk/maven/maven-axis-server-plugin/src/main/java/org/apache/axis/tools/maven/server/DaemonManager.java Tue Dec 11 17:26:34 2012 @@ -20,7 +20,7 @@ package org.apache.axis.tools.maven.serv import java.io.File; -public interface ProcessManager { - void startProcess(String description, String[] cmdline, File workDir, ProcessControl processControl) throws Exception; +public interface DaemonManager { + void startDaemon(String description, String[] cmdline, File workDir, int controlPort) throws Exception; void stopAll() throws Exception; } Copied: axis/axis1/java/trunk/maven/maven-axis-server-plugin/src/main/java/org/apache/axis/tools/maven/server/DefaultDaemonManager.java (from r1419001, axis/axis1/java/trunk/maven/maven-axis-server-plugin/src/main/java/org/apache/axis/tools/maven/server/DefaultProcessManager.java) URL: http://svn.apache.org/viewvc/axis/axis1/java/trunk/maven/maven-axis-server-plugin/src/main/java/org/apache/axis/tools/maven/server/DefaultDaemonManager.java?p2=axis/axis1/java/trunk/maven/maven-axis-server-plugin/src/main/java/org/apache/axis/tools/maven/server/DefaultDaemonManager.java&p1=axis/axis1/java/trunk/maven/maven-axis-server-plugin/src/main/java/org/apache/axis/tools/maven/server/DefaultProcessManager.java&r1=1419001&r2=1420298&rev=1420298&view=diff ============================================================================== --- axis/axis1/java/trunk/maven/maven-axis-server-plugin/src/main/java/org/apache/axis/tools/maven/server/DefaultProcessManager.java (original) +++ axis/axis1/java/trunk/maven/maven-axis-server-plugin/src/main/java/org/apache/axis/tools/maven/server/DefaultDaemonManager.java Tue Dec 11 17:26:34 2012 @@ -27,8 +27,8 @@ import java.util.List; import org.codehaus.plexus.logging.LogEnabled; import org.codehaus.plexus.logging.Logger; -public class DefaultProcessManager implements ProcessManager, LogEnabled { - private final List managedProcesses = new ArrayList(); +public class DefaultDaemonManager implements DaemonManager, LogEnabled { + private final List daemons = new ArrayList(); private Logger logger; @@ -36,44 +36,48 @@ public class DefaultProcessManager imple this.logger = logger; } - public void startProcess(String description, String[] cmdline, File workDir, ProcessControl processControl) throws Exception { + public void startDaemon(String description, String[] cmdline, File workDir, int controlPort) throws Exception { if (logger.isDebugEnabled()) { logger.debug("Starting process with command line: " + Arrays.asList(cmdline)); } Process process = Runtime.getRuntime().exec(cmdline, null, workDir); - managedProcesses.add(new ManagedProcess(process, description, processControl)); + RemoteDaemon daemon = new RemoteDaemon(process, description, controlPort); + daemons.add(daemon); new Thread(new StreamPump(process.getInputStream(), System.out)).start(); new Thread(new StreamPump(process.getErrorStream(), System.err)).start(); - processControl.initializeProcess(logger, process); + daemon.startDaemon(logger); } public void stopAll() throws Exception { Exception savedException = null; - for (Iterator it = managedProcesses.iterator(); it.hasNext(); ) { - ManagedProcess managedProcess = (ManagedProcess)it.next(); - int result; - logger.debug("Executing stop action"); + for (Iterator it = daemons.iterator(); it.hasNext(); ) { + RemoteDaemon daemon = (RemoteDaemon)it.next(); + if (logger.isDebugEnabled()) { + logger.debug("Stopping " + daemon.getDescription()); + } + boolean success; try { - result = managedProcess.getProcessControl().shutdownProcess(logger); + daemon.stopDaemon(logger); + success = true; } catch (Exception ex) { if (savedException == null) { savedException = ex; } - result = -1; + success = false; } if (logger.isDebugEnabled()) { - logger.debug("result = " + result); + logger.debug("success = " + success); } - if (result == ProcessControl.STOPPING) { - managedProcess.getProcess().waitFor(); + if (success) { + daemon.getProcess().waitFor(); } else { - managedProcess.getProcess().destroy(); + daemon.getProcess().destroy(); } - logger.info(managedProcess.getDescription() + " stopped"); + logger.info(daemon.getDescription() + " stopped"); } // TODO: need to clear the collection because the same ServerManager instance may be used by multiple projects in a reactor build; // note that this means that the plugin is not thread safe (i.e. doesn't support parallel builds in Maven 3) - managedProcesses.clear(); + daemons.clear(); if (savedException != null) { throw savedException; } Copied: axis/axis1/java/trunk/maven/maven-axis-server-plugin/src/main/java/org/apache/axis/tools/maven/server/RemoteDaemon.java (from r1419001, axis/axis1/java/trunk/maven/maven-axis-server-plugin/src/main/java/org/apache/axis/tools/maven/server/ManagedProcess.java) URL: http://svn.apache.org/viewvc/axis/axis1/java/trunk/maven/maven-axis-server-plugin/src/main/java/org/apache/axis/tools/maven/server/RemoteDaemon.java?p2=axis/axis1/java/trunk/maven/maven-axis-server-plugin/src/main/java/org/apache/axis/tools/maven/server/RemoteDaemon.java&p1=axis/axis1/java/trunk/maven/maven-axis-server-plugin/src/main/java/org/apache/axis/tools/maven/server/ManagedProcess.java&r1=1419001&r2=1420298&rev=1420298&view=diff ============================================================================== --- axis/axis1/java/trunk/maven/maven-axis-server-plugin/src/main/java/org/apache/axis/tools/maven/server/ManagedProcess.java (original) +++ axis/axis1/java/trunk/maven/maven-axis-server-plugin/src/main/java/org/apache/axis/tools/maven/server/RemoteDaemon.java Tue Dec 11 17:26:34 2012 @@ -18,15 +18,27 @@ */ package org.apache.axis.tools.maven.server; -public class ManagedProcess { +import java.io.BufferedReader; +import java.io.IOException; +import java.io.InputStreamReader; +import java.io.OutputStreamWriter; +import java.io.Writer; +import java.net.InetAddress; +import java.net.Socket; + +import org.codehaus.plexus.logging.Logger; + +public class RemoteDaemon { private final Process process; private final String description; - private final ProcessControl processControl; + private final int controlPort; + private BufferedReader controlIn; + private Writer controlOut; - public ManagedProcess(Process process, String description, ProcessControl processControl) { + public RemoteDaemon(Process process, String description, int controlPort) { this.process = process; this.description = description; - this.processControl = processControl; + this.controlPort = controlPort; } public Process getProcess() { @@ -37,7 +49,43 @@ public class ManagedProcess { return description; } - public ProcessControl getProcessControl() { - return processControl; + public void startDaemon(Logger logger) throws Exception { + logger.debug("Attempting to establish control connection on port " + controlPort); + Socket controlSocket; + while (true) { + try { + controlSocket = new Socket(InetAddress.getByName("localhost"), controlPort); + break; + } catch (IOException ex) { + try { + int exitValue = process.exitValue(); + throw new IllegalStateException("Process terminated prematurely with exit code " + exitValue); + } catch (IllegalThreadStateException ex2) { + // Process is still running; continue + } + Thread.sleep(100); + } + } + logger.debug("Control connection established"); + controlIn = new BufferedReader(new InputStreamReader(controlSocket.getInputStream(), "ASCII")); + controlOut = new OutputStreamWriter(controlSocket.getOutputStream(), "ASCII"); + logger.debug("Waiting for daemon to become ready"); + expectStatus("READY"); + logger.debug("Daemon is ready"); + } + + public void stopDaemon(Logger logger) throws Exception { + controlOut.write("STOP\r\n"); + controlOut.flush(); + expectStatus("STOPPED"); + } + + private void expectStatus(String expectedStatus) throws IOException { + String status = controlIn.readLine(); + if (status == null) { + throw new IllegalStateException("Control connection unexpectedly closed"); + } else if (!status.equals(expectedStatus)) { + throw new IllegalStateException("Unexpected status: " + status); + } } } Modified: axis/axis1/java/trunk/maven/maven-axis-server-plugin/src/main/java/org/apache/axis/tools/maven/server/StartDaemonMojo.java URL: http://svn.apache.org/viewvc/axis/axis1/java/trunk/maven/maven-axis-server-plugin/src/main/java/org/apache/axis/tools/maven/server/StartDaemonMojo.java?rev=1420298&r1=1420297&r2=1420298&view=diff ============================================================================== --- axis/axis1/java/trunk/maven/maven-axis-server-plugin/src/main/java/org/apache/axis/tools/maven/server/StartDaemonMojo.java (original) +++ axis/axis1/java/trunk/maven/maven-axis-server-plugin/src/main/java/org/apache/axis/tools/maven/server/StartDaemonMojo.java Tue Dec 11 17:26:34 2012 @@ -19,8 +19,6 @@ package org.apache.axis.tools.maven.server; import java.io.File; -import java.io.IOException; -import java.net.ServerSocket; import org.apache.maven.plugin.MojoExecutionException; import org.apache.maven.plugin.MojoFailureException; @@ -32,7 +30,7 @@ import org.apache.maven.plugin.MojoFailu * @phase pre-integration-test * @requiresDependencyResolution test */ -public class StartDaemonMojo extends AbstractStartProcessMojo { +public class StartDaemonMojo extends AbstractStartDaemonMojo { /** * The daemon class. * @@ -56,23 +54,8 @@ public class StartDaemonMojo extends Abs */ private File workDir; - protected void doExecute() throws MojoExecutionException, MojoFailureException { - int controlPort; - try { - ServerSocket ss = new ServerSocket(0); - controlPort = ss.getLocalPort(); - ss.close(); - } catch (IOException ex) { - throw new MojoFailureException("Failed to allocate port number", ex); - } + protected void doStartDaemon() throws MojoExecutionException, MojoFailureException { workDir.mkdirs(); - String[] vmArgs = new String[args != null ? args.length + 2 : 2]; - vmArgs[0] = daemonClass; - vmArgs[1] = String.valueOf(controlPort); - if (args != null) { - System.arraycopy(args, 0, vmArgs, 2, args.length); - } - addAxisDependency("daemon-launcher"); - startJavaProcess(daemonClass, "org.apache.axis.tools.daemon.Launcher", vmArgs, workDir, new DaemonProcessControl(controlPort)); + startDaemon(daemonClass, daemonClass, args, workDir); } } Modified: axis/axis1/java/trunk/maven/maven-axis-server-plugin/src/main/java/org/apache/axis/tools/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/tools/maven/server/StartServerMojo.java?rev=1420298&r1=1420297&r2=1420298&view=diff ============================================================================== --- axis/axis1/java/trunk/maven/maven-axis-server-plugin/src/main/java/org/apache/axis/tools/maven/server/StartServerMojo.java (original) +++ axis/axis1/java/trunk/maven/maven-axis-server-plugin/src/main/java/org/apache/axis/tools/maven/server/StartServerMojo.java Tue Dec 11 17:26:34 2012 @@ -27,7 +27,6 @@ import java.net.URLClassLoader; import java.util.ArrayList; import java.util.List; -import org.apache.axis.client.AdminClient; import org.apache.axis.model.wsdd.Deployment; import org.apache.axis.model.wsdd.WSDDUtil; import org.apache.maven.plugin.MojoExecutionException; @@ -46,7 +45,7 @@ import org.xml.sax.InputSource; * @phase pre-integration-test * @requiresDependencyResolution test */ -public class StartServerMojo extends AbstractStartProcessMojo { +public class StartServerMojo extends AbstractStartDaemonMojo { /** * @parameter default-value="${project.build.directory}/axis-server" * @required @@ -114,7 +113,7 @@ public class StartServerMojo extends Abs */ private int foregroundPort = -1; - protected void doExecute() throws MojoExecutionException, MojoFailureException { + protected void doStartDaemon() throws MojoExecutionException, MojoFailureException { Log log = getLog(); // Need to setup additional dependencies before building the default configuration! @@ -209,15 +208,11 @@ public class StartServerMojo extends Abs args.add("-m"); args.add(String.valueOf(maxSessions)); try { - AdminClient adminClient = new AdminClient(true); - adminClient.setTargetEndpointAddress(new URL("http://localhost:" + actualPort + "/axis/services/AdminService")); - startJavaProcess( + startDaemon( "Server on port " + actualPort, - "org.apache.axis.server.standalone.StandaloneAxisServer", + "org.apache.axis.server.standalone.daemon.AxisServerDaemon", (String[])args.toArray(new String[args.size()]), - workDir, - new AxisServerProcessControl(actualPort, adminClient, - isDebug() || foreground ? Integer.MAX_VALUE : 20000)); + workDir); } 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/tools/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/tools/maven/server/StopAllMojo.java?rev=1420298&r1=1420297&r2=1420298&view=diff ============================================================================== --- axis/axis1/java/trunk/maven/maven-axis-server-plugin/src/main/java/org/apache/axis/tools/maven/server/StopAllMojo.java (original) +++ axis/axis1/java/trunk/maven/maven-axis-server-plugin/src/main/java/org/apache/axis/tools/maven/server/StopAllMojo.java Tue Dec 11 17:26:34 2012 @@ -27,10 +27,10 @@ import org.apache.maven.plugin.MojoFailu * @goal stop-all * @phase post-integration-test */ -public class StopAllMojo extends AbstractServerMojo { +public class StopAllMojo extends AbstractDaemonControlMojo { protected void doExecute() throws MojoExecutionException, MojoFailureException { try { - getProcessManager().stopAll(); + getDaemonManager().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=1420298&r1=1420297&r2=1420298&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 Dec 11 17:26:34 2012 @@ -20,8 +20,8 @@ <component-set> <components> <component> - <role>org.apache.axis.tools.maven.server.ProcessManager</role> - <implementation>org.apache.axis.tools.maven.server.DefaultProcessManager</implementation> + <role>org.apache.axis.tools.maven.server.DaemonManager</role> + <implementation>org.apache.axis.tools.maven.server.DefaultDaemonManager</implementation> </component> </components> </component-set> \ No newline at end of file