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/01/03 22:52:54 UTC

svn commit: r1226959 - in /axis/axis1/java/trunk/axis-maven-plugin/src/main/java/org/apache/axis/maven: DefaultServerManager.java ServerManager.java StartServerMojo.java

Author: veithen
Date: Tue Jan  3 21:52:53 2012
New Revision: 1226959

URL: http://svn.apache.org/viewvc?rev=1226959&view=rev
Log:
Avoid creation of temporary files (server-config.wsdd) in the source tree. These files should be created in the target directory.

Modified:
    axis/axis1/java/trunk/axis-maven-plugin/src/main/java/org/apache/axis/maven/DefaultServerManager.java
    axis/axis1/java/trunk/axis-maven-plugin/src/main/java/org/apache/axis/maven/ServerManager.java
    axis/axis1/java/trunk/axis-maven-plugin/src/main/java/org/apache/axis/maven/StartServerMojo.java

Modified: axis/axis1/java/trunk/axis-maven-plugin/src/main/java/org/apache/axis/maven/DefaultServerManager.java
URL: http://svn.apache.org/viewvc/axis/axis1/java/trunk/axis-maven-plugin/src/main/java/org/apache/axis/maven/DefaultServerManager.java?rev=1226959&r1=1226958&r2=1226959&view=diff
==============================================================================
--- axis/axis1/java/trunk/axis-maven-plugin/src/main/java/org/apache/axis/maven/DefaultServerManager.java (original)
+++ axis/axis1/java/trunk/axis-maven-plugin/src/main/java/org/apache/axis/maven/DefaultServerManager.java Tue Jan  3 21:52:53 2012
@@ -29,7 +29,7 @@ import org.codehaus.plexus.util.StringUt
 public class DefaultServerManager implements ServerManager {
     private final Map servers = new HashMap();
 
-    public void startServer(String jvm, String[] classpath, int port, String[] wsddFiles) throws Exception {
+    public void startServer(String jvm, String[] classpath, int port, File workDir, String[] wsddFiles) throws Exception {
         AdminClient adminClient = new AdminClient(true);
         adminClient.setTargetEndpointAddress(new URL("http://localhost:" + port + "/axis/services/AdminService"));
         Process process = Runtime.getRuntime().exec(new String[] {
@@ -39,7 +39,7 @@ public class DefaultServerManager implem
                 "org.apache.axis.transport.http.SimpleAxisServer",
                 "-p",
                 String.valueOf(port)
-        });
+        }, null, workDir);
         servers.put(Integer.valueOf(port), new Server(process, adminClient));
         // TODO: need to set up stdout/stderr forwarding; otherwise the process will hang
         // TODO: need to ping the server and wait until it becomes ready

Modified: axis/axis1/java/trunk/axis-maven-plugin/src/main/java/org/apache/axis/maven/ServerManager.java
URL: http://svn.apache.org/viewvc/axis/axis1/java/trunk/axis-maven-plugin/src/main/java/org/apache/axis/maven/ServerManager.java?rev=1226959&r1=1226958&r2=1226959&view=diff
==============================================================================
--- axis/axis1/java/trunk/axis-maven-plugin/src/main/java/org/apache/axis/maven/ServerManager.java (original)
+++ axis/axis1/java/trunk/axis-maven-plugin/src/main/java/org/apache/axis/maven/ServerManager.java Tue Jan  3 21:52:53 2012
@@ -18,7 +18,9 @@
  */
 package org.apache.axis.maven;
 
+import java.io.File;
+
 public interface ServerManager {
-    void startServer(String jvm, String[] classpath, int port, String[] wsddFiles) throws Exception;
+    void startServer(String jvm, String[] classpath, int port, File workDir, String[] wsddFiles) throws Exception;
     void stopServer(int port) throws Exception;
 }

Modified: axis/axis1/java/trunk/axis-maven-plugin/src/main/java/org/apache/axis/maven/StartServerMojo.java
URL: http://svn.apache.org/viewvc/axis/axis1/java/trunk/axis-maven-plugin/src/main/java/org/apache/axis/maven/StartServerMojo.java?rev=1226959&r1=1226958&r2=1226959&view=diff
==============================================================================
--- axis/axis1/java/trunk/axis-maven-plugin/src/main/java/org/apache/axis/maven/StartServerMojo.java (original)
+++ axis/axis1/java/trunk/axis-maven-plugin/src/main/java/org/apache/axis/maven/StartServerMojo.java Tue Jan  3 21:52:53 2012
@@ -19,6 +19,7 @@
 package org.apache.axis.maven;
 
 import java.io.File;
+import java.io.IOException;
 import java.util.Arrays;
 import java.util.List;
 
@@ -32,6 +33,7 @@ import org.apache.maven.project.MavenPro
 import org.apache.maven.toolchain.Toolchain;
 import org.apache.maven.toolchain.ToolchainManager;
 import org.codehaus.plexus.util.DirectoryScanner;
+import org.codehaus.plexus.util.FileUtils;
 
 /**
  * Start a {@link SimpleAxisServer} instance in a separate JVM.
@@ -65,6 +67,13 @@ public class StartServerMojo extends Abs
     private ToolchainManager toolchainManager;
     
     /**
+     * @parameter default-value="${project.build.directory}/axis-server"
+     * @required
+     * @readonly
+     */
+    private File workDirBase;
+    
+    /**
      * Directory with WSDD files for services to deploy.
      * 
      * @parameter
@@ -116,9 +125,21 @@ public class StartServerMojo extends Abs
             wsddFiles = null;
         }
         
+        // Prepare a work directory where the server can create a server-config.wsdd file
+        File workDir = new File(workDirBase, String.valueOf(getPort()));
+        if (workDir.exists()) {
+            try {
+                FileUtils.deleteDirectory(workDir);
+            } catch (IOException ex) {
+                throw new MojoFailureException("Failed to clean the work directory", ex);
+            }
+        } else {
+            workDir.mkdirs();
+        }
+        
         // Start the server
         try {
-            getServerManager().startServer(executable, (String[])classPathElements.toArray(new String[classPathElements.size()]), getPort(), wsddFiles);
+            getServerManager().startServer(executable, (String[])classPathElements.toArray(new String[classPathElements.size()]), getPort(), workDir, wsddFiles);
         } catch (Exception ex) {
             throw new MojoFailureException("Failed to start server", ex);
         }