Author: veithen Date: Tue Aug 24 19:44:35 2010 New Revision: 988689 URL: http://svn.apache.org/viewvc?rev=988689&view=rev Log: Use the new axis2-repo-maven-plugin to build the test repositories in the integration module and add addressing.mar as a Maven dependency. This means that the integration module can now be built without building the addressing module first.
Modified: axis/axis2/java/core/trunk/modules/integration/itest-build.xml axis/axis2/java/core/trunk/modules/integration/pom.xml axis/axis2/java/core/trunk/modules/tool/axis2-repo-maven-plugin/src/main/java/org/apache/axis2/maven2/repo/AbstractCreateRepositoryMojo.java Modified: axis/axis2/java/core/trunk/modules/integration/itest-build.xml URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/integration/itest-build.xml?rev=988689&r1=988688&r2=988689&view=diff ============================================================================== --- axis/axis2/java/core/trunk/modules/integration/itest-build.xml (original) +++ axis/axis2/java/core/trunk/modules/integration/itest-build.xml Tue Aug 24 19:44:35 2010 @@ -25,8 +25,6 @@ <!-- Set a property that can be picked up from the ant build.xml's --> <echo>${maven.test.path}</echo> - <!-- copy the mars so that they are available on the test classpath --> - <copy file="../addressing/target/addressing-${addressing_version}.mar" tofile="target/test-classes/modules/addressing-${addressing_version}.mar" /> <property name="axis2.home" value="${basedir}/target" /> <property name="maven.junit.jvmargs" value="" /> @@ -186,83 +184,9 @@ </target> <target name="build-repos" unless="test.skip"> - <mkdir dir="target/test-resources/samples/modules"/> - <mkdir dir="target/test-resources/samples/conf"/> - <mkdir dir="target/test-resources/repository-client/modules"/> - <mkdir dir="target/test-resources/repository-client/conf"/> - <copy file="../addressing/target/addressing-${addressing_version}.mar" - tofile="target/test-resources/samples/modules/addressing-${addressing_version}.mar"/> - <copy file="conf/axis2.xml" - tofile="target/test-resources/samples/conf/axis2.xml"/> - <copy file="../addressing/target/addressing-${addressing_version}.mar" - tofile="target/test-resources/repository-client/modules/addressing-${addressing_version}.mar"/> - <copy file="conf/axis2.xml" - tofile="target/test-resources/repository-client/conf/axis2.xml"/> <mkdir dir="target/toWar/services/"/> - <mkdir dir="target/test-resources/local"/> - <copy file="../addressing/target/addressing-${addressing_version}.mar" - tofile="target/test-resources/local/addressing.mar"/> - - <!-- Create Chunked enabled Repository --> - <mkdir dir="target/test-resources/chunking-enabledRepository"/> - <mkdir dir="target/test-resources/chunking-enabledRepository/conf"/> - <copy file="test/org/apache/axis2/engine/chunking-enabled-axis2.xml" - tofile="target/test-resources/chunking-enabledRepository/conf/axis2.xml"/> - - <!-- Create Chunked disabled Repository --> - <mkdir dir="target/test-resources/chunking-disabledRepository"/> - <mkdir dir="target/test-resources/chunking-disabledRepository/conf"/> - <copy file="test/org/apache/axis2/engine/chunking-disabled-axis2.xml" - tofile="target/test-resources/chunking-disabledRepository/conf/axis2.xml"/> - <mkdir dir="target/test-resources/MessageContextInjectionRepo"/> - <mkdir dir="target/test-resources/integrationRepo/modules"/> - <mkdir dir="target/test-resources/integrationRepo/conf"/> - <copy file="../addressing/target/addressing-${addressing_version}.mar" - tofile="target/test-resources/integrationRepo/modules/addressing-${addressing_version}.mar"/> - <copy file="conf/axis2.xml" - tofile="target/test-resources/integrationRepo/conf/axis2.xml"/> - - - <!-- Commons transport enabled enabled Repository --> - <mkdir dir="target/test-resources/commons-http-enabledRepository"/> - <mkdir dir="target/test-resources/commons-http-enabledRepository/conf"/> - <copy file="test/org/apache/axis2/engine/commons-http-enabled-axis2.xml" - tofile="target/test-resources/commons-http-enabledRepository/conf/axis2.xml"/> - - <!-- MTOM enabled Repository --> - <mkdir dir="target/test-resources/MTOM-enabledRepository"/> - <mkdir dir="target/test-resources/MTOM-enabledRepository/conf"/> - <mkdir dir="target/test-resources/MTOM-enabledRepository/modules"/> - <copy file="test-resources/mtom/MTOM-enabled-axis2.xml" - tofile="target/test-resources/MTOM-enabledRepository/conf/axis2.xml"/> - <copy file="../addressing/target/addressing-${addressing_version}.mar" - tofile="target/test-resources/MTOM-enabledRepository/modules/addressing-${addressing_version}.mar"/> - - <!-- MTOM file cache enabled Repository --> - <mkdir dir="target/test-resources/MTOM-fileCache-enabledRepository"/> - <mkdir dir="target/test-resources/MTOM-fileCache-enabledRepository/conf"/> - <copy file="test-resources/mtom/MTOM-fileCache-enabled-axis2.xml" - tofile="target/test-resources/MTOM-fileCache-enabledRepository/conf/axis2.xml"/> - <copy file="../addressing/target/addressing-${addressing_version}.mar" - tofile="target/test-resources/MTOM-fileCache-enabledRepository/modules/addressing-${addressing_version}.mar"/> - - <!-- SwA enabled Repository --> - <mkdir dir="target/test-resources/SwA-enabledRepository"/> - <mkdir dir="target/test-resources/SwA-enabledRepository/conf"/> - <copy file="test-resources/swa/SwA-enabled-axis2.xml" - tofile="target/test-resources/SwA-enabledRepository/conf/axis2.xml"/> - <copy file="../addressing/target/addressing-${addressing_version}.mar" - tofile="target/test-resources/SwA-enabledRepository/modules/addressing-${addressing_version}.mar"/> - - <!-- SwA file cache enabled Repository --> - <mkdir dir="target/test-resources/SwA-fileCache-enabledRepository"/> - <mkdir dir="target/test-resources/SwA-fileCache-enabledRepository/conf"/> - <copy file="test-resources/swa/SwA-fileCache-enabled-axis2.xml" - tofile="target/test-resources/SwA-fileCache-enabledRepository/conf/axis2.xml"/> - <copy file="../addressing/target/addressing-${addressing_version}.mar" - tofile="target/test-resources/SwA-fileCache-enabledRepository/modules/addressing-${addressing_version}.mar"/> <!-- Spring resources --> <mkdir dir="target/test-resources/spring"/> @@ -270,46 +194,11 @@ tofile="target/test-classes/spring/applicationContext.xml"/> <!-- Test with target resolver --> - <mkdir dir="target/test-resources/deployment_repo"/> <mkdir dir="target/test-resources/deployment"/> - <mkdir dir="target/test-resources/deployment_repo/conf"/> - <mkdir dir="target/test-resources/deployment_repo/services"/> - <mkdir dir="target/test-resources/deployment_repo/modules"/> <copy file="test-resources/deployment/server-transport.xml" tofile="target/test-resources/deployment/server-transport.xml"/> -<copy file="test-resources/deployment/deployment.both.axis2.xml" - tofile="target/test-resources/deployment_repo/conf/axis2.xml"/> - - <copy file="../addressing/target/addressing-${addressing_version}.mar" - tofile="target/test-resources/deployment_repo/modules/addressing-${addressing_version}.mar"/> - - <!-- Standard repository --> - <mkdir dir="target/Repository"/> - <mkdir dir="target/Repository/conf"/> - <mkdir dir="target/Repository/services"/> - <mkdir dir="target/Repository/modules"/> - <copy file="../addressing/target/addressing-${addressing_version}.mar" - tofile="target/Repository/modules/addressing-${addressing_version}.mar"/> - <copy file="conf/axis2.xml" - tofile="target/Repository/conf/axis2.xml"/> - - <mkdir dir="target/perf2/build/repo/conf"/> - <mkdir dir="target/perf/build/repo/conf"/> - - <copy file="conf/axis2.xml" - tofile="target/perf2/build/repo/conf/axis2.xml"/> - <copy file="conf/axis2.xml" - tofile="target/perf/build/repo/conf/axis2.xml"/> - - <mkdir dir="target/perf2/build/repo/modules"/> - <copy file="../addressing/target/addressing-${addressing_version}.mar" - tofile="target/perf2/build/repo/modules/addressing-${addressing_version}.mar"/> - - <mkdir dir="target/perf/build/repo/modules"/> - <copy file="../addressing/target/addressing-${addressing_version}.mar" - tofile="target/perf/build/repo/modules/addressing-${addressing_version}.mar"/> <antcall target="build-jaxrs-services"/> </target> <target name="build-soap12-services"> @@ -328,11 +217,5 @@ dir="test-resources/jaxrs/archiveTestModule"/> <ant antfile="build.xml" inheritall="true" inheritrefs="true" dir="test-resources/jaxrs/pojoTestModule"/> - <mkdir dir="target/test-resources/jaxrs-repository/conf/"/> - <copy file="test-resources/jaxrs/pojo-enabled-axis2.xml" - tofile="target/test-resources/jaxrs-repository/conf/axis2.xml"/> - <mkdir dir="target/test-resources/jaxrs-repository/modules"/> - <copy file="../addressing/target/addressing-SNAPSHOT.mar" - tofile="target/test-resources/jaxrs-repository/modules/addressing-SNAPSHOT.mar"/> </target> </project> Modified: axis/axis2/java/core/trunk/modules/integration/pom.xml URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/integration/pom.xml?rev=988689&r1=988688&r2=988689&view=diff ============================================================================== --- axis/axis2/java/core/trunk/modules/integration/pom.xml (original) +++ axis/axis2/java/core/trunk/modules/integration/pom.xml Tue Aug 24 19:44:35 2010 @@ -137,6 +137,12 @@ <version>${project.version}</version> </dependency> <dependency> + <groupId>org.apache.axis2</groupId> + <artifactId>addressing</artifactId> + <version>${project.version}</version> + <type>mar</type> + </dependency> + <dependency> <groupId>xmlunit</groupId> <artifactId>xmlunit</artifactId> <scope>test</scope> @@ -333,6 +339,218 @@ </configuration> </plugin> <plugin> + <groupId>org.apache.axis2</groupId> + <artifactId>axis2-repo-maven-plugin</artifactId> + <executions> + <execution> + <id>default</id> + <phase>generate-test-sources</phase> + <goals> + <goal>create-test-repository</goal> + </goals> + <configuration> + <outputDirectory>target/test-classes</outputDirectory> + <modules>addressing</modules> + </configuration> + </execution> + <execution> + <id>samples</id> + <phase>generate-test-sources</phase> + <goals> + <goal>create-test-repository</goal> + </goals> + <configuration> + <outputDirectory>target/test-resources/samples</outputDirectory> + <axis2xml>conf/axis2.xml</axis2xml> + <modules>addressing</modules> + </configuration> + </execution> + <execution> + <id>repository-client</id> + <phase>generate-test-sources</phase> + <goals> + <goal>create-test-repository</goal> + </goals> + <configuration> + <outputDirectory>target/test-resources/repository-client</outputDirectory> + <axis2xml>conf/axis2.xml</axis2xml> + <modules>addressing</modules> + </configuration> + </execution> + <execution> + <id>local</id> + <phase>generate-test-sources</phase> + <goals> + <goal>create-test-repository</goal> + </goals> + <configuration> + <outputDirectory>target/test-resources/local</outputDirectory> + <modules>addressing</modules> + </configuration> + </execution> + <execution> + <id>chunking-enabled</id> + <phase>generate-test-sources</phase> + <goals> + <goal>create-test-repository</goal> + </goals> + <configuration> + <outputDirectory>target/test-resources/chunking-enabledRepository</outputDirectory> + <axis2xml>test/org/apache/axis2/engine/chunking-enabled-axis2.xml</axis2xml> + <includeModules>false</includeModules> + </configuration> + </execution> + <execution> + <id>chunking-disabled</id> + <phase>generate-test-sources</phase> + <goals> + <goal>create-test-repository</goal> + </goals> + <configuration> + <outputDirectory>target/test-resources/chunking-disabledRepository</outputDirectory> + <axis2xml>test/org/apache/axis2/engine/chunking-disabled-axis2.xml</axis2xml> + <includeModules>false</includeModules> + </configuration> + </execution> + <execution> + <id>integration</id> + <phase>generate-test-sources</phase> + <goals> + <goal>create-test-repository</goal> + </goals> + <configuration> + <outputDirectory>target/test-resources/integrationRepo</outputDirectory> + <axis2xml>conf/axis2.xml</axis2xml> + <modules>addressing</modules> + </configuration> + </execution> + <execution> + <id>commons-http-enabled</id> + <phase>generate-test-sources</phase> + <goals> + <goal>create-test-repository</goal> + </goals> + <configuration> + <outputDirectory>target/test-resources/commons-http-enabledRepository</outputDirectory> + <axis2xml>test/org/apache/axis2/engine/commons-http-enabled-axis2.xml</axis2xml> + <includeModules>false</includeModules> + </configuration> + </execution> + <execution> + <id>MTOM-enabled</id> + <phase>generate-test-sources</phase> + <goals> + <goal>create-test-repository</goal> + </goals> + <configuration> + <outputDirectory>target/test-resources/MTOM-enabledRepository</outputDirectory> + <axis2xml>test-resources/mtom/MTOM-enabled-axis2.xml</axis2xml> + <modules>addressing</modules> + </configuration> + </execution> + <execution> + <id>MTOM-fileCache-enabled</id> + <phase>generate-test-sources</phase> + <goals> + <goal>create-test-repository</goal> + </goals> + <configuration> + <outputDirectory>target/test-resources/MTOM-fileCache-enabledRepository</outputDirectory> + <axis2xml>test-resources/mtom/MTOM-fileCache-enabled-axis2.xml</axis2xml> + <modules>addressing</modules> + </configuration> + </execution> + <execution> + <id>SwA-enabled</id> + <phase>generate-test-sources</phase> + <goals> + <goal>create-test-repository</goal> + </goals> + <configuration> + <outputDirectory>target/test-resources/SwA-enabledRepository</outputDirectory> + <axis2xml>test-resources/swa/SwA-enabled-axis2.xml</axis2xml> + <modules>addressing</modules> + </configuration> + </execution> + <execution> + <id>SwA-fileCache-enabled</id> + <phase>generate-test-sources</phase> + <goals> + <goal>create-test-repository</goal> + </goals> + <configuration> + <outputDirectory>target/test-resources/SwA-fileCache-enabledRepository</outputDirectory> + <axis2xml>test-resources/swa/SwA-fileCache-enabled-axis2.xml</axis2xml> + <modules>addressing</modules> + </configuration> + </execution> + <execution> + <id>deployment_repo</id> + <phase>generate-test-sources</phase> + <goals> + <goal>create-test-repository</goal> + </goals> + <configuration> + <outputDirectory>target/test-resources/deployment_repo</outputDirectory> + <axis2xml>test-resources/deployment/deployment.both.axis2.xml</axis2xml> + <modules>addressing</modules> + </configuration> + </execution> + <execution> + <id>Standard</id> + <phase>generate-test-sources</phase> + <goals> + <goal>create-test-repository</goal> + </goals> + <configuration> + <outputDirectory>target/Repository</outputDirectory> + <axis2xml>conf/axis2.xml</axis2xml> + <modules>addressing</modules> + </configuration> + </execution> + <execution> + <id>perf2</id> + <phase>generate-test-sources</phase> + <goals> + <goal>create-test-repository</goal> + </goals> + <configuration> + <outputDirectory>target/perf2/build/repo</outputDirectory> + <axis2xml>conf/axis2.xml</axis2xml> + <modules>addressing</modules> + </configuration> + </execution> + <execution> + <id>perf</id> + <phase>generate-test-sources</phase> + <goals> + <goal>create-test-repository</goal> + </goals> + <configuration> + <outputDirectory>target/perf/build/repo/conf</outputDirectory> + <axis2xml>conf/axis2.xml</axis2xml> + <modules>addressing</modules> + </configuration> + </execution> + <execution> + <id>jaxrs</id> + <phase>generate-test-sources</phase> + <goals> + <goal>create-test-repository</goal> + </goals> + <configuration> + <outputDirectory>target/test-resources/jaxrs-repository</outputDirectory> + <axis2xml>test-resources/jaxrs/pojo-enabled-axis2.xml</axis2xml> + <modules>addressing</modules> + </configuration> + </execution> + </executions> + <configuration> + <configurationDirectory>conf</configurationDirectory> + <includeServices>false</includeServices> + </configuration> + </plugin> + <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-antrun-plugin</artifactId> <executions> 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=988689&r1=988688&r2=988689&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 Tue Aug 24 19:44:35 2010 @@ -21,8 +21,11 @@ package org.apache.axis2.maven2.repo; import java.io.File; import java.io.IOException; +import java.util.Arrays; +import java.util.Collections; import java.util.HashMap; import java.util.HashSet; +import java.util.Iterator; import java.util.List; import java.util.Map; import java.util.Set; @@ -41,6 +44,7 @@ import org.apache.maven.shared.artifact. import org.apache.maven.shared.artifact.filter.collection.ScopeFilter; import org.apache.maven.shared.artifact.filter.collection.TypeFilter; import org.codehaus.plexus.util.FileUtils; +import org.codehaus.plexus.util.StringUtils; public abstract class AbstractCreateRepositoryMojo extends AbstractMojo { /** @@ -150,6 +154,34 @@ public abstract class AbstractCreateRepo */ private boolean stripModuleVersion; + /** + * Specifies whether modules should be deployed to the repository. + * + * @parameter default-value="true" + */ + private boolean includeModules; + + /** + * Comma separated list of modules (by artifactId) to include in the repository. + * + * @parameter + */ + private String modules; + + /** + * Specifies whether services should be deployed to the repository. + * + * @parameter default-value="true" + */ + private boolean includeServices; + + /** + * Comma separated list of services (by artifactId) to include in the repository. + * + * @parameter + */ + private String services; + protected abstract String getScope(); protected abstract File getOutputDirectory(); @@ -165,26 +197,37 @@ public abstract class AbstractCreateRepo artifacts.addAll(project.getAttachedArtifacts()); } } - FilterArtifacts filter = new FilterArtifacts(); - filter.addFilter(new ScopeFilter(getScope(), null)); - filter.addFilter(new TypeFilter("aar,mar", null)); - try { - artifacts = filter.filter(artifacts); - } catch (ArtifactFilterException ex) { - throw new MojoExecutionException(ex.getMessage(), ex); - } - artifacts = replaceIncompleteArtifacts(artifacts); File outputDirectory = getOutputDirectory(); - Map<String,ArchiveDeployer> deployers = new HashMap<String,ArchiveDeployer>(); - deployers.put("aar", new ArchiveDeployer(outputDirectory, servicesDirectory, "services.list", generateFileLists, stripServiceVersion)); - deployers.put("mar", new ArchiveDeployer(outputDirectory, modulesDirectory, "modules.list", generateFileLists, stripModuleVersion)); - for (Artifact artifact : artifacts) { - String type = artifact.getType(); - ArchiveDeployer deployer = deployers.get(type); - if (deployer == null) { - throw new MojoExecutionException("No deployer found for artifact type " + type); + if (includeModules || includeServices) { + FilterArtifacts filter = new FilterArtifacts(); + filter.addFilter(new ScopeFilter(getScope(), null)); + if (includeModules && includeServices) { + filter.addFilter(new TypeFilter("aar,mar", null)); + } else if (includeModules) { + filter.addFilter(new TypeFilter("mar", null)); + } + try { + artifacts = filter.filter(artifacts); + } catch (ArtifactFilterException ex) { + throw new MojoExecutionException(ex.getMessage(), ex); + } + selectArtifacts(artifacts, modules, "mar"); + selectArtifacts(artifacts, services, "aar"); + artifacts = replaceIncompleteArtifacts(artifacts); + Map<String,ArchiveDeployer> deployers = new HashMap<String,ArchiveDeployer>(); + deployers.put("aar", new ArchiveDeployer(outputDirectory, servicesDirectory, "services.list", generateFileLists, stripServiceVersion)); + deployers.put("mar", new ArchiveDeployer(outputDirectory, modulesDirectory, "modules.list", generateFileLists, stripModuleVersion)); + for (Artifact artifact : artifacts) { + String type = artifact.getType(); + ArchiveDeployer deployer = deployers.get(type); + if (deployer == null) { + throw new MojoExecutionException("No deployer found for artifact type " + type); + } + deployer.deploy(getLog(), artifact); + } + for (ArchiveDeployer deployer : deployers.values()) { + deployer.finish(getLog()); } - deployer.deploy(getLog(), artifact); } if (axis2xml != null) { getLog().info("Copying axis2.xml"); @@ -196,8 +239,20 @@ public abstract class AbstractCreateRepo throw new MojoExecutionException("Error copying axis2.xml file: " + ex.getMessage(), ex); } } - for (ArchiveDeployer deployer : deployers.values()) { - deployer.finish(getLog()); + } + + private void selectArtifacts(Set<Artifact> artifacts, String list, String type) throws MojoFailureException { + if (list != null) { + Set<String> set = new HashSet<String>(Arrays.asList(StringUtils.split(list, ","))); + for (Iterator<Artifact> it = artifacts.iterator(); it.hasNext(); ) { + Artifact artifact = it.next(); + if (artifact.getType().equals(type) && !set.remove(artifact.getArtifactId())) { + it.remove(); + } + } + if (!set.isEmpty()) { + throw new MojoFailureException("The following " + type + " artifacts have not been found: " + set); + } } }