diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/delinquency/service/DelinquencyReadPlatformServiceImpl.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/delinquency/service/DelinquencyReadPlatformServiceImpl.java index 40d13a5b801..c98b493277a 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/delinquency/service/DelinquencyReadPlatformServiceImpl.java +++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/delinquency/service/DelinquencyReadPlatformServiceImpl.java @@ -38,11 +38,9 @@ import org.apache.fineract.portfolio.loanaccount.domain.Loan; import org.apache.fineract.portfolio.loanaccount.domain.LoanRepository; import org.apache.fineract.portfolio.loanaccount.domain.LoanTransaction; -import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @RequiredArgsConstructor -@Service @Transactional(readOnly = true) public class DelinquencyReadPlatformServiceImpl implements DelinquencyReadPlatformService { diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/delinquency/service/DelinquencyWritePlatformServiceImpl.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/delinquency/service/DelinquencyWritePlatformServiceImpl.java index 45898c9c6b3..883a4780867 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/delinquency/service/DelinquencyWritePlatformServiceImpl.java +++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/delinquency/service/DelinquencyWritePlatformServiceImpl.java @@ -55,9 +55,7 @@ import org.apache.fineract.portfolio.loanaccount.domain.Loan; import org.apache.fineract.portfolio.loanaccount.domain.LoanRepositoryWrapper; import org.apache.fineract.portfolio.loanproduct.domain.LoanProductRepository; -import org.springframework.stereotype.Service; -@Service @RequiredArgsConstructor @Slf4j public class DelinquencyWritePlatformServiceImpl implements DelinquencyWritePlatformService { diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/delinquency/service/LoanDelinquencyDomainServiceImpl.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/delinquency/service/LoanDelinquencyDomainServiceImpl.java index 13507cf59dd..099e20b8163 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/delinquency/service/LoanDelinquencyDomainServiceImpl.java +++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/delinquency/service/LoanDelinquencyDomainServiceImpl.java @@ -29,11 +29,9 @@ import org.apache.fineract.portfolio.loanaccount.domain.Loan; import org.apache.fineract.portfolio.loanaccount.domain.LoanRepaymentScheduleInstallment; import org.apache.fineract.portfolio.loanaccount.domain.LoanTransaction; -import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @Slf4j -@Service public class LoanDelinquencyDomainServiceImpl implements LoanDelinquencyDomainService { @Override diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/delinquency/starter/DelinquencyConfiguration.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/delinquency/starter/DelinquencyConfiguration.java new file mode 100644 index 00000000000..40131394bbf --- /dev/null +++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/delinquency/starter/DelinquencyConfiguration.java @@ -0,0 +1,76 @@ +/** + * 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.delinquency.starter; + +import org.apache.fineract.infrastructure.event.business.service.BusinessEventNotifierService; +import org.apache.fineract.portfolio.delinquency.domain.DelinquencyBucketMappingsRepository; +import org.apache.fineract.portfolio.delinquency.domain.DelinquencyBucketRepository; +import org.apache.fineract.portfolio.delinquency.domain.DelinquencyRangeRepository; +import org.apache.fineract.portfolio.delinquency.domain.LoanDelinquencyTagHistoryRepository; +import org.apache.fineract.portfolio.delinquency.mapper.DelinquencyBucketMapper; +import org.apache.fineract.portfolio.delinquency.mapper.DelinquencyRangeMapper; +import org.apache.fineract.portfolio.delinquency.mapper.LoanDelinquencyTagMapper; +import org.apache.fineract.portfolio.delinquency.service.DelinquencyReadPlatformService; +import org.apache.fineract.portfolio.delinquency.service.DelinquencyReadPlatformServiceImpl; +import org.apache.fineract.portfolio.delinquency.service.DelinquencyWritePlatformService; +import org.apache.fineract.portfolio.delinquency.service.DelinquencyWritePlatformServiceImpl; +import org.apache.fineract.portfolio.delinquency.service.LoanDelinquencyDomainService; +import org.apache.fineract.portfolio.delinquency.service.LoanDelinquencyDomainServiceImpl; +import org.apache.fineract.portfolio.delinquency.validator.DelinquencyBucketParseAndValidator; +import org.apache.fineract.portfolio.delinquency.validator.DelinquencyRangeParseAndValidator; +import org.apache.fineract.portfolio.loanaccount.domain.LoanRepository; +import org.apache.fineract.portfolio.loanaccount.domain.LoanRepositoryWrapper; +import org.apache.fineract.portfolio.loanproduct.domain.LoanProductRepository; +import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +@Configuration +public class DelinquencyConfiguration { + + @Bean + @ConditionalOnMissingBean(DelinquencyReadPlatformService.class) + public DelinquencyReadPlatformService delinquencyReadPlatformService(DelinquencyRangeRepository repositoryRange, + DelinquencyBucketRepository repositoryBucket, LoanDelinquencyTagHistoryRepository repositoryLoanDelinquencyTagHistory, + DelinquencyRangeMapper mapperRange, DelinquencyBucketMapper mapperBucket, + LoanDelinquencyTagMapper mapperLoanDelinquencyTagHistory, LoanRepository loanRepository, + LoanDelinquencyDomainService loanDelinquencyDomainService) { + return new DelinquencyReadPlatformServiceImpl(repositoryRange, repositoryBucket, repositoryLoanDelinquencyTagHistory, mapperRange, + mapperBucket, mapperLoanDelinquencyTagHistory, loanRepository, loanDelinquencyDomainService); + } + + @Bean + @ConditionalOnMissingBean(DelinquencyWritePlatformService.class) + public DelinquencyWritePlatformService delinquencyWritePlatformService(DelinquencyBucketParseAndValidator dataValidatorBucket, + DelinquencyRangeParseAndValidator dataValidatorRange, DelinquencyRangeRepository repositoryRange, + DelinquencyBucketRepository repositoryBucket, DelinquencyBucketMappingsRepository repositoryBucketMappings, + LoanDelinquencyTagHistoryRepository loanDelinquencyTagRepository, LoanRepositoryWrapper loanRepository, + LoanProductRepository loanProductRepository, BusinessEventNotifierService businessEventNotifierService, + LoanDelinquencyDomainService loanDelinquencyDomainService) { + return new DelinquencyWritePlatformServiceImpl(dataValidatorBucket, dataValidatorRange, repositoryRange, repositoryBucket, + repositoryBucketMappings, loanDelinquencyTagRepository, loanRepository, loanProductRepository, businessEventNotifierService, + loanDelinquencyDomainService); + } + + @Bean + @ConditionalOnMissingBean(LoanDelinquencyDomainService.class) + public LoanDelinquencyDomainService loanDelinquencyDomainService() { + return new LoanDelinquencyDomainServiceImpl(); + } +}