[felix-atomos] branch manifestProvider updated (a0adab9 -> 1737e86)

2021-02-16 Thread tjwatson
This is an automated email from the ASF dual-hosted git repository.

tjwatson pushed a change to branch manifestProvider
in repository https://gitbox.apache.org/repos/asf/felix-atomos.git.


from a0adab9  Javadoc update
 add aef1709  Define the HeaderProvider functional interface
 add 1737e86  Add more tests for HeaderProvider

No new revisions were added by this update.

Summary of changes:
 .../service/test/ClasspathLaunchTest.java  |  86 +++-
 .../tests/index/bundles/IndexLaunchTest.java   |  86 +++-
 .../modulepath/service/ModulepathLaunchTest.java   | 109 +++--
 .../main/java/org/apache/felix/atomos/Atomos.java  |  54 --
 .../org/apache/felix/atomos/AtomosContent.java |   2 +
 .../java/org/apache/felix/atomos/AtomosLayer.java  |   3 +
 .../apache/felix/atomos/impl/base/AtomosBase.java  |  54 +++---
 .../felix/atomos/impl/base/AtomosClassPath.java|   4 +-
 .../felix/atomos/impl/modules/AtomosModules.java   |   8 +-
 9 files changed, 361 insertions(+), 45 deletions(-)



[felix-atomos] branch manifestProvider updated (f22edd3 -> a0adab9)

2021-02-16 Thread tjwatson
This is an automated email from the ASF dual-hosted git repository.

tjwatson pushed a change to branch manifestProvider
in repository https://gitbox.apache.org/repos/asf/felix-atomos.git.


from f22edd3  More clean up
 add a0adab9  Javadoc update

No new revisions were added by this update.

Summary of changes:
 .../main/java/org/apache/felix/atomos/Atomos.java  | 32 ++
 1 file changed, 15 insertions(+), 17 deletions(-)



[felix-dev] branch master updated: FELIX-6384 support empty directive values

2021-02-16 Thread davidb
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/felix-dev.git


The following commit(s) were added to refs/heads/master by this push:
 new 0e8c8da  FELIX-6384 support empty directive values
 new 0b07b35  Merge pull request #69 from 
kwin/feature/support-empty-default-values
0e8c8da is described below

commit 0e8c8da91122ed8b0bae0d0c38818d77a097dbc5
Author: Konrad Windszus 
AuthorDate: Tue Feb 2 13:25:46 2021 +0100

FELIX-6384 support empty directive values

In addition support "=" within directive values
---
 configadmin-plugins/interpolation/README.md   |  3 +++
 .../felix/configadmin/plugin/interpolation/Interpolator.java  |  7 ---
 .../interpolation/InterpolationConfigurationPluginTest.java   | 11 ++-
 3 files changed, 17 insertions(+), 4 deletions(-)

diff --git a/configadmin-plugins/interpolation/README.md 
b/configadmin-plugins/interpolation/README.md
index d1a7f10..868ea0f 100644
--- a/configadmin-plugins/interpolation/README.md
+++ b/configadmin-plugins/interpolation/README.md
@@ -61,10 +61,13 @@ It is possible to specify a default value as part of the 
placeholder, for exampl
 
 ```
 "port" : "$[env:PORT;default=8080]"
+"label" : "$[env:LABEL;default=]"
 ```
 
 Without a default, the placeholder is left in the value if no value can be 
found. With a default, the default is used instead.
 
+The default value may contain all alphanumeric and punctuation characters and 
space except for a `;`. It may even be left out which leads to replacing the 
placeholder with the empty string.
+
 ## Type Support
 
 A placeholder can contain additional information like the type the value 
should be converted to.
diff --git 
a/configadmin-plugins/interpolation/src/main/java/org/apache/felix/configadmin/plugin/interpolation/Interpolator.java
 
b/configadmin-plugins/interpolation/src/main/java/org/apache/felix/configadmin/plugin/interpolation/Interpolator.java
index cb98fd6..ceddb92 100755
--- 
a/configadmin-plugins/interpolation/src/main/java/org/apache/felix/configadmin/plugin/interpolation/Interpolator.java
+++ 
b/configadmin-plugins/interpolation/src/main/java/org/apache/felix/configadmin/plugin/interpolation/Interpolator.java
@@ -114,9 +114,10 @@ public class Interpolator {
 directives = new HashMap<>();
 
 for (String dir : postfix.substring(dirPos + 1).split(";")) {
-String[] kv = dir.split("=");
-if (kv.length == 2) {
-directives.put(kv[0], kv[1]);
+String[] kv = dir.split("=", 2);
+if (kv.length > 0) {
+final String directiveValue = kv.length == 2 ? kv[1] : 
"";
+directives.put(kv[0], directiveValue);
 }
 }
 }
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 bdbf173..7a38573 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
@@ -138,10 +138,19 @@ public class InterpolationConfigurationPluginTest {
 
 Dictionary dict = new Hashtable<>();
 dict.put("defaulted", "$[env:notset;default=foo]");
-
+dict.put("defaulted2", "$[env:notset;default=]");
+dict.put("defaulted3", "$[env:notset;default=foo=bar]");
+dict.put("defaulted4", "$[env:notset;default=foo;=bar]");
+dict.put("defaulted5", "$[env:notset;default= ]");
+dict.put("defaulted6", "$[env:notset;default");
 plugin.modifyConfiguration(null, dict);
 
 assertEquals("foo", dict.get("defaulted"));
+assertEquals("", dict.get("defaulted2"));
+assertEquals("foo=bar", dict.get("defaulted3"));
+assertEquals("foo", dict.get("defaulted4")); // semicolon is not 
supported in values
+assertEquals(" ", dict.get("defaulted5"));
+assertEquals("$[env:notset;default", dict.get("defaulted6"));
 }
 
 @Test