You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by ro...@apache.org on 2017/11/07 09:59:04 UTC
[sling-org-apache-sling-provisioning-model] 02/06: SLING-6272 :
Comments in the provisioning model get lost
This is an automated email from the ASF dual-hosted git repository.
rombert pushed a commit to annotated tag org.apache.sling.provisioning.model-1.8.0
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-provisioning-model.git
commit 97fe761234964661021a70356a68fa2435029af6
Author: Carsten Ziegeler <cz...@apache.org>
AuthorDate: Fri Nov 11 06:37:33 2016 +0000
SLING-6272 : Comments in the provisioning model get lost
git-svn-id: https://svn.apache.org/repos/asf/sling/trunk/tooling/support/provisioning-model@1769250 13f79535-47bb-0310-9956-ffa450edef68
---
.../sling/provisioning/model/MergeUtility.java | 24 +++++++++++++++++++++-
.../sling/provisioning/model/package-info.java | 2 +-
2 files changed, 24 insertions(+), 2 deletions(-)
diff --git a/src/main/java/org/apache/sling/provisioning/model/MergeUtility.java b/src/main/java/org/apache/sling/provisioning/model/MergeUtility.java
index 9cfdc3e..663efc5 100644
--- a/src/main/java/org/apache/sling/provisioning/model/MergeUtility.java
+++ b/src/main/java/org/apache/sling/provisioning/model/MergeUtility.java
@@ -140,15 +140,18 @@ public abstract class MergeUtility {
baseFeature.getRunModes().clear();
baseFeature.getAdditionalSections().clear();
baseFeature.getVariables().clear();
+ baseFeature.setComment(null);
}
+ mergeComments(baseFeature, feature);
baseFeature.setType(feature.getType());
- // additional sections
+ // additional sections (sections are not cloned, therefore comments do not need to be merged)
baseFeature.getAdditionalSections().addAll(feature.getAdditionalSections());
// variables
baseFeature.getVariables().putAll(feature.getVariables());
+ mergeComments(baseFeature.getVariables(), feature.getVariables());
// run modes
for(final RunMode runMode : feature.getRunModes()) {
@@ -165,6 +168,8 @@ public abstract class MergeUtility {
for(final ArtifactGroup group : runMode.getArtifactGroups()) {
final ArtifactGroup baseGroup = baseRunMode.getOrCreateArtifactGroup(group.getStartLevel());
+ mergeComments(baseGroup, group);
+
int foundStartLevel = 0;
for(final Artifact artifact : group) {
@@ -198,6 +203,7 @@ public abstract class MergeUtility {
}
}
if ( addArtifact ) {
+ // artifacts are not cloned, therefore comments do not need to be merged
if ( group.getStartLevel() == 0 && foundStartLevel != 0 ) {
baseRunMode.getOrCreateArtifactGroup(foundStartLevel).add(artifact);
} else {
@@ -212,12 +218,14 @@ public abstract class MergeUtility {
final Configuration found = baseRunMode.getOrCreateConfiguration(config.getPid(), config.getFactoryPid());
mergeConfiguration(found, config);
+ mergeComments(found, config);
}
// settings
for(final Map.Entry<String, String> entry : runMode.getSettings() ) {
baseRunMode.getSettings().put(entry.getKey(), entry.getValue());
}
+ mergeComments(baseRunMode.getSettings(), runMode.getSettings());
}
}
@@ -380,4 +388,18 @@ public abstract class MergeUtility {
}
}
}
+
+ /**
+ * Merge the comments
+ * @param base The base model object
+ * @param additional The additional model object
+ * @since 1.9.0
+ */
+ public static void mergeComments(final Commentable base, final Commentable additional) {
+ if ( base.getComment() == null ) {
+ base.setComment(additional.getComment());
+ } else if ( additional.getComment() != null ) {
+ base.setComment(base.getComment() + "\n" + additional.getComment());
+ }
+ }
}
diff --git a/src/main/java/org/apache/sling/provisioning/model/package-info.java b/src/main/java/org/apache/sling/provisioning/model/package-info.java
index 0a4616b..5547282 100644
--- a/src/main/java/org/apache/sling/provisioning/model/package-info.java
+++ b/src/main/java/org/apache/sling/provisioning/model/package-info.java
@@ -17,7 +17,7 @@
* under the License.
*/
-@org.osgi.annotation.versioning.Version("1.8.0")
+@org.osgi.annotation.versioning.Version("1.9.0")
package org.apache.sling.provisioning.model;
--
To stop receiving notification emails like this one, please contact
"commits@sling.apache.org" <co...@sling.apache.org>.