[FINERACT-1667] Introducing Spring Batch as job runner engine

This commit is contained in:
taskain7
2022-07-28 12:45:01 +02:00
committed by Arnold Gálovics
parent d03044c48b
commit ff9181cc47
132 changed files with 5995 additions and 3228 deletions
@@ -18,6 +18,7 @@
*/
package org.apache.fineract;
import static org.mockito.Mockito.RETURNS_MOCKS;
import static org.mockito.Mockito.mock;
import com.zaxxer.hikari.HikariDataSource;
@@ -29,6 +30,7 @@ import org.apache.fineract.infrastructure.core.service.migration.ExtendedSpringL
import org.apache.fineract.infrastructure.core.service.migration.TenantDataSourceFactory;
import org.apache.fineract.infrastructure.core.service.migration.TenantDatabaseStateVerifier;
import org.apache.fineract.infrastructure.core.service.migration.TenantDatabaseUpgradeService;
import org.apache.fineract.infrastructure.jobs.ScheduledJobRunnerConfig;
import org.apache.fineract.infrastructure.jobs.service.JobRegisterService;
import org.apache.fineract.infrastructure.security.service.TenantDetailsService;
import org.junit.jupiter.api.extension.ExtendWith;
@@ -36,6 +38,8 @@ import org.mockito.Mockito;
import org.mockito.junit.jupiter.MockitoExtension;
import org.mockito.junit.jupiter.MockitoSettings;
import org.mockito.quality.Strictness;
import org.springframework.batch.core.configuration.annotation.JobBuilderFactory;
import org.springframework.batch.core.configuration.annotation.StepBuilderFactory;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.autoconfigure.gson.GsonAutoConfiguration;
import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
@@ -48,6 +52,8 @@ import org.springframework.boot.context.properties.EnableConfigurationProperties
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.FilterType;
import org.springframework.context.annotation.Primary;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
import org.springframework.transaction.annotation.EnableTransactionManagement;
@@ -64,7 +70,8 @@ import org.springframework.transaction.annotation.EnableTransactionManagement;
@EnableTransactionManagement
@EnableWebSecurity
@EnableConfigurationProperties({ FineractProperties.class, LiquibaseProperties.class })
@ComponentScan(basePackages = "org.apache.fineract")
@ComponentScan(basePackages = "org.apache.fineract", excludeFilters = {
@ComponentScan.Filter(type = FilterType.ASSIGNABLE_TYPE, classes = ScheduledJobRunnerConfig.class) })
@ExtendWith(MockitoExtension.class)
@MockitoSettings(strictness = Strictness.LENIENT)
public class TestConfiguration {
@@ -80,6 +87,18 @@ public class TestConfiguration {
};
}
@Primary
@Bean
public JobBuilderFactory jobBuilderFactory() {
return mock(JobBuilderFactory.class, RETURNS_MOCKS);
}
@Primary
@Bean
public StepBuilderFactory stepBuilderFactory() {
return mock(StepBuilderFactory.class, RETURNS_MOCKS);
}
@Bean
public HikariDataSource tenantDataSource() {
return mock(HikariDataSource.class, Mockito.RETURNS_MOCKS);