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/08 13:35:39 UTC

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

Author: veithen
Date: Sun Jan  8 12:35:38 2012
New Revision: 1228832

URL: http://svn.apache.org/viewvc?rev=1228832&view=rev
Log:
Added a Jetty based stand-alone server that is meant to supersede the old SimpleAxisServer (and JettyAxisServer). The primary purpose is to make the integration tests more relevant because they now test the same code (AxisServlet) that is also used in production environments.

Added:
    axis/axis1/java/trunk/axis-maven-plugin/src/main/java/org/apache/axis/maven/StreamPump.java   (with props)
    axis/axis1/java/trunk/axis-standalone-server/   (with props)
    axis/axis1/java/trunk/axis-standalone-server/pom.xml   (with props)
    axis/axis1/java/trunk/axis-standalone-server/src/
    axis/axis1/java/trunk/axis-standalone-server/src/main/
    axis/axis1/java/trunk/axis-standalone-server/src/main/java/
    axis/axis1/java/trunk/axis-standalone-server/src/main/java/org/
    axis/axis1/java/trunk/axis-standalone-server/src/main/java/org/apache/
    axis/axis1/java/trunk/axis-standalone-server/src/main/java/org/apache/axis/
    axis/axis1/java/trunk/axis-standalone-server/src/main/java/org/apache/axis/server/
    axis/axis1/java/trunk/axis-standalone-server/src/main/java/org/apache/axis/server/standalone/
    axis/axis1/java/trunk/axis-standalone-server/src/main/java/org/apache/axis/server/standalone/QuitHandler.java   (with props)
    axis/axis1/java/trunk/axis-standalone-server/src/main/java/org/apache/axis/server/standalone/QuitListener.java   (with props)
    axis/axis1/java/trunk/axis-standalone-server/src/main/java/org/apache/axis/server/standalone/StandaloneAxisServer.java   (with props)
    axis/axis1/java/trunk/axis-standalone-server/src/main/java/org/apache/axis/server/standalone/StandaloneAxisServlet.java   (with props)
    axis/axis1/java/trunk/axis-standalone-server/src/main/resources/
    axis/axis1/java/trunk/axis-standalone-server/src/main/resources/org/
    axis/axis1/java/trunk/axis-standalone-server/src/main/resources/org/apache/
    axis/axis1/java/trunk/axis-standalone-server/src/main/resources/org/apache/axis/
    axis/axis1/java/trunk/axis-standalone-server/src/main/resources/org/apache/axis/server/
    axis/axis1/java/trunk/axis-standalone-server/src/main/resources/org/apache/axis/server/standalone/
    axis/axis1/java/trunk/axis-standalone-server/src/main/resources/org/apache/axis/server/standalone/quit-handler-deploy.wsdd
Modified:
    axis/axis1/java/trunk/axis-maven-plugin/src/main/java/org/apache/axis/maven/DefaultServerManager.java
    axis/axis1/java/trunk/integration/pom.xml
    axis/axis1/java/trunk/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=1228832&r1=1228831&r2=1228832&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  8 12:35:38 2012
@@ -52,7 +52,7 @@ public class DefaultServerManager implem
         cmdline.add("-cp");
         cmdline.add(StringUtils.join(classpath, File.pathSeparator));
         cmdline.addAll(Arrays.asList(vmArgs));
-        cmdline.add("org.apache.axis.transport.http.SimpleAxisServer");
+        cmdline.add("org.apache.axis.server.standalone.StandaloneAxisServer");
         cmdline.add("-p");
         cmdline.add(String.valueOf(port));
         if (logger.isDebugEnabled()) {
@@ -60,7 +60,8 @@ public class DefaultServerManager implem
         }
         Process process = Runtime.getRuntime().exec((String[])cmdline.toArray(new String[cmdline.size()]), null, workDir);
         servers.put(Integer.valueOf(port), new Server(process, adminClient));
-        // TODO: need to set up stdout/stderr forwarding; otherwise the process will hang
+        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();
         
         // Wait for server to become ready
         String versionUrl = "http://localhost:" + port + "/axis/services/Version";

