This is an automated email from the ASF dual-hosted git repository.
gtully pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/activemq-artemis.git
The following commit(s) were added to refs/heads/main by this push:
new d975a7e606 ARTEMIS-5521 ensure conversion is in play when applying
jdbc dataSourceProperties
d975a7e606 is described below
commit d975a7e606bea10ebb64bfa4e58f4d3949ae06d9
Author: Gary Tully <[email protected]>
AuthorDate: Thu Jun 5 13:54:36 2025 +0100
ARTEMIS-5521 ensure conversion is in play when applying jdbc
dataSourceProperties
---
.../activemq/artemis/jdbc/store/drivers/JDBCDataSourceUtils.java | 4 ++--
.../activemq/artemis/core/config/impl/ConfigurationImplTest.java | 9 +++++++--
2 files changed, 9 insertions(+), 4 deletions(-)
diff --git
a/artemis-jdbc-store/src/main/java/org/apache/activemq/artemis/jdbc/store/drivers/JDBCDataSourceUtils.java
b/artemis-jdbc-store/src/main/java/org/apache/activemq/artemis/jdbc/store/drivers/JDBCDataSourceUtils.java
index 0018443800..4294876ee5 100644
---
a/artemis-jdbc-store/src/main/java/org/apache/activemq/artemis/jdbc/store/drivers/JDBCDataSourceUtils.java
+++
b/artemis-jdbc-store/src/main/java/org/apache/activemq/artemis/jdbc/store/drivers/JDBCDataSourceUtils.java
@@ -18,7 +18,7 @@ package org.apache.activemq.artemis.jdbc.store.drivers;
import org.apache.activemq.artemis.journal.ActiveMQJournalLogger;
import org.apache.activemq.artemis.utils.ClassloadingUtil;
-import org.apache.commons.beanutils.PropertyUtils;
+import org.apache.commons.beanutils.BeanUtilsBean;
import javax.sql.DataSource;
import java.util.Map;
@@ -35,7 +35,7 @@ public class JDBCDataSourceUtils {
try {
DataSource dataSource = (DataSource)
ClassloadingUtil.getInstanceWithTypeCheck(dataSourceClassName,
DataSource.class, JDBCDataSourceUtils.class.getClassLoader());
for (Map.Entry<String, Object> entry :
dataSourceProperties.entrySet()) {
- PropertyUtils.setProperty(dataSource, entry.getKey(),
entry.getValue());
+ BeanUtilsBean.getInstance().setProperty(dataSource,
entry.getKey(), entry.getValue());
}
return dataSource;
} catch (ClassNotFoundException cnfe) {
diff --git
a/artemis-server/src/test/java/org/apache/activemq/artemis/core/config/impl/ConfigurationImplTest.java
b/artemis-server/src/test/java/org/apache/activemq/artemis/core/config/impl/ConfigurationImplTest.java
index 93b5dfd1d0..d7132f592e 100644
---
a/artemis-server/src/test/java/org/apache/activemq/artemis/core/config/impl/ConfigurationImplTest.java
+++
b/artemis-server/src/test/java/org/apache/activemq/artemis/core/config/impl/ConfigurationImplTest.java
@@ -103,6 +103,7 @@ import
org.apache.activemq.artemis.core.settings.impl.AddressFullMessagePolicy;
import org.apache.activemq.artemis.core.settings.impl.DeletionPolicy;
import org.apache.activemq.artemis.core.settings.impl.ResourceLimitSettings;
import
org.apache.activemq.artemis.core.settings.impl.SlowConsumerThresholdMeasurementUnit;
+import org.apache.activemq.artemis.jdbc.store.drivers.JDBCDataSourceUtils;
import org.apache.activemq.artemis.json.JsonObject;
import org.apache.activemq.artemis.logs.AssertionLoggerHandler;
import org.apache.activemq.artemis.json.JsonObjectBuilder;
@@ -2207,7 +2208,7 @@ public class ConfigurationImplTest extends
AbstractConfigurationTestBase {
insertionOrderedProperties.put("storeConfiguration.largeMessageTableName",
"lmtn");
insertionOrderedProperties.put("storeConfiguration.messageTableName",
"mtn");
insertionOrderedProperties.put("storeConfiguration.bindingsTableName",
"btn");
- insertionOrderedProperties.put("storeConfiguration.dataSourceClassName",
"dscn");
+ insertionOrderedProperties.put("storeConfiguration.dataSourceClassName",
ActiveMQDefaultConfiguration.getDefaultDataSourceClassName());
insertionOrderedProperties.put("storeConfiguration.nodeManagerStoreTableName",
"nmtn");
insertionOrderedProperties.put("storeConfiguration.pageStoreTableName",
"pstn");
insertionOrderedProperties.put("storeConfiguration.jdbcAllowedTimeDiff",
123);
@@ -2219,6 +2220,7 @@ public class ConfigurationImplTest extends
AbstractConfigurationTestBase {
insertionOrderedProperties.put("storeConfiguration.jdbcLockRenewPeriodMillis",
654);
insertionOrderedProperties.put("storeConfiguration.jdbcNetworkTimeout",
987);
insertionOrderedProperties.put("storeConfiguration.dataSourceProperties.password",
"pass");
+
insertionOrderedProperties.put("storeConfiguration.dataSourceProperties.initialSize",
3); // needs conversion from string to int
insertionOrderedProperties.put("storeConfiguration.jdbcUser", "user");
configuration.parsePrefixedProperties(insertionOrderedProperties, null);
@@ -2229,7 +2231,7 @@ public class ConfigurationImplTest extends
AbstractConfigurationTestBase {
assertEquals("lmtn", dsc.getLargeMessageTableName());
assertEquals("mtn", dsc.getMessageTableName());
assertEquals("btn", dsc.getBindingsTableName());
- assertEquals("dscn", dsc.getDataSourceClassName());
+
assertEquals(ActiveMQDefaultConfiguration.getDefaultDataSourceClassName(),
dsc.getDataSourceClassName());
assertEquals(123, dsc.getJdbcAllowedTimeDiff());
assertEquals("url", dsc.getJdbcConnectionUrl());
assertEquals("dcn", dsc.getJdbcDriverClassName());
@@ -2242,6 +2244,9 @@ public class ConfigurationImplTest extends
AbstractConfigurationTestBase {
assertEquals("user", dsc.getJdbcUser());
assertEquals("nmtn", dsc.getNodeManagerStoreTableName());
assertEquals("pstn", dsc.getPageStoreTableName());
+
+ // force load to verify dataSourceProperties are applied ok
+ JDBCDataSourceUtils.getDataSource(dsc.getDataSourceClassName(),
dsc.getDataSourceProperties());
}
@Test
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]
For further information, visit: https://activemq.apache.org/contact