You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by da...@apache.org on 2018/04/27 10:01:33 UTC
[sling-org-apache-sling-feature-modelconverter] 15/40: Improve test
to property unmangle configurations when reading prov model
This is an automated email from the ASF dual-hosted git repository.
davidb pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-feature-modelconverter.git
commit 6fc71349c3d3f91e330b90c8964d0687e03331a6
Author: David Bosschaert <da...@gmail.com>
AuthorDate: Wed Mar 21 16:34:11 2018 +0000
Improve test to property unmangle configurations when reading prov model
---
.../modelconverter/impl/ModelConverterTest.java | 47 ++++++++--------------
1 file changed, 16 insertions(+), 31 deletions(-)
diff --git a/src/test/java/org/apache/sling/feature/modelconverter/impl/ModelConverterTest.java b/src/test/java/org/apache/sling/feature/modelconverter/impl/ModelConverterTest.java
index 6facd22..8a03fa1 100644
--- a/src/test/java/org/apache/sling/feature/modelconverter/impl/ModelConverterTest.java
+++ b/src/test/java/org/apache/sling/feature/modelconverter/impl/ModelConverterTest.java
@@ -29,6 +29,9 @@ import org.apache.sling.provisioning.model.Feature;
import org.apache.sling.provisioning.model.KeyValueMap;
import org.apache.sling.provisioning.model.Model;
import org.apache.sling.provisioning.model.ModelConstants;
+import org.apache.sling.provisioning.model.ModelUtility;
+import org.apache.sling.provisioning.model.ModelUtility.ResolverOptions;
+import org.apache.sling.provisioning.model.ModelUtility.VariableResolver;
import org.apache.sling.provisioning.model.RunMode;
import org.apache.sling.provisioning.model.Section;
import org.apache.sling.provisioning.model.io.ModelReader;
@@ -52,7 +55,6 @@ import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
-import java.util.regex.Pattern;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
@@ -126,7 +128,17 @@ public class ModelConverterTest {
private static Model readProvisioningModel(File modelFile) throws IOException {
try (final FileReader is = new FileReader(modelFile)) {
- return ModelReader.read(is, modelFile.getAbsolutePath());
+ Model model = ModelReader.read(is, modelFile.getAbsolutePath());
+
+ // Fix the configurations up from the internal format to the Dictionary-based format
+ return ModelUtility.getEffectiveModel(model,
+ new ResolverOptions().variableResolver(new VariableResolver() {
+ @Override
+ public String resolve(final Feature feature, final String name) {
+ // Keep variables as-is in the model
+ return "${" + name + "}";
+ }
+ }));
}
}
@@ -328,11 +340,10 @@ public class ModelConverterTest {
}
}
- Map<String, Object> m1 = cfgMap(cfg1.getProperties());
- Map<String, Object> m2 = cfgMap(cfg2.getProperties());
- if (!m1.equals(m2)) {
+ if (!configPropsEqual(cfg1.getProperties(), cfg2.getProperties())) {
return false;
}
+
break;
}
assertTrue("Configuration with PID " + cfg1.getPid() + " not found", found);
@@ -344,32 +355,6 @@ public class ModelConverterTest {
return m1.equals(m2);
}
- // TODO can this one go?
- private Map<String, Object> cfgMap(Dictionary<String, Object> properties) {
- Map<String, Object> m = new HashMap<>();
- for (Enumeration<String> e = properties.keys(); e.hasMoreElements(); ) {
- String key = e.nextElement();
- Object value = properties.get(key);
- if (ModelConstants.CFG_UNPROCESSED.equals(key) && value instanceof String) {
- String val = (String) value;
- // Collapse line continuation characters
- val = val.replaceAll("[\\\\]\\r?\\n", "");
- for (String line : val.split("\\r?\\n")) {
-
- String[] kv = line.trim().split("=");
- if (kv.length >= 2) {
- String v = kv[1].trim().replaceAll("[" + Pattern.quote("[") + "]\\s+[\"]", "[\"");
- v = v.replaceAll("[\"][,]\\s*[]]","\"]");
- m.put(kv[0].trim(), v.trim());
- }
- }
- } else {
- m.put(key, value);
- }
- }
- return m;
- }
-
private Map<String, String> kvToMap(KeyValueMap<String> kvm) {
Map<String, String> m = new HashMap<>();
--
To stop receiving notification emails like this one, please contact
davidb@apache.org.