public XMLRouterConfigurationImpl(ExtendedRouterConfig aConfig) {
config = aConfig;
- transformations = new TransformationPaths();
+ transformations = new TransformationPaths(config.transformationConfig()
+ .map());
}
public XMLRouterConfigurationImpl() {
this(new CompositeRouterConfig(new ArrayList<RouterConfig>()));
}
- @Override
- public void startConfigurationChange() {
- wlock.lock();
- }
-
- @Override
- public void endConfigurationChange() {
- wlock.unlock();
- }
-
@Override
public void startPublishEvent() {
rlock.lock();
@Override
public void setRouterConfig(ExtendedRouterConfig aConfig) {
- config = aConfig;
- transformations.replaceTransformations(config.transformationConfig()
- .map());
+
+ TransformationPaths newTransformations = new TransformationPaths(
+ aConfig.transformationConfig().map());
+
+ wlock.lock();
+ try {
+ config = aConfig;
+ transformations = newTransformations;
+ } finally {
+ wlock.unlock();
+ }
}
@Override