You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by ro...@apache.org on 2017/11/07 10:26:21 UTC
[sling-slingstart-maven-plugin] 10/18: Get dependent projects from
build if build in the same build
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 <cz...@apache.org>
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
"commits@sling.apache.org" <co...@sling.apache.org>.