From 60d0130f832efaf2935a9b6d485b6ff4b4ad1bd8 Mon Sep 17 00:00:00 2001 From: Andrew MacBean Date: Mon, 14 Jul 2014 10:23:42 +0000 Subject: QPID-5822: [Java Broker] change to JE param setting logic to handle EnvironmentParams.SUPPORTED_PARAMS not always containing ALL valid params git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1610378 13f79535-47bb-0310-9956-ffa450edef68 --- .../ReplicatedEnvironmentFacadeFactory.java | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) (limited to 'qpid/java') diff --git a/qpid/java/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/replication/ReplicatedEnvironmentFacadeFactory.java b/qpid/java/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/replication/ReplicatedEnvironmentFacadeFactory.java index f67d232b9f..4f21baf42f 100644 --- a/qpid/java/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/replication/ReplicatedEnvironmentFacadeFactory.java +++ b/qpid/java/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/replication/ReplicatedEnvironmentFacadeFactory.java @@ -23,9 +23,7 @@ package org.apache.qpid.server.store.berkeleydb.replication; import java.util.Collections; import java.util.HashMap; import java.util.Map; - -import com.sleepycat.je.config.ConfigParam; -import com.sleepycat.je.config.EnvironmentParams; +import java.util.regex.Pattern; import org.apache.qpid.server.model.ConfiguredObject; import org.apache.qpid.server.store.berkeleydb.EnvironmentFacade; @@ -34,6 +32,9 @@ import org.apache.qpid.server.store.berkeleydb.HASettings; public class ReplicatedEnvironmentFacadeFactory implements EnvironmentFacadeFactory { + public static final Pattern NON_REP_JE_PARAM_PATTERN = Pattern.compile("^je\\.(?!rep\\.).*"); + public static final Pattern REP_JE_PARAM_PATTERN = Pattern.compile("^je\\.rep\\..*"); + @Override public EnvironmentFacade createEnvironmentFacade(final ConfiguredObject parent) { @@ -113,27 +114,27 @@ public class ReplicatedEnvironmentFacadeFactory implements EnvironmentFacadeFact private Map buildEnvironmentConfigParameters(ConfiguredObject parent) { - return buildConfig(parent, false); + return buildConfig(parent, NON_REP_JE_PARAM_PATTERN); } private Map buildReplicationConfigParameters(ConfiguredObject parent) { - return buildConfig(parent, true); + return buildConfig(parent, REP_JE_PARAM_PATTERN); } - private Map buildConfig(ConfiguredObject parent, boolean selectReplicationParaemeters) + private Map buildConfig(ConfiguredObject parent, Pattern paramName) { Map targetMap = new HashMap<>(); - for (ConfigParam entry : EnvironmentParams.SUPPORTED_PARAMS.values()) + for (String name : parent.getContext().keySet()) { - final String name = entry.getName(); - if (entry.isForReplication() == selectReplicationParaemeters && parent.getContext().containsKey(name)) + if (paramName.matcher(name).matches()) { String contextValue = parent.getContext().get(name); targetMap.put(name, contextValue); } } + return Collections.unmodifiableMap(targetMap); } -- cgit v1.2.1