Added: axis/axis1/java/trunk/axis-maven-plugin/src/main/java/org/apache/axis/maven/StreamPump.java
URL: http://svn.apache.org/viewvc/axis/axis1/java/trunk/axis-maven-plugin/src/main/java/org/apache/axis/maven/StreamPump.java?rev=1228832&view=auto
==============================================================================
--- axis/axis1/java/trunk/axis-maven-plugin/src/main/java/org/apache/axis/maven/StreamPump.java (added)
+++ axis/axis1/java/trunk/axis-maven-plugin/src/main/java/org/apache/axis/maven/StreamPump.java Sun Jan  8 12:35:38 2012
@@ -0,0 +1,45 @@
+/*
+ * 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.maven;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.OutputStream;
+
+public class StreamPump implements Runnable {
+    private final InputStream in;
+    private final OutputStream out;
+    
+    public StreamPump(InputStream in, OutputStream out) {
+        this.in = in;
+        this.out = out;
+    }
+
+    public void run() {
+        try {
+            byte[] buffer = new byte[4096];
+            int c;
+            while ((c = in.read(buffer)) != -1) {
+                out.write(buffer, 0, c);
+            }
+        } catch (IOException ex) {
+            ex.printStackTrace();
+        }
+    }
+}

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

Propchange: axis/axis1/java/trunk/axis-standalone-server/
------------------------------------------------------------------------------
--- svn:ignore (added)
+++ svn:ignore Sun Jan  8 12:35:38 2012
@@ -0,0 +1,4 @@
+.classpath
+.project
+target
+.settings

Added: 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=1228832&view=auto
==============================================================================
--- axis/axis1/java/trunk/axis-standalone-server/pom.xml (added)
+++ axis/axis1/java/trunk/axis-standalone-server/pom.xml Sun Jan  8 12:35:38 2012
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  ~ 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.
+  -->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <groupId>org.apache.axis</groupId>
+        <artifactId>axis-project</artifactId>
+        <version>1.4.1-SNAPSHOT</version>
+        <relativePath>../pom.xml</relativePath>
+    </parent>
+    <artifactId>axis-standalone-server</artifactId>
+    <name>Axis :: Simple server</name>
+    <description>
+        A Jetty based stand-alone Axis server that replaces the former SimpleAxisServer.
+    </description>
+    <dependencies>
+        <dependency>
+            <groupId>${project.groupId}</groupId>
+            <artifactId>axis</artifactId>
+            <version>${project.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>commons-cli</groupId>
+            <artifactId>commons-cli</artifactId>
+            <version>1.2</version>
+        </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>
+</project>

Propchange: axis/axis1/java/trunk/axis-standalone-server/pom.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Added: 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=1228832&view=auto
==============================================================================
--- axis/axis1/java/trunk/axis-standalone-server/src/main/java/org/apache/axis/server/standalone/QuitHandler.java (added)
+++ axis/axis1/java/trunk/axis-standalone-server/src/main/java/org/apache/axis/server/standalone/QuitHandler.java Sun Jan  8 12:35:38 2012
@@ -0,0 +1,44 @@
+/*
+ * 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;
+
+import javax.xml.rpc.server.ServletEndpointContext;
+
+import org.apache.axis.AxisFault;
+import org.apache.axis.Constants;
+import org.apache.axis.MessageContext;
+import org.apache.axis.handlers.BasicHandler;
+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.
+ * 
+ * @author Andreas Veithen
+ */
+public class QuitHandler extends BasicHandler {
+    public static final String QUIT_LISTENER = QuitListener.class.getName();
+    
+    public void invoke(MessageContext msgContext) throws AxisFault {
+        if (msgContext.getProperty(MessageContext.QUIT_REQUESTED) != null) {
+            ServletEndpointContext sec = ((ServletEndpointContext)msgContext.getProperty(Constants.MC_SERVLET_ENDPOINT_CONTEXT));
+            ((QuitListener)sec.getServletContext().getAttribute(QUIT_LISTENER)).requestQuit();
+        }
+    }
+}

Propchange: axis/axis1/java/trunk/axis-standalone-server/src/main/java/org/apache/axis/server/standalone/QuitHandler.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: 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=1228832&view=auto
==============================================================================
--- axis/axis1/java/trunk/axis-standalone-server/src/main/java/org/apache/axis/server/standalone/QuitListener.java (added)
+++ axis/axis1/java/trunk/axis-standalone-server/src/main/java/org/apache/axis/server/standalone/QuitListener.java Sun Jan  8 12:35:38 2012
@@ -0,0 +1,39 @@
+/*
+ * 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;
+
+/**
+ * Used to trigger the shutdown of the stand-alone server.
+ * 
+ * @author Andreas Veithen
+ */
+class QuitListener {
+    private boolean quit;
+    
+    synchronized void requestQuit() {
+        quit = true;
+        notifyAll();
+    }
+    
+    synchronized void awaitQuitRequest() throws InterruptedException {
+        while (!quit) {
+            wait();
+        }
+    }
+}

Propchange: axis/axis1/java/trunk/axis-standalone-server/src/main/java/org/apache/axis/server/standalone/QuitListener.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: 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=1228832&view=auto
==============================================================================
--- axis/axis1/java/trunk/axis-standalone-server/src/main/java/org/apache/axis/server/standalone/StandaloneAxisServer.java (added)
+++ axis/axis1/java/trunk/axis-standalone-server/src/main/java/org/apache/axis/server/standalone/StandaloneAxisServer.java Sun Jan  8 12:35:38 2012
@@ -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.server.standalone;
+
+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.servlet.Context;
+import org.mortbay.jetty.servlet.SessionHandler;
+
+/**
+ * Jetty based stand-alone Axis server.
+ * 
+ * @author Andreas Veithen
+ */
+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);
+        
+        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"));
+        
+        Server server = new Server(port);
+        Context context = new Context(server, "/axis");
+        context.setSessionHandler(new SessionHandler());
+        QuitListener quitListener = new QuitListener();
+        context.setAttribute(QuitHandler.QUIT_LISTENER, quitListener);
+        context.addServlet(StandaloneAxisServlet.class, "/services/*");
+        server.start();
+        try {
+            quitListener.awaitQuitRequest();
+        } catch (InterruptedException ex) {
+            // Just continue and stop the server
+        }
+        server.stop();
+    }
+}

