You are viewing a plain text version of this content. The canonical link for it is here.
Posted to scm@geronimo.apache.org by dj...@apache.org on 2008/04/16 09:52:59 UTC

svn commit: r648603 - in /geronimo/server/trunk: ./ buildsupport/car-maven-plugin/src/main/java/org/apache/geronimo/mavenplugins/car/

Author: djencks
Date: Wed Apr 16 00:52:51 2008
New Revision: 648603

URL: http://svn.apache.org/viewvc?rev=648603&view=rev
Log:
GERONIMO-3705 fix build to work with maven 2.0.9

Modified:
    geronimo/server/trunk/buildsupport/car-maven-plugin/src/main/java/org/apache/geronimo/mavenplugins/car/AbstractCarMojo.java
    geronimo/server/trunk/buildsupport/car-maven-plugin/src/main/java/org/apache/geronimo/mavenplugins/car/InstallModulesMojo.java
    geronimo/server/trunk/buildsupport/car-maven-plugin/src/main/java/org/apache/geronimo/mavenplugins/car/Maven2RepositoryAdapter.java
    geronimo/server/trunk/buildsupport/car-maven-plugin/src/main/java/org/apache/geronimo/mavenplugins/car/PackageMojo.java
    geronimo/server/trunk/pom.xml

Modified: geronimo/server/trunk/buildsupport/car-maven-plugin/src/main/java/org/apache/geronimo/mavenplugins/car/AbstractCarMojo.java
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/buildsupport/car-maven-plugin/src/main/java/org/apache/geronimo/mavenplugins/car/AbstractCarMojo.java?rev=648603&r1=648602&r2=648603&view=diff
==============================================================================
--- geronimo/server/trunk/buildsupport/car-maven-plugin/src/main/java/org/apache/geronimo/mavenplugins/car/AbstractCarMojo.java (original)
+++ geronimo/server/trunk/buildsupport/car-maven-plugin/src/main/java/org/apache/geronimo/mavenplugins/car/AbstractCarMojo.java Wed Apr 16 00:52:51 2008
@@ -27,16 +27,24 @@
 import java.util.List;
 import java.util.Map;
 import java.util.Properties;
+import java.util.Set;
+import java.util.Collections;
 
 import org.apache.maven.artifact.Artifact;
+import org.apache.maven.artifact.factory.ArtifactFactory;
+import org.apache.maven.artifact.resolver.ArtifactResolutionException;
+import org.apache.maven.artifact.resolver.ArtifactResolutionResult;
 import org.apache.maven.artifact.repository.ArtifactRepository;
 import org.apache.maven.plugin.MojoExecutionException;
 import org.apache.maven.plugin.MojoFailureException;
 import org.apache.maven.project.MavenProject;
 import org.apache.maven.project.MavenProjectHelper;
+import org.apache.maven.project.ProjectBuildingException;
+import org.apache.maven.project.artifact.InvalidDependencyVersionException;
 import org.codehaus.mojo.pluginsupport.MojoSupport;
 import org.codehaus.mojo.pluginsupport.dependency.DependencyHelper;
 import org.codehaus.mojo.pluginsupport.dependency.DependencyTree;
+import org.codehaus.mojo.pluginsupport.dependency.DependencyResolutionListener;
 import org.codehaus.mojo.pluginsupport.dependency.DependencyTree.Node;
 import org.codehaus.mojo.pluginsupport.util.ArtifactItem;
 
@@ -81,7 +89,14 @@
      * @component
      */
     protected DependencyHelper dependencyHelper = null;
-    
+    /**
+     * @component
+     * @required
+     * @readonly
+     */
+    protected ArtifactFactory artifactFactory;
+    protected Set<Artifact> dependencies;// = new DependencyTree();
+
     //
     // MojoSupport Hooks
     //
@@ -110,63 +125,27 @@
     /**
      * Generates a properties file with explicit versions of artifacts of the current project transitivly.
      */
