[
https://issues.apache.org/jira/browse/ARTEMIS-4398?focusedWorklogId=877839&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-877839
]
ASF GitHub Bot logged work on ARTEMIS-4398:
-------------------------------------------
Author: ASF GitHub Bot
Created on: 23/Aug/23 12:55
Start Date: 23/Aug/23 12:55
Worklog Time Spent: 10m
Work Description: gtully commented on code in PR #4587:
URL: https://github.com/apache/activemq-artemis/pull/4587#discussion_r1302971542
##########
artemis-server/src/main/java/org/apache/activemq/artemis/core/config/impl/ConfigurationImpl.java:
##########
@@ -773,6 +774,17 @@ public <T> T convert(Class<T> type, Object value) {
}
}, TransformerConfiguration.class);
+ beanUtils.getConvertUtils().register(new Converter() {
+ @Override
+ public <T> T convert(Class<T> type, Object value) {
+ //we only care about DATABASE type as it is the only one used
+ if
(StoreConfiguration.StoreType.DATABASE.toString().equals(value)) {
+ return (T) new DatabaseStorageConfiguration();
+ }
+ return (T) null;
Review Comment:
I think throw some runtimeexception here - value must be DATABASE, otherwise
the error on the next set will be hard to debug
##########
artemis-server/src/main/java/org/apache/activemq/artemis/core/config/impl/ConfigurationImpl.java:
##########
@@ -80,6 +80,7 @@
import
org.apache.activemq.artemis.core.config.ha.ReplicatedPolicyConfiguration;
import
org.apache.activemq.artemis.core.config.routing.NamedPropertyConfiguration;
import
org.apache.activemq.artemis.core.config.storage.DatabaseStorageConfiguration;
+import
org.apache.activemq.artemis.core.config.storage.FileStorageConfiguration;
Review Comment:
that looks unused
##########
artemis-server/src/test/java/org/apache/activemq/artemis/core/config/impl/ConfigurationImplTest.java:
##########
@@ -1554,6 +1555,48 @@ public void testSystemPropKeyReplacement() throws
Exception {
}
}
+ @Test
+ public void testDatabaseStoreConfigurationProps() throws Exception {
+ ConfigurationImpl configuration = new ConfigurationImpl();
+ Properties insertionOrderedProperties = new
ConfigurationImpl.InsertionOrderedProperties();
+ insertionOrderedProperties.put("storeConfiguration", "DATABASE");
+
insertionOrderedProperties.put("storeConfiguration.largeMessageTableName",
"lmtn");
+ insertionOrderedProperties.put("storeConfiguration.messageTableName",
"mtn");
+ insertionOrderedProperties.put("storeConfiguration.bindingsTableName",
"btn");
+ insertionOrderedProperties.put("storeConfiguration.dataSourceClassName",
"dscn");
+
insertionOrderedProperties.put("storeConfiguration.nodeManagerStoreTableName",
"nmtn");
+ insertionOrderedProperties.put("storeConfiguration.pageStoreTableName",
"pstn");
+ insertionOrderedProperties.put("storeConfiguration.jdbcAllowedTimeDiff",
123);
+ insertionOrderedProperties.put("storeConfiguration.jdbcConnectionUrl",
"url");
+ insertionOrderedProperties.put("storeConfiguration.jdbcDriverClassName",
"dcn");
+
insertionOrderedProperties.put("storeConfiguration.jdbcJournalSyncPeriodMillis",
456);
+
insertionOrderedProperties.put("storeConfiguration.jdbcLockAcquisitionTimeoutMillis",
789);
+
insertionOrderedProperties.put("storeConfiguration.jdbcLockExpirationMillis",
321);
+
insertionOrderedProperties.put("storeConfiguration.jdbcLockRenewPeriodMillis",
654);
+ insertionOrderedProperties.put("storeConfiguration.jdbcNetworkTimeout",
987);
+ insertionOrderedProperties.put("storeConfiguration.jdbcPassword",
"pass");
+ insertionOrderedProperties.put("storeConfiguration.jdbcUser", "user");
+ configuration.parsePrefixedProperties(insertionOrderedProperties, null);
+ Assert.assertTrue(configuration.getStoreConfiguration() instanceof
DatabaseStorageConfiguration);
+ DatabaseStorageConfiguration dsc = (DatabaseStorageConfiguration)
configuration.getStoreConfiguration();
+ Assert.assertEquals(dsc.getLargeMessageTableName(), "lmtn");
+ Assert.assertEquals(dsc.getMessageTableName(), "mtn");
+ Assert.assertEquals(dsc.getBindingsTableName(), "btn");
+ Assert.assertEquals(dsc.getDataSourceClassName(), "dscn");
+ Assert.assertEquals(dsc.getJdbcAllowedTimeDiff(), 123);
+ Assert.assertEquals(dsc.getJdbcConnectionUrl(), "url");
+ Assert.assertEquals(dsc.getJdbcDriverClassName(), "dcn");
+ Assert.assertEquals(dsc.getJdbcJournalSyncPeriodMillis(), 456);
+ Assert.assertEquals(dsc.getJdbcLockAcquisitionTimeoutMillis(), 789);
+ Assert.assertEquals(dsc.getJdbcLockExpirationMillis(), 321);
+ Assert.assertEquals(dsc.getJdbcLockRenewPeriodMillis(), 654);
+ Assert.assertEquals(dsc.getJdbcNetworkTimeout(), 987);
+ Assert.assertEquals(dsc.getJdbcPassword(), "pass");
+ Assert.assertEquals(dsc.getJdbcUser(), "user");
+ Assert.assertEquals(dsc.getNodeManagerStoreTableName(), "nmtn");
+ Assert.assertEquals(dsc.getPageStoreTableName(), "pstn");
+ }
+
@Test
Review Comment:
a negative test where the value is wrong would be great. to see what error
comes out. the error should be in the Status.
Issue Time Tracking
-------------------
Worklog Id: (was: 877839)
Time Spent: 20m (was: 10m)
> Support configuring Database with Broker Properties
> ---------------------------------------------------
>
> Key: ARTEMIS-4398
> URL: https://issues.apache.org/jira/browse/ARTEMIS-4398
> Project: ActiveMQ Artemis
> Issue Type: Improvement
> Reporter: Andy Taylor
> Assignee: Andy Taylor
> Priority: Major
> Time Spent: 20m
> Remaining Estimate: 0h
>
--
This message was sent by Atlassian Jira
(v8.20.10#820010)