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 f11808eba FINERACT-1932: Add custom Configuration class for
shareaccounts services
f11808eba is described below
commit f11808eba751ef3895a5c3eba76d60e044dbc6c6
Author: Mohamed Magdi-Abdelmonem <[email protected]>
AuthorDate: Sun Aug 27 16:43:26 2023 +0300
FINERACT-1932: Add custom Configuration class for shareaccounts services
---
.../PurchasedSharesReadPlatformServiceImpl.java | 10 +-
.../ShareAccountChargeReadPlatformServiceImpl.java | 10 +-
.../service/ShareAccountCommandsServiceImpl.java | 12 +-
...hareAccountDividendReadPlatformServiceImpl.java | 14 +--
.../ShareAccountReadPlatformServiceImpl.java | 27 +----
.../service/ShareAccountSchedularServiceImpl.java | 13 +--
...countWritePlatformServiceJpaRepositoryImpl.java | 21 +---
.../start/ShareAccountsConfiguration.java | 123 +++++++++++++++++++++
8 files changed, 137 insertions(+), 93 deletions(-)
diff --git
a/fineract-provider/src/main/java/org/apache/fineract/portfolio/shareaccounts/service/PurchasedSharesReadPlatformServiceImpl.java
b/fineract-provider/src/main/java/org/apache/fineract/portfolio/shareaccounts/service/PurchasedSharesReadPlatformServiceImpl.java
index 404ab00a2..e9c961ebf 100644
---
a/fineract-provider/src/main/java/org/apache/fineract/portfolio/shareaccounts/service/PurchasedSharesReadPlatformServiceImpl.java
+++
b/fineract-provider/src/main/java/org/apache/fineract/portfolio/shareaccounts/service/PurchasedSharesReadPlatformServiceImpl.java
@@ -23,24 +23,18 @@ import java.sql.ResultSet;
import java.sql.SQLException;
import java.time.LocalDate;
import java.util.Collection;
+import lombok.RequiredArgsConstructor;
import org.apache.fineract.infrastructure.core.data.EnumOptionData;
import org.apache.fineract.infrastructure.core.domain.JdbcSupport;
import
org.apache.fineract.portfolio.shareaccounts.data.ShareAccountTransactionData;
-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
+@RequiredArgsConstructor
public class PurchasedSharesReadPlatformServiceImpl implements
PurchasedSharesReadPlatformService {
private final JdbcTemplate jdbcTemplate;
- @Autowired
- public PurchasedSharesReadPlatformServiceImpl(final JdbcTemplate
jdbcTemplate) {
- this.jdbcTemplate = jdbcTemplate;
- }
-
@Override
public Collection<ShareAccountTransactionData>
retrievePurchasedShares(Long accountId) {
PurchasedSharesDataRowMapper mapper = new
PurchasedSharesDataRowMapper();
diff --git
a/fineract-provider/src/main/java/org/apache/fineract/portfolio/shareaccounts/service/ShareAccountChargeReadPlatformServiceImpl.java
b/fineract-provider/src/main/java/org/apache/fineract/portfolio/shareaccounts/service/ShareAccountChargeReadPlatformServiceImpl.java
index ad6e39597..8c43a211a 100644
---
a/fineract-provider/src/main/java/org/apache/fineract/portfolio/shareaccounts/service/ShareAccountChargeReadPlatformServiceImpl.java
+++
b/fineract-provider/src/main/java/org/apache/fineract/portfolio/shareaccounts/service/ShareAccountChargeReadPlatformServiceImpl.java
@@ -22,27 +22,21 @@ import java.math.BigDecimal;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Collection;
+import lombok.RequiredArgsConstructor;
import org.apache.fineract.infrastructure.core.data.EnumOptionData;
import org.apache.fineract.infrastructure.core.domain.JdbcSupport;
import org.apache.fineract.organisation.monetary.data.CurrencyData;
import org.apache.fineract.portfolio.charge.data.ChargeData;
import org.apache.fineract.portfolio.charge.service.ChargeEnumerations;
import org.apache.fineract.portfolio.shareaccounts.data.ShareAccountChargeData;
-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
+@RequiredArgsConstructor
public class ShareAccountChargeReadPlatformServiceImpl implements
ShareAccountChargeReadPlatformService {
private final JdbcTemplate jdbcTemplate;
- @Autowired
- public ShareAccountChargeReadPlatformServiceImpl(final JdbcTemplate
jdbcTemplate) {
- this.jdbcTemplate = jdbcTemplate;
- }
-
@Override
public Collection<ShareAccountChargeData> retrieveAccountCharges(Long
accountId, String status) {
final ShareAccountChargeMapper rm = new ShareAccountChargeMapper();
diff --git
a/fineract-provider/src/main/java/org/apache/fineract/portfolio/shareaccounts/service/ShareAccountCommandsServiceImpl.java
b/fineract-provider/src/main/java/org/apache/fineract/portfolio/shareaccounts/service/ShareAccountCommandsServiceImpl.java
index 04fdadb3f..24b52b410 100644
---
a/fineract-provider/src/main/java/org/apache/fineract/portfolio/shareaccounts/service/ShareAccountCommandsServiceImpl.java
+++
b/fineract-provider/src/main/java/org/apache/fineract/portfolio/shareaccounts/service/ShareAccountCommandsServiceImpl.java
@@ -19,29 +19,21 @@
package org.apache.fineract.portfolio.shareaccounts.service;
import com.google.gson.JsonElement;
+import lombok.RequiredArgsConstructor;
import org.apache.fineract.infrastructure.core.api.JsonCommand;
import org.apache.fineract.infrastructure.core.data.CommandProcessingResult;
import org.apache.fineract.infrastructure.core.serialization.FromJsonHelper;
import
org.apache.fineract.portfolio.accounts.constants.ShareAccountApiConstants;
import org.apache.fineract.portfolio.accounts.service.AccountsCommandsService;
import
org.apache.fineract.portfolio.shareaccounts.serialization.ShareAccountDataSerializer;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-@Service(value = "SHAREACCOUNT_COMMANDSERVICE")
+@RequiredArgsConstructor
public class ShareAccountCommandsServiceImpl implements
AccountsCommandsService {
private final FromJsonHelper fromApiJsonHelper;
private final ShareAccountDataSerializer shareAccountDataSerializer;
- @Autowired
- public ShareAccountCommandsServiceImpl(final FromJsonHelper
fromApiJsonHelper,
- final ShareAccountDataSerializer shareAccountDataSerializer) {
- this.fromApiJsonHelper = fromApiJsonHelper;
- this.shareAccountDataSerializer = shareAccountDataSerializer;
- }
-
@Override
public Object handleCommand(Long accountId, String command, String
jsonBody) {
final JsonElement parsedCommand =
this.fromApiJsonHelper.parse(jsonBody);
diff --git
a/fineract-provider/src/main/java/org/apache/fineract/portfolio/shareaccounts/service/ShareAccountDividendReadPlatformServiceImpl.java
b/fineract-provider/src/main/java/org/apache/fineract/portfolio/shareaccounts/service/ShareAccountDividendReadPlatformServiceImpl.java
index 6f03922db..25a36c17f 100644
---
a/fineract-provider/src/main/java/org/apache/fineract/portfolio/shareaccounts/service/ShareAccountDividendReadPlatformServiceImpl.java
+++
b/fineract-provider/src/main/java/org/apache/fineract/portfolio/shareaccounts/service/ShareAccountDividendReadPlatformServiceImpl.java
@@ -24,6 +24,7 @@ import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
+import lombok.RequiredArgsConstructor;
import org.apache.fineract.infrastructure.core.data.EnumOptionData;
import org.apache.fineract.infrastructure.core.domain.JdbcSupport;
import org.apache.fineract.infrastructure.core.service.Page;
@@ -35,12 +36,10 @@ import
org.apache.fineract.portfolio.shareaccounts.data.ShareAccountData;
import
org.apache.fineract.portfolio.shareaccounts.data.ShareAccountDividendData;
import
org.apache.fineract.portfolio.shareaccounts.domain.ShareAccountDividendStatusType;
import
org.apache.fineract.portfolio.shareproducts.domain.ShareProductDividendStatusType;
-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
+@RequiredArgsConstructor
public class ShareAccountDividendReadPlatformServiceImpl implements
ShareAccountDividendReadPlatformService {
private final JdbcTemplate jdbcTemplate;
@@ -48,15 +47,6 @@ public class ShareAccountDividendReadPlatformServiceImpl
implements ShareAccount
private final PaginationHelper paginationHelper;
private final DatabaseSpecificSQLGenerator sqlGenerator;
- @Autowired
- public ShareAccountDividendReadPlatformServiceImpl(final JdbcTemplate
jdbcTemplate, final ColumnValidator columnValidator,
- DatabaseSpecificSQLGenerator sqlGenerator, PaginationHelper
paginationHelper) {
- this.jdbcTemplate = jdbcTemplate;
- this.columnValidator = columnValidator;
- this.paginationHelper = paginationHelper;
- this.sqlGenerator = sqlGenerator;
- }
-
@Override
public List<Map<String, Object>> retriveDividendDetailsForPostDividents() {
StringBuilder sb = new StringBuilder();
diff --git
a/fineract-provider/src/main/java/org/apache/fineract/portfolio/shareaccounts/service/ShareAccountReadPlatformServiceImpl.java
b/fineract-provider/src/main/java/org/apache/fineract/portfolio/shareaccounts/service/ShareAccountReadPlatformServiceImpl.java
index efca2075b..7124ff789 100644
---
a/fineract-provider/src/main/java/org/apache/fineract/portfolio/shareaccounts/service/ShareAccountReadPlatformServiceImpl.java
+++
b/fineract-provider/src/main/java/org/apache/fineract/portfolio/shareaccounts/service/ShareAccountReadPlatformServiceImpl.java
@@ -28,6 +28,7 @@ import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import java.util.Set;
+import lombok.RequiredArgsConstructor;
import org.apache.fineract.infrastructure.core.data.EnumOptionData;
import org.apache.fineract.infrastructure.core.domain.JdbcSupport;
import org.apache.fineract.infrastructure.core.service.DateUtils;
@@ -36,7 +37,6 @@ import
org.apache.fineract.infrastructure.core.service.PaginationHelper;
import
org.apache.fineract.infrastructure.core.service.database.DatabaseSpecificSQLGenerator;
import org.apache.fineract.organisation.monetary.data.CurrencyData;
import
org.apache.fineract.portfolio.accountdetails.data.ShareAccountSummaryData;
-import org.apache.fineract.portfolio.accounts.constants.AccountsApiConstants;
import
org.apache.fineract.portfolio.accounts.constants.ShareAccountApiConstants;
import org.apache.fineract.portfolio.accounts.data.AccountData;
import
org.apache.fineract.portfolio.accounts.exceptions.ShareAccountNotFoundException;
@@ -62,14 +62,12 @@ import
org.apache.fineract.portfolio.shareaccounts.domain.ShareAccountStatusType
import org.apache.fineract.portfolio.shareproducts.data.ShareProductData;
import
org.apache.fineract.portfolio.shareproducts.data.ShareProductMarketPriceData;
import
org.apache.fineract.portfolio.shareproducts.service.ShareProductDropdownReadPlatformService;
-import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.ApplicationContext;
import org.springframework.dao.EmptyResultDataAccessException;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.core.RowMapper;
-import org.springframework.stereotype.Service;
-@Service(value = "share" + AccountsApiConstants.READPLATFORM_NAME)
+@RequiredArgsConstructor
public class ShareAccountReadPlatformServiceImpl implements
ShareAccountReadPlatformService {
private final ApplicationContext applicationContext;
@@ -84,27 +82,6 @@ public class ShareAccountReadPlatformServiceImpl implements
ShareAccountReadPlat
private final PaginationHelper shareAccountDataPaginationHelper;
private final DatabaseSpecificSQLGenerator sqlGenerator;
- @Autowired
- public ShareAccountReadPlatformServiceImpl(final JdbcTemplate
jdbcTemplate, final ApplicationContext applicationContext,
- final ChargeReadPlatformService chargeReadPlatformService,
- final ShareProductDropdownReadPlatformService
shareProductDropdownReadPlatformService,
- final SavingsAccountReadPlatformService
savingsAccountReadPlatformService,
- final ClientReadPlatformService clientReadPlatformService,
- final ShareAccountChargeReadPlatformService
shareAccountChargeReadPlatformService,
- final PurchasedSharesReadPlatformService
purchasedSharesReadPlatformService, DatabaseSpecificSQLGenerator sqlGenerator,
- PaginationHelper paginationHelper) {
- this.jdbcTemplate = jdbcTemplate;
- this.applicationContext = applicationContext;
- this.chargeReadPlatformService = chargeReadPlatformService;
- this.shareProductDropdownReadPlatformService =
shareProductDropdownReadPlatformService;
- this.savingsAccountReadPlatformService =
savingsAccountReadPlatformService;
- this.clientReadPlatformService = clientReadPlatformService;
- this.shareAccountChargeReadPlatformService =
shareAccountChargeReadPlatformService;
- this.purchasedSharesReadPlatformService =
purchasedSharesReadPlatformService;
- this.shareAccountDataPaginationHelper = paginationHelper;
- this.sqlGenerator = sqlGenerator;
- }
-
@Override
public ShareAccountData retrieveTemplate(Long clientId, Long productId) {
ShareAccountData toReturn = null;
diff --git
a/fineract-provider/src/main/java/org/apache/fineract/portfolio/shareaccounts/service/ShareAccountSchedularServiceImpl.java
b/fineract-provider/src/main/java/org/apache/fineract/portfolio/shareaccounts/service/ShareAccountSchedularServiceImpl.java
index 9460cc3bc..70d2c88e9 100644
---
a/fineract-provider/src/main/java/org/apache/fineract/portfolio/shareaccounts/service/ShareAccountSchedularServiceImpl.java
+++
b/fineract-provider/src/main/java/org/apache/fineract/portfolio/shareaccounts/service/ShareAccountSchedularServiceImpl.java
@@ -18,6 +18,7 @@
*/
package org.apache.fineract.portfolio.shareaccounts.service;
+import lombok.RequiredArgsConstructor;
import org.apache.fineract.infrastructure.core.service.DateUtils;
import org.apache.fineract.portfolio.savings.domain.SavingsAccount;
import org.apache.fineract.portfolio.savings.domain.SavingsAccountAssembler;
@@ -26,25 +27,15 @@ import
org.apache.fineract.portfolio.savings.domain.SavingsAccountTransaction;
import
org.apache.fineract.portfolio.shareaccounts.domain.ShareAccountDividendDetails;
import
org.apache.fineract.portfolio.shareaccounts.domain.ShareAccountDividendRepository;
import
org.apache.fineract.portfolio.shareaccounts.domain.ShareAccountDividendStatusType;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
-@Service
+@RequiredArgsConstructor
public class ShareAccountSchedularServiceImpl implements
ShareAccountSchedularService {
private final ShareAccountDividendRepository
shareAccountDividendRepository;
private final SavingsAccountDomainService savingsAccountDomainService;
private final SavingsAccountAssembler savingsAccountAssembler;
- @Autowired
- public ShareAccountSchedularServiceImpl(final
ShareAccountDividendRepository shareAccountDividendRepository,
- final SavingsAccountDomainService savingsAccountDomainService,
final SavingsAccountAssembler savingsAccountAssembler) {
- this.shareAccountDividendRepository = shareAccountDividendRepository;
- this.savingsAccountDomainService = savingsAccountDomainService;
- this.savingsAccountAssembler = savingsAccountAssembler;
- }
-
@Override
@Transactional
public void postDividend(final Long dividendDetailId, final Long
savingsId) {
diff --git
a/fineract-provider/src/main/java/org/apache/fineract/portfolio/shareaccounts/service/ShareAccountWritePlatformServiceJpaRepositoryImpl.java
b/fineract-provider/src/main/java/org/apache/fineract/portfolio/shareaccounts/service/ShareAccountWritePlatformServiceJpaRepositoryImpl.java
index 76c757039..a3aee3881 100644
---
a/fineract-provider/src/main/java/org/apache/fineract/portfolio/shareaccounts/service/ShareAccountWritePlatformServiceJpaRepositoryImpl.java
+++
b/fineract-provider/src/main/java/org/apache/fineract/portfolio/shareaccounts/service/ShareAccountWritePlatformServiceJpaRepositoryImpl.java
@@ -27,6 +27,7 @@ import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;
+import lombok.RequiredArgsConstructor;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.exception.ExceptionUtils;
import
org.apache.fineract.accounting.journalentry.service.JournalEntryWritePlatformService;
@@ -53,12 +54,10 @@ import
org.apache.fineract.portfolio.shareaccounts.domain.ShareAccountTransactio
import
org.apache.fineract.portfolio.shareaccounts.serialization.ShareAccountDataSerializer;
import org.apache.fineract.portfolio.shareproducts.domain.ShareProduct;
import
org.apache.fineract.portfolio.shareproducts.domain.ShareProductRepositoryWrapper;
-import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.dao.DataIntegrityViolationException;
import org.springframework.orm.jpa.JpaSystemException;
-import org.springframework.stereotype.Service;
-@Service
+@RequiredArgsConstructor
public class ShareAccountWritePlatformServiceJpaRepositoryImpl implements
ShareAccountWritePlatformService {
private final ShareAccountDataSerializer accountDataSerializer;
@@ -77,22 +76,6 @@ public class
ShareAccountWritePlatformServiceJpaRepositoryImpl implements ShareA
private final BusinessEventNotifierService businessEventNotifierService;
- @Autowired
- public ShareAccountWritePlatformServiceJpaRepositoryImpl(final
ShareAccountDataSerializer accountDataSerializer,
- final ShareAccountRepositoryWrapper shareAccountRepository, final
ShareProductRepositoryWrapper shareProductRepository,
- final AccountNumberGenerator accountNumberGenerator, final
AccountNumberFormatRepositoryWrapper accountNumberFormatRepository,
- final JournalEntryWritePlatformService
journalEntryWritePlatformService, final NoteRepository noteRepository,
- final BusinessEventNotifierService businessEventNotifierService) {
- this.accountDataSerializer = accountDataSerializer;
- this.shareAccountRepository = shareAccountRepository;
- this.shareProductRepository = shareProductRepository;
- this.accountNumberGenerator = accountNumberGenerator;
- this.accountNumberFormatRepository = accountNumberFormatRepository;
- this.journalEntryWritePlatformService =
journalEntryWritePlatformService;
- this.noteRepository = noteRepository;
- this.businessEventNotifierService = businessEventNotifierService;
- }
-
@Override
public CommandProcessingResult createShareAccount(JsonCommand jsonCommand)
{
try {
diff --git
a/fineract-provider/src/main/java/org/apache/fineract/portfolio/shareaccounts/start/ShareAccountsConfiguration.java
b/fineract-provider/src/main/java/org/apache/fineract/portfolio/shareaccounts/start/ShareAccountsConfiguration.java
new file mode 100644
index 000000000..cc5d2b38a
--- /dev/null
+++
b/fineract-provider/src/main/java/org/apache/fineract/portfolio/shareaccounts/start/ShareAccountsConfiguration.java
@@ -0,0 +1,123 @@
+/**
+ * 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.shareaccounts.start;
+
+import
org.apache.fineract.accounting.journalentry.service.JournalEntryWritePlatformService;
+import
org.apache.fineract.infrastructure.accountnumberformat.domain.AccountNumberFormatRepositoryWrapper;
+import org.apache.fineract.infrastructure.core.serialization.FromJsonHelper;
+import org.apache.fineract.infrastructure.core.service.PaginationHelper;
+import
org.apache.fineract.infrastructure.core.service.database.DatabaseSpecificSQLGenerator;
+import
org.apache.fineract.infrastructure.event.business.service.BusinessEventNotifierService;
+import org.apache.fineract.infrastructure.security.utils.ColumnValidator;
+import org.apache.fineract.portfolio.accounts.constants.AccountsApiConstants;
+import org.apache.fineract.portfolio.accounts.service.AccountsCommandsService;
+import org.apache.fineract.portfolio.charge.service.ChargeReadPlatformService;
+import org.apache.fineract.portfolio.client.domain.AccountNumberGenerator;
+import org.apache.fineract.portfolio.client.service.ClientReadPlatformService;
+import org.apache.fineract.portfolio.note.domain.NoteRepository;
+import org.apache.fineract.portfolio.savings.domain.SavingsAccountAssembler;
+import
org.apache.fineract.portfolio.savings.domain.SavingsAccountDomainService;
+import
org.apache.fineract.portfolio.savings.service.SavingsAccountReadPlatformService;
+import
org.apache.fineract.portfolio.shareaccounts.domain.ShareAccountDividendRepository;
+import
org.apache.fineract.portfolio.shareaccounts.domain.ShareAccountRepositoryWrapper;
+import
org.apache.fineract.portfolio.shareaccounts.serialization.ShareAccountDataSerializer;
+import
org.apache.fineract.portfolio.shareaccounts.service.PurchasedSharesReadPlatformService;
+import
org.apache.fineract.portfolio.shareaccounts.service.PurchasedSharesReadPlatformServiceImpl;
+import
org.apache.fineract.portfolio.shareaccounts.service.ShareAccountChargeReadPlatformService;
+import
org.apache.fineract.portfolio.shareaccounts.service.ShareAccountChargeReadPlatformServiceImpl;
+import
org.apache.fineract.portfolio.shareaccounts.service.ShareAccountCommandsServiceImpl;
+import
org.apache.fineract.portfolio.shareaccounts.service.ShareAccountDividendReadPlatformService;
+import
org.apache.fineract.portfolio.shareaccounts.service.ShareAccountDividendReadPlatformServiceImpl;
+import
org.apache.fineract.portfolio.shareaccounts.service.ShareAccountReadPlatformService;
+import
org.apache.fineract.portfolio.shareaccounts.service.ShareAccountReadPlatformServiceImpl;
+import
org.apache.fineract.portfolio.shareaccounts.service.ShareAccountSchedularService;
+import
org.apache.fineract.portfolio.shareaccounts.service.ShareAccountSchedularServiceImpl;
+import
org.apache.fineract.portfolio.shareaccounts.service.ShareAccountWritePlatformService;
+import
org.apache.fineract.portfolio.shareaccounts.service.ShareAccountWritePlatformServiceJpaRepositoryImpl;
+import
org.apache.fineract.portfolio.shareproducts.domain.ShareProductRepositoryWrapper;
+import
org.apache.fineract.portfolio.shareproducts.service.ShareProductDropdownReadPlatformService;
+import
org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
+import org.springframework.context.ApplicationContext;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.jdbc.core.JdbcTemplate;
+
+@Configuration
+public class ShareAccountsConfiguration {
+
+ @Bean
+ @ConditionalOnMissingBean(PurchasedSharesReadPlatformService.class)
+ public PurchasedSharesReadPlatformService
purchasedSharesReadPlatformService(JdbcTemplate jdbcTemplate) {
+ return new PurchasedSharesReadPlatformServiceImpl(jdbcTemplate);
+ }
+
+ @Bean
+ @ConditionalOnMissingBean(ShareAccountChargeReadPlatformService.class)
+ public ShareAccountChargeReadPlatformService
shareAccountChargeReadPlatformService(JdbcTemplate jdbcTemplate) {
+ return new ShareAccountChargeReadPlatformServiceImpl(jdbcTemplate);
+ }
+
+ @Bean(value = "SHAREACCOUNT_COMMANDSERVICE")
+ @ConditionalOnMissingBean(AccountsCommandsService.class)
+ public AccountsCommandsService accountsCommandsService(FromJsonHelper
fromApiJsonHelper,
+ ShareAccountDataSerializer shareAccountDataSerializer) {
+ return new ShareAccountCommandsServiceImpl(fromApiJsonHelper,
shareAccountDataSerializer);
+ }
+
+ @Bean
+ @ConditionalOnMissingBean(ShareAccountDividendReadPlatformService.class)
+ public ShareAccountDividendReadPlatformService
shareAccountDividendReadPlatformService(JdbcTemplate jdbcTemplate,
+ ColumnValidator columnValidator, PaginationHelper
paginationHelper, DatabaseSpecificSQLGenerator sqlGenerator) {
+ return new ShareAccountDividendReadPlatformServiceImpl(jdbcTemplate,
columnValidator, paginationHelper, sqlGenerator);
+
+ }
+
+ @Bean(value = "share" + AccountsApiConstants.READPLATFORM_NAME)
+ @ConditionalOnMissingBean(ShareAccountReadPlatformService.class)
+ public ShareAccountReadPlatformService
shareAccountReadPlatformService(ApplicationContext applicationContext,
+ ChargeReadPlatformService chargeReadPlatformService,
+ ShareProductDropdownReadPlatformService
shareProductDropdownReadPlatformService,
+ SavingsAccountReadPlatformService
savingsAccountReadPlatformService, ClientReadPlatformService
clientReadPlatformService,
+ ShareAccountChargeReadPlatformService
shareAccountChargeReadPlatformService,
+ PurchasedSharesReadPlatformService
purchasedSharesReadPlatformService, JdbcTemplate jdbcTemplate,
+ PaginationHelper paginationHelper, DatabaseSpecificSQLGenerator
sqlGenerator) {
+ return new ShareAccountReadPlatformServiceImpl(applicationContext,
chargeReadPlatformService,
+ shareProductDropdownReadPlatformService,
savingsAccountReadPlatformService, clientReadPlatformService,
+ shareAccountChargeReadPlatformService,
purchasedSharesReadPlatformService, jdbcTemplate, paginationHelper,
sqlGenerator);
+ }
+
+ @Bean
+ @ConditionalOnMissingBean(ShareAccountSchedularService.class)
+ public ShareAccountSchedularService
shareAccountSchedularService(ShareAccountDividendRepository
shareAccountDividendRepository,
+ SavingsAccountDomainService savingsAccountDomainService,
SavingsAccountAssembler savingsAccountAssembler) {
+ return new
ShareAccountSchedularServiceImpl(shareAccountDividendRepository,
savingsAccountDomainService, savingsAccountAssembler);
+ }
+
+ @Bean
+ @ConditionalOnMissingBean(ShareAccountWritePlatformService.class)
+ public ShareAccountWritePlatformService
shareAccountWritePlatformService(ShareAccountDataSerializer
accountDataSerializer,
+ ShareAccountRepositoryWrapper shareAccountRepository,
ShareProductRepositoryWrapper shareProductRepository,
+ AccountNumberGenerator accountNumberGenerator,
AccountNumberFormatRepositoryWrapper accountNumberFormatRepository,
+ JournalEntryWritePlatformService journalEntryWritePlatformService,
NoteRepository noteRepository,
+ BusinessEventNotifierService businessEventNotifierService) {
+ return new
ShareAccountWritePlatformServiceJpaRepositoryImpl(accountDataSerializer,
shareAccountRepository, shareProductRepository,
+ accountNumberGenerator, accountNumberFormatRepository,
journalEntryWritePlatformService, noteRepository,
+ businessEventNotifierService);
+ }
+}