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 2016/04/17 14:03:49 UTC

svn commit: r1739590 - in /axis/axis2/java/core/trunk: ./ modules/adb-tests/ modules/jaxws-integration/ modules/jaxws-integration/test/org/apache/axis2/jaxws/xmlhttp/provider/message/datasource/META-INF/ modules/jaxws-integration/test/org/apache/axis2/...

Author: veithen
Date: Sun Apr 17 12:03:49 2016
New Revision: 1739590

URL: http://svn.apache.org/viewvc?rev=1739590&view=rev
Log:
Simplify creation of JAX-WS service JARs for unit tests.

Added:
    axis/axis2/java/core/trunk/modules/tool/axis2-repo-maven-plugin/src/main/java/org/apache/axis2/maven2/repo/JAXWSService.java   (with props)
Removed:
    axis/axis2/java/core/trunk/modules/jaxws-integration/test/org/apache/axis2/jaxws/xmlhttp/provider/message/datasource/META-INF/
    axis/axis2/java/core/trunk/modules/jaxws-integration/test/org/apache/axis2/jaxws/xmlhttp/provider/message/source/META-INF/
    axis/axis2/java/core/trunk/modules/jaxws-integration/test/org/apache/axis2/jaxws/xmlhttp/provider/message/string/META-INF/
    axis/axis2/java/core/trunk/modules/jaxws-integration/test/org/apache/axis2/jaxws/xmlhttp/provider/payload/source/META-INF/
    axis/axis2/java/core/trunk/modules/jaxws-integration/test/org/apache/axis2/jaxws/xmlhttp/provider/payload/string/META-INF/
Modified:
    axis/axis2/java/core/trunk/modules/adb-tests/pom.xml
    axis/axis2/java/core/trunk/modules/jaxws-integration/pom.xml
    axis/axis2/java/core/trunk/modules/tool/axis2-repo-maven-plugin/pom.xml
    axis/axis2/java/core/trunk/modules/tool/axis2-repo-maven-plugin/src/main/java/org/apache/axis2/maven2/repo/AbstractCreateRepositoryMojo.java
    axis/axis2/java/core/trunk/modules/tool/axis2-repo-maven-plugin/src/main/java/org/apache/axis2/maven2/repo/CreateRepositoryMojo.java
    axis/axis2/java/core/trunk/modules/tool/axis2-repo-maven-plugin/src/main/java/org/apache/axis2/maven2/repo/CreateTestRepositoryMojo.java
    axis/axis2/java/core/trunk/pom.xml

Modified: axis/axis2/java/core/trunk/modules/adb-tests/pom.xml
URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/adb-tests/pom.xml?rev=1739590&r1=1739589&r2=1739590&view=diff
==============================================================================
--- axis/axis2/java/core/trunk/modules/adb-tests/pom.xml (original)
+++ axis/axis2/java/core/trunk/modules/adb-tests/pom.xml Sun Apr 17 12:03:49 2016
@@ -194,7 +194,6 @@
             <plugin>
                 <groupId>org.codehaus.mojo</groupId>
                 <artifactId>jaxws-maven-plugin</artifactId>
-                <version>2.4.1</version>
                 <executions>
                     <execution>
                         <id>wsimport-mtom</id>

Modified: axis/axis2/java/core/trunk/modules/jaxws-integration/pom.xml
URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/jaxws-integration/pom.xml?rev=1739590&r1=1739589&r2=1739590&view=diff
==============================================================================
--- axis/axis2/java/core/trunk/modules/jaxws-integration/pom.xml (original)
+++ axis/axis2/java/core/trunk/modules/jaxws-integration/pom.xml Sun Apr 17 12:03:49 2016
@@ -207,7 +207,6 @@
                 <executions>
                     <execution>
                         <id>build-repo</id>
-                        <phase>generate-test-resources</phase>
                         <goals>
                             <goal>create-test-repository</goal>
                         </goals>
@@ -215,6 +214,38 @@
                             <outputDirectory>${project.build.directory}/repo</outputDirectory>
                             <modules>addressing</modules>
                             <axis2xml>test-resources/axis2.xml</axis2xml>
