Move io methods to helper class
git-svn-id: https://svn.apache.org/repos/asf/sling/trunk@1628655 13f79535-47bb-0310-9956-ffa450edef68
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 bc53b23..aa83a69 100644
--- a/src/main/java/org/apache/sling/maven/slingstart/AbstractSlingStartMojo.java
+++ b/src/main/java/org/apache/sling/maven/slingstart/AbstractSlingStartMojo.java
@@ -17,16 +17,13 @@
package org.apache.sling.maven.slingstart;
import java.io.File;
-import java.io.IOException;
import org.apache.maven.execution.MavenSession;
import org.apache.maven.plugin.AbstractMojo;
-import org.apache.maven.plugin.MojoExecutionException;
import org.apache.maven.plugins.annotations.Component;
import org.apache.maven.plugins.annotations.Parameter;
import org.apache.maven.project.MavenProject;
import org.apache.maven.project.MavenProjectHelper;
-import org.apache.sling.provisioning.model.Model;
public abstract class AbstractSlingStartMojo extends AbstractMojo {
@@ -45,45 +42,6 @@
@Parameter(defaultValue="false")
protected boolean createWebapp;
- 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 Model readRawModel()
- throws MojoExecutionException {
- Model result = (Model)this.project.getContextValue(CTX_RAW);
- if ( result == null ) {
- try {
- result = ModelUtils.getRawModel(this.project);
-
- this.project.setContextValue(CTX_RAW, result);
- } catch ( final IOException ioe) {
- throw new MojoExecutionException("Unable to cache model", ioe);
- }
- }
- return result;
- }
-
- /**
- * Read the model prepared by the lifecycle plugin
- */
- protected Model readEffectiveModel()
- throws MojoExecutionException {
- Model result = (Model)this.project.getContextValue(CTX_EFFECTIVE);
- if ( result == null ) {
- try {
- result = ModelUtils.getEffectiveModel(this.project);
-
- this.project.setContextValue(CTX_EFFECTIVE, result);
- } catch ( final IOException ioe) {
- throw new MojoExecutionException("Unable to cache model", ioe);
- }
- }
- return result;
- }
-
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 2bdefbe..be284ea 100644
--- a/src/main/java/org/apache/sling/maven/slingstart/AttachSlingStartModel.java
+++ b/src/main/java/org/apache/sling/maven/slingstart/AttachSlingStartModel.java
@@ -44,12 +44,13 @@
@Override
public void execute() throws MojoExecutionException, MojoFailureException {
- 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 {
+ final Model model = ModelUtils.getRawModel(this.project);
+
writer = new FileWriter(outputFile);
ModelWriter.write(writer, model);
} catch (IOException e) {
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 f1a4a15..7fe7be9 100644
--- a/src/main/java/org/apache/sling/maven/slingstart/ModelUtils.java
+++ b/src/main/java/org/apache/sling/maven/slingstart/ModelUtils.java
@@ -188,6 +188,9 @@
return null;
}
+ private static final String RAW_MODEL_TXT = Model.class.getName() + "/raw";
+ private static final String EFFECTIVE_MODEL_TXT = Model.class.getName() + "/effective";
+
private static final String RAW_MODEL = Model.class.getName() + "/raw";
private static final String EFFECTIVE_MODEL = Model.class.getName() + "/effective";
@@ -201,7 +204,7 @@
throws IOException {
final StringWriter w = new StringWriter();
ModelWriter.write(w, model);
- project.setContextValue(RAW_MODEL, w.toString());
+ project.setContextValue(RAW_MODEL_TXT, w.toString());
}
/**
@@ -211,8 +214,13 @@
* @throws IOException If reading fails
*/
public static Model getRawModel(final MavenProject project) throws IOException {
- final String contents = (String)project.getContextValue(RAW_MODEL);
- return ModelReader.read(new StringReader(contents), null);
+ Model result = (Model)project.getContextValue(RAW_MODEL);
+ if ( result == null ) {
+ final String contents = (String)project.getContextValue(RAW_MODEL_TXT);
+ result = ModelReader.read(new StringReader(contents), null);
+ project.setContextValue(RAW_MODEL, result);
+ }
+ return result;
}
/**
@@ -225,7 +233,7 @@
throws IOException {
final StringWriter w = new StringWriter();
ModelWriter.write(w, model);
- project.setContextValue(EFFECTIVE_MODEL, w.toString());
+ project.setContextValue(EFFECTIVE_MODEL_TXT, w.toString());
}
/**
@@ -235,7 +243,12 @@
* @throws IOException If reading fails
*/
public static Model getEffectiveModel(final MavenProject project) throws IOException {
- final String contents = (String)project.getContextValue(EFFECTIVE_MODEL);
- return ModelReader.read(new StringReader(contents), null);
+ Model result = (Model)project.getContextValue(EFFECTIVE_MODEL);
+ if ( result == null ) {
+ final String contents = (String)project.getContextValue(EFFECTIVE_MODEL_TXT);
+ result = ModelReader.read(new StringReader(contents), null);
+ project.setContextValue(EFFECTIVE_MODEL, result);
+ }
+ return result;
}
}
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 e05a27f..b2f627b 100644
--- a/src/main/java/org/apache/sling/maven/slingstart/PreparePackageMojo.java
+++ b/src/main/java/org/apache/sling/maven/slingstart/PreparePackageMojo.java
@@ -78,11 +78,15 @@
@Override
public void execute() throws MojoExecutionException, MojoFailureException {
- final Model model = this.readEffectiveModel();
+ try {
+ final Model model = ModelUtils.getEffectiveModel(this.project);
- this.prepareGlobal(model);
- this.prepareStandaloneApp(model);
- this.prepareWebapp(model);
+ this.prepareGlobal(model);
+ this.prepareStandaloneApp(model);
+ this.prepareWebapp(model);
+ } catch ( final IOException io) {
+ throw new MojoExecutionException("Unable to read cached model.", io);
+ }
}
/**