@@ -111,11 +111,6 @@ class BatchRegistrar implements ImportBeanDefinitionRegistrar {
|
||||
beanDefinitionBuilder.addPropertyReference("serializer", executionContextSerializerRef);
|
||||
}
|
||||
|
||||
String lobHandlerRef = batchAnnotation.lobHandlerRef();
|
||||
if (registry.containsBeanDefinition(lobHandlerRef)) {
|
||||
beanDefinitionBuilder.addPropertyReference("lobHandler", lobHandlerRef);
|
||||
}
|
||||
|
||||
String conversionServiceRef = batchAnnotation.conversionServiceRef();
|
||||
if (registry.containsBeanDefinition(conversionServiceRef)) {
|
||||
beanDefinitionBuilder.addPropertyReference("conversionService", conversionServiceRef);
|
||||
@@ -178,11 +173,6 @@ class BatchRegistrar implements ImportBeanDefinitionRegistrar {
|
||||
beanDefinitionBuilder.addPropertyReference("serializer", executionContextSerializerRef);
|
||||
}
|
||||
|
||||
String lobHandlerRef = batchAnnotation.lobHandlerRef();
|
||||
if (registry.containsBeanDefinition(lobHandlerRef)) {
|
||||
beanDefinitionBuilder.addPropertyReference("lobHandler", lobHandlerRef);
|
||||
}
|
||||
|
||||
String conversionServiceRef = batchAnnotation.conversionServiceRef();
|
||||
if (registry.containsBeanDefinition(conversionServiceRef)) {
|
||||
beanDefinitionBuilder.addPropertyReference("conversionService", conversionServiceRef);
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2012-2024 the original author or authors.
|
||||
* Copyright 2012-2025 the original author or authors.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@@ -238,14 +238,6 @@ public @interface EnableBatchProcessing {
|
||||
*/
|
||||
String jobKeyGeneratorRef() default "jobKeyGenerator";
|
||||
|
||||
/**
|
||||
* The large object handler to use in job repository and job explorer.
|
||||
* @return the bean name of the lob handler to use. Defaults to {@literal lobHandler}.
|
||||
* @deprecated Since 5.2 with no replacement. Scheduled for removal in v6
|
||||
*/
|
||||
@Deprecated(since = "5.2.0", forRemoval = true)
|
||||
String lobHandlerRef() default "lobHandler";
|
||||
|
||||
/**
|
||||
* The type of large objects.
|
||||
* @return the type of large objects.
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2012-2024 the original author or authors.
|
||||
* Copyright 2012-2025 the original author or authors.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@@ -67,8 +67,6 @@ import org.springframework.jdbc.core.JdbcOperations;
|
||||
import org.springframework.jdbc.core.JdbcTemplate;
|
||||
import org.springframework.jdbc.support.MetaDataAccessException;
|
||||
import org.springframework.jdbc.support.incrementer.DataFieldMaxValueIncrementer;
|
||||
import org.springframework.jdbc.support.lob.DefaultLobHandler;
|
||||
import org.springframework.jdbc.support.lob.LobHandler;
|
||||
import org.springframework.transaction.PlatformTransactionManager;
|
||||
import org.springframework.transaction.annotation.Isolation;
|
||||
|
||||
@@ -85,7 +83,8 @@ import org.springframework.transaction.annotation.Isolation;
|
||||
* <li>a {@link JobLauncher} named "jobLauncher"</li>
|
||||
* <li>a {@link JobRegistry} named "jobRegistry"</li>
|
||||
* <li>a {@link JobOperator} named "JobOperator"</li>
|
||||
* <li>a {@link JobRegistryBeanPostProcessor} named "jobRegistryBeanPostProcessor"</li>
|
||||
* <li>a {@link JobRegistrySmartInitializingSingleton} named
|
||||
* "jobRegistrySmartInitializingSingleton"</li>
|
||||
* <li>a {@link org.springframework.batch.core.scope.StepScope} named "stepScope"</li>
|
||||
* <li>a {@link org.springframework.batch.core.scope.JobScope} named "jobScope"</li>
|
||||
* </ul>
|
||||
@@ -137,7 +136,6 @@ public class DefaultBatchConfiguration implements ApplicationContextAware {
|
||||
jobRepositoryFactoryBean.setSerializer(getExecutionContextSerializer());
|
||||
jobRepositoryFactoryBean.setConversionService(getConversionService());
|
||||
jobRepositoryFactoryBean.setJdbcOperations(getJdbcOperations());
|
||||
jobRepositoryFactoryBean.setLobHandler(getLobHandler());
|
||||
jobRepositoryFactoryBean.setCharset(getCharset());
|
||||
jobRepositoryFactoryBean.setMaxVarCharLength(getMaxVarCharLength());
|
||||
jobRepositoryFactoryBean.setIsolationLevelForCreateEnum(getIsolationLevelForCreate());
|
||||
@@ -150,17 +148,6 @@ public class DefaultBatchConfiguration implements ApplicationContextAware {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Define a job launcher.
|
||||
* @return a job launcher
|
||||
* @throws BatchConfigurationException if unable to configure the default job launcher
|
||||
* @deprecated Since 5.2. Use {@link #jobLauncher(JobRepository)} instead
|
||||
*/
|
||||
@Deprecated(forRemoval = true)
|
||||
public JobLauncher jobLauncher() throws BatchConfigurationException {
|
||||
return jobLauncher(jobRepository());
|
||||
}
|
||||
|
||||
/**
|
||||
* Define a job launcher bean.
|
||||
* @param jobRepository the job repository
|
||||
@@ -191,7 +178,6 @@ public class DefaultBatchConfiguration implements ApplicationContextAware {
|
||||
jobExplorerFactoryBean.setJobKeyGenerator(getJobKeyGenerator());
|
||||
jobExplorerFactoryBean.setCharset(getCharset());
|
||||
jobExplorerFactoryBean.setTablePrefix(getTablePrefix());
|
||||
jobExplorerFactoryBean.setLobHandler(getLobHandler());
|
||||
jobExplorerFactoryBean.setConversionService(getConversionService());
|
||||
jobExplorerFactoryBean.setSerializer(getExecutionContextSerializer());
|
||||
try {
|
||||
@@ -208,18 +194,6 @@ public class DefaultBatchConfiguration implements ApplicationContextAware {
|
||||
return new MapJobRegistry();
|
||||
}
|
||||
|
||||
/**
|
||||
* Define a job operator.
|
||||
* @return a job operator
|
||||
* @throws BatchConfigurationException if unable to configure the default job operator
|
||||
* @deprecated Since 5.2. Use
|
||||
* {@link #jobOperator(JobRepository, JobExplorer, JobRegistry, JobLauncher)} instead
|
||||
*/
|
||||
@Deprecated(forRemoval = true)
|
||||
public JobOperator jobOperator() throws BatchConfigurationException {
|
||||
return jobOperator(jobRepository(), jobExplorer(), jobRegistry(), jobLauncher());
|
||||
}
|
||||
|
||||
/**
|
||||
* Define a job operator bean.
|
||||
* @param jobRepository a job repository
|
||||
@@ -249,26 +223,6 @@ public class DefaultBatchConfiguration implements ApplicationContextAware {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Defines a {@link JobRegistryBeanPostProcessor}.
|
||||
* @return a {@link JobRegistryBeanPostProcessor}
|
||||
* @throws BatchConfigurationException if unable to register the bean
|
||||
* @since 5.1
|
||||
* @deprecated Use {@link #jobRegistrySmartInitializingSingleton(JobRegistry)} instead
|
||||
*/
|
||||
@Deprecated(forRemoval = true)
|
||||
public JobRegistryBeanPostProcessor jobRegistryBeanPostProcessor() throws BatchConfigurationException {
|
||||
JobRegistryBeanPostProcessor jobRegistryBeanPostProcessor = new JobRegistryBeanPostProcessor();
|
||||
jobRegistryBeanPostProcessor.setJobRegistry(jobRegistry());
|
||||
try {
|
||||
jobRegistryBeanPostProcessor.afterPropertiesSet();
|
||||
return jobRegistryBeanPostProcessor;
|
||||
}
|
||||
catch (Exception e) {
|
||||
throw new BatchConfigurationException("Unable to configure the default job registry BeanPostProcessor", e);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Define a {@link JobRegistrySmartInitializingSingleton} bean.
|
||||
* @param jobRegistry the job registry to populate
|
||||
@@ -388,17 +342,6 @@ public class DefaultBatchConfiguration implements ApplicationContextAware {
|
||||
return StandardCharsets.UTF_8;
|
||||
}
|
||||
|
||||
/**
|
||||
* A special handler for large objects. The default is usually fine, except for some
|
||||
* (usually older) versions of Oracle.
|
||||
* @return the {@link LobHandler} to use
|
||||
* @deprecated Since 5.2 with no replacement. Scheduled for removal in v6
|
||||
*/
|
||||
@Deprecated(since = "5.2.0", forRemoval = true)
|
||||
protected LobHandler getLobHandler() {
|
||||
return new DefaultLobHandler();
|
||||
}
|
||||
|
||||
/**
|
||||
* Return the {@link JdbcOperations}. If this property is not overridden, a new
|
||||
* {@link JdbcTemplate} will be created for the configured data source by default.
|
||||
|
||||
@@ -1,176 +0,0 @@
|
||||
/*
|
||||
* Copyright 2006-2024 the original author or authors.
|
||||
*
|
||||
* Licensed 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
|
||||
*
|
||||
* https://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.springframework.batch.core.configuration.support;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.HashSet;
|
||||
|
||||
import org.apache.commons.logging.Log;
|
||||
import org.apache.commons.logging.LogFactory;
|
||||
import org.springframework.batch.core.Job;
|
||||
import org.springframework.batch.core.configuration.DuplicateJobException;
|
||||
import org.springframework.batch.core.configuration.JobLocator;
|
||||
import org.springframework.batch.core.configuration.JobRegistry;
|
||||
import org.springframework.beans.BeansException;
|
||||
import org.springframework.beans.FatalBeanException;
|
||||
import org.springframework.beans.factory.BeanFactory;
|
||||
import org.springframework.beans.factory.BeanFactoryAware;
|
||||
import org.springframework.beans.factory.DisposableBean;
|
||||
import org.springframework.beans.factory.InitializingBean;
|
||||
import org.springframework.beans.factory.config.BeanDefinition;
|
||||
import org.springframework.beans.factory.config.BeanPostProcessor;
|
||||
import org.springframework.beans.factory.support.DefaultListableBeanFactory;
|
||||
import org.springframework.util.Assert;
|
||||
|
||||
/**
|
||||
* A {@link BeanPostProcessor} that registers {@link Job} beans with a
|
||||
* {@link JobRegistry}. Include a bean of this type along with your job configuration and
|
||||
* use the same {@link JobRegistry} as a {@link JobLocator} when you need to locate a
|
||||
* {@link Job} to launch.
|
||||
* <p>
|
||||
* An alternative to this class is {@link JobRegistrySmartInitializingSingleton}, which is
|
||||
* recommended in cases where this class may cause early bean initializations. You must
|
||||
* include at most one of either of them as a bean.
|
||||
*
|
||||
* @deprecated since 5.2 in favor of {@link JobRegistrySmartInitializingSingleton}.
|
||||
* @author Dave Syer
|
||||
* @author Mahmoud Ben Hassine
|
||||
*
|
||||
*/
|
||||
@Deprecated(since = "5.2")
|
||||
public class JobRegistryBeanPostProcessor
|
||||
implements BeanPostProcessor, BeanFactoryAware, InitializingBean, DisposableBean {
|
||||
|
||||
private static final Log logger = LogFactory.getLog(JobRegistryBeanPostProcessor.class);
|
||||
|
||||
// It doesn't make sense for this to have a default value...
|
||||
private JobRegistry jobRegistry = null;
|
||||
|
||||
private final Collection<String> jobNames = new HashSet<>();
|
||||
|
||||
private String groupName = null;
|
||||
|
||||
private DefaultListableBeanFactory beanFactory;
|
||||
|
||||
/**
|
||||
* The group name for jobs registered by this component. Optional (defaults to null,
|
||||
* which means that jobs are registered with their bean names). Useful where there is
|
||||
* a hierarchy of application contexts all contributing to the same
|
||||
* {@link JobRegistry}: child contexts can then define an instance with a unique group
|
||||
* name to avoid clashes between job names.
|
||||
* @param groupName the groupName to set
|
||||
*/
|
||||
public void setGroupName(String groupName) {
|
||||
this.groupName = groupName;
|
||||
}
|
||||
|
||||
/**
|
||||
* Injection setter for {@link JobRegistry}.
|
||||
* @param jobRegistry the jobConfigurationRegistry to set
|
||||
*/
|
||||
public void setJobRegistry(JobRegistry jobRegistry) {
|
||||
this.jobRegistry = jobRegistry;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setBeanFactory(BeanFactory beanFactory) throws BeansException {
|
||||
if (beanFactory instanceof DefaultListableBeanFactory) {
|
||||
this.beanFactory = (DefaultListableBeanFactory) beanFactory;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Make sure the registry is set before use.
|
||||
*
|
||||
* @see org.springframework.beans.factory.InitializingBean#afterPropertiesSet()
|
||||
*/
|
||||
@Override
|
||||
public void afterPropertiesSet() throws Exception {
|
||||
Assert.state(jobRegistry != null, "JobRegistry must not be null");
|
||||
}
|
||||
|
||||
/**
|
||||
* Unregister all the {@link Job} instances that were registered by this post
|
||||
* processor.
|
||||
* @see org.springframework.beans.factory.DisposableBean#destroy()
|
||||
*/
|
||||
@Override
|
||||
public void destroy() throws Exception {
|
||||
for (String name : jobNames) {
|
||||
if (logger.isDebugEnabled()) {
|
||||
logger.debug("Unregistering job: " + name);
|
||||
}
|
||||
jobRegistry.unregister(name);
|
||||
}
|
||||
jobNames.clear();
|
||||
}
|
||||
|
||||
/**
|
||||
* If the bean is an instance of {@link Job}, then register it.
|
||||
* @throws FatalBeanException if there is a {@link DuplicateJobException}.
|
||||
*
|
||||
* @see org.springframework.beans.factory.config.BeanPostProcessor#postProcessAfterInitialization(java.lang.Object,
|
||||
* java.lang.String)
|
||||
*/
|
||||
@Override
|
||||
public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException {
|
||||
if (bean instanceof Job job) {
|
||||
try {
|
||||
String groupName = this.groupName;
|
||||
if (beanFactory != null && beanFactory.containsBean(beanName)) {
|
||||
groupName = getGroupName(beanFactory.getBeanDefinition(beanName), job);
|
||||
}
|
||||
job = groupName == null ? job : new GroupAwareJob(groupName, job);
|
||||
ReferenceJobFactory jobFactory = new ReferenceJobFactory(job);
|
||||
String name = jobFactory.getJobName();
|
||||
if (logger.isDebugEnabled()) {
|
||||
logger.debug("Registering job: " + name);
|
||||
}
|
||||
jobRegistry.register(jobFactory);
|
||||
jobNames.add(name);
|
||||
}
|
||||
catch (DuplicateJobException e) {
|
||||
throw new FatalBeanException("Cannot register job configuration", e);
|
||||
}
|
||||
return job;
|
||||
}
|
||||
return bean;
|
||||
}
|
||||
|
||||
/**
|
||||
* Determine a group name for the job to be registered. The default implementation
|
||||
* returns the {@link #setGroupName(String) groupName} configured. Provides an
|
||||
* extension point for specialised subclasses.
|
||||
* @param beanDefinition the bean definition for the job
|
||||
* @param job the job
|
||||
* @return a group name for the job (or null if not needed)
|
||||
*/
|
||||
protected String getGroupName(BeanDefinition beanDefinition, Job job) {
|
||||
return groupName;
|
||||
}
|
||||
|
||||
/**
|
||||
* Do nothing.
|
||||
*
|
||||
* @see org.springframework.beans.factory.config.BeanPostProcessor#postProcessBeforeInitialization(java.lang.Object,
|
||||
* java.lang.String)
|
||||
*/
|
||||
@Override
|
||||
public Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException {
|
||||
return bean;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2024 the original author or authors.
|
||||
* Copyright 2024-2025 the original author or authors.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@@ -42,9 +42,6 @@ import org.springframework.util.Assert;
|
||||
* {@link JobRegistry}. Include a bean of this type along with your job configuration and
|
||||
* use the same {@link JobRegistry} as a {@link JobLocator} when you need to locate a
|
||||
* {@link Job} to launch.
|
||||
* <p>
|
||||
* This class is an alternative to {@link JobRegistryBeanPostProcessor} and prevents early
|
||||
* bean initializations. You must include at most one of either of them as a bean.
|
||||
*
|
||||
* @author Henning Pöttker
|
||||
* @since 5.1.1
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2006-2022 the original author or authors.
|
||||
* Copyright 2006-2025 the original author or authors.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@@ -77,8 +77,6 @@ public class JobRepositoryParser extends AbstractSingleBeanDefinitionParser {
|
||||
|
||||
String maxVarCharLength = element.getAttribute("max-varchar-length");
|
||||
|
||||
String lobHandler = element.getAttribute("lob-handler");
|
||||
|
||||
String serializer = element.getAttribute("serializer");
|
||||
|
||||
String conversionService = element.getAttribute("conversion-service");
|
||||
@@ -97,9 +95,6 @@ public class JobRepositoryParser extends AbstractSingleBeanDefinitionParser {
|
||||
if (StringUtils.hasText(tablePrefix)) {
|
||||
builder.addPropertyValue("tablePrefix", tablePrefix);
|
||||
}
|
||||
if (StringUtils.hasText(lobHandler)) {
|
||||
builder.addPropertyReference("lobHandler", lobHandler);
|
||||
}
|
||||
if (StringUtils.hasText(maxVarCharLength)) {
|
||||
builder.addPropertyValue("maxVarCharLength", maxVarCharLength);
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2006-2023 the original author or authors.
|
||||
* Copyright 2006-2025 the original author or authors.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@@ -185,8 +185,6 @@ public class StepParserStepFactoryBean<I, O> implements FactoryBean<Step>, BeanN
|
||||
|
||||
private TaskExecutor taskExecutor;
|
||||
|
||||
private Integer throttleLimit;
|
||||
|
||||
private ItemReader<? extends I> itemReader;
|
||||
|
||||
private ItemProcessor<? super I, ? extends O> itemProcessor;
|
||||
@@ -473,9 +471,6 @@ public class StepParserStepFactoryBean<I, O> implements FactoryBean<Step>, BeanN
|
||||
|
||||
}
|
||||
builder.taskExecutor(taskExecutor);
|
||||
if (throttleLimit != null) {
|
||||
builder.throttleLimit(throttleLimit);
|
||||
}
|
||||
builder.transactionManager(transactionManager);
|
||||
if (transactionTimeout != null || propagation != null || isolation != null
|
||||
|| noRollbackExceptionClasses != null) {
|
||||
@@ -992,19 +987,6 @@ public class StepParserStepFactoryBean<I, O> implements FactoryBean<Step>, BeanN
|
||||
this.taskExecutor = taskExecutor;
|
||||
}
|
||||
|
||||
/**
|
||||
* Public setter for the throttle limit. This limits the number of tasks queued for
|
||||
* concurrent processing to prevent thread pools from being overwhelmed. Defaults to
|
||||
* {@link TaskExecutorRepeatTemplate#DEFAULT_THROTTLE_LIMIT}.
|
||||
* @param throttleLimit The throttle limit to set.
|
||||
* @deprecated since 5.0, scheduled for removal in 6.0. This API is not intended for
|
||||
* end users anyway. It is only used by the XML namespace parser.
|
||||
*/
|
||||
@Deprecated(since = "5.0", forRemoval = true)
|
||||
public void setThrottleLimit(Integer throttleLimit) {
|
||||
this.throttleLimit = throttleLimit;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param itemReader The {@link ItemReader} to set.
|
||||
*/
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2002-2024 the original author or authors.
|
||||
* Copyright 2002-2025 the original author or authors.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@@ -51,7 +51,6 @@ import org.springframework.jdbc.core.JdbcOperations;
|
||||
import org.springframework.jdbc.core.JdbcTemplate;
|
||||
import org.springframework.jdbc.support.incrementer.AbstractDataFieldMaxValueIncrementer;
|
||||
import org.springframework.jdbc.support.incrementer.DataFieldMaxValueIncrementer;
|
||||
import org.springframework.jdbc.support.lob.LobHandler;
|
||||
import org.springframework.lang.NonNull;
|
||||
import org.springframework.util.Assert;
|
||||
|
||||
@@ -81,8 +80,6 @@ public class JobExplorerFactoryBean extends AbstractJobExplorerFactoryBean imple
|
||||
|
||||
private JobKeyGenerator jobKeyGenerator;
|
||||
|
||||
private LobHandler lobHandler;
|
||||
|
||||
private ExecutionContextSerializer serializer;
|
||||
|
||||
private Charset charset = StandardCharsets.UTF_8;
|
||||
@@ -138,18 +135,6 @@ public class JobExplorerFactoryBean extends AbstractJobExplorerFactoryBean imple
|
||||
this.jobKeyGenerator = jobKeyGenerator;
|
||||
}
|
||||
|
||||
/**
|
||||
* The lob handler to use when saving {@link ExecutionContext} instances. Defaults to
|
||||
* {@code null}, which works for most databases.
|
||||
* @param lobHandler Large object handler for saving an
|
||||
* {@link org.springframework.batch.item.ExecutionContext}.
|
||||
* @deprecated Since 5.2 with no replacement. Scheduled for removal in v6
|
||||
*/
|
||||
@Deprecated(since = "5.2.0", forRemoval = true)
|
||||
public void setLobHandler(LobHandler lobHandler) {
|
||||
this.lobHandler = lobHandler;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the {@link Charset} to use when deserializing the execution context. Defaults
|
||||
* to "UTF-8". Must not be {@code null}.
|
||||
@@ -210,7 +195,6 @@ public class JobExplorerFactoryBean extends AbstractJobExplorerFactoryBean imple
|
||||
protected ExecutionContextDao createExecutionContextDao() throws Exception {
|
||||
JdbcExecutionContextDao dao = new JdbcExecutionContextDao();
|
||||
dao.setJdbcTemplate(jdbcOperations);
|
||||
dao.setLobHandler(lobHandler);
|
||||
dao.setTablePrefix(tablePrefix);
|
||||
dao.setSerializer(serializer);
|
||||
dao.setCharset(charset);
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2006-2023 the original author or authors.
|
||||
* Copyright 2006-2025 the original author or authors.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@@ -30,16 +30,6 @@ import org.springframework.batch.core.repository.JobRepository;
|
||||
*/
|
||||
public class JobBuilder extends JobBuilderHelper<JobBuilder> {
|
||||
|
||||
/**
|
||||
* Create a new builder for a job with the given name.
|
||||
* @param name the name of the job
|
||||
* @deprecated use {@link JobBuilder#JobBuilder(String, JobRepository)}
|
||||
*/
|
||||
@Deprecated(since = "5.0", forRemoval = true)
|
||||
public JobBuilder(String name) {
|
||||
super(name);
|
||||
}
|
||||
|
||||
/**
|
||||
* Create a new builder for a job with the given name.
|
||||
* @param name the name of the job
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2006-2023 the original author or authors.
|
||||
* Copyright 2006-2025 the original author or authors.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@@ -54,17 +54,6 @@ public abstract class JobBuilderHelper<B extends JobBuilderHelper<B>> {
|
||||
|
||||
private final CommonJobProperties properties;
|
||||
|
||||
/**
|
||||
* Create a new {@link JobBuilderHelper}.
|
||||
* @param name the job name
|
||||
* @deprecated use {@link JobBuilderHelper#JobBuilderHelper(String, JobRepository)}
|
||||
*/
|
||||
@Deprecated(since = "5.1", forRemoval = true)
|
||||
public JobBuilderHelper(String name) {
|
||||
this.properties = new CommonJobProperties();
|
||||
properties.name = name;
|
||||
}
|
||||
|
||||
/**
|
||||
* Create a new {@link JobBuilderHelper}.
|
||||
* @param name the job name
|
||||
@@ -110,20 +99,6 @@ public abstract class JobBuilderHelper<B extends JobBuilderHelper<B>> {
|
||||
return result;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the job repository for the job.
|
||||
* @param jobRepository the job repository (mandatory)
|
||||
* @return this to enable fluent chaining
|
||||
* @deprecated use {@link JobBuilderHelper#JobBuilderHelper(String, JobRepository)}
|
||||
*/
|
||||
@Deprecated(since = "5.1", forRemoval = true)
|
||||
public B repository(JobRepository jobRepository) {
|
||||
properties.jobRepository = jobRepository;
|
||||
@SuppressWarnings("unchecked")
|
||||
B result = (B) this;
|
||||
return result;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the job observation convention.
|
||||
* @param observationConvention the job observation convention (optional)
|
||||
|
||||
@@ -1,43 +0,0 @@
|
||||
/*
|
||||
* Copyright 2006-2023 the original author or authors.
|
||||
*
|
||||
* Licensed 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
|
||||
*
|
||||
* https://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.springframework.batch.core.listener;
|
||||
|
||||
import org.springframework.batch.core.ChunkListener;
|
||||
import org.springframework.batch.core.scope.context.ChunkContext;
|
||||
|
||||
/**
|
||||
* Basic support implementation of {@link ChunkListener}
|
||||
*
|
||||
* @author Lucas Ward
|
||||
* @author Michael Minella
|
||||
* @deprecated as of 5.0, in favor of the default methods on the {@link ChunkListener}
|
||||
*/
|
||||
@Deprecated
|
||||
public class ChunkListenerSupport implements ChunkListener {
|
||||
|
||||
@Override
|
||||
public void afterChunk(ChunkContext context) {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void beforeChunk(ChunkContext context) {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void afterChunkError(ChunkContext context) {
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,37 +0,0 @@
|
||||
/*
|
||||
* Copyright 2006-2023 the original author or authors.
|
||||
*
|
||||
* Licensed 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
|
||||
*
|
||||
* https://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.springframework.batch.core.listener;
|
||||
|
||||
import org.springframework.batch.core.JobExecution;
|
||||
import org.springframework.batch.core.JobExecutionListener;
|
||||
|
||||
/**
|
||||
* @author Dave Syer
|
||||
* @deprecated as of 5.0, in favor of the default methods on the
|
||||
* {@link JobExecutionListener}
|
||||
*/
|
||||
@Deprecated
|
||||
public class JobExecutionListenerSupport implements JobExecutionListener {
|
||||
|
||||
@Override
|
||||
public void afterJob(JobExecution jobExecution) {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void beforeJob(JobExecution jobExecution) {
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,43 +0,0 @@
|
||||
/*
|
||||
* Copyright 2006-2023 the original author or authors.
|
||||
*
|
||||
* Licensed 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
|
||||
*
|
||||
* https://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.springframework.batch.core.listener;
|
||||
|
||||
import org.springframework.batch.core.SkipListener;
|
||||
|
||||
/**
|
||||
* Basic no-op implementations of all {@link SkipListener} implementations.
|
||||
*
|
||||
* @author Dave Syer
|
||||
* @author Mahmoud Ben Hassine
|
||||
* @deprecated as of v5.0 in favor of the default methods in {@link SkipListener}.
|
||||
*
|
||||
*/
|
||||
@Deprecated
|
||||
public class SkipListenerSupport<T, S> implements SkipListener<T, S> {
|
||||
|
||||
@Override
|
||||
public void onSkipInRead(Throwable t) {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onSkipInWrite(S item, Throwable t) {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onSkipInProcess(T item, Throwable t) {
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,41 +0,0 @@
|
||||
/*
|
||||
* Copyright 2006-2023 the original author or authors.
|
||||
*
|
||||
* Licensed 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
|
||||
*
|
||||
* https://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.springframework.batch.core.listener;
|
||||
|
||||
import org.springframework.batch.core.ExitStatus;
|
||||
import org.springframework.batch.core.StepExecution;
|
||||
import org.springframework.batch.core.StepExecutionListener;
|
||||
import org.springframework.lang.Nullable;
|
||||
|
||||
/**
|
||||
* @author Dave Syer
|
||||
* @deprecated as of 5.0, in favor of the default methods on the
|
||||
* {@link StepExecutionListener}
|
||||
*/
|
||||
@Deprecated
|
||||
public class StepExecutionListenerSupport implements StepExecutionListener {
|
||||
|
||||
@Nullable
|
||||
@Override
|
||||
public ExitStatus afterStep(StepExecution stepExecution) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void beforeStep(StepExecution stepExecution) {
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2006-2024 the original author or authors.
|
||||
* Copyright 2006-2025 the original author or authors.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@@ -40,8 +40,6 @@ import org.springframework.batch.item.ExecutionContext;
|
||||
import org.springframework.core.serializer.Serializer;
|
||||
import org.springframework.jdbc.core.BatchPreparedStatementSetter;
|
||||
import org.springframework.jdbc.core.RowMapper;
|
||||
import org.springframework.jdbc.support.lob.DefaultLobHandler;
|
||||
import org.springframework.jdbc.support.lob.LobHandler;
|
||||
import org.springframework.lang.NonNull;
|
||||
import org.springframework.util.Assert;
|
||||
|
||||
@@ -110,8 +108,6 @@ public class JdbcExecutionContextDao extends AbstractJdbcBatchMetadataDao implem
|
||||
|
||||
private int shortContextLength = DEFAULT_MAX_VARCHAR_LENGTH;
|
||||
|
||||
private LobHandler lobHandler = new DefaultLobHandler();
|
||||
|
||||
private ExecutionContextSerializer serializer = new DefaultExecutionContextSerializer();
|
||||
|
||||
private final Lock lock = new ReentrantLock();
|
||||
@@ -268,15 +264,6 @@ public class JdbcExecutionContextDao extends AbstractJdbcBatchMetadataDao implem
|
||||
getJdbcTemplate().update(getQuery(DELETE_STEP_EXECUTION_CONTEXT), stepExecution.getId());
|
||||
}
|
||||
|
||||
/**
|
||||
* @deprecated Since 5.2 with no replacement. Scheduled for removal in v6
|
||||
* @param lobHandler the lob handler to use
|
||||
*/
|
||||
@Deprecated(since = "5.2.0", forRemoval = true)
|
||||
public void setLobHandler(LobHandler lobHandler) {
|
||||
this.lobHandler = lobHandler;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void afterPropertiesSet() throws Exception {
|
||||
super.afterPropertiesSet();
|
||||
@@ -306,7 +293,7 @@ public class JdbcExecutionContextDao extends AbstractJdbcBatchMetadataDao implem
|
||||
getJdbcTemplate().update(getQuery(sql), ps -> {
|
||||
ps.setString(1, shortContext);
|
||||
if (longContext != null) {
|
||||
lobHandler.getLobCreator().setClobAsString(ps, 2, longContext);
|
||||
ps.setString(2, longContext);
|
||||
}
|
||||
else {
|
||||
ps.setNull(2, getClobTypeToUse());
|
||||
@@ -342,7 +329,7 @@ public class JdbcExecutionContextDao extends AbstractJdbcBatchMetadataDao implem
|
||||
}
|
||||
ps.setString(1, shortContext);
|
||||
if (longContext != null) {
|
||||
lobHandler.getLobCreator().setClobAsString(ps, 2, longContext);
|
||||
ps.setString(2, longContext);
|
||||
}
|
||||
else {
|
||||
ps.setNull(2, getClobTypeToUse());
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2006-2023 the original author or authors.
|
||||
* Copyright 2006-2025 the original author or authors.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@@ -284,17 +284,6 @@ public class JdbcJobInstanceDao extends AbstractJdbcBatchMetadataDao implements
|
||||
getJdbcTemplate().update(getQuery(DELETE_JOB_INSTANCE), jobInstance.getId());
|
||||
}
|
||||
|
||||
/**
|
||||
* Setter for {@link DataFieldMaxValueIncrementer} to be used when generating primary
|
||||
* keys for {@link JobInstance} instances.
|
||||
* @param jobIncrementer the {@link DataFieldMaxValueIncrementer}
|
||||
* @deprecated as of v5.0 in favor of using the {@link #setJobInstanceIncrementer}
|
||||
*/
|
||||
@Deprecated
|
||||
public void setJobIncrementer(DataFieldMaxValueIncrementer jobIncrementer) {
|
||||
this.setJobInstanceIncrementer(jobIncrementer);
|
||||
}
|
||||
|
||||
/**
|
||||
* Setter for {@link DataFieldMaxValueIncrementer} to be used when generating primary
|
||||
* keys for {@link JobInstance} instances.
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2002-2024 the original author or authors.
|
||||
* Copyright 2002-2025 the original author or authors.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@@ -56,8 +56,6 @@ import org.springframework.core.convert.support.ConfigurableConversionService;
|
||||
import org.springframework.core.convert.support.DefaultConversionService;
|
||||
import org.springframework.jdbc.core.JdbcOperations;
|
||||
import org.springframework.jdbc.core.JdbcTemplate;
|
||||
import org.springframework.jdbc.support.lob.DefaultLobHandler;
|
||||
import org.springframework.jdbc.support.lob.LobHandler;
|
||||
import org.springframework.lang.NonNull;
|
||||
import org.springframework.util.Assert;
|
||||
import org.springframework.util.StringUtils;
|
||||
@@ -95,8 +93,6 @@ public class JobRepositoryFactoryBean extends AbstractJobRepositoryFactoryBean i
|
||||
|
||||
private int maxVarCharLengthForShortContext = AbstractJdbcBatchMetadataDao.DEFAULT_SHORT_CONTEXT_LENGTH;
|
||||
|
||||
private LobHandler lobHandler;
|
||||
|
||||
private ExecutionContextSerializer serializer;
|
||||
|
||||
private Integer clobType;
|
||||
@@ -124,19 +120,6 @@ public class JobRepositoryFactoryBean extends AbstractJobRepositoryFactoryBean i
|
||||
this.serializer = serializer;
|
||||
}
|
||||
|
||||
/**
|
||||
* A special handler for large objects. The default is usually fine, except for some
|
||||
* (usually older) versions of Oracle. The default is determined from the data base
|
||||
* type.
|
||||
* @param lobHandler the {@link LobHandler} to set
|
||||
* @deprecated Since 5.2 with no replacement. Scheduled for removal in v6
|
||||
* @see LobHandler
|
||||
*/
|
||||
@Deprecated(since = "5.2.0", forRemoval = true)
|
||||
public void setLobHandler(LobHandler lobHandler) {
|
||||
this.lobHandler = lobHandler;
|
||||
}
|
||||
|
||||
/**
|
||||
* Public setter for the length of long string columns in database. Do not set this if
|
||||
* you haven't modified the schema. Note this value will be used for the exit message
|
||||
@@ -276,10 +259,6 @@ public class JobRepositoryFactoryBean extends AbstractJobRepositoryFactoryBean i
|
||||
}
|
||||
}
|
||||
|
||||
if (lobHandler == null && databaseType.equalsIgnoreCase(DatabaseType.ORACLE.toString())) {
|
||||
lobHandler = new DefaultLobHandler();
|
||||
}
|
||||
|
||||
if (serializer == null) {
|
||||
serializer = new DefaultExecutionContextSerializer();
|
||||
}
|
||||
@@ -355,10 +334,6 @@ public class JobRepositoryFactoryBean extends AbstractJobRepositoryFactoryBean i
|
||||
dao.setSerializer(serializer);
|
||||
dao.setCharset(charset);
|
||||
|
||||
if (lobHandler != null) {
|
||||
dao.setLobHandler(lobHandler);
|
||||
}
|
||||
|
||||
dao.afterPropertiesSet();
|
||||
dao.setShortContextLength(this.maxVarCharLengthForShortContext);
|
||||
return dao;
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2012-2024 the original author or authors.
|
||||
* Copyright 2012-2025 the original author or authors.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@@ -67,8 +67,6 @@ public abstract class AbstractTaskletStepBuilder<B extends AbstractTaskletStepBu
|
||||
|
||||
private ExceptionHandler exceptionHandler = new DefaultExceptionHandler();
|
||||
|
||||
private int throttleLimit = TaskExecutorRepeatTemplate.DEFAULT_THROTTLE_LIMIT;
|
||||
|
||||
private TaskExecutor taskExecutor;
|
||||
|
||||
public AbstractTaskletStepBuilder(StepBuilderHelper<?> parent) {
|
||||
@@ -88,7 +86,6 @@ public abstract class AbstractTaskletStepBuilder<B extends AbstractTaskletStepBu
|
||||
this.transactionAttribute = parent.transactionAttribute;
|
||||
this.streams.addAll(parent.streams);
|
||||
this.exceptionHandler = parent.exceptionHandler;
|
||||
this.throttleLimit = parent.throttleLimit;
|
||||
this.taskExecutor = parent.taskExecutor;
|
||||
}
|
||||
|
||||
@@ -125,7 +122,6 @@ public abstract class AbstractTaskletStepBuilder<B extends AbstractTaskletStepBu
|
||||
if (taskExecutor != null) {
|
||||
TaskExecutorRepeatTemplate repeatTemplate = new TaskExecutorRepeatTemplate();
|
||||
repeatTemplate.setTaskExecutor(taskExecutor);
|
||||
repeatTemplate.setThrottleLimit(throttleLimit);
|
||||
stepOperations = repeatTemplate;
|
||||
}
|
||||
|
||||
@@ -210,24 +206,6 @@ public abstract class AbstractTaskletStepBuilder<B extends AbstractTaskletStepBu
|
||||
return self();
|
||||
}
|
||||
|
||||
/**
|
||||
* In the case of an asynchronous {@link #taskExecutor(TaskExecutor)} the number of
|
||||
* concurrent tasklet executions can be throttled (beyond any throttling provided by a
|
||||
* thread pool). The throttle limit should be less than the data source pool size used
|
||||
* in the job repository for this step.
|
||||
* @param throttleLimit maximum number of concurrent tasklet executions allowed
|
||||
* @return this for fluent chaining
|
||||
* @deprecated with no replacement since 5.0, scheduled for removal in 6.0. Use a
|
||||
* custom {@link RepeatOperations} implementation (based on a {@link TaskExecutor}
|
||||
* with a bounded task queue) and set it on the step with
|
||||
* {@link #stepOperations(RepeatOperations)}.
|
||||
*/
|
||||
@Deprecated(since = "5.0", forRemoval = true)
|
||||
public B throttleLimit(int throttleLimit) {
|
||||
this.throttleLimit = throttleLimit;
|
||||
return self();
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the exception handler to use in the case of tasklet failures. Default is to
|
||||
* rethrow everything.
|
||||
@@ -302,11 +280,6 @@ public abstract class AbstractTaskletStepBuilder<B extends AbstractTaskletStepBu
|
||||
return taskExecutor;
|
||||
}
|
||||
|
||||
@Deprecated(since = "5.0", forRemoval = true)
|
||||
protected int getThrottleLimit() {
|
||||
return throttleLimit;
|
||||
}
|
||||
|
||||
protected TransactionAttribute getTransactionAttribute() {
|
||||
return transactionAttribute;
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2006-2023 the original author or authors.
|
||||
* Copyright 2006-2025 the original author or authors.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@@ -34,16 +34,6 @@ import org.springframework.transaction.PlatformTransactionManager;
|
||||
*/
|
||||
public class StepBuilder extends StepBuilderHelper<StepBuilder> {
|
||||
|
||||
/**
|
||||
* Initialize a step builder for a step with the given name.
|
||||
* @param name the name of the step
|
||||
* @deprecated use {@link StepBuilder#StepBuilder(String, JobRepository)}
|
||||
*/
|
||||
@Deprecated(since = "5.0", forRemoval = true)
|
||||
public StepBuilder(String name) {
|
||||
super(name);
|
||||
}
|
||||
|
||||
/**
|
||||
* Initialize a step builder for a step with the given name and job repository.
|
||||
* @param name the name of the step
|
||||
@@ -54,17 +44,6 @@ public class StepBuilder extends StepBuilderHelper<StepBuilder> {
|
||||
super(name, jobRepository);
|
||||
}
|
||||
|
||||
/**
|
||||
* Build a step with a custom tasklet, not necessarily item processing.
|
||||
* @param tasklet a tasklet
|
||||
* @return a {@link TaskletStepBuilder}
|
||||
* @deprecated use {@link StepBuilder#tasklet(Tasklet, PlatformTransactionManager)}
|
||||
*/
|
||||
@Deprecated(since = "5.0", forRemoval = true)
|
||||
public TaskletStepBuilder tasklet(Tasklet tasklet) {
|
||||
return new TaskletStepBuilder(this).tasklet(tasklet);
|
||||
}
|
||||
|
||||
/**
|
||||
* Build a step with a custom tasklet, not necessarily item processing.
|
||||
* @param tasklet a tasklet
|
||||
@@ -76,27 +55,6 @@ public class StepBuilder extends StepBuilderHelper<StepBuilder> {
|
||||
return new TaskletStepBuilder(this).tasklet(tasklet, transactionManager);
|
||||
}
|
||||
|
||||
/**
|
||||
* Build a step that processes items in chunks with the size provided. To extend the
|
||||
* step to being fault tolerant, call the {@link SimpleStepBuilder#faultTolerant()}
|
||||
* method on the builder. In most cases you will want to parameterize your call to
|
||||
* this method, to preserve the type safety of your readers and writers, e.g.
|
||||
*
|
||||
* <pre>
|
||||
* new StepBuilder("step1").<Order, Ledger> chunk(100).reader(new OrderReader()).writer(new LedgerWriter())
|
||||
* // ... etc.
|
||||
* </pre>
|
||||
* @param chunkSize the chunk size (commit interval)
|
||||
* @return a {@link SimpleStepBuilder}
|
||||
* @param <I> the type of item to be processed as input
|
||||
* @param <O> the type of item to be output
|
||||
* @deprecated use {@link StepBuilder#chunk(int, PlatformTransactionManager)}
|
||||
*/
|
||||
@Deprecated(since = "5.0", forRemoval = true)
|
||||
public <I, O> SimpleStepBuilder<I, O> chunk(int chunkSize) {
|
||||
return new SimpleStepBuilder<I, O>(this).chunk(chunkSize);
|
||||
}
|
||||
|
||||
/**
|
||||
* Build a step that processes items in chunks with the size provided. To extend the
|
||||
* step to being fault tolerant, call the {@link SimpleStepBuilder#faultTolerant()}
|
||||
@@ -119,29 +77,6 @@ public class StepBuilder extends StepBuilderHelper<StepBuilder> {
|
||||
return new SimpleStepBuilder<I, O>(this).transactionManager(transactionManager).chunk(chunkSize);
|
||||
}
|
||||
|
||||
/**
|
||||
* Build a step that processes items in chunks with the completion policy provided. To
|
||||
* extend the step to being fault tolerant, call the
|
||||
* {@link SimpleStepBuilder#faultTolerant()} method on the builder. In most cases you
|
||||
* will want to parameterize your call to this method, to preserve the type safety of
|
||||
* your readers and writers, e.g.
|
||||
*
|
||||
* <pre>
|
||||
* new StepBuilder("step1").<Order, Ledger> chunk(100).reader(new OrderReader()).writer(new LedgerWriter())
|
||||
* // ... etc.
|
||||
* </pre>
|
||||
* @param completionPolicy the completion policy to use to control chunk processing
|
||||
* @return a {@link SimpleStepBuilder}
|
||||
* @param <I> the type of item to be processed as input
|
||||
* @param <O> the type of item to be output
|
||||
* @deprecated use
|
||||
* {@link StepBuilder#chunk(CompletionPolicy, PlatformTransactionManager)}
|
||||
*/
|
||||
@Deprecated(since = "5.0", forRemoval = true)
|
||||
public <I, O> SimpleStepBuilder<I, O> chunk(CompletionPolicy completionPolicy) {
|
||||
return new SimpleStepBuilder<I, O>(this).chunk(completionPolicy);
|
||||
}
|
||||
|
||||
/**
|
||||
* Build a step that processes items in chunks with the completion policy provided. To
|
||||
* extend the step to being fault tolerant, call the
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2006-2023 the original author or authors.
|
||||
* Copyright 2006-2025 the original author or authors.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@@ -53,17 +53,6 @@ public abstract class StepBuilderHelper<B extends StepBuilderHelper<B>> {
|
||||
|
||||
protected final CommonStepProperties properties;
|
||||
|
||||
/**
|
||||
* Create a new {@link StepBuilderHelper}.
|
||||
* @param name the step name
|
||||
* @deprecated use {@link StepBuilderHelper#StepBuilderHelper(String, JobRepository)}
|
||||
*/
|
||||
@Deprecated(since = "5.1", forRemoval = true)
|
||||
public StepBuilderHelper(String name) {
|
||||
this.properties = new CommonStepProperties();
|
||||
properties.name = name;
|
||||
}
|
||||
|
||||
/**
|
||||
* Create a new {@link StepBuilderHelper}.
|
||||
* @param name the step name
|
||||
@@ -85,18 +74,6 @@ public abstract class StepBuilderHelper<B extends StepBuilderHelper<B>> {
|
||||
this.properties = new CommonStepProperties(parent.properties);
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the job repository
|
||||
* @param jobRepository the repository to set
|
||||
* @return this to enable fluent chaining
|
||||
* @deprecated use {@link StepBuilderHelper#StepBuilderHelper(String, JobRepository)}
|
||||
*/
|
||||
@Deprecated(since = "5.1", forRemoval = true)
|
||||
public B repository(JobRepository jobRepository) {
|
||||
properties.jobRepository = jobRepository;
|
||||
return self();
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the step observation convention.
|
||||
* @param observationConvention the step observation convention (optional)
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2006-2023 the original author or authors.
|
||||
* Copyright 2006-2025 the original author or authors.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@@ -38,18 +38,6 @@ public class TaskletStepBuilder extends AbstractTaskletStepBuilder<TaskletStepBu
|
||||
super(parent);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param tasklet the tasklet to use
|
||||
* @return this for fluent chaining
|
||||
* @deprecated use
|
||||
* {@link TaskletStepBuilder#tasklet(Tasklet, PlatformTransactionManager)}
|
||||
*/
|
||||
@Deprecated(since = "5.0", forRemoval = true)
|
||||
public TaskletStepBuilder tasklet(Tasklet tasklet) {
|
||||
this.tasklet = tasklet;
|
||||
return this;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param tasklet the tasklet to use
|
||||
* @return this for fluent chaining
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2006-2023 the original author or authors.
|
||||
* Copyright 2006-2025 the original author or authors.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@@ -441,20 +441,6 @@ public class SimpleStepFactoryBean<T, S> implements FactoryBean<Step>, BeanNameA
|
||||
return taskExecutor;
|
||||
}
|
||||
|
||||
/**
|
||||
* Public setter for the throttle limit. This limits the number of tasks queued for
|
||||
* concurrent processing to prevent thread pools from being overwhelmed. Defaults to
|
||||
* {@link TaskExecutorRepeatTemplate#DEFAULT_THROTTLE_LIMIT}.
|
||||
* @param throttleLimit the throttle limit to set.
|
||||
* @deprecated since 5.0, scheduled for removal in 6.0. Use a pooled
|
||||
* {@link TaskExecutor} implementation with a limited capacity of its task queue
|
||||
* instead.
|
||||
*/
|
||||
@Deprecated(since = "5.0", forRemoval = true)
|
||||
public void setThrottleLimit(int throttleLimit) {
|
||||
this.throttleLimit = throttleLimit;
|
||||
}
|
||||
|
||||
protected void applyConfiguration(SimpleStepBuilder<T, S> builder) {
|
||||
|
||||
builder.reader(itemReader);
|
||||
@@ -482,7 +468,6 @@ public class SimpleStepFactoryBean<T, S> implements FactoryBean<Step>, BeanNameA
|
||||
}
|
||||
builder.transactionManager(transactionManager);
|
||||
builder.transactionAttribute(getTransactionAttribute());
|
||||
builder.repository(jobRepository);
|
||||
builder.observationRegistry(observationRegistry);
|
||||
builder.startLimit(startLimit);
|
||||
builder.allowStartIfComplete(allowStartIfComplete);
|
||||
@@ -491,7 +476,6 @@ public class SimpleStepFactoryBean<T, S> implements FactoryBean<Step>, BeanNameA
|
||||
builder.chunkOperations(chunkOperations);
|
||||
builder.stepOperations(stepOperations);
|
||||
builder.taskExecutor(taskExecutor);
|
||||
builder.throttleLimit(throttleLimit);
|
||||
builder.exceptionHandler(exceptionHandler);
|
||||
if (isReaderTransactionalQueue) {
|
||||
builder.readerIsTransactionalQueue();
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -6,7 +6,7 @@
|
||||
xsi:schemaLocation="
|
||||
http://www.springframework.org/schema/beans https://www.springframework.org/schema/beans/spring-beans.xsd
|
||||
http://www.springframework.org/schema/tool https://www.springframework.org/schema/tool/spring-tool.xsd"
|
||||
version="5.0">
|
||||
version="6.0">
|
||||
|
||||
<xsd:import namespace="http://www.springframework.org/schema/beans" />
|
||||
<xsd:import namespace="http://www.springframework.org/schema/tool" />
|
||||
@@ -265,20 +265,6 @@
|
||||
</xsd:appinfo>
|
||||
</xsd:annotation>
|
||||
</xsd:attribute>
|
||||
<xsd:attribute name="lob-handler" type="xsd:string">
|
||||
<xsd:annotation>
|
||||
<xsd:documentation><![CDATA[
|
||||
A reference to the lob handler (optional). Only override if using Oracle and
|
||||
the database type is not being detected for some reason.
|
||||
This attribute is deprecated Since 5.2 with no replacement. Scheduled for removal in v6.
|
||||
]]></xsd:documentation>
|
||||
<xsd:appinfo>
|
||||
<tool:annotation kind="ref">
|
||||
<tool:expected-type type="org.springframework.jdbc.support.lob.LobHandler" />
|
||||
</tool:annotation>
|
||||
</xsd:appinfo>
|
||||
</xsd:annotation>
|
||||
</xsd:attribute>
|
||||
<xsd:attribute name="conversion-service" type="xsd:string">
|
||||
<xsd:annotation>
|
||||
<xsd:documentation><![CDATA[
|
||||
@@ -680,16 +666,6 @@
|
||||
</xsd:appinfo>
|
||||
</xsd:annotation>
|
||||
</xsd:attribute>
|
||||
<xsd:attribute name="throttle-limit" type="xsd:string" use="optional">
|
||||
<xsd:annotation>
|
||||
<xsd:documentation><![CDATA[
|
||||
This limits the number of tasks queued for concurrent
|
||||
processing to prevent thread pools from being overwhelmed.
|
||||
Default is 4. This is deprecated in favor of using similar
|
||||
features in TaskExecutor implementations.
|
||||
]]></xsd:documentation>
|
||||
</xsd:annotation>
|
||||
</xsd:attribute>
|
||||
<xsd:attributeGroup ref="allowStartIfCompleteAttribute"/>
|
||||
</xsd:complexType>
|
||||
|
||||
|
||||
@@ -1,125 +0,0 @@
|
||||
/*
|
||||
* Copyright 2006-2023 the original author or authors.
|
||||
*
|
||||
* Licensed 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
|
||||
*
|
||||
* https://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.springframework.batch.core.configuration.support;
|
||||
|
||||
import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||
import static org.junit.jupiter.api.Assertions.assertNotNull;
|
||||
import static org.junit.jupiter.api.Assertions.assertThrows;
|
||||
import static org.junit.jupiter.api.Assertions.assertTrue;
|
||||
|
||||
import java.util.Collection;
|
||||
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.springframework.batch.core.configuration.DuplicateJobException;
|
||||
import org.springframework.batch.core.job.JobSupport;
|
||||
import org.springframework.beans.FatalBeanException;
|
||||
import org.springframework.context.support.ClassPathXmlApplicationContext;
|
||||
|
||||
/**
|
||||
* @author Dave Syer
|
||||
* @author Mahmoud Ben Hassine
|
||||
*
|
||||
*/
|
||||
class JobRegistryBeanPostProcessorTests {
|
||||
|
||||
private final JobRegistryBeanPostProcessor processor = new JobRegistryBeanPostProcessor();
|
||||
|
||||
@Test
|
||||
void testInitializationFails() {
|
||||
Exception exception = assertThrows(IllegalStateException.class, processor::afterPropertiesSet);
|
||||
assertTrue(exception.getMessage().contains("JobRegistry"));
|
||||
}
|
||||
|
||||
@Test
|
||||
void testBeforeInitialization() {
|
||||
// should be a no-op
|
||||
assertEquals("foo", processor.postProcessBeforeInitialization("foo", "bar"));
|
||||
}
|
||||
|
||||
@Test
|
||||
void testAfterInitializationWithWrongType() {
|
||||
// should be a no-op
|
||||
assertEquals("foo", processor.postProcessAfterInitialization("foo", "bar"));
|
||||
}
|
||||
|
||||
@Test
|
||||
void testAfterInitializationWithCorrectType() {
|
||||
MapJobRegistry registry = new MapJobRegistry();
|
||||
processor.setJobRegistry(registry);
|
||||
JobSupport job = new JobSupport();
|
||||
job.setBeanName("foo");
|
||||
assertNotNull(processor.postProcessAfterInitialization(job, "bar"));
|
||||
assertEquals("[foo]", registry.getJobNames().toString());
|
||||
}
|
||||
|
||||
@Test
|
||||
void testAfterInitializationWithGroupName() {
|
||||
MapJobRegistry registry = new MapJobRegistry();
|
||||
processor.setJobRegistry(registry);
|
||||
processor.setGroupName("jobs");
|
||||
JobSupport job = new JobSupport();
|
||||
job.setBeanName("foo");
|
||||
assertNotNull(processor.postProcessAfterInitialization(job, "bar"));
|
||||
assertEquals("[jobs.foo]", registry.getJobNames().toString());
|
||||
}
|
||||
|
||||
@Test
|
||||
void testAfterInitializationWithDuplicate() {
|
||||
MapJobRegistry registry = new MapJobRegistry();
|
||||
processor.setJobRegistry(registry);
|
||||
JobSupport job = new JobSupport();
|
||||
job.setBeanName("foo");
|
||||
processor.postProcessAfterInitialization(job, "bar");
|
||||
Exception exception = assertThrows(FatalBeanException.class,
|
||||
() -> processor.postProcessAfterInitialization(job, "spam"));
|
||||
assertTrue(exception.getCause() instanceof DuplicateJobException);
|
||||
}
|
||||
|
||||
@Test
|
||||
void testUnregisterOnDestroy() throws Exception {
|
||||
MapJobRegistry registry = new MapJobRegistry();
|
||||
processor.setJobRegistry(registry);
|
||||
JobSupport job = new JobSupport();
|
||||
job.setBeanName("foo");
|
||||
assertNotNull(processor.postProcessAfterInitialization(job, "bar"));
|
||||
processor.destroy();
|
||||
assertEquals("[]", registry.getJobNames().toString());
|
||||
}
|
||||
|
||||
@Test
|
||||
void testExecutionWithApplicationContext() throws Exception {
|
||||
ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("test-context.xml", getClass());
|
||||
MapJobRegistry registry = (MapJobRegistry) context.getBean("registry");
|
||||
Collection<String> configurations = registry.getJobNames();
|
||||
String[] names = context.getBeanNamesForType(JobSupport.class);
|
||||
int count = names.length;
|
||||
// Each concrete bean of type JobConfiguration is registered...
|
||||
assertEquals(count, configurations.size());
|
||||
// N.B. there is a failure / wonky mode where a parent bean is given an
|
||||
// explicit name or beanName (using property setter): in this case then
|
||||
// child beans will have the same name and will be re-registered (and
|
||||
// override, if the registry supports that).
|
||||
assertNotNull(registry.getJob("test-job"));
|
||||
assertEquals(context.getBean("test-job-with-name"), registry.getJob("foo"));
|
||||
assertEquals(context.getBean("test-job-with-bean-name"), registry.getJob("bar"));
|
||||
assertEquals(context.getBean("test-job-with-parent-and-name"), registry.getJob("spam"));
|
||||
assertEquals(context.getBean("test-job-with-parent-and-bean-name"), registry.getJob("bucket"));
|
||||
assertEquals(context.getBean("test-job-with-concrete-parent"), registry.getJob("maps"));
|
||||
assertEquals(context.getBean("test-job-with-concrete-parent-and-name"), registry.getJob("oof"));
|
||||
assertEquals(context.getBean("test-job-with-concrete-parent-and-bean-name"), registry.getJob("rab"));
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2006-2023 the original author or authors.
|
||||
* Copyright 2006-2025 the original author or authors.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@@ -239,7 +239,6 @@ class StepParserStepFactoryBeanTests {
|
||||
fb.setIsReaderTransactionalQueue(true);
|
||||
fb.setRetryLimit(5);
|
||||
fb.setSkipLimit(100);
|
||||
fb.setThrottleLimit(10);
|
||||
fb.setRetryListeners(new RetryListener() {
|
||||
});
|
||||
@SuppressWarnings("unchecked")
|
||||
@@ -251,7 +250,7 @@ class StepParserStepFactoryBeanTests {
|
||||
assertTrue(step instanceof TaskletStep);
|
||||
Object throttleLimit = ReflectionTestUtils.getField(ReflectionTestUtils.getField(step, "stepOperations"),
|
||||
"throttleLimit");
|
||||
assertEquals(10, throttleLimit);
|
||||
assertEquals(4, throttleLimit);
|
||||
Object tasklet = ReflectionTestUtils.getField(step, "tasklet");
|
||||
assertTrue(tasklet instanceof ChunkOrientedTasklet<?>);
|
||||
assertFalse((Boolean) ReflectionTestUtils.getField(tasklet, "buffering"));
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2006-2023 the original author or authors.
|
||||
* Copyright 2006-2025 the original author or authors.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@@ -88,8 +88,6 @@ public class StepParserTests {
|
||||
StepParserStepFactoryBean<Object, Object> factory = beans.get(factoryName);
|
||||
TaskletStep bean = (TaskletStep) factory.getObject();
|
||||
assertEquals(25, bean.getStartLimit(), "wrong start-limit:");
|
||||
Object throttleLimit = ReflectionTestUtils.getField(factory, "throttleLimit");
|
||||
assertEquals(10, throttleLimit);
|
||||
}
|
||||
|
||||
@Test
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2006-2023 the original author or authors.
|
||||
* Copyright 2006-2025 the original author or authors.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@@ -42,8 +42,6 @@ import org.springframework.dao.DataAccessException;
|
||||
import org.springframework.jdbc.core.JdbcOperations;
|
||||
import org.springframework.jdbc.core.JdbcTemplate;
|
||||
import org.springframework.jdbc.support.incrementer.DataFieldMaxValueIncrementer;
|
||||
import org.springframework.jdbc.support.lob.DefaultLobHandler;
|
||||
import org.springframework.jdbc.support.lob.LobHandler;
|
||||
import org.springframework.test.util.ReflectionTestUtils;
|
||||
import org.springframework.transaction.PlatformTransactionManager;
|
||||
import org.springframework.transaction.annotation.Isolation;
|
||||
@@ -112,48 +110,6 @@ class JobRepositoryFactoryBeanTests {
|
||||
|
||||
}
|
||||
|
||||
@Test
|
||||
void testOracleLobHandler() throws Exception {
|
||||
|
||||
factory.setDatabaseType("ORACLE");
|
||||
|
||||
incrementerFactory = mock();
|
||||
when(incrementerFactory.isSupportedIncrementerType("ORACLE")).thenReturn(true);
|
||||
when(incrementerFactory.getIncrementer("ORACLE", tablePrefix + "JOB_SEQ")).thenReturn(new StubIncrementer());
|
||||
when(incrementerFactory.getIncrementer("ORACLE", tablePrefix + "JOB_EXECUTION_SEQ"))
|
||||
.thenReturn(new StubIncrementer());
|
||||
when(incrementerFactory.getIncrementer("ORACLE", tablePrefix + "STEP_EXECUTION_SEQ"))
|
||||
.thenReturn(new StubIncrementer());
|
||||
factory.setIncrementerFactory(incrementerFactory);
|
||||
|
||||
factory.afterPropertiesSet();
|
||||
LobHandler lobHandler = (LobHandler) ReflectionTestUtils.getField(factory, "lobHandler");
|
||||
assertTrue(lobHandler instanceof DefaultLobHandler);
|
||||
|
||||
}
|
||||
|
||||
@Test
|
||||
void testCustomLobHandler() throws Exception {
|
||||
|
||||
factory.setDatabaseType("ORACLE");
|
||||
|
||||
incrementerFactory = mock();
|
||||
when(incrementerFactory.isSupportedIncrementerType("ORACLE")).thenReturn(true);
|
||||
when(incrementerFactory.getIncrementer("ORACLE", tablePrefix + "JOB_SEQ")).thenReturn(new StubIncrementer());
|
||||
when(incrementerFactory.getIncrementer("ORACLE", tablePrefix + "JOB_EXECUTION_SEQ"))
|
||||
.thenReturn(new StubIncrementer());
|
||||
when(incrementerFactory.getIncrementer("ORACLE", tablePrefix + "STEP_EXECUTION_SEQ"))
|
||||
.thenReturn(new StubIncrementer());
|
||||
factory.setIncrementerFactory(incrementerFactory);
|
||||
|
||||
LobHandler lobHandler = new DefaultLobHandler();
|
||||
factory.setLobHandler(lobHandler);
|
||||
|
||||
factory.afterPropertiesSet();
|
||||
assertEquals(lobHandler, ReflectionTestUtils.getField(factory, "lobHandler"));
|
||||
|
||||
}
|
||||
|
||||
@Test
|
||||
@SuppressWarnings("unchecked")
|
||||
void tesDefaultSerializer() throws Exception {
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2012-2023 the original author or authors.
|
||||
* Copyright 2012-2025 the original author or authors.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@@ -252,11 +252,6 @@ class StepBuilderTests {
|
||||
testReturnedTypeOfSetterIsAssignableToSimpleStepBuilder(builder -> builder.taskExecutor(null));
|
||||
}
|
||||
|
||||
@Test
|
||||
void testReturnedTypeOfThrottleLimitIsAssignableToSimpleStepBuilder() throws Exception {
|
||||
testReturnedTypeOfSetterIsAssignableToSimpleStepBuilder(builder -> builder.throttleLimit(4));
|
||||
}
|
||||
|
||||
@Test
|
||||
void testReturnedTypeOfExceptionHandlerIsAssignableToSimpleStepBuilder() throws Exception {
|
||||
testReturnedTypeOfSetterIsAssignableToSimpleStepBuilder(
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2006-2024 the original author or authors.
|
||||
* Copyright 2006-2025 the original author or authors.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@@ -151,7 +151,6 @@ class SimpleStepFactoryBeanTests {
|
||||
|
||||
SimpleStepFactoryBean<String, String> factory = getStepFactory("foo", "bar");
|
||||
factory.setTaskExecutor(new SimpleAsyncTaskExecutor());
|
||||
factory.setThrottleLimit(1);
|
||||
|
||||
AbstractStep step = (AbstractStep) factory.getObject();
|
||||
step.setName("step1");
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2006-2023 the original author or authors.
|
||||
* Copyright 2006-2025 the original author or authors.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@@ -109,7 +109,6 @@ class AsyncChunkOrientedStepIntegrationTests {
|
||||
job = new JobSupport("FOO");
|
||||
|
||||
TaskExecutorRepeatTemplate repeatTemplate = new TaskExecutorRepeatTemplate();
|
||||
repeatTemplate.setThrottleLimit(2);
|
||||
repeatTemplate.setTaskExecutor(new SimpleAsyncTaskExecutor());
|
||||
step.setStepOperations(repeatTemplate);
|
||||
step.setTransactionManager(transactionManager);
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2006-2023 the original author or authors.
|
||||
* Copyright 2006-2025 the original author or authors.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@@ -90,7 +90,6 @@ class AsyncTaskletStepTests {
|
||||
step.setJobRepository(jobRepository);
|
||||
|
||||
TaskExecutorRepeatTemplate template = new TaskExecutorRepeatTemplate();
|
||||
template.setThrottleLimit(throttleLimit);
|
||||
SimpleAsyncTaskExecutor taskExecutor = new SimpleAsyncTaskExecutor();
|
||||
taskExecutor.setConcurrencyLimit(concurrencyLimit);
|
||||
template.setTaskExecutor(taskExecutor);
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
|
||||
<bean id="jobRegistry" class="org.springframework.batch.core.configuration.support.MapJobRegistry"/>
|
||||
|
||||
<bean class="org.springframework.batch.core.configuration.support.JobRegistryBeanPostProcessor">
|
||||
<bean class="org.springframework.batch.core.configuration.support.JobRegistrySmartInitializingSingleton">
|
||||
<property name="jobRegistry" ref="jobRegistry"/>
|
||||
</bean>
|
||||
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
http://www.springframework.org/schema/tx https://www.springframework.org/schema/tx/spring-tx.xsd">
|
||||
|
||||
<bean
|
||||
class="org.springframework.batch.core.configuration.support.JobRegistryBeanPostProcessor">
|
||||
class="org.springframework.batch.core.configuration.support.JobRegistrySmartInitializingSingleton">
|
||||
<property name="jobRegistry" ref="registry" />
|
||||
</bean>
|
||||
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
</property>
|
||||
</bean>
|
||||
|
||||
<bean class="org.springframework.batch.core.configuration.support.JobRegistryBeanPostProcessor">
|
||||
<bean class="org.springframework.batch.core.configuration.support.JobRegistrySmartInitializingSingleton">
|
||||
<property name="jobRegistry" ref="jobRegistry" />
|
||||
</bean>
|
||||
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
<bean id="jobRegistry"
|
||||
class="org.springframework.batch.core.configuration.support.MapJobRegistry" />
|
||||
<bean
|
||||
class="org.springframework.batch.core.configuration.support.JobRegistryBeanPostProcessor">
|
||||
class="org.springframework.batch.core.configuration.support.JobRegistrySmartInitializingSingleton">
|
||||
<property name="jobRegistry" ref="jobRegistry" />
|
||||
</bean>
|
||||
|
||||
|
||||
@@ -14,9 +14,8 @@
|
||||
<beans:bean id="transactionManager" class="org.springframework.jdbc.support.JdbcTransactionManager">
|
||||
<beans:property name="dataSource" ref="dataSource"/>
|
||||
</beans:bean>
|
||||
<beans:bean id="lobHandler" class="org.springframework.jdbc.support.lob.DefaultLobHandler"/>
|
||||
<beans:bean id="serializer" class="org.springframework.batch.core.repository.dao.DefaultExecutionContextSerializer"/>
|
||||
|
||||
<job-repository id="jobRepo1" data-source="dataSource" jdbc-operations="jdbcTemplate" transaction-manager="transactionManager" lob-handler="lobHandler" max-varchar-length="100" serializer="serializer"/>
|
||||
<job-repository id="jobRepo1" data-source="dataSource" jdbc-operations="jdbcTemplate" transaction-manager="transactionManager" max-varchar-length="100" serializer="serializer"/>
|
||||
|
||||
</beans:beans>
|
||||
@@ -9,7 +9,7 @@
|
||||
|
||||
<job id="job">
|
||||
<step id="step">
|
||||
<tasklet start-limit="25" allow-start-if-complete="true" task-executor="taskExecutor" throttle-limit="10">
|
||||
<tasklet start-limit="25" allow-start-if-complete="true" task-executor="taskExecutor">
|
||||
<chunk reader="reader" processor="processor" writer="writer" commit-interval="10" skip-limit="20"
|
||||
retry-limit="3" cache-capacity="100" reader-transactional-queue="true">
|
||||
<retry-listeners>
|
||||
|
||||
@@ -38,7 +38,7 @@
|
||||
|
||||
<bean id="jobRegistry" class="org.springframework.batch.core.configuration.support.MapJobRegistry"/>
|
||||
|
||||
<bean class="org.springframework.batch.core.configuration.support.JobRegistryBeanPostProcessor">
|
||||
<bean class="org.springframework.batch.core.configuration.support.JobRegistrySmartInitializingSingleton">
|
||||
<property name="jobRegistry" ref="jobRegistry"/>
|
||||
</bean>
|
||||
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
|
||||
<bean id="jobRegistry" class="org.springframework.batch.core.configuration.support.MapJobRegistry"/>
|
||||
|
||||
<bean class="org.springframework.batch.core.configuration.support.JobRegistryBeanPostProcessor">
|
||||
<bean class="org.springframework.batch.core.configuration.support.JobRegistrySmartInitializingSingleton">
|
||||
<property name="jobRegistry" ref="jobRegistry"/>
|
||||
</bean>
|
||||
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
|
||||
<import resource="test-environment-with-registry.xml" />
|
||||
|
||||
<bean class="org.springframework.batch.core.configuration.support.JobRegistryBeanPostProcessor">
|
||||
<bean class="org.springframework.batch.core.configuration.support.JobRegistrySmartInitializingSingleton">
|
||||
<property name="jobRegistry" ref="jobRegistry"/>
|
||||
</bean>
|
||||
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
<property name="jobRepository" ref="jobRepository" />
|
||||
</bean>
|
||||
|
||||
<bean class="org.springframework.batch.core.configuration.support.JobRegistryBeanPostProcessor">
|
||||
<bean class="org.springframework.batch.core.configuration.support.JobRegistrySmartInitializingSingleton">
|
||||
<property name="jobRegistry" ref="jobRegistry"/>
|
||||
</bean>
|
||||
|
||||
|
||||
Reference in New Issue
Block a user