You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@karaf.apache.org by pi...@apache.org on 2011/02/05 18:57:49 UTC

svn commit: r1067472 - /karaf/branches/karaf-2.1.x/tooling/features-maven-plugin/src/main/java/org/apache/karaf/tooling/features/AddFeaturesToRepoMojo.java

Author: pieber
Date: Sat Feb  5 17:57:49 2011
New Revision: 1067472

URL: http://svn.apache.org/viewvc?rev=1067472&view=rev
Log:
[KARAF-422] features-maven-plugin supports automatic version of plugins now; thanks to Stephane Chomat

Signed-off-by: Andreas Pieber <an...@gmail.com>

Modified:
    karaf/branches/karaf-2.1.x/tooling/features-maven-plugin/src/main/java/org/apache/karaf/tooling/features/AddFeaturesToRepoMojo.java

Modified: karaf/branches/karaf-2.1.x/tooling/features-maven-plugin/src/main/java/org/apache/karaf/tooling/features/AddFeaturesToRepoMojo.java
URL: http://svn.apache.org/viewvc/karaf/branches/karaf-2.1.x/tooling/features-maven-plugin/src/main/java/org/apache/karaf/tooling/features/AddFeaturesToRepoMojo.java?rev=1067472&r1=1067471&r2=1067472&view=diff
==============================================================================
--- karaf/branches/karaf-2.1.x/tooling/features-maven-plugin/src/main/java/org/apache/karaf/tooling/features/AddFeaturesToRepoMojo.java (original)
+++ karaf/branches/karaf-2.1.x/tooling/features-maven-plugin/src/main/java/org/apache/karaf/tooling/features/AddFeaturesToRepoMojo.java Sat Feb  5 17:57:49 2011
@@ -40,6 +40,7 @@ import javax.xml.parsers.ParserConfigura
 import org.apache.maven.artifact.Artifact;
 import org.apache.maven.artifact.resolver.ArtifactNotFoundException;
 import org.apache.maven.artifact.resolver.ArtifactResolutionException;
+import org.apache.maven.model.Dependency;
 import org.apache.maven.plugin.MojoExecutionException;
 import org.apache.maven.plugin.MojoFailureException;
 import org.w3c.dom.Document;
@@ -61,6 +62,13 @@ import org.xml.sax.SAXException;
 public class AddFeaturesToRepoMojo extends MojoSupport {
 
     /**
+     * The artifact type of a feature
+     * 
+     * @parameter default-value="xml"
+     */
+    private String featureArtifactType = "xml";
+    
+    /**
      * @parameter
      */
     private List<String> descriptors;
@@ -100,6 +108,17 @@ public class AddFeaturesToRepoMojo exten
      */
     private boolean addTransitiveFeatures = true;
 
+    private Dependency findDependency(List<Dependency> dependencies, String artifactId, String groupId) {
+    	for(Dependency dep : dependencies) {
+    		if (artifactId.equals(dep.getArtifactId()) && groupId.equals(dep.getGroupId()) &&
+    				featureArtifactType.equals(dep.getType())) {
+    			if (dep.getVersion() != null) 
+    				return dep;
+    		}
+    	}
+    	return null;
+    }
+    
     public void execute() throws MojoExecutionException, MojoFailureException {
         try {
             Map<String, Feature> featuresMap = new HashMap<String, Feature>();
@@ -178,6 +197,18 @@ public class AddFeaturesToRepoMojo exten
                             classifier = parts[4];
                         }
                     }
+                } else {
+                	Dependency dep = findDependency(project.getDependencies(), artifactId, groupId);
+                	if (dep == null && project.getDependencyManagement() != null) {
+                		dep = findDependency(project.getDependencyManagement().getDependencies(), artifactId, groupId);
+                	}
+                	if (dep != null) {
+                		version = dep.getVersion();
+            			classifier = dep.getClassifier();
+                	}
+                }
+                if (version == null || version.isEmpty()) {
+                	throw new MojoExecutionException("Cannot found version for: " + bundle);
                 }
                 String dir = groupId.replace('.', '/') + "/" + artifactId + "/" + version + "/";
                 String name = artifactId + "-" + version + (classifier != null ? "-" + classifier : "") + "." + type;