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 2016/11/11 06:37:33 UTC

svn commit: r1769250 - in /sling/trunk/tooling/support/provisioning-model/src/main/java/org/apache/sling/provisioning/model: MergeUtility.java package-info.java

Author: cziegeler
Date: Fri Nov 11 06:37:33 2016
New Revision: 1769250

URL: http://svn.apache.org/viewvc?rev=1769250&view=rev
Log:
SLING-6272 : Comments in the provisioning model get lost

Modified:
    sling/trunk/tooling/support/provisioning-model/src/main/java/org/apache/sling/provisioning/model/MergeUtility.java
    sling/trunk/tooling/support/provisioning-model/src/main/java/org/apache/sling/provisioning/model/package-info.java

Modified: sling/trunk/tooling/support/provisioning-model/src/main/java/org/apache/sling/provisioning/model/MergeUtility.java
URL: http://svn.apache.org/viewvc/sling/trunk/tooling/support/provisioning-model/src/main/java/org/apache/sling/provisioning/model/MergeUtility.java?rev=1769250&r1=1769249&r2=1769250&view=diff
==============================================================================
--- sling/trunk/tooling/support/provisioning-model/src/main/java/org/apache/sling/provisioning/model/MergeUtility.java (original)
+++ sling/trunk/tooling/support/provisioning-model/src/main/java/org/apache/sling/provisioning/model/MergeUtility.java Fri Nov 11 06:37:33 2016
@@ -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());
+        }
+    }
 }

Modified: sling/trunk/tooling/support/provisioning-model/src/main/java/org/apache/sling/provisioning/model/package-info.java
URL: http://svn.apache.org/viewvc/sling/trunk/tooling/support/provisioning-model/src/main/java/org/apache/sling/provisioning/model/package-info.java?rev=1769250&r1=1769249&r2=1769250&view=diff
==============================================================================
--- sling/trunk/tooling/support/provisioning-model/src/main/java/org/apache/sling/provisioning/model/package-info.java (original)
+++ sling/trunk/tooling/support/provisioning-model/src/main/java/org/apache/sling/provisioning/model/package-info.java Fri Nov 11 06:37:33 2016
@@ -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;