diff --git a/fineract-provider/src/main/java/org/apache/fineract/organisation/holiday/service/HolidayReadPlatformServiceImpl.java b/fineract-provider/src/main/java/org/apache/fineract/organisation/holiday/service/HolidayReadPlatformServiceImpl.java index 5acfd0c7b..94f9e7b05 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/organisation/holiday/service/HolidayReadPlatformServiceImpl.java +++ b/fineract-provider/src/main/java/org/apache/fineract/organisation/holiday/service/HolidayReadPlatformServiceImpl.java @@ -25,6 +25,7 @@ import java.time.format.DateTimeFormatter; import java.util.Arrays; import java.util.Collection; import java.util.List; +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; @@ -32,24 +33,16 @@ import org.apache.fineract.infrastructure.security.service.PlatformSecurityConte import org.apache.fineract.organisation.holiday.data.HolidayData; import org.apache.fineract.organisation.holiday.domain.RescheduleType; import org.apache.fineract.organisation.holiday.exception.HolidayNotFoundException; -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 HolidayReadPlatformServiceImpl implements HolidayReadPlatformService { private final PlatformSecurityContext context; private final JdbcTemplate jdbcTemplate; - @Autowired - public HolidayReadPlatformServiceImpl(final PlatformSecurityContext context, final JdbcTemplate jdbcTemplate) { - this.context = context; - this.jdbcTemplate = jdbcTemplate; - } - private static final class HolidayMapper implements RowMapper { private final String schema; diff --git a/fineract-provider/src/main/java/org/apache/fineract/organisation/holiday/service/HolidayWritePlatformServiceJpaRepositoryImpl.java b/fineract-provider/src/main/java/org/apache/fineract/organisation/holiday/service/HolidayWritePlatformServiceJpaRepositoryImpl.java index 7c8d33798..22d0acc02 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/organisation/holiday/service/HolidayWritePlatformServiceJpaRepositoryImpl.java +++ b/fineract-provider/src/main/java/org/apache/fineract/organisation/holiday/service/HolidayWritePlatformServiceJpaRepositoryImpl.java @@ -27,6 +27,8 @@ import java.time.LocalDate; import java.util.HashSet; import java.util.Map; import java.util.Set; +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; @@ -45,19 +47,14 @@ import org.apache.fineract.organisation.office.domain.OfficeRepositoryWrapper; import org.apache.fineract.organisation.workingdays.domain.WorkingDays; import org.apache.fineract.organisation.workingdays.domain.WorkingDaysRepositoryWrapper; import org.apache.fineract.organisation.workingdays.service.WorkingDaysUtil; -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 +@Slf4j +@RequiredArgsConstructor public class HolidayWritePlatformServiceJpaRepositoryImpl implements HolidayWritePlatformService { - private static final Logger LOG = LoggerFactory.getLogger(HolidayWritePlatformServiceJpaRepositoryImpl.class); - private final HolidayDataValidator fromApiJsonDeserializer; private final HolidayRepositoryWrapper holidayRepository; private final WorkingDaysRepositoryWrapper daysRepositoryWrapper; @@ -65,19 +62,6 @@ public class HolidayWritePlatformServiceJpaRepositoryImpl implements HolidayWrit private final OfficeRepositoryWrapper officeRepositoryWrapper; private final FromJsonHelper fromApiJsonHelper; - @Autowired - public HolidayWritePlatformServiceJpaRepositoryImpl(final HolidayDataValidator fromApiJsonDeserializer, - final HolidayRepositoryWrapper holidayRepository, final PlatformSecurityContext context, - final OfficeRepositoryWrapper officeRepositoryWrapper, final FromJsonHelper fromApiJsonHelper, - final WorkingDaysRepositoryWrapper daysRepositoryWrapper) { - this.fromApiJsonDeserializer = fromApiJsonDeserializer; - this.holidayRepository = holidayRepository; - this.context = context; - this.officeRepositoryWrapper = officeRepositoryWrapper; - this.fromApiJsonHelper = fromApiJsonHelper; - this.daysRepositoryWrapper = daysRepositoryWrapper; - } - @Transactional @Override public CommandProcessingResult createHoliday(final JsonCommand command) { @@ -185,7 +169,7 @@ public class HolidayWritePlatformServiceJpaRepositoryImpl implements HolidayWrit "name", name); } - LOG.error("Error occured.", dve); + log.error("Error occured.", dve); throw new PlatformDataIntegrityException("error.msg.office.unknown.data.integrity.issue", "Unknown data integrity issue with resource."); } diff --git a/fineract-provider/src/main/java/org/apache/fineract/organisation/holiday/starter/OrganisationHolidayConfiguration.java b/fineract-provider/src/main/java/org/apache/fineract/organisation/holiday/starter/OrganisationHolidayConfiguration.java new file mode 100644 index 000000000..f59962ff1 --- /dev/null +++ b/fineract-provider/src/main/java/org/apache/fineract/organisation/holiday/starter/OrganisationHolidayConfiguration.java @@ -0,0 +1,53 @@ +/** + * 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.organisation.holiday.starter; + +import org.apache.fineract.infrastructure.core.serialization.FromJsonHelper; +import org.apache.fineract.infrastructure.security.service.PlatformSecurityContext; +import org.apache.fineract.organisation.holiday.data.HolidayDataValidator; +import org.apache.fineract.organisation.holiday.domain.HolidayRepositoryWrapper; +import org.apache.fineract.organisation.holiday.service.HolidayReadPlatformService; +import org.apache.fineract.organisation.holiday.service.HolidayReadPlatformServiceImpl; +import org.apache.fineract.organisation.holiday.service.HolidayWritePlatformService; +import org.apache.fineract.organisation.holiday.service.HolidayWritePlatformServiceJpaRepositoryImpl; +import org.apache.fineract.organisation.office.domain.OfficeRepositoryWrapper; +import org.apache.fineract.organisation.workingdays.domain.WorkingDaysRepositoryWrapper; +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 OrganisationHolidayConfiguration { + + @Bean + @ConditionalOnMissingBean(HolidayReadPlatformService.class) + public HolidayReadPlatformService holidayReadPlatformService(PlatformSecurityContext context, JdbcTemplate jdbcTemplate) { + return new HolidayReadPlatformServiceImpl(context, jdbcTemplate); + } + + @Bean + @ConditionalOnMissingBean(HolidayWritePlatformService.class) + public HolidayWritePlatformService holidayWritePlatformService(HolidayDataValidator fromApiJsonDeserializer, + HolidayRepositoryWrapper holidayRepository, PlatformSecurityContext context, OfficeRepositoryWrapper officeRepositoryWrapper, + FromJsonHelper fromApiJsonHelper, WorkingDaysRepositoryWrapper daysRepositoryWrapper) { + return new HolidayWritePlatformServiceJpaRepositoryImpl(fromApiJsonDeserializer, holidayRepository, daysRepositoryWrapper, context, + officeRepositoryWrapper, fromApiJsonHelper); + } +}