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 <[email protected]>
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);
+ }
}