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/08/13 09:02:38 UTC

svn commit: r685468 - in /geronimo/server/trunk/buildsupport/car-maven-plugin/src/main/java/org/apache/geronimo/mavenplugins/car: AbstractCarMojo.java Dependency.java ModuleId.java PlanProcessorMojo.java PluginMetadataGeneratorMojo.java

Author: djencks
Date: Wed Aug 13 00:02:37 2008
New Revision: 685468

URL: http://svn.apache.org/viewvc?rev=685468&view=rev
Log:
GERONIMO-4239 c-m-p dependencies enhance maven dependencies with g-specific info

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/Dependency.java
    geronimo/server/trunk/buildsupport/car-maven-plugin/src/main/java/org/apache/geronimo/mavenplugins/car/ModuleId.java
    geronimo/server/trunk/buildsupport/car-maven-plugin/src/main/java/org/apache/geronimo/mavenplugins/car/PlanProcessorMojo.java
    geronimo/server/trunk/buildsupport/car-maven-plugin/src/main/java/org/apache/geronimo/mavenplugins/car/PluginMetadataGeneratorMojo.java

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=685468&r1=685467&r2=685468&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 Aug 13 00:02:37 2008
@@ -29,8 +29,11 @@
 import java.util.Map;
 import java.util.Properties;
 import java.util.Set;
+import java.util.LinkedHashSet;
+import java.util.HashMap;
+import java.util.Collection;
 
-import org.apache.geronimo.kernel.repository.ImportType;
+import org.apache.geronimo.kernel.repository.*;
 import org.apache.maven.artifact.Artifact;
 import org.apache.maven.artifact.factory.ArtifactFactory;
 import org.apache.maven.artifact.metadata.ArtifactMetadataSource;
@@ -44,6 +47,7 @@
 import org.apache.maven.plugin.logging.Log;
 import org.apache.maven.plugin.logging.SystemStreamLog;
 import org.apache.maven.project.MavenProject;
+import org.apache.maven.project.ProjectBuildingException;
 import org.apache.maven.project.artifact.InvalidDependencyVersionException;
 import org.apache.maven.shared.dependency.tree.DependencyNode;
 import org.apache.maven.shared.dependency.tree.DependencyTreeResolutionListener;
@@ -300,6 +304,53 @@
         return new org.apache.geronimo.kernel.repository.Artifact(groupId, artifactId, version, type);
     }
 
