simplified the XMLRouterConfiguration API. It is now much simpler and still atomic.
[xmlrouter] / impl / src / main / java / org / wamblee / xmlrouter / impl / XMLRouterConfigurationImpl.java
index 679e55df7baa6f4fe9c71066cc6fa37927c7076a..7a915766ec93d9bca00647dc9c96d13e5131a17d 100644 (file)
@@ -18,6 +18,7 @@ package org.wamblee.xmlrouter.impl;
 import java.util.ArrayList;
 import java.util.concurrent.locks.ReentrantReadWriteLock;
 
+import org.wamblee.general.Pair;
 import org.wamblee.xmlrouter.common.Id;
 import org.wamblee.xmlrouter.config.RouterConfig;
 
@@ -49,18 +50,14 @@ public class XMLRouterConfigurationImpl implements XMLRouterConfiguration {
     }
 
     @Override
-    public void startPublishEvent() {
+    public Pair<ExtendedRouterConfig, TransformationPaths> getConfig() {
         rlock.lock();
-    }
-
-    @Override
-    public void endPublishEvent() {
-        rlock.unlock();
-    }
-
-    @Override
-    public ExtendedRouterConfig getRouterConfig() {
-        return config;
+        try {
+            return new Pair<ExtendedRouterConfig, TransformationPaths>(config,
+                transformations);
+        } finally {
+            rlock.unlock();
+        }
     }
 
     @Override
@@ -77,9 +74,4 @@ public class XMLRouterConfigurationImpl implements XMLRouterConfiguration {
             wlock.unlock();
         }
     }
-
-    @Override
-    public TransformationPaths getTransformations() {
-        return transformations;
-    }
 }