You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@felix.apache.org by da...@apache.org on 2019/07/26 10:18:33 UTC
svn commit: r1863800 - in /felix/trunk/configadmin-plugins/interpolation/src:
main/java/org/apache/felix/configadmin/plugin/interpolation/
test/java/org/apache/felix/configadmin/plugin/interpolation/
Author: davidb
Date: Fri Jul 26 10:18:33 2019
New Revision: 1863800
URL: http://svn.apache.org/viewvc?rev=1863800&view=rev
Log:
Still register the config admin plugin if no directory configuration is found.
As the plugin can also substitute environment variables, the directory is not always needed.
Modified:
felix/trunk/configadmin-plugins/interpolation/src/main/java/org/apache/felix/configadmin/plugin/interpolation/Activator.java
felix/trunk/configadmin-plugins/interpolation/src/main/java/org/apache/felix/configadmin/plugin/interpolation/InterpolationConfigurationPlugin.java
felix/trunk/configadmin-plugins/interpolation/src/test/java/org/apache/felix/configadmin/plugin/interpolation/ActivatorTest.java
Modified: felix/trunk/configadmin-plugins/interpolation/src/main/java/org/apache/felix/configadmin/plugin/interpolation/Activator.java
URL: http://svn.apache.org/viewvc/felix/trunk/configadmin-plugins/interpolation/src/main/java/org/apache/felix/configadmin/plugin/interpolation/Activator.java?rev=1863800&r1=1863799&r2=1863800&view=diff
==============================================================================
--- felix/trunk/configadmin-plugins/interpolation/src/main/java/org/apache/felix/configadmin/plugin/interpolation/Activator.java (original)
+++ felix/trunk/configadmin-plugins/interpolation/src/main/java/org/apache/felix/configadmin/plugin/interpolation/Activator.java Fri Jul 26 10:18:33 2019
@@ -35,14 +35,16 @@ public class Activator implements Bundle
public void start(BundleContext context) throws Exception {
String directory = context.getProperty(DIR_PROPERTY);
if (directory == null) {
- LOG.warn("Framework property '" + DIR_PROPERTY + "' not specified. Plugin disabled.");
- return;
+ LOG.warn("Framework property '" + DIR_PROPERTY + "' not specified. File-based substitution is disabled.");
}
ConfigurationPlugin plugin = new InterpolationConfigurationPlugin(directory);
Dictionary<String, Object> props = new Hashtable<>();
props.put(ConfigurationPlugin.CM_RANKING, PLUGIN_RANKING);
- props.put(DIR_PROPERTY, directory);
+ if (directory != null)
+ props.put(DIR_PROPERTY, directory);
+ else
+ props.put(DIR_PROPERTY, "<not configured>");
context.registerService(ConfigurationPlugin.class, plugin, props);
}
Modified: felix/trunk/configadmin-plugins/interpolation/src/main/java/org/apache/felix/configadmin/plugin/interpolation/InterpolationConfigurationPlugin.java
URL: http://svn.apache.org/viewvc/felix/trunk/configadmin-plugins/interpolation/src/main/java/org/apache/felix/configadmin/plugin/interpolation/InterpolationConfigurationPlugin.java?rev=1863800&r1=1863799&r2=1863800&view=diff
==============================================================================
--- felix/trunk/configadmin-plugins/interpolation/src/main/java/org/apache/felix/configadmin/plugin/interpolation/InterpolationConfigurationPlugin.java (original)
+++ felix/trunk/configadmin-plugins/interpolation/src/main/java/org/apache/felix/configadmin/plugin/interpolation/InterpolationConfigurationPlugin.java Fri Jul 26 10:18:33 2019
@@ -46,8 +46,12 @@ class InterpolationConfigurationPlugin i
private final File directory;
InterpolationConfigurationPlugin(String dir) {
- directory = new File(dir);
- getLog().info("Configured directory for secrets: {}", dir);
+ if (dir != null) {
+ directory = new File(dir);
+ getLog().info("Configured directory for secrets: {}", dir);
+ } else {
+ directory = null;
+ }
}
private Logger getLog() {
@@ -86,6 +90,12 @@ class InterpolationConfigurationPlugin i
}
Object replaceVariablesFromFile(final String key, final String value, final Object pid) {
+ if (directory == null) {
+ getLog().warn("Cannot replace property value {} for PID {}. No directory configured via framework property " +
+ Activator.DIR_PROPERTY, key, pid);
+ return null;
+ }
+
return replaceVariables(SECRET_PREFIX, SECRET_PATTERN, key, value, pid, n -> {
if (n.contains("..")) {
getLog().error("Illegal secret location: " + n + " Going up in the directory structure is not allowed");
Modified: felix/trunk/configadmin-plugins/interpolation/src/test/java/org/apache/felix/configadmin/plugin/interpolation/ActivatorTest.java
URL: http://svn.apache.org/viewvc/felix/trunk/configadmin-plugins/interpolation/src/test/java/org/apache/felix/configadmin/plugin/interpolation/ActivatorTest.java?rev=1863800&r1=1863799&r2=1863800&view=diff
==============================================================================
--- felix/trunk/configadmin-plugins/interpolation/src/test/java/org/apache/felix/configadmin/plugin/interpolation/ActivatorTest.java (original)
+++ felix/trunk/configadmin-plugins/interpolation/src/test/java/org/apache/felix/configadmin/plugin/interpolation/ActivatorTest.java Fri Jul 26 10:18:33 2019
@@ -16,7 +16,6 @@
*/
package org.apache.felix.configadmin.plugin.interpolation;
-import org.apache.felix.configadmin.plugin.interpolation.Activator;
import org.junit.Test;
import org.mockito.Mockito;
import org.mockito.invocation.InvocationOnMock;
@@ -63,6 +62,7 @@ public class ActivatorTest {
assertEquals(expected, regProps);
}
+ @SuppressWarnings("unchecked")
@Test
public void testMissingConfiguration() throws Exception {
BundleContext bc = Mockito.mock(BundleContext.class);
@@ -72,6 +72,10 @@ public class ActivatorTest {
a.stop(bc);
Mockito.verify(bc).getProperty(Activator.DIR_PROPERTY);
- Mockito.verifyNoMoreInteractions(bc);
+
+ // Should still register the service
+ Mockito.verify(bc).registerService(Mockito.eq(ConfigurationPlugin.class),
+ Mockito.isA(ConfigurationPlugin.class),
+ Mockito.isA(Dictionary.class));
}
}