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:54 UTC
[sling-org-apache-sling-feature-modelconverter] 36/40: Remove
WriteOption from Feature JSON Writer.
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 0cc518fce797e9097c8c3c3bb08165d3f1af20f9
Author: David Bosschaert <da...@gmail.com>
AuthorDate: Wed Apr 18 20:42:07 2018 +0300
Remove WriteOption from Feature JSON Writer.
---
.../modelconverter/impl/FeatureToProvisioning.java | 30 ++++++++-----
.../modelconverter/impl/ProvisioningToFeature.java | 33 +++++++--------
.../modelconverter/impl/ModelConverterTest.java | 49 +++++++++++-----------
src/test/resources/launchpad.json | 2 +-
src/test/resources/oak.json | 6 +--
5 files changed, 65 insertions(+), 55 deletions(-)
diff --git a/src/main/java/org/apache/sling/feature/modelconverter/impl/FeatureToProvisioning.java b/src/main/java/org/apache/sling/feature/modelconverter/impl/FeatureToProvisioning.java
index e6ce8a8..11041f8 100644
--- a/src/main/java/org/apache/sling/feature/modelconverter/impl/FeatureToProvisioning.java
+++ b/src/main/java/org/apache/sling/feature/modelconverter/impl/FeatureToProvisioning.java
@@ -21,6 +21,8 @@ import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.StringReader;
+import java.util.ArrayList;
+import java.util.Arrays;
import java.util.Enumeration;
import java.util.HashMap;
import java.util.List;
@@ -161,18 +163,12 @@ public class FeatureToProvisioning {
for(final org.apache.sling.feature.Configuration cfg : configurations) {
final Configuration c;
- String[] runModes = null;
+ List<String> runModeList = new ArrayList<>();
if ( cfg.isFactoryConfiguration() ) {
- c = new Configuration(cfg.getName(), cfg.getFactoryPid());
+ String name = decodeRunModes(cfg.getName(), runModeList);
+ c = new Configuration(name, cfg.getFactoryPid());
} else {
- String pid = cfg.getPid();
- pid = pid.replaceAll("[.][.](\\w+)", ":$1");
- int rmIdx = pid.indexOf(".runmodes.");
- if (rmIdx > 0) {
- String rm = pid.substring(rmIdx + ".runmodes.".length());
- pid = pid.substring(0, rmIdx);
- runModes = rm.split("[.]");
- }
+ String pid = decodeRunModes(cfg.getPid(), runModeList);
c = new Configuration(pid, null);
}
final Enumeration<String> keys = cfg.getProperties().keys();
@@ -186,6 +182,9 @@ public class FeatureToProvisioning {
c.getProperties().put(key, val);
}
+ String[] runModes = runModeList.toArray(new String[] {});
+ if (runModes.length == 0)
+ runModes = null;
f.getOrCreateRunMode(runModes).getConfigurations().add(c);
}
@@ -257,6 +256,17 @@ public class FeatureToProvisioning {
}
}
+ private static String decodeRunModes(String pid, List<String> runModes) {
+ pid = pid.replaceAll("[.][.](\\w+)", ":$1");
+ int rmIdx = pid.indexOf(".runmodes.");
+ if (rmIdx > 0) {
+ String rm = pid.substring(rmIdx + ".runmodes.".length());
+ pid = pid.substring(0, rmIdx);
+ runModes.addAll(Arrays.asList(rm.split("[.]")));
+ }
+ return pid;
+ }
+
private static String[] getRunModes(final org.apache.sling.feature.Artifact bundle) {
String runMode = bundle.getMetadata().get("run-modes");
String[] runModes;
diff --git a/src/main/java/org/apache/sling/feature/modelconverter/impl/ProvisioningToFeature.java b/src/main/java/org/apache/sling/feature/modelconverter/impl/ProvisioningToFeature.java
index 466e961..cb166a7 100644
--- a/src/main/java/org/apache/sling/feature/modelconverter/impl/ProvisioningToFeature.java
+++ b/src/main/java/org/apache/sling/feature/modelconverter/impl/ProvisioningToFeature.java
@@ -16,21 +16,6 @@
*/
package org.apache.sling.feature.modelconverter.impl;
-import java.io.File;
-import java.io.FileReader;
-import java.io.FileWriter;
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.Enumeration;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-import java.util.Map.Entry;
-import java.util.Set;
-
import org.apache.sling.feature.Application;
import org.apache.sling.feature.ArtifactId;
import org.apache.sling.feature.Bundles;
@@ -44,7 +29,6 @@ import org.apache.sling.feature.io.ArtifactManager;
import org.apache.sling.feature.io.ArtifactManagerConfig;
import org.apache.sling.feature.io.json.ApplicationJSONWriter;
import org.apache.sling.feature.io.json.FeatureJSONWriter;
-import org.apache.sling.feature.io.json.WriteOption;
import org.apache.sling.feature.support.FeatureUtil;
import org.apache.sling.feature.support.SlingConstants;
import org.apache.sling.provisioning.model.Artifact;
@@ -64,6 +48,21 @@ import org.apache.sling.provisioning.model.io.ModelReader;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import java.io.File;
+import java.io.FileReader;
+import java.io.FileWriter;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.Enumeration;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+import java.util.Map.Entry;
+import java.util.Set;
+
/** Converter that converts the provisioning model to the feature model.
*/
public class ProvisioningToFeature {
@@ -516,7 +515,7 @@ public class ProvisioningToFeature {
}
try ( final FileWriter writer = new FileWriter(file)) {
- FeatureJSONWriter.write(writer, f, WriteOption.OLD_STYLE_FACTORY_CONFIGS);
+ FeatureJSONWriter.write(writer, f);
} catch ( final IOException ioe) {
LOGGER.error("Unable to write feature to {} : {}", out, ioe.getMessage(), ioe);
System.exit(1);
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 4f17c1b..98449cf 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
@@ -16,29 +16,6 @@
*/
package org.apache.sling.feature.modelconverter.impl;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertTrue;
-import static org.junit.Assert.fail;
-
-import java.io.File;
-import java.io.FileReader;
-import java.io.IOException;
-import java.net.URISyntaxException;
-import java.nio.file.Files;
-import java.nio.file.Path;
-import java.nio.file.Paths;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.Comparator;
-import java.util.Dictionary;
-import java.util.Enumeration;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-
import org.apache.sling.feature.Bundles;
import org.apache.sling.feature.Configurations;
import org.apache.sling.feature.Extension;
@@ -66,6 +43,29 @@ import org.junit.After;
import org.junit.Before;
import org.junit.Test;
+import java.io.File;
+import java.io.FileReader;
+import java.io.IOException;
+import java.net.URISyntaxException;
+import java.nio.file.Files;
+import java.nio.file.Path;
+import java.nio.file.Paths;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.Comparator;
+import java.util.Dictionary;
+import java.util.Enumeration;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
+
public class ModelConverterTest {
private Path tempDir;
private ArtifactManager artifactManager;
@@ -299,7 +299,8 @@ public class ModelConverterTest {
assertConfigProps(ex, ac, exBundles, acBundles);
}
} else {
- if (ex.getFactoryPid().equals(ac.getFactoryPid())) {
+ if (ex.getFactoryPid().equals(ac.getFactoryPid()) &&
+ ex.getName().equals(ac.getName())) {
found = true;
assertConfigProps(ex, ac, exBundles, acBundles);
}
diff --git a/src/test/resources/launchpad.json b/src/test/resources/launchpad.json
index 0c103ba..d9e7193 100644
--- a/src/test/resources/launchpad.json
+++ b/src/test/resources/launchpad.json
@@ -21,7 +21,7 @@
"..bootstrap.runmodes...standalone":{
"..bootstrap":"uninstall org.apache.felix.http.bridge\nuninstall org.apache.felix.http.api\n"
},
- "org.apache.testing.ConfigPid.factory-configuration.runmodes...standalone":{
+ "org.apache.testing.ConfigPid.factory~configuration.runmodes...standalone":{
"key1":"val1"
}
}
diff --git a/src/test/resources/oak.json b/src/test/resources/oak.json
index 0db7923..f054113 100644
--- a/src/test/resources/oak.json
+++ b/src/test/resources/oak.json
@@ -51,16 +51,16 @@
}
],
"configurations": {
- "org.apache.felix.jaas.Configuration.factory-GuestLoginModule": {
+ "org.apache.felix.jaas.Configuration.factory~GuestLoginModule": {
"jaas.controlFlag": "optional",
"jaas.classname": "org.apache.jackrabbit.oak.spi.security.authentication.GuestLoginModule",
"jaas.ranking:Integer": 300
},
- "org.apache.felix.jaas.Configuration.factory-LoginModuleImpl" : {
+ "org.apache.felix.jaas.Configuration.factory~LoginModuleImpl" : {
"jaas.controlFlag": "required",
"jaas.classname": "org.apache.jackrabbit.oak.security.authentication.user.LoginModuleImpl"
},
- "org.apache.felix.jaas.Configuration.factory-TokenLoginModule" : {
+ "org.apache.felix.jaas.Configuration.factory~TokenLoginModule" : {
"jaas.controlFlag": "sufficient",
"jaas.classname": "org.apache.jackrabbit.oak.security.authentication.token.TokenLoginModule",
"jaas.ranking:Integer": 200
--
To stop receiving notification emails like this one, please contact
davidb@apache.org.