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/07/28 14:11:16 UTC
svn commit: r1693076 - in
/sling/trunk/tooling/maven/slingstart-maven-plugin/src/main/java/org/apache/sling/maven/slingstart:
AbstractSlingStartMojo.java DependencyLifecycleParticipant.java
Author: cziegeler
Date: Tue Jul 28 12:11:15 2015
New Revision: 1693076
URL: http://svn.apache.org/r1693076
Log:
SLING-4912 : Support inlining the model in the pom
Modified:
sling/trunk/tooling/maven/slingstart-maven-plugin/src/main/java/org/apache/sling/maven/slingstart/AbstractSlingStartMojo.java
sling/trunk/tooling/maven/slingstart-maven-plugin/src/main/java/org/apache/sling/maven/slingstart/DependencyLifecycleParticipant.java
Modified: sling/trunk/tooling/maven/slingstart-maven-plugin/src/main/java/org/apache/sling/maven/slingstart/AbstractSlingStartMojo.java
URL: http://svn.apache.org/viewvc/sling/trunk/tooling/maven/slingstart-maven-plugin/src/main/java/org/apache/sling/maven/slingstart/AbstractSlingStartMojo.java?rev=1693076&r1=1693075&r2=1693076&view=diff
==============================================================================
--- sling/trunk/tooling/maven/slingstart-maven-plugin/src/main/java/org/apache/sling/maven/slingstart/AbstractSlingStartMojo.java (original)
+++ sling/trunk/tooling/maven/slingstart-maven-plugin/src/main/java/org/apache/sling/maven/slingstart/AbstractSlingStartMojo.java Tue Jul 28 12:11:15 2015
@@ -31,9 +31,20 @@ import org.apache.sling.provisioning.mod
*/
public abstract class AbstractSlingStartMojo extends AbstractMojo {
+ /**
+ * The model directory
+ * This parameter is evaluated in the DependencyLifecycleParticipant
+ */
@Parameter(defaultValue="${basedir}/src/main/provisioning")
private File modelDirectory;
+ /**
+ * Inlined model, supported since version 1.3.
+ * This parameter is evaluated in the DependencyLifecycleParticipant
+ */
+ @Parameter
+ private String model;
+
@Parameter(property = "project", readonly = true, required = true)
protected MavenProject project;
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=1693076&r1=1693075&r2=1693076&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 Tue Jul 28 12:11:15 2015
@@ -19,6 +19,8 @@ package org.apache.sling.maven.slingstar
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
+import java.io.Reader;
+import java.io.StringReader;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
@@ -140,12 +142,14 @@ public class DependencyLifecycleParticip
final String directory = nodeValue(info.plugin,
"modelDirectory",
new File(info.project.getBasedir(), "src/main/provisioning").getAbsolutePath());
+ final String inlinedModel = nodeValue(info.plugin,
+ "model", null);
try {
- info.localModel = readLocalModel(info.project, new File(directory), env.logger);
+ info.localModel = readLocalModel(info.project, inlinedModel, new File(directory), env.logger);
} catch ( final IOException ioe) {
throw new MavenExecutionException(ioe.getMessage(), ioe);
}
-
+
// prepare resolver options
ResolverOptions resolverOptions = new ResolverOptions();
if (nodeBooleanValue(info.plugin, "usePomVariables", false)) {
@@ -386,6 +390,7 @@ public class DependencyLifecycleParticip
*/
private static Model readLocalModel(
final MavenProject project,
+ final String inlinedModel,
final File modelDirectory,
final Logger logger)
throws MavenExecutionException, IOException {
@@ -400,10 +405,28 @@ public class DependencyLifecycleParticip
}
Collections.sort(candidates);
}
- if ( candidates.size() == 0 ) {
- throw new MavenExecutionException("No model files found in " + modelDirectory, (File)null);
+ if ( candidates.size() == 0 && (inlinedModel == null || inlinedModel.trim().length() == 0) ) {
+ throw new MavenExecutionException("No model files found in " + modelDirectory + ", and no model inlined in POM.", (File)null);
}
final Model result = new Model();
+ if ( inlinedModel != null ) {
+ logger.debug("Reading inlined model from project " + project.getId());
+ try {
+ final Reader reader = new StringReader(inlinedModel);
+ try {
+ final Model current = ModelReader.read(reader, "pom");
+ final Map<Traceable, String> errors = ModelUtility.validate(current);
+ if (errors != null ) {
+ throw new MavenExecutionException("Invalid inlined model : " + errors, (File)null);
+ }
+ ModelUtility.merge(result, current, false);
+ } finally {
+ IOUtils.closeQuietly(reader);
+ }
+ } catch ( final IOException io) {
+ throw new MavenExecutionException("Unable to read inlined model", io);
+ }
+ }
for(final String name : candidates) {
logger.debug("Reading model " + name + " in project " + project.getId());
try {