[ 
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)

Reply via email to