You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by cz...@apache.org on 2018/11/19 07:07:08 UTC
[sling-org-apache-sling-feature-io] branch master updated:
SLING-8119 : Improve configuration handling
This is an automated email from the ASF dual-hosted git repository.
cziegeler pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-feature-io.git
The following commit(s) were added to refs/heads/master by this push:
new eec56d7 SLING-8119 : Improve configuration handling
eec56d7 is described below
commit eec56d75b887e909218e2ad04aeb873442b1f683
Author: Carsten Ziegeler <cz...@apache.org>
AuthorDate: Mon Nov 19 08:04:21 2018 +0100
SLING-8119 : Improve configuration handling
---
.../sling/feature/io/json/JSONReaderBase.java | 12 ++-------
.../sling/feature/io/json/JSONWriterBase.java | 31 +++++++++-------------
.../feature/io/json/FeatureJSONReaderTest.java | 2 +-
.../java/org/apache/sling/feature/io/json/U.java | 12 +--------
4 files changed, 16 insertions(+), 41 deletions(-)
diff --git a/src/main/java/org/apache/sling/feature/io/json/JSONReaderBase.java b/src/main/java/org/apache/sling/feature/io/json/JSONReaderBase.java
index 4081a01..e063c39 100644
--- a/src/main/java/org/apache/sling/feature/io/json/JSONReaderBase.java
+++ b/src/main/java/org/apache/sling/feature/io/json/JSONReaderBase.java
@@ -278,19 +278,11 @@ abstract class JSONReaderBase {
}
for(final Config c : configs) {
- final int pos = c.getPid().indexOf('~');
- final Configuration config;
- if ( pos != -1 ) {
- config = new Configuration(c.getPid().substring(0, pos), c.getPid().substring(pos + 1));
- } else {
- config = new Configuration(c.getPid());
- }
+ final Configuration config = new Configuration(c.getPid());
+
final Enumeration<String> keyEnum = c.getProperties().keys();
while ( keyEnum.hasMoreElements() ) {
final String key = keyEnum.nextElement();
- if ( key.startsWith(":configurator:") ) {
- throw new IOException(exceptionPrefix + "Configuration must not define configurator property " + key);
- }
final Object val = c.getProperties().get(key);
config.getProperties().put(key, val);
}
diff --git a/src/main/java/org/apache/sling/feature/io/json/JSONWriterBase.java b/src/main/java/org/apache/sling/feature/io/json/JSONWriterBase.java
index 4f7d77f..969ef62 100644
--- a/src/main/java/org/apache/sling/feature/io/json/JSONWriterBase.java
+++ b/src/main/java/org/apache/sling/feature/io/json/JSONWriterBase.java
@@ -16,17 +16,6 @@
*/
package org.apache.sling.feature.io.json;
-import org.apache.sling.feature.Artifact;
-import org.apache.sling.feature.ArtifactId;
-import org.apache.sling.feature.Bundles;
-import org.apache.sling.feature.Configuration;
-import org.apache.sling.feature.Configurations;
-import org.apache.sling.feature.Extension;
-import org.apache.sling.feature.ExtensionType;
-import org.apache.sling.feature.Include;
-import org.osgi.resource.Capability;
-import org.osgi.resource.Requirement;
-
import java.io.StringReader;
import java.io.Writer;
import java.lang.reflect.Array;
@@ -41,6 +30,17 @@ import javax.json.JsonStructure;
import javax.json.stream.JsonGenerator;
import javax.json.stream.JsonGeneratorFactory;
+import org.apache.sling.feature.Artifact;
+import org.apache.sling.feature.ArtifactId;
+import org.apache.sling.feature.Bundles;
+import org.apache.sling.feature.Configuration;
+import org.apache.sling.feature.Configurations;
+import org.apache.sling.feature.Extension;
+import org.apache.sling.feature.ExtensionType;
+import org.apache.sling.feature.Include;
+import org.osgi.resource.Capability;
+import org.osgi.resource.Requirement;
+
/**
* Common functionality for writing JSON
*/
@@ -104,14 +104,7 @@ abstract class JSONWriterBase {
generator.writeStartObject(JSONConstants.FEATURE_CONFIGURATIONS);
for(final Configuration cfg : cfgs) {
- final String key;
- if ( cfg.isFactoryConfiguration() ) {
- key = cfg.getFactoryPid() + "~" + cfg.getName();
- } else {
- key = cfg.getPid();
- }
-
- generator.writeStartObject(key);
+ generator.writeStartObject(cfg.getPid());
final Enumeration<String> e = cfg.getProperties().keys();
while ( e.hasMoreElements() ) {
diff --git a/src/test/java/org/apache/sling/feature/io/json/FeatureJSONReaderTest.java b/src/test/java/org/apache/sling/feature/io/json/FeatureJSONReaderTest.java
index 6c99042..ab30274 100644
--- a/src/test/java/org/apache/sling/feature/io/json/FeatureJSONReaderTest.java
+++ b/src/test/java/org/apache/sling/feature/io/json/FeatureJSONReaderTest.java
@@ -46,7 +46,7 @@ public class FeatureJSONReaderTest {
assertEquals(2, feature.getConfigurations().size());
final Configuration cfg1 = U.findConfiguration(feature.getConfigurations(), "my.pid");
assertEquals(7, cfg1.getProperties().get("number"));
- final Configuration cfg2 = U.findFactoryConfiguration(feature.getConfigurations(), "my.factory.pid", "name");
+ final Configuration cfg2 = U.findConfiguration(feature.getConfigurations(), "my.factory.pid~name");
assertEquals("yeah", cfg2.getProperties().get("a.value"));
assertEquals(3, feature.getCapabilities().size());
diff --git a/src/test/java/org/apache/sling/feature/io/json/U.java b/src/test/java/org/apache/sling/feature/io/json/U.java
index fa23b47..ee642c1 100644
--- a/src/test/java/org/apache/sling/feature/io/json/U.java
+++ b/src/test/java/org/apache/sling/feature/io/json/U.java
@@ -41,7 +41,7 @@ public class U {
public static Configuration findConfiguration(final List<Configuration> cfgs, final String pid) {
for(final Configuration c : cfgs) {
- if ( !c.isFactoryConfiguration() && pid.equals(c.getPid()) ) {
+ if (pid.equals(c.getPid())) {
return c;
}
}
@@ -49,16 +49,6 @@ public class U {
return null;
}
- public static Configuration findFactoryConfiguration(final List<Configuration> cfgs, final String factoryid, final String name) {
- for(final Configuration c : cfgs) {
- if ( c.isFactoryConfiguration() && factoryid.equals(c.getFactoryPid()) && name.equals(c.getName())) {
- return c;
- }
- }
- fail("Factory Configuration not found " + factoryid + "~" + name);
- return null;
- }
-
public static Capability findCapability(List<Capability> capabilities, final String namespace) {
for (Capability capability : capabilities) {
if (capability.getNamespace().equals(namespace)) {