git://wamblee.org
/
xmlrouter
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
simplified the XMLRouterConfiguration API. It is now much simpler and still atomic.
[xmlrouter]
/
impl
/
src
/
main
/
java
/
org
/
wamblee
/
xmlrouter
/
impl
/
XMLRouterConfigurationImpl.java
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 99db0fd2b65a71b77e0e3eaade316cdbd4bcbf23..7a915766ec93d9bca00647dc9c96d13e5131a17d 100644
(file)
--- a/
impl/src/main/java/org/wamblee/xmlrouter/impl/XMLRouterConfigurationImpl.java
+++ b/
impl/src/main/java/org/wamblee/xmlrouter/impl/XMLRouterConfigurationImpl.java
@@
-18,6
+18,8
@@
package org.wamblee.xmlrouter.impl;
import java.util.ArrayList;
import java.util.concurrent.locks.ReentrantReadWriteLock;
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;
/**
import org.wamblee.xmlrouter.config.RouterConfig;
/**
@@
-38,47
+40,38
@@
public class XMLRouterConfigurationImpl implements XMLRouterConfiguration {
public XMLRouterConfigurationImpl(ExtendedRouterConfig aConfig) {
config = aConfig;
public XMLRouterConfigurationImpl(ExtendedRouterConfig aConfig) {
config = aConfig;
- transformations = new TransformationPaths();
+ transformations = new TransformationPaths(config.transformationConfig()
+ .values());
}
public XMLRouterConfigurationImpl() {
}
public XMLRouterConfigurationImpl() {
- this(new CompositeRouterConfig(new ArrayList<RouterConfig>()));
+ this(new CompositeRouterConfig(new Id<RouterConfig>("routerconfig"),
+ new ArrayList<RouterConfig>()));
}
@Override
}
@Override
- public void startConfigurationChange() {
- wlock.lock();
- }
-
- @Override
- public void endConfigurationChange() {
- wlock.unlock();
- }
-
- @Override
- public void startPublishEvent() {
+ public Pair<ExtendedRouterConfig, TransformationPaths> getConfig() {
rlock.lock();
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
public void setRouterConfig(ExtendedRouterConfig aConfig) {
}
@Override
public void setRouterConfig(ExtendedRouterConfig aConfig) {
- config = aConfig;
- transformations.replaceTransformations(config.transformationConfig()
- .map());
- }
- @Override
- public TransformationPaths getTransformations() {
- return transformations;
+ TransformationPaths newTransformations = new TransformationPaths(
+ aConfig.transformationConfig().values());
+
+ wlock.lock();
+ try {
+ config = aConfig;
+ transformations = newTransformations;
+ } finally {
+ wlock.unlock();
+ }
}
}
}
}