+                            <jaxwsServices>
+                                <jaxwsService>
+                                    <name>XPayloadStringProvider</name>
+                                    <packages>
+                                        <package>org.apache.axis2.jaxws.xmlhttp.provider.payload.string</package>
+                                    </packages>
+                                </jaxwsService>
+                                <jaxwsService>
+                                    <name>XMessageStringProvider</name>
+                                    <packages>
+                                        <package>org.apache.axis2.jaxws.xmlhttp.provider.message.string</package>
+                                    </packages>
+                                </jaxwsService>
+                                <jaxwsService>
+                                    <name>XPayloadSourceProvider</name>
+                                    <packages>
+                                        <package>org.apache.axis2.jaxws.xmlhttp.provider.payload.source</package>
+                                    </packages>
+                                </jaxwsService>
+                                <jaxwsService>
+                                    <name>XMessageSourceProvider</name>
+                                    <packages>
+                                        <package>org.apache.axis2.jaxws.xmlhttp.provider.message.source</package>
+                                    </packages>
+                                </jaxwsService>
+                                <jaxwsService>
+                                    <name>XMessageDataSourceProvider</name>
+                                    <packages>
+                                        <package>org.apache.axis2.jaxws.xmlhttp.provider.message.datasource</package>
+                                    </packages>
+                                </jaxwsService>
+                            </jaxwsServices>
                         </configuration>
                     </execution>
                     <execution>
@@ -985,69 +1016,6 @@
                                 <delete dir="${servicejars.dir}/gorilla_dlw" />
 
                                 <!-- ================================================================ -->
-                                <!-- XML HTTP Tests -->
-                                <!-- ================================================================ -->
-                                <copy toDir="${servicejars.dir}/XPayloadStringProvider/">
-                                    <fileset dir="target/test-classes">
-                                        <include name="org/apache/axis2/jaxws/xmlhttp/provider/payload/string/*.class" />
-                                    </fileset>
-                                    <fileset dir="test/org/apache/axis2/jaxws/xmlhttp/provider/payload/string">
-                                        <include name="META-INF/**" />
-                                    </fileset>
-                                </copy>
-
-                                <jar destfile="${servicejars.dir}/XPayloadStringProvider.jar" basedir="${servicejars.dir}/XPayloadStringProvider" />
-                                <delete dir="${servicejars.dir}/XPayloadStringProvider" />
-
-                                <copy toDir="${servicejars.dir}/XMessageStringProvider/">
-                                    <fileset dir="target/test-classes">
-                                        <include name="org/apache/axis2/jaxws/xmlhttp/provider/message/string/*.class" />
-                                    </fileset>
-                                    <fileset dir="test/org/apache/axis2/jaxws/xmlhttp/provider/message/string">
-                                        <include name="META-INF/**" />
-                                    </fileset>
-                                </copy>
-
-                                <jar destfile="${servicejars.dir}/XMessageStringProvider.jar" basedir="${servicejars.dir}/XMessageStringProvider" />
-                                <delete dir="${servicejars.dir}/XMessageStringProvider" />
-
-                                <copy toDir="${servicejars.dir}/XPayloadSourceProvider/">
-                                    <fileset dir="target/test-classes">
-                                        <include name="org/apache/axis2/jaxws/xmlhttp/provider/payload/source/*.class" />
-                                    </fileset>
-                                    <fileset dir="test/org/apache/axis2/jaxws/xmlhttp/provider/payload/source">
-                                        <include name="META-INF/**" />
-                                    </fileset>
-                                </copy>
-
-                                <jar destfile="${servicejars.dir}/XPayloadSourceProvider.jar" basedir="${servicejars.dir}/XPayloadSourceProvider" />
-                                <delete dir="${servicejars.dir}/XPayloadSourceProvider" />
-
-                                <copy toDir="${servicejars.dir}/XMessageSourceProvider/">
-                                    <fileset dir="target/test-classes">
-                                        <include name="org/apache/axis2/jaxws/xmlhttp/provider/message/source/*.class" />
-                                    </fileset>
-                                    <fileset dir="test/org/apache/axis2/jaxws/xmlhttp/provider/message/source">
-                                        <include name="META-INF/**" />
-                                    </fileset>
-                                </copy>
-
-                                <jar destfile="${servicejars.dir}/XMessageSourceProvider.jar" basedir="${servicejars.dir}/XMessageSourceProvider" />
-                                <delete dir="${servicejars.dir}/XMessageSourceProvider" />
-
-                                <copy toDir="${servicejars.dir}/XMessageDataSourceProvider/">
-                                    <fileset dir="target/test-classes">
-                                        <include name="org/apache/axis2/jaxws/xmlhttp/provider/message/datasource/*.class" />
-                                    </fileset>
-                                    <fileset dir="test/org/apache/axis2/jaxws/xmlhttp/provider/message/datasource">
-                                        <include name="META-INF/**" />
-                                    </fileset>
-                                </copy>
-
-                                <jar destfile="${servicejars.dir}/XMessageDataSourceProvider.jar" basedir="${servicejars.dir}/XMessageDataSourceProvider" />
-                                <delete dir="${servicejars.dir}/XMessageDataSourceProvider" />
-
-                                <!-- ================================================================ -->
                                 <!-- Java Bean Endpoint Samples -->
                                 <!-- ================================================================ -->
                                 <copy toDir="${servicejars.dir}/AddressBookService/">

