Author: chetanm
Date: Fri Aug 7 11:00:58 2015
New Revision: 1694656
URL: http://svn.apache.org/r1694656
Log:
OAK-3196 - ConfigInstaller removing the configs on restart
Modified:
jackrabbit/oak/trunk/oak-pojosr/src/main/java/org/apache/jackrabbit/oak/run/osgi/ConfigInstaller.java
jackrabbit/oak/trunk/oak-pojosr/src/main/java/org/apache/jackrabbit/oak/run/osgi/ConfigTracker.java
jackrabbit/oak/trunk/oak-pojosr/src/test/groovy/org/apache/jackrabbit/oak/run/osgi/ConfigTest.groovy
Modified:
jackrabbit/oak/trunk/oak-pojosr/src/main/java/org/apache/jackrabbit/oak/run/osgi/ConfigInstaller.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-pojosr/src/main/java/org/apache/jackrabbit/oak/run/osgi/ConfigInstaller.java?rev=1694656&r1=1694655&r2=1694656&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-pojosr/src/main/java/org/apache/jackrabbit/oak/run/osgi/ConfigInstaller.java
(original)
+++
jackrabbit/oak/trunk/oak-pojosr/src/main/java/org/apache/jackrabbit/oak/run/osgi/ConfigInstaller.java
Fri Aug 7 11:00:58 2015
@@ -47,9 +47,8 @@ class ConfigInstaller {
this.bundleContext = bundleContext;
}
- public Set<String> installConfigs(Map<String, Map<String, Object>>
osgiConfig)
+ public void installConfigs(Map<String, Map<String, Object>> osgiConfig)
throws Exception {
- Set<String> processedPids = Sets.newHashSet();
for (Map.Entry<String, Map<String, Object>> pidEntry :
osgiConfig.entrySet()) {
final String pidString = pidEntry.getKey();
@@ -80,10 +79,8 @@ class ConfigInstaller {
log.info("Updating configuration from {}", pidString);
}
config.update(current);
- processedPids.add(pidString);
}
}
- return processedPids;
}
public void removeConfigs(Set<String> pidsToBeRemoved) throws Exception {
@@ -94,7 +91,7 @@ class ConfigInstaller {
}
if (!pidsToBeRemoved.isEmpty()) {
- log.info("Configuration belonging to following pids have been
removed ", pidsToBeRemoved);
+ log.info("Configuration belonging to following pids have been
removed {}", pidsToBeRemoved);
}
}
Modified:
jackrabbit/oak/trunk/oak-pojosr/src/main/java/org/apache/jackrabbit/oak/run/osgi/ConfigTracker.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-pojosr/src/main/java/org/apache/jackrabbit/oak/run/osgi/ConfigTracker.java?rev=1694656&r1=1694655&r2=1694656&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-pojosr/src/main/java/org/apache/jackrabbit/oak/run/osgi/ConfigTracker.java
(original)
+++
jackrabbit/oak/trunk/oak-pojosr/src/main/java/org/apache/jackrabbit/oak/run/osgi/ConfigTracker.java
Fri Aug 7 11:00:58 2015
@@ -89,8 +89,12 @@ class ConfigTracker extends ServiceTrack
configs.putAll(runtimeConfig);
}
- Set<String> processedPids = configInstaller.installConfigs(configs);
- Set<String> pidsToBeRemoved = Sets.difference(existingPids,
processedPids);
+ configInstaller.installConfigs(configs);
+ //Find out the config *installed by ConfigInstaller* and are not
present in
+ //current config files. Such configs must be remove. Note it does not
lead to
+ //removal of configs added by using ConfigAdmin directly, say using
WebConsole
+ //ui
+ Set<String> pidsToBeRemoved = Sets.difference(existingPids,
configs.keySet());
configInstaller.removeConfigs(pidsToBeRemoved);
}
Modified:
jackrabbit/oak/trunk/oak-pojosr/src/test/groovy/org/apache/jackrabbit/oak/run/osgi/ConfigTest.groovy
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-pojosr/src/test/groovy/org/apache/jackrabbit/oak/run/osgi/ConfigTest.groovy?rev=1694656&r1=1694655&r2=1694656&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-pojosr/src/test/groovy/org/apache/jackrabbit/oak/run/osgi/ConfigTest.groovy
(original)
+++
jackrabbit/oak/trunk/oak-pojosr/src/test/groovy/org/apache/jackrabbit/oak/run/osgi/ConfigTest.groovy
Fri Aug 7 11:00:58 2015
@@ -84,7 +84,8 @@ class ConfigTest {
void testConfigSync(){
config[REPOSITORY_CONFIG] = [
foo : [a:'a', b:1],
- bar : [a:'a1', b:2]
+ bar : [a:'a1', b:2],
+ foo2 : [a:'a2', b:2]
]
initRegistry(config)
Configuration c = cm.getConfiguration('baz')
@@ -93,16 +94,19 @@ class ConfigTest {
assert cm.getConfiguration('baz').properties.get('a') == 'a2'
assert cm.getConfiguration('foo').properties.get('a') == 'a'
assert cm.getConfiguration('bar').properties.get('a') == 'a1'
+ assert cm.getConfiguration('foo2').properties.get('a') == 'a2'
//Now re init and remove the pid bar
config[REPOSITORY_CONFIG] = [
foo : [a:'a-new', b:1],
+ foo2 : [a:'a2', b:2]
]
initRegistry(config)
assert cm.getConfiguration('baz').properties.get('a') == 'a2'
assert cm.getConfiguration('foo').properties.get('a') == 'a-new'
assert cm.getConfiguration('bar').properties == null
+ assert cm.getConfiguration('foo2').properties.get('a') == 'a2'
}
private static Map createConfigMap() {