Showing preview only (1,546K chars total). Download the full file or copy to clipboard to get everything.
Repository: spring-cloud/spring-cloud-task
Branch: main
Commit: 6cd60f570c49
Files: 441
Total size: 1.3 MB
Directory structure:
gitextract_72_za3bm/
├── .editorconfig
├── .github/
│ ├── dco.yml
│ └── workflows/
│ ├── ci-maven-main.yml
│ ├── ci.yaml
│ └── deploy-docs.yml
├── .gitignore
├── .mvn/
│ ├── jvm.config
│ ├── maven.config
│ └── wrapper/
│ ├── maven-wrapper.jar
│ └── maven-wrapper.properties
├── .settings.xml
├── .springformat
├── CONTRIBUTING.adoc
├── LICENSE
├── README.adoc
├── docs/
│ ├── antora-playbook.yml
│ ├── antora.yml
│ ├── modules/
│ │ └── ROOT/
│ │ ├── nav.adoc
│ │ ├── pages/
│ │ │ ├── _attributes.adoc
│ │ │ ├── appendix-building-the-documentation.adoc
│ │ │ ├── appendix-task-repository-schema.adoc
│ │ │ ├── appendix.adoc
│ │ │ ├── batch-starter.adoc
│ │ │ ├── batch.adoc
│ │ │ ├── configprops.adoc
│ │ │ ├── features.adoc
│ │ │ ├── getting-started.adoc
│ │ │ ├── index.adoc
│ │ │ ├── observability.adoc
│ │ │ ├── preface.adoc
│ │ │ └── stream.adoc
│ │ └── partials/
│ │ ├── _configprops.adoc
│ │ ├── _conventions.adoc
│ │ ├── _metrics.adoc
│ │ └── _spans.adoc
│ ├── package.json
│ ├── pom.xml
│ └── src/
│ └── main/
│ ├── antora/
│ │ └── resources/
│ │ └── antora-resources/
│ │ └── antora.yml
│ ├── asciidoc/
│ │ ├── .gitignore
│ │ ├── Guardfile
│ │ ├── README.adoc
│ │ ├── index.htmladoc
│ │ ├── index.htmlsingleadoc
│ │ ├── index.pdfadoc
│ │ ├── sagan-index.adoc
│ │ ├── spring-cloud-task.epubadoc
│ │ ├── spring-cloud-task.htmlsingleadoc
│ │ └── spring-cloud-task.pdfadoc
│ └── javadoc/
│ └── spring-javadoc.css
├── mvnw
├── mvnw.cmd
├── pom.xml
├── spring-cloud-starter-single-step-batch-job/
│ ├── pom.xml
│ └── src/
│ ├── main/
│ │ ├── java/
│ │ │ └── org/
│ │ │ └── springframework/
│ │ │ └── cloud/
│ │ │ └── task/
│ │ │ └── batch/
│ │ │ └── autoconfigure/
│ │ │ ├── RangeConverter.java
│ │ │ ├── SingleStepJobAutoConfiguration.java
│ │ │ ├── SingleStepJobProperties.java
│ │ │ ├── flatfile/
│ │ │ │ ├── FlatFileItemReaderAutoConfiguration.java
│ │ │ │ ├── FlatFileItemReaderProperties.java
│ │ │ │ ├── FlatFileItemWriterAutoConfiguration.java
│ │ │ │ ├── FlatFileItemWriterProperties.java
│ │ │ │ └── package-info.java
│ │ │ ├── jdbc/
│ │ │ │ ├── JDBCSingleStepDataSourceAutoConfiguration.java
│ │ │ │ ├── JdbcBatchItemWriterAutoConfiguration.java
│ │ │ │ ├── JdbcBatchItemWriterProperties.java
│ │ │ │ ├── JdbcCursorItemReaderAutoConfiguration.java
│ │ │ │ ├── JdbcCursorItemReaderProperties.java
│ │ │ │ └── package-info.java
│ │ │ ├── kafka/
│ │ │ │ ├── KafkaItemReaderAutoConfiguration.java
│ │ │ │ ├── KafkaItemReaderProperties.java
│ │ │ │ ├── KafkaItemWriterAutoConfiguration.java
│ │ │ │ ├── KafkaItemWriterProperties.java
│ │ │ │ └── package-info.java
│ │ │ ├── package-info.java
│ │ │ └── rabbit/
│ │ │ ├── AmqpItemReaderAutoConfiguration.java
│ │ │ ├── AmqpItemReaderProperties.java
│ │ │ ├── AmqpItemWriterAutoConfiguration.java
│ │ │ ├── AmqpItemWriterProperties.java
│ │ │ └── package-info.java
│ │ └── resources/
│ │ └── META-INF/
│ │ ├── spring/
│ │ │ └── org.springframework.boot.autoconfigure.AutoConfiguration.imports
│ │ └── spring-configuration-metadata.json
│ └── test/
│ ├── java/
│ │ └── org/
│ │ └── springframework/
│ │ └── cloud/
│ │ └── task/
│ │ └── batch/
│ │ └── autoconfigure/
│ │ ├── RangeConverterTests.java
│ │ ├── SingleStepJobAutoConfigurationTests.java
│ │ ├── flatfile/
│ │ │ ├── FlatFileItemReaderAutoConfigurationTests.java
│ │ │ └── FlatFileItemWriterAutoConfigurationTests.java
│ │ ├── jdbc/
│ │ │ ├── JdbcBatchItemWriterAutoConfigurationTests.java
│ │ │ └── JdbcCursorItemReaderAutoConfigurationTests.java
│ │ ├── kafka/
│ │ │ ├── KafkaItemReaderAutoConfigurationTests.java
│ │ │ └── KafkaItemWriterTests.java
│ │ └── rabbit/
│ │ ├── AmqpItemReaderAutoConfigurationTests.java
│ │ └── AmqpItemWriterAutoConfigurationTests.java
│ └── resources/
│ ├── logback-test.xml
│ ├── schema-h2.sql
│ ├── test.txt
│ ├── testUTF16.csv
│ ├── testUTF8.csv
│ └── writerTestUTF16.txt
├── spring-cloud-starter-task/
│ └── pom.xml
├── spring-cloud-task-batch/
│ ├── pom.xml
│ └── src/
│ ├── main/
│ │ ├── java/
│ │ │ └── org/
│ │ │ └── springframework/
│ │ │ └── cloud/
│ │ │ └── task/
│ │ │ └── batch/
│ │ │ ├── configuration/
│ │ │ │ ├── JobLaunchCondition.java
│ │ │ │ ├── TaskBatchAutoConfiguration.java
│ │ │ │ ├── TaskBatchExecutionListenerBeanPostProcessor.java
│ │ │ │ ├── TaskBatchExecutionListenerFactoryBean.java
│ │ │ │ ├── TaskBatchProperties.java
│ │ │ │ ├── TaskJobLauncherApplicationRunnerFactoryBean.java
│ │ │ │ ├── TaskJobLauncherAutoConfiguration.java
│ │ │ │ └── package-info.java
│ │ │ ├── handler/
│ │ │ │ ├── TaskJobLauncherApplicationRunner.java
│ │ │ │ └── package-info.java
│ │ │ └── listener/
│ │ │ ├── TaskBatchDao.java
│ │ │ ├── TaskBatchExecutionListener.java
│ │ │ ├── package-info.java
│ │ │ └── support/
│ │ │ ├── JdbcTaskBatchDao.java
│ │ │ ├── MapTaskBatchDao.java
│ │ │ └── package-info.java
│ │ └── resources/
│ │ └── META-INF/
│ │ ├── additional-spring-configuration-metadata.json
│ │ └── spring/
│ │ └── org.springframework.boot.autoconfigure.AutoConfiguration.imports
│ └── test/
│ ├── java/
│ │ └── org/
│ │ └── springframework/
│ │ └── cloud/
│ │ └── task/
│ │ └── batch/
│ │ ├── configuration/
│ │ │ ├── TaskBatchTest.java
│ │ │ └── TaskJobLauncherAutoConfigurationTests.java
│ │ ├── handler/
│ │ │ ├── TaskJobLauncherApplicationRunnerCoreTests.java
│ │ │ └── TaskJobLauncherApplicationRunnerTests.java
│ │ └── listener/
│ │ ├── PrefixTests.java
│ │ ├── PrimaryKeyTests.java
│ │ └── TaskBatchExecutionListenerTests.java
│ └── resources/
│ ├── META-INF/
│ │ └── spring/
│ │ └── org.springframework.cloud.task.batch.configuration.TaskBatchTest.imports
│ ├── schema-h2.sql
│ └── schema-with-primary-keys-h2.sql
├── spring-cloud-task-core/
│ ├── pom.xml
│ └── src/
│ ├── main/
│ │ ├── java/
│ │ │ └── org/
│ │ │ └── springframework/
│ │ │ └── cloud/
│ │ │ └── task/
│ │ │ ├── configuration/
│ │ │ │ ├── DefaultTaskConfigurer.java
│ │ │ │ ├── EnableTask.java
│ │ │ │ ├── NoTransactionManagerProperty.java
│ │ │ │ ├── SimpleTaskAutoConfiguration.java
│ │ │ │ ├── SingleInstanceTaskListener.java
│ │ │ │ ├── SingleTaskConfiguration.java
│ │ │ │ ├── TaskConfigurer.java
│ │ │ │ ├── TaskLifecycleConfiguration.java
│ │ │ │ ├── TaskObservationCloudKeyValues.java
│ │ │ │ ├── TaskProperties.java
│ │ │ │ ├── TaskRepositoryDatabaseInitializerDetector.java
│ │ │ │ ├── TaskRepositoryDependsOnDatabaseInitializationDetector.java
│ │ │ │ ├── TaskRuntimeHints.java
│ │ │ │ ├── observation/
│ │ │ │ │ ├── DefaultTaskObservationConvention.java
│ │ │ │ │ ├── ObservationApplicationRunner.java
│ │ │ │ │ ├── ObservationApplicationRunnerBeanPostProcessor.java
│ │ │ │ │ ├── ObservationCommandLineRunner.java
│ │ │ │ │ ├── ObservationCommandLineRunnerBeanPostProcessor.java
│ │ │ │ │ ├── ObservationTaskAutoConfiguration.java
│ │ │ │ │ ├── TaskDocumentedObservation.java
│ │ │ │ │ ├── TaskObservationContext.java
│ │ │ │ │ ├── TaskObservationConvention.java
│ │ │ │ │ └── package-info.java
│ │ │ │ └── package-info.java
│ │ │ ├── listener/
│ │ │ │ ├── DefaultTaskExecutionObservationConvention.java
│ │ │ │ ├── TaskException.java
│ │ │ │ ├── TaskExecutionException.java
│ │ │ │ ├── TaskExecutionListener.java
│ │ │ │ ├── TaskExecutionListenerSupport.java
│ │ │ │ ├── TaskExecutionObservation.java
│ │ │ │ ├── TaskExecutionObservationContext.java
│ │ │ │ ├── TaskExecutionObservationConvention.java
│ │ │ │ ├── TaskLifecycleListener.java
│ │ │ │ ├── TaskListenerExecutorObjectFactory.java
│ │ │ │ ├── TaskObservations.java
│ │ │ │ ├── annotation/
│ │ │ │ │ ├── AfterTask.java
│ │ │ │ │ ├── BeforeTask.java
│ │ │ │ │ ├── FailedTask.java
│ │ │ │ │ ├── TaskListenerExecutor.java
│ │ │ │ │ └── package-info.java
│ │ │ │ └── package-info.java
│ │ │ ├── package-info.java
│ │ │ └── repository/
│ │ │ ├── TaskExecution.java
│ │ │ ├── TaskExplorer.java
│ │ │ ├── TaskNameResolver.java
│ │ │ ├── TaskRepository.java
│ │ │ ├── dao/
│ │ │ │ ├── JdbcTaskExecutionDao.java
│ │ │ │ ├── MapTaskExecutionDao.java
│ │ │ │ ├── TaskExecutionDao.java
│ │ │ │ └── package-info.java
│ │ │ ├── database/
│ │ │ │ ├── PagingQueryProvider.java
│ │ │ │ ├── package-info.java
│ │ │ │ └── support/
│ │ │ │ ├── AbstractSqlPagingQueryProvider.java
│ │ │ │ ├── Db2PagingQueryProvider.java
│ │ │ │ ├── H2PagingQueryProvider.java
│ │ │ │ ├── HsqlPagingQueryProvider.java
│ │ │ │ ├── MariaDbPagingQueryProvider.java
│ │ │ │ ├── MySqlPagingQueryProvider.java
│ │ │ │ ├── OraclePagingQueryProvider.java
│ │ │ │ ├── PostgresPagingQueryProvider.java
│ │ │ │ ├── SqlPagingQueryProviderFactoryBean.java
│ │ │ │ ├── SqlPagingQueryUtils.java
│ │ │ │ ├── SqlServerPagingQueryProvider.java
│ │ │ │ └── package-info.java
│ │ │ ├── package-info.java
│ │ │ └── support/
│ │ │ ├── DatabaseType.java
│ │ │ ├── SimpleTaskExplorer.java
│ │ │ ├── SimpleTaskNameResolver.java
│ │ │ ├── SimpleTaskRepository.java
│ │ │ ├── TaskExecutionDaoFactoryBean.java
│ │ │ ├── TaskRepositoryInitializer.java
│ │ │ └── package-info.java
│ │ └── resources/
│ │ ├── META-INF/
│ │ │ ├── additional-spring-configuration-metadata.json
│ │ │ ├── spring/
│ │ │ │ ├── aot.factories
│ │ │ │ └── org.springframework.boot.autoconfigure.AutoConfiguration.imports
│ │ │ └── spring.factories
│ │ └── org/
│ │ └── springframework/
│ │ └── cloud/
│ │ └── task/
│ │ ├── migration/
│ │ │ ├── 1.1.x/
│ │ │ │ ├── migration-h2.sql
│ │ │ │ ├── migration-hsqldb.sql
│ │ │ │ ├── migration-mysql.sql
│ │ │ │ ├── migration-oracle.sql
│ │ │ │ ├── migration-postgresql.sql
│ │ │ │ └── migration-sqlserver.sql
│ │ │ ├── 1.2.x/
│ │ │ │ ├── migration-db2.sql
│ │ │ │ ├── migration-h2.sql
│ │ │ │ ├── migration-hsqldb.sql
│ │ │ │ ├── migration-mysql.sql
│ │ │ │ ├── migration-oracle.sql
│ │ │ │ ├── migration-postgresql.sql
│ │ │ │ └── migration-sqlserver.sql
│ │ │ ├── 2.2.x/
│ │ │ │ └── migration-oracle.sql
│ │ │ └── 3.0.x/
│ │ │ ├── migration-db2.sql
│ │ │ ├── migration-h2.sql
│ │ │ ├── migration-hsqldb.sql
│ │ │ ├── migration-mysql.sql
│ │ │ └── migration-oracle.sql
│ │ ├── schema-db2.sql
│ │ ├── schema-h2.sql
│ │ ├── schema-hsqldb.sql
│ │ ├── schema-mariadb.sql
│ │ ├── schema-mysql.sql
│ │ ├── schema-oracle.sql
│ │ ├── schema-postgresql.sql
│ │ └── schema-sqlserver.sql
│ └── test/
│ ├── java/
│ │ └── org/
│ │ └── springframework/
│ │ └── cloud/
│ │ └── task/
│ │ ├── SimpleSingleTaskAutoConfigurationTests.java
│ │ ├── SimpleSingleTaskAutoConfigurationWithDataSourceTests.java
│ │ ├── SimpleTaskAutoConfigurationTests.java
│ │ ├── TaskCoreTests.java
│ │ ├── TaskRepositoryInitializerDefaultTaskConfigurerTests.java
│ │ ├── TaskRepositoryInitializerNoDataSourceTaskConfigurerTests.java
│ │ ├── configuration/
│ │ │ ├── DefaultTaskConfigurerTests.java
│ │ │ ├── RepositoryTransactionManagerConfigurationTests.java
│ │ │ ├── TaskPropertiesTests.java
│ │ │ ├── TestConfiguration.java
│ │ │ └── observation/
│ │ │ └── ObservationIntegrationTests.java
│ │ ├── listener/
│ │ │ ├── TaskExceptionTests.java
│ │ │ ├── TaskExecutionListenerTests.java
│ │ │ ├── TaskLifecycleListenerTests.java
│ │ │ └── TaskListenerExecutorObjectFactoryTests.java
│ │ ├── micrometer/
│ │ │ └── TaskObservationsTests.java
│ │ ├── repository/
│ │ │ ├── H2TaskRepositoryIntegrationTests.java
│ │ │ ├── MariaDbTaskRepositoryIntegrationTests.java
│ │ │ ├── dao/
│ │ │ │ ├── BaseTaskExecutionDaoTestCases.java
│ │ │ │ ├── JdbcTaskExecutionDaoMariaDBIntegrationTests.java
│ │ │ │ └── TaskExecutionDaoTests.java
│ │ │ ├── database/
│ │ │ │ └── support/
│ │ │ │ ├── FindAllPagingQueryProviderTests.java
│ │ │ │ ├── H2PagingQueryProviderTests.java
│ │ │ │ ├── InvalidPagingQueryProviderTests.java
│ │ │ │ ├── SqlPagingQueryProviderFactoryBeanTests.java
│ │ │ │ └── WhereClausePagingQueryProviderTests.java
│ │ │ └── support/
│ │ │ ├── DatabaseTypeTests.java
│ │ │ ├── SimpleTaskExplorerTests.java
│ │ │ ├── SimpleTaskNameResolverTests.java
│ │ │ ├── SimpleTaskRepositoryJdbcTests.java
│ │ │ ├── SimpleTaskRepositoryMapTests.java
│ │ │ ├── TaskDatabaseInitializerTests.java
│ │ │ └── TaskExecutionDaoFactoryBeanTests.java
│ │ └── util/
│ │ ├── TaskExecutionCreator.java
│ │ ├── TestDBUtils.java
│ │ ├── TestDefaultConfiguration.java
│ │ ├── TestListener.java
│ │ └── TestVerifierUtils.java
│ └── resources/
│ ├── application.properties
│ └── micrometer/
│ └── pcf-scs-info.json
├── spring-cloud-task-dependencies/
│ └── pom.xml
├── spring-cloud-task-integration-tests/
│ ├── pom.xml
│ └── src/
│ └── test/
│ ├── java/
│ │ ├── configuration/
│ │ │ ├── JobConfiguration.java
│ │ │ ├── JobSkipConfiguration.java
│ │ │ ├── SkipItemReader.java
│ │ │ └── SkipItemWriter.java
│ │ └── org/
│ │ └── springframework/
│ │ └── cloud/
│ │ └── task/
│ │ ├── executionid/
│ │ │ ├── TaskStartApplication.java
│ │ │ └── TaskStartTests.java
│ │ ├── initializer/
│ │ │ └── TaskInitializerTests.java
│ │ └── listener/
│ │ ├── BatchExecutionEventTests.java
│ │ └── TaskEventTests.java
│ └── resources/
│ ├── application.properties
│ └── org/
│ └── springframework/
│ └── cloud/
│ └── task/
│ └── listener/
│ ├── chunk-events-sink-channel.properties
│ ├── item-process-sink-channel.properties
│ ├── item-read-events-sink-channel.properties
│ ├── item-write-events-sink-channel.properties
│ ├── job-execution-sink-channel.properties
│ ├── sink-channel.properties
│ ├── skip-events-sink-channel.properties
│ └── step-execution-sink-channel.properties
├── spring-cloud-task-samples/
│ ├── batch-events/
│ │ ├── .mvn/
│ │ │ └── wrapper/
│ │ │ ├── maven-wrapper.jar
│ │ │ └── maven-wrapper.properties
│ │ ├── README.adoc
│ │ ├── mvnw
│ │ ├── mvnw.cmd
│ │ ├── pom.xml
│ │ └── src/
│ │ ├── main/
│ │ │ ├── java/
│ │ │ │ └── io/
│ │ │ │ └── spring/
│ │ │ │ └── cloud/
│ │ │ │ ├── BatchEventsApplication.java
│ │ │ │ └── package-info.java
│ │ │ └── resources/
│ │ │ ├── application.properties
│ │ │ └── logback-test.xml
│ │ └── test/
│ │ ├── java/
│ │ │ └── io/
│ │ │ └── spring/
│ │ │ └── cloud/
│ │ │ └── BatchEventsApplicationTests.java
│ │ └── resources/
│ │ └── io/
│ │ └── spring/
│ │ └── task/
│ │ └── listener/
│ │ └── job-listener-sink-channel.properties
│ ├── batch-job/
│ │ ├── .mvn/
│ │ │ └── wrapper/
│ │ │ ├── maven-wrapper.jar
│ │ │ └── maven-wrapper.properties
│ │ ├── README.adoc
│ │ ├── mvnw
│ │ ├── mvnw.cmd
│ │ ├── pom.xml
│ │ └── src/
│ │ ├── main/
│ │ │ ├── java/
│ │ │ │ └── io/
│ │ │ │ └── spring/
│ │ │ │ ├── BatchJobApplication.java
│ │ │ │ ├── configuration/
│ │ │ │ │ ├── JobConfiguration.java
│ │ │ │ │ └── package-info.java
│ │ │ │ └── package-info.java
│ │ │ └── resources/
│ │ │ └── application.properties
│ │ └── test/
│ │ ├── java/
│ │ │ └── io/
│ │ │ └── spring/
│ │ │ ├── BatchJobApplicationTests.java
│ │ │ ├── BatchJobTestConfiguration.java
│ │ │ └── TestBatchJobApp.java
│ │ └── resources/
│ │ └── application.properties
│ ├── jpa-sample/
│ │ ├── .mvn/
│ │ │ └── wrapper/
│ │ │ ├── maven-wrapper.jar
│ │ │ └── maven-wrapper.properties
│ │ ├── README.adoc
│ │ ├── mvnw
│ │ ├── mvnw.cmd
│ │ ├── pom.xml
│ │ └── src/
│ │ ├── main/
│ │ │ ├── java/
│ │ │ │ └── io/
│ │ │ │ └── spring/
│ │ │ │ ├── JpaApplication.java
│ │ │ │ ├── configuration/
│ │ │ │ │ ├── TaskRunComponent.java
│ │ │ │ │ ├── TaskRunOutput.java
│ │ │ │ │ ├── TaskRunRepository.java
│ │ │ │ │ └── package-info.java
│ │ │ │ └── package-info.java
│ │ │ └── resources/
│ │ │ ├── application-cloud.yml
│ │ │ └── application.yml
│ │ └── test/
│ │ ├── java/
│ │ │ └── io/
│ │ │ └── spring/
│ │ │ └── JpaApplicationTests.java
│ │ └── resources/
│ │ └── application.properties
│ ├── multiple-datasources/
│ │ ├── .mvn/
│ │ │ └── wrapper/
│ │ │ ├── maven-wrapper.jar
│ │ │ └── maven-wrapper.properties
│ │ ├── README.adoc
│ │ ├── mvnw
│ │ ├── mvnw.cmd
│ │ ├── pom.xml
│ │ └── src/
│ │ ├── main/
│ │ │ ├── java/
│ │ │ │ └── io/
│ │ │ │ └── spring/
│ │ │ │ ├── MultipleDataSourcesApplication.java
│ │ │ │ ├── configuration/
│ │ │ │ │ ├── CustomTaskConfigurer.java
│ │ │ │ │ ├── EmbeddedDataSourceConfiguration.java
│ │ │ │ │ ├── ExternalDataSourceConfiguration.java
│ │ │ │ │ └── package-info.java
│ │ │ │ ├── package-info.java
│ │ │ │ └── task/
│ │ │ │ ├── SampleCommandLineRunner.java
│ │ │ │ └── package-info.java
│ │ │ └── resources/
│ │ │ └── application.properties
│ │ └── test/
│ │ ├── java/
│ │ │ └── io/
│ │ │ └── spring/
│ │ │ ├── MultiDataSourcesApplicationTests.java
│ │ │ └── MultiDataSourcesExternalApplicationTests.java
│ │ └── resources/
│ │ └── application.properties
│ ├── pom.xml
│ ├── single-step-batch-job/
│ │ ├── .mvn/
│ │ │ └── wrapper/
│ │ │ ├── maven-wrapper.jar
│ │ │ └── maven-wrapper.properties
│ │ ├── README.adoc
│ │ ├── mvnw
│ │ ├── pom.xml
│ │ └── src/
│ │ ├── main/
│ │ │ ├── java/
│ │ │ │ └── io/
│ │ │ │ └── spring/
│ │ │ │ ├── SingleStepBatchJobApplication.java
│ │ │ │ └── package-info.java
│ │ │ └── resources/
│ │ │ ├── application-amqpreader.properties
│ │ │ ├── application-amqpwriter.properties
│ │ │ ├── application-ffreader.properties
│ │ │ ├── application-ffwriter.properties
│ │ │ ├── application-jdbcreader.properties
│ │ │ ├── application-jdbcwriter.properties
│ │ │ ├── application-kafkareader.properties
│ │ │ ├── application-kafkawriter.properties
│ │ │ ├── application.properties
│ │ │ └── test.txt
│ │ └── test/
│ │ ├── java/
│ │ │ └── io/
│ │ │ └── spring/
│ │ │ └── BatchJobApplicationTests.java
│ │ └── resources/
│ │ ├── schema-h2.sql
│ │ ├── test.txt
│ │ └── testresult.txt
│ ├── task-events/
│ │ ├── .mvn/
│ │ │ └── wrapper/
│ │ │ ├── maven-wrapper.jar
│ │ │ └── maven-wrapper.properties
│ │ ├── README.adoc
│ │ ├── mvnw
│ │ ├── mvnw.cmd
│ │ ├── pom.xml
│ │ └── src/
│ │ └── main/
│ │ ├── java/
│ │ │ └── io/
│ │ │ └── spring/
│ │ │ ├── TaskEventsApplication.java
│ │ │ └── package-info.java
│ │ └── resources/
│ │ └── application.properties
│ ├── task-observations/
│ │ ├── .gitignore
│ │ ├── .mvn/
│ │ │ └── wrapper/
│ │ │ ├── maven-wrapper.jar
│ │ │ └── maven-wrapper.properties
│ │ ├── README.adoc
│ │ ├── mvnw
│ │ ├── mvnw.cmd
│ │ ├── pom.xml
│ │ └── src/
│ │ ├── main/
│ │ │ ├── java/
│ │ │ │ └── io/
│ │ │ │ └── spring/
│ │ │ │ └── taskobservations/
│ │ │ │ ├── ObservationConfiguration.java
│ │ │ │ ├── TaskObservationsApplication.java
│ │ │ │ └── package-info.java
│ │ │ └── resources/
│ │ │ └── application.properties
│ │ └── test/
│ │ └── java/
│ │ └── io/
│ │ └── spring/
│ │ └── taskobservations/
│ │ └── TaskObservationsApplicationTests.java
│ └── timestamp/
│ ├── README.adoc
│ ├── pom.xml
│ └── src/
│ ├── main/
│ │ ├── java/
│ │ │ └── org/
│ │ │ └── springframework/
│ │ │ └── cloud/
│ │ │ └── task/
│ │ │ └── timestamp/
│ │ │ ├── TaskApplication.java
│ │ │ ├── TimestampTaskProperties.java
│ │ │ └── package-info.java
│ │ └── resources/
│ │ └── application.properties
│ └── test/
│ ├── java/
│ │ └── org/
│ │ └── springframework/
│ │ └── cloud/
│ │ └── task/
│ │ └── timestamp/
│ │ ├── TaskApplicationTests.java
│ │ └── TimestampTaskPropertiesTests.java
│ └── resources/
│ └── application.properties
├── spring-cloud-task-stream/
│ ├── .mvn/
│ │ └── wrapper/
│ │ ├── maven-wrapper.jar
│ │ └── maven-wrapper.properties
│ ├── pom.xml
│ └── src/
│ ├── main/
│ │ ├── java/
│ │ │ └── org/
│ │ │ └── springframework/
│ │ │ └── cloud/
│ │ │ └── task/
│ │ │ ├── batch/
│ │ │ │ └── listener/
│ │ │ │ ├── BatchEventAutoConfiguration.java
│ │ │ │ ├── EventEmittingChunkListener.java
│ │ │ │ ├── EventEmittingItemProcessListener.java
│ │ │ │ ├── EventEmittingItemReadListener.java
│ │ │ │ ├── EventEmittingItemWriteListener.java
│ │ │ │ ├── EventEmittingJobExecutionListener.java
│ │ │ │ ├── EventEmittingSkipListener.java
│ │ │ │ ├── EventEmittingStepExecutionListener.java
│ │ │ │ ├── package-info.java
│ │ │ │ └── support/
│ │ │ │ ├── BatchJobHeaders.java
│ │ │ │ ├── ExitStatus.java
│ │ │ │ ├── JobExecutionEvent.java
│ │ │ │ ├── JobInstanceEvent.java
│ │ │ │ ├── JobParameterEvent.java
│ │ │ │ ├── JobParametersEvent.java
│ │ │ │ ├── MessagePublisher.java
│ │ │ │ ├── StepExecutionEvent.java
│ │ │ │ ├── TaskBatchEventListenerBeanPostProcessor.java
│ │ │ │ ├── TaskEventProperties.java
│ │ │ │ └── package-info.java
│ │ │ └── listener/
│ │ │ ├── TaskEventAutoConfiguration.java
│ │ │ └── package-info.java
│ │ └── resources/
│ │ ├── META-INF/
│ │ │ ├── additional-spring-configuration-metadata.json
│ │ │ └── spring/
│ │ │ └── org.springframework.boot.autoconfigure.AutoConfiguration.imports
│ │ └── org/
│ │ └── springframework/
│ │ └── cloud/
│ │ └── task/
│ │ └── application.properties
│ └── test/
│ └── java/
│ └── org/
│ └── springframework/
│ └── cloud/
│ └── task/
│ ├── batch/
│ │ └── listener/
│ │ ├── EventListenerTests.java
│ │ ├── JobExecutionEventTests.java
│ │ ├── JobInstanceEventTests.java
│ │ ├── JobParameterEventTests.java
│ │ ├── JobParametersEventTests.java
│ │ ├── StepExecutionEventTests.java
│ │ ├── TaskBatchEventListenerBeanPostProcessorTests.java
│ │ └── support/
│ │ └── TaskBatchEventListenerBeanPostProcessorRuntimeHintTests.java
│ └── listener/
│ └── TaskEventTests.java
└── src/
└── checkstyle/
└── checkstyle-suppressions.xml
================================================
FILE CONTENTS
================================================
================================================
FILE: .editorconfig
================================================
# EditorConfig is awesome: https://EditorConfig.org
# top-most EditorConfig file
root = true
[*]
indent_style = tab
indent_size = 4
end_of_line = lf
insert_final_newline = true
[*.yml]
indent_style = space
indent_size = 2
================================================
FILE: .github/dco.yml
================================================
require:
members: false
================================================
FILE: .github/workflows/ci-maven-main.yml
================================================
name: CI PRs
on:
push:
branches:
- main
pull_request:
branches:
- main
jobs:
build:
runs-on: ubuntu-latest
name: CI PR Build
steps:
- uses: actions/checkout@v2
- uses: actions/setup-java@v2
with:
distribution: adopt
java-version: 17
- run: mvn "-Dmaven.repo.local=.m2" -U -B package -s .settings.xml
================================================
FILE: .github/workflows/ci.yaml
================================================
name: Spring Cloud Task CI Job
on:
push:
branches:
- main
- 4.3.x
# Scheduled builds run daily at midnight UTC
schedule:
- cron: '0 0 * * *'
# Manual trigger with optional branch override
workflow_dispatch:
inputs:
branches:
description: "Which branch should be built (can be a comma-separated list of branches)"
required: true
default: 'main'
type: string
jobs:
deploy:
uses: spring-cloud/spring-cloud-github-actions/.github/workflows/deploy.yml@main
with:
branches: ${{ inputs.branches }}
secrets:
ARTIFACTORY_USERNAME: ${{ secrets.ARTIFACTORY_USERNAME }}
ARTIFACTORY_PASSWORD: ${{ secrets.ARTIFACTORY_PASSWORD }}
COMMERCIAL_ARTIFACTORY_USERNAME: ${{ secrets.COMMERCIAL_ARTIFACTORY_USERNAME }}
COMMERCIAL_ARTIFACTORY_PASSWORD: ${{ secrets.COMMERCIAL_ARTIFACTORY_PASSWORD }}
DOCKERHUB_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }}
DOCKERHUB_TOKEN: ${{ secrets.DOCKERHUB_TOKEN }}
================================================
FILE: .github/workflows/deploy-docs.yml
================================================
name: Deploy Docs
on:
push:
branches-ignore: [ gh-pages ]
tags: '**'
repository_dispatch:
types: request-build-reference # legacy
#schedule:
#- cron: '0 10 * * *' # Once per day at 10am UTC
workflow_dispatch:
permissions:
actions: write
jobs:
build:
runs-on: ubuntu-latest
# if: github.repository_owner == 'spring-cloud'
steps:
- name: Checkout
uses: actions/checkout@v3
with:
ref: docs-build
fetch-depth: 1
- name: Dispatch (partial build)
if: github.ref_type == 'branch'
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: gh workflow run deploy-docs.yml -r $(git rev-parse --abbrev-ref HEAD) -f build-refname=${{ github.ref_name }}
- name: Dispatch (full build)
if: github.ref_type == 'tag'
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: gh workflow run deploy-docs.yml -r $(git rev-parse --abbrev-ref HEAD)
================================================
FILE: .gitignore
================================================
*~
.#*
*#
*.sw*
_site/
.factorypath
.gradletasknamecache
.DS_Store
/application.yml
/application.properties
asciidoctor.css
atlassian-ide-plugin.xml
bin/
build/
dump.rdb
out
spring-shell.log
target/
test-output
result.txt
.flattened-pom.xml
# Eclipse artifacts, including WTP generated manifests
.classpath
.project
.settings/
.springBeans
spring-*/src/main/java/META-INF/MANIFEST.MF
# IDEA artifacts and output dirs
*.iml
*.ipr
*.iws
.idea/*
# Github Actions
.m2
node
node_modules
build
/package.json
package-lock.json
================================================
FILE: .mvn/jvm.config
================================================
-Xmx1024m -XX:CICompilerCount=1 -XX:TieredStopAtLevel=1 -Djava.security.egd=file:/dev/./urandom
================================================
FILE: .mvn/maven.config
================================================
-DaltSnapshotDeploymentRepository=repo.spring.io::default::https://repo.spring.io/libs-snapshot-local
-P spring
================================================
FILE: .mvn/wrapper/maven-wrapper.properties
================================================
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.9.1/apache-maven-3.9.1-bin.zip
wrapperUrl=https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.2.0/maven-wrapper-3.2.0.jar
================================================
FILE: .settings.xml
================================================
<?xml version="1.0" encoding="UTF-8"?>
<!--
~ /*
~ * Copyright 2016-2019 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.
~ */
-->
<settings>
<servers>
<server>
<id>repo.spring.io</id>
<username>${env.CI_DEPLOY_USERNAME}</username>
<password>${env.CI_DEPLOY_PASSWORD}</password>
</server>
</servers>
<profiles>
<profile>
<!--
N.B. this profile is only here to support users and IDEs that do not use Maven 3.3.
It isn't needed on the command line if you use the wrapper script (mvnw) or if you use
a native Maven with the right version. Eclipse users should points their Maven tooling to
this settings file, or copy the profile into their ~/.m2/settings.xml.
-->
<id>spring</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<repositories>
<repository>
<id>spring-snapshots</id>
<name>Spring Snapshots</name>
<url>https://repo.spring.io/snapshot</url>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
<repository>
<id>spring-milestones</id>
<name>Spring Milestones</name>
<url>https://repo.spring.io/milestone</url>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
<repository>
<id>spring-releases</id>
<name>Spring Releases</name>
<url>https://repo.spring.io/release</url>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>spring-snapshots</id>
<name>Spring Snapshots</name>
<url>https://repo.spring.io/snapshot</url>
<snapshots>
<enabled>true</enabled>
</snapshots>
</pluginRepository>
<pluginRepository>
<id>spring-milestones</id>
<name>Spring Milestones</name>
<url>https://repo.spring.io/milestone</url>
<snapshots>
<enabled>false</enabled>
</snapshots>
</pluginRepository>
</pluginRepositories>
</profile>
</profiles>
<pluginGroups>
<pluginGroup>io.spring.javaformat</pluginGroup>
</pluginGroups>
</settings>
================================================
FILE: .springformat
================================================
================================================
FILE: CONTRIBUTING.adoc
================================================
= Contributing to Spring Cloud Task
:github: https://github.com/spring-cloud/spring-cloud-task
Spring Cloud Task is released under the Apache 2.0 license. If you would like to contribute something, or want to hack on the code this document should help you get started.
== Using GitHub Issues
We use GitHub issues to track bugs and enhancements.
If you have a general usage question please ask on https://stackoverflow.com[Stack Overflow].
The Spring Cloud Task team and the broader community monitor the https://stackoverflow.com/tags/spring-cloud-Task[`spring-cloud-task`] tag.
If you are reporting a bug, please help to speed up problem diagnosis by providing as much information as possible.
Ideally, that would include a small sample project that reproduces the problem.
== Reporting Security Vulnerabilities
If you think you have found a security vulnerability in Spring Cloud Task please *DO NOT* disclose it publicly until we've had a chance to fix it.
Please don't report security vulnerabilities using GitHub issues, instead head over to https://spring.io/security-policy and learn how to disclose them responsibly.
== Developer Certificate of Origin
All commits must include a **Signed-off-by** trailer at the end of each commit message to indicate that the contributor agrees to the Developer Certificate of Origin.
For additional details, please refer to the blog post https://spring.io/blog/2025/01/06/hello-dco-goodbye-cla-simplifying-contributions-to-spring[Hello DCO, Goodbye CLA: Simplifying Contributions to Spring].
=== Code Conventions and Housekeeping
None of the following guidelines is essential for a pull request, but they all help your fellow developers understand and work with your code.
They can also be added after the original pull request but before a merge.
* Use the Spring Framework code format conventions. If you use Eclipse, you can import formatter settings by using the `eclipse-code-formatter.xml` file from the https://github.com/spring-cloud/spring-cloud-build/blob/master/spring-cloud-dependencies-parent/eclipse-code-formatter.xml[Spring Cloud Build] project.
If you use IntelliJ, you can use the https://plugins.jetbrains.com/plugin/6546[Eclipse Code Formatter Plugin] to import the same file.
* Make sure all new `.java` files have a simple Javadoc class comment with at least an `@author` tag identifying you, and preferably at least a paragraph describing the class's purpose.
* Add the ASF license header comment to all new `.java` files (to do so, copy it from existing files in the project).
* Add yourself as an `@author` to the .java files that you modify substantially (more than cosmetic changes).
* Add some Javadocs and, if you change the namespace, some XSD doc elements.
* A few unit tests would help a lot as well. Someone has to do it, and your fellow developers appreciate the effort.
* If no one else uses your branch, rebase it against the current master (or other target branch in the main project).
* When writing a commit message, follow https://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html[these conventions].
If you fix an existing issue, add `Fixes gh-XXXX` (where XXXX is the issue number) at the end of the commit message.
================================================
FILE: LICENSE
================================================
Apache License
Version 2.0, January 2004
https://www.apache.org/licenses/
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
1. Definitions.
"License" shall mean the terms and conditions for use, reproduction,
and distribution as defined by Sections 1 through 9 of this document.
"Licensor" shall mean the copyright owner or entity authorized by
the copyright owner that is granting the License.
"Legal Entity" shall mean the union of the acting entity and all
other entities that control, are controlled by, or are under common
control with that entity. For the purposes of this definition,
"control" means (i) the power, direct or indirect, to cause the
direction or management of such entity, whether by contract or
otherwise, or (ii) ownership of fifty percent (50%) or more of the
outstanding shares, or (iii) beneficial ownership of such entity.
"You" (or "Your") shall mean an individual or Legal Entity
exercising permissions granted by this License.
"Source" form shall mean the preferred form for making modifications,
including but not limited to software source code, documentation
source, and configuration files.
"Object" form shall mean any form resulting from mechanical
transformation or translation of a Source form, including but
not limited to compiled object code, generated documentation,
and conversions to other media types.
"Work" shall mean the work of authorship, whether in Source or
Object form, made available under the License, as indicated by a
copyright notice that is included in or attached to the work
(an example is provided in the Appendix below).
"Derivative Works" shall mean any work, whether in Source or Object
form, that is based on (or derived from) the Work and for which the
editorial revisions, annotations, elaborations, or other modifications
represent, as a whole, an original work of authorship. For the purposes
of this License, Derivative Works shall not include works that remain
separable from, or merely link (or bind by name) to the interfaces of,
the Work and Derivative Works thereof.
"Contribution" shall mean any work of authorship, including
the original version of the Work and any modifications or additions
to that Work or Derivative Works thereof, that is intentionally
submitted to Licensor for inclusion in the Work by the copyright owner
or by an individual or Legal Entity authorized to submit on behalf of
the copyright owner. For the purposes of this definition, "submitted"
means any form of electronic, verbal, or written communication sent
to the Licensor or its representatives, including but not limited to
communication on electronic mailing lists, source code control systems,
and issue tracking systems that are managed by, or on behalf of, the
Licensor for the purpose of discussing and improving the Work, but
excluding communication that is conspicuously marked or otherwise
designated in writing by the copyright owner as "Not a Contribution."
"Contributor" shall mean Licensor and any individual or Legal Entity
on behalf of whom a Contribution has been received by Licensor and
subsequently incorporated within the Work.
2. Grant of Copyright License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
copyright license to reproduce, prepare Derivative Works of,
publicly display, publicly perform, sublicense, and distribute the
Work and such Derivative Works in Source or Object form.
3. Grant of Patent License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
(except as stated in this section) patent license to make, have made,
use, offer to sell, sell, import, and otherwise transfer the Work,
where such license applies only to those patent claims licensable
by such Contributor that are necessarily infringed by their
Contribution(s) alone or by combination of their Contribution(s)
with the Work to which such Contribution(s) was submitted. If You
institute patent litigation against any entity (including a
cross-claim or counterclaim in a lawsuit) alleging that the Work
or a Contribution incorporated within the Work constitutes direct
or contributory patent infringement, then any patent licenses
granted to You under this License for that Work shall terminate
as of the date such litigation is filed.
4. Redistribution. You may reproduce and distribute copies of the
Work or Derivative Works thereof in any medium, with or without
modifications, and in Source or Object form, provided that You
meet the following conditions:
(a) You must give any other recipients of the Work or
Derivative Works a copy of this License; and
(b) You must cause any modified files to carry prominent notices
stating that You changed the files; and
(c) You must retain, in the Source form of any Derivative Works
that You distribute, all copyright, patent, trademark, and
attribution notices from the Source form of the Work,
excluding those notices that do not pertain to any part of
the Derivative Works; and
(d) If the Work includes a "NOTICE" text file as part of its
distribution, then any Derivative Works that You distribute must
include a readable copy of the attribution notices contained
within such NOTICE file, excluding those notices that do not
pertain to any part of the Derivative Works, in at least one
of the following places: within a NOTICE text file distributed
as part of the Derivative Works; within the Source form or
documentation, if provided along with the Derivative Works; or,
within a display generated by the Derivative Works, if and
wherever such third-party notices normally appear. The contents
of the NOTICE file are for informational purposes only and
do not modify the License. You may add Your own attribution
notices within Derivative Works that You distribute, alongside
or as an addendum to the NOTICE text from the Work, provided
that such additional attribution notices cannot be construed
as modifying the License.
You may add Your own copyright statement to Your modifications and
may provide additional or different license terms and conditions
for use, reproduction, or distribution of Your modifications, or
for any such Derivative Works as a whole, provided Your use,
reproduction, and distribution of the Work otherwise complies with
the conditions stated in this License.
5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.
6. Trademarks. This License does not grant permission to use the trade
names, trademarks, service marks, or product names of the Licensor,
except as required for reasonable and customary use in describing the
origin of the Work and reproducing the content of the NOTICE file.
7. Disclaimer of Warranty. Unless required by applicable law or
agreed to in writing, Licensor provides the Work (and each
Contributor provides its Contributions) on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied, including, without limitation, any warranties or conditions
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
PARTICULAR PURPOSE. You are solely responsible for determining the
appropriateness of using or redistributing the Work and assume any
risks associated with Your exercise of permissions under this License.
8. Limitation of Liability. In no event and under no legal theory,
whether in tort (including negligence), contract, or otherwise,
unless required by applicable law (such as deliberate and grossly
negligent acts) or agreed to in writing, shall any Contributor be
liable to You for damages, including any direct, indirect, special,
incidental, or consequential damages of any character arising as a
result of this License or out of the use or inability to use the
Work (including but not limited to damages for loss of goodwill,
work stoppage, computer failure or malfunction, or any and all
other commercial damages or losses), even if such Contributor
has been advised of the possibility of such damages.
9. Accepting Warranty or Additional Liability. While redistributing
the Work or Derivative Works thereof, You may choose to offer,
and charge a fee for, acceptance of support, warranty, indemnity,
or other liability obligations and/or rights consistent with this
License. However, in accepting such obligations, You may act only
on Your own behalf and on Your sole responsibility, not on behalf
of any other Contributor, and only if You agree to indemnify,
defend, and hold each Contributor harmless for any liability
incurred by, or claims asserted against, such Contributor by reason
of your accepting any such warranty or additional liability.
END OF TERMS AND CONDITIONS
APPENDIX: How to apply the Apache License to your work.
To apply the Apache License to your work, attach the following
boilerplate notice, with the fields enclosed by brackets "{}"
replaced with your own identifying information. (Don't include
the brackets!) The text should be enclosed in the appropriate
comment syntax for the file format. We also recommend that a
file or class name and description of purpose be included on the
same "printed page" as the copyright notice for easier
identification within third-party archives.
Copyright {yyyy} {name of copyright owner}
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.
================================================
FILE: README.adoc
================================================
////
DO NOT EDIT THIS FILE. IT WAS GENERATED.
Manual changes to this file will be lost when it is generated again.
Edit the files in the src/main/asciidoc/ directory instead.
////
[[spring-cloud-task]]
= Spring Cloud Task
Is a project centered around the idea of processing on demand. A user is able to develop
a “task” that can be deployed, executed and removed on demand, yet the result of the
process persists beyond the life of the task for future reporting.
[[requirements:]]
== Requirements:
* Java 17 or Above
[[build-main-project:]]
== Build Main Project:
[source,shell,indent=2]
----
$ ./mvnw clean install
----
[[example:]]
== Example:
[source,java,indent=2]
----
@SpringBootApplication
@EnableTask
public class MyApp {
@Bean
public MyTaskApplication myTask() {
return new MyTaskApplication();
}
public static void main(String[] args) {
SpringApplication.run(MyApp.class);
}
public static class MyTaskApplication implements ApplicationRunner {
@Override
public void run(ApplicationArguments args) throws Exception {
System.out.println("Hello World");
}
}
}
----
[[code-of-conduct]]
== Code of Conduct
This project adheres to the Contributor Covenant link:CODE_OF_CONDUCT.adoc[code of conduct]. By participating, you are expected to uphold this code. Please report unacceptable behavior to spring-code-of-conduct@pivotal.io.
[[building-the-project]]
== Building the Project
This project requires that you invoke the Javadoc engine from the Maven command line. You can do so by appending `javadoc:aggregate` to the rest of your Maven command.
For example, to build the entire project, you could use `mvn clean install -DskipTests -P docs`.
================================================
FILE: docs/antora-playbook.yml
================================================
antora:
extensions:
- require: '@springio/antora-extensions'
root_component_name: 'cloud-task'
site:
title: Spring Cloud Task
url: https://docs.spring.io/spring-cloud-task/reference/
content:
sources:
- url: ./..
branches: HEAD
start_path: docs
worktrees: true
asciidoc:
attributes:
page-stackoverflow-url: https://stackoverflow.com/tags/spring-cloud-task
page-pagination: ''
hide-uri-scheme: '@'
tabs-sync-option: '@'
chomp: 'all'
extensions:
- '@asciidoctor/tabs'
- '@springio/asciidoctor-extensions'
sourcemap: true
urls:
latest_version_segment: ''
runtime:
log:
failure_level: warn
format: pretty
ui:
bundle:
url: https://github.com/spring-io/antora-ui-spring/releases/download/v0.4.15/ui-bundle.zip
================================================
FILE: docs/antora.yml
================================================
name: cloud-task
version: true
title: spring-cloud-task
nav:
- modules/ROOT/nav.adoc
ext:
collector:
run:
command: ./mvnw --no-transfer-progress -B process-resources -Pdocs -pl docs -Dantora-maven-plugin.phase=none -Dgenerate-docs.phase=none -Dgenerate-readme.phase=none -Dgenerate-cloud-resources.phase=none -Dmaven-dependency-plugin-for-docs.phase=none -Dmaven-dependency-plugin-for-docs-classes.phase=none -DskipTests -DdisableConfigurationProperties
local: true
scan:
dir: ./target/classes/antora-resources/
================================================
FILE: docs/modules/ROOT/nav.adoc
================================================
* xref:index.adoc[Introduction]
* xref:getting-started.adoc[]
* xref:features.adoc[]
* xref:batch.adoc[]
* xref:batch-starter.adoc[]
* xref:stream.adoc[]
* xref:appendix.adoc[]
** xref:appendix-task-repository-schema.adoc[]
** xref:appendix-building-the-documentation.adoc[]
** xref:observability.adoc[]
================================================
FILE: docs/modules/ROOT/pages/_attributes.adoc
================================================
:doctype: book
:idprefix:
:idseparator: -
:tabsize: 4
:numbered:
:sectanchors:
:sectnums:
:icons: font
:hide-uri-scheme:
:docinfo: shared,private
:sc-ext: java
:project-full-name: Spring Cloud Task
// project-specific attributes
:spring-cloud-task-repo: snapshot
:github-tag: master
:spring-cloud-task-docs-version: current
:spring-cloud-task-docs: https://docs.spring.io/spring-cloud-task/docs/{spring-cloud-task-docs-version}/reference
:spring-cloud-task-docs-current: https://docs.spring.io/spring-cloud-task/reference/
:github-repo: spring-cloud/spring-cloud-task
:github-raw: https://raw.github.com/{github-repo}/{github-tag}
:github-code: https://github.com/{github-repo}/tree/{github-tag}
:github-wiki: https://github.com/{github-repo}/wiki
:github-master-code: https://github.com/{github-repo}/tree/master
:sc-ext: java
:sc-spring-boot: {github-code}/spring-boot/src/main/java/org/springframework/boot
:dc-ext: html
:dc-root: https://docs.spring.io/spring-cloud-task/docs/{spring-cloud-dataflow-docs-version}/api
:dc-spring-boot: {dc-root}/org/springframework/boot
:dependency-management-plugin: https://github.com/spring-gradle-plugins/dependency-management-plugin
:dependency-management-plugin-documentation: {dependency-management-plugin}/blob/master/README.md
:spring-boot-maven-plugin-site: https://docs.spring.io/spring-boot/docs/{spring-boot-docs-version}/maven-plugin
:spring-reference: https://docs.spring.io/spring/docs/{spring-docs-version}/spring-framework-reference/htmlsingle
:spring-security-reference: https://docs.spring.io/spring-security/site/docs/{spring-security-docs-version}/reference/htmlsingle
:spring-javadoc: https://docs.spring.io/spring/docs/{spring-docs-version}/javadoc-api/org/springframework
:spring-amqp-javadoc: https://docs.spring.io/spring-amqp/docs/current/api/org/springframework/amqp
:spring-data-javadoc: https://docs.spring.io/spring-data/jpa/docs/current/api/org/springframework/data/jpa
:spring-data-commons-javadoc: https://docs.spring.io/spring-data/commons/docs/current/api/org/springframework/data
:spring-data-mongo-javadoc: https://docs.spring.io/spring-data/mongodb/docs/current/api/org/springframework/data/mongodb
:spring-data-rest-javadoc: https://docs.spring.io/spring-data/rest/docs/current/api/org/springframework/data/rest
:gradle-userguide: https://www.gradle.org/docs/current/userguide
:propdeps-plugin: https://github.com/spring-projects/gradle-plugins/tree/master/propdeps-plugin
:ant-manual: https://ant.apache.org/manual
:attributes: allow-uri-read
================================================
FILE: docs/modules/ROOT/pages/appendix-building-the-documentation.adoc
================================================
[[appendix-building-the-documentation]]
= Building This Documentation
:page-section-summary-toc: 1
This project uses Maven to generate this documentation. To generate it for yourself,
run the following command: `$ mvn clean install -DskipTests -P docs`.
================================================
FILE: docs/modules/ROOT/pages/appendix-task-repository-schema.adoc
================================================
[[appendix-task-repository-schema]]
= Task Repository Schema
[[partintro]]
--
This appendix provides an ERD for the database schema used in the task repository.
--
image::task_schema.png[]
[[table-information]]
== Table Information
--
.TASK_EXECUTION
Stores the task execution information.
[width="80%", cols="1,1,1,1,10", options="header"]
|=========================================================
|Column Name |Required |Type |Field Length |Notes
|TASK_EXECUTION_ID |TRUE |BIGINT | X |
Spring Cloud Task Framework at app startup establishes the next available id as obtained from the `TASK_SEQ`. Or if the record is created outside of task then the value must be populated at record creation time.
|START_TIME |FALSE | DATETIME(6) | X | Spring Cloud Task Framework at app startup establishes the value.
|END_TIME |FALSE | DATETIME(6) | X | Spring Cloud Task Framework at app exit establishes the value.
|TASK_NAME |FALSE | VARCHAR | 100 | Spring Cloud Task Framework at app startup will set this to "Application" unless user establish the name using the `spring.application.name`.
|EXIT_CODE |FALSE | INTEGER | X | Follows Spring Boot defaults unless overridden by the user as discussed https://docs.spring.io/spring-cloud-task/docs/current/reference/#features-lifecycle-exit-codes[here].
|EXIT_MESSAGE |FALSE | VARCHAR | 2500 | User Defined as discussed https://docs.spring.io/spring-cloud-task/docs/current/reference/#features-task-execution-listener-exit-messages[here].
|ERROR_MESSAGE |FALSE | VARCHAR | 2500 | Spring Cloud Task Framework at app exit establishes the value.
|LAST_UPDATED |TRUE | TIMESTAMP | X | Spring Cloud Task Framework at app startup establishes the value. Or if the record is created outside of task then the value must be populated at record creation time.
|EXTERNAL_EXECUTION_ID |FALSE | VARCHAR | 250 | If the `spring.cloud.task.external-execution-id` property is set then Spring Cloud Task Framework at app startup will set this to the value specified. More information can be found xref:features.adoc#features-external_task_id[here]
|PARENT_TASK_EXECUTION_ID |FALSE |BIGINT | X | If the `spring.cloud.task.parent-execution-id` property is set then Spring Cloud Task Framework at app startup will set this to the value specified. More information can be found xref:features.adoc#features-parent_task_id[here]
|=========================================================
.TASK_EXECUTION_PARAMS
Stores the parameters used for a task execution
[width="80%", cols="1,1,1,1", options="header"]
|=========================================================
|Column Name |Required |Type |Field Length
|TASK_EXECUTION_ID |TRUE |BIGINT | X
|TASK_PARAM |FALSE | VARCHAR | 2500
|=========================================================
.TASK_TASK_BATCH
Used to link the task execution to the batch execution.
[width="80%", cols="1,1,1,1", options="header"]
|=========================================================
|Column Name |Required |Type |Field Length
|TASK_EXECUTION_ID |TRUE |BIGINT | X
|JOB_EXECUTION_ID |TRUE | BIGINT | X
|=========================================================
.TASK_LOCK
Used for the `single-instance-enabled` feature discussed xref:features.adoc#features-single-instance-enabled[here].
[width="80%", cols="1,1,1,1,10", options="header"]
|=========================================================
|Column Name |Required |Type | Field Length |Notes
|LOCK_KEY |TRUE |CHAR | 36 | UUID for the this lock
|REGION |TRUE | VARCHAR | 100 | User can establish a group of locks using this field.
|CLIENT_ID |TRUE | CHAR | 36 | The task execution id that contains the name of the app to lock.
|CREATED_DATE |TRUE | DATETIME | X | The date that the entry was created
|=========================================================
NOTE: The DDL for setting up tables for each database type can be found https://github.com/spring-cloud/spring-cloud-task/tree/master/spring-cloud-task-core/src/main/resources/org/springframework/cloud/task[here].
--
[[sql-server]]
== SQL Server
By default Spring Cloud Task uses a sequence table for determining the `TASK_EXECUTION_ID` for the `TASK_EXECUTION` table.
However, when launching multiple tasks simultaneously while using SQL Server, this can cause a deadlock to occur on the `TASK_SEQ` table.
The resolution is to drop the `TASK_EXECUTION_SEQ` table and create a sequence using the same name. For example:
```
DROP TABLE TASK_SEQ;
CREATE SEQUENCE [DBO].[TASK_SEQ] AS BIGINT
START WITH 1
INCREMENT BY 1;
```
NOTE: Set the `START WITH` to a higher value than your current execution id.
================================================
FILE: docs/modules/ROOT/pages/appendix.adoc
================================================
[[appendix]]
= Appendices
:page-section-summary-toc: 1
ifndef::train-docs[]
endif::[]
================================================
FILE: docs/modules/ROOT/pages/batch-starter.adoc
================================================
[[batch-job-starter]]
= Single Step Batch Job Starter
[[partintro]]
--
This section goes into how to develop a Spring Batch `Job` with a single `Step` by using the
starter included in Spring Cloud Task. This starter lets you use configuration
to define an `ItemReader`, an `ItemWriter`, or a full single-step Spring Batch `Job`.
For more about Spring Batch and its capabilities, see the
https://spring.io/projects/spring-batch[Spring Batch documentation].
--
To obtain the starter for Maven, add the following to your build:
[source,xml]
----
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-single-step-batch-job</artifactId>
<version>2.3.0</version>
</dependency>
----
To obtain the starter for Gradle, add the following to your build:
[source,groovy]
----
compile "org.springframework.cloud:spring-cloud-starter-single-step-batch-job:2.3.0"
----
[[job-definition]]
== Defining a Job
You can use the starter to define as little as an `ItemReader` or an `ItemWriter` or as much as a full `Job`.
In this section, we define which properties are required to be defined to configure a
`Job`.
[[job-definition-properties]]
=== Properties
To begin, the starter provides a set of properties that let you configure the basics of a Job with one Step:
.Job Properties
|===
| Property | Type | Default Value | Description
| `spring.batch.job.jobName`
| `String`
| `null`
| The name of the job.
| `spring.batch.job.stepName`
| `String`
| `null`
| The name of the step.
| `spring.batch.job.chunkSize`
| `Integer`
| `null`
| The number of items to be processed per transaction.
|===
With the above properties configured, you have a job with a single, chunk-based step.
This chunk-based step reads, processes, and writes `Map<String, Object>` instances as the
items. However, the step does not yet do anything. You need to configure an `ItemReader`, an
optional `ItemProcessor`, and an `ItemWriter` to give it something to do. To configure one
of these, you can either use properties and configure one of the options that has provided
autoconfiguration or you can configure your own with the standard Spring configuration
mechanisms.
NOTE: If you configure your own, the input and output types must match the others in the step.
The `ItemReader` implementations and `ItemWriter` implementations in this starter all use
a `Map<String, Object>` as the input and the output item.
[[item-readers]]
== Autoconfiguration for ItemReader Implementations
This starter provides autoconfiguration for four different `ItemReader` implementations:
`AmqpItemReader`, `FlatFileItemReader`, `JdbcCursorItemReader`, and `KafkaItemReader`.
In this section, we outline how to configure each of these by using the provided
autoconfiguration.
[[amqpitemreader]]
=== AmqpItemReader
You can read from a queue or topic with AMQP by using the `AmqpItemReader`. The
autoconfiguration for this `ItemReader` implementation is dependent upon two sets of
configuration. The first is the configuration of an `AmqpTemplate`. You can either
configure this yourself or use the autoconfiguration provided by Spring Boot. See the
https://docs.spring.io/spring-boot/docs/3.0.x/reference/htmlsingle/#messaging.amqp.rabbitmq[Spring Boot AMQP documentation].
Once you have configured the `AmqpTemplate`, you can enable the batch capabilities to support it
by setting the following properties:
.`AmqpItemReader` Properties
|===
| Property | Type | Default Value | Description
| `spring.batch.job.amqpitemreader.enabled`
| `boolean`
| `false`
| If `true`, the autoconfiguration will execute.
| `spring.batch.job.amqpitemreader.jsonConverterEnabled`
| `boolean`
| `true`
| Indicates if the `Jackson2JsonMessageConverter` should be registered to parse messages.
|===
For more information, see the https://docs.spring.io/spring-batch/docs/4.3.x/api/org/springframework/batch/item/amqp/AmqpItemReader.html[`AmqpItemReader` documentation].
[[flatfileitemreader]]
=== FlatFileItemReader
`FlatFileItemReader` lets you read from flat files (such as CSVs
and other file formats). To read from a file, you can provide some components
yourself through normal Spring configuration (`LineTokenizer`, `RecordSeparatorPolicy`,
`FieldSetMapper`, `LineMapper`, or `SkippedLinesCallback`). You can also use the
following properties to configure the reader:
.`FlatFileItemReader` Properties
|===
| Property | Type | Default Value | Description
| `spring.batch.job.flatfileitemreader.saveState`
| `boolean`
| `true`
| Determines if the state should be saved for restarts.
| `spring.batch.job.flatfileitemreader.name`
| `String`
| `null`
| Name used to provide unique keys in the `ExecutionContext`.
| `spring.batch.job.flatfileitemreader.maxItemcount`
| `int`
| `Integer.MAX_VALUE`
| Maximum number of items to be read from the file.
| `spring.batch.job.flatfileitemreader.currentItemCount`
| `int`
| 0
| Number of items that have already been read. Used on restarts.
| `spring.batch.job.flatfileitemreader.comments`
| `List<String>`
| empty List
| A list of Strings that indicate commented lines (lines to be ignored) in the file.
| `spring.batch.job.flatfileitemreader.resource`
| `Resource`
| `null`
| The resource to be read.
| `spring.batch.job.flatfileitemreader.strict`
| `boolean`
| `true`
| If set to `true`, the reader throws an exception if the resource is not found.
| `spring.batch.job.flatfileitemreader.encoding`
| `String`
| `FlatFileItemReader.DEFAULT_CHARSET`
| Encoding to be used when reading the file.
| `spring.batch.job.flatfileitemreader.linesToSkip`
| `int`
| 0
| Indicates the number of lines to skip at the start of a file.
| `spring.batch.job.flatfileitemreader.delimited`
| `boolean`
| `false`
| Indicates whether the file is a delimited file (CSV and other formats). Only one of this property or `spring.batch.job.flatfileitemreader.fixedLength` can be `true` at the same time.
| `spring.batch.job.flatfileitemreader.delimiter`
| `String`
| `DelimitedLineTokenizer.DELIMITER_COMMA`
| If reading a delimited file, indicates the delimiter to parse on.
| `spring.batch.job.flatfileitemreader.quoteCharacter`
| `char`
| `DelimitedLineTokenizer.DEFAULT_QUOTE_CHARACTER`
| Used to determine the character used to quote values.
| `spring.batch.job.flatfileitemreader.includedFields`
| `List<Integer>`
| empty list
| A list of indices to determine which fields in a record to include in the item.
| `spring.batch.job.flatfileitemreader.fixedLength`
| `boolean`
| `false`
| Indicates if a file's records are parsed by column numbers. Only one of this property or `spring.batch.job.flatfileitemreader.delimited` can be `true` at the same time.
| `spring.batch.job.flatfileitemreader.ranges`
| `List<Range>`
| empty list
| List of column ranges by which to parse a fixed width record. See the https://docs.spring.io/spring-batch/docs/4.3.x/api/org/springframework/batch/item/file/transform/Range.html[Range documentation].
| `spring.batch.job.flatfileitemreader.names`
| `String []`
| `null`
| List of names for each field parsed from a record. These names are the keys in the `Map<String, Object>` in the items returned from this `ItemReader`.
| `spring.batch.job.flatfileitemreader.parsingStrict`
| `boolean`
| `true`
| If set to `true`, the mapping fails if the fields cannot be mapped.
|===
See the https://docs.spring.io/spring-batch/docs/4.3.x/api/org/springframework/batch/item/file/FlatFileItemReader.html[`FlatFileItemReader` documentation].
[[jdbcCursorItemReader]]
=== JdbcCursorItemReader
The `JdbcCursorItemReader` runs a query against a relational database and iterates over
the resulting cursor (`ResultSet`) to provide the resulting items. This autoconfiguration
lets you provide a `PreparedStatementSetter`, a `RowMapper`, or both. You
can also use the following properties to configure a `JdbcCursorItemReader`:
.`JdbcCursorItemReader` Properties
|===
| Property | Type | Default Value | Description
| `spring.batch.job.jdbccursoritemreader.saveState`
| `boolean`
| `true`
| Determines whether the state should be saved for restarts.
| `spring.batch.job.jdbccursoritemreader.name`
| `String`
| `null`
| Name used to provide unique keys in the `ExecutionContext`.
| `spring.batch.job.jdbccursoritemreader.maxItemcount`
| `int`
| `Integer.MAX_VALUE`
| Maximum number of items to be read from the file.
| `spring.batch.job.jdbccursoritemreader.currentItemCount`
| `int`
| 0
| Number of items that have already been read. Used on restarts.
| `spring.batch.job.jdbccursoritemreader.fetchSize`
| `int`
|
| A hint to the driver to indicate how many records to retrieve per call to the database system. For best performance, you usually want to set it to match the chunk size.
| `spring.batch.job.jdbccursoritemreader.maxRows`
| `int`
|
| Maximum number of items to read from the database.
| `spring.batch.job.jdbccursoritemreader.queryTimeout`
| `int`
|
| Number of milliseconds for the query to timeout.
| `spring.batch.job.jdbccursoritemreader.ignoreWarnings`
| `boolean`
| `true`
| Determines whether the reader should ignore SQL warnings when processing.
| `spring.batch.job.jdbccursoritemreader.verifyCursorPosition`
| `boolean`
| `true`
| Indicates whether the cursor's position should be verified after each read to verify that the `RowMapper` did not advance the cursor.
| `spring.batch.job.jdbccursoritemreader.driverSupportsAbsolute`
| `boolean`
| `false`
| Indicates whether the driver supports absolute positioning of a cursor.
| `spring.batch.job.jdbccursoritemreader.useSharedExtendedConnection`
| `boolean`
| `false`
| Indicates whether the connection is shared with other processing (and is therefore part of a transaction).
| `spring.batch.job.jdbccursoritemreader.sql`
| `String`
| `null`
| SQL query from which to read.
|===
You can also specify JDBC DataSource specifically for the reader by using the following properties:
.`JdbcCursorItemReader` Properties
|===
| Property | Type | Default Value | Description
| `spring.batch.job.jdbccursoritemreader.datasource.enable`
| `boolean`
| `false`
| Determines whether `JdbcCursorItemReader` `DataSource` should be enabled.
| `jdbccursoritemreader.datasource.url`
| `String`
| `null`
| JDBC URL of the database.
| `jdbccursoritemreader.datasource.username`
| `String`
| `null`
| Login username of the database.
| `jdbccursoritemreader.datasource.password`
| `String`
| `null`
| Login password of the database.
| `jdbccursoritemreader.datasource.driver-class-name`
| `String`
| `null`
| Fully qualified name of the JDBC driver.
|===
NOTE: The default `DataSource` will be used by the `JDBCCursorItemReader` if the `jdbccursoritemreader_datasource` is not specified.
See the https://docs.spring.io/spring-batch/docs/4.3.x/api/org/springframework/batch/item/database/JdbcCursorItemReader.html[`JdbcCursorItemReader` documentation].
[[kafkaItemReader]]
=== KafkaItemReader
Ingesting a partition of data from a Kafka topic is useful and exactly what the
`KafkaItemReader` can do. To configure a `KafkaItemReader`, two pieces
of configuration are required. First, configuring Kafka with Spring Boot's Kafka
autoconfiguration is required (see the
https://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#messaging.kafka.additional-properties[Spring Boot Kafka documentation]).
Once you have configured the Kafka properties from Spring Boot, you can configure the `KafkaItemReader`
itself by setting the following properties:
.`KafkaItemReader` Properties
|===
| Property | Type | Default Value | Description
| `spring.batch.job.kafkaitemreader.name`
| `String`
| `null`
| Name used to provide unique keys in the `ExecutionContext`.
| `spring.batch.job.kafkaitemreader.topic`
| `String`
| `null`
| Name of the topic from which to read.
| `spring.batch.job.kafkaitemreader.partitions`
| `List<Integer>`
| empty list
| List of partition indices from which to read.
| `spring.batch.job.kafkaitemreader.pollTimeOutInSeconds`
| `long`
| 30
| Timeout for the `poll()` operations.
| `spring.batch.job.kafkaitemreader.saveState`
| `boolean`
| `true`
| Determines whether the state should be saved for restarts.
|===
See the https://docs.spring.io/spring-batch/docs/4.3.x/api/org/springframework/batch/item/kafka/KafkaItemReader.html[`KafkaItemReader` documentation].
[[nativeCompilation]]
=== Native Compilation
The advantage of Single Step Batch Processing is that it lets you dynamically select which reader and writer beans to use at runtime when you use the JVM.
However, when you use native compilation, you must determine the reader and writer at build time instead of runtime.
The following example does so:
[source,xml]
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<executions>
<execution>
<id>process-aot</id>
<goals>
<goal>process-aot</goal>
</goals>
<configuration>
<jvmArguments>
-Dspring.batch.job.flatfileitemreader.name=fooReader
-Dspring.batch.job.flatfileitemwriter.name=fooWriter
</jvmArguments>
</configuration>
</execution>
</executions>
</plugin>
[[item-processors]]
== ItemProcessor Configuration
The single-step batch job autoconfiguration accepts an `ItemProcessor` if one
is available within the `ApplicationContext`. If one is found of the correct type
(`ItemProcessor<Map<String, Object>, Map<String, Object>>`), it is autowired
into the step.
[[item-writers]]
== Autoconfiguration for ItemWriter implementations
This starter provides autoconfiguration for `ItemWriter` implementations that
match the supported `ItemReader` implementations: `AmqpItemWriter`,
`FlatFileItemWriter`, `JdbcItemWriter`, and `KafkaItemWriter`. This section
covers how to use autoconfiguration to configure a supported `ItemWriter`.
[[amqpitemwriter]]
=== AmqpItemWriter
To write to a RabbitMQ queue, you need two sets of configuration. First, you need an
`AmqpTemplate`. The easiest way to get this is by using Spring Boot's
RabbitMQ autoconfiguration. See the https://docs.spring.io/spring-boot/docs/3.0.x/reference/htmlsingle/#messaging.amqp.rabbitmq[Spring Boot AMQP documentation].
Once you have configured the `AmqpTemplate`, you can configure the `AmqpItemWriter` by setting the
following properties:
.`AmqpItemWriter` Properties
|===
| Property | Type | Default Value | Description
| `spring.batch.job.amqpitemwriter.enabled`
| `boolean`
| `false`
| If `true`, the autoconfiguration runs.
| `spring.batch.job.amqpitemwriter.jsonConverterEnabled`
| `boolean`
| `true`
| Indicates whether `Jackson2JsonMessageConverter` should be registered to convert messages.
|===
[[flatfileitemwriter]]
=== FlatFileItemWriter
To write a file as the output of the step, you can configure `FlatFileItemWriter`.
Autoconfiguration accepts components that have been explicitly configured (such as `LineAggregator`,
`FieldExtractor`, `FlatFileHeaderCallback`, or a `FlatFileFooterCallback`) and
components that have been configured by setting the following properties specified:
.`FlatFileItemWriter` Properties
|===
| Property | Type | Default Value | Description
| `spring.batch.job.flatfileitemwriter.resource`
| `Resource`
| `null`
| The resource to be read.
| `spring.batch.job.flatfileitemwriter.delimited`
| `boolean`
| `false`
| Indicates whether the output file is a delimited file. If `true`, `spring.batch.job.flatfileitemwriter.formatted` must be `false`.
| `spring.batch.job.flatfileitemwriter.formatted`
| `boolean`
| `false`
| Indicates whether the output file a formatted file. If `true`, `spring.batch.job.flatfileitemwriter.delimited` must be `false`.
| `spring.batch.job.flatfileitemwriter.format`
| `String`
| `null`
| The format used to generate the output for a formatted file. The formatting is performed by using `String.format`.
| `spring.batch.job.flatfileitemwriter.locale`
| `Locale`
| `Locale.getDefault()`
| The `Locale` to be used when generating the file.
| `spring.batch.job.flatfileitemwriter.maximumLength`
| `int`
| 0
| Max length of the record. If 0, the size is unbounded.
| `spring.batch.job.flatfileitemwriter.minimumLength`
| `int`
| 0
| The minimum record length.
| `spring.batch.job.flatfileitemwriter.delimiter`
| `String`
| `,`
| The `String` used to delimit fields in a delimited file.
| `spring.batch.job.flatfileitemwriter.encoding`
| `String`
| `FlatFileItemReader.DEFAULT_CHARSET`
| Encoding to use when writing the file.
| `spring.batch.job.flatfileitemwriter.forceSync`
| `boolean`
| `false`
| Indicates whether a file should be force-synced to the disk on flush.
| `spring.batch.job.flatfileitemwriter.names`
| `String []`
| `null`
| List of names for each field parsed from a record. These names are the keys in the `Map<String, Object>` for the items received by this `ItemWriter`.
| `spring.batch.job.flatfileitemwriter.append`
| `boolean`
| `false`
| Indicates whether a file should be appended to if the output file is found.
| `spring.batch.job.flatfileitemwriter.lineSeparator`
| `String`
| `FlatFileItemWriter.DEFAULT_LINE_SEPARATOR`
| What `String` to use to separate lines in the output file.
| `spring.batch.job.flatfileitemwriter.name`
| `String`
| `null`
| Name used to provide unique keys in the `ExecutionContext`.
| `spring.batch.job.flatfileitemwriter.saveState`
| `boolean`
| `true`
| Determines whether the state should be saved for restarts.
| `spring.batch.job.flatfileitemwriter.shouldDeleteIfEmpty`
| `boolean`
| `false`
| If set to `true`, an empty file (there is no output) is deleted when the job completes.
| `spring.batch.job.flatfileitemwriter.shouldDeleteIfExists`
| `boolean`
| `true`
| If set to `true` and a file is found where the output file should be, it is deleted before the step begins.
| `spring.batch.job.flatfileitemwriter.transactional`
| `boolean`
| `FlatFileItemWriter.DEFAULT_TRANSACTIONAL`
| Indicates whether the reader is a transactional queue (indicating that the items read are returned to the queue upon a failure).
|===
See the https://docs.spring.io/spring-batch/docs/4.3.x/api/org/springframework/batch/item/file/FlatFileItemWriter.html[`FlatFileItemWriter` documentation].
[[jdbcitemwriter]]
=== JdbcBatchItemWriter
To write the output of a step to a relational database, this starter provides the ability
to autoconfigure a `JdbcBatchItemWriter`. The autoconfiguration lets you provide your
own `ItemPreparedStatementSetter` or `ItemSqlParameterSourceProvider` and
configuration options by setting the following properties:
.`JdbcBatchItemWriter` Properties
|===
| Property | Type | Default Value | Description
| `spring.batch.job.jdbcbatchitemwriter.name`
| `String`
| `null`
| Name used to provide unique keys in the `ExecutionContext`.
| `spring.batch.job.jdbcbatchitemwriter.sql`
| `String`
| `null`
| The SQL used to insert each item.
| `spring.batch.job.jdbcbatchitemwriter.assertUpdates`
| `boolean`
| `true`
| Whether to verify that every insert results in the update of at least one record.
|===
You can also specify JDBC DataSource specifically for the writer by using the following properties:
.`JdbcBatchItemWriter` Properties
|===
| Property | Type | Default Value | Description
| `spring.batch.job.jdbcbatchitemwriter.datasource.enable`
| `boolean`
| `false`
| Determines whether `JdbcCursorItemReader` `DataSource` should be enabled.
| `jdbcbatchitemwriter.datasource.url`
| `String`
| `null`
| JDBC URL of the database.
| `jdbcbatchitemwriter.datasource.username`
| `String`
| `null`
| Login username of the database.
| `jdbcbatchitemwriter.datasource.password`
| `String`
| `null`
| Login password of the database.
| `jdbcbatchitemreader.datasource.driver-class-name`
| `String`
| `null`
| Fully qualified name of the JDBC driver.
|===
NOTE: The default `DataSource` will be used by the `JdbcBatchItemWriter` if the `jdbcbatchitemwriter_datasource` is not specified.
See the https://docs.spring.io/spring-batch/docs/4.3.x/api/org/springframework/batch/item/database/JdbcBatchItemWriter.html[`JdbcBatchItemWriter` documentation].
[[kafkaitemwriter]]
=== KafkaItemWriter
To write step output to a Kafka topic, you need `KafkaItemWriter`. This starter
provides autoconfiguration for a `KafkaItemWriter` by using facilities from two places.
The first is Spring Boot's Kafka autoconfiguration. (See the https://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#messaging.kafka.additional-properties[Spring Boot Kafka documentation].)
Second, this starter lets you configure two properties on the writer.
.`KafkaItemWriter` Properties
|===
| Property | Type | Default Value | Description
| `spring.batch.job.kafkaitemwriter.topic`
| `String`
| `null`
| The Kafka topic to which to write.
| `spring.batch.job.kafkaitemwriter.delete`
| `boolean`
| `false`
| Whether the items being passed to the writer are all to be sent as delete events to the topic.
|===
For more about the configuration options for the `KafkaItemWriter`, see the https://docs.spring.io/spring-batch/docs/4.3.x/api/org/springframework/batch/item/kafka/KafkaItemWriter.html[`KafkaItemWiter` documentation].
[[spring-aot]]
=== Spring AOT
When using Spring AOT with Single Step Batch Starter you must set the reader and
writer name properties at compile time (unless you create a bean(s) for the reader and or writer).
To do this you must include the name of the reader and writer that you wish to use as
and argument or environment variable in the boot maven plugin or gradle plugin. For example if
you wish to enable the `FlatFileItemReader` and `FlatFileItemWriter` in Maven it would look like:
```
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<executions>
<execution>
<id>process-aot</id>
<goals>
<goal>process-aot</goal>
</goals>
</execution>
</executions>
<configuration>
<arguments>
<argument>--spring.batch.job.flatfileitemreader.name=foobar</argument>
<argument>--spring.batch.job.flatfileitemwriter.name=fooWriter</argument>
</arguments>
</configuration>
</plugin>
```
================================================
FILE: docs/modules/ROOT/pages/batch.adoc
================================================
[[batch]]
= Batch
[[partintro]]
--
This section goes into more detail about Spring Cloud Task's integration with Spring
Batch. Tracking the association between a job execution and the task in which it was
executed.
--
[[batch-association]]
== Associating a Job Execution to the Task in which It Was Executed
Spring Boot provides facilities for the execution of batch jobs within a Spring Boot Uber-jar.
Spring Boot's support of this functionality lets a developer execute multiple batch jobs
within that execution. Spring Cloud Task provides the ability to associate the execution
of a job (a job execution) with a task's execution so that one can be traced back to the
other.
Spring Cloud Task achieves this functionality by using the `TaskBatchExecutionListener`.
By default,
this listener is auto configured in any context that has both a Spring Batch Job
configured (by having a bean of type `Job` defined in the context) and the
`spring-cloud-task-batch` jar on the classpath. The listener is injected into all jobs
that meet those conditions.
[[batch-association-override]]
=== Overriding the TaskBatchExecutionListener
To prevent the listener from being injected into any batch jobs within the current
context, you can disable the autoconfiguration by using standard Spring Boot mechanisms.
To only have the listener injected into particular jobs within the context, override the
`batchTaskExecutionListenerBeanPostProcessor` and provide a list of job bean IDs, as shown
in the following example:
[source,java]
----
public static TaskBatchExecutionListenerBeanPostProcessor batchTaskExecutionListenerBeanPostProcessor() {
TaskBatchExecutionListenerBeanPostProcessor postProcessor =
new TaskBatchExecutionListenerBeanPostProcessor();
postProcessor.setJobNames(Arrays.asList(new String[] {"job1", "job2"}));
return postProcessor;
}
----
NOTE: You can find a sample batch application in the samples module of the Spring Cloud
Task Project,
https://github.com/spring-cloud/spring-cloud-task/tree/master/spring-cloud-task-samples/batch-job[here].
[[batch-informational-messages]]
== Batch Informational Messages
Spring Cloud Task provides the ability for batch jobs to emit informational messages. The
"`xref:stream.adoc#stream-integration-batch-events[Spring Batch Events]`" section covers this feature in detail.
[[batch-failures-and-tasks]]
== Batch Job Exit Codes
As discussed xref:features.adoc#features-lifecycle-exit-codes[earlier], Spring Cloud Task
applications support the ability to record the exit code of a task execution. However, in
cases where you run a Spring Batch Job within a task, regardless of how the Batch Job
Execution completes, the result of the task is always zero when using the default
Batch/Boot behavior. Keep in mind that a task is a boot application and that the exit code
returned from the task is the same as a boot application.
To override this behavior and allow the task to return an exit code other than zero when a
batch job returns an
https://docs.spring.io/spring-batch/current/reference/html/step.html#batchStatusVsExitStatus[BatchStatus]
of `FAILED`, set `spring.cloud.task.batch.fail-on-job-failure` to `true`. Then the exit code
can be 1 (the default) or be based on the
https://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-spring-application.html#boot-features-application-exit[specified
`ExitCodeGenerator`])
This functionality uses a new `ApplicationRunner` that replaces the one provided by Spring
Boot. By default, it is configured with the same order. However, if you want to customize
the order in which the `ApplicationRunner` is run, you can set its order by setting the
`spring.cloud.task.batch.applicationRunnerOrder` property. To have your task return the
exit code based on the result of the batch job execution, you need to write your own
`CommandLineRunner`.
//TODO Great place for a example showing how a custom CommandLineRunner
================================================
FILE: docs/modules/ROOT/pages/configprops.adoc
================================================
[[configuration-properties]]
= Configuration Properties
Below you can find a list of configuration properties.
include::partial$_configprops.adoc[]
================================================
FILE: docs/modules/ROOT/pages/features.adoc
================================================
[[features]]
= Features
[[partintro]]
--
This section goes into more detail about Spring Cloud Task, including how to use it, how
to configure it, and the appropriate extension points.
--
[[features-lifecycle]]
== The lifecycle of a Spring Cloud Task
In most cases, the modern cloud environment is designed around the execution of processes
that are not expected to end. If they do end, they are typically restarted. While most
platforms do have some way to run a process that is not restarted when it ends, the
results of that run are typically not maintained in a consumable way. Spring Cloud
Task offers the ability to execute short-lived processes in an environment and record the
results. Doing so allows for a microservices architecture around short-lived processes as
well as longer running services through the integration of tasks by messages.
While this functionality is useful in a cloud environment, the same issues can arise in a
traditional deployment model as well. When running Spring Boot applications with a
scheduler such as cron, it can be useful to be able to monitor the results of the
application after its completion.
Spring Cloud Task takes the approach that a Spring Boot application can have a start and
an end and still be successful. Batch applications are one example of how processes that
are expected to end (and that are often short-lived) can be helpful.
Spring Cloud Task records the lifecycle events of a given task. Most long-running
processes, typified by most web applications, do not save their lifecycle events. The
tasks at the heart of Spring Cloud Task do.
The lifecycle consists of a single task execution. This is a physical execution of a
Spring Boot application configured to be a task (that is, it has the Sprint Cloud Task dependencies).
At the beginning of a task, before any `CommandLineRunner` or `ApplicationRunner`
implementations have been run, an entry in the `TaskRepository` that records the start
event is created. This event is triggered through `SmartLifecycle#start` being triggered
by the Spring Framework. This indicates to the system that all beans are ready for use and
comes before running any of the `CommandLineRunner` or `ApplicationRunner` implementations
provided by Spring Boot.
NOTE: The recording of a task only occurs upon the successful bootstrapping of an
`ApplicationContext`. If the context fails to bootstrap at all, the task's run is not
recorded.
Upon completion of all of the `*Runner#run` calls from Spring Boot or the failure of an
`ApplicationContext` (indicated by an `ApplicationFailedEvent`), the task execution is
updated in the repository with the results.
NOTE: If the application requires the `ApplicationContext` to be closed at the
completion of a task (all `*Runner#run` methods have been called and the task
repository has been updated), set the property `spring.cloud.task.closecontextEnabled`
to true.
[[features-task-execution-details]]
=== The TaskExecution
The information stored in the `TaskRepository` is modeled in the `TaskExecution` class and
consists of the following information:
|===
|Field |Description
|`executionid`
|The unique ID for the task's run.
|`exitCode`
|The exit code generated from an `ExitCodeExceptionMapper` implementation. If there is no
exit code generated but an `ApplicationFailedEvent` is thrown, 1 is set. Otherwise, it is
assumed to be 0.
|`taskName`
|The name for the task, as determined by the configured `TaskNameResolver`.
|`startTime`
|The time the task was started, as indicated by the `SmartLifecycle#start` call.
|`endTime`
|The time the task was completed, as indicated by the `ApplicationReadyEvent`.
|`exitMessage`
|Any information available at the time of exit. This can programmatically be set by a
`TaskExecutionListener`.
|`errorMessage`
|If an exception is the cause of the end of the task (as indicated by an
`ApplicationFailedEvent`), the stack trace for that exception is stored here.
|`arguments`
|A `List` of the string command line arguments as they were passed into the executable
boot application.
|===
[[features-lifecycle-exit-codes]]
=== Mapping Exit Codes
When a task completes, it tries to return an exit code to the OS. If we take a look
at our xref:getting-started.adoc#getting-started-developing-first-task[original example], we can see that we are
not controlling that aspect of our application. So, if an exception is thrown, the JVM
returns a code that may or may not be of any use to you in debugging.
Consequently, Spring Boot provides an interface, `ExitCodeExceptionMapper`, that lets you
map uncaught exceptions to exit codes. Doing so lets you indicate, at the level of exit
codes, what went wrong. Also, by mapping exit codes in this manner, Spring Cloud Task
records the returned exit code.
If the task terminates with a SIG-INT or a SIG-TERM, the exit code is zero unless
otherwise specified within the code.
NOTE: While the task is running, the exit code is stored as a null in the repository.
Once the task completes, the appropriate exit code is stored based on the guidelines described
earlier in this section.
[[features-configuration]]
== Configuration
Spring Cloud Task provides a ready-to-use configuration, as defined in the
`DefaultTaskConfigurer` and `SimpleTaskConfiguration` classes. This section walks through
the defaults and how to customize Spring Cloud Task for your needs.
[[features-data-source]]
=== DataSource
Spring Cloud Task uses a datasource for storing the results of task executions. By
default, we provide an in-memory instance of H2 to provide a simple method of
bootstrapping development. However, in a production environment, you probably want to
configure your own `DataSource`.
If your application uses only a single `DataSource` and that serves as both your business
schema and the task repository, all you need to do is provide any `DataSource` (the
easiest way to do so is through Spring Boot's configuration conventions). This
`DataSource` is automatically used by Spring Cloud Task for the repository.
If your application uses more than one `DataSource`, you need to configure the task
repository with the appropriate `DataSource`. This customization can be done through an
implementation of `TaskConfigurer`.
[[features-table-prefix]]
=== Table Prefix
One modifiable property of `TaskRepository` is the table prefix for the task tables. By
default, they are all prefaced with `TASK_`. `TASK_EXECUTION` and `TASK_EXECUTION_PARAMS`
are two examples. However, there are potential reasons to modify this prefix. If the
schema name needs to be prepended to the table names or if more than one set of task
tables is needed within the same schema, you must change the table prefix. You can do so
by setting the `spring.cloud.task.tablePrefix` to the prefix you need, as follows:
`spring.cloud.task.tablePrefix=yourPrefix`
By using the `spring.cloud.task.tablePrefix`, a user assumes the responsibility to
create the task tables that meet both the criteria for the task table schema but
with modifications that are required for a user's business needs.
You can utilize the Spring Cloud Task Schema DDL as a guide when creating your own Task DDL as seen
https://github.com/spring-cloud/spring-cloud-task/tree/master/spring-cloud-task-core/src/main/resources/org/springframework/cloud/task[here].
[[features-table-initialization]]
=== Enable/Disable table initialization
In cases where you are creating the task tables and do not wish for Spring Cloud Task to
create them at task startup, set the `spring.cloud.task.initialize-enabled` property to
`false`, as follows:
`spring.cloud.task.initialize-enabled=false`
It defaults to `true`.
NOTE: The property `spring.cloud.task.initialize.enable` has been deprecated.
[[features-generated_task_id]]
=== Externally Generated Task ID
In some cases, you may want to allow for the time difference between when a task is
requested and when the infrastructure actually launches it. Spring Cloud Task lets you
create a `TaskExecution` when the task is requested. Then pass the execution ID of the
generated `TaskExecution` to the task so that it can update the `TaskExecution` through
the task's lifecycle.
A `TaskExecution` can be created by calling the `createTaskExecution` method on an
implementation of the `TaskRepository` that references the datastore that holds
the `TaskExecution` objects.
In order to configure your Task to use a generated `TaskExecutionId`, add the
following property:
`spring.cloud.task.executionid=yourtaskId`
[[features-external_task_id]]
=== External Task Id
Spring Cloud Task lets you store an external task ID for each
`TaskExecution`. In order to configure your Task to use a generated `TaskExecutionId`, add the
following property:
`spring.cloud.task.external-execution-id=<externalTaskId>`
[[features-parent_task_id]]
=== Parent Task Id
Spring Cloud Task lets you store a parent task ID for each `TaskExecution`. An example of
this would be a task that executes another task or tasks and you want to record which task
launched each of the child tasks. In order to configure your Task to set a parent
`TaskExecutionId` add the following property on the child task:
`spring.cloud.task.parent-execution-id=<parentExecutionTaskId>`
[[features-task-configurer]]
=== TaskConfigurer
The `TaskConfigurer` is a strategy interface that lets you customize the way components of
Spring Cloud Task are configured. By default, we provide the `DefaultTaskConfigurer` that
provides logical defaults: `Map`-based in-memory components (useful for development if no
`DataSource` is provided) and JDBC based components (useful if there is a `DataSource`
available).
The `TaskConfigurer` lets you configure three main components:
|===
|Component |Description |Default (provided by `DefaultTaskConfigurer`)
|`TaskRepository`
|The implementation of the `TaskRepository` to be used.
|`SimpleTaskRepository`
|`TaskExplorer`
|The implementation of the `TaskExplorer` (a component for read-only access to the task
repository) to be used.
|`SimpleTaskExplorer`
|`PlatformTransactionManager`
|A transaction manager to be used when running updates for tasks.
|`JdbcTransactionManager` if a `DataSource` is used.
`ResourcelessTransactionManager` if it is not.
|===
You can customize any of the components described in the preceding table by creating a
custom implementation of the `TaskConfigurer` interface. Typically, extending the
`DefaultTaskConfigurer` (which is provided if a `TaskConfigurer` is not found) and
overriding the required getter is sufficient. However, implementing your own from scratch
may be required.
NOTE: Users should not directly use getter methods from a `TaskConfigurer` directly
unless they are using it to supply implementations to be exposed as Spring Beans.
[[features-task-execution-listener]]
=== Task Execution Listener
`TaskExecutionListener` lets you register listeners for specific events that occur during
the task lifecycle. To do so, create a class that implements the
`TaskExecutionListener` interface. The class that implements the `TaskExecutionListener`
interface is notified of the following events:
* `onTaskStartup`: Prior to storing the `TaskExecution` into the `TaskRepository`.
* `onTaskEnd`: Prior to updating the `TaskExecution` entry in the `TaskRepository` and
marking the final state of the task.
* `onTaskFailed`: Prior to the `onTaskEnd` method being invoked when an unhandled
exception is thrown by the task.
Spring Cloud Task also lets you add `TaskExecution` Listeners to methods within a bean
by using the following method annotations:
* `@BeforeTask`: Prior to the storing the `TaskExecution` into the `TaskRepository`
* `@AfterTask`: Prior to the updating of the `TaskExecution` entry in the `TaskRepository`
marking the final state of the task.
* `@FailedTask`: Prior to the `@AfterTask` method being invoked when an unhandled
exception is thrown by the task.
The following example shows the three annotations in use:
[source,java]
----
public class MyBean {
@BeforeTask
public void methodA(TaskExecution taskExecution) {
}
@AfterTask
public void methodB(TaskExecution taskExecution) {
}
@FailedTask
public void methodC(TaskExecution taskExecution, Throwable throwable) {
}
}
----
NOTE: Inserting an `ApplicationListener` earlier in the chain than `TaskLifecycleListener` exists may cause unexpected effects.
[[features-task-execution-listener-Exceptions]]
==== Exceptions Thrown by Task Execution Listener
If an exception is thrown by a `TaskExecutionListener` event handler, all listener
processing for that event handler stops. For example, if three `onTaskStartup` listeners
have started and the first `onTaskStartup` event handler throws an exception, the other
two `onTaskStartup` methods are not called. However, the other event handlers (`onTaskEnd`
and `onTaskFailed`) for the `TaskExecutionListeners` are called.
The exit code returned when a exception is thrown by a `TaskExecutionListener`
event handler is the exit code that was reported by the
https://docs.spring.io/spring-boot/docs/current/api/org/springframework/boot/ExitCodeEvent.html[ExitCodeEvent].
If no `ExitCodeEvent` is emitted, the Exception thrown is evaluated to see
if it is of type
https://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#boot-features-application-exit[ExitCodeGenerator].
If so, it returns the exit code from the `ExitCodeGenerator`. Otherwise, `1`
is returned.
In the case that an exception is thrown in an `onTaskStartup` method, the exit code for the application will be `1`.
If an exception is thrown in either a `onTaskEnd` or `onTaskFailed`
method, the exit code for the application will be the one established using the rules enumerated above.
NOTE: In the case of an exception being thrown in a `onTaskStartup`, `onTaskEnd`, or `onTaskFailed`
you can not override the exit code for the application using `ExitCodeExceptionMapper`.
[[features-task-execution-listener-exit-messages]]
==== Exit Messages
You can set the exit message for a task programmatically by using a
`TaskExecutionListener`. This is done by setting the `TaskExecution's` `exitMessage`,
which then gets passed into the `TaskExecutionListener`. The following example shows
a method that is annotated with the `@AfterTask` `ExecutionListener` :
[source,java]
@AfterTask
public void afterMe(TaskExecution taskExecution) {
taskExecution.setExitMessage("AFTER EXIT MESSAGE");
}
An `ExitMessage` can be set at any of the listener events (`onTaskStartup`,
`onTaskFailed`, and `onTaskEnd`). The order of precedence for the three listeners follows:
. `onTaskEnd`
. `onTaskFailed`
. `onTaskStartup`
For example, if you set an `exitMessage` for the `onTaskStartup` and `onTaskFailed`
listeners and the task ends without failing, the `exitMessage` from the `onTaskStartup`
is stored in the repository. Otherwise, if a failure occurs, the `exitMessage` from
the `onTaskFailed` is stored. Also if you set the `exitMessage` with an
`onTaskEnd` listener, the `exitMessage` from the `onTaskEnd` supersedes
the exit messages from both the `onTaskStartup` and `onTaskFailed`.
[[features-single-instance-enabled]]
=== Restricting Spring Cloud Task Instances
Spring Cloud Task lets you establish that only one task with a given task name can be run
at a time. To do so, you need to establish the <<features-task-name, task name>> and set
`spring.cloud.task.single-instance-enabled=true` for each task execution. While the first
task execution is running, any other time you try to run a task with the same
<<features-task-name, task name>> and `spring.cloud.task.single-instance-enabled=true`, the
task fails with the following error message: `Task with name "application" is already
running.` The default value for `spring.cloud.task.single-instance-enabled` is `false`. The
following example shows how to set `spring.cloud.task.single-instance-enabled` to `true`:
`spring.cloud.task.single-instance-enabled=true or false`
To use this feature, you must add the following Spring Integration dependencies to your
application:
[source,xml]
<dependency>
<groupId>org.springframework.integration</groupId>
<artifactId>spring-integration-core</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.integration</groupId>
<artifactId>spring-integration-jdbc</artifactId>
</dependency>
NOTE: The exit code for the application will be 1 if the task fails because this feature
is enabled and another task is running with the same task name.
[[single-instance-usage-for-spring-aot-and-native-compilation]]
==== Single Instance Usage for Spring AOT And Native Compilation
To use Spring Cloud Task's single-instance feature when creating a natively compiled app, you need to enable the feature at build time.
To do so, add the process-aot execution and set `spring.cloud.task.single-step-instance-enabled=true` as a JVM argument, as follows:
[source,xml]
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<executions>
<execution>
<id>process-aot</id>
<goals>
<goal>process-aot</goal>
</goals>
<configuration>
<jvmArguments>
-Dspring.cloud.task.single-instance-enabled=true
</jvmArguments>
</configuration>
</execution>
</executions>
</plugin>
[[enabling-observations-for-applicationrunner-and-commandlinerunner]]
=== Enabling Observations for ApplicationRunner and CommandLineRunner
To Enable Task Observations for `ApplicationRunner` or `CommandLineRunner` set `spring.cloud.task.observation.enabled` to true.
An example task application with observations enables using the `SimpleMeterRegistry` can be found https://github.com/spring-cloud/spring-cloud-task/tree/main/spring-cloud-task-samples/task-observations[here].
[[disabling-spring-cloud-task-auto-configuration]]
=== Disabling Spring Cloud Task Auto Configuration
In cases where Spring Cloud Task should not be autoconfigured for an implementation, you can disable Task's auto configuration.
This can be done either by adding the following annotation to your Task application:
```
@EnableAutoConfiguration(exclude={SimpleTaskAutoConfiguration.class})
```
You may also disable Task auto configuration by setting the `spring.cloud.task.autoconfiguration.enabled` property to `false`.
[[closing-the-context]]
=== Closing the Context
If the application requires the `ApplicationContext` to be closed at the
completion of a task (all `*Runner#run` methods have been called and the task
repository has been updated), set the property `spring.cloud.task.closecontextEnabled`
to `true`.
Another case to close the context is when the Task Execution completes however the application does not terminate.
In these cases the context is held open because a thread has been allocated
(for example: if you are using a TaskExecutor). In these cases
set the `spring.cloud.task.closecontextEnabled` property to `true` when launching your task.
This will close the application's context once the task is complete.
Thus allowing the application to terminate.
[[enable-task-metrics]]
=== Enable Task Metrics
Spring Cloud Task integrates with Micrometer and creates observations for the Tasks it executes.
To enable Task Observability integration, you must add `spring-boot-starter-actuator`, your preferred registry implementation (if you want to publish metrics), and micrometer-tracing (if you want to publish tracing data) to your task application.
An example maven set of dependencies to enable task observability and metrics using Influx would be:
[source,xml]
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<dependency>
<groupId>io.micrometer</groupId>
<artifactId>micrometer-registry-influx</artifactId>
<scope>runtime</scope>
</dependency>
[[spring-task-and-spring-cloud-task]]
=== Spring Task and Spring Cloud Task Properties
The term `task` is frequently used word in the industry. In one such example Spring Boot offers the `spring.task` while Spring Cloud Task offers the `spring.cloud.task` properties.
This has caused some confusion in the past that these two groups of properties are directly related. However, they represent 2 different set of features offered in the Spring ecosystem.
* `spring.task` refers to the properties that configure the `ThreadPoolTaskScheduler`.
* `spring.cloud.task` refers to the properties that configure features of Spring Cloud Task.
================================================
FILE: docs/modules/ROOT/pages/getting-started.adoc
================================================
[[getting-started]]
= Getting started
[[partintro]]
--
If you are just getting started with Spring Cloud Task, you should read this section.
Here, we answer the basic "`what?`", "`how?`", and "`why?`" questions. We start with a
gentle introduction to Spring Cloud Task. We then build a Spring Cloud Task application,
discussing some core principles as we go.
--
[[getting-started-introducing-spring-cloud-task]]
== Introducing Spring Cloud Task
Spring Cloud Task makes it easy to create short-lived microservices. It provides
capabilities that let short-lived JVM processes be executed on demand in a production
environment.
[[getting-started-system-requirements]]
== System Requirements
You need to have Java installed (Java 17 or better).
[[database-requirements]]
=== Database Requirements
Spring Cloud Task uses a relational database to store the results of an executed task.
While you can begin developing a task without a database (the status of the task is logged
as part of the task repository's updates), for production environments, you want to
use a supported database. Spring Cloud Task currently supports the following databases:
* DB2
* H2
* HSQLDB
* MySql
* Oracle
* Postgres
* SqlServer
[[getting-started-developing-first-task]]
== Developing Your First Spring Cloud Task Application
A good place to start is with a simple "`Hello, World!`" application, so we create the
Spring Cloud Task equivalent to highlight the features of the framework. Most IDEs have
good support for Apache Maven, so we use it as the build tool for this project.
NOTE: The spring.io web site contains many https://spring.io/guides[“`Getting Started`”
guides] that use Spring Boot. If you need to solve a specific problem, check there first.
You can shortcut the following steps by going to the
https://start.spring.io/[Spring Initializr] and creating a new project. Doing so
automatically generates a new project structure so that you can start coding right away.
We recommend experimenting with the Spring Initializr to become familiar with it.
[[getting-started-creating-project]]
=== Creating the Spring Task Project using Spring Initializr
Now we can create and test an application that prints `Hello, World!` to the console.
To do so:
. Visit the link:https://start.spring.io/[Spring Initialzr] site.
.. Create a new Maven project with a *Group* name of `io.spring.demo` and an *Artifact* name of `helloworld`.
.. In the Dependencies text box, type `task` and then select the `Task` dependency with the `Spring Cloud` label.
.. In the Dependencies text box, type `h2` and then select the `H2` dependency with the `SQL` label.
.. Click the *Generate Project* button
. Unzip the helloworld.zip file and import the project into your favorite IDE.
[[getting-started-writing-the-code]]
=== Writing the Code
To finish our application, we need to update the generated `HelloworldApplication` with the following contents so that it launches a Task.
[source,java]
----
package io.spring.demo.helloworld;
import org.springframework.boot.ApplicationArguments;
import org.springframework.boot.ApplicationRunner;
import org.springframework.boot.CommandLineRunner;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.task.configuration.EnableTask;
import org.springframework.context.annotation.Bean;
@SpringBootApplication
@EnableTask
public class HelloworldApplication {
@Bean
public ApplicationRunner applicationRunner() {
return new HelloWorldApplicationRunner();
}
public static void main(String[] args) {
SpringApplication.run(HelloworldApplication.class, args);
}
public static class HelloWorldApplicationRunner implements ApplicationRunner {
@Override
public void run(ApplicationArguments args) throws Exception {
System.out.println("Hello, World!");
}
}
}
----
While it may seem small, quite a bit is going on. For more about Spring
Boot specifics, see the
https://docs.spring.io/spring-boot/docs/current/reference/html/[Spring Boot reference documentation].
Now we can open the `application.properties` file in `src/main/resources`.
We need to configure two properties in `application.properties`:
* `application.name`: To set the application name (which is translated to the task name)
* `logging.level`: To set the logging for Spring Cloud Task to `DEBUG` in order to
get a view of what is going on.
The following example shows how to do both:
[source]
----
logging.level.org.springframework.cloud.task=DEBUG
spring.application.name=helloWorld
----
[[getting-started-at-task]]
==== Task Auto Configuration
When including Spring Cloud Task Starter dependency, Task auto configures all beans to bootstrap it's functionality.
Part of this configuration registers the `TaskRepository` and the infrastructure for its use.
In our demo, the `TaskRepository` uses an embedded H2 database to record the results
of a task. This H2 embedded database is not a practical solution for a production environment, since
the H2 DB goes away once the task ends. However, for a quick getting-started
experience, we can use this in our example as well as echoing to the logs what is being updated
in that repository. In the xref:features.adoc#features-configuration[Configuration] section (later in this
documentation), we cover how to customize the configuration of the pieces provided by
Spring Cloud Task.
When our sample application runs, Spring Boot launches our `HelloWorldApplicationRunner`
and outputs our "`Hello, World!`" message to standard out. The `TaskLifecycleListener`
records the start of the task and the end of the task in the repository.
[[getting-started-main-method]]
==== The main method
The main method serves as the entry point to any java application. Our main method
delegates to Spring Boot's https://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-spring-application.html[SpringApplication] class.
[[getting-started-clr]]
==== The ApplicationRunner
Spring includes many ways to bootstrap an application's logic. Spring Boot provides
a convenient method of doing so in an organized manner through its `*Runner` interfaces
(`CommandLineRunner` or `ApplicationRunner`). A well behaved task can bootstrap any
logic by using one of these two runners.
The lifecycle of a task is considered from before the `*Runner#run` methods are executed
to once they are all complete. Spring Boot lets an application use multiple
`*Runner` implementations, as does Spring Cloud Task.
NOTE: Any processing bootstrapped from mechanisms other than a `CommandLineRunner` or
`ApplicationRunner` (by using `InitializingBean#afterPropertiesSet` for example) is not
recorded by Spring Cloud Task.
[[getting-started-running-the-example]]
=== Running the Example
At this point, our application should work. Since this application is Spring Boot-based,
we can run it from the command line by using `$ ./mvnw spring-boot:run` from the root
of our application, as shown (with its output) in the following example:
[source]
----
$ mvn clean spring-boot:run
....... . . .
....... . . . (Maven log output here)
....... . . .
. ____ _ __ _ _
/\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
\\/ ___)| |_)| | | | | || (_| | ) ) ) )
' |____| .__|_| |_|_| |_\__, | / / / /
=========|_|==============|___/=/_/_/_/
:: Spring Boot :: (v3.3.0)
2024-01-04T10:07:01.102-06:00 INFO 18248 --- [helloWorld] [ main] i.s.d.helloworld.HelloworldApplication : Starting HelloworldApplication using Java 21.0.1 with PID 18248 (/Users/dashaun/fun/dashaun/spring-cloud-task/helloworld/target/classes started by dashaun in /Users/dashaun/fun/dashaun/spring-cloud-task/helloworld)
2024-01-04T10:07:01.103-06:00 INFO 18248 --- [helloWorld] [ main] i.s.d.helloworld.HelloworldApplication : No active profile set, falling back to 1 default profile: "default"
2024-01-04T10:07:01.526-06:00 INFO 18248 --- [helloWorld] [ main] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Starting...
2024-01-04T10:07:01.626-06:00 INFO 18248 --- [helloWorld] [ main] com.zaxxer.hikari.pool.HikariPool : HikariPool-1 - Added connection conn0: url=jdbc:h2:mem:3ad913f8-59ce-4785-bf8e-d6335dff6856 user=SA
2024-01-04T10:07:01.627-06:00 INFO 18248 --- [helloWorld] [ main] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Start completed.
2024-01-04T10:07:01.633-06:00 DEBUG 18248 --- [helloWorld] [ main] o.s.c.t.c.SimpleTaskAutoConfiguration : Using org.springframework.cloud.task.configuration.DefaultTaskConfigurer TaskConfigurer
2024-01-04T10:07:01.633-06:00 DEBUG 18248 --- [helloWorld] [ main] o.s.c.t.c.DefaultTaskConfigurer : No EntityManager was found, using DataSourceTransactionManager
2024-01-04T10:07:01.639-06:00 DEBUG 18248 --- [helloWorld] [ main] o.s.c.t.r.s.TaskRepositoryInitializer : Initializing task schema for h2 database
2024-01-04T10:07:01.772-06:00 DEBUG 18248 --- [helloWorld] [ main] o.s.c.t.r.support.SimpleTaskRepository : Creating: TaskExecution{executionId=0, parentExecutionId=null, exitCode=null, taskName='helloWorld', startTime=2024-01-04T10:07:01.757268, endTime=null, exitMessage='null', externalExecutionId='null', errorMessage='null', arguments=[]}
2024-01-04T10:07:01.785-06:00 INFO 18248 --- [helloWorld] [ main] i.s.d.helloworld.HelloworldApplication : Started HelloworldApplication in 0.853 seconds (process running for 1.029)
Hello, World!
2024-01-04T10:07:01.794-06:00 DEBUG 18248 --- [helloWorld] [ main] o.s.c.t.r.support.SimpleTaskRepository : Updating: TaskExecution with executionId=1 with the following {exitCode=0, endTime=2024-01-04T10:07:01.787112, exitMessage='null', errorMessage='null'}
2024-01-04T10:07:01.799-06:00 INFO 18248 --- [helloWorld] [ionShutdownHook] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Shutdown initiated...
2024-01-04T10:07:01.806-06:00 INFO 18248 --- [helloWorld] [ionShutdownHook] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Shutdown completed.
....... . . .
....... . . . (Maven log output here)
....... . . .
----
The preceding output has three lines that are of interest to us here:
* `SimpleTaskRepository` logged the creation of the entry in the `TaskRepository`.
* The execution of our `ApplicationRunner`, demonstrated by the "`Hello, World!`" output.
* `SimpleTaskRepository` logs the completion of the task in the `TaskRepository`.
NOTE: A simple task application can be found in the samples module of the Spring Cloud
Task Project
https://github.com/spring-cloud/spring-cloud-task/tree/master/spring-cloud-task-samples/timestamp[here].
================================================
FILE: docs/modules/ROOT/pages/index.adoc
================================================
[[spring-cloud-task-reference-guide]]
= Spring Cloud Task Reference Guide
Michael Minella, Glenn Renfro, Jay Bryant
:page-section-summary-toc: 1
include::preface.adoc[leveloffset=1]
// ======================================================================================
Version {project-version}
(C) 2009-2022 VMware, Inc. All rights reserved.
Copies of this document may be made for your own use and for distribution to
others, provided that you do not charge any fee for such copies and further
provided that each copy contains this Copyright Notice, whether distributed in
print or electronically.
// ======================================================================================
================================================
FILE: docs/modules/ROOT/pages/observability.adoc
================================================
[[observability]]
= Observability
== Observability metadata
include::partial$_metrics.adoc[]
include::partial$_spans.adoc[]
================================================
FILE: docs/modules/ROOT/pages/preface.adoc
================================================
[[preface]]
= Preface
[[task-documentation-about]]
This section provides a brief overview of the Spring Cloud Task reference documentation.
Think of it as a map for the rest of the document. You can read this reference guide in a
linear fashion or you can skip sections if something does not interest you.
[[about-the-documentation]]
== About the documentation
The Spring Cloud Task reference guide is available in https://docs.spring.io/spring-cloud-task/docs/current/reference[html].
The latest copy is available at
https://docs.spring.io/spring-cloud-task/reference/.
Copies of this document may be made for your own use and for distribution to others,
provided that you do not charge any fee for such copies and further provided that each
copy contains this Copyright Notice, whether distributed in print or electronically.
[[task-documentation-getting-help]]
== Getting help
Having trouble with Spring Cloud Task? We would like to help!
* Ask a question. We monitor https://stackoverflow.com[stackoverflow.com] for questions
tagged with https://stackoverflow.com/tags/spring-cloud-task[`spring-cloud-task`].
* Report bugs with Spring Cloud Task at
https://github.com/spring-cloud/spring-cloud-task/issues.
NOTE: All of Spring Cloud Task is open source, including the documentation. If you find
a problem with the docs or if you just want to improve them, please {github-code}[get
involved].
[[task-documentation-first-steps]]
== First Steps
If you are just getting started with Spring Cloud Task or with 'Spring' in general, we
suggesting reading the xref:getting-started.adoc[Getting started] chapter.
To get started from scratch, read the following sections:
* xref:getting-started.adoc#getting-started-introducing-spring-cloud-task[Introducing Spring Cloud Task]
* xref:getting-started.adoc#getting-started-system-requirements[System Requirements] +
To follow the tutorial, read
xref:getting-started.adoc#getting-started-developing-first-task[Developing Your First Spring Cloud Task Application] +
To run your example, read
xref:getting-started.adoc#getting-started-running-the-example[Running the Example]
================================================
FILE: docs/modules/ROOT/pages/stream.adoc
================================================
[[stream-integration]]
= Spring Cloud Stream Integration
[[partintro]]
--
A task by itself can be useful, but integration of a task into a larger ecosystem lets it
be useful for more complex processing and orchestration. This section
covers the integration options for Spring Cloud Task with Spring Cloud Stream.
--
[[stream-integration-events]]
== Spring Cloud Task Events
Spring Cloud Task provides the ability to emit events through a Spring Cloud Stream
channel when the task is run through a Spring Cloud Stream channel. A task listener is
used to publish the `TaskExecution` on a message channel named `task-events`. This feature
is autowired into any task that has `spring-cloud-stream`, `spring-cloud-stream-<binder>`,
and a defined task on its classpath.
NOTE: To disable the event emitting listener, set the `spring.cloud.task.events.enabled`
property to `false`.
With the appropriate classpath defined, the following task emits the `TaskExecution` as an
event on the `task-events` channel (at both the start and the end of the task):
[source, java]
----
@SpringBootApplication
public class TaskEventsApplication {
public static void main(String[] args) {
SpringApplication.run(TaskEventsApplication.class, args);
}
@Configuration
public static class TaskConfiguration {
@Bean
public ApplicationRunner applicationRunner() {
return new ApplicationRunner() {
@Override
public void run(ApplicationArguments args) {
System.out.println("The ApplicationRunner was executed");
}
};
}
}
}
----
NOTE: A binder implementation is also required to be on the classpath.
NOTE: A sample task event application can be found in the samples module
of the Spring Cloud Task Project,
https://github.com/spring-cloud/spring-cloud-task/tree/master/spring-cloud-task-samples/task-events[here].
[[stream-integration-disable-task-events]]
=== Disabling Specific Task Events
To disable task events, you can set the `spring.cloud.task.events.enabled` property to
`false`.
[[stream-integration-batch-events]]
== Spring Batch Events
When executing a Spring Batch job through a task, Spring Cloud Task can be configured to
emit informational messages based on the Spring Batch listeners available in Spring Batch.
Specifically, the following Spring Batch listeners are autoconfigured into each batch job
and emit messages on the associated Spring Cloud Stream channels when run through Spring
Cloud Task:
* `JobExecutionListener` listens for `job-execution-events`
* `StepExecutionListener` listens for `step-execution-events`
* `ChunkListener` listens for `chunk-events`
* `ItemReadListener` listens for `item-read-events`
* `ItemProcessListener` listens for `item-process-events`
* `ItemWriteListener` listens for `item-write-events`
* `SkipListener` listens for `skip-events`
These listeners are autoconfigured into any `AbstractJob` when the appropriate
beans (a `Job` and a `TaskLifecycleListener`) exist in the context. Configuration to
listen to these events is handled the same way binding to any other Spring
Cloud Stream channel is done. Our task (the one running the batch job) serves as a
`Source`, with the listening applications serving as either a `Processor` or a `Sink`.
An example could be to have an application listening to the `job-execution-events` channel
for the start and stop of a job. To configure the listening application, you would
configure the input to be `job-execution-events` as follows:
`spring.cloud.stream.bindings.input.destination=job-execution-events`
NOTE: A binder implementation is also required to be on the classpath.
NOTE: A sample batch event application can be found in the samples module
of the Spring Cloud Task Project,
https://github.com/spring-cloud/spring-cloud-task/tree/master/spring-cloud-task-samples/batch-events[here].
[[sending-batch-events-to-different-channels]]
=== Sending Batch Events to Different Channels
One of the options that Spring Cloud Task offers for batch events is the ability to alter
the channel to which a specific listener can emit its messages. To do so, use the
following configuration:
`spring.cloud.stream.bindings.<the channel>.destination=<new destination>`. For example,
if `StepExecutionListener` needs to emit its messages to another channel called
`my-step-execution-events` instead of the default `step-execution-events`, you can add the
following configuration:
`spring.cloud.task.batch.events.step-execution-events-binding-name=my-step-execution-events`
[[disabling-batch-events]]
=== Disabling Batch Events
To disable the listener functionality for all batch events, use the following
configuration:
`spring.cloud.task.batch.events.enabled=false`
To disable a specific batch event, use the following configuration:
`spring.cloud.task.batch.events.<batch event listener>.enabled=false`:
The following listing shows individual listeners that you can disable:
[source,bash]
----
spring.cloud.task.batch.events.job-execution.enabled=false
spring.cloud.task.batch.events.step-execution.enabled=false
spring.cloud.task.batch.events.chunk.enabled=false
spring.cloud.task.batch.events.item-read.enabled=false
spring.cloud.task.batch.events.item-process.enabled=false
spring.cloud.task.batch.events.item-write.enabled=false
spring.cloud.task.batch.events.skip.enabled=false
----
[[emit-order-for-batch-events]]
=== Emit Order for Batch Events
By default, batch events have `Ordered.LOWEST_PRECEDENCE`. To change this value (for
example, to 5 ), use the following configuration:
[source,bash]
----
spring.cloud.task.batch.events.job-execution-order=5
spring.cloud.task.batch.events.step-execution-order=5
spring.cloud.task.batch.events.chunk-order=5
spring.cloud.task.batch.events.item-read-order=5
spring.cloud.task.batch.events.item-process-order=5
spring.cloud.task.batch.events.item-write-order=5
spring.cloud.task.batch.events.skip-order=5
----
================================================
FILE: docs/modules/ROOT/partials/_configprops.adoc
================================================
|===
|Name | Default | Description
|spring.cloud.task.batch.application-runner-order | `+++0+++` | The order for the {@code ApplicationRunner} used to run batch jobs when {@code spring.cloud.task.batch.fail-on-job-failure=true}. Defaults to 0 (same as the {@link org.springframework.boot.batch.autoconfigure.JobLauncherApplicationRunner}).
|spring.cloud.task.batch.command-line-runner-order | |
|spring.cloud.task.batch.events.chunk-event-binding-name | `+++chunk-events+++` |
|spring.cloud.task.batch.events.chunk-order | | Establishes the default {@link Ordered} precedence for {@link org.springframework.batch.core.ChunkListener}.
|spring.cloud.task.batch.events.chunk.enabled | `+++true+++` | This property is used to determine if a task should listen for batch chunk events.
|spring.cloud.task.batch.events.enabled | `+++true+++` | This property is used to determine if a task should listen for batch events.
|spring.cloud.task.batch.events.item-process-event-binding-name | `+++item-process-events+++` |
|spring.cloud.task.batch.events.item-process-order | | Establishes the default {@link Ordered} precedence for {@link org.springframework.batch.core.ItemProcessListener}.
|spring.cloud.task.batch.events.item-process.enabled | `+++true+++` | This property is used to determine if a task should listen for batch item processed events.
|spring.cloud.task.batch.events.item-read-event-binding-name | `+++item-read-events+++` |
|spring.cloud.task.batch.events.item-read-order | | Establishes the default {@link Ordered} precedence for {@link org.springframework.batch.core.ItemReadListener}.
|spring.cloud.task.batch.events.item-read.enabled | `+++true+++` | This property is used to determine if a task should listen for batch item read events.
|spring.cloud.task.batch.events.item-write-event-binding-name | `+++item-write-events+++` |
|spring.cloud.task.batch.events.item-write-order | | Establishes the default {@link Ordered} precedence for {@link org.springframework.batch.core.ItemWriteListener}.
|spring.cloud.task.batch.events.item-write.enabled | `+++true+++` | This property is used to determine if a task should listen for batch item write events.
|spring.cloud.task.batch.events.job-execution-event-binding-name | `+++job-execution-events+++` |
|spring.cloud.task.batch.events.job-execution-order | | Establishes the default {@link Ordered} precedence for {@link org.springframework.batch.core.JobExecutionListener}.
|spring.cloud.task.batch.events.job-execution.enabled | `+++true+++` | This property is used to determine if a task should listen for batch job execution events.
|spring.cloud.task.batch.events.skip-event-binding-name | `+++skip-events+++` |
|spring.cloud.task.batch.events.skip-order | | Establishes the default {@link Ordered} precedence for {@link org.springframework.batch.core.SkipListener}.
|spring.cloud.task.batch.events.skip.enabled | `+++true+++` | This property is used to determine if a task should listen for batch skip events.
|spring.cloud.task.batch.events.step-execution-event-binding-name | `+++step-execution-events+++` |
|spring.cloud.task.batch.events.step-execution-order | | Establishes the default {@link Ordered} precedence for {@link org.springframework.batch.core.StepExecutionListener}.
|spring.cloud.task.batch.events.step-execution.enabled | `+++true+++` | This property is used to determine if a task should listen for batch step execution events.
|spring.cloud.task.batch.events.task-event-binding-name | `+++task-events+++` |
|spring.cloud.task.batch.fail-on-job-failure | `+++false+++` | This property is used to determine if a task app should return with a non zero exit code if a batch job fails.
|spring.cloud.task.batch.fail-on-job-failure-poll-interval | `+++5000+++` | Fixed delay in milliseconds that Spring Cloud Task will wait when checking if {@link org.springframework.batch.core.JobExecution}s have completed, when spring.cloud.task.batch.failOnJobFailure is set to true. Defaults to 5000.
|spring.cloud.task.batch.job-names | | Comma-separated list of job names to execute on startup (for instance, `job1,job2`). By default, all Jobs found in the context are executed. @deprecated use spring.batch.job.name instead of spring.cloud.task.batch.jobNames.
|spring.cloud.task.batch.listener.enabled | `+++true+++` | This property is used to determine if a task will be linked to the batch jobs that are run.
|spring.cloud.task.closecontext-enabled | `+++false+++` | When set to true the context is closed at the end of the task. Else the context remains open.
|spring.cloud.task.events.enabled | `+++true+++` | This property is used to determine if a task app should emit task events.
|spring.cloud.task.executionid | | An id that will be used by the task when updating the task execution.
|spring.cloud.task.external-execution-id | | An id that can be associated with a task.
|spring.cloud.task.initialize-enabled | | If set to true then tables are initialized. If set to false tables are not initialized. Defaults to null. The requirement for it to be defaulted to null is so that we can support the <code>spring.cloud.task.initialize.enable</code> until it is removed.
|spring.cloud.task.parent-execution-id | | The id of the parent task execution id that launched this task execution. Defaults to null if task execution had no parent.
|spring.cloud.task.single-instance-enabled | `+++false+++` | This property is used to determine if a task will execute if another task with the same app name is running.
|spring.cloud.task.single-instance-lock-check-interval | `+++500+++` | Declares the time (in millis) that a task execution will wait between checks. Default time is: 500 millis.
|spring.cloud.task.single-instance-lock-ttl | | Declares the maximum amount of time (in millis) that a task execution can hold a lock to prevent another task from executing with a specific task name when the single-instance-enabled is set to true. Default time is: Integer.MAX_VALUE.
|spring.cloud.task.table-prefix | `+++TASK_+++` | The prefix to append to the table names created by Spring Cloud Task.
|spring.cloud.task.transaction-manager | `+++springCloudTaskTransactionManager+++` | This property is used to specify the transaction manager for TaskRepository. By default, a dedicated transaction manager is created by spring.
|===
================================================
FILE: docs/modules/ROOT/partials/_conventions.adoc
================================================
[[observability-conventions]]
=== Observability - Conventions
Below you can find a list of all `GlobalObservationConvention` and `ObservationConvention` declared by this project.
.ObservationConvention implementations
|===
|ObservationConvention Class Name | Applicable ObservationContext Class Name
|`org.springframework.cloud.task.listener.DefaultTaskExecutionObservationConvention`|`TaskExecutionObservationContext`
|`org.springframework.cloud.task.listener.TaskExecutionObservationConvention`|`TaskExecutionObservationContext`
|`org.springframework.cloud.task.configuration.observation.DefaultTaskObservationConvention`|`TaskObservationContext`
|`org.springframework.cloud.task.configuration.observation.TaskObservationConvention`|`TaskObservationContext`
|===
================================================
FILE: docs/modules/ROOT/partials/_metrics.adoc
================================================
[[observability-metrics]]
=== Observability - Metrics
Below you can find a list of all metrics declared by this project.
[[observability-metrics-task-active]]
==== Task Active
____
Metrics created around a task execution.
____
**Metric name** `spring.cloud.task` (defined by convention class `org.springframework.cloud.task.listener.DefaultTaskExecutionObservationConvention`). **Type** `timer`.
**Metric name** `spring.cloud.task.active` (defined by convention class `org.springframework.cloud.task.listener.DefaultTaskExecutionObservationConvention`). **Type** `long task timer`.
IMPORTANT: KeyValues that are added after starting the Observation might be missing from the *.active metrics.
IMPORTANT: Micrometer internally uses `nanoseconds` for the baseunit. However, each backend determines the actual baseunit. (i.e. Prometheus uses seconds)
Fully qualified name of the enclosing class `org.springframework.cloud.task.listener.TaskExecutionObservation`.
IMPORTANT: All tags must be prefixed with `spring.cloud.task` prefix!
.Low cardinality Keys
[cols="a,a"]
|===
|Name | Description
|`spring.cloud.task.cf.app.id` _(required)_|App id for CF cloud.
|`spring.cloud.task.cf.app.name` _(required)_|App name for CF cloud.
|`spring.cloud.task.cf.app.version` _(required)_|App version for CF cloud.
|`spring.cloud.task.cf.instance.index` _(required)_|Instance index for CF cloud.
|`spring.cloud.task.cf.org.name` _(required)_|Organization Name for CF cloud.
|`spring.cloud.task.cf.space.id` _(required)_|Space id for CF cloud.
|`spring.cloud.task.cf.space.name` _(required)_|Space name for CF cloud.
|`spring.cloud.task.execution.id` _(required)_|Task execution id.
|`spring.cloud.task.exit.code` _(required)_|Task exit code.
|`spring.cloud.task.external.execution.id` _(required)_|External execution id for task.
|`spring.cloud.task.name` _(required)_|Task name measurement.
|`spring.cloud.task.parent.execution.id` _(required)_|Task parent execution id.
|`spring.cloud.task.status` _(required)_|task status. Can be either success or failure.
|===
[[observability-metrics-task-runner-observation]]
==== Task Runner Observation
____
Observation created when a task runner is executed.
____
**Metric name** `spring.cloud.task.runner` (defined by convention class `org.springframework.cloud.task.configuration.observation.DefaultTaskObservationConvention`). **Type** `timer`.
**Metric name** `spring.cloud.task.runner.active` (defined by convention class `org.springframework.cloud.task.configuration.observation.DefaultTaskObservationConvention`). **Type** `long task timer`.
IMPORTANT: KeyValues that are added after starting the Observation might be missing from the *.active metrics.
IMPORTANT: Micrometer internally uses `nanoseconds` for the baseunit. However, each backend determines the actual baseunit. (i.e. Prometheus uses seconds)
Fully qualified name of the enclosing class `org.springframework.cloud.task.configuration.observation.TaskDocumentedObservation`.
IMPORTANT: All tags must be prefixed with `spring.cloud.task` prefix!
.Low cardinality Keys
[cols="a,a"]
|===
|Name | Description
|`spring.cloud.task.runner.bean-name` _(required)_|Name of the bean that was executed by Spring Cloud Task.
|===
================================================
FILE: docs/modules/ROOT/partials/_spans.adoc
================================================
[[observability-spans]]
=== Observability - Spans
Below you can find a list of all spans declared by this project.
[[observability-spans-task-active]]
==== Task Active Span
> Metrics created around a task execution.
**Span name** `spring.cloud.task` (defined by convention class `org.springframework.cloud.task.listener.DefaultTaskExecutionObservationConvention`).
Fully qualified name of the enclosing class `org.springframework.cloud.task.listener.TaskExecutionObservation`.
IMPORTANT: All tags must be prefixed with `spring.cloud.task` prefix!
.Tag Keys
|===
|Name | Description
|`spring.cloud.task.cf.app.id` _(required)_|App id for CF cloud.
|`spring.cloud.task.cf.app.name` _(required)_|App name for CF cloud.
|`spring.cloud.task.cf.app.version` _(required)_|App version for CF cloud.
|`spring.cloud.task.cf.instance.index` _(required)_|Instance index for CF cloud.
|`spring.cloud.task.cf.org.name` _(required)_|Organization Name for CF cloud.
|`spring.cloud.task.cf.space.id` _(required)_|Space id for CF cloud.
|`spring.cloud.task.cf.space.name` _(required)_|Space name for CF cloud.
|`spring.cloud.task.execution.id` _(required)_|Task execution id.
|`spring.cloud.task.exit.code` _(required)_|Task exit code.
|`spring.cloud.task.external.execution.id` _(required)_|External execution id for task.
|`spring.cloud.task.name` _(required)_|Task name measurement.
|`spring.cloud.task.parent.execution.id` _(required)_|Task parent execution id.
|`spring.cloud.task.status` _(required)_|task status. Can be either success or failure.
|===
[[observability-spans-task-runner-observation]]
==== Task Runner Observation Span
> Observation created when a task runner is executed.
**Span name** `spring.cloud.task.runner` (defined by convention class `org.springframework.cloud.task.configuration.observation.DefaultTaskObservationConvention`).
Fully qualified name of the enclosing class `org.springframework.cloud.task.configuration.observation.TaskDocumentedObservation`.
IMPORTANT: All tags must be prefixed with `spring.cloud.task` prefix!
.Tag Keys
|===
|Name | Description
|`spring.cloud.task.runner.bean-name` _(required)_|Name of the bean that was executed by Spring Cloud Task.
|===
================================================
FILE: docs/package.json
================================================
{
"dependencies": {
"antora": "3.2.0-alpha.9",
"@antora/atlas-extension": "1.0.0-alpha.5",
"@antora/collector-extension": "1.0.2",
"@asciidoctor/tabs": "1.0.0-beta.6",
"@springio/antora-extensions": "1.14.7",
"@springio/asciidoctor-extensions": "1.0.0-alpha.17"
}
}
================================================
FILE: docs/pom.xml
================================================
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://maven.apache.org/POM/4.0.0"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-task-docs</artifactId>
<parent>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-task-parent</artifactId>
<version>5.0.2-SNAPSHOT</version>
</parent>
<packaging>jar</packaging>
<name>Spring Cloud Task Docs</name>
<description>Spring Cloud Task Docs</description>
<properties>
<docs.main>spring-cloud-task</docs.main>
<main.basedir>${basedir}/..</main.basedir>
<configprops.inclusionPattern>spring.cloud.*</configprops.inclusionPattern>
<!-- Don't upload docs jar to central / repo.spring.io -->
<maven-deploy-plugin-default.phase>none</maven-deploy-plugin-default.phase>
<!-- Observability -->
<micrometer-docs-generator.version>1.0.2</micrometer-docs-generator.version>
<micrometer-docs-generator.inputPath>${maven.multiModuleProjectDirectory}/spring-cloud-task-core/</micrometer-docs-generator.inputPath>
<micrometer-docs-generator.inclusionPattern>.*</micrometer-docs-generator.inclusionPattern>
<micrometer-docs-generator.outputPath>${maven.multiModuleProjectDirectory}/docs/modules/ROOT/partials/</micrometer-docs-generator.outputPath>
</properties>
<build>
<sourceDirectory>src/main/asciidoc</sourceDirectory>
</build>
<profiles>
<profile>
<id>enable-configuration-properties</id>
<activation>
<property>
<name>!disableConfigurationProperties</name>
</property>
</activation>
<dependencies>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>spring-cloud-starter-single-step-batch-job</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>spring-cloud-starter-task</artifactId>
<version>${project.version}</version>
</dependency>
</dependencies>
</profile>
<profile>
<id>docs</id>
<build>
<resources>
<resource>
<directory>src/main/antora/resources/antora-resources</directory>
<filtering>true</filtering>
</resource>
</resources>
<plugins>
<plugin>
<groupId>pl.project13.maven</groupId>
<artifactId>git-commit-id-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<!-- TODO: Remove this execution if you have no observability -->
<executions>
<execution>
<id>generate-observability-docs</id>
<phase>${generate-docs.phase}</phase>
<goals>
<goal>java</goal>
</goals>
<configuration>
<mainClass>io.micrometer.docs.DocsGeneratorCommand</mainClass>
<includePluginDependencies>true</includePluginDependencies>
<arguments>
<argument>${micrometer-docs-generator.inputPath}</argument>
<argument>${micrometer-docs-generator.inclusionPattern}</argument>
<argument>${micrometer-docs-generator.outputPath}</argument>
</arguments>
</configuration>
</execution>
</executions>
<dependencies>
<dependency>
<groupId>io.micrometer</groupId>
<artifactId>micrometer-docs-generator</artifactId>
<version>${micrometer-docs-generator.version}</version>
<type>jar</type>
</dependency>
</dependencies>
</plugin>
<plugin>
<groupId>io.spring.maven.antora</groupId>
<artifactId>antora-component-version-maven-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.antora</groupId>
<artifactId>antora-maven-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
<executions>
<execution>
<id>copying-javadocs</id>
<phase>prepare-package</phase>
<goals>
<goal>run</goal>
</goals>
<configuration>
<target>
<mkdir dir="${project.basedir}/target/generated-docs/apidocs"/>
</target>
<target>
<copy todir="${project.basedir}/target/generated-docs/apidocs">
<fileset dir="${maven.multiModuleProjectDirectory}/target/reports/apidocs"/>
</copy>
</target>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<artifactId>maven-deploy-plugin</artifactId>
</plugin>
</plugins>
</build>
</profile>
</profiles>
</project>
================================================
FILE: docs/src/main/antora/resources/antora-resources/antora.yml
================================================
version: @antora-component.version@
prerelease: @antora-component.prerelease@
asciidoc:
attributes:
attribute-missing: 'warn'
chomp: 'all'
project-root: @maven.multiModuleProjectDirectory@
github-repo: @docs.main@
github-raw: https://raw.githubusercontent.com/spring-cloud/@docs.main@/@github-tag@
github-code: https://github.com/spring-cloud/@docs.main@/tree/@github-tag@
github-issues: https://github.com/spring-cloud/@docs.main@/issues/
github-wiki: https://github.com/spring-cloud/@docs.main@/wiki
spring-cloud-version: @project.version@
github-tag: @github-tag@
version-type: @version-type@
docs-url: https://docs.spring.io/@docs.main@/docs/@project.version@
raw-docs-url: https://raw.githubusercontent.com/spring-cloud/@docs.main@/@github-tag@
project-version: @project.version@
project-name: @docs.main@
================================================
FILE: docs/src/main/asciidoc/.gitignore
================================================
*.html
*.css
================================================
FILE: docs/src/main/asciidoc/Guardfile
================================================
require 'asciidoctor'
require 'erb'
guard 'shell' do
watch(/.*\.adoc$/) {|m|
Asciidoctor.render_file('index.adoc', \
:in_place => true, \
:safe => Asciidoctor::SafeMode::UNSAFE, \
:attributes => {\
'source-highlighter' => 'prettify', \
'icons' => 'font', \
'linkcss' => 'true', \
'copycss' => 'true', \
'doctype' => 'book'})
}
end
guard 'livereload' do
watch(%r{^.+\.(css|js|html)$})
end
================================================
FILE: docs/src/main/asciidoc/README.adoc
================================================
[[spring-cloud-task]]
= Spring Cloud Task
Is a project centered around the idea of processing on demand. A user is able to develop
a “task” that can be deployed, executed and removed on demand, yet the result of the
process persists beyond the life of the task for future reporting.
[[requirements:]]
== Requirements:
* Java 17 or Above
[[build-main-project:]]
== Build Main Project:
[source,shell,indent=2]
----
$ ./mvnw clean install
----
[[example:]]
== Example:
[source,java,indent=2]
----
@SpringBootApplication
@EnableTask
public class MyApp {
@Bean
public MyTaskApplication myTask() {
return new MyTaskApplication();
}
public static void main(String[] args) {
SpringApplication.run(MyApp.class);
}
public static class MyTaskApplication implements ApplicationRunner {
@Override
public void run(ApplicationArguments args) throws Exception {
System.out.println("Hello World");
}
}
}
----
[[code-of-conduct]]
== Code of Conduct
This project adheres to the Contributor Covenant link:CODE_OF_CONDUCT.adoc[code of conduct]. By participating, you are expected to uphold this code. Please report unacceptable behavior to spring-code-of-conduct@pivotal.io.
[[building-the-project]]
== Building the Project
This project requires that you invoke the Javadoc engine from the Maven command line. You can do so by appending `javadoc:aggregate` to the rest of your Maven command.
For example, to build the entire project, you could use `mvn clean install -DskipTests -P docs`.
================================================
FILE: docs/src/main/asciidoc/index.htmladoc
================================================
include::spring-cloud-task.adoc[]
================================================
FILE: docs/src/main/asciidoc/index.htmlsingleadoc
================================================
= Spring Cloud Task Reference Guide
Michael Minella, Glenn Renfro, Jay Bryant
include::_attributes.adoc[]
// ======================================================================================
(C) 2009-2020 VMware, Inc. All rights reserved.
Copies of this document may be made for your own use and for distribution to
others, provided that you do not charge any fee for such copies and further
provided that each copy contains this Copyright Notice, whether distributed in
print or electronically.
include::preface.adoc[leveloffset=+1]
include::getting-started.adoc[leveloffset=+1]
include::features.adoc[leveloffset=+1]
include::batch.adoc[leveloffset=+1]
include::batch-starter.adoc[leveloffset=+1]
include::stream.adoc[leveloffset=+1]
include::appendix.adoc[leveloffset=+1]
// ======================================================================================
================================================
FILE: docs/src/main/asciidoc/index.pdfadoc
================================================
include::spring-cloud-task.pdfadoc[]
================================================
FILE: docs/src/main/asciidoc/sagan-index.adoc
================================================
Spring Cloud Task allows a user to develop and run short lived microservices using Spring Cloud and run them locally, in the cloud, even on Spring Cloud Data Flow. Just add `@EnableTask` and run your app as a Spring Boot app (single application context).
If you are new to Spring Cloud Task, take a look at our https://docs.spring.io/spring-cloud-task/docs/2.0.0.RELEASE/reference/htmlsingle/#getting-started[Getting Started] docs.
================================================
FILE: docs/src/main/asciidoc/spring-cloud-task.epubadoc
================================================
= Spring Cloud Task Reference Guide
Michael Minella, Glenn Renfro, Jay Bryant
include::_attributes.adoc[]
// ======================================================================================
(C) 2009-2022 VMware, Inc. All rights reserved.
Copies of this document may be made for your own use and for distribution to
others, provided that you do not charge any fee for such copies and further
provided that each copy contains this Copyright Notice, whether distributed in
print or electronically.
include::preface.adoc[leveloffset=+1]
include::getting-started.adoc[leveloffset=+1]
include::features.adoc[leveloffset=+1]
include::batch.adoc[leveloffset=+1]
include::batch-starter.adoc[leveloffset=+1]
include::stream.adoc[leveloffset=+1]
include::appendix.adoc[leveloffset=+1]
// ======================================================================================
================================================
FILE: docs/src/main/asciidoc/spring-cloud-task.htmlsingleadoc
================================================
= Spring Cloud Task Reference Guide
Michael Minella, Glenn Renfro, Jay Bryant
include::_attributes.adoc[]
// ======================================================================================
(C) 2009-2020 VMware, Inc. All rights reserved.
Copies of this document may be made for your own use and for distribution to
others, provided that you do not charge any fee for such copies and further
provided that each copy contains this Copyright Notice, whether distributed in
print or electronically.
include::preface.adoc[leveloffset=+1]
include::getting-started.adoc[leveloffset=+1]
include::features.adoc[leveloffset=+1]
include::batch.adoc[leveloffset=+1]
include::batch-starter.adoc[leveloffset=+1]
include::stream.adoc[leveloffset=+1]
include::appendix.adoc[leveloffset=+1]
// ======================================================================================
================================================
FILE: docs/src/main/asciidoc/spring-cloud-task.pdfadoc
================================================
= Spring Cloud Task Reference Guide
Michael Minella, Glenn Renfro, Jay Bryant
include::_attributes.adoc[]
// ======================================================================================
(C) 2009-2022 VMware, Inc. All rights reserved.
Copies of this document may be made for your own use and for distribution to
others, provided that you do not charge any fee for such copies and further
provided that each copy contains this Copyright Notice, whether distributed in
print or electronically.
include::preface.adoc[leveloffset=+1]
include::getting-started.adoc[leveloffset=+1]
include::features.adoc[leveloffset=+1]
include::batch.adoc[leveloffset=+1]
include::batch-starter.adoc[leveloffset=+1]
include::stream.adoc[leveloffset=+1]
include::appendix.adoc[leveloffset=+1]
// ======================================================================================
================================================
FILE: docs/src/main/javadoc/spring-javadoc.css
================================================
/* Javadoc style sheet */
/*
Overall document style
*/
@import url('resources/fonts/dejavu.css');
body {
background-color: #ffffff;
color: #353833;
font-family: 'DejaVu Sans', Arial, Helvetica, sans-serif;
font-size: 14px;
margin: 0;
}
a:link, a:visited {
text-decoration: none;
color: #4A6782;
}
a:hover, a:focus {
text-decoration: none;
color: #bb7a2a;
}
a:active {
text-decoration: none;
color: #4A6782;
}
a[name] {
color: #353833;
}
a[name]:hover {
text-decoration: none;
color: #353833;
}
pre {
font-family: 'DejaVu Sans Mono', monospace;
font-size: 14px;
}
h1 {
font-size: 20px;
}
h2 {
font-size: 18px;
}
h3 {
font-size: 16px;
font-style: italic;
}
h4 {
font-size: 13px;
}
h5 {
font-size: 12px;
}
h6 {
font-size: 11px;
}
ul {
list-style-type: disc;
}
code, tt {
font-family: 'DejaVu Sans Mono', monospace;
font-size: 14px;
padding-top: 4px;
margin-top: 8px;
line-height: 1.4em;
}
dt code {
font-family: 'DejaVu Sans Mono', monospace;
font-size: 14px;
padding-top: 4px;
}
table tr td dt code {
font-family: 'DejaVu Sans Mono', monospace;
font-size: 14px;
vertical-align: top;
padding-top: 4px;
}
sup {
font-size: 8px;
}
/*
Document title and Copyright styles
*/
.clear {
clear: both;
height: 0px;
overflow: hidden;
}
.aboutLanguage {
float: right;
padding: 0px 21px;
font-size: 11px;
z-index: 200;
margin-top: -9px;
}
.legalCopy {
margin-left: .5em;
}
.bar a, .bar a:link, .bar a:visited, .bar a:active {
color: #FFFFFF;
text-decoration: none;
}
.bar a:hover, .bar a:focus {
color: #bb7a2a;
}
.tab {
background-color: #0066FF;
color: #ffffff;
padding: 8px;
width: 5em;
font-weight: bold;
}
/*
Navigation bar styles
*/
.bar {
background-color: #4D7A97;
color: #FFFFFF;
padding: .8em .5em .4em .8em;
height: auto; /*height:1.8em;*/
font-size: 11px;
margin: 0;
}
.topNav {
background-color: #4D7A97;
color: #FFFFFF;
float: left;
padding: 0;
width: 100%;
clear: right;
height: 2.8em;
padding-top: 10px;
overflow: hidden;
font-size: 12px;
}
.bottomNav {
margin-top: 10px;
background-color: #4D7A97;
color: #FFFFFF;
float: left;
padding: 0;
width: 100%;
clear: right;
height: 2.8em;
padding-top: 10px;
overflow: hidden;
font-size: 12px;
}
.subNav {
background-color: #dee3e9;
float: left;
width: 100%;
overflow: hidden;
font-size: 12px;
}
.subNav div {
clear: left;
float: left;
padding: 0 0 5px 6px;
text-transform: uppercase;
}
ul.navList, ul.subNavList {
float: left;
margin: 0 25px 0 0;
padding: 0;
}
ul.navList li {
list-style: none;
float: left;
padding: 5px 6px;
text-transform: uppercase;
}
ul.subNavList li {
list-style: none;
float: left;
}
.topNav a:link, .topNav a:active, .topNav a:visited, .bottomNav a:link, .bottomNav a:active, .bottomNav a:visited {
color: #FFFFFF;
text-decoration: none;
text-transform: uppercase;
}
.topNav a:hover, .bottomNav a:hover {
text-decoration: none;
color: #bb7a2a;
text-transform: uppercase;
}
.navBarCell1Rev {
background-color: #F8981D;
color: #253441;
margin: auto 5px;
}
.skipNav {
position: absolute;
top: auto;
left: -9999px;
overflow: hidden;
}
/*
Page header and footer styles
*/
.header, .footer {
clear: both;
margin: 0 20px;
padding: 5px 0 0 0;
}
.indexHeader {
margin: 10px;
position: relative;
}
.indexHeader span {
margin-right: 15px;
}
.indexHeader h1 {
font-size: 13px;
}
.title {
color: #2c4557;
margin: 10px 0;
}
.subTitle {
margin: 5px 0 0 0;
}
.header ul {
margin: 0 0 15px 0;
padding: 0;
}
.footer ul {
margin: 20px 0 5px 0;
}
.header ul li, .footer ul li {
list-style: none;
font-size: 13px;
}
/*
Heading styles
*/
div.details ul.blockList ul.blockList ul.blockList li.blockList h4, div.details ul.blockList ul.blockList ul.blockListLast li.blockList h4 {
background-color: #dee3e9;
border: 1px solid #d0d9e0;
margin: 0 0 6px -8px;
padding: 7px 5px;
}
ul.blockList ul.blockList ul.blockList li.blockList h3 {
background-color: #dee3e9;
border: 1px solid #d0d9e0;
margin: 0 0 6px -8px;
padding: 7px 5px;
}
ul.blockList ul.blockList li.blockList h3 {
padding: 0;
margin: 15px 0;
}
ul.blockList li.blockList h2 {
padding: 0px 0 20px 0;
}
/*
Page layout container styles
*/
.contentContainer, .sourceContainer, .classUseContainer, .serializedFormContainer, .constantValuesContainer {
clear: both;
padding: 10px 20px;
position: relative;
}
.indexContainer {
margin: 10px;
position: relative;
font-size: 12px;
}
.indexContainer h2 {
font-size: 13px;
padding: 0 0 3px 0;
}
.indexContainer ul {
margin: 0;
padding: 0;
}
.indexContainer ul li {
list-style: none;
padding-top: 2px;
}
.contentContainer .description dl dt, .contentContainer .details dl dt, .serializedFormContainer dl dt {
font-size: 12px;
font-weight: bold;
margin: 10px 0 0 0;
color: #4E4E4E;
}
.contentContainer .description dl dd, .contentContainer .details dl dd, .serializedFormContainer dl dd {
margin: 5px 0 10px 0px;
font-size: 14px;
font-family: 'DejaVu Sans Mono', monospace;
}
.serializedFormContainer dl.nameValue dt {
margin-left: 1px;
font-size: 1.1em;
display: inline;
font-weight: bold;
}
.serializedFormContainer dl.nameValue dd {
margin: 0 0 0 1px;
font-size: 1.1em;
display: inline;
}
/*
List styles
*/
ul.horizontal li {
display: inline;
font-size: 0.9em;
}
ul.inheritance {
margin: 0;
padding: 0;
}
ul.inheritance li {
display: inline;
list-style: none;
}
ul.inheritance li ul.inheritance {
margin-left: 15px;
padding-left: 15px;
padding-top: 1px;
}
ul.blockList, ul.blockListLast {
margin: 10px 0 10px 0;
padding: 0;
}
ul.blockList li.blockList, ul.blockListLast li.blockList {
list-style: none;
margin-bottom: 15px;
line-height: 1.4;
}
ul.blockList ul.blockList li.blockList, ul.blockList ul.blockListLast li.blockList {
padding: 0px 20px 5px 10px;
border: 1px solid #ededed;
background-color: #f8f8f8;
}
ul.blockList ul.blockList ul.blockList li.blockList, ul.blockList ul.blockList ul.blockListLast li.blockList {
padding: 0 0 5px 8px;
background-color: #ffffff;
border: none;
}
ul.blockList ul.blockList ul.blockList ul.blockList li.blockList {
margin-left: 0;
padding-left: 0;
padding-bottom: 15px;
border: none;
}
ul.blockList ul.blockList ul.blockList ul.blockList li.blockListLast {
list-style: none;
border-bottom: none;
padding-bottom: 0;
}
table tr td dl, table tr td dl dt, table tr td dl dd {
margin-top: 0;
margin-bottom: 1px;
}
/*
Table styles
*/
.overviewSummary, .memberSummary, .typeSummary, .useSummary, .constantsSummary, .deprecatedSummary {
width: 100%;
border-left: 1px solid #EEE;
border-right: 1px solid #EEE;
border-bottom: 1px solid #EEE;
}
.overviewSummary, .memberSummary {
padding: 0px;
}
.overviewSummary caption, .memberSummary caption, .typeSummary caption,
.useSummary caption, .constantsSummary caption, .deprecatedSummary caption {
position: relative;
text-align: left;
background-repeat: no-repeat;
color: #253441;
font-weight: bold;
clear: none;
overflow: hidden;
padding: 0px;
padding-top: 10px;
padding-left: 1px;
margin: 0px;
white-space: pre;
}
.overviewSummary caption a:link, .memberSummary caption a:link, .typeSummary caption a:link,
.useSummary caption a:link, .constantsSummary caption a:link, .deprecatedSummary caption a:link,
.overviewSummary caption a:hover, .memberSummary caption a:hover, .typeSummary caption a:hover,
.useSummary caption a:hover, .constantsSummary caption a:hover, .deprecatedSummary caption a:hover,
.overviewSummary caption a:active, .memberSummary caption a:active, .typeSummary caption a:active,
.useSummary caption a:active, .constantsSummary caption a:active, .deprecatedSummary caption a:active,
.overviewSummary caption a:visited, .memberSummary caption a:visited, .typeSummary caption a:visited,
.useSummary caption a:visited, .constantsSummary caption a:visited, .deprecatedSummary caption a:visited {
color: #FFFFFF;
}
.overviewSummary caption span, .memberSummary caption span, .typeSummary caption span,
.useSummary caption span, .constantsSummary caption span, .deprecatedSummary caption span {
white-space: nowrap;
padding-top: 5px;
padding-left: 12px;
padding-right: 12px;
padding-bottom: 7px;
display: inline-block;
float: left;
background-color: #F8981D;
border: none;
height: 16px;
}
.memberSummary caption span.activeTableTab span {
white-space: nowrap;
padding-top: 5px;
padding-left: 12px;
padding-right: 12px;
margin-right: 3px;
display: inline-block;
float: left;
background-color: #F8981D;
height: 16px;
}
.memberSummary caption span.tableTab span {
white-space: nowrap;
padding-top: 5px;
padding-left: 12px;
padding-right: 12px;
margin-right: 3px;
display: inline-block;
float: left;
background-color: #4D7A97;
height: 16px;
}
.memberSummary caption span.tableTab, .memberSummary caption span.activeTableTab {
padding-top: 0px;
padding-left: 0px;
padding-right: 0px;
background-image: none;
float: none;
display: inline;
}
.overviewSummary .tabEnd, .memberSummary .tabEnd, .typeSummary .tabEnd,
.useSummary .tabEnd, .constantsSummary .tabEnd, .deprecatedSummary .tabEnd {
display: none;
width: 5px;
position: relative;
float: left;
background-color: #F8981D;
}
.memberSummary .activeTableTab .tabEnd {
display: none;
width: 5px;
margin-right: 3px;
position: relative;
float: left;
background-color: #F8981D;
}
.memberSummary .tableTab .tabEnd {
display: none;
width: 5px;
margin-right: 3px;
position: relative;
background-color: #4D7A97;
float: left;
}
.overviewSummary td, .memberSummary td, .typeSummary td,
.useSummary td, .constantsSummary td, .deprecatedSummary td {
text-align: left;
padding: 0px 0px 12px 10px;
width: 100%;
}
th.colOne, th.colFirst, th.colLast, .useSummary th, .constantsSummary th,
td.colOne, td.colFirst, td.colLast, .useSummary td, .constantsSummary td {
vertical-align: top;
padding-right: 0px;
padding-top: 8px;
padding-bottom: 3px;
}
th.colFirst, th.colLast, th.colOne, .constantsSummary th {
background: #dee3e9;
text-align: left;
padding: 8px 3px 3px 7px;
}
td.colFirst, th.colFirst {
white-space: nowrap;
font-size: 13px;
}
td.colLast, th.colLast {
font-size: 13px;
}
td.colOne, th.colOne {
font-size: 13px;
}
.overviewSummary td.colFirst, .overviewSummary th.colFirst,
.overviewSummary td.colOne, .overviewSummary th.colOne,
.memberSummary td.colFirst, .memberSummary th.colFirst,
.memberSummary td.colOne, .memberSummary th.colOne,
.typeSummary td.colFirst {
width: 25%;
vertical-align: top;
}
td.colOne a:link, td.colOne a:active, td.colOne a:visited, td.colOne a:hover, td.colFirst a:link, td.colFirst a:active, td.colFirst a:visited, td.colFirst a:hover, td.colLast a:link, td.colLast a:active, td.colLast a:visited, td.colLast a:hover, .constantValuesContainer td a:link, .constantValuesContainer td a:active, .constantValuesContainer td a:visited, .constantValuesContainer td a:hover {
font-weight: bold;
}
.tableSubHeadingColor {
background-color: #EEEEFF;
}
.altColor {
background-color: #FFFFFF;
}
.rowColor {
background-color: #EEEEEF;
}
/*
Content styles
*/
.description pre {
margin-top: 0;
}
.deprecatedContent {
margin: 0;
padding: 10px 0;
}
.docSummary {
padding: 0;
}
ul.blockList ul.blockList ul.blockList li.blockList h3 {
font-style: normal;
}
div.block {
font-size: 14px;
font-family: 'DejaVu Serif', Georgia, "Times New Roman", Times, serif;
}
td.colLast div {
padding-top: 0px;
}
td.colLast a {
padding-bottom: 3px;
}
/*
Formatting effect styles
*/
.sourceLineNo {
color: green;
padding: 0 30px 0 0;
}
h1.hidden {
visibility: hidden;
overflow: hidden;
font-size: 10px;
}
.block {
display: block;
margin: 3px 10px 2px 0px;
color: #474747;
}
.deprecatedLabel, .descfrmTypeLabel, .memberNameLabel, .memberNameLink,
.overrideSpecifyLabel, .packageHierarchyLabel, .paramLabel, .returnLabel,
.seeLabel, .simpleTagLabel, .throwsLabel, .typeNameLabel, .typeNameLink {
font-weight: bold;
}
.deprecationComment, .emphasizedPhrase, .interfaceName {
font-style: italic;
}
div.block div.block span.deprecationComment, div.block div.block span.emphasizedPhrase,
div.block div.block span.interfaceName {
font-style: normal;
}
div.contentContainer ul.blockList li.blockList h2 {
padding-bottom: 0px;
}
/*
Spring
*/
pre.code {
background-color: #F8F8F8;
border: 1px solid #CCCCCC;
border-radius: 3px 3px 3px 3px;
overflow: auto;
padding: 10px;
margin: 4px 20px 2px 0px;
}
pre.code code, pre.code code * {
font-size: 1em;
}
pre.code code, pre.code code * {
padding: 0 !important;
margin: 0 !important;
}
================================================
FILE: mvnw
================================================
#!/bin/sh
# ----------------------------------------------------------------------------
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
# ----------------------------------------------------------------------------
# ----------------------------------------------------------------------------
# Apache Maven Wrapper startup batch script, version 3.2.0
#
# Required ENV vars:
# ------------------
# JAVA_HOME - location of a JDK home dir
#
# Optional ENV vars
# -----------------
# MAVEN_OPTS - parameters passed to the Java VM when running Maven
# e.g. to debug Maven itself, use
# set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000
# MAVEN_SKIP_RC - flag to disable loading of mavenrc files
# ----------------------------------------------------------------------------
if [ -z "$MAVEN_SKIP_RC" ] ; then
if [ -f /usr/local/etc/mavenrc ] ; then
. /usr/local/etc/mavenrc
fi
if [ -f /etc/mavenrc ] ; then
. /etc/mavenrc
fi
if [ -f "$HOME/.mavenrc" ] ; then
. "$HOME/.mavenrc"
fi
fi
# OS specific support. $var _must_ be set to either true or false.
cygwin=false;
darwin=false;
mingw=false
case "$(uname)" in
CYGWIN*) cygwin=true ;;
MINGW*) mingw=true;;
Darwin*) darwin=true
# Use /usr/libexec/java_home if available, otherwise fall back to /Library/Java/Home
# See https://developer.apple.com/library/mac/qa/qa1170/_index.html
if [ -z "$JAVA_HOME" ]; then
if [ -x "/usr/libexec/java_home" ]; then
JAVA_HOME="$(/usr/libexec/java_home)"; export JAVA_HOME
else
JAVA_HOME="/Library/Java/Home"; export JAVA_HOME
fi
fi
;;
esac
if [ -z "$JAVA_HOME" ] ; then
if [ -r /etc/gentoo-release ] ; then
JAVA_HOME=$(java-config --jre-home)
fi
fi
# For Cygwin, ensure paths are in UNIX format before anything is touched
if $cygwin ; then
[ -n "$JAVA_HOME" ] &&
JAVA_HOME=$(cygpath --unix "$JAVA_HOME")
[ -n "$CLASSPATH" ] &&
CLASSPATH=$(cygpath --path --unix "$CLASSPATH")
fi
# For Mingw, ensure paths are in UNIX format before anything is touched
if $mingw ; then
[ -n "$JAVA_HOME" ] && [ -d "$JAVA_HOME" ] &&
JAVA_HOME="$(cd "$JAVA_HOME" || (echo "cannot cd into $JAVA_HOME."; exit 1); pwd)"
fi
if [ -z "$JAVA_HOME" ]; then
javaExecutable="$(which javac)"
if [ -n "$javaExecutable" ] && ! [ "$(expr "\"$javaExecutable\"" : '\([^ ]*\)')" = "no" ]; then
# readlink(1) is not available as standard on Solaris 10.
readLink=$(which readlink)
if [ ! "$(expr "$readLink" : '\([^ ]*\)')" = "no" ]; then
if $darwin ; then
javaHome="$(dirname "\"$javaExecutable\"")"
javaExecutable="$(cd "\"$javaHome\"" && pwd -P)/javac"
else
javaExecutable="$(readlink -f "\"$javaExecutable\"")"
fi
javaHome="$(dirname "\"$javaExecutable\"")"
javaHome=$(expr "$javaHome" : '\(.*\)/bin')
JAVA_HOME="$javaHome"
export JAVA_HOME
fi
fi
fi
if [ -z "$JAVACMD" ] ; then
if [ -n "$JAVA_HOME" ] ; then
if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
# IBM's JDK on AIX uses strange locations for the executables
JAVACMD="$JAVA_HOME/jre/sh/java"
else
JAVACMD="$JAVA_HOME/bin/java"
fi
else
JAVACMD="$(\unset -f command 2>/dev/null; \command -v java)"
fi
fi
if [ ! -x "$JAVACMD" ] ; then
echo "Error: JAVA_HOME is not defined correctly." >&2
echo " We cannot execute $JAVACMD" >&2
exit 1
fi
if [ -z "$JAVA_HOME" ] ; then
echo "Warning: JAVA_HOME environment variable is not set."
fi
# traverses directory structure from process work directory to filesystem root
# first directory with .mvn subdirectory is considered project base directory
find_maven_basedir() {
if [ -z "$1" ]
then
echo "Path not specified to find_maven_basedir"
return 1
fi
basedir="$1"
wdir="$1"
while [ "$wdir" != '/' ] ; do
if [ -d "$wdir"/.mvn ] ; then
basedir=$wdir
break
fi
# workaround for JBEAP-8937 (on Solaris 10/Sparc)
if [ -d "${wdir}" ]; then
wdir=$(cd "$wdir/.." || exit 1; pwd)
fi
# end of workaround
done
printf '%s' "$(cd "$basedir" || exit 1; pwd)"
}
# concatenates all lines of a file
concat_lines() {
if [ -f "$1" ]; then
# Remove \r in case we run on Windows within Git Bash
# and check out the repository with auto CRLF management
# enabled. Otherwise, we may read lines that are delimited with
# \r\n and produce $'-Xarg\r' rather than -Xarg due to word
# splitting rules.
tr -s '\r\n' ' ' < "$1"
fi
}
log() {
if [ "$MVNW_VERBOSE" = true ]; then
printf '%s\n' "$1"
fi
}
BASE_DIR=$(find_maven_basedir "$(dirname "$0")")
if [ -z "$BASE_DIR" ]; then
exit 1;
fi
MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:-"$BASE_DIR"}; export MAVEN_PROJECTBASEDIR
log "$MAVEN_PROJECTBASEDIR"
##########################################################################################
# Extension to allow automatically downloading the maven-wrapper.jar from Maven-central
# This allows using the maven wrapper in projects that prohibit checking in binary data.
##########################################################################################
wrapperJarPath="$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar"
if [ -r "$wrapperJarPath" ]; then
log "Found $wrapperJarPath"
else
log "Couldn't find $wrapperJarPath, downloading it ..."
if [ -n "$MVNW_REPOURL" ]; then
wrapperUrl="$MVNW_REPOURL/org/apache/maven/wrapper/maven-wrapper/3.2.0/maven-wrapper-3.2.0.jar"
else
wrapperUrl="https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.2.0/maven-wrapper-3.2.0.jar"
fi
while IFS="=" read -r key value; do
# Remove '\r' from value to allow usage on windows as IFS does not consider '\r' as a separator ( considers space, tab, new line ('\n'), and custom '=' )
safeValue=$(echo "$value" | tr -d '\r')
case "$key" in (wrapperUrl) wrapperUrl="$safeValue"; break ;;
esac
done < "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.properties"
log "Downloading from: $wrapperUrl"
if $cygwin; then
wrapperJarPath=$(cygpath --path --windows "$wrapperJarPath")
fi
if command -v wget > /dev/null; then
log "Found wget ... using wget"
[ "$MVNW_VERBOSE" = true ] && QUIET="" || QUIET="--quiet"
if [ -z "$MVNW_USERNAME" ] || [ -z "$MVNW_PASSWORD" ]; then
wget $QUIET "$wrapperUrl" -O "$wrapperJarPath" || rm -f "$wrapperJarPath"
else
wget $QUIET --http-user="$MVNW_USERNAME" --http-password="$MVNW_PASSWORD" "$wrapperUrl" -O "$wrapperJarPath" || rm -f "$wrapperJarPath"
fi
elif command -v curl > /dev/null; then
log "Found curl ... using curl"
[ "$MVNW_VERBOSE" = true ] && QUIET="" || QUIET="--silent"
if [ -z "$MVNW_USERNAME" ] || [ -z "$MVNW_PASSWORD" ]; then
curl $QUIET -o "$wrapperJarPath" "$wrapperUrl" -f -L || rm -f "$wrapperJarPath"
else
curl $QUIET --user "$MVNW_USERNAME:$MVNW_PASSWORD" -o "$wrapperJarPath" "$wrapperUrl" -f -L || rm -f "$wrapperJarPath"
fi
else
log "Falling back to using Java to download"
javaSource="$MAVEN_PROJECTBASEDIR/.mvn/wrapper/MavenWrapperDownloader.java"
javaClass="$MAVEN_PROJECTBASEDIR/.mvn/wrapper/MavenWrapperDownloader.class"
# For Cygwin, switch paths to Windows format before running javac
if $cygwin; then
javaSource=$(cygpath --path --windows "$javaSource")
javaClass=$(cygpath --path --windows "$javaClass")
fi
if [ -e "$javaSource" ]; then
if [ ! -e "$javaClass" ]; then
log " - Compiling MavenWrapperDownloader.java ..."
("$JAVA_HOME/bin/javac" "$javaSource")
fi
if [ -e "$javaClass" ]; then
log " - Running MavenWrapperDownloader.java ..."
("$JAVA_HOME/bin/java" -cp .mvn/wrapper MavenWrapperDownloader "$wrapperUrl" "$wrapperJarPath") || rm -f "$wrapperJarPath"
fi
fi
fi
fi
##########################################################################################
# End of extension
##########################################################################################
# If specified, validate the SHA-256 sum of the Maven wrapper jar file
wrapperSha256Sum=""
while IFS="=" read -r key value; do
case "$key" in (wrapperSha256Sum) wrapperSha256Sum=$value; break ;;
esac
done < "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.properties"
if [ -n "$wrapperSha256Sum" ]; then
wrapperSha256Result=false
if command -v sha256sum > /dev/null; then
if echo "$wrapperSha256Sum $wrapperJarPath" | sha256sum -c > /dev/null 2>&1; then
wrapperSha256Result=true
fi
elif command -v shasum > /dev/null; then
if echo "$wrapperSha256Sum $wrapperJarPath" | shasum -a 256 -c > /dev/null 2>&1; then
wrapperSha256Result=true
fi
else
echo "Checksum validation was requested but neither 'sha256sum' or 'shasum' are available."
echo "Please install either command, or disable validation by removing 'wrapperSha256Sum' from your maven-wrapper.properties."
exit 1
fi
if [ $wrapperSha256Result = false ]; then
echo "Error: Failed to validate Maven wrapper SHA-256, your Maven wrapper might be compromised." >&2
echo "Investigate or delete $wrapperJarPath to attempt a clean download." >&2
echo "If you updated your Maven version, you need to update the specified wrapperSha256Sum property." >&2
exit 1
fi
fi
MAVEN_OPTS="$(concat_lines "$MAVEN_PROJECTBASEDIR/.mvn/jvm.config") $MAVEN_OPTS"
# For Cygwin, switch paths to Windows format before running java
if $cygwin; then
[ -n "$JAVA_HOME" ] &&
JAVA_HOME=$(cygpath --path --windows "$JAVA_HOME")
[ -n "$CLASSPATH" ] &&
CLASSPATH=$(cygpath --path --windows "$CLASSPATH")
[ -n "$MAVEN_PROJECTBASEDIR" ] &&
MAVEN_PROJECTBASEDIR=$(cygpath --path --windows "$MAVEN_PROJECTBASEDIR")
fi
# Provide a "standardized" way to retrieve the CLI args that will
# work with both Windows and non-Windows executions.
MAVEN_CMD_LINE_ARGS="$MAVEN_CONFIG $*"
export MAVEN_CMD_LINE_ARGS
WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain
# shellcheck disable=SC2086 # safe args
exec "$JAVACMD" \
$MAVEN_OPTS \
$MAVEN_DEBUG_OPTS \
-classpath "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar" \
"-Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR}" \
${WRAPPER_LAUNCHER} $MAVEN_CONFIG "$@"
================================================
FILE: mvnw.cmd
================================================
@REM ----------------------------------------------------------------------------
@REM Licensed to the Apache Software Foundation (ASF) under one
@REM or more contributor license agreements. See the NOTICE file
@REM distributed with this work for additional information
@REM regarding copyright ownership. The ASF licenses this file
@REM to you under the Apache License, Version 2.0 (the
@REM "License"); you may not use this file except in compliance
@REM with the License. You may obtain a copy of the License at
@REM
@REM http://www.apache.org/licenses/LICENSE-2.0
@REM
@REM Unless required by applicable law or agreed to in writing,
@REM software distributed under the License is distributed on an
@REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
@REM KIND, either express or implied. See the License for the
@REM specific language governing permissions and limitations
@REM under the License.
@REM ----------------------------------------------------------------------------
@REM ----------------------------------------------------------------------------
@REM Apache Maven Wrapper startup batch script, version 3.2.0
@REM
@REM Required ENV vars:
@REM JAVA_HOME - location of a JDK home dir
@REM
@REM Optional ENV vars
@REM MAVEN_BATCH_ECHO - set to 'on' to enable the echoing of the batch commands
@REM MAVEN_BATCH_PAUSE - set to 'on' to wait for a keystroke before ending
@REM MAVEN_OPTS - parameters passed to the Java VM when running Maven
@REM e.g. to debug Maven itself, use
@REM set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000
@REM MAVEN_SKIP_RC - flag to disable loading of mavenrc files
@REM ----------------------------------------------------------------------------
@REM Begin all REM lines with '@' in case MAVEN_BATCH_ECHO is 'on'
@echo off
@REM set title of command window
title %0
@REM enable echoing by setting MAVEN_BATCH_ECHO to 'on'
@if "%MAVEN_BATCH_ECHO%" == "on" echo %MAVEN_BATCH_ECHO%
@REM set %HOME% to equivalent of $HOME
if "%HOME%" == "" (set "HOME=%HOMEDRIVE%%HOMEPATH%")
@REM Execute a user defined script before this one
if not "%MAVEN_SKIP_RC%" == "" goto skipRcPre
@REM check for pre script, once with legacy .bat ending and once with .cmd ending
if exist "%USERPROFILE%\mavenrc_pre.bat" call "%USERPROFILE%\mavenrc_pre.bat" %*
if exist "%USERPROFILE%\mavenrc_pre.cmd" call "%USERPROFILE%\mavenrc_pre.cmd" %*
:skipRcPre
@setlocal
set ERROR_CODE=0
@REM To isolate internal variables from possible post scripts, we use another setlocal
@setlocal
@REM ==== START VALIDATION ====
if not "%JAVA_HOME%" == "" goto OkJHome
echo.
echo Error: JAVA_HOME not found in your environment. >&2
echo Please set the JAVA_HOME variable in your environment to match the >&2
echo location of your Java installation. >&2
echo.
goto error
:OkJHome
if exist "%JAVA_HOME%\bin\java.exe" goto init
echo.
echo Error: JAVA_HOME is set to an invalid directory. >&2
echo JAVA_HOME = "%JAVA_HOME%" >&2
echo Please set the JAVA_HOME variable in your environment to match the >&2
echo location of your Java installation. >&2
echo.
goto error
@REM ==== END VALIDATION ====
:init
@REM Find the project base dir, i.e. the directory that contains the folder ".mvn".
@REM Fallback to current working directory if not found.
set MAVEN_PROJECTBASEDIR=%MAVEN_BASEDIR%
IF NOT "%MAVEN_PROJECTBASEDIR%"=="" goto endDetectBaseDir
set EXEC_DIR=%CD%
set WDIR=%EXEC_DIR%
:findBaseDir
IF EXIST "%WDIR%"\.mvn goto baseDirFound
cd ..
IF "%WDIR%"=="%CD%" goto baseDirNotFound
set WDIR=%CD%
goto findBaseDir
:baseDirFound
set MAVEN_PROJECTBASEDIR=%WDIR%
cd "%EXEC_DIR%"
goto endDetectBaseDir
:baseDirNotFound
set MAVEN_PROJECTBASEDIR=%EXEC_DIR%
cd "%EXEC_DIR%"
:endDetectBaseDir
IF NOT EXIST "%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config" goto endReadAdditionalConfig
@setlocal EnableExtensions EnableDelayedExpansion
for /F "usebackq delims=" %%a in ("%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config") do set JVM_CONFIG_MAVEN_PROPS=!JVM_CONFIG_MAVEN_PROPS! %%a
@endlocal & set JVM_CONFIG_MAVEN_PROPS=%JVM_CONFIG_MAVEN_PROPS%
:endReadAdditionalConfig
SET MAVEN_JAVA_EXE="%JAVA_HOME%\bin\java.exe"
set WRAPPER_JAR="%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.jar"
set WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain
set WRAPPER_URL="https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.2.0/maven-wrapper-3.2.0.jar"
FOR /F "usebackq tokens=1,2 delims==" %%A IN ("%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.properties") DO (
IF "%%A"=="wrapperUrl" SET WRAPPER_URL=%%B
)
@REM Extension to allow automatically downloading the maven-wrapper.jar from Maven-central
@REM This allows using the maven wrapper in projects that prohibit checking in binary data.
if exist %WRAPPER_JAR% (
if "%MVNW_VERBOSE%" == "true" (
echo Found %WRAPPER_JAR%
)
) else (
if not "%MVNW_REPOURL%" == "" (
SET WRAPPER_URL="%MVNW_REPOURL%/org/apache/maven/wrapper/maven-wrapper/3.2.0/maven-wrapper-3.2.0.jar"
)
if "%MVNW_VERBOSE%" == "true" (
echo Couldn't find %WRAPPER_JAR%, downloading it ...
echo Downloading from: %WRAPPER_URL%
)
powershell -Command "&{"^
"$webclient = new-object System.Net.WebClient;"^
"if (-not ([string]::IsNullOrEmpty('%MVNW_USERNAME%') -and [string]::IsNullOrEmpty('%MVNW_PASSWORD%'))) {"^
"$webclient.Credentials = new-object System.Net.NetworkCredential('%MVNW_USERNAME%', '%MVNW_PASSWORD%');"^
"}"^
"[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; $webclient.DownloadFile('%WRAPPER_URL%', '%WRAPPER_JAR%')"^
"}"
if "%MVNW_VERBOSE%" == "true" (
echo Finished downloading %WRAPPER_JAR%
)
)
@REM End of extension
@REM If specified, validate the SHA-256 sum of the Maven wrapper jar file
SET WRAPPER_SHA_256_SUM=""
FOR /F "usebackq tokens=1,2 delims==" %%A IN ("%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.properties") DO (
IF "%%A"=="wrapperSha256Sum" SET WRAPPER_SHA_256_SUM=%%B
)
IF NOT %WRAPPER_SHA_256_SUM%=="" (
powershell -Command "&{"^
"$hash = (Get-FileHash \"%WRAPPER_JAR%\" -Algorithm SHA256).Hash.ToLower();"^
"If('%WRAPPER_SHA_256_SUM%' -ne $hash){"^
" Write-Output 'Error: Failed to validate Maven wrapper SHA-256, your Maven wrapper might be compromised.';"^
" Write-Output 'Investigate or delete %WRAPPER_JAR% to attempt a clean download.';"^
" Write-Output 'If you updated your Maven version, you need to update the specified wrapperSha256Sum property.';"^
" exit 1;"^
"}"^
"}"
if ERRORLEVEL 1 goto error
)
@REM Provide a "standardized" way to retrieve the CLI args that will
@REM work with both Windows and non-Windows executions.
set MAVEN_CMD_LINE_ARGS=%*
%MAVEN_JAVA_EXE% ^
%JVM_CONFIG_MAVEN_PROPS% ^
%MAVEN_OPTS% ^
%MAVEN_DEBUG_OPTS% ^
-classpath %WRAPPER_JAR% ^
"-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" ^
%WRAPPER_LAUNCHER% %MAVEN_CONFIG% %*
if ERRORLEVEL 1 goto error
goto end
:error
set ERROR_CODE=1
:end
@endlocal & set ERROR_CODE=%ERROR_CODE%
if not "%MAVEN_SKIP_RC%"=="" goto skipRcPost
@REM check for post script, once with legacy .bat ending and once with .cmd ending
if exist "%USERPROFILE%\mavenrc_post.bat" call "%USERPROFILE%\mavenrc_post.bat"
if exist "%USERPROFILE%\mavenrc_post.cmd" call "%USERPROFILE%\mavenrc_post.cmd"
:skipRcPost
@REM pause the script if MAVEN_BATCH_PAUSE is set to 'on'
if "%MAVEN_BATCH_PAUSE%"=="on" pause
if "%MAVEN_TERMINATE_CMD%"=="on" exit %ERROR_CODE%
cmd /C exit /B %ERROR_CODE%
================================================
FILE: pom.xml
================================================
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-build</artifactId>
<version>5.0.2-SNAPSHOT</version>
<relativePath />
</parent>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-task-parent</artifactId>
<version>5.0.2-SNAPSHOT</version>
<packaging>pom</packaging>
<name>Spring Cloud Task Build</name>
<description>Spring Cloud Task Build</description>
<url>https://cloud.spring.io/spring-cloud-task/</url>
<organization>
<name>VMware, Inc.</name>
<url>https://www.spring.io</url>
</organization>
<licenses>
<license>
<name>Apache License, Version 2.0</name>
<url>https://www.apache.org/licenses/LICENSE-2.0</url>
</license>
</licenses>
<scm>
<url>https://github.com/spring-cloud/spring-cloud-task</url>
</scm>
<developers>
<developer>
<id>mminella</id>
<name>Michael Minella</name>
<email>mminella at vmware.com</email>
<organization>VMware, Inc.</organization>
<organizationUrl>https://www.spring.io</organizationUrl>
<roles>
<role>Project Lead</role>
</roles>
</developer>
<developer>
<id>cppwfs</id>
<name>Glenn Renfro</name>
<email>grenfro at vmware</email>
<organization>VMware, Inc.</organization>
<organizationUrl>https://www.spring.io</organizationUrl>
</developer>
</developers>
<prerequisites>
<maven>3.2.1</maven>
</prerequisites>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-task-dependencies</artifactId>
<version>${project.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-stream-rabbit</artifactId>
<version>${spring-cloud-stream-binder-rabbit.version}</version>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-stream</artifactId>
<version>${spring-cloud-stream.version}</version>
</dependency>
</dependencies>
</dependencyManagement>
<distributionManagement>
<site>
<id>spring-docs</id>
<url>https://docs.spring.io/spring-cloud-release/docs/${pom.version}/reference/html/</url>
</site>
<downloadUrl>https://github.com/spring-cloud/spring-cloud-release</downloadUrl>
</distributionManagement>
<modules>
<module>spring-cloud-task-dependencies</module>
<module>spring-cloud-task-core</module>
<module>spring-cloud-task-batch</module>
<module>spring-cloud-task-stream</module>
<module>spring-cloud-starter-task</module>
<module>spring-cloud-task-samples</module>
<module>spring-cloud-task-integration-tests</module>
<module>docs</module>
<module>spring-cloud-starter-single-step-batch-job</module>
</modules>
<properties>
<spring-cloud-stream.version>5.0.2-SNAPSHOT</spring-cloud-stream.version>
<spring-cloud-stream-binder-rabbit.version>${spring-cloud-stream.version}
</spring-cloud-stream-binder-rabbit.version>
<jakarta-ee-api.version>11.0.0</jakarta-ee-api.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<sonar.jacoco.reportPath>
${project.build.directory}/coverage-reports/jacoco-ut.exec
</sonar.jacoco.reportPath>
<maven-checkstyle-plugin.failsOnError>true</maven-checkstyle-plugin.failsOnError>
<maven-checkstyle-plugin.failsOnViolation>true
</maven-checkstyle-plugin.failsOnViolation>
<maven-checkstyle-plugin.includeTestSourceDirectory>true
</maven-checkstyle-plugin.includeTestSourceDirectory>
<java.version>17</java.version>
<spring-javaformat-maven-plugin.version>0.0.40</spring-javaformat-maven-plugin.version>
</properties>
<build>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>flatten-maven-plugin</artifactId>
</plugin>
</plugins>
</pluginManagement>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>flatten-maven-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<includes>
<include>**/*Tests.java</include>
</includes>
<argLine>${surefireArgLine}</argLine>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>17</source>
<target>17</target>
<testSource>17</testSource>
<testTarget>17</testTarget>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<configuration>
<source>17</source>
<doclint>all,-missing</doclint>
</configuration>
<executions>
<execution>
<id>attach-javadocs</id>
<phase>prepare-package</phase>
<goals>
<goal>jar</goal>
</goals>
</execution>
<execution>
<id>aggregate</id>
<phase>prepare-package</phase>
<goals>
<goal>aggregate</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
<executions>
<execution>
<id>attach-sources</id>
<goals>
<goal>jar</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<executions>
<!--
Prepares the property pointing to the JaCoCo runtime agent which
is passed as VM argument when Maven the Surefire plugin is executed.
-->
<execution>
<id>pre-unit-test</id>
<goals>
<goal>prepare-agent</goal>
</goals>
<configuration>
<!-- Sets the path to the file which contains the execution data. -->
<destFile>
${project.build.directory}/coverage-reports/jacoco-ut.exec
</destFile>
<!--
Sets the name of the property containing the settings
for JaCoCo runtime agent.
-->
<propertyName>surefireArgLine</propertyName>
</configuration>
</execution>
<!--
Ensures that the code coverage report for unit tests is created after
unit tests have been run.
-->
<execution>
<id>post-unit-test</id>
<phase>test</phase>
<goals>
<goal>report</goal>
</goals>
<configuration>
<!-- Sets the path to the file which contains the execution data. -->
<dataFile>
${project.build.directory}/coverage-reports/jacoco-ut.exec
</dataFile>
<!-- Sets the output directory for the code coverage report. -->
<outputDirectory>
${project.reporting.outputDirectory}/jacoco-ut
</outputDirectory>
</configuration>
</execution>
</executions>
<version>0.8.13</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-checkstyle-plugin</artifactId>
</plugin>
<plugin>
<groupId>io.spring.javaformat</groupId>
<artifactId>spring-javaformat-maven-plugin</artifactId>
<version>${spring-javaformat-maven-plugin.version}</version>
<executions>
<execution>
<phase>validate</phase>
<inherited>true</inherited>
<goals>
<goal>validate</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
<reporting>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-checkstyle-plugin</artifactId>
</plugin>
</plugins>
</reporting>
<profiles>
<profile>
<id>central</id>
<build>
<plugins>
<plugin>
<groupId>org.sonatype.central</groupId>
<artifactId>central-publishing-maven-plugin</artifactId>
<configuration>
<excludeArtifacts>
<artifact>spring-cloud-task-integration-tests</artifact>
</excludeArtifacts>
</configuration>
</plugin>
</plugins>
</build>
</profile>
<profile>
<id>spring</id>
<repositories>
<repository>
<id>spring-snapshots</id>
<name>Spring Snapshots</name>
<url>https://repo.spring.io/snapshot</url>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
<repository>
<id>spring-milestones</id>
<name>Spring Milestones</name>
<url>https://repo.spring.io/milestone</url>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
<repository>
<id>spring-releases</id>
<name>Spring Releases</name>
<url>https://repo.spring.io/release</url>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>spring-snapshots</id>
<name>Spring Snapshots</name>
<url>https://repo.spring.io/snapshot</url>
<snapshots>
<enabled>true</enabled>
</snapshots>
</pluginRepository>
<pluginRepository>
<id>spring-milestones</id>
<name>Spring Milestones</name>
<url>https://repo.spring.io/milestone</url>
<snapshots>
<enabled>false</enabled>
</snapshots>
</pluginRepository>
<pluginRepository>
<id>spring-releases</id>
<name>Spring Releases</name>
<url>https://repo.spring.io/release</url>
<snapshots>
<enabled>false</enabled>
</snapshots>
</pluginRepository>
</pluginRepositories>
</profile>
<profile>
<id>withoutDockerTests</id>
<build>
<plugins>
<plugin>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<excludedGroups>DockerRequired</excludedGroups>
</configuration>
</plugin>
</plugins>
</build>
</profile>
</profiles>
</project>
================================================
FILE: spring-cloud-starter-single-step-batch-job/pom.xml
================================================
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<artifactId>spring-cloud-task-parent</artifactId>
<groupId>org.springframework.cloud</groupId>
<version>5.0.2-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>spring-cloud-starter-single-step-batch-job</artifactId>
<name>spring-cloud-starter-single-step-batch-job</name>
<properties>
<spring-cloud-commons.version>5.0.2-SNAPSHOT</spring-cloud-commons.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-task-core</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-jdbc</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-batch</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.batch</groupId>
<artifactId>spring-batch-infrastructure</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<optional>true</optional>
<version>${spring-boot.version}</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.batch</groupId>
<artifactId>spring-batch-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-amqp</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.amqp</groupId>
<artifactId>spring-rabbit</artifactId>
</dependency>
<dependency>
<groupId>org.testcontainers</groupId>
<artifactId>testcontainers</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.testcontainers</groupId>
<artifactId>testcontainers-rabbitmq</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>tools.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
</dependency>
<dependency>
<groupId>tools.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-engine</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-params</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework.kafka</groupId>
<artifactId>spring-kafka-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-kafka</artifactId>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-api</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.junit.platform</groupId>
<artifactId>junit-platform-launcher</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-test-support</artifactId>
<version>${spring-cloud-commons.version}</version>
<scope>test</scope>
</dependency>
</dependencies>
</project>
================================================
FILE: spring-cloud-starter-single-step-batch-job/src/main/java/org/springframework/cloud/task/batch/autoconfigure/RangeConverter.java
================================================
/*
* Copyright 2020-present 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.cloud.task.batch.autoconfigure;
import org.springframework.batch.infrastructure.item.file.transform.Range;
import org.springframework.core.convert.converter.Converter;
/**
* Converter for taking properties of format {@code start-end} or {@code start} (where
* start and end are both integers) and converting them into {@link Range} instances for
* configuring a
* {@link org.springframework.batch.infrastructure.item.file.FlatFileItemReader}.
*
* @author Michael Minella
* @since 2.3
*/
public class RangeConverter implements Converter<String, Range> {
@Override
public Range convert(String source) {
if (source == null) {
return null;
}
String[] columns = source.split("-");
if (columns.length == 1) {
int start = Integer.parseInt(columns[0]);
return new Range(start);
}
else if (columns.length == 2) {
int start = Integer.parseInt(columns[0]);
int end = Integer.parseInt(columns[1]);
return new Range(start, end);
}
else {
throw new IllegalArgumentException(String
.format("%s is in an illegal format. Ranges must be specified as startIndex-endIndex", source));
}
}
}
================================================
FILE: spring-cloud-starter-single-step-batch-job/src/main/java/org/springframework/cloud/task/batch/autoconfigure/SingleStepJobAutoConfiguration.java
================================================
/*
* Copyright 2019-present 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.cloud.task.batch.autoconfigure;
import java.util.Map;
import org.springframework.batch.core.job.Job;
import org.springframework.batch.core.job.builder.JobBuilder;
import org.springframework.batch.core.repository.JobRepository;
import org.springframework.batch.core.step.Step;
import org.springframework.batch.core.step.builder.SimpleStepBuilder;
import org.springframework.batch.core.step.builder.StepBuilder;
import org.springframework.batch.infrastructure.item.ItemProcessor;
import org.springframework.batch.infrastructure.item.ItemReader;
import org.springframework.batch.infrastructure.item.ItemWriter;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.autoconfigure.AutoConfiguration;
import org.springframework.boot.autoconfigure.AutoConfigureBefore;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
import org.springframework.boot.batch.autoconfigure.BatchAutoConfiguration;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.Bean;
import org.springframework.transaction.PlatformTransactionManager;
import org.springframework.util.Assert;
/**
* Autoconfiguration to create a single step Spring Batch Job.
*
* @author Michael Minella
* @since 2.3
*/
@AutoConfiguration
@EnableConfigurationProperties(SingleStepJobProperties.class)
@AutoConfigureBefore(BatchAutoConfiguration.class)
public class SingleStepJobAutoConfiguration {
private SingleStepJobProperties properties;
@Autowired
PlatformTransactionManager transactionManager;
@Autowired
JobRepository jobRepository;
@Autowired(required = false)
private ItemProcessor<Map<String, Object>, Map<String, Object>> itemProcessor;
public SingleStepJobAutoConfiguration(SingleStepJobProperties properties, ApplicationContext context) {
validateProperties(properties);
this.properties = properties;
}
private void validateProperties(SingleStepJobProperties properties) {
Assert.hasText(properties.getJobName(), "A job name is required");
Assert.hasText(properties.getStepName(), "A step name is required");
Assert.notNull(properties.getChunkSize(), "A chunk size is required");
Assert.isTrue(properties.getChunkSize() > 0, "A chunk size greater than zero is required");
}
@Bean
@ConditionalOnMissingBean
@ConditionalOnProperty(prefix = "spring.batch.job", name = "job-name")
public Job job(ItemReader<Map<String, Object>> itemReader, ItemWriter<Map<String, Object>> itemWriter) {
SimpleStepBuilder<Map<String, Object>, Map<String, Object>> stepBuilder = new StepBuilder(
this.properties.getStepName(), this.jobRepository)
.<Map<String, Object>, Map<String, Object>>chunk(this.properties.getChunkSize(), this.transactionManager)
.reader(itemReader);
stepBuilder.processor(this.itemProcessor);
Step step = stepBuilder.writer(itemWriter).build();
return new JobBuilder(this.properties.getJobName(), this.jobRepository).start(step).build();
}
}
================================================
FILE: spring-cloud-starter-single-step-batch-job/src/main/java/org/springframework/cloud/task/batch/autoconfigure/SingleStepJobProperties.java
================================================
/*
* Copyright 2019-present 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.cloud.task.batch.autoconfigure;
import org.springframework.boot.context.properties.ConfigurationProperties;
/**
* Properties to configure the step and job level properties for a single step job.
*
* @author Michael Minella
* @since 2.3
*/
@ConfigurationProperties(prefix = "spring.batch.job")
public class SingleStepJobProperties {
/**
* Name of the step in the single step job.
*/
private String stepName;
/**
* The number of items to process per transaction or chunk.
*/
private Integer chunkSize;
/**
* The name of the job.
*/
private String jobName;
/**
* Name of the step in the single step job.
* @return name
*/
public String getStepName() {
return stepName;
}
/**
* Set the name of the step.
* @param stepName name
*/
public void setStepName(String stepName) {
this.stepName = stepName;
}
/**
* The number of items to process per transaction/chunk.
* @return number of items
*/
public Integer getChunkSize() {
return chunkSize;
}
/**
* Set the number of items within a transaction/chunk.
* @param chunkSize number of items
*/
public void setChunkSize(Integer chunkSize) {
this.chunkSize = chunkSize;
}
/**
* The name of the job.
* @return name
*/
public String getJobName() {
return jobName;
}
/**
* Set the name of the job.
* @param jobName name
*/
public void setJobName(String jobName) {
this.jobName = jobName;
}
}
================================================
FILE: spring-cloud-starter-single-step-batch-job/src/main/java/org/springframework/cloud/task/batch/autoconfigure/flatfile/FlatFileItemReaderAutoConfiguration.java
================================================
/*
* Copyright 2019-present 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.cloud.task.batch.autoconfigure.flatfile;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.batch.infrastructure.item.file.FlatFileItemReader;
import org.springframework.batch.infrastructure.item.file.LineCallbackHandler;
import org.springframework.batch.infrastructure.item.file.LineMapper;
import org.springframework.batch.infrastructure.item.file.builder.FlatFileItemReaderBuilder;
import org.springframework.batch.infrastructure.item.file.mapping.FieldSetMapper;
import org.springframework.batch.infrastructure.item.file.separator.RecordSeparatorPolicy;
import org.springframework.batch.infrastructure.item.file.transform.FieldSet;
import org.springframework.batch.infrastructure.item.file.transform.LineTokenizer;
import org.springframework.batch.infrastructure.item.file.transform.Range;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.autoconfigure.AutoConfiguration;
import org.springframework.boot.autoconfigure.AutoConfigureAfter;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
import org.springframework.boot.batch.autoconfigure.BatchAutoConfiguration;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.cloud.task.batch.autoconfigure.RangeConverter;
import org.springframework.context.annotation.Bean;
/**
* Autconfiguration for a {@code FlatFileItemReader}.
*
* @author Michael Minella
* @author Glenn Renfro
* @since 2.3
*/
@AutoConfiguration
@EnableConfigurationProperties(FlatFileItemReaderProperties.class)
@AutoConfigureAfter(BatchAutoConfiguration.class)
public class FlatFileItemReaderAutoConfiguration {
private static final Log logger = LogFactory.getLog(FlatFileItemReaderAutoConfiguration.class);
private final FlatFileItemReaderProperties properties;
public FlatFileItemReaderAutoConfiguration(FlatFileItemReaderProperties properties) {
this.properties = properties;
}
@Bean
@ConditionalOnMissingBean
@ConditionalOnProperty(prefix = "spring.batch.job.flatfileitemreader", name = "name")
public FlatFileItemReader<Map<String, Object>> itemReader(@Autowired(required = false) LineTokenizer lineTokenizer,
@Autowired(required = false) FieldSetMapper<Map<String, Object>> fieldSetMapper,
@Autowired(required = false) LineMapper<Map<String, Object>> lineMapper,
@Autowired(required = false) LineCallbackHandler skippedLinesCallback,
@Autowired(required = false) RecordSeparatorPolicy recordSeparatorPolicy) {
FlatFileItemReaderBuilder<Map<String, Object>> mapFlatFileItemReaderBuilder = new FlatFileItemReaderBuilder<Map<String, Object>>()
.name(this.properties.getName())
.resource(this.properties.getResource())
.saveState(this.properties.isSaveState())
.maxItemCount(this.properties.getMaxItemCount())
.currentItemCount(this.properties.getCurrentItemCount())
.strict(this.properties.isStrict())
.encoding(this.properties.getEncoding())
.linesToSkip(this.properties.getLinesToSkip())
.comments(this.properties.getComments().toArray(new String[this.properties.getComments().size()]));
if (recordSeparatorPolicy != null) {
mapFlatFileItemReaderBuilder.recordSeparatorPolicy(recordSeparatorPolicy);
}
mapFlatFileItemReaderBuilder.fieldSetMapper(fieldSetMapper);
mapFlatFileItemReaderBuilder.lineMapper(lineMapper);
mapFlatFileItemReaderBuilder.skippedLinesCallback(skippedLinesCallback);
if (this.properties.isDelimited()) {
mapFlatFileItemReaderBuilder.delimited()
.quoteCharacter(this.properties.getQuoteCharacter())
.delimiter(this.properties.getDelimiter())
.includedFields(this.properties.getIncludedFields().toArray(new Integer[0]))
.names(this.properties.getNames())
.beanMapperStrict(this.properties.isParsingStrict())
.fieldSetMapper(new MapFieldSetMapper());
}
else if (this.properties.isFixedLength()) {
RangeConverter rangeConverter = new RangeConverter();
List<Range> ranges = new ArrayList<>();
this.properties.getRanges().forEach(range -> ranges.add(rangeConverter.convert(range)));
mapFlatFileItemReaderBuilder.fixedLength()
.columns(ranges.toArray(new Range[0]))
.names(this.properties.getNames())
.fieldSetMapper(new MapFieldSetMapper())
.beanMapperStrict(this.properties.isParsingStrict());
}
else {
mapFlatFileItemReaderBuilder.lineTokenizer(lineTokenizer);
}
if (lineTokenizer != null && (this.properties.isDelimited() || this.properties.isFixedLength())) {
logger.warn("Custom LineTokenizer bean provided but will be ignored because "
+ "delimited or fixed-length properties are configured. "
+ "Remove the custom bean or clear delimited/fixedLength properties.");
}
return mapFlatFileItemReaderBuilder.build();
}
/**
* A {@link FieldSetMapper} that takes a {@code FieldSet} and returns the
* {@code Map<String, Object>} of its contents.
*/
public static class MapFieldSetMapper implements FieldSetMapper<Map<String, Object>> {
@Override
public Map<String, Object> mapFieldSet(FieldSet fieldSet) {
Map<String, Object> map = new HashMap<>();
fieldSet.getProperties().forEach((key, value) -> map.put(key.toString(), value));
return map;
}
}
}
================================================
FILE: spring-cloud-starter-single-step-batch-job/src/main/java/org/springframework/cloud/task/batch/autoconfigure/flatfile/FlatFileItemReaderProperties.java
================================================
/*
* Copyright 2019-present 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.cloud.task.batch.autoconfigure.flatfile;
import java.util.ArrayList;
import java.util.List;
import org.springframework.batch.infrastructure.item.file.FlatFileItemReader;
import org.springframework.batch.infrastructure.item.file.transform.DelimitedLineTokenizer;
import org.springframework.batch.infrastructure.item.file.transform.Range;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.core.io.Resource;
/**
* Properties to configure a {@code FlatFileItemReader}.
*
* @author Michael Minella
* @since 2.3
*/
@ConfigurationProperties(prefix = "spring.batch.job.flatfileitemreader")
public class FlatFileItemReaderProperties {
/**
* Determines whether the state of the reader is persisted. Default is {@code true}.
*/
private boolean saveState = true;
/**
* The name used to calculate the key within the
* {@link org.springframework.batch.infrastructure.item.ExecutionContext}. Required if
* {@link #setSaveState} is set to {@code true}.
*/
private String name;
/**
* Configure the maximum number of items to be read.
*/
private int maxItemCount = Integer.MAX_VALUE;
/**
* Index for the current item. Also used on restarts to indicate where to start from.
*/
private int currentItemCount = 0;
/**
* A list of {@code String} elements used to indicate which records are comments.
*/
private List<String> comments = new ArrayList<>();
/**
* The {@link Resource} to be used as input.
*/
private Resource resource;
/**
* Configure whether the reader should be in strict mode (require the input
* {@link Resource} to exist).
*/
private boolean strict = true;
/**
* Configure the encoding used by the reader to read the input source. The default
* value is {@link FlatFileItemReader#DEFAULT_CHARSET}.
*/
private String encoding = FlatFileItemReader.DEFAULT_CHARSET;
/**
* The number of lines to skip at the beginning of reading the file.
*/
private int linesToSkip = 0;
/**
* Indicates that a {@link DelimitedLineTokenizer} should be used to parse each line.
*/
private boolean delimited = false;
/**
* Define the delimiter for the file.
*/
private String delimiter = DelimitedLineTokenizer.DELIMITER_COMMA;
/**
* Define the character used to quote fields.
*/
private char quoteCharacter = DelimitedLineTokenizer.DEFAULT_QUOTE_CHARACTER;
/**
* A list of indices of the fields within a delimited file to be included.
*/
private List<Integer> includedFields = new ArrayList<>();
/**
* Indicates that a
* {@link org.springframework.batch.infrastructure.item.file.transform.FixedLengthTokenizer}
* should be used to parse the records in the file.
*/
private boolean fixedLength = false;
/**
* The column ranges to be used to parse a fixed width file.
*/
private List<String> ranges = new ArrayList<>();
/**
* The names of the fields to be parsed from the file.
*/
private String[] names;
/**
* Indicates whether the number of tokens must match the number of configured fields.
*/
private boolean parsingStrict = true;
/**
* Returns the configured value of if the state of the reader will be persisted.
* @return true if the state will be persisted
*/
public boolean isSaveState() {
return this.saveState;
}
/**
* Configure if the state of the
* {@link org.springframework.batch.infrastructure.item.ItemStreamSupport} should be
* persisted within the
* {@link org.springframework.batch.infrastructure.item.ExecutionContext} for restart
* purposes.
* @param saveState defaults to true
*/
public void setSaveState(boolean saveState) {
this.saveState = saveState;
}
/**
* Returns the configured value of the name used to calculate {@code ExecutionContext}
* keys.
* @return the name
*/
public String getName() {
return this.name;
}
/**
* The name used to calculate the key within the
* {@link org.springframework.batch.infrastructure.item.ExecutionContext}. Required if
* {@link #setSaveState} is set to true.
* @param name name of the reader instance
* @see org.springframework.batch.infrastructure.item.ItemStreamSupport#setName(String)
*/
public void setName(String name) {
this.name = name;
}
/**
* The maximum number of items to be read.
* @return the configured number of items, defaults to Integer.MAX_VALUE
*/
public int getMaxItemCount() {
return this.maxItemCount;
}
/**
* Configure the max number of items to be read.
* @param maxItemCount the max items to be read
* @see org.springframework.batch.infrastructure.item.support.AbstractItemCountingItemStreamItemReader#setMaxItemCount(int)
*/
public void setMaxItemCount(int maxItemCount) {
this.maxItemCount = maxItemCount;
}
/**
* Provides the index of the current item.
* @return item index
*/
public int getCurrentItemCount() {
return this.currentItemCount;
}
/**
* Index for the current item. Also used on restarts to indicate where to start from.
* @param currentItemCount current index
* @see org.springframework.batch.infrastructure.item.support.AbstractItemCountingItemStreamItemReader#setCurrentItemCount(int)
*/
public void setCurrentItemCount(int currentItemCount) {
this.currentItemCount = currentItemCount;
}
/**
* List of {@code String} values used to indicate what records are comments.
* @return list of comment indicators
*/
public List<String> getComments() {
return this.comments;
}
/**
* Takes a list of {@code String} elements used to indicate what records are comments.
* @param comments strings used to indicate commented lines
*/
public void setComments(List<String> comments) {
this.comments = comments;
}
/**
* The input file for the {@code FlatFileItemReader}.
* @return a Resource
*/
public Resource getResource() {
return this.resource;
}
/**
* The {@link Resource} to be used as input.
* @param resource the input to the reader.
* @see FlatFileItemReader#setResource(Resource)
*/
public void setResource(Resource resource) {
this.resource = resource;
}
/**
* Returns true if a missing input file is considered an error.
* @return true if the input file is required.
*/
public boolean isStrict() {
return this.strict;
}
/**
* Configure if the reader should be in strict mode (require the input
* {@link Resource} to exist).
* @param strict true if the input file is required to exist.
* @see FlatFileItemReader#setStrict(boolean)
*/
public void setStrict(boolean strict) {
this.strict = strict;
}
/**
* Returns the encoding for the input file. Defaults to
* {@code FlatFileItemReader#DEFAULT_CHARSET}.
* @return the configured encoding
*/
public String getEncoding() {
return this.encoding;
}
/**
* Configure the encoding used by the reader to read the input source. Default value
* is {@link FlatFileItemReader#DEFAULT_CHARSET}.
* @param encoding to use to read the input source.
* @see FlatFileItemReader#setEncoding(String)
*/
public void setEncoding(String encoding) {
this.encoding = encoding;
}
/**
* Number of lines to skip when reading the input file.
* @return number of lines
*/
public
gitextract_72_za3bm/
├── .editorconfig
├── .github/
│ ├── dco.yml
│ └── workflows/
│ ├── ci-maven-main.yml
│ ├── ci.yaml
│ └── deploy-docs.yml
├── .gitignore
├── .mvn/
│ ├── jvm.config
│ ├── maven.config
│ └── wrapper/
│ ├── maven-wrapper.jar
│ └── maven-wrapper.properties
├── .settings.xml
├── .springformat
├── CONTRIBUTING.adoc
├── LICENSE
├── README.adoc
├── docs/
│ ├── antora-playbook.yml
│ ├── antora.yml
│ ├── modules/
│ │ └── ROOT/
│ │ ├── nav.adoc
│ │ ├── pages/
│ │ │ ├── _attributes.adoc
│ │ │ ├── appendix-building-the-documentation.adoc
│ │ │ ├── appendix-task-repository-schema.adoc
│ │ │ ├── appendix.adoc
│ │ │ ├── batch-starter.adoc
│ │ │ ├── batch.adoc
│ │ │ ├── configprops.adoc
│ │ │ ├── features.adoc
│ │ │ ├── getting-started.adoc
│ │ │ ├── index.adoc
│ │ │ ├── observability.adoc
│ │ │ ├── preface.adoc
│ │ │ └── stream.adoc
│ │ └── partials/
│ │ ├── _configprops.adoc
│ │ ├── _conventions.adoc
│ │ ├── _metrics.adoc
│ │ └── _spans.adoc
│ ├── package.json
│ ├── pom.xml
│ └── src/
│ └── main/
│ ├── antora/
│ │ └── resources/
│ │ └── antora-resources/
│ │ └── antora.yml
│ ├── asciidoc/
│ │ ├── .gitignore
│ │ ├── Guardfile
│ │ ├── README.adoc
│ │ ├── index.htmladoc
│ │ ├── index.htmlsingleadoc
│ │ ├── index.pdfadoc
│ │ ├── sagan-index.adoc
│ │ ├── spring-cloud-task.epubadoc
│ │ ├── spring-cloud-task.htmlsingleadoc
│ │ └── spring-cloud-task.pdfadoc
│ └── javadoc/
│ └── spring-javadoc.css
├── mvnw
├── mvnw.cmd
├── pom.xml
├── spring-cloud-starter-single-step-batch-job/
│ ├── pom.xml
│ └── src/
│ ├── main/
│ │ ├── java/
│ │ │ └── org/
│ │ │ └── springframework/
│ │ │ └── cloud/
│ │ │ └── task/
│ │ │ └── batch/
│ │ │ └── autoconfigure/
│ │ │ ├── RangeConverter.java
│ │ │ ├── SingleStepJobAutoConfiguration.java
│ │ │ ├── SingleStepJobProperties.java
│ │ │ ├── flatfile/
│ │ │ │ ├── FlatFileItemReaderAutoConfiguration.java
│ │ │ │ ├── FlatFileItemReaderProperties.java
│ │ │ │ ├── FlatFileItemWriterAutoConfiguration.java
│ │ │ │ ├── FlatFileItemWriterProperties.java
│ │ │ │ └── package-info.java
│ │ │ ├── jdbc/
│ │ │ │ ├── JDBCSingleStepDataSourceAutoConfiguration.java
│ │ │ │ ├── JdbcBatchItemWriterAutoConfiguration.java
│ │ │ │ ├── JdbcBatchItemWriterProperties.java
│ │ │ │ ├── JdbcCursorItemReaderAutoConfiguration.java
│ │ │ │ ├── JdbcCursorItemReaderProperties.java
│ │ │ │ └── package-info.java
│ │ │ ├── kafka/
│ │ │ │ ├── KafkaItemReaderAutoConfiguration.java
│ │ │ │ ├── KafkaItemReaderProperties.java
│ │ │ │ ├── KafkaItemWriterAutoConfiguration.java
│ │ │ │ ├── KafkaItemWriterProperties.java
│ │ │ │ └── package-info.java
│ │ │ ├── package-info.java
│ │ │ └── rabbit/
│ │ │ ├── AmqpItemReaderAutoConfiguration.java
│ │ │ ├── AmqpItemReaderProperties.java
│ │ │ ├── AmqpItemWriterAutoConfiguration.java
│ │ │ ├── AmqpItemWriterProperties.java
│ │ │ └── package-info.java
│ │ └── resources/
│ │ └── META-INF/
│ │ ├── spring/
│ │ │ └── org.springframework.boot.autoconfigure.AutoConfiguration.imports
│ │ └── spring-configuration-metadata.json
│ └── test/
│ ├── java/
│ │ └── org/
│ │ └── springframework/
│ │ └── cloud/
│ │ └── task/
│ │ └── batch/
│ │ └── autoconfigure/
│ │ ├── RangeConverterTests.java
│ │ ├── SingleStepJobAutoConfigurationTests.java
│ │ ├── flatfile/
│ │ │ ├── FlatFileItemReaderAutoConfigurationTests.java
│ │ │ └── FlatFileItemWriterAutoConfigurationTests.java
│ │ ├── jdbc/
│ │ │ ├── JdbcBatchItemWriterAutoConfigurationTests.java
│ │ │ └── JdbcCursorItemReaderAutoConfigurationTests.java
│ │ ├── kafka/
│ │ │ ├── KafkaItemReaderAutoConfigurationTests.java
│ │ │ └── KafkaItemWriterTests.java
│ │ └── rabbit/
│ │ ├── AmqpItemReaderAutoConfigurationTests.java
│ │ └── AmqpItemWriterAutoConfigurationTests.java
│ └── resources/
│ ├── logback-test.xml
│ ├── schema-h2.sql
│ ├── test.txt
│ ├── testUTF16.csv
│ ├── testUTF8.csv
│ └── writerTestUTF16.txt
├── spring-cloud-starter-task/
│ └── pom.xml
├── spring-cloud-task-batch/
│ ├── pom.xml
│ └── src/
│ ├── main/
│ │ ├── java/
│ │ │ └── org/
│ │ │ └── springframework/
│ │ │ └── cloud/
│ │ │ └── task/
│ │ │ └── batch/
│ │ │ ├── configuration/
│ │ │ │ ├── JobLaunchCondition.java
│ │ │ │ ├── TaskBatchAutoConfiguration.java
│ │ │ │ ├── TaskBatchExecutionListenerBeanPostProcessor.java
│ │ │ │ ├── TaskBatchExecutionListenerFactoryBean.java
│ │ │ │ ├── TaskBatchProperties.java
│ │ │ │ ├── TaskJobLauncherApplicationRunnerFactoryBean.java
│ │ │ │ ├── TaskJobLauncherAutoConfiguration.java
│ │ │ │ └── package-info.java
│ │ │ ├── handler/
│ │ │ │ ├── TaskJobLauncherApplicationRunner.java
│ │ │ │ └── package-info.java
│ │ │ └── listener/
│ │ │ ├── TaskBatchDao.java
│ │ │ ├── TaskBatchExecutionListener.java
│ │ │ ├── package-info.java
│ │ │ └── support/
│ │ │ ├── JdbcTaskBatchDao.java
│ │ │ ├── MapTaskBatchDao.java
│ │ │ └── package-info.java
│ │ └── resources/
│ │ └── META-INF/
│ │ ├── additional-spring-configuration-metadata.json
│ │ └── spring/
│ │ └── org.springframework.boot.autoconfigure.AutoConfiguration.imports
│ └── test/
│ ├── java/
│ │ └── org/
│ │ └── springframework/
│ │ └── cloud/
│ │ └── task/
│ │ └── batch/
│ │ ├── configuration/
│ │ │ ├── TaskBatchTest.java
│ │ │ └── TaskJobLauncherAutoConfigurationTests.java
│ │ ├── handler/
│ │ │ ├── TaskJobLauncherApplicationRunnerCoreTests.java
│ │ │ └── TaskJobLauncherApplicationRunnerTests.java
│ │ └── listener/
│ │ ├── PrefixTests.java
│ │ ├── PrimaryKeyTests.java
│ │ └── TaskBatchExecutionListenerTests.java
│ └── resources/
│ ├── META-INF/
│ │ └── spring/
│ │ └── org.springframework.cloud.task.batch.configuration.TaskBatchTest.imports
│ ├── schema-h2.sql
│ └── schema-with-primary-keys-h2.sql
├── spring-cloud-task-core/
│ ├── pom.xml
│ └── src/
│ ├── main/
│ │ ├── java/
│ │ │ └── org/
│ │ │ └── springframework/
│ │ │ └── cloud/
│ │ │ └── task/
│ │ │ ├── configuration/
│ │ │ │ ├── DefaultTaskConfigurer.java
│ │ │ │ ├── EnableTask.java
│ │ │ │ ├── NoTransactionManagerProperty.java
│ │ │ │ ├── SimpleTaskAutoConfiguration.java
│ │ │ │ ├── SingleInstanceTaskListener.java
│ │ │ │ ├── SingleTaskConfiguration.java
│ │ │ │ ├── TaskConfigurer.java
│ │ │ │ ├── TaskLifecycleConfiguration.java
│ │ │ │ ├── TaskObservationCloudKeyValues.java
│ │ │ │ ├── TaskProperties.java
│ │ │ │ ├── TaskRepositoryDatabaseInitializerDetector.java
│ │ │ │ ├── TaskRepositoryDependsOnDatabaseInitializationDetector.java
│ │ │ │ ├── TaskRuntimeHints.java
│ │ │ │ ├── observation/
│ │ │ │ │ ├── DefaultTaskObservationConvention.java
│ │ │ │ │ ├── ObservationApplicationRunner.java
│ │ │ │ │ ├── ObservationApplicationRunnerBeanPostProcessor.java
│ │ │ │ │ ├── ObservationCommandLineRunner.java
│ │ │ │ │ ├── ObservationCommandLineRunnerBeanPostProcessor.java
│ │ │ │ │ ├── ObservationTaskAutoConfiguration.java
│ │ │ │ │ ├── TaskDocumentedObservation.java
│ │ │ │ │ ├── TaskObservationContext.java
│ │ │ │ │ ├── TaskObservationConvention.java
│ │ │ │ │ └── package-info.java
│ │ │ │ └── package-info.java
│ │ │ ├── listener/
│ │ │ │ ├── DefaultTaskExecutionObservationConvention.java
│ │ │ │ ├── TaskException.java
│ │ │ │ ├── TaskExecutionException.java
│ │ │ │ ├── TaskExecutionListener.java
│ │ │ │ ├── TaskExecutionListenerSupport.java
│ │ │ │ ├── TaskExecutionObservation.java
│ │ │ │ ├── TaskExecutionObservationContext.java
│ │ │ │ ├── TaskExecutionObservationConvention.java
│ │ │ │ ├── TaskLifecycleListener.java
│ │ │ │ ├── TaskListenerExecutorObjectFactory.java
│ │ │ │ ├── TaskObservations.java
│ │ │ │ ├── annotation/
│ │ │ │ │ ├── AfterTask.java
│ │ │ │ │ ├── BeforeTask.java
│ │ │ │ │ ├── FailedTask.java
│ │ │ │ │ ├── TaskListenerExecutor.java
│ │ │ │ │ └── package-info.java
│ │ │ │ └── package-info.java
│ │ │ ├── package-info.java
│ │ │ └── repository/
│ │ │ ├── TaskExecution.java
│ │ │ ├── TaskExplorer.java
│ │ │ ├── TaskNameResolver.java
│ │ │ ├── TaskRepository.java
│ │ │ ├── dao/
│ │ │ │ ├── JdbcTaskExecutionDao.java
│ │ │ │ ├── MapTaskExecutionDao.java
│ │ │ │ ├── TaskExecutionDao.java
│ │ │ │ └── package-info.java
│ │ │ ├── database/
│ │ │ │ ├── PagingQueryProvider.java
│ │ │ │ ├── package-info.java
│ │ │ │ └── support/
│ │ │ │ ├── AbstractSqlPagingQueryProvider.java
│ │ │ │ ├── Db2PagingQueryProvider.java
│ │ │ │ ├── H2PagingQueryProvider.java
│ │ │ │ ├── HsqlPagingQueryProvider.java
│ │ │ │ ├── MariaDbPagingQueryProvider.java
│ │ │ │ ├── MySqlPagingQueryProvider.java
│ │ │ │ ├── OraclePagingQueryProvider.java
│ │ │ │ ├── PostgresPagingQueryProvider.java
│ │ │ │ ├── SqlPagingQueryProviderFactoryBean.java
│ │ │ │ ├── SqlPagingQueryUtils.java
│ │ │ │ ├── SqlServerPagingQueryProvider.java
│ │ │ │ └── package-info.java
│ │ │ ├── package-info.java
│ │ │ └── support/
│ │ │ ├── DatabaseType.java
│ │ │ ├── SimpleTaskExplorer.java
│ │ │ ├── SimpleTaskNameResolver.java
│ │ │ ├── SimpleTaskRepository.java
│ │ │ ├── TaskExecutionDaoFactoryBean.java
│ │ │ ├── TaskRepositoryInitializer.java
│ │ │ └── package-info.java
│ │ └── resources/
│ │ ├── META-INF/
│ │ │ ├── additional-spring-configuration-metadata.json
│ │ │ ├── spring/
│ │ │ │ ├── aot.factories
│ │ │ │ └── org.springframework.boot.autoconfigure.AutoConfiguration.imports
│ │ │ └── spring.factories
│ │ └── org/
│ │ └── springframework/
│ │ └── cloud/
│ │ └── task/
│ │ ├── migration/
│ │ │ ├── 1.1.x/
│ │ │ │ ├── migration-h2.sql
│ │ │ │ ├── migration-hsqldb.sql
│ │ │ │ ├── migration-mysql.sql
│ │ │ │ ├── migration-oracle.sql
│ │ │ │ ├── migration-postgresql.sql
│ │ │ │ └── migration-sqlserver.sql
│ │ │ ├── 1.2.x/
│ │ │ │ ├── migration-db2.sql
│ │ │ │ ├── migration-h2.sql
│ │ │ │ ├── migration-hsqldb.sql
│ │ │ │ ├── migration-mysql.sql
│ │ │ │ ├── migration-oracle.sql
│ │ │ │ ├── migration-postgresql.sql
│ │ │ │ └── migration-sqlserver.sql
│ │ │ ├── 2.2.x/
│ │ │ │ └── migration-oracle.sql
│ │ │ └── 3.0.x/
│ │ │ ├── migration-db2.sql
│ │ │ ├── migration-h2.sql
│ │ │ ├── migration-hsqldb.sql
│ │ │ ├── migration-mysql.sql
│ │ │ └── migration-oracle.sql
│ │ ├── schema-db2.sql
│ │ ├── schema-h2.sql
│ │ ├── schema-hsqldb.sql
│ │ ├── schema-mariadb.sql
│ │ ├── schema-mysql.sql
│ │ ├── schema-oracle.sql
│ │ ├── schema-postgresql.sql
│ │ └── schema-sqlserver.sql
│ └── test/
│ ├── java/
│ │ └── org/
│ │ └── springframework/
│ │ └── cloud/
│ │ └── task/
│ │ ├── SimpleSingleTaskAutoConfigurationTests.java
│ │ ├── SimpleSingleTaskAutoConfigurationWithDataSourceTests.java
│ │ ├── SimpleTaskAutoConfigurationTests.java
│ │ ├── TaskCoreTests.java
│ │ ├── TaskRepositoryInitializerDefaultTaskConfigurerTests.java
│ │ ├── TaskRepositoryInitializerNoDataSourceTaskConfigurerTests.java
│ │ ├── configuration/
│ │ │ ├── DefaultTaskConfigurerTests.java
│ │ │ ├── RepositoryTransactionManagerConfigurationTests.java
│ │ │ ├── TaskPropertiesTests.java
│ │ │ ├── TestConfiguration.java
│ │ │ └── observation/
│ │ │ └── ObservationIntegrationTests.java
│ │ ├── listener/
│ │ │ ├── TaskExceptionTests.java
│ │ │ ├── TaskExecutionListenerTests.java
│ │ │ ├── TaskLifecycleListenerTests.java
│ │ │ └── TaskListenerExecutorObjectFactoryTests.java
│ │ ├── micrometer/
│ │ │ └── TaskObservationsTests.java
│ │ ├── repository/
│ │ │ ├── H2TaskRepositoryIntegrationTests.java
│ │ │ ├── MariaDbTaskRepositoryIntegrationTests.java
│ │ │ ├── dao/
│ │ │ │ ├── BaseTaskExecutionDaoTestCases.java
│ │ │ │ ├── JdbcTaskExecutionDaoMariaDBIntegrationTests.java
│ │ │ │ └── TaskExecutionDaoTests.java
│ │ │ ├── database/
│ │ │ │ └── support/
│ │ │ │ ├── FindAllPagingQueryProviderTests.java
│ │ │ │ ├── H2PagingQueryProviderTests.java
│ │ │ │ ├── InvalidPagingQueryProviderTests.java
│ │ │ │ ├── SqlPagingQueryProviderFactoryBeanTests.java
│ │ │ │ └── WhereClausePagingQueryProviderTests.java
│ │ │ └── support/
│ │ │ ├── DatabaseTypeTests.java
│ │ │ ├── SimpleTaskExplorerTests.java
│ │ │ ├── SimpleTaskNameResolverTests.java
│ │ │ ├── SimpleTaskRepositoryJdbcTests.java
│ │ │ ├── SimpleTaskRepositoryMapTests.java
│ │ │ ├── TaskDatabaseInitializerTests.java
│ │ │ └── TaskExecutionDaoFactoryBeanTests.java
│ │ └── util/
│ │ ├── TaskExecutionCreator.java
│ │ ├── TestDBUtils.java
│ │ ├── TestDefaultConfiguration.java
│ │ ├── TestListener.java
│ │ └── TestVerifierUtils.java
│ └── resources/
│ ├── application.properties
│ └── micrometer/
│ └── pcf-scs-info.json
├── spring-cloud-task-dependencies/
│ └── pom.xml
├── spring-cloud-task-integration-tests/
│ ├── pom.xml
│ └── src/
│ └── test/
│ ├── java/
│ │ ├── configuration/
│ │ │ ├── JobConfiguration.java
│ │ │ ├── JobSkipConfiguration.java
│ │ │ ├── SkipItemReader.java
│ │ │ └── SkipItemWriter.java
│ │ └── org/
│ │ └── springframework/
│ │ └── cloud/
│ │ └── task/
│ │ ├── executionid/
│ │ │ ├── TaskStartApplication.java
│ │ │ └── TaskStartTests.java
│ │ ├── initializer/
│ │ │ └── TaskInitializerTests.java
│ │ └── listener/
│ │ ├── BatchExecutionEventTests.java
│ │ └── TaskEventTests.java
│ └── resources/
│ ├── application.properties
│ └── org/
│ └── springframework/
│ └── cloud/
│ └── task/
│ └── listener/
│ ├── chunk-events-sink-channel.properties
│ ├── item-process-sink-channel.properties
│ ├── item-read-events-sink-channel.properties
│ ├── item-write-events-sink-channel.properties
│ ├── job-execution-sink-channel.properties
│ ├── sink-channel.properties
│ ├── skip-events-sink-channel.properties
│ └── step-execution-sink-channel.properties
├── spring-cloud-task-samples/
│ ├── batch-events/
│ │ ├── .mvn/
│ │ │ └── wrapper/
│ │ │ ├── maven-wrapper.jar
│ │ │ └── maven-wrapper.properties
│ │ ├── README.adoc
│ │ ├── mvnw
│ │ ├── mvnw.cmd
│ │ ├── pom.xml
│ │ └── src/
│ │ ├── main/
│ │ │ ├── java/
│ │ │ │ └── io/
│ │ │ │ └── spring/
│ │ │ │ └── cloud/
│ │ │ │ ├── BatchEventsApplication.java
│ │ │ │ └── package-info.java
│ │ │ └── resources/
│ │ │ ├── application.properties
│ │ │ └── logback-test.xml
│ │ └── test/
│ │ ├── java/
│ │ │ └── io/
│ │ │ └── spring/
│ │ │ └── cloud/
│ │ │ └── BatchEventsApplicationTests.java
│ │ └── resources/
│ │ └── io/
│ │ └── spring/
│ │ └── task/
│ │ └── listener/
│ │ └── job-listener-sink-channel.properties
│ ├── batch-job/
│ │ ├── .mvn/
│ │ │ └── wrapper/
│ │ │ ├── maven-wrapper.jar
│ │ │ └── maven-wrapper.properties
│ │ ├── README.adoc
│ │ ├── mvnw
│ │ ├── mvnw.cmd
│ │ ├── pom.xml
│ │ └── src/
│ │ ├── main/
│ │ │ ├── java/
│ │ │ │ └── io/
│ │ │ │ └── spring/
│ │ │ │ ├── BatchJobApplication.java
│ │ │ │ ├── configuration/
│ │ │ │ │ ├── JobConfiguration.java
│ │ │ │ │ └── package-info.java
│ │ │ │ └── package-info.java
│ │ │ └── resources/
│ │ │ └── application.properties
│ │ └── test/
│ │ ├── java/
│ │ │ └── io/
│ │ │ └── spring/
│ │ │ ├── BatchJobApplicationTests.java
│ │ │ ├── BatchJobTestConfiguration.java
│ │ │ └── TestBatchJobApp.java
│ │ └── resources/
│ │ └── application.properties
│ ├── jpa-sample/
│ │ ├── .mvn/
│ │ │ └── wrapper/
│ │ │ ├── maven-wrapper.jar
│ │ │ └── maven-wrapper.properties
│ │ ├── README.adoc
│ │ ├── mvnw
│ │ ├── mvnw.cmd
│ │ ├── pom.xml
│ │ └── src/
│ │ ├── main/
│ │ │ ├── java/
│ │ │ │ └── io/
│ │ │ │ └── spring/
│ │ │ │ ├── JpaApplication.java
│ │ │ │ ├── configuration/
│ │ │ │ │ ├── TaskRunComponent.java
│ │ │ │ │ ├── TaskRunOutput.java
│ │ │ │ │ ├── TaskRunRepository.java
│ │ │ │ │ └── package-info.java
│ │ │ │ └── package-info.java
│ │ │ └── resources/
│ │ │ ├── application-cloud.yml
│ │ │ └── application.yml
│ │ └── test/
│ │ ├── java/
│ │ │ └── io/
│ │ │ └── spring/
│ │ │ └── JpaApplicationTests.java
│ │ └── resources/
│ │ └── application.properties
│ ├── multiple-datasources/
│ │ ├── .mvn/
│ │ │ └── wrapper/
│ │ │ ├── maven-wrapper.jar
│ │ │ └── maven-wrapper.properties
│ │ ├── README.adoc
│ │ ├── mvnw
│ │ ├── mvnw.cmd
│ │ ├── pom.xml
│ │ └── src/
│ │ ├── main/
│ │ │ ├── java/
│ │ │ │ └── io/
│ │ │ │ └── spring/
│ │ │ │ ├── MultipleDataSourcesApplication.java
│ │ │ │ ├── configuration/
│ │ │ │ │ ├── CustomTaskConfigurer.java
│ │ │ │ │ ├── EmbeddedDataSourceConfiguration.java
│ │ │ │ │ ├── ExternalDataSourceConfiguration.java
│ │ │ │ │ └── package-info.java
│ │ │ │ ├── package-info.java
│ │ │ │ └── task/
│ │ │ │ ├── SampleCommandLineRunner.java
│ │ │ │ └── package-info.java
│ │ │ └── resources/
│ │ │ └── application.properties
│ │ └── test/
│ │ ├── java/
│ │ │ └── io/
│ │ │ └── spring/
│ │ │ ├── MultiDataSourcesApplicationTests.java
│ │ │ └── MultiDataSourcesExternalApplicationTests.java
│ │ └── resources/
│ │ └── application.properties
│ ├── pom.xml
│ ├── single-step-batch-job/
│ │ ├── .mvn/
│ │ │ └── wrapper/
│ │ │ ├── maven-wrapper.jar
│ │ │ └── maven-wrapper.properties
│ │ ├── README.adoc
│ │ ├── mvnw
│ │ ├── pom.xml
│ │ └── src/
│ │ ├── main/
│ │ │ ├── java/
│ │ │ │ └── io/
│ │ │ │ └── spring/
│ │ │ │ ├── SingleStepBatchJobApplication.java
│ │ │ │ └── package-info.java
│ │ │ └── resources/
│ │ │ ├── application-amqpreader.properties
│ │ │ ├── application-amqpwriter.properties
│ │ │ ├── application-ffreader.properties
│ │ │ ├── application-ffwriter.properties
│ │ │ ├── application-jdbcreader.properties
│ │ │ ├── application-jdbcwriter.properties
│ │ │ ├── application-kafkareader.properties
│ │ │ ├── application-kafkawriter.properties
│ │ │ ├── application.properties
│ │ │ └── test.txt
│ │ └── test/
│ │ ├── java/
│ │ │ └── io/
│ │ │ └── spring/
│ │ │ └── BatchJobApplicationTests.java
│ │ └── resources/
│ │ ├── schema-h2.sql
│ │ ├── test.txt
│ │ └── testresult.txt
│ ├── task-events/
│ │ ├── .mvn/
│ │ │ └── wrapper/
│ │ │ ├── maven-wrapper.jar
│ │ │ └── maven-wrapper.properties
│ │ ├── README.adoc
│ │ ├── mvnw
│ │ ├── mvnw.cmd
│ │ ├── pom.xml
│ │ └── src/
│ │ └── main/
│ │ ├── java/
│ │ │ └── io/
│ │ │ └── spring/
│ │ │ ├── TaskEventsApplication.java
│ │ │ └── package-info.java
│ │ └── resources/
│ │ └── application.properties
│ ├── task-observations/
│ │ ├── .gitignore
│ │ ├── .mvn/
│ │ │ └── wrapper/
│ │ │ ├── maven-wrapper.jar
│ │ │ └── maven-wrapper.properties
│ │ ├── README.adoc
│ │ ├── mvnw
│ │ ├── mvnw.cmd
│ │ ├── pom.xml
│ │ └── src/
│ │ ├── main/
│ │ │ ├── java/
│ │ │ │ └── io/
│ │ │ │ └── spring/
│ │ │ │ └── taskobservations/
│ │ │ │ ├── ObservationConfiguration.java
│ │ │ │ ├── TaskObservationsApplication.java
│ │ │ │ └── package-info.java
│ │ │ └── resources/
│ │ │ └── application.properties
│ │ └── test/
│ │ └── java/
│ │ └── io/
│ │ └── spring/
│ │ └── taskobservations/
│ │ └── TaskObservationsApplicationTests.java
│ └── timestamp/
│ ├── README.adoc
│ ├── pom.xml
│ └── src/
│ ├── main/
│ │ ├── java/
│ │ │ └── org/
│ │ │ └── springframework/
│ │ │ └── cloud/
│ │ │ └── task/
│ │ │ └── timestamp/
│ │ │ ├── TaskApplication.java
│ │ │ ├── TimestampTaskProperties.java
│ │ │ └── package-info.java
│ │ └── resources/
│ │ └── application.properties
│ └── test/
│ ├── java/
│ │ └── org/
│ │ └── springframework/
│ │ └── cloud/
│ │ └── task/
│ │ └── timestamp/
│ │ ├── TaskApplicationTests.java
│ │ └── TimestampTaskPropertiesTests.java
│ └── resources/
│ └── application.properties
├── spring-cloud-task-stream/
│ ├── .mvn/
│ │ └── wrapper/
│ │ ├── maven-wrapper.jar
│ │ └── maven-wrapper.properties
│ ├── pom.xml
│ └── src/
│ ├── main/
│ │ ├── java/
│ │ │ └── org/
│ │ │ └── springframework/
│ │ │ └── cloud/
│ │ │ └── task/
│ │ │ ├── batch/
│ │ │ │ └── listener/
│ │ │ │ ├── BatchEventAutoConfiguration.java
│ │ │ │ ├── EventEmittingChunkListener.java
│ │ │ │ ├── EventEmittingItemProcessListener.java
│ │ │ │ ├── EventEmittingItemReadListener.java
│ │ │ │ ├── EventEmittingItemWriteListener.java
│ │ │ │ ├── EventEmittingJobExecutionListener.java
│ │ │ │ ├── EventEmittingSkipListener.java
│ │ │ │ ├── EventEmittingStepExecutionListener.java
│ │ │ │ ├── package-info.java
│ │ │ │ └── support/
│ │ │ │ ├── BatchJobHeaders.java
│ │ │ │ ├── ExitStatus.java
│ │ │ │ ├── JobExecutionEvent.java
│ │ │ │ ├── JobInstanceEvent.java
│ │ │ │ ├── JobParameterEvent.java
│ │ │ │ ├── JobParametersEvent.java
│ │ │ │ ├── MessagePublisher.java
│ │ │ │ ├── StepExecutionEvent.java
│ │ │ │ ├── TaskBatchEventListenerBeanPostProcessor.java
│ │ │ │ ├── TaskEventProperties.java
│ │ │ │ └── package-info.java
│ │ │ └── listener/
│ │ │ ├── TaskEventAutoConfiguration.java
│ │ │ └── package-info.java
│ │ └── resources/
│ │ ├── META-INF/
│ │ │ ├── additional-spring-configuration-metadata.json
│ │ │ └── spring/
│ │ │ └── org.springframework.boot.autoconfigure.AutoConfiguration.imports
│ │ └── org/
│ │ └── springframework/
│ │ └── cloud/
│ │ └── task/
│ │ └── application.properties
│ └── test/
│ └── java/
│ └── org/
│ └── springframework/
│ └── cloud/
│ └── task/
│ ├── batch/
│ │ └── listener/
│ │ ├── EventListenerTests.java
│ │ ├── JobExecutionEventTests.java
│ │ ├── JobInstanceEventTests.java
│ │ ├── JobParameterEventTests.java
│ │ ├── JobParametersEventTests.java
│ │ ├── StepExecutionEventTests.java
│ │ ├── TaskBatchEventListenerBeanPostProcessorTests.java
│ │ └── support/
│ │ └── TaskBatchEventListenerBeanPostProcessorRuntimeHintTests.java
│ └── listener/
│ └── TaskEventTests.java
└── src/
└── checkstyle/
└── checkstyle-suppressions.xml
SYMBOL INDEX (1941 symbols across 222 files)
FILE: spring-cloud-starter-single-step-batch-job/src/main/java/org/springframework/cloud/task/batch/autoconfigure/RangeConverter.java
class RangeConverter (line 31) | public class RangeConverter implements Converter<String, Range> {
method convert (line 33) | @Override
FILE: spring-cloud-starter-single-step-batch-job/src/main/java/org/springframework/cloud/task/batch/autoconfigure/SingleStepJobAutoConfiguration.java
class SingleStepJobAutoConfiguration (line 48) | @AutoConfiguration
method SingleStepJobAutoConfiguration (line 64) | public SingleStepJobAutoConfiguration(SingleStepJobProperties properti...
method validateProperties (line 70) | private void validateProperties(SingleStepJobProperties properties) {
method job (line 77) | @Bean
FILE: spring-cloud-starter-single-step-batch-job/src/main/java/org/springframework/cloud/task/batch/autoconfigure/SingleStepJobProperties.java
class SingleStepJobProperties (line 27) | @ConfigurationProperties(prefix = "spring.batch.job")
method getStepName (line 49) | public String getStepName() {
method setStepName (line 57) | public void setStepName(String stepName) {
method getChunkSize (line 65) | public Integer getChunkSize() {
method setChunkSize (line 73) | public void setChunkSize(Integer chunkSize) {
method getJobName (line 81) | public String getJobName() {
method setJobName (line 89) | public void setJobName(String jobName) {
FILE: spring-cloud-starter-single-step-batch-job/src/main/java/org/springframework/cloud/task/batch/autoconfigure/flatfile/FlatFileItemReaderAutoConfiguration.java
class FlatFileItemReaderAutoConfiguration (line 53) | @AutoConfiguration
method FlatFileItemReaderAutoConfiguration (line 62) | public FlatFileItemReaderAutoConfiguration(FlatFileItemReaderPropertie...
method itemReader (line 66) | @Bean
class MapFieldSetMapper (line 128) | public static class MapFieldSetMapper implements FieldSetMapper<Map<St...
method mapFieldSet (line 130) | @Override
FILE: spring-cloud-starter-single-step-batch-job/src/main/java/org/springframework/cloud/task/batch/autoconfigure/flatfile/FlatFileItemReaderProperties.java
class FlatFileItemReaderProperties (line 34) | @ConfigurationProperties(prefix = "spring.batch.job.flatfileitemreader")
method isSaveState (line 132) | public boolean isSaveState() {
method setSaveState (line 144) | public void setSaveState(boolean saveState) {
method getName (line 153) | public String getName() {
method setName (line 164) | public void setName(String name) {
method getMaxItemCount (line 172) | public int getMaxItemCount() {
method setMaxItemCount (line 181) | public void setMaxItemCount(int maxItemCount) {
method getCurrentItemCount (line 189) | public int getCurrentItemCount() {
method setCurrentItemCount (line 198) | public void setCurrentItemCount(int currentItemCount) {
method getComments (line 206) | public List<String> getComments() {
method setComments (line 214) | public void setComments(List<String> comments) {
method getResource (line 222) | public Resource getResource() {
method setResource (line 231) | public void setResource(Resource resource) {
method isStrict (line 239) | public boolean isStrict() {
method setStrict (line 249) | public void setStrict(boolean strict) {
method getEncoding (line 258) | public String getEncoding() {
method setEncoding (line 268) | public void setEncoding(String encoding) {
method getLinesToSkip (line 276) | public int getLinesToSkip() {
method setLinesToSkip (line 285) | public void setLinesToSkip(int linesToSkip) {
method isDelimited (line 293) | public boolean isDelimited() {
method setDelimited (line 301) | public void setDelimited(boolean delimited) {
method getDelimiter (line 309) | public String getDelimiter() {
method setDelimiter (line 318) | public void setDelimiter(String delimiter) {
method getQuoteCharacter (line 326) | public char getQuoteCharacter() {
method setQuoteCharacter (line 335) | public void setQuoteCharacter(char quoteCharacter) {
method getIncludedFields (line 343) | public List<Integer> getIncludedFields() {
method setIncludedFields (line 352) | public void setIncludedFields(List<Integer> includedFields) {
method isFixedLength (line 360) | public boolean isFixedLength() {
method setFixedLength (line 370) | public void setFixedLength(boolean fixedLength) {
method getRanges (line 378) | public List<String> getRanges() {
method setRanges (line 386) | public void setRanges(List<String> ranges) {
method getNames (line 394) | public String[] getNames() {
method setNames (line 402) | public void setNames(String[] names) {
method isParsingStrict (line 410) | public boolean isParsingStrict() {
method setParsingStrict (line 418) | public void setParsingStrict(boolean parsingStrict) {
FILE: spring-cloud-starter-single-step-batch-job/src/main/java/org/springframework/cloud/task/batch/autoconfigure/flatfile/FlatFileItemWriterAutoConfiguration.java
class FlatFileItemWriterAutoConfiguration (line 45) | @AutoConfiguration
method FlatFileItemWriterAutoConfiguration (line 64) | public FlatFileItemWriterAutoConfiguration(FlatFileItemWriterPropertie...
method itemWriter (line 68) | @Bean
class MapFieldExtractor (line 132) | public static class MapFieldExtractor implements FieldExtractor<Map<St...
method MapFieldExtractor (line 136) | public MapFieldExtractor(String[] names) {
method extract (line 140) | @Override
FILE: spring-cloud-starter-single-step-batch-job/src/main/java/org/springframework/cloud/task/batch/autoconfigure/flatfile/FlatFileItemWriterProperties.java
class FlatFileItemWriterProperties (line 31) | @ConfigurationProperties(prefix = "spring.batch.job.flatfileitemwriter")
method isSaveState (line 139) | public boolean isSaveState() {
method setSaveState (line 151) | public void setSaveState(boolean saveState) {
method getName (line 160) | public String getName() {
method setName (line 171) | public void setName(String name) {
method getResource (line 179) | public Resource getResource() {
method setResource (line 188) | public void setResource(Resource resource) {
method isDelimited (line 196) | public boolean isDelimited() {
method setDelimited (line 205) | public void setDelimited(boolean delimited) {
method getDelimiter (line 214) | public String getDelimiter() {
method setDelimiter (line 222) | public void setDelimiter(String delimiter) {
method getNames (line 230) | public String[] getNames() {
method setNames (line 238) | public void setNames(String[] names) {
method isAppend (line 247) | public boolean isAppend() {
method setAppend (line 256) | public void setAppend(boolean append) {
method isFormatted (line 264) | public boolean isFormatted() {
method setFormatted (line 273) | public void setFormatted(boolean formatted) {
method getEncoding (line 282) | public String getEncoding() {
method setEncoding (line 290) | public void setEncoding(String encoding) {
method isForceSync (line 299) | public boolean isForceSync() {
method setForceSync (line 308) | public void setForceSync(boolean forceSync) {
method getLineSeparator (line 317) | public String getLineSeparator() {
method setLineSeparator (line 325) | public void setLineSeparator(String lineSeparator) {
method isShouldDeleteIfEmpty (line 334) | public boolean isShouldDeleteIfEmpty() {
method setShouldDeleteIfEmpty (line 344) | public void setShouldDeleteIfEmpty(boolean shouldDeleteIfEmpty) {
method isShouldDeleteIfExists (line 353) | public boolean isShouldDeleteIfExists() {
method setShouldDeleteIfExists (line 363) | public void setShouldDeleteIfExists(boolean shouldDeleteIfExists) {
method isTransactional (line 372) | public boolean isTransactional() {
method setTransactional (line 380) | public void setTransactional(boolean transactional) {
method getFormat (line 388) | public String getFormat() {
method setFormat (line 396) | public void setFormat(String format) {
method getLocale (line 404) | public Locale getLocale() {
method setLocale (line 412) | public void setLocale(Locale locale) {
method getMaximumLength (line 420) | public int getMaximumLength() {
method setMaximumLength (line 428) | public void setMaximumLength(int maximumLength) {
method getMinimumLength (line 436) | public int getMinimumLength() {
method setMinimumLength (line 444) | public void setMinimumLength(int minimumLength) {
FILE: spring-cloud-starter-single-step-batch-job/src/main/java/org/springframework/cloud/task/batch/autoconfigure/jdbc/JDBCSingleStepDataSourceAutoConfiguration.java
class JDBCSingleStepDataSourceAutoConfiguration (line 40) | class JDBCSingleStepDataSourceAutoConfiguration {
method myTaskConfigurer (line 42) | @ConditionalOnMissingBean
method springDataSourceProperties (line 48) | @ConditionalOnProperty(prefix = "spring.batch.job.jdbcsinglestep.datas...
method dataSource (line 58) | @ConditionalOnProperty(prefix = "spring.batch.job.jdbcsinglestep.datas...
FILE: spring-cloud-starter-single-step-batch-job/src/main/java/org/springframework/cloud/task/batch/autoconfigure/jdbc/JdbcBatchItemWriterAutoConfiguration.java
class JdbcBatchItemWriterAutoConfiguration (line 51) | @AutoConfiguration
method JdbcBatchItemWriterAutoConfiguration (line 72) | public JdbcBatchItemWriterAutoConfiguration(DataSource dataSource, Jdb...
method itemWriter (line 77) | @Bean
method jdbcBatchItemWriterDataSourceProperties (line 105) | @ConditionalOnProperty(prefix = "spring.batch.job.jdbcbatchitemwriter....
method writerDataSource (line 113) | @ConditionalOnProperty(prefix = "spring.batch.job.jdbcbatchitemwriter....
FILE: spring-cloud-starter-single-step-batch-job/src/main/java/org/springframework/cloud/task/batch/autoconfigure/jdbc/JdbcBatchItemWriterProperties.java
class JdbcBatchItemWriterProperties (line 27) | @ConfigurationProperties(prefix = "spring.batch.job.jdbcbatchitemwriter")
method getSql (line 50) | public String getSql() {
method setSql (line 58) | public void setSql(String sql) {
method isAssertUpdates (line 66) | public boolean isAssertUpdates() {
method setAssertUpdates (line 74) | public void setAssertUpdates(boolean assertUpdates) {
method getName (line 83) | public String getName() {
method setName (line 93) | public void setName(String name) {
FILE: spring-cloud-starter-single-step-batch-job/src/main/java/org/springframework/cloud/task/batch/autoconfigure/jdbc/JdbcCursorItemReaderAutoConfiguration.java
class JdbcCursorItemReaderAutoConfiguration (line 52) | @AutoConfiguration
method JdbcCursorItemReaderAutoConfiguration (line 68) | public JdbcCursorItemReaderAutoConfiguration(JdbcCursorItemReaderPrope...
method itemReader (line 73) | @Bean
method rowMapper (line 105) | @Bean
method jdbcCursorItemReaderDataSourceProperties (line 111) | @ConditionalOnProperty(prefix = "spring.batch.job.jdbccursoritemreader...
method readerDataSource (line 119) | @ConditionalOnProperty(prefix = "spring.batch.job.jdbccursoritemreader...
class MapRowMapper (line 128) | public static class MapRowMapper implements RowMapper<Map<String, Obje...
method mapRow (line 130) | @Override
FILE: spring-cloud-starter-single-step-batch-job/src/main/java/org/springframework/cloud/task/batch/autoconfigure/jdbc/JdbcCursorItemReaderProperties.java
class JdbcCursorItemReaderProperties (line 25) | @ConfigurationProperties(prefix = "spring.batch.job.jdbccursoritemreader")
method isSaveState (line 102) | public boolean isSaveState() {
method setSaveState (line 114) | public void setSaveState(boolean saveState) {
method getName (line 123) | public String getName() {
method setName (line 134) | public void setName(String name) {
method getMaxItemCount (line 142) | public int getMaxItemCount() {
method setMaxItemCount (line 151) | public void setMaxItemCount(int maxItemCount) {
method getCurrentItemCount (line 159) | public int getCurrentItemCount() {
method setCurrentItemCount (line 168) | public void setCurrentItemCount(int currentItemCount) {
method getFetchSize (line 177) | public int getFetchSize() {
method setFetchSize (line 186) | public void setFetchSize(int fetchSize) {
method getMaxRows (line 194) | public int getMaxRows() {
method setMaxRows (line 203) | public void setMaxRows(int maxRows) {
method getQueryTimeout (line 211) | public int getQueryTimeout() {
method setQueryTimeout (line 220) | public void setQueryTimeout(int queryTimeout) {
method isIgnoreWarnings (line 228) | public boolean isIgnoreWarnings() {
method setIgnoreWarnings (line 237) | public void setIgnoreWarnings(boolean ignoreWarnings) {
method isVerifyCursorPosition (line 246) | public boolean isVerifyCursorPosition() {
method setVerifyCursorPosition (line 255) | public void setVerifyCursorPosition(boolean verifyCursorPosition) {
method isDriverSupportsAbsolute (line 263) | public boolean isDriverSupportsAbsolute() {
method setDriverSupportsAbsolute (line 272) | public void setDriverSupportsAbsolute(boolean driverSupportsAbsolute) {
method isUseSharedExtendedConnection (line 281) | public boolean isUseSharedExtendedConnection() {
method setUseSharedExtendedConnection (line 292) | public void setUseSharedExtendedConnection(boolean useSharedExtendedCo...
method getSql (line 300) | public String getSql() {
method setSql (line 309) | public void setSql(String sql) {
FILE: spring-cloud-starter-single-step-batch-job/src/main/java/org/springframework/cloud/task/batch/autoconfigure/kafka/KafkaItemReaderAutoConfiguration.java
class KafkaItemReaderAutoConfiguration (line 45) | @AutoConfiguration
method kafkaItemReader (line 53) | @Bean
method validateProperties (line 76) | private void validateProperties(KafkaItemReaderProperties kafkaItemRea...
FILE: spring-cloud-starter-single-step-batch-job/src/main/java/org/springframework/cloud/task/batch/autoconfigure/kafka/KafkaItemReaderProperties.java
class KafkaItemReaderProperties (line 30) | @ConfigurationProperties(prefix = "spring.batch.job.kafkaitemreader")
method getName (line 70) | public String getName() {
method setName (line 80) | public void setName(String name) {
method getTopic (line 88) | public String getTopic() {
method setTopic (line 96) | public void setTopic(String topic) {
method getPartitions (line 105) | public List<Integer> getPartitions() {
method setPartitions (line 114) | public void setPartitions(List<Integer> partitions) {
method getPollTimeOutInSeconds (line 122) | public long getPollTimeOutInSeconds() {
method setPollTimeOutInSeconds (line 130) | public void setPollTimeOutInSeconds(long pollTimeOutInSeconds) {
method isSaveState (line 142) | public boolean isSaveState() {
method setSaveState (line 154) | public void setSaveState(boolean saveState) {
FILE: spring-cloud-starter-single-step-batch-job/src/main/java/org/springframework/cloud/task/batch/autoconfigure/kafka/KafkaItemWriterAutoConfiguration.java
class KafkaItemWriterAutoConfiguration (line 49) | @AutoConfiguration
method kafkaItemWriter (line 57) | @Bean
method batchItemKeyMapper (line 74) | @Bean
method producerFactory (line 85) | @Bean
method validateProperties (line 93) | private void validateProperties(KafkaItemWriterProperties kafkaItemWri...
FILE: spring-cloud-starter-single-step-batch-job/src/main/java/org/springframework/cloud/task/batch/autoconfigure/kafka/KafkaItemWriterProperties.java
class KafkaItemWriterProperties (line 27) | @ConfigurationProperties(prefix = "spring.batch.job.kafkaitemwriter")
method getTopic (line 45) | public String getTopic() {
method setTopic (line 53) | public void setTopic(String topic) {
method isDelete (line 65) | public boolean isDelete() {
method setDelete (line 77) | public void setDelete(boolean delete) {
FILE: spring-cloud-starter-single-step-batch-job/src/main/java/org/springframework/cloud/task/batch/autoconfigure/rabbit/AmqpItemReaderAutoConfiguration.java
class AmqpItemReaderAutoConfiguration (line 42) | @AutoConfiguration
method amqpItemReaderProperties (line 51) | @Bean
method amqpItemReader (line 56) | @Bean
method messageConverter (line 67) | @ConditionalOnProperty(name = "spring.batch.job.amqpitemreader.jsonCon...
FILE: spring-cloud-starter-single-step-batch-job/src/main/java/org/springframework/cloud/task/batch/autoconfigure/rabbit/AmqpItemReaderProperties.java
class AmqpItemReaderProperties (line 28) | @ConfigurationProperties(prefix = "spring.batch.job.amqpitemreader")
method isEnabled (line 46) | public boolean isEnabled() {
method setEnabled (line 54) | public void setEnabled(boolean enabled) {
method isJsonConverterEnabled (line 63) | public boolean isJsonConverterEnabled() {
method setJsonConverterEnabled (line 73) | public void setJsonConverterEnabled(boolean jsonConverterEnabled) {
FILE: spring-cloud-starter-single-step-batch-job/src/main/java/org/springframework/cloud/task/batch/autoconfigure/rabbit/AmqpItemWriterAutoConfiguration.java
class AmqpItemWriterAutoConfiguration (line 40) | @AutoConfiguration
method amqpItemWriter (line 46) | @Bean
method amqpItemWriterProperties (line 51) | @Bean
method messageConverter (line 56) | @ConditionalOnProperty(name = "spring.batch.job.amqpitemwriter.jsonCon...
FILE: spring-cloud-starter-single-step-batch-job/src/main/java/org/springframework/cloud/task/batch/autoconfigure/rabbit/AmqpItemWriterProperties.java
class AmqpItemWriterProperties (line 26) | @ConfigurationProperties(prefix = "spring.batch.job.amqpitemwriter")
method isEnabled (line 44) | public boolean isEnabled() {
method setEnabled (line 53) | public void setEnabled(boolean enabled) {
method isJsonConverterEnabled (line 62) | public boolean isJsonConverterEnabled() {
method setJsonConverterEnabled (line 72) | public void setJsonConverterEnabled(boolean jsonConverterEnabled) {
FILE: spring-cloud-starter-single-step-batch-job/src/test/java/org/springframework/cloud/task/batch/autoconfigure/RangeConverterTests.java
class RangeConverterTests (line 29) | public class RangeConverterTests {
method testNullInput (line 31) | @Test
method testStartValueOnly (line 38) | @Test
method testStartAndEndValue (line 48) | @Test
method testIllegalValue (line 58) | @Test
method testTooManyValues (line 67) | @Test
FILE: spring-cloud-starter-single-step-batch-job/src/test/java/org/springframework/cloud/task/batch/autoconfigure/SingleStepJobAutoConfigurationTests.java
class SingleStepJobAutoConfigurationTests (line 49) | public class SingleStepJobAutoConfigurationTests {
method testInvalidProperties (line 51) | @Test
method testSimpleConfiguration (line 104) | @Test
method testSimpleConfigurationKabobStyle (line 117) | @Test
method validateConfiguration (line 130) | private void validateConfiguration(ApplicationContextRunner applicatio...
class SimpleConfiguration (line 156) | @Configuration
method platformTransactionManager (line 159) | @Bean
method itemReader (line 164) | @Bean
method itemWriter (line 175) | @Bean
FILE: spring-cloud-starter-single-step-batch-job/src/test/java/org/springframework/cloud/task/batch/autoconfigure/flatfile/FlatFileItemReaderAutoConfigurationTests.java
class FlatFileItemReaderAutoConfigurationTests (line 57) | public class FlatFileItemReaderAutoConfigurationTests {
method testFullDelimitedConfiguration (line 77) | @Test
method testFixedWidthConfiguration (line 133) | @Test
method testCustomLineMapper (line 190) | @Test
method testCustomRecordSeparatorAndSkippedLines (line 226) | @Test
method testCustomMapping (line 267) | @Test
class CustomMappingConfiguration (line 303) | @Configuration
method platformTransactionManager (line 306) | @Bean
method itemWriter (line 311) | @Bean
method lineTokenizer (line 316) | @Bean
method fieldSetMapper (line 322) | @Bean
class JobConfiguration (line 329) | @Configuration
method platformTransactionManager (line 332) | @Bean
method itemWriter (line 337) | @Bean
class RecordSeparatorAndSkippedLinesJobConfiguration (line 344) | @Configuration
method platformTransactionManager (line 347) | @Bean
method recordSeparatorPolicy (line 352) | @Bean
method lineCallbackHandler (line 381) | @Bean
method itemWriter (line 386) | @Bean
class CustomLineMapperConfiguration (line 393) | @Configuration
method platformTransactionManager (line 396) | @Bean
method lineMapper (line 401) | @Bean
method itemWriter (line 413) | @Bean
class ListLineCallbackHandler (line 420) | public static class ListLineCallbackHandler implements LineCallbackHan...
method handleLine (line 424) | @Override
method getLines (line 429) | public List<String> getLines() {
FILE: spring-cloud-starter-single-step-batch-job/src/test/java/org/springframework/cloud/task/batch/autoconfigure/flatfile/FlatFileItemWriterAutoConfigurationTests.java
class FlatFileItemWriterAutoConfigurationTests (line 65) | public class FlatFileItemWriterAutoConfigurationTests {
method setUp (line 69) | @BeforeEach
method tearDown (line 74) | @AfterEach
method testValidation (line 79) | @Test
method testDelimitedFileGeneration (line 134) | @Test
method testFormattedFileGeneration (line 181) | @Test
method testFormattedFieldExtractorFileGeneration (line 220) | @Test
method testFieldExtractorFileGeneration (line 257) | @Test
method testCustomLineAggregatorFileGeneration (line 292) | @Test
method testHeaderFooterFileGeneration (line 326) | @Test
class DelimitedJobConfiguration (line 362) | @Configuration
method platformTransactionManager (line 365) | @Bean
method itemReader (line 370) | @Bean
class LineAggregatorConfiguration (line 384) | @Configuration
method platformTransactionManager (line 387) | @Bean
method itemReader (line 392) | @Bean
method lineAggregator (line 404) | @Bean
class HeaderFooterConfiguration (line 411) | @Configuration
method platformTransactionManager (line 414) | @Bean
method itemReader (line 419) | @Bean
method headerCallback (line 431) | @Bean
method footerCallback (line 436) | @Bean
class FieldExtractorConfiguration (line 443) | @Configuration
method platformTransactionManager (line 446) | @Bean
method itemReader (line 451) | @Bean
method lineAggregator (line 463) | @Bean
class FormattedJobConfiguration (line 475) | @Configuration
method platformTransactionManager (line 478) | @Bean
method itemReader (line 483) | @Bean
class FormattedFieldExtractorJobConfiguration (line 497) | @Configuration
method platformTransactionManager (line 500) | @Bean
method lineAggregator (line 505) | @Bean
method itemReader (line 515) | @Bean
FILE: spring-cloud-starter-single-step-batch-job/src/test/java/org/springframework/cloud/task/batch/autoconfigure/jdbc/JdbcBatchItemWriterAutoConfigurationTests.java
class JdbcBatchItemWriterAutoConfigurationTests (line 67) | public class JdbcBatchItemWriterAutoConfigurationTests {
method clearDB (line 85) | @AfterEach
method baseTest (line 107) | @Test
method baseTestWithWriterDataSource (line 121) | @Test
method customSqlParameterSourceTest (line 143) | @Test
method preparedStatementSetterTest (line 158) | @Test
method updatePropertiesForTest (line 172) | private ApplicationContextRunner updatePropertiesForTest(ApplicationCo...
method validateResultAndBean (line 180) | private void validateResultAndBean(ApplicationContext context, boolean...
method runTest (line 210) | private void runTest(ApplicationContextRunner applicationContextRunner...
class TaskLauncherConfiguration (line 227) | @Configuration
method initH2TCPServer (line 232) | @Bean
method dataSource (line 258) | @Bean
class DelimitedJobConfiguration (line 270) | @Configuration
method platformTransactionManager (line 273) | @Bean
method itemReader (line 278) | @Bean
class DelimitedDifferentKeyNameJobConfiguration (line 292) | @Configuration
method platformTransactionManager (line 295) | @Bean
method itemReader (line 300) | @Bean
class CustomSqlParameterSourceProviderConfiguration (line 314) | @Configuration
method itemSqlParameterSourceProvider (line 317) | @Bean
class ItemPreparedStatementSetterConfiguration (line 328) | @Configuration
method itemPreparedStatementSetter (line 331) | @Bean
FILE: spring-cloud-starter-single-step-batch-job/src/test/java/org/springframework/cloud/task/batch/autoconfigure/jdbc/JdbcCursorItemReaderAutoConfigurationTests.java
class JdbcCursorItemReaderAutoConfigurationTests (line 65) | public class JdbcCursorItemReaderAutoConfigurationTests {
method clearDB (line 83) | @AfterAll
method testIntegration (line 101) | @Test
method applicationContextRunner (line 135) | private ApplicationContextRunner applicationContextRunner() {
method testIntegrationReaderDataSourceEnabled (line 143) | @Test
method testCustomRowMapper (line 179) | @Test
method testRoseyScenario (line 214) | @Test
method validateBean (line 243) | private void validateBean(JdbcCursorItemReader itemReader) {
method testNoName (line 262) | @Test
method testSqlName (line 277) | @Test
method runTest (line 292) | private void runTest(ApplicationContextRunner applicationContextRunner) {
class TaskLauncherConfiguration (line 308) | @AutoConfigureBefore({ JdbcCursorItemReaderAutoConfiguration.class,
method platformTransactionManager (line 313) | @Bean
method initH2TCPServer (line 320) | @Bean
method dataSource (line 353) | @Bean
class BaseConfiguration (line 365) | @Configuration
method itemWriter (line 368) | @Bean
class RowMapperConfiguration (line 375) | @Configuration
method rowMapper (line 378) | @Bean
method itemWriter (line 389) | @Bean
FILE: spring-cloud-starter-single-step-batch-job/src/test/java/org/springframework/cloud/task/batch/autoconfigure/kafka/KafkaItemReaderAutoConfigurationTests.java
class KafkaItemReaderAutoConfigurationTests (line 62) | @EmbeddedKafka(partitions = 1, topics = { "test" })
method setupTest (line 67) | @BeforeAll
method testBaseKafkaItemReader (line 74) | @Test
method testBaseKafkaItemReaderMultiplePartitions (line 116) | @Test
method testBaseKafkaItemReaderPollTimeoutDefault (line 153) | @Test
method basicValidation (line 190) | private void basicValidation(ListItemWriter itemWriter) {
method populateSingleTopic (line 201) | private void populateSingleTopic(String topic) {
class CustomMappingConfiguration (line 222) | @Configuration
method platformTransactionManager (line 225) | @Bean
method itemWriter (line 230) | @Bean
method sslBundles (line 235) | @Bean
FILE: spring-cloud-starter-single-step-batch-job/src/test/java/org/springframework/cloud/task/batch/autoconfigure/kafka/KafkaItemWriterTests.java
class KafkaItemWriterTests (line 60) | @EmbeddedKafka(partitions = 1, topics = { "topic1" })
method setupTest (line 65) | @BeforeAll
method testBaseKafkaItemWriter (line 71) | @Test
method validateResults (line 91) | private void validateResults(String topicName) {
method waitForTopicPopulation (line 114) | private void waitForTopicPopulation(ApplicationContext context) throws...
class CustomMappingConfiguration (line 125) | @Configuration
method platformTransactionManager (line 128) | @Bean
method itemReader (line 133) | @Bean
method addNameToReaderList (line 144) | private void addNameToReaderList(List<Map<String, Object>> itemReade...
method sslBundles (line 150) | @Bean
FILE: spring-cloud-starter-single-step-batch-job/src/test/java/org/springframework/cloud/task/batch/autoconfigure/rabbit/AmqpItemReaderAutoConfigurationTests.java
class AmqpItemReaderAutoConfigurationTests (line 60) | @Tag("DockerRequired")
method setupTest (line 79) | @BeforeEach
method teardownTest (line 98) | @AfterEach
method basicTest (line 105) | @Test
method basicTestWithItemType (line 131) | @Test
method useAmqpTemplateTest (line 156) | @Test
method runJob (line 174) | private JobExecution runJob(AssertableApplicationContext context) thro...
method validateBasicTest (line 180) | private void validateBasicTest(List<Map<String, Object>> items) {
class MockTemplateConfiguration (line 187) | public static class MockTemplateConfiguration extends BaseConfiguration {
method amqpTemplateBean (line 189) | @Bean
class ItemTypeConfiguration (line 196) | public static class ItemTypeConfiguration extends BaseConfiguration {
method itemTypeClass (line 198) | @Bean
class BaseConfiguration (line 205) | @Configuration
method platformTransactionManager (line 208) | @Bean
method itemWriter (line 213) | @Bean
FILE: spring-cloud-starter-single-step-batch-job/src/test/java/org/springframework/cloud/task/batch/autoconfigure/rabbit/AmqpItemWriterAutoConfigurationTests.java
class AmqpItemWriterAutoConfigurationTests (line 65) | @Tag("DockerRequired")
method addNameToReaderList (line 98) | private static void addNameToReaderList(List<Map<String, Object>> item...
method setupTest (line 104) | @BeforeEach
method teardownTest (line 119) | @AfterEach
method basicTest (line 126) | @Test
method useAmqpTemplateTest (line 151) | @Test
method runJob (line 167) | private JobExecution runJob(AssertableApplicationContext context) thro...
class BaseConfiguration (line 175) | @Configuration
class MockConfiguration (line 180) | @Configuration
method amqpTemplateBean (line 183) | @Bean
class ItemWriterConfiguration (line 190) | public static class ItemWriterConfiguration {
method platformTransactionManager (line 192) | @Bean
method rowMapper (line 197) | @Bean
method itemWriter (line 208) | @Bean
FILE: spring-cloud-starter-single-step-batch-job/src/test/resources/schema-h2.sql
type item (line 1) | CREATE TABLE IF NOT EXISTS item
FILE: spring-cloud-task-batch/src/main/java/org/springframework/cloud/task/batch/configuration/JobLaunchCondition.java
class JobLaunchCondition (line 28) | public class JobLaunchCondition extends AllNestedConditions {
method JobLaunchCondition (line 30) | public JobLaunchCondition() {
class FailOnJobFailureCondition (line 34) | @ConditionalOnProperty(name = "spring.cloud.task.batch.fail-on-job-fai...
class SpringBatchJobCondition (line 39) | @ConditionalOnProperty(prefix = "spring.batch.job", name = "enabled", ...
FILE: spring-cloud-task-batch/src/main/java/org/springframework/cloud/task/batch/configuration/TaskBatchAutoConfiguration.java
class TaskBatchAutoConfiguration (line 42) | @AutoConfiguration
method batchTaskExecutionListenerBeanPostProcessor (line 48) | @Bean
class TaskBatchExecutionListenerAutoconfiguration (line 57) | @AutoConfiguration
method taskBatchExecutionListener (line 68) | @Bean
FILE: spring-cloud-task-batch/src/main/java/org/springframework/cloud/task/batch/configuration/TaskBatchExecutionListenerBeanPostProcessor.java
class TaskBatchExecutionListenerBeanPostProcessor (line 38) | public class TaskBatchExecutionListenerBeanPostProcessor implements Bean...
method postProcessBeforeInitialization (line 45) | @Override
method postProcessAfterInitialization (line 50) | @Override
method setJobNames (line 68) | public void setJobNames(List<String> jobNames) {
FILE: spring-cloud-task-batch/src/main/java/org/springframework/cloud/task/batch/configuration/TaskBatchExecutionListenerFactoryBean.java
class TaskBatchExecutionListenerFactoryBean (line 43) | public class TaskBatchExecutionListenerFactoryBean implements FactoryBea...
method TaskBatchExecutionListenerFactoryBean (line 59) | public TaskBatchExecutionListenerFactoryBean(DataSource dataSource, Ta...
method TaskBatchExecutionListenerFactoryBean (line 71) | public TaskBatchExecutionListenerFactoryBean(DataSource dataSource, Ta...
method getObject (line 77) | @Override
method getObjectType (line 92) | @Override
method isSingleton (line 97) | @Override
method getMapTaskBatchDao (line 102) | private MapTaskBatchDao getMapTaskBatchDao() throws Exception {
FILE: spring-cloud-task-batch/src/main/java/org/springframework/cloud/task/batch/configuration/TaskBatchProperties.java
class TaskBatchProperties (line 28) | @ConfigurationProperties(prefix = "spring.cloud.task.batch")
method getJobNames (line 55) | public String getJobNames() {
method setJobNames (line 59) | public void setJobNames(String jobNames) {
method getCommandLineRunnerOrder (line 63) | @Deprecated
method setCommandLineRunnerOrder (line 68) | @Deprecated
method getApplicationRunnerOrder (line 73) | public int getApplicationRunnerOrder() {
method setApplicationRunnerOrder (line 77) | public void setApplicationRunnerOrder(int applicationRunnerOrder) {
method getFailOnJobFailurePollInterval (line 81) | public long getFailOnJobFailurePollInterval() {
method setFailOnJobFailurePollInterval (line 85) | public void setFailOnJobFailurePollInterval(long failOnJobFailurePollI...
FILE: spring-cloud-task-batch/src/main/java/org/springframework/cloud/task/batch/configuration/TaskJobLauncherApplicationRunnerFactoryBean.java
class TaskJobLauncherApplicationRunnerFactoryBean (line 39) | public class TaskJobLauncherApplicationRunnerFactoryBean
method TaskJobLauncherApplicationRunnerFactoryBean (line 58) | public TaskJobLauncherApplicationRunnerFactoryBean(JobOperator jobOper...
method setOrder (line 80) | public void setOrder(int order) {
method getObject (line 84) | @Override
method getObjectType (line 103) | @Override
method setApplicationEventPublisher (line 108) | @Override
FILE: spring-cloud-task-batch/src/main/java/org/springframework/cloud/task/batch/configuration/TaskJobLauncherAutoConfiguration.java
class TaskJobLauncherAutoConfiguration (line 41) | @AutoConfiguration
method taskJobLauncherApplicationRunner (line 50) | @Bean
FILE: spring-cloud-task-batch/src/main/java/org/springframework/cloud/task/batch/handler/TaskJobLauncherApplicationRunner.java
class TaskJobLauncherApplicationRunner (line 72) | public class TaskJobLauncherApplicationRunner extends JobLauncherApplica...
method TaskJobLauncherApplicationRunner (line 94) | public TaskJobLauncherApplicationRunner(JobOperator jobOperator, JobRe...
method setApplicationEventPublisher (line 102) | @Override
method run (line 108) | @Override
method execute (line 119) | @Override
method monitorJobExecutions (line 160) | private void monitorJobExecutions() {
method getCurrentBatchStatus (line 184) | private BatchStatus getCurrentBatchStatus(JobExecution jobExecution) {
method throwJobFailedException (line 191) | private void throwJobFailedException(List<JobExecution> failedJobExecu...
method removeNonIdentifying (line 206) | private JobParameters removeNonIdentifying(JobParameters parameters) {
method isStoppedOrFailed (line 219) | private boolean isStoppedOrFailed(JobExecution execution) {
method merge (line 224) | private JobParameters merge(JobParameters parameters, JobParameters ad...
method getNextJobParameters (line 251) | public JobParameters getNextJobParameters(Job job, Set<JobParameter<?>...
FILE: spring-cloud-task-batch/src/main/java/org/springframework/cloud/task/batch/listener/TaskBatchDao.java
type TaskBatchDao (line 28) | public interface TaskBatchDao {
method saveRelationship (line 35) | void saveRelationship(TaskExecution taskExecution, JobExecution jobExe...
FILE: spring-cloud-task-batch/src/main/java/org/springframework/cloud/task/batch/listener/TaskBatchExecutionListener.java
class TaskBatchExecutionListener (line 35) | public class TaskBatchExecutionListener implements JobExecutionListener,...
method TaskBatchExecutionListener (line 46) | public TaskBatchExecutionListener(TaskBatchDao taskBatchDao) {
method onTaskStartup (line 52) | @Override
method beforeJob (line 57) | @Override
method getOrder (line 69) | @Override
FILE: spring-cloud-task-batch/src/main/java/org/springframework/cloud/task/batch/listener/support/JdbcTaskBatchDao.java
class JdbcTaskBatchDao (line 38) | public class JdbcTaskBatchDao implements TaskBatchDao {
method JdbcTaskBatchDao (line 51) | public JdbcTaskBatchDao(DataSource dataSource, String tablePrefix) {
method JdbcTaskBatchDao (line 62) | public JdbcTaskBatchDao(DataSource dataSource) {
method saveRelationship (line 68) | @Override
method getQuery (line 75) | private String getQuery(String base) {
FILE: spring-cloud-task-batch/src/main/java/org/springframework/cloud/task/batch/listener/support/MapTaskBatchDao.java
class MapTaskBatchDao (line 36) | public class MapTaskBatchDao implements TaskBatchDao {
method MapTaskBatchDao (line 40) | public MapTaskBatchDao(Map<Long, Set<Long>> relationships) {
method saveRelationship (line 45) | @Override
FILE: spring-cloud-task-batch/src/test/java/org/springframework/cloud/task/batch/configuration/TaskJobLauncherAutoConfigurationTests.java
class TaskJobLauncherAutoConfigurationTests (line 48) | public class TaskJobLauncherAutoConfigurationTests {
method testAutoBuiltDataSourceWithTaskJobLauncherCLR (line 54) | @Test
method testAutoBuiltDataSourceWithTaskJobLauncherCLROrder (line 62) | @Test
method testAutoBuiltDataSourceWithBatchJobNames (line 72) | @Test
method testAutoBuiltDataSourceWithTaskBatchJobNames (line 82) | @Test
method validateJobNames (line 92) | private void validateJobNames(AssertableApplicationContext context, St...
method testAutoBuiltDataSourceWithTaskJobLauncherCLRDisabled (line 100) | @Test
class TestJobConfiguration (line 108) | @Configuration
method job (line 113) | @Bean
method transactionManager (line 123) | @Bean
method jobRegistry (line 128) | @Bean
FILE: spring-cloud-task-batch/src/test/java/org/springframework/cloud/task/batch/handler/TaskJobLauncherApplicationRunnerCoreTests.java
class TaskJobLauncherApplicationRunnerCoreTests (line 61) | public class TaskJobLauncherApplicationRunnerCoreTests {
method basicExecution (line 68) | @Test
method incrementExistingExecution (line 79) | @Test
method runDifferentInstances (line 91) | @Test
method retryFailedExecutionOnNonRestartableJob (line 111) | @Test
method retryFailedExecutionWithNonIdentifyingParameters (line 137) | @Test
method throwingTasklet (line 160) | private Tasklet throwingTasklet() {
method runFailedJob (line 166) | private void runFailedJob(JobLauncherApplicationRunnerContext jobLaunc...
class JobLauncherApplicationRunnerContext (line 178) | static class JobLauncherApplicationRunnerContext {
method JobLauncherApplicationRunnerContext (line 192) | JobLauncherApplicationRunnerContext(ApplicationContext context) {
method jobInstances (line 203) | List<JobInstance> jobInstances() {
method executeJob (line 207) | void executeJob(JobParameters jobParameters) throws JobExecutionExce...
method jobBuilder (line 211) | JobBuilder jobBuilder() {
method stepBuilder (line 215) | StepBuilder stepBuilder() {
method configureJob (line 219) | SimpleJobBuilder configureJob() {
class BatchConfiguration (line 225) | @EnableBatchProcessing
method BatchConfiguration (line 232) | protected BatchConfiguration(DataSource dataSource) {
method batchDataSourceInitializer (line 236) | @Bean
FILE: spring-cloud-task-batch/src/test/java/org/springframework/cloud/task/batch/handler/TaskJobLauncherApplicationRunnerTests.java
class TaskJobLauncherApplicationRunnerTests (line 76) | public class TaskJobLauncherApplicationRunnerTests {
method tearDown (line 82) | @AfterEach
method testTaskJobLauncherCLRSuccessFail (line 89) | @Test
method testTaskJobLauncherCLRSuccessFailWithAnnotation (line 100) | @Disabled("The task repository is not getting populated.")
method testTaskJobLauncherCLRSuccessFailWithTaskExecutor (line 108) | @Test
method testNoTaskJobLauncher (line 116) | @Test
method testTaskJobLauncherPickOneJob (line 126) | @Test
method testApplicationRunnerSetToFalse (line 143) | @Test
method validateContext (line 159) | private void validateContext() {
method validateForFail (line 174) | private void validateForFail(String errorMessage, Class<?> clazz, Stri...
class JobExecutionEventListener (line 182) | @Component
method onApplicationEvent (line 187) | @Override
method getEventCounter (line 192) | public int getEventCounter() {
class JobConfiguration (line 198) | @EnableTask
method job (line 205) | @Bean
method jobRegistry (line 215) | @Bean
method transactionManager (line 220) | @Bean
class TransactionManagerTestConfiguration (line 227) | @Configuration(proxyBeanMethods = false)
method transactionManager (line 231) | @Bean
method batchProperties (line 236) | @Bean
method jobRegistry (line 241) | @Bean
method batchDataSourceInitializer (line 246) | @Bean
class JobWithFailureConfiguration (line 255) | @EnableBatchProcessing
method jobFail (line 270) | @Bean
method jobFun (line 280) | @Bean
class JobWithFailureAnnotatedConfiguration (line 292) | @EnableTask
class JobWithFailureTaskExecutorConfiguration (line 297) | @Import(JobWithFailureConfiguration.class)
FILE: spring-cloud-task-batch/src/test/java/org/springframework/cloud/task/batch/listener/PrefixTests.java
class PrefixTests (line 49) | public class PrefixTests {
method tearDown (line 53) | @AfterEach
method testPrefix (line 60) | @Disabled("Unable to find TaskRepository")
class JobConfiguration (line 72) | @AutoConfiguration
method job (line 77) | @Bean
method dataSource (line 87) | @Bean
method transactionManager (line 94) | @Bean
FILE: spring-cloud-task-batch/src/test/java/org/springframework/cloud/task/batch/listener/PrimaryKeyTests.java
class PrimaryKeyTests (line 49) | class PrimaryKeyTests {
method tearDown (line 53) | @AfterEach
method testSchemaWithPrimaryKeys (line 60) | @Disabled("Unable to find TaskRepository")
class JobConfiguration (line 71) | @Configuration(proxyBeanMethods = false)
method job (line 76) | @Bean
method dataSource (line 86) | @Bean
method transactionManager (line 93) | @Bean
FILE: spring-cloud-task-batch/src/test/java/org/springframework/cloud/task/batch/listener/TaskBatchExecutionListenerTests.java
class TaskBatchExecutionListenerTests (line 76) | @Disabled("Tests can not fined TaskRepository")
method tearDown (line 83) | @AfterEach
method testAutobuiltDataSource (line 90) | @Test
method testNoAutoConfigurationEnabled (line 96) | @Test
method testNoAutoConfigurationEnable (line 105) | @Test
method testNoAutoConfigurationBothDisabled (line 114) | @Test
method testAutoConfigurationEnable (line 123) | @Test
method testAutoConfigurationEnabled (line 130) | @Test
method testFactoryBean (line 137) | @Test
method validateContext (line 143) | private void validateContext() {
method testNoListenerIfTaskNotEnabled (line 156) | @Test
method testMultipleDataSources (line 166) | @Test
method testAutobuiltDataSourceNoJob (line 181) | @Test
method testMapBased (line 195) | @Test
method testMultipleJobs (line 211) | @Test
method testBatchExecutionListenerBeanPostProcessorWithJobNames (line 228) | @Test
method testBatchExecutionListenerBeanPostProcessorWithEmptyJobNames (line 242) | @Test
method testBatchExecutionListenerBeanPostProcessorNullJobNames (line 251) | @Test
method beanPostProcessor (line 258) | private TaskBatchExecutionListenerBeanPostProcessor beanPostProcessor(...
class NoJobConfiguration (line 271) | @EnableBatchProcessing
method transactionManager (line 277) | @Bean
class JobConfiguration (line 284) | @TaskBatchTest
method job (line 289) | @Bean
method transactionManager (line 299) | @Bean
class TaskNotEnabledConfiguration (line 306) | @EnableBatchProcessing
method job (line 311) | @Bean
method transactionManager (line 321) | @Bean
class JobFactoryBeanConfiguration (line 328) | @TaskBatchTest
method job (line 333) | @Bean
method transactionManager (line 358) | @Bean
class JobConfigurationMultipleDataSources (line 365) | @TaskBatchTest
method job (line 370) | @Bean
method myDataSource (line 384) | @Bean
method incorrectDataSource (line 392) | @Bean
method taskConfigurer (line 399) | @Bean
method transactionManager (line 404) | @Bean
class MultipleJobConfiguration (line 411) | @TaskBatchTest
method job1 (line 416) | @Bean
method job2 (line 426) | @Bean
method transactionManager (line 436) | @Bean
FILE: spring-cloud-task-batch/src/test/resources/schema-h2.sql
type FOO_EXECUTION (line 2) | CREATE TABLE FOO_EXECUTION (
type FOO_EXECUTION_PARAMS (line 15) | CREATE TABLE FOO_EXECUTION_PARAMS (
type FOO_TASK_BATCH (line 22) | CREATE TABLE FOO_TASK_BATCH (
type FOO_LOCK (line 31) | CREATE TABLE FOO_LOCK (
FILE: spring-cloud-task-batch/src/test/resources/schema-with-primary-keys-h2.sql
type TASK_EXECUTION (line 2) | CREATE TABLE TASK_EXECUTION (
type TASK_EXECUTION_PARAMS (line 15) | CREATE TABLE TASK_EXECUTION_PARAMS (
type TASK_TASK_BATCH (line 23) | CREATE TABLE TASK_TASK_BATCH (
type TASK_LOCK (line 33) | CREATE TABLE TASK_LOCK (
FILE: spring-cloud-task-core/src/main/java/org/springframework/cloud/task/configuration/DefaultTaskConfigurer.java
class DefaultTaskConfigurer (line 55) | public class DefaultTaskConfigurer implements TaskConfigurer {
method DefaultTaskConfigurer (line 71) | public DefaultTaskConfigurer() {
method DefaultTaskConfigurer (line 79) | public DefaultTaskConfigurer(TaskProperties taskProperties) {
method DefaultTaskConfigurer (line 90) | public DefaultTaskConfigurer(DataSource dataSource) {
method DefaultTaskConfigurer (line 103) | public DefaultTaskConfigurer(DataSource dataSource, TaskProperties tas...
method DefaultTaskConfigurer (line 112) | public DefaultTaskConfigurer(String tablePrefix) {
method DefaultTaskConfigurer (line 123) | public DefaultTaskConfigurer(String tablePrefix, TaskProperties taskPr...
method DefaultTaskConfigurer (line 136) | public DefaultTaskConfigurer(DataSource dataSource, String tablePrefix...
method DefaultTaskConfigurer (line 151) | public DefaultTaskConfigurer(DataSource dataSource, String tablePrefix...
method getTaskRepository (line 175) | @Override
method getTaskExplorer (line 180) | @Override
method getTaskDataSource (line 185) | @Override
method getTaskNameResolver (line 190) | @Override
method getTransactionManager (line 195) | @Override
method isDataSourceAvailable (line 223) | private boolean isDataSourceAvailable() {
FILE: spring-cloud-task-core/src/main/java/org/springframework/cloud/task/configuration/NoTransactionManagerProperty.java
class NoTransactionManagerProperty (line 29) | class NoTransactionManagerProperty extends NoneNestedConditions {
method NoTransactionManagerProperty (line 31) | NoTransactionManagerProperty() {
class OnProperty (line 35) | @ConditionalOnProperty(prefix = "spring.cloud.task", name = "transacti...
FILE: spring-cloud-task-core/src/main/java/org/springframework/cloud/task/configuration/SimpleTaskAutoConfiguration.java
class SimpleTaskAutoConfiguration (line 57) | @AutoConfiguration
method taskRepository (line 88) | @Bean
method springCloudTaskTransactionManager (line 93) | @Conditional(NoTransactionManagerProperty.class)
method taskExplorer (line 99) | @Bean
method taskNameResolver (line 104) | @Bean
method taskRepositoryInitializer (line 109) | @Bean
method taskObservationCloudKeyValues (line 120) | @Bean
method initialize (line 129) | @PostConstruct
method getDefaultConfigurer (line 146) | private TaskConfigurer getDefaultConfigurer() {
method verifyEnvironment (line 173) | private void verifyEnvironment() {
FILE: spring-cloud-task-core/src/main/java/org/springframework/cloud/task/configuration/SingleInstanceTaskListener.java
class SingleInstanceTaskListener (line 55) | public class SingleInstanceTaskListener implements ApplicationListener<A...
method SingleInstanceTaskListener (line 79) | public SingleInstanceTaskListener(LockRegistry lockRegistry, TaskNameR...
method SingleInstanceTaskListener (line 90) | public SingleInstanceTaskListener(DataSource dataSource, TaskNameResol...
method lockTask (line 102) | @BeforeTask
method unlockTaskOnEnd (line 133) | @AfterTask
method unlockTaskOnError (line 138) | @FailedTask
method onApplicationEvent (line 143) | @Override
method getDefaultLockRegistry (line 153) | private LockRegistry getDefaultLockRegistry(long executionId) {
FILE: spring-cloud-task-core/src/main/java/org/springframework/cloud/task/configuration/SingleTaskConfiguration.java
class SingleTaskConfiguration (line 37) | @Order(Ordered.HIGHEST_PRECEDENCE)
method taskListener (line 51) | @Bean
FILE: spring-cloud-task-core/src/main/java/org/springframework/cloud/task/configuration/TaskConfigurer.java
type TaskConfigurer (line 33) | public interface TaskConfigurer {
method getTaskRepository (line 39) | TaskRepository getTaskRepository();
method getTransactionManager (line 46) | PlatformTransactionManager getTransactionManager();
method getTaskExplorer (line 52) | TaskExplorer getTaskExplorer();
method getTaskDataSource (line 60) | DataSource getTaskDataSource();
method getTaskNameResolver (line 66) | TaskNameResolver getTaskNameResolver();
FILE: spring-cloud-task-core/src/main/java/org/springframework/cloud/task/configuration/TaskLifecycleConfiguration.java
class TaskLifecycleConfiguration (line 43) | @Configuration(proxyBeanMethods = false)
method TaskLifecycleConfiguration (line 68) | @Autowired
method taskLifecycleListener (line 86) | @Bean
method initialize (line 94) | @PostConstruct
FILE: spring-cloud-task-core/src/main/java/org/springframework/cloud/task/configuration/TaskObservationCloudKeyValues.java
class TaskObservationCloudKeyValues (line 28) | public class TaskObservationCloudKeyValues {
method getOrganizationName (line 51) | public String getOrganizationName() {
method setOrganizationName (line 55) | public void setOrganizationName(String organizationName) {
method getSpaceId (line 59) | public String getSpaceId() {
method setSpaceId (line 63) | public void setSpaceId(String spaceId) {
method getSpaceName (line 67) | public String getSpaceName() {
method setSpaceName (line 71) | public void setSpaceName(String spaceName) {
method getApplicationName (line 75) | public String getApplicationName() {
method setApplicationName (line 79) | public void setApplicationName(String applicationName) {
method getApplicationId (line 83) | public String getApplicationId() {
method setApplicationId (line 87) | public void setApplicationId(String applicationId) {
method getApplicationVersion (line 91) | public String getApplicationVersion() {
method setApplicationVersion (line 95) | public void setApplicationVersion(String applicationVersion) {
method getInstanceIndex (line 99) | public String getInstanceIndex() {
method setInstanceIndex (line 103) | public void setInstanceIndex(String instanceIndex) {
FILE: spring-cloud-task-core/src/main/java/org/springframework/cloud/task/configuration/TaskProperties.java
class TaskProperties (line 31) | @ConfigurationProperties(prefix = "spring.cloud.task")
method getExternalExecutionId (line 99) | public String getExternalExecutionId() {
method setExternalExecutionId (line 103) | public void setExternalExecutionId(String externalExecutionId) {
method getExecutionid (line 107) | public Long getExecutionid() {
method setExecutionid (line 111) | public void setExecutionid(Long executionid) {
method getClosecontextEnabled (line 115) | public Boolean getClosecontextEnabled() {
method setClosecontextEnabled (line 119) | public void setClosecontextEnabled(Boolean closecontextEnabled) {
method getTablePrefix (line 123) | public String getTablePrefix() {
method setTablePrefix (line 127) | public void setTablePrefix(String tablePrefix) {
method getParentExecutionId (line 131) | public Long getParentExecutionId() {
method setParentExecutionId (line 135) | public void setParentExecutionId(Long parentExecutionId) {
method getSingleInstanceEnabled (line 139) | public boolean getSingleInstanceEnabled() {
method setSingleInstanceEnabled (line 143) | public void setSingleInstanceEnabled(boolean singleInstanceEnabled) {
method getSingleInstanceLockTtl (line 147) | public int getSingleInstanceLockTtl() {
method setSingleInstanceLockTtl (line 151) | public void setSingleInstanceLockTtl(int singleInstanceLockTtl) {
method getSingleInstanceLockCheckInterval (line 155) | public int getSingleInstanceLockCheckInterval() {
method setSingleInstanceLockCheckInterval (line 159) | public void setSingleInstanceLockCheckInterval(int singleInstanceLockC...
method isInitializeEnabled (line 163) | public Boolean isInitializeEnabled() {
method setInitializeEnabled (line 167) | public void setInitializeEnabled(Boolean initializeEnabled) {
FILE: spring-cloud-task-core/src/main/java/org/springframework/cloud/task/configuration/TaskRepositoryDatabaseInitializerDetector.java
class TaskRepositoryDatabaseInitializerDetector (line 31) | class TaskRepositoryDatabaseInitializerDetector extends AbstractBeansOfT...
method getDatabaseInitializerBeanTypes (line 35) | @Override
method getOrder (line 40) | @Override
FILE: spring-cloud-task-core/src/main/java/org/springframework/cloud/task/configuration/TaskRepositoryDependsOnDatabaseInitializationDetector.java
class TaskRepositoryDependsOnDatabaseInitializationDetector (line 30) | class TaskRepositoryDependsOnDatabaseInitializationDetector
method getDependsOnDatabaseInitializationBeanTypes (line 33) | @Override
FILE: spring-cloud-task-core/src/main/java/org/springframework/cloud/task/configuration/TaskRuntimeHints.java
class TaskRuntimeHints (line 34) | public class TaskRuntimeHints implements RuntimeHintsRegistrar {
method registerHints (line 36) | @Override
FILE: spring-cloud-task-core/src/main/java/org/springframework/cloud/task/configuration/observation/DefaultTaskObservationConvention.java
class DefaultTaskObservationConvention (line 28) | public class DefaultTaskObservationConvention implements TaskObservation...
method getLowCardinalityKeyValues (line 30) | @Override
method getName (line 35) | @Override
FILE: spring-cloud-task-core/src/main/java/org/springframework/cloud/task/configuration/observation/ObservationApplicationRunner.java
class ObservationApplicationRunner (line 31) | class ObservationApplicationRunner implements ApplicationRunner {
method ObservationApplicationRunner (line 45) | ObservationApplicationRunner(BeanFactory beanFactory, ApplicationRunne...
method run (line 51) | @Override
method registry (line 70) | private ObservationRegistry registry() {
FILE: spring-cloud-task-core/src/main/java/org/springframework/cloud/task/configuration/observation/ObservationApplicationRunnerBeanPostProcessor.java
class ObservationApplicationRunnerBeanPostProcessor (line 29) | class ObservationApplicationRunnerBeanPostProcessor implements BeanPostP...
method ObservationApplicationRunnerBeanPostProcessor (line 33) | ObservationApplicationRunnerBeanPostProcessor(BeanFactory beanFactory) {
method postProcessAfterInitialization (line 37) | @Override
FILE: spring-cloud-task-core/src/main/java/org/springframework/cloud/task/configuration/observation/ObservationCommandLineRunner.java
class ObservationCommandLineRunner (line 30) | class ObservationCommandLineRunner implements CommandLineRunner {
method ObservationCommandLineRunner (line 44) | ObservationCommandLineRunner(BeanFactory beanFactory, CommandLineRunne...
method run (line 50) | @Override
method registry (line 68) | private ObservationRegistry registry() {
FILE: spring-cloud-task-core/src/main/java/org/springframework/cloud/task/configuration/observation/ObservationCommandLineRunnerBeanPostProcessor.java
class ObservationCommandLineRunnerBeanPostProcessor (line 29) | class ObservationCommandLineRunnerBeanPostProcessor implements BeanPostP...
method ObservationCommandLineRunnerBeanPostProcessor (line 33) | ObservationCommandLineRunnerBeanPostProcessor(BeanFactory beanFactory) {
method postProcessAfterInitialization (line 37) | @Override
FILE: spring-cloud-task-core/src/main/java/org/springframework/cloud/task/configuration/observation/ObservationTaskAutoConfiguration.java
class ObservationTaskAutoConfiguration (line 35) | @AutoConfiguration
method observedCommandLineRunnerBeanPostProcessor (line 41) | @Bean
method observedApplicationRunnerBeanPostProcessor (line 47) | @Bean
FILE: spring-cloud-task-core/src/main/java/org/springframework/cloud/task/configuration/observation/TaskDocumentedObservation.java
type TaskDocumentedObservation (line 24) | enum TaskDocumentedObservation implements ObservationDocumentation {
method getDefaultConvention (line 31) | @Override
method getLowCardinalityKeyNames (line 36) | @Override
method getPrefix (line 41) | @Override
type TaskRunnerTags (line 50) | enum TaskRunnerTags implements KeyName {
method asString (line 56) | @Override
FILE: spring-cloud-task-core/src/main/java/org/springframework/cloud/task/configuration/observation/TaskObservationContext.java
class TaskObservationContext (line 29) | public class TaskObservationContext extends Observation.Context implemen...
method TaskObservationContext (line 33) | public TaskObservationContext(String beanName) {
method getBeanName (line 37) | public String getBeanName() {
method get (line 41) | @Override
FILE: spring-cloud-task-core/src/main/java/org/springframework/cloud/task/configuration/observation/TaskObservationConvention.java
type TaskObservationConvention (line 28) | public interface TaskObservationConvention extends ObservationConvention...
method supportsContext (line 30) | @Override
FILE: spring-cloud-task-core/src/main/java/org/springframework/cloud/task/listener/DefaultTaskExecutionObservationConvention.java
class DefaultTaskExecutionObservationConvention (line 29) | public class DefaultTaskExecutionObservationConvention implements TaskEx...
method getLowCardinalityKeyValues (line 31) | @Override
method getHighCardinalityKeyValues (line 36) | @Override
method getKeyValuesForTaskExecution (line 41) | private KeyValues getKeyValuesForTaskExecution(TaskExecutionObservatio...
method getName (line 50) | @Override
FILE: spring-cloud-task-core/src/main/java/org/springframework/cloud/task/listener/TaskException.java
class TaskException (line 24) | public class TaskException extends RuntimeException {
method TaskException (line 26) | public TaskException(String message, Throwable e) {
method TaskException (line 30) | public TaskException(String message) {
FILE: spring-cloud-task-core/src/main/java/org/springframework/cloud/task/listener/TaskExecutionException.java
class TaskExecutionException (line 24) | public class TaskExecutionException extends TaskException {
method TaskExecutionException (line 26) | public TaskExecutionException(String message) {
method TaskExecutionException (line 30) | public TaskExecutionException(String message, Throwable throwable) {
FILE: spring-cloud-task-core/src/main/java/org/springframework/cloud/task/listener/TaskExecutionListener.java
type TaskExecutionListener (line 27) | public interface TaskExecutionListener {
method onTaskStartup (line 34) | default void onTaskStartup(TaskExecution taskExecution) {
method onTaskEnd (line 42) | default void onTaskEnd(TaskExecution taskExecution) {
method onTaskFailed (line 52) | default void onTaskFailed(TaskExecution taskExecution, Throwable throw...
FILE: spring-cloud-task-core/src/main/java/org/springframework/cloud/task/listener/TaskExecutionListenerSupport.java
class TaskExecutionListenerSupport (line 29) | @Deprecated
FILE: spring-cloud-task-core/src/main/java/org/springframework/cloud/task/listener/TaskExecutionObservation.java
type TaskExecutionObservation (line 30) | public enum TaskExecutionObservation implements ObservationDocumentation {
method getDefaultConvention (line 37) | @Override
method getLowCardinalityKeyNames (line 42) | @Override
method getPrefix (line 47) | public String getPrefix() {
type TaskKeyValues (line 52) | public enum TaskKeyValues implements KeyName {
method asString (line 58) | public String asString() {
method asString (line 67) | @Override
method asString (line 77) | @Override
method asString (line 87) | @Override
method asString (line 96) | @Override
method asString (line 106) | @Override
method asString (line 116) | @Override
method asString (line 126) | @Override
method asString (line 136) | @Override
method asString (line 146) | @Override
method asString (line 156) | @Override
method asString (line 166) | @Override
method asString (line 176) | @Override
FILE: spring-cloud-task-core/src/main/java/org/springframework/cloud/task/listener/TaskExecutionObservationContext.java
class TaskExecutionObservationContext (line 32) | public class TaskExecutionObservationContext extends Observation.Context
method TaskExecutionObservationContext (line 41) | public TaskExecutionObservationContext(TaskExecution taskExecution) {
method getTaskExecution (line 45) | public TaskExecution getTaskExecution() {
method getExceptionMessage (line 49) | public String getExceptionMessage() {
method setExceptionMessage (line 53) | public void setExceptionMessage(String exceptionMessage) {
method getStatus (line 57) | public String getStatus() {
method setStatus (line 61) | public void setStatus(String status) {
method get (line 65) | @Override
FILE: spring-cloud-task-core/src/main/java/org/springframework/cloud/task/listener/TaskExecutionObservationConvention.java
type TaskExecutionObservationConvention (line 28) | public interface TaskExecutionObservationConvention extends ObservationC...
method supportsContext (line 30) | @Override
FILE: spring-cloud-task-core/src/main/java/org/springframework/cloud/task/listener/TaskLifecycleListener.java
class TaskLifecycleListener (line 83) | public class TaskLifecycleListener
method TaskLifecycleListener (line 138) | public TaskLifecycleListener(TaskRepository taskRepository, TaskNameRe...
method onApplicationEvent (line 169) | @Override
method stackTraceToString (line 183) | private String stackTraceToString(Throwable exception) {
method doTaskEnd (line 192) | private void doTaskEnd() {
method setExitMessage (line 222) | private void setExitMessage(TaskExecution taskExecutionParam) {
method calcExitStatus (line 228) | private int calcExitStatus() {
method doTaskStart (line 257) | private void doTaskStart() {
method invokeOnTaskStartup (line 310) | private TaskExecution invokeOnTaskStartup(TaskExecution taskExecution) {
method invokeOnTaskEnd (line 332) | private TaskExecution invokeOnTaskEnd(TaskExecution taskExecution) {
method invokeOnTaskError (line 357) | private TaskExecution invokeOnTaskError(TaskExecution taskExecution, T...
method getTaskExecutionCopy (line 387) | private TaskExecution getTaskExecutionCopy(TaskExecution taskExecution) {
method isAutoStartup (line 397) | @Override
method stop (line 402) | @Override
method start (line 409) | @Override
method stop (line 415) | @Override
method isRunning (line 420) | @Override
method getPhase (line 425) | @Override
method destroy (line 430) | @Override
method getOrder (line 434) | @Override
FILE: spring-cloud-task-core/src/main/java/org/springframework/cloud/task/listener/TaskListenerExecutorObjectFactory.java
class TaskListenerExecutorObjectFactory (line 52) | public class TaskListenerExecutorObjectFactory implements ObjectFactory<...
method TaskListenerExecutorObjectFactory (line 66) | public TaskListenerExecutorObjectFactory(ConfigurableApplicationContex...
method getObject (line 70) | @Override
method initializeExecutor (line 79) | private void initializeExecutor() {
method processBean (line 122) | private void processBean(String beanName, final Class<?> type) {
class MethodGetter (line 155) | private static final class MethodGetter<T extends Annotation> {
method getMethods (line 157) | public Map<Method, T> getMethods(final Class<?> type, final Class<T>...
FILE: spring-cloud-task-core/src/main/java/org/springframework/cloud/task/listener/TaskObservations.java
class TaskObservations (line 34) | public class TaskObservations {
method TaskObservations (line 55) | public TaskObservations(ObservationRegistry observationRegistry,
method onTaskStartup (line 71) | public void onTaskStartup(TaskExecution taskExecution) {
method getValueOrDefault (line 110) | private String getValueOrDefault(Object value) {
method onTaskFailed (line 114) | public void onTaskFailed(Throwable throwable) {
method onTaskEnd (line 119) | public void onTaskEnd(TaskExecution taskExecution) {
FILE: spring-cloud-task-core/src/main/java/org/springframework/cloud/task/listener/annotation/TaskListenerExecutor.java
class TaskListenerExecutor (line 36) | public class TaskListenerExecutor implements TaskExecutionListener {
method TaskListenerExecutor (line 44) | public TaskListenerExecutor(Map<Method, Set<Object>> beforeTaskInstances,
method onTaskStartup (line 56) | @Override
method onTaskEnd (line 65) | @Override
method onTaskFailed (line 75) | @Override
method executeTaskListener (line 81) | private void executeTaskListener(TaskExecution taskExecution, Set<Meth...
method executeTaskListenerWithThrowable (line 106) | private void executeTaskListenerWithThrowable(TaskExecution taskExecut...
FILE: spring-cloud-task-core/src/main/java/org/springframework/cloud/task/repository/TaskExecution.java
class TaskExecution (line 33) | public class TaskExecution {
method TaskExecution (line 89) | public TaskExecution() {
method TaskExecution (line 93) | public TaskExecution(long executionId, Integer exitCode, String taskNa...
method TaskExecution (line 110) | public TaskExecution(long executionId, Integer exitCode, String taskNa...
method getExecutionId (line 118) | public long getExecutionId() {
method getExitCode (line 122) | public Integer getExitCode() {
method setExitCode (line 126) | public void setExitCode(Integer exitCode) {
method getTaskName (line 130) | public String getTaskName() {
method setTaskName (line 134) | public void setTaskName(String taskName) {
method getStartTime (line 138) | public LocalDateTime getStartTime() {
method setStartTime (line 142) | public void setStartTime(LocalDateTime startTime) {
method getEndTime (line 146) | public LocalDateTime getEndTime() {
method setEndTime (line 150) | public void setEndTime(LocalDateTime endTime) {
method getExitMessage (line 154) | public String getExitMessage() {
method setExitMessage (line 158) | public void setExitMessage(String exitMessage) {
method getArguments (line 162) | public List<String> getArguments() {
method setArguments (line 166) | public void setArguments(List<String> arguments) {
method getErrorMessage (line 170) | public String getErrorMessage() {
method setErrorMessage (line 174) | public void setErrorMessage(String errorMessage) {
method getExternalExecutionId (line 178) | public String getExternalExecutionId() {
method setExternalExecutionId (line 182) | public void setExternalExecutionId(String externalExecutionId) {
method getParentExecutionId (line 186) | public Long getParentExecutionId() {
method setParentExecutionId (line 190) | public void setParentExecutionId(Long parentExecutionId) {
method toString (line 194) | @Override
FILE: spring-cloud-task-core/src/main/java/org/springframework/cloud/task/repository/TaskExplorer.java
type TaskExplorer (line 32) | public interface TaskExplorer {
method getTaskExecution (line 39) | TaskExecution getTaskExecution(long executionId);
method findRunningTaskExecutions (line 47) | Page<TaskExecution> findRunningTaskExecutions(String taskName, Pageabl...
method findTaskExecutionsByExecutionId (line 56) | Page<TaskExecution> findTaskExecutionsByExecutionId(String externalExe...
method getTaskNames (line 62) | List<String> getTaskNames();
method getTaskExecutionCountByTaskName (line 69) | long getTaskExecutionCountByTaskName(String taskName);
method getTaskExecutionCount (line 75) | long getTaskExecutionCount();
method getRunningTaskExecutionCount (line 81) | long getRunningTaskExecutionCount();
method getTaskExecutionCountByExternalExecutionId (line 88) | long getTaskExecutionCountByExternalExecutionId(String externalExecuti...
method findTaskExecutionsByName (line 96) | Page<TaskExecution> findTaskExecutionsByName(String taskName, Pageable...
method findAll (line 104) | Page<TaskExecution> findAll(Pageable pageable);
method getTaskExecutionIdByJobExecutionId (line 112) | Long getTaskExecutionIdByJobExecutionId(long jobExecutionId);
method getJobExecutionIdsByTaskExecutionId (line 121) | Set<Long> getJobExecutionIdsByTaskExecutionId(long taskExecutionId);
method getLatestTaskExecutionsByTaskNames (line 140) | List<TaskExecution> getLatestTaskExecutionsByTaskNames(String... taskN...
method getLatestTaskExecutionForTaskName (line 150) | TaskExecution getLatestTaskExecutionForTaskName(String taskName);
FILE: spring-cloud-task-core/src/main/java/org/springframework/cloud/task/repository/TaskNameResolver.java
type TaskNameResolver (line 24) | public interface TaskNameResolver {
method getTaskName (line 29) | String getTaskName();
FILE: spring-cloud-task-core/src/main/java/org/springframework/cloud/task/repository/TaskRepository.java
type TaskRepository (line 32) | public interface TaskRepository {
method completeTaskExecution (line 42) | @Transactional("${spring.cloud.task.transaction-manager:springCloudTas...
method completeTaskExecution (line 55) | @Transactional("${spring.cloud.task.transaction-manager:springCloudTas...
method createTaskExecution (line 68) | @Transactional("${spring.cloud.task.transaction-manager:springCloudTas...
method createTaskExecution (line 79) | @Transactional("${spring.cloud.task.transaction-manager:springCloudTas...
method createTaskExecution (line 89) | @Transactional("${spring.cloud.task.transaction-manager:springCloudTas...
method startTaskExecution (line 101) | @Transactional("${spring.cloud.task.transaction-manager:springCloudTas...
method updateExternalExecutionId (line 110) | @Transactional("${spring.cloud.task.transaction-manager:springCloudTas...
method startTaskExecution (line 124) | @Transactional("${spring.cloud.task.transaction-manager:springCloudTas...
FILE: spring-cloud-task-core/src/main/java/org/springframework/cloud/task/repository/dao/JdbcTaskExecutionDao.java
class JdbcTaskExecutionDao (line 66) | public class JdbcTaskExecutionDao implements TaskExecutionDao {
method JdbcTaskExecutionDao (line 191) | public JdbcTaskExecutionDao(DataSource dataSource, String tablePrefix) {
method JdbcTaskExecutionDao (line 202) | public JdbcTaskExecutionDao(DataSource dataSource) {
method createTaskExecution (line 211) | @Override
method createTaskExecution (line 217) | @Override
method startTaskExecution (line 239) | @Override
method startTaskExecution (line 245) | @Override
method completeTaskExecution (line 274) | @Override
method completeTaskExecution (line 298) | @Override
method getTaskExecution (line 304) | @Override
method getTaskExecutionCountByTaskName (line 320) | @Override
method getRunningTaskExecutionCountByTaskName (line 335) | @Override
method getRunningTaskExecutionCount (line 349) | @Override
method getLatestTaskExecutionsByTaskNames (line 362) | @Override
method getLatestTaskExecutionForTaskName (line 388) | @Override
method getTaskExecutionCount (line 404) | @Override
method findRunningTaskExecutions (line 416) | @Override
method findTaskExecutionsByExternalExecutionId (line 422) | @Override
method getTaskExecutionCountByExternalExecutionId (line 429) | @Override
method findTaskExecutionsByName (line 443) | @Override
method getTaskNames (line 449) | @Override
method findAll (line 454) | @Override
method setTaskIncrementer (line 460) | public void setTaskIncrementer(DataFieldMaxValueIncrementer taskIncrem...
method getNextExecutionId (line 464) | public long getNextExecutionId() {
method getTaskExecutionIdByJobExecutionId (line 468) | @Override
method getJobExecutionIdsByTaskExecutionId (line 482) | @Override
method updateExternalExecutionId (line 507) | @Override
method queryForPageableResults (line 518) | private Page<TaskExecution> queryForPageableResults(Pageable pageable,...
method getQuery (line 564) | private String getQuery(String base) {
method insertTaskArguments (line 573) | private void insertTaskArguments(long executionId, List<String> taskAr...
method insertArgument (line 585) | private void insertArgument(long taskExecutionId, String taskParam) {
method getTaskArguments (line 592) | private List<String> getTaskArguments(long taskExecutionId) {
class TaskExecutionRowMapper (line 609) | private final class TaskExecutionRowMapper implements RowMapper<TaskEx...
method TaskExecutionRowMapper (line 611) | private TaskExecutionRowMapper() {
method mapRow (line 614) | @Override
method getNullableExitCode (line 645) | private Integer getNullableExitCode(ResultSet rs) throws SQLException {
FILE: spring-cloud-task-core/src/main/java/org/springframework/cloud/task/repository/dao/MapTaskExecutionDao.java
class MapTaskExecutionDao (line 47) | public class MapTaskExecutionDao implements TaskExecutionDao {
method MapTaskExecutionDao (line 55) | public MapTaskExecutionDao() {
method createTaskExecution (line 60) | @Override
method createTaskExecution (line 66) | @Override
method startTaskExecution (line 76) | @Override
method startTaskExecution (line 82) | @Override
method completeTaskExecution (line 96) | @Override
method completeTaskExecution (line 110) | @Override
method getTaskExecution (line 115) | @Override
method getTaskExecutionCountByTaskName (line 120) | @Override
method getTaskExecutionCountByExternalExecutionId (line 131) | @Override
method getRunningTaskExecutionCountByTaskName (line 142) | @Override
method getRunningTaskExecutionCount (line 153) | @Override
method getTaskExecutionCount (line 164) | @Override
method findRunningTaskExecutions (line 169) | @Override
method findTaskExecutionsByExternalExecutionId (line 180) | @Override
method findTaskExecutionsByName (line 192) | @Override
method getTaskNames (line 203) | @Override
method findAll (line 212) | @Override
method getTaskExecutions (line 220) | public Map<Long, TaskExecution> getTaskExecutions() {
method getNextExecutionId (line 224) | public long getNextExecutionId() {
method getTaskExecutionIdByJobExecutionId (line 228) | @Override
method getJobExecutionIdsByTaskExecutionId (line 246) | @Override
method updateExternalExecutionId (line 256) | @Override
method getBatchJobAssociations (line 263) | public ConcurrentMap<Long, Set<Long>> getBatchJobAssociations() {
method getTaskExecutionTreeSet (line 267) | private TreeSet<TaskExecution> getTaskExecutionTreeSet() {
method getPageFromList (line 280) | private Page getPageFromList(List<TaskExecution> executionList, Pageab...
method getLatestTaskExecutionsByTaskNames (line 286) | @Override
method getLatestTaskExecutionForTaskName (line 326) | @Override
class TaskExecutionComparator (line 342) | private static final class TaskExecutionComparator implements Comparat...
method compare (line 344) | @Override
FILE: spring-cloud-task-core/src/main/java/org/springframework/cloud/task/repository/dao/TaskExecutionDao.java
type TaskExecutionDao (line 35) | public interface TaskExecutionDao {
method createTaskExecution (line 45) | TaskExecution createTaskExecution(String taskName, LocalDateTime start...
method createTaskExecution (line 58) | TaskExecution createTaskExecution(String taskName, LocalDateTime start...
method startTaskExecution (line 72) | TaskExecution startTaskExecution(long executionId, String taskName, Lo...
method startTaskExecution (line 87) | TaskExecution startTaskExecution(long executionId, String taskName, Lo...
method completeTaskExecution (line 99) | void completeTaskExecution(long executionId, Integer exitCode, LocalDa...
method completeTaskExecution (line 109) | void completeTaskExecution(long executionId, Integer exitCode, LocalDa...
method getTaskExecution (line 116) | TaskExecution getTaskExecution(long executionId);
method getTaskExecutionCountByTaskName (line 123) | long getTaskExecutionCountByTaskName(String taskName);
method getRunningTaskExecutionCountByTaskName (line 131) | long getRunningTaskExecutionCountByTaskName(String taskName);
method getRunningTaskExecutionCount (line 137) | long getRunningTaskExecutionCount();
method getTaskExecutionCount (line 143) | long getTaskExecutionCount();
method findRunningTaskExecutions (line 151) | Page<TaskExecution> findRunningTaskExecutions(String taskName, Pageabl...
method findTaskExecutionsByExternalExecutionId (line 160) | Page<TaskExecution> findTaskExecutionsByExternalExecutionId(String ext...
method getTaskExecutionCountByExternalExecutionId (line 169) | long getTaskExecutionCountByExternalExecutionId(String externalExecuti...
method findTaskExecutionsByName (line 178) | Page<TaskExecution> findTaskExecutionsByName(String taskName, Pageable...
method getTaskNames (line 184) | List<String> getTaskNames();
method findAll (line 192) | Page<TaskExecution> findAll(Pageable pageable);
method getNextExecutionId (line 198) | long getNextExecutionId();
method getTaskExecutionIdByJobExecutionId (line 206) | Long getTaskExecutionIdByJobExecutionId(long jobExecutionId);
method getJobExecutionIdsByTaskExecutionId (line 214) | Set<Long> getJobExecutionIdsByTaskExecutionId(long taskExecutionId);
method updateExternalExecutionId (line 221) | void updateExternalExecutionId(long taskExecutionId, String externalEx...
method getLatestTaskExecutionsByTaskNames (line 240) | List<TaskExecution> getLatestTaskExecutionsByTaskNames(String... taskN...
method getLatestTaskExecutionForTaskName (line 250) | TaskExecution getLatestTaskExecutionForTaskName(String taskName);
FILE: spring-cloud-task-core/src/main/java/org/springframework/cloud/task/repository/database/PagingQueryProvider.java
type PagingQueryProvider (line 31) | public interface PagingQueryProvider {
method init (line 38) | void init(DataSource dataSource) throws Exception;
method getParameterCount (line 44) | int getParameterCount();
method isUsingNamedParameters (line 50) | boolean isUsingNamedParameters();
method getSortKeys (line 57) | Map<String, Order> getSortKeys();
method getPageQuery (line 65) | String getPageQuery(Pageable pageable);
FILE: spring-cloud-task-core/src/main/java/org/springframework/cloud/task/repository/database/support/AbstractSqlPagingQueryProvider.java
class AbstractSqlPagingQueryProvider (line 47) | public abstract class AbstractSqlPagingQueryProvider implements PagingQu...
method getSelectClause (line 64) | protected String getSelectClause() {
method setSelectClause (line 71) | public void setSelectClause(String selectClause) {
method getFromClause (line 78) | protected String getFromClause() {
method setFromClause (line 85) | public void setFromClause(String fromClause) {
method getWhereClause (line 92) | protected String getWhereClause() {
method setWhereClause (line 99) | public void setWhereClause(String whereClause) {
method getSortKeys (line 113) | @Override
method setSortKeys (line 121) | public void setSortKeys(Map<String, Order> sortKeys) {
method getParameterCount (line 125) | @Override
method isUsingNamedParameters (line 130) | @Override
method init (line 135) | @Override
method removeKeyWord (line 158) | private String removeKeyWord(String keyWord, String clause) {
FILE: spring-cloud-task-core/src/main/java/org/springframework/cloud/task/repository/database/support/Db2PagingQueryProvider.java
class Db2PagingQueryProvider (line 29) | public class Db2PagingQueryProvider extends AbstractSqlPagingQueryProvid...
method getPageQuery (line 31) | @Override
method generateRowNumSqlQueryWithNesting (line 38) | private String generateRowNumSqlQueryWithNesting(String selectClause, ...
FILE: spring-cloud-task-core/src/main/java/org/springframework/cloud/task/repository/database/support/H2PagingQueryProvider.java
class H2PagingQueryProvider (line 28) | public class H2PagingQueryProvider extends AbstractSqlPagingQueryProvider {
method getPageQuery (line 30) | @Override
FILE: spring-cloud-task-core/src/main/java/org/springframework/cloud/task/repository/database/support/HsqlPagingQueryProvider.java
class HsqlPagingQueryProvider (line 28) | public class HsqlPagingQueryProvider extends AbstractSqlPagingQueryProvi...
method getPageQuery (line 30) | @Override
FILE: spring-cloud-task-core/src/main/java/org/springframework/cloud/task/repository/database/support/MariaDbPagingQueryProvider.java
class MariaDbPagingQueryProvider (line 28) | public class MariaDbPagingQueryProvider extends AbstractSqlPagingQueryPr...
method getPageQuery (line 30) | @Override
FILE: spring-cloud-task-core/src/main/java/org/springframework/cloud/task/repository/database/support/MySqlPagingQueryProvider.java
class MySqlPagingQueryProvider (line 27) | public class MySqlPagingQueryProvider extends AbstractSqlPagingQueryProv...
method getPageQuery (line 29) | @Override
FILE: spring-cloud-task-core/src/main/java/org/springframework/cloud/task/repository/database/support/OraclePagingQueryProvider.java
class OraclePagingQueryProvider (line 28) | public class OraclePagingQueryProvider extends AbstractSqlPagingQueryPro...
method getPageQuery (line 30) | @Override
method generateRowNumSqlQueryWithNesting (line 37) | private String generateRowNumSqlQueryWithNesting(String selectClause, ...
FILE: spring-cloud-task-core/src/main/java/org/springframework/cloud/task/repository/database/support/PostgresPagingQueryProvider.java
class PostgresPagingQueryProvider (line 28) | public class PostgresPagingQueryProvider extends AbstractSqlPagingQueryP...
method getPageQuery (line 30) | @Override
FILE: spring-cloud-task-core/src/main/java/org/springframework/cloud/task/repository/database/support/SqlPagingQueryProviderFactoryBean.java
class SqlPagingQueryProviderFactoryBean (line 52) | public class SqlPagingQueryProviderFactoryBean implements FactoryBean<Pa...
method setDatabaseType (line 85) | public void setDatabaseType(String databaseType) {
method setDataSource (line 93) | public void setDataSource(DataSource dataSource) {
method setFromClause (line 101) | public void setFromClause(String fromClause) {
method setWhereClause (line 109) | public void setWhereClause(String whereClause) {
method setSelectClause (line 116) | public void setSelectClause(String selectClause) {
method setSortKeys (line 124) | public void setSortKeys(Map<String, Order> sortKeys) {
method getObject (line 134) | @Override
method getObjectType (line 167) | @Override
method isSingleton (line 177) | @Override
FILE: spring-cloud-task-core/src/main/java/org/springframework/cloud/task/repository/database/support/SqlPagingQueryUtils.java
class SqlPagingQueryUtils (line 28) | public final class SqlPagingQueryUtils {
method SqlPagingQueryUtils (line 30) | private SqlPagingQueryUtils() {
method generateLimitJumpToQuery (line 40) | public static String generateLimitJumpToQuery(AbstractSqlPagingQueryPr...
method generateTopJumpToQuery (line 58) | public static String generateTopJumpToQuery(AbstractSqlPagingQueryProv...
method buildWhereClause (line 74) | public static void buildWhereClause(AbstractSqlPagingQueryProvider pro...
method buildSortClause (line 95) | public static String buildSortClause(AbstractSqlPagingQueryProvider pr...
method buildSortClause (line 104) | public static String buildSortClause(Map<String, Order> sortKeys) {
FILE: spring-cloud-task-core/src/main/java/org/springframework/cloud/task/repository/database/support/SqlServerPagingQueryProvider.java
class SqlServerPagingQueryProvider (line 28) | public class SqlServerPagingQueryProvider extends AbstractSqlPagingQuery...
method getPageQuery (line 30) | @Override
method generateRowNumSqlQueryWithNesting (line 37) | private String generateRowNumSqlQueryWithNesting(String selectClause, ...
FILE: spring-cloud-task-core/src/main/java/org/springframework/cloud/task/repository/support/DatabaseType.java
type DatabaseType (line 38) | public enum DatabaseType {
method DatabaseType (line 106) | DatabaseType(String productName) {
method fromMetaData (line 117) | public static DatabaseType fromMetaData(DataSource dataSource) throws ...
method fromProductName (line 166) | public static DatabaseType fromProductName(String productName) {
method getProductName (line 175) | private String getProductName() {
FILE: spring-cloud-task-core/src/main/java/org/springframework/cloud/task/repository/support/SimpleTaskExplorer.java
class SimpleTaskExplorer (line 37) | public class SimpleTaskExplorer implements TaskExplorer {
method SimpleTaskExplorer (line 41) | public SimpleTaskExplorer(TaskExecutionDaoFactoryBean taskExecutionDao...
method getTaskExecution (line 52) | @Override
method findRunningTaskExecutions (line 57) | @Override
method findTaskExecutionsByExecutionId (line 62) | @Override
method getTaskNames (line 67) | @Override
method getTaskExecutionCountByTaskName (line 72) | @Override
method getTaskExecutionCount (line 77) | @Override
method getRunningTaskExecutionCount (line 82) | @Override
method getTaskExecutionCountByExternalExecutionId (line 87) | @Override
method findTaskExecutionsByName (line 92) | @Override
method findAll (line 97) | @Override
method getTaskExecutionIdByJobExecutionId (line 102) | @Override
method getJobExecutionIdsByTaskExecutionId (line 107) | @Override
method getLatestTaskExecutionsByTaskNames (line 112) | @Override
method getLatestTaskExecutionForTaskName (line 117) | @Override
FILE: spring-cloud-task-core/src/main/java/org/springframework/cloud/task/repository/support/SimpleTaskNameResolver.java
class SimpleTaskNameResolver (line 37) | public class SimpleTaskNameResolver implements TaskNameResolver, Applica...
method setConfiguredName (line 43) | @Value("${spring.cloud.task.name:}")
method setApplicationContext (line 48) | @Override
method getTaskName (line 53) | @Override
FILE: spring-cloud-task-core/src/main/java/org/springframework/cloud/task/repository/support/SimpleTaskRepository.java
class SimpleTaskRepository (line 37) | public class SimpleTaskRepository implements TaskRepository {
method SimpleTaskRepository (line 68) | public SimpleTaskRepository(FactoryBean<TaskExecutionDao> taskExecutio...
method SimpleTaskRepository (line 74) | public SimpleTaskRepository(FactoryBean<TaskExecutionDao> taskExecutio...
method completeTaskExecution (line 89) | @Override
method completeTaskExecution (line 95) | @Override
method createTaskExecution (line 111) | @Override
method createTaskExecution (line 122) | @Override
method createTaskExecution (line 131) | @Override
method startTaskExecution (line 136) | @Override
method updateExternalExecutionId (line 142) | @Override
method startTaskExecution (line 148) | @Override
method getTaskExecutionDao (line 162) | public TaskExecutionDao getTaskExecutionDao() {
method initialize (line 167) | private void initialize() {
method validateCreateInformation (line 183) | private void validateCreateInformation(TaskExecution taskExecution) {
method validateCompletedTaskExitInformation (line 191) | private void validateCompletedTaskExitInformation(long executionId, In...
method trimMessage (line 197) | private String trimMessage(String exitMessage, int maxSize) {
method setMaxExitMessageSize (line 205) | public void setMaxExitMessageSize(int maxExitMessageSize) {
method setMaxTaskNameSize (line 209) | public void setMaxTaskNameSize(int maxTaskNameSize) {
method setMaxErrorMessageSize (line 213) | public void setMaxErrorMessageSize(int maxErrorMessageSize) {
FILE: spring-cloud-task-core/src/main/java/org/springframework/cloud/task/repository/support/TaskExecutionDaoFactoryBean.java
class TaskExecutionDaoFactoryBean (line 46) | public class TaskExecutionDaoFactoryBean implements FactoryBean<TaskExec...
method TaskExecutionDaoFactoryBean (line 58) | public TaskExecutionDaoFactoryBean() {
method TaskExecutionDaoFactoryBean (line 66) | public TaskExecutionDaoFactoryBean(DataSource dataSource, String table...
method TaskExecutionDaoFactoryBean (line 76) | public TaskExecutionDaoFactoryBean(DataSource dataSource) {
method getObject (line 82) | @Override
method getObjectType (line 115) | @Override
method isSingleton (line 120) | @Override
method buildTaskExecutionDao (line 125) | private void buildTaskExecutionDao(DataSource dataSource) {
method isSqlServerTableSequenceAvailable (line 143) | private boolean isSqlServerTableSequenceAvailable(String incrementerNa...
FILE: spring-cloud-task-core/src/main/java/org/springframework/cloud/task/repository/support/TaskRepositoryInitializer.java
class TaskRepositoryInitializer (line 52) | public final class TaskRepositoryInitializer implements InitializingBean {
method TaskRepositoryInitializer (line 73) | public TaskRepositoryInitializer(TaskProperties taskProperties) {
method setDataSource (line 77) | public void setDataSource(DataSource dataSource) {
method setResourceLoader (line 81) | @Autowired(required = false)
method getDatabaseType (line 86) | private String getDatabaseType(DataSource dataSource) {
method afterPropertiesSet (line 99) | @Override
FILE: spring-cloud-task-core/src/main/resources/org/springframework/cloud/task/schema-db2.sql
type TASK_EXECUTION (line 2) | CREATE TABLE TASK_EXECUTION (
type TASK_EXECUTION_PARAMS (line 15) | CREATE TABLE TASK_EXECUTION_PARAMS (
type TASK_TASK_BATCH (line 22) | CREATE TABLE TASK_TASK_BATCH (
type TASK_LOCK (line 31) | CREATE TABLE TASK_LOCK (
FILE: spring-cloud-task-core/src/main/resources/org/springframework/cloud/task/schema-h2.sql
type TASK_EXECUTION (line 2) | CREATE TABLE TASK_EXECUTION (
type TASK_EXECUTION_PARAMS (line 15) | CREATE TABLE TASK_EXECUTION_PARAMS (
type TASK_TASK_BATCH (line 22) | CREATE TABLE TASK_TASK_BATCH (
type TASK_LOCK (line 31) | CREATE TABLE TASK_LOCK (
FILE: spring-cloud-task-core/src/main/resources/org/springframework/cloud/task/schema-hsqldb.sql
type TASK_EXECUTION (line 2) | CREATE TABLE TASK_EXECUTION (
type TASK_EXECUTION_PARAMS (line 15) | CREATE TABLE TASK_EXECUTION_PARAMS (
type TASK_TASK_BATCH (line 22) | CREATE TABLE TASK_TASK_BATCH (
type TASK_SEQ (line 29) | CREATE TABLE TASK_SEQ (
type TASK_LOCK (line 33) | CREATE TABLE TASK_LOCK (
FILE: spring-cloud-task-core/src/main/resources/org/springframework/cloud/task/schema-mariadb.sql
type TASK_EXECUTION (line 2) | CREATE TABLE TASK_EXECUTION (
type TASK_EXECUTION_PARAMS (line 15) | CREATE TABLE TASK_EXECUTION_PARAMS (
type TASK_TASK_BATCH (line 22) | CREATE TABLE TASK_TASK_BATCH (
type TASK_LOCK (line 29) | CREATE TABLE TASK_LOCK (
FILE: spring-cloud-task-core/src/main/resources/org/springframework/cloud/task/schema-mysql.sql
type TASK_EXECUTION (line 2) | CREATE TABLE TASK_EXECUTION (
type TASK_EXECUTION_PARAMS (line 15) | CREATE TABLE TASK_EXECUTION_PARAMS (
type TASK_TASK_BATCH (line 22) | CREATE TABLE TASK_TASK_BATCH (
type TASK_SEQ (line 29) | CREATE TABLE TASK_SEQ (
type TASK_LOCK (line 37) | CREATE TABLE TASK_LOCK (
FILE: spring-cloud-task-core/src/main/resources/org/springframework/cloud/task/schema-oracle.sql
type TASK_EXECUTION (line 2) | CREATE TABLE TASK_EXECUTION (
type TASK_EXECUTION_PARAMS (line 15) | CREATE TABLE TASK_EXECUTION_PARAMS (
type TASK_TASK_BATCH (line 22) | CREATE TABLE TASK_TASK_BATCH (
type TASK_LOCK (line 31) | CREATE TABLE TASK_LOCK (
FILE: spring-cloud-task-core/src/main/resources/org/springframework/cloud/task/schema-postgresql.sql
type TASK_EXECUTION (line 2) | CREATE TABLE TASK_EXECUTION (
type TASK_EXECUTION_PARAMS (line 15) | CREATE TABLE TASK_EXECUTION_PARAMS (
type TASK_TASK_BATCH (line 22) | CREATE TABLE TASK_TASK_BATCH (
type TASK_LOCK (line 31) | CREATE TABLE TASK_LOCK (
FILE: spring-cloud-task-core/src/main/resources/org/springframework/cloud/task/schema-sqlserver.sql
type TASK_EXECUTION (line 1) | CREATE TABLE TASK_EXECUTION (
type TASK_EXECUTION_PARAMS (line 14) | CREATE TABLE TASK_EXECUTION_PARAMS (
type TASK_TASK_BATCH (line 21) | CREATE TABLE TASK_TASK_BATCH (
type TASK_LOCK (line 30) | CREATE TABLE TASK_LOCK (
FILE: spring-cloud-task-core/src/test/java/org/springframework/cloud/task/SimpleSingleTaskAutoConfigurationTests.java
class SimpleSingleTaskAutoConfigurationTests (line 37) | public class SimpleSingleTaskAutoConfigurationTests {
method testConfiguration (line 39) | @Test
FILE: spring-cloud-task-core/src/test/java/org/springframework/cloud/task/SimpleSingleTaskAutoConfigurationWithDataSourceTests.java
class SimpleSingleTaskAutoConfigurationWithDataSourceTests (line 38) | public class SimpleSingleTaskAutoConfigurationWithDataSourceTests {
method testConfiguration (line 40) | @Test
FILE: spring-cloud-task-core/src/test/java/org/springframework/cloud/task/SimpleTaskAutoConfigurationTests.java
class SimpleTaskAutoConfigurationTests (line 63) | public class SimpleTaskAutoConfigurationTests {
method testRepository (line 65) | @Test
method testAutoConfigurationDisabled (line 79) | @Test
method testRepositoryInitialized (line 96) | @Test
method testRepositoryBeansDependOnTaskRepositoryInitializer (line 109) | @Test
method testRepositoryNotInitialized (line 127) | @Test
method testTaskNameResolver (line 139) | @Test
method testMultipleConfigurers (line 153) | @Test
method testMultipleDataSources (line 165) | @Test
method testSpecifyTransactionManager (line 178) | @Test
method testDefaultTransactionManager (line 192) | @Test
method verifyExceptionThrownDefaultExecutable (line 204) | public void verifyExceptionThrownDefaultExecutable(Class classToCheck,
method verifyExceptionThrownDefaultExecutable (line 216) | public void verifyExceptionThrownDefaultExecutable(Class classToCheck,...
method verifyExceptionThrown (line 228) | public void verifyExceptionThrown(Class classToCheck, String message, ...
method testWithDataSourceProxy (line 236) | @Test
class MultipleConfigurers (line 251) | @Configuration
method taskConfigurer1 (line 254) | @Bean
method taskConfigurer2 (line 259) | @Bean
class MultipleDataSources (line 266) | @Configuration
method dataSource (line 269) | @Bean
method dataSource2 (line 274) | @Bean
class DataSourceProxyConfiguration (line 281) | @Configuration
method proxyDataSource (line 287) | @Bean
class TaskLifecycleListenerConfiguration (line 299) | @EnableTask
FILE: spring-cloud-task-core/src/test/java/org/springframework/cloud/task/TaskCoreTests.java
class TaskCoreTests (line 42) | @ExtendWith(OutputCaptureExtension.class)
method teardown (line 64) | @AfterEach
method successfulTaskTest (line 71) | @Test
method successfulTaskTestWithAnnotation (line 89) | @Test
method exceptionTaskTest (line 104) | @Test
method invalidExecutionId (line 128) | @Test
class TaskConfiguration (line 147) | @EnableTask
method commandLineRunner (line 151) | @Bean
class TaskConfigurationWithAnotation (line 162) | @EnableTask
method commandLineRunner (line 166) | @Bean
class TaskExceptionConfiguration (line 177) | @EnableTask
method commandLineRunner (line 181) | @Bean
FILE: spring-cloud-task-core/src/test/java/org/springframework/cloud/task/TaskRepositoryInitializerDefaultTaskConfigurerTests.java
class TaskRepositoryInitializerDefaultTaskConfigurerTests (line 45) | @ExtendWith(SpringExtension.class)
method testTablesCreated (line 53) | @Test
FILE: spring-cloud-task-core/src/test/java/org/springframework/cloud/task/TaskRepositoryInitializerNoDataSourceTaskConfigurerTests.java
class TaskRepositoryInitializerNoDataSourceTaskConfigurerTests (line 46) | @ExtendWith(SpringExtension.class)
method testNoTablesCreated (line 54) | @Test
FILE: spring-cloud-task-core/src/test/java/org/springframework/cloud/task/configuration/DefaultTaskConfigurerTests.java
class DefaultTaskConfigurerTests (line 44) | @ExtendWith(SpringExtension.class)
method resourcelessTransactionManagerTest (line 54) | @Test
method testDefaultContext (line 64) | @Test
method dataSourceTransactionManagerTest (line 75) | @Test
method taskExplorerTest (line 88) | @Test
method taskNameResolverTest (line 96) | @Test
method taskRepositoryTest (line 104) | @Test
method taskDataSource (line 112) | @Test
method taskDataSourceWithProperties (line 120) | @Test
method validatePrefix (line 149) | private void validatePrefix(DefaultTaskConfigurer defaultTaskConfigure...
method getPrefix (line 154) | private String getPrefix(DefaultTaskConfigurer defaultTaskConfigurer) {
class EntityManagerConfiguration (line 162) | @Configuration
method entityManager (line 165) | @Bean
FILE: spring-cloud-task-core/src/test/java/org/springframework/cloud/task/configuration/RepositoryTransactionManagerConfigurationTests.java
class RepositoryTransactionManagerConfigurationTests (line 49) | public class RepositoryTransactionManagerConfigurationTests {
method testZeroCustomTransactionManagerConfiguration (line 51) | @Test
method testSingleCustomTransactionManagerConfiguration (line 67) | @Test
method testMultipleCustomTransactionManagerConfiguration (line 72) | @Test
method testConfiguration (line 77) | private void testConfiguration(Class configurationClass) {
class ZeroTransactionManagerConfiguration (line 104) | @EnableTask
method taskConfigurer (line 108) | @Bean
method dataSource (line 113) | @Bean
class SingleTransactionManagerConfiguration (line 120) | @EnableTask
method taskConfigurer (line 124) | @Bean
method dataSource (line 134) | @Bean
method transactionManager (line 139) | @Bean
class MultipleTransactionManagerConfiguration (line 146) | @EnableTask
method taskConfigurer (line 150) | @Bean
method dataSource (line 160) | @Bean
method transactionManager (line 165) | @Bean
method dataSource2 (line 170) | @Bean
method transactionManager2 (line 175) | @Bean
class TestJdbcTransactionManager (line 182) | private static class TestJdbcTransactionManager extends JdbcTransactio...
method TestJdbcTransactionManager (line 184) | protected TestJdbcTransactionManager(DataSource dataSource) {
method doCommit (line 190) | @Override
FILE: spring-cloud-task-core/src/test/java/org/springframework/cloud/task/configuration/TaskPropertiesTests.java
class TaskPropertiesTests (line 29) | @DirtiesContext
method test (line 38) | @Test
FILE: spring-cloud-task-core/src/test/java/org/springframework/cloud/task/configuration/TestConfiguration.java
class TestConfiguration (line 41) | @Configuration
method taskRepositoryInitializer (line 52) | @Bean
method taskExplorer (line 62) | @Bean
method taskRepository (line 67) | @Bean
method transactionManager (line 72) | @Bean
method afterPropertiesSet (line 82) | @Override
FILE: spring-cloud-task-core/src/test/java/org/springframework/cloud/task/configuration/observation/ObservationIntegrationTests.java
class ObservationIntegrationTests (line 52) | @AutoConfigureTracing
method testSuccessfulObservation (line 62) | @Test
method finishedSpans (line 79) | private List<FinishedSpan> finishedSpans() {
class Config (line 83) | @Configuration
method testSpanHandler (line 93) | @Bean
method sampler (line 98) | @Bean
method myCommandLineRunner (line 103) | @Bean
method myApplicationRunner (line 109) | @Bean
FILE: spring-cloud-task-core/src/test/java/org/springframework/cloud/task/listener/TaskExceptionTests.java
class TaskExceptionTests (line 26) | public class TaskExceptionTests {
method testTaskException (line 30) | @Test
method testTaskExecutionException (line 41) | @Test
FILE: spring-cloud-task-core/src/test/java/org/springframework/cloud/task/listener/TaskExecutionListenerTests.java
class TaskExecutionListenerTests (line 49) | public class TaskExecutionListenerTests {
method setup (line 61) | @BeforeTask
method tearDown (line 68) | @AfterEach
method testTaskCreate (line 79) | @Test
method testBeforeTaskErrorCreate (line 93) | @Test
method testFailedTaskErrorCreate (line 112) | @Test
method testAfterTaskErrorCreate (line 130) | @Test
method testTaskUpdate (line 151) | @Test
method testTaskFail (line 168) | @Test
method testAnnotationCreate (line 188) | @Test
method testAnnotationUpdate (line 202) | @Test
method testAnnotationFail (line 219) | @Test
method verifyListenerResults (line 235) | private void verifyListenerResults(boolean isTaskEnd, boolean isTaskFa...
method setupContextForTaskExecutionListener (line 265) | private void setupContextForTaskExecutionListener() {
method setupContextForAnnotatedListener (line 271) | private void setupContextForAnnotatedListener() {
method setupContextForBeforeTaskErrorAnnotatedListener (line 277) | private void setupContextForBeforeTaskErrorAnnotatedListener() {
method setupContextForFailedTaskErrorAnnotatedListener (line 283) | private void setupContextForFailedTaskErrorAnnotatedListener() {
method setupContextForAfterTaskErrorAnnotatedListener (line 289) | private void setupContextForAfterTaskErrorAnnotatedListener() {
class DefaultAnnotationConfiguration (line 295) | @Configuration
method annotatedTaskListener (line 298) | @Bean
class AnnotatedTaskListener (line 303) | public static class AnnotatedTaskListener extends TestListener {
method methodA (line 305) | @BeforeTask
method methodB (line 312) | @AfterTask
method methodC (line 320) | @FailedTask
class BeforeTaskErrorAnnotationConfiguration (line 332) | @Configuration
method annotatedTaskListener (line 335) | @Bean
method commandLineRunner (line 340) | @Bean
class AnnotatedTaskListener (line 345) | public static class AnnotatedTaskListener {
method methodA (line 347) | @BeforeTask
method methodB (line 353) | @AfterTask
method methodC (line 358) | @FailedTask
class FailedTaskErrorAnnotationConfiguration (line 367) | @Configuration
method annotatedTaskListener (line 370) | @Bean
class AnnotatedTaskListener (line 375) | public static class AnnotatedTaskListener {
method methodA (line 377) | @BeforeTask
method methodB (line 383) | @AfterTask
method methodC (line 388) | @FailedTask
class AfterTaskErrorAnnotationConfiguration (line 398) | @Configuration
method annotatedTaskListener (line 401) | @Bean
class AnnotatedTaskListener (line 406) | public static class AnnotatedTaskListener extends TestListener {
method methodA (line 408) | @BeforeTask
method methodB (line 413) | @AfterTask
class DefaultTaskListenerConfiguration (line 425) | @Configuration
method taskExecutionListener (line 428) | @Bean
class TestTaskExecutionListener (line 433) | public static class TestTaskExecutionListener extends TestListener i...
method onTaskStartup (line 435) | @Override
method onTaskEnd (line 442) | @Override
method onTaskFailed (line 449) | @Override
FILE: spring-cloud-task-core/src/test/java/org/springframework/cloud/task/listener/TaskLifecycleListenerTests.java
class TaskLifecycleListenerTests (line 69) | @ExtendWith(OutputCaptureExtension.class)
method setUp (line 76) | @BeforeEach
method tearDown (line 87) | @AfterEach
method testTaskCreate (line 100) | @Test
method testTaskCreateWithArgs (line 107) | @Test
method testTaskUpdate (line 115) | @Test
method testTaskFailedUpdate (line 126) | @Test
method testTaskFailedWithExitCodeEvent (line 139) | @Test
method testNoClosingOfContext (line 169) | @Test
method testInvalidTaskExecutionId (line 179) | @Test
method testRestartExistingTask (line 192) | @Test
method testExternalExecutionId (line 204) | @Test
method testParentExecutionId (line 218) | @Test
method verifyTaskExecution (line 232) | private void verifyTaskExecution(int numberOfParams, boolean update, I...
method verifyTaskExecution (line 236) | private void verifyTaskExecution(int numberOfParams, boolean update) {
method verifyTaskExecution (line 240) | private void verifyTaskExecution(int numberOfParams, boolean update, I...
method verifyTaskExecution (line 245) | private void verifyTaskExecution(int numberOfParams, boolean update, I...
class ArgsConfiguration (line 282) | @Configuration
method args (line 285) | @Bean
class SimpleApplicationArgs (line 297) | private static class SimpleApplicationArgs implements ApplicationArgum...
method SimpleApplicationArgs (line 301) | SimpleApplicationArgs(Map<String, String> args) {
method getSourceArgs (line 305) | @Override
method getOptionNames (line 318) | @Override
method containsOption (line 323) | @Override
method getOptionValues (line 328) | @Override
method getNonOptionArgs (line 333) | @Override
class TestListener2 (line 340) | private static final class TestListener2 extends TestListener {
class TestListener (line 344) | private static class TestListener implements TaskExecutionListener {
method TestListener (line 354) | TestListener() {
method getStartupOrderList (line 359) | public static List<Integer> getStartupOrderList() {
method getEndOrderList (line 363) | public static List<Integer> getEndOrderList() {
method getFailOrderList (line 367) | public static List<Integer> getFailOrderList() {
method onTaskStartup (line 371) | @Override
method onTaskEnd (line 376) | @Override
method onTaskFailed (line 381) | @Override
FILE: spring-cloud-task-core/src/test/java/org/springframework/cloud/task/listener/TaskListenerExecutorObjectFactoryTests.java
class TaskListenerExecutorObjectFactoryTests (line 48) | @ExtendWith(SpringExtension.class)
method setup (line 77) | public void setup(ConfigurableApplicationContext context) {
method verifyTaskStartupListener (line 83) | @Test
method verifyTaskFailedListener (line 96) | @Test
method verifyTaskEndListener (line 110) | @Test
method verifyAllListener (line 123) | @Test
method verifyTaskStartupListenerWithMultipleInstances (line 142) | @Test
method verifyTaskFailedListenerWithMultipleInstances (line 155) | @Test
method verifyTaskEndListenerWithMultipleInstances (line 169) | @Test
method verifyAllListenerWithMultipleInstances (line 182) | @Test
method createSampleTaskExecution (line 204) | private TaskExecution createSampleTaskExecution(String taskName) {
method validateSingleEntry (line 210) | private void validateSingleEntry(String event) {
method validateSingleEventWithMultipleInstances (line 215) | private void validateSingleEventWithMultipleInstances(String event) {
class TaskExecutionListenerConfiguration (line 220) | @Configuration
method taskRunComponent (line 223) | @Bean
class TaskExecutionListenerMultipleInstanceConfiguration (line 230) | @Configuration
method taskRunComponent (line 233) | @Bean
method otherTaskRunComponent (line 238) | @Bean
class TaskRunComponent (line 245) | public static class TaskRunComponent {
method initBeforeListener (line 247) | @BeforeTask
method initAfterListener (line 252) | @AfterTask
method initFailedListener (line 257) | @FailedTask
FILE: spring-cloud-task-core/src/test/java/org/springframework/cloud/task/micrometer/TaskObservationsTests.java
class TaskObservationsTests (line 52) | public class TaskObservationsTests {
method before (line 65) | @BeforeEach
method after (line 75) | @AfterEach
method successfulTaskTest (line 81) | @Test
method defaultTaskTest (line 100) | @Test
method failingTask (line 143) | @Test
method taskWithCloudKeyValues (line 181) | @Test
method testCloudVariablesUninitialized (line 245) | @Test
method startupObservationForBasicTests (line 304) | private TaskExecution startupObservationForBasicTests(String taskName,...
method initializeBasicTest (line 313) | private LongTaskTimer initializeBasicTest(String taskName, String exec...
method verifyDefaultKeyValues (line 328) | private void verifyDefaultKeyValues() {
method verifyLongTaskTimerAfterStop (line 351) | private void verifyLongTaskTimerAfterStop(LongTaskTimer longTaskTimer,...
class CloudConfigurationForDefaultValues (line 360) | @Configuration
method taskObservationCloudKeyValues (line 363) | @Bean
FILE: spring-cloud-task-core/src/test/java/org/springframework/cloud/task/repository/H2TaskRepositoryIntegrationTests.java
class H2TaskRepositoryIntegrationTests (line 38) | class H2TaskRepositoryIntegrationTests {
method testTaskRepository (line 40) | @ParameterizedTest
class TestConfiguration (line 54) | @EnableTask
FILE: spring-cloud-task-core/src/test/java/org/springframework/cloud/task/repository/MariaDbTaskRepositoryIntegrationTests.java
class MariaDbTaskRepositoryIntegrationTests (line 40) | @Tag("DockerRequired")
method testTaskExplorer (line 53) | @Test
class TestConfiguration (line 68) | @EnableTask
method dataSource (line 74) | @Bean
FILE: spring-cloud-task-core/src/test/java/org/springframework/cloud/task/repository/dao/BaseTaskExecutionDaoTestCases.java
class BaseTaskExecutionDaoTestCases (line 35) | public abstract class BaseTaskExecutionDaoTestCases {
method getLatestTaskExecutionsByTaskNamesWithNullParameter (line 39) | @Test
method getLatestTaskExecutionsByTaskNamesWithEmptyArrayParameter (line 52) | @Test
method getLatestTaskExecutionsByTaskNamesWithArrayParametersContainingNullAndEmptyValues (line 65) | @Test
method getLatestTaskExecutionsByTaskNamesWithSingleTaskName (line 79) | @Test
method getLatestTaskExecutionsByTaskNamesWithMultipleTaskNames (line 99) | @Test
method getLatestTaskExecutionsByTaskNamesWithIdenticalTaskExecutions (line 141) | @Test
method getLatestTaskExecutionForTaskNameWithNullParameter (line 161) | @Test
method getLatestTaskExecutionForTaskNameWithEmptyStringParameter (line 174) | @Test
method getLatestTaskExecutionForNonExistingTaskName (line 187) | @Test
method getLatestTaskExecutionForExistingTaskName (line 196) | @Test
method getLatestTaskExecutionForTaskNameWithIdenticalTaskExecutions (line 218) | @Test
method getRunningTaskExecutions (line 236) | @Test
method initializeRepositoryNotInOrderWithMultipleTaskExecutions (line 245) | protected long initializeRepositoryNotInOrderWithMultipleTaskExecution...
method getDate (line 293) | private LocalDateTime getDate(int year, int month, int day, int hour, ...
method createTaskExecution (line 303) | private long createTaskExecution(TaskExecution te) {
method getTaskExecution (line 309) | protected TaskExecution getTaskExecution(String taskName, String exter...
FILE: spring-cloud-task-core/src/test/java/org/springframework/cloud/task/repository/dao/JdbcTaskExecutionDaoMariaDBIntegrationTests.java
class JdbcTaskExecutionDaoMariaDBIntegrationTests (line 66) | @Tag("DockerRequired")
method setup (line 88) | @BeforeEach
method testStartTaskExecution (line 99) | @Test
method createTaskExecution (line 116) | @Test
method createEmptyTaskExecution (line 128) | @Test
method completeTaskExecution (line 137) | @Test
method completeTaskExecutionWithNoCreate (line 150) | @Test
method testFindAllPageableSort (line 162) | @Test
method testFindAllDefaultSort (line 178) | @Test
method testStartExecutionWithNullExternalExecutionIdExisting (line 193) | @Test
method testStartExecutionWithNullExternalExecutionIdNonExisting (line 204) | @Test
method testFindRunningTaskExecutions (line 216) | @Test
method testFindRunningTaskExecutionsIllegalSort (line 226) | @Test
method testFindRunningTaskExecutionsSortWithDifferentCase (line 236) | @Test
method initializeTaskExecutionWithExternalExecutionId (line 246) | private TaskExecution initializeTaskExecutionWithExternalExecutionId() {
method getPageIterator (line 252) | private Iterator<TaskExecution> getPageIterator(int pageNum, int pageS...
method initializeRepository (line 261) | private void initializeRepository() {
method initializeRepositoryNotInOrder (line 267) | private void initializeRepositoryNotInOrder() {
class TestDataSourceConfiguration (line 273) | @Configuration
method dataSource (line 278) | @Bean
FILE: spring-cloud-task-core/src/test/java/org/springframework/cloud/task/repository/dao/TaskExecutionDaoTests.java
class TaskExecutionDaoTests (line 61) | @ExtendWith(SpringExtension.class)
method setup (line 72) | @BeforeEach
method testStartTaskExecutionGeneric (line 79) | @ParameterizedTest
method getDao (line 97) | private TaskExecutionDao getDao(String type) {
method getTaskExecution (line 110) | private TaskExecution getTaskExecution(String type, TaskExecution expe...
method createTaskExecution (line 124) | @ParameterizedTest
method createEmptyTaskExecution (line 137) | @ParameterizedTest
method completeTaskExecution (line 147) | @ParameterizedTest
method completeTaskExecutionWithNoCreate (line 161) | @ParameterizedTest
method testFindAllPageableSort (line 175) | @Test
method testFindAllDefaultSort (line 191) | @Test
method testStartExecutionWithNullExternalExecutionIdExisting (line 206) | @ParameterizedTest
method testStartExecutionWithNullExternalExecutionIdNonExisting (line 218) | @ParameterizedTest
method testFindRunningTaskExecutions (line 231) | @ParameterizedTest
method testFindRunningTaskExecutionsIllegalSort (line 241) | @Test
method testFindRunningTaskExecutionsSortWithDifferentCase (line 251) | @Test
method initializeTaskExecutionWithExternalExecutionId (line 261) | private TaskExecution initializeTaskExecutionWithExternalExecutionId() {
method getPageIterator (line 267) | private Iterator<TaskExecution> getPageIterator(int pageNum, int pageS...
method initializeRepository (line 276) | private void initializeRepository() {
method initializeRepositoryNotInOrder (line 282) | private void initializeRepositoryNotInOrder() {
FILE: spring-cloud-task-core/src/test/java/org/springframework/cloud/task/repository/database/support/FindAllPagingQueryProviderTests.java
class FindAllPagingQueryProviderTests (line 35) | public class FindAllPagingQueryProviderTests {
method data (line 39) | public static Collection<Object[]> data() {
method testGeneratedQuery (line 77) | @ParameterizedTest
FILE: spring-cloud-task-core/src/test/java/org/springframework/cloud/task/repository/database/support/H2PagingQueryProviderTests.java
class H2PagingQueryProviderTests (line 44) | class H2PagingQueryProviderTests {
method testH2PagingQueryProvider (line 46) | @ParameterizedTest
FILE: spring-cloud-task-core/src/test/java/org/springframework/cloud/task/repository/database/support/InvalidPagingQueryProviderTests.java
class InvalidPagingQueryProviderTests (line 30) | public class InvalidPagingQueryProviderTests {
method testInvalidDatabase (line 32) | @Test
FILE: spring-cloud-task-core/src/test/java/org/springframework/cloud/task/repository/database/support/SqlPagingQueryProviderFactoryBeanTests.java
class SqlPagingQueryProviderFactoryBeanTests (line 35) | public class SqlPagingQueryProviderFactoryBeanTests {
method setup (line 39) | @BeforeEach
method testDatabaseType (line 53) | @Test
method testIsSingleton (line 59) | @Test
FILE: spring-cloud-task-core/src/test/java/org/springframework/cloud/task/repository/database/support/WhereClausePagingQueryProviderTests.java
class WhereClausePagingQueryProviderTests (line 35) | public class WhereClausePagingQueryProviderTests {
method data (line 39) | public static Collection<Object[]> data() {
method testGeneratedQuery (line 71) | @ParameterizedTest
FILE: spring-cloud-task-core/src/test/java/org/springframework/cloud/task/repository/support/DatabaseTypeTests.java
class DatabaseTypeTests (line 42) | public class DatabaseTypeTests {
method testFromProductName (line 44) | @Test
method testInvalidProductName (line 53) | @Test
method testFromMetaDataForHsql (line 58) | @Test
method testFromMetaDataForOracle (line 64) | @Test
method testFromMetaDataForPostgres (line 70) | @Test
method testFromMetaDataForMySQL (line 76) | @Test
method testFromMetaDataForMariaDB (line 82) | @Test
FILE: spring-cloud-task-core/src/test/java/org/springframework/cloud/task/repository/support/SimpleTaskExplorerTests.java
class SimpleTaskExplorerTests (line 57) | public class SimpleTaskExplorerTests {
method data (line 71) | public static Collection<Object> data() {
method testDefaultContext (line 75) | public void testDefaultContext(DaoType testType) {
method close (line 84) | @AfterEach
method getTaskExecution (line 91) | @ParameterizedTest
method taskExecutionNotFound (line 105) | @ParameterizedTest
method getTaskCountByTaskName (line 116) | @ParameterizedTest
method getTaskCount (line 129) | @ParameterizedTest
method getRunningTaskCount (line 139) | @ParameterizedTest
method findRunningTasks (line 149) | @ParameterizedTest
method findTasksByExternalExecutionId (line 186) | @ParameterizedTest
method findTasksByExternalExecutionIdMultipleEntry (line 202) | @ParameterizedTest
method findTasksByName (line 235) | @ParameterizedTest
method getTaskNames (line 270) | @ParameterizedTest
method findAllExecutionsOffBoundry (line 288) | @ParameterizedTest
method findAllExecutionsOffBoundryByOne (line 296) | @ParameterizedTest
method findAllExecutionsOnBoundry (line 304) | @ParameterizedTest
method findAllExecutionsNoResult (line 312) | @ParameterizedTest
method findTasksForInvalidJob (line 320) | @ParameterizedTest
method findJobsExecutionIdsForInvalidTask (line 327) | @ParameterizedTest
method getLatestTaskExecutionForTaskName (line 334) | @ParameterizedTest
method getLatestTaskExecutionsByTaskNames (line 350) | @ParameterizedTest
method verifyPageResults (line 374) | private void verifyPageResults(Pageable pageable, int totalNumberOfExe...
method createAndSaveTaskExecution (line 418) | private TaskExecution createAndSaveTaskExecution(int i) {
method initializeJdbcExplorerTest (line 424) | private void initializeJdbcExplorerTest() {
method initializeMapExplorerTest (line 434) | private void initializeMapExplorerTest() {
method createSampleDataSet (line 443) | private Map<Long, TaskExecution> createSampleDataSet(int count) {
method getSortedOfTaskExecIds (line 452) | private List<Long> getSortedOfTaskExecIds(Map<Long, TaskExecution> tas...
method getTreeSet (line 463) | private TreeSet<TaskExecution> getTreeSet() {
method getSimpleTaskExecution (line 476) | private TaskExecution getSimpleTaskExecution() {
type DaoType (line 484) | private enum DaoType {
class DataSourceConfiguration (line 490) | @Configuration
class EmptyConfiguration (line 495) | @Configuration
FILE: spring-cloud-task-core/src/test/java/org/springframework/cloud/task/repository/support/SimpleTaskNameResolverTests.java
class SimpleTaskNameResolverTests (line 28) | public class SimpleTaskNameResolverTests {
method testDefault (line 30) | @Test
method testWithProfile (line 41) | @Test
method testApplicationName (line 52) | @Test
method testExternalConfig (line 63) | @Test
FILE: spring-cloud-task-core/src/test/java/org/springframework/cloud/task/repository/support/SimpleTaskRepositoryJdbcTests.java
class SimpleTaskRepositoryJdbcTests (line 51) | @ExtendWith(SpringExtension.class)
method testCreateEmptyExecution (line 63) | @Test
method testCreateTaskExecutionNoParam (line 73) | @Test
method testCreateTaskExecutionWithParam (line 83) | @Test
method startTaskExecutionWithParam (line 93) | @Test
method startTaskExecutionWithNoParam (line 111) | @Test
method testUpdateExternalExecutionId (line 128) | @Test
method testUpdateNullExternalExecutionId (line 139) | @Test
method testInvalidExecutionIdForExternalExecutionIdUpdate (line 150) | @Test
method startTaskExecutionWithParent (line 160) | @Test
method testCompleteTaskExecution (line 178) | @Test
method testCreateTaskExecutionNoParamMaxExitDefaultMessageSize (line 192) | @Test
method testCreateTaskExecutionNoParamMaxExitMessageSize (line 204) | @Test
method testCreateTaskExecutionNoParamMaxErrorDefaultMessageSize (line 219) | @Test
method testCreateTaskExecutionNoParamMaxErrorMessageSize (line 232) | @Test
method testMaxTaskNameSizeForConstructor (line 247) | @Test
method testDefaultMaxTaskNameSizeForConstructor (line 262) | @Test
method testMaxSizeConstructor (line 273) | @Test
method testDefaultConstructor (line 282) | @Test
method testCreateTaskExecutionNoParamMaxTaskName (line 290) | @Test
method testCreateTaskExecutionNegativeException (line 301) | @Test
method testCreateTaskExecutionNullEndTime (line 316) | @Test
method completeTaskExecution (line 327) | private TaskExecution completeTaskExecution(TaskExecution expectedTask...
method verifyTaskRepositoryConstructor (line 333) | private void verifyTaskRepositoryConstructor(Integer maxExitMessage, I...
FILE: spring-cloud-task-core/src/test/java/org/springframework/cloud/task/repository/support/SimpleTaskRepositoryMapTests.java
class SimpleTaskRepositoryMapTests (line 42) | public class SimpleTaskRepositoryMapTests {
method setUp (line 46) | @BeforeEach
method testCreateEmptyExecution (line 51) | @Test
method testCreateTaskExecutionNoParam (line 59) | @Test
method testUpdateExternalExecutionId (line 67) | @Test
method testUpdateNullExternalExecutionId (line 78) | @Test
method testInvalidExecutionIdForExternalExecutionIdUpdate (line 89) | @Test
method testCreateTaskExecutionWithParam (line 99) | @Test
method startTaskExecutionWithParam (line 107) | @Test
method startTaskExecutionWithNoParam (line 124) | @Test
method startTaskExecutionWithParent (line 140) | @Test
method testCompleteTaskExecution (line 157) | @Test
method getSingleTaskExecutionFromMapRepository (line 168) | private TaskExecution getSingleTaskExecutionFromMapRepository(long tas...
method testCreateTaskExecutionNullEndTime (line 175) | @Test
FILE: spring-cloud-task-core/src/test/java/org/springframework/cloud/task/repository/support/TaskDatabaseInitializerTests.java
class TaskDatabaseInitializerTests (line 43) | public class TaskDatabaseInitializerTests {
method close (line 47) | @AfterEach
method testDefaultContext (line 54) | @Test
method testNoDatabase (line 64) | @Test
method testNoTaskConfiguration (line 73) | @Test
method testMultipleDataSourcesContext (line 82) | @Test
class EmptyConfiguration (line 94) | @Configuration
FILE: spring-cloud-task-core/src/test/java/org/springframework/cloud/task/repository/support/TaskExecutionDaoFactoryBeanTests.java
class TaskExecutionDaoFactoryBeanTests (line 41) | public class TaskExecutionDaoFactoryBeanTests {
method tearDown (line 45) | @AfterEach
method testGetObjectType (line 52) | @Test
method testIsSingleton (line 57) | @Test
method testConstructorValidation (line 62) | @Test
method testMapTaskExecutionDaoWithoutAppContext (line 69) | @Test
method testDefaultDataSourceConfiguration (line 81) | @Test
method testSettingTablePrefix (line 97) | @Test
class DefaultDataSourceConfiguration (line 109) | @Configuration
method dataSource (line 112) | @Bean
FILE: spring-cloud-task-core/src/test/java/org/springframework/cloud/task/util/TaskExecutionCreator.java
class TaskExecutionCreator (line 31) | public final class TaskExecutionCreator {
method TaskExecutionCreator (line 33) | private TaskExecutionCreator() {
method createAndStoreEmptyTaskExecution (line 41) | public static TaskExecution createAndStoreEmptyTaskExecution(TaskRepos...
method createAndStoreTaskExecutionNoParams (line 50) | public static TaskExecution createAndStoreTaskExecutionNoParams(TaskRe...
method createAndStoreTaskExecutionWithParams (line 60) | public static TaskExecution createAndStoreTaskExecutionWithParams(Task...
method completeExecution (line 76) | public static TaskExecution completeExecution(TaskRepository taskRepos...
FILE: spring-cloud-task-core/src/test/java/org/springframework/cloud/task/util/TestDBUtils.java
class TestDBUtils (line 56) | public final class TestDBUtils {
method TestDBUtils (line 58) | private TestDBUtils() {
method getTaskExecutionFromDB (line 67) | public static TaskExecution getTaskExecutionFromDB(DataSource dataSour...
method getPagingQueryProvider (line 98) | public static PagingQueryProvider getPagingQueryProvider(String databa...
method getPagingQueryProvider (line 111) | public static PagingQueryProvider getPagingQueryProvider(String databa...
method getMockDataSource (line 143) | public static DataSource getMockDataSource(String databaseProductName)...
method getIncrementer (line 159) | public static DataFieldMaxValueIncrementer getIncrementer(DataSource d...
method populateParamsToDB (line 175) | private static void populateParamsToDB(DataSource dataSource, TaskExec...
FILE: spring-cloud-task-core/src/test/java/org/springframework/cloud/task/util/TestDefaultConfiguration.java
class TestDefaultConfiguration (line 48) | @Configuration
method TestDefaultConfiguration (line 63) | public TestDefaultConfiguration() {
method taskRepository (line 66) | @Bean
method taskExplorer (line 71) | @Bean
method taskNameResolver (line 76) | @Bean
method taskListenerExecutorObjectProvider (line 81) | @Bean
method taskHandler (line 87) | @Bean
method afterPropertiesSet (line 97) | @Override
FILE: spring-cloud-task-core/src/test/java/org/springframework/cloud/task/util/TestListener.java
class TestListener (line 26) | public abstract class TestListener {
method isTaskStartup (line 57) | public boolean isTaskStartup() {
method isTaskEnd (line 65) | public boolean isTaskEnd() {
method isTaskFailed (line 73) | public boolean isTaskFailed() {
method getTaskExecution (line 81) | public TaskExecution getTaskExecution() {
method getThrowable (line 89) | public Throwable getThrowable() {
FILE: spring-cloud-task-core/src/test/java/org/springframework/cloud/task/util/TestVerifierUtils.java
class TestVerifierUtils (line 45) | public final class TestVerifierUtils {
method TestVerifierUtils (line 52) | private TestVerifierUtils() {
method getMockAppender (line 59) | public static Appender getMockAppender() {
method verifyLogEntryExists (line 74) | public static void verifyLogEntryExists(Appender mockAppender, final S...
method createSampleTaskExecutionNoArg (line 87) | public static TaskExecution createSampleTaskExecutionNoArg() {
method endSampleTaskExecutionNoArg (line 100) | public static TaskExecution endSampleTaskExecutionNoArg() {
method createSampleTaskExecution (line 116) | public static TaskExecution createSampleTaskExecution(long executionId) {
method verifyTaskExecution (line 132) | public static void verifyTaskExecution(TaskExecution expectedTaskExecu...
FILE: spring-cloud-task-integration-tests/src/test/java/configuration/JobConfiguration.java
class JobConfiguration (line 43) | @Configuration
method job (line 55) | @Bean
method step1 (line 60) | @Bean
method step2 (line 71) | @Bean
FILE: spring-cloud-task-integration-tests/src/test/java/configuration/JobSkipConfiguration.java
class JobSkipConfiguration (line 38) | @Configuration
method job (line 48) | @Bean
method step1 (line 53) | @Bean
method step2 (line 64) | @Bean
FILE: spring-cloud-task-integration-tests/src/test/java/configuration/SkipItemReader.java
class SkipItemReader (line 27) | public class SkipItemReader implements ItemReader {
method read (line 33) | @Override
FILE: spring-cloud-task-integration-tests/src/test/java/configuration/SkipItemWriter.java
class SkipItemWriter (line 25) | public class SkipItemWriter implements ItemWriter {
method write (line 29) | @Override
FILE: spring-cloud-task-integration-tests/src/test/java/org/springframework/cloud/task/executionid/TaskStartApplication.java
class TaskStartApplication (line 28) | @EnableTask
method main (line 32) | public static void main(String[] args) {
method testCommandLineRunner (line 36) | @Bean
FILE: spring-cloud-task-integration-tests/src/test/java/org/springframework/cloud/task/executionid/TaskStartTests.java
class TaskStartTests (line 64) | @Testcontainers
method tearDown (line 91) | @AfterEach
method setup (line 98) | @BeforeEach
method testWithGeneratedTaskExecution (line 144) | @Test
method testWithGeneratedTaskExecutionWithName (line 158) | @Test
method testWithGeneratedTaskExecutionWithExistingDate (line 176) | @Test
method testWithNoTaskExecution (line 197) | @Test
method testCompletedTaskExecution (line 204) | @Test
method testDuplicateTaskExecutionWithSingleInstanceEnabled (line 214) | @Test
method testDuplicateTaskExecutionWithSingleInstanceDisabled (line 235) | @Test
method getTaskApplication (line 247) | private SpringApplication getTaskApplication(Integer executionId) {
method tableExists (line 263) | private boolean tableExists() throws SQLException {
method waitForDBToBePopulated (line 272) | private boolean waitForDBToBePopulated() throws Exception {
method enableLock (line 284) | private void enableLock(String lockKey) {
FILE: spring-cloud-task-integration-tests/src/test/java/org/springframework/cloud/task/initializer/TaskInitializerTests.java
class TaskInitializerTests (line 56) | @Testcontainers
method tearDown (line 77) | @AfterEach
method setDataSource (line 84) | @Autowired
method setup (line 91) | @BeforeEach
method testNotInitialized (line 120) | @Test
method testWithInitialized (line 129) | @Test
method testNotInitializedOriginalProperty (line 143) | @Test
method testWithInitializedOriginalProperty (line 152) | @Test
method tableExists (line 166) | private boolean tableExists() throws SQLException {
method waitForDBToBePopulated (line 175) | private boolean waitForDBToBePopulated() throws Exception {
method getTaskApplication (line 187) | private SpringApplication getTaskApplication() {
FILE: spring-cloud-task-integration-tests/src/test/java/org/springframework/cloud/task/listener/BatchExecutionEventTests.java
class BatchExecutionEventTests (line 50) | public class BatchExecutionEventTests {
method setup (line 58) | @BeforeEach
method tearDown (line 63) | @AfterEach
method testContext (line 70) | @Test
method testJobEventListener (line 87) | @Test
method testStepEventListener (line 98) | @Test
method testItemProcessEventListener (line 121) | @Test
method testChunkListener (line 132) | @Test
method testWriteListener (line 144) | @Test
method getCommandLineParams (line 156) | private String[] getCommandLineParams(String sinkChannelParam) {
method getCommandLineParams (line 160) | private String[] getCommandLineParams(String sinkChannelParam, boolean...
method testListener (line 169) | private List<Message<byte[]>> testListener(String channelBinding, Stri...
method testListenerSkip (line 173) | private List<Message<byte[]>> testListenerSkip(String channelBinding, ...
method testListenerForApp (line 177) | private List<Message<byte[]>> testListenerForApp(String channelBinding...
method testItemReadListener (line 195) | @Test
method testSkipEventListener (line 205) | @Test
class BatchEventsApplication (line 229) | @SpringBootApplication
class BatchSkipEventsApplication (line 236) | @SpringBootApplication
FILE: spring-cloud-task-integration-tests/src/test/java/org/springframework/cloud/task/listener/TaskEventTests.java
class TaskEventTests (line 45) | public class TaskEventTests {
method setup (line 53) | @BeforeEach
method tearDown (line 58) | @AfterEach
method testTaskEventListener (line 65) | @Test
method testListener (line 79) | private List<Message<byte[]>> testListener(String channelBinding, Stri...
method getCommandLineParams (line 94) | private String[] getCommandLineParams(String sinkChannelParam) {
class TaskEventsConfiguration (line 100) | @EnableTask
FILE: spring-cloud-task-samples/batch-events/src/main/java/io/spring/cloud/BatchEventsApplication.java
class BatchEventsApplication (line 42) | @EnableTask
method main (line 46) | public static void main(String[] args) {
class JobConfiguration (line 50) | @Configuration
method step1 (line 61) | @Bean
method step2 (line 72) | @Bean
method job (line 94) | @Bean
FILE: spring-cloud-task-samples/batch-events/src/test/java/io/spring/cloud/BatchEventsApplicationTests.java
class BatchEventsApplicationTests (line 44) | @Tag("DockerRequired")
method setup (line 55) | @BeforeEach
method tearDown (line 60) | @AfterEach
method testExecution (line 67) | @Test
method getCommandLineParams (line 75) | private String[] getCommandLineParams(boolean enableFailJobConfig) {
method testListener (line 83) | private List<Message<byte[]>> testListener(String bindingName, int num...
class BatchEventsTestApplication (line 97) | @SpringBootApplication
FILE: spring-cloud-task-samples/batch-job/src/main/java/io/spring/BatchJobApplication.java
class BatchJobApplication (line 23) | @EnableTask
method main (line 27) | public static void main(String[] args) {
FILE: spring-cloud-task-samples/batch-job/src/main/java/io/spring/configuration/JobConfiguration.java
class JobConfiguration (line 38) | @Configuration(proxyBeanMethods = false)
method job1 (line 49) | @Bean
FILE: spring-cloud-task-samples/batch-job/src/test/java/io/spring/BatchJobApplicationTests.java
class BatchJobApplicationTests (line 36) | @ExtendWith(OutputCaptureExtension.class)
method testBatchJobApp (line 39) | @Test
FILE: spring-cloud-task-samples/batch-job/src/test/java/io/spring/BatchJobTestConfiguration.java
class BatchJobTestConfiguration (line 26) | @TestConfiguration(proxyBeanMethods = false)
method postgresSQLContainer (line 29) | @Bean
FILE: spring-cloud-task-samples/batch-job/src/test/java/io/spring/TestBatchJobApp.java
class TestBatchJobApp (line 21) | public class TestBatchJobApp {
method main (line 23) | public static void main(String[] args) {
FILE: spring-cloud-task-samples/jpa-sample/src/main/java/io/spring/JpaApplication.java
class JpaApplication (line 23) | @EnableTask
method main (line 27) | public static void main(String[] args) {
FILE: spring-cloud-task-samples/jpa-sample/src/main/java/io/spring/configuration/TaskRunComponent.java
class TaskRunComponent (line 36) | @Component
method init (line 44) | @BeforeTask
FILE: spring-cloud-task-samples/jpa-sample/src/main/java/io/spring/configuration/TaskRunOutput.java
class TaskRunOutput (line 31) | @Entity
method TaskRunOutput (line 41) | public TaskRunOutput() {
method TaskRunOutput (line 44) | public TaskRunOutput(String output) {
method getId (line 48) | public Long getId() {
method setId (line 52) | public void setId(Long id) {
method getOutput (line 56) | public String getOutput() {
method setOutput (line 60) | public void setOutput(String output) {
method toString (line 64) | @Override
FILE: spring-cloud-task-samples/jpa-sample/src/main/java/io/spring/configuration/TaskRunRepository.java
type TaskRunRepository (line 25) | public interface TaskRunRepository extends JpaRepository<TaskRunOutput, ...
FILE: spring-cloud-task-samples/jpa-sample/src/test/java/io/spring/JpaApplicationTests.java
class JpaApplicationTests (line 45) | @ExtendWith(OutputCaptureExtension.class)
method setup (line 70) | @BeforeEach
method tearDown (line 88) | @AfterEach
method testBatchJobApp (line 96) | @Test
FILE: spring-cloud-task-samples/multiple-datasources/src/main/java/io/spring/MultipleDataSourcesApplication.java
class MultipleDataSourcesApplication (line 26) | @EnableTask
method main (line 30) | public static void main(String[] args) {
FILE: spring-cloud-task-samples/multiple-datasources/src/main/java/io/spring/configuration/CustomTaskConfigurer.java
class CustomTaskConfigurer (line 29) | @Component
method CustomTaskConfigurer (line 32) | @Autowired
FILE: spring-cloud-task-samples/multiple-datasources/src/main/java/io/spring/configuration/EmbeddedDataSourceConfiguration.java
class EmbeddedDataSourceConfiguration (line 33) | @Configuration(proxyBeanMethods = false)
method dataSource (line 37) | @Bean
method secondDataSource (line 42) | @Bean
FILE: spring-cloud-task-samples/multiple-datasources/src/main/java/io/spring/configuration/ExternalDataSourceConfiguration.java
class ExternalDataSourceConfiguration (line 37) | @Configuration(proxyBeanMethods = false)
method springDataSourceProperties (line 41) | @Bean(name = "springDataSourceProperties")
method myDataSourceProperties (line 48) | @Bean(name = "secondDataSourceProperties")
method dataSource (line 54) | @Bean(name = "springDataSource")
method secondDataSource (line 66) | @Bean
FILE: spring-cloud-task-samples/multiple-datasources/src/main/java/io/spring/task/SampleCommandLineRunner.java
class SampleCommandLineRunner (line 30) | @Component
method SampleCommandLineRunner (line 35) | @Autowired
method run (line 40) | @Override
FILE: spring-cloud-task-samples/multiple-datasources/src/test/java/io/spring/MultiDataSourcesApplicationTests.java
class MultiDataSourcesApplicationTests (line 31) | @ExtendWith(OutputCaptureExtension.class)
method testTimeStampApp (line 34) | @Test
FILE: spring-cloud-task-samples/multiple-datasources/src/test/java/io/spring/MultiDataSourcesExternalApplicationTests.java
class MultiDataSourcesExternalApplicationTests (line 39) | @ExtendWith({ OutputCaptureExtension.class, SpringExtension.class })
method testTimeStampApp (line 66) | @Test
class TaskLauncherConfiguration (line 89) | @Configuration(proxyBeanMethods = false)
method initH2TCPServer (line 96) | @Bean
method initSecondH2TCPServer (line 114) | @Bean
FILE: spring-cloud-task-samples/single-step-batch-job/src/main/java/io/spring/SingleStepBatchJobApplication.java
class SingleStepBatchJobApplication (line 23) | @EnableTask
method main (line 27) | public static void main(String[] args) {
FILE: spring-cloud-task-samples/single-step-batch-job/src/test/java/io/spring/BatchJobApplicationTests.java
class BatchJobApplicationTests (line 52) | public class BatchJobApplicationTests {
method setup (line 74) | @BeforeEach
method tearDown (line 80) | @AfterEach
method testFileReaderJdbcWriter (line 92) | @Test
method testJdbcReaderJdbcWriter (line 101) | @Test
method testJdbcReaderFlatfileWriter (line 111) | @Test
method testFileReaderFileWriter (line 120) | @Test
method initH2TCPServer (line 127) | public Server initH2TCPServer() throws SQLException {
method validateFileResult (line 148) | private void validateFileResult() throws Exception {
method validateDBResult (line 154) | private void validateDBResult() {
method getDataSource (line 168) | private DataSource getDataSource() {
method getSpringApplication (line 177) | private SpringApplication getSpringApplication() {
FILE: spring-cloud-task-samples/single-step-batch-job/src/test/resources/schema-h2.sql
type item (line 1) | CREATE TABLE IF NOT EXISTS item
type item_sample (line 6) | CREATE TABLE IF NOT EXISTS item_sample
FILE: spring-cloud-task-samples/task-events/src/main/java/io/spring/TaskEventsApplication.java
class TaskEventsApplication (line 26) | @EnableTask
method main (line 30) | public static void main(String[] args) {
class TaskConfiguration (line 34) | @Configuration(proxyBeanMethods = false)
method commandLineRunner (line 37) | @Bean
FILE: spring-cloud-task-samples/task-observations/src/main/java/io/spring/taskobservations/ObservationConfiguration.java
class ObservationConfiguration (line 24) | @Configuration
method meterRegistry (line 27) | @Bean
FILE: spring-cloud-task-samples/task-observations/src/main/java/io/spring/taskobservations/TaskObservationsApplication.java
class TaskObservationsApplication (line 33) | @SpringBootApplication
method main (line 42) | public static void main(String[] args) {
method applicationRunner (line 46) | @Bean
method commandLineRunner (line 51) | @Bean
method afterTask (line 59) | @AfterTask
FILE: spring-cloud-task-samples/task-observations/src/test/java/io/spring/taskobservations/TaskObservationsApplicationTests.java
class TaskObservationsApplicationTests (line 28) | @SpringBootTest
method contextLoads (line 32) | @Test
FILE: spring-cloud-task-samples/timestamp/src/main/java/org/springframework/cloud/task/timestamp/TaskApplication.java
class TaskApplication (line 37) | @EnableTask
method main (line 44) | public static void main(String[] args) {
method timeStampTask (line 48) | @Bean
class TimestampTask (line 56) | public static class TimestampTask implements CommandLineRunner {
method run (line 61) | @Override
FILE: spring-cloud-task-samples/timestamp/src/main/java/org/springframework/cloud/task/timestamp/TimestampTaskProperties.java
class TimestampTaskProperties (line 25) | @ConfigurationProperties
method getFormat (line 33) | public String getFormat() {
method setFormat (line 38) | public void setFormat(String format) {
FILE: spring-cloud-task-samples/timestamp/src/test/java/org/springframework/cloud/task/timestamp/TaskApplicationTests.java
class TaskApplicationTests (line 36) | @ExtendWith(OutputCaptureExtension.class)
method testTimeStampApp (line 39) | @Test
FILE: spring-cloud-task-samples/timestamp/src/test/java/org/springframework/cloud/task/timestamp/TimestampTaskPropertiesTests.java
class TimestampTaskPropertiesTests (line 32) | public class TimestampTaskPropertiesTests {
method testEmptyFormat (line 34) | @Test
method testFormatDefault (line 47) | @Test
method testFormatSet (line 57) | @Test
class Conf (line 68) | @Configuration(proxyBeanMethods = false)
FILE: spring-cloud-task-stream/src/main/java/org/springframework/cloud/task/batch/listener/BatchEventAutoConfiguration.java
class BatchEventAutoConfiguration (line 62) | @AutoConfiguration(after = SimpleTaskAutoConfiguration.class)
method batchTaskEventListenerBeanPostProcessor (line 105) | @Bean
class JobExecutionListenerConfiguration (line 114) | @AutoConfiguration
method jobExecutionEventsListener (line 125) | @Bean
method stepExecutionEventsListener (line 137) | @Bean
method chunkEventsListener (line 148) | @Bean
method itemReadEventsListener (line 160) | @Bean
method itemWriteEventsListener (line 171) | @Bean
method itemProcessEventsListener (line 182) | @Bean
method skipEventsListener (line 193) | @Bean
method messagePublisher (line 202) | @Bean
FILE: spring-cloud-task-stream/src/main/java/org/springframework/cloud/task/batch/listener/EventEmittingChunkListener.java
class EventEmittingChunkListener (line 35) | public class EventEmittingChunkListener implements ChunkListener, Ordered {
method EventEmittingChunkListener (line 43) | public EventEmittingChunkListener(MessagePublisher messagePublisher, T...
method EventEmittingChunkListener (line 50) | public EventEmittingChunkListener(MessagePublisher messagePublisher, i...
method beforeChunk (line 55) | @Override
method afterChunk (line 60) | @Override
method onChunkError (line 65) | @Override
method getOrder (line 70) | @Override
FILE: spring-cloud-task-stream/src/main/java/org/springframework/cloud/task/batch/listener/EventEmittingItemProcessListener.java
class EventEmittingItemProcessListener (line 44) | public class EventEmittingItemProcessListener implements ItemProcessList...
method EventEmittingItemProcessListener (line 54) | public EventEmittingItemProcessListener(MessagePublisher messagePublis...
method EventEmittingItemProcessListener (line 61) | public EventEmittingItemProcessListener(MessagePublisher messagePublis...
method beforeProcess (line 67) | @Override
method afterProcess (line 71) | @Override
method onProcessError (line 86) | @Override
method getOrder (line 95) | @Override
FILE: spring-cloud-task-stream/src/main/java/org/springframework/cloud/task/batch/listener/EventEmittingItemReadListener.java
class EventEmittingItemReadListener (line 41) | public class EventEmittingItemReadListener implements ItemReadListener, ...
method EventEmittingItemReadListener (line 51) | public EventEmittingItemReadListener(MessagePublisher messagePublisher...
method EventEmittingItemReadListener (line 58) | public EventEmittingItemReadListener(MessagePublisher messagePublisher...
method beforeRead (line 63) | @Override
method afterRead (line 68) | @Override
method onReadError (line 73) | @Override
method getOrder (line 83) | @Override
FILE: spring-cloud-task-stream/src/main/java/org/springframework/cloud/task/batch/listener/EventEmittingItemWriteListener.java
class EventEmittingItemWriteListener (line 41) | public class EventEmittingItemWriteListener implements ItemWriteListener...
method EventEmittingItemWriteListener (line 51) | public EventEmittingItemWriteListener(MessagePublisher messagePublishe...
method EventEmittingItemWriteListener (line 59) | public EventEmittingItemWriteListener(MessagePublisher messagePublishe...
method beforeWrite (line 65) | @Override
method afterWrite (line 71) | @Override
method onWriteError (line 80) | @Override
method getOrder (line 90) | @Override
FILE: spring-cloud-task-stream/src/main/java/org/springframework/cloud/task/batch/listener/EventEmittingJobExecutionListener.java
class EventEmittingJobExecutionListener (line 34) | public class EventEmittingJobExecutionListener implements JobExecutionLi...
method EventEmittingJobExecutionListener (line 42) | public EventEmittingJobExecutionListener(MessagePublisher messagePubli...
method EventEmittingJobExecutionListener (line 50) | public EventEmittingJobExecutionListener(MessagePublisher messagePubli...
method beforeJob (line 56) | @Override
method afterJob (line 62) | @Override
method getOrder (line 68) | @Override
FILE: spring-cloud-task-stream/src/main/java/org/springframework/cloud/task/batch/listener/EventEmittingSkipListener.java
class EventEmittingSkipListener (line 42) | public class EventEmittingSkipListener implements SkipListener, Ordered {
method EventEmittingSkipListener (line 52) | public EventEmittingSkipListener(MessagePublisher messagePublisher, Ta...
method EventEmittingSkipListener (line 60) | public EventEmittingSkipListener(MessagePublisher messagePublisher, in...
method onSkipInRead (line 65) | @Override
method onSkipInWrite (line 74) | @Override
method onSkipInProcess (line 83) | @Override
method getOrder (line 92) | @Override
FILE: spring-cloud-task-stream/src/main/java/org/springframework/cloud/task/batch/listener/EventEmittingStepExecutionListener.java
class EventEmittingStepExecutionListener (line 37) | public class EventEmittingStepExecutionListener implements StepExecution...
method EventEmittingStepExecutionListener (line 45) | public EventEmittingStepExecutionListener(MessagePublisher messagePubl...
method EventEmittingStepExecutionListener (line 53) | public EventEmittingStepExecutionListener(MessagePublisher messagePubl...
method beforeStep (line 59) | @Override
method afterStep (line 65) | @Override
method getOrder (line 73) | @Override
FILE: spring-cloud-task-stream/src/main/java/org/springframework/cloud/task/batch/listener/support/BatchJobHeaders.java
class BatchJobHeaders (line 25) | public final class BatchJobHeaders {
method BatchJobHeaders (line 37) | private BatchJobHeaders() {
FILE: spring-cloud-task-stream/src/main/java/org/springframework/cloud/task/batch/listener/support/ExitStatus.java
class ExitStatus (line 27) | public class ExitStatus {
method ExitStatus (line 33) | public ExitStatus() {
method ExitStatus (line 36) | public ExitStatus(org.springframework.batch.core.ExitStatus exitStatus) {
method getExitCode (line 43) | public String getExitCode() {
method setExitCode (line 47) | public void setExitCode(String exitCode) {
method getExitDescription (line 51) | public String getExitDescription() {
method setExitDescription (line 55) | public void setExitDescription(String exitDescription) {
FILE: spring-cloud-task-stream/src/main/java/org/springframework/cloud/task/batch/listener/support/JobExecutionEvent.java
class JobExecutionEvent (line 40) | public class JobExecutionEvent extends Entity {
method JobExecutionEvent (line 64) | public JobExecutionEvent() {
method JobExecutionEvent (line 72) | public JobExecutionEvent(JobExecution original) {
method getJobParameters (line 91) | public JobParametersEvent getJobParameters() {
method getEndTime (line 95) | public LocalDateTime getEndTime() {
method setEndTime (line 99) | public void setEndTime(LocalDateTime endTime) {
method getStartTime (line 103) | public LocalDateTime getStartTime() {
method setStartTime (line 107) | public void setStartTime(LocalDateTime startTime) {
method getStatus (line 111) | public BatchStatus getStatus() {
method setStatus (line 119) | public void setStatus(BatchStatus status) {
method upgradeStatus (line 129) | public void upgradeStatus(BatchStatus status) {
method getJobId (line 137) | public Long getJobId() {
method getExitStatus (line 147) | public ExitStatus getExitStatus() {
method setExitStatus (line 154) | public void setExitStatus(ExitStatus exitStatus) {
method getJobInstance (line 161) | public JobInstanceEvent getJobInstance() {
method setJobInstance (line 165) | public void setJobInstance(JobInstanceEvent jobInstance) {
method getStepExecutions (line 173) | public Collection<StepExecutionEvent> getStepExecutions() {
method getExecutionContext (line 182) | public ExecutionContext getExecutionContext() {
method setExecutionContext (line 190) | public void setExecutionContext(ExecutionContext executionContext) {
method getCreateTime (line 197) | public LocalDateTime getCreateTime() {
method setCreateTime (line 204) | public void setCreateTime(LocalDateTime createTime) {
method getLastUpdated (line 213) | public LocalDateTime getLastUpdated() {
method setLastUpdated (line 221) | public void setLastUpdated(LocalDateTime lastUpdated) {
method getFailureExceptions (line 225) | public List<Throwable> getFailureExceptions() {
method addFailureException (line 233) | public synchronized void addFailureException(Throwable t) {
method getAllFailureExceptions (line 243) | public synchronized List<Throwable> getAllFailureExceptions() {
method toString (line 258) | @Override
FILE: spring-cloud-task-stream/src/main/java/org/springframework/cloud/task/batch/listener/support/JobInstanceEvent.java
class JobInstanceEvent (line 30) | public class JobInstanceEvent extends Entity {
method JobInstanceEvent (line 34) | public JobInstanceEvent() {
method JobInstanceEvent (line 38) | public JobInstanceEvent(Long id, String jobName) {
method getJobName (line 47) | public String getJobName() {
method toString (line 51) | public String toString() {
method getInstanceId (line 55) | public long getInstanceId() {
FILE: spring-cloud-task-stream/src/main/java/org/springframework/cloud/task/batch/listener/support/JobParameterEvent.java
class JobParameterEvent (line 31) | public class JobParameterEvent {
method JobParameterEvent (line 37) | public JobParameterEvent() {
method JobParameterEvent (line 40) | public JobParameterEvent(JobParameter jobParameter) {
method isIdentifying (line 45) | public boolean isIdentifying() {
method getValue (line 52) | public Object getValue() {
method equals (line 62) | @Override
method toString (line 76) | @Override
method hashCode (line 81) | @Override
FILE: spring-cloud-task-stream/src/main/java/org/springframework/cloud/task/batch/listener/support/JobParametersEvent.java
class JobParametersEvent (line 31) | public class JobParametersEvent {
method JobParametersEvent (line 35) | public JobParametersEvent() {
method JobParametersEvent (line 39) | public JobParametersEvent(Set<JobParameter<?>> jobParameters) {
method getParameters (line 50) | public Set<JobParameterEvent> getParameters() {
method isEmpty (line 57) | public boolean isEmpty() {
method equals (line 61) | @Override
method hashCode (line 75) | @Override
method toString (line 82) | @Override
FILE: spring-cloud-task-stream/src/main/java/org/springframework/cloud/task/batch/listener/support/MessagePublisher.java
class MessagePublisher (line 30) | public class MessagePublisher<P> {
method MessagePublisher (line 34) | public MessagePublisher(StreamBridge streamBridge) {
method publish (line 39) | public final void publish(String bindingName, P payload) {
method publishMessage (line 49) | private void publishMessage(String bindingName, Message<?> message) {
method publishWithThrowableHeader (line 53) | public void publishWithThrowableHeader(String bindingName, P payload, ...
FILE: spring-cloud-task-stream/src/main/java/org/springframework/cloud/task/batch/listener/support/StepExecutionEvent.java
class StepExecutionEvent (line 36) | public class StepExecutionEvent extends Entity {
method StepExecutionEvent (line 74) | public StepExecutionEvent() {
method StepExecutionEvent (line 82) | public StepExecutionEvent(StepExecution stepExecution) {
method getExecutionContext (line 116) | public ExecutionContext getExecutionContext() {
method setExecutionContext (line 124) | public void setExecutionContext(ExecutionContext executionContext) {
method getCommitCount (line 132) | public long getCommitCount() {
method setCommitCount (line 140) | public void setCommitCount(int commitCount) {
method getEndTime (line 148) | public LocalDateTime getEndTime() {
method setEndTime (line 156) | public void setEndTime(LocalDateTime endTime) {
method getReadCount (line 164) | public long getReadCount() {
method setReadCount (line 172) | public void setReadCount(int readCount) {
method getWriteCount (line 180) | public long getWriteCount() {
method setWriteCount (line 188) | public void setWriteCount(int writeCount) {
method getRollbackCount (line 196) | public long getRollbackCount() {
method setRollbackCount (line 204) | public void setRollbackCount(int rollbackCount) {
method getFilterCount (line 212) | public long getFilterCount() {
method setFilterCount (line 220) | public void setFilterCount(int filterCount) {
method getStartTime (line 228) | public LocalDateTime getStartTime() {
method setStartTime (line 236) | public void setStartTime(LocalDateTime startTime) {
method getStatus (line 244) | public BatchStatus getStatus() {
method setStatus (line 252) | public void setStatus(BatchStatus status) {
method getStepName (line 259) | public String getStepName() {
method setStepName (line 263) | public void setStepName(String stepName) {
method getExitStatus (line 270) | public ExitStatus getExitStatus() {
method setExitStatus (line 277) | public void setExitStatus(ExitStatus exitStatus) {
method isTerminateOnly (line 284) | public boolean isTerminateOnly() {
method setTerminateOnly (line 292) | public void setTerminateOnly() {
method getSkipCount (line 299) | public long getSkipCount() {
method incrementCommitCount (line 306) | public void incrementCommitCount() {
method getReadSkipCount (line 313) | public long getReadSkipCount() {
method setReadSkipCount (line 321) | public void setReadSkipCount(int readSkipCount) {
method getWriteSkipCount (line 328) | public long getWriteSkipCount() {
method setWriteSkipCount (line 336) | public void setWriteSkipCount(int writeSkipCount) {
method getProcessSkipCount (line 343) | public long getProcessSkipCount() {
method setProcessSkipCount (line 351) | public void setProcessSkipCount(int processSkipCount) {
method getLastUpdated (line 358) | public LocalDateTime getLastUpdated() {
method setLastUpdated (line 366) | public void setLastUpdated(LocalDateTime lastUpdated) {
method getFailureExceptions (line 370) | public List<Throwable> getFailureExceptions() {
method getJobExecutionId (line 374) | public long getJobExecutionId() {
method equals (line 384) | @Override
method hashCode (line 401) | @Override
method toString (line 409) | @Override
method getSummary (line 414) | public String getSummary() {
FILE: spring-cloud-task-stream/src/main/java/org/springframework/cloud/task/batch/listener/support/TaskBatchEventListenerBeanPostProcessor.java
class TaskBatchEventListenerBeanPostProcessor (line 72) | @ImportRuntimeHints(RuntimeHint.class)
method postProcessBeforeInitialization (line 78) | @Override
method postProcessAfterInitialization (line 110) | @Override
method registerItemProcessEvents (line 115) | private void registerItemProcessEvents(SimpleChunkProcessor chunkProce...
method registerItemReadEvents (line 122) | private void registerItemReadEvents(SimpleChunkProvider chunkProvider) {
method registerItemWriteEvents (line 129) | private void registerItemWriteEvents(SimpleChunkProcessor chunkProcess...
method registerSkipEvents (line 136) | private void registerSkipEvents(SimpleChunkProvider chunkProvider) {
method registerSkipEvents (line 143) | private void registerSkipEvents(SimpleChunkProcessor chunkProcessor) {
method registerChunkEventsListener (line 150) | private void registerChunkEventsListener(Object bean) {
method registerJobExecutionEventListener (line 157) | private void registerJobExecutionEventListener(Object bean) {
method registerStepExecutionEventListener (line 167) | private void registerStepExecutionEventListener(Object bean) {
class RuntimeHint (line 176) | static class RuntimeHint implements RuntimeHintsRegistrar {
method registerHints (line 178) | @Override
FILE: spring-cloud-task-stream/src/main/java/org/springframework/cloud/task/batch/listener/support/TaskEventProperties.java
class TaskEventProperties (line 25) | @ConfigurationProperties(prefix = "spring.cloud.task.batch.events")
method getJobExecutionOrder (line 86) | public int getJobExecutionOrder() {
method setJobExecutionOrder (line 90) | public void setJobExecutionOrder(int jobExecutionOrder) {
method getStepExecutionOrder (line 94) | public int getStepExecutionOrder() {
method setStepExecutionOrder (line 98) | public void setStepExecutionOrder(int stepExecutionOrder) {
method getItemReadOrder (line 102) | public int getItemReadOrder() {
method setItemReadOrder (line 106) | public void setItemReadOrder(int itemReadOrder) {
method getItemProcessOrder (line 110) | public int getItemProcessOrder() {
method setItemProcessOrder (line 114) | public void setItemProcessOrder(int itemProcessOrder) {
method getItemWriteOrder (line 118) | public int getItemWriteOrder() {
method setItemWriteOrder (line 122) | public void setItemWriteOrder(int itemWriteOrder) {
method getChunkOrder (line 126) | public int getChunkOrder() {
method setChunkOrder (line 130) | public void setChunkOrder(int chunkOrder) {
method getSkipOrder (line 134) | public int getSkipOrder() {
method setSkipOrder (line 138) | public void setSkipOrder(int skipOrder) {
method getJobExecutionEventBindingName (line 142) | public String getJobExecutionEventBindingName() {
method setJobExecutionEventBindingName (line 146) | public void setJobExecutionEventBindingName(String jobExecutionEventBi...
method getSkipEventBindingName (line 150) | public String getSkipEventBindingName() {
method setSkipEventBindingName (line 154) | public void setSkipEventBindingName(String skipEventBindingName) {
method getChunkEventBindingName (line 158) | public String getChunkEventBindingName() {
method setChunkEventBindingName (line 162) | public void setChunkEventBindingName(String chunkEventBindingName) {
method getItemProcessEventBindingName (line 166) | public String getItemProcessEventBindingName() {
method setItemProcessEventBindingName (line 170) | public void setItemProcessEventBindingName(String itemProcessEventBind...
method getItemReadEventBindingName (line 174) | public String getItemReadEventBindingName() {
method setItemReadEventBindingName (line 178) | public void setItemReadEventBindingName(String itemReadEventBindingNam...
method getItemWriteEventBindingName (line 182) | public String getItemWriteEventBindingName() {
method setItemWriteEventBindingName (line 186) | public void setItemWriteEventBindingName(String itemWriteEventBindingN...
method getStepExecutionEventBindingName (line 190) | public String getStepExecutionEventBindingName() {
method setStepExecutionEventBindingName (line 194) | public void setStepExecutionEventBindingName(String stepExecutionEvent...
method getTaskEventBindingName (line 198) | public String getTaskEventBindingName() {
method setTaskEventBindingName (line 202) | public void setTaskEventBindingName(String taskEventBindingName) {
FILE: spring-cloud-task-stream/src/main/java/org/springframework/cloud/task/listener/TaskEventAutoConfiguration.java
class TaskEventAutoConfiguration (line 39) | @AutoConfiguration
class ListenerConfiguration (line 56) | @AutoConfiguration
method taskEventEmitter (line 59) | @Bean
FILE: spring-cloud-task-stream/src/test/java/org/springframework/cloud/task/batch/listener/EventListenerTests.java
class EventListenerTests (line 58) | public class EventListenerTests {
method beforeTests (line 80) | @BeforeEach
method tearDown (line 106) | @AfterEach
method testEventListenerOrderProperty (line 113) | @Test
method testItemProcessListenerOnProcessorError (line 124) | @Test
method testItemProcessListenerAfterProcess (line 132) | @Test
method testItemProcessBeforeProcessor (line 147) | @Test
method EventEmittingSkipListenerSkipRead (line 153) | @Test
method EventEmittingSkipListenerSkipWrite (line 160) | @Test
method EventEmittingSkipListenerSkipProcess (line 167) | @Test
method EventEmittingItemReadListener (line 174) | @Test
method EventEmittingItemReadListenerBeforeRead (line 181) | @Test
method EventEmittingItemReadListenerAfterRead (line 187) | @Test
method EventEmittingItemWriteListenerBeforeWrite (line 193) | @Test
method EventEmittingItemWriteListenerAfterWrite (line 200) | @Test
method EventEmittingItemWriteListenerWriteError (line 207) | @Test
method EventEmittingJobExecutionListenerBeforeJob (line 216) | @Test
method EventEmittingJobExecutionListenerAfterJob (line 227) | @Test
method EventEmittingStepExecutionListenerBeforeStep (line 238) | @Test
method EventEmittingStepExecutionListenerAfterStep (line 252) | @Test
method EventEmittingChunkExecutionListenerBeforeChunk (line 265) | @Test
method EventEmittingChunkExecutionListenerAfterChunk (line 273) | @Test
method EventEmittingChunkExecutionListenerAfterChunkError (line 281) | @Test
method getJobExecution (line 287) | private JobExecution getJobExecution() {
method getSampleList (line 293) | private Chunk<String> getSampleList() {
method getChunkContext (line 301) | private ChunkContext getChunkContext() {
method testListener (line 309) | private List<Message<byte[]>> testListener(String bindingName, int num...
method getStringFromDestination (line 318) | private String getStringFromDestination(String bindingName) {
method assertNoMessageFromDestination (line 326) | private void assertNoMessageFromDestination(String bindingName) {
class BatchEventsApplication (line 331) | @SpringBootApplication
FILE: spring-cloud-task-stream/src/test/java/org/springframework/cloud/task/batch/listener/JobExecutionEventTests.java
class JobExecutionEventTests (line 57) | public class JobExecutionEventTests {
method setup (line 76) | @BeforeEach
method testBasic (line 82) | @Test
method testJobParameters (line 99) | @Test
method testStepExecutions (line 120) | @Test
method testDefaultConfiguration (line 138) | @Test
method testDisabledJobExecutionListener (line 143) | @Test
method testDisabledStepExecutionListener (line 149) | @Test
method testDisabledChunkListener (line 155) | @Test
method testDisabledItemReadListener (line 161) | @Test
method testDisabledItemWriteListener (line 167) | @Test
method testDisabledItemProcessListener (line 173) | @Test
method testDisabledSkipEventListener (line 179) | @Test
method testDefaultConstructor (line 185) | @Test
method testFailureExceptions (line 191) | @Test
method testToString (line 203) | @Test
method testGetterSetters (line 209) | @Test
method testExitStatus (line 223) | @Test
method testJobInstance (line 235) | @Test
method testExecutionContext (line 247) | @Test
method testBatchStatus (line 257) | @Test
method testUpgradeBatchStatus (line 265) | @Test
method testOrderConfiguration (line 275) | @Test
method singleStepBatchJobSkip (line 300) | @Test
method testDisabledConfiguration (line 317) | private void testDisabledConfiguration(String property, String disable...
class BatchEventTestApplication (line 347) | @SpringBootApplication
FILE: spring-cloud-task-stream/src/test/java/org/springframework/cloud/task/batch/listener/JobInstanceEventTests.java
class JobInstanceEventTests (line 28) | public class JobInstanceEventTests {
method testConstructor (line 34) | @Test
method testEmptyConstructor (line 41) | @Test
method testEmptyConstructorEmptyId (line 47) | @Test
method testToString (line 53) | @Test
FILE: spring-cloud-task-stream/src/test/java/org/springframework/cloud/task/batch/listener/JobParameterEventTests.java
class JobParameterEventTests (line 31) | public class JobParameterEventTests {
method testDefaultConstructor (line 33) | @Test
method testConstructor (line 41) | @Test
method testEquals (line 57) | @Test
method testValidHashCode (line 69) | @Test
FILE: spring-cloud-task-stream/src/test/java/org/springframework/cloud/task/batch/listener/JobParametersEventTests.java
class JobParametersEventTests (line 34) | public class JobParametersEventTests {
method testDefaultConstructor (line 52) | @Test
method testConstructor (line 59) | @Test
method testEquals (line 70) | @Test
method testHashCode (line 78) | @Test
method testToString (line 87) | @Test
method getPopulatedParametersEvent (line 93) | public JobParametersEvent getPopulatedParametersEvent() {
FILE: spring-cloud-task-stream/src/test/java/org/springframework/cloud/task/batch/listener/StepExecutionEventTests.java
class StepExecutionEventTests (line 37) | public class StepExecutionEventTests {
method testBasic (line 47) | @Test
method testException (line 78) | @Test
method testGetSummary (line 88) | @Test
method testHashCode (line 98) | @Test
method testToString (line 108) | @Test
method testEquals (line 115) | @Test
method testSettersGetters (line 122) | @Test
method testExitStatus (line 172) | @Test
method testBatchStatus (line 188) | @Test
method testDefaultConstructor (line 196) | @Test
method testExecutionContext (line 204) | @Test
method getBasicStepExecution (line 214) | private StepExecution getBasicStepExecution() {
FILE: spring-cloud-task-stream/src/test/java/org/springframework/cloud/task/batch/listener/TaskBatchEventListenerBeanPostProcessorTests.java
class TaskBatchEventListenerBeanPostProcessorTests (line 49) | @ExtendWith(SpringExtension.class)
method setupMock (line 83) | @BeforeEach
method testPostProcessor (line 97) | @Test
method registerAlias (line 107) | private void registerAlias(Class clazz, String name) {
class TestConfiguration (line 113) | @Configuration(proxyBeanMethods = false)
method taskBatchEventListenerBeanPostProcessor (line 117) | @Bean
FILE: spring-cloud-task-stream/src/test/java/org/springframework/cloud/task/batch/listener/support/TaskBatchEventListenerBeanPostProcessorRuntimeHintTests.java
class TaskBatchEventListenerBeanPostProcessorRuntimeHintTests (line 33) | class TaskBatchEventListenerBeanPostProcessorRuntimeHintTests {
method setUp (line 37) | @BeforeEach
method reflectionOnChunkProviderFieldIsAllowed (line 43) | @Test
method reflectionOnChunkProcessorFieldIsAllowed (line 50) | @Test
FILE: spring-cloud-task-stream/src/test/java/org/springframework/cloud/task/listener/TaskEventTests.java
class TaskEventTests (line 35) | public class TaskEventTests {
method testDefaultConfiguration (line 37) | @Test
class TaskEventsApplication (line 47) | @EnableTask
Condensed preview — 441 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (1,559K chars).
[
{
"path": ".editorconfig",
"chars": 225,
"preview": "# EditorConfig is awesome: https://EditorConfig.org\n\n# top-most EditorConfig file\nroot = true\n\n[*]\nindent_style = tab\nin"
},
{
"path": ".github/dco.yml",
"chars": 26,
"preview": "require:\n members: false\n"
},
{
"path": ".github/workflows/ci-maven-main.yml",
"chars": 386,
"preview": "name: CI PRs\n\non:\n push:\n branches:\n - main\n pull_request:\n branches:\n - main\n\njobs:\n build:\n runs"
},
{
"path": ".github/workflows/ci.yaml",
"chars": 1010,
"preview": "name: Spring Cloud Task CI Job\n\non:\n push:\n branches:\n - main\n - 4.3.x\n\n # Scheduled builds run daily at "
},
{
"path": ".github/workflows/deploy-docs.yml",
"chars": 968,
"preview": "name: Deploy Docs\non:\n push:\n branches-ignore: [ gh-pages ]\n tags: '**'\n repository_dispatch:\n types: request"
},
{
"path": ".gitignore",
"chars": 524,
"preview": "*~\n.#*\n*#\n*.sw*\n_site/\n.factorypath\n.gradletasknamecache\n.DS_Store\n/application.yml\n/application.properties\nasciidoctor."
},
{
"path": ".mvn/jvm.config",
"chars": 96,
"preview": "-Xmx1024m -XX:CICompilerCount=1 -XX:TieredStopAtLevel=1 -Djava.security.egd=file:/dev/./urandom\n"
},
{
"path": ".mvn/maven.config",
"chars": 112,
"preview": "-DaltSnapshotDeploymentRepository=repo.spring.io::default::https://repo.spring.io/libs-snapshot-local\n-P spring\n"
},
{
"path": ".mvn/wrapper/maven-wrapper.properties",
"chars": 1018,
"preview": "# Licensed to the Apache Software Foundation (ASF) under one\n# or more contributor license agreements. See the NOTICE f"
},
{
"path": ".settings.xml",
"chars": 2707,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!--\n ~ /*\n ~ * Copyright 2016-2019 the original author or authors.\n ~ *\n ~"
},
{
"path": ".springformat",
"chars": 0,
"preview": ""
},
{
"path": "CONTRIBUTING.adoc",
"chars": 3229,
"preview": "= Contributing to Spring Cloud Task\n\n:github: https://github.com/spring-cloud/spring-cloud-task\n\nSpring Cloud Task is re"
},
{
"path": "LICENSE",
"chars": 11360,
"preview": " Apache License\n Version 2.0, January 2004\n "
},
{
"path": "README.adoc",
"chars": 1747,
"preview": "////\nDO NOT EDIT THIS FILE. IT WAS GENERATED.\nManual changes to this file will be lost when it is generated again.\nEdit "
},
{
"path": "docs/antora-playbook.yml",
"chars": 796,
"preview": "antora:\n extensions:\n - require: '@springio/antora-extensions'\n root_component_name: 'cloud-task'\nsite:\n title"
},
{
"path": "docs/antora.yml",
"chars": 542,
"preview": "name: cloud-task\nversion: true\ntitle: spring-cloud-task\nnav:\n - modules/ROOT/nav.adoc\next:\n collector:\n run:\n "
},
{
"path": "docs/modules/ROOT/nav.adoc",
"chars": 304,
"preview": "* xref:index.adoc[Introduction]\n* xref:getting-started.adoc[]\n* xref:features.adoc[]\n* xref:batch.adoc[]\n* xref:batch-st"
},
{
"path": "docs/modules/ROOT/pages/_attributes.adoc",
"chars": 2523,
"preview": ":doctype: book\n:idprefix:\n:idseparator: -\n:tabsize: 4\n:numbered:\n:sectanchors:\n:sectnums:\n:icons: font\n:hide-uri-scheme:"
},
{
"path": "docs/modules/ROOT/pages/appendix-building-the-documentation.adoc",
"chars": 256,
"preview": "\n[[appendix-building-the-documentation]]\n= Building This Documentation\n:page-section-summary-toc: 1\n\nThis project uses M"
},
{
"path": "docs/modules/ROOT/pages/appendix-task-repository-schema.adoc",
"chars": 4611,
"preview": "[[appendix-task-repository-schema]]\n= Task Repository Schema\n\n[[partintro]]\n--\nThis appendix provides an ERD for the dat"
},
{
"path": "docs/modules/ROOT/pages/appendix.adoc",
"chars": 91,
"preview": "\n[[appendix]]\n= Appendices\n:page-section-summary-toc: 1\n\n\n\nifndef::train-docs[]\nendif::[]\n\n"
},
{
"path": "docs/modules/ROOT/pages/batch-starter.adoc",
"chars": 22359,
"preview": "\n[[batch-job-starter]]\n= Single Step Batch Job Starter\n\n[[partintro]]\n--\nThis section goes into how to develop a Spring "
},
{
"path": "docs/modules/ROOT/pages/batch.adoc",
"chars": 3942,
"preview": "\n[[batch]]\n= Batch\n\n[[partintro]]\n--\nThis section goes into more detail about Spring Cloud Task's integration with Sprin"
},
{
"path": "docs/modules/ROOT/pages/configprops.adoc",
"chars": 150,
"preview": "[[configuration-properties]]\n= Configuration Properties\n\nBelow you can find a list of configuration properties.\n\ninclude"
},
{
"path": "docs/modules/ROOT/pages/features.adoc",
"chars": 20663,
"preview": "\n[[features]]\n= Features\n\n[[partintro]]\n--\nThis section goes into more detail about Spring Cloud Task, including how to "
},
{
"path": "docs/modules/ROOT/pages/getting-started.adoc",
"chars": 10822,
"preview": "\n[[getting-started]]\n= Getting started\n\n[[partintro]]\n--\nIf you are just getting started with Spring Cloud Task, you sho"
},
{
"path": "docs/modules/ROOT/pages/index.adoc",
"chars": 708,
"preview": "[[spring-cloud-task-reference-guide]]\n= Spring Cloud Task Reference Guide\n\nMichael Minella, Glenn Renfro, Jay Bryant\n\n:p"
},
{
"path": "docs/modules/ROOT/pages/observability.adoc",
"chars": 127,
"preview": "[[observability]]\n= Observability\n\n== Observability metadata\n\ninclude::partial$_metrics.adoc[]\n\ninclude::partial$_spans."
},
{
"path": "docs/modules/ROOT/pages/preface.adoc",
"chars": 2126,
"preview": "[[preface]]\n= Preface\n\n[[task-documentation-about]]\n\nThis section provides a brief overview of the Spring Cloud Task ref"
},
{
"path": "docs/modules/ROOT/pages/stream.adoc",
"chars": 5885,
"preview": "[[stream-integration]]\n= Spring Cloud Stream Integration\n\n[[partintro]]\n--\nA task by itself can be useful, but integrati"
},
{
"path": "docs/modules/ROOT/partials/_configprops.adoc",
"chars": 6324,
"preview": "|===\n|Name | Default | Description\n\n|spring.cloud.task.batch.application-runner-order | `+++0+++` | The order for the {@"
},
{
"path": "docs/modules/ROOT/partials/_conventions.adoc",
"chars": 767,
"preview": "[[observability-conventions]]\n=== Observability - Conventions\n\nBelow you can find a list of all `GlobalObservationConven"
},
{
"path": "docs/modules/ROOT/partials/_metrics.adoc",
"chars": 3247,
"preview": "[[observability-metrics]]\n=== Observability - Metrics\n\nBelow you can find a list of all metrics declared by this project"
},
{
"path": "docs/modules/ROOT/partials/_spans.adoc",
"chars": 2208,
"preview": "[[observability-spans]]\n=== Observability - Spans\n\nBelow you can find a list of all spans declared by this project.\n\n[[o"
},
{
"path": "docs/package.json",
"chars": 280,
"preview": "{\n\t\"dependencies\": {\n\t\t\"antora\": \"3.2.0-alpha.9\",\n\t\t\"@antora/atlas-extension\": \"1.0.0-alpha.5\",\n\t\t\"@antora/collector-ext"
},
{
"path": "docs/pom.xml",
"chars": 4900,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<project xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n\t\t xmlns=\"http://m"
},
{
"path": "docs/src/main/antora/resources/antora-resources/antora.yml",
"chars": 874,
"preview": "version: @antora-component.version@\nprerelease: @antora-component.prerelease@\n\nasciidoc:\n attributes:\n attribute-mis"
},
{
"path": "docs/src/main/asciidoc/.gitignore",
"chars": 13,
"preview": "*.html\n*.css\n"
},
{
"path": "docs/src/main/asciidoc/Guardfile",
"chars": 440,
"preview": "require 'asciidoctor'\nrequire 'erb'\n\nguard 'shell' do\n\twatch(/.*\\.adoc$/) {|m|\n\t\tAsciidoctor.render_file('index.adoc', \\"
},
{
"path": "docs/src/main/asciidoc/README.adoc",
"chars": 1505,
"preview": "[[spring-cloud-task]]\n= Spring Cloud Task\n\nIs a project centered around the idea of processing on demand. A user is abl"
},
{
"path": "docs/src/main/asciidoc/index.htmladoc",
"chars": 34,
"preview": "include::spring-cloud-task.adoc[]\n"
},
{
"path": "docs/src/main/asciidoc/index.htmlsingleadoc",
"chars": 882,
"preview": "= Spring Cloud Task Reference Guide\nMichael Minella, Glenn Renfro, Jay Bryant\n\ninclude::_attributes.adoc[]\n\n// ========="
},
{
"path": "docs/src/main/asciidoc/index.pdfadoc",
"chars": 37,
"preview": "include::spring-cloud-task.pdfadoc[]\n"
},
{
"path": "docs/src/main/asciidoc/sagan-index.adoc",
"chars": 434,
"preview": "Spring Cloud Task allows a user to develop and run short lived microservices using Spring Cloud and run them locally, in"
},
{
"path": "docs/src/main/asciidoc/spring-cloud-task.epubadoc",
"chars": 882,
"preview": "= Spring Cloud Task Reference Guide\nMichael Minella, Glenn Renfro, Jay Bryant\n\ninclude::_attributes.adoc[]\n\n// ========="
},
{
"path": "docs/src/main/asciidoc/spring-cloud-task.htmlsingleadoc",
"chars": 882,
"preview": "= Spring Cloud Task Reference Guide\nMichael Minella, Glenn Renfro, Jay Bryant\n\ninclude::_attributes.adoc[]\n\n// ========="
},
{
"path": "docs/src/main/asciidoc/spring-cloud-task.pdfadoc",
"chars": 882,
"preview": "= Spring Cloud Task Reference Guide\nMichael Minella, Glenn Renfro, Jay Bryant\n\ninclude::_attributes.adoc[]\n\n// ========="
},
{
"path": "docs/src/main/javadoc/spring-javadoc.css",
"chars": 12612,
"preview": "/* Javadoc style sheet */\n/*\nOverall document style\n*/\n@import url('resources/fonts/dejavu.css');\n\nbody {\n\tbackground-co"
},
{
"path": "mvnw",
"chars": 11289,
"preview": "#!/bin/sh\n# ----------------------------------------------------------------------------\n# Licensed to the Apache Softwa"
},
{
"path": "mvnw.cmd",
"chars": 7796,
"preview": "@REM ----------------------------------------------------------------------------\r\n@REM Licensed to the Apache Software "
},
{
"path": "pom.xml",
"chars": 10159,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<project xmlns=\"http://maven.apache.org/POM/4.0.0\" xmlns:xsi=\"http://www.w3.org/2"
},
{
"path": "spring-cloud-starter-single-step-batch-job/pom.xml",
"chars": 4158,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<project xmlns=\"http://maven.apache.org/POM/4.0.0\" xmlns:xsi=\"http://www.w3.org/2"
},
{
"path": "spring-cloud-starter-single-step-batch-job/src/main/java/org/springframework/cloud/task/batch/autoconfigure/RangeConverter.java",
"chars": 1785,
"preview": "/*\n * Copyright 2020-present the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \""
},
{
"path": "spring-cloud-starter-single-step-batch-job/src/main/java/org/springframework/cloud/task/batch/autoconfigure/SingleStepJobAutoConfiguration.java",
"chars": 3803,
"preview": "/*\n * Copyright 2019-present the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \""
},
{
"path": "spring-cloud-starter-single-step-batch-job/src/main/java/org/springframework/cloud/task/batch/autoconfigure/SingleStepJobProperties.java",
"chars": 2082,
"preview": "/*\n * Copyright 2019-present the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \""
},
{
"path": "spring-cloud-starter-single-step-batch-job/src/main/java/org/springframework/cloud/task/batch/autoconfigure/flatfile/FlatFileItemReaderAutoConfiguration.java",
"chars": 6115,
"preview": "/*\n * Copyright 2019-present the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \""
},
{
"path": "spring-cloud-starter-single-step-batch-job/src/main/java/org/springframework/cloud/task/batch/autoconfigure/flatfile/FlatFileItemReaderProperties.java",
"chars": 11524,
"preview": "/*\n * Copyright 2019-present the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \""
},
{
"path": "spring-cloud-starter-single-step-batch-job/src/main/java/org/springframework/cloud/task/batch/autoconfigure/flatfile/FlatFileItemWriterAutoConfiguration.java",
"chars": 5789,
"preview": "/*\n * Copyright 2019-present the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \""
},
{
"path": "spring-cloud-starter-single-step-batch-job/src/main/java/org/springframework/cloud/task/batch/autoconfigure/flatfile/FlatFileItemWriterProperties.java",
"chars": 12061,
"preview": "/*\n * Copyright 2019-present the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \""
},
{
"path": "spring-cloud-starter-single-step-batch-job/src/main/java/org/springframework/cloud/task/batch/autoconfigure/flatfile/package-info.java",
"chars": 802,
"preview": "/*\n * Copyright 2015-present the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \""
},
{
"path": "spring-cloud-starter-single-step-batch-job/src/main/java/org/springframework/cloud/task/batch/autoconfigure/jdbc/JDBCSingleStepDataSourceAutoConfiguration.java",
"chars": 2718,
"preview": "/*\n * Copyright 2022-present the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \""
},
{
"path": "spring-cloud-starter-single-step-batch-job/src/main/java/org/springframework/cloud/task/batch/autoconfigure/jdbc/JdbcBatchItemWriterAutoConfiguration.java",
"chars": 5029,
"preview": "/*\n * Copyright 2020-present the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \""
},
{
"path": "spring-cloud-starter-single-step-batch-job/src/main/java/org/springframework/cloud/task/batch/autoconfigure/jdbc/JdbcBatchItemWriterProperties.java",
"chars": 2658,
"preview": "/*\n * Copyright 2020-present the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \""
},
{
"path": "spring-cloud-starter-single-step-batch-job/src/main/java/org/springframework/cloud/task/batch/autoconfigure/jdbc/JdbcCursorItemReaderAutoConfiguration.java",
"chars": 5639,
"preview": "/*\n * Copyright 2020-present the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \""
},
{
"path": "spring-cloud-starter-single-step-batch-job/src/main/java/org/springframework/cloud/task/batch/autoconfigure/jdbc/JdbcCursorItemReaderProperties.java",
"chars": 9447,
"preview": "/*\n * Copyright 2020-present the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \""
},
{
"path": "spring-cloud-starter-single-step-batch-job/src/main/java/org/springframework/cloud/task/batch/autoconfigure/jdbc/package-info.java",
"chars": 790,
"preview": "/*\n * Copyright 2015-present the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \""
},
{
"path": "spring-cloud-starter-single-step-batch-job/src/main/java/org/springframework/cloud/task/batch/autoconfigure/kafka/KafkaItemReaderAutoConfiguration.java",
"chars": 3884,
"preview": "/*\n * Copyright 2020-present the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \""
},
{
"path": "spring-cloud-starter-single-step-batch-job/src/main/java/org/springframework/cloud/task/batch/autoconfigure/kafka/KafkaItemReaderProperties.java",
"chars": 4509,
"preview": "/*\n * Copyright 2020-present the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \""
},
{
"path": "spring-cloud-starter-single-step-batch-job/src/main/java/org/springframework/cloud/task/batch/autoconfigure/kafka/KafkaItemWriterAutoConfiguration.java",
"chars": 3911,
"preview": "/*\n * Copyright 2020-present the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \""
},
{
"path": "spring-cloud-starter-single-step-batch-job/src/main/java/org/springframework/cloud/task/batch/autoconfigure/kafka/KafkaItemWriterProperties.java",
"chars": 2580,
"preview": "/*\n * Copyright 2020-present the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \""
},
{
"path": "spring-cloud-starter-single-step-batch-job/src/main/java/org/springframework/cloud/task/batch/autoconfigure/kafka/package-info.java",
"chars": 795,
"preview": "/*\n * Copyright 2015-present the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \""
},
{
"path": "spring-cloud-starter-single-step-batch-job/src/main/java/org/springframework/cloud/task/batch/autoconfigure/package-info.java",
"chars": 770,
"preview": "/*\n * Copyright 2015-present the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \""
},
{
"path": "spring-cloud-starter-single-step-batch-job/src/main/java/org/springframework/cloud/task/batch/autoconfigure/rabbit/AmqpItemReaderAutoConfiguration.java",
"chars": 2853,
"preview": "/*\n * Copyright 2020-present the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \""
},
{
"path": "spring-cloud-starter-single-step-batch-job/src/main/java/org/springframework/cloud/task/batch/autoconfigure/rabbit/AmqpItemReaderProperties.java",
"chars": 2298,
"preview": "/*\n * Copyright 2020-present the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \""
},
{
"path": "spring-cloud-starter-single-step-batch-job/src/main/java/org/springframework/cloud/task/batch/autoconfigure/rabbit/AmqpItemWriterAutoConfiguration.java",
"chars": 2469,
"preview": "/*\n * Copyright 2020-present the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \""
},
{
"path": "spring-cloud-starter-single-step-batch-job/src/main/java/org/springframework/cloud/task/batch/autoconfigure/rabbit/AmqpItemWriterProperties.java",
"chars": 2289,
"preview": "/*\n * Copyright 2020-present the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \""
},
{
"path": "spring-cloud-starter-single-step-batch-job/src/main/java/org/springframework/cloud/task/batch/autoconfigure/rabbit/package-info.java",
"chars": 799,
"preview": "/*\n * Copyright 2015-present the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \""
},
{
"path": "spring-cloud-starter-single-step-batch-job/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports",
"chars": 888,
"preview": "org.springframework.cloud.task.batch.autoconfigure.flatfile.FlatFileItemReaderAutoConfiguration\norg.springframework.clou"
},
{
"path": "spring-cloud-starter-single-step-batch-job/src/main/resources/META-INF/spring-configuration-metadata.json",
"chars": 9106,
"preview": "{\n\t\"groups\": [\n\t\t{\n\t\t\t\"name\": \"spring.batch.job\",\n\t\t\t\"type\": \"org.springframework.cloud.task.batch.autoconfigure.SingleS"
},
{
"path": "spring-cloud-starter-single-step-batch-job/src/test/java/org/springframework/cloud/task/batch/autoconfigure/RangeConverterTests.java",
"chars": 2048,
"preview": "/*\n * Copyright 2020-present the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \""
},
{
"path": "spring-cloud-starter-single-step-batch-job/src/test/java/org/springframework/cloud/task/batch/autoconfigure/SingleStepJobAutoConfigurationTests.java",
"chars": 6135,
"preview": "/*\n * Copyright 2020-present the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \""
},
{
"path": "spring-cloud-starter-single-step-batch-job/src/test/java/org/springframework/cloud/task/batch/autoconfigure/flatfile/FlatFileItemReaderAutoConfigurationTests.java",
"chars": 16616,
"preview": "/*\n * Copyright 2020-present the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \""
},
{
"path": "spring-cloud-starter-single-step-batch-job/src/test/java/org/springframework/cloud/task/batch/autoconfigure/flatfile/FlatFileItemWriterAutoConfigurationTests.java",
"chars": 19926,
"preview": "/*\n * Copyright 2020-present the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \""
},
{
"path": "spring-cloud-starter-single-step-batch-job/src/test/java/org/springframework/cloud/task/batch/autoconfigure/jdbc/JdbcBatchItemWriterAutoConfigurationTests.java",
"chars": 14006,
"preview": "/*\n * Copyright 2020-present the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \""
},
{
"path": "spring-cloud-starter-single-step-batch-job/src/test/java/org/springframework/cloud/task/batch/autoconfigure/jdbc/JdbcCursorItemReaderAutoConfigurationTests.java",
"chars": 16710,
"preview": "/*\n * Copyright 2020-present the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \""
},
{
"path": "spring-cloud-starter-single-step-batch-job/src/test/java/org/springframework/cloud/task/batch/autoconfigure/kafka/KafkaItemReaderAutoConfigurationTests.java",
"chars": 10783,
"preview": "/*\n * Copyright 2020-present the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \""
},
{
"path": "spring-cloud-starter-single-step-batch-job/src/test/java/org/springframework/cloud/task/batch/autoconfigure/kafka/KafkaItemWriterTests.java",
"chars": 6956,
"preview": "/*\n * Copyright 2020-present the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \""
},
{
"path": "spring-cloud-starter-single-step-batch-job/src/test/java/org/springframework/cloud/task/batch/autoconfigure/rabbit/AmqpItemReaderAutoConfigurationTests.java",
"chars": 8533,
"preview": "/*\n * Copyright 2020-present the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \""
},
{
"path": "spring-cloud-starter-single-step-batch-job/src/test/java/org/springframework/cloud/task/batch/autoconfigure/rabbit/AmqpItemWriterAutoConfigurationTests.java",
"chars": 8004,
"preview": "/*\n * Copyright 2020-present the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \""
},
{
"path": "spring-cloud-starter-single-step-batch-job/src/test/resources/logback-test.xml",
"chars": 261,
"preview": "<configuration>\n\t<include resource=\"org/springframework/boot/logging/logback/base.xml\"/>\n\t<logger name=\"org.apache.http\""
},
{
"path": "spring-cloud-starter-single-step-batch-job/src/test/resources/schema-h2.sql",
"chars": 62,
"preview": "CREATE TABLE IF NOT EXISTS item\n(\n item_name varchar(55)\n);\n"
},
{
"path": "spring-cloud-starter-single-step-batch-job/src/test/resources/test.txt",
"chars": 152,
"preview": "1 2 3 4 5 six\n# This should be ignored\n7 8 9 1011twelve\n$ So should this\n1314151617eighteen\n1920212223twenty four\n152627"
},
{
"path": "spring-cloud-starter-single-step-batch-job/src/test/resources/testUTF8.csv",
"chars": 275,
"preview": "1@2@3@4@5@six\n# This should be ignored\n7@8@9@10@11@twelve\n$ So should this\n13@14@15@16@17@eighteen\n19@20@21@22@23@%twent"
},
{
"path": "spring-cloud-starter-task/pom.xml",
"chars": 1325,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<project xmlns=\"http://maven.apache.org/POM/4.0.0\" xmlns:xsi=\"http://www.w3.org/2"
},
{
"path": "spring-cloud-task-batch/pom.xml",
"chars": 2755,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<project xmlns=\"http://maven.apache.org/POM/4.0.0\" xmlns:xsi=\"http://www.w3.org/2"
},
{
"path": "spring-cloud-task-batch/src/main/java/org/springframework/cloud/task/batch/configuration/JobLaunchCondition.java",
"chars": 1434,
"preview": "/*\n * Copyright 2016-present the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \""
},
{
"path": "spring-cloud-task-batch/src/main/java/org/springframework/cloud/task/batch/configuration/TaskBatchAutoConfiguration.java",
"chars": 3429,
"preview": "/*\n * Copyright 2016-present the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \""
},
{
"path": "spring-cloud-task-batch/src/main/java/org/springframework/cloud/task/batch/configuration/TaskBatchExecutionListenerBeanPostProcessor.java",
"chars": 2626,
"preview": "/*\n * Copyright 2016-present the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \""
},
{
"path": "spring-cloud-task-batch/src/main/java/org/springframework/cloud/task/batch/configuration/TaskBatchExecutionListenerFactoryBean.java",
"chars": 4482,
"preview": "/*\n * Copyright 2016-present the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \""
},
{
"path": "spring-cloud-task-batch/src/main/java/org/springframework/cloud/task/batch/configuration/TaskBatchProperties.java",
"chars": 2816,
"preview": "/*\n * Copyright 2015-present the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \""
},
{
"path": "spring-cloud-task-batch/src/main/java/org/springframework/cloud/task/batch/configuration/TaskJobLauncherApplicationRunnerFactoryBean.java",
"chars": 4012,
"preview": "/*\n * Copyright 2020-present the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \""
},
{
"path": "spring-cloud-task-batch/src/main/java/org/springframework/cloud/task/batch/configuration/TaskJobLauncherAutoConfiguration.java",
"chars": 2653,
"preview": "/*\n * Copyright 2018-present the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \""
},
{
"path": "spring-cloud-task-batch/src/main/java/org/springframework/cloud/task/batch/configuration/package-info.java",
"chars": 760,
"preview": "/*\n * Copyright 2015-present the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \""
},
{
"path": "spring-cloud-task-batch/src/main/java/org/springframework/cloud/task/batch/handler/TaskJobLauncherApplicationRunner.java",
"chars": 11579,
"preview": "/*\n * Copyright 2020-present the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \""
},
{
"path": "spring-cloud-task-batch/src/main/java/org/springframework/cloud/task/batch/handler/package-info.java",
"chars": 751,
"preview": "/*\n * Copyright 2015-present the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \""
},
{
"path": "spring-cloud-task-batch/src/main/java/org/springframework/cloud/task/batch/listener/TaskBatchDao.java",
"chars": 1229,
"preview": "/*\n * Copyright 2016-present the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \""
},
{
"path": "spring-cloud-task-batch/src/main/java/org/springframework/cloud/task/batch/listener/TaskBatchExecutionListener.java",
"chars": 2450,
"preview": "/*\n * Copyright 2016-present the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \""
},
{
"path": "spring-cloud-task-batch/src/main/java/org/springframework/cloud/task/batch/listener/package-info.java",
"chars": 753,
"preview": "/*\n * Copyright 2015-present the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \""
},
{
"path": "spring-cloud-task-batch/src/main/java/org/springframework/cloud/task/batch/listener/support/JdbcTaskBatchDao.java",
"chars": 2926,
"preview": "/*\n * Copyright 2016-present the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \""
},
{
"path": "spring-cloud-task-batch/src/main/java/org/springframework/cloud/task/batch/listener/support/MapTaskBatchDao.java",
"chars": 1994,
"preview": "/*\n * Copyright 2016-present the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \""
},
{
"path": "spring-cloud-task-batch/src/main/java/org/springframework/cloud/task/batch/listener/support/package-info.java",
"chars": 770,
"preview": "/*\n * Copyright 2015-present the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \""
},
{
"path": "spring-cloud-task-batch/src/main/resources/META-INF/additional-spring-configuration-metadata.json",
"chars": 2390,
"preview": "{\n\t\"properties\": [\n\t\t{\n\t\t\t\"defaultValue\": true,\n\t\t\t\"name\": \"spring.cloud.task.batch.listener.enabled\",\n\t\t\t\"description\":"
},
{
"path": "spring-cloud-task-batch/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports",
"chars": 162,
"preview": "org.springframework.cloud.task.batch.configuration.TaskBatchAutoConfiguration\norg.springframework.cloud.task.batch.confi"
},
{
"path": "spring-cloud-task-batch/src/test/java/org/springframework/cloud/task/batch/configuration/TaskBatchTest.java",
"chars": 1228,
"preview": "/*\n * Copyright 2018-present the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \""
},
{
"path": "spring-cloud-task-batch/src/test/java/org/springframework/cloud/task/batch/configuration/TaskJobLauncherAutoConfigurationTests.java",
"chars": 5259,
"preview": "/*\n * Copyright 2018-present the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \""
},
{
"path": "spring-cloud-task-batch/src/test/java/org/springframework/cloud/task/batch/handler/TaskJobLauncherApplicationRunnerCoreTests.java",
"chars": 10262,
"preview": "/*\n * Copyright 2018-present the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \""
},
{
"path": "spring-cloud-task-batch/src/test/java/org/springframework/cloud/task/batch/handler/TaskJobLauncherApplicationRunnerTests.java",
"chars": 11784,
"preview": "/*\n * Copyright 2018-present the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \""
},
{
"path": "spring-cloud-task-batch/src/test/java/org/springframework/cloud/task/batch/listener/PrefixTests.java",
"chars": 3454,
"preview": "/*\n * Copyright 2018-present the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \""
},
{
"path": "spring-cloud-task-batch/src/test/java/org/springframework/cloud/task/batch/listener/PrimaryKeyTests.java",
"chars": 3382,
"preview": "/*\n * Copyright 2022-present the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \""
},
{
"path": "spring-cloud-task-batch/src/test/java/org/springframework/cloud/task/batch/listener/TaskBatchExecutionListenerTests.java",
"chars": 15575,
"preview": "/*\n * Copyright 2016-present the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \""
},
{
"path": "spring-cloud-task-batch/src/test/resources/META-INF/spring/org.springframework.cloud.task.batch.configuration.TaskBatchTest.imports",
"chars": 372,
"preview": "org.springframework.cloud.task.batch.configuration.TaskBatchAutoConfiguration\norg.springframework.boot.autoconfigure.con"
},
{
"path": "spring-cloud-task-batch/src/test/resources/schema-h2.sql",
"chars": 1010,
"preview": "\nCREATE TABLE FOO_EXECUTION (\n\tTASK_EXECUTION_ID BIGINT NOT NULL PRIMARY KEY ,\n\tSTART_TIME TIMESTAMP DEFAULT NULL ,\n\tEN"
},
{
"path": "spring-cloud-task-batch/src/test/resources/schema-with-primary-keys-h2.sql",
"chars": 1132,
"preview": "\nCREATE TABLE TASK_EXECUTION (\n\tTASK_EXECUTION_ID BIGINT NOT NULL PRIMARY KEY ,\n\tSTART_TIME TIMESTAMP DEFAULT NULL ,\n\tE"
},
{
"path": "spring-cloud-task-core/pom.xml",
"chars": 6356,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<project xmlns=\"http://maven.apache.org/POM/4.0.0\" xmlns:xsi=\"http://www.w3.org/2"
},
{
"path": "spring-cloud-task-core/src/main/java/org/springframework/cloud/task/configuration/DefaultTaskConfigurer.java",
"chars": 8010,
"preview": "/*\n * Copyright 2015-present the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \""
},
{
"path": "spring-cloud-task-core/src/main/java/org/springframework/cloud/task/configuration/EnableTask.java",
"chars": 1820,
"preview": "/*\n * Copyright 2015-present the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \""
},
{
"path": "spring-cloud-task-core/src/main/java/org/springframework/cloud/task/configuration/NoTransactionManagerProperty.java",
"chars": 1261,
"preview": "/*\n * Copyright 2022-present the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \""
},
{
"path": "spring-cloud-task-core/src/main/java/org/springframework/cloud/task/configuration/SimpleTaskAutoConfiguration.java",
"chars": 6412,
"preview": "/*\n * Copyright 2015-present the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \""
},
{
"path": "spring-cloud-task-core/src/main/java/org/springframework/cloud/task/configuration/SingleInstanceTaskListener.java",
"chars": 6589,
"preview": "/*\n * Copyright 2018-present the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \""
},
{
"path": "spring-cloud-task-core/src/main/java/org/springframework/cloud/task/configuration/SingleTaskConfiguration.java",
"chars": 2305,
"preview": "/*\n * Copyright 2018-present the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \""
},
{
"path": "spring-cloud-task-core/src/main/java/org/springframework/cloud/task/configuration/TaskConfigurer.java",
"chars": 2250,
"preview": "/*\n * Copyright 2015-present the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \""
},
{
"path": "spring-cloud-task-core/src/main/java/org/springframework/cloud/task/configuration/TaskLifecycleConfiguration.java",
"chars": 3824,
"preview": "/*\n * Copyright 2018-present the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \""
},
{
"path": "spring-cloud-task-core/src/main/java/org/springframework/cloud/task/configuration/TaskObservationCloudKeyValues.java",
"chars": 2707,
"preview": "/*\n * Copyright 2022-present the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \""
},
{
"path": "spring-cloud-task-core/src/main/java/org/springframework/cloud/task/configuration/TaskProperties.java",
"chars": 4916,
"preview": "/*\n * Copyright 2016-present the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \""
},
{
"path": "spring-cloud-task-core/src/main/java/org/springframework/cloud/task/configuration/TaskRepositoryDatabaseInitializerDetector.java",
"chars": 1494,
"preview": "/*\n * Copyright 2022-present the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \""
},
{
"path": "spring-cloud-task-core/src/main/java/org/springframework/cloud/task/configuration/TaskRepositoryDependsOnDatabaseInitializationDetector.java",
"chars": 1353,
"preview": "/*\n * Copyright 2022-present the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \""
},
{
"path": "spring-cloud-task-core/src/main/java/org/springframework/cloud/task/configuration/TaskRuntimeHints.java",
"chars": 2840,
"preview": "/*\n * Copyright 2022-present the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \""
},
{
"path": "spring-cloud-task-core/src/main/java/org/springframework/cloud/task/configuration/observation/DefaultTaskObservationConvention.java",
"chars": 1271,
"preview": "/*\n * Copyright 2013-present the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \""
},
{
"path": "spring-cloud-task-core/src/main/java/org/springframework/cloud/task/configuration/observation/ObservationApplicationRunner.java",
"chars": 2389,
"preview": "/*\n * Copyright 2018-present the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \""
},
{
"path": "spring-cloud-task-core/src/main/java/org/springframework/cloud/task/configuration/observation/ObservationApplicationRunnerBeanPostProcessor.java",
"chars": 1579,
"preview": "/*\n * Copyright 2013-present the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \""
},
{
"path": "spring-cloud-task-core/src/main/java/org/springframework/cloud/task/configuration/observation/ObservationCommandLineRunner.java",
"chars": 2323,
"preview": "/*\n * Copyright 2018-present the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \""
},
{
"path": "spring-cloud-task-core/src/main/java/org/springframework/cloud/task/configuration/observation/ObservationCommandLineRunnerBeanPostProcessor.java",
"chars": 1579,
"preview": "/*\n * Copyright 2013-present the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \""
},
{
"path": "spring-cloud-task-core/src/main/java/org/springframework/cloud/task/configuration/observation/ObservationTaskAutoConfiguration.java",
"chars": 2039,
"preview": "/*\n * Copyright 2013-present the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \""
},
{
"path": "spring-cloud-task-core/src/main/java/org/springframework/cloud/task/configuration/observation/TaskDocumentedObservation.java",
"chars": 1736,
"preview": "/*\n * Copyright 2013-present the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \""
},
{
"path": "spring-cloud-task-core/src/main/java/org/springframework/cloud/task/configuration/observation/TaskObservationContext.java",
"chars": 1239,
"preview": "/*\n * Copyright 2013-present the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \""
},
{
"path": "spring-cloud-task-core/src/main/java/org/springframework/cloud/task/configuration/observation/TaskObservationConvention.java",
"chars": 1142,
"preview": "/*\n * Copyright 2013-present the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \""
},
{
"path": "spring-cloud-task-core/src/main/java/org/springframework/cloud/task/configuration/observation/package-info.java",
"chars": 760,
"preview": "/*\n * Copyright 2015-present the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \""
},
{
"path": "spring-cloud-task-core/src/main/java/org/springframework/cloud/task/configuration/package-info.java",
"chars": 767,
"preview": "/*\n * Copyright 2016-present the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \""
},
{
"path": "spring-cloud-task-core/src/main/java/org/springframework/cloud/task/listener/DefaultTaskExecutionObservationConvention.java",
"chars": 1861,
"preview": "/*\n * Copyright 2022-present the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \""
},
{
"path": "spring-cloud-task-core/src/main/java/org/springframework/cloud/task/listener/TaskException.java",
"chars": 947,
"preview": "/*\n * Copyright 2016-present the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \""
},
{
"path": "spring-cloud-task-core/src/main/java/org/springframework/cloud/task/listener/TaskExecutionException.java",
"chars": 985,
"preview": "/*\n * Copyright 2016-present the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \""
},
{
"path": "spring-cloud-task-core/src/main/java/org/springframework/cloud/task/listener/TaskExecutionListener.java",
"chars": 1947,
"preview": "/*\n * Copyright 2016-present the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \""
},
{
"path": "spring-cloud-task-core/src/main/java/org/springframework/cloud/task/listener/TaskExecutionListenerSupport.java",
"chars": 1044,
"preview": "/*\n * Copyright 2017-present the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \""
},
{
"path": "spring-cloud-task-core/src/main/java/org/springframework/cloud/task/listener/TaskExecutionObservation.java",
"chars": 3659,
"preview": "/*\n * Copyright 2022-present the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \""
},
{
"path": "spring-cloud-task-core/src/main/java/org/springframework/cloud/task/listener/TaskExecutionObservationContext.java",
"chars": 1837,
"preview": "/*\n * Copyright 2022-present the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \""
},
{
"path": "spring-cloud-task-core/src/main/java/org/springframework/cloud/task/listener/TaskExecutionObservationConvention.java",
"chars": 1168,
"preview": "/*\n * Copyright 2022-present the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \""
},
{
"path": "spring-cloud-task-core/src/main/java/org/springframework/cloud/task/listener/TaskLifecycleListener.java",
"chars": 16498,
"preview": "/*\n * Copyright 2016-present the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \""
},
{
"path": "spring-cloud-task-core/src/main/java/org/springframework/cloud/task/listener/TaskListenerExecutorObjectFactory.java",
"chars": 5968,
"preview": "/*\n * Copyright 2018-present the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \""
},
{
"path": "spring-cloud-task-core/src/main/java/org/springframework/cloud/task/listener/TaskObservations.java",
"chars": 5244,
"preview": "/*\n * Copyright 2019-present the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \""
},
{
"path": "spring-cloud-task-core/src/main/java/org/springframework/cloud/task/listener/annotation/AfterTask.java",
"chars": 1503,
"preview": "/*\n * Copyright 2016-present the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \""
},
{
"path": "spring-cloud-task-core/src/main/java/org/springframework/cloud/task/listener/annotation/BeforeTask.java",
"chars": 1509,
"preview": "/*\n * Copyright 2016-present the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \""
},
{
"path": "spring-cloud-task-core/src/main/java/org/springframework/cloud/task/listener/annotation/FailedTask.java",
"chars": 1540,
"preview": "/*\n * Copyright 2016-present the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \""
},
{
"path": "spring-cloud-task-core/src/main/java/org/springframework/cloud/task/listener/annotation/TaskListenerExecutor.java",
"chars": 4635,
"preview": "/*\n * Copyright 2016-present the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \""
},
{
"path": "spring-cloud-task-core/src/main/java/org/springframework/cloud/task/listener/annotation/package-info.java",
"chars": 754,
"preview": "/*\n * Copyright 2015-present the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \""
},
{
"path": "spring-cloud-task-core/src/main/java/org/springframework/cloud/task/listener/package-info.java",
"chars": 741,
"preview": "/*\n * Copyright 2015-present the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \""
},
{
"path": "spring-cloud-task-core/src/main/java/org/springframework/cloud/task/package-info.java",
"chars": 713,
"preview": "/*\n * Copyright 2015-present the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \""
},
{
"path": "spring-cloud-task-core/src/main/java/org/springframework/cloud/task/repository/TaskExecution.java",
"chars": 5026,
"preview": "/*\n * Copyright 2015-present the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \""
},
{
"path": "spring-cloud-task-core/src/main/java/org/springframework/cloud/task/repository/TaskExplorer.java",
"chars": 5691,
"preview": "/*\n * Copyright 2015-present the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \""
},
{
"path": "spring-cloud-task-core/src/main/java/org/springframework/cloud/task/repository/TaskNameResolver.java",
"chars": 934,
"preview": "/*\n * Copyright 2016-present the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \""
},
{
"path": "spring-cloud-task-core/src/main/java/org/springframework/cloud/task/repository/TaskRepository.java",
"chars": 5824,
"preview": "/*\n * Copyright 2015-present the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \""
},
{
"path": "spring-cloud-task-core/src/main/java/org/springframework/cloud/task/repository/dao/JdbcTaskExecutionDao.java",
"chars": 25162,
"preview": "/*\n * Copyright 2015-present the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \""
},
{
"path": "spring-cloud-task-core/src/main/java/org/springframework/cloud/task/repository/dao/MapTaskExecutionDao.java",
"chars": 12473,
"preview": "/*\n * Copyright 2015-present the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \""
},
{
"path": "spring-cloud-task-core/src/main/java/org/springframework/cloud/task/repository/dao/TaskExecutionDao.java",
"chars": 10144,
"preview": "/*\n * Copyright 2015-present the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \""
},
{
"path": "spring-cloud-task-core/src/main/java/org/springframework/cloud/task/repository/dao/package-info.java",
"chars": 798,
"preview": "/*\n * Copyright 2016-present the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \""
},
{
"path": "spring-cloud-task-core/src/main/java/org/springframework/cloud/task/repository/database/PagingQueryProvider.java",
"chars": 2077,
"preview": "/*\n * Copyright 2015-present the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \""
},
{
"path": "spring-cloud-task-core/src/main/java/org/springframework/cloud/task/repository/database/package-info.java",
"chars": 760,
"preview": "/*\n * Copyright 2015-present the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \""
},
{
"path": "spring-cloud-task-core/src/main/java/org/springframework/cloud/task/repository/database/support/AbstractSqlPagingQueryProvider.java",
"chars": 5009,
"preview": "/*\n * Copyright 2015-present the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \""
},
{
"path": "spring-cloud-task-core/src/main/java/org/springframework/cloud/task/repository/database/support/Db2PagingQueryProvider.java",
"chars": 1968,
"preview": "/*\n * Copyright 2016-present the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \""
},
{
"path": "spring-cloud-task-core/src/main/java/org/springframework/cloud/task/repository/database/support/H2PagingQueryProvider.java",
"chars": 1393,
"preview": "/*\n * Copyright 2016-present the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \""
},
{
"path": "spring-cloud-task-core/src/main/java/org/springframework/cloud/task/repository/database/support/HsqlPagingQueryProvider.java",
"chars": 1327,
"preview": "/*\n * Copyright 2015-present the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \""
},
{
"path": "spring-cloud-task-core/src/main/java/org/springframework/cloud/task/repository/database/support/MariaDbPagingQueryProvider.java",
"chars": 1334,
"preview": "/*\n * Copyright 2022-present the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \""
},
{
"path": "spring-cloud-task-core/src/main/java/org/springframework/cloud/task/repository/database/support/MySqlPagingQueryProvider.java",
"chars": 1327,
"preview": "/*\n * Copyright 2015-present the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \""
},
{
"path": "spring-cloud-task-core/src/main/java/org/springframework/cloud/task/repository/database/support/OraclePagingQueryProvider.java",
"chars": 1956,
"preview": "/*\n * Copyright 2015-present the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \""
},
{
"path": "spring-cloud-task-core/src/main/java/org/springframework/cloud/task/repository/database/support/PostgresPagingQueryProvider.java",
"chars": 1346,
"preview": "/*\n * Copyright 2015-present the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \""
},
{
"path": "spring-cloud-task-core/src/main/java/org/springframework/cloud/task/repository/database/support/SqlPagingQueryProviderFactoryBean.java",
"chars": 6018,
"preview": "/*\n * Copyright 2015-present the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \""
},
{
"path": "spring-cloud-task-core/src/main/java/org/springframework/cloud/task/repository/database/support/SqlPagingQueryUtils.java",
"chars": 4272,
"preview": "/*\n * Copyright 2015-present the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \""
},
{
"path": "spring-cloud-task-core/src/main/java/org/springframework/cloud/task/repository/database/support/SqlServerPagingQueryProvider.java",
"chars": 2043,
"preview": "/*\n * Copyright 2015-present the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \""
},
{
"path": "spring-cloud-task-core/src/main/java/org/springframework/cloud/task/repository/database/support/package-info.java",
"chars": 789,
"preview": "/*\n * Copyright 2015-present the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \""
},
{
"path": "spring-cloud-task-core/src/main/java/org/springframework/cloud/task/repository/package-info.java",
"chars": 750,
"preview": "/*\n * Copyright 2015-present the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \""
},
{
"path": "spring-cloud-task-core/src/main/java/org/springframework/cloud/task/repository/support/DatabaseType.java",
"chars": 4671,
"preview": "/*\n * Copyright 2015-present the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \""
},
{
"path": "spring-cloud-task-core/src/main/java/org/springframework/cloud/task/repository/support/SimpleTaskExplorer.java",
"chars": 3960,
"preview": "/*\n * Copyright 2015-present the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \""
},
{
"path": "spring-cloud-task-core/src/main/java/org/springframework/cloud/task/repository/support/SimpleTaskNameResolver.java",
"chars": 2053,
"preview": "/*\n * Copyright 2015-present the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \""
},
{
"path": "spring-cloud-task-core/src/main/java/org/springframework/cloud/task/repository/support/SimpleTaskRepository.java",
"chars": 7672,
"preview": "/*\n * Copyright 2015-present the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \""
},
{
"path": "spring-cloud-task-core/src/main/java/org/springframework/cloud/task/repository/support/TaskExecutionDaoFactoryBean.java",
"chars": 5427,
"preview": "/*\n * Copyright 2015-present the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \""
},
{
"path": "spring-cloud-task-core/src/main/java/org/springframework/cloud/task/repository/support/TaskRepositoryInitializer.java",
"chars": 4667,
"preview": "/*\n * Copyright 2015-present the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \""
},
{
"path": "spring-cloud-task-core/src/main/java/org/springframework/cloud/task/repository/support/package-info.java",
"chars": 760,
"preview": "/*\n * Copyright 2016-present the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \""
},
{
"path": "spring-cloud-task-core/src/main/resources/META-INF/additional-spring-configuration-metadata.json",
"chars": 583,
"preview": "{\n\t\"properties\": [\n\t\t{\n\t\t\t\"defaultValue\": false,\n\t\t\t\"name\": \"spring.cloud.task.single-instance-enabled\",\n\t\t\t\"description"
},
{
"path": "spring-cloud-task-core/src/main/resources/META-INF/spring/aot.factories",
"chars": 115,
"preview": "org.springframework.aot.hint.RuntimeHintsRegistrar=\\\norg.springframework.cloud.task.configuration.TaskRuntimeHints\n"
},
{
"path": "spring-cloud-task-core/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports",
"chars": 232,
"preview": "org.springframework.cloud.task.configuration.SingleTaskConfiguration\norg.springframework.cloud.task.configuration.Simple"
},
{
"path": "spring-cloud-task-core/src/main/resources/META-INF/spring.factories",
"chars": 349,
"preview": "org.springframework.boot.sql.init.dependency.DatabaseInitializerDetector=\\\norg.springframework.cloud.task.configuration."
}
]
// ... and 241 more files (download for full content)
About this extraction
This page contains the full source code of the spring-cloud/spring-cloud-task GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 441 files (1.3 MB), approximately 341.6k tokens, and a symbol index with 1941 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.
Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.