X-Git-Url: http://wamblee.org/gitweb/?a=blobdiff_plain;f=impl%2Fsrc%2Fmain%2Fjava%2Forg%2Fwamblee%2Fxmlrouter%2Fimpl%2FXMLRouterConfigurationImpl.java;h=fe6d50773e7f4d9c5399f5b7abfe9b5d2e38a19e;hb=13b475f8216ad5d74d64df4122ea6812554f7a14;hp=99db0fd2b65a71b77e0e3eaade316cdbd4bcbf23;hpb=f70baadfd579f4d3aa2e8c9ee7d758fb37d7872f;p=xmlrouter diff --git a/impl/src/main/java/org/wamblee/xmlrouter/impl/XMLRouterConfigurationImpl.java b/impl/src/main/java/org/wamblee/xmlrouter/impl/XMLRouterConfigurationImpl.java index 99db0fd..fe6d507 100644 --- a/impl/src/main/java/org/wamblee/xmlrouter/impl/XMLRouterConfigurationImpl.java +++ b/impl/src/main/java/org/wamblee/xmlrouter/impl/XMLRouterConfigurationImpl.java @@ -38,23 +38,14 @@ public class XMLRouterConfigurationImpl implements XMLRouterConfiguration { public XMLRouterConfigurationImpl(ExtendedRouterConfig aConfig) { config = aConfig; - transformations = new TransformationPaths(); + transformations = new TransformationPaths(config.transformationConfig() + .map()); } public XMLRouterConfigurationImpl() { this(new CompositeRouterConfig(new ArrayList())); } - @Override - public void startConfigurationChange() { - wlock.lock(); - } - - @Override - public void endConfigurationChange() { - wlock.unlock(); - } - @Override public void startPublishEvent() { rlock.lock(); @@ -72,9 +63,17 @@ public class XMLRouterConfigurationImpl implements XMLRouterConfiguration { @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