Author: sseifert
Date: Tue Jul 14 23:24:19 2015
New Revision: 1691105

URL: http://svn.apache.org/r1691105
Log:
SLING-4807 introduce explicit boolean flag to make sure variable replacement 
does not take place when merging models

Modified:
    
sling/trunk/tooling/support/provisioning-model/src/main/java/org/apache/sling/provisioning/model/EffectiveModelProcessor.java
    
sling/trunk/tooling/support/provisioning-model/src/main/java/org/apache/sling/provisioning/model/ModelResolveUtility.java
    
sling/trunk/tooling/support/provisioning-model/src/main/java/org/apache/sling/provisioning/model/ModelUtility.java

Modified: 
sling/trunk/tooling/support/provisioning-model/src/main/java/org/apache/sling/provisioning/model/EffectiveModelProcessor.java
URL: 
http://svn.apache.org/viewvc/sling/trunk/tooling/support/provisioning-model/src/main/java/org/apache/sling/provisioning/model/EffectiveModelProcessor.java?rev=1691105&r1=1691104&r2=1691105&view=diff
==============================================================================
--- 
sling/trunk/tooling/support/provisioning-model/src/main/java/org/apache/sling/provisioning/model/EffectiveModelProcessor.java
 (original)
+++ 
sling/trunk/tooling/support/provisioning-model/src/main/java/org/apache/sling/provisioning/model/EffectiveModelProcessor.java
 Tue Jul 14 23:24:19 2015
@@ -56,7 +56,7 @@ class EffectiveModelProcessor extends Mo
     @Override
     protected Configuration processConfiguration(Configuration config, Feature 
newFeature, RunMode newRunMode) {
         Configuration newConfig = new Configuration(config.getPid(), 
config.getFactoryPid());
-        getProcessedConfiguration(newFeature, newConfig, config, 
options.getVariableResolver());
+        getProcessedConfiguration(newFeature, newConfig, config, true, 
options.getVariableResolver());
         return newConfig;
     }
 

Modified: 
sling/trunk/tooling/support/provisioning-model/src/main/java/org/apache/sling/provisioning/model/ModelResolveUtility.java
URL: 
http://svn.apache.org/viewvc/sling/trunk/tooling/support/provisioning-model/src/main/java/org/apache/sling/provisioning/model/ModelResolveUtility.java?rev=1691105&r1=1691104&r2=1691105&view=diff
==============================================================================
--- 
sling/trunk/tooling/support/provisioning-model/src/main/java/org/apache/sling/provisioning/model/ModelResolveUtility.java
 (original)
+++ 
sling/trunk/tooling/support/provisioning-model/src/main/java/org/apache/sling/provisioning/model/ModelResolveUtility.java
 Tue Jul 14 23:24:19 2015
@@ -104,12 +104,14 @@ class ModelResolveUtility {
      * @param feature Feature
      * @param newConfig New configuration with replaced variables
      * @param config Source configuration which may contain variable 
placeholders
-     * @param resolver Variable resolver
+     * @param replaceVariables If set to true variables are resolved in the 
config before processing it.
+     * @param resolver Variable resolver Optional variable resolver which is 
used. If not given only the feature's variables are used.
      */
     static void getProcessedConfiguration(
             final Feature feature,
             final Configuration newConfig,
             final Configuration config,
+            final boolean replaceVariables,
             final VariableResolver resolver) {
         newConfig.setComment(config.getComment());
         newConfig.setLocation(config.getLocation());
@@ -117,7 +119,9 @@ class ModelResolveUtility {
         // check for raw configuration
         String rawConfig = 
(String)config.getProperties().get(ModelConstants.CFG_UNPROCESSED);
         if ( rawConfig != null ) {
-            rawConfig = replace(feature, rawConfig, resolver);
+            if ( replaceVariables ) {
+                rawConfig = replace(feature, rawConfig, resolver);
+            }
             if ( config.isSpecial() ) {
                 newConfig.getProperties().put(config.getPid(), rawConfig);
             } else {

Modified: 
sling/trunk/tooling/support/provisioning-model/src/main/java/org/apache/sling/provisioning/model/ModelUtility.java
URL: 
http://svn.apache.org/viewvc/sling/trunk/tooling/support/provisioning-model/src/main/java/org/apache/sling/provisioning/model/ModelUtility.java?rev=1691105&r1=1691104&r2=1691105&view=diff
==============================================================================
--- 
sling/trunk/tooling/support/provisioning-model/src/main/java/org/apache/sling/provisioning/model/ModelUtility.java
 (original)
+++ 
sling/trunk/tooling/support/provisioning-model/src/main/java/org/apache/sling/provisioning/model/ModelUtility.java
 Tue Jul 14 23:24:19 2015
@@ -171,12 +171,12 @@ public abstract class ModelUtility {
                     copyConfigurationProperties(baseConfig, mergeConfig);
                 } else {
                     final Configuration newConfig = new 
Configuration(baseConfig.getPid(), baseConfig.getFactoryPid());
-                    getProcessedConfiguration(null, newConfig, baseConfig, 
null);
+                    getProcessedConfiguration(null, newConfig, baseConfig, 
false, null);
                     clearConfiguration(baseConfig);
                     copyConfigurationProperties(baseConfig, newConfig);
 
                     clearConfiguration(newConfig);
-                    getProcessedConfiguration(null, newConfig, mergeConfig, 
null);
+                    getProcessedConfiguration(null, newConfig, mergeConfig, 
false, null);
 
                     if ( baseConfig.isSpecial() ) {
                         final String baseValue = 
baseConfig.getProperties().get(baseConfig.getPid()).toString();
@@ -201,7 +201,7 @@ public abstract class ModelUtility {
                     copyConfigurationProperties(baseConfig, mergeConfig);
                 } else {
                     final Configuration newMergeConfig = new 
Configuration(mergeConfig.getPid(), mergeConfig.getFactoryPid());
-                    getProcessedConfiguration(null, newMergeConfig, 
mergeConfig, null);
+                    getProcessedConfiguration(null, newMergeConfig, 
mergeConfig, false, null);
 
                     if ( baseConfig.isSpecial() ) {
                         final String baseValue = 
baseConfig.getProperties().get(baseConfig.getPid()).toString();


Reply via email to