Author: veithen
Date: Sun Aug  1 13:23:31 2010
New Revision: 981220

URL: http://svn.apache.org/viewvc?rev=981220&view=rev
Log:
Some improvements to the new axis2-repo-maven-plugin. In particular, collect 
AAR and MAR files not only from project dependencies, but also from submodules 
in a multimodule project.

Modified:
    
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

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=981220&r1=981219&r2=981220&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 Aug  1 13:23:31 2010
@@ -22,7 +22,6 @@ package org.apache.axis2.maven2.repo;
 import java.io.File;
 import java.io.IOException;
 import java.util.HashSet;
-import java.util.Iterator;
 import java.util.List;
 import java.util.Set;
 
@@ -43,13 +42,6 @@ import org.codehaus.plexus.util.FileUtil
 
 public abstract class AbstractCreateRepositoryMojo extends AbstractMojo {
     /**
-     * @parameter expression="${project}"
-     * @readonly
-     * @required
-     */
-    private MavenProject project;
-    
-    /**
      * @component
      */
     private ArtifactFactory factory;
@@ -60,11 +52,18 @@ public abstract class AbstractCreateRepo
     private ArtifactResolver resolver;
     
     /**
+     * @parameter expression="${project.artifacts}"
+     * @readonly
+     * @required
+     */
+    private Set<Artifact> projectArtifacts;
+    
+    /**
      * @parameter expression="${project.remoteArtifactRepositories}"
      * @readonly
      * @required
      */
-    protected List remoteRepositories;
+    private List remoteRepositories;
     
     /**
      * @parameter expression="${localRepository}"
@@ -74,6 +73,13 @@ public abstract class AbstractCreateRepo
     private ArtifactRepository localRepository;
     
     /**
+     * @parameter expression="${project.collectedProjects}"
+     * @required
+     * @readonly
+     */
+    private List<MavenProject> collectedProjects;
+    
+    /**
      * The directory (relative to the repository root) where AAR files are 
copied. This should be
      * set to the same value as the <tt>ServicesDirectory</tt> property in 
<tt>axis2.xml</tt>.
      * 
@@ -105,12 +111,36 @@ public abstract class AbstractCreateRepo
      */
     private String configurationDirectory;
     
+    /**
+     * Specifies whether the plugin should scan the project dependencies for 
AAR and MAR artifacts.
+     * 
+     * @parameter default-value="true"
+     */
+    private boolean useDependencies;
+    
+    /**
+     * Specifies whether the plugin should scan Maven modules for AAR and MAR 
artifacts. This
+     * parameter only has an effect for multimodule projects.
+     * 
+     * @parameter default-value="true"
+     */
+    private boolean useModules;
+    
     protected abstract String getScope();
     
     protected abstract File getOutputDirectory();
 
     public void execute() throws MojoExecutionException, MojoFailureException {
-        Set artifacts = project.getArtifacts();
+        Set<Artifact> artifacts = new HashSet<Artifact>();
+        if (useDependencies) {
+            artifacts.addAll(projectArtifacts);
+        }
+        if (useModules) {
+            for (MavenProject project : collectedProjects) {
+                artifacts.add(project.getArtifact());
+                artifacts.addAll(project.getAttachedArtifacts());
+            }
+        }
         FilterArtifacts filter = new FilterArtifacts();
         filter.addFilter(new ScopeFilter(getScope(), null));
         filter.addFilter(new TypeFilter("aar,mar", null));
@@ -123,8 +153,7 @@ public abstract class AbstractCreateRepo
         File outputDirectory = getOutputDirectory();
         File servicesDirectory = new File(outputDirectory, 
this.servicesDirectory);
         File modulesDirectory = new File(outputDirectory, 
this.modulesDirectory);
-        for (Iterator it = artifacts.iterator(); it.hasNext(); ) {
-            Artifact artifact = (Artifact)it.next();
+        for (Artifact artifact : artifacts) {
             String type = artifact.getType();
             String destFileName = artifact.getArtifactId() + "-" + 
artifact.getVersion() + "." + type;
             File targetDir = type.equals("mar") ? modulesDirectory : 
servicesDirectory;
@@ -157,10 +186,9 @@ public abstract class AbstractCreateRepo
      * @return a set of {...@link Artifact} objects built as described above
      * @throws MojoExecutionException
      */
-    private Set replaceIncompleteArtifacts(Set artifacts) throws 
MojoExecutionException {
-        Set result = new HashSet();
-        for (Iterator it = artifacts.iterator(); it.hasNext(); ) {
-            Artifact artifact = (Artifact)it.next();
+    private Set<Artifact> replaceIncompleteArtifacts(Set<Artifact> artifacts) 
throws MojoExecutionException {
+        Set<Artifact> result = new HashSet<Artifact>();
+        for (Artifact artifact : artifacts) {
             File file = artifact.getFile();
             if (file != null && file.isDirectory()) {
                 artifact = 
factory.createDependencyArtifact(artifact.getGroupId(), 
artifact.getArtifactId(),

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=981220&r1=981219&r2=981220&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 Aug  1 13:23:31 2010
@@ -24,10 +24,11 @@ import java.io.File;
 import org.apache.maven.artifact.Artifact;
 
 /**
- * Creates an Axis2 repository from the project's runtime dependencies.
+ * Creates an Axis2 repository from the project's runtime dependencies. This 
goal is typically
+ * used to build an Axis2 repository that will be packaged into some kind of 
distribution.
  * 
  * @goal create-repository
- * @phase generate-resources
+ * @phase package
  * @requiresDependencyResolution runtime
  */
 public class CreateRepositoryMojo extends AbstractCreateRepositoryMojo {

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=981220&r1=981219&r2=981220&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 Aug  1 13:23:31 2010
@@ -26,7 +26,8 @@ import org.apache.maven.plugin.MojoExecu
 import org.apache.maven.plugin.MojoFailureException;
 
 /**
- * Creates an Axis2 repository from the project's dependencies in scope test. 
Note that this goal
+ * Creates an Axis2 repository from the project's dependencies in scope test. 
This goal is
+ * typically used to build an Axis2 repository for use during unit tests. Note 
that this goal
  * is skipped if the <code>maven.test.skip</code> property is set to 
<code>true</code>.
  * 
  * @goal create-test-repository


Reply via email to