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 2014/10/08 16:51:46 UTC
svn commit: r1630130 - in
/sling/trunk/tooling/maven/slingstart-maven-plugin/src/main/java/org/apache/sling/maven/slingstart:
ModelUtils.java PreparePackageMojo.java
Author: cziegeler
Date: Wed Oct 8 14:51:46 2014
New Revision: 1630130
URL: http://svn.apache.org/r1630130
Log:
Get artifacts from repositor if overlayed with a different version
Modified:
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/PreparePackageMojo.java
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=1630130&r1=1630129&r2=1630130&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 Wed Oct 8 14:51:46 2014
@@ -29,6 +29,12 @@ import java.util.Set;
import org.apache.commons.io.IOUtils;
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.plugin.MojoExecutionException;
import org.apache.maven.project.MavenProject;
@@ -178,6 +184,9 @@ public abstract class ModelUtils {
* @throws MojoExecutionException
*/
public static Artifact getArtifact(final MavenProject project,
+ final MavenSession session,
+ final ArtifactHandlerManager artifactHandlerManager,
+ final ArtifactResolver resolver,
final String groupId, final String artifactId, final String version, final String type, final String classifier)
throws MojoExecutionException {
final Set<Artifact> artifacts = project.getDependencyArtifacts();
@@ -190,7 +199,21 @@ public abstract class ModelUtils {
return artifact;
}
}
- return null;
+ final Artifact prjArtifact = new DefaultArtifact(groupId,
+ artifactId,
+ VersionRange.createFromVersion(version),
+ Artifact.SCOPE_PROVIDED,
+ type,
+ classifier,
+ artifactHandlerManager.getArtifactHandler(type));
+ try {
+ resolver.resolve(prjArtifact, project.getRemoteArtifactRepositories(), session.getLocalRepository());
+ } catch (final ArtifactResolutionException e) {
+ throw new MojoExecutionException("Unable to get artifact for " + groupId + ":" + artifactId + ":" + version, e);
+ } catch (final ArtifactNotFoundException e) {
+ throw new MojoExecutionException("Unable to get artifact for " + groupId + ":" + artifactId + ":" + version, e);
+ }
+ return prjArtifact;
}
private static final String RAW_MODEL_TXT = Model.class.getName() + "/raw.txt";
Modified: sling/trunk/tooling/maven/slingstart-maven-plugin/src/main/java/org/apache/sling/maven/slingstart/PreparePackageMojo.java
URL: http://svn.apache.org/viewvc/sling/trunk/tooling/maven/slingstart-maven-plugin/src/main/java/org/apache/sling/maven/slingstart/PreparePackageMojo.java?rev=1630130&r1=1630129&r2=1630130&view=diff
==============================================================================
--- sling/trunk/tooling/maven/slingstart-maven-plugin/src/main/java/org/apache/sling/maven/slingstart/PreparePackageMojo.java (original)
+++ sling/trunk/tooling/maven/slingstart-maven-plugin/src/main/java/org/apache/sling/maven/slingstart/PreparePackageMojo.java Wed Oct 8 14:51:46 2014
@@ -29,6 +29,8 @@ import java.util.TreeSet;
import org.apache.commons.io.IOUtils;
import org.apache.felix.cm.file.ConfigurationHandler;
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.plugin.MojoExecutionException;
import org.apache.maven.plugin.MojoFailureException;
import org.apache.maven.plugins.annotations.Component;
@@ -76,6 +78,16 @@ public class PreparePackageMojo extends
@Component
private ArchiverManager archiverManager;
+ @Component
+ private ArtifactHandlerManager artifactHandlerManager;
+
+ /**
+ * Used to look up Artifacts in the remote repository.
+ *
+ */
+ @Component
+ private ArtifactResolver resolver;
+
@Override
public void execute() throws MojoExecutionException, MojoFailureException {
final Model model = ModelUtils.getEffectiveModel(this.project);
@@ -183,7 +195,7 @@ public class PreparePackageMojo extends
throws MojoExecutionException{
for(final ArtifactGroup group : runMode.getArtifactGroups()) {
for(final org.apache.sling.provisioning.model.Artifact a : group) {
- final Artifact artifact = ModelUtils.getArtifact(this.project, a.getGroupId(), a.getArtifactId(), a.getVersion(), a.getType(), a.getClassifier());
+ final Artifact artifact = ModelUtils.getArtifact(this.project, this.mavenSession, this.artifactHandlerManager, this.resolver, a.getGroupId(), a.getArtifactId(), a.getVersion(), a.getType(), a.getClassifier());
final File artifactFile = artifact.getFile();
contentsMap.put(getPathForArtifact(group.getStartLevel(), artifactFile.getName(), runMode, isBoot), artifactFile);
}
@@ -309,7 +321,8 @@ public class PreparePackageMojo extends
private Artifact getBaseArtifact(final Model model, final String classifier, final String type) throws MojoExecutionException {
final org.apache.sling.provisioning.model.Artifact baseArtifact = ModelUtils.getBaseArtifact(model);
- final Artifact a = ModelUtils.getArtifact(this.project, baseArtifact.getGroupId(),
+ final Artifact a = ModelUtils.getArtifact(this.project, this.mavenSession, this.artifactHandlerManager, this.resolver,
+ baseArtifact.getGroupId(),
baseArtifact.getArtifactId(),
baseArtifact.getVersion(),
type,