You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by cz...@apache.org on 2015/04/10 13:56:11 UTC

svn commit: r1672622 - in /sling/trunk/tooling/maven/slingstart-maven-plugin/src/main/java/org/apache/sling/maven/slingstart: DependencyLifecycleParticipant.java ModelUtils.java PrepareSlingStartMojo.java

Author: cziegeler
Date: Fri Apr 10 11:56:11 2015
New Revision: 1672622

URL: http://svn.apache.org/r1672622
Log:
Get dependent projects from build if build in the same build

Modified:
    sling/trunk/tooling/maven/slingstart-maven-plugin/src/main/java/org/apache/sling/maven/slingstart/DependencyLifecycleParticipant.java
    sling/trunk/tooling/maven/slingstart-maven-plugin/src/main/java/org/apache/sling/maven/slingstart/ModelUtils.java
    sling/trunk/tooling/maven/slingstart-maven-plugin/src/main/java/org/apache/sling/maven/slingstart/PrepareSlingStartMojo.java

Modified: sling/trunk/tooling/maven/slingstart-maven-plugin/src/main/java/org/apache/sling/maven/slingstart/DependencyLifecycleParticipant.java
URL: http://svn.apache.org/viewvc/sling/trunk/tooling/maven/slingstart-maven-plugin/src/main/java/org/apache/sling/maven/slingstart/DependencyLifecycleParticipant.java?rev=1672622&r1=1672621&r2=1672622&view=diff
==============================================================================
--- sling/trunk/tooling/maven/slingstart-maven-plugin/src/main/java/org/apache/sling/maven/slingstart/DependencyLifecycleParticipant.java (original)
+++ sling/trunk/tooling/maven/slingstart-maven-plugin/src/main/java/org/apache/sling/maven/slingstart/DependencyLifecycleParticipant.java Fri Apr 10 11:56:11 2015
@@ -25,8 +25,12 @@ import java.util.Map;
 import org.apache.maven.AbstractMavenLifecycleParticipant;
 import org.apache.maven.MavenExecutionException;
 import org.apache.maven.artifact.Artifact;
+import org.apache.maven.artifact.DefaultArtifact;
 import org.apache.maven.artifact.handler.manager.ArtifactHandlerManager;
+import org.apache.maven.artifact.resolver.ArtifactNotFoundException;
+import org.apache.maven.artifact.resolver.ArtifactResolutionException;
 import org.apache.maven.artifact.resolver.ArtifactResolver;
+import org.apache.maven.artifact.versioning.VersionRange;
 import org.apache.maven.execution.MavenSession;
 import org.apache.maven.model.Dependency;
 import org.apache.maven.model.Plugin;
@@ -106,7 +110,7 @@ public class DependencyLifecycleParticip
                     allDependencies.add(key + ":" + d.getClassifier() + ":" + d.getType());
                 } else {
                     // "external" dependency, we can already resolve it
-                    final File modelFile = ModelUtils.getSlingstartArtifact(artifactHandlerManager, resolver, project, session, d);
+                    final File modelFile = getSlingstartArtifact(artifactHandlerManager, resolver, project, session, d);
                     resolvedModelDependencies.add(modelFile);
                     allDependencies.add(modelFile);
                 }
@@ -187,4 +191,27 @@ public class DependencyLifecycleParticip
             return defaultValue;
         }
     }
+
+    private static File getSlingstartArtifact(final ArtifactHandlerManager artifactHandlerManager,
+            final ArtifactResolver resolver,
+            final MavenProject project,
+            final MavenSession session,
+            final Dependency d)
+    throws MavenExecutionException {
+        final Artifact prjArtifact = new DefaultArtifact(d.getGroupId(),
+                d.getArtifactId(),
+                VersionRange.createFromVersion(d.getVersion()),
+                Artifact.SCOPE_PROVIDED,
+                d.getType(),
+                d.getClassifier(),
+                artifactHandlerManager.getArtifactHandler(d.getType()));
+        try {
+            resolver.resolve(prjArtifact, project.getRemoteArtifactRepositories(), session.getLocalRepository());
+        } catch (final ArtifactResolutionException e) {
+            throw new MavenExecutionException("Unable to get artifact for " + d, e);
+        } catch (final ArtifactNotFoundException e) {
+            throw new MavenExecutionException("Unable to get artifact for " + d, e);
+        }
+        return prjArtifact.getFile();
+    }
 }

Modified: sling/trunk/tooling/maven/slingstart-maven-plugin/src/main/java/org/apache/sling/maven/slingstart/ModelUtils.java
URL: http://svn.apache.org/viewvc/sling/trunk/tooling/maven/slingstart-maven-plugin/src/main/java/org/apache/sling/maven/slingstart/ModelUtils.java?rev=1672622&r1=1672621&r2=1672622&view=diff
==============================================================================
--- sling/trunk/tooling/maven/slingstart-maven-plugin/src/main/java/org/apache/sling/maven/slingstart/ModelUtils.java (original)
+++ sling/trunk/tooling/maven/slingstart-maven-plugin/src/main/java/org/apache/sling/maven/slingstart/ModelUtils.java Fri Apr 10 11:56:11 2015
@@ -28,7 +28,6 @@ import java.util.Map;
 import java.util.Set;
 
 import org.apache.commons.io.IOUtils;
-import org.apache.maven.MavenExecutionException;
 import org.apache.maven.artifact.Artifact;
 import org.apache.maven.artifact.DefaultArtifact;
 import org.apache.maven.artifact.handler.manager.ArtifactHandlerManager;
@@ -202,29 +201,6 @@ public abstract class ModelUtils {
         return result;
     }
 
