This is an automated email from the ASF dual-hosted git repository.

rombert pushed a commit to annotated tag slingstart-maven-plugin-1.3.0
in repository 
https://gitbox.apache.org/repos/asf/sling-slingstart-maven-plugin.git

commit f59b06d4a9f9879c2d82d479d4aef29b21fd3953
Author: Stefan Seifert <[email protected]>
AuthorDate: Tue Jul 14 11:39:49 2015 +0000

    SLING-4880 apply resolved dependencies to raw model instead of attaching 
effective model
    add new optional parameter "allowUnresolvedPomDependencies" (default: false)
    
    git-svn-id: 
https://svn.apache.org/repos/asf/sling/trunk/tooling/maven/slingstart-maven-plugin@1690902
 13f79535-47bb-0310-9956-ffa450edef68
---
 .../sling/maven/slingstart/AbstractSlingStartMojo.java       |  7 +++++++
 .../apache/sling/maven/slingstart/AttachSlingStartModel.java |  2 +-
 .../maven/slingstart/DependencyLifecycleParticipant.java     |  3 ++-
 .../sling/maven/slingstart/PomArtifactVersionResolver.java   | 12 ++++++++++--
 .../apache/sling/maven/slingstart/PreparePackageMojo.java    |  2 +-
 5 files changed, 21 insertions(+), 5 deletions(-)

diff --git 
a/src/main/java/org/apache/sling/maven/slingstart/AbstractSlingStartMojo.java 
b/src/main/java/org/apache/sling/maven/slingstart/AbstractSlingStartMojo.java
index 766e434..769e525 100644
--- 
a/src/main/java/org/apache/sling/maven/slingstart/AbstractSlingStartMojo.java
+++ 
b/src/main/java/org/apache/sling/maven/slingstart/AbstractSlingStartMojo.java
@@ -60,6 +60,13 @@ public abstract class AbstractSlingStartMojo extends 
AbstractMojo {
     @Parameter(defaultValue="false")
     protected boolean usePomDependencies;
         
+    /**
+     * If set to true, an exception is throws when "usePomDependencies" is set 
to true and some
+     * dependency version could not be resolved in the Maven POM.
+     */
+    @Parameter(defaultValue="false")
+    protected boolean allowUnresolvedPomDependencies;
+        
     protected File getTmpDir() {
         return new File(this.project.getBuild().getDirectory(), 
"slingstart-tmp");
     }
diff --git 
a/src/main/java/org/apache/sling/maven/slingstart/AttachSlingStartModel.java 
b/src/main/java/org/apache/sling/maven/slingstart/AttachSlingStartModel.java
index d6eac24..331adf8 100644
--- a/src/main/java/org/apache/sling/maven/slingstart/AttachSlingStartModel.java
+++ b/src/main/java/org/apache/sling/maven/slingstart/AttachSlingStartModel.java
@@ -49,7 +49,7 @@ public class AttachSlingStartModel extends 
AbstractSlingStartMojo {
             model = ModelUtility.applyVariables(model, new 
PomVariableResolver(project));
         }
         if (usePomDependencies) {
-            // TODO: implement applyDependencies
+            model = ModelUtility.applyArtifactVersions(model, new 
PomArtifactVersionResolver(project, allowUnresolvedPomDependencies));
         }
 
         // write the model
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 0e58a18..172e3ed 100644
--- 
a/src/main/java/org/apache/sling/maven/slingstart/DependencyLifecycleParticipant.java
+++ 
b/src/main/java/org/apache/sling/maven/slingstart/DependencyLifecycleParticipant.java
@@ -152,7 +152,8 @@ public class DependencyLifecycleParticipant extends 
AbstractMavenLifecyclePartic
             resolverOptions.variableResolver(new 
PomVariableResolver(info.project));
         }
         if (nodeBooleanValue(info.plugin, "usePomDependencies", false)) {
-            resolverOptions.artifactVersionResolver(new 
PomArtifactVersionResolver(info.project));
+            resolverOptions.artifactVersionResolver(new 
PomArtifactVersionResolver(info.project,
+                    nodeBooleanValue(info.plugin, 
"allowUnresolvedPomDependencies", false)));
         }
 
         // we have to create an effective model to add the dependencies
diff --git 
a/src/main/java/org/apache/sling/maven/slingstart/PomArtifactVersionResolver.java
 
b/src/main/java/org/apache/sling/maven/slingstart/PomArtifactVersionResolver.java
index 3c0a6d5..8fa941f 100644
--- 
a/src/main/java/org/apache/sling/maven/slingstart/PomArtifactVersionResolver.java
+++ 
b/src/main/java/org/apache/sling/maven/slingstart/PomArtifactVersionResolver.java
@@ -33,12 +33,15 @@ import 
org.apache.sling.provisioning.model.ModelUtility.ArtifactVersionResolver;
 public class PomArtifactVersionResolver implements ArtifactVersionResolver {
 
     private final MavenProject project;
+    private final boolean allowUnresolvedPomDependencies;
     
     /**
      * @param project Maven project
+     * @param allowUnresolvedPomDependencies If true, no exception is thrown 
when resolving is not possible
      */
-    public PomArtifactVersionResolver(MavenProject project) {
+    public PomArtifactVersionResolver(MavenProject project, boolean 
allowUnresolvedPomDependencies) {
         this.project = project;
+        this.allowUnresolvedPomDependencies = allowUnresolvedPomDependencies;
     }
     
     @Override
@@ -53,7 +56,12 @@ public class PomArtifactVersionResolver implements 
ArtifactVersionResolver {
                 return version;
             }
         }
-        return null;
+        if (allowUnresolvedPomDependencies) {
+            return null;
+        }
+        else {
+            throw new IllegalArgumentException("Unable to resolve dependency: 
" + artifact.toMvnUrl());
+        }
     }
     
     private String findVersion(List<Dependency> dependencies, Artifact 
artifact) {
diff --git 
a/src/main/java/org/apache/sling/maven/slingstart/PreparePackageMojo.java 
b/src/main/java/org/apache/sling/maven/slingstart/PreparePackageMojo.java
index 677398f..a5967af 100644
--- a/src/main/java/org/apache/sling/maven/slingstart/PreparePackageMojo.java
+++ b/src/main/java/org/apache/sling/maven/slingstart/PreparePackageMojo.java
@@ -108,7 +108,7 @@ public class PreparePackageMojo extends 
AbstractSlingStartMojo {
             options.variableResolver(new PomVariableResolver(project));
         }
         if (usePomDependencies) {
-            options.artifactVersionResolver(new 
PomArtifactVersionResolver(project));
+            options.artifactVersionResolver(new 
PomArtifactVersionResolver(project, allowUnresolvedPomDependencies));
         }
         return options;
     }

-- 
To stop receiving notification emails like this one, please contact
"[email protected]" <[email protected]>.

Reply via email to