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 e41d7635e Add custom Configuration class for floatingrates module (FINERACT-1932) e41d7635e is described below commit e41d7635e026fbd61a69aa4ee8abd3c76f78e2c5 Author: Sinha, Abhinav <sinha...@iu.edu> AuthorDate: Thu Sep 21 08:56:06 2023 -0400 Add custom Configuration class for floatingrates module (FINERACT-1932) --- .../FloatingRateWritePlatformServiceImpl.java | 19 +++------ .../FloatingRatesReadPlatformServiceImpl.java | 10 +---- .../starter/FloatingRatesConfiguration.java | 47 ++++++++++++++++++++++ 3 files changed, 54 insertions(+), 22 deletions(-) diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/floatingrates/service/FloatingRateWritePlatformServiceImpl.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/floatingrates/service/FloatingRateWritePlatformServiceImpl.java index 932e48a42..0dcb7dca7 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/floatingrates/service/FloatingRateWritePlatformServiceImpl.java +++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/floatingrates/service/FloatingRateWritePlatformServiceImpl.java @@ -20,6 +20,8 @@ package org.apache.fineract.portfolio.floatingrates.service; import jakarta.persistence.PersistenceException; import java.util.Map; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.exception.ExceptionUtils; import org.apache.fineract.infrastructure.core.api.JsonCommand; import org.apache.fineract.infrastructure.core.data.CommandProcessingResult; @@ -28,28 +30,17 @@ import org.apache.fineract.infrastructure.core.exception.PlatformDataIntegrityEx import org.apache.fineract.portfolio.floatingrates.domain.FloatingRate; import org.apache.fineract.portfolio.floatingrates.domain.FloatingRateRepositoryWrapper; import org.apache.fineract.portfolio.floatingrates.serialization.FloatingRateDataValidator; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.dao.DataIntegrityViolationException; import org.springframework.orm.jpa.JpaSystemException; -import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; -@Service +@RequiredArgsConstructor +@Slf4j public class FloatingRateWritePlatformServiceImpl implements FloatingRateWritePlatformService { - private static final Logger LOG = LoggerFactory.getLogger(FloatingRateWritePlatformServiceImpl.class); private final FloatingRateDataValidator fromApiJsonDeserializer; private final FloatingRateRepositoryWrapper floatingRateRepository; - @Autowired - public FloatingRateWritePlatformServiceImpl(final FloatingRateDataValidator fromApiJsonDeserializer, - final FloatingRateRepositoryWrapper floatingRateRepository) { - this.fromApiJsonDeserializer = fromApiJsonDeserializer; - this.floatingRateRepository = floatingRateRepository; - } - @Transactional @Override public CommandProcessingResult createFloatingRate(final JsonCommand command) { @@ -118,7 +109,7 @@ public class FloatingRateWritePlatformServiceImpl implements FloatingRateWritePl } private void logAsErrorUnexpectedDataIntegrityException(Exception dve) { - LOG.error("Error occured.", dve); + log.error("Error occured.", dve); } diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/floatingrates/service/FloatingRatesReadPlatformServiceImpl.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/floatingrates/service/FloatingRatesReadPlatformServiceImpl.java index 9eeeff0ce..1c097cb18 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/floatingrates/service/FloatingRatesReadPlatformServiceImpl.java +++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/floatingrates/service/FloatingRatesReadPlatformServiceImpl.java @@ -25,27 +25,21 @@ import java.sql.SQLException; import java.time.LocalDate; import java.time.OffsetDateTime; import java.util.List; +import lombok.RequiredArgsConstructor; import org.apache.fineract.infrastructure.core.domain.JdbcSupport; import org.apache.fineract.portfolio.floatingrates.data.FloatingRateData; import org.apache.fineract.portfolio.floatingrates.data.FloatingRatePeriodData; import org.apache.fineract.portfolio.floatingrates.data.InterestRatePeriodData; import org.apache.fineract.portfolio.floatingrates.exception.FloatingRateNotFoundException; -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 +@RequiredArgsConstructor public class FloatingRatesReadPlatformServiceImpl implements FloatingRatesReadPlatformService { private final JdbcTemplate jdbcTemplate; - @Autowired - public FloatingRatesReadPlatformServiceImpl(final JdbcTemplate jdbcTemplate) { - this.jdbcTemplate = jdbcTemplate; - } - @Override public List<FloatingRateData> retrieveAll() { FloatingRateRowMapper rateMapper = new FloatingRateRowMapper(false); diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/floatingrates/starter/FloatingRatesConfiguration.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/floatingrates/starter/FloatingRatesConfiguration.java new file mode 100644 index 000000000..3bdc33493 --- /dev/null +++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/floatingrates/starter/FloatingRatesConfiguration.java @@ -0,0 +1,47 @@ +/** + * 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.floatingrates.starter; + +import org.apache.fineract.portfolio.floatingrates.domain.FloatingRateRepositoryWrapper; +import org.apache.fineract.portfolio.floatingrates.serialization.FloatingRateDataValidator; +import org.apache.fineract.portfolio.floatingrates.service.FloatingRateWritePlatformService; +import org.apache.fineract.portfolio.floatingrates.service.FloatingRateWritePlatformServiceImpl; +import org.apache.fineract.portfolio.floatingrates.service.FloatingRatesReadPlatformService; +import org.apache.fineract.portfolio.floatingrates.service.FloatingRatesReadPlatformServiceImpl; +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 FloatingRatesConfiguration { + + @Bean + @ConditionalOnMissingBean(FloatingRatesReadPlatformService.class) + public FloatingRatesReadPlatformService floatingRatesReadPlatformService(JdbcTemplate jdbcTemplate) { + return new FloatingRatesReadPlatformServiceImpl(jdbcTemplate); + } + + @Bean + @ConditionalOnMissingBean(FloatingRateWritePlatformService.class) + public FloatingRateWritePlatformService floatingRateWritePlatformService(FloatingRateDataValidator fromApiJsonDeserializer, + FloatingRateRepositoryWrapper floatingRateRepository) { + return new FloatingRateWritePlatformServiceImpl(fromApiJsonDeserializer, floatingRateRepository); + } +}