diff options
author | Andrew MacBean <macbean@apache.org> | 2014-06-26 13:59:36 +0000 |
---|---|---|
committer | Andrew MacBean <macbean@apache.org> | 2014-06-26 13:59:36 +0000 |
commit | ebf13e02e7371a262d96a96a40ff34bbe9f47816 (patch) | |
tree | 8357c77b840137dbd6bc89f0151cdd469c06b9cc /qpid/java/broker-plugins/jdbc-provider-bone | |
parent | cb2ad01319b3b812fb1438c2363ba0485b3d1c4f (diff) | |
download | qpid-python-ebf13e02e7371a262d96a96a40ff34bbe9f47816.tar.gz |
QPID-5821: [Java Broker] Make JDBC username and password separate attributes within the model
Work done by Keith Wall <kwall@apache.org> and me.
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1605787 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'qpid/java/broker-plugins/jdbc-provider-bone')
2 files changed, 35 insertions, 17 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 75efababc0..2687a32bf9 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 @@ -20,9 +20,12 @@ */ package org.apache.qpid.server.store.jdbc.bonecp; +import static org.apache.qpid.server.store.jdbc.bonecp.BoneCPConnectionProviderFactory.MAX_CONNECTIONS_PER_PARTITION; +import static org.apache.qpid.server.store.jdbc.bonecp.BoneCPConnectionProviderFactory.MIN_CONNECTIONS_PER_PARTITION; +import static org.apache.qpid.server.store.jdbc.bonecp.BoneCPConnectionProviderFactory.PARTITION_COUNT; + 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 java.sql.Connection; @@ -31,32 +34,30 @@ import java.util.Map; public class BoneCPConnectionProvider implements ConnectionProvider { - public static final String PARTITION_COUNT = "qpid.jdbcstore.bonecp.partitionCount"; - public static final String MAX_CONNECTIONS_PER_PARTITION = "qpid.jdbcstore.bonecp.maxConnectionsPerPartition"; - public static final String MIN_CONNECTIONS_PER_PARTITION = "qpid.jdbcstore.bonecp.minConnectionsPerPartition"; - - public static final int DEFAULT_MIN_CONNECTIONS_PER_PARTITION = 5; public static final int DEFAULT_MAX_CONNECTIONS_PER_PARTITION = 10; public static final int DEFAULT_PARTITION_COUNT = 4; private final BoneCP _connectionPool; - public BoneCPConnectionProvider(String connectionUrl, ConfiguredObject<?> storeSettings) throws SQLException + public BoneCPConnectionProvider(String connectionUrl, String username, String password, Map<String, String> providerAttributes) throws SQLException { - // TODO change interface to pass through username and password BoneCPConfig config = new BoneCPConfig(); config.setJdbcUrl(connectionUrl); - Map<String, String> context = storeSettings.getContext(); + if (username != null) + { + config.setUsername(username); + config.setPassword(password); + } - 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)); + config.setMinConnectionsPerPartition(convertToIntWithDefault(MIN_CONNECTIONS_PER_PARTITION, providerAttributes, DEFAULT_MIN_CONNECTIONS_PER_PARTITION)); + config.setMaxConnectionsPerPartition(convertToIntWithDefault(MAX_CONNECTIONS_PER_PARTITION, providerAttributes, DEFAULT_MAX_CONNECTIONS_PER_PARTITION)); + config.setPartitionCount(convertToIntWithDefault(PARTITION_COUNT, providerAttributes, DEFAULT_PARTITION_COUNT)); _connectionPool = new BoneCP(config); } - private int getContextValueAsInt(String key, Map<String, String> context, int defaultValue) + private int convertToIntWithDefault(String key, Map<String, String> context, int defaultValue) { if (context.containsKey(key)) { 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 e7dc8bd16c..f894a6a27a 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 @@ -20,25 +20,42 @@ */ package org.apache.qpid.server.store.jdbc.bonecp; -import java.sql.SQLException; +import static java.util.Arrays.asList; +import static java.util.Collections.unmodifiableSet; -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; +import java.sql.SQLException; +import java.util.HashSet; +import java.util.Map; +import java.util.Set; + @PluggableService public class BoneCPConnectionProviderFactory implements JDBCConnectionProviderFactory { + public static final String PARTITION_COUNT = "qpid.jdbcstore.bonecp.partitionCount"; + public static final String MAX_CONNECTIONS_PER_PARTITION = "qpid.jdbcstore.bonecp.maxConnectionsPerPartition"; + public static final String MIN_CONNECTIONS_PER_PARTITION = "qpid.jdbcstore.bonecp.minConnectionsPerPartition"; + + private final Set<String> _supportedAttributes = unmodifiableSet(new HashSet<String>(asList(PARTITION_COUNT, MAX_CONNECTIONS_PER_PARTITION, MIN_CONNECTIONS_PER_PARTITION))); + @Override public String getType() { return "BONECP"; } - public ConnectionProvider getConnectionProvider(ConfiguredObject<?> parent, String connectionUrl) + public ConnectionProvider getConnectionProvider(String connectionUrl, String username, String password, Map<String, String> providerAttributes) throws SQLException { - return new BoneCPConnectionProvider(connectionUrl, parent); + return new BoneCPConnectionProvider(connectionUrl, username, password, providerAttributes); + } + + @Override + public Set<String> getProviderAttributeNames() + { + return _supportedAttributes; } } |