From 9aa1c14b702733d26649700e80f6be9f86964f96 Mon Sep 17 00:00:00 2001 From: "Sinha, Abhinav" Date: Mon, 23 Oct 2023 19:06:19 -0400 Subject: [PATCH] Add custom Configuration class for mix module (FINERACT-1932) --- ...axonomyMappingReadPlatformServiceImpl.java | 10 +-- ...xonomyMappingWritePlatformServiceImpl.java | 10 +-- .../MixTaxonomyReadPlatformServiceImpl.java | 4 -- .../NamespaceReadPlatformServiceImpl.java | 4 -- .../mix/service/XBRLResultServiceImpl.java | 7 +-- .../mix/starter/MixConfiguration.java | 62 +++++++++++++++++++ 6 files changed, 69 insertions(+), 28 deletions(-) create mode 100644 fineract-provider/src/main/java/org/apache/fineract/mix/starter/MixConfiguration.java diff --git a/fineract-provider/src/main/java/org/apache/fineract/mix/service/MixTaxonomyMappingReadPlatformServiceImpl.java b/fineract-provider/src/main/java/org/apache/fineract/mix/service/MixTaxonomyMappingReadPlatformServiceImpl.java index 1e58680a4..367ef80c8 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/mix/service/MixTaxonomyMappingReadPlatformServiceImpl.java +++ b/fineract-provider/src/main/java/org/apache/fineract/mix/service/MixTaxonomyMappingReadPlatformServiceImpl.java @@ -20,23 +20,17 @@ package org.apache.fineract.mix.service; import java.sql.ResultSet; import java.sql.SQLException; +import lombok.RequiredArgsConstructor; import org.apache.fineract.mix.data.MixTaxonomyMappingData; -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 MixTaxonomyMappingReadPlatformServiceImpl implements MixTaxonomyMappingReadPlatformService { private final JdbcTemplate jdbcTemplate; - @Autowired - public MixTaxonomyMappingReadPlatformServiceImpl(final JdbcTemplate jdbcTemplate) { - this.jdbcTemplate = jdbcTemplate; - } - private static final class TaxonomyMappingMapper implements RowMapper { public String schema() { diff --git a/fineract-provider/src/main/java/org/apache/fineract/mix/service/MixTaxonomyMappingWritePlatformServiceImpl.java b/fineract-provider/src/main/java/org/apache/fineract/mix/service/MixTaxonomyMappingWritePlatformServiceImpl.java index ea2bd143a..bb6a5424a 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/mix/service/MixTaxonomyMappingWritePlatformServiceImpl.java +++ b/fineract-provider/src/main/java/org/apache/fineract/mix/service/MixTaxonomyMappingWritePlatformServiceImpl.java @@ -18,27 +18,21 @@ */ package org.apache.fineract.mix.service; +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.data.CommandProcessingResultBuilder; import org.apache.fineract.mix.domain.MixTaxonomyMapping; import org.apache.fineract.mix.domain.MixTaxonomyMappingRepository; -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 public class MixTaxonomyMappingWritePlatformServiceImpl implements MixTaxonomyMappingWritePlatformService { private final MixTaxonomyMappingRepository mappingRepository; - @Autowired - public MixTaxonomyMappingWritePlatformServiceImpl(final MixTaxonomyMappingRepository mappingRepository) { - this.mappingRepository = mappingRepository; - } - @Transactional @Override public CommandProcessingResult updateMapping(final Long mappingId, final JsonCommand command) { diff --git a/fineract-provider/src/main/java/org/apache/fineract/mix/service/MixTaxonomyReadPlatformServiceImpl.java b/fineract-provider/src/main/java/org/apache/fineract/mix/service/MixTaxonomyReadPlatformServiceImpl.java index f807cee5c..eb4eb0fb7 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/mix/service/MixTaxonomyReadPlatformServiceImpl.java +++ b/fineract-provider/src/main/java/org/apache/fineract/mix/service/MixTaxonomyReadPlatformServiceImpl.java @@ -22,18 +22,14 @@ import java.sql.ResultSet; import java.sql.SQLException; import java.util.List; import org.apache.fineract.mix.data.MixTaxonomyData; -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 MixTaxonomyReadPlatformServiceImpl implements MixTaxonomyReadPlatformService { private final JdbcTemplate jdbcTemplate; private final MixTaxonomyMapper mixTaxonomyMapper; - @Autowired public MixTaxonomyReadPlatformServiceImpl(final JdbcTemplate jdbcTemplate) { this.jdbcTemplate = jdbcTemplate; this.mixTaxonomyMapper = new MixTaxonomyMapper(); diff --git a/fineract-provider/src/main/java/org/apache/fineract/mix/service/NamespaceReadPlatformServiceImpl.java b/fineract-provider/src/main/java/org/apache/fineract/mix/service/NamespaceReadPlatformServiceImpl.java index d5ca291cf..0ba732953 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/mix/service/NamespaceReadPlatformServiceImpl.java +++ b/fineract-provider/src/main/java/org/apache/fineract/mix/service/NamespaceReadPlatformServiceImpl.java @@ -21,18 +21,14 @@ package org.apache.fineract.mix.service; import java.sql.ResultSet; import java.sql.SQLException; import org.apache.fineract.mix.data.NamespaceData; -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 NamespaceReadPlatformServiceImpl implements NamespaceReadPlatformService { private final JdbcTemplate jdbcTemplate; private final NamespaceMapper namespaceMapper; - @Autowired public NamespaceReadPlatformServiceImpl(final JdbcTemplate jdbcTemplate) { this.jdbcTemplate = jdbcTemplate; this.namespaceMapper = new NamespaceMapper(); diff --git a/fineract-provider/src/main/java/org/apache/fineract/mix/service/XBRLResultServiceImpl.java b/fineract-provider/src/main/java/org/apache/fineract/mix/service/XBRLResultServiceImpl.java index 8a487fc28..0628a4f6a 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/mix/service/XBRLResultServiceImpl.java +++ b/fineract-provider/src/main/java/org/apache/fineract/mix/service/XBRLResultServiceImpl.java @@ -30,21 +30,20 @@ import java.util.regex.Pattern; import javax.script.ScriptEngine; import javax.script.ScriptEngineManager; import javax.script.ScriptException; +import lombok.extern.slf4j.Slf4j; import org.apache.fineract.mix.data.MixTaxonomyData; import org.apache.fineract.mix.data.MixTaxonomyMappingData; import org.apache.fineract.mix.data.XBRLData; import org.apache.fineract.mix.exception.XBRLMappingInvalidException; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.jdbc.support.rowset.SqlRowSet; import org.springframework.stereotype.Component; @Component +@Slf4j public class XBRLResultServiceImpl implements XBRLResultService { - private static final Logger LOG = LoggerFactory.getLogger(XBRLResultServiceImpl.class); private static final ScriptEngine SCRIPT_ENGINE = new ScriptEngineManager().getEngineByName("JavaScript"); private final MixTaxonomyMappingReadPlatformService readTaxonomyMappingService; @@ -162,7 +161,7 @@ public class XBRLResultServiceImpl implements XBRLResultService { eval = value.floatValue(); } } catch (final ScriptException e) { - LOG.error("Problem occurred in processMappingString function", e); + log.error("Problem occurred in processMappingString function", e); throw new IllegalArgumentException(e.getMessage(), e); } diff --git a/fineract-provider/src/main/java/org/apache/fineract/mix/starter/MixConfiguration.java b/fineract-provider/src/main/java/org/apache/fineract/mix/starter/MixConfiguration.java new file mode 100644 index 000000000..b4d9f25d6 --- /dev/null +++ b/fineract-provider/src/main/java/org/apache/fineract/mix/starter/MixConfiguration.java @@ -0,0 +1,62 @@ +/** + * 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.mix.starter; + +import org.apache.fineract.mix.domain.MixTaxonomyMappingRepository; +import org.apache.fineract.mix.service.MixTaxonomyMappingReadPlatformService; +import org.apache.fineract.mix.service.MixTaxonomyMappingReadPlatformServiceImpl; +import org.apache.fineract.mix.service.MixTaxonomyMappingWritePlatformService; +import org.apache.fineract.mix.service.MixTaxonomyMappingWritePlatformServiceImpl; +import org.apache.fineract.mix.service.MixTaxonomyReadPlatformService; +import org.apache.fineract.mix.service.MixTaxonomyReadPlatformServiceImpl; +import org.apache.fineract.mix.service.NamespaceReadPlatformService; +import org.apache.fineract.mix.service.NamespaceReadPlatformServiceImpl; +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 MixConfiguration { + + @Bean + @ConditionalOnMissingBean(MixTaxonomyMappingReadPlatformService.class) + public MixTaxonomyMappingReadPlatformService mixTaxonomyMappingReadPlatformService(JdbcTemplate jdbcTemplate) { + return new MixTaxonomyMappingReadPlatformServiceImpl(jdbcTemplate); + } + + @Bean + @ConditionalOnMissingBean(MixTaxonomyMappingWritePlatformService.class) + public MixTaxonomyMappingWritePlatformService mixTaxonomyMappingWritePlatformService(MixTaxonomyMappingRepository mappingRepository) { + return new MixTaxonomyMappingWritePlatformServiceImpl(mappingRepository); + } + + @Bean + @ConditionalOnMissingBean(MixTaxonomyReadPlatformService.class) + public MixTaxonomyReadPlatformService mixTaxonomyReadPlatformService(JdbcTemplate jdbcTemplate) { + return new MixTaxonomyReadPlatformServiceImpl(jdbcTemplate); + } + + @Bean + @ConditionalOnMissingBean(NamespaceReadPlatformService.class) + public NamespaceReadPlatformService namespaceReadPlatformService(JdbcTemplate jdbcTemplate) { + return new NamespaceReadPlatformServiceImpl(jdbcTemplate); + } + +}