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/15 14:51:03 UTC

svn commit: r1231666 - in /axis/axis1/java/trunk: axis-maven-plugin/src/main/java/org/apache/axis/maven/ axis-standalone-server/src/main/java/org/apache/axis/server/standalone/ axis-standalone-server/src/main/resources/org/apache/axis/server/standalone...

Author: veithen
Date: Sun Jan 15 13:51:02 2012
New Revision: 1231666

URL: http://svn.apache.org/viewvc?rev=1231666&view=rev
Log:
Enable usage of JWS with the standalone server and the Maven plugin.

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
    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/resources/org/apache/axis/server/standalone/quit-handler-deploy.wsdd
    axis/axis1/java/trunk/integration/pom.xml

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=1231666&r1=1231665&r2=1231666&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 Sun Jan 15 13:51:02 2012
@@ -44,7 +44,7 @@ public class DefaultServerManager implem
         this.logger = logger;
     }
 
-    public void startServer(String jvm, String[] classpath, int port, String[] vmArgs, File workDir, String[] wsddFiles, int timeout) throws Exception {
+    public void startServer(String jvm, String[] classpath, int port, String[] vmArgs, File workDir, String[] wsddFiles, 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();
@@ -55,6 +55,12 @@ public class DefaultServerManager implem
         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));
