diff options
| author | Robert Godfrey <rgodfrey@apache.org> | 2013-07-01 09:56:29 +0000 |
|---|---|---|
| committer | Robert Godfrey <rgodfrey@apache.org> | 2013-07-01 09:56:29 +0000 |
| commit | 2549e2808832606b05383d8383e56d1fafffedee (patch) | |
| tree | 26136053cf5ad8229351948f596c41bbe0d2afb3 /qpid/java/broker-plugins | |
| parent | 94a44efa32a181bfef063523cb592523d48af392 (diff) | |
| download | qpid-python-2549e2808832606b05383d8383e56d1fafffedee.tar.gz | |
QPID-4970 : [Java Broker] Configure MessageStores based on VirtualHost object not XML Configuration
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1498345 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'qpid/java/broker-plugins')
2 files changed, 34 insertions, 6 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 7545b84611..1cde6f130d 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 @@ -25,6 +25,7 @@ import com.jolbox.bonecp.BoneCPConfig; import java.sql.Connection; import java.sql.SQLException; import org.apache.commons.configuration.Configuration; +import org.apache.qpid.server.model.VirtualHost; import org.apache.qpid.server.store.jdbc.ConnectionProvider; public class BoneCPConnectionProvider implements ConnectionProvider @@ -34,17 +35,43 @@ public class BoneCPConnectionProvider implements ConnectionProvider public static final int DEFAULT_PARTITION_COUNT = 4; private final BoneCP _connectionPool; - public BoneCPConnectionProvider(String connectionUrl, Configuration storeConfiguration) throws SQLException + public BoneCPConnectionProvider(String connectionUrl, VirtualHost virtualHost) throws SQLException { BoneCPConfig config = new BoneCPConfig(); config.setJdbcUrl(connectionUrl); - config.setMinConnectionsPerPartition(storeConfiguration.getInteger("minConnectionsPerPartition", DEFAULT_MIN_CONNECTIONS_PER_PARTITION)); - config.setMaxConnectionsPerPartition(storeConfiguration.getInteger("maxConnectionsPerPartition", DEFAULT_MAX_CONNECTIONS_PER_PARTITION)); - config.setPartitionCount(storeConfiguration.getInteger("partitionCount",DEFAULT_PARTITION_COUNT)); + + config.setMinConnectionsPerPartition(getIntegerAttribute(virtualHost, "minConnectionsPerPartition", DEFAULT_MIN_CONNECTIONS_PER_PARTITION)); + config.setMaxConnectionsPerPartition(getIntegerAttribute(virtualHost, "maxConnectionsPerPartition", DEFAULT_MAX_CONNECTIONS_PER_PARTITION)); + config.setPartitionCount(getIntegerAttribute(virtualHost, "partitionCount",DEFAULT_PARTITION_COUNT)); _connectionPool = new BoneCP(config); } + private int getIntegerAttribute(VirtualHost virtualHost, String attributeName, int defaultVal) + { + Object attrValue = virtualHost.getAttribute(attributeName); + if(attrValue != null) + { + if(attrValue instanceof Number) + { + return ((Number) attrValue).intValue(); + } + else if(attrValue instanceof String) + { + try + { + return Integer.parseInt((String)attrValue); + } + catch (NumberFormatException e) + { + return defaultVal; + } + } + + } + return defaultVal; + } + @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 71c59c7772..73876eceb4 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 @@ -22,6 +22,7 @@ package org.apache.qpid.server.store.jdbc.bonecp; import java.sql.SQLException; import org.apache.commons.configuration.Configuration; +import org.apache.qpid.server.model.VirtualHost; import org.apache.qpid.server.plugin.JDBCConnectionProviderFactory; import org.apache.qpid.server.store.jdbc.ConnectionProvider; @@ -34,9 +35,9 @@ public class BoneCPConnectionProviderFactory implements JDBCConnectionProviderFa } @Override - public ConnectionProvider getConnectionProvider(String connectionUrl, Configuration storeConfiguration) + public ConnectionProvider getConnectionProvider(String connectionUrl, VirtualHost virtualHost) throws SQLException { - return new BoneCPConnectionProvider(connectionUrl, storeConfiguration); + return new BoneCPConnectionProvider(connectionUrl, virtualHost); } } |
