This is an automated email from the ASF dual-hosted git repository.
robbie pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/qpid-broker-j.git
The following commit(s) were added to refs/heads/main by this push:
new 86978bd81e QPID-8666: [Broker-J] Broker plugin jdbc-provider-bone
replacement (#239)
86978bd81e is described below
commit 86978bd81e138b26f052706e3cfb3193e66d5295
Author: Daniil Kirilyuk <[email protected]>
AuthorDate: Tue Feb 6 12:40:34 2024 +0100
QPID-8666: [Broker-J] Broker plugin jdbc-provider-bone replacement (#239)
---
...ractConfigurationStoreUpgraderAndRecoverer.java | 2 +-
.../store/BrokerStoreUpgraderAndRecoverer.java | 17 ++--
.../apache/qpid/server/store/UpgraderHelper.java | 43 ++++++----
.../VirtualHostStoreUpgraderAndRecoverer.java | 9 +-
.../store/BrokerStoreUpgraderAndRecovererTest.java | 97 +++++++++++++++++-----
.../VirtualHostStoreUpgraderAndRecovererTest.java | 41 +++++----
.../apache/qpid/server/test/AttributesUtils.java | 34 ++++++++
.../jdbc/hikaricp/HikariCPConnectionProvider.java | 12 +--
.../HikariCPConnectionProviderFactory.java | 4 +-
.../js/qpid/management/store/pool/hikaricp/add.js | 4 +-
.../js/qpid/management/store/pool/hikaricp/show.js | 2 +-
.../java/resources/store/pool/hikaricp/show.html | 4 +-
.../HikariCPConnectionProviderFactoryTest.java | 8 +-
.../hikaricp/HikariCPConnectionProviderTest.java | 8 +-
14 files changed, 195 insertions(+), 90 deletions(-)
diff --git
a/broker-core/src/main/java/org/apache/qpid/server/store/AbstractConfigurationStoreUpgraderAndRecoverer.java
b/broker-core/src/main/java/org/apache/qpid/server/store/AbstractConfigurationStoreUpgraderAndRecoverer.java
index 90349ee905..da1d5e52ca 100644
---
a/broker-core/src/main/java/org/apache/qpid/server/store/AbstractConfigurationStoreUpgraderAndRecoverer.java
+++
b/broker-core/src/main/java/org/apache/qpid/server/store/AbstractConfigurationStoreUpgraderAndRecoverer.java
@@ -32,7 +32,7 @@ import org.apache.qpid.server.util.Action;
abstract class AbstractConfigurationStoreUpgraderAndRecoverer
{
protected static final String VIRTUALHOST = "VirtualHost";
- protected static final String JDBC_VIRTUALHOST_TYPE = "JDBC";
+ protected static final String JDBC = "JDBC";
protected static final String CONTEXT = "context";
private final Map<String, StoreUpgraderPhase> _upgraders = new HashMap<>();
diff --git
a/broker-core/src/main/java/org/apache/qpid/server/store/BrokerStoreUpgraderAndRecoverer.java
b/broker-core/src/main/java/org/apache/qpid/server/store/BrokerStoreUpgraderAndRecoverer.java
index c06aaf3269..13823ad9fc 100644
---
a/broker-core/src/main/java/org/apache/qpid/server/store/BrokerStoreUpgraderAndRecoverer.java
+++
b/broker-core/src/main/java/org/apache/qpid/server/store/BrokerStoreUpgraderAndRecoverer.java
@@ -772,11 +772,13 @@ public class BrokerStoreUpgraderAndRecoverer extends
AbstractConfigurationStoreU
}
@Override
- public void configuredObject(final ConfiguredObjectRecord record)
+ public void configuredObject(ConfiguredObjectRecord record)
{
if (BROKER.equals(record.getType()))
{
- upgradeRootRecord(record);
+ record =
upgradeRootRecord(UpgraderHelper.upgradeConnectionPool(record));
+ getUpdateMap().put(record.getId(), record);
+ return;
}
final Map<String, Object> attributes = record.getAttributes();
@@ -786,16 +788,13 @@ public class BrokerStoreUpgraderAndRecoverer extends
AbstractConfigurationStoreU
return;
}
- if (!(VIRTUALHOST.equals(record.getType()) &&
JDBC_VIRTUALHOST_TYPE.equals(attributes.get("type"))))
+ if (!JDBC.equals(attributes.get("type")))
{
return;
}
- if (attributes.containsKey(CONTEXT))
- {
- final ConfiguredObjectRecord updatedRecord =
UpgraderHelper.upgradeConnectionPool(record);
- getUpdateMap().put(updatedRecord.getId(), updatedRecord);
- }
+ final ConfiguredObjectRecord updatedRecord =
UpgraderHelper.upgradeConnectionPool(record);
+ getUpdateMap().put(updatedRecord.getId(), updatedRecord);
}
@Override
@@ -829,7 +828,7 @@ public class BrokerStoreUpgraderAndRecoverer extends
AbstractConfigurationStoreU
addAttributeTransformer("storeUnderfullSize",
copyAttribute()).
addAttributeTransformer("storeOverfullSize",
copyAttribute()).
addAttributeTransformer("bdbEnvironmentConfig",
mutateAttributeName(CONTEXT)),
- JDBC_VIRTUALHOST_TYPE, new AttributesTransformer().
+ JDBC, new AttributesTransformer().
addAttributeTransformer("id", copyAttribute()).
addAttributeTransformer("name", copyAttribute()).
addAttributeTransformer("createdTime", copyAttribute()).
diff --git
a/broker-core/src/main/java/org/apache/qpid/server/store/UpgraderHelper.java
b/broker-core/src/main/java/org/apache/qpid/server/store/UpgraderHelper.java
index 3569138697..e43df21acd 100644
--- a/broker-core/src/main/java/org/apache/qpid/server/store/UpgraderHelper.java
+++ b/broker-core/src/main/java/org/apache/qpid/server/store/UpgraderHelper.java
@@ -62,7 +62,8 @@ public class UpgraderHelper
oldToNewNameMapping.forEach((oldName, newName) -> {
if (newContext.containsKey(oldName))
{
- final String value = newContext.remove(oldName);
+ final Object object = newContext.remove(oldName);
+ final String value = object == null ? null :
String.valueOf(object);
newContext.put(newName, value);
}
});
@@ -79,6 +80,12 @@ public class UpgraderHelper
{
final Map<String, Object> attributes = record.getAttributes();
+ final Map<String, Object> updatedAttributes = new
HashMap<>(record.getAttributes());
+ if (BONECP.equals(attributes.get(CP_TYPE)))
+ {
+ updatedAttributes.put(CP_TYPE, HIKARICP);
+ }
+
final Object contextObject = attributes.get(CONTEXT);
if (contextObject instanceof Map)
@@ -86,25 +93,27 @@ public class UpgraderHelper
final Map <String, String> context = (Map<String, String>)
contextObject;
final Map<String, String> newContext =
UpgraderHelper.renameContextVariables(context, RENAME_MAPPING);
- if (BONECP.equals(attributes.get(CP_TYPE)))
- {
- final int partitionCount =
newContext.get(PARTITION_COUNT_PARAM) != null
- ?
Integer.parseInt(newContext.remove(PARTITION_COUNT_PARAM)) : 0;
- final int maximumPoolSize =
newContext.get(MAX_POOL_SIZE_PARAM) != null && partitionCount != 0
- ?
Integer.parseInt(newContext.get(MAX_POOL_SIZE_PARAM)) * partitionCount : 40;
- final int minIdle = newContext.get(MIN_IDLE_PARAM) != null &&
partitionCount != 0
- ? Integer.parseInt(newContext.get(MIN_IDLE_PARAM)) *
partitionCount : 20;
- newContext.put(MAX_POOL_SIZE_PARAM,
String.valueOf(maximumPoolSize));
- newContext.put(MIN_IDLE_PARAM, String.valueOf(minIdle));
- }
- final Map<String, Object> updatedAttributes = new
HashMap<>(record.getAttributes());
- if (BONECP.equals(attributes.get(CP_TYPE)))
+ final int partitionCount = newContext.get(PARTITION_COUNT_PARAM)
!= null
+ ?
Integer.parseInt(String.valueOf(newContext.remove(PARTITION_COUNT_PARAM))) : 0;
+ final int maximumPoolSize = newContext.get(MAX_POOL_SIZE_PARAM) !=
null && partitionCount != 0
+ ?
Integer.parseInt(String.valueOf(newContext.get(MAX_POOL_SIZE_PARAM))) *
partitionCount : 40;
+ final int minIdle = newContext.get(MIN_IDLE_PARAM) != null &&
partitionCount != 0
+ ?
Integer.parseInt(String.valueOf(newContext.get(MIN_IDLE_PARAM))) *
partitionCount : 20;
+
+ if (BONECP.equals(attributes.get(CP_TYPE)) ||
"Broker".equals(record.getType()))
{
- updatedAttributes.put(CP_TYPE, HIKARICP);
+ if (newContext.containsKey(MAX_POOL_SIZE_PARAM))
+ {
+ newContext.put(MAX_POOL_SIZE_PARAM,
String.valueOf(maximumPoolSize));
+ }
+ if (newContext.containsKey(MIN_IDLE_PARAM))
+ {
+ newContext.put(MIN_IDLE_PARAM, String.valueOf(minIdle));
+ }
}
+
updatedAttributes.put(CONTEXT, newContext);
- return new ConfiguredObjectRecordImpl(record.getId(),
record.getType(), updatedAttributes, record.getParents());
}
- return record;
+ return new ConfiguredObjectRecordImpl(record.getId(),
record.getType(), updatedAttributes, record.getParents());
}
}
diff --git
a/broker-core/src/main/java/org/apache/qpid/server/store/VirtualHostStoreUpgraderAndRecoverer.java
b/broker-core/src/main/java/org/apache/qpid/server/store/VirtualHostStoreUpgraderAndRecoverer.java
index 8ac13de12b..b1e2950ca2 100644
---
a/broker-core/src/main/java/org/apache/qpid/server/store/VirtualHostStoreUpgraderAndRecoverer.java
+++
b/broker-core/src/main/java/org/apache/qpid/server/store/VirtualHostStoreUpgraderAndRecoverer.java
@@ -1127,16 +1127,13 @@ public class VirtualHostStoreUpgraderAndRecoverer
extends AbstractConfigurationS
return;
}
- if (!(VIRTUALHOST.equals(record.getType()) &&
JDBC_VIRTUALHOST_TYPE.equals(attributes.get("type"))))
+ if (!JDBC.equals(attributes.get("type")))
{
return;
}
- if (attributes.containsKey(CONTEXT))
- {
- final ConfiguredObjectRecord updatedRecord =
UpgraderHelper.upgradeConnectionPool(record);
- getUpdateMap().put(updatedRecord.getId(), updatedRecord);
- }
+ final ConfiguredObjectRecord updatedRecord =
UpgraderHelper.upgradeConnectionPool(record);
+ getUpdateMap().put(updatedRecord.getId(), updatedRecord);
}
@Override
diff --git
a/broker-core/src/test/java/org/apache/qpid/server/store/BrokerStoreUpgraderAndRecovererTest.java
b/broker-core/src/test/java/org/apache/qpid/server/store/BrokerStoreUpgraderAndRecovererTest.java
index b344e14c2a..6731ea13bb 100644
---
a/broker-core/src/test/java/org/apache/qpid/server/store/BrokerStoreUpgraderAndRecovererTest.java
+++
b/broker-core/src/test/java/org/apache/qpid/server/store/BrokerStoreUpgraderAndRecovererTest.java
@@ -20,6 +20,7 @@
*/
package org.apache.qpid.server.store;
+import static org.apache.qpid.server.test.AttributesUtils.createAttributesMap;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertFalse;
import static org.junit.jupiter.api.Assertions.assertNotNull;
@@ -124,10 +125,9 @@ public class BrokerStoreUpgraderAndRecovererTest extends
UnitTestBase
"qpid.jdbcstore.varBinaryType", "myvarbinary",
"qpid.jdbcstore.blobType", "myblob",
"qpid.jdbcstore.useBytesForBlob", true,
- "qpid.jdbcstore.bonecp.maxConnectionsPerPartition", 7,
- "qpid.jdbcstore.bonecp.minConnectionsPerPartition", 6,
- "qpid.jdbcstore.bonecp.partitionCount", 2);
- final Map<String,Object> expectedAttributes =
Map.of("connectionPoolType", "BONECP",
+ "qpid.jdbcstore.hikaricp.maximumPoolSize", "14",
+ "qpid.jdbcstore.hikaricp.minimumIdle", "12");
+ final Map<String,Object> expectedAttributes =
Map.of("connectionPoolType", "HIKARICP",
"connectionUrl",
"jdbc:derby://localhost:1527/tmp/vh/test;create=true",
"createdBy", VIRTUALHOST_CREATED_BY,
"createdTime", VIRTUALHOST_CREATE_TIME,
@@ -898,27 +898,87 @@ public class BrokerStoreUpgraderAndRecovererTest extends
UnitTestBase
context.put("qpid.jdbcstore.bonecp.partitionCount", partitionCount);
context.put("qpid.jdbcstore.bonecp.maxConnectionsPerPartition",
maxConnectionsPerPartition);
context.put("qpid.jdbcstore.bonecp.minConnectionsPerPartition",
minConnectionsPerPartition);
+ context.put("qpid.jdbcstore.property1", "1");
+ context.put("qpid.jdbcstore.property2", "two");
+ context.put("qpid.jdbcstore.property3", "_3_");
+
final Map<String, Object> attributes = Map.of("name", getTestName(),
"type", "JDBC",
- "connectionPoolType", "BONECP",
- "context", context);
- final ConfiguredObjectRecord virtualHostRecord =
mock(ConfiguredObjectRecord.class);;
+ "connectionPoolType", "BONECP");
+
+ _brokerRecord.getAttributes().put("context", new HashMap<>(context));
+
+ final ConfiguredObjectRecord systemConfigRecord =
mock(ConfiguredObjectRecord.class);
+ when(systemConfigRecord.getId()).thenReturn(randomUUID());
+ when(systemConfigRecord.getType()).thenReturn("SystemConfig");
+
when(systemConfigRecord.getAttributes()).thenReturn(createAttributesMap(attributes,
context));
+
+ final ConfiguredObjectRecord virtualHostNodeRecord =
mock(ConfiguredObjectRecord.class);
+ when(virtualHostNodeRecord.getId()).thenReturn(randomUUID());
+ when(virtualHostNodeRecord.getType()).thenReturn("VirtualHostNode");
+
when(virtualHostNodeRecord.getAttributes()).thenReturn(createAttributesMap(attributes,
context));
+
+ final ConfiguredObjectRecord virtualHostRecord =
mock(ConfiguredObjectRecord.class);
when(virtualHostRecord.getId()).thenReturn(randomUUID());
when(virtualHostRecord.getType()).thenReturn("VirtualHost");
- when(virtualHostRecord.getAttributes()).thenReturn(attributes);
+
when(virtualHostRecord.getAttributes()).thenReturn(createAttributesMap(attributes,
context));
- final DurableConfigurationStore dcs = new
DurableConfigurationStoreStub(virtualHostRecord, _brokerRecord);
+ final ConfiguredObjectRecord jdbcBrokerLoggerRecord =
mock(ConfiguredObjectRecord.class);
+ when(jdbcBrokerLoggerRecord.getId()).thenReturn(randomUUID());
+ when(jdbcBrokerLoggerRecord.getType()).thenReturn("BrokerLogger");
+
when(jdbcBrokerLoggerRecord.getAttributes()).thenReturn(createAttributesMap(attributes,
context));
+
+ final ConfiguredObjectRecord jdbcVirtualHostLoggerRecord =
mock(ConfiguredObjectRecord.class);
+ when(jdbcVirtualHostLoggerRecord.getId()).thenReturn(randomUUID());
+
when(jdbcVirtualHostLoggerRecord.getType()).thenReturn("VirtualHostLogger");
+
when(jdbcVirtualHostLoggerRecord.getAttributes()).thenReturn(createAttributesMap(attributes,
context));
+
+ final DurableConfigurationStore dcs =
+ new DurableConfigurationStoreStub(jdbcVirtualHostLoggerRecord,
jdbcBrokerLoggerRecord, virtualHostRecord,
+ virtualHostNodeRecord,
systemConfigRecord, _brokerRecord);
final BrokerStoreUpgraderAndRecoverer recoverer = new
BrokerStoreUpgraderAndRecoverer(_systemConfig);
final List<ConfiguredObjectRecord> records = upgrade(dcs, recoverer);
- final Map<String, String> contextMap =
findCategoryRecordAndGetContext("VirtualHost", records);
+ records.forEach(record ->
+ {
+ final Map<String, String> upgradedContext =
+ (Map<String, String>)
record.getAttributes().get("context");
+
+
assertNull(upgradedContext.get("qpid.jdbcstore.bonecp.partitionCount"));
+ assertEquals(maximumPoolSize,
upgradedContext.get("qpid.jdbcstore.hikaricp.maximumPoolSize"));
+ assertEquals(minimumIdle,
upgradedContext.get("qpid.jdbcstore.hikaricp.minimumIdle"));
+ assertEquals("1", upgradedContext.get("qpid.jdbcstore.property1"));
+ assertEquals("two",
upgradedContext.get("qpid.jdbcstore.property2"));
+ assertEquals("_3_",
upgradedContext.get("qpid.jdbcstore.property3"));
+ if (!"Broker".equals(record.getType()))
+ {
+ assertEquals("HIKARICP",
record.getAttributes().get("connectionPoolType"));
+ }
+ });
+ }
+
+ @Test
+ public void testUpgradeFromBoneCPToHikariCPProviderWithEmptyContext()
+ {
+ _brokerRecord.getAttributes().put("modelVersion", "9.0");
+
+ final Map<String, Object> attributes = Map.of("name", getTestName(),
+ "type", "JDBC",
+ "connectionPoolType", "BONECP");
+ final ConfiguredObjectRecord virtualHostRecord =
mock(ConfiguredObjectRecord.class);
+ when(virtualHostRecord.getId()).thenReturn(randomUUID());
+ when(virtualHostRecord.getType()).thenReturn("VirtualHost");
+
when(virtualHostRecord.getAttributes()).thenReturn(createAttributesMap(attributes,
new HashMap<>()));
+
+ final DurableConfigurationStore dcs = new
DurableConfigurationStoreStub(virtualHostRecord, _brokerRecord);
+ final BrokerStoreUpgraderAndRecoverer recoverer = new
BrokerStoreUpgraderAndRecoverer(_systemConfig);
+ final List<ConfiguredObjectRecord> records = upgrade(dcs, recoverer);
final ConfiguredObjectRecord upgradedVirtualHost = records.stream()
- .filter(record ->
record.getType().equals("VirtualHost")).findFirst()
- .orElse(null);
+ .filter(record ->
"VirtualHost".equals(record.getType())).findFirst().orElse(null);
+ final Map<String, String> contextMap =
findCategoryRecordAndGetContext("VirtualHost", records);
- assertNotNull(upgradedVirtualHost);
- assertEquals(maximumPoolSize,
contextMap.get("qpid.jdbcstore.hikaricp.maximumPoolSize"));
- assertEquals(minimumIdle,
contextMap.get("qpid.jdbcstore.hikaricp.minimumIdle"));
+ assertNull(contextMap.get("qpid.jdbcstore.hikaricp.maximumPoolSize"));
+ assertNull(contextMap.get("qpid.jdbcstore.hikaricp.minimumIdle"));
assertEquals("HIKARICP",
upgradedVirtualHost.getAttributes().get("connectionPoolType"));
}
@@ -929,12 +989,11 @@ public class BrokerStoreUpgraderAndRecovererTest extends
UnitTestBase
final Map<String, Object> attributes = Map.of("name", getTestName(),
"type", "JDBC",
- "connectionPoolType", "NONE",
- "context", new HashMap<>());
- final ConfiguredObjectRecord virtualHostRecord =
mock(ConfiguredObjectRecord.class);;
+ "connectionPoolType", "NONE");
+ final ConfiguredObjectRecord virtualHostRecord =
mock(ConfiguredObjectRecord.class);
when(virtualHostRecord.getId()).thenReturn(randomUUID());
when(virtualHostRecord.getType()).thenReturn("VirtualHost");
- when(virtualHostRecord.getAttributes()).thenReturn(attributes);
+
when(virtualHostRecord.getAttributes()).thenReturn(createAttributesMap(attributes,
new HashMap<>()));
final DurableConfigurationStore dcs = new
DurableConfigurationStoreStub(virtualHostRecord, _brokerRecord);
final BrokerStoreUpgraderAndRecoverer recoverer = new
BrokerStoreUpgraderAndRecoverer(_systemConfig);
diff --git
a/broker-core/src/test/java/org/apache/qpid/server/store/VirtualHostStoreUpgraderAndRecovererTest.java
b/broker-core/src/test/java/org/apache/qpid/server/store/VirtualHostStoreUpgraderAndRecovererTest.java
index 39970112b1..da27f724d3 100644
---
a/broker-core/src/test/java/org/apache/qpid/server/store/VirtualHostStoreUpgraderAndRecovererTest.java
+++
b/broker-core/src/test/java/org/apache/qpid/server/store/VirtualHostStoreUpgraderAndRecovererTest.java
@@ -19,6 +19,7 @@
package org.apache.qpid.server.store;
+import static org.apache.qpid.server.test.AttributesUtils.createAttributesMap;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertFalse;
import static org.junit.jupiter.api.Assertions.assertNotNull;
@@ -323,29 +324,35 @@ public class VirtualHostStoreUpgraderAndRecovererTest
extends UnitTestBase
context.put("qpid.jdbcstore.bonecp.partitionCount", partitionCount);
context.put("qpid.jdbcstore.bonecp.maxConnectionsPerPartition",
maxConnectionsPerPartition);
context.put("qpid.jdbcstore.bonecp.minConnectionsPerPartition",
minConnectionsPerPartition);
+
final Map<String, Object> attributes = Map.of("name", getTestName(),
"modelVersion", "9.0",
"type", "JDBC",
- "connectionPoolType", "BONECP",
- "context", context);
- final ConfiguredObjectRecord virtualHostRecord =
mock(ConfiguredObjectRecord.class);;
+ "connectionPoolType", "BONECP");
+
+ final ConfiguredObjectRecord virtualHostRecord =
mock(ConfiguredObjectRecord.class);
when(virtualHostRecord.getId()).thenReturn(randomUUID());
when(virtualHostRecord.getType()).thenReturn("VirtualHost");
- when(virtualHostRecord.getAttributes()).thenReturn(attributes);
+
when(virtualHostRecord.getAttributes()).thenReturn(createAttributesMap(attributes,
context));
- final List<ConfiguredObjectRecord> records = List.of(rootRecord,
virtualHostRecord);
+ final ConfiguredObjectRecord virtualHostLoggerRecord =
mock(ConfiguredObjectRecord.class);
+ when(virtualHostLoggerRecord.getId()).thenReturn(randomUUID());
+
when(virtualHostLoggerRecord.getType()).thenReturn("VirtualHostLogger");
+
when(virtualHostLoggerRecord.getAttributes()).thenReturn(createAttributesMap(attributes,
context));
+
+ final List<ConfiguredObjectRecord> records = List.of(rootRecord,
virtualHostRecord, virtualHostLoggerRecord);
final List<ConfiguredObjectRecord> upgradedRecords =
_upgraderAndRecoverer.upgrade(_store, records, "VirtualHost",
"modelVersion");
- final ConfiguredObjectRecord upgradedVirtualHost =
upgradedRecords.stream()
- .filter(record ->
record.getId().equals(virtualHostRecord.getId())).findFirst()
- .orElse(null);
- final Map<String, String> contextMap = (Map<String, String>)
upgradedVirtualHost.getAttributes().get("context");
+ upgradedRecords.stream().filter(record ->
!"root".equals(record.getAttributes().get("name"))).forEach(record ->
+ {
+ final Map<String, String> upgradedContext =
+ (Map<String, String>)
record.getAttributes().get("context");
- assertNotNull(upgradedVirtualHost);
- assertEquals(maximumPoolSize,
contextMap.get("qpid.jdbcstore.hikaricp.maximumPoolSize"));
- assertEquals(minimumIdle,
contextMap.get("qpid.jdbcstore.hikaricp.minimumIdle"));
- assertEquals("HIKARICP",
upgradedVirtualHost.getAttributes().get("connectionPoolType"));
+ assertEquals(maximumPoolSize,
upgradedContext.get("qpid.jdbcstore.hikaricp.maximumPoolSize"));
+ assertEquals(minimumIdle,
upgradedContext.get("qpid.jdbcstore.hikaricp.minimumIdle"));
+ assertEquals("HIKARICP",
record.getAttributes().get("connectionPoolType"));
+ });
}
@Test
@@ -357,12 +364,11 @@ public class VirtualHostStoreUpgraderAndRecovererTest
extends UnitTestBase
final Map<String, Object> attributes = Map.of("name", getTestName(),
"modelVersion", "9.0",
"type", "JDBC",
- "connectionPoolType", "NONE",
- "context", new HashMap<>());
- final ConfiguredObjectRecord virtualHostRecord =
mock(ConfiguredObjectRecord.class);;
+ "connectionPoolType", "NONE");
+ final ConfiguredObjectRecord virtualHostRecord =
mock(ConfiguredObjectRecord.class);
when(virtualHostRecord.getId()).thenReturn(randomUUID());
when(virtualHostRecord.getType()).thenReturn("VirtualHost");
- when(virtualHostRecord.getAttributes()).thenReturn(attributes);
+
when(virtualHostRecord.getAttributes()).thenReturn(createAttributesMap(attributes,
new HashMap<>()));
final List<ConfiguredObjectRecord> records = List.of(rootRecord,
virtualHostRecord);
final List<ConfiguredObjectRecord> upgradedRecords =
@@ -374,6 +380,7 @@ public class VirtualHostStoreUpgraderAndRecovererTest
extends UnitTestBase
final Map<String, String> contextMap = (Map<String, String>)
upgradedVirtualHost.getAttributes().get("context");
assertNotNull(upgradedVirtualHost);
+ assertNull(contextMap.get("qpid.jdbcstore.bonecp.partitionCount"));
assertNull(contextMap.get("qpid.jdbcstore.hikaricp.maximumPoolSize"));
assertNull(contextMap.get("qpid.jdbcstore.hikaricp.minimumIdle"));
assertEquals("NONE",
virtualHostRecord.getAttributes().get("connectionPoolType"));
diff --git
a/broker-core/src/test/java/org/apache/qpid/server/test/AttributesUtils.java
b/broker-core/src/test/java/org/apache/qpid/server/test/AttributesUtils.java
new file mode 100644
index 0000000000..5f2ecf5be6
--- /dev/null
+++ b/broker-core/src/test/java/org/apache/qpid/server/test/AttributesUtils.java
@@ -0,0 +1,34 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.qpid.server.test;
+
+import java.util.HashMap;
+import java.util.Map;
+
+public class AttributesUtils
+{
+ /** Creates new attributes map along with the new context map */
+ public static Map<String, Object> createAttributesMap(final Map<String,
Object> attributes,
+ final Map<String,
String> context)
+ {
+ final Map<String, Object> copied = new HashMap<>(attributes);
+ copied.put("context", new HashMap<>(context));
+ return copied;
+ }
+}
diff --git
a/broker-plugins/jdbc-provider-hikari/src/main/java/org/apache/qpid/server/store/jdbc/hikaricp/HikariCPConnectionProvider.java
b/broker-plugins/jdbc-provider-hikari/src/main/java/org/apache/qpid/server/store/jdbc/hikaricp/HikariCPConnectionProvider.java
index 1e046f6e2f..351f2d9814 100644
---
a/broker-plugins/jdbc-provider-hikari/src/main/java/org/apache/qpid/server/store/jdbc/hikaricp/HikariCPConnectionProvider.java
+++
b/broker-plugins/jdbc-provider-hikari/src/main/java/org/apache/qpid/server/store/jdbc/hikaricp/HikariCPConnectionProvider.java
@@ -21,8 +21,8 @@
package org.apache.qpid.server.store.jdbc.hikaricp;
import static
org.apache.qpid.server.store.jdbc.hikaricp.HikariCPConnectionProviderFactory.JDBC_STORE_PREFIX;
-import static
org.apache.qpid.server.store.jdbc.hikaricp.HikariCPConnectionProviderFactory.MAX_POOLSIZE;
-import static
org.apache.qpid.server.store.jdbc.hikaricp.HikariCPConnectionProviderFactory.MIN_IDLE;
+import static
org.apache.qpid.server.store.jdbc.hikaricp.HikariCPConnectionProviderFactory.MAXIMUM_POOLSIZE;
+import static
org.apache.qpid.server.store.jdbc.hikaricp.HikariCPConnectionProviderFactory.MINIMUM_IDLE;
import java.sql.Connection;
import java.sql.SQLException;
@@ -48,8 +48,8 @@ public class HikariCPConnectionProvider implements
ConnectionProvider
private static final Logger LOGGER =
LoggerFactory.getLogger(HikariCPConnectionProvider.class);
private static final String ADDING_DATASOURCE_PROPERTY = "Adding
dataSource property '{}' with value '{}'";
- public static final int DEFAULT_MIN_IDLE = 20;
- public static final int DEFAULT_MAX_POOLSIZE = 40;
+ public static final int DEFAULT_MINIMUM_IDLE = 20;
+ public static final int DEFAULT_MAXIMUM_POOLSIZE = 40;
private final HikariDataSource _dataSource;
@@ -81,8 +81,8 @@ public class HikariCPConnectionProvider implements
ConnectionProvider
final Map<String, String>
providerAttributes)
{
final Map<String, String> attributes = new
HashMap<>(providerAttributes);
- attributes.putIfAbsent(MIN_IDLE, String.valueOf(DEFAULT_MIN_IDLE));
- attributes.putIfAbsent(MAX_POOLSIZE,
String.valueOf(DEFAULT_MAX_POOLSIZE));
+ attributes.putIfAbsent(MINIMUM_IDLE,
String.valueOf(DEFAULT_MINIMUM_IDLE));
+ attributes.putIfAbsent(MAXIMUM_POOLSIZE,
String.valueOf(DEFAULT_MAXIMUM_POOLSIZE));
final int prefixLength = (JDBC_STORE_PREFIX + "hikaricp.").length();
final Map<String, String> propertiesMap = attributes.entrySet()
diff --git
a/broker-plugins/jdbc-provider-hikari/src/main/java/org/apache/qpid/server/store/jdbc/hikaricp/HikariCPConnectionProviderFactory.java
b/broker-plugins/jdbc-provider-hikari/src/main/java/org/apache/qpid/server/store/jdbc/hikaricp/HikariCPConnectionProviderFactory.java
index c553b4cc38..3db23f5588 100644
---
a/broker-plugins/jdbc-provider-hikari/src/main/java/org/apache/qpid/server/store/jdbc/hikaricp/HikariCPConnectionProviderFactory.java
+++
b/broker-plugins/jdbc-provider-hikari/src/main/java/org/apache/qpid/server/store/jdbc/hikaricp/HikariCPConnectionProviderFactory.java
@@ -40,8 +40,8 @@ public class HikariCPConnectionProviderFactory implements
JDBCConnectionProvider
{
static final String JDBC_STORE_PREFIX = "qpid.jdbcstore.";
static final String HIKARICP_SETTING_PREFIX = JDBC_STORE_PREFIX +
"hikaricp.";
- static final String MAX_POOLSIZE = HIKARICP_SETTING_PREFIX +
"maximumPoolSize";
- static final String MIN_IDLE = HIKARICP_SETTING_PREFIX + "minimumIdle";
+ static final String MAXIMUM_POOLSIZE = HIKARICP_SETTING_PREFIX +
"maximumPoolSize";
+ static final String MINIMUM_IDLE = HIKARICP_SETTING_PREFIX + "minimumIdle";
private final Set<String> _supportedAttributes;
diff --git
a/broker-plugins/jdbc-provider-hikari/src/main/java/resources/js/qpid/management/store/pool/hikaricp/add.js
b/broker-plugins/jdbc-provider-hikari/src/main/java/resources/js/qpid/management/store/pool/hikaricp/add.js
index 9e723e7490..4988d66af3 100644
---
a/broker-plugins/jdbc-provider-hikari/src/main/java/resources/js/qpid/management/store/pool/hikaricp/add.js
+++
b/broker-plugins/jdbc-provider-hikari/src/main/java/resources/js/qpid/management/store/pool/hikaricp/add.js
@@ -37,8 +37,8 @@ define(["dojo/_base/xhr",
show: function (data)
{
data.context.addInheritedContext({
- "qpid.jdbcstore.hikaricp.minIdle": "5",
- "qpid.jdbcstore.hikaricp.maxPoolsize": "10"
+ "qpid.jdbcstore.hikaricp.minimumIdle": "20",
+ "qpid.jdbcstore.hikaricp.maximumPoolSize": "40"
});
}
};
diff --git
a/broker-plugins/jdbc-provider-hikari/src/main/java/resources/js/qpid/management/store/pool/hikaricp/show.js
b/broker-plugins/jdbc-provider-hikari/src/main/java/resources/js/qpid/management/store/pool/hikaricp/show.js
index 9ddd17ab6f..4d9c25e188 100644
---
a/broker-plugins/jdbc-provider-hikari/src/main/java/resources/js/qpid/management/store/pool/hikaricp/show.js
+++
b/broker-plugins/jdbc-provider-hikari/src/main/java/resources/js/qpid/management/store/pool/hikaricp/show.js
@@ -21,7 +21,7 @@
define(["dojo/_base/xhr", "dojo/parser", "dojox/html/entities", "dojo/query",
"dojo/_base/lang", "dojo/domReady!"],
function (xhr, parser, entities, query, lang)
{
- var fieldNames = ["maxPoolsize", "minIdle"];
+ var fieldNames = ["maximumPoolSize", "minimumIdle"];
function HikariCP(data)
{
diff --git
a/broker-plugins/jdbc-provider-hikari/src/main/java/resources/store/pool/hikaricp/show.html
b/broker-plugins/jdbc-provider-hikari/src/main/java/resources/store/pool/hikaricp/show.html
index a7f8f24d1d..221a4937e8 100644
---
a/broker-plugins/jdbc-provider-hikari/src/main/java/resources/store/pool/hikaricp/show.html
+++
b/broker-plugins/jdbc-provider-hikari/src/main/java/resources/store/pool/hikaricp/show.html
@@ -21,11 +21,11 @@
<div data-dojo-type="dijit.TitlePane" data-dojo-props="title: 'Hikari
Connection Pool Settings', open: false">
<div class="clear">
<div class="formLabel-labelCell">Minimum Idle Connections:</div>
- <div class="minIdle"></div>
+ <div class="minimumIdle"></div>
</div>
<div class="clear">
<div class="formLabel-labelCell">Maximum Pool Size:</div>
- <div class="maxPoolsize"></div>
+ <div class="maximumPoolSize"></div>
</div>
<div class="clear"></div>
</div>
diff --git
a/broker-plugins/jdbc-provider-hikari/src/test/java/org/apache/qpid/server/store/jdbc/hikaricp/HikariCPConnectionProviderFactoryTest.java
b/broker-plugins/jdbc-provider-hikari/src/test/java/org/apache/qpid/server/store/jdbc/hikaricp/HikariCPConnectionProviderFactoryTest.java
index 2ffae7a95c..271daf6121 100644
---
a/broker-plugins/jdbc-provider-hikari/src/test/java/org/apache/qpid/server/store/jdbc/hikaricp/HikariCPConnectionProviderFactoryTest.java
+++
b/broker-plugins/jdbc-provider-hikari/src/test/java/org/apache/qpid/server/store/jdbc/hikaricp/HikariCPConnectionProviderFactoryTest.java
@@ -20,8 +20,8 @@
*/
package org.apache.qpid.server.store.jdbc.hikaricp;
-import static
org.apache.qpid.server.store.jdbc.hikaricp.HikariCPConnectionProviderFactory.MAX_POOLSIZE;
-import static
org.apache.qpid.server.store.jdbc.hikaricp.HikariCPConnectionProviderFactory.MIN_IDLE;
+import static
org.apache.qpid.server.store.jdbc.hikaricp.HikariCPConnectionProviderFactory.MAXIMUM_POOLSIZE;
+import static
org.apache.qpid.server.store.jdbc.hikaricp.HikariCPConnectionProviderFactory.MINIMUM_IDLE;
import static org.junit.jupiter.api.Assertions.assertFalse;
import static org.junit.jupiter.api.Assertions.assertTrue;
@@ -40,7 +40,7 @@ public class HikariCPConnectionProviderFactoryTest extends
UnitTestBase
Set<String> supported = factory.getProviderAttributeNames();
assertFalse(supported.isEmpty(), "Supported settings cannot be empty");
- assertTrue(supported.contains(MAX_POOLSIZE), "maximumPoolSize is not
found");
- assertTrue(supported.contains(MIN_IDLE), "minimumIdle is not found");
+ assertTrue(supported.contains(MAXIMUM_POOLSIZE), "maximumPoolSize is
not found");
+ assertTrue(supported.contains(MINIMUM_IDLE), "minimumIdle is not
found");
}
}
diff --git
a/broker-plugins/jdbc-provider-hikari/src/test/java/org/apache/qpid/server/store/jdbc/hikaricp/HikariCPConnectionProviderTest.java
b/broker-plugins/jdbc-provider-hikari/src/test/java/org/apache/qpid/server/store/jdbc/hikaricp/HikariCPConnectionProviderTest.java
index 7b495c0601..4ea69afc22 100644
---
a/broker-plugins/jdbc-provider-hikari/src/test/java/org/apache/qpid/server/store/jdbc/hikaricp/HikariCPConnectionProviderTest.java
+++
b/broker-plugins/jdbc-provider-hikari/src/test/java/org/apache/qpid/server/store/jdbc/hikaricp/HikariCPConnectionProviderTest.java
@@ -20,8 +20,8 @@
*/
package org.apache.qpid.server.store.jdbc.hikaricp;
-import static
org.apache.qpid.server.store.jdbc.hikaricp.HikariCPConnectionProvider.DEFAULT_MAX_POOLSIZE;
-import static
org.apache.qpid.server.store.jdbc.hikaricp.HikariCPConnectionProvider.DEFAULT_MIN_IDLE;
+import static
org.apache.qpid.server.store.jdbc.hikaricp.HikariCPConnectionProvider.DEFAULT_MAXIMUM_POOLSIZE;
+import static
org.apache.qpid.server.store.jdbc.hikaricp.HikariCPConnectionProvider.DEFAULT_MINIMUM_IDLE;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
@@ -73,7 +73,7 @@ public class HikariCPConnectionProviderTest extends
UnitTestBase
assertEquals("12345678",
config.getDataSourceProperties().get("sslpassword"), "Unexpected sslpassword");
assertEquals("/etc/cert/trust.p12",
config.getDataSourceProperties().get("sslcert"), "Unexpected sslcert");
assertEquals("12345678",
config.getDataSourceProperties().get("certpassword"), "Unexpected
certpassword");
- assertEquals(DEFAULT_MAX_POOLSIZE, config.getMaximumPoolSize(),
"Unexpected maximumPoolSize");
- assertEquals(DEFAULT_MIN_IDLE, config.getMinimumIdle(), "Unexpected
minimumIdle");
+ assertEquals(DEFAULT_MAXIMUM_POOLSIZE, config.getMaximumPoolSize(),
"Unexpected maximumPoolSize");
+ assertEquals(DEFAULT_MINIMUM_IDLE, config.getMinimumIdle(),
"Unexpected minimumIdle");
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]