X-Git-Url: http://wamblee.org/gitweb/?a=blobdiff_plain;f=impl%2Fsrc%2Fmain%2Fjava%2Forg%2Fwamblee%2Fxmlrouter%2Fimpl%2FXMLRouterConfiguration.java;h=600aac33a8f2564e37e50b0545276e27069fbcf3;hb=3b2c669b25bfcb5a3c3f06ff9180d85143bebb2a;hp=51c8cc7b257074f259798150cf51bc674630fe05;hpb=1e030ca3ecfaf7a3c179978c297a6aa6b31aead3;p=xmlrouter diff --git a/impl/src/main/java/org/wamblee/xmlrouter/impl/XMLRouterConfiguration.java b/impl/src/main/java/org/wamblee/xmlrouter/impl/XMLRouterConfiguration.java index 51c8cc7..600aac3 100644 --- a/impl/src/main/java/org/wamblee/xmlrouter/impl/XMLRouterConfiguration.java +++ b/impl/src/main/java/org/wamblee/xmlrouter/impl/XMLRouterConfiguration.java @@ -15,6 +15,8 @@ */ package org.wamblee.xmlrouter.impl; +import org.wamblee.general.Pair; + /** * The XML Router configuration contains both configuration data as well as * derived data used by the XML router. It is important that all this data is @@ -27,36 +29,20 @@ package org.wamblee.xmlrouter.impl; public interface XMLRouterConfiguration { /** - * To be called before the configuration is updated. Corresponds to write - * lock acquire. - */ - void startConfigurationChange(); - - /** - * To be called after the configuration is updated. Corresponds to write - * lock acquire. - */ - void endConfigurationChange(); - - /** - * To be called before the configuration is used. Corresponds to read lock - * acquire. - */ - void startPublishEvent(); - - /** - * To be called after the configuration is used. Corresponds to read lock - * release. - */ - void endPublishEvent(); - - /** - * @return Configuration data. + * Atomically get the configuration. The XMLRouter uses this to get a + * snapshot of the configuration data for handling a single message. In this + * way a consistent configuration is used for each event. + * + * @return Configuration. */ - ExtendedRouterConfig routerConfig(); + Pair getConfig(); /** - * @return Transformation paths (derived data). + * Atomically sets the configuration and updates derived data. There will be + * a short time during which read attempts will fail. + * + * @param aConfig + * Configuration to set. */ - TransformationPaths transformations(); + void setRouterConfig(ExtendedRouterConfig aConfig); }