This is an automated email from the ASF dual-hosted git repository.
aleks 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 311eb875b FINERACT-1932: Add custom Configuration class for
self-pockets module
311eb875b is described below
commit 311eb875b3f5c97c191b12dc944c2db78c7feed9
Author: Mohamed Magdi-Abdelmonem <[email protected]>
AuthorDate: Wed Sep 6 20:14:24 2023 +0300
FINERACT-1932: Add custom Configuration class for self-pockets module
---
.../service/AccountEntityServiceFactory.java | 6 --
.../service/AccountEntityServiceForLoanImpl.java | 15 +--
.../AccountEntityServiceForSavingsImpl.java | 16 +---
.../AccountEntityServiceForShareAccountsImpl.java | 14 +--
...ocketAccountMappingReadPlatformServiceImpl.java | 15 +--
.../service/PocketWritePlatformServiceImpl.java | 18 +---
.../pockets/starter/SelfPocketsConfiguration.java | 102 +++++++++++++++++++++
7 files changed, 112 insertions(+), 74 deletions(-)
diff --git
a/fineract-provider/src/main/java/org/apache/fineract/portfolio/self/pockets/service/AccountEntityServiceFactory.java
b/fineract-provider/src/main/java/org/apache/fineract/portfolio/self/pockets/service/AccountEntityServiceFactory.java
index a3427e61b..21d665861 100644
---
a/fineract-provider/src/main/java/org/apache/fineract/portfolio/self/pockets/service/AccountEntityServiceFactory.java
+++
b/fineract-provider/src/main/java/org/apache/fineract/portfolio/self/pockets/service/AccountEntityServiceFactory.java
@@ -22,17 +22,11 @@ package org.apache.fineract.portfolio.self.pockets.service;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.context.annotation.Scope;
-import org.springframework.stereotype.Component;
-@Component
-@Scope("singleton")
public class AccountEntityServiceFactory {
private Map<String, AccountEntityService> accountEntityServiceHashMap =
new HashMap<>();
- @Autowired
public AccountEntityServiceFactory(final Set<AccountEntityService>
accountEntityServices) {
for (AccountEntityService service : accountEntityServices) {
this.accountEntityServiceHashMap.put(service.getKey(), service);
diff --git
a/fineract-provider/src/main/java/org/apache/fineract/portfolio/self/pockets/service/AccountEntityServiceForLoanImpl.java
b/fineract-provider/src/main/java/org/apache/fineract/portfolio/self/pockets/service/AccountEntityServiceForLoanImpl.java
index 120b83013..b16d9b27d 100644
---
a/fineract-provider/src/main/java/org/apache/fineract/portfolio/self/pockets/service/AccountEntityServiceForLoanImpl.java
+++
b/fineract-provider/src/main/java/org/apache/fineract/portfolio/self/pockets/service/AccountEntityServiceForLoanImpl.java
@@ -19,15 +19,14 @@
package org.apache.fineract.portfolio.self.pockets.service;
+import lombok.RequiredArgsConstructor;
import
org.apache.fineract.infrastructure.accountnumberformat.domain.EntityAccountType;
import
org.apache.fineract.infrastructure.security.service.PlatformSecurityContext;
import
org.apache.fineract.portfolio.loanaccount.exception.LoanNotFoundException;
import
org.apache.fineract.portfolio.loanaccount.service.LoanReadPlatformService;
import
org.apache.fineract.portfolio.self.loanaccount.service.AppuserLoansMapperReadService;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-@Service
+@RequiredArgsConstructor
public class AccountEntityServiceForLoanImpl implements AccountEntityService {
private static final String KEY = EntityAccountType.LOAN.name();
@@ -36,16 +35,6 @@ public class AccountEntityServiceForLoanImpl implements
AccountEntityService {
private final AppuserLoansMapperReadService appuserLoansMapperReadService;
private final LoanReadPlatformService loanReadPlatformService;
- @Autowired
- public AccountEntityServiceForLoanImpl(final PlatformSecurityContext
context,
- final AppuserLoansMapperReadService appuserLoansMapperReadService,
final LoanReadPlatformService loanReadPlatformService) {
-
- this.context = context;
- this.appuserLoansMapperReadService = appuserLoansMapperReadService;
- this.loanReadPlatformService = loanReadPlatformService;
-
- }
-
@Override
public String getKey() {
return KEY;
diff --git
a/fineract-provider/src/main/java/org/apache/fineract/portfolio/self/pockets/service/AccountEntityServiceForSavingsImpl.java
b/fineract-provider/src/main/java/org/apache/fineract/portfolio/self/pockets/service/AccountEntityServiceForSavingsImpl.java
index 7cb5503df..8d772ec1b 100644
---
a/fineract-provider/src/main/java/org/apache/fineract/portfolio/self/pockets/service/AccountEntityServiceForSavingsImpl.java
+++
b/fineract-provider/src/main/java/org/apache/fineract/portfolio/self/pockets/service/AccountEntityServiceForSavingsImpl.java
@@ -19,15 +19,14 @@
package org.apache.fineract.portfolio.self.pockets.service;
+import lombok.RequiredArgsConstructor;
import
org.apache.fineract.infrastructure.accountnumberformat.domain.EntityAccountType;
import
org.apache.fineract.infrastructure.security.service.PlatformSecurityContext;
import
org.apache.fineract.portfolio.savings.exception.SavingsAccountNotFoundException;
import
org.apache.fineract.portfolio.savings.service.SavingsAccountReadPlatformService;
import
org.apache.fineract.portfolio.self.savings.service.AppuserSavingsMapperReadService;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-@Service
+@RequiredArgsConstructor
public class AccountEntityServiceForSavingsImpl implements
AccountEntityService {
private static final String KEY = EntityAccountType.SAVINGS.name();
@@ -36,17 +35,6 @@ public class AccountEntityServiceForSavingsImpl implements
AccountEntityService
private final AppuserSavingsMapperReadService
appuserSavingsMapperReadService;
private final SavingsAccountReadPlatformService
savingsAccountReadPlatformService;
- @Autowired
- public AccountEntityServiceForSavingsImpl(final PlatformSecurityContext
context,
- final AppuserSavingsMapperReadService
appuserSavingsMapperReadService,
- final SavingsAccountReadPlatformService
savingsAccountReadPlatformService) {
-
- this.context = context;
- this.appuserSavingsMapperReadService = appuserSavingsMapperReadService;
- this.savingsAccountReadPlatformService =
savingsAccountReadPlatformService;
-
- }
-
@Override
public String getKey() {
return KEY;
diff --git
a/fineract-provider/src/main/java/org/apache/fineract/portfolio/self/pockets/service/AccountEntityServiceForShareAccountsImpl.java
b/fineract-provider/src/main/java/org/apache/fineract/portfolio/self/pockets/service/AccountEntityServiceForShareAccountsImpl.java
index a2e56a043..8fb326951 100644
---
a/fineract-provider/src/main/java/org/apache/fineract/portfolio/self/pockets/service/AccountEntityServiceForShareAccountsImpl.java
+++
b/fineract-provider/src/main/java/org/apache/fineract/portfolio/self/pockets/service/AccountEntityServiceForShareAccountsImpl.java
@@ -19,15 +19,14 @@
package org.apache.fineract.portfolio.self.pockets.service;
+import lombok.RequiredArgsConstructor;
import
org.apache.fineract.infrastructure.accountnumberformat.domain.EntityAccountType;
import
org.apache.fineract.infrastructure.security.service.PlatformSecurityContext;
import
org.apache.fineract.portfolio.accounts.exceptions.ShareAccountNotFoundException;
import
org.apache.fineract.portfolio.self.shareaccounts.service.AppUserShareAccountsMapperReadPlatformService;
import
org.apache.fineract.portfolio.shareaccounts.service.ShareAccountReadPlatformService;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-@Service
+@RequiredArgsConstructor
public class AccountEntityServiceForShareAccountsImpl implements
AccountEntityService {
private static final String KEY = EntityAccountType.SHARES.name();
@@ -36,15 +35,6 @@ public class AccountEntityServiceForShareAccountsImpl
implements AccountEntitySe
private final AppUserShareAccountsMapperReadPlatformService
appUserShareAccountsMapperReadPlatformService;
private final ShareAccountReadPlatformService
shareAccountReadPlatformService;
- @Autowired
- public AccountEntityServiceForShareAccountsImpl(final
PlatformSecurityContext context,
- final AppUserShareAccountsMapperReadPlatformService
appUserShareAccountsMapperReadPlatformService,
- final ShareAccountReadPlatformService
shareAccountReadPlatformService) {
- this.context = context;
- this.appUserShareAccountsMapperReadPlatformService =
appUserShareAccountsMapperReadPlatformService;
- this.shareAccountReadPlatformService = shareAccountReadPlatformService;
- }
-
@Override
public String getKey() {
return KEY;
diff --git
a/fineract-provider/src/main/java/org/apache/fineract/portfolio/self/pockets/service/PocketAccountMappingReadPlatformServiceImpl.java
b/fineract-provider/src/main/java/org/apache/fineract/portfolio/self/pockets/service/PocketAccountMappingReadPlatformServiceImpl.java
index 1c534767a..3f4d29b20 100644
---
a/fineract-provider/src/main/java/org/apache/fineract/portfolio/self/pockets/service/PocketAccountMappingReadPlatformServiceImpl.java
+++
b/fineract-provider/src/main/java/org/apache/fineract/portfolio/self/pockets/service/PocketAccountMappingReadPlatformServiceImpl.java
@@ -20,17 +20,16 @@ package org.apache.fineract.portfolio.self.pockets.service;
import java.util.ArrayList;
import java.util.Collection;
+import lombok.RequiredArgsConstructor;
import
org.apache.fineract.infrastructure.accountnumberformat.domain.EntityAccountType;
import
org.apache.fineract.infrastructure.security.service.PlatformSecurityContext;
import
org.apache.fineract.portfolio.self.pockets.data.PocketAccountMappingData;
import org.apache.fineract.portfolio.self.pockets.domain.PocketAccountMapping;
import
org.apache.fineract.portfolio.self.pockets.domain.PocketAccountMappingRepositoryWrapper;
import
org.apache.fineract.portfolio.self.pockets.domain.PocketRepositoryWrapper;
-import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.JdbcTemplate;
-import org.springframework.stereotype.Service;
-@Service
+@RequiredArgsConstructor
public class PocketAccountMappingReadPlatformServiceImpl implements
PocketAccountMappingReadPlatformService {
private final JdbcTemplate jdbcTemplate;
@@ -38,16 +37,6 @@ public class PocketAccountMappingReadPlatformServiceImpl
implements PocketAccoun
private final PocketRepositoryWrapper pocketRepositoryWrapper;
private final PocketAccountMappingRepositoryWrapper
pocketAccountMappingRepositoryWrapper;
- @Autowired
- public PocketAccountMappingReadPlatformServiceImpl(final JdbcTemplate
jdbcTemplate, final PlatformSecurityContext context,
- final PocketRepositoryWrapper pocketRepositoryWrapper,
- final PocketAccountMappingRepositoryWrapper
pocketAccountMappingRepositoryWrapper) {
- this.jdbcTemplate = jdbcTemplate;
- this.context = context;
- this.pocketRepositoryWrapper = pocketRepositoryWrapper;
- this.pocketAccountMappingRepositoryWrapper =
pocketAccountMappingRepositoryWrapper;
- }
-
@Override
public PocketAccountMappingData retrieveAll() {
final Long pocketId =
this.pocketRepositoryWrapper.findByAppUserId(this.context.authenticatedUser().getId());
diff --git
a/fineract-provider/src/main/java/org/apache/fineract/portfolio/self/pockets/service/PocketWritePlatformServiceImpl.java
b/fineract-provider/src/main/java/org/apache/fineract/portfolio/self/pockets/service/PocketWritePlatformServiceImpl.java
index 34c30cde5..1a9646bcb 100644
---
a/fineract-provider/src/main/java/org/apache/fineract/portfolio/self/pockets/service/PocketWritePlatformServiceImpl.java
+++
b/fineract-provider/src/main/java/org/apache/fineract/portfolio/self/pockets/service/PocketWritePlatformServiceImpl.java
@@ -24,6 +24,7 @@ import com.google.gson.JsonElement;
import com.google.gson.JsonObject;
import java.util.ArrayList;
import java.util.List;
+import lombok.RequiredArgsConstructor;
import
org.apache.fineract.infrastructure.accountnumberformat.domain.EntityAccountType;
import org.apache.fineract.infrastructure.core.api.JsonCommand;
import org.apache.fineract.infrastructure.core.data.CommandProcessingResult;
@@ -36,11 +37,9 @@ import
org.apache.fineract.portfolio.self.pockets.domain.Pocket;
import org.apache.fineract.portfolio.self.pockets.domain.PocketAccountMapping;
import
org.apache.fineract.portfolio.self.pockets.domain.PocketAccountMappingRepositoryWrapper;
import
org.apache.fineract.portfolio.self.pockets.domain.PocketRepositoryWrapper;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
-@Service
+@RequiredArgsConstructor
public class PocketWritePlatformServiceImpl implements
PocketWritePlatformService {
private final PlatformSecurityContext context;
@@ -50,19 +49,6 @@ public class PocketWritePlatformServiceImpl implements
PocketWritePlatformServic
private final PocketAccountMappingRepositoryWrapper
pocketAccountMappingRepositoryWrapper;
private final PocketAccountMappingReadPlatformService
pocketAccountMappingReadPlatformService;
- @Autowired
- public PocketWritePlatformServiceImpl(final PlatformSecurityContext
context, PocketDataValidator pocketDataValidator,
- final AccountEntityServiceFactory accountEntityServiceFactory,
final PocketRepositoryWrapper pocketRepositoryWrapper,
- final PocketAccountMappingRepositoryWrapper
pocketAccountMappingRepositoryWrapper,
- final PocketAccountMappingReadPlatformService
pocketAccountMappingReadPlatformService) {
- this.context = context;
- this.pocketDataValidator = pocketDataValidator;
- this.accountEntityServiceFactory = accountEntityServiceFactory;
- this.pocketRepositoryWrapper = pocketRepositoryWrapper;
- this.pocketAccountMappingRepositoryWrapper =
pocketAccountMappingRepositoryWrapper;
- this.pocketAccountMappingReadPlatformService =
pocketAccountMappingReadPlatformService;
- }
-
@Transactional
@Override
public CommandProcessingResult linkAccounts(JsonCommand command) {
diff --git
a/fineract-provider/src/main/java/org/apache/fineract/portfolio/self/pockets/starter/SelfPocketsConfiguration.java
b/fineract-provider/src/main/java/org/apache/fineract/portfolio/self/pockets/starter/SelfPocketsConfiguration.java
new file mode 100644
index 000000000..8d8245c40
--- /dev/null
+++
b/fineract-provider/src/main/java/org/apache/fineract/portfolio/self/pockets/starter/SelfPocketsConfiguration.java
@@ -0,0 +1,102 @@
+/**
+ * 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.self.pockets.starter;
+
+import java.util.Set;
+import
org.apache.fineract.infrastructure.security.service.PlatformSecurityContext;
+import
org.apache.fineract.portfolio.loanaccount.service.LoanReadPlatformService;
+import
org.apache.fineract.portfolio.savings.service.SavingsAccountReadPlatformService;
+import
org.apache.fineract.portfolio.self.loanaccount.service.AppuserLoansMapperReadService;
+import org.apache.fineract.portfolio.self.pockets.data.PocketDataValidator;
+import
org.apache.fineract.portfolio.self.pockets.domain.PocketAccountMappingRepositoryWrapper;
+import
org.apache.fineract.portfolio.self.pockets.domain.PocketRepositoryWrapper;
+import org.apache.fineract.portfolio.self.pockets.service.AccountEntityService;
+import
org.apache.fineract.portfolio.self.pockets.service.AccountEntityServiceFactory;
+import
org.apache.fineract.portfolio.self.pockets.service.AccountEntityServiceForLoanImpl;
+import
org.apache.fineract.portfolio.self.pockets.service.AccountEntityServiceForSavingsImpl;
+import
org.apache.fineract.portfolio.self.pockets.service.AccountEntityServiceForShareAccountsImpl;
+import
org.apache.fineract.portfolio.self.pockets.service.PocketAccountMappingReadPlatformService;
+import
org.apache.fineract.portfolio.self.pockets.service.PocketAccountMappingReadPlatformServiceImpl;
+import
org.apache.fineract.portfolio.self.pockets.service.PocketWritePlatformService;
+import
org.apache.fineract.portfolio.self.pockets.service.PocketWritePlatformServiceImpl;
+import
org.apache.fineract.portfolio.self.savings.service.AppuserSavingsMapperReadService;
+import
org.apache.fineract.portfolio.self.shareaccounts.service.AppUserShareAccountsMapperReadPlatformService;
+import
org.apache.fineract.portfolio.shareaccounts.service.ShareAccountReadPlatformService;
+import
org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.context.annotation.Scope;
+import org.springframework.jdbc.core.JdbcTemplate;
+
+@Configuration
+public class SelfPocketsConfiguration {
+
+ @Bean
+ @Scope("singleton")
+ @ConditionalOnMissingBean(AccountEntityServiceFactory.class)
+ public AccountEntityServiceFactory
accountEntityServiceFactory(Set<AccountEntityService> accountEntityServices) {
+ return new AccountEntityServiceFactory(accountEntityServices);
+ }
+
+ @Bean
+ @ConditionalOnMissingBean(AccountEntityServiceForLoanImpl.class)
+ public AccountEntityService
accountEntityServiceForLoanImpl(PlatformSecurityContext context,
+ AppuserLoansMapperReadService appuserLoansMapperReadService,
LoanReadPlatformService loanReadPlatformService) {
+
+ return new AccountEntityServiceForLoanImpl(context,
appuserLoansMapperReadService, loanReadPlatformService);
+
+ }
+
+ @Bean
+ @ConditionalOnMissingBean(AccountEntityServiceForSavingsImpl.class)
+ public AccountEntityService
accountEntityServiceForSavingsImpl(PlatformSecurityContext context,
+ AppuserSavingsMapperReadService appuserSavingsMapperReadService,
+ SavingsAccountReadPlatformService
savingsAccountReadPlatformService) {
+
+ return new AccountEntityServiceForSavingsImpl(context,
appuserSavingsMapperReadService, savingsAccountReadPlatformService);
+ }
+
+ @Bean
+ @ConditionalOnMissingBean(AccountEntityServiceForShareAccountsImpl.class)
+ public AccountEntityService
accountEntityServiceForShareAccountsImpl(PlatformSecurityContext context,
+ AppUserShareAccountsMapperReadPlatformService
appUserShareAccountsMapperReadPlatformService,
+ ShareAccountReadPlatformService shareAccountReadPlatformService) {
+ return new AccountEntityServiceForShareAccountsImpl(context,
appUserShareAccountsMapperReadPlatformService,
+ shareAccountReadPlatformService);
+ }
+
+ @Bean
+ @ConditionalOnMissingBean(PocketAccountMappingReadPlatformService.class)
+ public PocketAccountMappingReadPlatformService
pocketAccountMappingReadPlatformService(JdbcTemplate jdbcTemplate,
+ PlatformSecurityContext context, PocketRepositoryWrapper
pocketRepositoryWrapper,
+ PocketAccountMappingRepositoryWrapper
pocketAccountMappingRepositoryWrapper) {
+ return new PocketAccountMappingReadPlatformServiceImpl(jdbcTemplate,
context, pocketRepositoryWrapper,
+ pocketAccountMappingRepositoryWrapper);
+ }
+
+ @Bean
+ @ConditionalOnMissingBean(PocketWritePlatformService.class)
+ public PocketWritePlatformService
pocketWritePlatformService(PlatformSecurityContext context, PocketDataValidator
pocketDataValidator,
+ AccountEntityServiceFactory accountEntityServiceFactory,
PocketRepositoryWrapper pocketRepositoryWrapper,
+ PocketAccountMappingRepositoryWrapper
pocketAccountMappingRepositoryWrapper,
+ PocketAccountMappingReadPlatformService
pocketAccountMappingReadPlatformService) {
+ return new PocketWritePlatformServiceImpl(context,
pocketDataValidator, accountEntityServiceFactory, pocketRepositoryWrapper,
+ pocketAccountMappingRepositoryWrapper,
pocketAccountMappingReadPlatformService);
+ }
+}