+        }
         if (logger.isDebugEnabled()) {
             logger.debug("Starting process with command line: " + cmdline);
         }

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=1231666&r1=1231665&r2=1231666&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 Sun Jan 15 13:51:02 2012
@@ -21,6 +21,6 @@ package org.apache.axis.maven;
 import java.io.File;
 
 public interface ServerManager {
-    void startServer(String jvm, String[] classpath, int port, String[] vmArgs, File workDir, String[] wsddFiles, int timeout) throws Exception;
+    void startServer(String jvm, String[] classpath, int port, String[] vmArgs, File workDir, String[] wsddFiles, File[] jwsDirs, int timeout) 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=1231666&r1=1231665&r2=1231666&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 Sun Jan 15 13:51:02 2012
@@ -82,6 +82,13 @@ public class StartServerMojo extends Abs
     private WSDD[] wsdds;
     
     /**
+     * A set of directories to look up JWS files from.
+     * 
+     * @parameter
+     */
+    private File[] jwsDirs;
+    
+    /**
      * 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
@@ -208,6 +215,7 @@ public class StartServerMojo extends Abs
                     (String[])vmArgs.toArray(new String[vmArgs.size()]),
                     workDir,
                     wsddFiles == null ? null : (String[])wsddFiles.toArray(new String[wsddFiles.size()]),
+                    jwsDirs,
                     debug || foreground ? Integer.MAX_VALUE : 20000);
         } catch (Exception ex) {
             throw new MojoFailureException("Failed to start server", ex);

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=1231666&r1=1231665&r2=1231666&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 Sun Jan 15 13:51:02 2012
@@ -18,6 +18,10 @@
  */
 package org.apache.axis.server.standalone;
 
+import java.io.File;
+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;
@@ -27,7 +31,12 @@ import org.apache.commons.cli.Options;
 import org.apache.commons.cli.ParseException;
 import org.mortbay.jetty.Server;
 import org.mortbay.jetty.servlet.Context;
+import org.mortbay.jetty.servlet.ServletHandler;
+import org.mortbay.jetty.servlet.ServletHolder;
+import org.mortbay.jetty.servlet.ServletMapping;
 import org.mortbay.jetty.servlet.SessionHandler;
+import org.mortbay.resource.Resource;
+import org.mortbay.resource.ResourceCollection;
 
 /**
  * Jetty based stand-alone Axis server.
@@ -37,10 +46,26 @@ import org.mortbay.jetty.servlet.Session
 public class StandaloneAxisServer {
     public static void main(String[] args) throws Exception {
         Options options = new Options();
-        Option portOption = new Option("p", true, "the HTTP port");
-        portOption.setArgName("port");
-        portOption.setRequired(true);
-        options.addOption(portOption);
+        
+        {
+            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);
+        }
         
         if (args.length == 0) {
             HelpFormatter formatter = new HelpFormatter();
@@ -60,13 +85,47 @@ public class StandaloneAxisServer {
         
         int port = Integer.parseInt(cmdLine.getOptionValue("p"));
         
+        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()));
+        
+        boolean enableJWS;
+        if (cmdLine.hasOption("j")) {
+            String[] jwsDirs = cmdLine.getOptionValue("j").split(File.pathSeparator);
+            for (int i=0; i<jwsDirs.length; i++) {
+                resources.add(Resource.newResource(jwsDirs[i]));
+            }
+            enableJWS = true;
+        } else {
+            enableJWS = false;
+        }
+        
         Server server = new Server(port);
         server.setGracefulShutdown(1000);
         Context context = new Context(server, "/axis");
+        context.setBaseResource(new ResourceCollection((Resource[])resources.toArray(new Resource[resources.size()])));
         context.setSessionHandler(new SessionHandler());
         QuitListener quitListener = new QuitListener();
         context.setAttribute(QuitHandler.QUIT_LISTENER, quitListener);
-        context.addServlet(StandaloneAxisServlet.class, "/services/*");
+        ServletHandler servletHandler = context.getServletHandler();
+        ServletHolder axisServlet = new ServletHolder(StandaloneAxisServlet.class);
+        axisServlet.setName("AxisServlet");
+        servletHandler.addServlet(axisServlet);
+        {
+            ServletMapping mapping = new ServletMapping();
+            mapping.setServletName("AxisServlet");
+            mapping.setPathSpec("/services/*");
+            servletHandler.addServletMapping(mapping);
+        }
+        if (enableJWS) {
+            ServletMapping mapping = new ServletMapping();
+            mapping.setServletName("AxisServlet");
+            mapping.setPathSpec("*.jws");
+            servletHandler.addServletMapping(mapping);
+        }
         server.start();
         try {
             quitListener.awaitQuitRequest();

Modified: axis/axis1/java/trunk/axis-standalone-server/src/main/resources/org/apache/axis/server/standalone/quit-handler-deploy.wsdd
URL: http://svn.apache.org/viewvc/axis/axis1/java/trunk/axis-standalone-server/src/main/resources/org/apache/axis/server/standalone/quit-handler-deploy.wsdd?rev=1231666&r1=1231665&r2=1231666&view=diff
==============================================================================
--- axis/axis1/java/trunk/axis-standalone-server/src/main/resources/org/apache/axis/server/standalone/quit-handler-deploy.wsdd (original)
+++ axis/axis1/java/trunk/axis-standalone-server/src/main/resources/org/apache/axis/server/standalone/quit-handler-deploy.wsdd Sun Jan 15 13:51:02 2012
@@ -2,9 +2,13 @@
 <deployment name="defaultClientConfig"
             xmlns="http://xml.apache.org/axis/wsdd/"
             xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">
-    <globalConfiguration>
+    <service name="AdminService" provider="java:MSG">
+        <namespace>http://xml.apache.org/axis/wsdd/</namespace>
+        <parameter name="allowedMethods" value="AdminService"/>
+        <parameter name="enableRemoteAdmin" value="false"/>
+        <parameter name="className" value="org.apache.axis.utils.Admin"/>
         <responseFlow>
             <handler type="java:org.apache.axis.server.standalone.QuitHandler"/>
         </responseFlow>
-    </globalConfiguration>
+    </service>
 </deployment>

Modified: axis/axis1/java/trunk/integration/pom.xml
URL: http://svn.apache.org/viewvc/axis/axis1/java/trunk/integration/pom.xml?rev=1231666&r1=1231665&r2=1231666&view=diff
==============================================================================
--- axis/axis1/java/trunk/integration/pom.xml (original)
+++ axis/axis1/java/trunk/integration/pom.xml Sun Jan 15 13:51:02 2012
@@ -899,6 +899,9 @@
                                     </includes>
                                 </wsdd>
                             </wsdds>
+                            <jwsDirs>
+                                <jwsDir>../axis-war/src/main/webapp</jwsDir>
+                            </jwsDirs>
                         </configuration>
                     </execution>
                     <execution>