From d82560d7b34cbdf9075f5b2d3a39080f23c2e133 Mon Sep 17 00:00:00 2001 From: Petri Date: Sun, 5 Sep 2021 22:23:32 +0000 Subject: [PATCH] Upgrade to Spring Boot 2.6.0 --- build.gradle | 6 +-- fineract-provider/build.gradle | 4 +- .../basicauth/application.properties | 1 + .../twofactor/application.properties | 1 + .../properties/oauth/application.properties | 1 + .../oauth/twofactor/application.properties | 1 + .../ProductToGLAccountMappingHelper.java | 6 +-- .../core/config/SecurityConfig.java | 25 ++++----- .../core/service/PaginationHelper.java | 2 +- ...ConfigurationWritePlatformServiceImpl.java | 2 +- ...roductMappingWritePlatformServiceImpl.java | 6 +-- ...CreditBureauWritePlatflormServiceImpl.java | 4 +- .../jobs/service/JobRegisterServiceImpl.java | 54 +++++-------------- .../jobs/service/SchedulerStopListener.java | 6 +-- .../TenantAwareBasicAuthenticationFilter.java | 34 ++++++------ ...countTransfersReadPlatformServiceImpl.java | 4 +- .../AddressWritePlatformServiceImpl.java | 22 ++++---- ...dConfigurationReadPlatformServiceImpl.java | 2 +- .../domain/CalendarFrequencyType.java | 2 +- .../calendar/domain/CalendarWeekDaysType.java | 2 +- .../CalendarReadPlatformServiceImpl.java | 3 +- .../portfolio/client/domain/ClientStatus.java | 2 +- ...FamilyMembersWritePlatformServiceImpl.java | 28 +++++----- ...WritePlatformServiceJpaRepositoryImpl.java | 2 +- ...WritePlatformServiceJpaRepositoryImpl.java | 2 +- ...WritePlatformServiceJpaRepositoryImpl.java | 2 +- .../service/LoanReadPlatformServiceImpl.java | 8 ++- ...WritePlatformServiceJpaRepositoryImpl.java | 2 +- ...WritePlatformServiceJpaRepositoryImpl.java | 2 +- ...SavingsAccountReadPlatformServiceImpl.java | 6 +-- ...WritePlatformServiceJpaRepositoryImpl.java | 2 +- ...neficiariesTPTReadPlatformServiceImpl.java | 2 +- .../AppuserClientMapperReadServiceImpl.java | 2 +- .../AppuserLoansMapperReadServiceImpl.java | 2 +- ...AccountMappingReadPlatformServiceImpl.java | 2 +- ...ceRegistrationReadPlatformServiceImpl.java | 2 +- .../AppuserSavingsMapperReadServiceImpl.java | 2 +- ...AccountsMapperReadPlatformServiceImpl.java | 2 +- .../ShareAccountReadPlatformServiceImpl.java | 4 +- .../ScheduledJobRunnerServiceImpl.java | 10 ++-- .../AppUserReadPlatformServiceImpl.java | 2 +- .../service/RoleReadPlatformServiceImpl.java | 2 +- .../fineract/notification/TopicTest.java | 16 +++--- 43 files changed, 128 insertions(+), 164 deletions(-) diff --git a/build.gradle b/build.gradle index 1612fee1c..79a6a3a06 100644 --- a/build.gradle +++ b/build.gradle @@ -59,7 +59,7 @@ plugins { id 'com.github.hierynomus.license' version '0.16.1' apply false id 'org.openapi.generator' version '4.3.1' apply false id 'org.zeroturnaround.gradle.jrebel' version '1.1.11' apply false - id 'org.springframework.boot' version '2.3.5.RELEASE' apply false + id 'org.springframework.boot' version '2.6.0' apply false id 'net.ltgt.errorprone' version '2.0.2' apply false id 'io.swagger.core.v3.swagger-gradle-plugin' version '2.1.11' apply false id 'com.gorylenko.gradle-git-properties' version '2.3.1' apply false @@ -99,7 +99,7 @@ allprojects { dependencyManagement { imports { mavenBom 'org.springframework:spring-framework-bom:5.3.12' - mavenBom 'org.springframework.boot:spring-boot-dependencies:2.5.4' + mavenBom 'org.springframework.boot:spring-boot-dependencies:2.6.0' mavenBom 'org.junit:junit-bom:5.8.1' } @@ -141,7 +141,7 @@ allprojects { dependency 'org.mock-server:mockserver-junit-jupiter:5.11.2' dependency 'org.webjars.npm:swagger-ui-dist:4.0.1' dependency 'org.webjars:webjars-locator-core:0.48' - dependency 'org.springframework.boot:spring-boot-starter-mail:2.5.4' + dependency 'org.springframework.boot:spring-boot-starter-mail:2.6.0' // fineract client dependencies dependency "com.squareup.retrofit2:retrofit:$retrofitVersion" diff --git a/fineract-provider/build.gradle b/fineract-provider/build.gradle index e61d2f2bb..fcc410fb3 100644 --- a/fineract-provider/build.gradle +++ b/fineract-provider/build.gradle @@ -175,6 +175,7 @@ war { into "WEB-INF/" // no leading slash } enabled = true + classifier = '' } // If we are running Gradle within Eclipse to enhance classes with OpenJPA, @@ -261,7 +262,7 @@ bootRun { } springBoot { - mainClassName = 'org.apache.fineract.ServerApplication' + mainClass = 'org.apache.fineract.ServerApplication' } bootJar { @@ -270,6 +271,7 @@ bootJar { attributes 'Main-Class': 'org.springframework.boot.loader.PropertiesLauncher' } dependsOn resolve + classifier = '' } bootWar { diff --git a/fineract-provider/properties/basicauth/application.properties b/fineract-provider/properties/basicauth/application.properties index 4a0e1dd9c..be392eb03 100644 --- a/fineract-provider/properties/basicauth/application.properties +++ b/fineract-provider/properties/basicauth/application.properties @@ -27,6 +27,7 @@ management.health.readinessState.enabled=true # FINERACT-883 management.info.git.mode=FULL +management.endpoints.web.exposure.include=health,info # FINERACT-914 server.forward-headers-strategy=framework diff --git a/fineract-provider/properties/basicauth/twofactor/application.properties b/fineract-provider/properties/basicauth/twofactor/application.properties index db33db991..03788ecfa 100644 --- a/fineract-provider/properties/basicauth/twofactor/application.properties +++ b/fineract-provider/properties/basicauth/twofactor/application.properties @@ -28,6 +28,7 @@ management.health.readinessState.enabled=true # FINERACT-883 management.info.git.mode=FULL +management.endpoints.web.exposure.include=health,info # FINERACT-914 server.forward-headers-strategy=framework diff --git a/fineract-provider/properties/oauth/application.properties b/fineract-provider/properties/oauth/application.properties index e08209a80..057b3615e 100644 --- a/fineract-provider/properties/oauth/application.properties +++ b/fineract-provider/properties/oauth/application.properties @@ -28,6 +28,7 @@ management.health.readinessState.enabled=true # FINERACT-883 management.info.git.mode=FULL +management.endpoints.web.exposure.include=health,info # FINERACT-914 server.forward-headers-strategy=framework diff --git a/fineract-provider/properties/oauth/twofactor/application.properties b/fineract-provider/properties/oauth/twofactor/application.properties index 306cf1bd5..dc84c3144 100644 --- a/fineract-provider/properties/oauth/twofactor/application.properties +++ b/fineract-provider/properties/oauth/twofactor/application.properties @@ -28,6 +28,7 @@ management.health.readinessState.enabled=true # FINERACT-883 management.info.git.mode=FULL +management.endpoints.web.exposure.include=health,info # FINERACT-914 server.forward-headers-strategy=framework diff --git a/fineract-provider/src/main/java/org/apache/fineract/accounting/producttoaccountmapping/service/ProductToGLAccountMappingHelper.java b/fineract-provider/src/main/java/org/apache/fineract/accounting/producttoaccountmapping/service/ProductToGLAccountMappingHelper.java index f29a84916..ca2c2f6d1 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/accounting/producttoaccountmapping/service/ProductToGLAccountMappingHelper.java +++ b/fineract-provider/src/main/java/org/apache/fineract/accounting/producttoaccountmapping/service/ProductToGLAccountMappingHelper.java @@ -232,7 +232,7 @@ public class ProductToGLAccountMappingHelper { // If input map is empty, delete all existing mappings if (inputChargeToIncomeAccountMap.size() == 0) { - this.accountMappingRepository.deleteInBatch(existingChargeToIncomeAccountMappings); + this.accountMappingRepository.deleteAllInBatch(existingChargeToIncomeAccountMappings); } /** * Else,
* update existing mappings OR
@@ -315,7 +315,7 @@ public class ProductToGLAccountMappingHelper { // If input map is empty, delete all existing mappings if (inputPaymentChannelFundSourceMap.size() == 0) { - this.accountMappingRepository.deleteInBatch(existingPaymentChannelToFundSourceMappings); + this.accountMappingRepository.deleteAllInBatch(existingPaymentChannelToFundSourceMappings); } /** * Else,
* update existing mappings OR
@@ -448,7 +448,7 @@ public class ProductToGLAccountMappingHelper { final List productToGLAccountMappings = this.accountMappingRepository .findByProductIdAndProductType(loanProductId, portfolioProductType.getValue()); if (productToGLAccountMappings != null && productToGLAccountMappings.size() > 0) { - this.accountMappingRepository.deleteInBatch(productToGLAccountMappings); + this.accountMappingRepository.deleteAllInBatch(productToGLAccountMappings); } } } diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/core/config/SecurityConfig.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/core/config/SecurityConfig.java index fa9aca006..9b38c613b 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/core/config/SecurityConfig.java +++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/core/config/SecurityConfig.java @@ -33,7 +33,6 @@ import org.springframework.security.authentication.dao.DaoAuthenticationProvider import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder; import org.springframework.security.config.annotation.method.configuration.EnableGlobalMethodSecurity; import org.springframework.security.config.annotation.web.builders.HttpSecurity; -import org.springframework.security.config.annotation.web.builders.WebSecurity; import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter; import org.springframework.security.config.http.SessionCreationPolicy; import org.springframework.security.crypto.factory.PasswordEncoderFactories; @@ -50,21 +49,9 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter { @Autowired private TenantAwareJpaPlatformUserDetailsService userDetailsService; - @Autowired - private TenantAwareBasicAuthenticationFilter tenantAwareBasicAuthenticationFilter; - @Autowired private TwoFactorAuthenticationFilter twoFactorAuthenticationFilter; - /** - * The purpose of this method is to exclude the URL's specific to Login, Swagger UI and static files. Any URL that - * should be excluded from the Spring security chain should be added to the ignore list in this method only - */ - @Override - public void configure(WebSecurity web) throws Exception { - web.ignoring().antMatchers("/swagger-ui/**", "/actuator/**", "/api-docs/**"); - } - @Override protected void configure(HttpSecurity http) throws Exception { @@ -86,12 +73,17 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter { .sessionManagement() // .sessionCreationPolicy(SessionCreationPolicy.STATELESS) // .and() // - .addFilterAfter(tenantAwareBasicAuthenticationFilter, SecurityContextPersistenceFilter.class) // + .addFilterAfter(tenantAwareBasicAuthenticationFilter(), SecurityContextPersistenceFilter.class) // .addFilterAfter(twoFactorAuthenticationFilter, BasicAuthenticationFilter.class) // .requiresChannel(channel -> channel.antMatchers("/api/**").requiresSecure()); } + @Bean + public TenantAwareBasicAuthenticationFilter tenantAwareBasicAuthenticationFilter() throws Exception { + return new TenantAwareBasicAuthenticationFilter(authenticationManagerBean(), basicAuthenticationEntryPoint()); + } + @Bean public BasicAuthenticationEntryPoint basicAuthenticationEntryPoint() { BasicAuthenticationEntryPoint basicAuthenticationEntryPoint = new BasicAuthenticationEntryPoint(); @@ -125,9 +117,10 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter { } @Bean - public FilterRegistrationBean tenantAwareBasicAuthenticationFilterRegistration() { + public FilterRegistrationBean tenantAwareBasicAuthenticationFilterRegistration() + throws Exception { FilterRegistrationBean registration = new FilterRegistrationBean( - tenantAwareBasicAuthenticationFilter); + tenantAwareBasicAuthenticationFilter()); registration.setEnabled(false); return registration; } diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/core/service/PaginationHelper.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/core/service/PaginationHelper.java index 0ad18af04..ddaaadf34 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/core/service/PaginationHelper.java +++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/core/service/PaginationHelper.java @@ -28,7 +28,7 @@ public class PaginationHelper { public Page fetchPage(final JdbcTemplate jt, final String sqlCountRows, final String sqlFetchRows, final Object[] args, final RowMapper rowMapper) { - final List items = jt.query(sqlFetchRows, args, rowMapper); + final List items = jt.query(sqlFetchRows, rowMapper, args); // determine how many rows are available final int totalFilteredRecords = jt.queryForObject(sqlCountRows, Integer.class); diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/creditbureau/service/CreditBureauConfigurationWritePlatformServiceImpl.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/creditbureau/service/CreditBureauConfigurationWritePlatformServiceImpl.java index 81bfa9cc8..923a0f5ef 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/creditbureau/service/CreditBureauConfigurationWritePlatformServiceImpl.java +++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/creditbureau/service/CreditBureauConfigurationWritePlatformServiceImpl.java @@ -65,7 +65,7 @@ public class CreditBureauConfigurationWritePlatformServiceImpl implements Credit this.fromApiJsonDeserializer.validateForCreate(command.json(), creditBureauId); - final OrganisationCreditBureau orgcb = this.organisationCreditBureauRepository.getOne(creditBureauId); + final OrganisationCreditBureau orgcb = this.organisationCreditBureauRepository.getById(creditBureauId); final CreditBureauConfiguration cb_config = CreditBureauConfiguration.fromJson(command, orgcb); diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/creditbureau/service/CreditBureauLoanProductMappingWritePlatformServiceImpl.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/creditbureau/service/CreditBureauLoanProductMappingWritePlatformServiceImpl.java index 950b907b3..4b4a20b7a 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/creditbureau/service/CreditBureauLoanProductMappingWritePlatformServiceImpl.java +++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/creditbureau/service/CreditBureauLoanProductMappingWritePlatformServiceImpl.java @@ -68,9 +68,9 @@ public class CreditBureauLoanProductMappingWritePlatformServiceImpl implements C final long lpid = command.longValueOfParameterNamed("loanProductId"); - final OrganisationCreditBureau orgcb = this.organisationCreditBureauRepository.getOne(organisationCreditBureauId); + final OrganisationCreditBureau orgcb = this.organisationCreditBureauRepository.getById(organisationCreditBureauId); - final LoanProduct lp = this.loanProductRepository.getOne(lpid); + final LoanProduct lp = this.loanProductRepository.getById(lpid); final CreditBureauLoanProductMapping cb_lp = CreditBureauLoanProductMapping.fromJson(command, orgcb, lp); @@ -88,7 +88,7 @@ public class CreditBureauLoanProductMappingWritePlatformServiceImpl implements C final Long mappingid = command.longValueOfParameterNamed("creditbureauLoanProductMappingId"); final boolean isActive = command.booleanPrimitiveValueOfParameterNamed("isActive"); - final CreditBureauLoanProductMapping cblpmapping = this.creditBureauLoanProductMappingRepository.getOne(mappingid); + final CreditBureauLoanProductMapping cblpmapping = this.creditBureauLoanProductMappingRepository.getById(mappingid); cblpmapping.setIs_active(isActive); this.creditBureauLoanProductMappingRepository.saveAndFlush(cblpmapping); return new CommandProcessingResultBuilder().withCommandId(command.commandId()).withEntityId(cblpmapping.getId()).build(); diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/creditbureau/service/OrganisationCreditBureauWritePlatflormServiceImpl.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/creditbureau/service/OrganisationCreditBureauWritePlatflormServiceImpl.java index f17dc2097..a28374441 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/creditbureau/service/OrganisationCreditBureauWritePlatflormServiceImpl.java +++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/creditbureau/service/OrganisationCreditBureauWritePlatflormServiceImpl.java @@ -58,7 +58,7 @@ public class OrganisationCreditBureauWritePlatflormServiceImpl implements Organi this.context.authenticatedUser(); this.fromApiJsonDeserializer.validateForCreate(command.json(), creditBureauId); - final CreditBureau creditBureau = this.creditBureauRepository.getOne(creditBureauId); + final CreditBureau creditBureau = this.creditBureauRepository.getById(creditBureauId); final OrganisationCreditBureau organisationCreditBureau = OrganisationCreditBureau.fromJson(command, creditBureau); @@ -78,7 +78,7 @@ public class OrganisationCreditBureauWritePlatflormServiceImpl implements Organi final boolean isActive = command.booleanPrimitiveValueOfParameterNamed("isActive"); - final OrganisationCreditBureau orgcb = organisationCreditBureauRepository.getOne(creditbureauID); + final OrganisationCreditBureau orgcb = organisationCreditBureauRepository.getById(creditbureauID); orgcb.setIsActive(isActive); diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/jobs/service/JobRegisterServiceImpl.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/jobs/service/JobRegisterServiceImpl.java index af229e723..51ac1a401 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/jobs/service/JobRegisterServiceImpl.java +++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/jobs/service/JobRegisterServiceImpl.java @@ -69,56 +69,28 @@ public class JobRegisterServiceImpl implements JobRegisterService, ApplicationLi private static final Logger LOG = LoggerFactory.getLogger(JobRegisterServiceImpl.class); - // MIFOSX-1184: This class cannot use constructor injection, because one of - // its dependencies (SchedulerStopListener) has a circular dependency to - // itself. So, slightly differently from how it's done elsewhere in this - // code base, the following fields are not final, and there is no - // constructor, but setters. - + @Autowired private ApplicationContext applicationContext; + + @Autowired private SchedularWritePlatformService schedularWritePlatformService; + + @Autowired private TenantDetailsService tenantDetailsService; + + @Autowired private SchedulerJobListener schedulerJobListener; - private SchedulerStopListener schedulerStopListener; + + @Autowired private SchedulerTriggerListener globalSchedulerTriggerListener; + + @Autowired private JobParameterRepository jobParameterRepository; private final HashMap schedulers = new HashMap<>(4); - @Autowired - public void setApplicationContext(ApplicationContext applicationContext) { - this.applicationContext = applicationContext; - } - - @Autowired - public void setSchedularWritePlatformService(SchedularWritePlatformService schedularWritePlatformService) { - this.schedularWritePlatformService = schedularWritePlatformService; - } - - @Autowired - public void setTenantDetailsService(TenantDetailsService tenantDetailsService) { - this.tenantDetailsService = tenantDetailsService; - } - - @Autowired - public void setSchedulerJobListener(SchedulerJobListener schedulerJobListener) { - this.schedulerJobListener = schedulerJobListener; - } - - @Autowired - public void setSchedulerStopListener(SchedulerStopListener schedulerStopListener) { - this.schedulerStopListener = schedulerStopListener; - } - - @Autowired - public void setGlobalTriggerListener(SchedulerTriggerListener globalTriggerListener) { - this.globalSchedulerTriggerListener = globalTriggerListener; - } - - @Autowired - public void setJobParameterRepository(JobParameterRepository jobParameterRepository) { - this.jobParameterRepository = jobParameterRepository; - } + // This cannot be injected as Autowired due to circular dependency + private SchedulerStopListener schedulerStopListener = new SchedulerStopListener(this); @Value("${node_id:1}") private String nodeId; diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/jobs/service/SchedulerStopListener.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/jobs/service/SchedulerStopListener.java index 99efb7ed8..522d96b5e 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/jobs/service/SchedulerStopListener.java +++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/jobs/service/SchedulerStopListener.java @@ -21,13 +21,10 @@ package org.apache.fineract.infrastructure.jobs.service; import org.quartz.JobExecutionContext; import org.quartz.JobExecutionException; import org.quartz.JobListener; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; /** * Global job Listener class to Stop the temporary scheduler once job execution completes */ -@Component public class SchedulerStopListener implements JobListener { private static final String name = "Singlr Trigger Global Listener"; @@ -40,8 +37,7 @@ public class SchedulerStopListener implements JobListener { private JobRegisterService jobRegisterService; - @Autowired - public void setJobRegisterService(JobRegisterService jobRegisterService) { + public SchedulerStopListener(JobRegisterService jobRegisterService) { this.jobRegisterService = jobRegisterService; } diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/security/filter/TenantAwareBasicAuthenticationFilter.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/security/filter/TenantAwareBasicAuthenticationFilter.java index 69aed19a4..b97c3b045 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/security/filter/TenantAwareBasicAuthenticationFilter.java +++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/security/filter/TenantAwareBasicAuthenticationFilter.java @@ -45,7 +45,6 @@ import org.springframework.security.core.Authentication; import org.springframework.security.core.context.SecurityContextHolder; import org.springframework.security.web.AuthenticationEntryPoint; import org.springframework.security.web.authentication.www.BasicAuthenticationFilter; -import org.springframework.stereotype.Service; /** * A customised version of spring security's {@link BasicAuthenticationFilter}. @@ -59,33 +58,34 @@ import org.springframework.stereotype.Service; * * If multi-tenant and basic auth credentials are invalid, a http error response is returned. */ -@Service + @Profile("basicauth") public class TenantAwareBasicAuthenticationFilter extends BasicAuthenticationFilter { private static boolean firstRequestProcessed = false; private static final Logger LOG = LoggerFactory.getLogger(TenantAwareBasicAuthenticationFilter.class); - private final BasicAuthTenantDetailsService basicAuthTenantDetailsService; - private final ToApiJsonSerializer toApiJsonSerializer; - private final ConfigurationDomainService configurationDomainService; - private final CacheWritePlatformService cacheWritePlatformService; - private final NotificationReadPlatformService notificationReadPlatformService; + @Autowired + private ToApiJsonSerializer toApiJsonSerializer; + + @Autowired + private ConfigurationDomainService configurationDomainService; + + @Autowired + private CacheWritePlatformService cacheWritePlatformService; + + @Autowired + private NotificationReadPlatformService notificationReadPlatformService; + + @Autowired + private BasicAuthTenantDetailsService basicAuthTenantDetailsService; + private final String tenantRequestHeader = "Fineract-Platform-TenantId"; private final boolean exceptionIfHeaderMissing = true; - @Autowired public TenantAwareBasicAuthenticationFilter(final AuthenticationManager authenticationManager, - final AuthenticationEntryPoint authenticationEntryPoint, final BasicAuthTenantDetailsService basicAuthTenantDetailsService, - final ToApiJsonSerializer toApiJsonSerializer, final ConfigurationDomainService configurationDomainService, - final CacheWritePlatformService cacheWritePlatformService, - final NotificationReadPlatformService notificationReadPlatformService) { + final AuthenticationEntryPoint authenticationEntryPoint) { super(authenticationManager, authenticationEntryPoint); - this.basicAuthTenantDetailsService = basicAuthTenantDetailsService; - this.toApiJsonSerializer = toApiJsonSerializer; - this.configurationDomainService = configurationDomainService; - this.cacheWritePlatformService = cacheWritePlatformService; - this.notificationReadPlatformService = notificationReadPlatformService; } @Override diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/account/service/AccountTransfersReadPlatformServiceImpl.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/account/service/AccountTransfersReadPlatformServiceImpl.java index 242d292a1..41f8a721d 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/account/service/AccountTransfersReadPlatformServiceImpl.java +++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/account/service/AccountTransfersReadPlatformServiceImpl.java @@ -550,8 +550,8 @@ public class AccountTransfersReadPlatformServiceImpl implements AccountTransfers sqlBuilder.append(" and trans.transaction_date = ? "); sqlBuilder.append(" and IF(1=?, det.from_loan_account_id = ?, det.from_savings_account_id = ?) "); - return this.jdbcTemplate.queryForObject(sqlBuilder.toString(), - new Object[] { this.formatter.format(transactionDate), accountType, accountId, accountId }, BigDecimal.class); + return this.jdbcTemplate.queryForObject(sqlBuilder.toString(), BigDecimal.class, this.formatter.format(transactionDate), + accountType, accountId, accountId); } } diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/address/service/AddressWritePlatformServiceImpl.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/address/service/AddressWritePlatformServiceImpl.java index 595989239..0715b0e5b 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/address/service/AddressWritePlatformServiceImpl.java +++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/address/service/AddressWritePlatformServiceImpl.java @@ -79,22 +79,22 @@ public class AddressWritePlatformServiceImpl implements AddressWritePlatformServ if (command.longValueOfParameterNamed("stateProvinceId") != null) { stateId = command.longValueOfParameterNamed("stateProvinceId"); - stateIdobj = this.codeValueRepository.getOne(stateId); + stateIdobj = this.codeValueRepository.getById(stateId); } if (command.longValueOfParameterNamed("countryId") != null) { countryId = command.longValueOfParameterNamed("countryId"); - countryIdObj = this.codeValueRepository.getOne(countryId); + countryIdObj = this.codeValueRepository.getById(countryId); } - final CodeValue addressTypeIdObj = this.codeValueRepository.getOne(addressTypeId); + final CodeValue addressTypeIdObj = this.codeValueRepository.getById(addressTypeId); final Address add = Address.fromJson(command, stateIdobj, countryIdObj); add.setCreatedOn(LocalDate.now(DateUtils.getDateTimeZoneOfTenant())); add.setUpdatedOn(LocalDate.now(DateUtils.getDateTimeZoneOfTenant())); this.addressRepository.save(add); final Long addressid = add.getId(); - final Address addobj = this.addressRepository.getOne(addressid); + final Address addobj = this.addressRepository.getById(addressid); final Client client = this.clientRepositoryWrapper.findOneWithNotFoundDetection(clientId); final boolean isActive = command.booleanPrimitiveValueOfParameterNamed("isActive"); @@ -126,23 +126,23 @@ public class AddressWritePlatformServiceImpl implements AddressWritePlatformServ if (jsonObject.get("stateProvinceId") != null) { stateId = jsonObject.get("stateProvinceId").getAsLong(); - stateIdobj = this.codeValueRepository.getOne(stateId); + stateIdobj = this.codeValueRepository.getById(stateId); } if (jsonObject.get("countryId") != null) { countryId = jsonObject.get("countryId").getAsLong(); - countryIdObj = this.codeValueRepository.getOne(countryId); + countryIdObj = this.codeValueRepository.getById(countryId); } final long addressTypeId = jsonObject.get("addressTypeId").getAsLong(); - final CodeValue addressTypeIdObj = this.codeValueRepository.getOne(addressTypeId); + final CodeValue addressTypeIdObj = this.codeValueRepository.getById(addressTypeId); final Address add = Address.fromJsonObject(jsonObject, stateIdobj, countryIdObj); add.setCreatedOn(LocalDate.now(DateUtils.getDateTimeZoneOfTenant())); add.setUpdatedOn(LocalDate.now(DateUtils.getDateTimeZoneOfTenant())); this.addressRepository.save(add); final Long addressid = add.getId(); - final Address addobj = this.addressRepository.getOne(addressid); + final Address addobj = this.addressRepository.getById(addressid); // final boolean isActive = // jsonObject.get("isActive").getAsBoolean(); @@ -184,7 +184,7 @@ public class AddressWritePlatformServiceImpl implements AddressWritePlatformServ throw new AddressNotFoundException(clientId); } - final Address addobj = this.addressRepository.getOne(addressId); + final Address addobj = this.addressRepository.getById(addressId); if (!command.stringValueOfParameterNamed("addressLine1").isEmpty()) { @@ -232,7 +232,7 @@ public class AddressWritePlatformServiceImpl implements AddressWritePlatformServ if (command.longValueOfParameterNamed("stateProvinceId") != 0) { is_address_update = true; stateId = command.longValueOfParameterNamed("stateProvinceId"); - stateIdobj = this.codeValueRepository.getOne(stateId); + stateIdobj = this.codeValueRepository.getById(stateId); addobj.setStateProvince(stateIdobj); } @@ -241,7 +241,7 @@ public class AddressWritePlatformServiceImpl implements AddressWritePlatformServ if (command.longValueOfParameterNamed("countryId") != 0) { is_address_update = true; countryId = command.longValueOfParameterNamed("countryId"); - countryIdObj = this.codeValueRepository.getOne(countryId); + countryIdObj = this.codeValueRepository.getById(countryId); addobj.setCountry(countryIdObj); } diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/address/service/FieldConfigurationReadPlatformServiceImpl.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/address/service/FieldConfigurationReadPlatformServiceImpl.java index f8c05dc78..47355e5d9 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/address/service/FieldConfigurationReadPlatformServiceImpl.java +++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/address/service/FieldConfigurationReadPlatformServiceImpl.java @@ -82,7 +82,7 @@ public class FieldConfigurationReadPlatformServiceImpl implements FieldConfigura final FieldMapper rm = new FieldMapper(); final String sql = "select " + rm.schema() + " where fld.entity=?"; - return this.jdbcTemplate.query(sql, new Object[] { entity }, rm); + return this.jdbcTemplate.query(sql, rm, entity); } } diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/calendar/domain/CalendarFrequencyType.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/calendar/domain/CalendarFrequencyType.java index f8b6c3ecb..c51ec59ba 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/calendar/domain/CalendarFrequencyType.java +++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/calendar/domain/CalendarFrequencyType.java @@ -62,7 +62,7 @@ public enum CalendarFrequencyType { public static CalendarFrequencyType fromString(final String frequencyString) { CalendarFrequencyType frequency = CalendarFrequencyType.INVALID; - if (StringUtils.isEmpty(frequencyString)) { + if (!StringUtils.hasText(frequencyString)) { return frequency; } diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/calendar/domain/CalendarWeekDaysType.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/calendar/domain/CalendarWeekDaysType.java index 1b1b7051e..d4190e2d8 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/calendar/domain/CalendarWeekDaysType.java +++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/calendar/domain/CalendarWeekDaysType.java @@ -79,7 +79,7 @@ public enum CalendarWeekDaysType { public static CalendarWeekDaysType fromString(final String weekDayString) { CalendarWeekDaysType weekDay = CalendarWeekDaysType.INVALID; - if (StringUtils.isEmpty(weekDayString)) { + if (!StringUtils.hasText(weekDayString)) { return weekDay; } diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/calendar/service/CalendarReadPlatformServiceImpl.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/calendar/service/CalendarReadPlatformServiceImpl.java index a0cd047e2..0f276b622 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/calendar/service/CalendarReadPlatformServiceImpl.java +++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/calendar/service/CalendarReadPlatformServiceImpl.java @@ -268,8 +268,7 @@ public class CalendarReadPlatformServiceImpl implements CalendarReadPlatformServ String query = "Select COUNT(*) from m_calendar_instance ci where ci.entity_id = ? and ci.calendar_id = ? and " + " ci.entity_type_enum = ?"; try { - int calendarInstaneId = this.jdbcTemplate.queryForObject(query, new Object[] { entityId, calendarId, entityTypeId }, - Integer.class); + int calendarInstaneId = this.jdbcTemplate.queryForObject(query, Integer.class, entityId, calendarId, entityTypeId); if (calendarInstaneId > 0) { return true; } diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/client/domain/ClientStatus.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/client/domain/ClientStatus.java index 46388584c..75c0e4532 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/client/domain/ClientStatus.java +++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/client/domain/ClientStatus.java @@ -69,7 +69,7 @@ public enum ClientStatus { ClientStatus clientStatus = ClientStatus.INVALID; - if (StringUtils.isEmpty(clientString)) { + if (!StringUtils.hasLength(clientString)) { return clientStatus; } diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/client/service/ClientFamilyMembersWritePlatformServiceImpl.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/client/service/ClientFamilyMembersWritePlatformServiceImpl.java index 8f2200e02..c5d8f6c52 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/client/service/ClientFamilyMembersWritePlatformServiceImpl.java +++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/client/service/ClientFamilyMembersWritePlatformServiceImpl.java @@ -119,22 +119,22 @@ public class ClientFamilyMembersWritePlatformServiceImpl implements ClientFamily if (command.longValueOfParameterNamed("relationshipId") != null) { relationshipId = command.longValueOfParameterNamed("relationshipId"); - relationship = this.codeValueRepository.getOne(relationshipId); + relationship = this.codeValueRepository.getById(relationshipId); } if (command.longValueOfParameterNamed("maritalStatusId") != null) { maritalStatusId = command.longValueOfParameterNamed("maritalStatusId"); - maritalStatus = this.codeValueRepository.getOne(maritalStatusId); + maritalStatus = this.codeValueRepository.getById(maritalStatusId); } if (command.longValueOfParameterNamed("genderId") != null) { genderId = command.longValueOfParameterNamed("genderId"); - gender = this.codeValueRepository.getOne(genderId); + gender = this.codeValueRepository.getById(genderId); } if (command.longValueOfParameterNamed("professionId") != null) { professionId = command.longValueOfParameterNamed("professionId"); - profession = this.codeValueRepository.getOne(professionId); + profession = this.codeValueRepository.getById(professionId); } if (command.dateValueOfParameterNamed("dateOfBirth") != null) { @@ -218,22 +218,22 @@ public class ClientFamilyMembersWritePlatformServiceImpl implements ClientFamily if (member.get("relationshipId") != null) { relationshipId = member.get("relationshipId").getAsLong(); - relationship = this.codeValueRepository.getOne(relationshipId); + relationship = this.codeValueRepository.getById(relationshipId); } if (member.get("maritalStatusId") != null) { maritalStatusId = member.get("maritalStatusId").getAsLong(); - maritalStatus = this.codeValueRepository.getOne(maritalStatusId); + maritalStatus = this.codeValueRepository.getById(maritalStatusId); } if (member.get("genderId") != null) { genderId = member.get("genderId").getAsLong(); - gender = this.codeValueRepository.getOne(genderId); + gender = this.codeValueRepository.getById(genderId); } if (member.get("professionId") != null) { professionId = member.get("professionId").getAsLong(); - profession = this.codeValueRepository.getOne(professionId); + profession = this.codeValueRepository.getById(professionId); } if (member.get("dateOfBirth") != null) { @@ -295,7 +295,7 @@ public class ClientFamilyMembersWritePlatformServiceImpl implements ClientFamily * command.longValueOfParameterNamed("clientFamilyMemberId"); } */ - ClientFamilyMembers clientFamilyMember = clientFamilyRepository.getOne(familyMemberId); + ClientFamilyMembers clientFamilyMember = clientFamilyRepository.getById(familyMemberId); // Client // client=clientRepositoryWrapper.findOneWithNotFoundDetection(clientId); @@ -337,25 +337,25 @@ public class ClientFamilyMembersWritePlatformServiceImpl implements ClientFamily if (command.longValueOfParameterNamed("relationShipId") != null) { relationshipId = command.longValueOfParameterNamed("relationShipId"); - relationship = this.codeValueRepository.getOne(relationshipId); + relationship = this.codeValueRepository.getById(relationshipId); clientFamilyMember.setRelationship(relationship); } if (command.longValueOfParameterNamed("maritalStatusId") != 0) { maritalStatusId = command.longValueOfParameterNamed("maritalStatusId"); - maritalStatus = this.codeValueRepository.getOne(maritalStatusId); + maritalStatus = this.codeValueRepository.getById(maritalStatusId); clientFamilyMember.setMaritalStatus(maritalStatus); } if (command.longValueOfParameterNamed("genderId") != 0) { genderId = command.longValueOfParameterNamed("genderId"); - gender = this.codeValueRepository.getOne(genderId); + gender = this.codeValueRepository.getById(genderId); clientFamilyMember.setGender(gender); } if (command.longValueOfParameterNamed("professionId") != 0) { professionId = command.longValueOfParameterNamed("professionId"); - profession = this.codeValueRepository.getOne(professionId); + profession = this.codeValueRepository.getById(professionId); clientFamilyMember.setProfession(profession); } @@ -386,7 +386,7 @@ public class ClientFamilyMembersWritePlatformServiceImpl implements ClientFamily ClientFamilyMembers clientFamilyMember = null; if (clientFamilyMemberId != null) { - clientFamilyMember = clientFamilyRepository.getOne(clientFamilyMemberId); + clientFamilyMember = clientFamilyRepository.getById(clientFamilyMemberId); clientFamilyRepository.delete(clientFamilyMember); } diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/client/service/ClientWritePlatformServiceJpaRepositoryImpl.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/client/service/ClientWritePlatformServiceJpaRepositoryImpl.java index 00c22551d..acda53d9e 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/client/service/ClientWritePlatformServiceJpaRepositoryImpl.java +++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/client/service/ClientWritePlatformServiceJpaRepositoryImpl.java @@ -175,7 +175,7 @@ public class ClientWritePlatformServiceJpaRepositoryImpl implements ClientWriteP throw new ClientMustBePendingToBeDeletedException(clientId); } final List relatedNotes = this.noteRepository.findByClient(client); - this.noteRepository.deleteInBatch(relatedNotes); + this.noteRepository.deleteAllInBatch(relatedNotes); final ClientNonPerson clientNonPerson = this.clientNonPersonRepository.findOneByClientId(clientId); if (clientNonPerson != null) { diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/group/service/GroupingTypesWritePlatformServiceJpaRepositoryImpl.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/group/service/GroupingTypesWritePlatformServiceJpaRepositoryImpl.java index 4b4a1ae87..3c2945333 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/group/service/GroupingTypesWritePlatformServiceJpaRepositoryImpl.java +++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/group/service/GroupingTypesWritePlatformServiceJpaRepositoryImpl.java @@ -595,7 +595,7 @@ public class GroupingTypesWritePlatformServiceJpaRepositoryImpl implements Group } final List relatedNotes = this.noteRepository.findByGroup(groupForDelete); - this.noteRepository.deleteInBatch(relatedNotes); + this.noteRepository.deleteAllInBatch(relatedNotes); this.groupRepository.delete(groupForDelete); this.groupRepository.flush(); diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/service/LoanApplicationWritePlatformServiceJpaRepositoryImpl.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/service/LoanApplicationWritePlatformServiceJpaRepositoryImpl.java index 7d78d7543..1235dd877 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/service/LoanApplicationWritePlatformServiceJpaRepositoryImpl.java +++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/service/LoanApplicationWritePlatformServiceJpaRepositoryImpl.java @@ -1286,7 +1286,7 @@ public class LoanApplicationWritePlatformServiceJpaRepositoryImpl implements Loa } final List relatedNotes = this.noteRepository.findByLoanId(loan.getId()); - this.noteRepository.deleteInBatch(relatedNotes); + this.noteRepository.deleteAllInBatch(relatedNotes); final AccountAssociations accountAssociations = this.accountAssociationsRepository.findByLoanIdAndType(loanId, AccountAssociationType.LINKED_ACCOUNT_ASSOCIATION.getValue()); diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/service/LoanReadPlatformServiceImpl.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/service/LoanReadPlatformServiceImpl.java index 5f37345e5..98233d00c 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/service/LoanReadPlatformServiceImpl.java +++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/service/LoanReadPlatformServiceImpl.java @@ -2059,8 +2059,7 @@ public class LoanReadPlatformServiceImpl implements LoanReadPlatformService { public Date retrieveMinimumDateOfRepaymentTransaction(Long loanId) { // TODO Auto-generated method stub Date date = this.jdbcTemplate.queryForObject( - "select min(transaction_date) from m_loan_transaction where loan_id=? and transaction_type_enum=2", new Object[] { loanId }, - Date.class); + "select min(transaction_date) from m_loan_transaction where loan_id=? and transaction_type_enum=2", Date.class, loanId); return date; } @@ -2290,8 +2289,7 @@ public class LoanReadPlatformServiceImpl implements LoanReadPlatformService { @Override public Long retrieveLoanIdByAccountNumber(String loanAccountNumber) { try { - return this.jdbcTemplate.queryForObject("select l.id from m_loan l where l.account_no = ?", new Object[] { loanAccountNumber }, - Long.class); + return this.jdbcTemplate.queryForObject("select l.id from m_loan l where l.account_no = ?", Long.class, loanAccountNumber); } catch (final EmptyResultDataAccessException e) { return null; @@ -2302,7 +2300,7 @@ public class LoanReadPlatformServiceImpl implements LoanReadPlatformService { public String retrieveAccountNumberByAccountId(Long accountId) { try { final String sql = "select loan.account_no from m_loan loan where loan.id = ?"; - return this.jdbcTemplate.queryForObject(sql, new Object[] { accountId }, String.class); + return this.jdbcTemplate.queryForObject(sql, String.class, accountId); } catch (final EmptyResultDataAccessException e) { throw new LoanNotFoundException(accountId, e); } diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/service/LoanWritePlatformServiceJpaRepositoryImpl.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/service/LoanWritePlatformServiceJpaRepositoryImpl.java index ca560d75e..51cca57c9 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/service/LoanWritePlatformServiceJpaRepositoryImpl.java +++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/service/LoanWritePlatformServiceJpaRepositoryImpl.java @@ -1857,7 +1857,7 @@ public class LoanWritePlatformServiceJpaRepositoryImpl implements LoanWritePlatf this.businessEventNotifierService.notifyBusinessEventWasExecuted(BusinessEvents.LOAN_WAIVE_CHARGE_UNDO, constructEntityMap(BusinessEntity.LOAN_CHARGE, loanCharge)); - LoanTransaction loanTransactionData = this.loanTransactionRepository.getOne(command.entityId()); + LoanTransaction loanTransactionData = this.loanTransactionRepository.getById(command.entityId()); changes.put("principalPortion", loanTransactionData.getPrincipalPortion()); changes.put("interestPortion", loanTransactionData.getInterestPortion(loan.getCurrency())); changes.put("feeChargesPortion", loanTransactionData.getFeeChargesPortion(loan.getCurrency())); diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/service/DepositApplicationProcessWritePlatformServiceJpaRepositoryImpl.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/service/DepositApplicationProcessWritePlatformServiceJpaRepositoryImpl.java index 844eb3248..8338aeae6 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/service/DepositApplicationProcessWritePlatformServiceJpaRepositoryImpl.java +++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/service/DepositApplicationProcessWritePlatformServiceJpaRepositoryImpl.java @@ -623,7 +623,7 @@ public class DepositApplicationProcessWritePlatformServiceJpaRepositoryImpl impl } final List relatedNotes = this.noteRepository.findBySavingsAccount(account); - this.noteRepository.deleteInBatch(relatedNotes); + this.noteRepository.deleteAllInBatch(relatedNotes); this.savingAccountRepository.delete(account); diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/service/SavingsAccountReadPlatformServiceImpl.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/service/SavingsAccountReadPlatformServiceImpl.java index 9f0b85412..63dd5080e 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/service/SavingsAccountReadPlatformServiceImpl.java +++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/service/SavingsAccountReadPlatformServiceImpl.java @@ -1202,8 +1202,8 @@ public class SavingsAccountReadPlatformServiceImpl implements SavingsAccountRead final StringBuilder buff = new StringBuilder("select count(*) from m_savings_account sa "); buff.append( " where sa.id = ? and sa.client_id = ? and sa.deposit_type_enum = ? and sa.currency_code = ? and sa.status_enum = 300"); - return this.jdbcTemplate.queryForObject(buff.toString(), - new Object[] { accountId, clientId, depositAccountType.getValue(), currencyCode }, Integer.class) > 0; + return this.jdbcTemplate.queryForObject(buff.toString(), Integer.class, accountId, clientId, depositAccountType.getValue(), + currencyCode) > 0; } catch (final EmptyResultDataAccessException e) { throw new SavingsAccountNotFoundException(accountId, e); } @@ -1235,7 +1235,7 @@ public class SavingsAccountReadPlatformServiceImpl implements SavingsAccountRead public String retrieveAccountNumberByAccountId(Long accountId) { try { final String sql = "select s.account_no from m_savings_account s where s.id = ?"; - return this.jdbcTemplate.queryForObject(sql, new Object[] { accountId }, String.class); + return this.jdbcTemplate.queryForObject(sql, String.class, accountId); } catch (final EmptyResultDataAccessException e) { throw new SavingsAccountNotFoundException(accountId, e); } diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/service/SavingsApplicationProcessWritePlatformServiceJpaRepositoryImpl.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/service/SavingsApplicationProcessWritePlatformServiceJpaRepositoryImpl.java index ef038da66..2265348dd 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/service/SavingsApplicationProcessWritePlatformServiceJpaRepositoryImpl.java +++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/service/SavingsApplicationProcessWritePlatformServiceJpaRepositoryImpl.java @@ -468,7 +468,7 @@ public class SavingsApplicationProcessWritePlatformServiceJpaRepositoryImpl impl } final List relatedNotes = this.noteRepository.findBySavingsAccount(account); - this.noteRepository.deleteInBatch(relatedNotes); + this.noteRepository.deleteAllInBatch(relatedNotes); this.savingAccountRepository.delete(account); diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/self/account/service/SelfBeneficiariesTPTReadPlatformServiceImpl.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/self/account/service/SelfBeneficiariesTPTReadPlatformServiceImpl.java index a6f33da4d..aeddb145d 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/self/account/service/SelfBeneficiariesTPTReadPlatformServiceImpl.java +++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/self/account/service/SelfBeneficiariesTPTReadPlatformServiceImpl.java @@ -186,6 +186,6 @@ public class SelfBeneficiariesTPTReadPlatformServiceImpl implements SelfBenefici sqlBuilder.append(" and b.account_type = ? "); sqlBuilder.append(" and b.is_active = 1; "); - return this.jdbcTemplate.queryForObject(sqlBuilder.toString(), new Object[] { appUserId, accountId, accountType }, Long.class); + return this.jdbcTemplate.queryForObject(sqlBuilder.toString(), Long.class, appUserId, accountId, accountType); } } diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/self/client/service/AppuserClientMapperReadServiceImpl.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/self/client/service/AppuserClientMapperReadServiceImpl.java index 764c6796e..ddf444130 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/self/client/service/AppuserClientMapperReadServiceImpl.java +++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/self/client/service/AppuserClientMapperReadServiceImpl.java @@ -43,7 +43,7 @@ public class AppuserClientMapperReadServiceImpl implements AppuserClientMapperRe return this.jdbcTemplate.queryForObject( "select case when (count(*) > 0) then true else false end " + " from m_selfservice_user_client_mapping where client_id = ? and appuser_id = ?", - new Object[] { clientId, appUserId }, Boolean.class); + Boolean.class, clientId, appUserId); } @Override diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/self/loanaccount/service/AppuserLoansMapperReadServiceImpl.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/self/loanaccount/service/AppuserLoansMapperReadServiceImpl.java index 40fec6d77..23dd652f2 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/self/loanaccount/service/AppuserLoansMapperReadServiceImpl.java +++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/self/loanaccount/service/AppuserLoansMapperReadServiceImpl.java @@ -38,7 +38,7 @@ public class AppuserLoansMapperReadServiceImpl implements AppuserLoansMapperRead return this.jdbcTemplate.queryForObject( "select case when (count(*) > 0) then true else false end " + " from m_selfservice_user_client_mapping as m " + " left join m_loan as l on l.client_id = m.client_id " + " where l.id = ? and m.appuser_id = ? ", - new Object[] { loanId, appUserId }, Boolean.class); + Boolean.class, loanId, appUserId); } } 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 1475d24af..57199bfb7 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 @@ -79,7 +79,7 @@ public class PocketAccountMappingReadPlatformServiceImpl implements PocketAccoun public boolean validatePocketAndAccountMapping(Long pocketId, Long accountId, Integer accountType) { final String sql = "select count(id) from m_pocket_accounts_mapping mapping where pocket_id = ? and account_id = ? and account_type = ?"; try { - return this.jdbcTemplate.queryForObject(sql, new Object[] { pocketId, accountId, accountType }, Boolean.class); + return this.jdbcTemplate.queryForObject(sql, Boolean.class, pocketId, accountId, accountType); } catch (EmptyResultDataAccessException e) { return false; } diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/self/registration/service/SelfServiceRegistrationReadPlatformServiceImpl.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/self/registration/service/SelfServiceRegistrationReadPlatformServiceImpl.java index 5259d56b5..92b288c4c 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/self/registration/service/SelfServiceRegistrationReadPlatformServiceImpl.java +++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/self/registration/service/SelfServiceRegistrationReadPlatformServiceImpl.java @@ -42,7 +42,7 @@ public class SelfServiceRegistrationReadPlatformServiceImpl implements SelfServi sql = sql + " and mobile_no = ?"; params = new Object[] { accountNumber, firstName, lastName, mobileNumber }; } - Integer count = this.jdbcTemplate.queryForObject(sql, params, Integer.class); + Integer count = this.jdbcTemplate.queryForObject(sql, Integer.class, params); if (count == 0) { return false; } diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/self/savings/service/AppuserSavingsMapperReadServiceImpl.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/self/savings/service/AppuserSavingsMapperReadServiceImpl.java index b9455ef4d..999002092 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/self/savings/service/AppuserSavingsMapperReadServiceImpl.java +++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/self/savings/service/AppuserSavingsMapperReadServiceImpl.java @@ -38,6 +38,6 @@ public class AppuserSavingsMapperReadServiceImpl implements AppuserSavingsMapper return this.jdbcTemplate.queryForObject( "select case when (count(*) > 0) then true else false end " + " from m_selfservice_user_client_mapping as m " + " left join m_savings_account as s on s.client_id = m.client_id " + " where s.id = ? and m.appuser_id = ? ", - new Object[] { savingsId, appUserId }, Boolean.class); + Boolean.class, savingsId, appUserId); } } diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/self/shareaccounts/service/AppUserShareAccountsMapperReadPlatformServiceImpl.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/self/shareaccounts/service/AppUserShareAccountsMapperReadPlatformServiceImpl.java index a20b2f03c..7af7fb0be 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/self/shareaccounts/service/AppUserShareAccountsMapperReadPlatformServiceImpl.java +++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/self/shareaccounts/service/AppUserShareAccountsMapperReadPlatformServiceImpl.java @@ -39,7 +39,7 @@ public class AppUserShareAccountsMapperReadPlatformServiceImpl implements AppUse return this.jdbcTemplate.queryForObject("select case when (count(*) > 0) then true else false end " + " from m_selfservice_user_client_mapping as m " + " left join m_share_account as shares on shares.client_id = m.client_id " + " where shares.id = ? and m.appuser_id = ? ", - new Object[] { accountId, appUserId }, Boolean.class); + Boolean.class, accountId, appUserId); } } 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 622a84e53..eee0cf437 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 @@ -232,7 +232,7 @@ public class ShareAccountReadPlatformServiceImpl implements ShareAccountReadPlat sb.append(" and saps.status_enum = ?"); params.add(PurchasedSharesStatusType.APPROVED.getValue()); Object[] whereClauseItems = params.toArray(); - return this.jdbcTemplate.query(sb.toString(), whereClauseItems, mapper); + return this.jdbcTemplate.query(sb.toString(), mapper, whereClauseItems); } public Collection convertChargesToShareAccountCharges(Collection productCharges) { @@ -510,7 +510,7 @@ public class ShareAccountReadPlatformServiceImpl implements ShareAccountReadPlat public String retrieveAccountNumberByAccountId(Long accountId) { try { final String sql = "select s.account_no from m_share_account s where s.id = ?"; - return this.jdbcTemplate.queryForObject(sql, new Object[] { accountId }, String.class); + return this.jdbcTemplate.queryForObject(sql, String.class, accountId); } catch (final EmptyResultDataAccessException e) { throw new ShareAccountNotFoundException(accountId, e); } diff --git a/fineract-provider/src/main/java/org/apache/fineract/scheduledjobs/service/ScheduledJobRunnerServiceImpl.java b/fineract-provider/src/main/java/org/apache/fineract/scheduledjobs/service/ScheduledJobRunnerServiceImpl.java index a9260c781..24a4655d5 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/scheduledjobs/service/ScheduledJobRunnerServiceImpl.java +++ b/fineract-provider/src/main/java/org/apache/fineract/scheduledjobs/service/ScheduledJobRunnerServiceImpl.java @@ -57,6 +57,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; +import org.springframework.context.annotation.Lazy; import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -92,7 +93,7 @@ public class ScheduledJobRunnerServiceImpl implements ScheduledJobRunnerService final DepositAccountWritePlatformService depositAccountWritePlatformService, final ShareAccountDividendReadPlatformService shareAccountDividendReadPlatformService, final ShareAccountSchedularService shareAccountSchedularService, - final TrialBalanceRepositoryWrapper trialBalanceRepositoryWrapper, final JobRegisterService jobRegisterService, + final TrialBalanceRepositoryWrapper trialBalanceRepositoryWrapper, @Lazy final JobRegisterService jobRegisterService, final ScheduledJobDetailRepository scheduledJobDetailsRepository) { this.dataSourceServiceFactory = dataSourceServiceFactory; this.savingsAccountWritePlatformService = savingsAccountWritePlatformService; @@ -461,16 +462,15 @@ public class ScheduledJobRunnerServiceImpl implements ScheduledJobRunnerService // Updating closing balance String distinctOfficeQuery = "select distinct(office_id) from m_trial_balance where closing_balance is null group by office_id"; - final List officeIds = jdbcTemplate.queryForList(distinctOfficeQuery, new Object[] {}, Long.class); + final List officeIds = jdbcTemplate.queryForList(distinctOfficeQuery, Long.class); for (Long officeId : officeIds) { String distinctAccountQuery = "select distinct(account_id) from m_trial_balance where office_id=? and closing_balance is null group by account_id"; - final List accountIds = jdbcTemplate.queryForList(distinctAccountQuery, new Object[] { officeId }, Long.class); + final List accountIds = jdbcTemplate.queryForList(distinctAccountQuery, Long.class, officeId); for (Long accountId : accountIds) { final String closingBalanceQuery = "select closing_balance from m_trial_balance where office_id=? and account_id=? and closing_balance " + "is not null order by created_date desc, entry_date desc limit 1"; - List closingBalanceData = jdbcTemplate.queryForList(closingBalanceQuery, new Object[] { officeId, accountId }, - BigDecimal.class); + List closingBalanceData = jdbcTemplate.queryForList(closingBalanceQuery, BigDecimal.class, officeId, accountId); List tbRows = this.trialBalanceRepositoryWrapper.findNewByOfficeAndAccount(officeId, accountId); BigDecimal closingBalance = null; if (!CollectionUtils.isEmpty(closingBalanceData)) { diff --git a/fineract-provider/src/main/java/org/apache/fineract/useradministration/service/AppUserReadPlatformServiceImpl.java b/fineract-provider/src/main/java/org/apache/fineract/useradministration/service/AppUserReadPlatformServiceImpl.java index ea2fa1142..ac37343ed 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/useradministration/service/AppUserReadPlatformServiceImpl.java +++ b/fineract-provider/src/main/java/org/apache/fineract/useradministration/service/AppUserReadPlatformServiceImpl.java @@ -219,7 +219,7 @@ public class AppUserReadPlatformServiceImpl implements AppUserReadPlatformServic public boolean isUsernameExist(String username) { String sql = "select count(*) from m_appuser where username = ?"; Object[] params = new Object[] { username }; - Integer count = this.jdbcTemplate.queryForObject(sql, params, Integer.class); + Integer count = this.jdbcTemplate.queryForObject(sql, Integer.class, params); if (count == 0) { return false; } diff --git a/fineract-provider/src/main/java/org/apache/fineract/useradministration/service/RoleReadPlatformServiceImpl.java b/fineract-provider/src/main/java/org/apache/fineract/useradministration/service/RoleReadPlatformServiceImpl.java index c9b8edb7f..a00fb9994 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/useradministration/service/RoleReadPlatformServiceImpl.java +++ b/fineract-provider/src/main/java/org/apache/fineract/useradministration/service/RoleReadPlatformServiceImpl.java @@ -63,7 +63,7 @@ public class RoleReadPlatformServiceImpl implements RoleReadPlatformService { final String role = SelfServiceApiConstants.SELF_SERVICE_USER_ROLE; final String sql = "select " + this.roleRowMapper.schema() + " where r.name = ? order by r.id"; - return this.jdbcTemplate.query(sql, new Object[] { role }, this.roleRowMapper); + return this.jdbcTemplate.query(sql, this.roleRowMapper, role); } @Override diff --git a/fineract-provider/src/test/java/org/apache/fineract/notification/TopicTest.java b/fineract-provider/src/test/java/org/apache/fineract/notification/TopicTest.java index aa997b9a4..fcf34f126 100644 --- a/fineract-provider/src/test/java/org/apache/fineract/notification/TopicTest.java +++ b/fineract-provider/src/test/java/org/apache/fineract/notification/TopicTest.java @@ -65,12 +65,12 @@ public class TopicTest { @Test public void testTopicStorage() { - Office office = officeRepository.getOne(1L); + Office office = officeRepository.getById(1L); Role role = new Role("New Member_Type", "Testing topic creation"); - Topic topic = topicRepository.getOne(1L); + Topic topic = topicRepository.getById(1L); - lenient().when(this.officeRepository.getOne(1L)).thenReturn(office); - lenient().when(this.topicRepository.getOne(1L)).thenReturn(topic); + lenient().when(this.officeRepository.getById(1L)).thenReturn(office); + lenient().when(this.topicRepository.getById(1L)).thenReturn(topic); when(this.roleRepository.save(role)).thenReturn(role); when(this.topicWritePltfService.create(refEq(topic))).thenReturn(1L); @@ -85,13 +85,13 @@ public class TopicTest { @Test public void testTopicSubscriberStorage() { - AppUser user = appUserRepository.getOne(1L); - Topic topic = topicRepository.getOne(1L); + AppUser user = appUserRepository.getById(1L); + Topic topic = topicRepository.getById(1L); TopicSubscriber topicSubscriber = new TopicSubscriber(topic, user, new Date()); - lenient().when(this.appUserRepository.getOne(1L)).thenReturn(user); - lenient().when(this.topicRepository.getOne(1L)).thenReturn(topic); + lenient().when(this.appUserRepository.getById(1L)).thenReturn(user); + lenient().when(this.topicRepository.getById(1L)).thenReturn(topic); when(this.topicSubscriberWritePltfService.create(refEq(topicSubscriber))).thenReturn(1L); Long subscriberId = this.topicSubscriberWritePltfService.create(topicSubscriber);