Author: cziegeler
Date: Tue Sep 30 14:28:35 2014
New Revision: 1628456
URL: http://svn.apache.org/r1628456
Log:
Adjust to new model
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/AttachSlingStartModel.java
sling/trunk/tooling/maven/slingstart-maven-plugin/src/main/java/org/apache/sling/maven/slingstart/BuildConstants.java
sling/trunk/tooling/maven/slingstart-maven-plugin/src/main/java/org/apache/sling/maven/slingstart/DependencyLifecycleParticipant.java
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/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=1628456&r1=1628455&r2=1628456&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 Sep 30 14:28:35 2014
@@ -26,7 +26,7 @@ import org.apache.maven.plugins.annotati
import org.apache.maven.plugins.annotations.Parameter;
import org.apache.maven.project.MavenProject;
import org.apache.maven.project.MavenProjectHelper;
-import org.apache.sling.slingstart.model.SSMDeliverable;
+import org.apache.sling.provisioning.model.Model;
public abstract class AbstractSlingStartMojo extends AbstractMojo {
@@ -45,15 +45,15 @@ public abstract class AbstractSlingStart
@Parameter(defaultValue="false")
protected boolean createWebapp;
- private static final String CTX_RAW = SSMDeliverable.class.getName() +
"/r";
- private static final String CTX_EFFECTIVE = SSMDeliverable.class.getName()
+ "/e";
+ private static final String CTX_RAW = Model.class.getName() + "/r";
+ private static final String CTX_EFFECTIVE = Model.class.getName() + "/e";
/**
* Read the model prepared by the lifecycle plugin
*/
- protected SSMDeliverable readRawModel()
+ protected Model readRawModel()
throws MojoExecutionException {
- SSMDeliverable result =
(SSMDeliverable)this.project.getContextValue(CTX_RAW);
+ Model result = (Model)this.project.getContextValue(CTX_RAW);
if ( result == null ) {
try {
result = ModelUtils.getRawModel(this.project);
@@ -69,9 +69,9 @@ public abstract class AbstractSlingStart
/**
* Read the model prepared by the lifecycle plugin
*/
- protected SSMDeliverable readEffectiveModel()
+ protected Model readEffectiveModel()
throws MojoExecutionException {
- SSMDeliverable result =
(SSMDeliverable)this.project.getContextValue(CTX_EFFECTIVE);
+ Model result = (Model)this.project.getContextValue(CTX_EFFECTIVE);
if ( result == null ) {
try {
result = ModelUtils.getEffectiveModel(this.project);
Modified:
sling/trunk/tooling/maven/slingstart-maven-plugin/src/main/java/org/apache/sling/maven/slingstart/AttachSlingStartModel.java
URL:
http://svn.apache.org/viewvc/sling/trunk/tooling/maven/slingstart-maven-plugin/src/main/java/org/apache/sling/maven/slingstart/AttachSlingStartModel.java?rev=1628456&r1=1628455&r2=1628456&view=diff
==============================================================================
---
sling/trunk/tooling/maven/slingstart-maven-plugin/src/main/java/org/apache/sling/maven/slingstart/AttachSlingStartModel.java
(original)
+++
sling/trunk/tooling/maven/slingstart-maven-plugin/src/main/java/org/apache/sling/maven/slingstart/AttachSlingStartModel.java
Tue Sep 30 14:28:35 2014
@@ -27,8 +27,8 @@ import org.apache.maven.plugin.MojoFailu
import org.apache.maven.plugins.annotations.LifecyclePhase;
import org.apache.maven.plugins.annotations.Mojo;
import org.apache.maven.plugins.annotations.ResolutionScope;
-import org.apache.sling.slingstart.model.SSMDeliverable;
-import org.apache.sling.slingstart.model.txt.TXTSSMModelWriter;
+import org.apache.sling.provisioning.model.Model;
+import org.apache.sling.provisioning.model.io.ModelWriter;
/**
* Attaches the subsystem as a project artifact.
@@ -44,14 +44,14 @@ public class AttachSlingStartModel exten
@Override
public void execute() throws MojoExecutionException, MojoFailureException {
- final SSMDeliverable model = this.readRawModel();
+ final Model model = this.readRawModel();
final File outputFile = new
File(this.project.getBuild().getDirectory() + File.separatorChar +
"slingstart.txt");
outputFile.getParentFile().mkdirs();
Writer writer = null;
try {
writer = new FileWriter(outputFile);
- TXTSSMModelWriter.write(writer, model);
+ ModelWriter.write(writer, model);
} catch (IOException e) {
throw new MojoExecutionException("Unable to write model to " +
outputFile, e);
} finally {
Modified:
sling/trunk/tooling/maven/slingstart-maven-plugin/src/main/java/org/apache/sling/maven/slingstart/BuildConstants.java
URL:
http://svn.apache.org/viewvc/sling/trunk/tooling/maven/slingstart-maven-plugin/src/main/java/org/apache/sling/maven/slingstart/BuildConstants.java?rev=1628456&r1=1628455&r2=1628456&view=diff
==============================================================================
---
sling/trunk/tooling/maven/slingstart-maven-plugin/src/main/java/org/apache/sling/maven/slingstart/BuildConstants.java
(original)
+++
sling/trunk/tooling/maven/slingstart-maven-plugin/src/main/java/org/apache/sling/maven/slingstart/BuildConstants.java
Tue Sep 30 14:28:35 2014
@@ -19,14 +19,14 @@ package org.apache.sling.maven.slingstar
import java.util.ArrayList;
import java.util.List;
-import org.apache.sling.slingstart.model.SSMConstants;
+import org.apache.sling.provisioning.model.ModelConstants;
public abstract class BuildConstants {
// CONTEXTS
public static final String CONTEXT_GLOBAL = "slingstart:global";
- public static final String CONTEXT_STANDALONE = "slingstart" +
SSMConstants.RUN_MODE_STANDALONE;
- public static final String CONTEXT_WEBAPP = "slingstart" +
SSMConstants.RUN_MODE_WEBAPP;
+ public static final String CONTEXT_STANDALONE = "slingstart" +
ModelConstants.RUN_MODE_STANDALONE;
+ public static final String CONTEXT_WEBAPP = "slingstart" +
ModelConstants.RUN_MODE_WEBAPP;
// Types
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=1628456&r1=1628455&r2=1628456&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 Sep 30 14:28:35 2014
@@ -35,12 +35,12 @@ import org.apache.maven.execution.MavenS
import org.apache.maven.model.Dependency;
import org.apache.maven.model.Plugin;
import org.apache.maven.project.MavenProject;
-import org.apache.sling.slingstart.model.SSMArtifact;
-import org.apache.sling.slingstart.model.SSMConstants;
-import org.apache.sling.slingstart.model.SSMDeliverable;
-import org.apache.sling.slingstart.model.SSMFeature;
-import org.apache.sling.slingstart.model.SSMStartLevel;
-import org.apache.sling.slingstart.model.SSMUtil;
+import org.apache.sling.provisioning.model.ArtifactGroup;
+import org.apache.sling.provisioning.model.Feature;
+import org.apache.sling.provisioning.model.Model;
+import org.apache.sling.provisioning.model.ModelConstants;
+import org.apache.sling.provisioning.model.ModelUtility;
+import org.apache.sling.provisioning.model.RunMode;
import org.codehaus.plexus.component.annotations.Component;
import org.codehaus.plexus.component.annotations.Requirement;
import org.codehaus.plexus.logging.Logger;
@@ -109,16 +109,16 @@ public class DependencyLifecycleParticip
final String directory = nodeValue((Xpp3Dom) plugin.getConfiguration(),
"systemsDirectory", new File(project.getBasedir(),
"src/main/systems").getAbsolutePath());
- final SSMDeliverable model = ModelUtils.readFullModel(new
File(directory), dependencies, project, session, log);
+ final Model model = ModelUtils.readFullModel(new File(directory),
dependencies, project, session, log);
ModelUtils.storeRawModel(project, model);
- final SSMDeliverable effectiveModel = SSMUtil.getEffectiveModel(model,
null);
+ final Model effectiveModel = ModelUtility.getEffectiveModel(model,
null);
ModelUtils.storeEffectiveModel(project, effectiveModel);
// start with base artifact
- final SSMArtifact base = ModelUtils.getBaseArtifact(effectiveModel);
+ final org.apache.sling.provisioning.model.Artifact base =
ModelUtils.getBaseArtifact(effectiveModel);
final String[] classifiers = new String[] {null,
BuildConstants.CLASSIFIER_APP, BuildConstants.CLASSIFIER_WEBAPP};
for(final String c : classifiers) {
final Dependency dep = new Dependency();
@@ -139,24 +139,26 @@ public class DependencyLifecycleParticip
addDependencies(effectiveModel, log, project);
}
- private static void addDependencies(final SSMDeliverable model, final
Logger log, final MavenProject project) {
- for(final SSMFeature feature : model.getFeatures()) {
+ private static void addDependencies(final Model model, final Logger log,
final MavenProject project) {
+ for(final Feature feature : model.getFeatures()) {
// skip base
- if ( feature.isRunMode(SSMConstants.RUN_MODE_BASE) ) {
+ if ( feature.getName().equals(ModelConstants.FEATURE_LAUNCHPAD) ) {
continue;
}
- for(final SSMStartLevel sl : feature.getStartLevels()) {
- for(final SSMArtifact a : sl.getArtifacts()) {
- final Dependency dep = new Dependency();
- dep.setGroupId(a.getGroupId());
- dep.setArtifactId(a.getArtifactId());
- dep.setVersion(a.getVersion());
- dep.setType(a.getType());
- dep.setClassifier(a.getClassifier());
- dep.setScope(PROVIDED);
+ for(final RunMode runMode : feature.getRunModes()) {
+ for(final ArtifactGroup sl : runMode.getArtifactGroups()) {
+ for(final org.apache.sling.provisioning.model.Artifact a :
sl.getArtifacts()) {
+ final Dependency dep = new Dependency();
+ dep.setGroupId(a.getGroupId());
+ dep.setArtifactId(a.getArtifactId());
+ dep.setVersion(a.getVersion());
+ dep.setType(a.getType());
+ dep.setClassifier(a.getClassifier());
+ dep.setScope(PROVIDED);
- log.debug("- adding dependency " + dep);
- project.getDependencies().add(dep);
+ log.debug("- adding dependency " + dep);
+ project.getDependencies().add(dep);
+ }
}
}
}
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=1628456&r1=1628455&r2=1628456&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
Tue Sep 30 14:28:35 2014
@@ -32,15 +32,14 @@ import org.apache.maven.artifact.Artifac
import org.apache.maven.execution.MavenSession;
import org.apache.maven.plugin.MojoExecutionException;
import org.apache.maven.project.MavenProject;
-import org.apache.sling.slingstart.model.SSMArtifact;
-import org.apache.sling.slingstart.model.SSMConstants;
-import org.apache.sling.slingstart.model.SSMDeliverable;
-import org.apache.sling.slingstart.model.SSMFeature;
-import org.apache.sling.slingstart.model.SSMMerger;
-import org.apache.sling.slingstart.model.SSMTraceable;
-import org.apache.sling.slingstart.model.SSMValidator;
-import org.apache.sling.slingstart.model.txt.TXTSSMModelReader;
-import org.apache.sling.slingstart.model.txt.TXTSSMModelWriter;
+import org.apache.sling.provisioning.model.Feature;
+import org.apache.sling.provisioning.model.Model;
+import org.apache.sling.provisioning.model.ModelConstants;
+import org.apache.sling.provisioning.model.ModelUtility;
+import org.apache.sling.provisioning.model.RunMode;
+import org.apache.sling.provisioning.model.Traceable;
+import org.apache.sling.provisioning.model.io.ModelReader;
+import org.apache.sling.provisioning.model.io.ModelWriter;
import org.codehaus.plexus.logging.Logger;
public abstract class ModelUtils {
@@ -49,9 +48,9 @@ public abstract class ModelUtils {
* Read all model files from the directory in alphabetical order
* @param logger
*/
- private static SSMDeliverable readLocalModel(final File systemsDirectory,
final MavenProject project, final MavenSession session, final Logger logger)
+ private static Model readLocalModel(final File systemsDirectory, final
MavenProject project, final MavenSession session, final Logger logger)
throws MojoExecutionException {
- final SSMDeliverable result = new SSMDeliverable();
+ final Model result = new Model();
final List<String> candidates = new ArrayList<String>();
if ( systemsDirectory != null && systemsDirectory.exists() ) {
for(final File f : systemsDirectory.listFiles() ) {
@@ -70,12 +69,12 @@ public abstract class ModelUtils {
final File f = new File(systemsDirectory, name);
final FileReader reader = new FileReader(f);
try {
- final SSMDeliverable current =
TXTSSMModelReader.read(reader, f.getAbsolutePath());
- final Map<SSMTraceable, String> errors =
SSMValidator.validate(current);
+ final Model current = ModelReader.read(reader,
f.getAbsolutePath());
+ final Map<Traceable, String> errors =
ModelUtility.validate(current);
if (errors != null ) {
throw new MojoExecutionException("Invalid model at " +
name + " : " + errors);
}
- SSMMerger.merge(result, current);
+ ModelUtility.merge(result, current);
} finally {
IOUtils.closeQuietly(reader);
}
@@ -84,7 +83,7 @@ public abstract class ModelUtils {
}
}
- final Map<SSMTraceable, String> errors = SSMValidator.validate(result);
+ final Map<Traceable, String> errors = ModelUtility.validate(result);
if (errors != null ) {
throw new MojoExecutionException("Invalid assembled model : " +
errors);
}
@@ -95,42 +94,42 @@ public abstract class ModelUtils {
/**
* Read the full model
*/
- public static SSMDeliverable readFullModel(final File systemsDirectory,
+ public static Model readFullModel(final File systemsDirectory,
final List<File> dependentModels,
final MavenProject project,
final MavenSession session,
final Logger logger)
throws MojoExecutionException {
try {
- final SSMDeliverable localModel = readLocalModel(systemsDirectory,
project, session, logger);
+ final Model localModel = readLocalModel(systemsDirectory, project,
session, logger);
// check dependent models
- SSMDeliverable depModel = null;
+ Model depModel = null;
for(final File file : dependentModels) {
FileReader r = null;
try {
r = new FileReader(file);
if ( depModel == null ) {
- depModel = new SSMDeliverable();
+ depModel = new Model();
}
- final SSMDeliverable readModel = TXTSSMModelReader.read(r,
file.getAbsolutePath());
- final Map<SSMTraceable, String> errors =
SSMValidator.validate(readModel);
+ final Model readModel = ModelReader.read(r,
file.getAbsolutePath());
+ final Map<Traceable, String> errors =
ModelUtility.validate(readModel);
if (errors != null ) {
throw new MojoExecutionException("Invalid model at " +
file + " : " + errors);
}
- SSMMerger.merge(depModel, readModel);
+ ModelUtility.merge(depModel, readModel);
} finally {
IOUtils.closeQuietly(r);
}
}
- final SSMDeliverable result;
+ final Model result;
if ( depModel != null ) {
- Map<SSMTraceable, String> errors =
SSMValidator.validate(depModel);
+ Map<Traceable, String> errors =
ModelUtility.validate(depModel);
if (errors != null ) {
throw new MojoExecutionException("Invalid model : " +
errors);
}
- SSMMerger.merge(depModel, localModel);
- errors = SSMValidator.validate(depModel);
+ ModelUtility.merge(depModel, localModel);
+ errors = ModelUtility.validate(depModel);
if (errors != null ) {
throw new MojoExecutionException("Invalid model : " +
errors);
}
@@ -145,23 +144,26 @@ public abstract class ModelUtils {
}
}
- public static SSMArtifact getBaseArtifact(final SSMDeliverable model)
throws MojoExecutionException {
- // get base run mode
- final SSMFeature base = model.getRunMode(SSMConstants.RUN_MODE_BASE);
+ public static org.apache.sling.provisioning.model.Artifact
getBaseArtifact(final Model model) throws MojoExecutionException {
+ final Feature base =
model.findFeature(ModelConstants.FEATURE_LAUNCHPAD);
if ( base == null ) {
- throw new MojoExecutionException("No base run mode found.");
+ throw new MojoExecutionException("No launchpad feature found.");
}
- if ( base.getStartLevels().size() == 0 ) {
+ // get global run mode
+ final RunMode runMode = base.getRunMode(null);
+ if ( runMode == null ) {
+ throw new MojoExecutionException("No global run mode found in
launchpad feature.");
+ }
+ if ( runMode.getArtifactGroups().isEmpty() ) {
throw new MojoExecutionException("No base artifacts defined.");
}
- if ( base.getStartLevels().size() > 1 ) {
+ if ( runMode.getArtifactGroups().size() > 1 ) {
throw new MojoExecutionException("Base run mode should only have a
single start level.");
}
- if ( base.getStartLevels().get(0).getArtifacts().size() != 1 ) {
+ if ( runMode.getArtifactGroups().get(0).getArtifacts().size() != 1 ) {
throw new MojoExecutionException("Base run mode should contain
exactly one artifact.");
}
-
- return base.getStartLevels().get(0).getArtifacts().get(0);
+ return runMode.getArtifactGroups().get(0).getArtifacts().get(0);
}
/**
@@ -186,8 +188,8 @@ public abstract class ModelUtils {
return null;
}
- private static final String RAW_MODEL = SSMDeliverable.class.getName() +
"/raw";
- private static final String EFFECTIVE_MODEL =
SSMDeliverable.class.getName() + "/effective";
+ private static final String RAW_MODEL = Model.class.getName() + "/raw";
+ private static final String EFFECTIVE_MODEL = Model.class.getName() +
"/effective";
/**
* Store the raw model in the project.
@@ -195,10 +197,10 @@ public abstract class ModelUtils {
* @param model The model
* @throws IOException If writing fails
*/
- public static void storeRawModel(final MavenProject project, final
SSMDeliverable model)
+ public static void storeRawModel(final MavenProject project, final Model
model)
throws IOException {
final StringWriter w = new StringWriter();
- TXTSSMModelWriter.write(w, model);
+ ModelWriter.write(w, model);
project.setContextValue(RAW_MODEL, w.toString());
}
@@ -208,9 +210,9 @@ public abstract class ModelUtils {
* @return The raw model
* @throws IOException If reading fails
*/
- public static SSMDeliverable getRawModel(final MavenProject project)
throws IOException {
+ public static Model getRawModel(final MavenProject project) throws
IOException {
final String contents = (String)project.getContextValue(RAW_MODEL);
- return TXTSSMModelReader.read(new StringReader(contents), null);
+ return ModelReader.read(new StringReader(contents), null);
}
/**
@@ -219,10 +221,10 @@ public abstract class ModelUtils {
* @param model The model
* @throws IOException If writing fails
*/
- public static void storeEffectiveModel(final MavenProject project, final
SSMDeliverable model)
+ public static void storeEffectiveModel(final MavenProject project, final
Model model)
throws IOException {
final StringWriter w = new StringWriter();
- TXTSSMModelWriter.write(w, model);
+ ModelWriter.write(w, model);
project.setContextValue(EFFECTIVE_MODEL, w.toString());
}
@@ -232,8 +234,8 @@ public abstract class ModelUtils {
* @return The raw model
* @throws IOException If reading fails
*/
- public static SSMDeliverable getEffectiveModel(final MavenProject project)
throws IOException {
+ public static Model getEffectiveModel(final MavenProject project) throws
IOException {
final String contents =
(String)project.getContextValue(EFFECTIVE_MODEL);
- return TXTSSMModelReader.read(new StringReader(contents), null);
+ return ModelReader.read(new StringReader(contents), null);
}
}
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=1628456&r1=1628455&r2=1628456&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
Tue Sep 30 14:28:35 2014
@@ -35,12 +35,12 @@ import org.apache.maven.plugins.annotati
import org.apache.maven.plugins.annotations.LifecyclePhase;
import org.apache.maven.plugins.annotations.Mojo;
import org.apache.maven.plugins.annotations.ResolutionScope;
-import org.apache.sling.slingstart.model.SSMArtifact;
-import org.apache.sling.slingstart.model.SSMConfiguration;
-import org.apache.sling.slingstart.model.SSMConstants;
-import org.apache.sling.slingstart.model.SSMDeliverable;
-import org.apache.sling.slingstart.model.SSMFeature;
-import org.apache.sling.slingstart.model.SSMStartLevel;
+import org.apache.sling.provisioning.model.ArtifactGroup;
+import org.apache.sling.provisioning.model.Configuration;
+import org.apache.sling.provisioning.model.Feature;
+import org.apache.sling.provisioning.model.Model;
+import org.apache.sling.provisioning.model.ModelConstants;
+import org.apache.sling.provisioning.model.RunMode;
import org.codehaus.plexus.archiver.ArchiverException;
import org.codehaus.plexus.archiver.UnArchiver;
import org.codehaus.plexus.archiver.manager.ArchiverManager;
@@ -78,7 +78,7 @@ public class PreparePackageMojo extends
@Override
public void execute() throws MojoExecutionException, MojoFailureException {
- final SSMDeliverable model = this.readEffectiveModel();
+ final Model model = this.readEffectiveModel();
this.prepareGlobal(model);
this.prepareStandaloneApp(model);
@@ -88,7 +88,7 @@ public class PreparePackageMojo extends
/**
* Prepare the global map for the artifacts.
*/
- private void prepareGlobal(final SSMDeliverable model) throws
MojoExecutionException {
+ private void prepareGlobal(final Model model) throws
MojoExecutionException {
final Map<String, File> globalContentsMap = new HashMap<String,
File>();
this.buildContentsMap(model, (String)null, globalContentsMap);
@@ -98,23 +98,23 @@ public class PreparePackageMojo extends
/**
* Prepare the standalone application.
*/
- private void prepareStandaloneApp(final SSMDeliverable model) throws
MojoExecutionException {
+ private void prepareStandaloneApp(final Model model) throws
MojoExecutionException {
final Map<String, File> contentsMap = new HashMap<String, File>();
this.project.setContextValue(BuildConstants.CONTEXT_STANDALONE,
contentsMap);
// unpack base artifact and create settings
final File outputDir = new
File(this.project.getBuild().getOutputDirectory());
- unpackBaseArtifact(model, outputDir, SSMConstants.RUN_MODE_STANDALONE);
- this.buildSettings(model, SSMConstants.RUN_MODE_STANDALONE, outputDir);
- this.buildBootstrapFile(model, SSMConstants.RUN_MODE_STANDALONE,
outputDir);
+ unpackBaseArtifact(model, outputDir,
ModelConstants.RUN_MODE_STANDALONE);
+ this.buildSettings(model, ModelConstants.RUN_MODE_STANDALONE,
outputDir);
+ this.buildBootstrapFile(model, ModelConstants.RUN_MODE_STANDALONE,
outputDir);
- this.buildContentsMap(model, SSMConstants.RUN_MODE_STANDALONE,
contentsMap);
+ this.buildContentsMap(model, ModelConstants.RUN_MODE_STANDALONE,
contentsMap);
}
/**
* Prepare the web application.
*/
- private void prepareWebapp(final SSMDeliverable model) throws
MojoExecutionException {
+ private void prepareWebapp(final Model model) throws
MojoExecutionException {
if ( this.createWebapp ) {
final Map<String, File> contentsMap = new HashMap<String, File>();
this.project.setContextValue(BuildConstants.CONTEXT_WEBAPP,
contentsMap);
@@ -122,48 +122,55 @@ public class PreparePackageMojo extends
// unpack base artifact and create settings
final File outputDir = new
File(this.project.getBuild().getDirectory(), BuildConstants.WEBAPP_OUTDIR);
final File webappDir = new File(outputDir, "WEB-INF");
- unpackBaseArtifact(model, outputDir, SSMConstants.RUN_MODE_WEBAPP);
+ unpackBaseArtifact(model, outputDir,
ModelConstants.RUN_MODE_WEBAPP);
// check for web.xml
- final SSMFeature webappRM =
model.getRunMode(SSMConstants.RUN_MODE_WEBAPP);
- if ( webappRM != null ) {
- final SSMConfiguration webConfig =
webappRM.getConfiguration(SSMConstants.CFG_WEB_XML);
- if ( webConfig != null ) {
- final File webXML = new File(webappDir, "web.xml");
- try {
- FileUtils.fileWrite(webXML,
webConfig.getProperties().get(SSMConstants.CFG_WEB_XML).toString());
- } catch (final IOException e) {
- throw new MojoExecutionException("Unable to write
configuration to " + webXML, e);
+ final Feature webappF =
model.findFeature(ModelConstants.FEATURE_LAUNCHPAD);
+ if ( webappF != null ) {
+ final RunMode webappRM = webappF.getRunMode(null);
+ if ( webappRM != null ) {
+ final Configuration webConfig =
webappRM.getConfiguration(ModelConstants.CFG_LAUNCHPAD_WEB_XML);
+ if ( webConfig != null ) {
+ final File webXML = new File(webappDir, "web.xml");
+ try {
+ FileUtils.fileWrite(webXML,
webConfig.getProperties().get(ModelConstants.CFG_LAUNCHPAD_WEB_XML).toString());
+ } catch (final IOException e) {
+ throw new MojoExecutionException("Unable to write
configuration to " + webXML, e);
+ }
}
}
}
- this.buildSettings(model, SSMConstants.RUN_MODE_WEBAPP, webappDir);
- this.buildBootstrapFile(model, SSMConstants.RUN_MODE_WEBAPP,
outputDir);
+ this.buildSettings(model, ModelConstants.RUN_MODE_WEBAPP,
webappDir);
+ this.buildBootstrapFile(model, ModelConstants.RUN_MODE_WEBAPP,
outputDir);
- this.buildContentsMap(model, SSMConstants.RUN_MODE_WEBAPP,
contentsMap);
+ this.buildContentsMap(model, ModelConstants.RUN_MODE_WEBAPP,
contentsMap);
}
}
/**
* Build a list of all artifacts.
*/
- private void buildContentsMap(final SSMDeliverable model, final String
packageRunMode, final Map<String, File> contentsMap)
+ private void buildContentsMap(final Model model, final String
packageRunMode, final Map<String, File> contentsMap)
throws MojoExecutionException {
if ( packageRunMode == null ) {
// add base jar
final Artifact artifact = getBaseArtifact(model, null,
BuildConstants.TYPE_JAR);
contentsMap.put(BASE_DESTINATION + "/"+ artifact.getArtifactId() +
"." + artifact.getArtifactHandler().getExtension(), artifact.getFile());
}
- for(final SSMFeature feature : model.getFeatures()) {
- if ( packageRunMode == null ) {
- if ( feature.isSpecial()
- && !feature.isRunMode(SSMConstants.RUN_MODE_BOOT)) {
- continue;
- }
- this.buildContentsMap(model, feature, contentsMap);
- } else {
- if ( feature.isRunMode(packageRunMode) ) {
- this.buildContentsMap(model, feature, contentsMap);
+ for(final Feature feature : model.getFeatures()) {
+ if ( feature.isSpecial() &&
!feature.getName().equals(ModelConstants.FEATURE_BOOT)) {
+ continue;
+ }
+ for(final RunMode runMode : feature.getRunModes()) {
+ if ( packageRunMode == null ) {
+ if ( runMode.isSpecial() ) {
+ continue;
+ }
+ this.buildContentsMap(model, runMode, contentsMap,
feature.getName().equals(ModelConstants.FEATURE_BOOT));
+ } else {
+ if ( runMode.isRunMode(packageRunMode) ) {
+ this.buildContentsMap(model, runMode, contentsMap,
feature.getName().equals(ModelConstants.FEATURE_BOOT));
+ }
}
}
}
@@ -172,19 +179,19 @@ public class PreparePackageMojo extends
/**
* Build a list of all artifacts from this run mode
*/
- private void buildContentsMap(final SSMDeliverable model, final SSMFeature
runMode, final Map<String, File> contentsMap)
+ private void buildContentsMap(final Model model, final RunMode runMode,
final Map<String, File> contentsMap, final boolean isBoot)
throws MojoExecutionException{
- for(final SSMStartLevel sl : runMode.getStartLevels()) {
- for(final SSMArtifact a : sl.getArtifacts()) {
+ for(final ArtifactGroup sl : runMode.getArtifactGroups()) {
+ for(final org.apache.sling.provisioning.model.Artifact a :
sl.getArtifacts()) {
final Artifact artifact = ModelUtils.getArtifact(this.project,
a.getGroupId(), a.getArtifactId(), a.getVersion(), a.getType(),
a.getClassifier());
final File artifactFile = artifact.getFile();
- contentsMap.put(getPathForArtifact(sl.getLevel(),
artifactFile.getName(), runMode), artifactFile);
+ contentsMap.put(getPathForArtifact(sl.getLevel(),
artifactFile.getName(), runMode, isBoot), artifactFile);
}
}
final File rootConfDir = new File(this.getTmpDir(), "global-config");
boolean hasConfig = false;
- for(final SSMConfiguration config : runMode.getConfigurations()) {
+ for(final Configuration config : runMode.getConfigurations()) {
// skip special configurations
if ( config.isSpecial() ) {
continue;
@@ -213,20 +220,28 @@ public class PreparePackageMojo extends
/**
* Build the settings for the given packaging run mode
*/
- private void buildSettings(final SSMDeliverable model, final String
packageRunMode, final File outputDir)
+ private void buildSettings(final Model model, final String packageRunMode,
final File outputDir)
throws MojoExecutionException {
final Properties settings = new Properties();
- final SSMFeature baseRM = model.getRunMode(SSMConstants.RUN_MODE_BASE);
- if ( baseRM != null ) {
- settings.putAll(baseRM.getSettings());
- }
- final SSMFeature bootRM = model.getRunMode(SSMConstants.RUN_MODE_BOOT);
- if ( bootRM != null ) {
- settings.putAll(bootRM.getSettings());
- }
- final SSMFeature packageRM = model.getRunMode(packageRunMode);
- if ( packageRM != null ) {
- settings.putAll(packageRM.getSettings());
+ final Feature launchpadFeature =
model.findFeature(ModelConstants.FEATURE_LAUNCHPAD);
+ if ( launchpadFeature != null ) {
+ final RunMode launchpadRunMode = launchpadFeature.getRunMode(null);
+ if ( launchpadRunMode != null ) {
+ settings.putAll(launchpadRunMode.getSettings());
+ }
+ }
+ final Feature bootFeature =
model.findFeature(ModelConstants.FEATURE_BOOT);
+ if ( bootFeature != null ) {
+ final RunMode bootRunMode = bootFeature.getRunMode(null);
+ if ( bootRunMode != null ) {
+ settings.putAll(bootRunMode.getSettings());
+ }
+ }
+ for(final Feature f : model.getFeatures()) {
+ final RunMode packageRM = f.getRunMode(new String[]
{packageRunMode});
+ if ( packageRM != null ) {
+ settings.putAll(packageRM.getSettings());
+ }
}
if ( settings.size() > 0 ) {
@@ -247,31 +262,27 @@ public class PreparePackageMojo extends
/**
* Build the bootstrap file for the given packaging run mode
*/
- private void buildBootstrapFile(final SSMDeliverable model, final String
packageRunMode, final File outputDir)
+ private void buildBootstrapFile(final Model model, final String
packageRunMode, final File outputDir)
throws MojoExecutionException {
final StringBuilder sb = new StringBuilder();
- final SSMFeature baseRM = model.getRunMode(SSMConstants.RUN_MODE_BASE);
- if ( baseRM != null ) {
- final SSMConfiguration c =
baseRM.getConfiguration(SSMConstants.CFG_BOOTSTRAP);
- if ( c != null ) {
- sb.append(c.getProperties().get(c.getPid()));
- sb.append('\n');
- }
- }
- final SSMFeature bootRM = model.getRunMode(SSMConstants.RUN_MODE_BOOT);
- if ( bootRM != null ) {
- final SSMConfiguration c =
bootRM.getConfiguration(SSMConstants.CFG_BOOTSTRAP);
- if ( c != null ) {
- sb.append(c.getProperties().get(c.getPid()));
- sb.append('\n');
- }
- }
- final SSMFeature packageRM = model.getRunMode(packageRunMode);
- if ( packageRM != null ) {
- final SSMConfiguration c =
packageRM.getConfiguration(SSMConstants.CFG_BOOTSTRAP);
- if ( c != null ) {
- sb.append(c.getProperties().get(c.getPid()));
- sb.append('\n');
+
+ final Feature launchpadFeature =
model.findFeature(ModelConstants.FEATURE_LAUNCHPAD);
+ if ( launchpadFeature != null ) {
+ final RunMode launchpadRunMode = launchpadFeature.getRunMode(null);
+ if ( launchpadRunMode != null ) {
+ final Configuration c =
launchpadRunMode.getConfiguration(ModelConstants.CFG_LAUNCHPAD_BOOTSTRAP);
+ if ( c != null ) {
+ sb.append(c.getProperties().get(c.getPid()));
+ sb.append('\n');
+ }
+ }
+ final RunMode packageRM = launchpadFeature.getRunMode(new String[]
{packageRunMode});
+ if ( packageRM != null ) {
+ final Configuration c =
packageRM.getConfiguration(ModelConstants.CFG_LAUNCHPAD_BOOTSTRAP);
+ if ( c != null ) {
+ sb.append(c.getProperties().get(c.getPid()));
+ sb.append('\n');
+ }
}
}
@@ -289,8 +300,8 @@ public class PreparePackageMojo extends
/**
* Return the base artifact
*/
- private Artifact getBaseArtifact(final SSMDeliverable model, final String
classifier, final String type) throws MojoExecutionException {
- final SSMArtifact baseArtifact = ModelUtils.getBaseArtifact(model);
+ 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(),
baseArtifact.getArtifactId(),
@@ -308,11 +319,11 @@ public class PreparePackageMojo extends
/**
* Unpack the base artifact
*/
- private void unpackBaseArtifact(final SSMDeliverable model, final File
outputDirectory, final String packageRunMode)
+ private void unpackBaseArtifact(final Model model, final File
outputDirectory, final String packageRunMode)
throws MojoExecutionException {
final String classifier;
final String type;
- if ( SSMConstants.RUN_MODE_STANDALONE.equals(packageRunMode) ) {
+ if ( ModelConstants.RUN_MODE_STANDALONE.equals(packageRunMode) ) {
classifier = BuildConstants.CLASSIFIER_APP;
type = BuildConstants.TYPE_JAR;
} else {
@@ -348,7 +359,7 @@ public class PreparePackageMojo extends
/**
* Get the relative path for an artifact.
*/
- private String getPathForArtifact(final int startLevel, final String
artifactName, final SSMFeature rm) {
+ private String getPathForArtifact(final int startLevel, final String
artifactName, final RunMode rm, final boolean isBoot) {
final Set<String> runModesList = new TreeSet<String>();
if (rm.getRunModes() != null ) {
for(final String mode : rm.getRunModes()) {
@@ -367,7 +378,7 @@ public class PreparePackageMojo extends
runModeExt = sb.toString();
}
- if ( rm.isRunMode(SSMConstants.RUN_MODE_BOOT) ) {
+ if ( isBoot ) {
return String.format("%s/%s/1/%s", BASE_DESTINATION,
BOOT_DIRECTORY,
artifactName);
}
@@ -380,7 +391,7 @@ public class PreparePackageMojo extends
/**
* Get the relative path for a configuration
*/
- private String getPathForConfiguration(final SSMConfiguration config,
final SSMFeature rm) {
+ private String getPathForConfiguration(final Configuration config, final
RunMode rm) {
final Set<String> runModesList = new TreeSet<String>();
if (rm.getRunModes() != null ) {
for(final String mode : rm.getRunModes()) {