diff --git a/pom.xml b/pom.xml index debcb6c9f4..a84e367b0f 100644 --- a/pom.xml +++ b/pom.xml @@ -126,7 +126,7 @@ 3.8.1 2.22.2 2.22.2 - 3.3.1 + 3.3.2 3.2.1 0.8.7 1.2.7 diff --git a/spring-batch-core/src/main/java/org/springframework/batch/core/BatchStatus.java b/spring-batch-core/src/main/java/org/springframework/batch/core/BatchStatus.java index 4bedd5af47..df7019faff 100644 --- a/spring-batch-core/src/main/java/org/springframework/batch/core/BatchStatus.java +++ b/spring-batch-core/src/main/java/org/springframework/batch/core/BatchStatus.java @@ -1,5 +1,5 @@ /* - * Copyright 2006-2021 the original author or authors. + * Copyright 2006-2022 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. @@ -37,8 +37,46 @@ public enum BatchStatus { * steps that have finished processing, but were not successful, and where * they should be skipped on a restart (so FAILED is the wrong status). */ - COMPLETED, STARTING, STARTED, STOPPING, STOPPED, FAILED, ABANDONED, UNKNOWN; + /** + * The batch job has successfully completed its execution + */ + COMPLETED, + /** + * Status of a batch job prior to execution of the job. + */ + STARTING, + /** + * Status of a batch job that is running. + */ + STARTED, + /** + * Status of batch job waiting for a step to complete before stopping the batch job. + */ + STOPPING, + /** + * Status of a batch job that has been stopped by request. + */ + STOPPED, + /** + * Status of a batch job that has failed during its execution. + */ + FAILED, + /** + * Status of a batch job that did not stop properly and can not be restarted. + */ + ABANDONED, + /** + * Status of a batch job that is in an uncertain state. + */ + UNKNOWN; + + /** + * Convenience method to return the higher value status of the statuses pass in to the method. + * @param status1 The first status to check. + * @param status2 The second status to check. + * @return The higher value status of the two statuses. + */ public static BatchStatus max(BatchStatus status1, BatchStatus status2) { return status1.isGreaterThan(status2) ? status1 : status2; } diff --git a/spring-batch-core/src/main/java/org/springframework/batch/core/ChunkListener.java b/spring-batch-core/src/main/java/org/springframework/batch/core/ChunkListener.java index e85171b64a..d012826463 100644 --- a/spring-batch-core/src/main/java/org/springframework/batch/core/ChunkListener.java +++ b/spring-batch-core/src/main/java/org/springframework/batch/core/ChunkListener.java @@ -1,5 +1,5 @@ /* - * Copyright 2006-2021 the original author or authors. + * Copyright 2006-2022 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. @@ -29,7 +29,10 @@ */ public interface ChunkListener extends StepListener { - static final String ROLLBACK_EXCEPTION_KEY = "sb_rollback_exception"; + /** + * The key for retrieving the rollback exception. + */ + String ROLLBACK_EXCEPTION_KEY = "sb_rollback_exception"; /** * Callback before the chunk is executed, but inside the transaction. diff --git a/spring-batch-core/src/main/java/org/springframework/batch/core/Entity.java b/spring-batch-core/src/main/java/org/springframework/batch/core/Entity.java index 47f4032f90..723a4bf03b 100644 --- a/spring-batch-core/src/main/java/org/springframework/batch/core/Entity.java +++ b/spring-batch-core/src/main/java/org/springframework/batch/core/Entity.java @@ -1,5 +1,5 @@ /* - * Copyright 2006-2013 the original author or authors. + * Copyright 2006-2022 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. @@ -37,10 +37,18 @@ public class Entity implements Serializable { private volatile Integer version; + /** + * Default constructor for {@link Entity}. + * The ID defaults to zero. + */ public Entity() { super(); } + /** + * The constructor for the {@link Entity} where the id is established. + * @param id The ID for the entity. + */ public Entity(Long id) { super(); @@ -50,10 +58,16 @@ public Entity(Long id) { this.id = id; } + /** + * @return The ID associated with the {@link Entity}. + */ public Long getId() { return id; } + /** + * @param id The ID for the {@link Entity}. + */ public void setId(Long id) { this.id = id; } diff --git a/spring-batch-core/src/main/java/org/springframework/batch/core/ExitStatus.java b/spring-batch-core/src/main/java/org/springframework/batch/core/ExitStatus.java index e44afb4859..e0bbee1ccf 100644 --- a/spring-batch-core/src/main/java/org/springframework/batch/core/ExitStatus.java +++ b/spring-batch-core/src/main/java/org/springframework/batch/core/ExitStatus.java @@ -1,5 +1,5 @@ /* - * Copyright 2006-2021 the original author or authors. + * Copyright 2006-2022 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. @@ -74,10 +74,21 @@ public class ExitStatus implements Serializable, Comparable { private final String exitDescription; + /** + * Constructor that accepts the exit code and sets the exit description to an empty {@link String}. + * + * @param exitCode The exit code to be used for the {@link ExitStatus}. + */ public ExitStatus(String exitCode) { this(exitCode, ""); } + /** + * Constructor that establishes the exit code and the exit description for the {@link ExitStatus}. + * + * @param exitCode The exit code to be used for the {@link ExitStatus}. + * @param exitDescription The exit description to be used for the {@link ExitStatus}. + */ public ExitStatus(String exitCode, String exitDescription) { super(); this.exitCode = exitCode; diff --git a/spring-batch-core/src/main/java/org/springframework/batch/core/JobExecution.java b/spring-batch-core/src/main/java/org/springframework/batch/core/JobExecution.java index 7a378018ef..cc7263d234 100644 --- a/spring-batch-core/src/main/java/org/springframework/batch/core/JobExecution.java +++ b/spring-batch-core/src/main/java/org/springframework/batch/core/JobExecution.java @@ -1,5 +1,5 @@ /* - * Copyright 2006-2021 the original author or authors. + * Copyright 2006-2022 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. @@ -65,6 +65,10 @@ public class JobExecution extends Entity { private transient volatile List failureExceptions = new CopyOnWriteArrayList<>(); + /** + * Constructor that sets the state of the instance to the {@link JobExecution} parameter. + * @param original The {@link JobExecution} to be copied. + */ public JobExecution(JobExecution original) { this.jobParameters = original.getJobParameters(); this.jobInstance = original.getJobInstance(); @@ -98,45 +102,78 @@ public JobExecution(JobInstance job, Long id, @Nullable JobParameters jobParamet /** * Constructor for transient (unsaved) instances. * - * @param job the enclosing {@link JobInstance} - * @param jobParameters {@link JobParameters} instance for this JobExecution. + * @param job The enclosing {@link JobInstance}. + * @param jobParameters The {@link JobParameters} instance for this JobExecution. */ public JobExecution(JobInstance job, JobParameters jobParameters) { this(job, null, jobParameters); } + /** + * Constructor that accepts the job execution ID and {@link JobParameters}. + * @param id The job execution ID. + * @param jobParameters The {@link JobParameters} for the {@link JobExecution}. + */ public JobExecution(Long id, JobParameters jobParameters) { this(null, id, jobParameters); } + /** + * Constructor that accepts the job execution ID. + * @param id The job execution ID. + */ public JobExecution(Long id) { this(null, id, null); } + /** + * @return The current {@link JobParameters}. + */ public JobParameters getJobParameters() { return this.jobParameters; } + /** + * @return The current end time. + */ public Date getEndTime() { return endTime; } + /** + * Set the {@link JobInstance} used by the {@link JobExecution}. + * @param jobInstance The {@link JobInstance} used by the {@link JobExecution}. + */ public void setJobInstance(JobInstance jobInstance) { this.jobInstance = jobInstance; } + /** + * Set the end time. + * @param endTime The {@link Date} to be used for the end time. + */ public void setEndTime(Date endTime) { this.endTime = endTime; } + /** + * @return The current start time. + */ public Date getStartTime() { return startTime; } + /** + * Set the start time. + * @param startTime The {@link Date} to be used for the start time. + */ public void setStartTime(Date startTime) { this.startTime = startTime; } + /** + * @return The current {@link BatchStatus}. + */ public BatchStatus getStatus() { return status; } @@ -297,6 +334,10 @@ public void setLastUpdated(Date lastUpdated) { this.lastUpdated = lastUpdated; } + /** + * Retrieve a list of exceptions. + * @return The {@link List} of {@link Throwable} objects. + */ public List getFailureExceptions() { return failureExceptions; } diff --git a/spring-batch-core/src/main/java/org/springframework/batch/core/JobInstance.java b/spring-batch-core/src/main/java/org/springframework/batch/core/JobInstance.java index 7ca252362c..5d5bbe707f 100644 --- a/spring-batch-core/src/main/java/org/springframework/batch/core/JobInstance.java +++ b/spring-batch-core/src/main/java/org/springframework/batch/core/JobInstance.java @@ -1,5 +1,5 @@ /* - * Copyright 2006-2021 the original author or authors. + * Copyright 2006-2022 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. @@ -43,6 +43,11 @@ public class JobInstance extends Entity { private final String jobName; + /** + * Constructor for {@link JobInstance}. + * @param id The instance ID. + * @param jobName The name associated with the {@link JobInstance}. + */ public JobInstance(Long id, String jobName) { super(id); Assert.hasLength(jobName, "A jobName is required"); @@ -61,6 +66,9 @@ public String toString() { return super.toString() + ", Job=[" + jobName + "]"; } + /** + * @return The current instance ID. + */ public long getInstanceId() { return super.getId(); } diff --git a/spring-batch-core/src/main/java/org/springframework/batch/core/JobInterruptedException.java b/spring-batch-core/src/main/java/org/springframework/batch/core/JobInterruptedException.java index 95a565a44b..834cce9ec6 100644 --- a/spring-batch-core/src/main/java/org/springframework/batch/core/JobInterruptedException.java +++ b/spring-batch-core/src/main/java/org/springframework/batch/core/JobInterruptedException.java @@ -1,5 +1,5 @@ /* - * Copyright 2006-2021 the original author or authors. + * Copyright 2006-2022 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. @@ -33,10 +33,19 @@ public class JobInterruptedException extends JobExecutionException { private BatchStatus status = BatchStatus.STOPPED; + /** + * Constructor that sets the message for the exception. + * @param msg The message for the exception. + */ public JobInterruptedException(String msg) { super(msg); } + /** + * Constructor that sets the message for the exception. + * @param msg The message for the exception. + * @param status The desired {@link BatchStatus} of the surrounding execution after interruption. + */ public JobInterruptedException(String msg, BatchStatus status) { super(msg); this.status = status; diff --git a/spring-batch-core/src/main/java/org/springframework/batch/core/JobParameter.java b/spring-batch-core/src/main/java/org/springframework/batch/core/JobParameter.java index 5d89f2904e..b7e04112f9 100644 --- a/spring-batch-core/src/main/java/org/springframework/batch/core/JobParameter.java +++ b/spring-batch-core/src/main/java/org/springframework/batch/core/JobParameter.java @@ -1,5 +1,5 @@ /* - * Copyright 2006-2021 the original author or authors. + * Copyright 2006-2022 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. @@ -125,6 +125,9 @@ public JobParameter(Double parameter) { this(parameter, true); } + /** + * @return The identifying flag. It is set to true if the job parameter is identifying. + */ public boolean isIdentifying() { return identifying; } @@ -168,10 +171,25 @@ public int hashCode() { } /** - * Enumeration representing the type of a JobParameter. + * Enumeration representing the type of {@link JobParameter}. */ public enum ParameterType { - STRING, DATE, LONG, DOUBLE; + /** + * String parameter type. + */ + STRING, + /** + * Date parameter type. + */ + DATE, + /** + * Long parameter type. + */ + LONG, + /** + * Double parameter type. + */ + DOUBLE; } } diff --git a/spring-batch-core/src/main/java/org/springframework/batch/core/JobParameters.java b/spring-batch-core/src/main/java/org/springframework/batch/core/JobParameters.java index 237fed7f81..a216fe1f28 100644 --- a/spring-batch-core/src/main/java/org/springframework/batch/core/JobParameters.java +++ b/spring-batch-core/src/main/java/org/springframework/batch/core/JobParameters.java @@ -1,5 +1,5 @@ /* - * Copyright 2006-2021 the original author or authors. + * Copyright 2006-2022 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. @@ -48,10 +48,17 @@ public class JobParameters implements Serializable { private final Map parameters; + /** + * Default constructor. + */ public JobParameters() { this.parameters = new LinkedHashMap<>(); } + /** + * Constructor that is initialized with the content of a {@link Map} that contains a string key and {@link JobParameter} value. + * @param parameters The {@link Map} that contains a string key and {@link JobParameter} value. + */ public JobParameters(Map parameters) { this.parameters = new LinkedHashMap<>(parameters); } @@ -226,6 +233,9 @@ public String toString() { return parameters.toString(); } + /** + * @return The {@link Properties} that contain the key and values for the {@link JobParameter}s. + */ public Properties toProperties() { Properties props = new Properties(); diff --git a/spring-batch-core/src/main/java/org/springframework/batch/core/JobParametersInvalidException.java b/spring-batch-core/src/main/java/org/springframework/batch/core/JobParametersInvalidException.java index ad0a2e091d..3a62298bd9 100644 --- a/spring-batch-core/src/main/java/org/springframework/batch/core/JobParametersInvalidException.java +++ b/spring-batch-core/src/main/java/org/springframework/batch/core/JobParametersInvalidException.java @@ -1,5 +1,5 @@ /* - * Copyright 2009-2014 the original author or authors. + * Copyright 2009-2022 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. @@ -25,6 +25,10 @@ @SuppressWarnings("serial") public class JobParametersInvalidException extends JobExecutionException { + /** + * Constructor that sets the message for the exception. + * @param msg The {@link String} message for the {@link Exception}. + */ public JobParametersInvalidException(String msg) { super(msg); } diff --git a/spring-batch-core/src/main/java/org/springframework/batch/core/StartLimitExceededException.java b/spring-batch-core/src/main/java/org/springframework/batch/core/StartLimitExceededException.java index 2b78792245..231ff7d6a9 100644 --- a/spring-batch-core/src/main/java/org/springframework/batch/core/StartLimitExceededException.java +++ b/spring-batch-core/src/main/java/org/springframework/batch/core/StartLimitExceededException.java @@ -1,5 +1,5 @@ /* - * Copyright 2006-2007 the original author or authors. + * Copyright 2006-2022 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. @@ -22,6 +22,10 @@ @SuppressWarnings("serial") public class StartLimitExceededException extends RuntimeException { + /** + * Constructor that sets the message for the exception. + * @param message The message for the exception. + */ public StartLimitExceededException(String message) { super(message); } diff --git a/spring-batch-core/src/main/java/org/springframework/batch/core/Step.java b/spring-batch-core/src/main/java/org/springframework/batch/core/Step.java index 3f7f2eae74..8de0f070ec 100644 --- a/spring-batch-core/src/main/java/org/springframework/batch/core/Step.java +++ b/spring-batch-core/src/main/java/org/springframework/batch/core/Step.java @@ -1,5 +1,5 @@ /* - * Copyright 2006-2007 the original author or authors. + * Copyright 2006-2022 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. @@ -24,7 +24,11 @@ */ public interface Step { - static final String STEP_TYPE_KEY = "batch.stepType"; + /** + * The key to retrieve the batch step type. + */ + String STEP_TYPE_KEY = "batch.stepType"; + /** * @return the name of this step. */ diff --git a/spring-batch-core/src/main/java/org/springframework/batch/core/StepExecution.java b/spring-batch-core/src/main/java/org/springframework/batch/core/StepExecution.java index 0e243e3dbf..e44fb352b7 100644 --- a/spring-batch-core/src/main/java/org/springframework/batch/core/StepExecution.java +++ b/spring-batch-core/src/main/java/org/springframework/batch/core/StepExecution.java @@ -1,5 +1,5 @@ /* - * Copyright 2006-2021 the original author or authors. + * Copyright 2006-2022 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. @@ -473,10 +473,17 @@ public void setLastUpdated(Date lastUpdated) { this.lastUpdated = lastUpdated; } + /** + * @return The {@link List} of {@link Throwable} objects. + */ public List getFailureExceptions() { return failureExceptions; } + /** + * Add a {@link Throwable} to failure exceptions. + * @param throwable The {@link Throwable} to add to failure exceptions. + */ public void addFailureException(Throwable throwable) { this.failureExceptions.add(throwable); } @@ -533,6 +540,9 @@ public String toString() { return String.format(getSummary() + ", exitDescription=%s", exitStatus.getExitDescription()); } + /** + * @return The {@link String} containing a summary of the step execution. + */ public String getSummary() { return super.toString() + String.format( diff --git a/spring-batch-core/src/main/java/org/springframework/batch/core/StepListener.java b/spring-batch-core/src/main/java/org/springframework/batch/core/StepListener.java index 005bab04b9..0451863683 100644 --- a/spring-batch-core/src/main/java/org/springframework/batch/core/StepListener.java +++ b/spring-batch-core/src/main/java/org/springframework/batch/core/StepListener.java @@ -1,5 +1,5 @@ /* - * Copyright 2006-2008 the original author or authors. + * Copyright 2006-2022 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. diff --git a/spring-batch-core/src/main/java/org/springframework/batch/core/configuration/JobFactory.java b/spring-batch-core/src/main/java/org/springframework/batch/core/configuration/JobFactory.java index be4ce491cf..38f48f6850 100644 --- a/spring-batch-core/src/main/java/org/springframework/batch/core/configuration/JobFactory.java +++ b/spring-batch-core/src/main/java/org/springframework/batch/core/configuration/JobFactory.java @@ -1,5 +1,5 @@ /* - * Copyright 2006-2007 the original author or authors. + * Copyright 2006-2022 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. @@ -24,9 +24,16 @@ * */ public interface JobFactory { - + + /** + * Create a new instance of {@link Job}. + * @return The {@link Job}. + */ Job createJob(); - + + /** + * @return The {@link String} containing the {@link Job} name. + */ String getJobName(); } diff --git a/spring-batch-core/src/main/java/org/springframework/batch/core/configuration/annotation/AbstractBatchConfiguration.java b/spring-batch-core/src/main/java/org/springframework/batch/core/configuration/annotation/AbstractBatchConfiguration.java index d0a3207465..96b1d37adc 100644 --- a/spring-batch-core/src/main/java/org/springframework/batch/core/configuration/annotation/AbstractBatchConfiguration.java +++ b/spring-batch-core/src/main/java/org/springframework/batch/core/configuration/annotation/AbstractBatchConfiguration.java @@ -1,5 +1,5 @@ /* - * Copyright 2012-2021 the original author or authors. + * Copyright 2012-2022 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. @@ -60,30 +60,65 @@ public abstract class AbstractBatchConfiguration implements ImportAware, Initial private StepBuilderFactory stepBuilderFactory; + /** + * Establish the {@link JobBuilderFactory} for the batch execution. + * @return The instance of the {@link JobBuilderFactory}. + * @throws Exception The {@link Exception} thrown if error occurs. + */ @Bean public JobBuilderFactory jobBuilders() throws Exception { return this.jobBuilderFactory; } + /** + * Establish the {@link StepBuilderFactory} for the batch execution. + * @return The instance of the {@link StepBuilderFactory}. + * @throws Exception The {@link Exception} thrown if error occurs. + */ @Bean public StepBuilderFactory stepBuilders() throws Exception { return this.stepBuilderFactory; } + /** + * Establish the {@link JobRepository} for the batch execution. + * @return The instance of the {@link JobRepository}. + * @throws Exception The {@link Exception} thrown if error occurs. + */ @Bean public abstract JobRepository jobRepository() throws Exception; + /** + * Establish the {@link JobLauncher} for the batch execution. + * @return The instance of the {@link JobLauncher}. + * @throws Exception The {@link Exception} thrown if error occurs. + */ @Bean public abstract JobLauncher jobLauncher() throws Exception; + /** + * Establish the {@link JobExplorer} for the batch execution. + * @return The instance of the {@link JobExplorer}. + * @throws Exception The {@link Exception} thrown if error occurs. + */ @Bean public abstract JobExplorer jobExplorer() throws Exception; + /** + * Establish the {@link JobRegistry} for the batch execution. + * @return The instance of the {@link JobRegistry}. + * @throws Exception The {@link Exception} thrown if error occurs. + */ @Bean public JobRegistry jobRegistry() throws Exception { return this.jobRegistry; } + /** + * Establish the {@link PlatformTransactionManager} for the batch execution. + * @return The instance of the {@link PlatformTransactionManager}. + * @throws Exception The {@link Exception} thrown if error occurs. + */ public abstract PlatformTransactionManager transactionManager() throws Exception; @Override @@ -100,6 +135,12 @@ public void afterPropertiesSet() throws Exception { this.stepBuilderFactory = new StepBuilderFactory(jobRepository(), transactionManager()); } + /** + * If a {@link BatchConfigurer} exists, return it. If the configurers list is empty, create {@link BatchConfigurer}. + * If more than one configurer is present in the list, an {@link IllegalStateException} is thrown. + * @param configurers The {@link Collection} of configurers to review. + * @return The {@link BatchConfigurer} that was in the configurers collection or the one created. + */ protected BatchConfigurer getConfigurer(Collection configurers) { if (this.configurer != null) { return this.configurer; diff --git a/spring-batch-core/src/main/java/org/springframework/batch/core/configuration/annotation/BatchConfigurer.java b/spring-batch-core/src/main/java/org/springframework/batch/core/configuration/annotation/BatchConfigurer.java index 95befd9a47..13fa580172 100644 --- a/spring-batch-core/src/main/java/org/springframework/batch/core/configuration/annotation/BatchConfigurer.java +++ b/spring-batch-core/src/main/java/org/springframework/batch/core/configuration/annotation/BatchConfigurer.java @@ -1,5 +1,5 @@ /* - * Copyright 2012-2013 the original author or authors. + * Copyright 2012-2022 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. @@ -28,11 +28,27 @@ */ public interface BatchConfigurer { + /** + * @return The {@link JobRepository}. + * @throws Exception The {@link Exception} thrown if error occurs. + */ JobRepository getJobRepository() throws Exception; + /** + * @return The {@link PlatformTransactionManager}. + * @throws Exception The {@link Exception} thrown if error occurs. + */ PlatformTransactionManager getTransactionManager() throws Exception; + /** + * @return The {@link JobLauncher}. + * @throws Exception The {@link Exception} thrown if error occurs. + */ JobLauncher getJobLauncher() throws Exception; + /** + * @return The {@link JobExplorer}. + * @throws Exception The {@link Exception} thrown if error occurs. + */ JobExplorer getJobExplorer() throws Exception; } diff --git a/spring-batch-core/src/main/java/org/springframework/batch/core/configuration/annotation/DefaultBatchConfigurer.java b/spring-batch-core/src/main/java/org/springframework/batch/core/configuration/annotation/DefaultBatchConfigurer.java index d3e7a75e60..24f88e60c1 100644 --- a/spring-batch-core/src/main/java/org/springframework/batch/core/configuration/annotation/DefaultBatchConfigurer.java +++ b/spring-batch-core/src/main/java/org/springframework/batch/core/configuration/annotation/DefaultBatchConfigurer.java @@ -1,5 +1,5 @@ /* - * Copyright 2012-2021 the original author or authors. + * Copyright 2012-2022 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,6 +30,9 @@ import org.springframework.transaction.PlatformTransactionManager; import org.springframework.util.Assert; +/** + * Default implementation of the {@link BatchConfigurer}. + */ @Component public class DefaultBatchConfigurer implements BatchConfigurer { @@ -49,6 +52,9 @@ public void setDataSource(DataSource dataSource) { this.dataSource = dataSource; } + /** + * @return The {@link DataSource} used by the {@link DefaultBatchConfigurer}. + */ public DataSource getDataSource() { return this.dataSource; } @@ -95,6 +101,9 @@ public JobExplorer getJobExplorer() { return jobExplorer; } + /** + * Initialize the {@link DefaultBatchConfigurer} with the {@link JobRepository}, {@link JobExplorer}, and {@link JobLauncher}. + */ @PostConstruct public void initialize() { try { @@ -106,6 +115,10 @@ public void initialize() { } } + /** + * @return An instance of {@link JobLauncher}. + * @throws Exception The {@link Exception} that is thrown if an error occurs while creating the {@link JobLauncher}. + */ protected JobLauncher createJobLauncher() throws Exception { SimpleJobLauncher jobLauncher = new SimpleJobLauncher(); jobLauncher.setJobRepository(this.jobRepository); @@ -113,6 +126,10 @@ protected JobLauncher createJobLauncher() throws Exception { return jobLauncher; } + /** + * @return An instance of {@link JobRepository}. + * @throws Exception The {@link Exception} that is thrown if an error occurs while creating the {@link JobRepository}. + */ protected JobRepository createJobRepository() throws Exception { JobRepositoryFactoryBean factory = new JobRepositoryFactoryBean(); factory.setDataSource(getDataSource()); @@ -121,6 +138,10 @@ protected JobRepository createJobRepository() throws Exception { return factory.getObject(); } + /** + * @return An instance of {@link JobExplorer}. + * @throws Exception The {@link Exception} that is thrown if an error occurs while creating the {@link JobExplorer}. + */ protected JobExplorer createJobExplorer() throws Exception { JobExplorerFactoryBean jobExplorerFactoryBean = new JobExplorerFactoryBean(); jobExplorerFactoryBean.setDataSource(getDataSource()); diff --git a/spring-batch-core/src/main/java/org/springframework/batch/core/configuration/annotation/JobBuilderFactory.java b/spring-batch-core/src/main/java/org/springframework/batch/core/configuration/annotation/JobBuilderFactory.java index 8aba961b02..ff8ed11915 100644 --- a/spring-batch-core/src/main/java/org/springframework/batch/core/configuration/annotation/JobBuilderFactory.java +++ b/spring-batch-core/src/main/java/org/springframework/batch/core/configuration/annotation/JobBuilderFactory.java @@ -1,5 +1,5 @@ /* - * Copyright 2012-2013 the original author or authors. + * Copyright 2012-2022 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. @@ -28,6 +28,9 @@ public class JobBuilderFactory { private JobRepository jobRepository; + /** + * @param jobRepository The {@link JobRepository} to be used by the builder factory. + */ public JobBuilderFactory(JobRepository jobRepository) { this.jobRepository = jobRepository; } diff --git a/spring-batch-core/src/main/java/org/springframework/batch/core/configuration/annotation/ModularBatchConfiguration.java b/spring-batch-core/src/main/java/org/springframework/batch/core/configuration/annotation/ModularBatchConfiguration.java index f615f1a350..412654eda3 100644 --- a/spring-batch-core/src/main/java/org/springframework/batch/core/configuration/annotation/ModularBatchConfiguration.java +++ b/spring-batch-core/src/main/java/org/springframework/batch/core/configuration/annotation/ModularBatchConfiguration.java @@ -1,5 +1,5 @@ /* - * Copyright 2012-2021 the original author or authors. + * Copyright 2012-2022 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. @@ -72,6 +72,11 @@ public JobExplorer jobExplorer() throws Exception { return getConfigurer(configurers).getJobExplorer(); } + /** + * Creates a {@link AutomaticJobRegistrar} bean. + * @return New instance of {@link AutomaticJobRegistrar}. + * @throws Exception The {@link Exception} thrown if error occurs. + */ @Bean public AutomaticJobRegistrar jobRegistrar() throws Exception { registrar.setJobLoader(new DefaultJobLoader(jobRegistry())); diff --git a/spring-batch-core/src/main/java/org/springframework/batch/core/configuration/annotation/ScopeConfiguration.java b/spring-batch-core/src/main/java/org/springframework/batch/core/configuration/annotation/ScopeConfiguration.java index 38c8f0f5d6..1745c59d97 100644 --- a/spring-batch-core/src/main/java/org/springframework/batch/core/configuration/annotation/ScopeConfiguration.java +++ b/spring-batch-core/src/main/java/org/springframework/batch/core/configuration/annotation/ScopeConfiguration.java @@ -1,5 +1,5 @@ /* - * Copyright 2021 the original author or authors. + * Copyright 2021-2022 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,11 +40,17 @@ public class ScopeConfiguration { stepScope.setAutoProxy(false); } + /** + * @return The instance of {@link StepScope}. + */ @Bean public static StepScope stepScope() { return stepScope; } + /** + * @return The instance of {@link JobScope}. + */ @Bean public static JobScope jobScope() { return jobScope; diff --git a/spring-batch-core/src/main/java/org/springframework/batch/core/configuration/annotation/StepBuilderFactory.java b/spring-batch-core/src/main/java/org/springframework/batch/core/configuration/annotation/StepBuilderFactory.java index 46fcaccb94..018c2e7364 100644 --- a/spring-batch-core/src/main/java/org/springframework/batch/core/configuration/annotation/StepBuilderFactory.java +++ b/spring-batch-core/src/main/java/org/springframework/batch/core/configuration/annotation/StepBuilderFactory.java @@ -1,5 +1,5 @@ /* - * Copyright 2012-2013 the original author or authors. + * Copyright 2012-2022 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. @@ -32,6 +32,11 @@ public class StepBuilderFactory { private PlatformTransactionManager transactionManager; + /** + * Constructor for the {@link StepBuilderFactory}. + * @param jobRepository The {@link JobRepository} to be used by the builder factory. + * @param transactionManager The {@link PlatformTransactionManager} to be used by the builder factory. + */ public StepBuilderFactory(JobRepository jobRepository, PlatformTransactionManager transactionManager) { this.jobRepository = jobRepository; this.transactionManager = transactionManager; diff --git a/spring-batch-core/src/main/java/org/springframework/batch/core/configuration/xml/AbstractFlowParser.java b/spring-batch-core/src/main/java/org/springframework/batch/core/configuration/xml/AbstractFlowParser.java index 5b4c3e3d26..9317edbf0f 100644 --- a/spring-batch-core/src/main/java/org/springframework/batch/core/configuration/xml/AbstractFlowParser.java +++ b/spring-batch-core/src/main/java/org/springframework/batch/core/configuration/xml/AbstractFlowParser.java @@ -1,5 +1,5 @@ /* - * Copyright 2006-2014 the original author or authors. + * Copyright 2006-2022 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. @@ -46,32 +46,74 @@ */ public abstract class AbstractFlowParser extends AbstractSingleBeanDefinitionParser { + /** + * Establishes the ID attribute. + */ protected static final String ID_ATTR = "id"; + /** + * Establishes a Step element. + */ protected static final String STEP_ELE = "step"; + /** + * Establishes a Flow element. + */ protected static final String FLOW_ELE = "flow"; + /** + * Establishes a Decision element. + */ protected static final String DECISION_ELE = "decision"; + /** + * Establishes a Split element. + */ protected static final String SPLIT_ELE = "split"; + /** + * Establishes a Next attribute. + */ protected static final String NEXT_ATTR = "next"; + /** + * Establishes a Next element. + */ protected static final String NEXT_ELE = "next"; + /** + * Establishes an End element. + */ protected static final String END_ELE = "end"; + /** + * Establishes a Fail element. + */ protected static final String FAIL_ELE = "fail"; + /** + * Establishes a Stop element. + */ protected static final String STOP_ELE = "stop"; + /** + * Establishes an On element. + */ protected static final String ON_ATTR = "on"; + /** + * Establishes a To attribute. + */ protected static final String TO_ATTR = "to"; + /** + * Establishes a Restart attribute. + */ protected static final String RESTART_ATTR = "restart"; + /** + * Establishes a Exit Code element. + */ protected static final String EXIT_CODE_ATTR = "exit-code"; private static final InlineStepParser stepParser = new InlineStepParser(); @@ -80,6 +122,9 @@ public abstract class AbstractFlowParser extends AbstractSingleBeanDefinitionPar private static final DecisionParser decisionParser = new DecisionParser(); + /** + * Used as a suffix to generate unique state names for end transitions. + */ // For generating unique state names for end transitions protected static int endCounter = 0; diff --git a/spring-batch-core/src/main/java/org/springframework/batch/core/configuration/xml/AbstractListenerParser.java b/spring-batch-core/src/main/java/org/springframework/batch/core/configuration/xml/AbstractListenerParser.java index 6331381cc1..0701cfad97 100644 --- a/spring-batch-core/src/main/java/org/springframework/batch/core/configuration/xml/AbstractListenerParser.java +++ b/spring-batch-core/src/main/java/org/springframework/batch/core/configuration/xml/AbstractListenerParser.java @@ -1,5 +1,5 @@ /* - * Copyright 2009-2014 the original author or authors. + * Copyright 2009-2022 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. @@ -132,8 +132,14 @@ private List getMethodNameAttributes() { return methodNameAttributes; } + /** + * @return The {@link Class} for the implementation of {@link AbstractListenerFactoryBean}. + */ protected abstract Class> getBeanClass(); + /** + * @return The array of {@link ListenerMetaData}. + */ protected abstract ListenerMetaData[] getMetaDataValues(); -} \ No newline at end of file +} diff --git a/spring-batch-core/src/main/java/org/springframework/batch/core/configuration/xml/AbstractStepParser.java b/spring-batch-core/src/main/java/org/springframework/batch/core/configuration/xml/AbstractStepParser.java index 4c5527698e..4c3ad681f2 100644 --- a/spring-batch-core/src/main/java/org/springframework/batch/core/configuration/xml/AbstractStepParser.java +++ b/spring-batch-core/src/main/java/org/springframework/batch/core/configuration/xml/AbstractStepParser.java @@ -1,5 +1,5 @@ /* - * Copyright 2006-2009 the original author or authors. + * Copyright 2006-2022 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. @@ -48,6 +48,9 @@ */ public abstract class AbstractStepParser { + /** + * The ID attribute for the step parser. + */ protected static final String ID_ATTR = "id"; private static final String PARENT_ATTR = "parent"; diff --git a/spring-batch-core/src/main/java/org/springframework/batch/core/configuration/xml/CoreNamespaceUtils.java b/spring-batch-core/src/main/java/org/springframework/batch/core/configuration/xml/CoreNamespaceUtils.java index c72bec0d57..c49ddb7134 100644 --- a/spring-batch-core/src/main/java/org/springframework/batch/core/configuration/xml/CoreNamespaceUtils.java +++ b/spring-batch-core/src/main/java/org/springframework/batch/core/configuration/xml/CoreNamespaceUtils.java @@ -1,5 +1,5 @@ /* - * Copyright 2006-2013 the original author or authors. + * Copyright 2006-2022 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. @@ -57,6 +57,11 @@ public class CoreNamespaceUtils { private static final String CORE_NAMESPACE_POST_PROCESSOR_CLASS_NAME = "org.springframework.batch.core.configuration.xml.CoreNamespacePostProcessor"; + /** + * Create the beans based on the content of the source. + * @param parserContext The parser context to be used. + * @param source The source for the auto registration. + */ public static void autoregisterBeansForNamespace(ParserContext parserContext, Object source) { checkForStepScope(parserContext, source); checkForJobScope(parserContext, source); diff --git a/spring-batch-core/src/main/java/org/springframework/batch/core/configuration/xml/JobParser.java b/spring-batch-core/src/main/java/org/springframework/batch/core/configuration/xml/JobParser.java index 7edab3740a..40804fc99c 100644 --- a/spring-batch-core/src/main/java/org/springframework/batch/core/configuration/xml/JobParser.java +++ b/spring-batch-core/src/main/java/org/springframework/batch/core/configuration/xml/JobParser.java @@ -1,5 +1,5 @@ /* - * Copyright 2006-2008 the original author or authors. + * Copyright 2006-2022 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. @@ -150,6 +150,12 @@ else if (listenersElements.size() > 1) { } + /** + * Parse the element to retrieve {@link BeanMetadataElement}. + * @param element The {@link Element} to be parsed. + * @param parserContext The {@link ParserContext}. + * @return The {@link BeanMetadataElement} extracted from the element parameter. + */ public BeanMetadataElement parseBeanElement(Element element, ParserContext parserContext) { String refAttribute = element.getAttribute(REF_ATTR); Element beanElement = DomUtils.getChildElementByTagName(element, BEAN_ELE); diff --git a/spring-batch-core/src/main/java/org/springframework/batch/core/configuration/xml/JobParserJobFactoryBean.java b/spring-batch-core/src/main/java/org/springframework/batch/core/configuration/xml/JobParserJobFactoryBean.java index d099f029be..c30e00e34a 100644 --- a/spring-batch-core/src/main/java/org/springframework/batch/core/configuration/xml/JobParserJobFactoryBean.java +++ b/spring-batch-core/src/main/java/org/springframework/batch/core/configuration/xml/JobParserJobFactoryBean.java @@ -1,5 +1,5 @@ /* - * Copyright 2006-2013 the original author or authors. + * Copyright 2006-2022 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,6 +51,10 @@ public class JobParserJobFactoryBean implements SmartFactoryBean { private Flow flow; + /** + * Constructor for the factory bean that initializes the name. + * @param name The name to be used by the factory bean. + */ public JobParserJobFactoryBean(String name) { this.name = name; } @@ -88,18 +92,33 @@ public final FlowJob getObject() throws Exception { return flowJob; } + /** + * Set the restartable flag for the factory bean. + * @param restartable The restartable flag to be used by the factory bean. + */ public void setRestartable(Boolean restartable) { this.restartable = restartable; } + /** + * Set the {@link JobRepository} for the factory bean. + * @param jobRepository The {@link JobRepository} to be used by the factory bean. + */ public void setJobRepository(JobRepository jobRepository) { this.jobRepository = jobRepository; } + /** + * Set the {@link JobParametersValidator} for the factory bean. + * @param jobParametersValidator The {@link JobParametersValidator} to be used by the factory bean. + */ public void setJobParametersValidator(JobParametersValidator jobParametersValidator) { this.jobParametersValidator = jobParametersValidator; } + /** + * @return The {@link JobRepository} used by the factory bean. + */ public JobRepository getJobRepository() { return this.jobRepository; } @@ -108,10 +127,18 @@ public void setJobExecutionListeners(JobExecutionListener[] jobExecutionListener this.jobExecutionListeners = jobExecutionListeners; } + /** + * Set the {@link JobParametersIncrementer} for the factory bean. + * @param jobParametersIncrementer The {@link JobParametersIncrementer} to be used by the factory bean. + */ public void setJobParametersIncrementer(JobParametersIncrementer jobParametersIncrementer) { this.jobParametersIncrementer = jobParametersIncrementer; } + /** + * Set the flow for the factory bean. + * @param flow The {@link Flow} to be used by the factory bean. + */ public void setFlow(Flow flow) { this.flow = flow; } diff --git a/spring-batch-core/src/main/java/org/springframework/batch/core/configuration/xml/SimpleFlowFactoryBean.java b/spring-batch-core/src/main/java/org/springframework/batch/core/configuration/xml/SimpleFlowFactoryBean.java index daf7914d72..8b490b2062 100644 --- a/spring-batch-core/src/main/java/org/springframework/batch/core/configuration/xml/SimpleFlowFactoryBean.java +++ b/spring-batch-core/src/main/java/org/springframework/batch/core/configuration/xml/SimpleFlowFactoryBean.java @@ -1,5 +1,5 @@ /* - * Copyright 2012-2014 the original author or authors. + * Copyright 2012-2022 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. @@ -193,6 +193,9 @@ private DelegateState(String name, State state) { this.state = state; } + /** + * @return The {@link State} being used by the factory bean. + */ public State getState() { return this.state; } diff --git a/spring-batch-core/src/main/java/org/springframework/batch/core/configuration/xml/StepParserStepFactoryBean.java b/spring-batch-core/src/main/java/org/springframework/batch/core/configuration/xml/StepParserStepFactoryBean.java index 66f80e5401..7b62805253 100644 --- a/spring-batch-core/src/main/java/org/springframework/batch/core/configuration/xml/StepParserStepFactoryBean.java +++ b/spring-batch-core/src/main/java/org/springframework/batch/core/configuration/xml/StepParserStepFactoryBean.java @@ -1,5 +1,5 @@ /* - * Copyright 2006-2021 the original author or authors. + * Copyright 2006-2022 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. @@ -16,15 +16,12 @@ package org.springframework.batch.core.configuration.xml; -import java.io.Serializable; import java.util.Collection; import java.util.HashMap; import java.util.HashSet; import java.util.LinkedHashSet; import java.util.Map; -import java.util.Queue; import java.util.Set; -import java.util.concurrent.locks.ReentrantLock; import org.springframework.batch.core.ChunkListener; import org.springframework.batch.core.ItemProcessListener; @@ -278,6 +275,10 @@ protected void enhanceCommonStep(StepBuilderHelper builder) { } } + /** + * Create a partition {@link Step}. + * @return The {@link Step}. + */ protected Step createPartitionStep() { PartitionStepBuilder builder; @@ -303,6 +304,10 @@ protected Step createPartitionStep() { } + /** + * Creates a fault tolerant {@link Step}. + * @return The {@link Step}. + */ protected Step createFaultTolerantStep() { FaultTolerantStepBuilder builder = getFaultTolerantStepBuilder(this.name); @@ -383,6 +388,11 @@ else if (skipLimit!=null) { } + /** + * Creates a new {@link FaultTolerantStepBuilder}. + * @param stepName The name of the step used by the created builder. + * @return The {@link FaultTolerantStepBuilder}. + */ protected FaultTolerantStepBuilder getFaultTolerantStepBuilder(String stepName) { return new FaultTolerantStepBuilder<>(new StepBuilder(stepName)); } @@ -399,6 +409,10 @@ protected void registerItemListeners(SimpleStepBuilder builder) { } } + /** + * Creates a new {@link TaskletStep}. + * @return The {@link TaskletStep}. + */ protected Step createSimpleStep() { SimpleStepBuilder builder = getSimpleStepBuilder(name); @@ -436,6 +450,10 @@ protected TaskletStep createTaskletStep() { return builder.build(); } + /** + * Set the state of the {@link AbstractTaskletStepBuilder} using the values that were established for the factory bean. + * @param builder The {@link AbstractTaskletStepBuilder} to be modified. + */ @SuppressWarnings("serial") protected void enhanceTaskletStepBuilder(AbstractTaskletStepBuilder builder) { @@ -479,6 +497,10 @@ public boolean rollbackOn(Throwable ex) { } + /** + * Create a new {@link org.springframework.batch.core.job.flow.FlowStep}. + * @return The {@link org.springframework.batch.core.job.flow.FlowStep}. + */ protected Step createFlowStep() { FlowStepBuilder builder = new StepBuilder(name).flow(flow); enhanceCommonStep(builder); @@ -901,6 +923,9 @@ public void setCommitInterval(int commitInterval) { this.commitInterval = commitInterval; } + /** + * @return The commitInterval. + */ protected Integer getCommitInterval() { return this.commitInterval; } diff --git a/spring-batch-core/src/main/java/org/springframework/batch/core/converter/DefaultJobParametersConverter.java b/spring-batch-core/src/main/java/org/springframework/batch/core/converter/DefaultJobParametersConverter.java index b7ea06eb5a..146f367078 100644 --- a/spring-batch-core/src/main/java/org/springframework/batch/core/converter/DefaultJobParametersConverter.java +++ b/spring-batch-core/src/main/java/org/springframework/batch/core/converter/DefaultJobParametersConverter.java @@ -1,5 +1,5 @@ /* - * Copyright 2006-2018 the original author or authors. + * Copyright 2006-2022 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. @@ -64,10 +64,19 @@ */ public class DefaultJobParametersConverter implements JobParametersConverter { + /** + * Parameter key suffix representing the date type. + */ public static final String DATE_TYPE = "(date)"; + /** + * Parameter key suffix representing the string type. + */ public static final String STRING_TYPE = "(string)"; + /** + * Parameter key suffix representing the long type. + */ public static final String LONG_TYPE = "(long)"; private static final String DOUBLE_TYPE = "(double)"; diff --git a/spring-batch-core/src/main/java/org/springframework/batch/core/explore/support/SimpleJobExplorer.java b/spring-batch-core/src/main/java/org/springframework/batch/core/explore/support/SimpleJobExplorer.java index c9abd7cfac..aa9ffaa812 100644 --- a/spring-batch-core/src/main/java/org/springframework/batch/core/explore/support/SimpleJobExplorer.java +++ b/spring-batch-core/src/main/java/org/springframework/batch/core/explore/support/SimpleJobExplorer.java @@ -1,5 +1,5 @@ /* - * Copyright 2006-2021 the original author or authors. + * Copyright 2006-2022 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. @@ -62,6 +62,13 @@ public class SimpleJobExplorer implements JobExplorer { SimpleJobExplorer() { } + /** + * Constructor to initialize the job {@link SimpleJobExplorer}. + * @param jobInstanceDao The {@link JobInstanceDao} to be used by the repository. + * @param jobExecutionDao The {@link JobExecutionDao} to be used by the repository. + * @param stepExecutionDao The {@link StepExecutionDao} to be used by the repository. + * @param ecDao The {@link ExecutionContextDao} to be used by the repository. + */ public SimpleJobExplorer(JobInstanceDao jobInstanceDao, JobExecutionDao jobExecutionDao, StepExecutionDao stepExecutionDao, ExecutionContextDao ecDao) { super(); diff --git a/spring-batch-core/src/main/java/org/springframework/batch/core/repository/support/SimpleJobRepository.java b/spring-batch-core/src/main/java/org/springframework/batch/core/repository/support/SimpleJobRepository.java index 4c92623b25..6b8ebf037a 100644 --- a/spring-batch-core/src/main/java/org/springframework/batch/core/repository/support/SimpleJobRepository.java +++ b/spring-batch-core/src/main/java/org/springframework/batch/core/repository/support/SimpleJobRepository.java @@ -1,5 +1,5 @@ /* - * Copyright 2006-2021 the original author or authors. + * Copyright 2006-2022 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. @@ -43,9 +43,9 @@ /** * *

- * Implementation of {@link JobRepository} that stores JobInstances, - * JobExecutions, and StepExecutions using the injected DAOs. - *

+ * Implementation of {@link JobRepository} that stores job instances, + * job executions, and step executions using the injected DAOs. + *

* * @author Lucas Ward * @author Dave Syer