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 2010/08/01 11:30:33 UTC

svn commit: r981188 - in /axis/axis2/java/core/trunk/modules: fastinfoset/pom.xml tool/axis2-repo-maven-plugin/src/main/java/org/apache/axis2/maven2/repo/AbstractCreateRepositoryMojo.java

Author: veithen
Date: Sun Aug  1 09:30:32 2010
New Revision: 981188

URL: http://svn.apache.org/viewvc?rev=981188&view=rev
Log:
Use the new axis2-repo-maven-plugin to simplify the fastinfoset build. Also fixed MDEP-259 for axis2-repo-maven-plugin.

Modified:
    axis/axis2/java/core/trunk/modules/fastinfoset/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/fastinfoset/pom.xml
URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/fastinfoset/pom.xml?rev=981188&r1=981187&r2=981188&view=diff
==============================================================================
--- axis/axis2/java/core/trunk/modules/fastinfoset/pom.xml (original)
+++ axis/axis2/java/core/trunk/modules/fastinfoset/pom.xml Sun Aug  1 09:30:32 2010
@@ -172,38 +172,16 @@
                 </configuration>
             </plugin>
             <plugin>
-                <artifactId>maven-dependency-plugin</artifactId>
+                <groupId>org.apache.axis2</groupId>
+                <artifactId>axis2-repo-maven-plugin</artifactId>
                 <executions>
                     <execution>
-                        <phase>generate-test-resources</phase>
                         <goals>
-                            <goal>copy</goal>
+                            <goal>create-test-repository</goal>
                         </goals>
                         <configuration>
-                            <artifactItems>
-                                <artifactItem>
-                                    <groupId>org.apache.axis2</groupId>
-                                    <artifactId>addressing</artifactId>
-                                    <version>${project.version}</version>
-                                    <type>mar</type>
-                               </artifactItem>
-                            </artifactItems>
-                            <outputDirectory>${project.build.directory}/repo/modules</outputDirectory>
+                            <outputDirectory>${project.build.directory}/repo</outputDirectory>
                         </configuration>
-                        <!-- The following configuration doesn't work as expected if the addressing module
-                             is part of the same reactor build. Probably this is due to the fact that in
-                             this case, maven-dependency-plugin tries to retrieve the artifact from the
-                             module (instead of the local repository) but fails to do so because it doesn't
-                             know how to construct a MAR file. See http://jira.codehaus.org/browse/MDEP-259
-                             for more details. -->
-                        <!-- goals>
-                            <goal>copy-dependencies</goal>
-                        </goals>
-                        <configuration>
-                            <outputDirectory>${project.build.directory}/repo/modules</outputDirectory>
-                            <includeTypes>mar</includeTypes>
-                            <includeScopes>test</includeScopes>
-                        </configuration -->
                     </execution>
                 </executions>
             </plugin>

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=981188&r1=981187&r2=981188&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 09:30:32 2010
@@ -21,10 +21,16 @@ 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;
 
 import org.apache.maven.artifact.Artifact;
+import org.apache.maven.artifact.factory.ArtifactFactory;
+import org.apache.maven.artifact.repository.ArtifactRepository;
+import org.apache.maven.artifact.resolver.AbstractArtifactResolutionException;
+import org.apache.maven.artifact.resolver.ArtifactResolver;
 import org.apache.maven.plugin.AbstractMojo;
 import org.apache.maven.plugin.MojoExecutionException;
 import org.apache.maven.plugin.MojoFailureException;
@@ -44,6 +50,30 @@ public abstract class AbstractCreateRepo
     private MavenProject project;
     
     /**
+     * @component
+     */
+    private ArtifactFactory factory;
+    
+    /**
+     * @component
+     */
+    private ArtifactResolver resolver;
+    
+    /**
+     * @parameter expression="${project.remoteArtifactRepositories}"
+     * @readonly
+     * @required
+     */
+    protected List remoteRepositories;
+    
+    /**
+     * @parameter expression="${localRepository}"
+     * @readonly
+     * @required
+     */
+    private ArtifactRepository localRepository;
+    
+    /**
      * 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>.
      * 
@@ -89,6 +119,7 @@ public abstract class AbstractCreateRepo
         } catch (ArtifactFilterException ex) {
             throw new MojoExecutionException(ex.getMessage(), ex);
         }
+        artifacts = replaceIncompleteArtifacts(artifacts);
         File outputDirectory = getOutputDirectory();
         File servicesDirectory = new File(outputDirectory, this.servicesDirectory);
         File modulesDirectory = new File(outputDirectory, this.modulesDirectory);
@@ -115,4 +146,33 @@ public abstract class AbstractCreateRepo
             }
         }
     }
+
+    /**
+     * Replace artifacts that have not been packaged yet. This occurs if the artifact is
+     * part of the reactor build and the compile phase has been executed, but not the
+     * the package phase. These artifacts will be replaced by new artifact objects
+     * resolved from the repository.
+     * 
+     * @param artifacts the original sets of {@link Artifact} objects
+     * @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();
+            File file = artifact.getFile();
+            if (file != null && file.isDirectory()) {
+                artifact = factory.createDependencyArtifact(artifact.getGroupId(), artifact.getArtifactId(),
+                        artifact.getVersionRange(), artifact.getType(), artifact.getClassifier(), artifact.getScope());
+                try {
+                    resolver.resolve(artifact, remoteRepositories, localRepository);
+                } catch (AbstractArtifactResolutionException ex) {
+                    throw new MojoExecutionException(ex.getMessage(), ex);
+                }
+            }
+            result.add(artifact);
+        }
+        return result;
+    }
 }