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 2020/11/17 15:24:10 UTC
[sling-org-apache-sling-feature-cpconverter] branch master updated:
SLING-9916 : Content package converter produces broken configs for typed
configuration entries.
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-cpconverter.git
The following commit(s) were added to refs/heads/master by this push:
new 0063166 SLING-9916 : Content package converter produces broken configs for typed configuration entries.
0063166 is described below
commit 006316617b1784f33283fec92c224275b73a4f01
Author: Carsten Ziegeler <cz...@apache.org>
AuthorDate: Tue Nov 17 16:23:42 2020 +0100
SLING-9916 : Content package converter produces broken configs for typed configuration entries.
---
.../cpconverter/handlers/XmlConfigurationEntryHandler.java | 13 ++++---------
.../handlers/ConfigurationEntryHandlerTest.java | 14 +++++++-------
2 files changed, 11 insertions(+), 16 deletions(-)
diff --git a/src/main/java/org/apache/sling/feature/cpconverter/handlers/XmlConfigurationEntryHandler.java b/src/main/java/org/apache/sling/feature/cpconverter/handlers/XmlConfigurationEntryHandler.java
index d023ac9..59215cb 100644
--- a/src/main/java/org/apache/sling/feature/cpconverter/handlers/XmlConfigurationEntryHandler.java
+++ b/src/main/java/org/apache/sling/feature/cpconverter/handlers/XmlConfigurationEntryHandler.java
@@ -25,6 +25,7 @@ import java.util.List;
import javax.jcr.PropertyType;
+import org.apache.felix.cm.json.Configurations;
import org.apache.jackrabbit.util.ISO8601;
import org.apache.jackrabbit.vault.util.DocViewProperty;
import org.apache.sling.feature.cpconverter.shared.AbstractJcrNodeParser;
@@ -56,7 +57,7 @@ public final class XmlConfigurationEntryHandler extends AbstractConfigurationEnt
private static final String SLING_OSGICONFIG = "sling:OsgiConfig";
- private Dictionary<String, Object> configuration = null;
+ private Dictionary<String, Object> configuration;
public JcrConfigurationHandler() {
super(SLING_OSGICONFIG);
@@ -64,7 +65,7 @@ public final class XmlConfigurationEntryHandler extends AbstractConfigurationEnt
@Override
protected void onJcrRootElement(String uri, String localName, String qName, Attributes attributes) throws SAXException {
- configuration = new Hashtable<>();
+ configuration = Configurations.newConfiguration();
for (int i = 0; i < attributes.getLength(); i++) {
String attributeQName = attributes.getQName(i);
@@ -81,7 +82,6 @@ public final class XmlConfigurationEntryHandler extends AbstractConfigurationEnt
case PropertyType.DATE:
// Date was never properly supported as osgi configs don't support dates so converting to millis
// Scenario should just be theoretical
- attributeQName += ":Long";
value = Lists.transform(strValues, new Function<String, Long>() {
public Long apply(String s) {
Long res = null;
@@ -96,7 +96,6 @@ public final class XmlConfigurationEntryHandler extends AbstractConfigurationEnt
}).toArray();
break;
case PropertyType.DOUBLE:
- attributeQName += ":Double";
value = Lists.transform(strValues, new Function<String, Double>() {
public Double apply(String s) {
Double res = null;
@@ -108,7 +107,6 @@ public final class XmlConfigurationEntryHandler extends AbstractConfigurationEnt
}).toArray();
break;
case PropertyType.LONG:
- attributeQName += ":Long";
value = Lists.transform(strValues, new Function<String, Long>() {
public Long apply(String s) {
Long res = null;
@@ -120,7 +118,6 @@ public final class XmlConfigurationEntryHandler extends AbstractConfigurationEnt
}).toArray();
break;
case PropertyType.BOOLEAN:
- attributeQName += ":Boolean";
value = Lists.transform(strValues, new Function<String, Boolean>() {
public Boolean apply(String s) {
Boolean res = null;
@@ -132,9 +129,7 @@ public final class XmlConfigurationEntryHandler extends AbstractConfigurationEnt
}).toArray();
break;
}
- if(property.isMulti) {
- attributeQName+="[]";
- } else {
+ if (!property.isMulti) {
// first element to be used in case of singlevalue
value = ((Object[])value)[0];
}
diff --git a/src/test/java/org/apache/sling/feature/cpconverter/handlers/ConfigurationEntryHandlerTest.java b/src/test/java/org/apache/sling/feature/cpconverter/handlers/ConfigurationEntryHandlerTest.java
index 4c57c05..38d95b9 100644
--- a/src/test/java/org/apache/sling/feature/cpconverter/handlers/ConfigurationEntryHandlerTest.java
+++ b/src/test/java/org/apache/sling/feature/cpconverter/handlers/ConfigurationEntryHandlerTest.java
@@ -65,15 +65,15 @@ public class ConfigurationEntryHandlerTest {
private static final String EXPECTED_TYPED_CONFIG = "{\n" +
" \"org.apache.sling.serviceusermapping.impl.ServiceUserMapperImpl.typed\": {\n" +
- " \"test.longproperty:Long\":123,\n" +
- " \"user.mapping[]\":[\n" +
+ " \"user.default\":\"admin\",\n" +
+ " \"test.longproperty\":123,\n" +
+ " \"test.doubleproperty\":1.23,\n" +
+ " \"test.dateproperty\":1604743842669,\n" +
+ " \"test.booleanproperty\":true,\n" +
+ " \"user.mapping\":[\n" +
" \"com.adobe.acs.acs-aem-samples-bundle=admin\",\n" +
" \"com.adobe.acs.acs-aem-samples-bundle:sample-service=oauthservice\"\n" +
- " ],\n" +
- " \"test.booleanproperty:Boolean\":true,\n" +
- " \"test.dateproperty:Long\":1604743842669,\n" +
- " \"user.default\":\"admin\",\n" +
- " \"test.doubleproperty:Double\":1.23\n" +
+ " ]\n" +
" }\n" +
"}";