+    protected LinkedHashSet<Dependency> toDependencies(Collection<Dependency> listedDependencies, UseMavenDependencies useMavenDependencies) throws InvalidDependencyVersionException, ArtifactResolutionException, ProjectBuildingException, MojoExecutionException {
+        LinkedHashSet<Dependency> dependencies = new LinkedHashSet<Dependency>();
+
+        if (useMavenDependencies == null || !useMavenDependencies.isValue()) {
+            dependencies.addAll(listedDependencies);
+        } else {
+            Map<String, Dependency> explicitDependencyMap = new HashMap<String, Dependency>();
+            for (Dependency dependency : dependencies) {
+                explicitDependencyMap.put(getKey(dependency), dependency);
+            }
+
+
+            getDependencies(project, useMavenDependencies.isUseTransitiveDependencies());
+            for (org.apache.maven.artifact.Artifact artifact: localDependencies) {
+                Dependency explicitDependency = explicitDependencyMap.get(getKey(artifact));
+                dependencies.add(toDependency(artifact, useMavenDependencies.isIncludeVersion(), explicitDependency));
+            }
+        }
+
+        return dependencies;
+    }
+
+    private Dependency toDependency(Artifact artifact, boolean includeVersion, Dependency explicitDependency) {
+        Dependency dependency = new Dependency();
+        dependency.setGroupId(artifact.getGroupId());
+        dependency.setArtifactId(artifact.getArtifactId());
+        dependency.setVersion(includeVersion ? artifact.getVersion() : null);
+        dependency.setType(artifact.getType());
+        String importType = ImportType.ALL.getName();
+        if (explicitDependency != null && explicitDependency.getImport() != null) {
+            importType = explicitDependency.getImport();
+        }
+        dependency.setImport(importType);
+        if (explicitDependency != null) {
+            dependency.setStart(explicitDependency.isStart());
+        }
+        return dependency;
+    }
+
+    private String getKey(Dependency dependency) {
+        return dependency.getGroupId() + "/" + dependency.getArtifactId() + "/" + dependency.getType();
+    }
+    private String getKey(Artifact dependency) {
+        return dependency.getGroupId() + "/" + dependency.getArtifactId() + "/" + dependency.getType();
+    }
+
+
     private static class Scanner {
         private static enum Accept {
             ACCEPT(true, true),

Modified: geronimo/server/trunk/buildsupport/car-maven-plugin/src/main/java/org/apache/geronimo/mavenplugins/car/Dependency.java
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/buildsupport/car-maven-plugin/src/main/java/org/apache/geronimo/mavenplugins/car/Dependency.java?rev=685468&r1=685467&r2=685468&view=diff
==============================================================================
--- geronimo/server/trunk/buildsupport/car-maven-plugin/src/main/java/org/apache/geronimo/mavenplugins/car/Dependency.java (original)
+++ geronimo/server/trunk/buildsupport/car-maven-plugin/src/main/java/org/apache/geronimo/mavenplugins/car/Dependency.java Wed Aug 13 00:02:37 2008
@@ -41,6 +41,10 @@
         return start;
     }
 
+    public void setStart(Boolean start) {
+        this.start = start;
+    }
+
     public DependencyType toDependencyType() {
         DependencyType dependency = new DependencyType();
         dependency.setGroupId(groupId);

Modified: geronimo/server/trunk/buildsupport/car-maven-plugin/src/main/java/org/apache/geronimo/mavenplugins/car/ModuleId.java
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/buildsupport/car-maven-plugin/src/main/java/org/apache/geronimo/mavenplugins/car/ModuleId.java?rev=685468&r1=685467&r2=685468&view=diff
==============================================================================
--- geronimo/server/trunk/buildsupport/car-maven-plugin/src/main/java/org/apache/geronimo/mavenplugins/car/ModuleId.java (original)
+++ geronimo/server/trunk/buildsupport/car-maven-plugin/src/main/java/org/apache/geronimo/mavenplugins/car/ModuleId.java Wed Aug 13 00:02:37 2008
@@ -73,6 +73,22 @@
         return importType;
     }
 
+    public void setGroupId(String groupId) {
+        this.groupId = groupId;
+    }
+
+    public void setArtifactId(String artifactId) {
+        this.artifactId = artifactId;
+    }
+
+    public void setVersion(String version) {
+        this.version = version;
+    }
+
+    public void setType(String type) {
+        this.type = type;
+    }
+
     public ArtifactType toArtifactType() {
         ArtifactType artifact = new ArtifactType();
         artifact.setGroupId(groupId);

Modified: geronimo/server/trunk/buildsupport/car-maven-plugin/src/main/java/org/apache/geronimo/mavenplugins/car/PlanProcessorMojo.java
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/buildsupport/car-maven-plugin/src/main/java/org/apache/geronimo/mavenplugins/car/PlanProcessorMojo.java?rev=685468&r1=685467&r2=685468&view=diff
==============================================================================
--- geronimo/server/trunk/buildsupport/car-maven-plugin/src/main/java/org/apache/geronimo/mavenplugins/car/PlanProcessorMojo.java (original)
+++ geronimo/server/trunk/buildsupport/car-maven-plugin/src/main/java/org/apache/geronimo/mavenplugins/car/PlanProcessorMojo.java Wed Aug 13 00:02:37 2008
@@ -158,7 +158,7 @@
 
             XmlObject doc = XmlObject.Factory.parse(plan);
             XmlCursor xmlCursor = doc.newCursor();
-            LinkedHashSet<org.apache.geronimo.kernel.repository.Dependency> dependencies = toDependencies(this.dependencies, useMavenDependencies);
+            LinkedHashSet<org.apache.geronimo.kernel.repository.Dependency> dependencies = toKernelDependencies(this.dependencies, useMavenDependencies);
             Artifact configId = new Artifact(project.getGroupId(), project.getArtifactId(), project.getVersion(), "car");
 
             try {
@@ -265,22 +265,13 @@
         }
     }
 
-    protected LinkedHashSet<org.apache.geronimo.kernel.repository.Dependency> toDependencies(List<Dependency> listedDependencies, UseMavenDependencies useMavenDependencies) throws InvalidDependencyVersionException, ArtifactResolutionException, ProjectBuildingException, MojoExecutionException {
-        LinkedHashSet<org.apache.geronimo.kernel.repository.Dependency> dependencies = new LinkedHashSet<org.apache.geronimo.kernel.repository.Dependency>();
-
-        if (useMavenDependencies == null || !useMavenDependencies.isValue()) {
-            for (Dependency dependency : listedDependencies) {
-                org.apache.geronimo.kernel.repository.Dependency gdep = dependency.toDependency();
-                dependencies.add(gdep);
-            }
-        } else {
-            getDependencies(project, useMavenDependencies.isUseTransitiveDependencies());
-            for (org.apache.maven.artifact.Artifact artifact: localDependencies) {
-                dependencies.add(toGeronimoDependency(artifact, useMavenDependencies.isIncludeVersion()));
-            }
+    protected LinkedHashSet<org.apache.geronimo.kernel.repository.Dependency> toKernelDependencies(List<Dependency> listedDependencies, UseMavenDependencies useMavenDependencies) throws InvalidDependencyVersionException, ArtifactResolutionException, ProjectBuildingException, MojoExecutionException {
+        LinkedHashSet<org.apache.geronimo.kernel.repository.Dependency> kernelDependencies = new LinkedHashSet<org.apache.geronimo.kernel.repository.Dependency>();
+        LinkedHashSet<Dependency> dependencies = toDependencies(listedDependencies, useMavenDependencies);
+        for (Dependency dependency: dependencies) {
+            kernelDependencies.add(dependency.toDependency());
         }
-
-        return dependencies;
+        return kernelDependencies;
     }
 
 

Modified: geronimo/server/trunk/buildsupport/car-maven-plugin/src/main/java/org/apache/geronimo/mavenplugins/car/PluginMetadataGeneratorMojo.java
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/buildsupport/car-maven-plugin/src/main/java/org/apache/geronimo/mavenplugins/car/PluginMetadataGeneratorMojo.java?rev=685468&r1=685467&r2=685468&view=diff
==============================================================================
--- geronimo/server/trunk/buildsupport/car-maven-plugin/src/main/java/org/apache/geronimo/mavenplugins/car/PluginMetadataGeneratorMojo.java (original)
+++ geronimo/server/trunk/buildsupport/car-maven-plugin/src/main/java/org/apache/geronimo/mavenplugins/car/PluginMetadataGeneratorMojo.java Wed Aug 13 00:02:37 2008
@@ -26,6 +26,9 @@
 import java.io.StringReader;
 import java.util.Collections;
 import java.util.List;
+import java.util.Map;
+import java.util.HashMap;
+import java.util.LinkedHashSet;
 
 import org.apache.geronimo.kernel.config.InvalidConfigException;
 import org.apache.geronimo.kernel.config.NoSuchConfigException;
@@ -244,27 +247,10 @@
     }
 
     private void addDependencies(PluginArtifactType instance) throws InvalidConfigException, IOException, NoSuchConfigException, InvalidDependencyVersionException, ArtifactResolutionException, ProjectBuildingException, MojoExecutionException {
-        if (useMavenDependencies == null || !useMavenDependencies.isValue()) {
-            for (Dependency dependency : dependencies) {
-                instance.getDependency().add(dependency.toDependencyType());
-            }
-        } else {
-            getDependencies(project, useMavenDependencies.isUseTransitiveDependencies());
-            for (org.apache.maven.artifact.Artifact artifact: localDependencies) {
-                instance.getDependency().add(toDependencyType(toGeronimoDependency(artifact, useMavenDependencies.isIncludeVersion())));
-            }
+        LinkedHashSet<Dependency> resolvedDependencies = toDependencies(dependencies, useMavenDependencies);
+        for (Dependency dependency: resolvedDependencies) {
+            instance.getDependency().add(dependency.toDependencyType());
         }
     }
 
-    private DependencyType toDependencyType(org.apache.geronimo.kernel.repository.Dependency dependency) {
-        DependencyType dependencyType = new DependencyType();
-        dependencyType.setGroupId(dependency.getArtifact().getGroupId());
-        dependencyType.setArtifactId(dependency.getArtifact().getArtifactId());
-        if (dependency.getArtifact().getVersion() != null) {
-            dependencyType.setVersion(dependency.getArtifact().getVersion().toString());
-        }
-        dependencyType.setType(dependency.getArtifact().getType());
-        dependencyType.setStart(true);
-        return dependencyType;
-    }
 }