This is an automated email from the ASF dual-hosted git repository. rombert pushed a commit to annotated tag slingstart-maven-plugin-1.1.0 in repository https://gitbox.apache.org/repos/asf/sling-slingstart-maven-plugin.git
commit 350917d1766fcc461cda5fe85b8dd216ccae006e Author: Carsten Ziegeler <[email protected]> AuthorDate: Fri Apr 10 11:56:11 2015 +0000 Get dependent projects from build if build in the same build git-svn-id: https://svn.apache.org/repos/asf/sling/trunk/tooling/maven/slingstart-maven-plugin@1672622 13f79535-47bb-0310-9956-ffa450edef68 --- .../slingstart/DependencyLifecycleParticipant.java | 29 +++++++++- .../apache/sling/maven/slingstart/ModelUtils.java | 66 +++++++++++----------- .../maven/slingstart/PrepareSlingStartMojo.java | 15 +---- 3 files changed, 63 insertions(+), 47 deletions(-) diff --git a/src/main/java/org/apache/sling/maven/slingstart/DependencyLifecycleParticipant.java b/src/main/java/org/apache/sling/maven/slingstart/DependencyLifecycleParticipant.java index 78804be..05ba821 100644 --- a/src/main/java/org/apache/sling/maven/slingstart/DependencyLifecycleParticipant.java +++ b/src/main/java/org/apache/sling/maven/slingstart/DependencyLifecycleParticipant.java @@ -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 DependencyLifecycleParticipant extends AbstractMavenLifecyclePartic 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 DependencyLifecycleParticipant extends AbstractMavenLifecyclePartic 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(); + } } diff --git a/src/main/java/org/apache/sling/maven/slingstart/ModelUtils.java b/src/main/java/org/apache/sling/maven/slingstart/ModelUtils.java index f14b610..439b3cf 100644 --- a/src/main/java/org/apache/sling/maven/slingstart/ModelUtils.java +++ b/src/main/java/org/apache/sling/maven/slingstart/ModelUtils.java @@ -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 diff --git a/src/main/java/org/apache/sling/maven/slingstart/PrepareSlingStartMojo.java b/src/main/java/org/apache/sling/maven/slingstart/PrepareSlingStartMojo.java index fd61c38..d7a1184 100644 --- a/src/main/java/org/apache/sling/maven/slingstart/PrepareSlingStartMojo.java +++ b/src/main/java/org/apache/sling/maven/slingstart/PrepareSlingStartMojo.java @@ -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.annotations.ResolutionScope; ) 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 -- To stop receiving notification emails like this one, please contact "[email protected]" <[email protected]>.