Propchange: axis/axis1/java/trunk/axis-standalone-server/src/main/java/org/apache/axis/server/standalone/StandaloneAxisServer.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: 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=1228832&view=auto
==============================================================================
--- axis/axis1/java/trunk/axis-standalone-server/src/main/java/org/apache/axis/server/standalone/StandaloneAxisServlet.java (added)
+++ axis/axis1/java/trunk/axis-standalone-server/src/main/java/org/apache/axis/server/standalone/StandaloneAxisServlet.java Sun Jan  8 12:35:38 2012
@@ -0,0 +1,46 @@
+/*
+ * 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;
+
+import javax.servlet.ServletException;
+
+import org.apache.axis.WSDDEngineConfiguration;
+import org.apache.axis.deployment.wsdd.WSDDDocument;
+import org.apache.axis.server.AxisServer;
+import org.apache.axis.transport.http.AxisServlet;
+import org.apache.axis.utils.XMLUtils;
+
+/**
+ * Extends {@link AxisServlet} to register the {@link QuitHandler}.
+ * 
+ * @author Andreas Veithen
+ */
+public class StandaloneAxisServlet extends AxisServlet {
+    public void init() throws ServletException {
+        super.init();
+        try {
+            AxisServer engine = getEngine();
+            WSDDDocument wsdd = new WSDDDocument(XMLUtils.newDocument(
+                    StandaloneAxisServlet.class.getResource("quit-handler-deploy.wsdd").toExternalForm()));
+            wsdd.deploy(((WSDDEngineConfiguration)engine.getConfig()).getDeployment());
+        } catch (Exception ex) {
+            throw new ServletException(ex);
+        }
+    }
+}

Propchange: axis/axis1/java/trunk/axis-standalone-server/src/main/java/org/apache/axis/server/standalone/StandaloneAxisServlet.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: 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=1228832&view=auto
==============================================================================
--- axis/axis1/java/trunk/axis-standalone-server/src/main/resources/org/apache/axis/server/standalone/quit-handler-deploy.wsdd (added)
+++ axis/axis1/java/trunk/axis-standalone-server/src/main/resources/org/apache/axis/server/standalone/quit-handler-deploy.wsdd Sun Jan  8 12:35:38 2012
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<deployment name="defaultClientConfig"
+            xmlns="http://xml.apache.org/axis/wsdd/"
+            xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">
+    <globalConfiguration>
+        <responseFlow>
+            <handler type="java:org.apache.axis.server.standalone.QuitHandler"/>
+        </responseFlow>
+    </globalConfiguration>
+</deployment>

Modified: axis/axis1/java/trunk/integration/pom.xml
URL: http://svn.apache.org/viewvc/axis/axis1/java/trunk/integration/pom.xml?rev=1228832&r1=1228831&r2=1228832&view=diff
==============================================================================
--- axis/axis1/java/trunk/integration/pom.xml (original)
+++ axis/axis1/java/trunk/integration/pom.xml Sun Jan  8 12:35:38 2012
@@ -34,6 +34,12 @@
             <version>${project.version}</version>
         </dependency>
         <dependency>
+            <groupId>${project.groupId}</groupId>
+            <artifactId>axis-standalone-server</artifactId>
+            <version>${project.version}</version>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
             <groupId>junit</groupId>
             <artifactId>junit</artifactId>
             <scope>test</scope>
@@ -425,6 +431,7 @@
                         <configuration>
                             <file>src/test/wsdl/getPort/getPort.wsdl</file>
                             <serverSide>true</serverSide>
+                            <implementation>true</implementation>
                         </configuration>
                     </execution>
                     <!-- Include test -->

Modified: axis/axis1/java/trunk/pom.xml
URL: http://svn.apache.org/viewvc/axis/axis1/java/trunk/pom.xml?rev=1228832&r1=1228831&r2=1228832&view=diff
==============================================================================
--- axis/axis1/java/trunk/pom.xml (original)
+++ axis/axis1/java/trunk/pom.xml Sun Jan  8 12:35:38 2012
@@ -35,6 +35,7 @@
         <module>axis-saaj</module>
         <module>axis-ant</module>
         <module>axis-maven-plugin</module>
+        <module>axis-standalone-server</module>
         <module>integration</module>
         <module>axis-war</module>
     </modules>