SLING-6389 : Avoid empty blank line at end of provisioning model
git-svn-id: https://svn.apache.org/repos/asf/sling/trunk@1773788 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/src/main/java/org/apache/sling/provisioning/model/io/ModelWriter.java b/src/main/java/org/apache/sling/provisioning/model/io/ModelWriter.java
index d503628..ab0fa8b 100644
--- a/src/main/java/org/apache/sling/provisioning/model/io/ModelWriter.java
+++ b/src/main/java/org/apache/sling/provisioning/model/io/ModelWriter.java
@@ -84,8 +84,15 @@
throws IOException {
final PrintWriter pw = new PrintWriter(writer);
+ boolean firstFeature = true;
+
// features
for(final Feature feature : model.getFeatures()) {
+ if ( firstFeature ) {
+ firstFeature = false;
+ } else {
+ pw.println();
+ }
writeComment(pw, feature);
pw.print("[feature name=");
pw.print(feature.getName());
@@ -98,10 +105,10 @@
pw.print(feature.getVersion());
}
pw.println("]");
- pw.println();
// variables
if ( !feature.getVariables().isEmpty() ) {
+ pw.println();
writeComment(pw, feature.getVariables());
pw.println("[variables]");
for(final Map.Entry<String, String> entry : feature.getVariables()) {
@@ -110,13 +117,13 @@
pw.print("=");
pw.println(entry.getValue());
}
- pw.println();
}
// run modes
for(final RunMode runMode : feature.getRunModes()) {
// settings
if ( !runMode.getSettings().isEmpty() ) {
+ pw.println();
writeComment(pw, runMode.getSettings());
pw.print("[settings");
writeRunMode(pw, runMode);
@@ -128,7 +135,6 @@
pw.print("=");
pw.println(entry.getValue());
}
- pw.println();
}
// artifact groups
@@ -137,6 +143,7 @@
if ( group.isEmpty() ) {
continue;
}
+ pw.println();
writeComment(pw, group);
pw.print("[artifacts");
if ( group.getStartLevel() > 0 ) {
@@ -145,7 +152,6 @@
}
writeRunMode(pw, runMode);
pw.println("]");
- pw.println();
// artifacts
for(final Artifact ad : group) {
@@ -169,16 +175,22 @@
}
pw.println();
}
- pw.println();
}
// configurations
if ( !runMode.getConfigurations().isEmpty() ) {
+ pw.println();
writeComment(pw, runMode.getConfigurations());
pw.print("[configurations");
writeRunMode(pw, runMode);
pw.println("]");
+ boolean firstConfig = true;
for(final Configuration config : runMode.getConfigurations()) {
+ if ( firstConfig ) {
+ firstConfig = false;
+ } else{
+ pw.println();
+ }
writeComment(pw, config);
final String raw = (String)config.getProperties().get(ModelConstants.CFG_UNPROCESSED);
String format = (String)config.getProperties().get(ModelConstants.CFG_UNPROCESSED_FORMAT);
@@ -238,13 +250,13 @@
pw.print(" ");
pw.println(line.trim());
}
- pw.println();
}
}
}
// additional sections
for(final Section section : feature.getAdditionalSections()) {
+ pw.println();
pw.print(" [:");
pw.print(section.getName());
for(final Map.Entry<String, String> entry : section.getAttributes().entrySet()) {
@@ -257,7 +269,6 @@
if ( section.getContents() != null ) {
pw.println(section.getContents());
}
- pw.println();
}
}
}