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 <daniel.kiril...@gmail.com>
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: commits-unsubscr...@qpid.apache.org
For additional commands, e-mail: commits-h...@qpid.apache.org


Reply via email to