summaryrefslogtreecommitdiff
path: root/qpid/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
commit2549e2808832606b05383d8383e56d1fafffedee (patch)
tree26136053cf5ad8229351948f596c41bbe0d2afb3 /qpid/java/broker-plugins
parent94a44efa32a181bfef063523cb592523d48af392 (diff)
downloadqpid-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')
-rw-r--r--qpid/java/broker-plugins/jdbc-provider-bone/src/main/java/org/apache/qpid/server/store/jdbc/bonecp/BoneCPConnectionProvider.java35
-rw-r--r--qpid/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/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);
}
}