Author: veithen
Date: Fri Jul  3 22:53:59 2015
New Revision: 1689104

URL: http://svn.apache.org/r1689104
Log:
Support the -Daxis.server.foreground=true flag also for Jetty instances started 
by the axis-server:start-webapp goal.

Added:
    
axis/axis1/java/trunk/maven/axis-server-maven-plugin/src/main/java/org/apache/axis/tools/maven/server/AbstractStartWebServerMojo.java
   (with props)
Modified:
    
axis/axis1/java/trunk/maven/axis-server-maven-plugin/src/main/java/org/apache/axis/tools/maven/server/StartServerMojo.java
    
axis/axis1/java/trunk/maven/axis-server-maven-plugin/src/main/java/org/apache/axis/tools/maven/server/StartWebAppMojo.java
    axis/axis1/java/trunk/tests/spring-compat-tests/pom.xml

Added: 
axis/axis1/java/trunk/maven/axis-server-maven-plugin/src/main/java/org/apache/axis/tools/maven/server/AbstractStartWebServerMojo.java
URL: 
http://svn.apache.org/viewvc/axis/axis1/java/trunk/maven/axis-server-maven-plugin/src/main/java/org/apache/axis/tools/maven/server/AbstractStartWebServerMojo.java?rev=1689104&view=auto
==============================================================================
--- 
axis/axis1/java/trunk/maven/axis-server-maven-plugin/src/main/java/org/apache/axis/tools/maven/server/AbstractStartWebServerMojo.java
 (added)
+++ 
axis/axis1/java/trunk/maven/axis-server-maven-plugin/src/main/java/org/apache/axis/tools/maven/server/AbstractStartWebServerMojo.java
 Fri Jul  3 22:53:59 2015
@@ -0,0 +1,77 @@
+/*
+ * 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.tools.maven.server;
+
+import org.apache.maven.plugin.MojoExecutionException;
+import org.apache.maven.plugin.MojoFailureException;
+import org.apache.maven.plugin.logging.Log;
+
+public abstract class AbstractStartWebServerMojo extends 
AbstractStartDaemonMojo {
+    /**
+     * The HTTP port.
+     * 
+     * @parameter default-value="8080"
+     * @required
+     */
+    private int port;
+
+    /**
+     * If this flag is set to <code>true</code>, then the execution of the 
goal will block after the
+     * server has been started. This is useful if one wants to manually test 
some services deployed
+     * on the server or if one wants to run the integration tests from an IDE. 
The flag should only
+     * be set using the command line, but not in the POM.
+     * 
+     * @parameter expression="${axis.server.foreground}" default-value="false"
+     */
+    // Note: this feature is implemented using a flag (instead of a distinct 
goal) to make sure that
+    // the server is configured in exactly the same way as in a normal 
integration test execution.
+    private boolean foreground;
+    
+    /**
+     * Specifies an alternate port number that will override {@link #port} if 
{@link #foreground} is
+     * set to <code>true</code>. This parameter should be used if the port 
number configured with
+     * the {@link #port} parameter is allocated dynamically. This makes it 
easier to run integration
+     * tests from an IDE. For more information, see the <a 
href="usage.html">usage
+     * documentation</a>.
+     * 
+     * @parameter
+     */
+    private int foregroundPort = -1;
+    
+    protected final void doStartDaemon() throws MojoExecutionException, 
MojoFailureException {
+        Log log = getLog();
+        
+        doStartDaemon(foreground && foregroundPort != -1 ? foregroundPort : 
port);
+        
+        if (foreground) {
+            log.info("Server started in foreground mode. Press CRTL-C to 
stop.");
+            Object lock = new Object();
+            synchronized (lock) {
+                try {
+                    lock.wait();
+                } catch (InterruptedException ex) {
+                    // Set interrupt flag and continue
+                    Thread.currentThread().interrupt();
+                }
+            }
+        }
+    }
+
+    protected abstract void doStartDaemon(int port) throws 
MojoExecutionException, MojoFailureException;
+}

