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.3.0
in repository 
https://gitbox.apache.org/repos/asf/sling-org-apache-sling-provisioning-model.git

commit 9a36bf7fe5ec2e363529b2a128ce4baac910440d
Author: Stefan Seifert <sseif...@apache.org>
AuthorDate: Tue Jul 14 23:24:19 2015 +0000

    SLING-4807 introduce explicit boolean flag to make sure variable 
replacement does not take place when merging models
    
    git-svn-id: 
https://svn.apache.org/repos/asf/sling/trunk/tooling/support/provisioning-model@1691105
 13f79535-47bb-0310-9956-ffa450edef68
---
 .../apache/sling/provisioning/model/EffectiveModelProcessor.java  | 2 +-
 .../org/apache/sling/provisioning/model/ModelResolveUtility.java  | 8 ++++++--
 .../java/org/apache/sling/provisioning/model/ModelUtility.java    | 6 +++---
 3 files changed, 10 insertions(+), 6 deletions(-)

diff --git 
a/src/main/java/org/apache/sling/provisioning/model/EffectiveModelProcessor.java
 
b/src/main/java/org/apache/sling/provisioning/model/EffectiveModelProcessor.java
index 14188b5..8a18d8f 100644
--- 
a/src/main/java/org/apache/sling/provisioning/model/EffectiveModelProcessor.java
+++ 
b/src/main/java/org/apache/sling/provisioning/model/EffectiveModelProcessor.java
@@ -56,7 +56,7 @@ class EffectiveModelProcessor extends ModelProcessor {
     @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;
     }
 
diff --git 
a/src/main/java/org/apache/sling/provisioning/model/ModelResolveUtility.java 
b/src/main/java/org/apache/sling/provisioning/model/ModelResolveUtility.java
index ccae06d..95f0dc8 100644
--- a/src/main/java/org/apache/sling/provisioning/model/ModelResolveUtility.java
+++ b/src/main/java/org/apache/sling/provisioning/model/ModelResolveUtility.java
@@ -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 {
diff --git 
a/src/main/java/org/apache/sling/provisioning/model/ModelUtility.java 
b/src/main/java/org/apache/sling/provisioning/model/ModelUtility.java
index 8add571..968e32e 100644
--- a/src/main/java/org/apache/sling/provisioning/model/ModelUtility.java
+++ b/src/main/java/org/apache/sling/provisioning/model/ModelUtility.java
@@ -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();

-- 
To stop receiving notification emails like this one, please contact
"commits@sling.apache.org" <commits@sling.apache.org>.

Reply via email to