-    public static File getSlingstartArtifact(final ArtifactHandlerManager artifactHandlerManager,
-            final ArtifactResolver resolver,
-            final MavenProject project,
-            final MavenSession session,
-            final Dependency d)
-    throws MavenExecutionException {
-        final Artifact prjArtifact = new DefaultArtifact(d.getGroupId(),
-                d.getArtifactId(),
-                VersionRange.createFromVersion(d.getVersion()),
-                Artifact.SCOPE_PROVIDED,
-                d.getType(),
-                d.getClassifier(),
-                artifactHandlerManager.getArtifactHandler(d.getType()));
-        try {
-            resolver.resolve(prjArtifact, project.getRemoteArtifactRepositories(), session.getLocalRepository());
-        } catch (final ArtifactResolutionException e) {
-            throw new MavenExecutionException("Unable to get artifact for " + d, e);
-        } catch (final ArtifactNotFoundException e) {
-            throw new MavenExecutionException("Unable to get artifact for " + d, e);
-        }
-        return prjArtifact.getFile();
-    }
-
     /**
      * Get a resolved Artifact from the coordinates provided
      *
@@ -287,9 +263,7 @@ public abstract class ModelUtils {
     }
 
     public static void prepareModel(final MavenProject project,
-            final MavenSession session,
-            final ArtifactHandlerManager artifactHandlerManager,
-            final ArtifactResolver resolver)
+            final MavenSession session)
     throws MojoExecutionException {
         final String contents = (String)project.getContextValue(RAW_MODEL_TXT);
         final Model localModel;
@@ -314,11 +288,7 @@ public abstract class ModelUtils {
                 if ( info[4] != null && info[4].length() > 0 ) {
                     dep.setType(info[4]);
                 }
-                try {
-                    modelDependencies.add(getSlingstartArtifact(artifactHandlerManager, resolver, project, session, dep));
-                } catch ( final MavenExecutionException mee) {
-                    throw new MojoExecutionException(mee.getMessage(), mee.getCause());
-                }
+                modelDependencies.add(getSlingstartArtifact(project, session, dep));
             } else {
                 modelDependencies.add((File)o);
             }
@@ -364,6 +334,38 @@ public abstract class ModelUtils {
         project.setContextValue(EFFECTIVE_MODEL, effectiveModel);
     }
 
+    private static File getSlingstartArtifact(final MavenProject project,
+            final MavenSession session,
+            final Dependency dep)
+    throws MojoExecutionException {
+        for (final MavenProject p : session.getProjects()) {
+            // we only need to find the group id / artifact id, version is correct anyway
+            if ( p.getGroupId().equals(dep.getGroupId())
+                 && p.getArtifactId().equals(dep.getArtifactId()) ) {
+
+                for(final Artifact a : p.getAttachedArtifacts()) {
+                    if ( equals(a.getType(), dep.getType() ) && equals(a.getClassifier(), dep.getClassifier())) {
+                        if ( a.getFile() != null ) {
+                            return a.getFile();
+                        }
+                    }
+                }
+                break;
+            }
+        }
+        throw new MojoExecutionException("Unable to find dependency build artifact " + dep);
+    }
+
+    private final static boolean equals(final String a, final String b) {
+        if ( a == null && b == null ) {
+            return true;
+        }
+        if ( a == null ) {
+            return false;
+        }
+        return a.equals(b);
+    }
+
     /**
      * Get the effective model from the project
      * @param project The maven projet

Modified: sling/trunk/tooling/maven/slingstart-maven-plugin/src/main/java/org/apache/sling/maven/slingstart/PrepareSlingStartMojo.java
URL: http://svn.apache.org/viewvc/sling/trunk/tooling/maven/slingstart-maven-plugin/src/main/java/org/apache/sling/maven/slingstart/PrepareSlingStartMojo.java?rev=1672622&r1=1672621&r2=1672622&view=diff
==============================================================================
--- sling/trunk/tooling/maven/slingstart-maven-plugin/src/main/java/org/apache/sling/maven/slingstart/PrepareSlingStartMojo.java (original)
+++ sling/trunk/tooling/maven/slingstart-maven-plugin/src/main/java/org/apache/sling/maven/slingstart/PrepareSlingStartMojo.java Fri Apr 10 11:56:11 2015
@@ -17,12 +17,9 @@
 package org.apache.sling.maven.slingstart;
 
 import org.apache.maven.artifact.Artifact;
-import org.apache.maven.artifact.handler.manager.ArtifactHandlerManager;
-import org.apache.maven.artifact.resolver.ArtifactResolver;
 import org.apache.maven.model.Dependency;
 import org.apache.maven.plugin.MojoExecutionException;
 import org.apache.maven.plugin.MojoFailureException;
-import org.apache.maven.plugins.annotations.Component;
 import org.apache.maven.plugins.annotations.LifecyclePhase;
 import org.apache.maven.plugins.annotations.Mojo;
 import org.apache.maven.plugins.annotations.ResolutionScope;
@@ -39,19 +36,9 @@ import org.apache.maven.plugins.annotati
     )
 public class PrepareSlingStartMojo extends AbstractSlingStartMojo {
 
-    @Component
-    private ArtifactHandlerManager artifactHandlerManager;
-
-    /**
-     * Used to look up Artifacts in the remote repository.
-     *
-     */
-    @Component
-    private ArtifactResolver resolver;
-
     @Override
     public void execute() throws MojoExecutionException, MojoFailureException {
-        ModelUtils.prepareModel(this.project, this.mavenSession, this.artifactHandlerManager, this.resolver);
+        ModelUtils.prepareModel(this.project, this.mavenSession);
 
         if ( project.getPackaging().equals(BuildConstants.PACKAGING_SLINGSTART ) ) {
             // add dependencies for base artifact