Propchange: 
axis/axis1/java/trunk/maven/axis-server-maven-plugin/src/main/java/org/apache/axis/tools/maven/server/AbstractStartWebServerMojo.java
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: 
axis/axis1/java/trunk/maven/axis-server-maven-plugin/src/main/java/org/apache/axis/tools/maven/server/StartServerMojo.java
URL: 
http://svn.apache.org/viewvc/axis/axis1/java/trunk/maven/axis-server-maven-plugin/src/main/java/org/apache/axis/tools/maven/server/StartServerMojo.java?rev=1689104&r1=1689103&r2=1689104&view=diff
==============================================================================
--- 
axis/axis1/java/trunk/maven/axis-server-maven-plugin/src/main/java/org/apache/axis/tools/maven/server/StartServerMojo.java
 (original)
+++ 
axis/axis1/java/trunk/maven/axis-server-maven-plugin/src/main/java/org/apache/axis/tools/maven/server/StartServerMojo.java
 Fri Jul  3 22:53:59 2015
@@ -31,7 +31,6 @@ import org.apache.axis.model.wsdd.Deploy
 import org.apache.axis.model.wsdd.WSDDUtil;
 import org.apache.maven.plugin.MojoExecutionException;
 import org.apache.maven.plugin.MojoFailureException;
-import org.apache.maven.plugin.logging.Log;
 import org.codehaus.plexus.util.DirectoryScanner;
 import org.codehaus.plexus.util.FileUtils;
 import org.codehaus.plexus.util.StringUtils;
@@ -45,7 +44,7 @@ import org.xml.sax.InputSource;
  * @phase pre-integration-test
  * @requiresDependencyResolution test
  */