Modified: axis/axis2/java/core/trunk/modules/tool/axis2-repo-maven-plugin/pom.xml
URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/tool/axis2-repo-maven-plugin/pom.xml?rev=1739590&r1=1739589&r2=1739590&view=diff
==============================================================================
--- axis/axis2/java/core/trunk/modules/tool/axis2-repo-maven-plugin/pom.xml (original)
+++ axis/axis2/java/core/trunk/modules/tool/axis2-repo-maven-plugin/pom.xml Sun Apr 17 12:03:49 2016
@@ -42,6 +42,10 @@
             <artifactId>maven-project</artifactId>
         </dependency>
         <dependency>
+            <groupId>org.apache.maven</groupId>
+            <artifactId>maven-archiver</artifactId>
+        </dependency>
+        <dependency>
             <groupId>org.apache.maven.shared</groupId>
             <artifactId>maven-common-artifact-filters</artifactId>
             <version>1.2</version>

Modified: axis/axis2/java/core/trunk/modules/tool/axis2-repo-maven-plugin/src/main/java/org/apache/axis2/maven2/repo/AbstractCreateRepositoryMojo.java
URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/tool/axis2-repo-maven-plugin/src/main/java/org/apache/axis2/maven2/repo/AbstractCreateRepositoryMojo.java?rev=1739590&r1=1739589&r2=1739590&view=diff
==============================================================================
--- axis/axis2/java/core/trunk/modules/tool/axis2-repo-maven-plugin/src/main/java/org/apache/axis2/maven2/repo/AbstractCreateRepositoryMojo.java (original)
+++ axis/axis2/java/core/trunk/modules/tool/axis2-repo-maven-plugin/src/main/java/org/apache/axis2/maven2/repo/AbstractCreateRepositoryMojo.java Sun Apr 17 12:03:49 2016
@@ -39,6 +39,8 @@ import org.apache.maven.shared.artifact.
 import org.apache.maven.shared.artifact.filter.collection.FilterArtifacts;
 import org.apache.maven.shared.artifact.filter.collection.ScopeFilter;
 import org.apache.maven.shared.artifact.filter.collection.TypeFilter;
+import org.codehaus.plexus.archiver.ArchiverException;
+import org.codehaus.plexus.archiver.jar.JarArchiver;
 import org.codehaus.plexus.util.DirectoryScanner;
 import org.codehaus.plexus.util.FileUtils;
 import org.codehaus.plexus.util.StringUtils;
