This is an automated email from the ASF dual-hosted git repository.

arnold pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/fineract.git


The following commit(s) were added to refs/heads/develop by this push:
     new 349103015 Add custom Configuration class for Account module 
(FINERACT-1932)
349103015 is described below

commit 349103015f51ce094d45717b420cdbfb7613e6f1
Author: Sinha, Abhinav <[email protected]>
AuthorDate: Mon Aug 21 18:38:10 2023 -0400

    Add custom Configuration class for Account module (FINERACT-1932)
---
 ...AccountAssociationsReadPlatformServiceImpl.java |  11 +-
 .../AccountTransfersReadPlatformServiceImpl.java   |   4 -
 .../AccountTransfersWritePlatformServiceImpl.java  |   2 -
 .../PortfolioAccountReadPlatformServiceImpl.java   |   4 -
 ...gInstructionHistoryReadPlatformServiceImpl.java |   4 -
 ...StandingInstructionReadPlatformServiceImpl.java |   4 -
 ...tandingInstructionWritePlatformServiceImpl.java |   2 -
 .../account/starter/AccountConfiguration.java      | 131 +++++++++++++++++++++
 8 files changed, 135 insertions(+), 27 deletions(-)

diff --git 
a/fineract-provider/src/main/java/org/apache/fineract/portfolio/account/service/AccountAssociationsReadPlatformServiceImpl.java
 
b/fineract-provider/src/main/java/org/apache/fineract/portfolio/account/service/AccountAssociationsReadPlatformServiceImpl.java
index 3b11b8d8b..f26eb5984 100644
--- 
a/fineract-provider/src/main/java/org/apache/fineract/portfolio/account/service/AccountAssociationsReadPlatformServiceImpl.java
+++ 
b/fineract-provider/src/main/java/org/apache/fineract/portfolio/account/service/AccountAssociationsReadPlatformServiceImpl.java
@@ -24,24 +24,21 @@ import java.util.Collection;
 import java.util.List;
 import java.util.Map;
 import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
 import org.apache.fineract.infrastructure.core.domain.JdbcSupport;
 import org.apache.fineract.portfolio.account.data.AccountAssociationsData;
 import org.apache.fineract.portfolio.account.data.PortfolioAccountData;
 import org.apache.fineract.portfolio.account.domain.AccountAssociationType;
 import org.apache.fineract.portfolio.loanaccount.domain.LoanStatus;
 import org.apache.fineract.portfolio.savings.domain.SavingsAccountStatusType;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
 import org.springframework.dao.EmptyResultDataAccessException;
 import org.springframework.jdbc.core.JdbcTemplate;
 import org.springframework.jdbc.core.RowMapper;
-import org.springframework.stereotype.Service;
 
-@Service
 @RequiredArgsConstructor
+@Slf4j
 public class AccountAssociationsReadPlatformServiceImpl implements 
AccountAssociationsReadPlatformService {
 
-    private static final Logger LOG = 
LoggerFactory.getLogger(AccountAssociationsReadPlatformServiceImpl.class);
     private final JdbcTemplate jdbcTemplate;
 
     @Override
@@ -56,7 +53,7 @@ public class AccountAssociationsReadPlatformServiceImpl 
implements AccountAssoci
                 linkedAccount = accountAssociationsData.linkedAccount();
             }
         } catch (final EmptyResultDataAccessException e) {
-            LOG.debug("Linking account is not configured");
+            log.debug("Linking account is not configured");
         }
         return linkedAccount;
     }
@@ -85,7 +82,7 @@ public class AccountAssociationsReadPlatformServiceImpl 
implements AccountAssoci
                 linkedAccount = accountAssociationsData.linkedAccount();
             }
         } catch (final EmptyResultDataAccessException e) {
-            LOG.debug("Linking account is not configured");
+            log.debug("Linking account is not configured");
         }
         return linkedAccount;
     }
diff --git 
a/fineract-provider/src/main/java/org/apache/fineract/portfolio/account/service/AccountTransfersReadPlatformServiceImpl.java
 