-    protected void generateExplicitVersionProperties(final File outputFile, DependencyTree dependencies) throws MojoExecutionException, IOException {
+    protected void generateExplicitVersionProperties(final File outputFile, Set<org.apache.maven.artifact.Artifact> dependencies) throws MojoExecutionException, IOException {
         log.debug("Generating explicit version properties: " + outputFile);
 
         // Generate explicit_versions for all our dependencies...
         Properties props = new Properties();
-        
-        try {
 
-            Node root = dependencies.getRootNode();
-            
-            // Skip the root node
-            Iterator children = root.getChildren().iterator();
-            while (children.hasNext()) {
-                Node child = (Node) children.next();
-                appendExplicitVersionProperties(child, props);
+        for (org.apache.maven.artifact.Artifact artifact: dependencies) {
+            String name = artifact.getGroupId() + "/" + artifact.getArtifactId() + "//" + artifact.getType();
+            String value = artifact.getGroupId() + "/" + artifact.getArtifactId() + "/" + artifact.getVersion() + "/" + artifact.getType();
+
+            if (log.isDebugEnabled()) {
+                log.debug("Setting " + name + "=" + value);
             }
+            props.setProperty(name, value);
         }
-        catch (Exception e) {
-            throw new MojoExecutionException("Failed to determine project dependencies", e);
-        }
-        
         BufferedOutputStream output = new BufferedOutputStream(new FileOutputStream(outputFile));
         props.store(output, null);
         output.flush();
         output.close();
     }
-    
-    private void appendExplicitVersionProperties(final Node node, final Properties props) {
-        assert node != null;
-        assert props != null;
-        
-        Artifact artifact = node.getArtifact();
-        if ("test".equals(artifact.getScope())) {
-            if (log.isDebugEnabled()) {
-                log.debug("Skipping artifact with scope test: " + artifact);
-            }
-            return;
-        }
-        
-        String name = artifact.getGroupId() + "/" + artifact.getArtifactId() + "//" + artifact.getType();
-        String value = artifact.getGroupId() + "/" + artifact.getArtifactId() + "/" + artifact.getVersion() + "/" + artifact.getType();
-        
-        if (log.isDebugEnabled()) {
-            log.debug("Setting " + name + "=" + value);
-        }
-        props.setProperty(name, value);
-        
-        if (!node.getChildren().isEmpty()) {
-            Iterator children = node.getChildren().iterator();
-            
-            while (children.hasNext()) {
-                Node child = (Node) children.next();
-                appendExplicitVersionProperties(child, props);
-            }
-        }
-    }
-
+   
     protected static File getArchiveFile(final File basedir, final String finalName, String classifier) {
         if (classifier == null) {
             classifier = "";
@@ -246,6 +225,26 @@
             return false;
         }
         return true;
+    }
+
+    protected void getDependencies(MavenProject project) throws ProjectBuildingException, InvalidDependencyVersionException, ArtifactResolutionException {
+        Map managedVersions = DependencyHelper.getManagedVersionMap(project, artifactFactory);
+
+        if (project.getDependencyArtifacts() == null) {
+            project.setDependencyArtifacts(project.createArtifacts(artifactFactory, null, null));
+        }
+
+        ArtifactResolutionResult artifactResolutionResult = dependencyHelper.getArtifactCollector().collect(
+                project.getDependencyArtifacts(),
+                project.getArtifact(),
+                managedVersions,
+                getArtifactRepository(),
+                project.getRemoteArtifactRepositories(),
+                dependencyHelper.getArtifactMetadataSource(),
+                null,
+                Collections.emptyList());
+
+        dependencies = artifactResolutionResult.getArtifacts();
     }
 
     protected class ArtifactLookupImpl

Modified: geronimo/server/trunk/buildsupport/car-maven-plugin/src/main/java/org/apache/geronimo/mavenplugins/car/InstallModulesMojo.java
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/buildsupport/car-maven-plugin/src/main/java/org/apache/geronimo/mavenplugins/car/InstallModulesMojo.java?rev=648603&r1=648602&r2=648603&view=diff
==============================================================================
--- geronimo/server/trunk/buildsupport/car-maven-plugin/src/main/java/org/apache/geronimo/mavenplugins/car/InstallModulesMojo.java (original)
+++ geronimo/server/trunk/buildsupport/car-maven-plugin/src/main/java/org/apache/geronimo/mavenplugins/car/InstallModulesMojo.java Wed Apr 16 00:52:51 2008
@@ -135,7 +135,7 @@
     private Set installedArtifacts = new HashSet();
 
     protected void doExecute() throws Exception {
-        DependencyTree dependencies = dependencyHelper.getDependencies(project);
+        getDependencies(project);
         Maven2RepositoryAdapter.ArtifactLookup lookup = new ArtifactLookupImpl(new HashMap<Artifact, org.apache.maven.artifact.Artifact>());
         SourceRepository sourceRepo = new Maven2RepositoryAdapter(dependencies, lookup);
         PluginListType pluginList = new PluginListType();

Modified: geronimo/server/trunk/buildsupport/car-maven-plugin/src/main/java/org/apache/geronimo/mavenplugins/car/Maven2RepositoryAdapter.java
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/buildsupport/car-maven-plugin/src/main/java/org/apache/geronimo/mavenplugins/car/Maven2RepositoryAdapter.java?rev=648603&r1=648602&r2=648603&view=diff
==============================================================================
--- geronimo/server/trunk/buildsupport/car-maven-plugin/src/main/java/org/apache/geronimo/mavenplugins/car/Maven2RepositoryAdapter.java (original)
+++ geronimo/server/trunk/buildsupport/car-maven-plugin/src/main/java/org/apache/geronimo/mavenplugins/car/Maven2RepositoryAdapter.java Wed Apr 16 00:52:51 2008
@@ -21,7 +21,7 @@
 
 import java.io.File;
 import java.io.IOException;
-import java.util.Iterator;
+import java.util.Set;
 import java.util.SortedSet;
 import java.util.TreeSet;
 
@@ -37,7 +37,6 @@
 import org.apache.geronimo.system.plugin.SourceRepository;
 import org.apache.geronimo.system.plugin.model.PluginListType;
 import org.apache.geronimo.system.repository.Maven2Repository;
-import org.codehaus.mojo.pluginsupport.dependency.DependencyTree;
 
 /**
  * Helps adapt Geronimo repositories to Maven repositories for packaging building.
@@ -47,9 +46,9 @@
 public class Maven2RepositoryAdapter extends Maven2Repository implements SourceRepository {
     private ArtifactLookup lookup;
 
-    private DependencyTree dependencyTree;
+    private Set<org.apache.maven.artifact.Artifact> dependencyTree;
 
-    public Maven2RepositoryAdapter(DependencyTree dependencyTree, final ArtifactLookup lookup) {
+    public Maven2RepositoryAdapter(Set<org.apache.maven.artifact.Artifact> dependencyTree, final ArtifactLookup lookup) {
         super(lookup.getBasedir());
         this.dependencyTree = dependencyTree;
         this.lookup = lookup;
@@ -63,23 +62,21 @@
 
     public SortedSet list() {
         TreeSet<Artifact> list = new TreeSet<Artifact>();
-        listInternal(list, dependencyTree.getRootNode(), null, null, null, null);
+        listInternal(list, null, null, null, null);
         return list;
     }
 
     public SortedSet list(Artifact query) {
         TreeSet<Artifact> list = new TreeSet<Artifact>();
-        listInternal(list, dependencyTree.getRootNode(), query.getGroupId(), query.getArtifactId(), query.getVersion(), query.getType());
+        listInternal(list, query.getGroupId(), query.getArtifactId(), query.getVersion(), query.getType());
         return list;
     }
 
-    private void listInternal(TreeSet<Artifact> list, DependencyTree.Node node, String groupId, String artifactId, Version version, String type) {
-        if (matches(node.getArtifact(), groupId, artifactId, version, type)) {
-            list.add(mavenToGeronimoArtifact(node.getArtifact()));
-        }
-        for (Iterator iterator = node.getChildren().iterator(); iterator.hasNext();) {
-            DependencyTree.Node childNode = (DependencyTree.Node) iterator.next();
-            listInternal(list, childNode, groupId, artifactId, version, type);
+    private void listInternal(TreeSet<Artifact> list, String groupId, String artifactId, Version version, String type) {
+        for (org.apache.maven.artifact.Artifact artifact: dependencyTree) {
+            if (matches(artifact, groupId, artifactId, version, type)) {
+                list.add(mavenToGeronimoArtifact(artifact));
+            }
         }
     }
 
@@ -132,7 +129,7 @@
     static {
         GBeanInfoBuilder infoFactory = GBeanInfoBuilder.createStatic(Maven2RepositoryAdapter.class, "Repository");
         infoFactory.addAttribute("lookup", ArtifactLookup.class, true);
-        infoFactory.addAttribute("dependencies", DependencyTree.class, true);
+        infoFactory.addAttribute("dependencies", Set.class, true);
         infoFactory.setConstructor(new String[]{"dependencies", "lookup"});
         GBEAN_INFO = infoFactory.getBeanInfo();
     }

Modified: geronimo/server/trunk/buildsupport/car-maven-plugin/src/main/java/org/apache/geronimo/mavenplugins/car/PackageMojo.java
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/buildsupport/car-maven-plugin/src/main/java/org/apache/geronimo/mavenplugins/car/PackageMojo.java?rev=648603&r1=648602&r2=648603&view=diff
==============================================================================
--- geronimo/server/trunk/buildsupport/car-maven-plugin/src/main/java/org/apache/geronimo/mavenplugins/car/PackageMojo.java (original)
+++ geronimo/server/trunk/buildsupport/car-maven-plugin/src/main/java/org/apache/geronimo/mavenplugins/car/PackageMojo.java Wed Apr 16 00:52:51 2008
@@ -21,7 +21,6 @@
 
 import java.io.File;
 import java.net.URI;
-import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.HashMap;
 import java.util.HashSet;
@@ -51,13 +50,8 @@
 import org.apache.geronimo.system.configuration.RepositoryConfigurationStore;
 import org.apache.geronimo.system.repository.Maven2Repository;
 import org.apache.geronimo.system.resolver.ExplicitDefaultArtifactResolver;
-import org.apache.maven.archiver.MavenArchiveConfiguration;
 import org.apache.maven.artifact.Artifact;
-import org.apache.maven.artifact.factory.ArtifactFactory;
-import org.apache.maven.project.MavenProject;
-import org.codehaus.mojo.pluginsupport.dependency.DependencyTree;
 import org.codehaus.mojo.pluginsupport.util.ArtifactItem;
-import org.codehaus.plexus.archiver.jar.JarArchiver;
 import org.codehaus.plexus.util.FileUtils;
 
 /**
@@ -72,13 +66,6 @@
     extends AbstractCarMojo
 {
 
-    /**
-     * @component
-     * @required
-     * @readonly
-     */
-    private ArtifactFactory artifactFactory;
-
 
     /**
      * Directory containing the generated archive.
@@ -224,25 +211,7 @@
             log.debug("Using module file: " + moduleFile);
         }
 
-        MavenProject depsProject = new MavenProject(project);
-        List<org.apache.maven.model.Dependency> projectDeps = new ArrayList<org.apache.maven.model.Dependency>();
-        for (org.apache.maven.model.Dependency dep: (List<org.apache.maven.model.Dependency>)project.getDependencies()) {
-            org.apache.maven.model.Dependency newDep = new org.apache.maven.model.Dependency();
-            newDep.setArtifactId(dep.getArtifactId());
-            newDep.setGroupId(dep.getGroupId());
-            newDep.setClassifier(dep.getClassifier());
-            newDep.setExclusions(dep.getExclusions());
-            newDep.setOptional(dep.isOptional());
-            newDep.setSystemPath(dep.getSystemPath());
-            newDep.setType(dep.getType());
-            newDep.setVersion(dep.getVersion());
- // don't copy scope
-
-            projectDeps.add(newDep);
-        }
-        depsProject.setDependencies(projectDeps);
-        depsProject.setDependencyArtifacts(depsProject.createArtifacts(artifactFactory, null, null));
-        dependencies.setRootNode(dependencyHelper.getDependencies(depsProject).getRootNode());
+        getDependencies(project);
 
         generateExplicitVersionProperties(explicitResolutionProperties, dependencies);
 
@@ -307,8 +276,6 @@
     private AbstractName targetRepositoryAName;
 
     private boolean targetSet;
-
-    private DependencyTree dependencies = new DependencyTree();
 
     public void buildPackage() throws Exception {
         log.info("Packaging module configuration: " + planFile);

Modified: geronimo/server/trunk/pom.xml
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/pom.xml?rev=648603&r1=648602&r2=648603&view=diff
==============================================================================
--- geronimo/server/trunk/pom.xml (original)
+++ geronimo/server/trunk/pom.xml Wed Apr 16 00:52:51 2008
@@ -2155,7 +2155,7 @@
                                 
                                 <!-- Require Maven 2.0.5 - 2.0.7, 2.0.8+ currently barfs -->
                                 <requireMavenVersion>
-                                    <version>[2.0.5,2.0.7]</version>
+                                    <version>[2.0.5,2.0.9]</version>
                                 </requireMavenVersion>
                             </rules>
                         </configuration>



Re: svn commit: r648603 - in /geronimo/server/trunk: ./ buildsupport/car-maven-plugin/src/main/java/org/apache/geronimo/mavenplugins/car/

Posted by David Jencks <da...@yahoo.com>.
On Apr 16, 2008, at 2:47 AM, Jacek Laskowski wrote:

> On Wed, Apr 16, 2008 at 9:52 AM,  <dj...@apache.org> wrote:
>> Author: djencks
>>  Date: Wed Apr 16 00:52:51 2008
>>  New Revision: 648603
>>
>>  URL: http://svn.apache.org/viewvc?rev=648603&view=rev
>>  Log:
>>  GERONIMO-3705 fix build to work with maven 2.0.9
> ....
>>  +            if (log.isDebugEnabled()) {
>>  +                log.debug("Setting " + name + "=" + value);
>>              }
>
> How should I run the plugin to see this printed out? Is -X enough?
> (I'm asking before trying out myself hoping others might benefit too).
>

Yes! that works.

thanks
david jencks

> Jacek
>
> -- 
> Jacek Laskowski
> http://www.JacekLaskowski.pl


Re: svn commit: r648603 - in /geronimo/server/trunk: ./ buildsupport/car-maven-plugin/src/main/java/org/apache/geronimo/mavenplugins/car/

Posted by Jacek Laskowski <ja...@laskowski.net.pl>.
On Wed, Apr 16, 2008 at 9:52 AM,  <dj...@apache.org> wrote:
> Author: djencks
>  Date: Wed Apr 16 00:52:51 2008
>  New Revision: 648603
>
>  URL: http://svn.apache.org/viewvc?rev=648603&view=rev
>  Log:
>  GERONIMO-3705 fix build to work with maven 2.0.9
....
>  +            if (log.isDebugEnabled()) {
>  +                log.debug("Setting " + name + "=" + value);
>              }

How should I run the plugin to see this printed out? Is -X enough?
(I'm asking before trying out myself hoping others might benefit too).

Jacek

-- 
Jacek Laskowski
http://www.JacekLaskowski.pl