diff options
author | Andrew MacBean <macbean@apache.org> | 2014-06-26 11:19:54 +0000 |
---|---|---|
committer | Andrew MacBean <macbean@apache.org> | 2014-06-26 11:19:54 +0000 |
commit | 8a1190a3bc398233b3cb9a295add11eef0f3cec4 (patch) | |
tree | 15ecfb671967401f81b9dce15e46aa9f1a33489c /qpid/java/broker-plugins/jdbc-provider-bone | |
parent | 4ad072fd1cca374bcf36292bcf83aba74f18f08c (diff) | |
download | qpid-python-8a1190a3bc398233b3cb9a295add11eef0f3cec4.tar.gz |
QPID-5821: [Java Broker] Refactor MessageStore and DurableConfigurationStore interfaces to remove message store settings map.
VirtualHost model objects now have attributes.
Work done by Keith Wall <kwall@apache.org> and me.
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1605737 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'qpid/java/broker-plugins/jdbc-provider-bone')
2 files changed, 29 insertions, 8 deletions
diff --git a/qpid/java/broker-plugins/jdbc-provider-bone/src/main/java/org/apache/qpid/server/store/jdbc/bonecp/BoneCPConnectionProvider.java b/qpid/java/broker-plugins/jdbc-provider-bone/src/main/java/org/apache/qpid/server/store/jdbc/bonecp/BoneCPConnectionProvider.java index 4dfb05ff4f..75efababc0 100644 --- a/qpid/java/broker-plugins/jdbc-provider-bone/src/main/java/org/apache/qpid/server/store/jdbc/bonecp/BoneCPConnectionProvider.java +++ b/qpid/java/broker-plugins/jdbc-provider-bone/src/main/java/org/apache/qpid/server/store/jdbc/bonecp/BoneCPConnectionProvider.java @@ -22,8 +22,8 @@ package org.apache.qpid.server.store.jdbc.bonecp; import com.jolbox.bonecp.BoneCP; import com.jolbox.bonecp.BoneCPConfig; +import org.apache.qpid.server.model.ConfiguredObject; import org.apache.qpid.server.store.jdbc.ConnectionProvider; -import org.apache.qpid.server.util.MapValueConverter; import java.sql.Connection; import java.sql.SQLException; @@ -42,17 +42,38 @@ public class BoneCPConnectionProvider implements ConnectionProvider private final BoneCP _connectionPool; - public BoneCPConnectionProvider(String connectionUrl, Map<String, Object> storeSettings) throws SQLException + public BoneCPConnectionProvider(String connectionUrl, ConfiguredObject<?> storeSettings) throws SQLException { // TODO change interface to pass through username and password BoneCPConfig config = new BoneCPConfig(); config.setJdbcUrl(connectionUrl); - config.setMinConnectionsPerPartition(MapValueConverter.getIntegerAttribute(MIN_CONNECTIONS_PER_PARTITION, storeSettings, DEFAULT_MIN_CONNECTIONS_PER_PARTITION)); - config.setMaxConnectionsPerPartition(MapValueConverter.getIntegerAttribute(MAX_CONNECTIONS_PER_PARTITION, storeSettings, DEFAULT_MAX_CONNECTIONS_PER_PARTITION)); - config.setPartitionCount(MapValueConverter.getIntegerAttribute(PARTITION_COUNT, storeSettings, DEFAULT_PARTITION_COUNT)); + Map<String, String> context = storeSettings.getContext(); + + config.setMinConnectionsPerPartition(getContextValueAsInt(MIN_CONNECTIONS_PER_PARTITION, context, DEFAULT_MIN_CONNECTIONS_PER_PARTITION)); + config.setMaxConnectionsPerPartition(getContextValueAsInt(MAX_CONNECTIONS_PER_PARTITION, context, DEFAULT_MAX_CONNECTIONS_PER_PARTITION)); + config.setPartitionCount(getContextValueAsInt(PARTITION_COUNT, context, DEFAULT_PARTITION_COUNT)); + _connectionPool = new BoneCP(config); } + private int getContextValueAsInt(String key, Map<String, String> context, int defaultValue) + { + if (context.containsKey(key)) + { + try + { + return Integer.parseInt(context.get(key)); + } + catch (NumberFormatException e) + { + return defaultValue; + } + } + else + { + return defaultValue; + } + } @Override public Connection getConnection() throws SQLException { diff --git a/qpid/java/broker-plugins/jdbc-provider-bone/src/main/java/org/apache/qpid/server/store/jdbc/bonecp/BoneCPConnectionProviderFactory.java b/qpid/java/broker-plugins/jdbc-provider-bone/src/main/java/org/apache/qpid/server/store/jdbc/bonecp/BoneCPConnectionProviderFactory.java index c1345cfe54..e7dc8bd16c 100644 --- a/qpid/java/broker-plugins/jdbc-provider-bone/src/main/java/org/apache/qpid/server/store/jdbc/bonecp/BoneCPConnectionProviderFactory.java +++ b/qpid/java/broker-plugins/jdbc-provider-bone/src/main/java/org/apache/qpid/server/store/jdbc/bonecp/BoneCPConnectionProviderFactory.java @@ -21,8 +21,8 @@ package org.apache.qpid.server.store.jdbc.bonecp; import java.sql.SQLException; -import java.util.Map; +import org.apache.qpid.server.model.ConfiguredObject; import org.apache.qpid.server.plugin.JDBCConnectionProviderFactory; import org.apache.qpid.server.plugin.PluggableService; import org.apache.qpid.server.store.jdbc.ConnectionProvider; @@ -36,9 +36,9 @@ public class BoneCPConnectionProviderFactory implements JDBCConnectionProviderFa return "BONECP"; } - public ConnectionProvider getConnectionProvider(String connectionUrl, Map<String, Object> storeSettings) + public ConnectionProvider getConnectionProvider(ConfiguredObject<?> parent, String connectionUrl) throws SQLException { - return new BoneCPConnectionProvider(connectionUrl, storeSettings); + return new BoneCPConnectionProvider(connectionUrl, parent); } } |