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.