diff options
Diffstat (limited to 'qpid/java/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/BDBMessageStoreFactory.java')
-rw-r--r-- | qpid/java/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/BDBMessageStoreFactory.java | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/qpid/java/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/BDBMessageStoreFactory.java b/qpid/java/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/BDBMessageStoreFactory.java index ef886d3d6d..4d224ab86e 100644 --- a/qpid/java/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/BDBMessageStoreFactory.java +++ b/qpid/java/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/BDBMessageStoreFactory.java @@ -20,6 +20,11 @@ */ package org.apache.qpid.server.store.berkeleydb; +import java.util.Collections; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import org.apache.commons.configuration.Configuration; import org.apache.qpid.server.plugin.MessageStoreFactory; import org.apache.qpid.server.store.MessageStore; @@ -38,4 +43,33 @@ public class BDBMessageStoreFactory implements MessageStoreFactory return new BDBMessageStore(); } + @Override + public Map<String, Object> convertStoreConfiguration(Configuration storeConfiguration) + { + final List<Object> argumentNames = storeConfiguration.getList("envConfig.name"); + final List<Object> argumentValues = storeConfiguration.getList("envConfig.value"); + final int initialSize = argumentNames.size(); + + final Map<String,String> attributes = new HashMap<String,String>(initialSize); + + for (int i = 0; i < argumentNames.size(); i++) + { + final String argName = argumentNames.get(i).toString(); + final String argValue = argumentValues.get(i).toString(); + + attributes.put(argName, argValue); + } + + if(initialSize != 0) + { + return Collections.singletonMap("bdbEnvironmentConfig", (Object)attributes); + } + else + { + return Collections.emptyMap(); + } + + + } + } |