b/fineract-provider/src/main/java/org/apache/fineract/portfolio/account/service/AccountTransfersReadPlatformServiceImpl.java
index a5498fb22..a0fb3b9d0 100644
--- 
a/fineract-provider/src/main/java/org/apache/fineract/portfolio/account/service/AccountTransfersReadPlatformServiceImpl.java
+++ 
b/fineract-provider/src/main/java/org/apache/fineract/portfolio/account/service/AccountTransfersReadPlatformServiceImpl.java
@@ -45,14 +45,11 @@ import 
org.apache.fineract.portfolio.account.domain.AccountTransferType;
 import 
org.apache.fineract.portfolio.account.exception.AccountTransferNotFoundException;
 import org.apache.fineract.portfolio.client.data.ClientData;
 import org.apache.fineract.portfolio.client.service.ClientReadPlatformService;
-import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.dao.EmptyResultDataAccessException;
 import org.springframework.jdbc.core.JdbcTemplate;
 import org.springframework.jdbc.core.RowMapper;
-import org.springframework.stereotype.Service;
 import org.springframework.util.CollectionUtils;
 
-@Service
 public class AccountTransfersReadPlatformServiceImpl implements 
AccountTransfersReadPlatformService {
 
     private static final DateTimeFormatter DATE_TIME_FORMATTER = 
DateTimeFormatter.ofPattern("yyyy-MM-dd");
@@ -67,7 +64,6 @@ public class AccountTransfersReadPlatformServiceImpl 
implements AccountTransfers
     // pagination
     private final PaginationHelper paginationHelper;
 
-    @Autowired
     public AccountTransfersReadPlatformServiceImpl(final JdbcTemplate 
jdbcTemplate,
             final ClientReadPlatformService clientReadPlatformService, final 
OfficeReadPlatformService officeReadPlatformService,
             final PortfolioAccountReadPlatformService 
portfolioAccountReadPlatformService, final ColumnValidator columnValidator,
diff --git 
a/fineract-provider/src/main/java/org/apache/fineract/portfolio/account/service/AccountTransfersWritePlatformServiceImpl.java
 
b/fineract-provider/src/main/java/org/apache/fineract/portfolio/account/service/AccountTransfersWritePlatformServiceImpl.java
index 644d6526d..dd07013f3 100644
--- 
a/fineract-provider/src/main/java/org/apache/fineract/portfolio/account/service/AccountTransfersWritePlatformServiceImpl.java
+++ 
b/fineract-provider/src/main/java/org/apache/fineract/portfolio/account/service/AccountTransfersWritePlatformServiceImpl.java
@@ -69,10 +69,8 @@ import 
org.apache.fineract.portfolio.savings.domain.SavingsAccountAssembler;
 import 
org.apache.fineract.portfolio.savings.domain.SavingsAccountDomainService;
 import org.apache.fineract.portfolio.savings.domain.SavingsAccountTransaction;
 import 
org.apache.fineract.portfolio.savings.service.SavingsAccountWritePlatformService;
-import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
-@Service
 @RequiredArgsConstructor
 public class AccountTransfersWritePlatformServiceImpl implements 
AccountTransfersWritePlatformService {
 
diff --git 
a/fineract-provider/src/main/java/org/apache/fineract/portfolio/account/service/PortfolioAccountReadPlatformServiceImpl.java
 
b/fineract-provider/src/main/java/org/apache/fineract/portfolio/account/service/PortfolioAccountReadPlatformServiceImpl.java
index 3542c0325..61d5beb0f 100644
--- 
a/fineract-provider/src/main/java/org/apache/fineract/portfolio/account/service/PortfolioAccountReadPlatformServiceImpl.java
+++ 
b/fineract-provider/src/main/java/org/apache/fineract/portfolio/account/service/PortfolioAccountReadPlatformServiceImpl.java
@@ -31,13 +31,10 @@ import 
org.apache.fineract.portfolio.account.PortfolioAccountType;
 import org.apache.fineract.portfolio.account.data.PortfolioAccountDTO;
 import org.apache.fineract.portfolio.account.data.PortfolioAccountData;
 import 
org.apache.fineract.portfolio.account.exception.AccountTransferNotFoundException;
-import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.dao.EmptyResultDataAccessException;
 import org.springframework.jdbc.core.JdbcTemplate;
 import org.springframework.jdbc.core.RowMapper;
-import org.springframework.stereotype.Service;
 
-@Service
 public class PortfolioAccountReadPlatformServiceImpl implements 
PortfolioAccountReadPlatformService {
 
     private final JdbcTemplate jdbcTemplate;
@@ -47,7 +44,6 @@ public class PortfolioAccountReadPlatformServiceImpl 
implements PortfolioAccount
     private final PortfolioLoanAccountMapper loanAccountMapper;
     private final PortfolioLoanAccountRefundByTransferMapper 
accountRefundByTransferMapper;
 
-    @Autowired
     public PortfolioAccountReadPlatformServiceImpl(final JdbcTemplate 
jdbcTemplate, DatabaseSpecificSQLGenerator sqlGenerator) {
         this.jdbcTemplate = jdbcTemplate;
         this.savingsAccountMapper = new PortfolioSavingsAccountMapper();
diff --git 
a/fineract-provider/src/main/java/org/apache/fineract/portfolio/account/service/StandingInstructionHistoryReadPlatformServiceImpl.java
 
b/fineract-provider/src/main/java/org/apache/fineract/portfolio/account/service/StandingInstructionHistoryReadPlatformServiceImpl.java
index 8c9ad5c52..f3efb4e35 100644
--- 
a/fineract-provider/src/main/java/org/apache/fineract/portfolio/account/service/StandingInstructionHistoryReadPlatformServiceImpl.java
+++ 
b/fineract-provider/src/main/java/org/apache/fineract/portfolio/account/service/StandingInstructionHistoryReadPlatformServiceImpl.java
@@ -40,12 +40,9 @@ import 
org.apache.fineract.portfolio.account.data.PortfolioAccountData;
 import org.apache.fineract.portfolio.account.data.StandingInstructionDTO;
 import 
org.apache.fineract.portfolio.account.data.StandingInstructionHistoryData;
 import org.apache.fineract.portfolio.client.data.ClientData;
-import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.jdbc.core.JdbcTemplate;
 import org.springframework.jdbc.core.RowMapper;
-import org.springframework.stereotype.Service;
 
-@Service
 public class StandingInstructionHistoryReadPlatformServiceImpl implements 
StandingInstructionHistoryReadPlatformService {
 
     private final JdbcTemplate jdbcTemplate;
@@ -58,7 +55,6 @@ public class 
StandingInstructionHistoryReadPlatformServiceImpl implements Standi
     // pagination
     private final PaginationHelper paginationHelper;
 
-    @Autowired
     public StandingInstructionHistoryReadPlatformServiceImpl(final 
JdbcTemplate jdbcTemplate, final ColumnValidator columnValidator,
             DatabaseSpecificSQLGenerator sqlGenerator, PaginationHelper 
paginationHelper) {
         this.jdbcTemplate = jdbcTemplate;
diff --git 
a/fineract-provider/src/main/java/org/apache/fineract/portfolio/account/service/StandingInstructionReadPlatformServiceImpl.java
 
b/fineract-provider/src/main/java/org/apache/fineract/portfolio/account/service/StandingInstructionReadPlatformServiceImpl.java
index 0f1c74682..3d74d6749 100644
--- 
a/fineract-provider/src/main/java/org/apache/fineract/portfolio/account/service/StandingInstructionReadPlatformServiceImpl.java
+++ 
b/fineract-provider/src/main/java/org/apache/fineract/portfolio/account/service/StandingInstructionReadPlatformServiceImpl.java
@@ -60,14 +60,11 @@ import org.apache.fineract.portfolio.client.data.ClientData;
 import org.apache.fineract.portfolio.client.service.ClientReadPlatformService;
 import org.apache.fineract.portfolio.common.service.CommonEnumerations;
 import 
org.apache.fineract.portfolio.common.service.DropdownReadPlatformService;
-import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.dao.EmptyResultDataAccessException;
 import org.springframework.jdbc.core.JdbcTemplate;
 import org.springframework.jdbc.core.RowMapper;
-import org.springframework.stereotype.Service;
 import org.springframework.util.CollectionUtils;
 
-@Service
 public class StandingInstructionReadPlatformServiceImpl implements 
StandingInstructionReadPlatformService {
 
     private final JdbcTemplate jdbcTemplate;
@@ -84,7 +81,6 @@ public class StandingInstructionReadPlatformServiceImpl 
implements StandingInstr
     // pagination
     private final PaginationHelper paginationHelper;
 
-    @Autowired
     public StandingInstructionReadPlatformServiceImpl(final JdbcTemplate 
jdbcTemplate,
             final ClientReadPlatformService clientReadPlatformService, final 
OfficeReadPlatformService officeReadPlatformService,
             final PortfolioAccountReadPlatformService 
portfolioAccountReadPlatformService,
diff --git 
a/fineract-provider/src/main/java/org/apache/fineract/portfolio/account/service/StandingInstructionWritePlatformServiceImpl.java
 
b/fineract-provider/src/main/java/org/apache/fineract/portfolio/account/service/StandingInstructionWritePlatformServiceImpl.java
index 3a808cc09..e832fd574 100644
--- 
a/fineract-provider/src/main/java/org/apache/fineract/portfolio/account/service/StandingInstructionWritePlatformServiceImpl.java
+++ 
b/fineract-provider/src/main/java/org/apache/fineract/portfolio/account/service/StandingInstructionWritePlatformServiceImpl.java
@@ -44,11 +44,9 @@ import 
org.apache.fineract.portfolio.account.exception.StandingInstructionNotFou
 import org.springframework.dao.DataIntegrityViolationException;
 import org.springframework.dao.NonTransientDataAccessException;
 import org.springframework.orm.jpa.JpaSystemException;
-import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
 @Slf4j
-@Service
 @RequiredArgsConstructor
 public class StandingInstructionWritePlatformServiceImpl implements 
StandingInstructionWritePlatformService {
 
diff --git 
a/fineract-provider/src/main/java/org/apache/fineract/portfolio/account/starter/AccountConfiguration.java
 
b/fineract-provider/src/main/java/org/apache/fineract/portfolio/account/starter/AccountConfiguration.java
new file mode 100644
index 000000000..90a827854
--- /dev/null
+++ 
b/fineract-provider/src/main/java/org/apache/fineract/portfolio/account/starter/AccountConfiguration.java
@@ -0,0 +1,131 @@
+/**
+ * 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.fineract.portfolio.account.starter;
+
+import 
org.apache.fineract.infrastructure.configuration.domain.ConfigurationDomainService;
+import org.apache.fineract.infrastructure.core.config.FineractProperties;
+import org.apache.fineract.infrastructure.core.service.ExternalIdFactory;
+import org.apache.fineract.infrastructure.core.service.PaginationHelper;
+import 
org.apache.fineract.infrastructure.core.service.database.DatabaseSpecificSQLGenerator;
+import org.apache.fineract.infrastructure.security.utils.ColumnValidator;
+import 
org.apache.fineract.organisation.office.service.OfficeReadPlatformService;
+import 
org.apache.fineract.portfolio.account.data.AccountTransfersDataValidator;
+import 
org.apache.fineract.portfolio.account.data.StandingInstructionDataValidator;
+import org.apache.fineract.portfolio.account.domain.AccountTransferAssembler;
+import 
org.apache.fineract.portfolio.account.domain.AccountTransferDetailRepository;
+import org.apache.fineract.portfolio.account.domain.AccountTransferRepository;
+import 
org.apache.fineract.portfolio.account.domain.StandingInstructionAssembler;
+import 
org.apache.fineract.portfolio.account.domain.StandingInstructionRepository;
+import 
org.apache.fineract.portfolio.account.service.AccountAssociationsReadPlatformService;
+import 
org.apache.fineract.portfolio.account.service.AccountAssociationsReadPlatformServiceImpl;
+import 
org.apache.fineract.portfolio.account.service.AccountTransfersReadPlatformService;
+import 
org.apache.fineract.portfolio.account.service.AccountTransfersReadPlatformServiceImpl;
+import 
org.apache.fineract.portfolio.account.service.AccountTransfersWritePlatformService;
+import 
org.apache.fineract.portfolio.account.service.AccountTransfersWritePlatformServiceImpl;
+import 
org.apache.fineract.portfolio.account.service.PortfolioAccountReadPlatformService;
+import 
org.apache.fineract.portfolio.account.service.PortfolioAccountReadPlatformServiceImpl;
+import 
org.apache.fineract.portfolio.account.service.StandingInstructionHistoryReadPlatformService;
+import 
org.apache.fineract.portfolio.account.service.StandingInstructionHistoryReadPlatformServiceImpl;
+import 
org.apache.fineract.portfolio.account.service.StandingInstructionReadPlatformService;
+import 
org.apache.fineract.portfolio.account.service.StandingInstructionReadPlatformServiceImpl;
+import 
org.apache.fineract.portfolio.account.service.StandingInstructionWritePlatformService;
+import 
org.apache.fineract.portfolio.account.service.StandingInstructionWritePlatformServiceImpl;
+import org.apache.fineract.portfolio.client.service.ClientReadPlatformService;
+import 
org.apache.fineract.portfolio.common.service.DropdownReadPlatformService;
+import 
org.apache.fineract.portfolio.loanaccount.domain.LoanAccountDomainService;
+import org.apache.fineract.portfolio.loanaccount.service.LoanAssembler;
+import 
org.apache.fineract.portfolio.loanaccount.service.LoanReadPlatformService;
+import org.apache.fineract.portfolio.savings.domain.GSIMRepositoy;
+import org.apache.fineract.portfolio.savings.domain.SavingsAccountAssembler;
+import 
org.apache.fineract.portfolio.savings.domain.SavingsAccountDomainService;
+import 
org.apache.fineract.portfolio.savings.service.SavingsAccountWritePlatformService;
+import 
org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.jdbc.core.JdbcTemplate;
+
+@Configuration
+public class AccountConfiguration {
+
+    @Bean
+    @ConditionalOnMissingBean(AccountAssociationsReadPlatformService.class)
+    public AccountAssociationsReadPlatformService 
accountAssociationsReadPlatformService(JdbcTemplate jdbcTemplate) {
+        return new AccountAssociationsReadPlatformServiceImpl(jdbcTemplate);
+    }
+
+    @Bean
+    @ConditionalOnMissingBean(AccountTransfersReadPlatformService.class)
+    public AccountTransfersReadPlatformService 
accountTransfersReadPlatformService(JdbcTemplate jdbcTemplate,
+            ClientReadPlatformService clientReadPlatformService, 
OfficeReadPlatformService officeReadPlatformService,
+            PortfolioAccountReadPlatformService 
portfolioAccountReadPlatformService, ColumnValidator columnValidator,
+            DatabaseSpecificSQLGenerator sqlGenerator, PaginationHelper 
paginationHelper) {
+        return new AccountTransfersReadPlatformServiceImpl(jdbcTemplate, 
clientReadPlatformService, officeReadPlatformService,
+                portfolioAccountReadPlatformService, columnValidator, 
sqlGenerator, paginationHelper);
+    }
+
+    @Bean
+    @ConditionalOnMissingBean(AccountTransfersWritePlatformService.class)
+    public AccountTransfersWritePlatformService 
accountTransfersWritePlatformService(
+            AccountTransfersDataValidator accountTransfersDataValidator, 
AccountTransferAssembler accountTransferAssembler,
+            AccountTransferRepository accountTransferRepository, 
SavingsAccountAssembler savingsAccountAssembler,
+            SavingsAccountDomainService savingsAccountDomainService, 
LoanAssembler loanAccountAssembler,
+            LoanAccountDomainService loanAccountDomainService, 
SavingsAccountWritePlatformService savingsAccountWritePlatformService,
+            AccountTransferDetailRepository accountTransferDetailRepository, 
LoanReadPlatformService loanReadPlatformService,
+            GSIMRepositoy gsimRepository, ConfigurationDomainService 
configurationDomainService, ExternalIdFactory externalIdFactory,
+            FineractProperties fineractProperties) {
+        return new 
AccountTransfersWritePlatformServiceImpl(accountTransfersDataValidator, 
accountTransferAssembler,
+                accountTransferRepository, savingsAccountAssembler, 
savingsAccountDomainService, loanAccountAssembler,
+                loanAccountDomainService, savingsAccountWritePlatformService, 
accountTransferDetailRepository, loanReadPlatformService,
+                gsimRepository, configurationDomainService, externalIdFactory, 
fineractProperties);
+    }
+
+    @Bean
+    @ConditionalOnMissingBean(PortfolioAccountReadPlatformService.class)
+    public PortfolioAccountReadPlatformService 
portfolioAccountReadPlatformService(JdbcTemplate jdbcTemplate,
+            DatabaseSpecificSQLGenerator sqlGenerator) {
+        return new PortfolioAccountReadPlatformServiceImpl(jdbcTemplate, 
sqlGenerator);
+    }
+
+    @Bean
+    
@ConditionalOnMissingBean(StandingInstructionHistoryReadPlatformService.class)
+    public StandingInstructionHistoryReadPlatformService 
standingInstructionHistoryReadPlatformService(JdbcTemplate jdbcTemplate,
+            ColumnValidator columnValidator, DatabaseSpecificSQLGenerator 
sqlGenerator, PaginationHelper paginationHelper) {
+        return new 
StandingInstructionHistoryReadPlatformServiceImpl(jdbcTemplate, 
columnValidator, sqlGenerator, paginationHelper);
+    }
+
+    @Bean
+    @ConditionalOnMissingBean(StandingInstructionReadPlatformService.class)
+    public StandingInstructionReadPlatformService 
standingInstructionReadPlatformService(JdbcTemplate jdbcTemplate,
+            ClientReadPlatformService clientReadPlatformService, 
OfficeReadPlatformService officeReadPlatformService,
+            PortfolioAccountReadPlatformService 
portfolioAccountReadPlatformService,
+            DropdownReadPlatformService dropdownReadPlatformService, 
ColumnValidator columnValidator,
+            DatabaseSpecificSQLGenerator sqlGenerator, PaginationHelper 
paginationHelper) {
+        return new StandingInstructionReadPlatformServiceImpl(jdbcTemplate, 
clientReadPlatformService, officeReadPlatformService,
+                portfolioAccountReadPlatformService, 
dropdownReadPlatformService, columnValidator, sqlGenerator, paginationHelper);
+    }
+
+    @Bean
+    @ConditionalOnMissingBean(StandingInstructionWritePlatformService.class)
+    public StandingInstructionWritePlatformService 
standingInstructionWritePlatformService(
+            StandingInstructionDataValidator standingInstructionDataValidator, 
StandingInstructionAssembler standingInstructionAssembler,
+            AccountTransferDetailRepository accountTransferDetailRepository, 
StandingInstructionRepository standingInstructionRepository) {
+        return new 
StandingInstructionWritePlatformServiceImpl(standingInstructionDataValidator, 
standingInstructionAssembler,
+                accountTransferDetailRepository, 
standingInstructionRepository);
+    }
+}

Reply via email to