summaryrefslogtreecommitdiff
path: root/java/broker-plugins
diff options
context:
space:
mode:
authorRobert Godfrey <rgodfrey@apache.org>2013-07-01 09:56:29 +0000
committerRobert Godfrey <rgodfrey@apache.org>2013-07-01 09:56:29 +0000
commit081bef13a6d5f3db6e1b06c54dd3bb4dc4a14007 (patch)
tree37317b1f145a4927f470e3016d672344cf8eda3d /java/broker-plugins
parentd0564a39a71c00894f9ee562705ecc715aaec08c (diff)
downloadqpid-python-081bef13a6d5f3db6e1b06c54dd3bb4dc4a14007.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/qpid@1498345 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'java/broker-plugins')
-rw-r--r--java/broker-plugins/jdbc-provider-bone/src/main/java/org/apache/qpid/server/store/jdbc/bonecp/BoneCPConnectionProvider.java35
-rw-r--r--java/broker-plugins/jdbc-provider-bone/src/main/java/org/apache/qpid/server/store/jdbc/bonecp/BoneCPConnectionProviderFactory.java5
2 files changed, 34 insertions, 6 deletions
diff --git a/java/broker-plugins/jdbc-provider-bone/src/main/java/org/apache/qpid/server/store/jdbc/bonecp/BoneCPConnectionProvider.java b/java/broker-plugins/jdbc-provider-bone/src/main/java/org/apache/qpid/server/store/jdbc/bonecp/BoneCPConnectionProvider.java
index 7545b84611..1cde6f130d 100644
--- a/java/broker-plugins/jdbc-provider-bone/src/main/java/org/apache/qpid/server/store/jdbc/bonecp/BoneCPConnectionProvider.java
+++ b/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/java/broker-plugins/jdbc-provider-bone/src/main/java/org/apache/qpid/server/store/jdbc/bonecp/BoneCPConnectionProviderFactory.java b/java/broker-plugins/jdbc-provider-bone/src/main/java/org/apache/qpid/server/store/jdbc/bonecp/BoneCPConnectionProviderFactory.java
index 71c59c7772..73876eceb4 100644
--- a/java/broker-plugins/jdbc-provider-bone/src/main/java/org/apache/qpid/server/store/jdbc/bonecp/BoneCPConnectionProviderFactory.java
+++ b/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);
}
}