-public class StartServerMojo extends AbstractStartDaemonMojo {
+public class StartServerMojo extends AbstractStartWebServerMojo {
     /**
      * @parameter default-value="${project.build.directory}/axis-server"
      * @required
@@ -54,14 +53,6 @@ public class StartServerMojo extends Abs
     private File workDirBase;
     
     /**
-     * The port of the Axis server.
-     * 
-     * @parameter default-value="8080"
-     * @required
-     */
-    private int port;
-    
-    /**
      * The maximum number of concurrently active sessions.
      * 
      * @parameter default-value="100"
@@ -90,43 +81,15 @@ public class StartServerMojo extends Abs
      */
     private FileSet[] configs;
     
-    /**
-     * If this flag is set to <code>true</code>, then the execution of the 
goal will block after the
-     * server has been started and the services are deployed. This is useful 
if one wants to
-     * manually test some services deployed on the server or if one wants to 
run the integration
-     * tests from an IDE. The flag should only be set using the command line, 
but not in the POM.
-     * 
-     * @parameter expression="${axis.server.foreground}" default-value="false"
-     */
-    // Note: this feature is implemented using a flag (instead of a distinct 
goal) to make sure that
-    // the server is configured in exactly the same way as in a normal 
integration test execution.
-    private boolean foreground;
-    
-    /**
-     * Specifies an alternate port number that will override {@link #port} if 
{@link #foreground} is
-     * set to <code>true</code>. This parameter should be used if the port 
number configured with
-     * the {@link #port} parameter is allocated dynamically. This makes it 
easier to run integration
-     * tests from an IDE. For more information, see the <a 
href="usage.html">usage
-     * documentation</a>.
-     * 
-     * @parameter
-     */
-    private int foregroundPort = -1;
-    
-    protected void doStartDaemon() throws MojoExecutionException, 
MojoFailureException {
-        Log log = getLog();
-        
+    protected void doStartDaemon(int port) throws MojoExecutionException, 
MojoFailureException {
         // Need to setup additional dependencies before building the default 
configuration!
         addAxisDependency("axis-standalone-server");
         if (jwsDirs != null && jwsDirs.length > 0) {
             addAxisDependency("axis-rt-jws");
         }
         
-        // Determine the port to be used
-        int actualPort = foreground && foregroundPort != -1 ? foregroundPort : 
port;
-        
         // Prepare a work directory where we can place the server-config.wsdd 
file
-        File workDir = new File(workDirBase, String.valueOf(actualPort));
+        File workDir = new File(workDirBase, String.valueOf(port));
         if (workDir.exists()) {
             try {
                 FileUtils.deleteDirectory(workDir);
@@ -198,7 +161,7 @@ public class StartServerMojo extends Abs
         // Start the server
         List args = new ArrayList();
         args.add("-p");
-        args.add(String.valueOf(actualPort));
+        args.add(String.valueOf(port));
         args.add("-w");
         args.add(workDir.getAbsolutePath());
         if (jwsDirs != null && jwsDirs.length > 0) {
@@ -209,26 +172,13 @@ public class StartServerMojo extends Abs
         args.add(String.valueOf(maxSessions));
         try {
             startDaemon(
-                    "Server on port " + actualPort,
+                    "Server on port " + port,
                     
"org.apache.axis.server.standalone.daemon.AxisServerDaemon",
                     (String[])args.toArray(new String[args.size()]),
                     workDir);
         } catch (Exception ex) {
             throw new MojoFailureException("Failed to start server", ex);
         }
-        
-        if (foreground) {
-            log.info("Server started in foreground mode. Press CRTL-C to 
stop.");
-            Object lock = new Object();
-            synchronized (lock) {
-                try {
-                    lock.wait();
-                } catch (InterruptedException ex) {
-                    // Set interrupt flag and continue
-                    Thread.currentThread().interrupt();
-                }
-            }
-        }
     }
     
     private ClassLoader buildClassLoader() throws MojoExecutionException {

Modified: 
axis/axis1/java/trunk/maven/axis-server-maven-plugin/src/main/java/org/apache/axis/tools/maven/server/StartWebAppMojo.java
URL: 
http://svn.apache.org/viewvc/axis/axis1/java/trunk/maven/axis-server-maven-plugin/src/main/java/org/apache/axis/tools/maven/server/StartWebAppMojo.java?rev=1689104&r1=1689103&r2=1689104&view=diff
==============================================================================
--- 
axis/axis1/java/trunk/maven/axis-server-maven-plugin/src/main/java/org/apache/axis/tools/maven/server/StartWebAppMojo.java
 (original)
+++ 
axis/axis1/java/trunk/maven/axis-server-maven-plugin/src/main/java/org/apache/axis/tools/maven/server/StartWebAppMojo.java
 Fri Jul  3 22:53:59 2015
@@ -31,15 +31,7 @@ import org.codehaus.plexus.util.StringUt
  * @phase pre-integration-test
  * @requiresDependencyResolution test
  */
-public class StartWebAppMojo extends AbstractStartDaemonMojo {
-    /**
-     * The HTTP port.
-     * 
-     * @parameter default-value="8080"
-     * @required
-     */
-    private int port;
-
+public class StartWebAppMojo extends AbstractStartWebServerMojo {
     /**
      * 
      * 
@@ -48,7 +40,7 @@ public class StartWebAppMojo extends Abs
      */
     private File[] resourceBases;
     
-    protected void doStartDaemon() throws MojoExecutionException, 
MojoFailureException {
+    protected void doStartDaemon(int port) throws MojoExecutionException, 
MojoFailureException {
         addAxisDependency("jetty-daemon");
         startDaemon("HTTP server on port " + port, 
"org.apache.axis.tools.daemon.jetty.WebAppDaemon",
                 new String[] { "-p", String.valueOf(port), "-r", 
StringUtils.join(resourceBases, File.pathSeparator) }, new File("."));

Modified: axis/axis1/java/trunk/tests/spring-compat-tests/pom.xml
URL: 
http://svn.apache.org/viewvc/axis/axis1/java/trunk/tests/spring-compat-tests/pom.xml?rev=1689104&r1=1689103&r2=1689104&view=diff
==============================================================================
--- axis/axis1/java/trunk/tests/spring-compat-tests/pom.xml (original)
+++ axis/axis1/java/trunk/tests/spring-compat-tests/pom.xml Fri Jul  3 22:53:59 
2015
@@ -122,6 +122,7 @@
                         </goals>
                         <configuration>
                             <port>${test.httpPort}</port>
+                            <foregroundPort>8080</foregroundPort>
                             <resourceBases>
                                 <resourceBase>src/main/webapp</resourceBase>
                                 
<resourceBase>${project.build.directory}/webapp</resourceBase>


Reply via email to