@@ -75,6 +77,13 @@ public abstract class AbstractCreateRepo
     private String modulesDirectory;
     
     /**
+     * The directory (relative to the repository root) where JAX-WS service JARs will be deployed.
+     * 
+     * @parameter default-value="servicejars"
+     */
+    private String jaxwsServicesDirectory;
+    
+    /**
      * The <tt>axis2.xml</tt> file to be copied into the repository.
      * 
      * @parameter
@@ -155,11 +164,21 @@ public abstract class AbstractCreateRepo
      */
     private String services;
     
+    /**
+     * A list of JAX-WS service JARs to be generated (by packaging class files from the current
+     * project).
+     * 
+     * @parameter
+     */
+    private JAXWSService[] jaxwsServices;
+    
     protected abstract String getScope();
     
     protected abstract File getInputDirectory();
     
     protected abstract File getOutputDirectory();
+    
+    protected abstract File[] getClassDirectories();
 
     public void execute() throws MojoExecutionException, MojoFailureException {
         Log log = getLog();
@@ -226,6 +245,29 @@ public abstract class AbstractCreateRepo
                 deployer.finish(log);
             }
         }
+        if (jaxwsServices != null) {
+            File targetDirectory = new File(outputDirectory, jaxwsServicesDirectory);
+            for (JAXWSService service : jaxwsServices) {
+                String jarName = service.getName() + ".jar";
+                try {
+                    JarArchiver archiver = new JarArchiver();
+                    archiver.setDestFile(new File(targetDirectory, jarName));
+                    String[] packages = service.getPackages();
+                    String[] includes = new String[packages.length];
+                    for (int i=0; i<packages.length; i++) {
+                        includes[i] = packages[i].replace('.', '/') + "/**/*.class";
+                    }
+                    for (File classDirectory : getClassDirectories()) {
+                        archiver.addDirectory(classDirectory, includes, new String[0]);
+                    }
+                    archiver.createArchive();
+                } catch (ArchiverException ex) {
+                    throw new MojoExecutionException("Failed to build " + jarName, ex);
+                } catch (IOException ex) {
+                    throw new MojoExecutionException("Failed to build " + jarName, ex);
+                }
+            }
+        }
         if (axis2xml != null) {
             log.info("Copying axis2.xml");
             File targetDirectory = configurationDirectory == null

Modified: axis/axis2/java/core/trunk/modules/tool/axis2-repo-maven-plugin/src/main/java/org/apache/axis2/maven2/repo/CreateRepositoryMojo.java
URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/tool/axis2-repo-maven-plugin/src/main/java/org/apache/axis2/maven2/repo/CreateRepositoryMojo.java?rev=1739590&r1=1739589&r2=1739590&view=diff
==============================================================================
--- axis/axis2/java/core/trunk/modules/tool/axis2-repo-maven-plugin/src/main/java/org/apache/axis2/maven2/repo/CreateRepositoryMojo.java (original)
+++ axis/axis2/java/core/trunk/modules/tool/axis2-repo-maven-plugin/src/main/java/org/apache/axis2/maven2/repo/CreateRepositoryMojo.java Sun Apr 17 12:03:49 2016
@@ -46,6 +46,12 @@ public class CreateRepositoryMojo extend
      */
     private File outputDirectory;
     
+    /**
+     * @parameter expression="${project.build.outputDirectory}"
+     * @readonly
+     */
+    private File buildOutputDirectory;
+    
     @Override
     protected String getScope() {
         return Artifact.SCOPE_RUNTIME;
@@ -60,4 +66,9 @@ public class CreateRepositoryMojo extend
     protected File getOutputDirectory() {
         return outputDirectory;
     }
+
+    @Override
+    protected File[] getClassDirectories() {
+        return new File[] { buildOutputDirectory };
+    }
 }

Modified: axis/axis2/java/core/trunk/modules/tool/axis2-repo-maven-plugin/src/main/java/org/apache/axis2/maven2/repo/CreateTestRepositoryMojo.java
URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/tool/axis2-repo-maven-plugin/src/main/java/org/apache/axis2/maven2/repo/CreateTestRepositoryMojo.java?rev=1739590&r1=1739589&r2=1739590&view=diff
==============================================================================
--- axis/axis2/java/core/trunk/modules/tool/axis2-repo-maven-plugin/src/main/java/org/apache/axis2/maven2/repo/CreateTestRepositoryMojo.java (original)
+++ axis/axis2/java/core/trunk/modules/tool/axis2-repo-maven-plugin/src/main/java/org/apache/axis2/maven2/repo/CreateTestRepositoryMojo.java Sun Apr 17 12:03:49 2016
@@ -31,7 +31,7 @@ import org.apache.maven.plugin.MojoFailu
  * is skipped if the <code>maven.test.skip</code> property is set to <code>true</code>.
  * 
  * @goal create-test-repository
- * @phase generate-test-resources
+ * @phase process-test-classes
  * @requiresDependencyResolution test
  */
 public class CreateTestRepositoryMojo extends AbstractCreateRepositoryMojo {
@@ -55,6 +55,18 @@ public class CreateTestRepositoryMojo ex
      */
     private boolean skip;
     
+    /**
+     * @parameter expression="${project.build.outputDirectory}"
+     * @readonly
+     */
+    private File buildOutputDirectory;
+    
+    /**
+     * @parameter expression="${project.build.testOutputDirectory}"
+     * @readonly
+     */
+    private File buildTestOutputDirectory;
+    
     @Override
     protected String getScope() {
         return Artifact.SCOPE_TEST;
@@ -71,6 +83,11 @@ public class CreateTestRepositoryMojo ex
     }
 
     @Override
+    protected File[] getClassDirectories() {
+        return new File[] { buildOutputDirectory, buildTestOutputDirectory };
+    }
+
+    @Override
     public void execute() throws MojoExecutionException, MojoFailureException {
         if (skip) {
             getLog().info("Tests are skipped");

Added: axis/axis2/java/core/trunk/modules/tool/axis2-repo-maven-plugin/src/main/java/org/apache/axis2/maven2/repo/JAXWSService.java
URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/tool/axis2-repo-maven-plugin/src/main/java/org/apache/axis2/maven2/repo/JAXWSService.java?rev=1739590&view=auto
==============================================================================
--- axis/axis2/java/core/trunk/modules/tool/axis2-repo-maven-plugin/src/main/java/org/apache/axis2/maven2/repo/JAXWSService.java (added)
+++ axis/axis2/java/core/trunk/modules/tool/axis2-repo-maven-plugin/src/main/java/org/apache/axis2/maven2/repo/JAXWSService.java Sun Apr 17 12:03:49 2016
@@ -0,0 +1,40 @@
+/*
+ * 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.axis2.maven2.repo;
+
+public final class JAXWSService {
+    private String name;
+    private String[] packages;
+    
+    public String getName() {
+        return name;
+    
+    }
+    public void setName(String name) {
+        this.name = name;
+    }
+    
+    public String[] getPackages() {
+        return packages;
+    }
+    
+    public void setPackages(String[] packages) {
+        this.packages = packages;
+    }
+}

Propchange: axis/axis2/java/core/trunk/modules/tool/axis2-repo-maven-plugin/src/main/java/org/apache/axis2/maven2/repo/JAXWSService.java
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: axis/axis2/java/core/trunk/pom.xml
URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/pom.xml?rev=1739590&r1=1739589&r2=1739590&view=diff
==============================================================================
--- axis/axis2/java/core/trunk/pom.xml (original)
+++ axis/axis2/java/core/trunk/pom.xml Sun Apr 17 12:03:49 2016
@@ -1213,6 +1213,11 @@
                     <artifactId>jaxb2-maven-plugin</artifactId>
                     <version>2.2</version>
                 </plugin>
+                <plugin>
+                    <groupId>org.codehaus.mojo</groupId>
+                    <artifactId>jaxws-maven-plugin</artifactId>
+                    <version>2.4.1</version>
+                </plugin>
                 
                 <!-- Use 1.5.2 versions of the aar and mar plugins in order to avoid
                      the chicken and egg problem. -->