You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@felix.apache.org by cz...@apache.org on 2021/09/06 06:38:35 UTC
[felix-dev] branch master updated: FELIX-6273 : Improve behaviour
when delimiter is set but the type is not
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/felix-dev.git
The following commit(s) were added to refs/heads/master by this push:
new b236c6b FELIX-6273 : Improve behaviour when delimiter is set but the type is not
b236c6b is described below
commit b236c6b45af211e43eda05289467505efcd904ce
Author: Carsten Ziegeler <cz...@apache.org>
AuthorDate: Mon Sep 6 08:38:20 2021 +0200
FELIX-6273 : Improve behaviour when delimiter is set but the type is not
---
.../interpolation/InterpolationConfigurationPlugin.java | 6 +++++-
.../interpolation/InterpolationConfigurationPluginTest.java | 13 +++++++++++++
2 files changed, 18 insertions(+), 1 deletion(-)
diff --git a/configadmin-plugins/interpolation/src/main/java/org/apache/felix/configadmin/plugin/interpolation/InterpolationConfigurationPlugin.java b/configadmin-plugins/interpolation/src/main/java/org/apache/felix/configadmin/plugin/interpolation/InterpolationConfigurationPlugin.java
index 2dae521..e8d456a 100644
--- a/configadmin-plugins/interpolation/src/main/java/org/apache/felix/configadmin/plugin/interpolation/InterpolationConfigurationPlugin.java
+++ b/configadmin-plugins/interpolation/src/main/java/org/apache/felix/configadmin/plugin/interpolation/InterpolationConfigurationPlugin.java
@@ -238,7 +238,11 @@ class InterpolationConfigurationPlugin implements ConfigurationPlugin {
* @param delimiter The delimiter for array types (optional)
* @return The converted value
*/
- Object convertType(final String type, final String value, final String delimiter) {
+ Object convertType(String type, final String value, final String delimiter) {
+ // if delimiter is specifed but no type, assume String[]
+ if ( delimiter != null && type == null ) {
+ type = "String[]";
+ }
if (type == null) {
return value;
}
diff --git a/configadmin-plugins/interpolation/src/test/java/org/apache/felix/configadmin/plugin/interpolation/InterpolationConfigurationPluginTest.java b/configadmin-plugins/interpolation/src/test/java/org/apache/felix/configadmin/plugin/interpolation/InterpolationConfigurationPluginTest.java
index 4b2b3ee..e078fc1 100644
--- a/configadmin-plugins/interpolation/src/test/java/org/apache/felix/configadmin/plugin/interpolation/InterpolationConfigurationPluginTest.java
+++ b/configadmin-plugins/interpolation/src/test/java/org/apache/felix/configadmin/plugin/interpolation/InterpolationConfigurationPluginTest.java
@@ -260,4 +260,17 @@ public class InterpolationConfigurationPluginTest {
assertArrayEquals(new Integer[] { 1, 2 },
(Integer[]) plugin.replace("key", "$[prop:bar;type=Integer[];delimiter=,;default=1,2]", "somepid"));
}
+
+ @Test
+ public void testConvertTypeDelimiterWithoutType() throws Exception {
+ BundleContext bc = Mockito.mock(BundleContext.class);
+ Mockito.when(bc.getProperty("foo")).thenReturn("2000,3000");
+ InterpolationConfigurationPlugin plugin = new InterpolationConfigurationPlugin(bc::getProperty, null, null);
+
+ Object obj = plugin.convertType(null, "a,b", ",");
+ assertArrayEquals(new String[] {"a", "b"}, (Object[])obj);
+
+ obj = plugin.convertType("String", "a,b", ",");
+ assertEquals("a,b", obj);
+ }
}