From e5c752b4b82057a80ed2a049770223201c309666 Mon Sep 17 00:00:00 2001 From: Mahmoud Ben Hassine Date: Fri, 10 Dec 2021 20:46:11 +0100 Subject: [PATCH] Remove JSR-352 implementation Resolves #3894 --- .gitignore | 1 - pom.xml | 3 - spring-batch-core/pom.xml | 11 - .../batch/core/BatchStatus.java | 23 - .../batch/core/JobExecution.java | 26 +- .../batch/core/JobInstance.java | 5 +- .../xml/StepParserStepFactoryBean.java | 95 +- .../batch/core/jsr/ChunkListenerAdapter.java | 75 -- .../core/jsr/ItemProcessListenerAdapter.java | 72 -- .../core/jsr/ItemReadListenerAdapter.java | 69 -- .../core/jsr/ItemWriteListenerAdapter.java | 74 -- .../batch/core/jsr/JobListenerAdapter.java | 62 -- .../batch/core/jsr/JsrJobContext.java | 126 --- .../core/jsr/JsrJobContextFactoryBean.java | 135 --- .../batch/core/jsr/JsrJobExecution.java | 123 --- .../core/jsr/JsrJobListenerMetaData.java | 88 -- .../core/jsr/JsrJobParametersConverter.java | 135 --- .../batch/core/jsr/JsrStepContext.java | 182 ---- .../core/jsr/JsrStepContextFactoryBean.java | 114 --- .../batch/core/jsr/JsrStepExecution.java | 135 --- .../core/jsr/JsrStepListenerMetaData.java | 124 --- .../batch/core/jsr/RetryListener.java | 30 - .../core/jsr/RetryProcessListenerAdapter.java | 45 - .../core/jsr/RetryReadListenerAdapter.java | 45 - .../core/jsr/RetryWriteListenerAdapter.java | 46 - .../batch/core/jsr/SimpleMetric.java | 64 -- .../batch/core/jsr/SkipListenerAdapter.java | 75 -- .../batch/core/jsr/StepListenerAdapter.java | 67 -- .../support/BaseContextListFactoryBean.java | 56 -- .../support/BatchArtifactType.java | 31 - .../support/BatchPropertyContext.java | 241 ----- ...rAutowiredAnnotationBeanPostProcessor.java | 44 - .../support/JsrExpressionParser.java | 130 --- ...gAutowiredAnnotationBeanPostProcessor.java | 601 ------------- ...readLocalClassloaderBeanPostProcessor.java | 74 -- .../configuration/support/package-info.java | 10 - .../jsr/configuration/xml/BatchParser.java | 82 -- .../jsr/configuration/xml/BatchletParser.java | 55 -- .../jsr/configuration/xml/ChunkParser.java | 186 ---- .../xml/DecisionStepFactoryBean.java | 99 -- .../jsr/configuration/xml/FlowParser.java | 275 ------ .../jsr/configuration/xml/JobFactoryBean.java | 169 ---- .../xml/JsrBeanDefinitionDocumentReader.java | 310 ------- .../configuration/xml/JsrDecisionParser.java | 69 -- .../configuration/xml/JsrFlowFactoryBean.java | 39 - .../xml/JsrJobListenerFactoryBean.java | 64 -- .../jsr/configuration/xml/JsrJobParser.java | 78 -- .../xml/JsrNamespaceHandler.java | 32 - .../xml/JsrNamespacePostProcessor.java | 58 -- .../configuration/xml/JsrNamespaceUtils.java | 108 --- .../jsr/configuration/xml/JsrSplitParser.java | 94 -- .../xml/JsrStepListenerFactoryBean.java | 51 -- .../xml/JsrXmlApplicationContext.java | 90 -- .../jsr/configuration/xml/ListenerParser.java | 140 --- .../configuration/xml/PartitionParser.java | 187 ---- .../jsr/configuration/xml/PropertyParser.java | 192 ---- .../configuration/xml/StepFactoryBean.java | 299 ------ .../jsr/configuration/xml/StepParser.java | 103 --- .../jsr/configuration/xml/package-info.java | 10 - .../batch/core/jsr/job/JsrStepHandler.java | 157 ---- .../core/jsr/job/flow/JsrFlowExecutor.java | 69 -- .../batch/core/jsr/job/flow/JsrFlowJob.java | 141 --- .../batch/core/jsr/job/flow/package-info.java | 10 - .../core/jsr/job/flow/support/JsrFlow.java | 152 ---- .../jsr/job/flow/support/package-info.java | 10 - .../job/flow/support/state/JsrEndState.java | 135 --- .../job/flow/support/state/JsrSplitState.java | 73 -- .../job/flow/support/state/JsrStepState.java | 59 -- .../job/flow/support/state/package-info.java | 10 - .../batch/core/jsr/job/package-info.java | 10 - .../batch/core/jsr/launch/JsrJobOperator.java | 850 ------------------ .../batch/core/jsr/launch/package-info.java | 10 - .../BatchPropertyBeanPostProcessor.java | 184 ---- .../batch/core/jsr/package-info.java | 10 - .../jsr/partition/JsrPartitionHandler.java | 509 ----------- .../partition/JsrStepExecutionSplitter.java | 96 -- .../partition/PartitionCollectorAdapter.java | 100 --- .../core/jsr/partition/package-info.java | 10 - .../JsrBeanScopeBeanFactoryPostProcessor.java | 103 --- .../support/JsrStepExecutionAggregator.java | 56 -- .../jsr/partition/support/package-info.java | 25 - .../batch/core/jsr/step/BatchletStep.java | 50 -- .../batch/core/jsr/step/DecisionStep.java | 96 -- .../batch/core/jsr/step/PartitionStep.java | 117 --- .../jsr/step/batchlet/BatchletAdapter.java | 72 -- .../core/jsr/step/batchlet/package-info.java | 10 - .../step/builder/JsrBatchletStepBuilder.java | 103 --- .../builder/JsrFaultTolerantStepBuilder.java | 157 ---- .../step/builder/JsrPartitionStepBuilder.java | 132 --- .../step/builder/JsrSimpleStepBuilder.java | 140 --- .../core/jsr/step/builder/package-info.java | 10 - .../core/jsr/step/item/JsrChunkProcessor.java | 253 ------ .../core/jsr/step/item/JsrChunkProvider.java | 47 - .../item/JsrFaultTolerantChunkProcessor.java | 351 -------- .../core/jsr/step/item/package-info.java | 10 - .../batch/core/jsr/step/package-info.java | 10 - .../CompositeRetryProcessListener.java | 63 -- .../listener/CompositeRetryReadListener.java | 63 -- .../listener/CompositeRetryWriteListener.java | 63 -- .../listener/MulticasterBatchListener.java | 48 +- .../batch/core/repository/JobRepository.java | 14 +- ...kson2ExecutionContextStringSerializer.java | 3 +- .../repository/dao/JdbcJobExecutionDao.java | 20 +- .../support/SimpleJobRepository.java | 21 +- .../context/JobSynchronizationManager.java | 5 +- .../batch/core/scope/context/StepContext.java | 24 +- .../context/StepSynchronizationManager.java | 30 +- .../SynchronizationManagerSupport.java | 35 +- .../builder/FaultTolerantStepBuilder.java | 15 +- .../jakarta.batch.operations.JobOperator | 1 - .../main/resources/META-INF/spring.handlers | 3 +- .../main/resources/META-INF/spring.schemas | 4 - .../src/main/resources/beanRefContext.xml | 13 - .../src/main/resources/jsrBaseContext.xml | 67 -- .../jsr/configuration/xml/batchXML_1_0.xsd | 34 - .../core/jsr/configuration/xml/jobXML_1_0.xsd | 435 --------- .../springframework/batch/core/schema-db2.sql | 1 - .../batch/core/schema-derby.sql | 1 - .../springframework/batch/core/schema-h2.sql | 1 - .../batch/core/schema-hsqldb.sql | 1 - .../batch/core/schema-mysql.sql | 1 - .../batch/core/schema-oracle10g.sql | 1 - .../batch/core/schema-postgresql.sql | 1 - .../batch/core/schema-sqlite.sql | 1 - .../batch/core/schema-sqlserver.sql | 1 - .../batch/core/schema-sybase.sql | 1 - .../batch/core/BatchStatusTests.java | 10 - .../batch/core/JobExecutionTests.java | 11 +- .../batch/core/JobParametersBuilderTests.java | 2 +- .../batch/core/StepExecutionTests.java | 3 +- .../configuration/xml/DummyJobRepository.java | 8 +- .../support/SimpleJobExplorerTests.java | 4 +- .../batch/core/job/flow/FlowJobTests.java | 36 - .../batch/core/jsr/AbstractJsrTestCase.java | 123 --- .../core/jsr/ChunkListenerAdapterTests.java | 102 --- .../jsr/ItemProcessListenerAdapterTests.java | 110 --- .../jsr/ItemReadListenerAdapterTests.java | 101 --- .../jsr/ItemWriteListenerAdapterTests.java | 100 --- .../core/jsr/JobListenerAdapterTests.java | 77 -- .../jsr/JsrJobContextFactoryBeanTests.java | 126 --- .../batch/core/jsr/JsrJobContextTests.java | 131 --- .../batch/core/jsr/JsrJobExecutionTests.java | 78 -- .../jsr/JsrJobParametersConverterTests.java | 126 --- .../jsr/JsrStepContextFactoryBeanTests.java | 203 ----- .../batch/core/jsr/JsrStepContextTests.java | 158 ---- .../batch/core/jsr/JsrStepExecutionTests.java | 121 --- .../batch/core/jsr/SimpleMetricTests.java | 39 - .../core/jsr/StepListenerAdapterTests.java | 86 -- .../support/BatchPropertyContextTests.java | 205 ----- .../configuration/xml/BatchParserTests.java | 101 --- .../xml/ChunkListenerParsingTests.java | 117 --- .../xml/CountingItemProcessor.java | 29 - .../xml/CustomWiredJsrJobOperatorTests.java | 62 -- .../xml/DecisionStepFactoryBeanTests.java | 85 -- .../xml/ExceptionHandlingParsingTests.java | 111 --- .../configuration/xml/FlowParserTests.java | 125 --- .../xml/ItemListenerParsingTests.java | 188 ---- .../xml/ItemSkipParsingTests.java | 176 ---- .../xml/JobListenerParsingTests.java | 96 -- .../xml/JobPropertySubstitutionTests.java | 146 --- .../configuration/xml/JobPropertyTests.java | 301 ------- .../JsrBeanDefinitionDocumentReaderTests.java | 280 ------ .../xml/JsrDecisionParsingTests.java | 58 -- .../xml/JsrSplitParsingTests.java | 66 -- .../xml/JsrXmlApplicationContextTests.java | 65 -- .../xml/ListenerParserTests.java | 67 -- .../xml/PartitionParserTests.java | 367 -------- .../configuration/xml/RetryListenerTests.java | 248 ----- .../xml/SimpleItemBasedJobParsingTests.java | 122 --- .../xml/SimpleJobParsingTests.java | 77 -- .../xml/StepListenerParsingTests.java | 95 -- ...ocalClassloaderBeanPostProcessorTests.java | 34 - ...sloaderBeanPostProcessorTestsBatchlet.java | 50 -- .../core/jsr/job/flow/JsrFlowJobTests.java | 770 ---------------- .../jsr/job/flow/support/JsrFlowTests.java | 76 -- .../flow/support/state/JsrEndStateTests.java | 52 -- .../core/jsr/launch/JsrJobOperatorTests.java | 688 -------------- .../partition/JsrPartitionHandlerTests.java | 431 --------- .../JsrStepExecutionSplitterTests.java | 53 -- .../PartitionCollectorAdapterTests.java | 62 -- .../core/jsr/step/DecisionStepTests.java | 144 --- .../batch/core/jsr/step/SplitTests.java | 116 --- .../step/batchlet/BatchletAdapterTests.java | 86 -- .../jsr/step/batchlet/BatchletSupport.java | 31 - .../jsr/step/batchlet/FailingBatchlet.java | 37 - .../jsr/step/batchlet/RestartBatchlet.java | 38 - .../jsr/step/item/JsrChunkProcessorTests.java | 434 --------- .../jsr/step/item/JsrChunkProviderTests.java | 40 - .../JsrFaultTolerantChunkProcessorTests.java | 639 ------------- .../ExitStatusSettingStepListener.java | 56 -- .../support/CommandLineJobRunnerTests.java | 8 +- .../support/SimpleJobOperatorTests.java | 28 +- .../MultiResourcePartitionerTests.java | 4 +- .../repository/dao/AbstractJobDaoTests.java | 5 +- .../dao/AbstractStepExecutionDaoTests.java | 2 +- .../dao/JdbcJobInstanceDaoTests.java | 4 +- .../support/SimpleJobRepositoryTests.java | 7 +- .../core/scope/context/ChunkContextTests.java | 5 +- .../core/scope/context/StepContextTests.java | 20 +- .../StepSynchronizationManagerTests.java | 14 +- .../batch/core/step/JobRepositorySupport.java | 10 +- .../step/item/TaskletStepExceptionTests.java | 5 - .../SystemCommandTaskletIntegrationTests.java | 2 +- .../StepExecutionSerializationUtilsTests.java | 7 +- .../META-INF/alternativeJsrBaseContext.xml | 9 - ...ionStepTests-decisionAfterFlow-context.xml | 25 - ...nStepTests-decisionAsFirstStep-context.xml | 14 - ...Tests-decisionCustomExitStatus-context.xml | 18 - ...ests-decisionInvalidExitStatus-context.xml | 22 - ...pTests-decisionThrowsException-context.xml | 22 - ...pTests-decisionValidExitStatus-context.xml | 23 - .../DecisionStepTests-restart-context.xml | 20 - .../ExceptionHandlingParsingTests-context.xml | 89 -- .../batch-jobs/FlowParserTests-context.xml | 39 - ...iledTransitionWhenNextAttributePresent.xml | 18 - ...enNextAndFailedTransitionElementExists.xml | 18 - .../FlowParserTestsWildcardAndNextAttrJob.xml | 17 - .../ItemSkipParsingTests-context.xml | 30 - ...itTests-testDecisionAfterSplit-context.xml | 32 - .../SplitTests-testSplit-context.xml | 58 -- .../batch-jobs/contextClosingTests.xml | 15 - .../batch-jobs/fullPartitionParserTests.xml | 12 - ...tionParserWithHardcodedPropertiesTests.xml | 46 - ...rtitionParserWithMapperPropertiesTests.xml | 28 - ...fullPartitionParserWithPropertiesTests.xml | 32 - .../batch-jobs/jobWithEndTransition.xml | 12 - ...srJobOperatorTestBeanCreationException.xml | 7 - .../batch-jobs/jsrJobOperatorTestJob.xml | 6 - .../jsrJobOperatorTestNonRestartableJob.xml | 7 - .../jsrJobOperatorTestRestartAbandonJob.xml | 7 - .../jsrJobOperatorTestRestartJob.xml | 6 - .../batch-jobs/jsrJobPropertyTests.xml | 109 --- .../batch-jobs/jsrJobPropertyTestsContext.xml | 11 - ...PartitionHandlerRestartWithOverrideJob.xml | 15 - .../batch-jobs/jsrPropertyPreparseTestJob.xml | 15 - .../batch-jobs/jsrSpringInstanceTests.xml | 45 - .../batch-jobs/jsrUniqueInstanceTests.xml | 53 -- .../META-INF/batch-jobs/longRunningJob.xml | 6 - .../partitionParserTestsBatchlet.xml | 9 - .../batch-jobs/partitionParserTestsChunk.xml | 12 - ...alClassloaderBeanPostProcessorTestsJob.xml | 10 - .../src/test/resources/META-INF/batch.xml | 6 - .../xml/ChunkListenerParsingTests-context.xml | 105 --- ...CustomWiredJsrJobOperatorTests-context.xml | 33 - .../xml/ItemListenerParsingTests-context.xml | 102 --- .../xml/JobListenerParsingTests-context.xml | 47 - .../JobPropertySubstitutionTests-context.xml | 68 -- .../xml/JsrDecisionParsingTests-context.xml | 45 - .../xml/RetryListenerTestBase-context.xml | 46 - .../xml/RetryReadListenerExhausted.xml | 15 - .../RetryReadListenerListenerException.xml | 15 - .../xml/RetryReadListenerRetryOnce.xml | 15 - ...SimpleItemBasedJobParsingTests-context.xml | 121 --- .../xml/SimpleJobParsingTests-context.xml | 45 - .../xml/StepListenerParsingTests-context.xml | 56 -- .../core/jsr/configuration/xml/batch.xml | 3 - .../default-split-task-executor-context.xml | 79 -- .../xml/invalid-split-context.xml | 25 - .../jsr/configuration/xml/override_batch.xml | 8 - ...-specified-split-task-executor-context.xml | 81 -- .../repository/dao/schema-prefix-hsqldb.sql | 25 +- .../batch/core/schema-hsqldb-extended.sql | 1 - spring-batch-docs/src/assembly/dist.xml | 7 - spring-batch-docs/src/assembly/schemas.xml | 7 - .../src/main/asciidoc/index-single.adoc | 2 - .../src/main/asciidoc/index.adoc | 2 - .../src/main/asciidoc/jsr-352.adoc | 620 ------------- .../src/main/asciidoc/schema-appendix.adoc | 1 - spring-batch-infrastructure/pom.xml | 6 - .../batch/jsr/item/CheckpointSupport.java | 133 --- .../batch/jsr/item/ItemProcessorAdapter.java | 38 - .../batch/jsr/item/ItemReaderAdapter.java | 83 -- .../batch/jsr/item/ItemWriterAdapter.java | 83 -- .../batch/jsr/item/package-info.java | 10 - .../repeat/CheckpointAlgorithmAdapter.java | 102 --- .../batch/jsr/repeat/package-info.java | 25 - .../jsr/item/ItemProcessorAdapterTests.java | 58 -- .../jsr/item/ItemReaderAdapterTests.java | 183 ---- .../jsr/item/ItemWriterAdapterTests.java | 186 ---- .../integration/JobRepositorySupport.java | 7 +- .../jsr352-tck-1.0/LICENSE.txt | 62 -- .../jsr352-tck-1.0/NOTICE.txt | 209 ----- .../artifacts/jsr352-api-sigtest-java6.sig | 539 ----------- .../artifacts/jsr352-api-sigtest-java7.sig | 545 ----------- .../artifacts/jsr352-tck-SPI-javadoc.jar | Bin 39132 -> 0 bytes .../artifacts/jsr352-tck-SPI-src.jar | Bin 4911 -> 0 bytes .../artifacts/jsr352-tck-SPI.jar | Bin 2459 -> 0 bytes .../artifacts/jsr352-tck-impl-javadoc.jar | Bin 510894 -> 0 bytes .../artifacts/jsr352-tck-impl-src.jar | Bin 249972 -> 0 bytes .../artifacts/jsr352-tck-impl-suite.xml | 9 - .../artifacts/jsr352-tck-impl.jar | Bin 394314 -> 0 bytes .../jsr352-tck-1.0/build.xml | 92 -- .../doc/jsr352-tck-reference-guide.pdf | Bin 192470 -> 0 bytes .../jsr352-tck-1.0/jsr352-tck.properties | 53 -- .../jsr352-tck-1.0/lib/javax.inject.jar | Bin 2497 -> 0 bytes .../jsr352-tck-1.0/lib/junit-4.10.jar | Bin 253160 -> 0 bytes .../jsr352-tck-1.0/lib/testng-6.8.jar | Bin 1377268 -> 0 bytes .../jsr352-tck-1.0/lib/xmlunit-1.1.jar | Bin 86249 -> 0 bytes .../jsr352-tck-1.0/readme.txt | 28 - spring-batch-jsr352-tck/pom.xml | 78 -- .../sample/domain/person/PersonService.java | 2 +- .../sample/jsr352/JsrSampleBatchlet.java | 51 -- .../sample/jsr352/JsrSampleItemProcessor.java | 43 - .../sample/jsr352/JsrSampleItemReader.java | 58 -- .../sample/jsr352/JsrSampleItemWriter.java | 43 - .../batch/sample/jsr352/JsrSampleTasklet.java | 57 -- .../batch-jobs/batchXmlConfigSample.xml | 17 - .../batch-jobs/inlineConfigSample.xml | 17 - .../batch-jobs/springConfigSample.xml | 17 - .../batch-jobs/springConfigSampleContext.xml | 29 - .../src/main/resources/META-INF/batch.xml | 6 - .../sample/jsr352/JsrConfigSampleTests.java | 105 --- .../batch/test/JsrTestUtils.java | 129 --- .../batch/test/MetaDataInstanceFactory.java | 5 +- 314 files changed, 102 insertions(+), 25738 deletions(-) delete mode 100644 spring-batch-core/src/main/java/org/springframework/batch/core/jsr/ChunkListenerAdapter.java delete mode 100644 spring-batch-core/src/main/java/org/springframework/batch/core/jsr/ItemProcessListenerAdapter.java delete mode 100644 spring-batch-core/src/main/java/org/springframework/batch/core/jsr/ItemReadListenerAdapter.java delete mode 100644 spring-batch-core/src/main/java/org/springframework/batch/core/jsr/ItemWriteListenerAdapter.java delete mode 100644 spring-batch-core/src/main/java/org/springframework/batch/core/jsr/JobListenerAdapter.java delete mode 100644 spring-batch-core/src/main/java/org/springframework/batch/core/jsr/JsrJobContext.java delete mode 100644 spring-batch-core/src/main/java/org/springframework/batch/core/jsr/JsrJobContextFactoryBean.java delete mode 100644 spring-batch-core/src/main/java/org/springframework/batch/core/jsr/JsrJobExecution.java delete mode 100644 spring-batch-core/src/main/java/org/springframework/batch/core/jsr/JsrJobListenerMetaData.java delete mode 100644 spring-batch-core/src/main/java/org/springframework/batch/core/jsr/JsrJobParametersConverter.java delete mode 100644 spring-batch-core/src/main/java/org/springframework/batch/core/jsr/JsrStepContext.java delete mode 100644 spring-batch-core/src/main/java/org/springframework/batch/core/jsr/JsrStepContextFactoryBean.java delete mode 100644 spring-batch-core/src/main/java/org/springframework/batch/core/jsr/JsrStepExecution.java delete mode 100644 spring-batch-core/src/main/java/org/springframework/batch/core/jsr/JsrStepListenerMetaData.java delete mode 100644 spring-batch-core/src/main/java/org/springframework/batch/core/jsr/RetryListener.java delete mode 100644 spring-batch-core/src/main/java/org/springframework/batch/core/jsr/RetryProcessListenerAdapter.java delete mode 100644 spring-batch-core/src/main/java/org/springframework/batch/core/jsr/RetryReadListenerAdapter.java delete mode 100644 spring-batch-core/src/main/java/org/springframework/batch/core/jsr/RetryWriteListenerAdapter.java delete mode 100644 spring-batch-core/src/main/java/org/springframework/batch/core/jsr/SimpleMetric.java delete mode 100644 spring-batch-core/src/main/java/org/springframework/batch/core/jsr/SkipListenerAdapter.java delete mode 100644 spring-batch-core/src/main/java/org/springframework/batch/core/jsr/StepListenerAdapter.java delete mode 100644 spring-batch-core/src/main/java/org/springframework/batch/core/jsr/configuration/support/BaseContextListFactoryBean.java delete mode 100644 spring-batch-core/src/main/java/org/springframework/batch/core/jsr/configuration/support/BatchArtifactType.java delete mode 100644 spring-batch-core/src/main/java/org/springframework/batch/core/jsr/configuration/support/BatchPropertyContext.java delete mode 100644 spring-batch-core/src/main/java/org/springframework/batch/core/jsr/configuration/support/JsrAutowiredAnnotationBeanPostProcessor.java delete mode 100644 spring-batch-core/src/main/java/org/springframework/batch/core/jsr/configuration/support/JsrExpressionParser.java delete mode 100644 spring-batch-core/src/main/java/org/springframework/batch/core/jsr/configuration/support/SpringAutowiredAnnotationBeanPostProcessor.java delete mode 100644 spring-batch-core/src/main/java/org/springframework/batch/core/jsr/configuration/support/ThreadLocalClassloaderBeanPostProcessor.java delete mode 100644 spring-batch-core/src/main/java/org/springframework/batch/core/jsr/configuration/support/package-info.java delete mode 100644 spring-batch-core/src/main/java/org/springframework/batch/core/jsr/configuration/xml/BatchParser.java delete mode 100644 spring-batch-core/src/main/java/org/springframework/batch/core/jsr/configuration/xml/BatchletParser.java delete mode 100644 spring-batch-core/src/main/java/org/springframework/batch/core/jsr/configuration/xml/ChunkParser.java delete mode 100644 spring-batch-core/src/main/java/org/springframework/batch/core/jsr/configuration/xml/DecisionStepFactoryBean.java delete mode 100644 spring-batch-core/src/main/java/org/springframework/batch/core/jsr/configuration/xml/FlowParser.java delete mode 100644 spring-batch-core/src/main/java/org/springframework/batch/core/jsr/configuration/xml/JobFactoryBean.java delete mode 100644 spring-batch-core/src/main/java/org/springframework/batch/core/jsr/configuration/xml/JsrBeanDefinitionDocumentReader.java delete mode 100644 spring-batch-core/src/main/java/org/springframework/batch/core/jsr/configuration/xml/JsrDecisionParser.java delete mode 100644 spring-batch-core/src/main/java/org/springframework/batch/core/jsr/configuration/xml/JsrFlowFactoryBean.java delete mode 100644 spring-batch-core/src/main/java/org/springframework/batch/core/jsr/configuration/xml/JsrJobListenerFactoryBean.java delete mode 100644 spring-batch-core/src/main/java/org/springframework/batch/core/jsr/configuration/xml/JsrJobParser.java delete mode 100644 spring-batch-core/src/main/java/org/springframework/batch/core/jsr/configuration/xml/JsrNamespaceHandler.java delete mode 100644 spring-batch-core/src/main/java/org/springframework/batch/core/jsr/configuration/xml/JsrNamespacePostProcessor.java delete mode 100644 spring-batch-core/src/main/java/org/springframework/batch/core/jsr/configuration/xml/JsrNamespaceUtils.java delete mode 100644 spring-batch-core/src/main/java/org/springframework/batch/core/jsr/configuration/xml/JsrSplitParser.java delete mode 100644 spring-batch-core/src/main/java/org/springframework/batch/core/jsr/configuration/xml/JsrStepListenerFactoryBean.java delete mode 100644 spring-batch-core/src/main/java/org/springframework/batch/core/jsr/configuration/xml/JsrXmlApplicationContext.java delete mode 100644 spring-batch-core/src/main/java/org/springframework/batch/core/jsr/configuration/xml/ListenerParser.java delete mode 100644 spring-batch-core/src/main/java/org/springframework/batch/core/jsr/configuration/xml/PartitionParser.java delete mode 100644 spring-batch-core/src/main/java/org/springframework/batch/core/jsr/configuration/xml/PropertyParser.java delete mode 100644 spring-batch-core/src/main/java/org/springframework/batch/core/jsr/configuration/xml/StepFactoryBean.java delete mode 100644 spring-batch-core/src/main/java/org/springframework/batch/core/jsr/configuration/xml/StepParser.java delete mode 100644 spring-batch-core/src/main/java/org/springframework/batch/core/jsr/configuration/xml/package-info.java delete mode 100644 spring-batch-core/src/main/java/org/springframework/batch/core/jsr/job/JsrStepHandler.java delete mode 100644 spring-batch-core/src/main/java/org/springframework/batch/core/jsr/job/flow/JsrFlowExecutor.java delete mode 100644 spring-batch-core/src/main/java/org/springframework/batch/core/jsr/job/flow/JsrFlowJob.java delete mode 100644 spring-batch-core/src/main/java/org/springframework/batch/core/jsr/job/flow/package-info.java delete mode 100644 spring-batch-core/src/main/java/org/springframework/batch/core/jsr/job/flow/support/JsrFlow.java delete mode 100644 spring-batch-core/src/main/java/org/springframework/batch/core/jsr/job/flow/support/package-info.java delete mode 100644 spring-batch-core/src/main/java/org/springframework/batch/core/jsr/job/flow/support/state/JsrEndState.java delete mode 100644 spring-batch-core/src/main/java/org/springframework/batch/core/jsr/job/flow/support/state/JsrSplitState.java delete mode 100644 spring-batch-core/src/main/java/org/springframework/batch/core/jsr/job/flow/support/state/JsrStepState.java delete mode 100644 spring-batch-core/src/main/java/org/springframework/batch/core/jsr/job/flow/support/state/package-info.java delete mode 100644 spring-batch-core/src/main/java/org/springframework/batch/core/jsr/job/package-info.java delete mode 100644 spring-batch-core/src/main/java/org/springframework/batch/core/jsr/launch/JsrJobOperator.java delete mode 100644 spring-batch-core/src/main/java/org/springframework/batch/core/jsr/launch/package-info.java delete mode 100644 spring-batch-core/src/main/java/org/springframework/batch/core/jsr/launch/support/BatchPropertyBeanPostProcessor.java delete mode 100644 spring-batch-core/src/main/java/org/springframework/batch/core/jsr/package-info.java delete mode 100644 spring-batch-core/src/main/java/org/springframework/batch/core/jsr/partition/JsrPartitionHandler.java delete mode 100644 spring-batch-core/src/main/java/org/springframework/batch/core/jsr/partition/JsrStepExecutionSplitter.java delete mode 100644 spring-batch-core/src/main/java/org/springframework/batch/core/jsr/partition/PartitionCollectorAdapter.java delete mode 100644 spring-batch-core/src/main/java/org/springframework/batch/core/jsr/partition/package-info.java delete mode 100644 spring-batch-core/src/main/java/org/springframework/batch/core/jsr/partition/support/JsrBeanScopeBeanFactoryPostProcessor.java delete mode 100644 spring-batch-core/src/main/java/org/springframework/batch/core/jsr/partition/support/JsrStepExecutionAggregator.java delete mode 100644 spring-batch-core/src/main/java/org/springframework/batch/core/jsr/partition/support/package-info.java delete mode 100644 spring-batch-core/src/main/java/org/springframework/batch/core/jsr/step/BatchletStep.java delete mode 100644 spring-batch-core/src/main/java/org/springframework/batch/core/jsr/step/DecisionStep.java delete mode 100644 spring-batch-core/src/main/java/org/springframework/batch/core/jsr/step/PartitionStep.java delete mode 100644 spring-batch-core/src/main/java/org/springframework/batch/core/jsr/step/batchlet/BatchletAdapter.java delete mode 100644 spring-batch-core/src/main/java/org/springframework/batch/core/jsr/step/batchlet/package-info.java delete mode 100644 spring-batch-core/src/main/java/org/springframework/batch/core/jsr/step/builder/JsrBatchletStepBuilder.java delete mode 100644 spring-batch-core/src/main/java/org/springframework/batch/core/jsr/step/builder/JsrFaultTolerantStepBuilder.java delete mode 100644 spring-batch-core/src/main/java/org/springframework/batch/core/jsr/step/builder/JsrPartitionStepBuilder.java delete mode 100644 spring-batch-core/src/main/java/org/springframework/batch/core/jsr/step/builder/JsrSimpleStepBuilder.java delete mode 100644 spring-batch-core/src/main/java/org/springframework/batch/core/jsr/step/builder/package-info.java delete mode 100644 spring-batch-core/src/main/java/org/springframework/batch/core/jsr/step/item/JsrChunkProcessor.java delete mode 100644 spring-batch-core/src/main/java/org/springframework/batch/core/jsr/step/item/JsrChunkProvider.java delete mode 100644 spring-batch-core/src/main/java/org/springframework/batch/core/jsr/step/item/JsrFaultTolerantChunkProcessor.java delete mode 100644 spring-batch-core/src/main/java/org/springframework/batch/core/jsr/step/item/package-info.java delete mode 100644 spring-batch-core/src/main/java/org/springframework/batch/core/jsr/step/package-info.java delete mode 100644 spring-batch-core/src/main/java/org/springframework/batch/core/listener/CompositeRetryProcessListener.java delete mode 100644 spring-batch-core/src/main/java/org/springframework/batch/core/listener/CompositeRetryReadListener.java delete mode 100644 spring-batch-core/src/main/java/org/springframework/batch/core/listener/CompositeRetryWriteListener.java delete mode 100644 spring-batch-core/src/main/resources/META-INF/services/jakarta.batch.operations.JobOperator delete mode 100644 spring-batch-core/src/main/resources/beanRefContext.xml delete mode 100644 spring-batch-core/src/main/resources/jsrBaseContext.xml delete mode 100644 spring-batch-core/src/main/resources/org/springframework/batch/core/jsr/configuration/xml/batchXML_1_0.xsd delete mode 100755 spring-batch-core/src/main/resources/org/springframework/batch/core/jsr/configuration/xml/jobXML_1_0.xsd delete mode 100644 spring-batch-core/src/test/java/org/springframework/batch/core/jsr/AbstractJsrTestCase.java delete mode 100644 spring-batch-core/src/test/java/org/springframework/batch/core/jsr/ChunkListenerAdapterTests.java delete mode 100644 spring-batch-core/src/test/java/org/springframework/batch/core/jsr/ItemProcessListenerAdapterTests.java delete mode 100644 spring-batch-core/src/test/java/org/springframework/batch/core/jsr/ItemReadListenerAdapterTests.java delete mode 100644 spring-batch-core/src/test/java/org/springframework/batch/core/jsr/ItemWriteListenerAdapterTests.java delete mode 100644 spring-batch-core/src/test/java/org/springframework/batch/core/jsr/JobListenerAdapterTests.java delete mode 100644 spring-batch-core/src/test/java/org/springframework/batch/core/jsr/JsrJobContextFactoryBeanTests.java delete mode 100644 spring-batch-core/src/test/java/org/springframework/batch/core/jsr/JsrJobContextTests.java delete mode 100644 spring-batch-core/src/test/java/org/springframework/batch/core/jsr/JsrJobExecutionTests.java delete mode 100644 spring-batch-core/src/test/java/org/springframework/batch/core/jsr/JsrJobParametersConverterTests.java delete mode 100644 spring-batch-core/src/test/java/org/springframework/batch/core/jsr/JsrStepContextFactoryBeanTests.java delete mode 100644 spring-batch-core/src/test/java/org/springframework/batch/core/jsr/JsrStepContextTests.java delete mode 100644 spring-batch-core/src/test/java/org/springframework/batch/core/jsr/JsrStepExecutionTests.java delete mode 100644 spring-batch-core/src/test/java/org/springframework/batch/core/jsr/SimpleMetricTests.java delete mode 100644 spring-batch-core/src/test/java/org/springframework/batch/core/jsr/StepListenerAdapterTests.java delete mode 100644 spring-batch-core/src/test/java/org/springframework/batch/core/jsr/configuration/support/BatchPropertyContextTests.java delete mode 100644 spring-batch-core/src/test/java/org/springframework/batch/core/jsr/configuration/xml/BatchParserTests.java delete mode 100644 spring-batch-core/src/test/java/org/springframework/batch/core/jsr/configuration/xml/ChunkListenerParsingTests.java delete mode 100644 spring-batch-core/src/test/java/org/springframework/batch/core/jsr/configuration/xml/CountingItemProcessor.java delete mode 100644 spring-batch-core/src/test/java/org/springframework/batch/core/jsr/configuration/xml/CustomWiredJsrJobOperatorTests.java delete mode 100644 spring-batch-core/src/test/java/org/springframework/batch/core/jsr/configuration/xml/DecisionStepFactoryBeanTests.java delete mode 100644 spring-batch-core/src/test/java/org/springframework/batch/core/jsr/configuration/xml/ExceptionHandlingParsingTests.java delete mode 100644 spring-batch-core/src/test/java/org/springframework/batch/core/jsr/configuration/xml/FlowParserTests.java delete mode 100644 spring-batch-core/src/test/java/org/springframework/batch/core/jsr/configuration/xml/ItemListenerParsingTests.java delete mode 100644 spring-batch-core/src/test/java/org/springframework/batch/core/jsr/configuration/xml/ItemSkipParsingTests.java delete mode 100644 spring-batch-core/src/test/java/org/springframework/batch/core/jsr/configuration/xml/JobListenerParsingTests.java delete mode 100644 spring-batch-core/src/test/java/org/springframework/batch/core/jsr/configuration/xml/JobPropertySubstitutionTests.java delete mode 100644 spring-batch-core/src/test/java/org/springframework/batch/core/jsr/configuration/xml/JobPropertyTests.java delete mode 100644 spring-batch-core/src/test/java/org/springframework/batch/core/jsr/configuration/xml/JsrBeanDefinitionDocumentReaderTests.java delete mode 100644 spring-batch-core/src/test/java/org/springframework/batch/core/jsr/configuration/xml/JsrDecisionParsingTests.java delete mode 100644 spring-batch-core/src/test/java/org/springframework/batch/core/jsr/configuration/xml/JsrSplitParsingTests.java delete mode 100644 spring-batch-core/src/test/java/org/springframework/batch/core/jsr/configuration/xml/JsrXmlApplicationContextTests.java delete mode 100644 spring-batch-core/src/test/java/org/springframework/batch/core/jsr/configuration/xml/ListenerParserTests.java delete mode 100644 spring-batch-core/src/test/java/org/springframework/batch/core/jsr/configuration/xml/PartitionParserTests.java delete mode 100644 spring-batch-core/src/test/java/org/springframework/batch/core/jsr/configuration/xml/RetryListenerTests.java delete mode 100644 spring-batch-core/src/test/java/org/springframework/batch/core/jsr/configuration/xml/SimpleItemBasedJobParsingTests.java delete mode 100644 spring-batch-core/src/test/java/org/springframework/batch/core/jsr/configuration/xml/SimpleJobParsingTests.java delete mode 100644 spring-batch-core/src/test/java/org/springframework/batch/core/jsr/configuration/xml/StepListenerParsingTests.java delete mode 100644 spring-batch-core/src/test/java/org/springframework/batch/core/jsr/configuration/xml/ThreadLocalClassloaderBeanPostProcessorTests.java delete mode 100644 spring-batch-core/src/test/java/org/springframework/batch/core/jsr/configuration/xml/ThreadLocalClassloaderBeanPostProcessorTestsBatchlet.java delete mode 100644 spring-batch-core/src/test/java/org/springframework/batch/core/jsr/job/flow/JsrFlowJobTests.java delete mode 100644 spring-batch-core/src/test/java/org/springframework/batch/core/jsr/job/flow/support/JsrFlowTests.java delete mode 100644 spring-batch-core/src/test/java/org/springframework/batch/core/jsr/job/flow/support/state/JsrEndStateTests.java delete mode 100644 spring-batch-core/src/test/java/org/springframework/batch/core/jsr/launch/JsrJobOperatorTests.java delete mode 100644 spring-batch-core/src/test/java/org/springframework/batch/core/jsr/partition/JsrPartitionHandlerTests.java delete mode 100644 spring-batch-core/src/test/java/org/springframework/batch/core/jsr/partition/JsrStepExecutionSplitterTests.java delete mode 100644 spring-batch-core/src/test/java/org/springframework/batch/core/jsr/partition/PartitionCollectorAdapterTests.java delete mode 100644 spring-batch-core/src/test/java/org/springframework/batch/core/jsr/step/DecisionStepTests.java delete mode 100644 spring-batch-core/src/test/java/org/springframework/batch/core/jsr/step/SplitTests.java delete mode 100644 spring-batch-core/src/test/java/org/springframework/batch/core/jsr/step/batchlet/BatchletAdapterTests.java delete mode 100644 spring-batch-core/src/test/java/org/springframework/batch/core/jsr/step/batchlet/BatchletSupport.java delete mode 100644 spring-batch-core/src/test/java/org/springframework/batch/core/jsr/step/batchlet/FailingBatchlet.java delete mode 100644 spring-batch-core/src/test/java/org/springframework/batch/core/jsr/step/batchlet/RestartBatchlet.java delete mode 100644 spring-batch-core/src/test/java/org/springframework/batch/core/jsr/step/item/JsrChunkProcessorTests.java delete mode 100644 spring-batch-core/src/test/java/org/springframework/batch/core/jsr/step/item/JsrChunkProviderTests.java delete mode 100644 spring-batch-core/src/test/java/org/springframework/batch/core/jsr/step/item/JsrFaultTolerantChunkProcessorTests.java delete mode 100644 spring-batch-core/src/test/java/org/springframework/batch/core/jsr/step/listener/ExitStatusSettingStepListener.java delete mode 100644 spring-batch-core/src/test/resources/META-INF/alternativeJsrBaseContext.xml delete mode 100644 spring-batch-core/src/test/resources/META-INF/batch-jobs/DecisionStepTests-decisionAfterFlow-context.xml delete mode 100644 spring-batch-core/src/test/resources/META-INF/batch-jobs/DecisionStepTests-decisionAsFirstStep-context.xml delete mode 100644 spring-batch-core/src/test/resources/META-INF/batch-jobs/DecisionStepTests-decisionCustomExitStatus-context.xml delete mode 100644 spring-batch-core/src/test/resources/META-INF/batch-jobs/DecisionStepTests-decisionInvalidExitStatus-context.xml delete mode 100644 spring-batch-core/src/test/resources/META-INF/batch-jobs/DecisionStepTests-decisionThrowsException-context.xml delete mode 100644 spring-batch-core/src/test/resources/META-INF/batch-jobs/DecisionStepTests-decisionValidExitStatus-context.xml delete mode 100644 spring-batch-core/src/test/resources/META-INF/batch-jobs/DecisionStepTests-restart-context.xml delete mode 100644 spring-batch-core/src/test/resources/META-INF/batch-jobs/ExceptionHandlingParsingTests-context.xml delete mode 100644 spring-batch-core/src/test/resources/META-INF/batch-jobs/FlowParserTests-context.xml delete mode 100644 spring-batch-core/src/test/resources/META-INF/batch-jobs/FlowParserTestsStepGetsFailedTransitionWhenNextAttributePresent.xml delete mode 100644 spring-batch-core/src/test/resources/META-INF/batch-jobs/FlowParserTestsStepNoOverrideWhenNextAndFailedTransitionElementExists.xml delete mode 100644 spring-batch-core/src/test/resources/META-INF/batch-jobs/FlowParserTestsWildcardAndNextAttrJob.xml delete mode 100644 spring-batch-core/src/test/resources/META-INF/batch-jobs/ItemSkipParsingTests-context.xml delete mode 100644 spring-batch-core/src/test/resources/META-INF/batch-jobs/SplitTests-testDecisionAfterSplit-context.xml delete mode 100644 spring-batch-core/src/test/resources/META-INF/batch-jobs/SplitTests-testSplit-context.xml delete mode 100644 spring-batch-core/src/test/resources/META-INF/batch-jobs/contextClosingTests.xml delete mode 100644 spring-batch-core/src/test/resources/META-INF/batch-jobs/fullPartitionParserTests.xml delete mode 100644 spring-batch-core/src/test/resources/META-INF/batch-jobs/fullPartitionParserWithHardcodedPropertiesTests.xml delete mode 100644 spring-batch-core/src/test/resources/META-INF/batch-jobs/fullPartitionParserWithMapperPropertiesTests.xml delete mode 100644 spring-batch-core/src/test/resources/META-INF/batch-jobs/fullPartitionParserWithPropertiesTests.xml delete mode 100644 spring-batch-core/src/test/resources/META-INF/batch-jobs/jobWithEndTransition.xml delete mode 100644 spring-batch-core/src/test/resources/META-INF/batch-jobs/jsrJobOperatorTestBeanCreationException.xml delete mode 100644 spring-batch-core/src/test/resources/META-INF/batch-jobs/jsrJobOperatorTestJob.xml delete mode 100644 spring-batch-core/src/test/resources/META-INF/batch-jobs/jsrJobOperatorTestNonRestartableJob.xml delete mode 100644 spring-batch-core/src/test/resources/META-INF/batch-jobs/jsrJobOperatorTestRestartAbandonJob.xml delete mode 100644 spring-batch-core/src/test/resources/META-INF/batch-jobs/jsrJobOperatorTestRestartJob.xml delete mode 100644 spring-batch-core/src/test/resources/META-INF/batch-jobs/jsrJobPropertyTests.xml delete mode 100644 spring-batch-core/src/test/resources/META-INF/batch-jobs/jsrJobPropertyTestsContext.xml delete mode 100644 spring-batch-core/src/test/resources/META-INF/batch-jobs/jsrPartitionHandlerRestartWithOverrideJob.xml delete mode 100644 spring-batch-core/src/test/resources/META-INF/batch-jobs/jsrPropertyPreparseTestJob.xml delete mode 100644 spring-batch-core/src/test/resources/META-INF/batch-jobs/jsrSpringInstanceTests.xml delete mode 100644 spring-batch-core/src/test/resources/META-INF/batch-jobs/jsrUniqueInstanceTests.xml delete mode 100644 spring-batch-core/src/test/resources/META-INF/batch-jobs/longRunningJob.xml delete mode 100644 spring-batch-core/src/test/resources/META-INF/batch-jobs/partitionParserTestsBatchlet.xml delete mode 100644 spring-batch-core/src/test/resources/META-INF/batch-jobs/partitionParserTestsChunk.xml delete mode 100644 spring-batch-core/src/test/resources/META-INF/batch-jobs/threadLocalClassloaderBeanPostProcessorTestsJob.xml delete mode 100644 spring-batch-core/src/test/resources/META-INF/batch.xml delete mode 100644 spring-batch-core/src/test/resources/org/springframework/batch/core/jsr/configuration/xml/ChunkListenerParsingTests-context.xml delete mode 100644 spring-batch-core/src/test/resources/org/springframework/batch/core/jsr/configuration/xml/CustomWiredJsrJobOperatorTests-context.xml delete mode 100644 spring-batch-core/src/test/resources/org/springframework/batch/core/jsr/configuration/xml/ItemListenerParsingTests-context.xml delete mode 100644 spring-batch-core/src/test/resources/org/springframework/batch/core/jsr/configuration/xml/JobListenerParsingTests-context.xml delete mode 100644 spring-batch-core/src/test/resources/org/springframework/batch/core/jsr/configuration/xml/JobPropertySubstitutionTests-context.xml delete mode 100644 spring-batch-core/src/test/resources/org/springframework/batch/core/jsr/configuration/xml/JsrDecisionParsingTests-context.xml delete mode 100644 spring-batch-core/src/test/resources/org/springframework/batch/core/jsr/configuration/xml/RetryListenerTestBase-context.xml delete mode 100644 spring-batch-core/src/test/resources/org/springframework/batch/core/jsr/configuration/xml/RetryReadListenerExhausted.xml delete mode 100644 spring-batch-core/src/test/resources/org/springframework/batch/core/jsr/configuration/xml/RetryReadListenerListenerException.xml delete mode 100644 spring-batch-core/src/test/resources/org/springframework/batch/core/jsr/configuration/xml/RetryReadListenerRetryOnce.xml delete mode 100644 spring-batch-core/src/test/resources/org/springframework/batch/core/jsr/configuration/xml/SimpleItemBasedJobParsingTests-context.xml delete mode 100644 spring-batch-core/src/test/resources/org/springframework/batch/core/jsr/configuration/xml/SimpleJobParsingTests-context.xml delete mode 100644 spring-batch-core/src/test/resources/org/springframework/batch/core/jsr/configuration/xml/StepListenerParsingTests-context.xml delete mode 100644 spring-batch-core/src/test/resources/org/springframework/batch/core/jsr/configuration/xml/batch.xml delete mode 100644 spring-batch-core/src/test/resources/org/springframework/batch/core/jsr/configuration/xml/default-split-task-executor-context.xml delete mode 100644 spring-batch-core/src/test/resources/org/springframework/batch/core/jsr/configuration/xml/invalid-split-context.xml delete mode 100644 spring-batch-core/src/test/resources/org/springframework/batch/core/jsr/configuration/xml/override_batch.xml delete mode 100644 spring-batch-core/src/test/resources/org/springframework/batch/core/jsr/configuration/xml/user-specified-split-task-executor-context.xml delete mode 100644 spring-batch-docs/src/main/asciidoc/jsr-352.adoc delete mode 100644 spring-batch-infrastructure/src/main/java/org/springframework/batch/jsr/item/CheckpointSupport.java delete mode 100644 spring-batch-infrastructure/src/main/java/org/springframework/batch/jsr/item/ItemProcessorAdapter.java delete mode 100644 spring-batch-infrastructure/src/main/java/org/springframework/batch/jsr/item/ItemReaderAdapter.java delete mode 100644 spring-batch-infrastructure/src/main/java/org/springframework/batch/jsr/item/ItemWriterAdapter.java delete mode 100644 spring-batch-infrastructure/src/main/java/org/springframework/batch/jsr/item/package-info.java delete mode 100644 spring-batch-infrastructure/src/main/java/org/springframework/batch/jsr/repeat/CheckpointAlgorithmAdapter.java delete mode 100644 spring-batch-infrastructure/src/main/java/org/springframework/batch/jsr/repeat/package-info.java delete mode 100644 spring-batch-infrastructure/src/test/java/org/springframework/batch/jsr/item/ItemProcessorAdapterTests.java delete mode 100644 spring-batch-infrastructure/src/test/java/org/springframework/batch/jsr/item/ItemReaderAdapterTests.java delete mode 100644 spring-batch-infrastructure/src/test/java/org/springframework/batch/jsr/item/ItemWriterAdapterTests.java delete mode 100644 spring-batch-jsr352-tck/jsr352-tck-1.0/LICENSE.txt delete mode 100644 spring-batch-jsr352-tck/jsr352-tck-1.0/NOTICE.txt delete mode 100644 spring-batch-jsr352-tck/jsr352-tck-1.0/artifacts/jsr352-api-sigtest-java6.sig delete mode 100644 spring-batch-jsr352-tck/jsr352-tck-1.0/artifacts/jsr352-api-sigtest-java7.sig delete mode 100644 spring-batch-jsr352-tck/jsr352-tck-1.0/artifacts/jsr352-tck-SPI-javadoc.jar delete mode 100644 spring-batch-jsr352-tck/jsr352-tck-1.0/artifacts/jsr352-tck-SPI-src.jar delete mode 100644 spring-batch-jsr352-tck/jsr352-tck-1.0/artifacts/jsr352-tck-SPI.jar delete mode 100644 spring-batch-jsr352-tck/jsr352-tck-1.0/artifacts/jsr352-tck-impl-javadoc.jar delete mode 100644 spring-batch-jsr352-tck/jsr352-tck-1.0/artifacts/jsr352-tck-impl-src.jar delete mode 100644 spring-batch-jsr352-tck/jsr352-tck-1.0/artifacts/jsr352-tck-impl-suite.xml delete mode 100644 spring-batch-jsr352-tck/jsr352-tck-1.0/artifacts/jsr352-tck-impl.jar delete mode 100644 spring-batch-jsr352-tck/jsr352-tck-1.0/build.xml delete mode 100644 spring-batch-jsr352-tck/jsr352-tck-1.0/doc/jsr352-tck-reference-guide.pdf delete mode 100644 spring-batch-jsr352-tck/jsr352-tck-1.0/jsr352-tck.properties delete mode 100644 spring-batch-jsr352-tck/jsr352-tck-1.0/lib/javax.inject.jar delete mode 100644 spring-batch-jsr352-tck/jsr352-tck-1.0/lib/junit-4.10.jar delete mode 100644 spring-batch-jsr352-tck/jsr352-tck-1.0/lib/testng-6.8.jar delete mode 100644 spring-batch-jsr352-tck/jsr352-tck-1.0/lib/xmlunit-1.1.jar delete mode 100644 spring-batch-jsr352-tck/jsr352-tck-1.0/readme.txt delete mode 100644 spring-batch-jsr352-tck/pom.xml delete mode 100644 spring-batch-samples/src/main/java/org/springframework/batch/sample/jsr352/JsrSampleBatchlet.java delete mode 100644 spring-batch-samples/src/main/java/org/springframework/batch/sample/jsr352/JsrSampleItemProcessor.java delete mode 100644 spring-batch-samples/src/main/java/org/springframework/batch/sample/jsr352/JsrSampleItemReader.java delete mode 100644 spring-batch-samples/src/main/java/org/springframework/batch/sample/jsr352/JsrSampleItemWriter.java delete mode 100644 spring-batch-samples/src/main/java/org/springframework/batch/sample/jsr352/JsrSampleTasklet.java delete mode 100644 spring-batch-samples/src/main/resources/META-INF/batch-jobs/batchXmlConfigSample.xml delete mode 100644 spring-batch-samples/src/main/resources/META-INF/batch-jobs/inlineConfigSample.xml delete mode 100644 spring-batch-samples/src/main/resources/META-INF/batch-jobs/springConfigSample.xml delete mode 100644 spring-batch-samples/src/main/resources/META-INF/batch-jobs/springConfigSampleContext.xml delete mode 100644 spring-batch-samples/src/main/resources/META-INF/batch.xml delete mode 100644 spring-batch-samples/src/test/java/org/springframework/batch/sample/jsr352/JsrConfigSampleTests.java delete mode 100644 spring-batch-test/src/main/java/org/springframework/batch/test/JsrTestUtils.java diff --git a/.gitignore b/.gitignore index c64a0d4ec..e34622327 100644 --- a/.gitignore +++ b/.gitignore @@ -25,5 +25,4 @@ build out /.gradletasknamecache -/spring-batch-jsr352-tck/jsr352-tck-1.0/results/ **/*.flattened-pom.xml diff --git a/pom.xml b/pom.xml index 9f1b4cbaa..4d09f99d2 100644 --- a/pom.xml +++ b/pom.xml @@ -18,7 +18,6 @@ spring-batch-test spring-batch-integration spring-batch-samples - spring-batch-jsr352-tck spring-batch-docs @@ -72,7 +71,6 @@ 2.0.0 2.0.1 3.0.0 - 2.0.0 3.0.0 3.0.0 3.2.21 @@ -111,7 +109,6 @@ 9.2.1.jre8 1.3.1 1.16.2 - 1.0 1.5.0 diff --git a/spring-batch-core/pom.xml b/spring-batch-core/pom.xml index 28e240455..137ee944f 100644 --- a/spring-batch-core/pom.xml +++ b/spring-batch-core/pom.xml @@ -50,11 +50,6 @@ jackson-databind ${jackson.version} - - jakarta.batch - jakarta.batch-api - ${jakarta.batch-api.version} - io.micrometer micrometer-core @@ -256,12 +251,6 @@ ${jaxb-core.version} test - - com.ibm.jbatch - com.ibm.jbatch-tck-spi - ${com.ibm.jbatch-tck-spi.version} - test - jakarta.inject jakarta.inject-api diff --git a/spring-batch-core/src/main/java/org/springframework/batch/core/BatchStatus.java b/spring-batch-core/src/main/java/org/springframework/batch/core/BatchStatus.java index 05a4757a7..4bedd5af4 100644 --- a/spring-batch-core/src/main/java/org/springframework/batch/core/BatchStatus.java +++ b/spring-batch-core/src/main/java/org/springframework/batch/core/BatchStatus.java @@ -108,29 +108,6 @@ public enum BatchStatus { return this.compareTo(other) <= 0; } - /** - * Converts the current status to the JSR-352 equivalent - * - * @return JSR-352 equivalent to the current status - */ - public jakarta.batch.runtime.BatchStatus getBatchStatus() { - if(this == ABANDONED) { - return jakarta.batch.runtime.BatchStatus.ABANDONED; - } else if(this == COMPLETED) { - return jakarta.batch.runtime.BatchStatus.COMPLETED; - } else if(this == STARTED) { - return jakarta.batch.runtime.BatchStatus.STARTED; - } else if(this == STARTING) { - return jakarta.batch.runtime.BatchStatus.STARTING; - } else if(this == STOPPED) { - return jakarta.batch.runtime.BatchStatus.STOPPED; - } else if(this == STOPPING) { - return jakarta.batch.runtime.BatchStatus.STOPPING; - } else { - return jakarta.batch.runtime.BatchStatus.FAILED; - } - } - /** * Find a BatchStatus that matches the beginning of the given value. If no * match is found, return COMPLETED as the default because has is low diff --git a/spring-batch-core/src/main/java/org/springframework/batch/core/JobExecution.java b/spring-batch-core/src/main/java/org/springframework/batch/core/JobExecution.java index c49f2d38e..7a378018e 100644 --- a/spring-batch-core/src/main/java/org/springframework/batch/core/JobExecution.java +++ b/spring-batch-core/src/main/java/org/springframework/batch/core/JobExecution.java @@ -65,8 +65,6 @@ public class JobExecution extends Entity { private transient volatile List failureExceptions = new CopyOnWriteArrayList<>(); - private final String jobConfigurationName; - public JobExecution(JobExecution original) { this.jobParameters = original.getJobParameters(); this.jobInstance = original.getJobInstance(); @@ -79,7 +77,6 @@ public class JobExecution extends Entity { this.exitStatus = original.getExitStatus(); this.executionContext = original.getExecutionContext(); this.failureExceptions = original.getFailureExceptions(); - this.jobConfigurationName = original.getJobConfigurationName(); this.setId(original.getId()); this.setVersion(original.getVersion()); } @@ -91,22 +88,11 @@ public class JobExecution extends Entity { * @param job the job of which this execution is a part * @param id {@link Long} that represents the id for the JobExecution. * @param jobParameters {@link JobParameters} instance for this JobExecution. - * @param jobConfigurationName {@link String} instance that represents the - * job configuration name (used with JSR-352). */ - public JobExecution(JobInstance job, Long id, @Nullable JobParameters jobParameters, String jobConfigurationName) { + public JobExecution(JobInstance job, Long id, @Nullable JobParameters jobParameters) { super(id); this.jobInstance = job; this.jobParameters = jobParameters == null ? new JobParameters() : jobParameters; - this.jobConfigurationName = jobConfigurationName; - } - - public JobExecution(JobInstance job, JobParameters jobParameters, String jobConfigurationName) { - this(job, null, jobParameters, jobConfigurationName); - } - - public JobExecution(Long id, JobParameters jobParameters, String jobConfigurationName) { - this(null, id, jobParameters, jobConfigurationName); } /** @@ -116,15 +102,15 @@ public class JobExecution extends Entity { * @param jobParameters {@link JobParameters} instance for this JobExecution. */ public JobExecution(JobInstance job, JobParameters jobParameters) { - this(job, null, jobParameters, null); + this(job, null, jobParameters); } public JobExecution(Long id, JobParameters jobParameters) { - this(null, id, jobParameters, null); + this(null, id, jobParameters); } public JobExecution(Long id) { - this(null, id, null, null); + this(null, id, null); } public JobParameters getJobParameters() { @@ -283,10 +269,6 @@ public class JobExecution extends Entity { this.createTime = createTime; } - public String getJobConfigurationName() { - return this.jobConfigurationName; - } - /** * Package private method for re-constituting the step executions from * existing instances. diff --git a/spring-batch-core/src/main/java/org/springframework/batch/core/JobInstance.java b/spring-batch-core/src/main/java/org/springframework/batch/core/JobInstance.java index 5c9aeb46c..7ca252362 100644 --- a/spring-batch-core/src/main/java/org/springframework/batch/core/JobInstance.java +++ b/spring-batch-core/src/main/java/org/springframework/batch/core/JobInstance.java @@ -30,7 +30,6 @@ import org.springframework.util.Assert; * @see Job * @see JobParameters * @see JobExecution - * @see jakarta.batch.runtime.JobInstance * * @author Lucas Ward * @author Dave Syer @@ -40,7 +39,7 @@ import org.springframework.util.Assert; * */ @SuppressWarnings("serial") -public class JobInstance extends Entity implements jakarta.batch.runtime.JobInstance{ +public class JobInstance extends Entity { private final String jobName; @@ -53,7 +52,6 @@ public class JobInstance extends Entity implements jakarta.batch.runtime.JobInst /** * @return the job name. (Equivalent to getJob().getName()) */ - @Override public String getJobName() { return jobName; } @@ -63,7 +61,6 @@ public class JobInstance extends Entity implements jakarta.batch.runtime.JobInst return super.toString() + ", Job=[" + jobName + "]"; } - @Override public long getInstanceId() { return super.getId(); } diff --git a/spring-batch-core/src/main/java/org/springframework/batch/core/configuration/xml/StepParserStepFactoryBean.java b/spring-batch-core/src/main/java/org/springframework/batch/core/configuration/xml/StepParserStepFactoryBean.java index d418546c4..66f80e540 100644 --- a/spring-batch-core/src/main/java/org/springframework/batch/core/configuration/xml/StepParserStepFactoryBean.java +++ b/spring-batch-core/src/main/java/org/springframework/batch/core/configuration/xml/StepParserStepFactoryBean.java @@ -25,13 +25,6 @@ import java.util.Map; import java.util.Queue; import java.util.Set; import java.util.concurrent.locks.ReentrantLock; -import jakarta.batch.api.chunk.listener.RetryProcessListener; -import jakarta.batch.api.chunk.listener.RetryReadListener; -import jakarta.batch.api.chunk.listener.RetryWriteListener; -import jakarta.batch.api.chunk.listener.SkipProcessListener; -import jakarta.batch.api.chunk.listener.SkipReadListener; -import jakarta.batch.api.chunk.listener.SkipWriteListener; -import jakarta.batch.api.partition.PartitionCollector; import org.springframework.batch.core.ChunkListener; import org.springframework.batch.core.ItemProcessListener; @@ -43,16 +36,6 @@ import org.springframework.batch.core.Step; import org.springframework.batch.core.StepExecutionListener; import org.springframework.batch.core.StepListener; import org.springframework.batch.core.job.flow.Flow; -import org.springframework.batch.core.jsr.ChunkListenerAdapter; -import org.springframework.batch.core.jsr.ItemProcessListenerAdapter; -import org.springframework.batch.core.jsr.ItemReadListenerAdapter; -import org.springframework.batch.core.jsr.ItemWriteListenerAdapter; -import org.springframework.batch.core.jsr.RetryProcessListenerAdapter; -import org.springframework.batch.core.jsr.RetryReadListenerAdapter; -import org.springframework.batch.core.jsr.RetryWriteListenerAdapter; -import org.springframework.batch.core.jsr.SkipListenerAdapter; -import org.springframework.batch.core.jsr.StepListenerAdapter; -import org.springframework.batch.core.jsr.partition.PartitionCollectorAdapter; import org.springframework.batch.core.launch.JobLauncher; import org.springframework.batch.core.partition.PartitionHandler; import org.springframework.batch.core.partition.support.Partitioner; @@ -105,6 +88,7 @@ import org.springframework.util.Assert; * @author Josh Long * @author Michael Minella * @author Chris Schaefer + * @author Mahmoud Ben Hassine * @see SimpleStepFactoryBean * @see FaultTolerantStepFactoryBean * @see TaskletStep @@ -159,10 +143,6 @@ public class StepParserStepFactoryBean implements FactoryBean, BeanN private int gridSize = DEFAULT_GRID_SIZE; - private Queue partitionQueue; - - private ReentrantLock partitionLock; - // // Tasklet Elements // @@ -232,8 +212,6 @@ public class StepParserStepFactoryBean implements FactoryBean, BeanN private Set> skipListeners = new LinkedHashSet<>(); - private Set jsrRetryListeners = new LinkedHashSet<>(); - // // Additional // @@ -241,22 +219,6 @@ public class StepParserStepFactoryBean implements FactoryBean, BeanN private StepExecutionAggregator stepExecutionAggregator; - /** - * @param queue The {@link Queue} that is used for communication between {@link jakarta.batch.api.partition.PartitionCollector} and {@link jakarta.batch.api.partition.PartitionAnalyzer} - */ - public void setPartitionQueue(Queue queue) { - this.partitionQueue = queue; - } - - /** - * Used to coordinate access to the partition queue between the {@link jakarta.batch.api.partition.PartitionCollector} and {@link jakarta.batch.api.partition.AbstractPartitionAnalyzer} - * - * @param lock a lock that will be locked around accessing the partition queue - */ - public void setPartitionLock(ReentrantLock lock) { - this.partitionLock = lock; - } - /** * Create a {@link Step} from the configuration provided. * @@ -312,8 +274,6 @@ public class StepParserStepFactoryBean implements FactoryBean, BeanN for (Object listener : stepExecutionListeners) { if(listener instanceof StepExecutionListener) { builder.listener((StepExecutionListener) listener); - } else if(listener instanceof jakarta.batch.api.listener.StepListener) { - builder.listener(new StepListenerAdapter((jakarta.batch.api.listener.StepListener) listener)); } } } @@ -369,10 +329,6 @@ public class StepParserStepFactoryBean implements FactoryBean, BeanN builder.listener(listener); } - for (org.springframework.batch.core.jsr.RetryListener listener : jsrRetryListeners) { - builder.listener(listener); - } - registerItemListeners(builder); if (skipPolicy != null) { @@ -485,10 +441,6 @@ public class StepParserStepFactoryBean implements FactoryBean, BeanN enhanceCommonStep(builder); for (ChunkListener listener : chunkListeners) { - if(listener instanceof PartitionCollectorAdapter) { - ((PartitionCollectorAdapter) listener).setPartitionLock(partitionLock); - } - builder.listener(listener); } @@ -817,71 +769,26 @@ public class StepParserStepFactoryBean implements FactoryBean, BeanN SkipListener skipListener = (SkipListener) listener; skipListeners.add(skipListener); } - if(listener instanceof SkipReadListener) { - SkipListener skipListener = new SkipListenerAdapter<>((SkipReadListener) listener, null, null); - skipListeners.add(skipListener); - } - if(listener instanceof SkipProcessListener) { - SkipListener skipListener = new SkipListenerAdapter<>(null, (SkipProcessListener) listener, null); - skipListeners.add(skipListener); - } - if(listener instanceof SkipWriteListener) { - SkipListener skipListener = new SkipListenerAdapter<>(null, null, (SkipWriteListener) listener); - skipListeners.add(skipListener); - } if (listener instanceof StepExecutionListener) { StepExecutionListener stepExecutionListener = (StepExecutionListener) listener; stepExecutionListeners.add(stepExecutionListener); } - if(listener instanceof jakarta.batch.api.listener.StepListener) { - StepExecutionListener stepExecutionListener = new StepListenerAdapter((jakarta.batch.api.listener.StepListener) listener); - stepExecutionListeners.add(stepExecutionListener); - } if (listener instanceof ChunkListener) { ChunkListener chunkListener = (ChunkListener) listener; chunkListeners.add(chunkListener); } - if(listener instanceof jakarta.batch.api.chunk.listener.ChunkListener) { - ChunkListener chunkListener = new ChunkListenerAdapter((jakarta.batch.api.chunk.listener.ChunkListener) listener); - chunkListeners.add(chunkListener); - } if (listener instanceof ItemReadListener) { ItemReadListener readListener = (ItemReadListener) listener; readListeners.add(readListener); } - if(listener instanceof jakarta.batch.api.chunk.listener.ItemReadListener) { - ItemReadListener itemListener = new ItemReadListenerAdapter<>((jakarta.batch.api.chunk.listener.ItemReadListener) listener); - readListeners.add(itemListener); - } if (listener instanceof ItemWriteListener) { ItemWriteListener writeListener = (ItemWriteListener) listener; writeListeners.add(writeListener); } - if(listener instanceof jakarta.batch.api.chunk.listener.ItemWriteListener) { - ItemWriteListener itemListener = new ItemWriteListenerAdapter<>((jakarta.batch.api.chunk.listener.ItemWriteListener) listener); - writeListeners.add(itemListener); - } if (listener instanceof ItemProcessListener) { ItemProcessListener processListener = (ItemProcessListener) listener; processListeners.add(processListener); } - if(listener instanceof jakarta.batch.api.chunk.listener.ItemProcessListener) { - ItemProcessListener itemListener = new ItemProcessListenerAdapter<>((jakarta.batch.api.chunk.listener.ItemProcessListener) listener); - processListeners.add(itemListener); - } - if(listener instanceof RetryReadListener) { - jsrRetryListeners.add(new RetryReadListenerAdapter((RetryReadListener) listener)); - } - if(listener instanceof RetryProcessListener) { - jsrRetryListeners.add(new RetryProcessListenerAdapter((RetryProcessListener) listener)); - } - if(listener instanceof RetryWriteListener) { - jsrRetryListeners.add(new RetryWriteListenerAdapter((RetryWriteListener) listener)); - } - if(listener instanceof PartitionCollector) { - PartitionCollectorAdapter adapter = new PartitionCollectorAdapter(partitionQueue, (PartitionCollector) listener); - chunkListeners.add(adapter); - } } } diff --git a/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/ChunkListenerAdapter.java b/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/ChunkListenerAdapter.java deleted file mode 100644 index 5554c524f..000000000 --- a/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/ChunkListenerAdapter.java +++ /dev/null @@ -1,75 +0,0 @@ -/* - * Copyright 2013-2021 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.springframework.batch.core.jsr; - -import jakarta.batch.operations.BatchRuntimeException; - -import org.springframework.batch.core.ChunkListener; -import org.springframework.batch.core.scope.context.ChunkContext; -import org.springframework.batch.core.step.tasklet.UncheckedTransactionException; -import org.springframework.util.Assert; - -/** - * Wrapper class to adapt the {@link jakarta.batch.api.chunk.listener.ChunkListener} to - * a {@link ChunkListener}. - * - * @author Michael Minella - * @author Mahmoud Ben Hassine - * @since 3.0 - */ -public class ChunkListenerAdapter implements ChunkListener { - - private final jakarta.batch.api.chunk.listener.ChunkListener delegate; - - /** - * @param delegate to be called within the step chunk lifecycle - */ - public ChunkListenerAdapter(jakarta.batch.api.chunk.listener.ChunkListener delegate) { - Assert.notNull(delegate, "A ChunkListener is required"); - this.delegate = delegate; - } - - @Override - public void beforeChunk(ChunkContext context) { - try { - delegate.beforeChunk(); - } catch (Exception e) { - throw new UncheckedTransactionException(e); - } - } - - @Override - public void afterChunk(ChunkContext context) { - try { - delegate.afterChunk(); - } catch (Exception e) { - throw new UncheckedTransactionException(e); - } - } - - @Override - public void afterChunkError(ChunkContext context) { - if(context != null) { - try { - delegate.onError((Exception) context.getAttribute(ChunkListener.ROLLBACK_EXCEPTION_KEY)); - } catch (Exception e) { - throw new UncheckedTransactionException(e); - } - } else { - throw new BatchRuntimeException("Unable to retrieve causing exception due to null ChunkContext"); - } - } -} diff --git a/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/ItemProcessListenerAdapter.java b/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/ItemProcessListenerAdapter.java deleted file mode 100644 index f221cc0e9..000000000 --- a/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/ItemProcessListenerAdapter.java +++ /dev/null @@ -1,72 +0,0 @@ -/* - * Copyright 2013-2021 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.springframework.batch.core.jsr; - -import jakarta.batch.operations.BatchRuntimeException; - -import org.springframework.batch.core.ItemProcessListener; -import org.springframework.lang.Nullable; -import org.springframework.util.Assert; - -/** - * Wrapper class for {@link jakarta.batch.api.chunk.listener.ItemProcessListener} - * - * @author Michael Minella - * @author Mahmoud Ben Hassine - * - * @param input type - * @param output type - * @since 3.0 - */ -public class ItemProcessListenerAdapter implements ItemProcessListener { - - private jakarta.batch.api.chunk.listener.ItemProcessListener delegate; - - /** - * @param delegate to be called within the batch lifecycle - */ - public ItemProcessListenerAdapter(jakarta.batch.api.chunk.listener.ItemProcessListener delegate) { - Assert.notNull(delegate, "An ItemProcessListener is required"); - this.delegate = delegate; - } - - @Override - public void beforeProcess(T item) { - try { - delegate.beforeProcess(item); - } catch (Exception e) { - throw new BatchRuntimeException(e); - } - } - - @Override - public void afterProcess(T item, @Nullable S result) { - try { - delegate.afterProcess(item, result); - } catch (Exception e) { - throw new BatchRuntimeException(e); - } - } - - @Override - public void onProcessError(T item, Exception e) { - try { - delegate.onProcessError(item, e); - } catch (Exception e1) { - throw new BatchRuntimeException(e1); - } - } -} diff --git a/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/ItemReadListenerAdapter.java b/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/ItemReadListenerAdapter.java deleted file mode 100644 index a37155bed..000000000 --- a/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/ItemReadListenerAdapter.java +++ /dev/null @@ -1,69 +0,0 @@ -/* - * Copyright 2018-2021 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.springframework.batch.core.jsr; - -import jakarta.batch.operations.BatchRuntimeException; - -import org.springframework.batch.core.ItemReadListener; -import org.springframework.batch.item.ItemReader; -import org.springframework.util.Assert; - -/** - * Wrapper class to adapt the {@link jakarta.batch.api.chunk.listener.ItemReadListener} to - * a {@link ItemReadListener}. - * - * @author Michael Minella - * @author Mahmoud Ben Hassine - * - * @param type to be returned via a read on the associated {@link ItemReader} - * @since 3.0 - */ -public class ItemReadListenerAdapter implements ItemReadListener { - - private jakarta.batch.api.chunk.listener.ItemReadListener delegate; - - public ItemReadListenerAdapter(jakarta.batch.api.chunk.listener.ItemReadListener delegate) { - Assert.notNull(delegate, "An ItemReadListener is required"); - this.delegate = delegate; - } - - @Override - public void beforeRead() { - try { - delegate.beforeRead(); - } catch (Exception e) { - throw new BatchRuntimeException(e); - } - } - - @Override - public void afterRead(T item) { - try { - delegate.afterRead(item); - } catch (Exception e) { - throw new BatchRuntimeException(e); - } - } - - @Override - public void onReadError(Exception ex) { - try { - delegate.onReadError(ex); - } catch (Exception e) { - throw new BatchRuntimeException(e); - } - } -} diff --git a/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/ItemWriteListenerAdapter.java b/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/ItemWriteListenerAdapter.java deleted file mode 100644 index 37a6108d7..000000000 --- a/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/ItemWriteListenerAdapter.java +++ /dev/null @@ -1,74 +0,0 @@ -/* - * Copyright 2013-2021 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.springframework.batch.core.jsr; - -import java.util.List; - -import jakarta.batch.operations.BatchRuntimeException; - -import org.springframework.batch.core.ItemWriteListener; -import org.springframework.batch.item.ItemWriter; -import org.springframework.util.Assert; - -/** - * Wrapper class to adapt the {@link jakarta.batch.api.chunk.listener.ItemWriteListener} to - * a {@link ItemWriteListener}. - * - * @author Michael Minella - * @author Mahmoud Ben Hassine - * - * @param type to be written by the associated {@link ItemWriter} - * @since 3.0 - */ -public class ItemWriteListenerAdapter implements ItemWriteListener { - - private jakarta.batch.api.chunk.listener.ItemWriteListener delegate; - - public ItemWriteListenerAdapter(jakarta.batch.api.chunk.listener.ItemWriteListener delegate) { - Assert.notNull(delegate, "An ItemWriteListener is required"); - this.delegate = delegate; - } - - @SuppressWarnings("unchecked") - @Override - public void beforeWrite(List items) { - try { - delegate.beforeWrite((List) items); - } catch (Exception e) { - throw new BatchRuntimeException(e); - } - } - - @SuppressWarnings("unchecked") - @Override - public void afterWrite(List items) { - try { - delegate.afterWrite((List) items); - } catch (Exception e) { - throw new BatchRuntimeException(e); - } - } - - @SuppressWarnings("unchecked") - @Override - public void onWriteError(Exception exception, List items) { - try { - delegate.onWriteError((List) items, exception); - } catch (Exception e) { - throw new BatchRuntimeException(e); - } - } -} diff --git a/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/JobListenerAdapter.java b/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/JobListenerAdapter.java deleted file mode 100644 index a276e8613..000000000 --- a/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/JobListenerAdapter.java +++ /dev/null @@ -1,62 +0,0 @@ -/* - * Copyright 2013-2021 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.springframework.batch.core.jsr; - -import jakarta.batch.api.listener.JobListener; -import jakarta.batch.operations.BatchRuntimeException; - -import org.springframework.batch.core.JobExecution; -import org.springframework.batch.core.JobExecutionListener; -import org.springframework.util.Assert; - -/** - * Wrapper class to adapt the {@link JobListener} to - * a {@link JobExecutionListener}. - * - * @author Michael Minella - * @author Mahmoud Ben Hassine - * @since 3.0 - */ -public class JobListenerAdapter implements JobExecutionListener { - - private JobListener delegate; - - /** - * @param delegate to be delegated to - */ - public JobListenerAdapter(JobListener delegate) { - Assert.notNull(delegate, "Delegate is required"); - this.delegate = delegate; - } - - @Override - public void beforeJob(JobExecution jobExecution) { - try { - delegate.beforeJob(); - } catch (Exception e) { - throw new BatchRuntimeException(e); - } - } - - @Override - public void afterJob(JobExecution jobExecution) { - try { - delegate.afterJob(); - } catch (Exception e) { - throw new BatchRuntimeException(e); - } - } -} diff --git a/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/JsrJobContext.java b/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/JsrJobContext.java deleted file mode 100644 index 880e7211f..000000000 --- a/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/JsrJobContext.java +++ /dev/null @@ -1,126 +0,0 @@ -/* - * Copyright 2013-2021 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.springframework.batch.core.jsr; - -import java.util.Properties; -import java.util.concurrent.atomic.AtomicBoolean; - -import jakarta.batch.runtime.BatchStatus; - -import org.springframework.batch.core.ExitStatus; -import org.springframework.batch.core.JobExecution; -import org.springframework.lang.Nullable; -import org.springframework.util.Assert; - -/** - * Wrapper class to provide the {@link jakarta.batch.runtime.context.JobContext} functionality - * as specified in JSR-352. Wrapper delegates to the underlying {@link JobExecution} to - * obtain the related contextual information. - * - * @author Michael Minella - * @author Chris Schaefer - * @author Mahmoud Ben Hassine - * @since 3.0 - */ -public class JsrJobContext implements jakarta.batch.runtime.context.JobContext { - private Object transientUserData; - private Properties properties; - private JobExecution jobExecution; - private AtomicBoolean exitStatusSet = new AtomicBoolean(); - - public void setJobExecution(JobExecution jobExecution) { - Assert.notNull(jobExecution, "A JobExecution is required"); - this.jobExecution = jobExecution; - } - - public void setProperties(@Nullable Properties properties) { - this.properties = properties != null ? properties : new Properties(); - } - - /* (non-Javadoc) - * @see jakarta.batch.runtime.context.JobContext#getJobName() - */ - @Override - public String getJobName() { - return jobExecution.getJobInstance().getJobName(); - } - - /* (non-Javadoc) - * @see jakarta.batch.runtime.context.JobContext#getTransientUserData() - */ - @Override - public Object getTransientUserData() { - return transientUserData; - } - - /* (non-Javadoc) - * @see jakarta.batch.runtime.context.JobContext#setTransientUserData(java.lang.Object) - */ - @Override - public void setTransientUserData(Object data) { - transientUserData = data; - } - - /* (non-Javadoc) - * @see jakarta.batch.runtime.context.JobContext#getInstanceId() - */ - @Override - public long getInstanceId() { - return jobExecution.getJobInstance().getId(); - } - - /* (non-Javadoc) - * @see jakarta.batch.runtime.context.JobContext#getExecutionId() - */ - @Override - public long getExecutionId() { - return jobExecution.getId(); - } - - /* (non-Javadoc) - * @see jakarta.batch.runtime.context.JobContext#getProperties() - */ - @Override - public Properties getProperties() { - return properties; - } - - /* (non-Javadoc) - * @see jakarta.batch.runtime.context.JobContext#getBatchStatus() - */ - @Override - public BatchStatus getBatchStatus() { - return jobExecution.getStatus().getBatchStatus(); - } - - /* (non-Javadoc) - * @see jakarta.batch.runtime.context.JobContext#getExitStatus() - */ - @Override - @Nullable - public String getExitStatus() { - return exitStatusSet.get() ? jobExecution.getExitStatus().getExitCode() : null; - } - - /* (non-Javadoc) - * @see jakarta.batch.runtime.context.JobContext#setExitStatus(java.lang.String) - */ - @Override - public void setExitStatus(String status) { - jobExecution.setExitStatus(new ExitStatus(status)); - exitStatusSet.set(true); - } -} diff --git a/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/JsrJobContextFactoryBean.java b/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/JsrJobContextFactoryBean.java deleted file mode 100644 index 75b4c1111..000000000 --- a/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/JsrJobContextFactoryBean.java +++ /dev/null @@ -1,135 +0,0 @@ -/* - * Copyright 2013-2021 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.springframework.batch.core.jsr; - -import java.util.Properties; - -import jakarta.batch.runtime.StepExecution; -import jakarta.batch.runtime.context.JobContext; - -import org.springframework.batch.core.JobExecution; -import org.springframework.batch.core.jsr.configuration.support.BatchPropertyContext; -import org.springframework.batch.core.scope.context.StepSynchronizationManager; -import org.springframework.beans.factory.FactoryBean; -import org.springframework.beans.factory.FactoryBeanNotInitializedException; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.util.Assert; - -/** - * Provides a single {@link JobContext} for each thread in a running job. - * Subsequent calls to {@link FactoryBean#getObject()} on the same thread will - * return the same instance. The {@link JobContext} wraps a {@link JobExecution} - * which is obtained in one of two ways: - *
    - *
  • The current step scope (getting it from the current {@link StepExecution}
  • - *
  • The provided {@link JobExecution} via the {@link #setJobExecution(JobExecution)} - *
- * - * @author Michael Minella - * @author Mahmoud Ben Hassine - * @since 3.0 - */ -public class JsrJobContextFactoryBean implements FactoryBean { - - private JobExecution jobExecution; - @Autowired - private BatchPropertyContext propertyContext; - - private static final ThreadLocal contextHolder = new ThreadLocal<>(); - - /* (non-Javadoc) - * @see org.springframework.beans.factory.FactoryBean#getObject() - */ - @Override - public JobContext getObject() throws Exception { - return getCurrent(); - } - - /* (non-Javadoc) - * @see org.springframework.beans.factory.FactoryBean#getObjectType() - */ - @Override - public Class getObjectType() { - return JobContext.class; - } - - /* (non-Javadoc) - * @see org.springframework.beans.factory.FactoryBean#isSingleton() - */ - @Override - public boolean isSingleton() { - return false; - } - - /** - * Used to provide {@link JobContext} instances to batch artifacts that - * are not within the scope of a given step. - * - * @param jobExecution set the current {@link JobExecution} - */ - public void setJobExecution(JobExecution jobExecution) { - Assert.notNull(jobExecution, "A JobExecution is required"); - this.jobExecution = jobExecution; - } - - /** - * @param propertyContext the {@link BatchPropertyContext} to obtain job properties from - */ - public void setBatchPropertyContext(BatchPropertyContext propertyContext) { - this.propertyContext = propertyContext; - } - - /** - * Used to remove the {@link JobContext} for the current thread. Not used via - * normal processing but useful for testing. - */ - public void close() { - if(contextHolder.get() != null) { - contextHolder.remove(); - } - } - - private JobContext getCurrent() { - if(contextHolder.get() == null) { - JobExecution curJobExecution = null; - - if(StepSynchronizationManager.getContext() != null) { - curJobExecution = StepSynchronizationManager.getContext().getStepExecution().getJobExecution(); - } - - if(curJobExecution != null) { - jobExecution = curJobExecution; - } - - if(jobExecution == null) { - throw new FactoryBeanNotInitializedException("A JobExecution is required"); - } - - JsrJobContext jobContext = new JsrJobContext(); - jobContext.setJobExecution(jobExecution); - - if(propertyContext != null) { - jobContext.setProperties(propertyContext.getJobProperties()); - } else { - jobContext.setProperties(new Properties()); - } - - contextHolder.set(jobContext); - } - - return contextHolder.get(); - } -} diff --git a/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/JsrJobExecution.java b/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/JsrJobExecution.java deleted file mode 100644 index ab199aba7..000000000 --- a/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/JsrJobExecution.java +++ /dev/null @@ -1,123 +0,0 @@ -/* - * Copyright 2013-2021 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.springframework.batch.core.jsr; - -import java.util.Date; -import java.util.Properties; - -import jakarta.batch.runtime.BatchStatus; - -import org.springframework.batch.core.converter.JobParametersConverter; -import org.springframework.util.Assert; - -/** - * Wrapper class to adapt the {@link jakarta.batch.runtime.JobExecution} to - * a {@link org.springframework.batch.core.JobExecution}. - * - * @author Michael Minella - * @author Mahmoud Ben Hassine - * @since 3.0 - */ -public class JsrJobExecution implements jakarta.batch.runtime.JobExecution { - - private org.springframework.batch.core.JobExecution execution; - private JobParametersConverter parametersConverter; - - /** - * @param execution for all information to be delegated from. - * @param parametersConverter instance of {@link JobParametersConverter}. - */ - public JsrJobExecution(org.springframework.batch.core.JobExecution execution, JobParametersConverter parametersConverter) { - Assert.notNull(execution, "A JobExecution is required"); - this.execution = execution; - - this.parametersConverter = parametersConverter; - } - - /* (non-Javadoc) - * @see jakarta.batch.runtime.JobExecution#getExecutionId() - */ - @Override - public long getExecutionId() { - return this.execution.getId(); - } - - /* (non-Javadoc) - * @see jakarta.batch.runtime.JobExecution#getJobName() - */ - @Override - public String getJobName() { - return this.execution.getJobInstance().getJobName(); - } - - /* (non-Javadoc) - * @see jakarta.batch.runtime.JobExecution#getBatchStatus() - */ - @Override - public BatchStatus getBatchStatus() { - return this.execution.getStatus().getBatchStatus(); - } - - /* (non-Javadoc) - * @see jakarta.batch.runtime.JobExecution#getStartTime() - */ - @Override - public Date getStartTime() { - return this.execution.getStartTime(); - } - - /* (non-Javadoc) - * @see jakarta.batch.runtime.JobExecution#getEndTime() - */ - @Override - public Date getEndTime() { - return this.execution.getEndTime(); - } - - /* (non-Javadoc) - * @see jakarta.batch.runtime.JobExecution#getExitStatus() - */ - @Override - public String getExitStatus() { - return this.execution.getExitStatus().getExitCode(); - } - - /* (non-Javadoc) - * @see jakarta.batch.runtime.JobExecution#getCreateTime() - */ - @Override - public Date getCreateTime() { - return this.execution.getCreateTime(); - } - - /* (non-Javadoc) - * @see jakarta.batch.runtime.JobExecution#getLastUpdatedTime() - */ - @Override - public Date getLastUpdatedTime() { - return this.execution.getLastUpdated(); - } - - /* (non-Javadoc) - * @see jakarta.batch.runtime.JobExecution#getJobParameters() - */ - @Override - public Properties getJobParameters() { - Properties properties = parametersConverter.getProperties(this.execution.getJobParameters()); - properties.remove(JsrJobParametersConverter.JOB_RUN_ID); - return properties; - } -} diff --git a/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/JsrJobListenerMetaData.java b/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/JsrJobListenerMetaData.java deleted file mode 100644 index 5cb9d5d62..000000000 --- a/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/JsrJobListenerMetaData.java +++ /dev/null @@ -1,88 +0,0 @@ -/* - * Copyright 2013-2021 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.springframework.batch.core.jsr; - -import java.lang.annotation.Annotation; -import java.util.HashMap; -import java.util.Map; - -import jakarta.batch.api.listener.JobListener; - -import org.springframework.batch.core.listener.ListenerMetaData; - -/** - * Enumeration for {@link JobListener} meta data, which ties together the names - * of methods, their interfaces, annotation, and expected arguments. - * - * @author Michael Minella - * @author Mahmoud Ben Hassine - * @since 3.0 - */ -public enum JsrJobListenerMetaData implements ListenerMetaData { - BEFORE_JOB("beforeJob", "jsr-before-job"), - AFTER_JOB("afterJob", "jsr-after-job"); - - private final String methodName; - private final String propertyName; - private static final Map propertyMap; - - JsrJobListenerMetaData(String methodName, String propertyName) { - this.methodName = methodName; - this.propertyName = propertyName; - } - - static{ - propertyMap = new HashMap<>(); - for(JsrJobListenerMetaData metaData : values()){ - propertyMap.put(metaData.getPropertyName(), metaData); - } - } - - @Override - public String getMethodName() { - return methodName; - } - - @Override - public Class getAnnotation() { - return null; - } - - @Override - public Class getListenerInterface() { - return JobListener.class; - } - - @Override - public String getPropertyName() { - return propertyName; - } - - @Override - public Class[] getParamTypes() { - return new Class[0]; - } - - /** - * Return the relevant meta data for the provided property name. - * - * @param propertyName the name of the property to return. - * @return meta data with supplied property name, null if none exists. - */ - public static JsrJobListenerMetaData fromPropertyName(String propertyName){ - return propertyMap.get(propertyName); - } -} diff --git a/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/JsrJobParametersConverter.java b/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/JsrJobParametersConverter.java deleted file mode 100644 index 642b42fc4..000000000 --- a/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/JsrJobParametersConverter.java +++ /dev/null @@ -1,135 +0,0 @@ -/* - * Copyright 2013-2018 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.springframework.batch.core.jsr; - -import java.util.Map; -import java.util.Properties; - -import javax.sql.DataSource; - -import org.springframework.batch.core.JobParameter; -import org.springframework.batch.core.JobParameters; -import org.springframework.batch.core.JobParametersBuilder; -import org.springframework.batch.core.converter.JobParametersConverter; -import org.springframework.batch.core.repository.JobRepository; -import org.springframework.batch.core.repository.dao.AbstractJdbcBatchMetadataDao; -import org.springframework.batch.item.database.support.DataFieldMaxValueIncrementerFactory; -import org.springframework.batch.item.database.support.DefaultDataFieldMaxValueIncrementerFactory; -import org.springframework.batch.support.DatabaseType; -import org.springframework.beans.factory.InitializingBean; -import org.springframework.jdbc.support.incrementer.DataFieldMaxValueIncrementer; -import org.springframework.lang.Nullable; -import org.springframework.util.Assert; - -/** - * Provides default conversion methodology for JSR-352's implementation. - * - * Since Spring Batch uses job parameters as a way of identifying a job - * instance, this converter will add an additional identifying parameter if - * it does not exist already in the list. The id for the identifying parameter - * will come from the JOB_SEQ sequence as used to generate the unique ids - * for BATCH_JOB_INSTANCE records. - * - * @author Michael Minella - * @author Mahmoud Ben Hassine - * @since 3.0 - */ -public class JsrJobParametersConverter implements JobParametersConverter, InitializingBean { - - public static final String JOB_RUN_ID = "jsr_batch_run_id"; - public DataFieldMaxValueIncrementer incrementer; - public String tablePrefix = AbstractJdbcBatchMetadataDao.DEFAULT_TABLE_PREFIX; - public DataSource dataSource; - - /** - * Main constructor. - * - * @param dataSource used to gain access to the database to get unique ids. - */ - public JsrJobParametersConverter(DataSource dataSource) { - Assert.notNull(dataSource, "A DataSource is required"); - this.dataSource = dataSource; - } - - /** - * The table prefix used in the current {@link JobRepository} - * - * @param tablePrefix the table prefix used for the job repository tables - */ - public void setTablePrefix(String tablePrefix) { - this.tablePrefix = tablePrefix; - } - - @Override - public void afterPropertiesSet() throws Exception { - DataFieldMaxValueIncrementerFactory factory = new DefaultDataFieldMaxValueIncrementerFactory(dataSource); - - this.incrementer = factory.getIncrementer(DatabaseType.fromMetaData(dataSource).name(), tablePrefix + "JOB_SEQ"); - } - - /* (non-Javadoc) - * @see org.springframework.batch.core.converter.JobParametersConverter#getJobParameters(java.util.Properties) - */ - @Override - public JobParameters getJobParameters(@Nullable Properties properties) { - JobParametersBuilder builder = new JobParametersBuilder(); - boolean runIdFound = false; - - if(properties != null) { - for (Map.Entry curParameter : properties.entrySet()) { - if(curParameter.getValue() != null) { - if(curParameter.getKey().equals(JOB_RUN_ID)) { - runIdFound = true; - builder.addLong(curParameter.getKey().toString(), Long.valueOf((String) curParameter.getValue()), true); - } else { - builder.addString(curParameter.getKey().toString(), curParameter.getValue().toString(), false); - } - } - } - } - - if(!runIdFound) { - builder.addLong(JOB_RUN_ID, incrementer.nextLongValue()); - } - - return builder.toJobParameters(); - } - - /* (non-Javadoc) - * @see org.springframework.batch.core.converter.JobParametersConverter#getProperties(org.springframework.batch.core.JobParameters) - */ - @Override - public Properties getProperties(@Nullable JobParameters params) { - Properties properties = new Properties(); - boolean runIdFound = false; - - if(params != null) { - for(Map.Entry curParameter: params.getParameters().entrySet()) { - if(curParameter.getKey().equals(JOB_RUN_ID)) { - runIdFound = true; - } - - properties.setProperty(curParameter.getKey(), curParameter.getValue().getValue().toString()); - } - } - - if(!runIdFound) { - properties.setProperty(JOB_RUN_ID, String.valueOf(incrementer.nextLongValue())); - } - - return properties; - } -} diff --git a/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/JsrStepContext.java b/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/JsrStepContext.java deleted file mode 100644 index 10aeda150..000000000 --- a/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/JsrStepContext.java +++ /dev/null @@ -1,182 +0,0 @@ -/* - * Copyright 2013-2021 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.springframework.batch.core.jsr; - -import java.io.Serializable; -import java.util.List; -import java.util.Properties; -import java.util.concurrent.atomic.AtomicBoolean; - -import jakarta.batch.runtime.BatchStatus; -import jakarta.batch.runtime.Metric; - -import org.springframework.batch.core.ExitStatus; -import org.springframework.batch.core.StepExecution; -import org.springframework.batch.item.util.ExecutionContextUserSupport; -import org.springframework.util.Assert; -import org.springframework.util.ClassUtils; - -/** - * Wrapper class to provide the {@link jakarta.batch.runtime.context.StepContext} functionality - * as specified in JSR-352. Wrapper delegates to the underlying {@link StepExecution} to - * obtain the related contextual information. - * - * @author Michael Minella - * @author Chris Schaefer - * @author Mahmoud Ben Hassine - * @since 3.0 - */ -public class JsrStepContext implements jakarta.batch.runtime.context.StepContext { - private final static String PERSISTENT_USER_DATA_KEY = "batch_jsr_persistentUserData"; - private StepExecution stepExecution; - private Object transientUserData; - private Properties properties = new Properties(); - private AtomicBoolean exitStatusSet = new AtomicBoolean(); - private final ExecutionContextUserSupport executionContextUserSupport = new ExecutionContextUserSupport(ClassUtils.getShortName(JsrStepContext.class)); - - public JsrStepContext(StepExecution stepExecution, Properties properties) { - Assert.notNull(stepExecution, "A StepExecution is required"); - - this.stepExecution = stepExecution; - this.properties = properties; - } - - /* (non-Javadoc) - * @see jakarta.batch.runtime.context.StepContext#getStepName() - */ - @Override - public String getStepName() { - return stepExecution.getStepName(); - } - - /* (non-Javadoc) - * @see jakarta.batch.runtime.context.StepContext#getTransientUserData() - */ - @Override - public Object getTransientUserData() { - return transientUserData; - } - - /* (non-Javadoc) - * @see jakarta.batch.runtime.context.StepContext#setTransientUserData(java.lang.Object) - */ - @Override - public void setTransientUserData(Object data) { - this.transientUserData = data; - } - - /* (non-Javadoc) - * @see jakarta.batch.runtime.context.StepContext#getStepExecutionId() - */ - @Override - public long getStepExecutionId() { - return stepExecution.getId(); - } - - /* (non-Javadoc) - * @see jakarta.batch.runtime.context.StepContext#getProperties() - */ - @Override - public Properties getProperties() { - return properties != null ? properties : new Properties(); - } - - /* (non-Javadoc) - * @see jakarta.batch.runtime.context.StepContext#getPersistentUserData() - */ - @Override - public Serializable getPersistentUserData() { - return (Serializable) stepExecution.getExecutionContext().get(executionContextUserSupport.getKey(PERSISTENT_USER_DATA_KEY)); - } - - /* (non-Javadoc) - * @see jakarta.batch.runtime.context.StepContext#setPersistentUserData(java.io.Serializable) - */ - @Override - public void setPersistentUserData(Serializable data) { - stepExecution.getExecutionContext().put(executionContextUserSupport.getKey(PERSISTENT_USER_DATA_KEY), data); - } - - /* (non-Javadoc) - * @see jakarta.batch.runtime.context.StepContext#getBatchStatus() - */ - @Override - public BatchStatus getBatchStatus() { - return stepExecution.getStatus().getBatchStatus(); - } - - /* (non-Javadoc) - * @see jakarta.batch.runtime.context.StepContext#getExitStatus() - */ - @Override - public String getExitStatus() { - return exitStatusSet.get() ? stepExecution.getExitStatus().getExitCode() : null; - } - - /* (non-Javadoc) - * @see jakarta.batch.runtime.context.StepContext#setExitStatus(java.lang.String) - */ - @Override - public void setExitStatus(String status) { - stepExecution.setExitStatus(new ExitStatus(status)); - exitStatusSet.set(true); - } - - /** - * To support both JSR-352's requirement to return the most recent exception - * and Spring Batch's support for {@link Throwable}, this implementation will - * return the most recent exception in the underlying {@link StepExecution}'s - * failure exceptions list. If the exception there extends {@link Throwable} - * instead of {@link Exception}, it will be wrapped in an {@link Exception} and - * then returned. - * - * @see jakarta.batch.runtime.context.StepContext#getException() - */ - @Override - public Exception getException() { - List failureExceptions = stepExecution.getFailureExceptions(); - if(failureExceptions == null || failureExceptions.isEmpty()) { - return null; - } else { - Throwable t = failureExceptions.get(failureExceptions.size() - 1); - - if(t instanceof Exception) { - return (Exception) t; - } else { - return new Exception(t); - } - } - } - - /* (non-Javadoc) - * @see jakarta.batch.runtime.context.StepContext#getMetrics() - */ - @Override - public Metric[] getMetrics() { - Metric[] metrics = new Metric[8]; - - metrics[0] = new SimpleMetric(jakarta.batch.runtime.Metric.MetricType.COMMIT_COUNT, stepExecution.getCommitCount()); - metrics[1] = new SimpleMetric(jakarta.batch.runtime.Metric.MetricType.FILTER_COUNT, stepExecution.getFilterCount()); - metrics[2] = new SimpleMetric(jakarta.batch.runtime.Metric.MetricType.PROCESS_SKIP_COUNT, stepExecution.getProcessSkipCount()); - metrics[3] = new SimpleMetric(jakarta.batch.runtime.Metric.MetricType.READ_COUNT, stepExecution.getReadCount()); - metrics[4] = new SimpleMetric(jakarta.batch.runtime.Metric.MetricType.READ_SKIP_COUNT, stepExecution.getReadSkipCount()); - metrics[5] = new SimpleMetric(jakarta.batch.runtime.Metric.MetricType.ROLLBACK_COUNT, stepExecution.getRollbackCount()); - metrics[6] = new SimpleMetric(jakarta.batch.runtime.Metric.MetricType.WRITE_COUNT, stepExecution.getWriteCount()); - metrics[7] = new SimpleMetric(jakarta.batch.runtime.Metric.MetricType.WRITE_SKIP_COUNT, stepExecution.getWriteSkipCount()); - - return metrics; - } -} diff --git a/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/JsrStepContextFactoryBean.java b/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/JsrStepContextFactoryBean.java deleted file mode 100644 index 20eac2e83..000000000 --- a/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/JsrStepContextFactoryBean.java +++ /dev/null @@ -1,114 +0,0 @@ -/* - * Copyright 2013-2021 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.springframework.batch.core.jsr; - -import java.util.Properties; - -import jakarta.batch.runtime.context.StepContext; - -import org.springframework.batch.core.jsr.configuration.support.BatchPropertyContext; -import org.springframework.batch.core.scope.context.StepSynchronizationManager; -import org.springframework.beans.factory.FactoryBean; -import org.springframework.beans.factory.FactoryBeanNotInitializedException; -import org.springframework.beans.factory.InitializingBean; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.util.Assert; - -/** - * {@link FactoryBean} implementation used to create {@link jakarta.batch.runtime.context.StepContext} - * instances within the step scope. - * - * @author Michael Minella - * @author Chris Schaefer - * @author Mahmoud Ben Hassine - * @since 3.0 - */ -public class JsrStepContextFactoryBean implements FactoryBean, InitializingBean { - @Autowired - private BatchPropertyContext batchPropertyContext; - - private static final ThreadLocal contextHolder = new ThreadLocal<>(); - - protected void setBatchPropertyContext(BatchPropertyContext batchPropertyContext) { - this.batchPropertyContext = batchPropertyContext; - } - - /* (non-Javadoc) - * @see org.springframework.beans.factory.FactoryBean#getObject() - */ - @Override - public StepContext getObject() throws Exception { - return getCurrent(); - } - - private jakarta.batch.runtime.context.StepContext getCurrent() { - org.springframework.batch.core.StepExecution curStepExecution = null; - - if(StepSynchronizationManager.getContext() != null) { - curStepExecution = StepSynchronizationManager.getContext().getStepExecution(); - } - - if(curStepExecution == null) { - throw new FactoryBeanNotInitializedException("A StepExecution is required"); - } - - StepContext context = contextHolder.get(); - - // If the current context applies to the current step, use it - if(context != null && context.getStepExecutionId() == curStepExecution.getId()) { - return context; - } - - Properties stepProperties = batchPropertyContext.getStepProperties(curStepExecution.getStepName()); - - if(stepProperties != null) { - context = new JsrStepContext(curStepExecution, stepProperties); - } else { - context = new JsrStepContext(curStepExecution, new Properties()); - } - - contextHolder.set(context); - - return context; - } - - /* (non-Javadoc) - * @see org.springframework.beans.factory.FactoryBean#getObjectType() - */ - @Override - public Class getObjectType() { - return StepContext.class; - } - - /* (non-Javadoc) - * @see org.springframework.beans.factory.FactoryBean#isSingleton() - */ - @Override - public boolean isSingleton() { - return false; - } - - @Override - public void afterPropertiesSet() throws Exception { - Assert.notNull(batchPropertyContext, "BatchPropertyContext is required"); - } - - public void remove() { - if(contextHolder.get() != null) { - contextHolder.remove(); - } - } -} diff --git a/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/JsrStepExecution.java b/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/JsrStepExecution.java deleted file mode 100644 index 2ce6af242..000000000 --- a/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/JsrStepExecution.java +++ /dev/null @@ -1,135 +0,0 @@ -/* - * Copyright 2013-2021 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.springframework.batch.core.jsr; - -import java.io.Serializable; -import java.util.Date; - -import jakarta.batch.runtime.BatchStatus; -import jakarta.batch.runtime.Metric; - -import org.springframework.batch.core.ExitStatus; -import org.springframework.batch.item.util.ExecutionContextUserSupport; -import org.springframework.util.Assert; -import org.springframework.util.ClassUtils; - -/** - * Implementation of the JsrStepExecution as defined in JSR-352. This implementation - * wraps a {@link org.springframework.batch.core.StepExecution} as it's source of - * data. - * - * @author Michael Minella - * @author Mahmoud Ben Hassine - * @since 3.0 - */ -public class JsrStepExecution implements jakarta.batch.runtime.StepExecution{ - - private final static String PERSISTENT_USER_DATA_KEY = "batch_jsr_persistentUserData"; - private final org.springframework.batch.core.StepExecution stepExecution; - // The API for the persistent user data is handled by the JsrStepContext which is why the name here is based on the JsrStepContext. - private final ExecutionContextUserSupport executionContextUserSupport = new ExecutionContextUserSupport(ClassUtils.getShortName(JsrStepContext.class)); - - /** - * @param stepExecution The {@link org.springframework.batch.core.StepExecution} used - * as the basis for the data. - */ - public JsrStepExecution(org.springframework.batch.core.StepExecution stepExecution) { - Assert.notNull(stepExecution, "A StepExecution is required"); - - this.stepExecution = stepExecution; - } - - /* (non-Javadoc) - * @see jakarta.batch.runtime.JsrStepExecution#getStepExecutionId() - */ - @Override - public long getStepExecutionId() { - return stepExecution.getId(); - } - - /* (non-Javadoc) - * @see jakarta.batch.runtime.JsrStepExecution#getStepName() - */ - @Override - public String getStepName() { - return stepExecution.getStepName(); - } - - /* (non-Javadoc) - * @see jakarta.batch.runtime.JsrStepExecution#getBatchStatus() - */ - @Override - public BatchStatus getBatchStatus() { - return stepExecution.getStatus().getBatchStatus(); - } - - /* (non-Javadoc) - * @see jakarta.batch.runtime.JsrStepExecution#getStartTime() - */ - @Override - public Date getStartTime() { - return stepExecution.getStartTime(); - } - - /* (non-Javadoc) - * @see jakarta.batch.runtime.JsrStepExecution#getEndTime() - */ - @Override - public Date getEndTime() { - return stepExecution.getEndTime(); - } - - /* (non-Javadoc) - * @see jakarta.batch.runtime.JsrStepExecution#getExitStatus() - */ - @Override - public String getExitStatus() { - ExitStatus status = stepExecution.getExitStatus(); - - if(status == null) { - return null; - } else { - return status.getExitCode(); - } - } - - /* (non-Javadoc) - * @see jakarta.batch.runtime.JsrStepExecution#getPersistentUserData() - */ - @Override - public Serializable getPersistentUserData() { - return (Serializable) stepExecution.getExecutionContext().get(executionContextUserSupport.getKey(PERSISTENT_USER_DATA_KEY)); - } - - /* (non-Javadoc) - * @see jakarta.batch.runtime.JsrStepExecution#getMetrics() - */ - @Override - public Metric[] getMetrics() { - Metric[] metrics = new Metric[8]; - - metrics[0] = new SimpleMetric(jakarta.batch.runtime.Metric.MetricType.COMMIT_COUNT, stepExecution.getCommitCount()); - metrics[1] = new SimpleMetric(jakarta.batch.runtime.Metric.MetricType.FILTER_COUNT, stepExecution.getFilterCount()); - metrics[2] = new SimpleMetric(jakarta.batch.runtime.Metric.MetricType.PROCESS_SKIP_COUNT, stepExecution.getProcessSkipCount()); - metrics[3] = new SimpleMetric(jakarta.batch.runtime.Metric.MetricType.READ_COUNT, stepExecution.getReadCount()); - metrics[4] = new SimpleMetric(jakarta.batch.runtime.Metric.MetricType.READ_SKIP_COUNT, stepExecution.getReadSkipCount()); - metrics[5] = new SimpleMetric(jakarta.batch.runtime.Metric.MetricType.ROLLBACK_COUNT, stepExecution.getRollbackCount()); - metrics[6] = new SimpleMetric(jakarta.batch.runtime.Metric.MetricType.WRITE_COUNT, stepExecution.getWriteCount()); - metrics[7] = new SimpleMetric(jakarta.batch.runtime.Metric.MetricType.WRITE_SKIP_COUNT, stepExecution.getWriteSkipCount()); - - return metrics; - } -} diff --git a/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/JsrStepListenerMetaData.java b/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/JsrStepListenerMetaData.java deleted file mode 100644 index b9578815f..000000000 --- a/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/JsrStepListenerMetaData.java +++ /dev/null @@ -1,124 +0,0 @@ -/* - * Copyright 2013-2021 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.springframework.batch.core.jsr; - -import java.lang.annotation.Annotation; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -import jakarta.batch.api.chunk.listener.ChunkListener; -import jakarta.batch.api.chunk.listener.ItemProcessListener; -import jakarta.batch.api.chunk.listener.ItemReadListener; -import jakarta.batch.api.chunk.listener.ItemWriteListener; -import jakarta.batch.api.chunk.listener.RetryProcessListener; -import jakarta.batch.api.chunk.listener.RetryReadListener; -import jakarta.batch.api.chunk.listener.RetryWriteListener; -import jakarta.batch.api.chunk.listener.SkipProcessListener; -import jakarta.batch.api.chunk.listener.SkipReadListener; -import jakarta.batch.api.chunk.listener.SkipWriteListener; -import jakarta.batch.api.listener.StepListener; - -import org.springframework.batch.core.listener.ListenerMetaData; -import org.springframework.batch.core.listener.StepListenerFactoryBean; - -/** - * Enumeration for the JSR specific {@link StepListener} meta data, which - * ties together the names of methods, their interfaces, and expected arguments. - * - * @author Michael Minella - * @author Chris Schaefer - * @author Mahmoud Ben Hassine - * @since 3.0 - * @see StepListenerFactoryBean - */ -public enum JsrStepListenerMetaData implements ListenerMetaData { - BEFORE_STEP("beforeStep", "jsr-before-step", StepListener.class), - AFTER_STEP("afterStep", "jsr-after-step", StepListener.class), - BEFORE_CHUNK("beforeChunk", "jsr-before-chunk", ChunkListener.class), - AFTER_CHUNK("afterChunk", "jsr-after-chunk", ChunkListener.class), - AFTER_CHUNK_ERROR("onError", "jsr-after-chunk-error", ChunkListener.class, Exception.class), - BEFORE_READ("beforeRead", "jsr-before-read", ItemReadListener.class), - AFTER_READ("afterRead", "jsr-after-read", ItemReadListener.class, Object.class), - AFTER_READ_ERROR("onReadError", "jsr-after-read-error", ItemReadListener.class, Exception.class), - BEFORE_PROCESS("beforeProcess", "jsr-before-process", ItemProcessListener.class, Object.class), - AFTER_PROCESS("afterProcess", "jsr-after-process", ItemProcessListener.class, Object.class, Object.class), - AFTER_PROCESS_ERROR("onProcessError", "jsr-after-process-error", ItemProcessListener.class, Object.class, Exception.class), - BEFORE_WRITE("beforeWrite", "jsr-before-write", ItemWriteListener.class, List.class), - AFTER_WRITE("afterWrite", "jsr-after-write", ItemWriteListener.class, List.class), - AFTER_WRITE_ERROR("onWriteError", "jsr-after-write-error", ItemWriteListener.class, List.class, Exception.class), - SKIP_READ("onSkipReadItem", "jsr-skip-read", SkipReadListener.class, Exception.class), - SKIP_PROCESS("onSkipProcessItem", "jsr-skip-process", SkipProcessListener.class, Object.class, Exception.class), - SKIP_WRITE("onSkipWriteItem", "jsr-skip-write", SkipWriteListener.class, List.class, Exception.class), - RETRY_READ("onRetryReadException", "jsr-retry-read", RetryReadListener.class, Exception.class), - RETRY_PROCESS("onRetryProcessException", "jsr-retry-process", RetryProcessListener.class, Object.class, Exception.class), - RETRY_WRITE("onRetryWriteException", "jsr-retry-write", RetryWriteListener.class, List.class, Exception.class); - - private final String methodName; - private final String propertyName; - private final Class listenerInterface; - private static final Map propertyMap; - private final Class[] paramTypes; - - JsrStepListenerMetaData(String methodName, String propertyName, Class listenerInterface, Class... paramTypes) { - this.propertyName = propertyName; - this.methodName = methodName; - this.listenerInterface = listenerInterface; - this.paramTypes = paramTypes; - } - - static{ - propertyMap = new HashMap<>(); - for(JsrStepListenerMetaData metaData : values()){ - propertyMap.put(metaData.getPropertyName(), metaData); - } - } - - @Override - public String getMethodName() { - return methodName; - } - - @Override - public Class getAnnotation() { - return null; - } - - @Override - public Class getListenerInterface() { - return listenerInterface; - } - - @Override - public Class[] getParamTypes() { - return paramTypes; - } - - @Override - public String getPropertyName() { - return propertyName; - } - - /** - * Return the relevant meta data for the provided property name. - * - * @param propertyName the name of the property to return. - * @return meta data with supplied property name, null if none exists. - */ - public static JsrStepListenerMetaData fromPropertyName(String propertyName){ - return propertyMap.get(propertyName); - } -} diff --git a/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/RetryListener.java b/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/RetryListener.java deleted file mode 100644 index 6527cd524..000000000 --- a/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/RetryListener.java +++ /dev/null @@ -1,30 +0,0 @@ -/* - * Copyright 2013 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.springframework.batch.core.jsr; - -import org.springframework.batch.core.StepListener; - -/** - *

- * Interface used internally by RetryListener adapters to provide consistent naming. - * Extends {@link StepListener} to allow registration with existing listener methods. - *

- * - * @author Chris Schaefer - * @since 3.0 - */ -public interface RetryListener extends StepListener { -} diff --git a/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/RetryProcessListenerAdapter.java b/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/RetryProcessListenerAdapter.java deleted file mode 100644 index b41925c00..000000000 --- a/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/RetryProcessListenerAdapter.java +++ /dev/null @@ -1,45 +0,0 @@ -/* - * Copyright 2013-2021 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.springframework.batch.core.jsr; - -import jakarta.batch.api.chunk.listener.RetryProcessListener; -import jakarta.batch.operations.BatchRuntimeException; - -/** - *

- * Wrapper class to adapt a {@link RetryProcessListener} to a {@link RetryListener}. - *

- * - * @author Chris Schaefer - * @author Mahmoud Ben Hassine - * @since 3.0 - */ -public class RetryProcessListenerAdapter implements RetryListener, RetryProcessListener { - private RetryProcessListener retryProcessListener; - - public RetryProcessListenerAdapter(RetryProcessListener retryProcessListener) { - this.retryProcessListener = retryProcessListener; - } - - @Override - public void onRetryProcessException(Object item, Exception ex) throws Exception { - try { - retryProcessListener.onRetryProcessException(item, ex); - } catch (Exception e) { - throw new BatchRuntimeException(e); - } - } -} diff --git a/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/RetryReadListenerAdapter.java b/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/RetryReadListenerAdapter.java deleted file mode 100644 index 8054855d8..000000000 --- a/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/RetryReadListenerAdapter.java +++ /dev/null @@ -1,45 +0,0 @@ -/* - * Copyright 2013-2021 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.springframework.batch.core.jsr; - -import jakarta.batch.api.chunk.listener.RetryReadListener; -import jakarta.batch.operations.BatchRuntimeException; - -/** - *

- * Wrapper class to adapt a {@link RetryReadListener} to a {@link RetryListener}. - *

- * - * @author Chris Schaefer - * @author Mahmoud Ben Hassine - * @since 3.0 - */ -public class RetryReadListenerAdapter implements RetryListener, RetryReadListener { - private RetryReadListener retryReadListener; - - public RetryReadListenerAdapter(RetryReadListener retryReadListener) { - this.retryReadListener = retryReadListener; - } - - @Override - public void onRetryReadException(Exception ex) throws Exception { - try { - retryReadListener.onRetryReadException(ex); - } catch (Exception e) { - throw new BatchRuntimeException(e); - } - } -} diff --git a/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/RetryWriteListenerAdapter.java b/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/RetryWriteListenerAdapter.java deleted file mode 100644 index dc434117a..000000000 --- a/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/RetryWriteListenerAdapter.java +++ /dev/null @@ -1,46 +0,0 @@ -/* - * Copyright 2013-2021 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.springframework.batch.core.jsr; - -import java.util.List; -import jakarta.batch.api.chunk.listener.RetryWriteListener; -import jakarta.batch.operations.BatchRuntimeException; - -/** - *

- * Wrapper class to adapt a {@link RetryWriteListener} to a {@link RetryListener}. - *

- * - * @author Chris Schaefer - * @author Mahmoud Ben Hassine - * @since 3.0 - */ -public class RetryWriteListenerAdapter implements RetryListener, RetryWriteListener { - private RetryWriteListener retryWriteListener; - - public RetryWriteListenerAdapter(RetryWriteListener retryWriteListener) { - this.retryWriteListener = retryWriteListener; - } - - @Override - public void onRetryWriteException(List items, Exception ex) throws Exception { - try { - retryWriteListener.onRetryWriteException(items, ex); - } catch (Exception e) { - throw new BatchRuntimeException(e); - } - } -} diff --git a/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/SimpleMetric.java b/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/SimpleMetric.java deleted file mode 100644 index bbb005e34..000000000 --- a/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/SimpleMetric.java +++ /dev/null @@ -1,64 +0,0 @@ -/* - * Copyright 2013-2021 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.springframework.batch.core.jsr; - -import jakarta.batch.runtime.Metric; - -import org.springframework.util.Assert; - -/** - * Simple implementation of the {@link Metric} interface as required by JSR-352. - * - * @author Michael Minella - * @author Mahmoud Ben Hassine - * @since 3.0 - */ -public class SimpleMetric implements Metric { - - private final MetricType type; - private final long value; - - /** - * Basic constructor. The attributes are immutable so this class is - * thread-safe. - * - * @param type as defined by JSR-352 - * @param value the count of the times the related type has occurred. - */ - public SimpleMetric(MetricType type, long value) { - Assert.notNull(type, "A MetricType is required"); - - this.type = type; - this.value = value; - } - - /* (non-Javadoc) - * @see jakarta.batch.runtime.Metric#getType() - */ - @Override - public MetricType getType() { - return type; - } - - /* (non-Javadoc) - * @see jakarta.batch.runtime.Metric#getValue() - */ - @Override - public long getValue() { - return value; - } - -} diff --git a/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/SkipListenerAdapter.java b/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/SkipListenerAdapter.java deleted file mode 100644 index c947bd4d4..000000000 --- a/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/SkipListenerAdapter.java +++ /dev/null @@ -1,75 +0,0 @@ -/* - * Copyright 2013-2021 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.springframework.batch.core.jsr; - -import jakarta.batch.api.chunk.listener.SkipProcessListener; -import jakarta.batch.api.chunk.listener.SkipReadListener; -import jakarta.batch.api.chunk.listener.SkipWriteListener; -import jakarta.batch.operations.BatchRuntimeException; - -import org.springframework.batch.core.SkipListener; - -import java.util.List; - -public class SkipListenerAdapter implements SkipListener { - private final SkipReadListener skipReadDelegate; - private final SkipProcessListener skipProcessDelegate; - private final SkipWriteListener skipWriteDelegate; - - public SkipListenerAdapter(SkipReadListener skipReadDelegate, SkipProcessListener skipProcessDelegate, SkipWriteListener skipWriteDelegate) { - this.skipReadDelegate = skipReadDelegate; - this.skipProcessDelegate = skipProcessDelegate; - this.skipWriteDelegate = skipWriteDelegate; - } - - @Override - public void onSkipInRead(Throwable t) { - if(skipReadDelegate != null && t instanceof Exception) { - try { - skipReadDelegate.onSkipReadItem((Exception) t); - } catch (Exception e) { - throw new BatchRuntimeException(e); - } - } - } - - @SuppressWarnings("unchecked") - @Override - public void onSkipInWrite(S item, Throwable t) { - if(skipWriteDelegate != null && t instanceof Exception) { - try { - /* - * assuming this SkipListenerAdapter will only be called from JsrFaultTolerantChunkProcessor, - * which calls onSkipInWrite() with the whole chunk (List) of items instead of single item - */ - skipWriteDelegate.onSkipWriteItem((List) item, (Exception) t); - } catch (Exception e) { - throw new BatchRuntimeException(e); - } - } - } - - @Override - public void onSkipInProcess(T item, Throwable t) { - if(skipProcessDelegate != null && t instanceof Exception) { - try { - skipProcessDelegate.onSkipProcessItem(item, (Exception) t); - } catch (Exception e) { - throw new BatchRuntimeException(e); - } - } - } -} diff --git a/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/StepListenerAdapter.java b/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/StepListenerAdapter.java deleted file mode 100644 index 51131d5a6..000000000 --- a/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/StepListenerAdapter.java +++ /dev/null @@ -1,67 +0,0 @@ -/* - * Copyright 2013-2021 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.springframework.batch.core.jsr; - -import jakarta.batch.api.listener.StepListener; -import jakarta.batch.operations.BatchRuntimeException; - -import org.springframework.batch.core.ExitStatus; -import org.springframework.batch.core.StepExecution; -import org.springframework.batch.core.StepExecutionListener; -import org.springframework.lang.Nullable; -import org.springframework.util.Assert; - -/** - * Wrapper class to adapt the {@link StepListener} to - * a {@link StepExecutionListener}. - * - * @author Michael Minella - * @author Mahmoud Ben Hassine - * @since 3.0 - */ -public class StepListenerAdapter implements StepExecutionListener { - - private final StepListener delegate; - - /** - * @param delegate instance of {@link StepListener}. - */ - public StepListenerAdapter(StepListener delegate) { - Assert.notNull(delegate, "A listener is required"); - this.delegate = delegate; - } - - @Override - public void beforeStep(StepExecution stepExecution) { - try { - delegate.beforeStep(); - } catch (Exception e) { - throw new BatchRuntimeException(e); - } - } - - @Nullable - @Override - public ExitStatus afterStep(StepExecution stepExecution) { - try { - delegate.afterStep(); - } catch (Exception e) { - throw new BatchRuntimeException(e); - } - - return stepExecution.getExitStatus(); - } -} diff --git a/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/configuration/support/BaseContextListFactoryBean.java b/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/configuration/support/BaseContextListFactoryBean.java deleted file mode 100644 index 58fd74652..000000000 --- a/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/configuration/support/BaseContextListFactoryBean.java +++ /dev/null @@ -1,56 +0,0 @@ -/* - * Copyright 2014 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.springframework.batch.core.jsr.configuration.support; - -import java.util.ArrayList; -import java.util.List; - -import org.springframework.beans.factory.FactoryBean; - -/** - * A simple factory bean that consolidates the list of locations to look for the base context for the JSR-352 - * functionality - * - * @author Michael Minella - * @since 3.0.3 - */ -public class BaseContextListFactoryBean implements FactoryBean>{ - - @Override - public List getObject() throws Exception { - String overrideContextLocation = System.getProperty("JSR-352-BASE-CONTEXT"); - - List contextLocations = new ArrayList<>(2); - - contextLocations.add("baseContext.xml"); - - if(overrideContextLocation != null) { - contextLocations.add(overrideContextLocation); - } - - return contextLocations; - } - - @Override - public Class getObjectType() { - return List.class; - } - - @Override - public boolean isSingleton() { - return true; - } -} diff --git a/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/configuration/support/BatchArtifactType.java b/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/configuration/support/BatchArtifactType.java deleted file mode 100644 index a60d16481..000000000 --- a/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/configuration/support/BatchArtifactType.java +++ /dev/null @@ -1,31 +0,0 @@ -/* - * Copyright 2014 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.springframework.batch.core.jsr.configuration.support; - -/** - *

- * Enum to identify batch artifact types. - *

- * - * @author Chris Schaefer - * @since 3.0 - */ -public enum BatchArtifactType { - STEP, - STEP_ARTIFACT, - ARTIFACT, - JOB -} diff --git a/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/configuration/support/BatchPropertyContext.java b/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/configuration/support/BatchPropertyContext.java deleted file mode 100644 index e91116ecb..000000000 --- a/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/configuration/support/BatchPropertyContext.java +++ /dev/null @@ -1,241 +0,0 @@ -/* - * Copyright 2013-2021 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.springframework.batch.core.jsr.configuration.support; - -import java.util.Enumeration; -import java.util.HashMap; -import java.util.Map; -import java.util.Properties; - -import org.springframework.util.Assert; - -/** - *

- * Context object to hold parsed JSR-352 batch properties, mapping properties to beans / - * "batch artifacts". Used internally when parsing property tags from a batch configuration - * file and to obtain corresponding values when injecting into batch artifacts. - *

- * - * @author Chris Schaefer - * @author Michael Minella - * @since 3.0 - */ -public class BatchPropertyContext { - private static final String PARTITION_INDICATOR = ":partition"; - - private Properties jobProperties = new Properties(); - private Map stepProperties = new HashMap<>(); - private Map artifactProperties = new HashMap<>(); - private Map> stepArtifactProperties = new HashMap<>(); - - /** - *

- * Obtains the Job level properties. - *

- * - * @return the Job level properties - */ - public Properties getJobProperties() { - return jobProperties; - } - - /** - *

- * Adds Job level properties to the context. - *

- * - * @param properties the job {@link Properties} to add - */ - public void setJobProperties(Properties properties) { - Assert.notNull(properties, "Job properties cannot be null"); - this.jobProperties.putAll(properties); - } - - /** - *

- * Obtains the Step level properties for the provided Step name. - *

- * - * @param stepName the Step name to obtain properties for - * @return the {@link Properties} for the Step - */ - public Properties getStepProperties(String stepName) { - Assert.hasText(stepName, "Step name must be provided"); - Properties properties = new Properties(); - - if(stepProperties.containsKey(stepName)) { - properties.putAll(stepProperties.get(stepName)); - } - - if(stepName.contains(PARTITION_INDICATOR)) { - String parentStepName = stepName.substring(0, stepName.indexOf(PARTITION_INDICATOR)); - properties.putAll(getStepProperties(parentStepName)); - } - - return properties; - } - - /** - *

- * Adds Step level properties to the context. - *

- * - * @param properties the step {@link Properties} to add - */ - public void setStepProperties(Map properties) { - Assert.notNull(properties, "Step properties cannot be null"); - - for(Map.Entry propertiesEntry : properties.entrySet()) { - String stepName = propertiesEntry.getKey(); - Properties stepProperties = propertiesEntry.getValue(); - - if (!stepProperties.isEmpty()) { - if (this.stepProperties.containsKey(stepName)) { - Properties existingStepProperties = this.stepProperties.get(stepName); - - Enumeration stepPropertyNames = stepProperties.propertyNames(); - - while(stepPropertyNames.hasMoreElements()) { - String propertyEntryName = (String) stepPropertyNames.nextElement(); - existingStepProperties.put(propertyEntryName, stepProperties.getProperty(propertyEntryName)); - } - - this.stepProperties.put(stepName, existingStepProperties); - } else { - this.stepProperties.put(stepName, propertiesEntry.getValue()); - } - } - } - } - - /** - *

- * Convenience method to set step level properties. Simply wraps the provided parameters - * and delegates to {@link #setStepProperties(java.util.Map)}. - *

- * - * @param stepName the step name to set {@link Properties} for - * @param properties the {@link Properties} to set - */ - public void setStepProperties(String stepName, Properties properties) { - Assert.hasText(stepName, "Step name must be provided"); - Assert.notNull(properties, "Step properties must not be null"); - - Map stepProperties = new HashMap<>(); - stepProperties.put(stepName, properties); - - setStepProperties(stepProperties); - } - - /** - *

- * Obtains the batch {@link Properties} for the provided artifact name. - *

- * - * @param artifactName the batch artifact to obtain properties for - * @return the {@link Properties} for the provided batch artifact - */ - public Properties getArtifactProperties(String artifactName) { - Properties properties = new Properties(); - - if (artifactProperties.containsKey(artifactName)) { - properties.putAll(artifactProperties.get(artifactName)); - } - - return properties; - } - - /** - *

- * Adds non-step artifact properties to the context. - *

- * - * @param properties the artifact {@link Properties} to add - */ - public void setArtifactProperties(Map properties) { - Assert.notNull(properties, "Step properties cannot be null"); - - for(Map.Entry propertiesEntry : properties.entrySet()) { - String artifactName = propertiesEntry.getKey(); - Properties artifactProperties = propertiesEntry.getValue(); - - if(!artifactProperties.isEmpty()) { - this.artifactProperties.put(artifactName, artifactProperties); - } - } - } - - /** - *

- * Obtains the batch {@link Properties} for the provided Step and artifact name. - *

- * - * @param stepName the Step name the artifact is associated with - * @param artifactName the artifact name to obtain {@link Properties} for - * @return the {@link Properties} for the provided Step artifact - */ - public Properties getStepArtifactProperties(String stepName, String artifactName) { - Properties properties = new Properties(); - properties.putAll(getStepProperties(stepName)); - - Map artifactProperties = stepArtifactProperties.get(stepName); - - if (artifactProperties != null && artifactProperties.containsKey(artifactName)) { - properties.putAll(artifactProperties.get(artifactName)); - } - - if(stepName.contains(PARTITION_INDICATOR)) { - String parentStepName = stepName.substring(0, stepName.indexOf(PARTITION_INDICATOR)); - properties.putAll(getStepProperties(parentStepName)); - - Map parentArtifactProperties = stepArtifactProperties.get(parentStepName); - - if (parentArtifactProperties != null && parentArtifactProperties.containsKey(artifactName)) { - properties.putAll(parentArtifactProperties.get(artifactName)); - } - } - - return properties; - } - - /** - *

- * Adds Step artifact properties to the context. - *

- * - * @param properties the step artifact {@link Properties} to add - */ - public void setStepArtifactProperties(Map> properties) { - Assert.notNull(properties, "Step artifact properties cannot be null"); - - for(Map.Entry> propertyEntries : properties.entrySet()) { - String stepName = propertyEntries.getKey(); - - for(Map.Entry artifactEntries : propertyEntries.getValue().entrySet()) { - final String artifactName = artifactEntries.getKey(); - final Properties props = artifactEntries.getValue(); - - Map artifactProperties = stepArtifactProperties.get(stepName); - - if (artifactProperties == null) { - artifactProperties = new HashMap<>(); - stepArtifactProperties.put(stepName, artifactProperties); - } - artifactProperties.put(artifactName, props); - } - } - } -} diff --git a/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/configuration/support/JsrAutowiredAnnotationBeanPostProcessor.java b/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/configuration/support/JsrAutowiredAnnotationBeanPostProcessor.java deleted file mode 100644 index ed4c04090..000000000 --- a/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/configuration/support/JsrAutowiredAnnotationBeanPostProcessor.java +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Copyright 2013-2021 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.springframework.batch.core.jsr.configuration.support; - -import java.lang.annotation.Annotation; -import java.lang.reflect.AccessibleObject; - -import jakarta.batch.api.BatchProperty; - -import org.springframework.beans.factory.annotation.InjectionMetadata; - -/** - *

This class overrides methods in the copied {@link SpringAutowiredAnnotationBeanPostProcessor} class - * to check for the {@link BatchProperty} annotation before processing injection annotations. If the annotation - * is found, further injection processing for the field is skipped.

- */ -public class JsrAutowiredAnnotationBeanPostProcessor extends SpringAutowiredAnnotationBeanPostProcessor { - @Override - protected InjectionMetadata findAutowiringMetadata(Class clazz) { - return super.buildAutowiringMetadata(clazz); - } - - @Override - protected Annotation findAutowiredAnnotation(AccessibleObject ao) { - if (ao.getAnnotation(BatchProperty.class) != null) { - return null; - } - - return super.findAutowiredAnnotation(ao); - } -} diff --git a/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/configuration/support/JsrExpressionParser.java b/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/configuration/support/JsrExpressionParser.java deleted file mode 100644 index 2097da005..000000000 --- a/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/configuration/support/JsrExpressionParser.java +++ /dev/null @@ -1,130 +0,0 @@ -/* - * Copyright 2013 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.springframework.batch.core.jsr.configuration.support; - -import java.util.regex.Matcher; -import java.util.regex.Pattern; -import org.springframework.beans.factory.config.BeanExpressionContext; -import org.springframework.beans.factory.config.BeanExpressionResolver; -import org.springframework.util.StringUtils; - -/** - *

- * Support class for parsing JSR-352 expressions. The JSR-352 expression syntax, for - * example conditional/elvis statements need to be transformed a bit to be valid SPeL expressions. - *

- * - * @author Chris Schaefer - * @since 3.0 - */ -public class JsrExpressionParser { - private static final String QUOTE = "'"; - private static final String NULL = "null"; - private static final String ELVIS_RHS = ":"; - private static final String ELVIS_LHS = "\\?"; - private static final String ELVIS_OPERATOR = "?:"; - private static final String EXPRESSION_SUFFIX = "}"; - private static final String EXPRESSION_PREFIX = "#{"; - private static final String DEFAULT_VALUE_SEPARATOR = ";"; - private static final Pattern CONDITIONAL_EXPRESSION = Pattern.compile("(((\\bnull\\b)|(#\\{\\w))[^;]+)"); - - private BeanExpressionContext beanExpressionContext; - private BeanExpressionResolver beanExpressionResolver; - - /** - *

- * Creates a new instance of this expression parser without and expression resolver. Creating - * an instance via this constructor will still parse expressions but no resolution of operators - * will occur as its expected the caller will. - *

- */ - public JsrExpressionParser() { } - - /** - *

- * Creates a new instances of this expression parser with the provided expression resolver and context to evaluate - * against. - *

- * - * @param beanExpressionResolver the expression resolver to use when resolving expressions - * @param beanExpressionContext the expression context to resolve expressions against - */ - public JsrExpressionParser(BeanExpressionResolver beanExpressionResolver, BeanExpressionContext beanExpressionContext) { - this.beanExpressionContext = beanExpressionContext; - this.beanExpressionResolver = beanExpressionResolver; - } - - /** - *

- * Parses the provided expression, applying any transformations needed to evaluate as a SPeL expression. - *

- * - * @param expression the expression to parse and transform - * @return a JSR-352 transformed expression that can be evaluated by a SPeL parser - */ - public String parseExpression(String expression) { - String expressionToParse = expression; - - if (StringUtils.countOccurrencesOf(expressionToParse, ELVIS_OPERATOR) > 0) { - expressionToParse = parseConditionalExpressions(expressionToParse); - } - - return evaluateExpression(expressionToParse); - } - - private String parseConditionalExpressions(String expression) { - String expressionToParse = expression; - - Matcher conditionalExpressionMatcher = CONDITIONAL_EXPRESSION.matcher(expressionToParse); - - while (conditionalExpressionMatcher.find()) { - String conditionalExpression = conditionalExpressionMatcher.group(1); - - String value = conditionalExpression.split(ELVIS_LHS)[0]; - String defaultValue = conditionalExpression.split(ELVIS_RHS)[1]; - - StringBuilder parsedExpression = new StringBuilder(); - - if(beanExpressionResolver != null) { - parsedExpression.append(EXPRESSION_PREFIX) - .append(evaluateExpression(value)) - .append(ELVIS_OPERATOR) - .append(QUOTE) - .append(evaluateExpression(defaultValue)) - .append(QUOTE) - .append(EXPRESSION_SUFFIX); - } else { - if(NULL.equals(value)) { - parsedExpression.append(defaultValue); - } else { - parsedExpression.append(value); - } - } - - expressionToParse = expressionToParse.replace(conditionalExpression, parsedExpression); - } - - return expressionToParse.replace(DEFAULT_VALUE_SEPARATOR, ""); - } - - private String evaluateExpression(String expression) { - if(beanExpressionResolver != null) { - return (String) beanExpressionResolver.evaluate(expression, beanExpressionContext); - } - - return expression; - } -} diff --git a/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/configuration/support/SpringAutowiredAnnotationBeanPostProcessor.java b/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/configuration/support/SpringAutowiredAnnotationBeanPostProcessor.java deleted file mode 100644 index e3046648a..000000000 --- a/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/configuration/support/SpringAutowiredAnnotationBeanPostProcessor.java +++ /dev/null @@ -1,601 +0,0 @@ -/* - * Copyright 2013-2021 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.springframework.batch.core.jsr.configuration.support; - -import java.beans.PropertyDescriptor; -import java.lang.annotation.Annotation; -import java.lang.reflect.AccessibleObject; -import java.lang.reflect.Constructor; -import java.lang.reflect.Field; -import java.lang.reflect.InvocationTargetException; -import java.lang.reflect.Method; -import java.lang.reflect.Modifier; -import java.util.ArrayList; -import java.util.Iterator; -import java.util.LinkedHashSet; -import java.util.LinkedList; -import java.util.List; -import java.util.Map; -import java.util.Set; -import java.util.concurrent.ConcurrentHashMap; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -import org.springframework.beans.BeanUtils; -import org.springframework.beans.BeansException; -import org.springframework.beans.PropertyValues; -import org.springframework.beans.TypeConverter; -import org.springframework.beans.factory.BeanCreationException; -import org.springframework.beans.factory.BeanFactory; -import org.springframework.beans.factory.BeanFactoryAware; -import org.springframework.beans.factory.BeanFactoryUtils; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.InjectionMetadata; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.beans.factory.config.ConfigurableListableBeanFactory; -import org.springframework.beans.factory.config.DependencyDescriptor; -import org.springframework.beans.factory.config.RuntimeBeanReference; -import org.springframework.beans.factory.config.SmartInstantiationAwareBeanPostProcessor; -import org.springframework.beans.factory.support.MergedBeanDefinitionPostProcessor; -import org.springframework.beans.factory.support.RootBeanDefinition; -import org.springframework.core.BridgeMethodResolver; -import org.springframework.core.MethodParameter; -import org.springframework.core.Ordered; -import org.springframework.core.PriorityOrdered; -import org.springframework.core.annotation.AnnotationUtils; -import org.springframework.util.Assert; -import org.springframework.util.ClassUtils; -import org.springframework.util.ReflectionUtils; - -/** - *

This is a copy of AutowiredAnnotationBeanPostProcessor with modifications allow a subclass to - * do additional checks on other field annotations before processing injection annotations.

- * - *

This class is considered a quick work around and needs to be refactored / removed.

- * - *

The in addition to making this class package private, the following methods were modified to be protected:

- *
    - *
  • findAutowiringMetadata(Class<?> clazz)
  • - *
  • buildAutowiringMetadata(Class<?> clazz)
  • - *
  • findAutowiredAnnotation(AccessibleObject ao)
  • - *
- */ -class SpringAutowiredAnnotationBeanPostProcessor implements SmartInstantiationAwareBeanPostProcessor, - MergedBeanDefinitionPostProcessor, PriorityOrdered, BeanFactoryAware { - - protected final Log logger = LogFactory.getLog(getClass()); - - private final Set> autowiredAnnotationTypes = - new LinkedHashSet<>(); - - private String requiredParameterName = "required"; - - private boolean requiredParameterValue = true; - - private int order = Ordered.LOWEST_PRECEDENCE - 2; - - private ConfigurableListableBeanFactory beanFactory; - - private final Map, Constructor[]> candidateConstructorsCache = - new ConcurrentHashMap<>(64); - - private final Map, InjectionMetadata> injectionMetadataCache = - new ConcurrentHashMap<>(64); - - - /** - * Create a new AutowiredAnnotationBeanPostProcessor - * for Spring's standard {@link org.springframework.beans.factory.annotation.Autowired} annotation. - *

Also supports JSR-330's {@link jakarta.inject.Inject} annotation, if available. - */ - @SuppressWarnings("unchecked") - public SpringAutowiredAnnotationBeanPostProcessor() { - this.autowiredAnnotationTypes.add(Autowired.class); - this.autowiredAnnotationTypes.add(Value.class); - ClassLoader cl = SpringAutowiredAnnotationBeanPostProcessor.class.getClassLoader(); - try { - this.autowiredAnnotationTypes.add((Class) cl.loadClass("jakarta.inject.Inject")); - logger.info("JSR-330 'jakarta.inject.Inject' annotation found and supported for autowiring"); - } - catch (ClassNotFoundException ex) { - // JSR-330 API not available - simply skip. - } - } - - - /** - * Set the 'autowired' annotation type, to be used on constructors, fields, - * setter methods and arbitrary config methods. - *

The default autowired annotation type is the Spring-provided - * {@link Autowired} annotation, as well as {@link Value}. - *

This setter property exists so that developers can provide their own - * (non-Spring-specific) annotation type to indicate that a member is - * supposed to be autowired. - * - * @param autowiredAnnotationType type to be used by constructors, fields and methods. - */ - public void setAutowiredAnnotationType(Class autowiredAnnotationType) { - Assert.notNull(autowiredAnnotationType, "'autowiredAnnotationType' must not be null"); - this.autowiredAnnotationTypes.clear(); - this.autowiredAnnotationTypes.add(autowiredAnnotationType); - } - - /** - * Set the 'autowired' annotation types, to be used on constructors, fields, - * setter methods and arbitrary config methods. - *

The default autowired annotation type is the Spring-provided - * {@link Autowired} annotation, as well as {@link Value}. - *

This setter property exists so that developers can provide their own - * (non-Spring-specific) annotation types to indicate that a member is - * supposed to be autowired. - - * @param autowiredAnnotationTypes set of types to be used by constructors, fields and methods. - */ - public void setAutowiredAnnotationTypes(Set> autowiredAnnotationTypes) { - Assert.notEmpty(autowiredAnnotationTypes, "'autowiredAnnotationTypes' must not be empty"); - this.autowiredAnnotationTypes.clear(); - this.autowiredAnnotationTypes.addAll(autowiredAnnotationTypes); - } - - /** - * Set the name of a parameter of the annotation that specifies - * whether it is required. - * - * @param requiredParameterName the name of the parameter. - * - * @see #setRequiredParameterValue(boolean) - */ - public void setRequiredParameterName(String requiredParameterName) { - this.requiredParameterName = requiredParameterName; - } - - /** - * Set the boolean value that marks a dependency as required - *

For example if using 'required=true' (the default), - * this value should be true; but if using - * 'optional=false', this value should be false. - * - * @param requiredParameterValue true if dependency is required. - * - * @see #setRequiredParameterName(String) - */ - public void setRequiredParameterValue(boolean requiredParameterValue) { - this.requiredParameterValue = requiredParameterValue; - } - - public void setOrder(int order) { - this.order = order; - } - - @Override - public int getOrder() { - return this.order; - } - - @Override - public void setBeanFactory(BeanFactory beanFactory) throws BeansException { - if (!(beanFactory instanceof ConfigurableListableBeanFactory)) { - throw new IllegalArgumentException( - "AutowiredAnnotationBeanPostProcessor requires a ConfigurableListableBeanFactory"); - } - this.beanFactory = (ConfigurableListableBeanFactory) beanFactory; - } - - - @Override - public void postProcessMergedBeanDefinition(RootBeanDefinition beanDefinition, Class beanType, String beanName) { - if (beanType != null) { - InjectionMetadata metadata = findAutowiringMetadata(beanType); - metadata.checkConfigMembers(beanDefinition); - } - } - - @Override - public Constructor[] determineCandidateConstructors(Class beanClass, String beanName) throws BeansException { - // Quick check on the concurrent map first, with minimal locking. - Constructor[] candidateConstructors = this.candidateConstructorsCache.get(beanClass); - if (candidateConstructors == null) { - synchronized (this.candidateConstructorsCache) { - candidateConstructors = this.candidateConstructorsCache.get(beanClass); - if (candidateConstructors == null) { - Constructor[] rawCandidates = beanClass.getDeclaredConstructors(); - List> candidates = new ArrayList<>(rawCandidates.length); - Constructor requiredConstructor = null; - Constructor defaultConstructor = null; - for (Constructor candidate : rawCandidates) { - Annotation annotation = findAutowiredAnnotation(candidate); - if (annotation != null) { - if (requiredConstructor != null) { - throw new BeanCreationException("Invalid autowire-marked constructor: " + candidate + - ". Found another constructor with 'required' Autowired annotation: " + - requiredConstructor); - } - if (candidate.getParameterTypes().length == 0) { - throw new IllegalStateException( - "Autowired annotation requires at least one argument: " + candidate); - } - boolean required = determineRequiredStatus(annotation); - if (required) { - if (!candidates.isEmpty()) { - throw new BeanCreationException( - "Invalid autowire-marked constructors: " + candidates + - ". Found another constructor with 'required' Autowired annotation: " + - requiredConstructor); - } - requiredConstructor = candidate; - } - candidates.add(candidate); - } - else if (candidate.getParameterTypes().length == 0) { - defaultConstructor = candidate; - } - } - if (!candidates.isEmpty()) { - // Add default constructor to list of optional constructors, as fallback. - if (requiredConstructor == null && defaultConstructor != null) { - candidates.add(defaultConstructor); - } - candidateConstructors = candidates.toArray(new Constructor[candidates.size()]); - } - else { - candidateConstructors = new Constructor[0]; - } - this.candidateConstructorsCache.put(beanClass, candidateConstructors); - } - } - } - return (candidateConstructors.length > 0 ? candidateConstructors : null); - } - - @Override - public PropertyValues postProcessProperties( - PropertyValues pvs, Object bean, String beanName) throws BeansException { - - InjectionMetadata metadata = findAutowiringMetadata(bean.getClass()); - try { - metadata.inject(bean, beanName, pvs); - } - catch (Throwable ex) { - throw new BeanCreationException(beanName, "Injection of autowired dependencies failed", ex); - } - return pvs; - } - - /** - * 'Native' processing method for direct calls with an arbitrary target instance, - * resolving all of its fields and methods which are annotated with @Autowired. - * @param bean the target instance to process - * @throws BeansException if autowiring failed - */ - public void processInjection(Object bean) throws BeansException { - Class clazz = bean.getClass(); - InjectionMetadata metadata = findAutowiringMetadata(clazz); - try { - metadata.inject(bean, null, null); - } - catch (Throwable ex) { - throw new BeanCreationException("Injection of autowired dependencies failed for class [" + clazz + "]", ex); - } - } - - - protected InjectionMetadata findAutowiringMetadata(Class clazz) { - // Quick check on the concurrent map first, with minimal locking. - InjectionMetadata metadata = this.injectionMetadataCache.get(clazz); - if (metadata == null) { - synchronized (this.injectionMetadataCache) { - metadata = this.injectionMetadataCache.get(clazz); - if (metadata == null) { - metadata = buildAutowiringMetadata(clazz); - this.injectionMetadataCache.put(clazz, metadata); - } - } - } - return metadata; - } - - protected InjectionMetadata buildAutowiringMetadata(Class clazz) { - LinkedList elements = new LinkedList<>(); - Class targetClass = clazz; - - do { - LinkedList currElements = new LinkedList<>(); - for (Field field : targetClass.getDeclaredFields()) { - Annotation annotation = findAutowiredAnnotation(field); - if (annotation != null) { - if (Modifier.isStatic(field.getModifiers())) { - if (logger.isWarnEnabled()) { - logger.warn("Autowired annotation is not supported on static fields: " + field); - } - continue; - } - boolean required = determineRequiredStatus(annotation); - currElements.add(new AutowiredFieldElement(field, required)); - } - } - for (Method method : targetClass.getDeclaredMethods()) { - Method bridgedMethod = BridgeMethodResolver.findBridgedMethod(method); - Annotation annotation = BridgeMethodResolver.isVisibilityBridgeMethodPair(method, bridgedMethod) ? - findAutowiredAnnotation(bridgedMethod) : findAutowiredAnnotation(method); - if (annotation != null && method.equals(ClassUtils.getMostSpecificMethod(method, clazz))) { - if (Modifier.isStatic(method.getModifiers())) { - if (logger.isWarnEnabled()) { - logger.warn("Autowired annotation is not supported on static methods: " + method); - } - continue; - } - if (method.getParameterTypes().length == 0) { - if (logger.isWarnEnabled()) { - logger.warn("Autowired annotation should be used on methods with actual parameters: " + method); - } - } - boolean required = determineRequiredStatus(annotation); - PropertyDescriptor pd = BeanUtils.findPropertyForMethod(method); - currElements.add(new AutowiredMethodElement(method, required, pd)); - } - } - elements.addAll(0, currElements); - targetClass = targetClass.getSuperclass(); - } - while (targetClass != null && targetClass != Object.class); - - return new InjectionMetadata(clazz, elements); - } - - protected Annotation findAutowiredAnnotation(AccessibleObject ao) { - for (Class type : this.autowiredAnnotationTypes) { - Annotation annotation = AnnotationUtils.getAnnotation(ao, type); - if (annotation != null) { - return annotation; - } - } - return null; - } - - /** - * Obtain all beans of the given type as autowire candidates. - * - * @param type the type of the bean. - * @param the type of the bean. - * @return the target beans, or an empty Collection if no bean of this type is found - * - * @throws BeansException if bean retrieval failed - */ - protected Map findAutowireCandidates(Class type) throws BeansException { - if (this.beanFactory == null) { - throw new IllegalStateException("No BeanFactory configured - " + - "override the getBeanOfType method or specify the 'beanFactory' property"); - } - return BeanFactoryUtils.beansOfTypeIncludingAncestors(this.beanFactory, type); - } - - /** - * Determine if the annotated field or method requires its dependency. - *

A 'required' dependency means that autowiring should fail when no beans - * are found. Otherwise, the autowiring process will simply bypass the field - * or method when no beans are found. - * @param annotation the Autowired annotation - * @return whether the annotation indicates that a dependency is required - */ - protected boolean determineRequiredStatus(Annotation annotation) { - try { - Method method = ReflectionUtils.findMethod(annotation.annotationType(), this.requiredParameterName); - if (method == null) { - // annotations like @Inject and @Value don't have a method (attribute) named "required" - // -> default to required status - return true; - } - return (this.requiredParameterValue == (Boolean) ReflectionUtils.invokeMethod(method, annotation)); - } - catch (Exception ex) { - // an exception was thrown during reflective invocation of the required attribute - // -> default to required status - return true; - } - } - - /** - * Register the specified bean as dependent on the autowired beans. - */ - private void registerDependentBeans(String beanName, Set autowiredBeanNames) { - if (beanName != null) { - for (String autowiredBeanName : autowiredBeanNames) { - if (this.beanFactory.containsBean(autowiredBeanName)) { - this.beanFactory.registerDependentBean(autowiredBeanName, beanName); - } - if (logger.isDebugEnabled()) { - logger.debug("Autowiring by type from bean name '" + beanName + - "' to bean named '" + autowiredBeanName + "'"); - } - } - } - } - - /** - * Resolve the specified cached method argument or field value. - */ - private Object resolvedCachedArgument(String beanName, Object cachedArgument) { - if (cachedArgument instanceof DependencyDescriptor) { - DependencyDescriptor descriptor = (DependencyDescriptor) cachedArgument; - TypeConverter typeConverter = this.beanFactory.getTypeConverter(); - return this.beanFactory.resolveDependency(descriptor, beanName, null, typeConverter); - } - else if (cachedArgument instanceof RuntimeBeanReference) { - return this.beanFactory.getBean(((RuntimeBeanReference) cachedArgument).getBeanName()); - } - else { - return cachedArgument; - } - } - - - /** - * Class representing injection information about an annotated field. - */ - private class AutowiredFieldElement extends InjectionMetadata.InjectedElement { - - private final boolean required; - - private volatile boolean cached = false; - - private volatile Object cachedFieldValue; - - public AutowiredFieldElement(Field field, boolean required) { - super(field, null); - this.required = required; - } - - @Override - protected void inject(Object bean, String beanName, PropertyValues pvs) throws Throwable { - Field field = (Field) this.member; - try { - Object value; - if (this.cached) { - value = resolvedCachedArgument(beanName, this.cachedFieldValue); - } - else { - DependencyDescriptor descriptor = new DependencyDescriptor(field, this.required); - Set autowiredBeanNames = new LinkedHashSet<>(1); - TypeConverter typeConverter = beanFactory.getTypeConverter(); - value = beanFactory.resolveDependency(descriptor, beanName, autowiredBeanNames, typeConverter); - synchronized (this) { - if (!this.cached) { - if (value != null || this.required) { - this.cachedFieldValue = descriptor; - registerDependentBeans(beanName, autowiredBeanNames); - if (autowiredBeanNames.size() == 1) { - String autowiredBeanName = autowiredBeanNames.iterator().next(); - if (beanFactory.containsBean(autowiredBeanName)) { - if (beanFactory.isTypeMatch(autowiredBeanName, field.getType())) { - this.cachedFieldValue = new RuntimeBeanReference(autowiredBeanName); - } - } - } - } - else { - this.cachedFieldValue = null; - } - this.cached = true; - } - } - } - if (value != null) { - ReflectionUtils.makeAccessible(field); - field.set(bean, value); - } - } - catch (Throwable ex) { - throw new BeanCreationException("Could not autowire field: " + field, ex); - } - } - } - - - /** - * Class representing injection information about an annotated method. - */ - private class AutowiredMethodElement extends InjectionMetadata.InjectedElement { - - private final boolean required; - - private volatile boolean cached = false; - - private volatile Object[] cachedMethodArguments; - - public AutowiredMethodElement(Method method, boolean required, PropertyDescriptor pd) { - super(method, pd); - this.required = required; - } - - @Override - protected void inject(Object bean, String beanName, PropertyValues pvs) throws Throwable { - if (checkPropertySkipping(pvs)) { - return; - } - Method method = (Method) this.member; - try { - Object[] arguments; - if (this.cached) { - // Shortcut for avoiding synchronization... - arguments = resolveCachedArguments(beanName); - } - else { - Class[] paramTypes = method.getParameterTypes(); - arguments = new Object[paramTypes.length]; - DependencyDescriptor[] descriptors = new DependencyDescriptor[paramTypes.length]; - Set autowiredBeanNames = new LinkedHashSet<>(paramTypes.length); - TypeConverter typeConverter = beanFactory.getTypeConverter(); - for (int i = 0; i < arguments.length; i++) { - MethodParameter methodParam = new MethodParameter(method, i).withContainingClass(bean.getClass()); - descriptors[i] = new DependencyDescriptor(methodParam, this.required); - arguments[i] = beanFactory.resolveDependency( - descriptors[i], beanName, autowiredBeanNames, typeConverter); - if (arguments[i] == null && !this.required) { - arguments = null; - break; - } - } - synchronized (this) { - if (!this.cached) { - if (arguments != null) { - this.cachedMethodArguments = new Object[arguments.length]; - for (int i = 0; i < arguments.length; i++) { - this.cachedMethodArguments[i] = descriptors[i]; - } - registerDependentBeans(beanName, autowiredBeanNames); - if (autowiredBeanNames.size() == paramTypes.length) { - Iterator it = autowiredBeanNames.iterator(); - for (int i = 0; i < paramTypes.length; i++) { - String autowiredBeanName = it.next(); - if (beanFactory.containsBean(autowiredBeanName)) { - if (beanFactory.isTypeMatch(autowiredBeanName, paramTypes[i])) { - this.cachedMethodArguments[i] = new RuntimeBeanReference(autowiredBeanName); - } - } - } - } - } - else { - this.cachedMethodArguments = null; - } - this.cached = true; - } - } - } - if (arguments != null) { - ReflectionUtils.makeAccessible(method); - method.invoke(bean, arguments); - } - } - catch (InvocationTargetException ex) { - throw ex.getTargetException(); - } - catch (Throwable ex) { - throw new BeanCreationException("Could not autowire method: " + method, ex); - } - } - - private Object[] resolveCachedArguments(String beanName) { - if (this.cachedMethodArguments == null) { - return null; - } - Object[] arguments = new Object[this.cachedMethodArguments.length]; - for (int i = 0; i < arguments.length; i++) { - arguments[i] = resolvedCachedArgument(beanName, this.cachedMethodArguments[i]); - } - return arguments; - } - } -} diff --git a/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/configuration/support/ThreadLocalClassloaderBeanPostProcessor.java b/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/configuration/support/ThreadLocalClassloaderBeanPostProcessor.java deleted file mode 100644 index 22464fad6..000000000 --- a/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/configuration/support/ThreadLocalClassloaderBeanPostProcessor.java +++ /dev/null @@ -1,74 +0,0 @@ -/* - * Copyright 2013 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.springframework.batch.core.jsr.configuration.support; - -import org.springframework.beans.BeansException; -import org.springframework.beans.PropertyValue; -import org.springframework.beans.factory.BeanFactory; -import org.springframework.beans.factory.config.BeanDefinition; -import org.springframework.beans.factory.config.BeanFactoryPostProcessor; -import org.springframework.beans.factory.config.ConfigurableListableBeanFactory; -import org.springframework.beans.factory.config.RuntimeBeanReference; -import org.springframework.beans.factory.support.AbstractBeanDefinition; -import org.springframework.beans.factory.support.BeanDefinitionBuilder; -import org.springframework.beans.factory.support.DefaultListableBeanFactory; -import org.springframework.core.PriorityOrdered; - -/** - * After the {@link BeanFactory} is created, this post processor will evaluate to see - * if any of the beans referenced from a job definition (as defined by JSR-352) point - * to class names instead of bean names. If this is the case, a new {@link BeanDefinition} - * is added with the name of the class as the bean name. - * - * @author Michael Minella - * @since 3.0 - */ -public class ThreadLocalClassloaderBeanPostProcessor implements BeanFactoryPostProcessor, PriorityOrdered { - /* (non-Javadoc) - * @see org.springframework.beans.factory.config.BeanFactoryPostProcessor#postProcessBeanFactory(org.springframework.beans.factory.config.ConfigurableListableBeanFactory) - */ - @Override - public void postProcessBeanFactory(ConfigurableListableBeanFactory beanFactory) throws BeansException { - String[] beanNames = beanFactory.getBeanDefinitionNames(); - - for (String curName : beanNames) { - BeanDefinition beanDefinition = beanFactory.getBeanDefinition(curName); - PropertyValue[] values = beanDefinition.getPropertyValues().getPropertyValues(); - - for (PropertyValue propertyValue : values) { - Object value = propertyValue.getValue(); - - if(value instanceof RuntimeBeanReference) { - RuntimeBeanReference ref = (RuntimeBeanReference) value; - if(!beanFactory.containsBean(ref.getBeanName())) { - AbstractBeanDefinition newBeanDefinition = BeanDefinitionBuilder.genericBeanDefinition(ref.getBeanName()).getBeanDefinition(); - newBeanDefinition.setScope("step"); - ((DefaultListableBeanFactory) beanFactory).registerBeanDefinition(ref.getBeanName(), newBeanDefinition); - } - } - } - } - } - - /** - * Sets this {@link BeanFactoryPostProcessor} to the lowest precedence so that - * it is executed as late as possible in the chain of {@link BeanFactoryPostProcessor}s - */ - @Override - public int getOrder() { - return PriorityOrdered.LOWEST_PRECEDENCE; - } -} diff --git a/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/configuration/support/package-info.java b/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/configuration/support/package-info.java deleted file mode 100644 index bd359dd44..000000000 --- a/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/configuration/support/package-info.java +++ /dev/null @@ -1,10 +0,0 @@ -/** - * Extensions of Spring components to support JSR-352 functionality. - * - * @author Michael Minella - * @author Mahmoud Ben Hassine - */ -@NonNullApi -package org.springframework.batch.core.jsr.configuration.support; - -import org.springframework.lang.NonNullApi; diff --git a/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/configuration/xml/BatchParser.java b/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/configuration/xml/BatchParser.java deleted file mode 100644 index dce8a0d94..000000000 --- a/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/configuration/xml/BatchParser.java +++ /dev/null @@ -1,82 +0,0 @@ -/* - * Copyright 2013-2021 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.springframework.batch.core.jsr.configuration.xml; - -import java.util.List; - -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -import org.springframework.beans.factory.support.AbstractBeanDefinition; -import org.springframework.beans.factory.support.BeanDefinitionBuilder; -import org.springframework.beans.factory.support.BeanDefinitionRegistry; -import org.springframework.beans.factory.xml.AbstractBeanDefinitionParser; -import org.springframework.beans.factory.xml.ParserContext; -import org.springframework.util.xml.DomUtils; -import org.w3c.dom.Element; - -/** - * Parser used to parse the batch.xml file as defined in JSR-352. It is not - * recommended to use the batch.xml approach with Spring to manage bean instantiation. - * It is recommended that standard Spring bean configurations (via XML or Java Config) - * be used. - * - * @author Michael Minella - * @since 3.0 - */ -public class BatchParser extends AbstractBeanDefinitionParser { - - private static final Log logger = LogFactory.getLog(BatchParser.class); - - @Override - protected boolean shouldGenerateIdAsFallback() { - return true; - } - - @Override - protected AbstractBeanDefinition parseInternal(Element element, - ParserContext parserContext) { - BeanDefinitionRegistry registry = parserContext.getRegistry(); - - parseRefElements(element, registry); - - return null; - } - - private void parseRefElements(Element element, - BeanDefinitionRegistry registry) { - List beanElements = DomUtils.getChildElementsByTagName(element, "ref"); - - if(beanElements.size() > 0) { - for (Element curElement : beanElements) { - AbstractBeanDefinition beanDefinition = BeanDefinitionBuilder.genericBeanDefinition(curElement.getAttribute("class")) - .getBeanDefinition(); - - beanDefinition.setScope("step"); - - String beanName = curElement.getAttribute("id"); - - if(!registry.containsBeanDefinition(beanName)) { - registry.registerBeanDefinition(beanName, beanDefinition); - } else { - if (logger.isInfoEnabled()) { - logger.info("Ignoring batch.xml bean definition for " + beanName + " because another bean of the same name has been registered"); - } - } - } - } - - } -} diff --git a/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/configuration/xml/BatchletParser.java b/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/configuration/xml/BatchletParser.java deleted file mode 100644 index 953449ff9..000000000 --- a/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/configuration/xml/BatchletParser.java +++ /dev/null @@ -1,55 +0,0 @@ -/* - * Copyright 2013-2014 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.springframework.batch.core.jsr.configuration.xml; - -import org.springframework.batch.core.jsr.configuration.support.BatchArtifactType; -import org.springframework.batch.core.step.tasklet.Tasklet; -import org.springframework.beans.factory.config.BeanDefinition; -import org.springframework.beans.factory.config.RuntimeBeanReference; -import org.springframework.beans.factory.support.AbstractBeanDefinition; -import org.springframework.beans.factory.xml.AbstractSingleBeanDefinitionParser; -import org.springframework.beans.factory.xml.ParserContext; -import org.springframework.util.StringUtils; -import org.w3c.dom.Element; - -/** - * Parser for the <batchlet /> tag defined in JSR-352. The current state - * of this parser parses a batchlet element into a {@link Tasklet} (the ref - * attribute is expected to point to an implementation of Tasklet). - * - * @author Michael Minella - * @author Chris Schaefer - * @since 3.0 - */ -public class BatchletParser extends AbstractSingleBeanDefinitionParser { - private static final String REF = "ref"; - - public void parseBatchlet(Element batchletElement, AbstractBeanDefinition bd, ParserContext parserContext, String stepName) { - bd.setBeanClass(StepFactoryBean.class); - bd.setAttribute("isNamespaceStep", false); - - String taskletRef = batchletElement.getAttribute(REF); - - if (StringUtils.hasText(taskletRef)) { - bd.getPropertyValues().addPropertyValue("stepTasklet", new RuntimeBeanReference(taskletRef)); - } - - bd.setRole(BeanDefinition.ROLE_SUPPORT); - bd.setSource(parserContext.extractSource(batchletElement)); - - new PropertyParser(taskletRef, parserContext, BatchArtifactType.STEP_ARTIFACT, stepName).parseProperties(batchletElement); - } -} diff --git a/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/configuration/xml/ChunkParser.java b/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/configuration/xml/ChunkParser.java deleted file mode 100644 index 9f12c65d5..000000000 --- a/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/configuration/xml/ChunkParser.java +++ /dev/null @@ -1,186 +0,0 @@ -/* - * Copyright 2013-2014 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.springframework.batch.core.jsr.configuration.xml; - -import java.util.List; - -import org.springframework.batch.core.configuration.xml.ExceptionElementParser; -import org.springframework.batch.core.jsr.configuration.support.BatchArtifactType; -import org.springframework.batch.core.step.item.ChunkOrientedTasklet; -import org.springframework.batch.item.ItemProcessor; -import org.springframework.batch.item.ItemReader; -import org.springframework.batch.item.ItemWriter; -import org.springframework.beans.MutablePropertyValues; -import org.springframework.beans.factory.config.RuntimeBeanReference; -import org.springframework.beans.factory.config.TypedStringValue; -import org.springframework.beans.factory.support.AbstractBeanDefinition; -import org.springframework.beans.factory.support.ManagedList; -import org.springframework.beans.factory.support.ManagedMap; -import org.springframework.beans.factory.xml.ParserContext; -import org.springframework.util.StringUtils; -import org.springframework.util.xml.DomUtils; -import org.w3c.dom.Element; -import org.w3c.dom.Node; -import org.w3c.dom.NodeList; - -/** - * Parser for the <chunk /> element as specified in JSR-352. The current state - * parses a chunk element into it's related batch artifacts ({@link ChunkOrientedTasklet}, {@link ItemReader}, - * {@link ItemProcessor}, and {@link ItemWriter}). - * - * @author Michael Minella - * @author Chris Schaefer - * @since 3.0 - * - */ -public class ChunkParser { - private static final String TIME_LIMIT_ATTRIBUTE = "time-limit"; - private static final String ITEM_COUNT_ATTRIBUTE = "item-count"; - private static final String CHECKPOINT_ALGORITHM_ELEMENT = "checkpoint-algorithm"; - private static final String CLASS_ATTRIBUTE = "class"; - private static final String INCLUDE_ELEMENT = "include"; - private static final String NO_ROLLBACK_EXCEPTION_CLASSES_ELEMENT = "no-rollback-exception-classes"; - private static final String RETRYABLE_EXCEPTION_CLASSES_ELEMENT = "retryable-exception-classes"; - private static final String SKIPPABLE_EXCEPTION_CLASSES_ELEMENT = "skippable-exception-classes"; - private static final String WRITER_ELEMENT = "writer"; - private static final String PROCESSOR_ELEMENT = "processor"; - private static final String READER_ELEMENT = "reader"; - private static final String REF_ATTRIBUTE = "ref"; - private static final String RETRY_LIMIT_ATTRIBUTE = "retry-limit"; - private static final String SKIP_LIMIT_ATTRIBUTE = "skip-limit"; - private static final String CUSTOM_CHECKPOINT_POLICY = "custom"; - private static final String ITEM_CHECKPOINT_POLICY = "item"; - private static final String CHECKPOINT_POLICY_ATTRIBUTE = "checkpoint-policy"; - - public void parse(Element element, AbstractBeanDefinition bd, ParserContext parserContext, String stepName) { - MutablePropertyValues propertyValues = bd.getPropertyValues(); - bd.setBeanClass(StepFactoryBean.class); - bd.setAttribute("isNamespaceStep", false); - - propertyValues.addPropertyValue("hasChunkElement", Boolean.TRUE); - - String checkpointPolicy = element.getAttribute(CHECKPOINT_POLICY_ATTRIBUTE); - if(StringUtils.hasText(checkpointPolicy)) { - if(checkpointPolicy.equals(ITEM_CHECKPOINT_POLICY)) { - String itemCount = element.getAttribute(ITEM_COUNT_ATTRIBUTE); - if (StringUtils.hasText(itemCount)) { - propertyValues.addPropertyValue("commitInterval", itemCount); - } else { - propertyValues.addPropertyValue("commitInterval", "10"); - } - - parseSimpleAttribute(element, propertyValues, TIME_LIMIT_ATTRIBUTE, "timeout"); - } else if(checkpointPolicy.equals(CUSTOM_CHECKPOINT_POLICY)) { - parseCustomCheckpointAlgorithm(element, parserContext, propertyValues, stepName); - } - } else { - String itemCount = element.getAttribute(ITEM_COUNT_ATTRIBUTE); - if (StringUtils.hasText(itemCount)) { - propertyValues.addPropertyValue("commitInterval", itemCount); - } else { - propertyValues.addPropertyValue("commitInterval", "10"); - } - - parseSimpleAttribute(element, propertyValues, TIME_LIMIT_ATTRIBUTE, "timeout"); - } - - parseSimpleAttribute(element, propertyValues, SKIP_LIMIT_ATTRIBUTE, "skipLimit"); - parseSimpleAttribute(element, propertyValues, RETRY_LIMIT_ATTRIBUTE, "retryLimit"); - - NodeList children = element.getChildNodes(); - for (int i = 0; i < children.getLength(); i++) { - Node nd = children.item(i); - - parseChildElement(element, parserContext, propertyValues, nd, stepName); - } - } - - private void parseSimpleAttribute(Element element, - MutablePropertyValues propertyValues, String attributeName, String propertyName) { - String propertyValue = element.getAttribute(attributeName); - if (StringUtils.hasText(propertyValue)) { - propertyValues.addPropertyValue(propertyName, propertyValue); - } - } - - private void parseChildElement(Element element, ParserContext parserContext, - MutablePropertyValues propertyValues, Node nd, String stepName) { - if (nd instanceof Element) { - Element nestedElement = (Element) nd; - String name = nestedElement.getLocalName(); - String artifactName = nestedElement.getAttribute(REF_ATTRIBUTE); - - if(name.equals(READER_ELEMENT)) { - if (StringUtils.hasText(artifactName)) { - propertyValues.addPropertyValue("stepItemReader", new RuntimeBeanReference(artifactName)); - } - - new PropertyParser(artifactName, parserContext, BatchArtifactType.STEP_ARTIFACT, stepName).parseProperties(nestedElement); - } else if(name.equals(PROCESSOR_ELEMENT)) { - if (StringUtils.hasText(artifactName)) { - propertyValues.addPropertyValue("stepItemProcessor", new RuntimeBeanReference(artifactName)); - } - - new PropertyParser(artifactName, parserContext, BatchArtifactType.STEP_ARTIFACT, stepName).parseProperties(nestedElement); - } else if(name.equals(WRITER_ELEMENT)) { - if (StringUtils.hasText(artifactName)) { - propertyValues.addPropertyValue("stepItemWriter", new RuntimeBeanReference(artifactName)); - } - - new PropertyParser(artifactName, parserContext, BatchArtifactType.STEP_ARTIFACT, stepName).parseProperties(nestedElement); - } else if(name.equals(SKIPPABLE_EXCEPTION_CLASSES_ELEMENT)) { - ManagedMap exceptionClasses = new ExceptionElementParser().parse(element, parserContext, SKIPPABLE_EXCEPTION_CLASSES_ELEMENT); - if(exceptionClasses != null) { - propertyValues.addPropertyValue("skippableExceptionClasses", exceptionClasses); - } - } else if(name.equals(RETRYABLE_EXCEPTION_CLASSES_ELEMENT)) { - ManagedMap exceptionClasses = new ExceptionElementParser().parse(element, parserContext, RETRYABLE_EXCEPTION_CLASSES_ELEMENT); - if(exceptionClasses != null) { - propertyValues.addPropertyValue("retryableExceptionClasses", exceptionClasses); - } - } else if(name.equals(NO_ROLLBACK_EXCEPTION_CLASSES_ELEMENT)) { - //TODO: Update to support excludes - ManagedList list = new ManagedList<>(); - - for (Element child : DomUtils.getChildElementsByTagName(nestedElement, INCLUDE_ELEMENT)) { - String className = child.getAttribute(CLASS_ATTRIBUTE); - list.add(new TypedStringValue(className, Class.class)); - } - - propertyValues.addPropertyValue("noRollbackExceptionClasses", list); - } - } - } - - private void parseCustomCheckpointAlgorithm(Element element, ParserContext parserContext, MutablePropertyValues propertyValues, String stepName) { - List elements = DomUtils.getChildElementsByTagName(element, CHECKPOINT_ALGORITHM_ELEMENT); - - if(elements.size() == 1) { - Element checkpointAlgorithmElement = elements.get(0); - - String name = checkpointAlgorithmElement.getAttribute(REF_ATTRIBUTE); - if(StringUtils.hasText(name)) { - propertyValues.addPropertyValue("stepChunkCompletionPolicy", new RuntimeBeanReference(name)); - } - - new PropertyParser(name, parserContext, BatchArtifactType.STEP_ARTIFACT, stepName).parseProperties(checkpointAlgorithmElement); - } else if(elements.size() > 1){ - parserContext.getReaderContext().error( - "The element may not appear more than once in a single <" - + element.getNodeName() + "/>.", element); - } - } -} diff --git a/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/configuration/xml/DecisionStepFactoryBean.java b/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/configuration/xml/DecisionStepFactoryBean.java deleted file mode 100644 index 3d8dad0f3..000000000 --- a/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/configuration/xml/DecisionStepFactoryBean.java +++ /dev/null @@ -1,99 +0,0 @@ -/* - * Copyright 2013-2021 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.springframework.batch.core.jsr.configuration.xml; - -import jakarta.batch.api.Decider; - -import org.springframework.batch.core.Step; -import org.springframework.batch.core.jsr.step.DecisionStep; -import org.springframework.batch.core.repository.JobRepository; -import org.springframework.beans.factory.FactoryBean; -import org.springframework.beans.factory.InitializingBean; -import org.springframework.util.Assert; - -/** - * {@link FactoryBean} for creating a {@link DecisionStep}. - * - * @author Michael Minella - * @author Mahmoud Ben Hassine - * @since 3.0 - */ -public class DecisionStepFactoryBean implements FactoryBean, InitializingBean { - - private Decider jsrDecider; - private String name; - private JobRepository jobRepository; - - /** - * @param jobRepository All steps need to be able to reference a {@link JobRepository} - */ - public void setJobRepository(JobRepository jobRepository) { - this.jobRepository = jobRepository; - } - - /** - * @param decider a {@link Decider} - * @throws IllegalArgumentException if the type passed in is not a valid type - */ - public void setDecider(Decider decider) { - this.jsrDecider = decider; - } - - /** - * The name of the state - * - * @param name the name to be used by the DecisionStep. - */ - public void setName(String name) { - this.name = name; - } - - /* (non-Javadoc) - * @see org.springframework.beans.factory.FactoryBean#getObject() - */ - @Override - public Step getObject() throws Exception { - - DecisionStep decisionStep = new DecisionStep(jsrDecider); - decisionStep.setName(name); - decisionStep.setJobRepository(jobRepository); - decisionStep.setAllowStartIfComplete(true); - - return decisionStep; - } - - /* (non-Javadoc) - * @see org.springframework.beans.factory.FactoryBean#getObjectType() - */ - @Override - public Class getObjectType() { - return DecisionStep.class; - } - - /* (non-Javadoc) - * @see org.springframework.beans.factory.FactoryBean#isSingleton() - */ - @Override - public boolean isSingleton() { - return true; - } - - @Override - public void afterPropertiesSet() throws Exception { - Assert.isTrue(jsrDecider != null, "A decider implementation is required"); - Assert.notNull(name, "A name is required for a decision state"); - } -} diff --git a/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/configuration/xml/FlowParser.java b/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/configuration/xml/FlowParser.java deleted file mode 100644 index 1b4fe3341..000000000 --- a/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/configuration/xml/FlowParser.java +++ /dev/null @@ -1,275 +0,0 @@ -/* - * Copyright 2013-2014 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.springframework.batch.core.jsr.configuration.xml; - -import java.util.ArrayList; -import java.util.Collection; -import java.util.HashMap; -import java.util.HashSet; -import java.util.List; -import java.util.Map; -import java.util.Set; - -import org.springframework.batch.core.configuration.xml.AbstractFlowParser; -import org.springframework.batch.core.job.flow.FlowExecutionStatus; -import org.springframework.batch.core.jsr.job.flow.support.JsrFlow; -import org.springframework.beans.factory.config.BeanDefinition; -import org.springframework.beans.factory.support.BeanDefinitionBuilder; -import org.springframework.beans.factory.support.ManagedList; -import org.springframework.beans.factory.xml.ParserContext; -import org.springframework.util.StringUtils; -import org.springframework.util.xml.DomUtils; -import org.w3c.dom.Element; -import org.w3c.dom.Node; -import org.w3c.dom.NodeList; - -/** - * Parses flows as defined in JSR-352. The current state parses a flow - * as it is within a regular Spring Batch job/flow. - * - * @author Michael Minella - * @author Chris Schaefer - * @since 3.0 - */ -public class FlowParser extends AbstractFlowParser { - private static final String NEXT_ATTRIBUTE = "next"; - private static final String EXIT_STATUS_ATTRIBUTE = "exit-status"; - private static final List TRANSITION_TYPES = new ArrayList<>(); - - static { - TRANSITION_TYPES.add(NEXT_ELE); - TRANSITION_TYPES.add(STOP_ELE); - TRANSITION_TYPES.add(END_ELE); - TRANSITION_TYPES.add(FAIL_ELE); - } - - private String flowName; - private String jobFactoryRef; - private StepParser stepParser = new StepParser(); - - /** - * @param flowName The name of the flow - * @param jobFactoryRef The bean name for the job factory - */ - public FlowParser(String flowName, String jobFactoryRef) { - super.setJobFactoryRef(jobFactoryRef); - this.jobFactoryRef = jobFactoryRef; - this.flowName = flowName; - } - - @Override - protected Class getBeanClass(Element element) { - return JsrFlowFactoryBean.class; - } - - @Override - protected void doParse(Element element, ParserContext parserContext, BeanDefinitionBuilder builder) { - builder.getRawBeanDefinition().setAttribute("flowName", flowName); - builder.addPropertyValue("name", flowName); - builder.addPropertyValue("flowType", JsrFlow.class); - - List stateTransitions = new ArrayList<>(); - - Map> reachableElementMap = new HashMap<>(); - String startElement = null; - NodeList children = element.getChildNodes(); - for (int i = 0; i < children.getLength(); i++) { - Node node = children.item(i); - if (node instanceof Element) { - String nodeName = node.getLocalName(); - Element child = (Element) node; - if (nodeName.equals(STEP_ELE)) { - stateTransitions.addAll(stepParser.parse(child, parserContext, builder)); - } else if(nodeName.equals(SPLIT_ELE)) { - stateTransitions.addAll(new JsrSplitParser(flowName).parse(child, parserContext)); - } else if(nodeName.equals(DECISION_ELE)) { - stateTransitions.addAll(new JsrDecisionParser().parse(child, parserContext, flowName)); - } else if(nodeName.equals(FLOW_ELE)) { - stateTransitions.addAll(parseFlow(child, parserContext, builder)); - } - } - } - - Set allReachableElements = new HashSet<>(); - findAllReachableElements(startElement, reachableElementMap, allReachableElements); - for (String elementId : reachableElementMap.keySet()) { - if (!allReachableElements.contains(elementId)) { - parserContext.getReaderContext().error("The element [" + elementId + "] is unreachable", element); - } - } - - ManagedList managedList = new ManagedList<>(); - managedList.addAll(stateTransitions); - builder.addPropertyValue("stateTransitions", managedList); - } - - private Collection parseFlow(Element element, ParserContext parserContext, BeanDefinitionBuilder builder) { - String idAttribute = element.getAttribute(ID_ATTRIBUTE); - - BeanDefinitionBuilder stateBuilder = BeanDefinitionBuilder - .genericBeanDefinition("org.springframework.batch.core.job.flow.support.state.FlowState"); - - FlowParser flowParser = new FlowParser(idAttribute, jobFactoryRef); - - stateBuilder.addConstructorArgValue(flowParser.parse(element, parserContext)); - stateBuilder.addConstructorArgValue(idAttribute); - - builder.getRawBeanDefinition().setAttribute("flowName", idAttribute); - builder.addPropertyValue("name", idAttribute); - - doParse(element, parserContext, builder); - builder.setRole(BeanDefinition.ROLE_INFRASTRUCTURE); - - return FlowParser.getNextElements(parserContext, null, stateBuilder.getBeanDefinition(), element); - } - - public static Collection getNextElements(ParserContext parserContext, BeanDefinition stateDef, - Element element) { - return getNextElements(parserContext, null, stateDef, element); - } - - public static Collection getNextElements(ParserContext parserContext, String stepId, - BeanDefinition stateDef, Element element) { - - Collection list = new ArrayList<>(); - - boolean transitionElementExists = false; - boolean failedTransitionElementExists = false; - - List childElements = DomUtils.getChildElements(element); - for(Element childElement : childElements) { - if(isChildElementTransitionElement(childElement)) { - list.addAll(parseTransitionElement(childElement, stepId, stateDef, parserContext)); - failedTransitionElementExists = failedTransitionElementExists || hasFailedTransitionElement(childElement); - transitionElementExists = true; - } - } - - String shortNextAttribute = element.getAttribute(NEXT_ATTRIBUTE); - boolean hasNextAttribute = StringUtils.hasText(shortNextAttribute); - - if (!transitionElementExists) { - list.addAll(createTransition(FlowExecutionStatus.FAILED, FlowExecutionStatus.FAILED.getName(), null, null, - stateDef, parserContext, false)); - list.addAll(createTransition(FlowExecutionStatus.UNKNOWN, FlowExecutionStatus.UNKNOWN.getName(), null, null, - stateDef, parserContext, false)); - } - - if (hasNextAttribute) { - if (transitionElementExists && !failedTransitionElementExists) { - list.addAll(createTransition(FlowExecutionStatus.FAILED, FlowExecutionStatus.FAILED.getName(), null, null, - stateDef, parserContext, false)); - } - - list.add(getStateTransitionReference(parserContext, stateDef, null, shortNextAttribute)); - } else { - list.addAll(createTransition(FlowExecutionStatus.COMPLETED, FlowExecutionStatus.COMPLETED.getName(), null, null, stateDef, parserContext, - false)); - } - - return list; - } - - private static boolean isChildElementTransitionElement(Element childElement) { - return TRANSITION_TYPES.contains(childElement.getLocalName()); - } - - private static boolean hasFailedTransitionElement(Element childName) { - return FAIL_ELE.equals(childName.getLocalName()); - } - - protected static Collection parseTransitionElement(Element transitionElement, String stateId, - BeanDefinition stateDef, ParserContext parserContext) { - FlowExecutionStatus status = getBatchStatusFromEndTransitionName(transitionElement.getNodeName()); - String onAttribute = transitionElement.getAttribute(ON_ATTR); - String restartAttribute = transitionElement.getAttribute(RESTART_ATTR); - String nextAttribute = transitionElement.getAttribute(TO_ATTR); - - if (!StringUtils.hasText(nextAttribute)) { - nextAttribute = restartAttribute; - } - String exitCodeAttribute = transitionElement.getAttribute(EXIT_STATUS_ATTRIBUTE); - - return createTransition(status, onAttribute, nextAttribute, restartAttribute, exitCodeAttribute, stateDef, parserContext, false); - } - - /** - * @param status The batch status that this transition will set. Use - * BatchStatus.UNKNOWN if not applicable. - * @param on The pattern that this transition should match. Use null for - * "no restriction" (same as "*"). - * @param next The state to which this transition should go. Use null if not - * applicable. - * @param restart The restart attribute this transition will set. - * @param exitCode The exit code that this transition will set. Use null to - * default to batchStatus. - * @param stateDef The bean definition for the current state - * @param parserContext the parser context for the bean factory - * @param abandon the abandon state this transition will set. - * @return a collection of - * {@link org.springframework.batch.core.job.flow.support.StateTransition} - * references - */ - protected static Collection createTransition(FlowExecutionStatus status, String on, String next, - String restart, String exitCode, BeanDefinition stateDef, ParserContext parserContext, boolean abandon) { - - BeanDefinition endState = null; - - if (status.isEnd()) { - - BeanDefinitionBuilder endBuilder = BeanDefinitionBuilder - .genericBeanDefinition("org.springframework.batch.core.jsr.job.flow.support.state.JsrEndState"); - - boolean exitCodeExists = StringUtils.hasText(exitCode); - - endBuilder.addConstructorArgValue(status); - - endBuilder.addConstructorArgValue(exitCodeExists ? exitCode : status.getName()); - - String endName = (status == FlowExecutionStatus.STOPPED ? STOP_ELE - : status == FlowExecutionStatus.FAILED ? FAIL_ELE : END_ELE) - + (endCounter++); - endBuilder.addConstructorArgValue(endName); - - endBuilder.addConstructorArgValue(restart); - - endBuilder.addConstructorArgValue(abandon); - - endBuilder.addConstructorArgReference("jobRepository"); - - String nextOnEnd = exitCodeExists ? null : next; - endState = getStateTransitionReference(parserContext, endBuilder.getBeanDefinition(), null, nextOnEnd); - next = endName; - - } - - Collection list = new ArrayList<>(); - list.add(getStateTransitionReference(parserContext, stateDef, on, next)); - - if(StringUtils.hasText(restart)) { - list.add(getStateTransitionReference(parserContext, stateDef, on + ".RESTART", restart)); - } - - if (endState != null) { - // - // Must be added after the state to ensure that the state is the - // first in the list - // - list.add(endState); - } - return list; - } -} diff --git a/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/configuration/xml/JobFactoryBean.java b/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/configuration/xml/JobFactoryBean.java deleted file mode 100644 index f92ac09e2..000000000 --- a/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/configuration/xml/JobFactoryBean.java +++ /dev/null @@ -1,169 +0,0 @@ -/* - * Copyright 2013-2021 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.springframework.batch.core.jsr.configuration.xml; - -import jakarta.batch.api.listener.JobListener; - -import org.springframework.batch.core.JobExecutionListener; -import org.springframework.batch.core.JobParametersIncrementer; -import org.springframework.batch.core.JobParametersValidator; -import org.springframework.batch.core.explore.JobExplorer; -import org.springframework.batch.core.job.flow.Flow; -import org.springframework.batch.core.job.flow.FlowJob; -import org.springframework.batch.core.jsr.JobListenerAdapter; -import org.springframework.batch.core.jsr.job.flow.JsrFlowJob; -import org.springframework.batch.core.repository.JobRepository; -import org.springframework.beans.factory.FactoryBean; -import org.springframework.beans.factory.SmartFactoryBean; -import org.springframework.util.Assert; -import org.springframework.util.StringUtils; - -/** - * This {@link FactoryBean} is used by the JSR-352 namespace parser to create - * {@link FlowJob} objects. It stores all of the properties that are - * configurable on the <job/>. - * - * @author Michael Minella - * @author Mahmoud Ben Hassine - * @since 3.0 - */ -public class JobFactoryBean implements SmartFactoryBean { - - private String name; - - private Boolean restartable; - - private JobRepository jobRepository; - - private JobParametersValidator jobParametersValidator; - - private JobExecutionListener[] jobExecutionListeners; - - private JobParametersIncrementer jobParametersIncrementer; - - private Flow flow; - - private JobExplorer jobExplorer; - - public JobFactoryBean(String name) { - this.name = name; - } - - @Override - public final FlowJob getObject() throws Exception { - Assert.isTrue(StringUtils.hasText(name), "The job must have an id."); - JsrFlowJob flowJob = new JsrFlowJob(name); - flowJob.setJobExplorer(jobExplorer); - - if (restartable != null) { - flowJob.setRestartable(restartable); - } - - if (jobRepository != null) { - flowJob.setJobRepository(jobRepository); - } - - if (jobParametersValidator != null) { - flowJob.setJobParametersValidator(jobParametersValidator); - } - - if (jobExecutionListeners != null) { - flowJob.setJobExecutionListeners(jobExecutionListeners); - } - - if (jobParametersIncrementer != null) { - flowJob.setJobParametersIncrementer(jobParametersIncrementer); - } - - if (flow != null) { - flowJob.setFlow(flow); - } - - flowJob.afterPropertiesSet(); - return flowJob; - } - - public void setJobExplorer(JobExplorer jobExplorer) { - this.jobExplorer = jobExplorer; - } - - public void setRestartable(Boolean restartable) { - this.restartable = restartable; - } - - public void setJobRepository(JobRepository jobRepository) { - this.jobRepository = jobRepository; - } - - public void setJobParametersValidator(JobParametersValidator jobParametersValidator) { - this.jobParametersValidator = jobParametersValidator; - } - - public JobRepository getJobRepository() { - return this.jobRepository; - } - - public void setJobParametersIncrementer(JobParametersIncrementer jobParametersIncrementer) { - this.jobParametersIncrementer = jobParametersIncrementer; - } - - public void setFlow(Flow flow) { - this.flow = flow; - } - - @Override - public Class getObjectType() { - return FlowJob.class; - } - - @Override - public boolean isSingleton() { - return true; - } - - @Override - public boolean isEagerInit() { - return true; - } - - @Override - public boolean isPrototype() { - return false; - } - - /** - * Addresses wrapping {@link JobListener} as needed to be used with - * the framework. - * - * @param jobListeners a list of all job listeners - */ - public void setJobExecutionListeners(Object[] jobListeners) { - if(jobListeners != null) { - JobExecutionListener[] listeners = new JobExecutionListener[jobListeners.length]; - - for(int i = 0; i < jobListeners.length; i++) { - Object curListener = jobListeners[i]; - if(curListener instanceof JobExecutionListener) { - listeners[i] = (JobExecutionListener) curListener; - } else if(curListener instanceof JobListener){ - listeners[i] = new JobListenerAdapter((JobListener) curListener); - } - } - - this.jobExecutionListeners = listeners; - } - } -} diff --git a/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/configuration/xml/JsrBeanDefinitionDocumentReader.java b/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/configuration/xml/JsrBeanDefinitionDocumentReader.java deleted file mode 100644 index 2e86e4dfc..000000000 --- a/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/configuration/xml/JsrBeanDefinitionDocumentReader.java +++ /dev/null @@ -1,310 +0,0 @@ -/* - * Copyright 2013-2021 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.springframework.batch.core.jsr.configuration.xml; - -import java.util.Enumeration; -import java.util.HashMap; -import java.util.Map; -import java.util.Properties; -import java.util.regex.Matcher; -import java.util.regex.Pattern; - -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -import org.springframework.batch.core.jsr.configuration.support.JsrExpressionParser; -import org.springframework.beans.factory.config.BeanDefinition; -import org.springframework.beans.factory.support.AbstractBeanDefinition; -import org.springframework.beans.factory.support.BeanDefinitionBuilder; -import org.springframework.beans.factory.support.BeanDefinitionRegistry; -import org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader; -import org.springframework.util.ClassUtils; -import org.w3c.dom.Element; -import org.w3c.dom.NamedNodeMap; -import org.w3c.dom.Node; -import org.w3c.dom.NodeList; -import org.w3c.dom.ls.DOMImplementationLS; -import org.w3c.dom.traversal.DocumentTraversal; -import org.w3c.dom.traversal.NodeFilter; -import org.w3c.dom.traversal.NodeIterator; - -/** - *

- * {@link DefaultBeanDefinitionDocumentReader} extension to hook into the pre processing of the provided - * XML document, ensuring any references to property operators such as jobParameters and jobProperties are - * resolved prior to loading the context. Since we know these initial values upfront, doing this transformation - * allows us to ensure values are retrieved in their resolved form prior to loading the context and property - * operators can be used on any element. This document reader will also look for references to artifacts by - * the same name and create new bean definitions to provide the ability to create new instances. - *

- * - * @author Chris Schaefer - * @author Mahmoud Ben Hassine - * @since 3.0 - */ -public class JsrBeanDefinitionDocumentReader extends DefaultBeanDefinitionDocumentReader { - private static final String NULL = "null"; - private static final String ROOT_JOB_ELEMENT_NAME = "job"; - private static final String JOB_PROPERTY_ELEMENT_NAME = "property"; - private static final String JOB_PROPERTIES_ELEMENT_NAME = "properties"; - private static final String JOB_PROPERTY_ELEMENT_NAME_ATTRIBUTE = "name"; - private static final String JOB_PROPERTY_ELEMENT_VALUE_ATTRIBUTE = "value"; - private static final String JOB_PROPERTIES_KEY_NAME = "jobProperties"; - private static final String JOB_PARAMETERS_KEY_NAME = "jobParameters"; - private static final String JOB_PARAMETERS_BEAN_DEFINITION_NAME = "jsr_jobParameters"; - private static final Log LOG = LogFactory.getLog(JsrBeanDefinitionDocumentReader.class); - private static final Pattern PROPERTY_KEY_SEPARATOR = Pattern.compile("'([^']*?)'"); - private static final Pattern OPERATOR_PATTERN = Pattern.compile("(#\\{(job(Properties|Parameters))[^}]+\\})"); - - private BeanDefinitionRegistry beanDefinitionRegistry; - private JsrExpressionParser expressionParser = new JsrExpressionParser(); - private Map propertyMap = new HashMap<>(); - - /** - *

- * Creates a new {@link JsrBeanDefinitionDocumentReader} instance. - *

- */ - public JsrBeanDefinitionDocumentReader() { } - - /** - *

- * Create a new {@link JsrBeanDefinitionDocumentReader} instance with the provided - * {@link BeanDefinitionRegistry}. - *

- * - * @param beanDefinitionRegistry the {@link BeanDefinitionRegistry} to use - */ - public JsrBeanDefinitionDocumentReader(BeanDefinitionRegistry beanDefinitionRegistry) { - this.beanDefinitionRegistry = beanDefinitionRegistry; - } - - @Override - protected void preProcessXml(Element root) { - if (ROOT_JOB_ELEMENT_NAME.equals(root.getLocalName())) { - initProperties(root); - transformDocument(root); - - if (LOG.isDebugEnabled()) { - LOG.debug("Transformed XML from preProcessXml: " + elementToString(root)); - } - } - } - - protected void initProperties(Element root) { - propertyMap.put(JOB_PARAMETERS_KEY_NAME, initJobParameters()); - propertyMap.put(JOB_PROPERTIES_KEY_NAME, initJobProperties(root)); - - resolvePropertyValues(propertyMap.get(JOB_PARAMETERS_KEY_NAME)); - resolvePropertyValues(propertyMap.get(JOB_PROPERTIES_KEY_NAME)); - } - - private Properties initJobParameters() { - Properties jobParameters = new Properties(); - - if (getBeanDefinitionRegistry().containsBeanDefinition(JOB_PARAMETERS_BEAN_DEFINITION_NAME)) { - BeanDefinition beanDefinition = getBeanDefinitionRegistry().getBeanDefinition(JOB_PARAMETERS_BEAN_DEFINITION_NAME); - - Properties properties = (Properties) beanDefinition.getConstructorArgumentValues() - .getGenericArgumentValue(Properties.class) - .getValue(); - - if (properties == null) { - return new Properties(); - } - - Enumeration propertyNames = properties.propertyNames(); - - while(propertyNames.hasMoreElements()) { - String curName = (String) propertyNames.nextElement(); - jobParameters.put(curName, properties.getProperty(curName)); - } - } - - return jobParameters; - } - - private Properties initJobProperties(Element root) { - Properties properties = new Properties(); - Node propertiesNode = root.getElementsByTagName(JOB_PROPERTIES_ELEMENT_NAME).item(0); - - if(propertiesNode != null) { - NodeList children = propertiesNode.getChildNodes(); - - for(int i=0; i < children.getLength(); i++) { - Node child = children.item(i); - - if(JOB_PROPERTY_ELEMENT_NAME.equals(child.getLocalName())) { - NamedNodeMap attributes = child.getAttributes(); - Node name = attributes.getNamedItem(JOB_PROPERTY_ELEMENT_NAME_ATTRIBUTE); - Node value = attributes.getNamedItem(JOB_PROPERTY_ELEMENT_VALUE_ATTRIBUTE); - - properties.setProperty(name.getNodeValue(), value.getNodeValue()); - } - } - } - - return properties; - } - - private void resolvePropertyValues(Properties properties) { - for (String propertyKey : properties.stringPropertyNames()) { - String resolvedPropertyValue = resolvePropertyValue(properties.getProperty(propertyKey)); - - if(!properties.getProperty(propertyKey).equals(resolvedPropertyValue)) { - properties.setProperty(propertyKey, resolvedPropertyValue); - } - } - } - - private String resolvePropertyValue(String propertyValue) { - String resolvedValue = resolveValue(propertyValue); - - Matcher jobParameterMatcher = OPERATOR_PATTERN.matcher(resolvedValue); - - while (jobParameterMatcher.find()) { - resolvedValue = resolvePropertyValue(resolvedValue); - } - - return resolvedValue; - } - - private String resolveValue(String value) { - StringBuffer valueBuffer = new StringBuffer(); - Matcher jobParameterMatcher = OPERATOR_PATTERN.matcher(value); - - while (jobParameterMatcher.find()) { - Matcher jobParameterKeyMatcher = PROPERTY_KEY_SEPARATOR.matcher(jobParameterMatcher.group(1)); - - if (jobParameterKeyMatcher.find()) { - String propertyType = jobParameterMatcher.group(2); - String extractedProperty = jobParameterKeyMatcher.group(1); - - Properties properties = propertyMap.get(propertyType); - - if(properties == null) { - throw new IllegalArgumentException("Unknown property type: " + propertyType); - } - - String resolvedProperty = properties.getProperty(extractedProperty, NULL); - - if (NULL.equals(resolvedProperty) && LOG.isInfoEnabled()) { - LOG.info(propertyType + " with key of: " + extractedProperty + " could not be resolved. Possible configuration error?"); - } - - jobParameterMatcher.appendReplacement(valueBuffer, resolvedProperty); - } - } - - jobParameterMatcher.appendTail(valueBuffer); - String resolvedValue = valueBuffer.toString(); - - if (NULL.equals(resolvedValue)) { - return ""; - } - - return expressionParser.parseExpression(resolvedValue); - } - - private BeanDefinitionRegistry getBeanDefinitionRegistry() { - return beanDefinitionRegistry != null ? beanDefinitionRegistry : getReaderContext().getRegistry(); - } - - private void transformDocument(Element root) { - DocumentTraversal traversal = (DocumentTraversal) root.getOwnerDocument(); - NodeIterator iterator = traversal.createNodeIterator(root, NodeFilter.SHOW_ELEMENT, null, true); - - BeanDefinitionRegistry registry = getBeanDefinitionRegistry(); - Map referenceCountMap = new HashMap<>(); - - for (Node n = iterator.nextNode(); n != null; n = iterator.nextNode()) { - NamedNodeMap map = n.getAttributes(); - - if (map.getLength() > 0) { - for (int i = 0; i < map.getLength(); i++) { - Node node = map.item(i); - - String nodeName = node.getNodeName(); - String nodeValue = node.getNodeValue(); - String resolvedValue = resolveValue(nodeValue); - String newNodeValue = resolvedValue; - - if("ref".equals(nodeName)) { - if(!referenceCountMap.containsKey(resolvedValue)) { - referenceCountMap.put(resolvedValue, 0); - } - - boolean isClass = isClass(resolvedValue); - Integer referenceCount = referenceCountMap.get(resolvedValue); - - // possibly fully qualified class name in ref tag in the JSL or pointer to bean/artifact ref. - if(isClass && !registry.containsBeanDefinition(resolvedValue)) { - AbstractBeanDefinition beanDefinition = BeanDefinitionBuilder.genericBeanDefinition(resolvedValue) - .getBeanDefinition(); - beanDefinition.setScope("step"); - registry.registerBeanDefinition(resolvedValue, beanDefinition); - - newNodeValue = resolvedValue; - } else { - if(registry.containsBeanDefinition(resolvedValue)) { - referenceCount++; - referenceCountMap.put(resolvedValue, referenceCount); - - newNodeValue = resolvedValue + referenceCount; - - BeanDefinition beanDefinition = registry.getBeanDefinition(resolvedValue); - registry.registerBeanDefinition(newNodeValue, beanDefinition); - } - } - } - - if(!nodeValue.equals(newNodeValue)) { - node.setNodeValue(newNodeValue); - } - } - } else { - String nodeValue = n.getTextContent(); - String resolvedValue = resolveValue(nodeValue); - - if(!nodeValue.equals(resolvedValue)) { - n.setTextContent(resolvedValue); - } - } - } - } - - private boolean isClass(String className) { - try { - Class.forName(className, false, ClassUtils.getDefaultClassLoader()); - } catch (ClassNotFoundException e) { - return false; - } - - return true; - } - - protected Properties getJobParameters() { - return propertyMap.get(JOB_PARAMETERS_KEY_NAME); - } - - protected Properties getJobProperties() { - return propertyMap.get(JOB_PROPERTIES_KEY_NAME); - } - - private String elementToString(Element root) { - DOMImplementationLS domImplLS = (DOMImplementationLS) root.getOwnerDocument().getImplementation(); - return domImplLS.createLSSerializer().writeToString(root); - } -} diff --git a/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/configuration/xml/JsrDecisionParser.java b/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/configuration/xml/JsrDecisionParser.java deleted file mode 100644 index 78ddaaa34..000000000 --- a/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/configuration/xml/JsrDecisionParser.java +++ /dev/null @@ -1,69 +0,0 @@ -/* - * Copyright 2013-2014 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.springframework.batch.core.jsr.configuration.xml; - -import java.util.Collection; - -import org.springframework.batch.core.job.flow.JobExecutionDecider; -import org.springframework.batch.core.jsr.configuration.support.BatchArtifactType; -import org.springframework.batch.core.jsr.job.flow.support.state.JsrStepState; -import org.springframework.beans.factory.config.BeanDefinition; -import org.springframework.beans.factory.config.RuntimeBeanReference; -import org.springframework.beans.factory.parsing.BeanComponentDefinition; -import org.springframework.beans.factory.support.AbstractBeanDefinition; -import org.springframework.beans.factory.support.BeanDefinitionBuilder; -import org.springframework.beans.factory.xml.ParserContext; -import org.springframework.util.StringUtils; -import org.w3c.dom.Element; - -/** - * Parser for the <decision /> element as specified in JSR-352. The current state - * parses a decision element and assumes that it refers to a {@link JobExecutionDecider} - * - * @author Michael Minella - * @author Chris Schaefer - * @since 3.0 - */ -public class JsrDecisionParser { - - private static final String ID_ATTRIBUTE = "id"; - private static final String REF_ATTRIBUTE = "ref"; - - public Collection parse(Element element, ParserContext parserContext, String jobFactoryRef) { - BeanDefinitionBuilder factoryBuilder = BeanDefinitionBuilder.genericBeanDefinition(); - AbstractBeanDefinition factoryDefinition = factoryBuilder.getRawBeanDefinition(); - factoryDefinition.setBeanClass(DecisionStepFactoryBean.class); - - BeanDefinitionBuilder stateBuilder = BeanDefinitionBuilder.genericBeanDefinition(JsrStepState.class); - - String idAttribute = element.getAttribute(ID_ATTRIBUTE); - - parserContext.registerBeanComponent(new BeanComponentDefinition(factoryDefinition, idAttribute)); - stateBuilder.addConstructorArgReference(idAttribute); - - String refAttribute = element.getAttribute(REF_ATTRIBUTE); - factoryDefinition.getPropertyValues().add("decider", new RuntimeBeanReference(refAttribute)); - factoryDefinition.getPropertyValues().add("name", idAttribute); - - if(StringUtils.hasText(jobFactoryRef)) { - factoryDefinition.setAttribute("jobParserJobFactoryBeanRef", jobFactoryRef); - } - - new PropertyParser(refAttribute, parserContext, BatchArtifactType.STEP_ARTIFACT, idAttribute).parseProperties(element); - - return FlowParser.getNextElements(parserContext, stateBuilder.getBeanDefinition(), element); - } -} diff --git a/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/configuration/xml/JsrFlowFactoryBean.java b/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/configuration/xml/JsrFlowFactoryBean.java deleted file mode 100644 index 3238a2b06..000000000 --- a/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/configuration/xml/JsrFlowFactoryBean.java +++ /dev/null @@ -1,39 +0,0 @@ -/* - * Copyright 2014 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.springframework.batch.core.jsr.configuration.xml; - -import org.springframework.batch.core.configuration.xml.SimpleFlowFactoryBean; -import org.springframework.batch.core.job.flow.State; -import org.springframework.batch.core.jsr.job.flow.support.state.JsrStepState; - -/** - * Extension to the {@link SimpleFlowFactoryBean} that provides {@link org.springframework.batch.core.jsr.job.flow.support.state.JsrStepState} - * implementations for JSR-352 based jobs. - * - * @author Michael Minella - * @since 3.0 - */ -public class JsrFlowFactoryBean extends SimpleFlowFactoryBean { - - /* (non-Javadoc) - * @see org.springframework.batch.core.configuration.xml.SimpleFlowFactoryBean#createNewStepState(org.springframework.batch.core.job.flow.State, java.lang.String, java.lang.String) - */ - @Override - protected State createNewStepState(State state, String oldName, - String stateName) { - return new JsrStepState(stateName, ((JsrStepState) state).getStep(oldName)); - } -} diff --git a/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/configuration/xml/JsrJobListenerFactoryBean.java b/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/configuration/xml/JsrJobListenerFactoryBean.java deleted file mode 100644 index 2349d759f..000000000 --- a/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/configuration/xml/JsrJobListenerFactoryBean.java +++ /dev/null @@ -1,64 +0,0 @@ -/* - * Copyright 2013-2021 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.springframework.batch.core.jsr.configuration.xml; - -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; - -import jakarta.batch.api.listener.JobListener; - -import org.springframework.batch.core.JobExecutionListener; -import org.springframework.batch.core.jsr.JsrJobListenerMetaData; -import org.springframework.batch.core.listener.JobListenerMetaData; -import org.springframework.batch.core.listener.ListenerMetaData; -import org.springframework.beans.factory.FactoryBean; - -/** - * This {@link FactoryBean} is used by the JSR-352 namespace parser to create - * {@link JobExecutionListener} objects. - * - * @author Michael Minella - * @author Mahmoud Ben Hassine - * @since 3.0 - */ -public class JsrJobListenerFactoryBean extends org.springframework.batch.core.listener.JobListenerFactoryBean { - - @Override - public Class getObjectType() { - return JobListener.class; - } - - @Override - protected ListenerMetaData[] getMetaDataValues() { - List values = new ArrayList<>(); - Collections.addAll(values, JobListenerMetaData.values()); - Collections.addAll(values, JsrJobListenerMetaData.values()); - - return values.toArray(new ListenerMetaData[0]); - } - - @Override - protected ListenerMetaData getMetaDataFromPropertyName(String propertyName) { - ListenerMetaData result = JobListenerMetaData.fromPropertyName(propertyName); - - if(result == null) { - result = JsrJobListenerMetaData.fromPropertyName(propertyName); - } - - return result; - } -} diff --git a/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/configuration/xml/JsrJobParser.java b/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/configuration/xml/JsrJobParser.java deleted file mode 100644 index 43334726b..000000000 --- a/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/configuration/xml/JsrJobParser.java +++ /dev/null @@ -1,78 +0,0 @@ -/* - * Copyright 2013-2014 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.springframework.batch.core.jsr.configuration.xml; - -import org.springframework.batch.core.configuration.xml.CoreNamespaceUtils; -import org.springframework.batch.core.jsr.JsrStepContextFactoryBean; -import org.springframework.batch.core.jsr.configuration.support.BatchArtifactType; -import org.springframework.beans.factory.config.BeanDefinition; -import org.springframework.beans.factory.support.AbstractBeanDefinition; -import org.springframework.beans.factory.support.BeanDefinitionBuilder; -import org.springframework.beans.factory.xml.AbstractSingleBeanDefinitionParser; -import org.springframework.beans.factory.xml.ParserContext; -import org.springframework.util.StringUtils; -import org.w3c.dom.Element; - -/** - * Parses a <job /> tag as defined in JSR-352. Current state parses into - * the standard Spring Batch artifacts. - * - * @author Michael Minella - * @author Chris Schaefer - * @since 3.0 - */ -public class JsrJobParser extends AbstractSingleBeanDefinitionParser { - private static final String ID_ATTRIBUTE = "id"; - private static final String RESTARTABLE_ATTRIBUTE = "restartable"; - - @Override - protected Class getBeanClass(Element element) { - return JobFactoryBean.class; - } - - @Override - protected void doParse(Element element, ParserContext parserContext, BeanDefinitionBuilder builder) { - CoreNamespaceUtils.autoregisterBeansForNamespace(parserContext, parserContext.extractSource(element)); - JsrNamespaceUtils.autoregisterJsrBeansForNamespace(parserContext); - - String jobName = element.getAttribute(ID_ATTRIBUTE); - - builder.setLazyInit(true); - - builder.addConstructorArgValue(jobName); - - builder.addPropertyReference("jobExplorer", "jobExplorer"); - - String restartableAttribute = element.getAttribute(RESTARTABLE_ATTRIBUTE); - if (StringUtils.hasText(restartableAttribute)) { - builder.addPropertyValue("restartable", restartableAttribute); - } - - new PropertyParser(jobName, parserContext, BatchArtifactType.JOB).parseProperties(element); - - BeanDefinition flowDef = new FlowParser(jobName, jobName).parse(element, parserContext); - builder.addPropertyValue("flow", flowDef); - - AbstractBeanDefinition stepContextBeanDefinition = BeanDefinitionBuilder.genericBeanDefinition(JsrStepContextFactoryBean.class) - .getBeanDefinition(); - - stepContextBeanDefinition.setScope("step"); - - parserContext.getRegistry().registerBeanDefinition("stepContextFactory", stepContextBeanDefinition); - - new ListenerParser(JsrJobListenerFactoryBean.class, "jobExecutionListeners").parseListeners(element, parserContext, builder); - } -} diff --git a/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/configuration/xml/JsrNamespaceHandler.java b/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/configuration/xml/JsrNamespaceHandler.java deleted file mode 100644 index 61988a062..000000000 --- a/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/configuration/xml/JsrNamespaceHandler.java +++ /dev/null @@ -1,32 +0,0 @@ -/* - * Copyright 2013 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.springframework.batch.core.jsr.configuration.xml; - -import org.springframework.beans.factory.xml.NamespaceHandlerSupport; - -/** - * - * @author Michael Minella - * @since 3.0 - */ -public class JsrNamespaceHandler extends NamespaceHandlerSupport { - - @Override - public void init() { - this.registerBeanDefinitionParser("job", new JsrJobParser()); - this.registerBeanDefinitionParser("batch-artifacts", new BatchParser()); - } -} diff --git a/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/configuration/xml/JsrNamespacePostProcessor.java b/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/configuration/xml/JsrNamespacePostProcessor.java deleted file mode 100644 index 8a4038895..000000000 --- a/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/configuration/xml/JsrNamespacePostProcessor.java +++ /dev/null @@ -1,58 +0,0 @@ -/* - * Copyright 2014 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.springframework.batch.core.jsr.configuration.xml; - -import org.springframework.batch.core.repository.JobRepository; -import org.springframework.beans.BeansException; -import org.springframework.beans.factory.config.BeanPostProcessor; -import org.springframework.context.ApplicationContext; -import org.springframework.context.ApplicationContextAware; - -/** - * @author Michael Minella - */ -public class JsrNamespacePostProcessor implements BeanPostProcessor, ApplicationContextAware { - - private static final String DEFAULT_JOB_REPOSITORY_NAME = "jobRepository"; - - private ApplicationContext applicationContext; - - @Override - public void setApplicationContext(ApplicationContext applicationContext) throws BeansException { - this.applicationContext = applicationContext; - } - - @Override - public Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException { - if(bean instanceof JobFactoryBean) { - JobFactoryBean fb = (JobFactoryBean) bean; - JobRepository jobRepository = fb.getJobRepository(); - if (jobRepository == null) { - fb.setJobRepository((JobRepository) applicationContext.getBean(DEFAULT_JOB_REPOSITORY_NAME)); - } - } - - return bean; - } - - @Override - public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException { - return bean; - } -} - - - diff --git a/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/configuration/xml/JsrNamespaceUtils.java b/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/configuration/xml/JsrNamespaceUtils.java deleted file mode 100644 index 3e29244ac..000000000 --- a/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/configuration/xml/JsrNamespaceUtils.java +++ /dev/null @@ -1,108 +0,0 @@ -/* - * Copyright 2013-2014 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.springframework.batch.core.jsr.configuration.xml; - -import org.springframework.batch.core.jsr.launch.support.BatchPropertyBeanPostProcessor; -import org.springframework.batch.core.jsr.configuration.support.JsrAutowiredAnnotationBeanPostProcessor; -import org.springframework.batch.core.jsr.partition.support.JsrBeanScopeBeanFactoryPostProcessor; -import org.springframework.batch.core.jsr.configuration.support.ThreadLocalClassloaderBeanPostProcessor; -import org.springframework.beans.factory.config.BeanDefinition; -import org.springframework.beans.factory.support.AbstractBeanDefinition; -import org.springframework.beans.factory.support.BeanDefinitionBuilder; -import org.springframework.beans.factory.xml.ParserContext; -import org.springframework.context.annotation.AnnotationConfigUtils; - -import java.util.HashMap; - -/** - * Utility methods used in parsing of the JSR-352 batch namespace and related helpers. - * - * @author Michael Minella - * @author Chris Schaefer - * @since 3.0 - */ -class JsrNamespaceUtils { - private static final String JOB_PROPERTIES_BEAN_NAME = "jobProperties"; - private static final String BATCH_PROPERTY_POST_PROCESSOR_BEAN_NAME = "batchPropertyPostProcessor"; - private static final String THREAD_LOCAL_CLASS_LOADER_BEAN_POST_PROCESSOR_BEAN_NAME = "threadLocalClassloaderBeanPostProcessor"; - private static final String BEAN_SCOPE_POST_PROCESSOR_BEAN_NAME = "beanScopeBeanPostProcessor"; - private static final String BATCH_PROPERTY_CONTEXT_BEAN_CLASS_NAME = "org.springframework.batch.core.jsr.configuration.support.BatchPropertyContext"; - private static final String BATCH_PROPERTY_CONTEXT_BEAN_NAME = "batchPropertyContext"; - private static final String JSR_NAMESPACE_POST_PROCESSOR = "jsrNamespacePostProcessor"; - - static void autoregisterJsrBeansForNamespace(ParserContext parserContext) { - autoRegisterJobProperties(parserContext); - autoRegisterBatchPostProcessor(parserContext); - autoRegisterJsrAutowiredAnnotationBeanPostProcessor(parserContext); - autoRegisterThreadLocalClassloaderBeanPostProcessor(parserContext); - autoRegisterBeanScopeBeanFactoryPostProcessor(parserContext); - autoRegisterBatchPropertyContext(parserContext); - autoRegisterNamespacePostProcessor(parserContext); - } - - private static void autoRegisterNamespacePostProcessor(ParserContext parserContext) { - registerPostProcessor(parserContext, JsrNamespacePostProcessor.class, BeanDefinition.ROLE_INFRASTRUCTURE, JSR_NAMESPACE_POST_PROCESSOR); - } - - private static void autoRegisterBeanScopeBeanFactoryPostProcessor( - ParserContext parserContext) { - registerPostProcessor(parserContext, JsrBeanScopeBeanFactoryPostProcessor.class, BeanDefinition.ROLE_INFRASTRUCTURE, BEAN_SCOPE_POST_PROCESSOR_BEAN_NAME); - } - - private static void autoRegisterBatchPostProcessor(ParserContext parserContext) { - registerPostProcessor(parserContext, BatchPropertyBeanPostProcessor.class, BeanDefinition.ROLE_INFRASTRUCTURE, BATCH_PROPERTY_POST_PROCESSOR_BEAN_NAME); - } - - private static void autoRegisterJsrAutowiredAnnotationBeanPostProcessor(ParserContext parserContext) { - registerPostProcessor(parserContext, JsrAutowiredAnnotationBeanPostProcessor.class, BeanDefinition.ROLE_INFRASTRUCTURE, AnnotationConfigUtils.AUTOWIRED_ANNOTATION_PROCESSOR_BEAN_NAME); - } - - private static void autoRegisterThreadLocalClassloaderBeanPostProcessor(ParserContext parserContext) { - registerPostProcessor(parserContext, ThreadLocalClassloaderBeanPostProcessor.class, BeanDefinition.ROLE_INFRASTRUCTURE, THREAD_LOCAL_CLASS_LOADER_BEAN_POST_PROCESSOR_BEAN_NAME); - } - - private static void registerPostProcessor(ParserContext parserContext, Class clazz, int role, String beanName) { - BeanDefinitionBuilder beanDefinitionBuilder = BeanDefinitionBuilder.genericBeanDefinition(clazz); - - AbstractBeanDefinition beanDefinition = beanDefinitionBuilder.getBeanDefinition(); - beanDefinition.setRole(role); - - parserContext.getRegistry().registerBeanDefinition(beanName, beanDefinition); - } - - // Registers a bean by the name of {@link #JOB_PROPERTIES_BEAN_NAME} so job level properties can be obtained through - // for example a SPeL expression referencing #{jobProperties['key']} similar to systemProperties resolution. - private static void autoRegisterJobProperties(ParserContext parserContext) { - if (!parserContext.getRegistry().containsBeanDefinition(JOB_PROPERTIES_BEAN_NAME)) { - AbstractBeanDefinition jobPropertiesBeanDefinition = BeanDefinitionBuilder.genericBeanDefinition(HashMap.class).getBeanDefinition(); - jobPropertiesBeanDefinition.setRole(BeanDefinition.ROLE_INFRASTRUCTURE); - - parserContext.getRegistry().registerBeanDefinition(JOB_PROPERTIES_BEAN_NAME, jobPropertiesBeanDefinition); - } - } - - private static void autoRegisterBatchPropertyContext(ParserContext parserContext) { - if (!parserContext.getRegistry().containsBeanDefinition(BATCH_PROPERTY_CONTEXT_BEAN_NAME)) { - AbstractBeanDefinition batchPropertyContextBeanDefinition = - BeanDefinitionBuilder.genericBeanDefinition(BATCH_PROPERTY_CONTEXT_BEAN_CLASS_NAME) - .getBeanDefinition(); - - batchPropertyContextBeanDefinition.setRole(BeanDefinition.ROLE_INFRASTRUCTURE); - - parserContext.getRegistry().registerBeanDefinition(BATCH_PROPERTY_CONTEXT_BEAN_NAME, batchPropertyContextBeanDefinition); - } - } -} diff --git a/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/configuration/xml/JsrSplitParser.java b/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/configuration/xml/JsrSplitParser.java deleted file mode 100644 index 62440141d..000000000 --- a/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/configuration/xml/JsrSplitParser.java +++ /dev/null @@ -1,94 +0,0 @@ -/* - * Copyright 2013 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.springframework.batch.core.jsr.configuration.xml; - -import java.util.Collection; -import java.util.List; - -import org.springframework.beans.PropertyValue; -import org.springframework.beans.factory.config.BeanDefinition; -import org.springframework.beans.factory.config.RuntimeBeanReference; -import org.springframework.beans.factory.support.BeanDefinitionBuilder; -import org.springframework.beans.factory.support.BeanDefinitionRegistry; -import org.springframework.beans.factory.support.ManagedList; -import org.springframework.beans.factory.xml.ParserContext; -import org.springframework.core.task.SimpleAsyncTaskExecutor; -import org.springframework.util.xml.DomUtils; -import org.w3c.dom.Element; - -/** - * Parses a <split /> element as defined in JSR-352. - * - * @author Michael Minella - * @author Chris Schaefer - * @since 3.0 - */ -public class JsrSplitParser { - private static final String TASK_EXECUTOR_PROPERTY_NAME = "taskExecutor"; - private static final String JSR_352_SPLIT_TASK_EXECUTOR_BEAN_NAME = "jsr352splitTaskExecutor"; - - private String jobFactoryRef; - - public JsrSplitParser(String jobFactoryRef) { - this.jobFactoryRef = jobFactoryRef; - } - - public Collection parse(Element element, ParserContext parserContext) { - - String idAttribute = element.getAttribute("id"); - - BeanDefinitionBuilder stateBuilder = BeanDefinitionBuilder - .genericBeanDefinition("org.springframework.batch.core.jsr.job.flow.support.state.JsrSplitState"); - - List flowElements = DomUtils.getChildElementsByTagName(element, "flow"); - - if (flowElements.size() < 2) { - parserContext.getReaderContext().error("A must contain at least two 'flow' elements.", element); - } - - Collection flows = new ManagedList<>(); - int i = 0; - for (Element nextElement : flowElements) { - FlowParser flowParser = new FlowParser(idAttribute + "." + i, jobFactoryRef); - flows.add(flowParser.parse(nextElement, parserContext)); - i++; - } - - stateBuilder.addConstructorArgValue(flows); - stateBuilder.addConstructorArgValue(idAttribute); - - PropertyValue propertyValue = getSplitTaskExecutorPropertyValue(parserContext.getRegistry()); - stateBuilder.addPropertyValue(propertyValue.getName(), propertyValue.getValue()); - - return FlowParser.getNextElements(parserContext, null, stateBuilder.getBeanDefinition(), element); - } - - protected PropertyValue getSplitTaskExecutorPropertyValue(BeanDefinitionRegistry beanDefinitionRegistry) { - PropertyValue propertyValue; - - if (hasBeanDefinition(beanDefinitionRegistry, JSR_352_SPLIT_TASK_EXECUTOR_BEAN_NAME)) { - propertyValue = new PropertyValue(TASK_EXECUTOR_PROPERTY_NAME, new RuntimeBeanReference(JSR_352_SPLIT_TASK_EXECUTOR_BEAN_NAME)); - } else { - propertyValue = new PropertyValue(TASK_EXECUTOR_PROPERTY_NAME, new SimpleAsyncTaskExecutor()); - } - - return propertyValue; - } - - private boolean hasBeanDefinition(BeanDefinitionRegistry beanDefinitionRegistry, String beanName) { - return beanDefinitionRegistry.containsBeanDefinition(beanName); - } -} diff --git a/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/configuration/xml/JsrStepListenerFactoryBean.java b/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/configuration/xml/JsrStepListenerFactoryBean.java deleted file mode 100644 index 70f2c2d7f..000000000 --- a/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/configuration/xml/JsrStepListenerFactoryBean.java +++ /dev/null @@ -1,51 +0,0 @@ -/* - * Copyright 2014 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.springframework.batch.core.jsr.configuration.xml; - -import org.springframework.batch.core.jsr.JsrStepListenerMetaData; -import org.springframework.batch.core.listener.ListenerMetaData; -import org.springframework.batch.core.listener.StepListenerFactoryBean; -import org.springframework.batch.core.listener.StepListenerMetaData; - -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; - -/** - * @author Michael Minella - */ -public class JsrStepListenerFactoryBean extends StepListenerFactoryBean { - - @Override - protected ListenerMetaData getMetaDataFromPropertyName(String propertyName) { - ListenerMetaData metaData = StepListenerMetaData.fromPropertyName(propertyName); - - if(metaData == null) { - metaData = JsrStepListenerMetaData.fromPropertyName(propertyName); - } - - return metaData; - } - - @Override - protected ListenerMetaData[] getMetaDataValues() { - List values = new ArrayList<>(); - Collections.addAll(values, StepListenerMetaData.values()); - Collections.addAll(values, JsrStepListenerMetaData.values()); - - return values.toArray(new ListenerMetaData[values.size()]); - } -} diff --git a/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/configuration/xml/JsrXmlApplicationContext.java b/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/configuration/xml/JsrXmlApplicationContext.java deleted file mode 100644 index 802d07252..000000000 --- a/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/configuration/xml/JsrXmlApplicationContext.java +++ /dev/null @@ -1,90 +0,0 @@ -/* - * Copyright 2013 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.springframework.batch.core.jsr.configuration.xml; - -import java.util.Properties; -import org.springframework.beans.factory.config.BeanDefinition; -import org.springframework.beans.factory.support.BeanDefinitionBuilder; -import org.springframework.beans.factory.xml.XmlBeanDefinitionReader; -import org.springframework.context.support.GenericApplicationContext; -import org.springframework.core.io.Resource; - -/** - *

- * {@link GenericApplicationContext} implementation providing JSR-352 related context operations. - *

- * - * @author Chris Schaefer - * @since 3.0 - */ -public class JsrXmlApplicationContext extends GenericApplicationContext { - private static final String JOB_PARAMETERS_BEAN_DEFINITION_NAME = "jsr_jobParameters"; - - private XmlBeanDefinitionReader reader = new XmlBeanDefinitionReader(this); - - /** - *

- * Create a new context instance with no job parameters. - *

- */ - public JsrXmlApplicationContext() { - reader.setDocumentReaderClass(JsrBeanDefinitionDocumentReader.class); - reader.setEnvironment(this.getEnvironment()); - } - - /** - *

- * Create a new context instance using the provided {@link Properties} representing job - * parameters when pre-processing the job definition document. - *

- * - * @param jobParameters the {@link Properties} representing job parameters - */ - public JsrXmlApplicationContext(Properties jobParameters) { - reader.setDocumentReaderClass(JsrBeanDefinitionDocumentReader.class); - reader.setEnvironment(this.getEnvironment()); - - storeJobParameters(jobParameters); - } - - private void storeJobParameters(Properties properties) { - BeanDefinition jobParameters = BeanDefinitionBuilder.genericBeanDefinition(Properties.class).getBeanDefinition(); - jobParameters.getConstructorArgumentValues().addGenericArgumentValue(properties != null ? properties : new Properties()); - - reader.getRegistry().registerBeanDefinition(JOB_PARAMETERS_BEAN_DEFINITION_NAME, jobParameters); - } - - protected XmlBeanDefinitionReader getReader() { - return reader; - } - - /** - * Set whether to use XML validation. Default is true. - * - * @param validating true if XML should be validated. - */ - public void setValidating(boolean validating) { - this.reader.setValidating(validating); - } - - /** - * Load bean definitions from the given XML resources. - * @param resources one or more resources to load from - */ - public void load(Resource... resources) { - this.reader.loadBeanDefinitions(resources); - } -} diff --git a/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/configuration/xml/ListenerParser.java b/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/configuration/xml/ListenerParser.java deleted file mode 100644 index ae9c0de5b..000000000 --- a/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/configuration/xml/ListenerParser.java +++ /dev/null @@ -1,140 +0,0 @@ -/* - * Copyright 2013-2014 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.springframework.batch.core.jsr.configuration.xml; - -import java.util.List; - -import org.springframework.batch.core.jsr.configuration.support.BatchArtifactType; -import org.springframework.beans.factory.config.BeanDefinition; -import org.springframework.beans.factory.config.RuntimeBeanReference; -import org.springframework.beans.factory.parsing.CompositeComponentDefinition; -import org.springframework.beans.factory.support.AbstractBeanDefinition; -import org.springframework.beans.factory.support.BeanDefinitionBuilder; -import org.springframework.beans.factory.support.BeanDefinitionRegistry; -import org.springframework.beans.factory.support.ManagedList; -import org.springframework.beans.factory.xml.ParserContext; -import org.springframework.util.xml.DomUtils; -import org.w3c.dom.Element; - -/** - * Parses the various listeners defined in JSR-352. Current state assumes - * the ref attributes point to implementations of Spring Batch interfaces - * and not JSR interfaces - * - * @author Michael Minella - * @author Chris Schaefer - * @since 3.0 - */ -public class ListenerParser { - private static final String REF_ATTRIBUTE = "ref"; - private static final String LISTENER_ELEMENT = "listener"; - private static final String LISTENERS_ELEMENT = "listeners"; - private static final String SCOPE_STEP = "step"; - private static final String SCOPE_JOB = "job"; - - private Class listenerType; - private String propertyKey; - - public ListenerParser(Class listenerType, String propertyKey) { - this.propertyKey = propertyKey; - this.listenerType = listenerType; - } - - public void parseListeners(Element element, ParserContext parserContext, AbstractBeanDefinition bd, String stepName) { - ManagedList listeners = parseListeners(element, parserContext, stepName); - - if(listeners.size() > 0) { - bd.getPropertyValues().add(propertyKey, listeners); - } - } - - public void parseListeners(Element element, ParserContext parserContext, BeanDefinitionBuilder builder) { - ManagedList listeners = parseListeners(element, parserContext, ""); - - if(listeners.size() > 0) { - builder.addPropertyValue(propertyKey, listeners); - } - } - - private ManagedList parseListeners(Element element, ParserContext parserContext, String stepName) { - List listenersElements = DomUtils.getChildElementsByTagName(element, LISTENERS_ELEMENT); - - ManagedList listeners = new ManagedList<>(); - - if (listenersElements.size() == 1) { - Element listenersElement = listenersElements.get(0); - CompositeComponentDefinition compositeDef = new CompositeComponentDefinition(listenersElement.getTagName(), - parserContext.extractSource(element)); - parserContext.pushContainingComponent(compositeDef); - listeners.setMergeEnabled(false); - List listenerElements = DomUtils.getChildElementsByTagName(listenersElement, LISTENER_ELEMENT); - for (Element listenerElement : listenerElements) { - String beanName = listenerElement.getAttribute(REF_ATTRIBUTE); - - BeanDefinitionBuilder bd = BeanDefinitionBuilder.genericBeanDefinition(listenerType); - bd.addPropertyValue("delegate", new RuntimeBeanReference(beanName)); - - applyListenerScope(beanName, parserContext.getRegistry()); - - listeners.add(bd.getBeanDefinition()); - - new PropertyParser(beanName, parserContext, getBatchArtifactType(stepName), stepName).parseProperties(listenerElement); - } - parserContext.popAndRegisterContainingComponent(); - } - else if (listenersElements.size() > 1) { - parserContext.getReaderContext().error( - "The '' element may not appear more than once in a single " + element.getLocalName(), element); - } - - return listeners; - } - - protected void applyListenerScope(String beanName, BeanDefinitionRegistry beanDefinitionRegistry) { - BeanDefinition beanDefinition = getListenerBeanDefinition(beanName, beanDefinitionRegistry); - beanDefinition.setScope(getListenerScope()); - beanDefinition.setLazyInit(isLazyInit()); - - if (!beanDefinitionRegistry.containsBeanDefinition(beanName)) { - beanDefinitionRegistry.registerBeanDefinition(beanName, beanDefinition); - } - } - - private BeanDefinition getListenerBeanDefinition(String beanName, BeanDefinitionRegistry beanDefinitionRegistry) { - if (beanDefinitionRegistry.containsBeanDefinition(beanName)) { - return beanDefinitionRegistry.getBeanDefinition(beanName); - } - - return BeanDefinitionBuilder.genericBeanDefinition(beanName).getBeanDefinition(); - } - - private boolean isLazyInit() { - return listenerType == JsrJobListenerFactoryBean.class; - } - - private String getListenerScope() { - if (listenerType == JsrJobListenerFactoryBean.class) { - return SCOPE_JOB; - } - - return SCOPE_STEP; - } - - private BatchArtifactType getBatchArtifactType(String stepName) { - return (stepName != null && !"".equals(stepName)) ? BatchArtifactType.STEP_ARTIFACT - : BatchArtifactType.ARTIFACT; - } -} diff --git a/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/configuration/xml/PartitionParser.java b/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/configuration/xml/PartitionParser.java deleted file mode 100644 index 7c4ccb66b..000000000 --- a/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/configuration/xml/PartitionParser.java +++ /dev/null @@ -1,187 +0,0 @@ -/* - * Copyright 2013-2018 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.springframework.batch.core.jsr.configuration.xml; - -import java.util.List; -import java.util.concurrent.ConcurrentLinkedQueue; -import java.util.concurrent.locks.ReentrantLock; - -import org.springframework.batch.core.jsr.configuration.support.BatchArtifactType; -import org.springframework.batch.core.jsr.partition.JsrPartitionHandler; -import org.springframework.beans.MutablePropertyValues; -import org.springframework.beans.factory.config.RuntimeBeanReference; -import org.springframework.beans.factory.support.AbstractBeanDefinition; -import org.springframework.beans.factory.support.BeanDefinitionBuilder; -import org.springframework.beans.factory.support.BeanDefinitionRegistry; -import org.springframework.beans.factory.xml.ParserContext; -import org.springframework.util.StringUtils; -import org.springframework.util.xml.DomUtils; -import org.w3c.dom.Element; - -/** - * Parser for the <partition> element as defined by JSR-352. - * - * @author Michael Minella - * @author Mahmoud Ben Hassine - * @since 3.0 - */ -public class PartitionParser { - - private static final String REF = "ref"; - private static final String MAPPER_ELEMENT = "mapper"; - private static final String PLAN_ELEMENT = "plan"; - private static final String PARTITIONS_ATTRIBUTE = "partitions"; - private static final String THREADS_ATTRIBUTE = "threads"; - private static final String PROPERTIES_ELEMENT = "properties"; - private static final String ANALYZER_ELEMENT = "analyzer"; - private static final String COLLECTOR_ELEMENT = "collector"; - private static final String REDUCER_ELEMENT = "reducer"; - private static final String PARTITION_CONTEXT_PROPERTY = "propertyContext"; - private static final String PARTITION_MAPPER_PROPERTY = "partitionMapper"; - private static final String PARTITION_ANALYZER_PROPERTY = "partitionAnalyzer"; - private static final String PARTITION_REDUCER_PROPERTY = "partitionReducer"; - private static final String PARTITION_QUEUE_PROPERTY = "partitionDataQueue"; - private static final String LISTENERS_PROPERTY = "listeners"; - private static final String THREADS_PROPERTY = "threads"; - private static final String PARTITIONS_PROPERTY = "partitions"; - private static final String PARTITION_LOCK_PROPERTY = "partitionLock"; - - private final String name; - private boolean allowStartIfComplete = false; - - /** - * @param stepName the name of the step that is being partitioned - * @param allowStartIfComplete boolean to establish the allowStartIfComplete property for partition properties. - */ - public PartitionParser(String stepName, boolean allowStartIfComplete) { - this.name = stepName; - this.allowStartIfComplete = allowStartIfComplete; - } - - public void parse(Element element, AbstractBeanDefinition bd, ParserContext parserContext, String stepName) { - BeanDefinitionRegistry registry = parserContext.getRegistry(); - MutablePropertyValues factoryBeanProperties = bd.getPropertyValues(); - - AbstractBeanDefinition partitionHandlerDefinition = BeanDefinitionBuilder.genericBeanDefinition(JsrPartitionHandler.class) - .getBeanDefinition(); - - MutablePropertyValues properties = partitionHandlerDefinition.getPropertyValues(); - properties.addPropertyValue(PARTITION_CONTEXT_PROPERTY, new RuntimeBeanReference("batchPropertyContext")); - properties.addPropertyValue("jobRepository", new RuntimeBeanReference("jobRepository")); - properties.addPropertyValue("allowStartIfComplete", allowStartIfComplete); - - parseMapperElement(element, parserContext, properties); - parsePartitionPlan(element, parserContext, stepName, properties); - parseAnalyzerElement(element, parserContext, properties); - parseReducerElement(element, parserContext, factoryBeanProperties); - parseCollectorElement(element, parserContext, factoryBeanProperties, - properties); - - String partitionHandlerBeanName = name + ".partitionHandler"; - registry.registerBeanDefinition(partitionHandlerBeanName, partitionHandlerDefinition); - factoryBeanProperties.add("partitionHandler", new RuntimeBeanReference(partitionHandlerBeanName)); - } - - private void parseCollectorElement(Element element, - ParserContext parserContext, - MutablePropertyValues factoryBeanProperties, - MutablePropertyValues properties) { - Element collectorElement = DomUtils.getChildElementByTagName(element, COLLECTOR_ELEMENT); - - if(collectorElement != null) { - // Only needed if a collector is used - registerCollectorAnalyzerQueue(parserContext); - properties.add(PARTITION_QUEUE_PROPERTY, new RuntimeBeanReference(name + "PartitionQueue")); - properties.add(PARTITION_LOCK_PROPERTY, new RuntimeBeanReference(name + "PartitionLock")); - factoryBeanProperties.add("partitionQueue", new RuntimeBeanReference(name + "PartitionQueue")); - factoryBeanProperties.add("partitionLock", new RuntimeBeanReference(name + "PartitionLock")); - String collectorName = collectorElement.getAttribute(REF); - factoryBeanProperties.add(LISTENERS_PROPERTY, new RuntimeBeanReference(collectorName)); - new PropertyParser(collectorName, parserContext, BatchArtifactType.STEP_ARTIFACT, name).parseProperties(collectorElement); - } - } - - private void parseReducerElement(Element element, - ParserContext parserContext, - MutablePropertyValues factoryBeanProperties) { - Element reducerElement = DomUtils.getChildElementByTagName(element, REDUCER_ELEMENT); - - if(reducerElement != null) { - String reducerName = reducerElement.getAttribute(REF); - factoryBeanProperties.add(PARTITION_REDUCER_PROPERTY, new RuntimeBeanReference(reducerName)); - new PropertyParser(reducerName, parserContext, BatchArtifactType.STEP_ARTIFACT, name).parseProperties(reducerElement); - } - } - - private void parseAnalyzerElement(Element element, - ParserContext parserContext, MutablePropertyValues properties) { - Element analyzerElement = DomUtils.getChildElementByTagName(element, ANALYZER_ELEMENT); - - if(analyzerElement != null) { - String analyzerName = analyzerElement.getAttribute(REF); - properties.add(PARTITION_ANALYZER_PROPERTY, new RuntimeBeanReference(analyzerName)); - new PropertyParser(analyzerName, parserContext, BatchArtifactType.STEP_ARTIFACT, name).parseProperties(analyzerElement); - } - } - - private void parseMapperElement(Element element, - ParserContext parserContext, MutablePropertyValues properties) { - Element mapperElement = DomUtils.getChildElementByTagName(element, MAPPER_ELEMENT); - - if(mapperElement != null) { - String mapperName = mapperElement.getAttribute(REF); - properties.add(PARTITION_MAPPER_PROPERTY, new RuntimeBeanReference(mapperName)); - new PropertyParser(mapperName, parserContext, BatchArtifactType.STEP_ARTIFACT, name).parseProperties(mapperElement); - } - } - - private void registerCollectorAnalyzerQueue(ParserContext parserContext) { - AbstractBeanDefinition partitionQueueDefinition = BeanDefinitionBuilder.genericBeanDefinition(ConcurrentLinkedQueue.class) - .getBeanDefinition(); - AbstractBeanDefinition partitionLockDefinition = BeanDefinitionBuilder.genericBeanDefinition(ReentrantLock.class) - .getBeanDefinition(); - - parserContext.getRegistry().registerBeanDefinition(name + "PartitionQueue", partitionQueueDefinition); - parserContext.getRegistry().registerBeanDefinition(name + "PartitionLock", partitionLockDefinition); - } - - protected void parsePartitionPlan(Element element, - ParserContext parserContext, String stepName, - MutablePropertyValues properties) { - Element planElement = DomUtils.getChildElementByTagName(element, PLAN_ELEMENT); - - if(planElement != null) { - String partitions = planElement.getAttribute(PARTITIONS_ATTRIBUTE); - String threads = planElement.getAttribute(THREADS_ATTRIBUTE); - - if(!StringUtils.hasText(threads)) { - threads = partitions; - } - - List partitionProperties = DomUtils.getChildElementsByTagName(planElement, PROPERTIES_ELEMENT); - - if(partitionProperties != null) { - for (Element partition : partitionProperties) { - String partitionStepName = stepName + ":partition" + partition.getAttribute("partition"); - new PropertyParser(partitionStepName, parserContext, BatchArtifactType.STEP, partitionStepName).parseProperty(partition); - } - } - - properties.add(THREADS_PROPERTY, threads); - properties.add(PARTITIONS_PROPERTY, partitions); - } - } -} diff --git a/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/configuration/xml/PropertyParser.java b/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/configuration/xml/PropertyParser.java deleted file mode 100644 index 475ade25d..000000000 --- a/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/configuration/xml/PropertyParser.java +++ /dev/null @@ -1,192 +0,0 @@ -/* - * Copyright 2013-2014 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.springframework.batch.core.jsr.configuration.xml; - -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.Properties; - -import org.springframework.batch.core.jsr.configuration.support.BatchArtifactType; -import org.springframework.beans.factory.config.BeanDefinition; -import org.springframework.beans.factory.support.ManagedMap; -import org.springframework.beans.factory.xml.ParserContext; -import org.springframework.util.xml.DomUtils; -import org.w3c.dom.Element; - -/** - *

- * Parser for the <properties /> element defined by JSR-352. - *

- * - * @author Chris Schaefer - * @since 3.0 - */ -public class PropertyParser { - private static final String PROPERTY_ELEMENT = "property"; - private static final String PROPERTIES_ELEMENT = "properties"; - private static final String PROPERTY_NAME_ATTRIBUTE = "name"; - private static final String PROPERTY_VALUE_ATTRIBUTE = "value"; - private static final String JOB_PROPERTIES_BEAN_NAME = "jobProperties"; - private static final String BATCH_PROPERTY_CONTEXT_BEAN_NAME = "batchPropertyContext"; - private static final String JOB_PROPERTIES_PROPERTY_NAME = "jobProperties"; - private static final String STEP_PROPERTIES_PROPERTY_NAME = "stepProperties"; - private static final String ARTIFACT_PROPERTIES_PROPERTY_NAME = "artifactProperties"; - private static final String STEP_ARTIFACT_PROPERTIES_PROPERTY_NAME = "stepArtifactProperties"; - - private String beanName; - private String stepName; - private ParserContext parserContext; - private BatchArtifactType batchArtifactType; - - public PropertyParser(String beanName, ParserContext parserContext, BatchArtifactType batchArtifactType) { - this.beanName = beanName; - this.parserContext = parserContext; - this.batchArtifactType = batchArtifactType; - } - - public PropertyParser(String beanName, ParserContext parserContext, BatchArtifactType batchArtifactType, String stepName) { - this(beanName, parserContext, batchArtifactType); - this.stepName = stepName; - } - - /** - *

- * Parses <property> tag values from the provided {@link Element} if it contains a <properties /> element. - * Only one <properties /> element may be present. <property> elements have a name and value attribute - * which represent the property entries key and value. - *

- * - * @param element the element to parse looking for <properties /> - */ - public void parseProperties(Element element) { - List propertiesElements = DomUtils.getChildElementsByTagName(element, PROPERTIES_ELEMENT); - - if (propertiesElements.size() == 1) { - parsePropertyElement(propertiesElements.get(0)); - } else if (propertiesElements.size() > 1) { - parserContext.getReaderContext().error("The element may not appear more than once.", element); - } - } - - /** - *

- * Parses a <property> tag value from the provided {@link Element}. <property> elements have a name and - * value attribute which represent the property entries key and value. - *

- * - * @param element the element to parse looking for <property/> - */ - public void parseProperty(Element element) { - parsePropertyElement(element); - } - - private void parsePropertyElement(Element propertyElement) { - Properties properties = new Properties(); - - for (Element element : DomUtils.getChildElementsByTagName(propertyElement, PROPERTY_ELEMENT)) { - properties.put(element.getAttribute(PROPERTY_NAME_ATTRIBUTE), element.getAttribute(PROPERTY_VALUE_ATTRIBUTE)); - } - - setProperties(properties); - setJobPropertiesBean(properties); - } - - private void setProperties(Properties properties) { - Object propertyValue; - BeanDefinition beanDefinition = parserContext.getRegistry().getBeanDefinition(BATCH_PROPERTY_CONTEXT_BEAN_NAME); - - if(batchArtifactType.equals(BatchArtifactType.JOB)) { - propertyValue = getJobProperties(properties); - } else if (batchArtifactType.equals(BatchArtifactType.STEP)) { - propertyValue = getProperties(stepName, properties); - } else if (batchArtifactType.equals(BatchArtifactType.ARTIFACT)) { - propertyValue = getProperties(beanName, properties); - } else if (batchArtifactType.equals(BatchArtifactType.STEP_ARTIFACT)) { - propertyValue = getStepArtifactProperties(beanDefinition, properties); - } else { - throw new IllegalStateException("Unhandled BatchArtifactType of: " + batchArtifactType); - } - - beanDefinition.getPropertyValues().addPropertyValue(getPropertyName(batchArtifactType), propertyValue); - } - - private Map getProperties(String keyName, Properties properties) { - ManagedMap stepProperties = new ManagedMap<>(); - stepProperties.setMergeEnabled(true); - stepProperties.put(keyName, properties); - - return stepProperties; - } - - private Properties getJobProperties(Properties properties) { - return properties; - } - - @SuppressWarnings("unchecked") - private Map> getStepArtifactProperties(BeanDefinition beanDefinition, Properties properties) { - ManagedMap> stepArtifacts = new ManagedMap<>(); - stepArtifacts.setMergeEnabled(true); - - Map> existingArtifacts - = (Map>) beanDefinition.getPropertyValues().get(getPropertyName(batchArtifactType)); - - ManagedMap artifactProperties = new ManagedMap<>(); - artifactProperties.setMergeEnabled(true); - - if(existingArtifacts != null && existingArtifacts.containsKey(stepName)) { - Map existingArtifactsMap = existingArtifacts.get(stepName); - - for(Map.Entry existingArtifactEntry : existingArtifactsMap.entrySet()) { - artifactProperties.put(existingArtifactEntry.getKey(), existingArtifactEntry.getValue()); - } - } - - artifactProperties.put(beanName, properties); - stepArtifacts.put(stepName, artifactProperties); - - return stepArtifacts; - } - - private void setJobPropertiesBean(Properties properties) { - if (batchArtifactType.equals(BatchArtifactType.JOB)) { - Map jobProperties = new HashMap<>(); - - if (properties != null && !properties.isEmpty()) { - for (String param : properties.stringPropertyNames()) { - jobProperties.put(param, properties.getProperty(param)); - } - } - - BeanDefinition jobPropertiesBeanDefinition = parserContext.getRegistry().getBeanDefinition(JOB_PROPERTIES_BEAN_NAME); - jobPropertiesBeanDefinition.getConstructorArgumentValues().addGenericArgumentValue(jobProperties); - } - } - - private String getPropertyName(BatchArtifactType batchArtifactType) { - if(batchArtifactType.equals(BatchArtifactType.JOB)) { - return JOB_PROPERTIES_PROPERTY_NAME; - } else if (batchArtifactType.equals(BatchArtifactType.STEP)) { - return STEP_PROPERTIES_PROPERTY_NAME; - } else if (batchArtifactType.equals(BatchArtifactType.ARTIFACT)) { - return ARTIFACT_PROPERTIES_PROPERTY_NAME; - } else if (batchArtifactType.equals(BatchArtifactType.STEP_ARTIFACT)) { - return STEP_ARTIFACT_PROPERTIES_PROPERTY_NAME; - } else { - throw new IllegalStateException("Unhandled BatchArtifactType of: " + batchArtifactType); - } - } -} diff --git a/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/configuration/xml/StepFactoryBean.java b/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/configuration/xml/StepFactoryBean.java deleted file mode 100644 index 11106cf6e..000000000 --- a/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/configuration/xml/StepFactoryBean.java +++ /dev/null @@ -1,299 +0,0 @@ -/* - * Copyright 2013-2021 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.springframework.batch.core.jsr.configuration.xml; - -import jakarta.batch.api.Batchlet; -import jakarta.batch.api.chunk.CheckpointAlgorithm; -import jakarta.batch.api.chunk.ItemProcessor; -import jakarta.batch.api.chunk.ItemReader; -import jakarta.batch.api.chunk.ItemWriter; -import jakarta.batch.api.partition.PartitionReducer; - -import org.springframework.batch.core.Step; -import org.springframework.batch.core.configuration.xml.StepParserStepFactoryBean; -import org.springframework.batch.core.jsr.configuration.support.BatchPropertyContext; -import org.springframework.batch.core.jsr.partition.JsrPartitionHandler; -import org.springframework.batch.core.jsr.step.batchlet.BatchletAdapter; -import org.springframework.batch.core.jsr.step.builder.JsrBatchletStepBuilder; -import org.springframework.batch.core.jsr.step.builder.JsrFaultTolerantStepBuilder; -import org.springframework.batch.core.jsr.step.builder.JsrPartitionStepBuilder; -import org.springframework.batch.core.jsr.step.builder.JsrSimpleStepBuilder; -import org.springframework.batch.core.step.builder.FaultTolerantStepBuilder; -import org.springframework.batch.core.step.builder.SimpleStepBuilder; -import org.springframework.batch.core.step.builder.StepBuilder; -import org.springframework.batch.core.step.builder.TaskletStepBuilder; -import org.springframework.batch.core.step.tasklet.Tasklet; -import org.springframework.batch.core.step.tasklet.TaskletStep; -import org.springframework.batch.jsr.item.ItemProcessorAdapter; -import org.springframework.batch.jsr.item.ItemReaderAdapter; -import org.springframework.batch.jsr.item.ItemWriterAdapter; -import org.springframework.batch.jsr.repeat.CheckpointAlgorithmAdapter; -import org.springframework.batch.repeat.CompletionPolicy; -import org.springframework.batch.repeat.policy.CompositeCompletionPolicy; -import org.springframework.batch.repeat.policy.SimpleCompletionPolicy; -import org.springframework.batch.repeat.policy.TimeoutTerminationPolicy; -import org.springframework.beans.factory.FactoryBean; -import org.springframework.util.Assert; - -/** - * This {@link FactoryBean} is used by the JSR-352 namespace parser to create - * {@link Step} objects. It stores all of the properties that are - * configurable on the <step/>. - * - * @author Michael Minella - * @author Chris Schaefer - * @author Mahmoud Ben Hassine - * @since 3.0 - */ -public class StepFactoryBean extends StepParserStepFactoryBean { - - @SuppressWarnings("unused") - private int partitions; - private BatchPropertyContext batchPropertyContext; - - private PartitionReducer reducer; - - private Integer timeout; - - public void setPartitionReducer(PartitionReducer reducer) { - this.reducer = reducer; - } - - public void setBatchPropertyContext(BatchPropertyContext context) { - this.batchPropertyContext = context; - } - - public void setPartitions(int partitions) { - this.partitions = partitions; - } - - /** - * Create a {@link Step} from the configuration provided. - * - * @see FactoryBean#getObject() - */ - @Override - public Step getObject() throws Exception { - if(hasPartitionElement()) { - return createPartitionStep(); - } - else if (hasChunkElement()) { - Assert.isTrue(!hasTasklet(), "Step [" + getName() - + "] has both a element and a 'ref' attribute referencing a Tasklet."); - - validateFaultTolerantSettings(); - - if (isFaultTolerant()) { - return createFaultTolerantStep(); - } - else { - return createSimpleStep(); - } - } - else if (hasTasklet()) { - return createTaskletStep(); - } - else { - return createFlowStep(); - } - } - - /** - * @return a new {@link TaskletStep} - */ - @Override - protected TaskletStep createTaskletStep() { - JsrBatchletStepBuilder jsrBatchletStepBuilder = new JsrBatchletStepBuilder(new StepBuilder(getName())); - jsrBatchletStepBuilder.setBatchPropertyContext(batchPropertyContext); - TaskletStepBuilder builder = jsrBatchletStepBuilder.tasklet(getTasklet()); - enhanceTaskletStepBuilder(builder); - return builder.build(); - } - - @Override - protected void setChunk(SimpleStepBuilder builder) { - if(timeout != null && getCommitInterval() != null) { - CompositeCompletionPolicy completionPolicy = new CompositeCompletionPolicy(); - CompletionPolicy [] policies = new CompletionPolicy[2]; - policies[0] = new SimpleCompletionPolicy(getCommitInterval()); - policies[1] = new TimeoutTerminationPolicy(timeout * 1000); - completionPolicy.setPolicies(policies); - builder.chunk(completionPolicy); - } else if(timeout != null) { - builder.chunk(new TimeoutTerminationPolicy(timeout * 1000)); - } else if(getCommitInterval() != null) { - builder.chunk(getCommitInterval()); - } - - if(getCompletionPolicy() != null) { - builder.chunk(getCompletionPolicy()); - } - } - - - @Override - protected Step createPartitionStep() { - // Creating a partitioned step for the JSR needs to create two steps...the partitioned step and the step being executed. - Step executedStep = null; - - if (hasChunkElement()) { - Assert.isTrue(!hasTasklet(), "Step [" + getName() - + "] has both a element and a 'ref' attribute referencing a Tasklet."); - - validateFaultTolerantSettings(); - - if (isFaultTolerant()) { - executedStep = createFaultTolerantStep(); - } - else { - executedStep = createSimpleStep(); - } - } - else if (hasTasklet()) { - executedStep = createTaskletStep(); - } - - ((JsrPartitionHandler) super.getPartitionHandler()).setStep(executedStep); - - JsrPartitionStepBuilder builder = new JsrSimpleStepBuilder(new StepBuilder(executedStep.getName())).partitioner(executedStep); - - enhanceCommonStep(builder); - - if (getPartitionHandler() != null) { - builder.partitionHandler(getPartitionHandler()); - } - - if(reducer != null) { - builder.reducer(reducer); - } - - builder.aggregator(getStepExecutionAggergator()); - - return builder.build(); - } - - /** - * Wraps a {@link Batchlet} in a {@link BatchletAdapter} if required for consumption - * by the rest of the framework. - * - * @param tasklet {@link Tasklet} or {@link Batchlet} implementation - * @throws IllegalArgumentException if tasklet does not implement either Tasklet or Batchlet - */ - public void setStepTasklet(Object tasklet) { - if(tasklet instanceof Tasklet) { - super.setTasklet((Tasklet) tasklet); - } else if(tasklet instanceof Batchlet){ - super.setTasklet(new BatchletAdapter((Batchlet) tasklet)); - } else { - throw new IllegalArgumentException("The field tasklet must reference an implementation of " + - "either org.springframework.batch.core.step.tasklet.Tasklet or jakarta.batch.api.Batchlet"); - } - } - - /** - * Wraps a {@link ItemReader} in a {@link ItemReaderAdapter} if required for consumption - * by the rest of the framework. - * - * @param itemReader {@link ItemReader} or {@link org.springframework.batch.item.ItemReader} implementation - * @throws IllegalArgumentException if itemReader does not implement either version of ItemReader - */ - @SuppressWarnings("unchecked") - public void setStepItemReader(Object itemReader) { - if(itemReader instanceof org.springframework.batch.item.ItemReader) { - super.setItemReader((org.springframework.batch.item.ItemReader) itemReader); - } else if(itemReader instanceof ItemReader){ - super.setItemReader(new ItemReaderAdapter<>((ItemReader) itemReader)); - } else { - throw new IllegalArgumentException("The definition of an item reader must implement either " + - "org.springframework.batch.item.ItemReader or jakarta.batch.api.chunk.ItemReader"); - } - } - - /** - * Wraps a {@link ItemProcessor} in a {@link ItemProcessorAdapter} if required for consumption - * by the rest of the framework. - * - * @param itemProcessor {@link ItemProcessor} or {@link org.springframework.batch.item.ItemProcessor} implementation - * @throws IllegalArgumentException if itemProcessor does not implement either version of ItemProcessor - */ - @SuppressWarnings("unchecked") - public void setStepItemProcessor(Object itemProcessor) { - if(itemProcessor instanceof org.springframework.batch.item.ItemProcessor) { - super.setItemProcessor((org.springframework.batch.item.ItemProcessor) itemProcessor); - } else if(itemProcessor instanceof ItemProcessor){ - super.setItemProcessor(new ItemProcessorAdapter<>((ItemProcessor) itemProcessor)); - } else { - throw new IllegalArgumentException("The definition of an item processor must implement either " + - "org.springframework.batch.item.ItemProcessor or jakarta.batch.api.chunk.ItemProcessor"); - } - } - - /** - * Wraps a {@link ItemWriter} in a {@link ItemWriterAdapter} if required for consumption - * by the rest of the framework. - * - * @param itemWriter {@link ItemWriter} or {@link org.springframework.batch.item.ItemWriter} implementation - * @throws IllegalArgumentException if itemWriter does not implement either version of ItemWriter - */ - @SuppressWarnings("unchecked") - public void setStepItemWriter(Object itemWriter) { - if(itemWriter instanceof org.springframework.batch.item.ItemWriter) { - super.setItemWriter((org.springframework.batch.item.ItemWriter) itemWriter); - } else if(itemWriter instanceof ItemWriter){ - super.setItemWriter(new ItemWriterAdapter<>((ItemWriter) itemWriter)); - } else { - throw new IllegalArgumentException("The definition of an item writer must implement either " + - "org.springframework.batch.item.ItemWriter or jakarta.batch.api.chunk.ItemWriter"); - } - } - - /** - * Wraps a {@link CheckpointAlgorithm} in a {@link CheckpointAlgorithmAdapter} if required for consumption - * by the rest of the framework. - * - * @param chunkCompletionPolicy {@link CompletionPolicy} or {@link CheckpointAlgorithm} implementation - * @throws IllegalArgumentException if chunkCompletionPolicy does not implement either CompletionPolicy or CheckpointAlgorithm - */ - public void setStepChunkCompletionPolicy(Object chunkCompletionPolicy) { - if(chunkCompletionPolicy instanceof CompletionPolicy) { - super.setChunkCompletionPolicy((CompletionPolicy) chunkCompletionPolicy); - } else if(chunkCompletionPolicy instanceof CheckpointAlgorithm) { - super.setChunkCompletionPolicy(new CheckpointAlgorithmAdapter((CheckpointAlgorithm) chunkCompletionPolicy)); - } else { - throw new IllegalArgumentException("The definition of a chunk completion policy must implement either " + - "org.springframework.batch.repeat.CompletionPolicy or jakarta.batch.api.chunk.CheckpointAlgorithm"); - } - } - - @Override - protected FaultTolerantStepBuilder getFaultTolerantStepBuilder(String stepName) { - JsrFaultTolerantStepBuilder jsrFaultTolerantStepBuilder = new JsrFaultTolerantStepBuilder<>( - new StepBuilder(stepName)); - jsrFaultTolerantStepBuilder.setBatchPropertyContext(batchPropertyContext); - return jsrFaultTolerantStepBuilder; - } - - @Override - protected SimpleStepBuilder getSimpleStepBuilder(String stepName) { - JsrSimpleStepBuilder jsrSimpleStepBuilder = new JsrSimpleStepBuilder<>(new StepBuilder(stepName)); - jsrSimpleStepBuilder.setBatchPropertyContext(batchPropertyContext); - return jsrSimpleStepBuilder; - } - - public void setTimeout(Integer timeout) { - this.timeout = timeout; - } -} diff --git a/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/configuration/xml/StepParser.java b/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/configuration/xml/StepParser.java deleted file mode 100644 index a66d57c48..000000000 --- a/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/configuration/xml/StepParser.java +++ /dev/null @@ -1,103 +0,0 @@ -/* - * Copyright 2013-2018 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.springframework.batch.core.jsr.configuration.xml; - -import org.springframework.batch.core.jsr.configuration.support.BatchArtifactType; -import org.springframework.batch.core.jsr.job.flow.support.state.JsrStepState; -import org.springframework.beans.factory.config.BeanDefinition; -import org.springframework.beans.factory.config.RuntimeBeanReference; -import org.springframework.beans.factory.parsing.BeanComponentDefinition; -import org.springframework.beans.factory.support.AbstractBeanDefinition; -import org.springframework.beans.factory.support.BeanDefinitionBuilder; -import org.springframework.beans.factory.xml.AbstractSingleBeanDefinitionParser; -import org.springframework.beans.factory.xml.ParserContext; -import org.springframework.util.StringUtils; -import org.w3c.dom.Element; -import org.w3c.dom.Node; -import org.w3c.dom.NodeList; - -import java.util.Collection; - -/** - * Parser for the <step /> element defined by JSR-352. - * - * @author Michael Minella - * @author Glenn Renfro - * @author Chris Schaefer - * @author Mahmoud Ben Hassine - * @since 3.0 - */ -public class StepParser extends AbstractSingleBeanDefinitionParser { - private static final String CHUNK_ELEMENT = "chunk"; - private static final String BATCHLET_ELEMENT = "batchlet"; - private static final String ALLOW_START_IF_COMPLETE_ATTRIBUTE = "allow-start-if-complete"; - private static final String START_LIMIT_ATTRIBUTE = "start-limit"; - private static final String SPLIT_ID_ATTRIBUTE = "id"; - private static final String PARTITION_ELEMENT = "partition"; - - protected Collection parse(Element element, ParserContext parserContext, BeanDefinitionBuilder builder) { - BeanDefinitionBuilder defBuilder = BeanDefinitionBuilder.genericBeanDefinition(); - AbstractBeanDefinition bd = defBuilder.getRawBeanDefinition(); - bd.setBeanClass(StepFactoryBean.class); - bd.getPropertyValues().addPropertyValue("batchPropertyContext", new RuntimeBeanReference("batchPropertyContext")); - - BeanDefinitionBuilder stateBuilder = BeanDefinitionBuilder.genericBeanDefinition(JsrStepState.class); - - String stepName = element.getAttribute(SPLIT_ID_ATTRIBUTE); - builder.addPropertyValue("name", stepName); - - parserContext.registerBeanComponent(new BeanComponentDefinition(bd, stepName)); - stateBuilder.addConstructorArgReference(stepName); - - String startLimit = element.getAttribute(START_LIMIT_ATTRIBUTE); - if(StringUtils.hasText(startLimit)) { - bd.getPropertyValues().addPropertyValue("startLimit", startLimit); - } - - String allowStartIfComplete = element.getAttribute(ALLOW_START_IF_COMPLETE_ATTRIBUTE); - boolean allowStartIfCompleteValue = false; - if(StringUtils.hasText(allowStartIfComplete)) { - bd.getPropertyValues().addPropertyValue("allowStartIfComplete", - allowStartIfComplete); - allowStartIfCompleteValue = Boolean.valueOf(allowStartIfComplete); - } - - new ListenerParser(JsrStepListenerFactoryBean.class, "listeners").parseListeners(element, parserContext, bd, stepName); - new PropertyParser(stepName, parserContext, BatchArtifactType.STEP, stepName).parseProperties(element); - - // look at all nested elements - NodeList children = element.getChildNodes(); - - for (int i = 0; i < children.getLength(); i++) { - Node nd = children.item(i); - - if (nd instanceof Element) { - Element nestedElement = (Element) nd; - String name = nestedElement.getLocalName(); - - if(name.equalsIgnoreCase(BATCHLET_ELEMENT)) { - new BatchletParser().parseBatchlet(nestedElement, bd, parserContext, stepName); - } else if(name.equals(CHUNK_ELEMENT)) { - new ChunkParser().parse(nestedElement, bd, parserContext, stepName); - } else if(name.equals(PARTITION_ELEMENT)) { - new PartitionParser(stepName, allowStartIfCompleteValue).parse(nestedElement, bd, parserContext, stepName); - } - } - } - - return FlowParser.getNextElements(parserContext, stepName, stateBuilder.getBeanDefinition(), element); - } -} diff --git a/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/configuration/xml/package-info.java b/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/configuration/xml/package-info.java deleted file mode 100644 index 582712ada..000000000 --- a/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/configuration/xml/package-info.java +++ /dev/null @@ -1,10 +0,0 @@ -/** - * XML parsers for JSR-352 based Job Specification Language (JSL). - * - * @author Michael Minella - * @author Mahmoud Ben Hassine - */ -@NonNullApi -package org.springframework.batch.core.jsr.configuration.xml; - -import org.springframework.lang.NonNullApi; diff --git a/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/job/JsrStepHandler.java b/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/job/JsrStepHandler.java deleted file mode 100644 index 36092e81e..000000000 --- a/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/job/JsrStepHandler.java +++ /dev/null @@ -1,157 +0,0 @@ -/* - * Copyright 2014-2021 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.springframework.batch.core.jsr.job; - -import java.util.List; - -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -import org.springframework.batch.core.BatchStatus; -import org.springframework.batch.core.JobExecution; -import org.springframework.batch.core.StartLimitExceededException; -import org.springframework.batch.core.Step; -import org.springframework.batch.core.StepExecution; -import org.springframework.batch.core.explore.JobExplorer; -import org.springframework.batch.core.job.SimpleStepHandler; -import org.springframework.batch.core.repository.JobRepository; -import org.springframework.batch.core.repository.JobRestartException; -import org.springframework.batch.item.ExecutionContext; -import org.springframework.util.Assert; -import org.springframework.util.CollectionUtils; -import org.springframework.util.StringUtils; - -/** - * Extends {@link SimpleStepHandler} to apply JSR-352 specific logic for whether to - * start a step. - * - * @author Michael Minella - * @since 3.0 - */ -public class JsrStepHandler extends SimpleStepHandler { - - private static final Log logger = LogFactory.getLog(JsrStepHandler.class); - - private JobExplorer jobExplorer; - - /** - * @param jobRepository instance of {@link JobRepository}. - * @param jobExplorer instance of {@link JobExplorer}. - */ - public JsrStepHandler(JobRepository jobRepository, JobExplorer jobExplorer) { - super(jobRepository, new ExecutionContext()); - this.jobExplorer = jobExplorer; - } - - @Override - public void afterPropertiesSet() throws Exception { - super.afterPropertiesSet(); - Assert.state(jobExplorer != null, "A JobExplorer must be provided"); - } - - - /** - * Given a step and configuration, return true if the step should start, - * false if it should not, and throw an exception if the job should finish. - * @param lastStepExecution the last step execution - * @param jobExecution instance of {@link JobExecution} - * @param step instance of {@link Step} - * - * @throws StartLimitExceededException if the start limit has been exceeded - * for this step - * @throws JobRestartException if the job is in an inconsistent state from - * an earlier failure - */ - @Override - protected boolean shouldStart(StepExecution lastStepExecution, JobExecution jobExecution, Step step) - throws JobRestartException, StartLimitExceededException { - BatchStatus stepStatus; - String restartStep = null; - if (lastStepExecution == null) { - jobExecution.getExecutionContext().put("batch.startedStep", step.getName()); - stepStatus = BatchStatus.STARTING; - } - else { - stepStatus = lastStepExecution.getStatus(); - - JobExecution lastJobExecution = getLastJobExecution(jobExecution); - - if(lastJobExecution.getExecutionContext().containsKey("batch.restartStep")) { - restartStep = lastJobExecution.getExecutionContext().getString("batch.restartStep"); - - if(CollectionUtils.isEmpty(jobExecution.getStepExecutions()) && lastJobExecution.getStatus() == BatchStatus.STOPPED && StringUtils.hasText(restartStep)) { - if(!restartStep.equals(step.getName()) && !jobExecution.getExecutionContext().containsKey("batch.startedStep")) { - if (logger.isInfoEnabled()) { - logger.info("Job was stopped and should restart at step " + restartStep + ". The current step is " + step.getName()); - } - return false; - } else { - // Indicates the starting point for execution evaluation per JSR-352 - jobExecution.getExecutionContext().put("batch.startedStep", step.getName()); - } - } - } - } - - if (stepStatus == BatchStatus.UNKNOWN) { - throw new JobRestartException("Cannot restart step from UNKNOWN status. " - + "The last execution ended with a failure that could not be rolled back, " - + "so it may be dangerous to proceed. Manual intervention is probably necessary."); - } - - if ((stepStatus == BatchStatus.COMPLETED && step.isAllowStartIfComplete() == false) - || stepStatus == BatchStatus.ABANDONED) { - // step is complete, false should be returned, indicating that the - // step should not be started - if (logger.isInfoEnabled()) { - logger.info("Step already complete or not restartable, so no action to execute: " + lastStepExecution); - } - return false; - } - - if (getJobRepository().getStepExecutionCount(jobExecution.getJobInstance(), step.getName()) < step.getStartLimit()) { - // step start count is less than start max, return true - return true; - } - else { - // start max has been exceeded, throw an exception. - throw new StartLimitExceededException("Maximum start limit exceeded for step: " + step.getName() - + "StartMax: " + step.getStartLimit()); - } - } - - /** - * Since all JSR-352 jobs are run asynchronously, {@link JobRepository#getLastJobExecution(String, org.springframework.batch.core.JobParameters)} - * could return the currently running {@link JobExecution}. To get around this, we use the {@link JobExplorer} - * to get a list of the executions and get the most recent one that is not the currently running - * {@link JobExecution}. - * - * @param jobExecution - * @return the last executed JobExecution. - */ - private JobExecution getLastJobExecution(JobExecution jobExecution) { - List jobExecutions = jobExplorer.getJobExecutions(jobExecution.getJobInstance()); - JobExecution lastJobExecution = null; - - for (JobExecution curJobExecution : jobExecutions) { - if(lastJobExecution == null && curJobExecution.getId().longValue() != jobExecution.getId().longValue()) { - lastJobExecution = curJobExecution; - } else if(curJobExecution.getId().longValue() != jobExecution.getId().longValue() && (lastJobExecution == null || curJobExecution.getId().longValue() > lastJobExecution.getId().longValue())) { - lastJobExecution = curJobExecution; - } - } - return lastJobExecution; - } -} diff --git a/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/job/flow/JsrFlowExecutor.java b/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/job/flow/JsrFlowExecutor.java deleted file mode 100644 index 4b955a0bb..000000000 --- a/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/job/flow/JsrFlowExecutor.java +++ /dev/null @@ -1,69 +0,0 @@ -/* - * Copyright 2013-2014 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.springframework.batch.core.jsr.job.flow; - -import org.springframework.batch.core.ExitStatus; -import org.springframework.batch.core.JobExecution; -import org.springframework.batch.core.job.StepHandler; -import org.springframework.batch.core.job.flow.FlowExecutionStatus; -import org.springframework.batch.core.job.flow.JobFlowExecutor; -import org.springframework.batch.core.repository.JobRepository; - -/** - * JSR-352 specific {@link JobFlowExecutor}. Unlike the regular {@link JobFlowExecutor}, - * this extension does not promote an {@link ExitStatus} from a step to the job level if - * a custom exit status has been set on the job. - * - * @author Michael Minella - * @since 3.0 - */ -public class JsrFlowExecutor extends JobFlowExecutor { - - public JsrFlowExecutor(JobRepository jobRepository, - StepHandler stepHandler, JobExecution execution) { - super(jobRepository, stepHandler, execution); - } - - /* (non-Javadoc) - * @see org.springframework.batch.core.job.flow.JobFlowExecutor#addExitStatus(java.lang.String) - */ - @Override - public void addExitStatus(String code) { - ExitStatus status = new ExitStatus(code); - if((exitStatus != null && ExitStatus.isNonDefaultExitStatus(exitStatus)) && !ExitStatus.isNonDefaultExitStatus(status)) { - exitStatus = exitStatus.and(status); - } - } - - /* (non-Javadoc) - * @see org.springframework.batch.core.job.flow.JobFlowExecutor#updateJobExecutionStatus(org.springframework.batch.core.job.flow.FlowExecutionStatus) - */ - @Override - public void updateJobExecutionStatus(FlowExecutionStatus status) { - JobExecution execution = super.getJobExecution(); - - execution.setStatus(findBatchStatus(status)); - - ExitStatus curStatus = execution.getExitStatus(); - if(ExitStatus.isNonDefaultExitStatus(curStatus)) { - exitStatus = exitStatus.and(new ExitStatus(status.getName())); - execution.setExitStatus(exitStatus); - } else { - exitStatus = exitStatus.and(curStatus); - execution.setExitStatus(exitStatus); - } - } -} diff --git a/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/job/flow/JsrFlowJob.java b/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/job/flow/JsrFlowJob.java deleted file mode 100644 index bf69e20ad..000000000 --- a/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/job/flow/JsrFlowJob.java +++ /dev/null @@ -1,141 +0,0 @@ -/* - * Copyright 2013-2014 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.springframework.batch.core.jsr.job.flow; - -import org.springframework.batch.core.ExitStatus; -import org.springframework.batch.core.JobExecution; -import org.springframework.batch.core.JobExecutionException; -import org.springframework.batch.core.JobInterruptedException; -import org.springframework.batch.core.Step; -import org.springframework.batch.core.configuration.xml.SimpleFlowFactoryBean.DelegateState; -import org.springframework.batch.core.explore.JobExplorer; -import org.springframework.batch.core.job.AbstractJob; -import org.springframework.batch.core.job.flow.Flow; -import org.springframework.batch.core.job.flow.FlowExecutionException; -import org.springframework.batch.core.job.flow.FlowJob; -import org.springframework.batch.core.job.flow.JobFlowExecutor; -import org.springframework.batch.core.job.flow.State; -import org.springframework.batch.core.job.flow.support.state.FlowState; -import org.springframework.batch.core.jsr.job.JsrStepHandler; -import org.springframework.batch.core.jsr.job.flow.support.JsrFlow; -import org.springframework.batch.core.jsr.job.flow.support.state.JsrStepState; -import org.springframework.batch.core.jsr.step.DecisionStep; -import org.springframework.batch.core.launch.NoSuchJobException; -import org.springframework.batch.core.launch.support.ExitCodeMapper; - -/** - * JSR-352 specific extension of the {@link FlowJob}. - * - * @author Michael Minella - * @since 3.0 - */ -public class JsrFlowJob extends FlowJob { - - private JobExplorer jobExplorer; - - /** - * No arg constructor (invalid state) - */ - public JsrFlowJob() { - super(); - } - - /** - * Main constructor - * - * @param name of the flow - */ - public JsrFlowJob(String name) { - super(name); - } - - public void setJobExplorer(JobExplorer jobExplorer) { - this.jobExplorer = jobExplorer; - } - - /** - * @see AbstractJob#doExecute(JobExecution) - */ - @Override - protected void doExecute(final JobExecution execution) throws JobExecutionException { - try { - JobFlowExecutor executor = new JsrFlowExecutor(getJobRepository(), - new JsrStepHandler(getJobRepository(), jobExplorer), execution); - - State startState = ((JsrFlow)flow).getStartState(); - - validateFirstStep(startState); - - executor.updateJobExecutionStatus(flow.start(executor).getStatus()); - } - catch (FlowExecutionException e) { - if (e.getCause() instanceof JobExecutionException) { - throw (JobExecutionException) e.getCause(); - } - throw new JobExecutionException("Flow execution ended unexpectedly", e); - } - } - - private void validateFirstStep(State startState) - throws JobExecutionException { - while(true) { - if(startState instanceof DelegateState) { - startState = ((DelegateState) startState).getState(); - } else if(startState instanceof JsrStepState) { - String stepName = startState.getName().substring(startState.getName().indexOf(".") + 1, startState.getName().length()); - Step step = ((JsrStepState) startState).getStep(stepName); - if(step instanceof DecisionStep) { - throw new JobExecutionException("Decision step is an invalid first step"); - } else { - break; - } - } else if(startState instanceof FlowState){ - Flow firstFlow = ((FlowState) startState).getFlows().iterator().next(); - startState = firstFlow.getStates().iterator().next(); - } else { - break; - } - } - } - - /** - * Default mapping from throwable to {@link ExitStatus}. - * - * @param ex the cause of the failure - * @return an {@link ExitStatus} - */ - @Override - protected ExitStatus getDefaultExitStatusForFailure(Throwable ex, JobExecution execution) { - if(!ExitStatus.isNonDefaultExitStatus(execution.getExitStatus())) { - return execution.getExitStatus(); - } else { - ExitStatus exitStatus; - if (ex instanceof JobInterruptedException - || ex.getCause() instanceof JobInterruptedException) { - exitStatus = ExitStatus.STOPPED - .addExitDescription(JobInterruptedException.class.getName()); - } else if (ex instanceof NoSuchJobException - || ex.getCause() instanceof NoSuchJobException) { - exitStatus = new ExitStatus(ExitCodeMapper.NO_SUCH_JOB, ex - .getClass().getName()); - } else { - exitStatus = ExitStatus.FAILED.addExitDescription(ex); - } - - return exitStatus; - } - } -} diff --git a/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/job/flow/package-info.java b/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/job/flow/package-info.java deleted file mode 100644 index e40bd8b74..000000000 --- a/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/job/flow/package-info.java +++ /dev/null @@ -1,10 +0,0 @@ -/** - * JSR-352 specific extensions of Flow constructs (executor and job). - * - * @author Michael Minella - * @author Mahmoud Ben Hassine - */ -@NonNullApi -package org.springframework.batch.core.jsr.job.flow; - -import org.springframework.lang.NonNullApi; diff --git a/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/job/flow/support/JsrFlow.java b/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/job/flow/support/JsrFlow.java deleted file mode 100644 index 442d6d392..000000000 --- a/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/job/flow/support/JsrFlow.java +++ /dev/null @@ -1,152 +0,0 @@ -/* - * Copyright 2013-2018 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.springframework.batch.core.jsr.job.flow.support; - -import java.util.Set; - -import org.springframework.batch.core.Step; -import org.springframework.batch.core.StepExecution; -import org.springframework.batch.core.configuration.xml.SimpleFlowFactoryBean.DelegateState; -import org.springframework.batch.core.job.flow.Flow; -import org.springframework.batch.core.job.flow.FlowExecutionException; -import org.springframework.batch.core.job.flow.FlowExecutionStatus; -import org.springframework.batch.core.job.flow.State; -import org.springframework.batch.core.job.flow.support.SimpleFlow; -import org.springframework.batch.core.job.flow.support.StateTransition; -import org.springframework.batch.core.jsr.job.flow.support.state.JsrStepState; -import org.springframework.batch.item.ExecutionContext; -import org.springframework.lang.Nullable; -import org.springframework.util.StringUtils; - -/** - * Implements JSR-352 specific logic around the execution of a flow. Specifically, this - * {@link Flow} implementation will attempt to find the next state based on the provided - * exit status. If none is found (the exit status isn't mapped), it will attempt to - * resolve the next state basing it on the last step's batch status. Only if both - * attempts fail, the flow will fail due to the inability to find the next state. - * - * @author Michael Minella - * @author Mahmoud Ben Hassine - * @since 3.0 - */ -public class JsrFlow extends SimpleFlow { - - private JsrStepState currentStep; - - /** - * @param name name of the flow - */ - public JsrFlow(String name) { - super(name); - } - - @Nullable - public String getMostRecentStepName() { - if(currentStep != null) { - return currentStep.getStep().getName(); - } else { - return null; - } - } - - @Override - protected boolean isFlowContinued(State state, FlowExecutionStatus status, StepExecution stepExecution) { - if(state instanceof DelegateState) { - state = ((DelegateState) state).getState(); - } - - if(state instanceof JsrStepState) { - currentStep = (JsrStepState) state; - } - - return super.isFlowContinued(state, status, stepExecution); - } - - @Override - protected State nextState(String stateName, FlowExecutionStatus status, StepExecution stepExecution) throws FlowExecutionException { - State nextState = findState(stateName, status, stepExecution); - - if(stepExecution != null) { - ExecutionContext executionContext = stepExecution.getJobExecution().getExecutionContext(); - if(executionContext.containsKey("batch.stoppedStep")) { - String stepName = executionContext.getString("batch.stoppedStep"); - - if(stateName.endsWith(stepName)) { - if(nextState != null && executionContext.containsKey("batch.restartStep") && StringUtils.hasText(executionContext.getString("batch.restartStep"))) { - nextState = findState(stateName, new FlowExecutionStatus(status.getName() + ".RESTART"), stepExecution); - } - } - } - } - - return nextState; - } - - /** - * @return the next {@link Step} (or null if this is the end) - * @throws FlowExecutionException - */ - private State findState(String stateName, FlowExecutionStatus status, StepExecution stepExecution) throws FlowExecutionException { - Set set = getTransitionMap().get(stateName); - - if (set == null) { - throw new FlowExecutionException(String.format("No transitions found in flow=%s for state=%s", getName(), - stateName)); - } - - String next = null; - String exitCode = status.getName(); - for (StateTransition stateTransition : set) { - if (stateTransition.matches(exitCode) || (exitCode.equals("PENDING") && stateTransition.matches("STOPPED"))) { - if (stateTransition.isEnd()) { - // End of job - return null; - } - next = stateTransition.getNext(); - break; - } - } - - if (next == null) { - if(stepExecution != null) { - exitCode = stepExecution.getStatus().toString(); - - for (StateTransition stateTransition : set) { - if (stateTransition.matches(exitCode) || (exitCode.equals("PENDING") && stateTransition.matches("STOPPED"))) { - if (stateTransition.isEnd()) { - // End of job - return null; - } - next = stateTransition.getNext(); - break; - } - } - } - - if(next == null) { - throw new FlowExecutionException(String.format( - "Next state not found in flow=%s for state=%s with exit status=%s", getName(), stateName, status.getName())); - } - } - - if (!getStateMap().containsKey(next)) { - throw new FlowExecutionException(String.format("Next state not specified in flow=%s for next=%s", - getName(), next)); - } - - return getStateMap().get(next); - } -} diff --git a/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/job/flow/support/package-info.java b/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/job/flow/support/package-info.java deleted file mode 100644 index b91977971..000000000 --- a/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/job/flow/support/package-info.java +++ /dev/null @@ -1,10 +0,0 @@ -/** - * JSR-352 specific flow extensions. - * - * @author Michael Minella - * @author Mahmoud Ben Hassine - */ -@NonNullApi -package org.springframework.batch.core.jsr.job.flow.support; - -import org.springframework.lang.NonNullApi; diff --git a/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/job/flow/support/state/JsrEndState.java b/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/job/flow/support/state/JsrEndState.java deleted file mode 100644 index e5b3a7a3a..000000000 --- a/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/job/flow/support/state/JsrEndState.java +++ /dev/null @@ -1,135 +0,0 @@ -/* - * Copyright 2013-2014 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.springframework.batch.core.jsr.job.flow.support.state; - -import org.springframework.batch.core.BatchStatus; -import org.springframework.batch.core.ExitStatus; -import org.springframework.batch.core.JobExecution; -import org.springframework.batch.core.StepExecution; -import org.springframework.batch.core.job.flow.FlowExecutionStatus; -import org.springframework.batch.core.job.flow.FlowExecutor; -import org.springframework.batch.core.job.flow.State; -import org.springframework.batch.core.repository.JobRepository; -import org.springframework.batch.item.ExecutionContext; - -/** - * {@link State} implementation for ending a job per JSR-352 rules if it is - * in progress and continuing if just starting. - * - * @author Michael Minella - * @since 3.0 - */ -public class JsrEndState extends org.springframework.batch.core.job.flow.support.state.EndState { - - private JobRepository jobRepository; - private String restart; - - /** - * @param status The {@link FlowExecutionStatus} to end with - * @param name The name of the state - */ - public JsrEndState(FlowExecutionStatus status, String name) { - super(status, status.getName(), name); - } - - /** - * @param status The {@link FlowExecutionStatus} to end with - * @param name The name of the state - * @param code the exit status. - */ - public JsrEndState(FlowExecutionStatus status, String code, String name) { - super(status, code, name, false); - } - - /** - * @param status The {@link FlowExecutionStatus} to end with - * @param name The name of the state - * @param abandon flag to indicate that previous step execution can be - * marked as abandoned (if there is one) - * @param code the exit status. - * - */ - public JsrEndState(FlowExecutionStatus status, String code, String name, boolean abandon) { - super(status, code, name, abandon); - } - - public JsrEndState(FlowExecutionStatus status, String code, String name, String restart, boolean abandon, JobRepository jobRepository) { - super(status, code, name, abandon); - this.jobRepository = jobRepository; - this.restart = restart; - } - - @Override - public FlowExecutionStatus handle(FlowExecutor executor) - throws Exception { - synchronized (executor) { - - // Special case. If the last step execution could not complete we - // are in an unknown state (possibly unrecoverable). - StepExecution stepExecution = executor.getStepExecution(); - if (stepExecution != null && executor.getStepExecution().getStatus() == BatchStatus.UNKNOWN) { - return FlowExecutionStatus.UNKNOWN; - } - - if (getStatus().isStop()) { - JobExecution jobExecution = stepExecution.getJobExecution(); - ExecutionContext executionContext = jobExecution.getExecutionContext(); - executionContext.put("batch.restartStep", restart); - executionContext.put("batch.stoppedStep", stepExecution.getStepName()); - jobRepository.updateExecutionContext(jobExecution); - - if (!executor.isRestart()) { - /* - * If there are step executions, then we are not at the - * beginning of a restart. - */ - if (isAbandon()) { - /* - * Only if instructed to do so, upgrade the status of - * last step execution so it is not replayed on a - * restart... - */ - executor.abandonStepExecution(); - } - } - else { - /* - * If we are a stop state and we got this far then it must - * be a restart, so return COMPLETED. - */ - return FlowExecutionStatus.COMPLETED; - } - } - - setExitStatus(executor, getCode()); - - return getStatus(); - } - } - - /* (non-Javadoc) - * @see org.springframework.batch.core.job.flow.support.state.EndState#setExitStatus(org.springframework.batch.core.job.flow.FlowExecutor, java.lang.String) - */ - @Override - protected void setExitStatus(FlowExecutor executor, String code) { - StepExecution stepExecution = executor.getStepExecution(); - - ExitStatus status = new ExitStatus(code); - if(!ExitStatus.isNonDefaultExitStatus(status)) { - stepExecution.getJobExecution().setExitStatus(status); - } - } -} diff --git a/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/job/flow/support/state/JsrSplitState.java b/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/job/flow/support/state/JsrSplitState.java deleted file mode 100644 index c2bfd154c..000000000 --- a/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/job/flow/support/state/JsrSplitState.java +++ /dev/null @@ -1,73 +0,0 @@ -/* - * Copyright 2014 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.springframework.batch.core.jsr.job.flow.support.state; - -import java.util.ArrayList; -import java.util.Collection; -import java.util.List; - -import org.springframework.batch.core.JobExecution; -import org.springframework.batch.core.job.flow.Flow; -import org.springframework.batch.core.job.flow.FlowExecution; -import org.springframework.batch.core.job.flow.FlowExecutionStatus; -import org.springframework.batch.core.job.flow.FlowExecutor; -import org.springframework.batch.core.jsr.job.flow.support.JsrFlow; - -/** - * JSR-352 states that artifacts cannot set the ExitStatus from within a split for a job. Because - * of this, this state will reset the exit status once the flows have completed (prior to aggregation - * of the results). - * - * @author Michael Minella - * @since 3.0 - */ -public class JsrSplitState extends org.springframework.batch.core.job.flow.support.state.SplitState { - - /** - * @param flows {@link Flow}s to be executed in parallel - * @param name the name to be associated with the split state. - */ - public JsrSplitState(Collection flows, String name) { - super(flows, name); - } - - /** - * Resets the {@link JobExecution}'s exit status before aggregating the results of the flows within - * the split. - * - * @param results the {@link FlowExecution}s from each of the flows executed within this split - * @param executor the {@link FlowExecutor} used to execute the flows - */ - @Override - protected FlowExecutionStatus doAggregation(Collection results, FlowExecutor executor) { - List stepNames = new ArrayList<>(); - - for (Flow curFlow : getFlows()) { - JsrFlow flow = (JsrFlow) curFlow; - if(flow.getMostRecentStepName() != null) { - stepNames.add(flow.getMostRecentStepName()); - } - } - - if(!stepNames.isEmpty()) { - executor.getJobExecution().getExecutionContext().put("batch.lastSteps", stepNames); - } - - executor.getJobExecution().setExitStatus(null); - - return super.doAggregation(results, executor); - } -} diff --git a/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/job/flow/support/state/JsrStepState.java b/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/job/flow/support/state/JsrStepState.java deleted file mode 100644 index c5e3dc178..000000000 --- a/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/job/flow/support/state/JsrStepState.java +++ /dev/null @@ -1,59 +0,0 @@ -/* - * Copyright 2014 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.springframework.batch.core.jsr.job.flow.support.state; - -import java.util.Collections; - -import org.springframework.batch.core.Step; -import org.springframework.batch.core.job.flow.FlowExecutionStatus; -import org.springframework.batch.core.job.flow.FlowExecutor; - -/** - * Extends {@link org.springframework.batch.core.job.flow.support.state.StepState} to persist what the - * last step that was executed was (used in Decisions and restarts). - * - * @author Michael Minella - * @since 3.0 - */ -public class JsrStepState extends org.springframework.batch.core.job.flow.support.state.StepState { - - /** - * @param step the step that will be executed - */ - public JsrStepState(Step step) { - super(step); - } - - /** - * @param name for the step that will be executed - * @param step the step that will be executed - */ - public JsrStepState(String name, Step step) { - super(name, step); - } - - /* (non-Javadoc) - * @see org.springframework.batch.core.job.flow.support.state.StepState#handle(org.springframework.batch.core.job.flow.FlowExecutor) - */ - @Override - public FlowExecutionStatus handle(FlowExecutor executor) throws Exception { - FlowExecutionStatus result = super.handle(executor); - - executor.getJobExecution().getExecutionContext().put("batch.lastSteps", Collections.singletonList(getStep().getName())); - - return result; - } -} diff --git a/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/job/flow/support/state/package-info.java b/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/job/flow/support/state/package-info.java deleted file mode 100644 index 4335b22ea..000000000 --- a/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/job/flow/support/state/package-info.java +++ /dev/null @@ -1,10 +0,0 @@ -/** - * JSR-352 specific states used in flow execution. - * - * @author Michael Minella - * @author Mahmoud Ben Hassine - */ -@NonNullApi -package org.springframework.batch.core.jsr.job.flow.support.state; - -import org.springframework.lang.NonNullApi; diff --git a/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/job/package-info.java b/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/job/package-info.java deleted file mode 100644 index 7592416e9..000000000 --- a/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/job/package-info.java +++ /dev/null @@ -1,10 +0,0 @@ -/** - * JSR-352 specific handler implementations. - * - * @author Michael Minella - * @author Mahmoud Ben Hassine - */ -@NonNullApi -package org.springframework.batch.core.jsr.job; - -import org.springframework.lang.NonNullApi; diff --git a/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/launch/JsrJobOperator.java b/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/launch/JsrJobOperator.java deleted file mode 100644 index 96f824844..000000000 --- a/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/launch/JsrJobOperator.java +++ /dev/null @@ -1,850 +0,0 @@ -/* - * Copyright 2013-2021 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.springframework.batch.core.jsr.launch; - -import java.util.ArrayList; -import java.util.Collection; -import java.util.Collections; -import java.util.Enumeration; -import java.util.HashSet; -import java.util.List; -import java.util.Map; -import java.util.Properties; -import java.util.Set; -import java.util.concurrent.ConcurrentHashMap; -import java.util.concurrent.Semaphore; -import jakarta.batch.operations.BatchRuntimeException; -import jakarta.batch.operations.JobExecutionAlreadyCompleteException; -import jakarta.batch.operations.JobExecutionIsRunningException; -import jakarta.batch.operations.JobExecutionNotMostRecentException; -import jakarta.batch.operations.JobExecutionNotRunningException; -import jakarta.batch.operations.JobOperator; -import jakarta.batch.operations.JobRestartException; -import jakarta.batch.operations.JobSecurityException; -import jakarta.batch.operations.JobStartException; -import jakarta.batch.operations.NoSuchJobException; -import jakarta.batch.operations.NoSuchJobExecutionException; -import jakarta.batch.operations.NoSuchJobInstanceException; -import jakarta.batch.runtime.BatchRuntime; -import jakarta.batch.runtime.JobExecution; -import jakarta.batch.runtime.JobInstance; -import jakarta.batch.runtime.StepExecution; - -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; - -import org.springframework.batch.core.BatchStatus; -import org.springframework.batch.core.ExitStatus; -import org.springframework.batch.core.Job; -import org.springframework.batch.core.JobParameters; -import org.springframework.batch.core.Step; -import org.springframework.batch.core.configuration.DuplicateJobException; -import org.springframework.batch.core.converter.JobParametersConverter; -import org.springframework.batch.core.explore.JobExplorer; -import org.springframework.batch.core.jsr.JsrJobContextFactoryBean; -import org.springframework.batch.core.jsr.JsrJobExecution; -import org.springframework.batch.core.jsr.JsrJobParametersConverter; -import org.springframework.batch.core.jsr.JsrStepExecution; -import org.springframework.batch.core.jsr.configuration.xml.JsrXmlApplicationContext; -import org.springframework.batch.core.repository.JobRepository; -import org.springframework.batch.core.scope.context.StepSynchronizationManager; -import org.springframework.batch.core.step.NoSuchStepException; -import org.springframework.batch.core.step.StepLocator; -import org.springframework.batch.core.step.tasklet.StoppableTasklet; -import org.springframework.batch.core.step.tasklet.Tasklet; -import org.springframework.batch.core.step.tasklet.TaskletStep; -import org.springframework.beans.BeansException; -import org.springframework.beans.factory.BeanCreationException; -import org.springframework.beans.factory.InitializingBean; -import org.springframework.beans.factory.config.AutowireCapableBeanFactory; -import org.springframework.beans.factory.config.BeanDefinition; -import org.springframework.beans.factory.support.AbstractBeanDefinition; -import org.springframework.beans.factory.support.BeanDefinitionBuilder; -import org.springframework.context.ApplicationContext; -import org.springframework.context.ApplicationContextAware; -import org.springframework.context.support.GenericXmlApplicationContext; -import org.springframework.core.convert.converter.Converter; -import org.springframework.core.io.ClassPathResource; -import org.springframework.core.io.Resource; -import org.springframework.core.task.SimpleAsyncTaskExecutor; -import org.springframework.core.task.TaskExecutor; -import org.springframework.transaction.PlatformTransactionManager; -import org.springframework.util.Assert; - -/** - * The entrance for executing batch jobs as defined by JSR-352. This class provides - * a single base {@link ApplicationContext} that is the equivalent to the following: - * - * <beans> - * <batch:job-repository id="jobRepository" ... /> - * - * <bean id="jobLauncher" class="org.springframework.batch.core.launch.support.SimpleJobLauncher"> - * ... - * </bean> - * - * <bean id="batchJobOperator" class="org.springframework.batch.core.launch.support.SimpleJobOperator"> - * ... - * </bean> - * - * <bean id="jobExplorer" class="org.springframework.batch.core.explore.support.JobExplorerFactoryBean"> - * ... - * </bean> - * - * <bean id="dataSource" - * class="org.apache.commons.dbcp2.BasicDataSource"> - * ... - * </bean> - * - * <bean id="transactionManager" - * class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> - * ... - * </bean> - * - * <bean id="jobParametersConverter" class="org.springframework.batch.core.jsr.JsrJobParametersConverter"/> - * - * <bean id="jobRegistry" class="org.springframework.batch.core.configuration.support.MapJobRegistry"/> - * - * <bean id="placeholderProperties" class="org.springframework.context.support.PropertySourcesPlaceholderConfigurer"> - * ... - * </bean> - * </beans> - * - * A custom configuration of the above components can be specified by providing a system property JSR-352-BASE-CONTEXT. - * The location that is provided by this system property will override any beans as defined in baseContext.xml. - * - * Calls to {@link JobOperator#start(String, Properties)} will provide a child context to the above context - * using the job definition and batch.xml if provided. - * - * By default, calls to start/restart will result in asynchronous execution of the batch job (via an asynchronous {@link TaskExecutor}. - * For synchronous behavior or customization of thread behavior, a different {@link TaskExecutor} implementation is required to - * be provided. - * - * Note: This class is intended to only be used for JSR-352 configured jobs. Use of - * this {@link JobOperator} to start/stop/restart Spring Batch jobs may result in unexpected behaviors due to - * how job instances are identified differently. - * - * @author Michael Minella - * @author Chris Schaefer - * @author Mahmoud Ben Hassine - * @since 3.0 - */ -public class JsrJobOperator implements JobOperator, ApplicationContextAware, InitializingBean { - private static final String JSR_JOB_CONTEXT_BEAN_NAME = "jsr_jobContext"; - private final Log logger = LogFactory.getLog(getClass()); - - private JobExplorer jobExplorer; - private JobRepository jobRepository; - private TaskExecutor taskExecutor; - private JobParametersConverter jobParametersConverter; - private ApplicationContext baseContext; - private PlatformTransactionManager transactionManager; - private static ExecutingJobRegistry jobRegistry = new ExecutingJobRegistry(); - - /** - * Public constructor used by {@link BatchRuntime#getJobOperator()}. This will bootstrap a - * singleton ApplicationContext if one has not already been created (and will utilize the existing - * one if it has) to populate itself. - */ - public JsrJobOperator() { - - this.baseContext = BaseContextHolder.getInstance().getContext(); - - baseContext.getAutowireCapableBeanFactory().autowireBeanProperties(this, - AutowireCapableBeanFactory.AUTOWIRE_BY_TYPE, false); - - if(taskExecutor == null) { - taskExecutor = new SimpleAsyncTaskExecutor(); - } - } - - /** - * The no-arg constructor is used by the {@link BatchRuntime#getJobOperator()} and so bootstraps - * an {@link ApplicationContext}. This constructor does not and is therefore dependency injection - * friendly. Also useful for unit testing. - * - * @param jobExplorer an instance of Spring Batch's {@link JobExplorer}. - * @param jobRepository an instance of Spring Batch's {@link JobOperator}. - * @param jobParametersConverter an instance of Spring Batch's {@link JobParametersConverter}. - * @param transactionManager a {@link PlatformTransactionManager}. - */ - public JsrJobOperator(JobExplorer jobExplorer, JobRepository jobRepository, JobParametersConverter jobParametersConverter, PlatformTransactionManager transactionManager) { - Assert.notNull(jobExplorer, "A JobExplorer is required"); - Assert.notNull(jobRepository, "A JobRepository is required"); - Assert.notNull(jobParametersConverter, "A ParametersConverter is required"); - Assert.notNull(transactionManager, "A PlatformTransactionManager is required"); - - this.jobExplorer = jobExplorer; - this.jobRepository = jobRepository; - this.jobParametersConverter = jobParametersConverter; - this.transactionManager = transactionManager; - } - - public void setJobExplorer(JobExplorer jobExplorer) { - Assert.notNull(jobExplorer, "A JobExplorer is required"); - - this.jobExplorer = jobExplorer; - } - - public void setJobRepository(JobRepository jobRepository) { - Assert.notNull(jobRepository, "A JobRepository is required"); - - this.jobRepository = jobRepository; - } - - public void setTransactionManager(PlatformTransactionManager transactionManager) { - Assert.notNull(transactionManager, "A PlatformTransactionManager is required"); - - this.transactionManager = transactionManager; - } - - public void setTaskExecutor(TaskExecutor taskExecutor) { - this.taskExecutor = taskExecutor; - } - - protected TaskExecutor getTaskExecutor() { - return taskExecutor; - } - - @Override - public void afterPropertiesSet() throws Exception { - if (this.taskExecutor == null) { - this.taskExecutor = new SimpleAsyncTaskExecutor(); - } - } - - /** - * Used to convert the {@link Properties} objects used by JSR-352 to the {@link JobParameters} - * objects used in Spring Batch. The default implementation used will configure all parameters - * to be non-identifying (per the JSR). - * - * @param converter A {@link Converter} implementation used to convert {@link Properties} to - * {@link JobParameters} - */ - public void setJobParametersConverter(JobParametersConverter converter) { - Assert.notNull(converter, "A Converter is required"); - - this.jobParametersConverter = converter; - } - - /* (non-Javadoc) - * @see jakarta.batch.operations.JobOperator#abandon(long) - */ - @Override - public void abandon(long jobExecutionId) throws NoSuchJobExecutionException, - JobExecutionIsRunningException, JobSecurityException { - org.springframework.batch.core.JobExecution jobExecution = jobExplorer.getJobExecution(jobExecutionId); - - if(jobExecution == null) { - throw new NoSuchJobExecutionException("Unable to retrieve JobExecution for id " + jobExecutionId); - } - - if(jobExecution.isRunning()) { - throw new JobExecutionIsRunningException("Unable to abandon a job that is currently running"); - } - - jobExecution.upgradeStatus(BatchStatus.ABANDONED); - jobRepository.update(jobExecution); - } - - /* (non-Javadoc) - * @see jakarta.batch.operations.JobOperator#getJobExecution(long) - */ - @Override - public JobExecution getJobExecution(long executionId) - throws NoSuchJobExecutionException, JobSecurityException { - org.springframework.batch.core.JobExecution jobExecution = jobExplorer.getJobExecution(executionId); - - if(jobExecution == null) { - throw new NoSuchJobExecutionException("No execution was found for executionId " + executionId); - } - - return new JsrJobExecution(jobExecution, jobParametersConverter); - } - - /* (non-Javadoc) - * @see jakarta.batch.operations.JobOperator#getJobExecutions(jakarta.batch.runtime.JobInstance) - */ - @Override - public List getJobExecutions(JobInstance jobInstance) - throws NoSuchJobInstanceException, JobSecurityException { - if(jobInstance == null) { - throw new NoSuchJobInstanceException("A null JobInstance was provided"); - } - - org.springframework.batch.core.JobInstance instance = (org.springframework.batch.core.JobInstance) jobInstance; - List batchExecutions = jobExplorer.getJobExecutions(instance); - - if(batchExecutions == null || batchExecutions.size() == 0) { - throw new NoSuchJobInstanceException("Unable to find JobInstance " + jobInstance.getInstanceId()); - } - - List results = new ArrayList<>(batchExecutions.size()); - for (org.springframework.batch.core.JobExecution jobExecution : batchExecutions) { - results.add(new JsrJobExecution(jobExecution, jobParametersConverter)); - } - - return results; - } - - /* (non-Javadoc) - * @see jakarta.batch.operations.JobOperator#getJobInstance(long) - */ - @Override - public JobInstance getJobInstance(long executionId) - throws NoSuchJobExecutionException, JobSecurityException { - org.springframework.batch.core.JobExecution execution = jobExplorer.getJobExecution(executionId); - - if(execution == null) { - throw new NoSuchJobExecutionException("The JobExecution was not found"); - } - - return jobExplorer.getJobInstance(execution.getJobInstance().getId()); - } - - /* (non-Javadoc) - * @see jakarta.batch.operations.JobOperator#getJobInstanceCount(java.lang.String) - */ - @Override - public int getJobInstanceCount(String jobName) throws NoSuchJobException, - JobSecurityException { - try { - int count = jobExplorer.getJobInstanceCount(jobName); - - if(count <= 0) { - throw new NoSuchJobException("No job instances were found for job name " + jobName); - } else { - return count; - } - } catch (org.springframework.batch.core.launch.NoSuchJobException e) { - throw new NoSuchJobException("No job instances were found for job name " + jobName); - } - } - - /* (non-Javadoc) - * @see jakarta.batch.operations.JobOperator#getJobInstances(java.lang.String, int, int) - */ - @Override - public List getJobInstances(String jobName, int start, int count) - throws NoSuchJobException, JobSecurityException { - List jobInstances = jobExplorer.getJobInstances(jobName, start, count); - - if(jobInstances == null || jobInstances.size() == 0) { - throw new NoSuchJobException("The job was not found"); - } - - return new ArrayList<>(jobInstances); - } - - /* (non-Javadoc) - * @see jakarta.batch.operations.JobOperator#getJobNames() - */ - @Override - public Set getJobNames() throws JobSecurityException { - return new HashSet<>(jobExplorer.getJobNames()); - } - - /* (non-Javadoc) - * @see jakarta.batch.operations.JobOperator#getParameters(long) - */ - @Override - public Properties getParameters(long executionId) - throws NoSuchJobExecutionException, JobSecurityException { - org.springframework.batch.core.JobExecution execution = jobExplorer.getJobExecution(executionId); - - if(execution == null) { - throw new NoSuchJobExecutionException("Unable to find the JobExecution for id " + executionId); - } - - Properties properties = jobParametersConverter.getProperties(execution.getJobParameters()); - properties.remove(JsrJobParametersConverter.JOB_RUN_ID); - - return properties; - } - - /* (non-Javadoc) - * @see jakarta.batch.operations.JobOperator#getRunningExecutions(java.lang.String) - */ - @Override - public List getRunningExecutions(String name) - throws NoSuchJobException, JobSecurityException { - Set findRunningJobExecutions = jobExplorer.findRunningJobExecutions(name); - - if(findRunningJobExecutions.isEmpty()) { - throw new NoSuchJobException("Job name: " + name + " not found."); - } - - List results = new ArrayList<>(findRunningJobExecutions.size()); - - for (org.springframework.batch.core.JobExecution jobExecution : findRunningJobExecutions) { - results.add(jobExecution.getId()); - } - - return results; - } - - /* (non-Javadoc) - * @see jakarta.batch.operations.JobOperator#getStepExecutions(long) - */ - @Override - public List getStepExecutions(long executionId) - throws NoSuchJobExecutionException, JobSecurityException { - org.springframework.batch.core.JobExecution execution = jobExplorer.getJobExecution(executionId); - - if(execution == null) { - throw new NoSuchJobException("JobExecution with the id " + executionId + " was not found"); - } - - Collection executions = execution.getStepExecutions(); - - List batchExecutions = new ArrayList<>(); - - if(executions != null) { - for (org.springframework.batch.core.StepExecution stepExecution : executions) { - if(!stepExecution.getStepName().contains(":partition")) { - batchExecutions.add(new JsrStepExecution(jobExplorer.getStepExecution(executionId, stepExecution.getId()))); - } - } - } - - return batchExecutions; - } - - /** - * Creates a child {@link ApplicationContext} for the job being requested based upon - * the /META-INF/batch.xml (if exists) and the /META-INF/batch-jobs/<jobName>.xml - * configuration and restart the job. - * - * @param executionId the database id of the job execution to be restarted. - * @param params any job parameters to be used during the execution of this job. - * @throws JobExecutionAlreadyCompleteException thrown if the requested job execution has - * a status of COMPLETE - * @throws NoSuchJobExecutionException throw if the requested job execution does not exist - * in the repository - * @throws JobExecutionNotMostRecentException thrown if the requested job execution is not - * the most recent attempt for the job instance it's related to. - * @throws JobRestartException thrown for any general errors during the job restart process - */ - @Override - public long restart(long executionId, Properties params) - throws JobExecutionAlreadyCompleteException, - NoSuchJobExecutionException, JobExecutionNotMostRecentException, - JobRestartException, JobSecurityException { - org.springframework.batch.core.JobExecution previousJobExecution = jobExplorer.getJobExecution(executionId); - - if (previousJobExecution == null) { - throw new NoSuchJobExecutionException("No JobExecution found for id: [" + executionId + "]"); - } else if(previousJobExecution.getStatus().equals(BatchStatus.COMPLETED)) { - throw new JobExecutionAlreadyCompleteException("The requested job has already completed"); - } - - List previousExecutions = jobExplorer.getJobExecutions(previousJobExecution.getJobInstance()); - - for (org.springframework.batch.core.JobExecution jobExecution : previousExecutions) { - if(jobExecution.getCreateTime().compareTo(previousJobExecution.getCreateTime()) > 0) { - throw new JobExecutionNotMostRecentException("The requested JobExecution to restart was not the most recently run"); - } - - if(jobExecution.getStatus().equals(BatchStatus.ABANDONED)) { - throw new JobRestartException("JobExecution ID: " + jobExecution.getId() + " is abandoned and attempted to be restarted."); - } - } - - final String jobName = previousJobExecution.getJobInstance().getJobName(); - - Properties jobRestartProperties = getJobRestartProperties(params, previousJobExecution); - - final JsrXmlApplicationContext batchContext = new JsrXmlApplicationContext(jobRestartProperties); - batchContext.setValidating(false); - - Resource batchXml = new ClassPathResource("/META-INF/batch.xml"); - Resource jobXml = new ClassPathResource(previousJobExecution.getJobConfigurationName()); - - if(batchXml.exists()) { - batchContext.load(batchXml); - } - - if(jobXml.exists()) { - batchContext.load(jobXml); - } - - AbstractBeanDefinition beanDefinition = BeanDefinitionBuilder.genericBeanDefinition("org.springframework.batch.core.jsr.JsrJobContextFactoryBean").getBeanDefinition(); - beanDefinition.setScope(BeanDefinition.SCOPE_SINGLETON); - batchContext.registerBeanDefinition(JSR_JOB_CONTEXT_BEAN_NAME, beanDefinition); - - batchContext.setParent(baseContext); - - try { - batchContext.refresh(); - } catch (BeanCreationException e) { - throw new JobRestartException(e); - } - - final org.springframework.batch.core.JobExecution jobExecution; - - try { - JobParameters jobParameters = jobParametersConverter.getJobParameters(jobRestartProperties); - jobExecution = jobRepository.createJobExecution(previousJobExecution.getJobInstance(), jobParameters, previousJobExecution.getJobConfigurationName()); - } catch (Exception e) { - throw new JobRestartException(e); - } - - try { - final Semaphore semaphore = new Semaphore(1); - final List exceptionHolder = Collections.synchronizedList(new ArrayList<>()); - semaphore.acquire(); - - taskExecutor.execute(new Runnable() { - - @Override - public void run() { - JsrJobContextFactoryBean factoryBean = null; - try { - factoryBean = (JsrJobContextFactoryBean) batchContext.getBean("&" + JSR_JOB_CONTEXT_BEAN_NAME); - factoryBean.setJobExecution(jobExecution); - final Job job = batchContext.getBean(Job.class); - - if(!job.isRestartable()) { - throw new JobRestartException("Job " + jobName + " is not restartable"); - } - - semaphore.release(); - // Initialization of the JobExecution for job level dependencies - jobRegistry.register(job, jobExecution); - job.execute(jobExecution); - jobRegistry.remove(jobExecution); - } - catch (Exception e) { - exceptionHolder.add(e); - } finally { - if(factoryBean != null) { - factoryBean.close(); - } - - batchContext.close(); - - if(semaphore.availablePermits() == 0) { - semaphore.release(); - } - } - } - }); - - semaphore.acquire(); - if(exceptionHolder.size() > 0) { - semaphore.release(); - throw new JobRestartException(exceptionHolder.get(0)); - } - } - catch (Exception e) { - jobExecution.upgradeStatus(BatchStatus.FAILED); - if (jobExecution.getExitStatus().equals(ExitStatus.UNKNOWN)) { - jobExecution.setExitStatus(ExitStatus.FAILED.addExitDescription(e)); - } - - jobRepository.update(jobExecution); - - if(batchContext.isActive()) { - batchContext.close(); - } - - throw new JobRestartException(e); - } - - return jobExecution.getId(); - } - - protected Properties getJobRestartProperties(Properties params, org.springframework.batch.core.JobExecution previousJobExecution) { - Properties jobRestartProperties = new Properties(); - - if (previousJobExecution != null) { - JobParameters previousJobParameters = previousJobExecution.getJobParameters(); - - if (previousJobParameters != null && !previousJobParameters.isEmpty()) { - jobRestartProperties.putAll(previousJobParameters.toProperties()); - } - } - - if (params != null) { - Enumeration propertyNames = params.propertyNames(); - - while(propertyNames.hasMoreElements()) { - String curName = (String) propertyNames.nextElement(); - jobRestartProperties.setProperty(curName, params.getProperty(curName)); - } - } - - return jobRestartProperties; - } - - /** - * Creates a child {@link ApplicationContext} for the job being requested based upon - * the /META-INF/batch.xml (if exists) and the /META-INF/batch-jobs/<jobName>.xml - * configuration and launches the job. Per JSR-352, calls to this method will always - * create a new {@link JobInstance} (and related {@link JobExecution}). - * - * @param jobName the name of the job XML file without the .xml that is located within the - * /META-INF/batch-jobs directory. - * @param params any job parameters to be used during the execution of this job. - */ - @Override - public long start(String jobName, Properties params) throws JobStartException, - JobSecurityException { - final JsrXmlApplicationContext batchContext = new JsrXmlApplicationContext(params); - batchContext.setValidating(false); - - Resource batchXml = new ClassPathResource("/META-INF/batch.xml"); - String jobConfigurationLocation = "/META-INF/batch-jobs/" + jobName + ".xml"; - Resource jobXml = new ClassPathResource(jobConfigurationLocation); - - if(batchXml.exists()) { - batchContext.load(batchXml); - } - - if(jobXml.exists()) { - batchContext.load(jobXml); - } - - AbstractBeanDefinition beanDefinition = BeanDefinitionBuilder.genericBeanDefinition("org.springframework.batch.core.jsr.JsrJobContextFactoryBean").getBeanDefinition(); - beanDefinition.setScope(BeanDefinition.SCOPE_SINGLETON); - batchContext.registerBeanDefinition(JSR_JOB_CONTEXT_BEAN_NAME, beanDefinition); - - if(baseContext != null) { - batchContext.setParent(baseContext); - } else { - batchContext.getBeanFactory().registerSingleton("jobExplorer", jobExplorer); - batchContext.getBeanFactory().registerSingleton("jobRepository", jobRepository); - batchContext.getBeanFactory().registerSingleton("jobParametersConverter", jobParametersConverter); - batchContext.getBeanFactory().registerSingleton("transactionManager", transactionManager); - } - - try { - batchContext.refresh(); - } catch (BeanCreationException e) { - throw new JobStartException(e); - } - - Assert.notNull(jobName, "The job name must not be null."); - - final org.springframework.batch.core.JobExecution jobExecution; - - try { - JobParameters jobParameters = jobParametersConverter.getJobParameters(params); - String [] jobNames = batchContext.getBeanNamesForType(Job.class); - - if(jobNames == null || jobNames.length <= 0) { - throw new BatchRuntimeException("No Job defined in current context"); - } - - org.springframework.batch.core.JobInstance jobInstance = jobRepository.createJobInstance(jobNames[0], jobParameters); - jobExecution = jobRepository.createJobExecution(jobInstance, jobParameters, jobConfigurationLocation); - } catch (Exception e) { - throw new JobStartException(e); - } - - try { - final Semaphore semaphore = new Semaphore(1); - final List exceptionHolder = Collections.synchronizedList(new ArrayList<>()); - semaphore.acquire(); - - taskExecutor.execute(new Runnable() { - - @Override - public void run() { - JsrJobContextFactoryBean factoryBean = null; - try { - factoryBean = (JsrJobContextFactoryBean) batchContext.getBean("&" + JSR_JOB_CONTEXT_BEAN_NAME); - factoryBean.setJobExecution(jobExecution); - final Job job = batchContext.getBean(Job.class); - semaphore.release(); - // Initialization of the JobExecution for job level dependencies - jobRegistry.register(job, jobExecution); - job.execute(jobExecution); - jobRegistry.remove(jobExecution); - } - catch (Exception e) { - exceptionHolder.add(e); - } finally { - if(factoryBean != null) { - factoryBean.close(); - } - - batchContext.close(); - - if(semaphore.availablePermits() == 0) { - semaphore.release(); - } - } - } - }); - - semaphore.acquire(); - if(exceptionHolder.size() > 0) { - semaphore.release(); - throw new JobStartException(exceptionHolder.get(0)); - } - } - catch (Exception e) { - if(jobRegistry.exists(jobExecution.getId())) { - jobRegistry.remove(jobExecution); - } - jobExecution.upgradeStatus(BatchStatus.FAILED); - if (jobExecution.getExitStatus().equals(ExitStatus.UNKNOWN)) { - jobExecution.setExitStatus(ExitStatus.FAILED.addExitDescription(e)); - } - jobRepository.update(jobExecution); - - if(batchContext.isActive()) { - batchContext.close(); - } - - throw new JobStartException(e); - } - return jobExecution.getId(); - } - - /** - * Stops the running job execution if it is currently running. - * - * @param executionId the database id for the {@link JobExecution} to be stopped. - * @throws NoSuchJobExecutionException thrown if {@link JobExecution} instance does not exist. - * @throws JobExecutionNotRunningException thrown if {@link JobExecution} is not running. - */ - @Override - public void stop(long executionId) throws NoSuchJobExecutionException, - JobExecutionNotRunningException, JobSecurityException { - org.springframework.batch.core.JobExecution jobExecution = jobExplorer.getJobExecution(executionId); - // Indicate the execution should be stopped by setting it's status to - // 'STOPPING'. It is assumed that - // the step implementation will check this status at chunk boundaries. - BatchStatus status = jobExecution.getStatus(); - if (!(status == BatchStatus.STARTED || status == BatchStatus.STARTING)) { - throw new JobExecutionNotRunningException("JobExecution must be running so that it can be stopped: "+jobExecution); - } - jobExecution.setStatus(BatchStatus.STOPPING); - jobRepository.update(jobExecution); - - try { - Job job = jobRegistry.getJob(jobExecution.getId()); - if (job instanceof StepLocator) {//can only process as StepLocator is the only way to get the step object - //get the current stepExecution - for (org.springframework.batch.core.StepExecution stepExecution : jobExecution.getStepExecutions()) { - if (stepExecution.getStatus().isRunning()) { - try { - //have the step execution that's running -> need to 'stop' it - Step step = ((StepLocator)job).getStep(stepExecution.getStepName()); - if (step instanceof TaskletStep) { - Tasklet tasklet = ((TaskletStep)step).getTasklet(); - if (tasklet instanceof StoppableTasklet) { - StepSynchronizationManager.register(stepExecution); - ((StoppableTasklet)tasklet).stop(); - StepSynchronizationManager.release(); - } - } - } - catch (NoSuchStepException e) { - logger.warn("Step not found",e); - } - } - } - } - } - catch (NoSuchJobException e) { - logger.warn("Cannot find Job object",e); - } - } - - @Override - public void setApplicationContext(ApplicationContext applicationContext) throws BeansException { - baseContext = applicationContext; - } - - private static class ExecutingJobRegistry { - - private Map registry = new ConcurrentHashMap<>(); - - public void register(Job job, org.springframework.batch.core.JobExecution jobExecution) throws DuplicateJobException { - - if(registry.containsKey(jobExecution.getId())) { - throw new DuplicateJobException("This job execution has already been registered"); - } else { - registry.put(jobExecution.getId(), job); - } - } - - public void remove(org.springframework.batch.core.JobExecution jobExecution) { - if(!registry.containsKey(jobExecution.getId())) { - throw new NoSuchJobExecutionException("The job execution " + jobExecution.getId() + " was not found"); - } else { - registry.remove(jobExecution.getId()); - } - } - - public boolean exists(long jobExecutionId) { - return registry.containsKey(jobExecutionId); - } - - public Job getJob(long jobExecutionId) { - if(!registry.containsKey(jobExecutionId)) { - throw new NoSuchJobExecutionException("The job execution " + jobExecutionId + " was not found"); - } else { - return registry.get(jobExecutionId); - } - } - } - - /** - * A singleton holder used to lazily bootstrap the base context used in JSR-352. - */ - protected static class BaseContextHolder { - - private ApplicationContext context; - - private static BaseContextHolder instance; - - private BaseContextHolder() { - synchronized (BaseContextHolder.class) { - if(this.context == null) { - String overrideContextLocation = System.getProperty("JSR-352-BASE-CONTEXT"); - - List contextLocations = new ArrayList<>(); - - contextLocations.add("jsrBaseContext.xml"); - - if(overrideContextLocation != null) { - contextLocations.add(overrideContextLocation); - } - - this.context = new GenericXmlApplicationContext( - contextLocations.toArray(new String[contextLocations.size()])); - } - } - } - - public static BaseContextHolder getInstance() { - synchronized (BaseContextHolder.class) { - if(instance == null) { - instance = new BaseContextHolder(); - } - } - - return instance; - } - - public ApplicationContext getContext() { - return this.context; - } - } -} diff --git a/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/launch/package-info.java b/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/launch/package-info.java deleted file mode 100644 index 00f60e37a..000000000 --- a/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/launch/package-info.java +++ /dev/null @@ -1,10 +0,0 @@ -/** - * Implementation of the JSR-352 specific job launching facilities. - * - * @author Michael Minella - * @author Mahmoud Ben Hassine - */ -@NonNullApi -package org.springframework.batch.core.jsr.launch; - -import org.springframework.lang.NonNullApi; diff --git a/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/launch/support/BatchPropertyBeanPostProcessor.java b/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/launch/support/BatchPropertyBeanPostProcessor.java deleted file mode 100644 index 42b77f099..000000000 --- a/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/launch/support/BatchPropertyBeanPostProcessor.java +++ /dev/null @@ -1,184 +0,0 @@ -/* - * Copyright 2013-2021 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.springframework.batch.core.jsr.launch.support; - -import java.lang.annotation.Annotation; -import java.lang.reflect.Field; -import java.lang.reflect.Modifier; -import java.util.HashSet; -import java.util.Properties; -import java.util.Set; - -import jakarta.batch.api.BatchProperty; - -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -import org.springframework.batch.core.jsr.configuration.support.BatchPropertyContext; -import org.springframework.batch.core.jsr.configuration.support.JsrExpressionParser; -import org.springframework.batch.core.scope.StepScope; -import org.springframework.batch.core.scope.context.StepContext; -import org.springframework.batch.core.scope.context.StepSynchronizationManager; -import org.springframework.beans.BeansException; -import org.springframework.beans.factory.BeanFactory; -import org.springframework.beans.factory.BeanFactoryAware; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.config.BeanExpressionContext; -import org.springframework.beans.factory.config.BeanPostProcessor; -import org.springframework.beans.factory.config.ConfigurableListableBeanFactory; -import org.springframework.context.expression.StandardBeanExpressionResolver; -import org.springframework.util.ReflectionUtils; -import org.springframework.util.StringUtils; - -/** - *

- * {@link BeanPostProcessor} implementation used to inject JSR-352 String properties into batch artifact fields - * that are marked with the {@link BatchProperty} annotation. - *

- * - * @author Chris Schaefer - * @author Michael Minella - * @author Mahmoud Ben Hassine - * @since 3.0 - */ -@SuppressWarnings("unchecked") -public class BatchPropertyBeanPostProcessor implements BeanPostProcessor, BeanFactoryAware { - private static final String SCOPED_TARGET_BEAN_PREFIX = "scopedTarget."; - private static final Log LOGGER = LogFactory.getLog(BatchPropertyBeanPostProcessor.class); - private static final Set> REQUIRED_ANNOTATIONS = new HashSet<>(); - - private JsrExpressionParser jsrExpressionParser; - private BatchPropertyContext batchPropertyContext; - - static { - ClassLoader cl = BatchPropertyBeanPostProcessor.class.getClassLoader(); - - try { - REQUIRED_ANNOTATIONS.add((Class) cl.loadClass("jakarta.inject.Inject")); - } catch (ClassNotFoundException ex) { - LOGGER.warn("jakarta.inject.Inject not found - @BatchProperty marked fields will not be processed."); - } - - REQUIRED_ANNOTATIONS.add(BatchProperty.class); - } - - @Override - public Object postProcessBeforeInitialization(final Object artifact, String artifactName) throws BeansException { - Properties artifactProperties = getArtifactProperties(artifactName); - - if (artifactProperties.isEmpty()) { - return artifact; - } - - injectBatchProperties(artifact, artifactProperties); - - return artifact; - } - - @Override - public Object postProcessAfterInitialization(Object artifact, String artifactName) throws BeansException { - return artifact; - } - - private Properties getArtifactProperties(String artifactName) { - String originalArtifactName = artifactName; - - if(originalArtifactName.startsWith(SCOPED_TARGET_BEAN_PREFIX)) { - originalArtifactName = artifactName.substring(SCOPED_TARGET_BEAN_PREFIX.length()); - } - - StepContext stepContext = StepSynchronizationManager.getContext(); - - if (stepContext != null) { - return batchPropertyContext.getStepArtifactProperties(stepContext.getStepName(), originalArtifactName); - } - - return batchPropertyContext.getArtifactProperties(originalArtifactName); - } - - private void injectBatchProperties(final Object artifact, final Properties artifactProperties) { - ReflectionUtils.doWithFields(artifact.getClass(), new ReflectionUtils.FieldCallback() { - @Override - public void doWith(Field field) throws IllegalArgumentException, IllegalAccessException { - if (isValidFieldModifier(field) && isAnnotated(field)) { - boolean isAccessible = field.isAccessible(); - field.setAccessible(true); - - String batchProperty = getBatchPropertyFieldValue(field, artifactProperties); - - if (StringUtils.hasText(batchProperty)) { - field.set(artifact, batchProperty); - } - - field.setAccessible(isAccessible); - } - } - }); - } - - private String getBatchPropertyFieldValue(Field field, Properties batchArtifactProperties) { - BatchProperty batchProperty = field.getAnnotation(BatchProperty.class); - - if (!"".equals(batchProperty.name())) { - return getBatchProperty(batchProperty.name(), batchArtifactProperties); - } - - return getBatchProperty(field.getName(), batchArtifactProperties); - } - - private String getBatchProperty(String propertyKey, Properties batchArtifactProperties) { - if (batchArtifactProperties.containsKey(propertyKey)) { - String propertyValue = (String) batchArtifactProperties.get(propertyKey); - - return jsrExpressionParser.parseExpression(propertyValue); - } - - return null; - } - - private boolean isAnnotated(Field field) { - for (Class annotation : REQUIRED_ANNOTATIONS) { - if (!field.isAnnotationPresent(annotation)) { - return false; - } - } - - return true; - } - - private boolean isValidFieldModifier(Field field) { - return !Modifier.isStatic(field.getModifiers()) && !Modifier.isFinal(field.getModifiers()); - } - - @Override - public void setBeanFactory(BeanFactory beanFactory) throws BeansException { - if (!(beanFactory instanceof ConfigurableListableBeanFactory)) { - throw new IllegalArgumentException( - "BatchPropertyBeanPostProcessor requires a ConfigurableListableBeanFactory"); - } - - ConfigurableListableBeanFactory configurableListableBeanFactory = (ConfigurableListableBeanFactory) beanFactory; - - BeanExpressionContext beanExpressionContext = new BeanExpressionContext(configurableListableBeanFactory, - configurableListableBeanFactory.getBean(StepScope.class)); - - this.jsrExpressionParser = new JsrExpressionParser(new StandardBeanExpressionResolver(), beanExpressionContext); - } - - @Autowired - public void setBatchPropertyContext(BatchPropertyContext batchPropertyContext) { - this.batchPropertyContext = batchPropertyContext; - } -} diff --git a/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/package-info.java b/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/package-info.java deleted file mode 100644 index 45b3edde3..000000000 --- a/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/package-info.java +++ /dev/null @@ -1,10 +0,0 @@ -/** - * Extensions of core batch components to apply JSR-352 specific logic. - * - * @author Michael Minella - * @author Mahmoud Ben Hassine - */ -@NonNullApi -package org.springframework.batch.core.jsr; - -import org.springframework.lang.NonNullApi; diff --git a/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/partition/JsrPartitionHandler.java b/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/partition/JsrPartitionHandler.java deleted file mode 100644 index e2049b334..000000000 --- a/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/partition/JsrPartitionHandler.java +++ /dev/null @@ -1,509 +0,0 @@ -/* - * Copyright 2013-2021 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.springframework.batch.core.jsr.partition; - -import java.io.Serializable; -import java.util.ArrayList; -import java.util.Collection; -import java.util.HashSet; -import java.util.Iterator; -import java.util.List; -import java.util.Properties; -import java.util.Queue; -import java.util.Set; -import java.util.concurrent.Callable; -import java.util.concurrent.Future; -import java.util.concurrent.FutureTask; -import java.util.concurrent.LinkedBlockingQueue; -import java.util.concurrent.locks.ReentrantLock; - -import jakarta.batch.api.partition.PartitionAnalyzer; -import jakarta.batch.api.partition.PartitionCollector; -import jakarta.batch.api.partition.PartitionMapper; -import jakarta.batch.api.partition.PartitionPlan; - -import org.springframework.batch.core.BatchStatus; -import org.springframework.batch.core.ExitStatus; -import org.springframework.batch.core.JobExecutionException; -import org.springframework.batch.core.Step; -import org.springframework.batch.core.StepExecution; -import org.springframework.batch.core.jsr.configuration.support.BatchPropertyContext; -import org.springframework.batch.core.partition.PartitionHandler; -import org.springframework.batch.core.partition.StepExecutionSplitter; -import org.springframework.batch.core.repository.JobRepository; -import org.springframework.batch.item.ExecutionContext; -import org.springframework.beans.factory.InitializingBean; -import org.springframework.core.task.TaskRejectedException; -import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor; -import org.springframework.util.Assert; - -/** - * Executes a step instance per thread using a {@link ThreadPoolTaskExecutor} in - * accordance with JSR-352. The results from each step is aggregated into a - * cumulative result. - * - * @author Michael Minella - * @author Mahmoud Ben Hassine - * @since 3.0 - */ -public class JsrPartitionHandler implements PartitionHandler, InitializingBean { - - private static final int DEFAULT_POLLING_INTERVAL = 500; - - // TODO: Replace with proper Channel and Messages once minimum support level for Spring is 4 - private Queue partitionDataQueue; - private ReentrantLock lock; - private Step step; - private int partitions; - private PartitionAnalyzer analyzer; - private PartitionMapper mapper; - private int threads; - private BatchPropertyContext propertyContext; - private JobRepository jobRepository; - private boolean allowStartIfComplete = false; - private Set partitionStepNames = new HashSet<>(); - private int pollingInterval = DEFAULT_POLLING_INTERVAL; - - /** - * @return the step that will be executed by each partition - */ - public Step getStep() { - return step; - } - - /** - * @return the names of each partitioned step - */ - public Collection getPartitionStepNames() { - return partitionStepNames; - } - - /** - * @param allowStartIfComplete flag stating if the step should restart if it - * was complete in a previous run - */ - public void setAllowStartIfComplete(boolean allowStartIfComplete) { - this.allowStartIfComplete = allowStartIfComplete; - } - - /** - * @param queue {@link Queue} to receive the output of the {@link PartitionCollector} - */ - public void setPartitionDataQueue(Queue queue) { - this.partitionDataQueue = queue; - } - - public void setPartitionLock(ReentrantLock lock) { - this.lock = lock; - } - - /** - * @param context {@link BatchPropertyContext} to resolve partition level step properties - */ - public void setPropertyContext(BatchPropertyContext context) { - this.propertyContext = context; - } - - /** - * @param mapper {@link PartitionMapper} used to configure partitioning - */ - public void setPartitionMapper(PartitionMapper mapper) { - this.mapper = mapper; - } - - /** - * @param step the step to be executed as a partitioned step - */ - public void setStep(Step step) { - this.step = step; - } - - /** - * @param analyzer {@link PartitionAnalyzer} - */ - public void setPartitionAnalyzer(PartitionAnalyzer analyzer) { - this.analyzer = analyzer; - } - - /** - * @param threads the number of threads to execute the partitions to be run - * within. The default is the number of partitions. - */ - public void setThreads(int threads) { - this.threads = threads; - } - - /** - * @param partitions the number of partitions to be executed - */ - public void setPartitions(int partitions) { - this.partitions = partitions; - } - - /** - * @param jobRepository {@link JobRepository} - */ - public void setJobRepository(JobRepository jobRepository) { - this.jobRepository = jobRepository; - } - - /** - * @param pollingInterval the duration of partitions completion polling interval - * (in milliseconds). The default value is 500ms. - */ - public void setPollingInterval(int pollingInterval) { - this.pollingInterval = pollingInterval; - } - - /* (non-Javadoc) - * @see org.springframework.batch.core.partition.PartitionHandler#handle(org.springframework.batch.core.partition.StepExecutionSplitter, org.springframework.batch.core.StepExecution) - */ - @Override - public Collection handle(StepExecutionSplitter stepSplitter, - StepExecution stepExecution) throws Exception { - final List> tasks = new ArrayList<>(); - final Set result = new HashSet<>(); - final ThreadPoolTaskExecutor taskExecutor = new ThreadPoolTaskExecutor(); - - int stepExecutionCount = jobRepository.getStepExecutionCount(stepExecution.getJobExecution().getJobInstance(), stepExecution.getStepName()); - - boolean isRestart = stepExecutionCount > 1; - - Set partitionStepExecutions = splitStepExecution(stepExecution, isRestart); - - for (StepExecution curStepExecution : partitionStepExecutions) { - partitionStepNames.add(curStepExecution.getStepName()); - } - - taskExecutor.setCorePoolSize(threads); - taskExecutor.setMaxPoolSize(threads); - - taskExecutor.initialize(); - - try { - for (final StepExecution curStepExecution : partitionStepExecutions) { - final FutureTask task = createTask(step, curStepExecution); - - try { - taskExecutor.execute(task); - tasks.add(task); - } catch (TaskRejectedException e) { - // couldn't execute one of the tasks - ExitStatus exitStatus = ExitStatus.FAILED - .addExitDescription("TaskExecutor rejected the task for this step."); - /* - * Set the status in case the caller is tracking it through the - * JobExecution. - */ - curStepExecution.setStatus(BatchStatus.FAILED); - curStepExecution.setExitStatus(exitStatus); - result.add(stepExecution); - } - } - - processPartitionResults(tasks, result); - } - finally { - taskExecutor.shutdown(); - } - - return result; - } - - /** - * Blocks until all partitioned steps have completed. As each step completes - * the PartitionAnalyzer analyzes the collector data received from each - * partition (if there is any). - * - * @param tasks The {@link Future} that contains the reference to the executing step - * @param result Set of completed {@link StepExecution}s - * @throws Exception - */ - private void processPartitionResults( - final List> tasks, - final Set result) throws Exception { - while(true) { - Thread.sleep(pollingInterval); - try { - lock.lock(); - while(!partitionDataQueue.isEmpty()) { - analyzer.analyzeCollectorData(partitionDataQueue.remove()); - } - - processFinishedPartitions(tasks, result); - - if(tasks.size() == 0) { - break; - } - } finally { - if(lock.isHeldByCurrentThread()) { - lock.unlock(); - } - } - } - } - - /** - * Uses either the {@link PartitionMapper} or the hard coded configuration to split - * the supplied manager StepExecution into the worker StepExecutions. - * - * @param stepExecution manager {@link StepExecution} - * @param isRestart true if this step is being restarted - * @return a {@link Set} of {@link StepExecution}s to be executed - * @throws Exception - * @throws JobExecutionException - */ - private Set splitStepExecution(StepExecution stepExecution, - boolean isRestart) throws Exception, JobExecutionException { - Set partitionStepExecutions = new HashSet<>(); - if(isRestart) { - if(mapper != null) { - PartitionPlan plan = mapper.mapPartitions(); - - if(plan.getPartitionsOverride()) { - partitionStepExecutions = applyPartitionPlan(stepExecution, plan, false); - - for (StepExecution curStepExecution : partitionStepExecutions) { - curStepExecution.setExecutionContext(new ExecutionContext()); - } - } else { - Properties[] partitionProps = plan.getPartitionProperties(); - - plan = (PartitionPlanState) stepExecution.getExecutionContext().get("partitionPlanState"); - plan.setPartitionProperties(partitionProps); - - partitionStepExecutions = applyPartitionPlan(stepExecution, plan, true); - } - - } else { - StepExecutionSplitter stepSplitter = new JsrStepExecutionSplitter(jobRepository, allowStartIfComplete, stepExecution.getStepName(), true); - partitionStepExecutions = stepSplitter.split(stepExecution, partitions); - } - } else { - if(mapper != null) { - PartitionPlan plan = mapper.mapPartitions(); - partitionStepExecutions = applyPartitionPlan(stepExecution, plan, true); - } else { - StepExecutionSplitter stepSplitter = new JsrStepExecutionSplitter(jobRepository, allowStartIfComplete, stepExecution.getStepName(), true); - partitionStepExecutions = stepSplitter.split(stepExecution, partitions); - } - } - return partitionStepExecutions; - } - - private Set applyPartitionPlan(StepExecution stepExecution, - PartitionPlan plan, boolean restoreState) throws JobExecutionException { - StepExecutionSplitter stepSplitter; - Set partitionStepExecutions; - if(plan.getThreads() > 0) { - threads = plan.getThreads(); - } else if(plan.getPartitions() > 0) { - threads = plan.getPartitions(); - } else { - throw new IllegalArgumentException("Either a number of threads or partitions are required"); - } - - PartitionPlanState partitionPlanState = new PartitionPlanState(); - partitionPlanState.setPartitionPlan(plan); - - stepExecution.getExecutionContext().put("partitionPlanState", partitionPlanState); - - stepSplitter = new JsrStepExecutionSplitter(jobRepository, allowStartIfComplete, stepExecution.getStepName(), restoreState); - partitionStepExecutions = stepSplitter.split(stepExecution, plan.getPartitions()); - registerPartitionProperties(partitionStepExecutions, plan); - return partitionStepExecutions; - } - - private void processFinishedPartitions( - final List> tasks, - final Set result) throws Exception { - for(int i = 0; i < tasks.size(); i++) { - Future curTask = tasks.get(i); - - if(curTask.isDone()) { - StepExecution curStepExecution = curTask.get(); - - if(analyzer != null) { - analyzer.analyzeStatus(curStepExecution.getStatus().getBatchStatus(), curStepExecution.getExitStatus().getExitCode()); - } - - result.add(curStepExecution); - - tasks.remove(i); - i--; - } - } - } - - private void registerPartitionProperties( - Set partitionStepExecutions, PartitionPlan plan) { - Properties[] partitionProperties = plan.getPartitionProperties(); - if(partitionProperties != null) { - Iterator executions = partitionStepExecutions.iterator(); - - int i = 0; - while(executions.hasNext()) { - StepExecution curExecution = executions.next(); - - if(i < partitionProperties.length) { - Properties partitionPropertyValues = partitionProperties[i]; - if(partitionPropertyValues != null) { - propertyContext.setStepProperties(curExecution.getStepName(), partitionPropertyValues); - } - - i++; - } else { - break; - } - } - } - } - - /** - * Creates the task executing the given step in the context of the given execution. - * - * @param step the step to execute - * @param stepExecution the given execution - * @return the task executing the given step - */ - protected FutureTask createTask(final Step step, - final StepExecution stepExecution) { - return new FutureTask<>(new Callable() { - @Override - public StepExecution call() throws Exception { - step.execute(stepExecution); - return stepExecution; - } - }); - } - - /* (non-Javadoc) - * @see org.springframework.beans.factory.InitializingBean#afterPropertiesSet() - */ - @Override - public void afterPropertiesSet() throws Exception { - Assert.notNull(propertyContext, "A BatchPropertyContext is required"); - Assert.isTrue(mapper != null || (threads > 0 || partitions > 0), "Either a mapper implementation or the number of partitions/threads is required"); - Assert.notNull(jobRepository, "A JobRepository is required"); - Assert.isTrue(pollingInterval >= 0, "The polling interval must be positive"); - - if(partitionDataQueue == null) { - partitionDataQueue = new LinkedBlockingQueue<>(); - } - - if(lock == null) { - lock = new ReentrantLock(); - } - } - - /** - * Since a {@link PartitionPlan} could provide dynamic data (different results from run to run), - * the batch runtime needs to save off the results for restarts. This class serves as a container - * used to save off that state. - * - * @author Michael Minella - * @since 3.0 - */ - public static class PartitionPlanState implements PartitionPlan, Serializable { - - private static final long serialVersionUID = 1L; - private Properties[] partitionProperties; - private int partitions; - private int threads; - - /** - * @param plan the {@link PartitionPlan} that is the source of the state - */ - public PartitionPlanState(PartitionPlan plan) { - partitionProperties = plan.getPartitionProperties(); - partitions = plan.getPartitions(); - threads = plan.getThreads(); - } - - public PartitionPlanState() { - } - - public void setPartitionPlan(PartitionPlan plan) { - this.partitionProperties = plan.getPartitionProperties(); - this.partitions = plan.getPartitions(); - this.threads = plan.getThreads(); - } - - /* (non-Javadoc) - * @see jakarta.batch.api.partition.PartitionPlan#getPartitionProperties() - */ - @Override - public Properties[] getPartitionProperties() { - return partitionProperties; - } - - /* (non-Javadoc) - * @see jakarta.batch.api.partition.PartitionPlan#getPartitions() - */ - @Override - public int getPartitions() { - return partitions; - } - - /* (non-Javadoc) - * @see jakarta.batch.api.partition.PartitionPlan#getThreads() - */ - @Override - public int getThreads() { - return threads; - } - - /* (non-Javadoc) - * @see jakarta.batch.api.partition.PartitionPlan#setPartitions(int) - */ - @Override - public void setPartitions(int count) { - this.partitions = count; - } - - /* (non-Javadoc) - * @see jakarta.batch.api.partition.PartitionPlan#setPartitionsOverride(boolean) - */ - @Override - public void setPartitionsOverride(boolean override) { - // Intentional No-op - } - - /* (non-Javadoc) - * @see jakarta.batch.api.partition.PartitionPlan#getPartitionsOverride() - */ - @Override - public boolean getPartitionsOverride() { - return false; - } - - /* (non-Javadoc) - * @see jakarta.batch.api.partition.PartitionPlan#setThreads(int) - */ - @Override - public void setThreads(int count) { - this.threads = count; - } - - /* (non-Javadoc) - * @see jakarta.batch.api.partition.PartitionPlan#setPartitionProperties(java.util.Properties[]) - */ - @Override - public void setPartitionProperties(Properties[] props) { - this.partitionProperties = props; - } - } -} diff --git a/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/partition/JsrStepExecutionSplitter.java b/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/partition/JsrStepExecutionSplitter.java deleted file mode 100644 index 257489de8..000000000 --- a/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/partition/JsrStepExecutionSplitter.java +++ /dev/null @@ -1,96 +0,0 @@ -/* - * Copyright 2013-2014 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.springframework.batch.core.jsr.partition; - -import org.springframework.batch.core.JobExecution; -import org.springframework.batch.core.JobExecutionException; -import org.springframework.batch.core.StepExecution; -import org.springframework.batch.core.jsr.launch.JsrJobOperator; -import org.springframework.batch.core.partition.support.SimpleStepExecutionSplitter; -import org.springframework.batch.core.repository.JobRepository; -import org.springframework.batch.item.ExecutionContext; - -import java.util.Comparator; -import java.util.Set; -import java.util.TreeSet; - -/** - * Provides JSR-352 specific behavior for the splitting of {@link StepExecution}s. - * - * @author Michael Minella - * @since 3.0 - */ -public class JsrStepExecutionSplitter extends SimpleStepExecutionSplitter { - - private String stepName; - private JobRepository jobRepository; - private boolean restoreState; - - public JsrStepExecutionSplitter(JobRepository jobRepository, boolean allowStartIfComplete, String stepName, boolean restoreState) { - super(jobRepository, allowStartIfComplete, stepName, null); - this.stepName = stepName; - this.jobRepository = jobRepository; - this.restoreState = restoreState; - } - - @Override - public String getStepName() { - return this.stepName; - } - - /** - * Returns the same number of {@link StepExecution}s as the gridSize specifies. Each - * of the child StepExecutions will not be available via the {@link JsrJobOperator} per - * JSR-352. - * - * @see https://java.net/projects/jbatch/lists/public/archive/2013-10/message/10 - */ - @Override - public Set split(StepExecution stepExecution, int gridSize) - throws JobExecutionException { - Set executions = new TreeSet<>(new Comparator() { - - @Override - public int compare(StepExecution arg0, StepExecution arg1) { - String r1 = ""; - String r2 = ""; - if (arg0 != null) { - r1 = arg0.getStepName(); - } - if (arg1 != null) { - r2 = arg1.getStepName(); - } - - return r1.compareTo(r2); - } - }); - JobExecution jobExecution = stepExecution.getJobExecution(); - - for(int i = 0; i < gridSize; i++) { - String stepName = this.stepName + ":partition" + i; - JobExecution curJobExecution = new JobExecution(jobExecution); - StepExecution curStepExecution = new StepExecution(stepName, curJobExecution); - - if(!restoreState || isStartable(curStepExecution, new ExecutionContext())) { - executions.add(curStepExecution); - } - } - - jobRepository.addAll(executions); - - return executions; - } -} diff --git a/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/partition/PartitionCollectorAdapter.java b/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/partition/PartitionCollectorAdapter.java deleted file mode 100644 index 806eb3e1d..000000000 --- a/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/partition/PartitionCollectorAdapter.java +++ /dev/null @@ -1,100 +0,0 @@ -/* - * Copyright 2013-2021 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.springframework.batch.core.jsr.partition; - -import java.io.Serializable; -import java.util.Queue; -import java.util.concurrent.locks.ReentrantLock; - -import jakarta.batch.api.partition.PartitionCollector; -import jakarta.batch.operations.BatchRuntimeException; - -import org.springframework.batch.core.ChunkListener; -import org.springframework.batch.core.scope.context.ChunkContext; -import org.springframework.util.Assert; - -/** - * Adapter class used to wrap a {@link PartitionCollector} so that it can be consumed - * as a {@link ChunkListener}. A thread-safe {@link Queue} is required along with the - * {@link PartitionCollector}. The {@link Queue} is where the result of the call to - * the PartitionCollector will be placed. - * - * @author Michael Minella - * @author Mahmoud Ben Hassine - * @since 3.0 - */ -public class PartitionCollectorAdapter implements ChunkListener { - - private PartitionCollector collector; - private Queue partitionQueue; - private ReentrantLock lock; - - public PartitionCollectorAdapter(Queue queue, PartitionCollector collector) { - Assert.notNull(queue, "A thread-safe Queue is required"); - Assert.notNull(collector, "A PartitionCollector is required"); - - this.partitionQueue = queue; - this.collector = collector; - } - - public void setPartitionLock(ReentrantLock lock) { - this.lock = lock; - } - - @Override - public void beforeChunk(ChunkContext context) { - } - - @Override - public void afterChunk(ChunkContext context) { - try { - if(context.isComplete()) { - lock.lock(); - Serializable collectPartitionData = collector.collectPartitionData(); - - if(collectPartitionData != null) { - partitionQueue.add(collectPartitionData); - } - } - } catch (Throwable e) { - throw new BatchRuntimeException("An error occurred while collecting data from the PartitionCollector", e); - } finally { - if(lock.isHeldByCurrentThread()) { - lock.unlock(); - } - } - } - - @Override - public void afterChunkError(ChunkContext context) { - try { - lock.lock(); - if(context.isComplete()) { - Serializable collectPartitionData = collector.collectPartitionData(); - - if(collectPartitionData != null) { - partitionQueue.add(collectPartitionData); - } - } - } catch (Throwable e) { - throw new BatchRuntimeException("An error occurred while collecting data from the PartitionCollector", e); - } finally { - if(lock.isHeldByCurrentThread()) { - lock.unlock(); - } - } - } -} diff --git a/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/partition/package-info.java b/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/partition/package-info.java deleted file mode 100644 index 7ab8ea49e..000000000 --- a/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/partition/package-info.java +++ /dev/null @@ -1,10 +0,0 @@ -/** - * Implementation of JSR-352 specific partitioning extensions. - * - * @author Michael Minella - * @author Mahmoud Ben Hassine - */ -@NonNullApi -package org.springframework.batch.core.jsr.partition; - -import org.springframework.lang.NonNullApi; diff --git a/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/partition/support/JsrBeanScopeBeanFactoryPostProcessor.java b/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/partition/support/JsrBeanScopeBeanFactoryPostProcessor.java deleted file mode 100644 index 067f19fe3..000000000 --- a/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/partition/support/JsrBeanScopeBeanFactoryPostProcessor.java +++ /dev/null @@ -1,103 +0,0 @@ -/* - * Copyright 2013-2021 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.springframework.batch.core.jsr.partition.support; - -import org.springframework.batch.core.jsr.configuration.xml.StepFactoryBean; -import org.springframework.batch.core.jsr.partition.JsrPartitionHandler; -import org.springframework.beans.BeansException; -import org.springframework.beans.PropertyValue; -import org.springframework.beans.factory.config.BeanDefinition; -import org.springframework.beans.factory.config.BeanFactoryPostProcessor; -import org.springframework.beans.factory.config.ConfigurableListableBeanFactory; -import org.springframework.beans.factory.config.RuntimeBeanReference; - -import jakarta.batch.api.partition.PartitionAnalyzer; -import jakarta.batch.api.partition.PartitionMapper; -import jakarta.batch.api.partition.PartitionReducer; - -/** - * In order for property resolution to occur correctly within the scope of a JSR-352 - * batch job, initialization of job level artifacts must occur on the same thread that - * the job is executing. To allow this to occur, {@link PartitionMapper}, - * {@link PartitionReducer}, and {@link PartitionAnalyzer} are all configured to - * lazy initialization (equivalent to lazy-init="true"). - * - * @author Michael Minella - * @author Mahmoud Ben Hassine - * @since 3.0 - */ -public class JsrBeanScopeBeanFactoryPostProcessor implements BeanFactoryPostProcessor { - - private JobLevelBeanLazyInitializer initializer; - - /* (non-Javadoc) - * @see org.springframework.beans.factory.config.BeanFactoryPostProcessor#postProcessBeanFactory(org.springframework.beans.factory.config.ConfigurableListableBeanFactory) - */ - @Override - public void postProcessBeanFactory( - ConfigurableListableBeanFactory beanFactory) throws BeansException { - if (initializer == null) { - this.initializer = new JobLevelBeanLazyInitializer(beanFactory); - } - - String[] beanNames = beanFactory.getBeanDefinitionNames(); - - for (String curName : beanNames) { - initializer.visitBeanDefinition(beanFactory.getBeanDefinition(curName)); - } - } - - /** - * Looks for beans that may have dependencies that need to be lazily initialized and - * configures the corresponding {@link BeanDefinition} accordingly. - * - * @author Michael Minella - * @since 3.0 - */ - public static class JobLevelBeanLazyInitializer { - - private ConfigurableListableBeanFactory beanFactory; - - public JobLevelBeanLazyInitializer(ConfigurableListableBeanFactory beanFactory) { - this.beanFactory = beanFactory; - } - - public void visitBeanDefinition(BeanDefinition beanDefinition) { - String beanClassName = beanDefinition.getBeanClassName(); - - if(StepFactoryBean.class.getName().equals(beanClassName)) { - PropertyValue [] values = beanDefinition.getPropertyValues().getPropertyValues(); - for (PropertyValue propertyValue : values) { - if(propertyValue.getName().equalsIgnoreCase("partitionReducer")) { - RuntimeBeanReference ref = (RuntimeBeanReference) propertyValue.getValue(); - beanFactory.getBeanDefinition(ref.getBeanName()).setLazyInit(true); - } - } - } - - if(JsrPartitionHandler.class.getName().equals(beanClassName)) { - PropertyValue [] values = beanDefinition.getPropertyValues().getPropertyValues(); - for (PropertyValue propertyValue : values) { - String propertyName = propertyValue.getName(); - if(propertyName.equalsIgnoreCase("partitionMapper") || propertyName.equalsIgnoreCase("partitionAnalyzer")) { - RuntimeBeanReference ref = (RuntimeBeanReference) propertyValue.getValue(); - beanFactory.getBeanDefinition(ref.getBeanName()).setLazyInit(true); - } - } - } - } - } -} diff --git a/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/partition/support/JsrStepExecutionAggregator.java b/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/partition/support/JsrStepExecutionAggregator.java deleted file mode 100644 index ad95e4260..000000000 --- a/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/partition/support/JsrStepExecutionAggregator.java +++ /dev/null @@ -1,56 +0,0 @@ -/* - * Copyright 2013 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.springframework.batch.core.jsr.partition.support; - -import java.util.Collection; - -import org.springframework.batch.core.BatchStatus; -import org.springframework.batch.core.StepExecution; -import org.springframework.batch.core.partition.support.StepExecutionAggregator; -import org.springframework.util.Assert; - -/** - * Aggregates {@link StepExecution}s based on the rules outlined in JSR-352. Specifically - * it aggregates all counts and determines the correct BatchStatus. However, the ExitStatus - * for each child StepExecution is ignored. - * - * @author Michael Minella - * @since 3.0 - */ -public class JsrStepExecutionAggregator implements StepExecutionAggregator { - - /* (non-Javadoc) - * @see org.springframework.batch.core.partition.support.StepExecutionAggregator#aggregate(org.springframework.batch.core.StepExecution, java.util.Collection) - */ - @Override - public void aggregate(StepExecution result, - Collection executions) { - Assert.notNull(result, "To aggregate into a result it must be non-null."); - if (executions == null) { - return; - } - for (StepExecution stepExecution : executions) { - BatchStatus status = stepExecution.getStatus(); - result.setStatus(BatchStatus.max(result.getStatus(), status)); - result.setCommitCount(result.getCommitCount() + stepExecution.getCommitCount()); - result.setRollbackCount(result.getRollbackCount() + stepExecution.getRollbackCount()); - result.setReadCount(result.getReadCount() + stepExecution.getReadCount()); - result.setReadSkipCount(result.getReadSkipCount() + stepExecution.getReadSkipCount()); - result.setWriteCount(result.getWriteCount() + stepExecution.getWriteCount()); - result.setWriteSkipCount(result.getWriteSkipCount() + stepExecution.getWriteSkipCount()); - } - } -} diff --git a/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/partition/support/package-info.java b/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/partition/support/package-info.java deleted file mode 100644 index 226692c75..000000000 --- a/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/partition/support/package-info.java +++ /dev/null @@ -1,25 +0,0 @@ -/* - * Copyright 2018 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. - */ - -/** - * Support classes for JSR-352 partitioning configuration. - * - * @author Mahmoud Ben Hassine - */ -@NonNullApi -package org.springframework.batch.core.jsr.partition.support; - -import org.springframework.lang.NonNullApi; diff --git a/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/step/BatchletStep.java b/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/step/BatchletStep.java deleted file mode 100644 index 034d6e940..000000000 --- a/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/step/BatchletStep.java +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Copyright 2013 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.springframework.batch.core.jsr.step; - -import org.springframework.batch.core.StepExecution; -import org.springframework.batch.core.jsr.configuration.support.BatchPropertyContext; -import org.springframework.batch.core.scope.context.StepSynchronizationManager; -import org.springframework.batch.core.step.tasklet.TaskletStep; -import org.springframework.util.Assert; - -/** - * Special sub class of the {@link TaskletStep} for use with JSR-352 jobs. This - * implementation addresses the registration of a {@link BatchPropertyContext} for - * resolution of late binding parameters. - * - * @author Michael Minella - * @since 3.0 - */ -public class BatchletStep extends TaskletStep { - - private BatchPropertyContext propertyContext; - - /** - * @param name name of the step - * @param propertyContext {@link BatchPropertyContext} used to resolve batch properties. - */ - public BatchletStep(String name, BatchPropertyContext propertyContext) { - super(name); - Assert.notNull(propertyContext, "A propertyContext is required"); - this.propertyContext = propertyContext; - } - - @Override - protected void doExecutionRegistration(StepExecution stepExecution) { - StepSynchronizationManager.register(stepExecution, propertyContext); - } -} diff --git a/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/step/DecisionStep.java b/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/step/DecisionStep.java deleted file mode 100644 index 35e2d82d0..000000000 --- a/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/step/DecisionStep.java +++ /dev/null @@ -1,96 +0,0 @@ -/* - * Copyright 2013-2021 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.springframework.batch.core.jsr.step; - -import java.util.ArrayList; -import java.util.Collection; -import java.util.List; - -import jakarta.batch.api.Decider; - -import org.springframework.batch.core.ExitStatus; -import org.springframework.batch.core.Step; -import org.springframework.batch.core.StepExecution; -import org.springframework.batch.core.jsr.JsrStepExecution; -import org.springframework.batch.core.step.AbstractStep; -import org.springframework.batch.item.ExecutionContext; - -/** - * Implements a {@link Step} to follow the rules for a decision state - * as defined by JSR-352. Currently does not support the JSR requirement - * to provide all of the last {@link jakarta.batch.runtime.StepExecution}s from - * a split. - * - * @author Michael Minella - * @author Mahmoud Ben Hassine - * @since 3.0 - */ -public class DecisionStep extends AbstractStep { - - private final Decider decider; - - /** - * @param decider a {@link Decider} implementation - */ - public DecisionStep(Decider decider) { - this.decider = decider; - } - - @SuppressWarnings("unchecked") - @Override - protected void doExecute(StepExecution stepExecution) throws Exception { - ExecutionContext executionContext = stepExecution.getJobExecution().getExecutionContext(); - List stepExecutions = new ArrayList<>(); - - if(executionContext.containsKey("batch.lastSteps")) { - List stepNames = (List) executionContext.get("batch.lastSteps"); - - for (String stepName : stepNames) { - StepExecution curStepExecution = getJobRepository().getLastStepExecution(stepExecution.getJobExecution().getJobInstance(), stepName); - stepExecutions.add(new JsrStepExecution(curStepExecution)); - } - } else { - Collection currentRunStepExecutions = stepExecution.getJobExecution().getStepExecutions(); - - StepExecution lastExecution = null; - - if(stepExecutions != null) { - for (StepExecution curStepExecution : currentRunStepExecutions) { - if(lastExecution == null || (curStepExecution.getEndTime() != null && curStepExecution.getEndTime().after(lastExecution.getEndTime()))) { - lastExecution = curStepExecution; - } - } - - stepExecutions.add(new JsrStepExecution(lastExecution)); - } - } - - try { - ExitStatus exitStatus = new ExitStatus(decider.decide(stepExecutions.toArray(new jakarta.batch.runtime.StepExecution[0]))); - - stepExecution.getJobExecution().setExitStatus(exitStatus); - stepExecution.setExitStatus(exitStatus); - - if(executionContext.containsKey("batch.lastSteps")) { - executionContext.remove("batch.lastSteps"); - } - } catch (Exception e) { - stepExecution.setTerminateOnly(); - stepExecution.addFailureException(e); - throw e; - } - } -} diff --git a/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/step/PartitionStep.java b/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/step/PartitionStep.java deleted file mode 100644 index de040ed18..000000000 --- a/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/step/PartitionStep.java +++ /dev/null @@ -1,117 +0,0 @@ -/* - * Copyright 2013-2021 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.springframework.batch.core.jsr.step; - -import java.util.Collection; - -import jakarta.batch.api.partition.PartitionReducer; -import jakarta.batch.api.partition.PartitionReducer.PartitionStatus; - -import org.springframework.batch.core.BatchStatus; -import org.springframework.batch.core.JobExecutionException; -import org.springframework.batch.core.Step; -import org.springframework.batch.core.StepExecution; -import org.springframework.batch.core.jsr.partition.JsrPartitionHandler; -import org.springframework.batch.core.jsr.partition.support.JsrStepExecutionAggregator; -import org.springframework.batch.core.partition.PartitionHandler; -import org.springframework.batch.core.partition.StepExecutionSplitter; -import org.springframework.batch.core.partition.support.StepExecutionAggregator; -import org.springframework.batch.core.step.NoSuchStepException; -import org.springframework.batch.core.step.StepLocator; -import org.springframework.batch.item.ExecutionContext; - -/** - * An extension of the {@link PartitionStep} that provides additional semantics - * required by JSR-352. Specifically, this implementation adds the required - * lifecycle calls to the {@link PartitionReducer} if it is used. - * - * @author Michael Minella - * @author Mahmoud Ben Hassine - * @since 3.0 - */ -public class PartitionStep extends org.springframework.batch.core.partition.support.PartitionStep implements StepLocator { - - private PartitionReducer reducer; - private boolean hasReducer = false; - private StepExecutionAggregator stepExecutionAggregator = new JsrStepExecutionAggregator(); - - public void setPartitionReducer(PartitionReducer reducer) { - this.reducer = reducer; - hasReducer = reducer != null; - } - - /** - * Delegate execution to the {@link PartitionHandler} provided. The - * {@link StepExecution} passed in here becomes the parent or manager - * execution for the partition, summarizing the status on exit of the - * logical grouping of work carried out by the {@link PartitionHandler}. The - * individual step executions and their input parameters (through - * {@link ExecutionContext}) for the partition elements are provided by the - * {@link StepExecutionSplitter}. - * - * @param stepExecution the manager step execution for the partition - * - * @see Step#execute(StepExecution) - */ - @Override - protected void doExecute(StepExecution stepExecution) throws Exception { - - if(hasReducer) { - reducer.beginPartitionedStep(); - } - - // Wait for task completion and then aggregate the results - Collection stepExecutions = getPartitionHandler().handle(null, stepExecution); - stepExecution.upgradeStatus(BatchStatus.COMPLETED); - stepExecutionAggregator.aggregate(stepExecution, stepExecutions); - - if (stepExecution.getStatus().isUnsuccessful()) { - if (hasReducer) { - reducer.rollbackPartitionedStep(); - reducer.afterPartitionedStepCompletion(PartitionStatus.ROLLBACK); - } - throw new JobExecutionException("Partition handler returned an unsuccessful step"); - } - - if (hasReducer) { - reducer.beforePartitionedStepCompletion(); - reducer.afterPartitionedStepCompletion(PartitionStatus.COMMIT); - } - } - - /* (non-Javadoc) - * @see org.springframework.batch.core.step.StepLocator#getStepNames() - */ - @Override - public Collection getStepNames() { - return ((JsrPartitionHandler) getPartitionHandler()).getPartitionStepNames(); - } - - /* (non-Javadoc) - * @see org.springframework.batch.core.step.StepLocator#getStep(java.lang.String) - */ - @Override - public Step getStep(String stepName) throws NoSuchStepException { - JsrPartitionHandler partitionHandler = (JsrPartitionHandler) getPartitionHandler(); - Collection names = partitionHandler.getPartitionStepNames(); - - if(names.contains(stepName)) { - return partitionHandler.getStep(); - } else { - throw new NoSuchStepException(stepName + " was not found"); - } - } -} diff --git a/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/step/batchlet/BatchletAdapter.java b/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/step/batchlet/BatchletAdapter.java deleted file mode 100644 index f886aefe3..000000000 --- a/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/step/batchlet/BatchletAdapter.java +++ /dev/null @@ -1,72 +0,0 @@ -/* - * Copyright 2013-2021 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.springframework.batch.core.jsr.step.batchlet; - -import jakarta.batch.api.Batchlet; -import jakarta.batch.operations.BatchRuntimeException; - -import org.springframework.batch.core.ExitStatus; -import org.springframework.batch.core.StepContribution; -import org.springframework.batch.core.scope.context.ChunkContext; -import org.springframework.batch.core.step.tasklet.StoppableTasklet; -import org.springframework.batch.repeat.RepeatStatus; -import org.springframework.lang.Nullable; -import org.springframework.util.Assert; -import org.springframework.util.StringUtils; - -/** - * - * @author Michael Minella - * @author Mahmoud Ben Hassine - * @since 3.0 - */ -public class BatchletAdapter implements StoppableTasklet { - - private Batchlet batchlet; - - public BatchletAdapter(Batchlet batchlet) { - Assert.notNull(batchlet, "A Batchlet implementation is required"); - this.batchlet = batchlet; - } - - @Nullable - @Override - public RepeatStatus execute(StepContribution contribution, - ChunkContext chunkContext) throws Exception { - String exitStatus; - try { - exitStatus = batchlet.process(); - } finally { - chunkContext.setComplete(); - } - - if(StringUtils.hasText(exitStatus)) { - contribution.setExitStatus(new ExitStatus(exitStatus)); - } - - - return RepeatStatus.FINISHED; - } - - @Override - public void stop() { - try { - batchlet.stop(); - } catch (Exception e) { - throw new BatchRuntimeException(e); - } - } -} diff --git a/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/step/batchlet/package-info.java b/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/step/batchlet/package-info.java deleted file mode 100644 index 1c60e42fd..000000000 --- a/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/step/batchlet/package-info.java +++ /dev/null @@ -1,10 +0,0 @@ -/** - * Classes for supporting JSR-352's {@link jakarta.batch.api.Batchlet}. - * - * @author Michael Minella - * @author Mahmoud Ben Hassine - */ -@NonNullApi -package org.springframework.batch.core.jsr.step.batchlet; - -import org.springframework.lang.NonNullApi; diff --git a/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/step/builder/JsrBatchletStepBuilder.java b/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/step/builder/JsrBatchletStepBuilder.java deleted file mode 100644 index 923f497de..000000000 --- a/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/step/builder/JsrBatchletStepBuilder.java +++ /dev/null @@ -1,103 +0,0 @@ -/* - * Copyright 2013-2018 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.springframework.batch.core.jsr.step.builder; - -import org.springframework.batch.core.ChunkListener; -import org.springframework.batch.core.Step; -import org.springframework.batch.core.jsr.configuration.support.BatchPropertyContext; -import org.springframework.batch.core.jsr.step.BatchletStep; -import org.springframework.batch.core.step.builder.StepBuilderException; -import org.springframework.batch.core.step.builder.StepBuilderHelper; -import org.springframework.batch.core.step.builder.TaskletStepBuilder; -import org.springframework.batch.core.step.tasklet.TaskletStep; -import org.springframework.batch.item.ItemStream; -import org.springframework.batch.repeat.support.RepeatTemplate; -import org.springframework.batch.repeat.support.TaskExecutorRepeatTemplate; - -/** - * Extension of the {@link TaskletStepBuilder} that uses a {@link BatchletStep} instead - * of a {@link TaskletStep}. - * - * @author Michael Minella - * @author Mahmoud Ben Hassine - * @since 3.0 - */ -public class JsrBatchletStepBuilder extends TaskletStepBuilder { - - private BatchPropertyContext batchPropertyContext; - - /** - * @param context used to resolve lazy bound properties - */ - public void setBatchPropertyContext(BatchPropertyContext context) { - this.batchPropertyContext = context; - } - - public JsrBatchletStepBuilder(StepBuilderHelper> parent) { - super(parent); - } - - /** - * Build the step from the components collected by the fluent setters. Delegates first to {@link #enhance(Step)} and - * then to {@link #createTasklet()} in subclasses to create the actual tasklet. - * - * @return a tasklet step fully configured and read to execute - */ - @Override - public TaskletStep build() { - - registerStepListenerAsChunkListener(); - - BatchletStep step = new BatchletStep(getName(), batchPropertyContext); - - super.enhance(step); - - step.setChunkListeners(chunkListeners.toArray(new ChunkListener[0])); - - if (getTransactionAttribute() != null) { - step.setTransactionAttribute(getTransactionAttribute()); - } - - if (getStepOperations() == null) { - - stepOperations(new RepeatTemplate()); - - if (getTaskExecutor() != null) { - TaskExecutorRepeatTemplate repeatTemplate = new TaskExecutorRepeatTemplate(); - repeatTemplate.setTaskExecutor(getTaskExecutor()); - repeatTemplate.setThrottleLimit(getThrottleLimit()); - stepOperations(repeatTemplate); - } - - ((RepeatTemplate) getStepOperations()).setExceptionHandler(getExceptionHandler()); - - } - step.setStepOperations(getStepOperations()); - step.setTasklet(createTasklet()); - - step.setStreams(getStreams().toArray(new ItemStream[0])); - - try { - step.afterPropertiesSet(); - } - catch (Exception e) { - throw new StepBuilderException(e); - } - - return step; - - } -} diff --git a/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/step/builder/JsrFaultTolerantStepBuilder.java b/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/step/builder/JsrFaultTolerantStepBuilder.java deleted file mode 100644 index 776635784..000000000 --- a/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/step/builder/JsrFaultTolerantStepBuilder.java +++ /dev/null @@ -1,157 +0,0 @@ -/* - * Copyright 2013 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.springframework.batch.core.jsr.step.builder; - -import java.util.ArrayList; -import java.util.List; - -import org.springframework.batch.core.ChunkListener; -import org.springframework.batch.core.Step; -import org.springframework.batch.core.StepListener; -import org.springframework.batch.core.jsr.configuration.support.BatchPropertyContext; -import org.springframework.batch.core.jsr.step.BatchletStep; -import org.springframework.batch.core.jsr.step.item.JsrChunkProvider; -import org.springframework.batch.core.jsr.step.item.JsrFaultTolerantChunkProcessor; -import org.springframework.batch.core.step.builder.FaultTolerantStepBuilder; -import org.springframework.batch.core.step.builder.StepBuilder; -import org.springframework.batch.core.step.builder.StepBuilderException; -import org.springframework.batch.core.step.item.ChunkOrientedTasklet; -import org.springframework.batch.core.step.item.ChunkProcessor; -import org.springframework.batch.core.step.item.ChunkProvider; -import org.springframework.batch.core.step.skip.SkipPolicy; -import org.springframework.batch.core.step.tasklet.TaskletStep; -import org.springframework.batch.item.ItemStream; -import org.springframework.batch.repeat.support.RepeatTemplate; -import org.springframework.batch.repeat.support.TaskExecutorRepeatTemplate; - -/** - * A step builder that extends the {@link FaultTolerantStepBuilder} to create JSR-352 - * specific {@link ChunkProvider} and {@link ChunkProcessor} supporting both the chunking - * pattern defined by the spec as well as skip/retry logic. - * - * @author Michael Minella - * @author Chris Schaefer - * - * @param The input type for the step - * @param The output type for the step - */ -public class JsrFaultTolerantStepBuilder extends FaultTolerantStepBuilder { - - private BatchPropertyContext batchPropertyContext; - - public void setBatchPropertyContext(BatchPropertyContext batchPropertyContext) { - this.batchPropertyContext = batchPropertyContext; - } - - public JsrFaultTolerantStepBuilder(StepBuilder parent) { - super(parent); - } - - @Override - public FaultTolerantStepBuilder faultTolerant() { - return this; - } - - - /** - * Build the step from the components collected by the fluent setters. Delegates first to {@link #enhance(Step)} and - * then to {@link #createTasklet()} in subclasses to create the actual tasklet. - * - * @return a tasklet step fully configured and read to execute - */ - @Override - public TaskletStep build() { - registerStepListenerAsSkipListener(); - registerAsStreamsAndListeners(getReader(), getProcessor(), getWriter()); - - registerStepListenerAsChunkListener(); - - BatchletStep step = new BatchletStep(getName(), batchPropertyContext); - - super.enhance(step); - - step.setChunkListeners(chunkListeners.toArray(new ChunkListener[0])); - - if (getTransactionAttribute() != null) { - step.setTransactionAttribute(getTransactionAttribute()); - } - - if (getStepOperations() == null) { - - stepOperations(new RepeatTemplate()); - - if (getTaskExecutor() != null) { - TaskExecutorRepeatTemplate repeatTemplate = new TaskExecutorRepeatTemplate(); - repeatTemplate.setTaskExecutor(getTaskExecutor()); - repeatTemplate.setThrottleLimit(getThrottleLimit()); - stepOperations(repeatTemplate); - } - - ((RepeatTemplate) getStepOperations()).setExceptionHandler(getExceptionHandler()); - - } - step.setStepOperations(getStepOperations()); - step.setTasklet(createTasklet()); - - step.setStreams(getStreams().toArray(new ItemStream[0])); - - try { - step.afterPropertiesSet(); - } - catch (Exception e) { - throw new StepBuilderException(e); - } - - return step; - - } - - @Override - protected ChunkProvider createChunkProvider() { - return new JsrChunkProvider<>(); - } - - /** - * Provides a JSR-352 specific implementation of a {@link ChunkProcessor} for use - * within the {@link ChunkOrientedTasklet} - * - * @return a JSR-352 implementation of the {@link ChunkProcessor} - * @see JsrFaultTolerantChunkProcessor - */ - @Override - protected ChunkProcessor createChunkProcessor() { - SkipPolicy skipPolicy = getFatalExceptionAwareProxy(createSkipPolicy()); - JsrFaultTolerantChunkProcessor chunkProcessor = - new JsrFaultTolerantChunkProcessor<>(getReader(), getProcessor(), - getWriter(), createChunkOperations(), createRetryOperations()); - chunkProcessor.setSkipPolicy(skipPolicy); - chunkProcessor.setRollbackClassifier(getRollbackClassifier()); - detectStreamInReader(); - chunkProcessor.setChunkMonitor(getChunkMonitor()); - chunkProcessor.setListeners(getChunkListeners()); - - return chunkProcessor; - } - - private List getChunkListeners() { - List listeners = new ArrayList<>(); - listeners.addAll(getItemListeners()); - listeners.addAll(getSkipListeners()); - listeners.addAll(getJsrRetryListeners()); - - return listeners; - } -} diff --git a/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/step/builder/JsrPartitionStepBuilder.java b/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/step/builder/JsrPartitionStepBuilder.java deleted file mode 100644 index ef0789343..000000000 --- a/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/step/builder/JsrPartitionStepBuilder.java +++ /dev/null @@ -1,132 +0,0 @@ -/* - * Copyright 2013-2021 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.springframework.batch.core.jsr.step.builder; - -import jakarta.batch.api.partition.PartitionReducer; - -import org.springframework.batch.core.Step; -import org.springframework.batch.core.jsr.step.PartitionStep; -import org.springframework.batch.core.partition.support.SimpleStepExecutionSplitter; -import org.springframework.batch.core.partition.support.TaskExecutorPartitionHandler; -import org.springframework.batch.core.step.builder.PartitionStepBuilder; -import org.springframework.batch.core.step.builder.StepBuilderException; -import org.springframework.batch.core.step.builder.StepBuilderHelper; -import org.springframework.core.task.SyncTaskExecutor; - -/** - * An extension of the {@link PartitionStepBuilder} that uses {@link PartitionStep} - * so that JSR-352 specific semantics are honored. - * - * @author Michael Minella - * @author Mahmoud Ben Hassine - * @since 3.0 - */ -public class JsrPartitionStepBuilder extends PartitionStepBuilder { - - private PartitionReducer reducer; - - /** - * @param parent parent step builder for basic step properties - */ - public JsrPartitionStepBuilder(StepBuilderHelper parent) { - super(parent); - } - - /** - * @param reducer used to provide a single callback at the beginning and end - * of a partitioned step. - * - * @return this - */ - public JsrPartitionStepBuilder reducer(PartitionReducer reducer) { - this.reducer = reducer; - return this; - } - - @Override - public JsrPartitionStepBuilder step(Step step) { - super.step(step); - return this; - } - - @Override - public Step build() { - PartitionStep step = new PartitionStep(); - step.setName(getName()); - super.enhance(step); - - if (getPartitionHandler() != null) { - step.setPartitionHandler(getPartitionHandler()); - } - else { - TaskExecutorPartitionHandler partitionHandler = new TaskExecutorPartitionHandler(); - partitionHandler.setStep(getStep()); - if (getTaskExecutor() == null) { - taskExecutor(new SyncTaskExecutor()); - } - partitionHandler.setGridSize(getGridSize()); - partitionHandler.setTaskExecutor(getTaskExecutor()); - step.setPartitionHandler(partitionHandler); - } - - if (getSplitter() != null) { - step.setStepExecutionSplitter(getSplitter()); - } - else { - - boolean allowStartIfComplete = isAllowStartIfComplete(); - String name = getStepName(); - if (getStep() != null) { - try { - allowStartIfComplete = getStep().isAllowStartIfComplete(); - name = getStep().getName(); - } - catch (Exception e) { - if (logger.isInfoEnabled()) { - logger.info("Ignored exception from step asking for name and allowStartIfComplete flag. " - + "Using default from enclosing PartitionStep (" + name + "," + allowStartIfComplete + ")."); - } - } - } - SimpleStepExecutionSplitter splitter = new SimpleStepExecutionSplitter(); - splitter.setPartitioner(getPartitioner()); - splitter.setJobRepository(getJobRepository()); - splitter.setAllowStartIfComplete(allowStartIfComplete); - splitter.setStepName(name); - splitter(splitter); - step.setStepExecutionSplitter(splitter); - - } - - if (getAggregator() != null) { - step.setStepExecutionAggregator(getAggregator()); - } - - if(reducer != null) { - step.setPartitionReducer(reducer); - } - - try { - step.afterPropertiesSet(); - } - catch (Exception e) { - throw new StepBuilderException(e); - } - - return step; - - } -} diff --git a/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/step/builder/JsrSimpleStepBuilder.java b/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/step/builder/JsrSimpleStepBuilder.java deleted file mode 100644 index 254f20374..000000000 --- a/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/step/builder/JsrSimpleStepBuilder.java +++ /dev/null @@ -1,140 +0,0 @@ -/* - * Copyright 2013-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. - */ -package org.springframework.batch.core.jsr.step.builder; - -import java.util.ArrayList; - -import org.springframework.batch.core.ChunkListener; -import org.springframework.batch.core.Step; -import org.springframework.batch.core.jsr.configuration.support.BatchPropertyContext; -import org.springframework.batch.core.jsr.step.BatchletStep; -import org.springframework.batch.core.jsr.step.item.JsrChunkProcessor; -import org.springframework.batch.core.jsr.step.item.JsrChunkProvider; -import org.springframework.batch.core.step.builder.FaultTolerantStepBuilder; -import org.springframework.batch.core.step.builder.SimpleStepBuilder; -import org.springframework.batch.core.step.builder.StepBuilder; -import org.springframework.batch.core.step.builder.StepBuilderException; -import org.springframework.batch.core.step.item.ChunkOrientedTasklet; -import org.springframework.batch.core.step.item.ChunkProcessor; -import org.springframework.batch.core.step.item.ChunkProvider; -import org.springframework.batch.core.step.tasklet.Tasklet; -import org.springframework.batch.core.step.tasklet.TaskletStep; -import org.springframework.batch.item.ItemStream; -import org.springframework.batch.repeat.RepeatOperations; -import org.springframework.batch.repeat.support.RepeatTemplate; -import org.springframework.batch.repeat.support.TaskExecutorRepeatTemplate; -import org.springframework.util.Assert; - -/** - * A step builder that extends the {@link FaultTolerantStepBuilder} to create JSR-352 - * specific {@link ChunkProvider} and {@link ChunkProcessor} supporting the chunking - * pattern defined by the spec. - * - * @author Michael Minella - * @author Mahmoud Ben Hassine - * - * @param The input type for the step - * @param The output type for the step - */ -public class JsrSimpleStepBuilder extends SimpleStepBuilder { - - private BatchPropertyContext batchPropertyContext; - - public JsrSimpleStepBuilder(StepBuilder parent) { - super(parent); - } - - public JsrPartitionStepBuilder partitioner(Step step) { - return new JsrPartitionStepBuilder(this).step(step); - } - - public void setBatchPropertyContext(BatchPropertyContext batchPropertyContext) { - this.batchPropertyContext = batchPropertyContext; - } - - /** - * Build the step from the components collected by the fluent setters. Delegates first to {@link #enhance(Step)} and - * then to {@link #createTasklet()} in subclasses to create the actual tasklet. - * - * @return a tasklet step fully configured and read to execute - */ - @Override - public TaskletStep build() { - registerStepListenerAsItemListener(); - registerAsStreamsAndListeners(getReader(), getProcessor(), getWriter()); - registerStepListenerAsChunkListener(); - - BatchletStep step = new BatchletStep(getName(), batchPropertyContext); - - super.enhance(step); - - step.setChunkListeners(chunkListeners.toArray(new ChunkListener[0])); - - if (getTransactionAttribute() != null) { - step.setTransactionAttribute(getTransactionAttribute()); - } - - if (getStepOperations() == null) { - - stepOperations(new RepeatTemplate()); - - if (getTaskExecutor() != null) { - TaskExecutorRepeatTemplate repeatTemplate = new TaskExecutorRepeatTemplate(); - repeatTemplate.setTaskExecutor(getTaskExecutor()); - repeatTemplate.setThrottleLimit(getThrottleLimit()); - stepOperations(repeatTemplate); - } - - ((RepeatTemplate) getStepOperations()).setExceptionHandler(getExceptionHandler()); - - } - step.setStepOperations(getStepOperations()); - step.setTasklet(createTasklet()); - - ItemStream[] streams = getStreams().toArray(new ItemStream[0]); - step.setStreams(streams); - - try { - step.afterPropertiesSet(); - } - catch (Exception e) { - throw new StepBuilderException(e); - } - - return step; - - } - - @Override - protected Tasklet createTasklet() { - Assert.state(getReader() != null, "ItemReader must be provided"); - Assert.state(getProcessor() != null || getWriter() != null, "ItemWriter or ItemProcessor must be provided"); - RepeatOperations repeatOperations = createRepeatOperations(); - ChunkProvider chunkProvider = new JsrChunkProvider<>(); - JsrChunkProcessor chunkProcessor = new JsrChunkProcessor<>(getReader(), getProcessor(), getWriter(), repeatOperations); - chunkProcessor.setListeners(new ArrayList<>(getItemListeners())); - ChunkOrientedTasklet tasklet = new ChunkOrientedTasklet<>(chunkProvider, chunkProcessor); - tasklet.setBuffering(!isReaderTransactionalQueue()); - return tasklet; - } - - private RepeatOperations createRepeatOperations() { - RepeatTemplate repeatOperations = new RepeatTemplate(); - repeatOperations.setCompletionPolicy(getChunkCompletionPolicy()); - repeatOperations.setExceptionHandler(getExceptionHandler()); - return repeatOperations; - } -} diff --git a/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/step/builder/package-info.java b/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/step/builder/package-info.java deleted file mode 100644 index 2dbcacea8..000000000 --- a/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/step/builder/package-info.java +++ /dev/null @@ -1,10 +0,0 @@ -/** - * Extensions to step related builders to implement JSR-352 specific functionality - * - * @author Michael Minella - * @author Mahmoud Ben Hassine - */ -@NonNullApi -package org.springframework.batch.core.jsr.step.builder; - -import org.springframework.lang.NonNullApi; diff --git a/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/step/item/JsrChunkProcessor.java b/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/step/item/JsrChunkProcessor.java deleted file mode 100644 index e2c490928..000000000 --- a/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/step/item/JsrChunkProcessor.java +++ /dev/null @@ -1,253 +0,0 @@ -/* - * Copyright 2013 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.springframework.batch.core.jsr.step.item; - -import java.util.List; -import java.util.concurrent.atomic.AtomicInteger; - -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -import org.springframework.batch.core.StepContribution; -import org.springframework.batch.core.StepListener; -import org.springframework.batch.core.listener.MulticasterBatchListener; -import org.springframework.batch.core.step.item.Chunk; -import org.springframework.batch.core.step.item.ChunkProcessor; -import org.springframework.batch.item.ItemProcessor; -import org.springframework.batch.item.ItemReader; -import org.springframework.batch.item.ItemWriter; -import org.springframework.batch.repeat.RepeatCallback; -import org.springframework.batch.repeat.RepeatContext; -import org.springframework.batch.repeat.RepeatOperations; -import org.springframework.batch.repeat.RepeatStatus; - -/** - * {@link ChunkProcessor} implementation that implements JSR-352's chunking pattern - * (read and process in a loop until the chunk is complete then write). This - * implementation is responsible for all three phases of chunk based processing - * (reading, processing and writing). - * - * @author Michael Minella - * - * @param The input type for the step - * @param The output type for the step - */ -public class JsrChunkProcessor implements ChunkProcessor { - - private final Log logger = LogFactory.getLog(getClass()); - private ItemReader itemReader; - private final MulticasterBatchListener listener = new MulticasterBatchListener<>(); - private RepeatOperations repeatTemplate; - private ItemProcessor itemProcessor; - private ItemWriter itemWriter; - - public JsrChunkProcessor() { - this(null, null, null, null); - } - - public JsrChunkProcessor(ItemReader reader, ItemProcessor processor, ItemWriter writer, RepeatOperations repeatTemplate) { - this.itemReader = reader; - this.itemProcessor = processor; - this.itemWriter = writer; - this.repeatTemplate = repeatTemplate; - } - - protected MulticasterBatchListener getListener() { - return listener; - } - - /** - * Loops through reading (via {@link #provide(StepContribution, Chunk)} and - * processing (via {@link #transform(StepContribution, Object)}) until the chunk - * is complete. Once the chunk is complete, the results are written (via - * {@link #persist(StepContribution, Chunk)}. - * - * @see ChunkProcessor#process(StepContribution, Chunk) - * @param contribution a {@link StepContribution} - * @param chunk a {@link Chunk} - */ - @Override - public void process(final StepContribution contribution, final Chunk chunk) - throws Exception { - - final AtomicInteger filterCount = new AtomicInteger(0); - final Chunk output = new Chunk<>(); - - repeatTemplate.iterate(new RepeatCallback() { - - @Override - public RepeatStatus doInIteration(RepeatContext context) throws Exception { - I item = provide(contribution, chunk); - - if(item != null) { - contribution.incrementReadCount(); - } else { - return RepeatStatus.FINISHED; - } - - O processedItem = transform(contribution, item); - - if(processedItem == null) { - filterCount.incrementAndGet(); - } else { - output.add(processedItem); - } - - return RepeatStatus.CONTINUABLE; - } - }); - - contribution.incrementFilterCount(filterCount.get()); - if(output.size() > 0) { - persist(contribution, output); - } - } - - /** - * Register some {@link StepListener}s with the handler. Each will get the - * callbacks in the order specified at the correct stage. - * - * @param listeners list of listeners to be used within this step - */ - public void setListeners(List listeners) { - for (StepListener listener : listeners) { - registerListener(listener); - } - } - - /** - * Register a listener for callbacks at the appropriate stages in a process. - * - * @param listener a {@link StepListener} - */ - public void registerListener(StepListener listener) { - this.listener.register(listener); - } - - /** - * Responsible for the reading portion of the chunking loop. In this implementation, delegates - * to {@link #doProvide(StepContribution, Chunk)} - * - * @param contribution a {@link StepContribution} - * @param chunk a {@link Chunk} - * @return an item - * @throws Exception thrown if error occurs during the reading portion of the chunking loop. - */ - protected I provide(final StepContribution contribution, final Chunk chunk) throws Exception { - return doProvide(contribution, chunk); - } - - /** - * Implements reading as well as any related listener calls required. - * - * @param contribution a {@link StepContribution} - * @param chunk a {@link Chunk} - * @return an item - * @throws Exception thrown if error occurs during reading or listener calls. - */ - protected final I doProvide(final StepContribution contribution, final Chunk chunk) throws Exception { - try { - listener.beforeRead(); - I item = itemReader.read(); - if(item != null) { - listener.afterRead(item); - } else { - chunk.setEnd(); - } - - return item; - } - catch (Exception e) { - if (logger.isDebugEnabled()) { - logger.debug(e.getMessage() + " : " + e.getClass().getName()); - } - listener.onReadError(e); - throw e; - } - } - - /** - * Responsible for the processing portion of the chunking loop. In this implementation, delegates to the - * {@link #doTransform(Object)} if a processor is available (returns the item unmodified if it is not) - * - * @param contribution a {@link StepContribution} - * @param item an item - * @return a processed item if a processor is present (the unmodified item if it is not) - * @throws Exception thrown if error occurs during the processing portion of the chunking loop. - */ - protected O transform(final StepContribution contribution, final I item) throws Exception { - if (itemProcessor == null) { - @SuppressWarnings("unchecked") - O result = (O) item; - return result; - } - - return doTransform(item); - } - - /** - * Implements processing and all related listener calls. - * - * @param item the item to be processed - * @return the processed item - * @throws Exception thrown if error occurs during processing. - */ - protected final O doTransform(I item) throws Exception { - try { - listener.beforeProcess(item); - O result = itemProcessor.process(item); - listener.afterProcess(item, result); - return result; - } - catch (Exception e) { - listener.onProcessError(item, e); - throw e; - } - } - - /** - * Responsible for the writing portion of the chunking loop. In this implementation, delegates to the - * {{@link #doPersist(StepContribution, Chunk)}. - * - * @param contribution a {@link StepContribution} - * @param chunk a {@link Chunk} - * @throws Exception thrown if error occurs during the writing portion of the chunking loop. - */ - protected void persist(final StepContribution contribution, final Chunk chunk) throws Exception { - doPersist(contribution, chunk); - - contribution.incrementWriteCount(chunk.getItems().size()); - } - - /** - * Implements writing and all related listener calls - * - * @param contribution a {@link StepContribution} - * @param chunk a {@link Chunk} - * @throws Exception thrown if error occurs during the writing portion of the chunking loop. - */ - protected final void doPersist(final StepContribution contribution, final Chunk chunk) throws Exception { - try { - List items = chunk.getItems(); - listener.beforeWrite(items); - itemWriter.write(items); - listener.afterWrite(items); - } - catch (Exception e) { - listener.onWriteError(e, chunk.getItems()); - throw e; - } - } -} diff --git a/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/step/item/JsrChunkProvider.java b/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/step/item/JsrChunkProvider.java deleted file mode 100644 index 2772468d9..000000000 --- a/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/step/item/JsrChunkProvider.java +++ /dev/null @@ -1,47 +0,0 @@ -/* - * Copyright 2013 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.springframework.batch.core.jsr.step.item; - -import org.springframework.batch.core.StepContribution; -import org.springframework.batch.core.step.item.Chunk; -import org.springframework.batch.core.step.item.ChunkProvider; - -/** - * A no-op {@link ChunkProvider}. The JSR-352 chunking model does not cache the - * input as the regular Spring Batch implementations do so this component is not - * needed within a chunking loop. - * - * @author Michael Minella - * - * @param The type of input for the step - */ -public class JsrChunkProvider implements ChunkProvider { - - /* (non-Javadoc) - * @see org.springframework.batch.core.step.item.ChunkProvider#provide(org.springframework.batch.core.StepContribution) - */ - @Override - public Chunk provide(StepContribution contribution) throws Exception { - return new Chunk<>(); - } - - /* (non-Javadoc) - * @see org.springframework.batch.core.step.item.ChunkProvider#postProcess(org.springframework.batch.core.StepContribution, org.springframework.batch.core.step.item.Chunk) - */ - @Override - public void postProcess(StepContribution contribution, Chunk chunk) { - } -} diff --git a/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/step/item/JsrFaultTolerantChunkProcessor.java b/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/step/item/JsrFaultTolerantChunkProcessor.java deleted file mode 100644 index 951f93c96..000000000 --- a/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/step/item/JsrFaultTolerantChunkProcessor.java +++ /dev/null @@ -1,351 +0,0 @@ -/* - * Copyright 2013-2021 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.springframework.batch.core.jsr.step.item; - -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -import org.springframework.batch.core.StepContribution; -import org.springframework.batch.core.StepListener; -import org.springframework.batch.core.listener.MulticasterBatchListener; -import org.springframework.batch.core.step.item.BatchRetryTemplate; -import org.springframework.batch.core.step.item.Chunk; -import org.springframework.batch.core.step.item.ChunkMonitor; -import org.springframework.batch.core.step.item.ForceRollbackForWriteSkipException; -import org.springframework.batch.core.step.skip.LimitCheckingItemSkipPolicy; -import org.springframework.batch.core.step.skip.SkipException; -import org.springframework.batch.core.step.skip.SkipPolicy; -import org.springframework.batch.core.step.skip.SkipPolicyFailedException; -import org.springframework.batch.item.ItemProcessor; -import org.springframework.batch.item.ItemReader; -import org.springframework.batch.item.ItemWriter; -import org.springframework.batch.repeat.RepeatOperations; -import org.springframework.classify.BinaryExceptionClassifier; -import org.springframework.classify.Classifier; -import org.springframework.retry.RecoveryCallback; -import org.springframework.retry.RetryCallback; -import org.springframework.retry.RetryContext; -import org.springframework.retry.RetryException; -import org.springframework.util.Assert; - -import jakarta.batch.operations.BatchRuntimeException; -import java.util.List; - -/** - * Extension of the {@link JsrChunkProcessor} that adds skip and retry functionality. - * - * @author Michael Minella - * @author Chris Schaefer - * @author Mahmoud Ben Hassine - * - * @param input type for the step - * @param output type for the step - */ -public class JsrFaultTolerantChunkProcessor extends JsrChunkProcessor { - protected final Log logger = LogFactory.getLog(getClass()); - private SkipPolicy skipPolicy = new LimitCheckingItemSkipPolicy(); - private Classifier rollbackClassifier = new BinaryExceptionClassifier(true); - private final BatchRetryTemplate batchRetryTemplate; - private ChunkMonitor chunkMonitor = new ChunkMonitor(); - private boolean hasProcessor = false; - - public JsrFaultTolerantChunkProcessor(ItemReader reader, ItemProcessor processor, ItemWriter writer, RepeatOperations repeatTemplate, BatchRetryTemplate batchRetryTemplate) { - super(reader, processor, writer, repeatTemplate); - hasProcessor = processor != null; - this.batchRetryTemplate = batchRetryTemplate; - } - - /** - * @param skipPolicy a {@link SkipPolicy} - */ - public void setSkipPolicy(SkipPolicy skipPolicy) { - Assert.notNull(skipPolicy, "A skip policy is required"); - - this.skipPolicy = skipPolicy; - } - - /** - * @param rollbackClassifier a {@link Classifier} - */ - public void setRollbackClassifier(Classifier rollbackClassifier) { - Assert.notNull(rollbackClassifier, "A rollbackClassifier is required"); - - this.rollbackClassifier = rollbackClassifier; - } - - /** - * @param chunkMonitor a {@link ChunkMonitor} - */ - public void setChunkMonitor(ChunkMonitor chunkMonitor) { - Assert.notNull(chunkMonitor, "A chunkMonitor is required"); - - this.chunkMonitor = chunkMonitor; - } - - /** - * Register some {@link StepListener}s with the handler. Each will get the - * callbacks in the order specified at the correct stage. - * - * @param listeners listeners to be registered - */ - @Override - public void setListeners(List listeners) { - for (StepListener listener : listeners) { - registerListener(listener); - } - } - - /** - * Register a listener for callbacks at the appropriate stages in a process. - * - * @param listener a {@link StepListener} - */ - @Override - public void registerListener(StepListener listener) { - getListener().register(listener); - } - - /** - * Adds retry and skip logic to the reading phase of the chunk loop. - * - * @param contribution a {@link StepContribution} - * @param chunk a {@link Chunk} - * @return I an item - * @throws Exception thrown if error occurs. - */ - @Override - protected I provide(final StepContribution contribution, final Chunk chunk) throws Exception { - RetryCallback retryCallback = new RetryCallback() { - - @Override - public I doWithRetry(RetryContext arg0) throws Exception { - while (true) { - try { - return doProvide(contribution, chunk); - } - catch (Exception e) { - if (shouldSkip(skipPolicy, e, contribution.getStepSkipCount())) { - - // increment skip count and try again - contribution.incrementReadSkipCount(); - chunk.skip(e); - - getListener().onSkipInRead(e); - - logger.debug("Skipping failed input", e); - } - else { - getListener().onRetryReadException(e); - - if(rollbackClassifier.classify(e)) { - throw e; - } - else { - throw e; - } - } - } - } - } - }; - - RecoveryCallback recoveryCallback = new RecoveryCallback() { - - @Override - public I recover(RetryContext context) throws Exception { - Throwable e = context.getLastThrowable(); - if (shouldSkip(skipPolicy, e, contribution.getStepSkipCount())) { - contribution.incrementReadSkipCount(); - logger.debug("Skipping after failed process", e); - return null; - } - else { - if (rollbackClassifier.classify(e)) { - // Default is to rollback unless the classifier - // allows us to continue - throw new RetryException("Non-skippable exception in recoverer while reading", e); - } - - throw new BatchRuntimeException(e); - } - } - - }; - - return batchRetryTemplate.execute(retryCallback, recoveryCallback); - } - - /** - * Convenience method for calling process skip policy. - * - * @param policy the skip policy - * @param e the cause of the skip - * @param skipCount the current skip count - */ - private boolean shouldSkip(SkipPolicy policy, Throwable e, long skipCount) { - try { - return policy.shouldSkip(e, skipCount); - } - catch (SkipException ex) { - throw ex; - } - catch (RuntimeException ex) { - throw new SkipPolicyFailedException("Fatal exception in SkipPolicy.", ex, e); - } - } - - /** - * Adds retry and skip logic to the process phase of the chunk loop. - * - * @param contribution a {@link StepContribution} - * @param item an item to be processed - * @return O an item that has been processed if a processor is available - * @throws Exception thrown if error occurs. - */ - @Override - @SuppressWarnings("unchecked") - protected O transform(final StepContribution contribution, final I item) throws Exception { - if (!hasProcessor) { - return (O) item; - } - - RetryCallback retryCallback = new RetryCallback() { - - @Override - public O doWithRetry(RetryContext context) throws Exception { - try { - return doTransform(item); - } - catch (Exception e) { - if (shouldSkip(skipPolicy, e, contribution.getStepSkipCount())) { - // If we are not re-throwing then we should check if - // this is skippable - contribution.incrementProcessSkipCount(); - logger.debug("Skipping after failed process with no rollback", e); - // If not re-throwing then the listener will not be - // called in next chunk. - getListener().onSkipInProcess(item, e); - } else { - getListener().onRetryProcessException(item, e); - - if (rollbackClassifier.classify(e)) { - // Default is to rollback unless the classifier - // allows us to continue - throw e; - } - else { - throw e; - } - } - } - return null; - } - - }; - - RecoveryCallback recoveryCallback = new RecoveryCallback() { - @Override - public O recover(RetryContext context) throws Exception { - Throwable e = context.getLastThrowable(); - if (shouldSkip(skipPolicy, e, contribution.getStepSkipCount())) { - contribution.incrementProcessSkipCount(); - logger.debug("Skipping after failed process", e); - return null; - } - else { - if (rollbackClassifier.classify(e)) { - // Default is to rollback unless the classifier - // allows us to continue - throw new RetryException("Non-skippable exception in recoverer while processing", e); - } - - throw new BatchRuntimeException(e); - } - } - }; - - return batchRetryTemplate.execute(retryCallback, recoveryCallback); - } - - /** - * Adds retry and skip logic to the write phase of the chunk loop. - * - * @param contribution a {@link StepContribution} - * @param chunk a {@link Chunk} - * @throws Exception thrown if error occurs. - */ - @Override - protected void persist(final StepContribution contribution, final Chunk chunk) throws Exception { - - RetryCallback retryCallback = new RetryCallback() { - @Override - @SuppressWarnings({ "unchecked", "rawtypes" }) - public Object doWithRetry(RetryContext context) throws Exception { - - chunkMonitor.setChunkSize(chunk.size()); - try { - doPersist(contribution, chunk); - } - catch (Exception e) { - if (shouldSkip(skipPolicy, e, contribution.getStepSkipCount())) { - // Per section 9.2.7 of JSR-352, the SkipListener receives all the items within the chunk - ((MulticasterBatchListener) getListener()).onSkipInWrite(chunk.getItems(), e); - } else { - getListener().onRetryWriteException((List) chunk.getItems(), e); - - if (rollbackClassifier.classify(e)) { - throw e; - } - } - /* - * If the exception is marked as no-rollback, we need to - * override that, otherwise there's no way to write the - * rest of the chunk or to honour the skip listener - * contract. - */ - throw new ForceRollbackForWriteSkipException( - "Force rollback on skippable exception so that skipped item can be located.", e); - } - contribution.incrementWriteCount(chunk.size()); - return null; - - } - }; - - RecoveryCallback recoveryCallback = new RecoveryCallback() { - - @Override - public O recover(RetryContext context) throws Exception { - Throwable e = context.getLastThrowable(); - if (shouldSkip(skipPolicy, e, contribution.getStepSkipCount())) { - contribution.incrementWriteSkipCount(); - logger.debug("Skipping after failed write", e); - return null; - } - else { - if (rollbackClassifier.classify(e)) { - // Default is to rollback unless the classifier - // allows us to continue - throw new RetryException("Non-skippable exception in recoverer while write", e); - } - return null; - } - } - - }; - - batchRetryTemplate.execute(retryCallback, recoveryCallback); - } -} diff --git a/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/step/item/package-info.java b/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/step/item/package-info.java deleted file mode 100644 index 90ad4517a..000000000 --- a/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/step/item/package-info.java +++ /dev/null @@ -1,10 +0,0 @@ -/** - * JSR-352 specific components for implementing item based processing including fault tolerance. - * - * @author Michael Minella - * @author Mahmoud Ben Hassine - */ -@NonNullApi -package org.springframework.batch.core.jsr.step.item; - -import org.springframework.lang.NonNullApi; diff --git a/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/step/package-info.java b/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/step/package-info.java deleted file mode 100644 index 0fba98d0c..000000000 --- a/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/step/package-info.java +++ /dev/null @@ -1,10 +0,0 @@ -/** - * JSR-352 extensions of existing batch {@link org.springframework.batch.core.Step} types. - * - * @author Michael Minella - * @author Mahmoud Ben Hassine - */ -@NonNullApi -package org.springframework.batch.core.jsr.step; - -import org.springframework.lang.NonNullApi; diff --git a/spring-batch-core/src/main/java/org/springframework/batch/core/listener/CompositeRetryProcessListener.java b/spring-batch-core/src/main/java/org/springframework/batch/core/listener/CompositeRetryProcessListener.java deleted file mode 100644 index 86ef3fe22..000000000 --- a/spring-batch-core/src/main/java/org/springframework/batch/core/listener/CompositeRetryProcessListener.java +++ /dev/null @@ -1,63 +0,0 @@ -/* - * Copyright 2013-2021 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.springframework.batch.core.listener; - -import java.util.Iterator; -import java.util.List; -import jakarta.batch.api.chunk.listener.RetryProcessListener; - -/** - *

- * Composite class holding {@link RetryProcessListener}'s. - *

- * - * @author Chris Schaefer - * @author Mahmoud Ben Hassine - * @since 3.0 - */ -public class CompositeRetryProcessListener implements RetryProcessListener { - private OrderedComposite listeners = new OrderedComposite<>(); - - /** - *

- * Public setter for the {@link RetryProcessListener}'s. - *

- * - * @param listeners the {@link RetryProcessListener}'s to set - */ - public void setListeners(List listeners) { - this.listeners.setItems(listeners); - } - - /** - *

- * Register an additional {@link RetryProcessListener}. - *

- * - * @param listener the {@link RetryProcessListener} to register - */ - public void register(RetryProcessListener listener) { - listeners.add(listener); - } - - @Override - public void onRetryProcessException(Object item, Exception ex) throws Exception { - for (Iterator iterator = listeners.reverse(); iterator.hasNext();) { - RetryProcessListener listener = iterator.next(); - listener.onRetryProcessException(item, ex); - } - } -} diff --git a/spring-batch-core/src/main/java/org/springframework/batch/core/listener/CompositeRetryReadListener.java b/spring-batch-core/src/main/java/org/springframework/batch/core/listener/CompositeRetryReadListener.java deleted file mode 100644 index e50fbbcb6..000000000 --- a/spring-batch-core/src/main/java/org/springframework/batch/core/listener/CompositeRetryReadListener.java +++ /dev/null @@ -1,63 +0,0 @@ -/* - * Copyright 2013-2021 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.springframework.batch.core.listener; - -import java.util.Iterator; -import java.util.List; -import jakarta.batch.api.chunk.listener.RetryReadListener; - -/** - *

- * Composite class holding {@link RetryReadListener}'s. - *

- * - * @author Chris Schaefer - * @author Mahmoud Ben Hassine - * @since 3.0 - */ -public class CompositeRetryReadListener implements RetryReadListener { - private OrderedComposite listeners = new OrderedComposite<>(); - - /** - *

- * Public setter for the {@link RetryReadListener}'s. - *

- * - * @param listeners the {@link RetryReadListener}'s to set - */ - public void setListeners(List listeners) { - this.listeners.setItems(listeners); - } - - /** - *

- * Register an additional {@link RetryReadListener}. - *

- * - * @param listener the {@link RetryReadListener} to register - */ - public void register(RetryReadListener listener) { - listeners.add(listener); - } - - @Override - public void onRetryReadException(Exception ex) throws Exception { - for (Iterator iterator = listeners.reverse(); iterator.hasNext();) { - RetryReadListener listener = iterator.next(); - listener.onRetryReadException(ex); - } - } -} diff --git a/spring-batch-core/src/main/java/org/springframework/batch/core/listener/CompositeRetryWriteListener.java b/spring-batch-core/src/main/java/org/springframework/batch/core/listener/CompositeRetryWriteListener.java deleted file mode 100644 index 0238abdfd..000000000 --- a/spring-batch-core/src/main/java/org/springframework/batch/core/listener/CompositeRetryWriteListener.java +++ /dev/null @@ -1,63 +0,0 @@ -/* - * Copyright 2013-2021 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.springframework.batch.core.listener; - -import java.util.Iterator; -import java.util.List; -import jakarta.batch.api.chunk.listener.RetryWriteListener; - -/** - *

- * Composite class holding {@link RetryWriteListener}'s. - *

- * - * @author Chris Schaefer - * @author Mahmoud Ben Hassine - * @since 3.0 - */ -public class CompositeRetryWriteListener implements RetryWriteListener { - private OrderedComposite listeners = new OrderedComposite<>(); - - /** - *

- * Public setter for the {@link RetryWriteListener}'s. - *

- * - * @param listeners the {@link RetryWriteListener}'s to set - */ - public void setListeners(List listeners) { - this.listeners.setItems(listeners); - } - - /** - *

- * Register an additional {@link RetryWriteListener}. - *

- * - * @param listener the {@link RetryWriteListener} to register - */ - public void register(RetryWriteListener listener) { - listeners.add(listener); - } - - @Override - public void onRetryWriteException(List items, Exception ex) throws Exception { - for (Iterator iterator = listeners.reverse(); iterator.hasNext();) { - RetryWriteListener listener = iterator.next(); - listener.onRetryWriteException(items, ex); - } - } -} diff --git a/spring-batch-core/src/main/java/org/springframework/batch/core/listener/MulticasterBatchListener.java b/spring-batch-core/src/main/java/org/springframework/batch/core/listener/MulticasterBatchListener.java index 0eee67e41..cc9144069 100644 --- a/spring-batch-core/src/main/java/org/springframework/batch/core/listener/MulticasterBatchListener.java +++ b/spring-batch-core/src/main/java/org/springframework/batch/core/listener/MulticasterBatchListener.java @@ -18,10 +18,6 @@ package org.springframework.batch.core.listener; import java.lang.reflect.InvocationTargetException; import java.util.List; -import jakarta.batch.api.chunk.listener.RetryProcessListener; -import jakarta.batch.api.chunk.listener.RetryReadListener; -import jakarta.batch.api.chunk.listener.RetryWriteListener; -import jakarta.batch.operations.BatchRuntimeException; import org.springframework.batch.core.ChunkListener; import org.springframework.batch.core.ExitStatus; import org.springframework.batch.core.ItemProcessListener; @@ -42,7 +38,7 @@ import org.springframework.lang.Nullable; * @author Mahmoud Ben Hassine */ public class MulticasterBatchListener implements StepExecutionListener, ChunkListener, ItemReadListener, -ItemProcessListener, ItemWriteListener, SkipListener, RetryReadListener, RetryProcessListener, RetryWriteListener { +ItemProcessListener, ItemWriteListener, SkipListener { private CompositeStepExecutionListener stepListener = new CompositeStepExecutionListener(); @@ -56,12 +52,6 @@ ItemProcessListener, ItemWriteListener, SkipListener, RetryReadLi private CompositeSkipListener skipListener = new CompositeSkipListener<>(); - private CompositeRetryReadListener retryReadListener = new CompositeRetryReadListener(); - - private CompositeRetryProcessListener retryProcessListener = new CompositeRetryProcessListener(); - - private CompositeRetryWriteListener retryWriteListener = new CompositeRetryWriteListener(); - /** * Initialize the listener instance. */ @@ -115,15 +105,6 @@ ItemProcessListener, ItemWriteListener, SkipListener, RetryReadLi SkipListener skipListener = (SkipListener) listener; this.skipListener.register(skipListener); } - if(listener instanceof RetryReadListener) { - this.retryReadListener.register((RetryReadListener) listener); - } - if(listener instanceof RetryProcessListener) { - this.retryProcessListener.register((RetryProcessListener) listener); - } - if(listener instanceof RetryWriteListener) { - this.retryWriteListener.register((RetryWriteListener) listener); - } } /** @@ -334,33 +315,6 @@ ItemProcessListener, ItemWriteListener, SkipListener, RetryReadLi } } - @Override - public void onRetryReadException(Exception ex) throws Exception { - try { - retryReadListener.onRetryReadException(ex); - } catch (Exception e) { - throw new BatchRuntimeException(e); - } - } - - @Override - public void onRetryProcessException(Object item, Exception ex) throws Exception { - try { - retryProcessListener.onRetryProcessException(item, ex); - } catch (Exception e) { - throw new BatchRuntimeException(e); - } - } - - @Override - public void onRetryWriteException(List items, Exception ex) throws Exception { - try { - retryWriteListener.onRetryWriteException(items, ex); - } catch (Exception e) { - throw new BatchRuntimeException(e); - } - } - /** * Unwrap the target exception from a wrapped {@link InvocationTargetException}. * @param e the exception to introspect diff --git a/spring-batch-core/src/main/java/org/springframework/batch/core/repository/JobRepository.java b/spring-batch-core/src/main/java/org/springframework/batch/core/repository/JobRepository.java index a65a7a51b..15471953b 100644 --- a/spring-batch-core/src/main/java/org/springframework/batch/core/repository/JobRepository.java +++ b/spring-batch-core/src/main/java/org/springframework/batch/core/repository/JobRepository.java @@ -1,5 +1,5 @@ /* - * Copyright 2006-2018 the original author or authors. + * Copyright 2006-2021 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. @@ -68,18 +68,6 @@ public interface JobRepository { */ JobInstance createJobInstance(String jobName, JobParameters jobParameters); - /** - * Create a new {@link JobExecution} based upon the {@link JobInstance} it's associated - * with, the {@link JobParameters} used to execute it with and the location of the configuration - * file that defines the job. - * - * @param jobInstance {@link JobInstance} instance to initialize the new JobExecution. - * @param jobParameters {@link JobParameters} instance to initialize the new JobExecution. - * @param jobConfigurationLocation {@link String} instance to initialize the new JobExecution. - * @return the new {@link JobExecution}. - */ - JobExecution createJobExecution(JobInstance jobInstance, JobParameters jobParameters, String jobConfigurationLocation); - /** *

* Create a {@link JobExecution} for a given {@link Job} and diff --git a/spring-batch-core/src/main/java/org/springframework/batch/core/repository/dao/Jackson2ExecutionContextStringSerializer.java b/spring-batch-core/src/main/java/org/springframework/batch/core/repository/dao/Jackson2ExecutionContextStringSerializer.java index 273a5b2f6..9f00db673 100644 --- a/spring-batch-core/src/main/java/org/springframework/batch/core/repository/dao/Jackson2ExecutionContextStringSerializer.java +++ b/spring-batch-core/src/main/java/org/springframework/batch/core/repository/dao/Jackson2ExecutionContextStringSerializer.java @@ -297,8 +297,7 @@ public class Jackson2ExecutionContextStringSerializer implements ExecutionContex "java.util.Properties", "[Ljava.util.Properties;", "org.springframework.batch.core.JobParameter", - "org.springframework.batch.core.JobParameters", - "org.springframework.batch.core.jsr.partition.JsrPartitionHandler$PartitionPlanState" + "org.springframework.batch.core.JobParameters" ))); private final Set trustedClassNames = new LinkedHashSet<>(TRUSTED_CLASS_NAMES); diff --git a/spring-batch-core/src/main/java/org/springframework/batch/core/repository/dao/JdbcJobExecutionDao.java b/spring-batch-core/src/main/java/org/springframework/batch/core/repository/dao/JdbcJobExecutionDao.java index 6463ea66c..5cbb17b0d 100644 --- a/spring-batch-core/src/main/java/org/springframework/batch/core/repository/dao/JdbcJobExecutionDao.java +++ b/spring-batch-core/src/main/java/org/springframework/batch/core/repository/dao/JdbcJobExecutionDao.java @@ -66,7 +66,7 @@ public class JdbcJobExecutionDao extends AbstractJdbcBatchMetadataDao implements private static final Log logger = LogFactory.getLog(JdbcJobExecutionDao.class); private static final String SAVE_JOB_EXECUTION = "INSERT into %PREFIX%JOB_EXECUTION(JOB_EXECUTION_ID, JOB_INSTANCE_ID, START_TIME, " - + "END_TIME, STATUS, EXIT_CODE, EXIT_MESSAGE, VERSION, CREATE_TIME, LAST_UPDATED, JOB_CONFIGURATION_LOCATION) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)"; + + "END_TIME, STATUS, EXIT_CODE, EXIT_MESSAGE, VERSION, CREATE_TIME, LAST_UPDATED) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)"; private static final String CHECK_JOB_EXECUTION_EXISTS = "SELECT COUNT(*) FROM %PREFIX%JOB_EXECUTION WHERE JOB_EXECUTION_ID = ?"; @@ -75,17 +75,17 @@ public class JdbcJobExecutionDao extends AbstractJdbcBatchMetadataDao implements private static final String UPDATE_JOB_EXECUTION = "UPDATE %PREFIX%JOB_EXECUTION set START_TIME = ?, END_TIME = ?, " + " STATUS = ?, EXIT_CODE = ?, EXIT_MESSAGE = ?, VERSION = ?, CREATE_TIME = ?, LAST_UPDATED = ? where JOB_EXECUTION_ID = ? and VERSION = ?"; - private static final String FIND_JOB_EXECUTIONS = "SELECT JOB_EXECUTION_ID, START_TIME, END_TIME, STATUS, EXIT_CODE, EXIT_MESSAGE, CREATE_TIME, LAST_UPDATED, VERSION, JOB_CONFIGURATION_LOCATION" + private static final String FIND_JOB_EXECUTIONS = "SELECT JOB_EXECUTION_ID, START_TIME, END_TIME, STATUS, EXIT_CODE, EXIT_MESSAGE, CREATE_TIME, LAST_UPDATED, VERSION" + " from %PREFIX%JOB_EXECUTION where JOB_INSTANCE_ID = ? order by JOB_EXECUTION_ID desc"; - private static final String GET_LAST_EXECUTION = "SELECT JOB_EXECUTION_ID, START_TIME, END_TIME, STATUS, EXIT_CODE, EXIT_MESSAGE, CREATE_TIME, LAST_UPDATED, VERSION, JOB_CONFIGURATION_LOCATION " + private static final String GET_LAST_EXECUTION = "SELECT JOB_EXECUTION_ID, START_TIME, END_TIME, STATUS, EXIT_CODE, EXIT_MESSAGE, CREATE_TIME, LAST_UPDATED, VERSION " + "from %PREFIX%JOB_EXECUTION E where JOB_INSTANCE_ID = ? and JOB_EXECUTION_ID in (SELECT max(JOB_EXECUTION_ID) from %PREFIX%JOB_EXECUTION E2 where E2.JOB_INSTANCE_ID = ?)"; - private static final String GET_EXECUTION_BY_ID = "SELECT JOB_EXECUTION_ID, START_TIME, END_TIME, STATUS, EXIT_CODE, EXIT_MESSAGE, CREATE_TIME, LAST_UPDATED, VERSION, JOB_CONFIGURATION_LOCATION" + private static final String GET_EXECUTION_BY_ID = "SELECT JOB_EXECUTION_ID, START_TIME, END_TIME, STATUS, EXIT_CODE, EXIT_MESSAGE, CREATE_TIME, LAST_UPDATED, VERSION" + " from %PREFIX%JOB_EXECUTION where JOB_EXECUTION_ID = ?"; private static final String GET_RUNNING_EXECUTIONS = "SELECT E.JOB_EXECUTION_ID, E.START_TIME, E.END_TIME, E.STATUS, E.EXIT_CODE, E.EXIT_MESSAGE, E.CREATE_TIME, E.LAST_UPDATED, E.VERSION, " - + "E.JOB_INSTANCE_ID, E.JOB_CONFIGURATION_LOCATION from %PREFIX%JOB_EXECUTION E, %PREFIX%JOB_INSTANCE I where E.JOB_INSTANCE_ID=I.JOB_INSTANCE_ID and I.JOB_NAME=? and E.START_TIME is not NULL and E.END_TIME is NULL order by E.JOB_EXECUTION_ID desc"; + + "E.JOB_INSTANCE_ID from %PREFIX%JOB_EXECUTION E, %PREFIX%JOB_INSTANCE I where E.JOB_INSTANCE_ID=I.JOB_INSTANCE_ID and I.JOB_NAME=? and E.START_TIME is not NULL and E.END_TIME is NULL order by E.JOB_EXECUTION_ID desc"; private static final String CURRENT_VERSION_JOB_EXECUTION = "SELECT VERSION FROM %PREFIX%JOB_EXECUTION WHERE JOB_EXECUTION_ID=?"; @@ -154,13 +154,12 @@ public class JdbcJobExecutionDao extends AbstractJdbcBatchMetadataDao implements Object[] parameters = new Object[] { jobExecution.getId(), jobExecution.getJobId(), jobExecution.getStartTime(), jobExecution.getEndTime(), jobExecution.getStatus().toString(), jobExecution.getExitStatus().getExitCode(), jobExecution.getExitStatus().getExitDescription(), - jobExecution.getVersion(), jobExecution.getCreateTime(), jobExecution.getLastUpdated(), - jobExecution.getJobConfigurationName() }; + jobExecution.getVersion(), jobExecution.getCreateTime(), jobExecution.getLastUpdated() }; getJdbcTemplate().update( getQuery(SAVE_JOB_EXECUTION), parameters, new int[] { Types.BIGINT, Types.BIGINT, Types.TIMESTAMP, Types.TIMESTAMP, Types.VARCHAR, - Types.VARCHAR, Types.VARCHAR, Types.INTEGER, Types.TIMESTAMP, Types.TIMESTAMP, Types.VARCHAR }); + Types.VARCHAR, Types.VARCHAR, Types.INTEGER, Types.TIMESTAMP, Types.TIMESTAMP }); insertJobParameters(jobExecution.getId(), jobExecution.getJobParameters()); } @@ -412,17 +411,16 @@ public class JdbcJobExecutionDao extends AbstractJdbcBatchMetadataDao implements @Override public JobExecution mapRow(ResultSet rs, int rowNum) throws SQLException { Long id = rs.getLong(1); - String jobConfigurationLocation = rs.getString(10); JobExecution jobExecution; if (jobParameters == null) { jobParameters = getJobParameters(id); } if (jobInstance == null) { - jobExecution = new JobExecution(id, jobParameters, jobConfigurationLocation); + jobExecution = new JobExecution(id, jobParameters); } else { - jobExecution = new JobExecution(jobInstance, id, jobParameters, jobConfigurationLocation); + jobExecution = new JobExecution(jobInstance, id, jobParameters); } jobExecution.setStartTime(rs.getTimestamp(2)); diff --git a/spring-batch-core/src/main/java/org/springframework/batch/core/repository/support/SimpleJobRepository.java b/spring-batch-core/src/main/java/org/springframework/batch/core/repository/support/SimpleJobRepository.java index c5743ea2c..4c92623b2 100644 --- a/spring-batch-core/src/main/java/org/springframework/batch/core/repository/support/SimpleJobRepository.java +++ b/spring-batch-core/src/main/java/org/springframework/batch/core/repository/support/SimpleJobRepository.java @@ -149,7 +149,7 @@ public class SimpleJobRepository implements JobRepository { executionContext = new ExecutionContext(); } - JobExecution jobExecution = new JobExecution(jobInstance, jobParameters, null); + JobExecution jobExecution = new JobExecution(jobInstance, jobParameters); jobExecution.setExecutionContext(executionContext); jobExecution.setLastUpdated(new Date(System.currentTimeMillis())); @@ -290,23 +290,4 @@ public class SimpleJobRepository implements JobRepository { return jobInstance; } - @Override - public JobExecution createJobExecution(JobInstance jobInstance, - JobParameters jobParameters, String jobConfigurationLocation) { - - Assert.notNull(jobInstance, "A JobInstance is required to associate the JobExecution with"); - Assert.notNull(jobParameters, "A JobParameters object is required to create a JobExecution"); - - JobExecution jobExecution = new JobExecution(jobInstance, jobParameters, jobConfigurationLocation); - ExecutionContext executionContext = new ExecutionContext(); - jobExecution.setExecutionContext(executionContext); - jobExecution.setLastUpdated(new Date(System.currentTimeMillis())); - - // Save the JobExecution so that it picks up an ID (useful for clients - // monitoring asynchronous executions): - jobExecutionDao.saveJobExecution(jobExecution); - ecDao.saveExecutionContext(jobExecution); - - return jobExecution; - } } diff --git a/spring-batch-core/src/main/java/org/springframework/batch/core/scope/context/JobSynchronizationManager.java b/spring-batch-core/src/main/java/org/springframework/batch/core/scope/context/JobSynchronizationManager.java index 1870e9191..ba0892c23 100644 --- a/spring-batch-core/src/main/java/org/springframework/batch/core/scope/context/JobSynchronizationManager.java +++ b/spring-batch-core/src/main/java/org/springframework/batch/core/scope/context/JobSynchronizationManager.java @@ -1,5 +1,5 @@ /* - * Copyright 2013-2019 the original author or authors. + * Copyright 2013-2021 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. @@ -17,7 +17,6 @@ package org.springframework.batch.core.scope.context; import org.springframework.batch.core.Job; import org.springframework.batch.core.JobExecution; -import org.springframework.batch.core.jsr.configuration.support.BatchPropertyContext; import org.springframework.lang.Nullable; /** @@ -37,7 +36,7 @@ public class JobSynchronizationManager { private static final SynchronizationManagerSupport manager = new SynchronizationManagerSupport() { @Override - protected JobContext createNewContext(JobExecution execution, @Nullable BatchPropertyContext args) { + protected JobContext createNewContext(JobExecution execution) { return new JobContext(execution); } diff --git a/spring-batch-core/src/main/java/org/springframework/batch/core/scope/context/StepContext.java b/spring-batch-core/src/main/java/org/springframework/batch/core/scope/context/StepContext.java index 99c35c66d..20ff9fe4d 100644 --- a/spring-batch-core/src/main/java/org/springframework/batch/core/scope/context/StepContext.java +++ b/spring-batch-core/src/main/java/org/springframework/batch/core/scope/context/StepContext.java @@ -1,5 +1,5 @@ /* - * Copyright 2006-2019 the original author or authors. + * Copyright 2006-2021 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -30,7 +30,6 @@ import org.springframework.batch.core.JobParameter; import org.springframework.batch.core.JobParameters; import org.springframework.batch.core.StepExecution; import org.springframework.batch.core.UnexpectedJobExecutionException; -import org.springframework.batch.core.jsr.configuration.support.BatchPropertyContext; import org.springframework.batch.core.scope.StepScope; import org.springframework.batch.item.ExecutionContext; import org.springframework.batch.repeat.context.SynchronizedAttributeAccessor; @@ -57,8 +56,6 @@ public class StepContext extends SynchronizedAttributeAccessor { private Map> callbacks = new HashMap<>(); - private BatchPropertyContext propertyContext = null; - /** * Create a new instance of {@link StepContext} for this * {@link StepExecution}. @@ -71,13 +68,6 @@ public class StepContext extends SynchronizedAttributeAccessor { this.stepExecution = stepExecution; } - public StepContext(StepExecution stepExecution, BatchPropertyContext propertyContext) { - super(); - Assert.notNull(stepExecution, "A StepContext must have a non-null StepExecution"); - this.stepExecution = stepExecution; - this.propertyContext = propertyContext; - } - /** * Convenient accessor for current step name identifier. Usually this is the * same as the bean name of the step that is executing (but might not be @@ -158,18 +148,6 @@ public class StepContext extends SynchronizedAttributeAccessor { return Collections.unmodifiableMap(result); } - @SuppressWarnings({"rawtypes", "unchecked"}) - public Map getPartitionPlan() { - Map partitionPlanProperties = new HashMap<>(); - - if(propertyContext != null) { - Map partitionProperties = propertyContext.getStepProperties(getStepName()); - partitionPlanProperties = partitionProperties; - } - - return Collections.unmodifiableMap(partitionPlanProperties); - } - /** * Allow clients to register callbacks for clean up on close. * diff --git a/spring-batch-core/src/main/java/org/springframework/batch/core/scope/context/StepSynchronizationManager.java b/spring-batch-core/src/main/java/org/springframework/batch/core/scope/context/StepSynchronizationManager.java index 72907c137..88ac3ab47 100644 --- a/spring-batch-core/src/main/java/org/springframework/batch/core/scope/context/StepSynchronizationManager.java +++ b/spring-batch-core/src/main/java/org/springframework/batch/core/scope/context/StepSynchronizationManager.java @@ -1,5 +1,5 @@ /* - * Copyright 2006-2019 the original author or authors. + * Copyright 2006-2021 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. @@ -17,7 +17,6 @@ package org.springframework.batch.core.scope.context; import org.springframework.batch.core.Step; import org.springframework.batch.core.StepExecution; -import org.springframework.batch.core.jsr.configuration.support.BatchPropertyContext; import org.springframework.lang.Nullable; /** @@ -38,16 +37,8 @@ public class StepSynchronizationManager { new SynchronizationManagerSupport() { @Override - protected StepContext createNewContext(StepExecution execution, @Nullable BatchPropertyContext propertyContext) { - StepContext context; - - if(propertyContext != null) { - context = new StepContext(execution, propertyContext); - } else { - context = new StepContext(execution); - } - - return context; + protected StepContext createNewContext(StepExecution execution) { + return new StepContext(execution); } @Override @@ -80,21 +71,6 @@ public class StepSynchronizationManager { return manager.register(stepExecution); } - /** - * Register a context with the current thread - always put a matching - * {@link #close()} call in a finally block to ensure that the correct - * context is available in the enclosing block. - * - * @param stepExecution the step context to register - * @param propertyContext an instance of {@link BatchPropertyContext} to be - * used by the StepSynchronizationManager. - * @return a new {@link StepContext} or the current one if it has the same - * {@link StepExecution} - */ - public static StepContext register(StepExecution stepExecution, BatchPropertyContext propertyContext) { - return manager.register(stepExecution, propertyContext); - } - /** * Method for unregistering the current context - should always and only be * used by in conjunction with a matching {@link #register(StepExecution)} diff --git a/spring-batch-core/src/main/java/org/springframework/batch/core/scope/context/SynchronizationManagerSupport.java b/spring-batch-core/src/main/java/org/springframework/batch/core/scope/context/SynchronizationManagerSupport.java index ba9e695d8..72c4e7d5a 100644 --- a/spring-batch-core/src/main/java/org/springframework/batch/core/scope/context/SynchronizationManagerSupport.java +++ b/spring-batch-core/src/main/java/org/springframework/batch/core/scope/context/SynchronizationManagerSupport.java @@ -1,5 +1,5 @@ /* - * Copyright 2013-2018 the original author or authors. + * Copyright 2013-2021 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. @@ -20,7 +20,6 @@ import java.util.Stack; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.atomic.AtomicInteger; -import org.springframework.batch.core.jsr.configuration.support.BatchPropertyContext; import org.springframework.lang.Nullable; @@ -97,35 +96,7 @@ public abstract class SynchronizationManagerSupport { synchronized (contexts) { context = contexts.get(execution); if (context == null) { - context = createNewContext(execution, null); - contexts.put(execution, context); - } - } - increment(); - return context; - } - - /** - * Register a context with the current thread - always put a matching {@link #close()} call in a finally block to - * ensure that the correct - * context is available in the enclosing block. - * - * @param execution the execution to register - * @param propertyContext instance of {@link BatchPropertyContext} to be registered with this thread. - * @return a new context or the current one if it has the same - * execution - */ - @Nullable - public C register(@Nullable E execution, @Nullable BatchPropertyContext propertyContext) { - if (execution == null) { - return null; - } - getCurrent().push(execution); - C context; - synchronized (contexts) { - context = contexts.get(execution); - if (context == null) { - context = createNewContext(execution, propertyContext); + context = createNewContext(execution); contexts.put(execution, context); } } @@ -202,6 +173,6 @@ public abstract class SynchronizationManagerSupport { protected abstract void close(C context); - protected abstract C createNewContext(E execution, @Nullable BatchPropertyContext propertyContext); + protected abstract C createNewContext(E execution); } diff --git a/spring-batch-core/src/main/java/org/springframework/batch/core/step/builder/FaultTolerantStepBuilder.java b/spring-batch-core/src/main/java/org/springframework/batch/core/step/builder/FaultTolerantStepBuilder.java index f97e69965..53c2f4660 100644 --- a/spring-batch-core/src/main/java/org/springframework/batch/core/step/builder/FaultTolerantStepBuilder.java +++ b/spring-batch-core/src/main/java/org/springframework/batch/core/step/builder/FaultTolerantStepBuilder.java @@ -25,8 +25,6 @@ import java.util.List; import java.util.Map; import java.util.Set; -import jakarta.batch.operations.BatchRuntimeException; - import org.springframework.batch.core.ChunkListener; import org.springframework.batch.core.JobInterruptedException; import org.springframework.batch.core.SkipListener; @@ -124,8 +122,6 @@ public class FaultTolerantStepBuilder extends SimpleStepBuilder { private Set> skipListeners = new LinkedHashSet<>(); - private Set jsrRetryListeners = new LinkedHashSet<>(); - private int skipLimit = 0; private SkipPolicy skipPolicy; @@ -227,11 +223,6 @@ public class FaultTolerantStepBuilder extends SimpleStepBuilder { return this; } - public FaultTolerantStepBuilder listener(org.springframework.batch.core.jsr.RetryListener listener) { - jsrRetryListeners.add(listener); - return this; - } - @Override public FaultTolerantStepBuilder listener(ChunkListener listener) { super.listener(new TerminateOnExceptionChunkListenerDelegate(listener)); @@ -492,7 +483,7 @@ public class FaultTolerantStepBuilder extends SimpleStepBuilder { addNonRetryableExceptionIfMissing(SkipLimitExceededException.class, NonSkippableReadException.class, TransactionException.class, FatalStepExecutionException.class, SkipListenerFailedException.class, SkipPolicyFailedException.class, RetryException.class, JobInterruptedException.class, Error.class, - BatchRuntimeException.class, BeanCreationException.class); + BeanCreationException.class); } protected void detectStreamInReader() { @@ -647,10 +638,6 @@ public class FaultTolerantStepBuilder extends SimpleStepBuilder { return skipListeners; } - protected Set getJsrRetryListeners() { - return jsrRetryListeners; - } - /** * Wrap the provided {@link org.springframework.retry.RetryPolicy} so that it never retries explicitly non-retryable * exceptions. diff --git a/spring-batch-core/src/main/resources/META-INF/services/jakarta.batch.operations.JobOperator b/spring-batch-core/src/main/resources/META-INF/services/jakarta.batch.operations.JobOperator deleted file mode 100644 index 7bb1f526d..000000000 --- a/spring-batch-core/src/main/resources/META-INF/services/jakarta.batch.operations.JobOperator +++ /dev/null @@ -1 +0,0 @@ -org.springframework.batch.core.jsr.launch.JsrJobOperator \ No newline at end of file diff --git a/spring-batch-core/src/main/resources/META-INF/spring.handlers b/spring-batch-core/src/main/resources/META-INF/spring.handlers index 2663f5208..fbdf08e4f 100644 --- a/spring-batch-core/src/main/resources/META-INF/spring.handlers +++ b/spring-batch-core/src/main/resources/META-INF/spring.handlers @@ -1,2 +1 @@ -http\://www.springframework.org/schema/batch=org.springframework.batch.core.configuration.xml.CoreNamespaceHandler -http\://xmlns.jcp.org/xml/ns/javaee=org.springframework.batch.core.jsr.configuration.xml.JsrNamespaceHandler \ No newline at end of file +http\://www.springframework.org/schema/batch=org.springframework.batch.core.configuration.xml.CoreNamespaceHandler \ No newline at end of file diff --git a/spring-batch-core/src/main/resources/META-INF/spring.schemas b/spring-batch-core/src/main/resources/META-INF/spring.schemas index b01f5fede..5fd42f30e 100644 --- a/spring-batch-core/src/main/resources/META-INF/spring.schemas +++ b/spring-batch-core/src/main/resources/META-INF/spring.schemas @@ -3,12 +3,8 @@ http\://www.springframework.org/schema/batch/spring-batch-3.0.xsd=/org/springfra http\://www.springframework.org/schema/batch/spring-batch-2.2.xsd=/org/springframework/batch/core/configuration/xml/spring-batch-2.2.xsd http\://www.springframework.org/schema/batch/spring-batch-2.1.xsd=/org/springframework/batch/core/configuration/xml/spring-batch-2.1.xsd http\://www.springframework.org/schema/batch/spring-batch-2.0.xsd=/org/springframework/batch/core/configuration/xml/spring-batch-2.0.xsd -http\://xmlns.jcp.org/xml/ns/javaee/jobXML_1_0.xsd=/org/springframework/batch/core/jsr/configuration/xml/jobXML_1_0.xsd -http\://xmlns.jcp.org/xml/ns/javaee/batchXML_1_0.xsd=/org/springframework/batch/core/jsr/configuration/xml/batchXML_1_0.xsd https\://www.springframework.org/schema/batch/spring-batch.xsd=/org/springframework/batch/core/configuration/xml/spring-batch-3.0.xsd https\://www.springframework.org/schema/batch/spring-batch-3.0.xsd=/org/springframework/batch/core/configuration/xml/spring-batch-3.0.xsd https\://www.springframework.org/schema/batch/spring-batch-2.2.xsd=/org/springframework/batch/core/configuration/xml/spring-batch-2.2.xsd https\://www.springframework.org/schema/batch/spring-batch-2.1.xsd=/org/springframework/batch/core/configuration/xml/spring-batch-2.1.xsd https\://www.springframework.org/schema/batch/spring-batch-2.0.xsd=/org/springframework/batch/core/configuration/xml/spring-batch-2.0.xsd -https\://xmlns.jcp.org/xml/ns/javaee/jobXML_1_0.xsd=/org/springframework/batch/core/jsr/configuration/xml/jobXML_1_0.xsd -https\://xmlns.jcp.org/xml/ns/javaee/batchXML_1_0.xsd=/org/springframework/batch/core/jsr/configuration/xml/batchXML_1_0.xsd diff --git a/spring-batch-core/src/main/resources/beanRefContext.xml b/spring-batch-core/src/main/resources/beanRefContext.xml deleted file mode 100644 index 92a295f11..000000000 --- a/spring-batch-core/src/main/resources/beanRefContext.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - diff --git a/spring-batch-core/src/main/resources/jsrBaseContext.xml b/spring-batch-core/src/main/resources/jsrBaseContext.xml deleted file mode 100644 index cd4e2e10c..000000000 --- a/spring-batch-core/src/main/resources/jsrBaseContext.xml +++ /dev/null @@ -1,67 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - classpath:batch-${ENVIRONMENT:hsql}.properties - - - - - - - diff --git a/spring-batch-core/src/main/resources/org/springframework/batch/core/jsr/configuration/xml/batchXML_1_0.xsd b/spring-batch-core/src/main/resources/org/springframework/batch/core/jsr/configuration/xml/batchXML_1_0.xsd deleted file mode 100644 index fdbd192c1..000000000 --- a/spring-batch-core/src/main/resources/org/springframework/batch/core/jsr/configuration/xml/batchXML_1_0.xsd +++ /dev/null @@ -1,34 +0,0 @@ - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/spring-batch-core/src/main/resources/org/springframework/batch/core/jsr/configuration/xml/jobXML_1_0.xsd b/spring-batch-core/src/main/resources/org/springframework/batch/core/jsr/configuration/xml/jobXML_1_0.xsd deleted file mode 100755 index a0504bad0..000000000 --- a/spring-batch-core/src/main/resources/org/springframework/batch/core/jsr/configuration/xml/jobXML_1_0.xsd +++ /dev/null @@ -1,435 +0,0 @@ - - - - - - - Job Specification Language (JSL) specifies a job, - its steps, and directs their execution. - JSL also can be referred to as "Job XML". - - - - - - - This is a helper type. Though it is not otherwise - called out by this name - in the specification, it captures the fact - that the xs:string value refers - to a batch artifact, across numerous - other JSL type definitions. - - - - - - - - - The type of a job definition, whether concrete or - abstract. This is the type of the root element of any JSL document. - - - - - - - The job-level properties, which are accessible - via the JobContext.getProperties() API in a batch artifact. - - - - - - - Note that "listeners" sequence order in XML does - not imply order of execution by - the batch runtime, per the - specification. - - - - - - - - - - - - - - - - - - - The definition of an job, whether concrete or - abstract. This is the - type of the root element of any JSL document. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - This grouping provides allows for the reuse of the - 'end', 'fail', 'next', 'stop' element sequences which - may appear at the end of a 'step', 'flow', 'split' or 'decision'. - The term 'TransitionElements' does not formally appear in the spec, it is - a schema convenience. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Note that "listeners" sequence order in XML does - not imply order of execution by - the batch runtime, per the - specification. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Specifies the checkpoint policy that governs - commit behavior for this chunk. - Valid values are: "item" or - "custom". The "item" policy means the - chunk is checkpointed after a - specified number of items are - processed. The "custom" policy means - the chunk is checkpointed - according to a checkpoint algorithm - implementation. Specifying - "custom" requires that the - checkpoint-algorithm element is also - specified. It is an optional - attribute. The default policy is - "item". However, we chose not to define - a schema-specified default for this attribute. - - - - - - - Specifies the number of items to process per chunk - when using the item - checkpoint policy. It must be valid XML integer. - It is an optional - attribute. The default is 10. The item-count - attribute is ignored - for "custom" checkpoint policy. However, to - make it easier for implementations to support JSL inheritance - we - abstain from defining a schema-specified default for this - attribute. - - - - - - - Specifies the amount of time in seconds before - taking a checkpoint for the - item checkpoint policy. It must be valid - XML integer. It is an - optional attribute. The default is 0, which - means no limit. However, to - make it easier for implementations to - support JSL inheritance - we abstain from defining a schema-specified - default for this attribute. - When a value greater than zero is - specified, a checkpoint is taken when - time-limit is reached or - item-count items have been processed, - whichever comes first. The - time-limit attribute is ignored for - "custom" checkpoint policy. - - - - - - - Specifies the number of exceptions a step will - skip if any configured - skippable exceptions are thrown by chunk - processing. It must be a - valid XML integer value. It is an optional - attribute. The default - is no limit. - - - - - - - Specifies the number of times a step will retry if - any configured retryable - exceptions are thrown by chunk processing. - It must be a valid XML - integer value. It is an optional attribute. - The default is no - limit. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/spring-batch-core/src/main/resources/org/springframework/batch/core/schema-db2.sql b/spring-batch-core/src/main/resources/org/springframework/batch/core/schema-db2.sql index e37118ad9..ac4e0b6e2 100644 --- a/spring-batch-core/src/main/resources/org/springframework/batch/core/schema-db2.sql +++ b/spring-batch-core/src/main/resources/org/springframework/batch/core/schema-db2.sql @@ -19,7 +19,6 @@ CREATE TABLE BATCH_JOB_EXECUTION ( EXIT_CODE VARCHAR(2500) , EXIT_MESSAGE VARCHAR(2500) , LAST_UPDATED TIMESTAMP, - JOB_CONFIGURATION_LOCATION VARCHAR(2500) NULL, constraint JOB_INST_EXEC_FK foreign key (JOB_INSTANCE_ID) references BATCH_JOB_INSTANCE(JOB_INSTANCE_ID) ) ; diff --git a/spring-batch-core/src/main/resources/org/springframework/batch/core/schema-derby.sql b/spring-batch-core/src/main/resources/org/springframework/batch/core/schema-derby.sql index 09a8e53ef..2f70cd6e0 100644 --- a/spring-batch-core/src/main/resources/org/springframework/batch/core/schema-derby.sql +++ b/spring-batch-core/src/main/resources/org/springframework/batch/core/schema-derby.sql @@ -19,7 +19,6 @@ CREATE TABLE BATCH_JOB_EXECUTION ( EXIT_CODE VARCHAR(2500) , EXIT_MESSAGE VARCHAR(2500) , LAST_UPDATED TIMESTAMP, - JOB_CONFIGURATION_LOCATION VARCHAR(2500) DEFAULT NULL, constraint JOB_INST_EXEC_FK foreign key (JOB_INSTANCE_ID) references BATCH_JOB_INSTANCE(JOB_INSTANCE_ID) ) ; diff --git a/spring-batch-core/src/main/resources/org/springframework/batch/core/schema-h2.sql b/spring-batch-core/src/main/resources/org/springframework/batch/core/schema-h2.sql index fb19c6554..af047d873 100644 --- a/spring-batch-core/src/main/resources/org/springframework/batch/core/schema-h2.sql +++ b/spring-batch-core/src/main/resources/org/springframework/batch/core/schema-h2.sql @@ -19,7 +19,6 @@ CREATE TABLE BATCH_JOB_EXECUTION ( EXIT_CODE VARCHAR(2500) , EXIT_MESSAGE VARCHAR(2500) , LAST_UPDATED TIMESTAMP, - JOB_CONFIGURATION_LOCATION VARCHAR(2500) NULL, constraint JOB_INST_EXEC_FK foreign key (JOB_INSTANCE_ID) references BATCH_JOB_INSTANCE(JOB_INSTANCE_ID) ) ; diff --git a/spring-batch-core/src/main/resources/org/springframework/batch/core/schema-hsqldb.sql b/spring-batch-core/src/main/resources/org/springframework/batch/core/schema-hsqldb.sql index 4de04851f..297fd0845 100644 --- a/spring-batch-core/src/main/resources/org/springframework/batch/core/schema-hsqldb.sql +++ b/spring-batch-core/src/main/resources/org/springframework/batch/core/schema-hsqldb.sql @@ -19,7 +19,6 @@ CREATE TABLE BATCH_JOB_EXECUTION ( EXIT_CODE VARCHAR(2500) , EXIT_MESSAGE VARCHAR(2500) , LAST_UPDATED TIMESTAMP, - JOB_CONFIGURATION_LOCATION VARCHAR(2500) NULL, constraint JOB_INST_EXEC_FK foreign key (JOB_INSTANCE_ID) references BATCH_JOB_INSTANCE(JOB_INSTANCE_ID) ) ; diff --git a/spring-batch-core/src/main/resources/org/springframework/batch/core/schema-mysql.sql b/spring-batch-core/src/main/resources/org/springframework/batch/core/schema-mysql.sql index 1a5d87b65..a6b805ecc 100644 --- a/spring-batch-core/src/main/resources/org/springframework/batch/core/schema-mysql.sql +++ b/spring-batch-core/src/main/resources/org/springframework/batch/core/schema-mysql.sql @@ -19,7 +19,6 @@ CREATE TABLE BATCH_JOB_EXECUTION ( EXIT_CODE VARCHAR(2500) , EXIT_MESSAGE VARCHAR(2500) , LAST_UPDATED DATETIME(6), - JOB_CONFIGURATION_LOCATION VARCHAR(2500) NULL, constraint JOB_INST_EXEC_FK foreign key (JOB_INSTANCE_ID) references BATCH_JOB_INSTANCE(JOB_INSTANCE_ID) ) ENGINE=InnoDB; diff --git a/spring-batch-core/src/main/resources/org/springframework/batch/core/schema-oracle10g.sql b/spring-batch-core/src/main/resources/org/springframework/batch/core/schema-oracle10g.sql index 0d6e18729..2e8c6dbe7 100644 --- a/spring-batch-core/src/main/resources/org/springframework/batch/core/schema-oracle10g.sql +++ b/spring-batch-core/src/main/resources/org/springframework/batch/core/schema-oracle10g.sql @@ -19,7 +19,6 @@ CREATE TABLE BATCH_JOB_EXECUTION ( EXIT_CODE VARCHAR2(2500 char) , EXIT_MESSAGE VARCHAR2(2500 char) , LAST_UPDATED TIMESTAMP, - JOB_CONFIGURATION_LOCATION VARCHAR(2500 char) NULL, constraint JOB_INST_EXEC_FK foreign key (JOB_INSTANCE_ID) references BATCH_JOB_INSTANCE(JOB_INSTANCE_ID) ) SEGMENT CREATION IMMEDIATE; diff --git a/spring-batch-core/src/main/resources/org/springframework/batch/core/schema-postgresql.sql b/spring-batch-core/src/main/resources/org/springframework/batch/core/schema-postgresql.sql index fe3299a07..acfaefca7 100644 --- a/spring-batch-core/src/main/resources/org/springframework/batch/core/schema-postgresql.sql +++ b/spring-batch-core/src/main/resources/org/springframework/batch/core/schema-postgresql.sql @@ -19,7 +19,6 @@ CREATE TABLE BATCH_JOB_EXECUTION ( EXIT_CODE VARCHAR(2500) , EXIT_MESSAGE VARCHAR(2500) , LAST_UPDATED TIMESTAMP, - JOB_CONFIGURATION_LOCATION VARCHAR(2500) NULL, constraint JOB_INST_EXEC_FK foreign key (JOB_INSTANCE_ID) references BATCH_JOB_INSTANCE(JOB_INSTANCE_ID) ) ; diff --git a/spring-batch-core/src/main/resources/org/springframework/batch/core/schema-sqlite.sql b/spring-batch-core/src/main/resources/org/springframework/batch/core/schema-sqlite.sql index 5df5e404a..0ca50c5d3 100644 --- a/spring-batch-core/src/main/resources/org/springframework/batch/core/schema-sqlite.sql +++ b/spring-batch-core/src/main/resources/org/springframework/batch/core/schema-sqlite.sql @@ -19,7 +19,6 @@ CREATE TABLE BATCH_JOB_EXECUTION ( EXIT_CODE VARCHAR(100) , EXIT_MESSAGE VARCHAR(2500) , LAST_UPDATED TIMESTAMP, - JOB_CONFIGURATION_LOCATION VARCHAR(2500), constraint JOB_INST_EXEC_FK foreign key (JOB_INSTANCE_ID) references BATCH_JOB_INSTANCE(JOB_INSTANCE_ID) ) ; diff --git a/spring-batch-core/src/main/resources/org/springframework/batch/core/schema-sqlserver.sql b/spring-batch-core/src/main/resources/org/springframework/batch/core/schema-sqlserver.sql index f1cf0d994..1b7c2c2bb 100644 --- a/spring-batch-core/src/main/resources/org/springframework/batch/core/schema-sqlserver.sql +++ b/spring-batch-core/src/main/resources/org/springframework/batch/core/schema-sqlserver.sql @@ -19,7 +19,6 @@ CREATE TABLE BATCH_JOB_EXECUTION ( EXIT_CODE VARCHAR(2500) NULL, EXIT_MESSAGE VARCHAR(2500) NULL, LAST_UPDATED DATETIME NULL, - JOB_CONFIGURATION_LOCATION VARCHAR(2500) NULL, constraint JOB_INST_EXEC_FK foreign key (JOB_INSTANCE_ID) references BATCH_JOB_INSTANCE(JOB_INSTANCE_ID) ) ; diff --git a/spring-batch-core/src/main/resources/org/springframework/batch/core/schema-sybase.sql b/spring-batch-core/src/main/resources/org/springframework/batch/core/schema-sybase.sql index aeea56c27..073ef1358 100644 --- a/spring-batch-core/src/main/resources/org/springframework/batch/core/schema-sybase.sql +++ b/spring-batch-core/src/main/resources/org/springframework/batch/core/schema-sybase.sql @@ -19,7 +19,6 @@ CREATE TABLE BATCH_JOB_EXECUTION ( EXIT_CODE VARCHAR(2500) NULL, EXIT_MESSAGE VARCHAR(2500) NULL, LAST_UPDATED DATETIME, - JOB_CONFIGURATION_LOCATION VARCHAR(2500) NULL, constraint JOB_INST_EXEC_FK foreign key (JOB_INSTANCE_ID) references BATCH_JOB_INSTANCE(JOB_INSTANCE_ID) ) ; diff --git a/spring-batch-core/src/test/java/org/springframework/batch/core/BatchStatusTests.java b/spring-batch-core/src/test/java/org/springframework/batch/core/BatchStatusTests.java index ec0b2c2b4..43c0dfd05 100644 --- a/spring-batch-core/src/test/java/org/springframework/batch/core/BatchStatusTests.java +++ b/spring-batch-core/src/test/java/org/springframework/batch/core/BatchStatusTests.java @@ -120,14 +120,4 @@ public class BatchStatusTests { assertEquals(BatchStatus.COMPLETED, status); } - @Test - public void testJsrConversion() { - assertEquals(jakarta.batch.runtime.BatchStatus.ABANDONED, BatchStatus.ABANDONED.getBatchStatus()); - assertEquals(jakarta.batch.runtime.BatchStatus.COMPLETED, BatchStatus.COMPLETED.getBatchStatus()); - assertEquals(jakarta.batch.runtime.BatchStatus.STARTED, BatchStatus.STARTED.getBatchStatus()); - assertEquals(jakarta.batch.runtime.BatchStatus.STARTING, BatchStatus.STARTING.getBatchStatus()); - assertEquals(jakarta.batch.runtime.BatchStatus.STOPPED, BatchStatus.STOPPED.getBatchStatus()); - assertEquals(jakarta.batch.runtime.BatchStatus.STOPPING, BatchStatus.STOPPING.getBatchStatus()); - assertEquals(jakarta.batch.runtime.BatchStatus.FAILED, BatchStatus.FAILED.getBatchStatus()); - } } diff --git a/spring-batch-core/src/test/java/org/springframework/batch/core/JobExecutionTests.java b/spring-batch-core/src/test/java/org/springframework/batch/core/JobExecutionTests.java index d58f21210..927a85710 100644 --- a/spring-batch-core/src/test/java/org/springframework/batch/core/JobExecutionTests.java +++ b/spring-batch-core/src/test/java/org/springframework/batch/core/JobExecutionTests.java @@ -31,12 +31,13 @@ import org.springframework.util.SerializationUtils; /** * @author Dave Syer * @author Dimitrios Liapis + * @author Mahmoud Ben Hassine * */ public class JobExecutionTests { private JobExecution execution = new JobExecution(new JobInstance(11L, "foo"), - 12L, new JobParameters(), null); + 12L, new JobParameters()); @Test public void testJobExecution() { @@ -54,12 +55,6 @@ public class JobExecutionTests { assertEquals(100L, execution.getEndTime().getTime()); } - @Test - public void testGetJobConfigurationName() { - execution = new JobExecution(new JobInstance(null, "foo"), null, "/META-INF/batch-jobs/someJob.xml"); - assertEquals("/META-INF/batch-jobs/someJob.xml", execution.getJobConfigurationName()); - } - /** * Test method for * {@link org.springframework.batch.core.JobExecution#getEndTime()}. @@ -122,7 +117,7 @@ public class JobExecutionTests { @Test public void testGetJobId() { assertEquals(11, execution.getJobId().longValue()); - execution = new JobExecution(new JobInstance(23L, "testJob"), null, new JobParameters(), null); + execution = new JobExecution(new JobInstance(23L, "testJob"), null, new JobParameters()); assertEquals(23, execution.getJobId().longValue()); } diff --git a/spring-batch-core/src/test/java/org/springframework/batch/core/JobParametersBuilderTests.java b/spring-batch-core/src/test/java/org/springframework/batch/core/JobParametersBuilderTests.java index 1416e8731..902aebee5 100644 --- a/spring-batch-core/src/test/java/org/springframework/batch/core/JobParametersBuilderTests.java +++ b/spring-batch-core/src/test/java/org/springframework/batch/core/JobParametersBuilderTests.java @@ -252,7 +252,7 @@ public class JobParametersBuilderTests { } private JobExecution getJobExecution(JobInstance jobInstance, BatchStatus batchStatus) { - JobExecution jobExecution = new JobExecution(jobInstance, 1L, null, "TestConfig"); + JobExecution jobExecution = new JobExecution(jobInstance, 1L, null); if(batchStatus != null) { jobExecution.setStatus(batchStatus); } diff --git a/spring-batch-core/src/test/java/org/springframework/batch/core/StepExecutionTests.java b/spring-batch-core/src/test/java/org/springframework/batch/core/StepExecutionTests.java index 51e0bac4d..97626b2e3 100644 --- a/spring-batch-core/src/test/java/org/springframework/batch/core/StepExecutionTests.java +++ b/spring-batch-core/src/test/java/org/springframework/batch/core/StepExecutionTests.java @@ -34,6 +34,7 @@ import org.springframework.util.SerializationUtils; /** * @author Dave Syer + * @author Mahmoud Ben Hassine * */ public class StepExecutionTests { @@ -305,7 +306,7 @@ public class StepExecutionTests { private StepExecution newStepExecution(Step step, Long jobExecutionId, long stepExecutionId) { JobInstance job = new JobInstance(3L, "testJob"); - StepExecution execution = new StepExecution(step.getName(), new JobExecution(job, jobExecutionId, new JobParameters(), null), stepExecutionId); + StepExecution execution = new StepExecution(step.getName(), new JobExecution(job, jobExecutionId, new JobParameters()), stepExecutionId); return execution; } diff --git a/spring-batch-core/src/test/java/org/springframework/batch/core/configuration/xml/DummyJobRepository.java b/spring-batch-core/src/test/java/org/springframework/batch/core/configuration/xml/DummyJobRepository.java index fd2ebb050..1883b9222 100644 --- a/spring-batch-core/src/test/java/org/springframework/batch/core/configuration/xml/DummyJobRepository.java +++ b/spring-batch-core/src/test/java/org/springframework/batch/core/configuration/xml/DummyJobRepository.java @@ -1,5 +1,5 @@ /* - * Copyright 2006-2019 the original author or authors. + * Copyright 2006-2021 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. @@ -31,6 +31,7 @@ import org.springframework.lang.Nullable; /** * @author Dan Garrette * @author David Turanski + * @author Mahmoud Ben Hassine * @since 2.0.1 */ public class DummyJobRepository implements JobRepository, BeanNameAware { @@ -104,9 +105,4 @@ public class DummyJobRepository implements JobRepository, BeanNameAware { return null; } - @Override - public JobExecution createJobExecution(JobInstance jobInstance, - JobParameters jobParameters, String jobConfigurationLocation) { - return null; - } } diff --git a/spring-batch-core/src/test/java/org/springframework/batch/core/explore/support/SimpleJobExplorerTests.java b/spring-batch-core/src/test/java/org/springframework/batch/core/explore/support/SimpleJobExplorerTests.java index 290243acc..fcdb50afd 100644 --- a/spring-batch-core/src/test/java/org/springframework/batch/core/explore/support/SimpleJobExplorerTests.java +++ b/spring-batch-core/src/test/java/org/springframework/batch/core/explore/support/SimpleJobExplorerTests.java @@ -1,5 +1,5 @@ /* - * Copyright 2006-2019 the original author or authors. + * Copyright 2006-2021 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. @@ -59,7 +59,7 @@ public class SimpleJobExplorerTests { private ExecutionContextDao ecDao; - private JobExecution jobExecution = new JobExecution(jobInstance, 1234L, new JobParameters(), null); + private JobExecution jobExecution = new JobExecution(jobInstance, 1234L, new JobParameters()); @Before public void setUp() throws Exception { diff --git a/spring-batch-core/src/test/java/org/springframework/batch/core/job/flow/FlowJobTests.java b/spring-batch-core/src/test/java/org/springframework/batch/core/job/flow/FlowJobTests.java index 466d7e130..0b36f4083 100644 --- a/spring-batch-core/src/test/java/org/springframework/batch/core/job/flow/FlowJobTests.java +++ b/spring-batch-core/src/test/java/org/springframework/batch/core/job/flow/FlowJobTests.java @@ -35,10 +35,6 @@ import org.springframework.batch.core.job.flow.support.state.EndState; import org.springframework.batch.core.job.flow.support.state.FlowState; import org.springframework.batch.core.job.flow.support.state.SplitState; import org.springframework.batch.core.job.flow.support.state.StepState; -import org.springframework.batch.core.jsr.configuration.support.BatchPropertyContext; -import org.springframework.batch.core.jsr.partition.JsrPartitionHandler; -import org.springframework.batch.core.jsr.step.PartitionStep; -import org.springframework.batch.core.jsr.partition.JsrStepExecutionSplitter; import org.springframework.batch.core.repository.JobRepository; import org.springframework.batch.core.repository.support.JobRepositoryFactoryBean; import org.springframework.batch.core.step.StepSupport; @@ -571,38 +567,6 @@ public class FlowJobTests { assertEquals("step2", step.getName()); } - @Test - public void testGetPartitionedStep() throws Exception { - SimpleFlow flow = new SimpleFlow("job"); - List transitions = new ArrayList<>(); - PartitionStep step = new PartitionStep(); - step.setName("step1"); - JsrPartitionHandler partitionHandler = new JsrPartitionHandler(); - partitionHandler.setPropertyContext(new BatchPropertyContext()); - partitionHandler.setPartitions(3); - partitionHandler.setJobRepository(jobRepository); - partitionHandler.setStep(new StubStep("subStep")); - partitionHandler.afterPropertiesSet(); - step.setPartitionHandler(partitionHandler); - step.setStepExecutionSplitter(new JsrStepExecutionSplitter(jobRepository, false, "step1", true)); - step.setJobRepository(jobRepository); - step.afterPropertiesSet(); - transitions.add(StateTransition.createStateTransition(new StepState("job.step", step), "end0")); - transitions.add(StateTransition.createEndStateTransition(new EndState(FlowExecutionStatus.COMPLETED, "end0"))); - flow.setStateTransitions(transitions); - flow.afterPropertiesSet(); - job.setFlow(flow); - job.afterPropertiesSet(); - - job.execute(jobRepository.createJobExecution("partitionJob", new JobParameters())); - - assertEquals(3, step.getStepNames().size()); - Step subStep = job.getStep("step1:partition0"); - assertNotNull(subStep); - assertEquals("subStep", subStep.getName()); - assertNull(job.getStep("step that does not exist")); - } - @Test public void testGetStepExistsWithPrefix() throws Exception { SimpleFlow flow = new SimpleFlow("job"); diff --git a/spring-batch-core/src/test/java/org/springframework/batch/core/jsr/AbstractJsrTestCase.java b/spring-batch-core/src/test/java/org/springframework/batch/core/jsr/AbstractJsrTestCase.java deleted file mode 100644 index ae13eba0d..000000000 --- a/spring-batch-core/src/test/java/org/springframework/batch/core/jsr/AbstractJsrTestCase.java +++ /dev/null @@ -1,123 +0,0 @@ -/* - * Copyright 2014-2021 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.springframework.batch.core.jsr; - -import java.util.Date; -import java.util.Properties; -import java.util.concurrent.TimeoutException; - -import jakarta.batch.operations.JobOperator; -import jakarta.batch.runtime.BatchRuntime; -import jakarta.batch.runtime.BatchStatus; -import jakarta.batch.runtime.JobExecution; -import jakarta.batch.runtime.Metric; -import jakarta.batch.runtime.StepExecution; - -/** - * @author mminella - * @author Mahmoud Ben Hassine - */ -public abstract class AbstractJsrTestCase { - - protected static JobOperator operator; - - static { - operator = BatchRuntime.getJobOperator(); - } - - /** - * Executes a job and waits for it's status to be any of {@link jakarta.batch.runtime.BatchStatus#STOPPED}, - * {@link jakarta.batch.runtime.BatchStatus#COMPLETED}, or {@link jakarta.batch.runtime.BatchStatus#FAILED}. If the job does not - * reach one of those statuses within the given timeout, a {@link java.util.concurrent.TimeoutException} is - * thrown. - * - * @param jobName Name of the job to run - * @param properties Properties to pass the job - * @param timeout length of time to wait for a job to finish - * @return the {@link jakarta.batch.runtime.JobExecution} for the final state of the job - * @throws java.util.concurrent.TimeoutException if the timeout occurs - */ - public static JobExecution runJob(String jobName, Properties properties, long timeout) throws TimeoutException { - System.out.println("Operator = " + operator); - long executionId = operator.start(jobName, properties); - JobExecution execution = operator.getJobExecution(executionId); - - Date curDate = new Date(); - BatchStatus curBatchStatus = execution.getBatchStatus(); - - while(true) { - if(curBatchStatus == BatchStatus.STOPPED || curBatchStatus == BatchStatus.COMPLETED || curBatchStatus == BatchStatus.FAILED) { - break; - } - - if(new Date().getTime() - curDate.getTime() > timeout) { - throw new TimeoutException("Job processing did not complete in time"); - } - - execution = operator.getJobExecution(executionId); - curBatchStatus = execution.getBatchStatus(); - } - return execution; - } - - /** - * Restarts a job and waits for it's status to be any of {@link BatchStatus#STOPPED}, - * {@link BatchStatus#COMPLETED}, or {@link BatchStatus#FAILED}. If the job does not - * reach one of those statuses within the given timeout, a {@link java.util.concurrent.TimeoutException} is - * thrown. - * - * @param executionId The execution id to restart - * @param properties The Properties to pass to the new run - * @param timeout The length of time to wait for the job to run - * @return the {@link JobExecution} for the final state of the job - * @throws java.util.concurrent.TimeoutException if the timeout occurs - */ - public static JobExecution restartJob(long executionId, Properties properties, long timeout) throws TimeoutException { - long restartId = operator.restart(executionId, properties); - JobExecution execution = operator.getJobExecution(restartId); - - Date curDate = new Date(); - BatchStatus curBatchStatus = execution.getBatchStatus(); - - while(true) { - if(curBatchStatus == BatchStatus.STOPPED || curBatchStatus == BatchStatus.COMPLETED || curBatchStatus == BatchStatus.FAILED) { - break; - } - - if(new Date().getTime() - curDate.getTime() > timeout) { - throw new TimeoutException("Job processing did not complete in time"); - } - - execution = operator.getJobExecution(restartId); - curBatchStatus = execution.getBatchStatus(); - } - return execution; - } - - public static Metric getMetric(StepExecution stepExecution, Metric.MetricType type) { - Metric[] metrics = stepExecution.getMetrics(); - - for (Metric metric : metrics) { - if(metric.getType() == type) { - return metric; - } - } - - return null; - } - - -} diff --git a/spring-batch-core/src/test/java/org/springframework/batch/core/jsr/ChunkListenerAdapterTests.java b/spring-batch-core/src/test/java/org/springframework/batch/core/jsr/ChunkListenerAdapterTests.java deleted file mode 100644 index 40e73ad2c..000000000 --- a/spring-batch-core/src/test/java/org/springframework/batch/core/jsr/ChunkListenerAdapterTests.java +++ /dev/null @@ -1,102 +0,0 @@ -/* - * Copyright 2013-2021 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.springframework.batch.core.jsr; - -import static org.mockito.Mockito.doThrow; -import static org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; - -import jakarta.batch.api.chunk.listener.ChunkListener; -import jakarta.batch.operations.BatchRuntimeException; - -import org.junit.Before; -import org.junit.Rule; -import org.junit.Test; -import org.mockito.Mock; -import org.mockito.junit.MockitoJUnit; -import org.mockito.junit.MockitoRule; -import org.springframework.batch.core.scope.context.ChunkContext; -import org.springframework.batch.core.step.tasklet.UncheckedTransactionException; - -public class ChunkListenerAdapterTests { - - @Rule - public MockitoRule rule = MockitoJUnit.rule().silent(); - - private ChunkListenerAdapter adapter; - @Mock - private ChunkListener delegate; - @Mock - private ChunkContext context; - - @Before - public void setUp() { - adapter = new ChunkListenerAdapter(delegate); - } - - @Test(expected=IllegalArgumentException.class) - public void testNullDelegate() { - adapter = new ChunkListenerAdapter(null); - } - - @Test - public void testBeforeChunk() throws Exception { - adapter.beforeChunk(null); - - verify(delegate).beforeChunk(); - } - - @Test(expected=UncheckedTransactionException.class) - public void testBeforeChunkException() throws Exception { - doThrow(new Exception("This is expected")).when(delegate).beforeChunk(); - adapter.beforeChunk(null); - } - - @Test - public void testAfterChunk() throws Exception { - adapter.afterChunk(null); - - verify(delegate).afterChunk(); - } - - @Test(expected=UncheckedTransactionException.class) - public void testAfterChunkException() throws Exception { - doThrow(new Exception("This is expected")).when(delegate).afterChunk(); - adapter.afterChunk(null); - } - - @Test(expected=BatchRuntimeException.class) - public void testAfterChunkErrorNullContext() throws Exception { - adapter.afterChunkError(null); - } - - @Test(expected=UncheckedTransactionException.class) - public void testAfterChunkErrorException() throws Exception { - doThrow(new Exception("This is expected")).when(delegate).afterChunk(); - adapter.afterChunk(null); - } - - @Test - public void testAfterChunkError() throws Exception { - Exception exception = new Exception("This was expected"); - - when(context.getAttribute(org.springframework.batch.core.ChunkListener.ROLLBACK_EXCEPTION_KEY)).thenReturn(exception); - - adapter.afterChunkError(context); - - verify(delegate).onError(exception); - } -} diff --git a/spring-batch-core/src/test/java/org/springframework/batch/core/jsr/ItemProcessListenerAdapterTests.java b/spring-batch-core/src/test/java/org/springframework/batch/core/jsr/ItemProcessListenerAdapterTests.java deleted file mode 100644 index f8518894d..000000000 --- a/spring-batch-core/src/test/java/org/springframework/batch/core/jsr/ItemProcessListenerAdapterTests.java +++ /dev/null @@ -1,110 +0,0 @@ -/* - * Copyright 2013-2021 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.springframework.batch.core.jsr; - -import static org.mockito.Mockito.doThrow; -import static org.mockito.Mockito.verify; - -import jakarta.batch.api.chunk.listener.ItemProcessListener; -import jakarta.batch.operations.BatchRuntimeException; - -import org.junit.Before; -import org.junit.Rule; -import org.junit.Test; -import org.mockito.Mock; -import org.mockito.junit.MockitoJUnit; -import org.mockito.junit.MockitoRule; - -public class ItemProcessListenerAdapterTests { - - @Rule - public MockitoRule rule = MockitoJUnit.rule().silent(); - - private ItemProcessListenerAdapter adapter; - @Mock - private ItemProcessListener delegate; - - @Before - public void setUp() throws Exception { - adapter = new ItemProcessListenerAdapter<>(delegate); - } - - @Test(expected=IllegalArgumentException.class) - public void testNullCreation() { - adapter = new ItemProcessListenerAdapter<>(null); - } - - @Test - public void testBeforeProcess() throws Exception { - String item = "This is my item"; - - adapter.beforeProcess(item); - - verify(delegate).beforeProcess(item); - } - - @Test(expected=BatchRuntimeException.class) - public void testBeforeProcessException() throws Exception { - Exception exception = new Exception("This should occur"); - String item = "This is the bad item"; - - doThrow(exception).when(delegate).beforeProcess(item); - - adapter.beforeProcess(item); - } - - @Test - public void testAfterProcess() throws Exception { - String item = "This is the input"; - String result = "This is the output"; - - adapter.afterProcess(item, result); - - verify(delegate).afterProcess(item, result); - } - - @Test(expected=BatchRuntimeException.class) - public void testAfterProcessException() throws Exception { - String item = "This is the input"; - String result = "This is the output"; - Exception exception = new Exception("This is expected"); - - doThrow(exception).when(delegate).afterProcess(item, result); - - adapter.afterProcess(item, result); - } - - @Test - public void testOnProcessError() throws Exception { - String item = "This is the input"; - Exception cause = new Exception("This was the cause"); - - adapter.onProcessError(item, cause); - - verify(delegate).onProcessError(item, cause); - } - - @Test(expected=BatchRuntimeException.class) - public void testOnProcessErrorException() throws Exception { - String item = "This is the input"; - Exception cause = new Exception("This was the cause"); - Exception exception = new Exception("This is expected"); - - doThrow(exception).when(delegate).onProcessError(item, cause); - - adapter.onProcessError(item, cause); - } -} diff --git a/spring-batch-core/src/test/java/org/springframework/batch/core/jsr/ItemReadListenerAdapterTests.java b/spring-batch-core/src/test/java/org/springframework/batch/core/jsr/ItemReadListenerAdapterTests.java deleted file mode 100644 index d8073a723..000000000 --- a/spring-batch-core/src/test/java/org/springframework/batch/core/jsr/ItemReadListenerAdapterTests.java +++ /dev/null @@ -1,101 +0,0 @@ -/* - * Copyright 2013-2021 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.springframework.batch.core.jsr; - -import static org.mockito.Mockito.doThrow; -import static org.mockito.Mockito.verify; - -import jakarta.batch.api.chunk.listener.ItemReadListener; -import jakarta.batch.operations.BatchRuntimeException; - -import org.junit.Before; -import org.junit.Rule; -import org.junit.Test; -import org.mockito.Mock; -import org.mockito.junit.MockitoJUnit; -import org.mockito.junit.MockitoRule; - -public class ItemReadListenerAdapterTests { - - @Rule - public MockitoRule rule = MockitoJUnit.rule().silent(); - - private ItemReadListenerAdapter adapter; - @Mock - private ItemReadListener delegate; - - @Before - public void setUp() throws Exception { - adapter = new ItemReadListenerAdapter<>(delegate); - } - - @Test(expected=IllegalArgumentException.class) - public void testNullDelegate() { - adapter = new ItemReadListenerAdapter<>(null); - } - - @Test - public void testBeforeRead() throws Exception { - adapter.beforeRead(); - - verify(delegate).beforeRead(); - } - - @Test(expected=BatchRuntimeException.class) - public void testBeforeReadException() throws Exception { - doThrow(new Exception("Should occur")).when(delegate).beforeRead(); - - adapter.beforeRead(); - } - - @Test - public void testAfterRead() throws Exception { - String item = "item"; - - adapter.afterRead(item); - - verify(delegate).afterRead(item); - } - - @Test(expected=BatchRuntimeException.class) - public void testAfterReadException() throws Exception { - String item = "item"; - Exception expected = new Exception("expected"); - - doThrow(expected).when(delegate).afterRead(item); - - adapter.afterRead(item); - } - - @Test - public void testOnReadError() throws Exception { - Exception cause = new Exception ("cause"); - - adapter.onReadError(cause); - - verify(delegate).onReadError(cause); - } - - @Test(expected=BatchRuntimeException.class) - public void testOnReadErrorException() throws Exception { - Exception cause = new Exception ("cause"); - Exception result = new Exception("result"); - - doThrow(result).when(delegate).onReadError(cause); - - adapter.onReadError(cause); - } -} diff --git a/spring-batch-core/src/test/java/org/springframework/batch/core/jsr/ItemWriteListenerAdapterTests.java b/spring-batch-core/src/test/java/org/springframework/batch/core/jsr/ItemWriteListenerAdapterTests.java deleted file mode 100644 index 0fdbf662d..000000000 --- a/spring-batch-core/src/test/java/org/springframework/batch/core/jsr/ItemWriteListenerAdapterTests.java +++ /dev/null @@ -1,100 +0,0 @@ -/* - * Copyright 2013-2021 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.springframework.batch.core.jsr; - -import static org.mockito.Mockito.doThrow; -import static org.mockito.Mockito.verify; - -import java.util.ArrayList; -import java.util.List; - -import jakarta.batch.api.chunk.listener.ItemWriteListener; -import jakarta.batch.operations.BatchRuntimeException; - -import org.junit.Before; -import org.junit.Rule; -import org.junit.Test; -import org.mockito.Mock; -import org.mockito.junit.MockitoJUnit; -import org.mockito.junit.MockitoRule; - -@SuppressWarnings({"rawtypes", "unchecked"}) -public class ItemWriteListenerAdapterTests { - - @Rule - public MockitoRule rule = MockitoJUnit.rule().silent(); - - private ItemWriteListenerAdapter adapter; - @Mock - private ItemWriteListener delegate; - private List items = new ArrayList(); - - @Before - public void setUp() throws Exception { - adapter = new ItemWriteListenerAdapter<>(delegate); - } - - @Test(expected=IllegalArgumentException.class) - public void testCreateWithNull() { - adapter = new ItemWriteListenerAdapter<>(null); - } - - @Test - public void testBeforeWrite() throws Exception { - adapter.beforeWrite(items); - - verify(delegate).beforeWrite(items); - } - - @Test(expected=BatchRuntimeException.class) - public void testBeforeTestWriteException() throws Exception { - doThrow(new Exception("expected")).when(delegate).beforeWrite(items); - - adapter.beforeWrite(items); - } - - @Test - public void testAfterWrite() throws Exception { - adapter.afterWrite(items); - - verify(delegate).afterWrite(items); - } - - @Test(expected=BatchRuntimeException.class) - public void testAfterTestWriteException() throws Exception { - doThrow(new Exception("expected")).when(delegate).afterWrite(items); - - adapter.afterWrite(items); - } - - @Test - public void testOnWriteError() throws Exception { - Exception cause = new Exception("cause"); - - adapter.onWriteError(cause, items); - - verify(delegate).onWriteError(items, cause); - } - - @Test(expected=BatchRuntimeException.class) - public void testOnWriteErrorException() throws Exception { - Exception cause = new Exception("cause"); - - doThrow(new Exception("expected")).when(delegate).onWriteError(items, cause); - - adapter.onWriteError(cause, items); - } -} diff --git a/spring-batch-core/src/test/java/org/springframework/batch/core/jsr/JobListenerAdapterTests.java b/spring-batch-core/src/test/java/org/springframework/batch/core/jsr/JobListenerAdapterTests.java deleted file mode 100644 index c90b8da4e..000000000 --- a/spring-batch-core/src/test/java/org/springframework/batch/core/jsr/JobListenerAdapterTests.java +++ /dev/null @@ -1,77 +0,0 @@ -/* - * Copyright 2013-2021 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.springframework.batch.core.jsr; - -import static org.mockito.Mockito.doThrow; -import static org.mockito.Mockito.verify; - -import jakarta.batch.api.listener.JobListener; -import jakarta.batch.operations.BatchRuntimeException; - -import org.junit.Before; -import org.junit.Rule; -import org.junit.Test; -import org.mockito.Mock; -import org.mockito.junit.MockitoJUnit; -import org.mockito.junit.MockitoRule; - -public class JobListenerAdapterTests { - - @Rule - public MockitoRule rule = MockitoJUnit.rule().silent(); - - private JobListenerAdapter adapter; - @Mock - private JobListener delegate; - - @Before - public void setUp() throws Exception { - adapter = new JobListenerAdapter(delegate); - } - - @Test(expected=IllegalArgumentException.class) - public void testCreateWithNull() { - adapter = new JobListenerAdapter(null); - } - - @Test - public void testBeforeJob() throws Exception { - adapter.beforeJob(null); - - verify(delegate).beforeJob(); - } - - @Test(expected=BatchRuntimeException.class) - public void testBeforeJobException() throws Exception { - doThrow(new Exception("expected")).when(delegate).beforeJob(); - - adapter.beforeJob(null); - } - - @Test - public void testAfterJob() throws Exception { - adapter.afterJob(null); - - verify(delegate).afterJob(); - } - - @Test(expected=BatchRuntimeException.class) - public void testAfterJobException() throws Exception { - doThrow(new Exception("expected")).when(delegate).afterJob(); - - adapter.afterJob(null); - } -} diff --git a/spring-batch-core/src/test/java/org/springframework/batch/core/jsr/JsrJobContextFactoryBeanTests.java b/spring-batch-core/src/test/java/org/springframework/batch/core/jsr/JsrJobContextFactoryBeanTests.java deleted file mode 100644 index 269b993ec..000000000 --- a/spring-batch-core/src/test/java/org/springframework/batch/core/jsr/JsrJobContextFactoryBeanTests.java +++ /dev/null @@ -1,126 +0,0 @@ -/* - * Copyright 2013-2021 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.springframework.batch.core.jsr; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertTrue; - -import java.util.ArrayList; -import java.util.HashSet; -import java.util.List; -import java.util.Set; -import java.util.concurrent.Callable; -import java.util.concurrent.Future; - -import jakarta.batch.runtime.context.JobContext; - -import org.junit.After; -import org.junit.Before; -import org.junit.Test; -import org.springframework.batch.core.JobExecution; -import org.springframework.batch.core.StepExecution; -import org.springframework.batch.core.jsr.configuration.support.BatchPropertyContext; -import org.springframework.batch.core.scope.context.StepSynchronizationManager; -import org.springframework.beans.factory.FactoryBeanNotInitializedException; -import org.springframework.core.task.AsyncTaskExecutor; -import org.springframework.core.task.SimpleAsyncTaskExecutor; - -public class JsrJobContextFactoryBeanTests { - - private JsrJobContextFactoryBean factoryBean; - private BatchPropertyContext propertyContext; - - @Before - public void setUp() throws Exception { - StepSynchronizationManager.close(); - propertyContext = new BatchPropertyContext(); - factoryBean = new JsrJobContextFactoryBean(); - } - - @After - public void tearDown() throws Exception { - factoryBean.close(); - StepSynchronizationManager.close(); - } - - @Test - public void testInitialCreationSingleThread() throws Exception { - factoryBean.setJobExecution(new JobExecution(5L)); - factoryBean.setBatchPropertyContext(propertyContext); - - assertTrue(factoryBean.getObjectType().isAssignableFrom(JobContext.class)); - assertFalse(factoryBean.isSingleton()); - - JobContext jobContext1 = factoryBean.getObject(); - JobContext jobContext2 = factoryBean.getObject(); - - assertEquals(5L, jobContext1.getExecutionId()); - assertEquals(5L, jobContext2.getExecutionId()); - assertTrue(jobContext1 == jobContext2); - } - - @Test - public void testInitialCreationSingleThreadUsingStepScope() throws Exception { - factoryBean.setBatchPropertyContext(propertyContext); - - StepSynchronizationManager.register(new StepExecution("step1", new JobExecution(5L))); - - JobContext jobContext = factoryBean.getObject(); - - assertEquals(5L, jobContext.getExecutionId()); - StepSynchronizationManager.close(); - } - - @Test(expected=FactoryBeanNotInitializedException.class) - public void testNoJobExecutionProvided() throws Exception { - factoryBean.getObject(); - } - - @Test - public void testOneJobContextPerThread() throws Exception { - List> jobContexts = new ArrayList<>(); - - AsyncTaskExecutor executor = new SimpleAsyncTaskExecutor(); - - for(int i = 0; i < 4; i++) { - final long count = i; - jobContexts.add(executor.submit(new Callable() { - - @Override - public JobContext call() throws Exception { - try { - StepSynchronizationManager.register(new StepExecution("step" + count, new JobExecution(count))); - JobContext context = factoryBean.getObject(); - Thread.sleep(1000L); - return context; - } catch (Throwable ignore) { - return null; - }finally { - StepSynchronizationManager.release(); - } - } - })); - } - - Set contexts = new HashSet<>(); - for (Future future : jobContexts) { - contexts.add(future.get()); - } - - assertEquals(4, contexts.size()); - } -} diff --git a/spring-batch-core/src/test/java/org/springframework/batch/core/jsr/JsrJobContextTests.java b/spring-batch-core/src/test/java/org/springframework/batch/core/jsr/JsrJobContextTests.java deleted file mode 100644 index 5f525abae..000000000 --- a/spring-batch-core/src/test/java/org/springframework/batch/core/jsr/JsrJobContextTests.java +++ /dev/null @@ -1,131 +0,0 @@ -/* - * Copyright 2013-2021 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.springframework.batch.core.jsr; - -import static org.junit.Assert.assertEquals; -import static org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; - -import java.util.Properties; - -import org.junit.Before; -import org.junit.Rule; -import org.junit.Test; -import org.mockito.Mock; -import org.mockito.junit.MockitoJUnit; -import org.mockito.junit.MockitoRule; -import org.springframework.batch.core.BatchStatus; -import org.springframework.batch.core.ExitStatus; -import org.springframework.batch.core.JobExecution; -import org.springframework.batch.core.JobInstance; -import org.springframework.batch.core.JobParameters; -import org.springframework.batch.core.JobParametersBuilder; - -public class JsrJobContextTests { - - @Rule - public MockitoRule rule = MockitoJUnit.rule().silent(); - - private JsrJobContext context; - @Mock - private JobExecution execution; - @Mock - private JobInstance instance; - - @Before - public void setUp() throws Exception { - - Properties properties = new Properties(); - properties.put("jobLevelProperty1", "jobLevelValue1"); - - context = new JsrJobContext(); - context.setProperties(properties); - context.setJobExecution(execution); - - when(execution.getJobInstance()).thenReturn(instance); - } - - @Test(expected=IllegalArgumentException.class) - public void testCreateWithNull() { - context = new JsrJobContext(); - context.setJobExecution(null); - } - - @Test - public void testGetJobName() { - when(instance.getJobName()).thenReturn("jobName"); - - assertEquals("jobName", context.getJobName()); - } - - @Test - public void testTransientUserData() { - context.setTransientUserData("This is my data"); - assertEquals("This is my data", context.getTransientUserData()); - } - - @Test - public void testGetInstanceId() { - when(instance.getId()).thenReturn(5L); - - assertEquals(5L, context.getInstanceId()); - } - - @Test - public void testGetExecutionId() { - when(execution.getId()).thenReturn(5L); - - assertEquals(5L, context.getExecutionId()); - } - - @Test - public void testJobParameters() { - JobParameters params = new JobParametersBuilder() - .addString("key1", "value1") - .toJobParameters(); - - when(execution.getJobParameters()).thenReturn(params); - - assertEquals("value1", execution.getJobParameters().getString("key1")); - } - - @Test - public void testJobProperties() { - assertEquals("jobLevelValue1", context.getProperties().get("jobLevelProperty1")); - } - - @Test - public void testGetBatchStatus() { - when(execution.getStatus()).thenReturn(BatchStatus.COMPLETED); - - assertEquals(jakarta.batch.runtime.BatchStatus.COMPLETED, context.getBatchStatus()); - } - - @Test - public void testExitStatus() { - context.setExitStatus("my exit status"); - verify(execution).setExitStatus(new ExitStatus("my exit status")); - - when(execution.getExitStatus()).thenReturn(new ExitStatus("exit")); - assertEquals("exit", context.getExitStatus()); - } - - @Test - public void testInitialNullExitStatus() { - when(execution.getExitStatus()).thenReturn(new ExitStatus("exit")); - assertEquals(null, context.getExitStatus()); - } -} diff --git a/spring-batch-core/src/test/java/org/springframework/batch/core/jsr/JsrJobExecutionTests.java b/spring-batch-core/src/test/java/org/springframework/batch/core/jsr/JsrJobExecutionTests.java deleted file mode 100644 index 8f9f81941..000000000 --- a/spring-batch-core/src/test/java/org/springframework/batch/core/jsr/JsrJobExecutionTests.java +++ /dev/null @@ -1,78 +0,0 @@ -/* - * Copyright 2014-2021 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.springframework.batch.core.jsr; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNull; - -import java.util.Date; -import java.util.Properties; - -import org.junit.Before; -import org.junit.Test; -import org.springframework.batch.core.BatchStatus; -import org.springframework.batch.core.ExitStatus; -import org.springframework.batch.core.JobInstance; -import org.springframework.batch.core.JobParameters; -import org.springframework.batch.core.JobParametersBuilder; -import org.springframework.batch.core.converter.JobParametersConverterSupport; - -public class JsrJobExecutionTests { - - private JsrJobExecution adapter; - - @Before - public void setUp() throws Exception { - JobInstance instance = new JobInstance(2L, "job name"); - - JobParameters params = new JobParametersBuilder().addString("key1", "value1").toJobParameters(); - - org.springframework.batch.core.JobExecution execution = new org.springframework.batch.core.JobExecution(instance, params); - - execution.setId(5L); - execution.setCreateTime(new Date(0)); - execution.setEndTime(new Date(999999999L)); - execution.setExitStatus(new ExitStatus("exit status")); - execution.setLastUpdated(new Date(12345)); - execution.setStartTime(new Date(98765)); - execution.setStatus(BatchStatus.FAILED); - execution.setVersion(21); - - adapter = new JsrJobExecution(execution, new JobParametersConverterSupport()); - } - - @Test(expected=IllegalArgumentException.class) - public void testCreateWithNull() { - adapter = new JsrJobExecution(null, new JobParametersConverterSupport()); - } - - @Test - public void testGetBasicValues() { - assertEquals(jakarta.batch.runtime.BatchStatus.FAILED, adapter.getBatchStatus()); - assertEquals(new Date(0), adapter.getCreateTime()); - assertEquals(new Date(999999999L), adapter.getEndTime()); - assertEquals(5L, adapter.getExecutionId()); - assertEquals("exit status", adapter.getExitStatus()); - assertEquals("job name", adapter.getJobName()); - assertEquals(new Date(12345), adapter.getLastUpdatedTime()); - assertEquals(new Date(98765), adapter.getStartTime()); - - Properties props = adapter.getJobParameters(); - - assertEquals("value1", props.get("key1")); - assertNull(props.get(JsrJobParametersConverter.JOB_RUN_ID)); - } -} diff --git a/spring-batch-core/src/test/java/org/springframework/batch/core/jsr/JsrJobParametersConverterTests.java b/spring-batch-core/src/test/java/org/springframework/batch/core/jsr/JsrJobParametersConverterTests.java deleted file mode 100644 index 0961106f8..000000000 --- a/spring-batch-core/src/test/java/org/springframework/batch/core/jsr/JsrJobParametersConverterTests.java +++ /dev/null @@ -1,126 +0,0 @@ -/* - * Copyright 2013-2014 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.springframework.batch.core.jsr; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertTrue; - -import java.util.Map.Entry; -import java.util.Properties; -import java.util.Set; - -import javax.sql.DataSource; - -import org.junit.Before; -import org.junit.BeforeClass; -import org.junit.Test; -import org.springframework.batch.core.JobParameters; -import org.springframework.batch.core.JobParametersBuilder; -import org.springframework.batch.core.PooledEmbeddedDataSource; -import org.springframework.jdbc.datasource.embedded.EmbeddedDatabaseBuilder; - -public class JsrJobParametersConverterTests { - - private JsrJobParametersConverter converter; - private static DataSource dataSource; - - @BeforeClass - public static void setupDatabase() { - dataSource = new PooledEmbeddedDataSource(new EmbeddedDatabaseBuilder(). - addScript("classpath:org/springframework/batch/core/schema-drop-hsqldb.sql"). - addScript("classpath:org/springframework/batch/core/schema-hsqldb.sql"). - build()); - } - - @Before - public void setUp() throws Exception { - converter = new JsrJobParametersConverter(dataSource); - converter.afterPropertiesSet(); - } - - @Test - public void testNullJobParameters() { - Properties props = converter.getProperties((JobParameters) null); - assertNotNull(props); - Set> properties = props.entrySet(); - assertEquals(1, properties.size()); - assertTrue(props.containsKey(JsrJobParametersConverter.JOB_RUN_ID)); - } - - @Test - public void testStringJobParameters() { - JobParameters parameters = new JobParametersBuilder().addString("key", "value", false).toJobParameters(); - Properties props = converter.getProperties(parameters); - assertNotNull(props); - Set> properties = props.entrySet(); - assertEquals(2, properties.size()); - assertTrue(props.containsKey(JsrJobParametersConverter.JOB_RUN_ID)); - assertEquals("value", props.getProperty("key")); - } - - @Test - public void testNonStringJobParameters() { - JobParameters parameters = new JobParametersBuilder().addLong("key", 5L, false).toJobParameters(); - Properties props = converter.getProperties(parameters); - assertNotNull(props); - Set> properties = props.entrySet(); - assertEquals(2, properties.size()); - assertTrue(props.containsKey(JsrJobParametersConverter.JOB_RUN_ID)); - assertEquals("5", props.getProperty("key")); - } - - @Test - public void testJobParametersWithRunId() { - JobParameters parameters = new JobParametersBuilder().addLong("key", 5L, false).addLong(JsrJobParametersConverter.JOB_RUN_ID, 2L).toJobParameters(); - Properties props = converter.getProperties(parameters); - assertNotNull(props); - Set> properties = props.entrySet(); - assertEquals(2, properties.size()); - assertEquals("2", props.getProperty(JsrJobParametersConverter.JOB_RUN_ID)); - assertEquals("5", props.getProperty("key")); - } - - @Test - public void testNullProperties() { - JobParameters parameters = converter.getJobParameters((Properties)null); - assertNotNull(parameters); - assertEquals(1, parameters.getParameters().size()); - assertTrue(parameters.getParameters().containsKey(JsrJobParametersConverter.JOB_RUN_ID)); - } - - @Test - public void testProperties() { - Properties properties = new Properties(); - properties.put("key", "value"); - JobParameters parameters = converter.getJobParameters(properties); - assertEquals(2, parameters.getParameters().size()); - assertEquals("value", parameters.getString("key")); - assertTrue(parameters.getParameters().containsKey(JsrJobParametersConverter.JOB_RUN_ID)); - } - - @Test - public void testPropertiesWithRunId() { - Properties properties = new Properties(); - properties.put("key", "value"); - properties.put(JsrJobParametersConverter.JOB_RUN_ID, "3"); - JobParameters parameters = converter.getJobParameters(properties); - assertEquals(2, parameters.getParameters().size()); - assertEquals("value", parameters.getString("key")); - assertEquals(Long.valueOf(3L), parameters.getLong(JsrJobParametersConverter.JOB_RUN_ID)); - assertTrue(parameters.getParameters().get(JsrJobParametersConverter.JOB_RUN_ID).isIdentifying()); - } -} diff --git a/spring-batch-core/src/test/java/org/springframework/batch/core/jsr/JsrStepContextFactoryBeanTests.java b/spring-batch-core/src/test/java/org/springframework/batch/core/jsr/JsrStepContextFactoryBeanTests.java deleted file mode 100644 index f8f567179..000000000 --- a/spring-batch-core/src/test/java/org/springframework/batch/core/jsr/JsrStepContextFactoryBeanTests.java +++ /dev/null @@ -1,203 +0,0 @@ -/* - * Copyright 2014-2021 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.springframework.batch.core.jsr; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; -import static org.mockito.Mockito.when; - -import java.util.ArrayList; -import java.util.HashSet; -import java.util.List; -import java.util.Properties; -import java.util.Set; -import java.util.concurrent.Callable; -import java.util.concurrent.Future; - -import jakarta.batch.runtime.context.StepContext; - -import org.junit.After; -import org.junit.Before; -import org.junit.BeforeClass; -import org.junit.Rule; -import org.junit.Test; -import org.mockito.Mock; -import org.mockito.junit.MockitoJUnit; -import org.mockito.junit.MockitoRule; -import org.springframework.batch.core.JobExecution; -import org.springframework.batch.core.StepExecution; -import org.springframework.batch.core.jsr.configuration.support.BatchPropertyContext; -import org.springframework.batch.core.scope.context.StepSynchronizationManager; -import org.springframework.beans.factory.FactoryBeanNotInitializedException; -import org.springframework.core.task.AsyncTaskExecutor; -import org.springframework.core.task.SimpleAsyncTaskExecutor; - -public class JsrStepContextFactoryBeanTests { - - @Rule - public MockitoRule rule = MockitoJUnit.rule().silent(); - - private JsrStepContextFactoryBean factory; - @Mock - private BatchPropertyContext propertyContext; - - /** - * Added to clean up left overs from other tests. - * @throws Exception - */ - @BeforeClass - public static void setUpClass() throws Exception { - StepSynchronizationManager.close(); - } - - @Before - public void setUp() throws Exception { - factory = new JsrStepContextFactoryBean(); - factory.setBatchPropertyContext(propertyContext); - } - - @After - public void tearDown() throws Exception { - StepSynchronizationManager.close(); - } - - @Test(expected=FactoryBeanNotInitializedException.class) - public void testNoStepExecutionRegistered() throws Exception { - factory.getObject(); - } - - @Test - public void getObjectSingleThread() throws Exception { - StepSynchronizationManager.register(new StepExecution("step1", new JobExecution(5L), 3L)); - - StepContext context1 = factory.getObject(); - StepContext context2 = factory.getObject(); - - assertTrue(context1 == context2); - assertEquals(3L, context1.getStepExecutionId()); - - StepSynchronizationManager.close(); - - StepSynchronizationManager.register(new StepExecution("step2", new JobExecution(5L), 2L)); - - StepContext context3 = factory.getObject(); - StepContext context4 = factory.getObject(); - - assertTrue(context3 == context4); - assertTrue(context3 != context2); - assertEquals(2L, context3.getStepExecutionId()); - - StepSynchronizationManager.close(); - } - - @Test - public void getObjectSingleThreadWithProperties() throws Exception { - Properties props = new Properties(); - props.put("key1", "value1"); - - when(propertyContext.getStepProperties("step3")).thenReturn(props); - - StepSynchronizationManager.register(new StepExecution("step3", new JobExecution(5L), 3L)); - - StepContext context1 = factory.getObject(); - StepContext context2 = factory.getObject(); - - assertTrue(context1 == context2); - assertEquals(3L, context1.getStepExecutionId()); - assertEquals("value1", context1.getProperties().get("key1")); - - StepSynchronizationManager.close(); - } - - @Test - public void getObjectMultiThread() throws Exception { - List> stepContexts = new ArrayList<>(); - - AsyncTaskExecutor executor = new SimpleAsyncTaskExecutor(); - - for(int i = 0; i < 4; i++) { - final long count = i; - stepContexts.add(executor.submit(new Callable() { - - @Override - public StepContext call() throws Exception { - try { - StepSynchronizationManager.register(new StepExecution("step" + count, new JobExecution(count))); - StepContext context = factory.getObject(); - Thread.sleep(1000L); - return context; - } catch (Throwable ignore) { - return null; - }finally { - StepSynchronizationManager.close(); - } - } - })); - } - - Set contexts = new HashSet<>(); - for (Future future : stepContexts) { - contexts.add(future.get()); - } - - assertEquals(4, contexts.size()); - } - - @Test - public void getObjectMultiThreadWithProperties() throws Exception { - for(int i = 0; i < 4; i++) { - Properties props = new Properties(); - props.put("step" + i, "step" + i + "value"); - - when(propertyContext.getStepProperties("step" + i)).thenReturn(props); - } - - List> stepContexts = new ArrayList<>(); - - AsyncTaskExecutor executor = new SimpleAsyncTaskExecutor(); - - for(int i = 0; i < 4; i++) { - final long count = i; - stepContexts.add(executor.submit(new Callable() { - - @Override - public StepContext call() throws Exception { - try { - StepSynchronizationManager.register(new StepExecution("step" + count, new JobExecution(count))); - StepContext context = factory.getObject(); - Thread.sleep(1000L); - return context; - } catch (Throwable ignore) { - return null; - }finally { - StepSynchronizationManager.close(); - } - } - })); - } - - Set contexts = new HashSet<>(); - for (Future future : stepContexts) { - contexts.add(future.get()); - } - - assertEquals(4, contexts.size()); - - for (StepContext stepContext : contexts) { - assertEquals(stepContext.getStepName() + "value", stepContext.getProperties().get(stepContext.getStepName())); - } - } -} diff --git a/spring-batch-core/src/test/java/org/springframework/batch/core/jsr/JsrStepContextTests.java b/spring-batch-core/src/test/java/org/springframework/batch/core/jsr/JsrStepContextTests.java deleted file mode 100644 index 9be1b6a84..000000000 --- a/spring-batch-core/src/test/java/org/springframework/batch/core/jsr/JsrStepContextTests.java +++ /dev/null @@ -1,158 +0,0 @@ -/* - * Copyright 2013-2021 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.springframework.batch.core.jsr; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNull; -import static org.junit.Assert.assertTrue; -import static org.junit.Assert.fail; - -import java.util.Properties; - -import jakarta.batch.runtime.Metric; -import jakarta.batch.runtime.context.StepContext; - -import org.junit.Before; -import org.junit.Test; -import org.springframework.batch.core.BatchStatus; -import org.springframework.batch.core.ExitStatus; -import org.springframework.batch.core.JobExecution; -import org.springframework.batch.core.JobParametersBuilder; -import org.springframework.batch.core.StepExecution; -import org.springframework.batch.item.ExecutionContext; -import org.springframework.batch.item.util.ExecutionContextUserSupport; -import org.springframework.util.ClassUtils; - -public class JsrStepContextTests { - - private StepExecution stepExecution; - private StepContext stepContext; - private ExecutionContext executionContext; - private ExecutionContextUserSupport executionContextUserSupport = new ExecutionContextUserSupport(ClassUtils.getShortName(JsrStepContext.class)); - - @Before - public void setUp() throws Exception { - JobExecution jobExecution = new JobExecution(1L, new JobParametersBuilder().addString("key", "value").toJobParameters()); - - stepExecution = new StepExecution("testStep", jobExecution); - stepExecution.setId(5L); - stepExecution.setStatus(BatchStatus.STARTED); - stepExecution.setExitStatus(new ExitStatus("customExitStatus")); - stepExecution.setCommitCount(1); - stepExecution.setFilterCount(2); - stepExecution.setProcessSkipCount(3); - stepExecution.setReadCount(4); - stepExecution.setReadSkipCount(5); - stepExecution.setRollbackCount(6); - stepExecution.setWriteCount(7); - stepExecution.setWriteSkipCount(8); - executionContext = new ExecutionContext(); - stepExecution.setExecutionContext(executionContext); - - Properties properties = new Properties(); - properties.put("key", "value"); - - stepContext = new JsrStepContext(stepExecution, properties); - stepContext.setTransientUserData("This is my transient data"); - } - - @Test - public void testBasicProperties() { - assertEquals(jakarta.batch.runtime.BatchStatus.STARTED, stepContext.getBatchStatus()); - assertEquals(null, stepContext.getExitStatus()); - stepContext.setExitStatus("customExitStatus"); - assertEquals("customExitStatus", stepContext.getExitStatus()); - assertEquals(5L, stepContext.getStepExecutionId()); - assertEquals("testStep", stepContext.getStepName()); - assertEquals("This is my transient data", stepContext.getTransientUserData()); - - Properties params = stepContext.getProperties(); - assertEquals("value", params.get("key")); - - Metric[] metrics = stepContext.getMetrics(); - - for (Metric metric : metrics) { - switch (metric.getType()) { - case COMMIT_COUNT: - assertEquals(1, metric.getValue()); - break; - case FILTER_COUNT: - assertEquals(2, metric.getValue()); - break; - case PROCESS_SKIP_COUNT: - assertEquals(3, metric.getValue()); - break; - case READ_COUNT: - assertEquals(4, metric.getValue()); - break; - case READ_SKIP_COUNT: - assertEquals(5, metric.getValue()); - break; - case ROLLBACK_COUNT: - assertEquals(6, metric.getValue()); - break; - case WRITE_COUNT: - assertEquals(7, metric.getValue()); - break; - case WRITE_SKIP_COUNT: - assertEquals(8, metric.getValue()); - break; - default: - fail("Invalid metric type"); - } - } - } - - @Test - public void testSetExitStatus() { - stepContext.setExitStatus("new Exit Status"); - assertEquals("new Exit Status", stepExecution.getExitStatus().getExitCode()); - } - - @Test - public void testPersistentUserData() { - String data = "saved data"; - stepContext.setPersistentUserData(data); - assertEquals(data, stepContext.getPersistentUserData()); - assertEquals(data, executionContext.get(executionContextUserSupport.getKey("batch_jsr_persistentUserData"))); - } - - @Test - public void testGetExceptionEmpty() { - assertNull(stepContext.getException()); - } - - @Test - public void testGetExceptionException() { - stepExecution.addFailureException(new Exception("expected")); - assertEquals("expected", stepContext.getException().getMessage()); - } - - @Test - public void testGetExceptionThrowable() { - stepExecution.addFailureException(new Throwable("expected")); - assertTrue(stepContext.getException().getMessage().endsWith("expected")); - } - - @Test - public void testGetExceptionMultiple() { - stepExecution.addFailureException(new Exception("not me")); - stepExecution.addFailureException(new Exception("not me either")); - stepExecution.addFailureException(new Exception("me")); - - assertEquals("me", stepContext.getException().getMessage()); - } -} diff --git a/spring-batch-core/src/test/java/org/springframework/batch/core/jsr/JsrStepExecutionTests.java b/spring-batch-core/src/test/java/org/springframework/batch/core/jsr/JsrStepExecutionTests.java deleted file mode 100644 index c437e6af6..000000000 --- a/spring-batch-core/src/test/java/org/springframework/batch/core/jsr/JsrStepExecutionTests.java +++ /dev/null @@ -1,121 +0,0 @@ -/* - * Copyright 2014-2021 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.springframework.batch.core.jsr; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNull; -import static org.junit.Assert.fail; - -import java.util.Date; - -import jakarta.batch.runtime.Metric; - -import org.junit.Before; -import org.junit.Test; -import org.springframework.batch.core.BatchStatus; -import org.springframework.batch.core.ExitStatus; -import org.springframework.batch.core.JobExecution; -import org.springframework.batch.core.JobParametersBuilder; -import org.springframework.batch.core.StepExecution; -import org.springframework.batch.item.util.ExecutionContextUserSupport; -import org.springframework.util.ClassUtils; - -public class JsrStepExecutionTests { - - private StepExecution stepExecution; - private jakarta.batch.runtime.StepExecution jsrStepExecution; - //The API that sets the persisted user data is on the JsrStepContext so the key within the ExecutionContext is JsrStepContext - private ExecutionContextUserSupport executionContextUserSupport = new ExecutionContextUserSupport(ClassUtils.getShortName(JsrStepContext.class)); - - @Before - public void setUp() throws Exception { - JobExecution jobExecution = new JobExecution(1L, new JobParametersBuilder().addString("key", "value").toJobParameters()); - - stepExecution = new StepExecution("testStep", jobExecution); - stepExecution.setId(5L); - stepExecution.setStatus(BatchStatus.STARTED); - stepExecution.setExitStatus(new ExitStatus("customExitStatus")); - stepExecution.setCommitCount(1); - stepExecution.setFilterCount(2); - stepExecution.setProcessSkipCount(3); - stepExecution.setReadCount(4); - stepExecution.setReadSkipCount(5); - stepExecution.setRollbackCount(6); - stepExecution.setWriteCount(7); - stepExecution.setWriteSkipCount(8); - stepExecution.setStartTime(new Date(0)); - stepExecution.setEndTime(new Date(10000000)); - stepExecution.getExecutionContext().put(executionContextUserSupport.getKey("batch_jsr_persistentUserData"), "persisted data"); - - jsrStepExecution = new JsrStepExecution(stepExecution); - } - - @Test(expected=IllegalArgumentException.class) - public void testWithNullStepExecution() { - new JsrStepExecution(null); - } - - @Test - public void testNullExitStatus() { - stepExecution.setExitStatus(null); - - assertNull(jsrStepExecution.getExitStatus()); - } - - @Test - public void testBaseValues() { - assertEquals(5L, jsrStepExecution.getStepExecutionId()); - assertEquals("testStep", jsrStepExecution.getStepName()); - assertEquals(jakarta.batch.runtime.BatchStatus.STARTED, jsrStepExecution.getBatchStatus()); - assertEquals(new Date(0), jsrStepExecution.getStartTime()); - assertEquals(new Date(10000000), jsrStepExecution.getEndTime()); - assertEquals("customExitStatus", jsrStepExecution.getExitStatus()); - assertEquals("persisted data", jsrStepExecution.getPersistentUserData()); - - Metric[] metrics = jsrStepExecution.getMetrics(); - - for (Metric metric : metrics) { - switch (metric.getType()) { - case COMMIT_COUNT: - assertEquals(1, metric.getValue()); - break; - case FILTER_COUNT: - assertEquals(2, metric.getValue()); - break; - case PROCESS_SKIP_COUNT: - assertEquals(3, metric.getValue()); - break; - case READ_COUNT: - assertEquals(4, metric.getValue()); - break; - case READ_SKIP_COUNT: - assertEquals(5, metric.getValue()); - break; - case ROLLBACK_COUNT: - assertEquals(6, metric.getValue()); - break; - case WRITE_COUNT: - assertEquals(7, metric.getValue()); - break; - case WRITE_SKIP_COUNT: - assertEquals(8, metric.getValue()); - break; - default: - fail("Invalid metric type"); - } - } - } -} diff --git a/spring-batch-core/src/test/java/org/springframework/batch/core/jsr/SimpleMetricTests.java b/spring-batch-core/src/test/java/org/springframework/batch/core/jsr/SimpleMetricTests.java deleted file mode 100644 index 2758e7199..000000000 --- a/spring-batch-core/src/test/java/org/springframework/batch/core/jsr/SimpleMetricTests.java +++ /dev/null @@ -1,39 +0,0 @@ -/* - * Copyright 2013-2021 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.springframework.batch.core.jsr; - -import static org.junit.Assert.assertEquals; - -import jakarta.batch.runtime.Metric; -import jakarta.batch.runtime.Metric.MetricType; - -import org.junit.Test; - -public class SimpleMetricTests { - - @Test(expected=IllegalArgumentException.class) - public void testNullType() { - new SimpleMetric(null, 0); - } - - @Test - public void test() { - Metric metric = new SimpleMetric(MetricType.FILTER_COUNT, 3); - - assertEquals(3, metric.getValue()); - assertEquals(MetricType.FILTER_COUNT, metric.getType()); - } -} diff --git a/spring-batch-core/src/test/java/org/springframework/batch/core/jsr/StepListenerAdapterTests.java b/spring-batch-core/src/test/java/org/springframework/batch/core/jsr/StepListenerAdapterTests.java deleted file mode 100644 index 10666c9a6..000000000 --- a/spring-batch-core/src/test/java/org/springframework/batch/core/jsr/StepListenerAdapterTests.java +++ /dev/null @@ -1,86 +0,0 @@ -/* - * Copyright 2013-2021 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.springframework.batch.core.jsr; - -import static org.junit.Assert.assertEquals; -import static org.mockito.Mockito.doThrow; -import static org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; - -import jakarta.batch.api.listener.StepListener; -import jakarta.batch.operations.BatchRuntimeException; - -import org.junit.Before; -import org.junit.Rule; -import org.junit.Test; -import org.mockito.Mock; -import org.mockito.junit.MockitoJUnit; -import org.mockito.junit.MockitoRule; -import org.springframework.batch.core.ExitStatus; -import org.springframework.batch.core.StepExecution; - -public class StepListenerAdapterTests { - - @Rule - public MockitoRule rule = MockitoJUnit.rule().silent(); - - private StepListenerAdapter adapter; - @Mock - private StepListener delegate; - @Mock - private StepExecution execution; - - @Before - public void setUp() throws Exception { - adapter = new StepListenerAdapter(delegate); - } - - @Test(expected=IllegalArgumentException.class) - public void testCreateWithNull() { - adapter = new StepListenerAdapter(null); - } - - @Test - public void testBeforeStep() throws Exception { - adapter.beforeStep(null); - - verify(delegate).beforeStep(); - } - - @Test(expected=BatchRuntimeException.class) - public void testBeforeStepException() throws Exception { - doThrow(new Exception("expected")).when(delegate).beforeStep(); - - adapter.beforeStep(null); - } - - @Test - public void testAfterStep() throws Exception { - ExitStatus exitStatus = new ExitStatus("complete"); - when(execution.getExitStatus()).thenReturn(exitStatus); - - assertEquals(exitStatus, adapter.afterStep(execution)); - - verify(delegate).afterStep(); - } - - @Test(expected=BatchRuntimeException.class) - public void testAfterStepException() throws Exception { - doThrow(new Exception("expected")).when(delegate).afterStep(); - - adapter.afterStep(null); - } -} diff --git a/spring-batch-core/src/test/java/org/springframework/batch/core/jsr/configuration/support/BatchPropertyContextTests.java b/spring-batch-core/src/test/java/org/springframework/batch/core/jsr/configuration/support/BatchPropertyContextTests.java deleted file mode 100644 index 53aa50982..000000000 --- a/spring-batch-core/src/test/java/org/springframework/batch/core/jsr/configuration/support/BatchPropertyContextTests.java +++ /dev/null @@ -1,205 +0,0 @@ -/* - * Copyright 2013-2021 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.springframework.batch.core.jsr.configuration.support; - -import static org.junit.Assert.assertEquals; - -import java.util.Collections; -import java.util.HashMap; -import java.util.Map; -import java.util.Properties; - -import org.junit.Before; -import org.junit.Test; - -/** - *

- * Test cases around {@link BatchPropertyContext}. - *

- * - * @author Chris Schaefer - */ -public class BatchPropertyContextTests { - private Properties jobProperties = new Properties(); - private Map stepProperties = new HashMap<>(); - private Map artifactProperties = new HashMap<>(); - private Map> partitionProperties = new HashMap<>(); - private Map> stepArtifactProperties = new HashMap<>(); - - @SuppressWarnings("serial") - @Before - public void setUp() { - Properties step1Properties = new Properties(); - step1Properties.setProperty("step1PropertyName1", "step1PropertyValue1"); - step1Properties.setProperty("step1PropertyName2", "step1PropertyValue2"); - this.stepProperties.put("step1", step1Properties); - - Properties step2Properties = new Properties(); - step2Properties.setProperty("step2PropertyName1", "step2PropertyValue1"); - step2Properties.setProperty("step2PropertyName2", "step2PropertyValue2"); - this.stepProperties.put("step2", step2Properties); - - Properties jobProperties = new Properties(); - jobProperties.setProperty("jobProperty1", "jobProperty1value"); - jobProperties.setProperty("jobProperty2", "jobProperty2value"); - this.jobProperties.putAll(jobProperties); - - Properties artifactProperties = new Properties(); - artifactProperties.setProperty("deciderProperty1", "deciderProperty1value"); - artifactProperties.setProperty("deciderProperty2", "deciderProperty2value"); - this.artifactProperties.put("decider1", artifactProperties); - - final Properties stepArtifactProperties = new Properties(); - stepArtifactProperties.setProperty("readerProperty1", "readerProperty1value"); - stepArtifactProperties.setProperty("readerProperty2", "readerProperty2value"); - - this.stepArtifactProperties.put("step1", Collections.singletonMap("reader", stepArtifactProperties)); - - final Properties partitionProperties = new Properties(); - partitionProperties.setProperty("writerProperty1", "writerProperty1valuePartition0"); - partitionProperties.setProperty("writerProperty2", "writerProperty2valuePartition0"); - - this.partitionProperties.put("step2:partition0", Collections.singletonMap("writer", partitionProperties)); - - final Properties partitionStepProperties = new Properties(); - partitionStepProperties.setProperty("writerProperty1Step", "writerProperty1"); - partitionStepProperties.setProperty("writerProperty2Step", "writerProperty2"); - - this.partitionProperties.put("step2", Collections.singletonMap("writer", partitionStepProperties)); - } - - @Test - public void testStepLevelProperties() { - BatchPropertyContext batchPropertyContext = new BatchPropertyContext(); - batchPropertyContext.setJobProperties(jobProperties); - batchPropertyContext.setStepProperties(stepProperties); - - Properties step1Properties = batchPropertyContext.getStepProperties("step1"); - assertEquals(2, step1Properties.size()); - assertEquals("step1PropertyValue1", step1Properties.getProperty("step1PropertyName1")); - assertEquals("step1PropertyValue2", step1Properties.getProperty("step1PropertyName2")); - - Properties step2Properties = batchPropertyContext.getStepProperties("step2"); - assertEquals(2, step2Properties.size()); - assertEquals("step2PropertyValue1", step2Properties.getProperty("step2PropertyName1")); - assertEquals("step2PropertyValue2", step2Properties.getProperty("step2PropertyName2")); - } - - @Test - public void testJobLevelProperties() { - BatchPropertyContext batchPropertyContext = new BatchPropertyContext(); - batchPropertyContext.setJobProperties(jobProperties); - - Properties jobProperties = batchPropertyContext.getJobProperties(); - assertEquals(2, jobProperties.size()); - assertEquals("jobProperty1value", jobProperties.getProperty("jobProperty1")); - assertEquals("jobProperty2value", jobProperties.getProperty("jobProperty2")); - } - - @Test - public void testAddPropertiesToExistingStep() { - BatchPropertyContext batchPropertyContext = new BatchPropertyContext(); - batchPropertyContext.setJobProperties(jobProperties); - batchPropertyContext.setStepProperties(stepProperties); - - Properties step1 = batchPropertyContext.getStepProperties("step1"); - assertEquals(2, step1.size()); - assertEquals("step1PropertyValue1", step1.getProperty("step1PropertyName1")); - assertEquals("step1PropertyValue2", step1.getProperty("step1PropertyName2")); - - Properties step1properties = new Properties(); - step1properties.setProperty("newStep1PropertyName", "newStep1PropertyValue"); - - batchPropertyContext.setStepProperties("step1", step1properties); - - Properties step1updated = batchPropertyContext.getStepProperties("step1"); - assertEquals(3, step1updated.size()); - assertEquals("step1PropertyValue1", step1updated.getProperty("step1PropertyName1")); - assertEquals("step1PropertyValue2", step1updated.getProperty("step1PropertyName2")); - assertEquals("newStep1PropertyValue", step1updated.getProperty("newStep1PropertyName")); - } - - @Test - public void testNonStepLevelArtifactProperties() { - BatchPropertyContext batchPropertyContext = new BatchPropertyContext(); - batchPropertyContext.setJobProperties(jobProperties); - batchPropertyContext.setArtifactProperties(artifactProperties); - batchPropertyContext.setStepProperties(stepProperties); - - Properties artifactProperties = batchPropertyContext.getArtifactProperties("decider1"); - assertEquals(2, artifactProperties.size()); - assertEquals("deciderProperty1value", artifactProperties.getProperty("deciderProperty1")); - assertEquals("deciderProperty2value", artifactProperties.getProperty("deciderProperty2")); - } - - @Test - public void testStepLevelArtifactProperties() { - BatchPropertyContext batchPropertyContext = new BatchPropertyContext(); - batchPropertyContext.setJobProperties(jobProperties); - batchPropertyContext.setArtifactProperties(artifactProperties); - batchPropertyContext.setStepProperties(stepProperties); - batchPropertyContext.setStepArtifactProperties(stepArtifactProperties); - - Properties artifactProperties = batchPropertyContext.getStepArtifactProperties("step1", "reader"); - assertEquals(4, artifactProperties.size()); - assertEquals("readerProperty1value", artifactProperties.getProperty("readerProperty1")); - assertEquals("readerProperty2value", artifactProperties.getProperty("readerProperty2")); - assertEquals("step1PropertyValue1", artifactProperties.getProperty("step1PropertyName1")); - assertEquals("step1PropertyValue2", artifactProperties.getProperty("step1PropertyName2")); - } - - @Test - public void testArtifactNonOverridingJobProperties() { - BatchPropertyContext batchPropertyContext = new BatchPropertyContext(); - batchPropertyContext.setJobProperties(jobProperties); - batchPropertyContext.setArtifactProperties(artifactProperties); - - Properties jobProperties = new Properties(); - jobProperties.setProperty("deciderProperty1", "decider1PropertyOverride"); - - batchPropertyContext.setJobProperties(jobProperties); - - Properties step1 = batchPropertyContext.getArtifactProperties("decider1"); - assertEquals(2, step1.size()); - assertEquals("deciderProperty1value", step1.getProperty("deciderProperty1")); - assertEquals("deciderProperty2value", step1.getProperty("deciderProperty2")); - - Properties job = batchPropertyContext.getJobProperties(); - assertEquals(3, job.size()); - assertEquals("decider1PropertyOverride", job.getProperty("deciderProperty1")); - assertEquals("jobProperty1value", job.getProperty("jobProperty1")); - assertEquals("jobProperty2value", job.getProperty("jobProperty2")); - } - - @Test - public void testPartitionProperties() { - BatchPropertyContext batchPropertyContext = new BatchPropertyContext(); - batchPropertyContext.setJobProperties(jobProperties); - batchPropertyContext.setArtifactProperties(artifactProperties); - batchPropertyContext.setStepProperties(stepProperties); - batchPropertyContext.setStepArtifactProperties(stepArtifactProperties); - batchPropertyContext.setStepArtifactProperties(partitionProperties); - - Properties artifactProperties = batchPropertyContext.getStepArtifactProperties("step2:partition0", "writer"); - assertEquals(6, artifactProperties.size()); - assertEquals("writerProperty1", artifactProperties.getProperty("writerProperty1Step")); - assertEquals("writerProperty2", artifactProperties.getProperty("writerProperty2Step")); - assertEquals("writerProperty1valuePartition0", artifactProperties.getProperty("writerProperty1")); - assertEquals("writerProperty2valuePartition0", artifactProperties.getProperty("writerProperty2")); - assertEquals("step2PropertyValue1", artifactProperties.getProperty("step2PropertyName1")); - assertEquals("step2PropertyValue2", artifactProperties.getProperty("step2PropertyName2")); - } -} diff --git a/spring-batch-core/src/test/java/org/springframework/batch/core/jsr/configuration/xml/BatchParserTests.java b/spring-batch-core/src/test/java/org/springframework/batch/core/jsr/configuration/xml/BatchParserTests.java deleted file mode 100644 index 407d0c607..000000000 --- a/spring-batch-core/src/test/java/org/springframework/batch/core/jsr/configuration/xml/BatchParserTests.java +++ /dev/null @@ -1,101 +0,0 @@ -/* - * Copyright 2013 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.springframework.batch.core.jsr.configuration.xml; - -import org.junit.Test; -import org.springframework.batch.core.JobExecution; -import org.springframework.batch.core.StepExecution; -import org.springframework.batch.core.configuration.xml.DummyItemProcessor; -import org.springframework.batch.core.scope.StepScope; -import org.springframework.batch.core.scope.context.StepSynchronizationManager; -import org.springframework.batch.item.ItemProcessor; -import org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor; -import org.springframework.beans.factory.support.GenericBeanDefinition; -import org.springframework.core.io.ClassPathResource; -import org.springframework.core.io.Resource; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertTrue; - -public class BatchParserTests { - - @Test - @SuppressWarnings("unchecked") - public void testRoseyScenario() throws Exception { - JsrXmlApplicationContext context = new JsrXmlApplicationContext(); - Resource batchXml = new ClassPathResource("/org/springframework/batch/core/jsr/configuration/xml/batch.xml"); - context.setValidating(false); - context.load(batchXml); - - GenericBeanDefinition stepScope = new GenericBeanDefinition(); - stepScope.setBeanClass(StepScope.class); - context.registerBeanDefinition("stepScope", stepScope); - - GenericBeanDefinition bd = new GenericBeanDefinition(); - bd.setBeanClass(AutowiredAnnotationBeanPostProcessor.class); - context.registerBeanDefinition("postProcessor", bd); - context.refresh(); - - ItemProcessor itemProcessor = context.getBean(ItemProcessor.class); - - assertNotNull(itemProcessor); - StepSynchronizationManager.register(new StepExecution("step1", new JobExecution(5l))); - assertEquals("Test", itemProcessor.process("Test")); - StepSynchronizationManager.close(); - - context.close(); - } - - @Test - @SuppressWarnings("unchecked") - public void testOverrideBeansFirst() throws Exception { - JsrXmlApplicationContext context = new JsrXmlApplicationContext(); - Resource overrideXml = new ClassPathResource("/org/springframework/batch/core/jsr/configuration/xml/override_batch.xml"); - Resource batchXml = new ClassPathResource("/org/springframework/batch/core/jsr/configuration/xml/batch.xml"); - - context.setValidating(false); - context.load(overrideXml, batchXml); - context.refresh(); - - ItemProcessor itemProcessor = context.getBean("itemProcessor", ItemProcessor.class); - - assertNotNull(itemProcessor); - StepSynchronizationManager.register(new StepExecution("step1", new JobExecution(5l))); - assertEquals("Test", itemProcessor.process("Test")); - StepSynchronizationManager.close(); - - context.close(); - } - - @Test - @SuppressWarnings({"resource", "rawtypes"}) - public void testOverrideBeansLast() { - JsrXmlApplicationContext context = new JsrXmlApplicationContext(); - Resource overrideXml = new ClassPathResource("/org/springframework/batch/core/jsr/configuration/xml/override_batch.xml"); - Resource batchXml = new ClassPathResource("/org/springframework/batch/core/jsr/configuration/xml/batch.xml"); - - context.setValidating(false); - context.load(batchXml, overrideXml); - context.refresh(); - - ItemProcessor processor = (ItemProcessor) context.getBean("itemProcessor"); - - assertNotNull(processor); - assertTrue(processor instanceof DummyItemProcessor); - context.close(); - } -} diff --git a/spring-batch-core/src/test/java/org/springframework/batch/core/jsr/configuration/xml/ChunkListenerParsingTests.java b/spring-batch-core/src/test/java/org/springframework/batch/core/jsr/configuration/xml/ChunkListenerParsingTests.java deleted file mode 100644 index 3165d1681..000000000 --- a/spring-batch-core/src/test/java/org/springframework/batch/core/jsr/configuration/xml/ChunkListenerParsingTests.java +++ /dev/null @@ -1,117 +0,0 @@ -/* - * Copyright 2013-2021 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.springframework.batch.core.jsr.configuration.xml; - -import static org.junit.Assert.assertEquals; - -import java.util.List; - -import jakarta.batch.api.chunk.AbstractItemWriter; - -import org.junit.Test; -import org.junit.runner.RunWith; -import org.springframework.batch.core.BatchStatus; -import org.springframework.batch.core.ChunkListener; -import org.springframework.batch.core.Job; -import org.springframework.batch.core.JobExecution; -import org.springframework.batch.core.JobParameters; -import org.springframework.batch.core.launch.JobLauncher; -import org.springframework.batch.core.scope.context.ChunkContext; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.test.context.ContextConfiguration; -import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; - -@ContextConfiguration -@RunWith(SpringJUnit4ClassRunner.class) -public class ChunkListenerParsingTests { - - @Autowired - public Job job; - - @Autowired - public JobLauncher jobLauncher; - - @Autowired - public SpringChunkListener springChunkListener; - - @Autowired - public JsrChunkListener jsrChunkListener; - - @Test - public void test() throws Exception { - JobExecution execution = jobLauncher.run(job, new JobParameters()); - assertEquals(BatchStatus.FAILED, execution.getStatus()); - assertEquals(3, execution.getStepExecutions().size()); - assertEquals(4, springChunkListener.beforeChunkCount); - assertEquals(3, springChunkListener.afterChunkCount); - assertEquals(4, jsrChunkListener.beforeChunkCount); - assertEquals(3, jsrChunkListener.afterChunkCount); - assertEquals(1, springChunkListener.afterChunkErrorCount); - assertEquals(1, jsrChunkListener.afterChunkErrorCount); - } - - public static class SpringChunkListener implements ChunkListener { - - protected int beforeChunkCount = 0; - protected int afterChunkCount = 0; - protected int afterChunkErrorCount = 0; - - @Override - public void beforeChunk(ChunkContext context) { - beforeChunkCount++; - } - - @Override - public void afterChunk(ChunkContext context) { - afterChunkCount++; - } - - @Override - public void afterChunkError(ChunkContext context) { - afterChunkErrorCount++; - } - } - - public static class JsrChunkListener implements jakarta.batch.api.chunk.listener.ChunkListener { - - protected int beforeChunkCount = 0; - protected int afterChunkCount = 0; - protected int afterChunkErrorCount = 0; - - @Override - public void beforeChunk() throws Exception { - beforeChunkCount++; - } - - @Override - public void onError(Exception ex) throws Exception { - afterChunkErrorCount++; - } - - @Override - public void afterChunk() throws Exception { - afterChunkCount++; - } - } - - public static class ErrorThrowingItemWriter extends AbstractItemWriter { - - @Override - public void writeItems(List items) throws Exception { - throw new Exception("This should cause the rollback"); - } - } -} diff --git a/spring-batch-core/src/test/java/org/springframework/batch/core/jsr/configuration/xml/CountingItemProcessor.java b/spring-batch-core/src/test/java/org/springframework/batch/core/jsr/configuration/xml/CountingItemProcessor.java deleted file mode 100644 index 1921160e1..000000000 --- a/spring-batch-core/src/test/java/org/springframework/batch/core/jsr/configuration/xml/CountingItemProcessor.java +++ /dev/null @@ -1,29 +0,0 @@ -/* - * Copyright 2013-2021 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.springframework.batch.core.jsr.configuration.xml; - -import jakarta.batch.api.chunk.ItemProcessor; - - -public class CountingItemProcessor implements ItemProcessor { - protected int count = 0; - - @Override - public Object processItem(Object item) throws Exception { - count++; - return item; - } -} diff --git a/spring-batch-core/src/test/java/org/springframework/batch/core/jsr/configuration/xml/CustomWiredJsrJobOperatorTests.java b/spring-batch-core/src/test/java/org/springframework/batch/core/jsr/configuration/xml/CustomWiredJsrJobOperatorTests.java deleted file mode 100644 index 8da8c5e14..000000000 --- a/spring-batch-core/src/test/java/org/springframework/batch/core/jsr/configuration/xml/CustomWiredJsrJobOperatorTests.java +++ /dev/null @@ -1,62 +0,0 @@ -/* - * Copyright 2014-2021 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.springframework.batch.core.jsr.configuration.xml; - -import java.util.Date; -import java.util.Properties; -import java.util.concurrent.TimeoutException; - -import jakarta.batch.operations.JobOperator; -import jakarta.batch.runtime.BatchStatus; -import jakarta.batch.runtime.JobExecution; - -import org.junit.Test; -import org.junit.runner.RunWith; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.test.context.ContextConfiguration; -import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; - -/** - * @author Michael Minella - * @author Mahmoud Ben Hassine - */ -@RunWith(SpringJUnit4ClassRunner.class) -@ContextConfiguration -public class CustomWiredJsrJobOperatorTests { - - @Autowired - JobOperator jobOperator; - - @Test - public void testRunningJobWithManuallyWiredJsrJobOperator() throws Exception { - Date startTime = new Date(); - long jobExecutionId = jobOperator.start("jsrJobOperatorTestJob", new Properties()); - - JobExecution jobExecution = jobOperator.getJobExecution(jobExecutionId); - - long timeout = startTime.getTime() + 10000; - - while(!jobExecution.getBatchStatus().equals(BatchStatus.COMPLETED)) { - Thread.sleep(500); - jobExecution = jobOperator.getJobExecution(jobExecutionId); - - if(new Date().getTime() > timeout) { - throw new TimeoutException("Job didn't finish within 10 seconds"); - } - } - } -} diff --git a/spring-batch-core/src/test/java/org/springframework/batch/core/jsr/configuration/xml/DecisionStepFactoryBeanTests.java b/spring-batch-core/src/test/java/org/springframework/batch/core/jsr/configuration/xml/DecisionStepFactoryBeanTests.java deleted file mode 100644 index ca95920f2..000000000 --- a/spring-batch-core/src/test/java/org/springframework/batch/core/jsr/configuration/xml/DecisionStepFactoryBeanTests.java +++ /dev/null @@ -1,85 +0,0 @@ -/* - * Copyright 2013-2021 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.springframework.batch.core.jsr.configuration.xml; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; - -import jakarta.batch.api.Decider; -import jakarta.batch.runtime.StepExecution; - -import org.junit.Before; -import org.junit.Test; -import org.springframework.batch.core.Step; -import org.springframework.batch.core.jsr.step.DecisionStep; - -public class DecisionStepFactoryBeanTests { - - private DecisionStepFactoryBean factoryBean; - - @Before - public void setUp() throws Exception { - factoryBean = new DecisionStepFactoryBean(); - } - - @Test - public void testGetObjectType() { - assertEquals(DecisionStep.class, factoryBean.getObjectType()); - } - - @Test - public void testIsSingleton() { - assertTrue(factoryBean.isSingleton()); - } - - @Test(expected=IllegalArgumentException.class) - public void testNullDeciderAndName() throws Exception { - factoryBean.afterPropertiesSet(); - } - - @Test(expected=IllegalArgumentException.class) - public void testNullDecider() throws Exception{ - factoryBean.setName("state1"); - factoryBean.afterPropertiesSet(); - } - - @Test(expected=IllegalArgumentException.class) - public void testNullName() throws Exception { - factoryBean.setDecider(new DeciderSupport()); - factoryBean.afterPropertiesSet(); - } - - @Test - public void testDeciderDeciderState() throws Exception { - factoryBean.setDecider(new DeciderSupport()); - factoryBean.setName("IL"); - - factoryBean.afterPropertiesSet(); - - Step step = factoryBean.getObject(); - - assertEquals("IL", step.getName()); - assertEquals(DecisionStep.class, step.getClass()); - } - - public static class DeciderSupport implements Decider { - - @Override - public String decide(StepExecution[] executions) throws Exception { - return null; - } - } -} diff --git a/spring-batch-core/src/test/java/org/springframework/batch/core/jsr/configuration/xml/ExceptionHandlingParsingTests.java b/spring-batch-core/src/test/java/org/springframework/batch/core/jsr/configuration/xml/ExceptionHandlingParsingTests.java deleted file mode 100644 index b9f05ab73..000000000 --- a/spring-batch-core/src/test/java/org/springframework/batch/core/jsr/configuration/xml/ExceptionHandlingParsingTests.java +++ /dev/null @@ -1,111 +0,0 @@ -/* - * Copyright 2013-2021 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.springframework.batch.core.jsr.configuration.xml; - -import org.junit.Test; -import org.springframework.batch.core.jsr.AbstractJsrTestCase; - -import jakarta.batch.api.BatchProperty; -import jakarta.batch.api.chunk.ItemProcessor; -import jakarta.batch.operations.JobOperator; -import jakarta.batch.runtime.BatchRuntime; -import jakarta.batch.runtime.BatchStatus; -import jakarta.batch.runtime.JobExecution; -import jakarta.batch.runtime.Metric; -import jakarta.batch.runtime.StepExecution; -import jakarta.inject.Inject; -import java.util.List; -import java.util.Properties; - -import static org.junit.Assert.assertEquals; - -public class ExceptionHandlingParsingTests extends AbstractJsrTestCase { - - @Test - public void testSkippable() throws Exception { - JobOperator jobOperator = BatchRuntime.getJobOperator(); - - Properties jobParameters = new Properties(); - jobParameters.setProperty("run", "1"); - JobExecution execution1 = runJob("ExceptionHandlingParsingTests-context", jobParameters, 10000l); - - List stepExecutions = jobOperator.getStepExecutions(execution1.getExecutionId()); - assertEquals(BatchStatus.FAILED, execution1.getBatchStatus()); - assertEquals(1, stepExecutions.size()); - assertEquals(1, getMetric(stepExecutions.get(0), Metric.MetricType.PROCESS_SKIP_COUNT).getValue()); - - jobParameters = new Properties(); - jobParameters.setProperty("run", "2"); - JobExecution execution2 = restartJob(execution1.getExecutionId(), jobParameters, 10000l); - stepExecutions = jobOperator.getStepExecutions(execution2.getExecutionId()); - assertEquals(BatchStatus.FAILED, execution2.getBatchStatus()); - assertEquals(2, stepExecutions.size()); - - jobParameters = new Properties(); - jobParameters.setProperty("run", "3"); - JobExecution execution3 = restartJob(execution2.getExecutionId(), jobParameters, 10000l); - stepExecutions = jobOperator.getStepExecutions(execution3.getExecutionId()); - assertEquals(BatchStatus.COMPLETED, execution3.getBatchStatus()); - assertEquals(2, stepExecutions.size()); - - assertEquals(0, getMetric(stepExecutions.get(1), Metric.MetricType.ROLLBACK_COUNT).getValue()); - - jobParameters = new Properties(); - jobParameters.setProperty("run", "4"); - JobExecution execution4 = runJob("ExceptionHandlingParsingTests-context", jobParameters, 10000l); - stepExecutions = jobOperator.getStepExecutions(execution4.getExecutionId()); - assertEquals(BatchStatus.COMPLETED, execution4.getBatchStatus()); - assertEquals(3, stepExecutions.size()); - } - - public static class ProblemProcessor implements ItemProcessor { - - @Inject - @BatchProperty - private String runId = "0"; - - private boolean hasRetried = false; - - private void throwException(Object item) throws Exception { - int runId = Integer.parseInt(this.runId); - - if(runId == 1) { - if(item.equals("One")) { - throw new Exception("skip me"); - } else if(item.equals("Two")){ - throw new RuntimeException("But don't skip me"); - } - } else if(runId == 2) { - if(item.equals("Three") && !hasRetried) { - hasRetried = true; - throw new Exception("retry me"); - } else if(item.equals("Four")){ - throw new RuntimeException("But don't retry me"); - } - } else if(runId == 3) { - if(item.equals("Five")) { - throw new Exception("Don't rollback on my account"); - } - } - } - - @Override - public Object processItem(Object item) throws Exception { - throwException(item); - return item; - } - } -} diff --git a/spring-batch-core/src/test/java/org/springframework/batch/core/jsr/configuration/xml/FlowParserTests.java b/spring-batch-core/src/test/java/org/springframework/batch/core/jsr/configuration/xml/FlowParserTests.java deleted file mode 100644 index eb202deba..000000000 --- a/spring-batch-core/src/test/java/org/springframework/batch/core/jsr/configuration/xml/FlowParserTests.java +++ /dev/null @@ -1,125 +0,0 @@ -/* - * Copyright 2013-2021 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.springframework.batch.core.jsr.configuration.xml; - -import org.junit.Test; -import org.springframework.batch.core.ExitStatus; -import org.springframework.batch.core.jsr.AbstractJsrTestCase; - -import jakarta.batch.api.AbstractBatchlet; -import jakarta.batch.operations.JobOperator; -import jakarta.batch.runtime.BatchRuntime; -import jakarta.batch.runtime.JobExecution; -import jakarta.batch.runtime.StepExecution; -import jakarta.batch.runtime.context.StepContext; -import jakarta.inject.Inject; -import java.util.List; -import java.util.Properties; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; - -/** - *

- * Unit tests around {@link FlowParser}. - *

- * - * @author Chris Schaefer - * @author Mahmoud Ben Hassine - * @since 3.0 - */ -public class FlowParserTests extends AbstractJsrTestCase { - @Test - public void testDuplicateTransitionPatternsAllowed() throws Exception { - JobExecution stoppedExecution = runJob("FlowParserTests-context", new Properties(), 10000L); - assertEquals(ExitStatus.STOPPED.getExitCode(), stoppedExecution.getExitStatus()); - - JobExecution endedExecution = restartJob(stoppedExecution.getExecutionId(), new Properties(), 10000L); - assertEquals(ExitStatus.COMPLETED.getExitCode(), endedExecution.getExitStatus()); - } - - @Test - public void testWildcardAddedLastWhenUsedWithNextAttrAndNoTransitionElements() throws Exception { - JobExecution jobExecution = runJob("FlowParserTestsWildcardAndNextAttrJob", new Properties(), 1000L); - assertEquals(ExitStatus.FAILED.getExitCode(), jobExecution.getExitStatus()); - - JobOperator jobOperator = BatchRuntime.getJobOperator(); - List stepExecutions = jobOperator.getStepExecutions(jobExecution.getExecutionId()); - assertEquals(1, stepExecutions.size()); - StepExecution failedStep = stepExecutions.get(0); - assertTrue("step1".equals(failedStep.getStepName())); - } - - @Test - public void testStepGetsFailedTransitionWhenNextAttributePresent() throws Exception { - JobExecution jobExecution = runJob("FlowParserTestsStepGetsFailedTransitionWhenNextAttributePresent", new Properties(), 10000L); - assertEquals(ExitStatus.FAILED.getExitCode(), jobExecution.getExitStatus()); - - JobOperator jobOperator = BatchRuntime.getJobOperator(); - List stepExecutions = jobOperator.getStepExecutions(jobExecution.getExecutionId()); - assertEquals(1, stepExecutions.size()); - StepExecution failedStep = stepExecutions.get(0); - assertTrue("failedExitStatusStep".equals(failedStep.getStepName())); - assertTrue("FAILED".equals(failedStep.getExitStatus())); - } - - @Test - public void testStepNoOverrideWhenNextAndFailedTransitionElementExists() throws Exception { - JobExecution jobExecution = runJob("FlowParserTestsStepNoOverrideWhenNextAndFailedTransitionElementExists", new Properties(), 10000L); - assertEquals(ExitStatus.FAILED.getExitCode(), jobExecution.getExitStatus()); - - JobOperator jobOperator = BatchRuntime.getJobOperator(); - List stepExecutions = jobOperator.getStepExecutions(jobExecution.getExecutionId()); - assertEquals(1, stepExecutions.size()); - StepExecution failedStep = stepExecutions.get(0); - assertTrue("failedExitStatusStepDontOverride".equals(failedStep.getStepName())); - assertTrue("CUSTOM_FAIL".equals(failedStep.getExitStatus())); - } - - public static class TestBatchlet extends AbstractBatchlet { - private static int CNT; - - @Inject - private StepContext stepContext; - - @Override - public String process() throws Exception { - String exitCode = "DISTINCT"; - - if("step3".equals(stepContext.getStepName())) { - exitCode = CNT % 2 == 0 ? "DISTINCT" : "RESTART"; - CNT++; - } - - if("failedExitStatusStep".equals(stepContext.getStepName())) { - exitCode = "FAILED"; - } - - if("failedExitStatusStepDontOverride".equals(stepContext.getStepName())) { - exitCode = "CUSTOM_FAIL"; - } - - return exitCode; - } - } - - public static class FailingTestBatchlet extends AbstractBatchlet { - @Override - public String process() throws Exception { - throw new RuntimeException("blah"); - } - } -} diff --git a/spring-batch-core/src/test/java/org/springframework/batch/core/jsr/configuration/xml/ItemListenerParsingTests.java b/spring-batch-core/src/test/java/org/springframework/batch/core/jsr/configuration/xml/ItemListenerParsingTests.java deleted file mode 100644 index 646436e56..000000000 --- a/spring-batch-core/src/test/java/org/springframework/batch/core/jsr/configuration/xml/ItemListenerParsingTests.java +++ /dev/null @@ -1,188 +0,0 @@ -/* - * Copyright 2013-2021 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.springframework.batch.core.jsr.configuration.xml; - -import static org.junit.Assert.assertEquals; - -import java.util.List; - -import org.junit.Test; -import org.junit.runner.RunWith; -import org.springframework.batch.core.BatchStatus; -import org.springframework.batch.core.ItemProcessListener; -import org.springframework.batch.core.ItemReadListener; -import org.springframework.batch.core.ItemWriteListener; -import org.springframework.batch.core.Job; -import org.springframework.batch.core.JobExecution; -import org.springframework.batch.core.JobParameters; -import org.springframework.batch.core.launch.JobLauncher; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.lang.Nullable; -import org.springframework.test.context.ContextConfiguration; -import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; - -@ContextConfiguration -@RunWith(SpringJUnit4ClassRunner.class) -public class ItemListenerParsingTests { - - @Autowired - public Job job; - - @Autowired - public JobLauncher jobLauncher; - - @Autowired - public SpringItemListener springListener; - - @Autowired - public JsrItemListener jsrListener; - - @Test - public void test() throws Exception { - JobExecution execution = jobLauncher.run(job, new JobParameters()); - assertEquals(BatchStatus.COMPLETED, execution.getStatus()); - assertEquals(3, execution.getStepExecutions().size()); - assertEquals(6, springListener.beforeReadCount); - assertEquals(4, springListener.afterReadCount); - assertEquals(4, springListener.beforeProcessCount); - assertEquals(4, springListener.afterProcessCount); - assertEquals(2, springListener.beforeWriteCount); - assertEquals(2, springListener.afterWriteCount); - assertEquals(6, jsrListener.beforeReadCount); - assertEquals(4, jsrListener.afterReadCount); - assertEquals(4, jsrListener.beforeProcessCount); - assertEquals(4, jsrListener.afterProcessCount); - assertEquals(2, jsrListener.beforeWriteCount); - assertEquals(2, jsrListener.afterWriteCount); - } - - public static class SpringItemListener implements ItemReadListener, ItemProcessListener, ItemWriteListener { - - protected int beforeReadCount = 0; - protected int afterReadCount = 0; - protected int onReadErrorCount = 0; - protected int beforeProcessCount = 0; - protected int afterProcessCount = 0; - protected int onProcessErrorCount = 0; - protected int beforeWriteCount = 0; - protected int afterWriteCount = 0; - protected int onWriteErrorCount = 0; - - @Override - public void beforeRead() { - beforeReadCount++; - } - - @Override - public void afterRead(Object item) { - afterReadCount++; - } - - @Override - public void onReadError(Exception ex) { - onReadErrorCount++; - } - - @Override - public void beforeWrite(List items) { - beforeWriteCount++; - } - - @Override - public void afterWrite(List items) { - afterWriteCount++; - } - - @Override - public void onWriteError(Exception exception, List items) { - onWriteErrorCount++; - } - - @Override - public void beforeProcess(Object item) { - beforeProcessCount++; - } - - @Override - public void afterProcess(Object item, @Nullable Object result) { - afterProcessCount++; - } - - @Override - public void onProcessError(Object item, Exception e) { - onProcessErrorCount++; - } - } - - public static class JsrItemListener implements jakarta.batch.api.chunk.listener.ItemReadListener, jakarta.batch.api.chunk.listener.ItemProcessListener, jakarta.batch.api.chunk.listener.ItemWriteListener { - - protected int beforeReadCount = 0; - protected int afterReadCount = 0; - protected int onReadErrorCount = 0; - protected int beforeProcessCount = 0; - protected int afterProcessCount = 0; - protected int onProcessErrorCount = 0; - protected int beforeWriteCount = 0; - protected int afterWriteCount = 0; - protected int onWriteErrorCount = 0; - - @Override - public void beforeWrite(List items) throws Exception { - beforeWriteCount++; - } - - @Override - public void afterWrite(List items) throws Exception { - afterWriteCount++; - } - - @Override - public void onWriteError(List items, Exception ex) - throws Exception { - onWriteErrorCount++; - } - - @Override - public void beforeProcess(Object item) throws Exception { - beforeProcessCount++; - } - - @Override - public void afterProcess(Object item, Object result) throws Exception { - afterProcessCount++; - } - - @Override - public void onProcessError(Object item, Exception ex) throws Exception { - onProcessErrorCount++; - } - - @Override - public void beforeRead() throws Exception { - beforeReadCount++; - } - - @Override - public void afterRead(Object item) throws Exception { - afterReadCount++; - } - - @Override - public void onReadError(Exception ex) throws Exception { - onReadErrorCount++; - } - } -} diff --git a/spring-batch-core/src/test/java/org/springframework/batch/core/jsr/configuration/xml/ItemSkipParsingTests.java b/spring-batch-core/src/test/java/org/springframework/batch/core/jsr/configuration/xml/ItemSkipParsingTests.java deleted file mode 100644 index bac1380ae..000000000 --- a/spring-batch-core/src/test/java/org/springframework/batch/core/jsr/configuration/xml/ItemSkipParsingTests.java +++ /dev/null @@ -1,176 +0,0 @@ -/* - * Copyright 2013-2021 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.springframework.batch.core.jsr.configuration.xml; - -import org.junit.Test; -import org.springframework.batch.core.jsr.AbstractJsrTestCase; -import org.springframework.batch.item.ItemProcessor; -import org.springframework.batch.item.ItemReader; -import org.springframework.batch.item.ItemWriter; -import org.springframework.lang.Nullable; - -import jakarta.batch.api.chunk.listener.SkipProcessListener; -import jakarta.batch.api.chunk.listener.SkipReadListener; -import jakarta.batch.api.chunk.listener.SkipWriteListener; -import jakarta.batch.operations.JobOperator; -import jakarta.batch.runtime.BatchRuntime; -import jakarta.batch.runtime.BatchStatus; -import jakarta.batch.runtime.Metric; -import jakarta.batch.runtime.StepExecution; -import java.util.ArrayList; -import java.util.List; -import java.util.Properties; - -import static org.junit.Assert.assertEquals; - -public class ItemSkipParsingTests extends AbstractJsrTestCase { - - @Test - public void test() throws Exception { - jakarta.batch.runtime.JobExecution execution = runJob("ItemSkipParsingTests-context", new Properties(), 10000l); - JobOperator jobOperator = BatchRuntime.getJobOperator(); - - assertEquals(BatchStatus.FAILED, execution.getBatchStatus()); - List stepExecutions = jobOperator.getStepExecutions(execution.getExecutionId()); - assertEquals(1, getMetric(stepExecutions.get(0), Metric.MetricType.READ_SKIP_COUNT).getValue()); - assertEquals(1, TestSkipListener.readSkips); - assertEquals(0, TestSkipListener.processSkips); - assertEquals(0, TestSkipListener.writeSkips); - - // Process skip and fail - execution = restartJob(execution.getExecutionId(), new Properties(), 10000l); - - assertEquals(BatchStatus.FAILED, execution.getBatchStatus()); - stepExecutions = jobOperator.getStepExecutions(execution.getExecutionId()); - assertEquals(1, getMetric(stepExecutions.get(0), Metric.MetricType.PROCESS_SKIP_COUNT).getValue()); - assertEquals(0, TestSkipListener.readSkips); - assertEquals(1, TestSkipListener.processSkips); - assertEquals(0, TestSkipListener.writeSkips); - - // Write skip and fail - execution = restartJob(execution.getExecutionId(), new Properties(), 10000l); - - assertEquals(BatchStatus.FAILED, execution.getBatchStatus()); - stepExecutions = jobOperator.getStepExecutions(execution.getExecutionId()); - assertEquals(1, getMetric(stepExecutions.get(0), Metric.MetricType.WRITE_SKIP_COUNT).getValue()); - assertEquals(0, TestSkipListener.readSkips); - assertEquals(0, TestSkipListener.processSkips); - assertEquals(1, TestSkipListener.writeSkips); - - // Complete - execution = restartJob(execution.getExecutionId(), new Properties(), 10000l); - - assertEquals(BatchStatus.COMPLETED, execution.getBatchStatus()); - stepExecutions = jobOperator.getStepExecutions(execution.getExecutionId()); - assertEquals(0, getMetric(stepExecutions.get(0), Metric.MetricType.WRITE_SKIP_COUNT).getValue()); - assertEquals(0, TestSkipListener.readSkips); - assertEquals(0, TestSkipListener.processSkips); - assertEquals(0, TestSkipListener.writeSkips); - } - - public static class SkipErrorGeneratingReader implements ItemReader { - private static int count = 0; - - @Nullable - @Override - public String read() throws Exception { - count++; - - if(count == 1) { - throw new Exception("read skip me"); - } else if (count == 2) { - return "item" + count; - } else if(count == 3) { - throw new RuntimeException("read fail because of me"); - } else if(count < 15) { - return "item" + count; - } else { - return null; - } - } - } - - public static class SkipErrorGeneratingProcessor implements ItemProcessor { - private static int count = 0; - - @Nullable - @Override - public String process(String item) throws Exception { - count++; - - if(count == 4) { - throw new Exception("process skip me"); - } else if(count == 5) { - return item; - } else if(count == 6) { - throw new RuntimeException("process fail because of me"); - } else { - return item; - } - } - } - - public static class SkipErrorGeneratingWriter implements ItemWriter { - private static int count = 0; - protected List writtenItems = new ArrayList<>(); - private List skippedItems = new ArrayList<>(); - - @Override - public void write(List items) throws Exception { - if(items.size() > 0 && !skippedItems.contains(items.get(0))) { - count++; - } - - if(count == 7) { - skippedItems.addAll(items); - throw new Exception("write skip me"); - } else if(count == 9) { - skippedItems = new ArrayList<>(); - throw new RuntimeException("write fail because of me"); - } else { - writtenItems.addAll(items); - } - } - } - - public static class TestSkipListener implements SkipReadListener, SkipProcessListener, SkipWriteListener { - - protected static int readSkips = 0; - protected static int processSkips = 0; - protected static int writeSkips = 0; - - public TestSkipListener() { - readSkips = 0; - processSkips = 0; - writeSkips = 0; - } - - @Override - public void onSkipProcessItem(Object item, Exception ex) throws Exception { - processSkips++; - } - - @Override - public void onSkipReadItem(Exception ex) throws Exception { - readSkips++; - } - - @Override - public void onSkipWriteItem(List items, Exception ex) throws Exception { - writeSkips++; - } - } -} diff --git a/spring-batch-core/src/test/java/org/springframework/batch/core/jsr/configuration/xml/JobListenerParsingTests.java b/spring-batch-core/src/test/java/org/springframework/batch/core/jsr/configuration/xml/JobListenerParsingTests.java deleted file mode 100644 index 12aa270fe..000000000 --- a/spring-batch-core/src/test/java/org/springframework/batch/core/jsr/configuration/xml/JobListenerParsingTests.java +++ /dev/null @@ -1,96 +0,0 @@ -/* - * Copyright 2013-2021 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.springframework.batch.core.jsr.configuration.xml; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotNull; - -import jakarta.batch.api.listener.JobListener; - -import org.junit.Test; -import org.junit.runner.RunWith; -import org.springframework.batch.core.BatchStatus; -import org.springframework.batch.core.Job; -import org.springframework.batch.core.JobExecution; -import org.springframework.batch.core.JobExecutionListener; -import org.springframework.batch.core.JobParameters; -import org.springframework.batch.core.launch.JobLauncher; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.test.context.ContextConfiguration; -import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; - -@ContextConfiguration -@RunWith(SpringJUnit4ClassRunner.class) -public class JobListenerParsingTests { - - @Autowired - public Job job; - - @Autowired - public JobLauncher jobLauncher; - - @Autowired - public SpringJobListener springListener; - - @Autowired - public JsrJobListener jsrListener; - - @Test - public void test() throws Exception { - assertNotNull(job); - assertEquals("job1", job.getName()); - - JobExecution execution = jobLauncher.run(job, new JobParameters()); - assertEquals(BatchStatus.COMPLETED, execution.getStatus()); - assertEquals(2, execution.getStepExecutions().size()); - assertEquals(1, springListener.countAfterJob); - assertEquals(1, springListener.countBeforeJob); - assertEquals(1, jsrListener.countAfterJob); - assertEquals(1, jsrListener.countBeforeJob); - } - - public static class SpringJobListener implements JobExecutionListener { - - protected int countBeforeJob = 0; - protected int countAfterJob = 0; - - @Override - public void beforeJob(JobExecution jobExecution) { - countBeforeJob++; - } - - @Override - public void afterJob(JobExecution jobExecution) { - countAfterJob++; - } - } - - public static class JsrJobListener implements JobListener { - - protected int countBeforeJob = 0; - protected int countAfterJob = 0; - - @Override - public void afterJob() throws Exception { - countBeforeJob++; - } - - @Override - public void beforeJob() throws Exception { - countAfterJob++; - } - } -} diff --git a/spring-batch-core/src/test/java/org/springframework/batch/core/jsr/configuration/xml/JobPropertySubstitutionTests.java b/spring-batch-core/src/test/java/org/springframework/batch/core/jsr/configuration/xml/JobPropertySubstitutionTests.java deleted file mode 100644 index fc20a989c..000000000 --- a/spring-batch-core/src/test/java/org/springframework/batch/core/jsr/configuration/xml/JobPropertySubstitutionTests.java +++ /dev/null @@ -1,146 +0,0 @@ -/* - * Copyright 2013-2021 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.springframework.batch.core.jsr.configuration.xml; - -import java.io.Serializable; -import java.util.List; -import jakarta.batch.api.BatchProperty; -import jakarta.batch.api.chunk.ItemProcessor; -import jakarta.batch.api.chunk.ItemReader; -import jakarta.batch.api.chunk.ItemWriter; -import jakarta.inject.Inject; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.springframework.batch.core.ExitStatus; -import org.springframework.batch.core.Job; -import org.springframework.batch.core.JobExecution; -import org.springframework.batch.core.JobParametersBuilder; -import org.springframework.batch.core.launch.JobLauncher; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.test.context.ContextConfiguration; -import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; -import static org.junit.Assert.assertEquals; - -/** - *

- * Test cases for JSR-352 job property substitution. - *

- * - * TODO: enhance test cases with more complex substitutions - * - * @author Chris Schaefer - * @author Mahmoud Ben Hassine - * @since 3.0 - */ -@ContextConfiguration -@RunWith(SpringJUnit4ClassRunner.class) -public class JobPropertySubstitutionTests { - @Autowired - private Job job; - - @Autowired - private JobLauncher jobLauncher; - - @Test - public void testPropertySubstitutionSimple() throws Exception { - JobExecution jobExecution = jobLauncher.run(job, - new JobParametersBuilder() - .addString("testParam", "testParamValue") - .addString("file.name.junit", "myfile2") - .toJobParameters()); - assertEquals(ExitStatus.COMPLETED, jobExecution.getExitStatus()); - } - - public static final class TestItemReader implements ItemReader { - private int cnt; - - @Inject - @BatchProperty - String readerPropertyName1; - - @Override - public void open(Serializable serializable) throws Exception { - assertEquals(System.getProperty("file.separator"), readerPropertyName1); - } - - @Override - public void close() throws Exception { - } - - @Override - public Object readItem() throws Exception { - if (cnt == 0) { - cnt++; - return "blah"; - } - - return null; - } - - @Override - public Serializable checkpointInfo() throws Exception { - return null; - } - } - - public static final class TestItemWriter implements ItemWriter { - @Inject - @BatchProperty - String writerPropertyName1; - - @Override - public void open(Serializable serializable) throws Exception { - assertEquals("jobPropertyValue1", writerPropertyName1); - } - - @Override - public void close() throws Exception { - } - - @Override - public void writeItems(List objects) throws Exception { - System.out.println(objects); - } - - @Override - public Serializable checkpointInfo() throws Exception { - return null; - } - } - - public static final class TestItemProcessor implements ItemProcessor { - @Inject - @BatchProperty - String processorProperty1; - - @Inject - @BatchProperty - String processorProperty2; - - @Inject - @BatchProperty - String processorProperty3; - - @Override - public Object processItem(Object item) throws Exception { - assertEquals("testParamValue", processorProperty1); - assertEquals("myfile1.txt", processorProperty2); - assertEquals(System.getProperty("file.separator") + "myfile2.txt", processorProperty3); - - return item; - } - } -} diff --git a/spring-batch-core/src/test/java/org/springframework/batch/core/jsr/configuration/xml/JobPropertyTests.java b/spring-batch-core/src/test/java/org/springframework/batch/core/jsr/configuration/xml/JobPropertyTests.java deleted file mode 100644 index 0df62768b..000000000 --- a/spring-batch-core/src/test/java/org/springframework/batch/core/jsr/configuration/xml/JobPropertyTests.java +++ /dev/null @@ -1,301 +0,0 @@ -/* - * Copyright 2013-2021 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.springframework.batch.core.jsr.configuration.xml; - -import java.io.Serializable; -import java.util.List; -import java.util.Properties; -import jakarta.batch.api.BatchProperty; -import jakarta.batch.api.Batchlet; -import jakarta.batch.api.Decider; -import jakarta.batch.api.chunk.CheckpointAlgorithm; -import jakarta.batch.api.chunk.ItemProcessor; -import jakarta.batch.api.chunk.ItemReader; -import jakarta.batch.api.chunk.ItemWriter; -import jakarta.batch.api.listener.StepListener; -import jakarta.batch.runtime.BatchStatus; -import jakarta.batch.runtime.JobExecution; -import jakarta.batch.runtime.context.JobContext; -import jakarta.inject.Inject; - -import org.junit.Test; - -import org.springframework.batch.core.StepContribution; -import org.springframework.batch.core.jsr.AbstractJsrTestCase; -import org.springframework.batch.core.scope.context.ChunkContext; -import org.springframework.batch.core.step.tasklet.Tasklet; -import org.springframework.batch.repeat.RepeatStatus; -import org.springframework.lang.Nullable; - -import static org.junit.Assert.assertEquals; - -/** - *

- * Configuration test for parsing various <properties /> elements defined by JSR-352. - *

- * - * @author Chris Schaefer - * @author Mahmoud Ben Hassine - * @since 3.0 - */ -public class JobPropertyTests extends AbstractJsrTestCase { - @Test - public void testJobPropertyConfiguration() throws Exception { - Properties jobParameters = new Properties(); - jobParameters.setProperty("allow.start.if.complete", "true"); - jobParameters.setProperty("deciderName", "stepDecider"); - jobParameters.setProperty("deciderNumber", "1"); - - JobExecution jobExecution = runJob("jsrJobPropertyTestsContext", jobParameters, 5000L); - assertEquals(BatchStatus.COMPLETED, jobExecution.getBatchStatus()); - } - - public static final class TestItemReader implements ItemReader { - private int cnt; - - @Inject @BatchProperty String readerPropertyName1; - @Inject @BatchProperty String readerPropertyName2; - @Inject @BatchProperty String readerPropertyName3; - @Inject @BatchProperty(name = "annotationNamedReaderPropertyName") String annotationNamedProperty; - @Inject @BatchProperty String notDefinedProperty; - @Inject @BatchProperty(name = "notDefinedAnnotationNamedProperty") String notDefinedAnnotationNamedProperty; - @Inject @BatchProperty String jobPropertyName1; - @Inject @BatchProperty String jobPropertyName2; - @Inject JobContext injectAnnotatedOnlyField; - @BatchProperty String batchAnnotatedOnlyField; - @Inject jakarta.batch.runtime.context.StepContext stepContext; - - @Override - public void open(Serializable serializable) throws Exception { - org.springframework.util.Assert.notNull(stepContext, "stepContext is not null"); - org.springframework.util.Assert.isNull(stepContext.getProperties().get("step2PropertyName1"), "step2PropertyName1 is not null"); - org.springframework.util.Assert.isNull(stepContext.getProperties().get("step2PropertyName2"), "step2PropertyName2 is not null"); - org.springframework.util.Assert.isTrue(stepContext.getProperties().get("step1PropertyName1").equals("step1PropertyValue1"), "The value of step2PropertyName1 does not equal step2PropertyName1"); - org.springframework.util.Assert.isTrue(stepContext.getProperties().get("step1PropertyName2").equals("step1PropertyValue2"), "The value of step2PropertyName2 does not equal step2PropertyName2"); - org.springframework.util.Assert.isNull(stepContext.getProperties().get("jobPropertyName1"), "jobPropertyName1 is not null"); - org.springframework.util.Assert.isNull(stepContext.getProperties().get("jobPropertyName2") == null, "jobPropertyName2 is not null"); - org.springframework.util.Assert.isTrue("readerPropertyValue1".equals(readerPropertyName1), "The value of readerPropertyValue1 does not equal readerPropertyValue1"); - org.springframework.util.Assert.isTrue("readerPropertyValue2".equals(readerPropertyName2), "The value of readerPropertyValue2 does not equal readerPropertyValue2"); - org.springframework.util.Assert.isTrue("annotationNamedReaderPropertyValue".equals(annotationNamedProperty), "The value of annotationNamedReaderPropertyValue does not equal annotationNamedReaderPropertyValue"); - org.springframework.util.Assert.isNull(notDefinedProperty, "notDefinedProperty is not null"); - org.springframework.util.Assert.isNull(notDefinedAnnotationNamedProperty, "notDefinedAnnotationNamedProperty is not null"); - org.springframework.util.Assert.isNull(batchAnnotatedOnlyField, "batchAnnotatedOnlyField is not null"); - org.springframework.util.Assert.notNull(injectAnnotatedOnlyField, "injectAnnotatedOnlyField is not null"); - org.springframework.util.Assert.isTrue("job1".equals(injectAnnotatedOnlyField.getJobName()), "injectAnnotatedOnlyField does not equal job1"); - org.springframework.util.Assert.isNull(readerPropertyName3, "readerPropertyName3 is not null"); - - Properties jobProperties = injectAnnotatedOnlyField.getProperties(); - org.springframework.util.Assert.isTrue(jobProperties.size() == 5, "jobProperties has the wrong number of values. Expected 5, got " + jobProperties.size()); - org.springframework.util.Assert.isTrue(jobProperties.get("jobPropertyName1").equals("jobPropertyValue1"), "The value of jobPropertyName1 does not equal jobPropertyName1"); - org.springframework.util.Assert.isTrue(jobProperties.get("jobPropertyName2").equals("jobPropertyValue2"), "The value of jobPropertyName2 does not equal jobPropertyName2"); - org.springframework.util.Assert.isTrue(jobProperties.get("step2name").equals("step2"), "The value of step2name does note equal step2"); - org.springframework.util.Assert.isTrue(jobProperties.get("filestem").equals("postings"), "The value of filestem does not equal postings"); - org.springframework.util.Assert.isTrue(jobProperties.get("x").equals("xVal"), "The value of x does not equal xVal"); - } - - @Override - public void close() throws Exception { - } - - @Override - public Object readItem() throws Exception { - if (cnt == 0) { - cnt++; - return "blah"; - } - - return null; - } - - @Override - public Serializable checkpointInfo() throws Exception { - return null; - } - } - - public static final class TestItemProcessor implements ItemProcessor { - @Inject @BatchProperty String processorPropertyName1; - @Inject @BatchProperty String processorPropertyName2; - @Inject @BatchProperty(name = "annotationNamedProcessorPropertyName") String annotationNamedProperty; - @Inject @BatchProperty String notDefinedProperty; - @Inject @BatchProperty(name = "notDefinedAnnotationNamedProperty") String notDefinedAnnotationNamedProperty; - - @Override - public Object processItem(Object o) throws Exception { - org.springframework.util.Assert.isTrue("processorPropertyValue1".equals(processorPropertyName1), "The value of processorPropertyValue1 does not equal processorPropertyValue1"); - org.springframework.util.Assert.isTrue("processorPropertyValue2".equals(processorPropertyName2), "The value of processorPropertyValue2 does not equal processorPropertyValue2"); - org.springframework.util.Assert.isTrue("annotationNamedProcessorPropertyValue".equals(annotationNamedProperty), "The value of annotationNamedProcessorPropertyValue does not equal annotationNamedProcessorPropertyValue"); - org.springframework.util.Assert.isNull(notDefinedProperty, "The notDefinedProperty is not null"); - org.springframework.util.Assert.isNull(notDefinedAnnotationNamedProperty, "The notDefinedNamedProperty is not null"); - - return o; - } - } - - public static final class TestItemWriter implements ItemWriter { - @Inject @BatchProperty String writerPropertyName1; - @Inject @BatchProperty String writerPropertyName2; - @Inject @BatchProperty(name = "annotationNamedWriterPropertyName") String annotationNamedProperty; - @Inject @BatchProperty String notDefinedProperty; - @Inject @BatchProperty(name = "notDefinedAnnotationNamedProperty") String notDefinedAnnotationNamedProperty; - - @Override - public void open(Serializable serializable) throws Exception { - org.springframework.util.Assert.isTrue("writerPropertyValue1".equals(writerPropertyName1), "The value of writerPropertyValue1 does not equal writerPropertyValue1"); - org.springframework.util.Assert.isTrue("writerPropertyValue2".equals(writerPropertyName2), "The value of writerPropertyValue2 does not equal writerPropertyValue2"); - org.springframework.util.Assert.isTrue("annotationNamedWriterPropertyValue".equals(annotationNamedProperty), "The value of annotationNamedWriterPropertyValue does not equal annotationNamedWriterPropertyValue"); - org.springframework.util.Assert.isNull(notDefinedProperty, "notDefinedProperty is not null"); - org.springframework.util.Assert.isNull(notDefinedAnnotationNamedProperty, "notDefinedAnnotationNamedProperty is not null"); - } - - @Override - public void close() throws Exception { - } - - @Override - public void writeItems(List objects) throws Exception { - System.out.println(objects); - } - - @Override - public Serializable checkpointInfo() throws Exception { - return null; - } - } - - public static final class TestCheckpointAlgorithm implements CheckpointAlgorithm { - @Inject @BatchProperty String algorithmPropertyName1; - @Inject @BatchProperty String algorithmPropertyName2; - @Inject @BatchProperty(name = "annotationNamedAlgorithmPropertyName") String annotationNamedProperty; - @Inject @BatchProperty String notDefinedProperty; - @Inject @BatchProperty(name = "notDefinedAnnotationNamedProperty") String notDefinedAnnotationNamedProperty; - - @Override - public int checkpointTimeout() throws Exception { - return 0; - } - - @Override - public void beginCheckpoint() throws Exception { - org.springframework.util.Assert.isTrue("algorithmPropertyValue1".equals(algorithmPropertyName1), "The value of algorithmPropertyValue1 does not equal algorithmPropertyValue1"); - org.springframework.util.Assert.isTrue("algorithmPropertyValue2".equals(algorithmPropertyName2), "The value of algorithmPropertyValue2 does not equal algorithmPropertyValue2"); - org.springframework.util.Assert.isTrue("annotationNamedAlgorithmPropertyValue".equals(annotationNamedProperty), "The annotationNamedAlgorithmPropertyValue does not equal annotationNamedAlgorithmPropertyValue"); - org.springframework.util.Assert.isNull(notDefinedProperty, "notDefinedProperty is not null"); - org.springframework.util.Assert.isNull(notDefinedAnnotationNamedProperty, "notDefinedAnnotationNamedProperty is not null"); - } - - @Override - public boolean isReadyToCheckpoint() throws Exception { - return true; - } - - @Override - public void endCheckpoint() throws Exception { - } - } - - public static class TestDecider implements Decider { - @Inject @BatchProperty String deciderPropertyName1; - @Inject @BatchProperty String deciderPropertyName2; - @Inject @BatchProperty(name = "annotationNamedDeciderPropertyName") String annotationNamedProperty; - @Inject @BatchProperty String notDefinedProperty; - @Inject @BatchProperty(name = "notDefinedAnnotationNamedProperty") String notDefinedAnnotationNamedProperty; - - @Override - public String decide(jakarta.batch.runtime.StepExecution[] executions) throws Exception { - org.springframework.util.Assert.isTrue("deciderPropertyValue1".equals(deciderPropertyName1), "The value of deciderPropertyValue1 does not equal deciderPropertyValue1"); - org.springframework.util.Assert.isTrue("deciderPropertyValue2".equals(deciderPropertyName2), "The value of deciderPropertyValue2 does not equal deciderPropertyValue2"); - org.springframework.util.Assert.isTrue("annotationNamedDeciderPropertyValue".equals(annotationNamedProperty), "The value of annotationNamedDeciderPropertyValue does not equal annotationNamedDeciderPropertyValue"); - org.springframework.util.Assert.isNull(notDefinedProperty, "notDefinedProperty is not null"); - org.springframework.util.Assert.isNull(notDefinedAnnotationNamedProperty, "notDefinedAnnotationNamedProperty is not null"); - - return "step2"; - } - } - - public static class TestStepListener implements StepListener { - @Inject @BatchProperty String stepListenerPropertyName1; - @Inject @BatchProperty String stepListenerPropertyName2; - @Inject @BatchProperty(name = "annotationNamedStepListenerPropertyName") String annotationNamedProperty; - @Inject @BatchProperty String notDefinedProperty; - @Inject @BatchProperty(name = "notDefinedAnnotationNamedProperty") String notDefinedAnnotationNamedProperty; - - @Override - public void beforeStep() throws Exception { - org.springframework.util.Assert.isTrue("stepListenerPropertyValue1".equals(stepListenerPropertyName1), "The value of stepListenerPropertyValue1 does not equal stepListenerPropertyValue1"); - org.springframework.util.Assert.isTrue("stepListenerPropertyValue2".equals(stepListenerPropertyName2), "The value of stepListenerPropertyValue2 does not equal stepListenerPropertyValue2"); - org.springframework.util.Assert.isTrue("annotationNamedStepListenerPropertyValue".equals(annotationNamedProperty), "The value of annotationNamedStepListenerPropertyValue does note equal annotationNamedStepListenerPropertyValue"); - org.springframework.util.Assert.isNull(notDefinedProperty, "notDefinedProperty is not null"); - org.springframework.util.Assert.isNull(notDefinedAnnotationNamedProperty, "notDefinedAnnotationNamedProperty is not null"); - } - - @Override - public void afterStep() throws Exception { - } - } - - public static class TestBatchlet implements Batchlet { - @Inject @BatchProperty String batchletPropertyName1; - @Inject @BatchProperty String batchletPropertyName2; - @Inject @BatchProperty(name = "annotationNamedBatchletPropertyName") String annotationNamedProperty; - @Inject @BatchProperty String notDefinedProperty; - @Inject @BatchProperty(name = "notDefinedAnnotationNamedProperty") String notDefinedAnnotationNamedProperty; - @Inject jakarta.batch.runtime.context.StepContext stepContext; - @Inject @BatchProperty(name = "infile.name") String infile; - @Inject @BatchProperty(name = "y") String y; - @Inject @BatchProperty(name = "x") String x; - - @Override - public String process() throws Exception { - org.springframework.util.Assert.notNull(stepContext, "StepContext is not null"); - org.springframework.util.Assert.isNull(stepContext.getProperties().get("step1PropertyName1"), "The value of step1PropertyName1 is not null"); - org.springframework.util.Assert.isNull(stepContext.getProperties().get("step1PropertyName2"), "The value of step1PropertyName2 is not null"); - org.springframework.util.Assert.isTrue(stepContext.getProperties().get("step2PropertyName1").equals("step2PropertyValue1"), "The value of step2PropertyName1 does not equal step2PropertyName1"); - org.springframework.util.Assert.isTrue(stepContext.getProperties().get("step2PropertyName2").equals("step2PropertyValue2"), "The value of step2PropertyName2 does not equal step2PropertyName2"); - org.springframework.util.Assert.isTrue(stepContext.getProperties().get("jobPropertyName1") == null, "jobPropertyName1 is not null"); - org.springframework.util.Assert.isTrue(stepContext.getProperties().get("jobPropertyName2") == null, "jobPropertyName2 is not null"); - - org.springframework.util.Assert.isTrue("batchletPropertyValue1".equals(batchletPropertyName1), "batchletPropertyValue1 does not equal batchletPropertyValue1"); - org.springframework.util.Assert.isTrue("batchletPropertyValue2".equals(batchletPropertyName2), "batchletPropertyValue2 does not equal batchletPropertyValue2"); - org.springframework.util.Assert.isTrue("annotationNamedBatchletPropertyValue".equals(annotationNamedProperty), "annotationNamedBatchletPropertyValue does not equal annotationNamedBatchletPropertyValue"); - org.springframework.util.Assert.isTrue("postings.txt".equals(infile), "infile does not equal postings.txt"); - org.springframework.util.Assert.isTrue("xVal".equals(y), "y does not equal xVal"); - org.springframework.util.Assert.isNull(notDefinedProperty, "notDefinedProperty is not null"); - org.springframework.util.Assert.isNull(notDefinedAnnotationNamedProperty, "notDefinedAnnotationNamedProperty is not null"); - org.springframework.util.Assert.isNull(x, "x is not null"); - - return null; - } - - @Override - public void stop() throws Exception { - } - } - - public static class TestTasklet implements Tasklet { - @Inject - @BatchProperty - private String p1; - - @Nullable - @Override - public RepeatStatus execute(StepContribution contribution, ChunkContext chunkContext) throws Exception { - org.springframework.util.Assert.isTrue("p1val".equals(p1), "Expected p1val, got " + p1); - - return RepeatStatus.FINISHED; - } - } -} diff --git a/spring-batch-core/src/test/java/org/springframework/batch/core/jsr/configuration/xml/JsrBeanDefinitionDocumentReaderTests.java b/spring-batch-core/src/test/java/org/springframework/batch/core/jsr/configuration/xml/JsrBeanDefinitionDocumentReaderTests.java deleted file mode 100644 index 54c4e68a5..000000000 --- a/spring-batch-core/src/test/java/org/springframework/batch/core/jsr/configuration/xml/JsrBeanDefinitionDocumentReaderTests.java +++ /dev/null @@ -1,280 +0,0 @@ -/* - * Copyright 2013-2021 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.springframework.batch.core.jsr.configuration.xml; - -import java.io.IOException; -import java.io.InputStream; -import java.util.Properties; -import jakarta.batch.api.Batchlet; -import jakarta.batch.runtime.JobExecution; - -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -import org.junit.Test; -import org.w3c.dom.Document; -import org.xml.sax.ErrorHandler; -import org.xml.sax.InputSource; - -import org.springframework.batch.core.jsr.AbstractJsrTestCase; -import org.springframework.beans.factory.config.BeanDefinition; -import org.springframework.beans.factory.xml.DefaultDocumentLoader; -import org.springframework.beans.factory.xml.DelegatingEntityResolver; -import org.springframework.beans.factory.xml.DocumentLoader; -import org.springframework.core.io.ClassPathResource; -import org.springframework.util.StringUtils; -import org.springframework.util.xml.SimpleSaxErrorHandler; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertTrue; - -/** - *

- * Test cases around {@link JsrBeanDefinitionDocumentReader}. - *

- * - * @author Chris Schaefer - * @author Mahmoud Ben Hassine - */ -public class JsrBeanDefinitionDocumentReaderTests extends AbstractJsrTestCase { - private static final String JOB_PARAMETERS_BEAN_DEFINITION_NAME = "jsr_jobParameters"; - - private Log logger = LogFactory.getLog(getClass()); - private DocumentLoader documentLoader = new DefaultDocumentLoader(); - private ErrorHandler errorHandler = new SimpleSaxErrorHandler(logger); - - @Test - @SuppressWarnings("resource") - public void testGetJobParameters() { - Properties jobParameters = new Properties(); - jobParameters.setProperty("jobParameter1", "jobParameter1Value"); - jobParameters.setProperty("jobParameter2", "jobParameter2Value"); - - JsrXmlApplicationContext applicationContext = new JsrXmlApplicationContext(jobParameters); - applicationContext.setValidating(false); - applicationContext.load(new ClassPathResource("jsrBaseContext.xml"), - new ClassPathResource("/META-INF/batch.xml"), - new ClassPathResource("/META-INF/batch-jobs/jsrPropertyPreparseTestJob.xml")); - applicationContext.refresh(); - - BeanDefinition beanDefinition = applicationContext.getBeanDefinition(JOB_PARAMETERS_BEAN_DEFINITION_NAME); - - Properties processedJobParameters = (Properties) beanDefinition.getConstructorArgumentValues().getGenericArgumentValue(Properties.class).getValue(); - assertNotNull(processedJobParameters); - assertTrue("Wrong number of job parameters", processedJobParameters.size() == 2); - assertEquals("jobParameter1Value", processedJobParameters.getProperty("jobParameter1")); - assertEquals("jobParameter2Value", processedJobParameters.getProperty("jobParameter2")); - } - - @Test - public void testGetJobProperties() { - Document document = getDocument("/META-INF/batch-jobs/jsrPropertyPreparseTestJob.xml"); - - @SuppressWarnings("resource") - JsrXmlApplicationContext applicationContext = new JsrXmlApplicationContext(); - JsrBeanDefinitionDocumentReader documentReader = new JsrBeanDefinitionDocumentReader(applicationContext); - documentReader.initProperties(document.getDocumentElement()); - - Properties documentJobProperties = documentReader.getJobProperties(); - assertNotNull(documentJobProperties); - assertTrue("Wrong number of job properties", documentJobProperties.size() == 3); - assertEquals("jobProperty1Value", documentJobProperties.getProperty("jobProperty1")); - assertEquals("jobProperty1Value", documentJobProperties.getProperty("jobProperty2")); - assertEquals("", documentJobProperties.getProperty("jobProperty3")); - } - - @Test - public void testJobParametersResolution() { - Properties jobParameters = new Properties(); - jobParameters.setProperty("jobParameter1", "myfile.txt"); - jobParameters.setProperty("jobParameter2", "#{jobProperties['jobProperty2']}"); - jobParameters.setProperty("jobParameter3", "#{jobParameters['jobParameter1']}"); - - @SuppressWarnings("resource") - JsrXmlApplicationContext applicationContext = new JsrXmlApplicationContext(jobParameters); - applicationContext.setValidating(false); - applicationContext.load(new ClassPathResource("jsrBaseContext.xml"), - new ClassPathResource("/META-INF/batch.xml"), - new ClassPathResource("/META-INF/batch-jobs/jsrPropertyPreparseTestJob.xml")); - applicationContext.refresh(); - - Document document = getDocument("/META-INF/batch-jobs/jsrPropertyPreparseTestJob.xml"); - - JsrBeanDefinitionDocumentReader documentReader = new JsrBeanDefinitionDocumentReader(applicationContext); - documentReader.initProperties(document.getDocumentElement()); - - Properties resolvedParameters = documentReader.getJobParameters(); - - assertNotNull(resolvedParameters); - assertTrue("Wrong number of job parameters", resolvedParameters.size() == 3); - assertEquals("myfile.txt", resolvedParameters.getProperty("jobParameter1")); - assertEquals("jobProperty1Value", resolvedParameters.getProperty("jobParameter2")); - assertEquals("myfile.txt", resolvedParameters.getProperty("jobParameter3")); - } - - @Test - public void testJobPropertyResolution() { - Properties jobParameters = new Properties(); - jobParameters.setProperty("file.name", "myfile.txt"); - - @SuppressWarnings("resource") - JsrXmlApplicationContext applicationContext = new JsrXmlApplicationContext(jobParameters); - applicationContext.setValidating(false); - applicationContext.load(new ClassPathResource("jsrBaseContext.xml"), - new ClassPathResource("/META-INF/batch.xml"), - new ClassPathResource("/META-INF/batch-jobs/jsrPropertyPreparseTestJob.xml")); - applicationContext.refresh(); - - Document document = getDocument("/META-INF/batch-jobs/jsrPropertyPreparseTestJob.xml"); - - JsrBeanDefinitionDocumentReader documentReader = new JsrBeanDefinitionDocumentReader(applicationContext); - documentReader.initProperties(document.getDocumentElement()); - - Properties resolvedProperties = documentReader.getJobProperties(); - assertNotNull(resolvedProperties); - assertTrue("Wrong number of job properties", resolvedProperties.size() == 3); - assertEquals("jobProperty1Value", resolvedProperties.getProperty("jobProperty1")); - assertEquals("jobProperty1Value", resolvedProperties.getProperty("jobProperty2")); - assertEquals("myfile.txt", resolvedProperties.getProperty("jobProperty3")); - } - - @SuppressWarnings("resource") - @Test - public void testGenerationOfBeanDefinitionsForMultipleReferences() throws Exception { - JsrXmlApplicationContext applicationContext = new JsrXmlApplicationContext(new Properties()); - applicationContext.setValidating(false); - applicationContext.load(new ClassPathResource("jsrBaseContext.xml"), - new ClassPathResource("/META-INF/batch.xml"), - new ClassPathResource("/META-INF/batch-jobs/jsrUniqueInstanceTests.xml")); - applicationContext.refresh(); - - assertTrue("exitStatusSettingStepListener bean definition not found", applicationContext.containsBeanDefinition("exitStatusSettingStepListener")); - assertTrue("exitStatusSettingStepListener1 bean definition not found", applicationContext.containsBeanDefinition("exitStatusSettingStepListener1")); - assertTrue("exitStatusSettingStepListener2 bean definition not found", applicationContext.containsBeanDefinition("exitStatusSettingStepListener2")); - assertTrue("exitStatusSettingStepListener3 bean definition not found", applicationContext.containsBeanDefinition("exitStatusSettingStepListener3")); - assertTrue("exitStatusSettingStepListenerClassBeanDefinition bean definition not found", applicationContext.containsBeanDefinition("org.springframework.batch.core.jsr.step.listener.ExitStatusSettingStepListener")); - assertTrue("exitStatusSettingStepListener1ClassBeanDefinition bean definition not found", applicationContext.containsBeanDefinition("org.springframework.batch.core.jsr.step.listener.ExitStatusSettingStepListener1")); - assertTrue("exitStatusSettingStepListener2ClassBeanDefinition bean definition not found", applicationContext.containsBeanDefinition("org.springframework.batch.core.jsr.step.listener.ExitStatusSettingStepListener2")); - assertTrue("exitStatusSettingStepListener3ClassBeanDefinition bean definition not found", applicationContext.containsBeanDefinition("org.springframework.batch.core.jsr.step.listener.ExitStatusSettingStepListener3")); - assertTrue("testBatchlet bean definition not found", applicationContext.containsBeanDefinition("testBatchlet")); - assertTrue("testBatchlet1 bean definition not found", applicationContext.containsBeanDefinition("testBatchlet1")); - } - - @Test - public void testArtifactUniqueness() throws Exception { - JobExecution jobExecution = runJob("jsrUniqueInstanceTests", new Properties(), 10000L); - String exitStatus = jobExecution.getExitStatus(); - - assertTrue("Exit status must contain listener3", exitStatus.contains("listener3")); - exitStatus = exitStatus.replace("listener3", ""); - - assertTrue("Exit status must contain listener2", exitStatus.contains("listener2")); - exitStatus = exitStatus.replace("listener2", ""); - - assertTrue("Exit status must contain listener1", exitStatus.contains("listener1")); - exitStatus = exitStatus.replace("listener1", ""); - - assertTrue("Exit status must contain listener0", exitStatus.contains("listener0")); - exitStatus = exitStatus.replace("listener0", ""); - - assertTrue("Exit status must contain listener7", exitStatus.contains("listener7")); - exitStatus = exitStatus.replace("listener7", ""); - - assertTrue("Exit status must contain listener6", exitStatus.contains("listener6")); - exitStatus = exitStatus.replace("listener6", ""); - - assertTrue("Exit status must contain listener5", exitStatus.contains("listener5")); - exitStatus = exitStatus.replace("listener5", ""); - - assertTrue("Exit status must contain listener4", exitStatus.contains("listener4")); - exitStatus = exitStatus.replace("listener4", ""); - - assertTrue("exitStatus must be empty", "".equals(exitStatus)); - } - - @Test - @SuppressWarnings("resource") - public void testGenerationOfSpringBeanDefinitionsForMultipleReferences() { - JsrXmlApplicationContext applicationContext = new JsrXmlApplicationContext(new Properties()); - applicationContext.setValidating(false); - applicationContext.load(new ClassPathResource("jsrBaseContext.xml"), - new ClassPathResource("/META-INF/batch-jobs/jsrSpringInstanceTests.xml")); - - applicationContext.refresh(); - - assertTrue("exitStatusSettingStepListener bean definition not found", applicationContext.containsBeanDefinition("exitStatusSettingStepListener")); - assertTrue("scopedTarget.exitStatusSettingStepListener bean definition not found", applicationContext.containsBeanDefinition("scopedTarget.exitStatusSettingStepListener")); - - BeanDefinition exitStatusSettingStepListenerBeanDefinition = applicationContext.getBeanDefinition("scopedTarget.exitStatusSettingStepListener"); - assertTrue("step".equals(exitStatusSettingStepListenerBeanDefinition.getScope())); - - assertTrue("Should not contain bean definition for exitStatusSettingStepListener1", !applicationContext.containsBeanDefinition("exitStatusSettingStepListener1")); - assertTrue("Should not contain bean definition for exitStatusSettingStepListener2", !applicationContext.containsBeanDefinition("exitStatusSettingStepListener2")); - assertTrue("Should not contain bean definition for exitStatusSettingStepListener3", !applicationContext.containsBeanDefinition("exitStatusSettingStepListener3")); - - assertTrue("Should not contain bean definition for testBatchlet1", !applicationContext.containsBeanDefinition("testBatchlet1")); - assertTrue("Should not contain bean definition for testBatchlet2", !applicationContext.containsBeanDefinition("testBatchlet2")); - - assertTrue("testBatchlet bean definition not found", applicationContext.containsBeanDefinition("testBatchlet")); - - BeanDefinition testBatchletBeanDefinition = applicationContext.getBeanDefinition("testBatchlet"); - assertTrue("singleton".equals(testBatchletBeanDefinition.getScope())); - } - - @Test - public void testSpringArtifactUniqueness() throws Exception { - JobExecution jobExecution = runJob("jsrSpringInstanceTests", new Properties(), 10000L); - String exitStatus = jobExecution.getExitStatus(); - - assertTrue("Exit status must contain listener1", exitStatus.contains("listener1")); - assertTrue("exitStatus must contain 2 listener1 values", StringUtils.countOccurrencesOf(exitStatus, "listener1") == 2); - - exitStatus = exitStatus.replace("listener1", ""); - - assertTrue("Exit status must contain listener4", exitStatus.contains("listener4")); - assertTrue("exitStatus must contain 2 listener4 values", StringUtils.countOccurrencesOf(exitStatus, "listener4") == 2); - exitStatus = exitStatus.replace("listener4", ""); - - assertTrue("exitStatus must be empty", "".equals(exitStatus)); - } - - private Document getDocument(String location) { - InputStream inputStream = this.getClass().getResourceAsStream(location); - - try { - return documentLoader.loadDocument(new InputSource(inputStream), - new DelegatingEntityResolver(getClass().getClassLoader()), errorHandler, 0, true); - } catch (Exception e) { - throw new RuntimeException(e); - } finally { - try { - inputStream.close(); - } catch (IOException e) { } - } - } - - public static class TestBatchlet implements Batchlet { - @Override - public String process() throws Exception { - return null; - } - - @Override - public void stop() throws Exception { - - } - } -} diff --git a/spring-batch-core/src/test/java/org/springframework/batch/core/jsr/configuration/xml/JsrDecisionParsingTests.java b/spring-batch-core/src/test/java/org/springframework/batch/core/jsr/configuration/xml/JsrDecisionParsingTests.java deleted file mode 100644 index bb3804433..000000000 --- a/spring-batch-core/src/test/java/org/springframework/batch/core/jsr/configuration/xml/JsrDecisionParsingTests.java +++ /dev/null @@ -1,58 +0,0 @@ -/* - * Copyright 2013-2021 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.springframework.batch.core.jsr.configuration.xml; - -import static org.junit.Assert.assertEquals; - -import jakarta.batch.api.Decider; - -import org.junit.Test; -import org.junit.runner.RunWith; -import org.springframework.batch.core.BatchStatus; -import org.springframework.batch.core.Job; -import org.springframework.batch.core.JobExecution; -import org.springframework.batch.core.JobParameters; -import org.springframework.batch.core.launch.JobLauncher; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.test.context.ContextConfiguration; -import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; - -@ContextConfiguration -@RunWith(SpringJUnit4ClassRunner.class) -public class JsrDecisionParsingTests { - - @Autowired - public Job job; - - @Autowired - public JobLauncher jobLauncher; - - @Test - public void test() throws Exception { - JobExecution execution = jobLauncher.run(job, new JobParameters()); - assertEquals(BatchStatus.COMPLETED, execution.getStatus()); - assertEquals(3, execution.getStepExecutions().size()); - } - - public static class JsrDecider implements Decider { - - @Override - public String decide(jakarta.batch.runtime.StepExecution[] executions) - throws Exception { - return "next"; - } - } -} diff --git a/spring-batch-core/src/test/java/org/springframework/batch/core/jsr/configuration/xml/JsrSplitParsingTests.java b/spring-batch-core/src/test/java/org/springframework/batch/core/jsr/configuration/xml/JsrSplitParsingTests.java deleted file mode 100644 index 436148b02..000000000 --- a/spring-batch-core/src/test/java/org/springframework/batch/core/jsr/configuration/xml/JsrSplitParsingTests.java +++ /dev/null @@ -1,66 +0,0 @@ -/* - * Copyright 2013-2021 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.springframework.batch.core.jsr.configuration.xml; - -import org.junit.Assert; -import org.junit.Test; -import org.springframework.batch.core.jsr.AbstractJsrTestCase; -import org.springframework.beans.PropertyValue; -import org.springframework.beans.factory.config.RuntimeBeanReference; -import org.springframework.beans.factory.parsing.BeanDefinitionParsingException; -import org.springframework.beans.factory.support.BeanDefinitionRegistry; -import org.springframework.context.support.ClassPathXmlApplicationContext; -import org.springframework.core.task.SimpleAsyncTaskExecutor; - -import static org.junit.Assert.assertTrue; -import static org.junit.Assert.fail; - -public class JsrSplitParsingTests extends AbstractJsrTestCase { - - @Test - public void testOneFlowInSplit() { - try { - new ClassPathXmlApplicationContext("/org/springframework/batch/core/jsr/configuration/xml/invalid-split-context.xml"); - } catch (BeanDefinitionParsingException bdpe) { - assertTrue(bdpe.getMessage().contains("A must contain at least two 'flow' elements.")); - return; - } - - fail("Expected exception was not thrown"); - } - - @Test - public void testUserSpecifiedTaskExecutor() { - ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("/org/springframework/batch/core/jsr/configuration/xml/user-specified-split-task-executor-context.xml"); - BeanDefinitionRegistry registry = (BeanDefinitionRegistry) context.getBeanFactory(); - PropertyValue propertyValue = new JsrSplitParser(null).getSplitTaskExecutorPropertyValue(registry); - - RuntimeBeanReference runtimeBeanReferenceValue = (RuntimeBeanReference) propertyValue.getValue(); - - Assert.assertTrue("RuntimeBeanReference should have a name of jsr352splitTaskExecutor" , "jsr352splitTaskExecutor".equals(runtimeBeanReferenceValue.getBeanName())); - context.close(); - } - - @Test - public void testDefaultTaskExecutor() { - ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("/org/springframework/batch/core/jsr/configuration/xml/default-split-task-executor-context.xml"); - BeanDefinitionRegistry registry = (BeanDefinitionRegistry) context.getBeanFactory(); - PropertyValue propertyValue = new JsrSplitParser(null).getSplitTaskExecutorPropertyValue(registry); - Assert.assertTrue("Task executor not an instance of SimpleAsyncTaskExecutor" , (propertyValue.getValue() instanceof SimpleAsyncTaskExecutor)); - context.close(); - } - -} diff --git a/spring-batch-core/src/test/java/org/springframework/batch/core/jsr/configuration/xml/JsrXmlApplicationContextTests.java b/spring-batch-core/src/test/java/org/springframework/batch/core/jsr/configuration/xml/JsrXmlApplicationContextTests.java deleted file mode 100644 index e6770c050..000000000 --- a/spring-batch-core/src/test/java/org/springframework/batch/core/jsr/configuration/xml/JsrXmlApplicationContextTests.java +++ /dev/null @@ -1,65 +0,0 @@ -/* - * Copyright 2013-2014 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.springframework.batch.core.jsr.configuration.xml; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertTrue; - -import java.util.Properties; - -import org.junit.Test; -import org.springframework.beans.factory.config.BeanDefinition; - -/** - *

- * Test cases around {@link JsrXmlApplicationContext}. - *

- * - * @author Chris Schaefer - */ -public class JsrXmlApplicationContextTests { - private static final String JOB_PARAMETERS_BEAN_DEFINITION_NAME = "jsr_jobParameters"; - - @Test - @SuppressWarnings("resource") - public void testNullProperties() { - JsrXmlApplicationContext applicationContext = new JsrXmlApplicationContext(null); - - BeanDefinition beanDefinition = applicationContext.getBeanDefinition(JOB_PARAMETERS_BEAN_DEFINITION_NAME); - Properties properties = (Properties) beanDefinition.getConstructorArgumentValues().getGenericArgumentValue(Properties.class).getValue(); - - assertNotNull("Properties should not be null", properties); - assertTrue("Properties should be empty", properties.isEmpty()); - } - - @Test - @SuppressWarnings("resource") - public void testWithProperties() { - Properties properties = new Properties(); - properties.put("prop1key", "prop1val"); - - JsrXmlApplicationContext applicationContext = new JsrXmlApplicationContext(properties); - - BeanDefinition beanDefinition = applicationContext.getBeanDefinition(JOB_PARAMETERS_BEAN_DEFINITION_NAME); - Properties storedProperties = (Properties) beanDefinition.getConstructorArgumentValues().getGenericArgumentValue(Properties.class).getValue(); - - assertNotNull("Properties should not be null", storedProperties); - assertFalse("Properties not be empty", storedProperties.isEmpty()); - assertEquals("prop1val", storedProperties.getProperty("prop1key")); - } -} diff --git a/spring-batch-core/src/test/java/org/springframework/batch/core/jsr/configuration/xml/ListenerParserTests.java b/spring-batch-core/src/test/java/org/springframework/batch/core/jsr/configuration/xml/ListenerParserTests.java deleted file mode 100644 index 331a4cd02..000000000 --- a/spring-batch-core/src/test/java/org/springframework/batch/core/jsr/configuration/xml/ListenerParserTests.java +++ /dev/null @@ -1,67 +0,0 @@ -/* - * Copyright 2013-2014 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.springframework.batch.core.jsr.configuration.xml; - -import org.junit.Test; -import org.springframework.batch.core.listener.StepListenerFactoryBean; -import org.springframework.beans.factory.config.BeanDefinition; -import org.springframework.beans.factory.support.AbstractBeanDefinition; -import org.springframework.beans.factory.support.BeanDefinitionBuilder; -import org.springframework.context.support.GenericApplicationContext; -import static org.junit.Assert.assertEquals; - -/** - *

- * Test cases around scoping of job/step listeners when building their bean definitions. - *

- * - * @author Chris Schaefer - */ -public class ListenerParserTests { - @Test - public void testStepListenerStepScoped() { - @SuppressWarnings("resource") - GenericApplicationContext applicationContext = new GenericApplicationContext(); - - AbstractBeanDefinition newBeanDefinition = BeanDefinitionBuilder.genericBeanDefinition("stepListener").getBeanDefinition(); - newBeanDefinition.setScope("step"); - - applicationContext.registerBeanDefinition("stepListener", newBeanDefinition); - - ListenerParser listenerParser = new ListenerParser(StepListenerFactoryBean.class, "listeners"); - listenerParser.applyListenerScope("stepListener", applicationContext); - - BeanDefinition beanDefinition = applicationContext.getBeanDefinition("stepListener"); - assertEquals("step", beanDefinition.getScope()); - } - - @Test - public void testJobListenerSingletonScoped() { - @SuppressWarnings("resource") - GenericApplicationContext applicationContext = new GenericApplicationContext(); - - AbstractBeanDefinition newBeanDefinition = BeanDefinitionBuilder.genericBeanDefinition("jobListener").getBeanDefinition(); - newBeanDefinition.setScope("step"); - - applicationContext.registerBeanDefinition("jobListener", newBeanDefinition); - - ListenerParser listenerParser = new ListenerParser(JsrJobListenerFactoryBean.class, "jobExecutionListeners"); - listenerParser.applyListenerScope("jobListener", applicationContext); - - BeanDefinition beanDefinition = applicationContext.getBeanDefinition("jobListener"); - assertEquals("job", beanDefinition.getScope()); - } -} diff --git a/spring-batch-core/src/test/java/org/springframework/batch/core/jsr/configuration/xml/PartitionParserTests.java b/spring-batch-core/src/test/java/org/springframework/batch/core/jsr/configuration/xml/PartitionParserTests.java deleted file mode 100644 index 5ccdfab6e..000000000 --- a/spring-batch-core/src/test/java/org/springframework/batch/core/jsr/configuration/xml/PartitionParserTests.java +++ /dev/null @@ -1,367 +0,0 @@ -/* - * Copyright 2013-2021 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.springframework.batch.core.jsr.configuration.xml; - -import java.io.Serializable; -import java.util.ArrayList; -import java.util.Collections; -import java.util.HashSet; -import java.util.List; -import java.util.Properties; -import java.util.Set; -import java.util.Vector; -import java.util.concurrent.atomic.AtomicInteger; -import java.util.regex.Matcher; -import java.util.regex.Pattern; -import jakarta.batch.api.BatchProperty; -import jakarta.batch.api.Batchlet; -import jakarta.batch.api.chunk.AbstractItemReader; -import jakarta.batch.api.chunk.AbstractItemWriter; -import jakarta.batch.api.partition.PartitionPlan; -import jakarta.batch.api.partition.PartitionPlanImpl; -import jakarta.batch.runtime.BatchStatus; -import jakarta.batch.runtime.JobExecution; -import jakarta.batch.runtime.context.JobContext; -import jakarta.batch.runtime.context.StepContext; -import jakarta.inject.Inject; - -import org.junit.Before; -import org.junit.Test; - -import org.springframework.batch.core.jsr.AbstractJsrTestCase; -import org.springframework.util.Assert; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; - -public class PartitionParserTests extends AbstractJsrTestCase { - private Pattern caPattern = Pattern.compile("ca"); - private Pattern asPattern = Pattern.compile("AS"); - private static final long TIMEOUT = 10000L; - - @Before - public void before() { - MyBatchlet.processed = new AtomicInteger(0); - MyBatchlet.threadNames = Collections.synchronizedSet(new HashSet<>()); - MyBatchlet.artifactNames = Collections.synchronizedSet(new HashSet<>()); - PartitionCollector.artifactNames = Collections.synchronizedSet(new HashSet<>()); - } - - @Test - public void testBatchletNoProperties() throws Exception { - BatchStatus curBatchStatus = runJob("partitionParserTestsBatchlet", new Properties(), TIMEOUT).getBatchStatus(); - - assertEquals(BatchStatus.COMPLETED, curBatchStatus); - assertEquals(10, MyBatchlet.processed.get()); - assertEquals(10, MyBatchlet.threadNames.size()); - } - - @Test - public void testChunkNoProperties() throws Exception { - JobExecution execution = runJob("partitionParserTestsChunk", new Properties(), TIMEOUT); - - assertEquals(BatchStatus.COMPLETED, execution.getBatchStatus()); - assertEquals(30, ItemReader.processedItems.size()); - assertEquals(10, ItemReader.threadNames.size()); - assertEquals(30, ItemWriter.processedItems.size()); - assertEquals(10, ItemWriter.threadNames.size()); - } - - @Test - public void testFullPartitionConfiguration() throws Exception { - JobExecution execution = runJob("fullPartitionParserTests", new Properties(), TIMEOUT); - - assertEquals(BatchStatus.COMPLETED, execution.getBatchStatus()); - assertTrue(execution.getExitStatus().startsWith("BPS_")); - assertTrue(execution.getExitStatus().endsWith("BPSC_APSC")); - assertEquals(3, countMatches(execution.getExitStatus(), caPattern)); - assertEquals(3, countMatches(execution.getExitStatus(), asPattern)); - assertEquals(3, MyBatchlet.processed.get()); - assertEquals(3, MyBatchlet.threadNames.size()); - } - - @Test - public void testFullPartitionConfigurationWithProperties() throws Exception { - JobExecution execution = runJob("fullPartitionParserWithPropertiesTests", new Properties(), TIMEOUT); - - assertEquals(BatchStatus.COMPLETED, execution.getBatchStatus()); - assertTrue(execution.getExitStatus().startsWith("BPS_")); - assertTrue(execution.getExitStatus().endsWith("BPSC_APSC")); - assertEquals(3, countMatches(execution.getExitStatus(), caPattern)); - assertEquals(3, countMatches(execution.getExitStatus(), asPattern)); - assertEquals(3, MyBatchlet.processed.get()); - assertEquals(3, MyBatchlet.threadNames.size()); - assertEquals(MyBatchlet.artifactNames.iterator().next(), "batchlet"); - assertEquals(PartitionMapper.name, "mapper"); - assertEquals(PartitionAnalyzer.name, "analyzer"); - assertEquals(PartitionReducer.name, "reducer"); - assertEquals(PartitionCollector.artifactNames.size(), 1); - assertTrue(PartitionCollector.artifactNames.contains("collector")); - } - - @Test - public void testFullPartitionConfigurationWithMapperSuppliedProperties() throws Exception { - JobExecution execution = runJob("fullPartitionParserWithMapperPropertiesTests", new Properties(), TIMEOUT); - - assertEquals(BatchStatus.COMPLETED, execution.getBatchStatus()); - assertTrue(execution.getExitStatus().startsWith("BPS_")); - assertTrue(execution.getExitStatus().endsWith("BPSC_APSC")); - assertEquals(3, countMatches(execution.getExitStatus(), caPattern)); - assertEquals(3, countMatches(execution.getExitStatus(), asPattern)); - assertEquals(3, MyBatchlet.processed.get()); - assertEquals(3, MyBatchlet.threadNames.size()); - - assertEquals(MyBatchlet.artifactNames.size(), 3); - assertTrue(MyBatchlet.artifactNames.contains("batchlet0")); - assertTrue(MyBatchlet.artifactNames.contains("batchlet1")); - assertTrue(MyBatchlet.artifactNames.contains("batchlet2")); - assertEquals(PartitionCollector.artifactNames.size(), 3); - assertTrue(PartitionCollector.artifactNames.contains("collector0")); - assertTrue(PartitionCollector.artifactNames.contains("collector1")); - assertTrue(PartitionCollector.artifactNames.contains("collector2")); - - assertEquals(PartitionAnalyzer.name, "analyzer"); - assertEquals(PartitionReducer.name, "reducer"); - } - - @Test - public void testFullPartitionConfigurationWithHardcodedProperties() throws Exception { - JobExecution execution = runJob("fullPartitionParserWithHardcodedPropertiesTests", new Properties(), TIMEOUT); - - assertEquals(BatchStatus.COMPLETED, execution.getBatchStatus()); - assertTrue(execution.getExitStatus().startsWith("BPS_")); - assertTrue(execution.getExitStatus().endsWith("BPSC_APSC")); - assertEquals(3, countMatches(execution.getExitStatus(), caPattern)); - assertEquals(3, countMatches(execution.getExitStatus(), asPattern)); - assertEquals(3, MyBatchlet.processed.get()); - assertEquals(3, MyBatchlet.threadNames.size()); - - assertEquals(MyBatchlet.artifactNames.size(), 3); - assertTrue(MyBatchlet.artifactNames.contains("batchlet0")); - assertTrue(MyBatchlet.artifactNames.contains("batchlet1")); - assertTrue(MyBatchlet.artifactNames.contains("batchlet2")); - assertEquals(PartitionCollector.artifactNames.size(), 3); - assertTrue(PartitionCollector.artifactNames.contains("collector0")); - assertTrue(PartitionCollector.artifactNames.contains("collector1")); - assertTrue(PartitionCollector.artifactNames.contains("collector2")); - - assertEquals(PartitionMapper.name, "mapper"); - assertEquals(PartitionAnalyzer.name, "analyzer"); - assertEquals(PartitionReducer.name, "reducer"); - } - - private int countMatches(String string, Pattern pattern) { - Matcher matcher = pattern.matcher(string); - - int count = 0; - while(matcher.find()) { - count++; - } - - return count; - } - - public static class PartitionReducer implements jakarta.batch.api.partition.PartitionReducer { - - public static String name; - - @Inject - @BatchProperty - String artifactName; - - @Inject - protected JobContext jobContext; - - @Override - public void beginPartitionedStep() throws Exception { - name = artifactName; - jobContext.setExitStatus("BPS_"); - } - - @Override - public void beforePartitionedStepCompletion() throws Exception { - jobContext.setExitStatus(jobContext.getExitStatus() + "BPSC_"); - } - - @Override - public void rollbackPartitionedStep() throws Exception { - jobContext.setExitStatus(jobContext.getExitStatus() + "RPS"); - } - - @Override - public void afterPartitionedStepCompletion(PartitionStatus status) - throws Exception { - jobContext.setExitStatus(jobContext.getExitStatus() + "APSC"); - } - } - - public static class PartitionAnalyzer implements jakarta.batch.api.partition.PartitionAnalyzer { - - public static String name; - - @Inject - @BatchProperty - String artifactName; - - @Inject - protected JobContext jobContext; - - @Override - public void analyzeCollectorData(Serializable data) throws Exception { - name = artifactName; - - Assert.isTrue(data.equals("c"), "Expected c but was " + data); - jobContext.setExitStatus(jobContext.getExitStatus() + data + "a"); - } - - @Override - public void analyzeStatus(BatchStatus batchStatus, String exitStatus) - throws Exception { - Assert.isTrue(batchStatus.equals(BatchStatus.COMPLETED), String.format("expected %s but received %s", BatchStatus.COMPLETED, batchStatus)); - jobContext.setExitStatus(jobContext.getExitStatus() + "AS"); - } - } - - public static class PartitionCollector implements jakarta.batch.api.partition.PartitionCollector { - - protected static Set artifactNames = Collections.synchronizedSet(new HashSet<>()); - - @Inject - @BatchProperty - String artifactName; - - @Override - public Serializable collectPartitionData() throws Exception { - artifactNames.add(artifactName); - return "c"; - } - } - - public static class PropertyPartitionMapper implements jakarta.batch.api.partition.PartitionMapper { - - @Override - public PartitionPlan mapPartitions() throws Exception { - Properties[] props = new Properties[3]; - - for(int i = 0; i < props.length; i++) { - props[i] = new Properties(); - props[i].put("collectorName", "collector" + i); - props[i].put("batchletName", "batchlet" + i); - } - - PartitionPlan plan = new PartitionPlanImpl(); - plan.setPartitions(3); - plan.setThreads(3); - plan.setPartitionProperties(props); - - return plan; - } - } - - public static class PartitionMapper implements jakarta.batch.api.partition.PartitionMapper { - - public static String name; - - @Inject - @BatchProperty - public String artifactName; - - @Override - public PartitionPlan mapPartitions() throws Exception { - name = artifactName; - - PartitionPlan plan = new PartitionPlanImpl(); - plan.setPartitions(3); - plan.setThreads(3); - - return plan; - } - } - - public static class MyBatchlet implements Batchlet { - - protected static AtomicInteger processed = new AtomicInteger(0);; - protected static Set threadNames = Collections.synchronizedSet(new HashSet<>()); - protected static Set artifactNames = Collections.synchronizedSet(new HashSet<>()); - - @Inject - @BatchProperty - String artifactName; - - @Inject - StepContext stepContext; - - @Inject - JobContext jobContext; - - @Override - public String process() throws Exception { - artifactNames.add(artifactName); - threadNames.add(Thread.currentThread().getName()); - processed.incrementAndGet(); - - stepContext.setExitStatus("bad step exit status"); - jobContext.setExitStatus("bad job exit status"); - - return null; - } - - @Override - public void stop() throws Exception { - } - } - - public static class ItemReader extends AbstractItemReader { - - private List items; - protected static Vector processedItems = new Vector<>(); - protected static Set threadNames = Collections.synchronizedSet(new HashSet<>()); - - @Override - public void open(Serializable checkpoint) throws Exception { - items = new ArrayList<>(); - items.add(1); - items.add(2); - items.add(3); - } - - @Override - public Object readItem() throws Exception { - threadNames.add(Thread.currentThread().getName()); - if(items.size() > 0) { - Integer curItem = items.remove(0); - processedItems.add(curItem); - return curItem; - } else { - return null; - } - } - } - - public static class ItemWriter extends AbstractItemWriter { - - protected static Vector processedItems = new Vector<>(); - protected static Set threadNames = Collections.synchronizedSet(new HashSet<>()); - - @Override - public void writeItems(List items) throws Exception { - threadNames.add(Thread.currentThread().getName()); - for (Object object : items) { - processedItems.add((Integer) object); - } - } - } -} diff --git a/spring-batch-core/src/test/java/org/springframework/batch/core/jsr/configuration/xml/RetryListenerTests.java b/spring-batch-core/src/test/java/org/springframework/batch/core/jsr/configuration/xml/RetryListenerTests.java deleted file mode 100644 index 685696cac..000000000 --- a/spring-batch-core/src/test/java/org/springframework/batch/core/jsr/configuration/xml/RetryListenerTests.java +++ /dev/null @@ -1,248 +0,0 @@ -/* - * Copyright 2013-2021 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.springframework.batch.core.jsr.configuration.xml; - -import java.io.Serializable; -import java.util.Collection; -import java.util.List; -import jakarta.batch.api.chunk.ItemProcessor; -import jakarta.batch.api.chunk.ItemReader; -import jakarta.batch.api.chunk.ItemWriter; -import jakarta.batch.api.chunk.listener.RetryProcessListener; -import jakarta.batch.api.chunk.listener.RetryReadListener; -import jakarta.batch.api.chunk.listener.RetryWriteListener; -import jakarta.batch.operations.BatchRuntimeException; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -import org.junit.Test; -import org.springframework.batch.core.ExitStatus; -import org.springframework.batch.core.Job; -import org.springframework.batch.core.JobExecution; -import org.springframework.batch.core.JobParameters; -import org.springframework.batch.core.StepExecution; -import org.springframework.batch.core.launch.JobLauncher; -import org.springframework.context.ApplicationContext; -import org.springframework.context.support.ClassPathXmlApplicationContext; -import org.springframework.retry.RetryException; -import org.springframework.util.Assert; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; - -/** - *

- * Test cases around JSR-352 retry listeners. - *

- * - * @author Chris Schaefer - * @author Mahmoud Ben Hassine - * @since 3.0 - */ -public class RetryListenerTests { - private static final Log LOG = LogFactory.getLog(RetryListenerTests.class); - - @Test - @SuppressWarnings("resource") - public void testReadRetryExhausted() throws Exception { - ApplicationContext context = new ClassPathXmlApplicationContext("org/springframework/batch/core/jsr/configuration/xml/RetryReadListenerExhausted.xml"); - - JobLauncher jobLauncher = context.getBean(JobLauncher.class); - JobExecution jobExecution = jobLauncher.run(context.getBean(Job.class), new JobParameters()); - - List failureExceptions = jobExecution.getAllFailureExceptions(); - assertTrue("Expected 1 failure exceptions", failureExceptions.size() == 1); - assertTrue("Failure exception must be of type RetryException", (failureExceptions.get(0) instanceof RetryException)); - assertTrue("Exception cause must be of type IllegalArgumentException", (failureExceptions.get(0).getCause() instanceof IllegalArgumentException)); - - assertEquals(ExitStatus.FAILED, jobExecution.getExitStatus()); - } - - @Test - @SuppressWarnings("resource") - public void testReadRetryOnce() throws Exception { - ApplicationContext context = new ClassPathXmlApplicationContext("org/springframework/batch/core/jsr/configuration/xml/RetryReadListenerRetryOnce.xml"); - - JobLauncher jobLauncher = context.getBean(JobLauncher.class); - JobExecution jobExecution = jobLauncher.run(context.getBean(Job.class), new JobParameters()); - - Collection stepExecutions = jobExecution.getStepExecutions(); - assertEquals(1, stepExecutions.size()); - - StepExecution stepExecution = stepExecutions.iterator().next(); - assertEquals(1, stepExecution.getCommitCount()); - assertEquals(2, stepExecution.getReadCount()); - - assertEquals(ExitStatus.COMPLETED, jobExecution.getExitStatus()); - } - - @Test - @SuppressWarnings("resource") - public void testReadRetryExceptionInListener() throws Exception { - ApplicationContext context = new ClassPathXmlApplicationContext("org/springframework/batch/core/jsr/configuration/xml/RetryReadListenerListenerException.xml"); - - JobLauncher jobLauncher = context.getBean(JobLauncher.class); - JobExecution jobExecution = jobLauncher.run(context.getBean(Job.class), new JobParameters()); - - List failureExceptions = jobExecution.getAllFailureExceptions(); - assertTrue("Failure exceptions must equal one", failureExceptions.size() == 1); - assertTrue("Failure exception must be of type RetryException", (failureExceptions.get(0) instanceof RetryException)); - assertTrue("Exception cause must be of type BatchRuntimeException", (failureExceptions.get(0).getCause() instanceof BatchRuntimeException)); - - assertEquals(ExitStatus.FAILED, jobExecution.getExitStatus()); - } - - public static class ExceptionThrowingRetryReadListener implements RetryReadListener { - @Override - public void onRetryReadException(Exception ex) throws Exception { - Assert.isInstanceOf(IllegalArgumentException.class, ex); - throw new IllegalStateException(); - } - } - - public static class TestRetryReadListener implements RetryReadListener { - @Override - public void onRetryReadException(Exception ex) throws Exception { - Assert.isInstanceOf(IllegalArgumentException.class, ex); - } - } - - public static class TestRetryProcessListener implements RetryProcessListener { - @Override - public void onRetryProcessException(Object item, Exception ex) throws Exception { - Assert.isInstanceOf(String.class, item); - - String currentItem = (String) item; - - Assert.isTrue("three".equals(currentItem), "currentItem was expected to be three but was not " + currentItem); - Assert.isInstanceOf(IllegalArgumentException.class, ex); - } - } - - public static class TestRetryWriteListener implements RetryWriteListener { - @Override - public void onRetryWriteException(List items, Exception ex) throws Exception { - Assert.isTrue(items.size() == 2, "Must be two items to write"); - Assert.isTrue(items.contains("three"), "Items must contain the string 'three'"); - Assert.isTrue(items.contains("one"), "Items must contain the string 'one'"); - Assert.isInstanceOf(IllegalArgumentException.class, ex); - } - } - - public static class AlwaysFailItemReader implements ItemReader { - @Override - public void open(Serializable checkpoint) throws Exception { - } - - @Override - public void close() throws Exception { - } - - @Override - public Object readItem() throws Exception { - throw new IllegalArgumentException(); - } - - @Override - public Serializable checkpointInfo() throws Exception { - return null; - } - } - - public static class FailOnceItemReader implements ItemReader { - private int cnt; - - @Override - public void open(Serializable checkpoint) throws Exception { - } - - @Override - public void close() throws Exception { - } - - @Override - public Object readItem() throws Exception { - if(cnt == 0) { - cnt++; - return "one"; - } else if (cnt == 1) { - cnt++; - throw new IllegalArgumentException(); - } else if (cnt == 2) { - cnt++; - return "three"; - } - - return null; - } - - @Override - public Serializable checkpointInfo() throws Exception { - return null; - } - } - - public static class FailOnceItemProcessor implements ItemProcessor { - private int cnt; - - @Override - public Object processItem(Object item) throws Exception { - if(cnt == 0) { - cnt++; - return "one"; - } else if (cnt == 1) { - cnt++; - throw new IllegalArgumentException(); - } else if (cnt == 2) { - cnt++; - return "three"; - } - - return null; - } - } - - public static class FailOnceItemWriter implements ItemWriter { - private int cnt; - - @Override - public void open(Serializable checkpoint) throws Exception { - } - - @Override - public void close() throws Exception { - } - - @Override - public void writeItems(List items) throws Exception { - for(@SuppressWarnings("unused") Object item : items) { - if(cnt == 0) { - cnt++; - LOG.info("one"); - } else if (cnt == 1) { - cnt++; - throw new IllegalArgumentException(); - } else if (cnt == 2) { - cnt++; - LOG.info("three"); - } - } - } - - @Override - public Serializable checkpointInfo() throws Exception { - return null; - } - } -} diff --git a/spring-batch-core/src/test/java/org/springframework/batch/core/jsr/configuration/xml/SimpleItemBasedJobParsingTests.java b/spring-batch-core/src/test/java/org/springframework/batch/core/jsr/configuration/xml/SimpleItemBasedJobParsingTests.java deleted file mode 100644 index b81a04e5b..000000000 --- a/spring-batch-core/src/test/java/org/springframework/batch/core/jsr/configuration/xml/SimpleItemBasedJobParsingTests.java +++ /dev/null @@ -1,122 +0,0 @@ -/* - * Copyright 2013-2021 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.springframework.batch.core.jsr.configuration.xml; - -import static org.junit.Assert.assertEquals; - -import java.io.Serializable; -import java.util.List; - -import jakarta.batch.api.chunk.CheckpointAlgorithm; -import jakarta.batch.api.chunk.ItemWriter; - -import org.junit.Test; -import org.junit.runner.RunWith; -import org.springframework.batch.core.BatchStatus; -import org.springframework.batch.core.Job; -import org.springframework.batch.core.JobExecution; -import org.springframework.batch.core.JobParameters; -import org.springframework.batch.core.Step; -import org.springframework.batch.core.launch.JobLauncher; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.test.context.ContextConfiguration; -import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; - -@ContextConfiguration -@RunWith(SpringJUnit4ClassRunner.class) -public class SimpleItemBasedJobParsingTests { - - @Autowired - public Job job; - - @Autowired - public Step step1; - - @Autowired - public CountingItemProcessor processor; - - @Autowired - public CountingCompletionPolicy policy; - - @Autowired - public CountingItemWriter writer; - - @Autowired - public JobLauncher jobLauncher; - - @Test - public void test() throws Exception { - JobExecution execution = jobLauncher.run(job, new JobParameters()); - assertEquals(BatchStatus.COMPLETED, execution.getStatus()); - assertEquals(4, execution.getStepExecutions().size()); - assertEquals(27, processor.count); - assertEquals(1, policy.checkpointCount); - assertEquals(7, writer.writeCount); - assertEquals(27, writer.itemCount); - } - - public static class CountingItemWriter implements ItemWriter { - - protected int writeCount = 0; - protected int itemCount = 0; - - @Override - public void open(Serializable checkpoint) throws Exception { - } - - @Override - public void close() throws Exception { - } - - @Override - public void writeItems(List items) throws Exception { - System.err.println("Items to be written: " + items); - writeCount++; - itemCount += items.size(); - } - - @Override - public Serializable checkpointInfo() throws Exception { - return null; - } - } - - public static class CountingCompletionPolicy implements CheckpointAlgorithm { - - protected int itemCount = 0; - protected int checkpointCount = 0; - - @Override - public int checkpointTimeout() throws Exception { - return 0; - } - - @Override - public void beginCheckpoint() throws Exception { - } - - @Override - public boolean isReadyToCheckpoint() throws Exception { - itemCount++; - return itemCount % 3 == 0; - } - - @Override - public void endCheckpoint() throws Exception { - checkpointCount++; - } - } -} diff --git a/spring-batch-core/src/test/java/org/springframework/batch/core/jsr/configuration/xml/SimpleJobParsingTests.java b/spring-batch-core/src/test/java/org/springframework/batch/core/jsr/configuration/xml/SimpleJobParsingTests.java deleted file mode 100644 index 7e598e1e5..000000000 --- a/spring-batch-core/src/test/java/org/springframework/batch/core/jsr/configuration/xml/SimpleJobParsingTests.java +++ /dev/null @@ -1,77 +0,0 @@ -/* - * Copyright 2013-2021 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.springframework.batch.core.jsr.configuration.xml; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotNull; - -import jakarta.batch.api.Batchlet; - -import org.junit.Test; -import org.junit.runner.RunWith; -import org.springframework.batch.core.BatchStatus; -import org.springframework.batch.core.Job; -import org.springframework.batch.core.JobExecution; -import org.springframework.batch.core.JobParameters; -import org.springframework.batch.core.Step; -import org.springframework.batch.core.launch.JobLauncher; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Qualifier; -import org.springframework.test.context.ContextConfiguration; -import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; - -@ContextConfiguration -@RunWith(SpringJUnit4ClassRunner.class) -public class SimpleJobParsingTests { - - @Autowired - public Job job; - - @Autowired - @Qualifier("step1") - public Step step1; - - @Autowired - @Qualifier("step2") - public Step step2; - - @Autowired - @Qualifier("step3") - public Step step3; - - @Autowired - public JobLauncher jobLauncher; - - @Autowired - public Batchlet batchlet; - - @Test - public void test() throws Exception { - assertNotNull(job); - assertEquals("job1", job.getName()); - assertNotNull(step1); - assertEquals("step1", step1.getName()); - assertNotNull(step2); - assertEquals("step2", step2.getName()); - assertNotNull(step3); - assertEquals("step3", step3.getName()); - assertNotNull(batchlet); - - JobExecution execution = jobLauncher.run(job, new JobParameters()); - assertEquals(BatchStatus.COMPLETED, execution.getStatus()); - assertEquals(3, execution.getStepExecutions().size()); - } -} diff --git a/spring-batch-core/src/test/java/org/springframework/batch/core/jsr/configuration/xml/StepListenerParsingTests.java b/spring-batch-core/src/test/java/org/springframework/batch/core/jsr/configuration/xml/StepListenerParsingTests.java deleted file mode 100644 index 9aefe8a33..000000000 --- a/spring-batch-core/src/test/java/org/springframework/batch/core/jsr/configuration/xml/StepListenerParsingTests.java +++ /dev/null @@ -1,95 +0,0 @@ -/* - * Copyright 2013-2021 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.springframework.batch.core.jsr.configuration.xml; - -import static org.junit.Assert.assertEquals; - -import jakarta.batch.api.listener.StepListener; - -import org.junit.Test; -import org.junit.runner.RunWith; -import org.springframework.batch.core.BatchStatus; -import org.springframework.batch.core.ExitStatus; -import org.springframework.batch.core.Job; -import org.springframework.batch.core.JobExecution; -import org.springframework.batch.core.JobParameters; -import org.springframework.batch.core.StepExecution; -import org.springframework.batch.core.StepExecutionListener; -import org.springframework.batch.core.launch.JobLauncher; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.lang.Nullable; -import org.springframework.test.context.ContextConfiguration; -import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; - -@ContextConfiguration -@RunWith(SpringJUnit4ClassRunner.class) -public class StepListenerParsingTests { - - @Autowired - public Job job; - - @Autowired - public JobLauncher jobLauncher; - - @Autowired - public SpringStepListener springStepListener; - - @Autowired - public JsrStepListener jsrStepListener; - - @Test - public void test() throws Exception { - JobExecution execution = jobLauncher.run(job, new JobParameters()); - assertEquals(BatchStatus.COMPLETED, execution.getStatus()); - assertEquals(3, execution.getStepExecutions().size()); - assertEquals(2, springStepListener.countBeforeStep); - assertEquals(2, springStepListener.countAfterStep); - assertEquals(2, jsrStepListener.countBeforeStep); - assertEquals(2, jsrStepListener.countAfterStep); - } - - public static class SpringStepListener implements StepExecutionListener { - protected int countBeforeStep = 0; - protected int countAfterStep = 0; - - @Override - public void beforeStep(StepExecution stepExecution) { - countBeforeStep++; - } - - @Nullable - @Override - public ExitStatus afterStep(StepExecution stepExecution) { - countAfterStep++; - return null; - } - } - - public static class JsrStepListener implements StepListener { - protected int countBeforeStep = 0; - protected int countAfterStep = 0; - - @Override - public void beforeStep() throws Exception { - countBeforeStep++; - } - - @Override - public void afterStep() throws Exception { - countAfterStep++; - } - } -} diff --git a/spring-batch-core/src/test/java/org/springframework/batch/core/jsr/configuration/xml/ThreadLocalClassloaderBeanPostProcessorTests.java b/spring-batch-core/src/test/java/org/springframework/batch/core/jsr/configuration/xml/ThreadLocalClassloaderBeanPostProcessorTests.java deleted file mode 100644 index 2f2d01c9a..000000000 --- a/spring-batch-core/src/test/java/org/springframework/batch/core/jsr/configuration/xml/ThreadLocalClassloaderBeanPostProcessorTests.java +++ /dev/null @@ -1,34 +0,0 @@ -/* - * Copyright 2013-2021 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.springframework.batch.core.jsr.configuration.xml; - -import org.junit.Test; -import org.springframework.batch.core.jsr.AbstractJsrTestCase; - -import jakarta.batch.runtime.BatchStatus; -import jakarta.batch.runtime.JobExecution; - -import static org.junit.Assert.assertEquals; - -public class ThreadLocalClassloaderBeanPostProcessorTests extends AbstractJsrTestCase { - - @Test - public void test() throws Exception { - JobExecution execution = runJob("threadLocalClassloaderBeanPostProcessorTestsJob", null, 10000); - - assertEquals(BatchStatus.COMPLETED, execution.getBatchStatus()); - } -} diff --git a/spring-batch-core/src/test/java/org/springframework/batch/core/jsr/configuration/xml/ThreadLocalClassloaderBeanPostProcessorTestsBatchlet.java b/spring-batch-core/src/test/java/org/springframework/batch/core/jsr/configuration/xml/ThreadLocalClassloaderBeanPostProcessorTestsBatchlet.java deleted file mode 100644 index 587008b32..000000000 --- a/spring-batch-core/src/test/java/org/springframework/batch/core/jsr/configuration/xml/ThreadLocalClassloaderBeanPostProcessorTestsBatchlet.java +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Copyright 2013-2021 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.springframework.batch.core.jsr.configuration.xml; - -import jakarta.batch.api.BatchProperty; -import jakarta.batch.api.Batchlet; -import jakarta.batch.runtime.context.JobContext; -import jakarta.batch.runtime.context.StepContext; -import jakarta.inject.Inject; - -import org.springframework.util.Assert; - -public class ThreadLocalClassloaderBeanPostProcessorTestsBatchlet implements Batchlet { - @Inject - @BatchProperty - public String jobParam1; - - @Inject - public JobContext jobContext; - - @Inject - public StepContext stepContext; - - @Override - public String process() throws Exception { - Assert.isTrue("someParameter".equals(jobParam1), jobParam1 + " does not equal someParameter"); - Assert.isTrue("threadLocalClassloaderBeanPostProcessorTestsJob".equals(jobContext.getJobName()), - "jobName does not equal threadLocalClassloaderBeanPostProcessorTestsJob"); - Assert.isTrue("step1".equals(stepContext.getStepName()), "stepName does not equal step1"); - - return null; - } - - @Override - public void stop() throws Exception { - } -} diff --git a/spring-batch-core/src/test/java/org/springframework/batch/core/jsr/job/flow/JsrFlowJobTests.java b/spring-batch-core/src/test/java/org/springframework/batch/core/jsr/job/flow/JsrFlowJobTests.java deleted file mode 100644 index 996084fcd..000000000 --- a/spring-batch-core/src/test/java/org/springframework/batch/core/jsr/job/flow/JsrFlowJobTests.java +++ /dev/null @@ -1,770 +0,0 @@ -/* - * Copyright 2006-2021 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.springframework.batch.core.jsr.job.flow; - -import org.junit.Before; -import org.junit.Test; -import org.springframework.batch.core.BatchStatus; -import org.springframework.batch.core.ExitStatus; -import org.springframework.batch.core.JobExecution; -import org.springframework.batch.core.JobInstance; -import org.springframework.batch.core.JobInterruptedException; -import org.springframework.batch.core.JobParameters; -import org.springframework.batch.core.Step; -import org.springframework.batch.core.StepExecution; -import org.springframework.batch.core.explore.JobExplorer; -import org.springframework.batch.core.explore.support.JobExplorerFactoryBean; -import org.springframework.batch.core.job.flow.Flow; -import org.springframework.batch.core.job.flow.FlowExecutionStatus; -import org.springframework.batch.core.job.flow.FlowExecutor; -import org.springframework.batch.core.job.flow.JobExecutionDecider; -import org.springframework.batch.core.job.flow.State; -import org.springframework.batch.core.job.flow.StateSupport; -import org.springframework.batch.core.job.flow.support.SimpleFlow; -import org.springframework.batch.core.job.flow.support.StateTransition; -import org.springframework.batch.core.job.flow.support.state.DecisionState; -import org.springframework.batch.core.job.flow.support.state.EndState; -import org.springframework.batch.core.job.flow.support.state.FlowState; -import org.springframework.batch.core.job.flow.support.state.SplitState; -import org.springframework.batch.core.job.flow.support.state.StepState; -import org.springframework.batch.core.jsr.JsrStepExecution; -import org.springframework.batch.core.jsr.job.flow.support.JsrFlow; -import org.springframework.batch.core.repository.JobRepository; -import org.springframework.batch.core.repository.support.JobRepositoryFactoryBean; -import org.springframework.batch.core.step.StepSupport; -import org.springframework.jdbc.datasource.DataSourceTransactionManager; -import org.springframework.jdbc.datasource.embedded.EmbeddedDatabase; -import org.springframework.jdbc.datasource.embedded.EmbeddedDatabaseBuilder; -import org.springframework.lang.Nullable; - -import jakarta.batch.api.Decider; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Collections; -import java.util.List; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertNull; -import static org.junit.Assert.fail; - -/** - * @author Dave Syer - * @author Michael Minella - * @author Mahmoud Ben Hassine - */ -public class JsrFlowJobTests { - - private JsrFlowJob job; - - private JobExecution jobExecution; - - private JobRepository jobRepository; - - private JobExplorer jobExplorer; - - private boolean fail = false; - - @Before - public void setUp() throws Exception { - job = new JsrFlowJob(); - EmbeddedDatabase embeddedDatabase = new EmbeddedDatabaseBuilder() - .addScript("/org/springframework/batch/core/schema-drop-hsqldb.sql") - .addScript("/org/springframework/batch/core/schema-hsqldb.sql") - .build(); - JobRepositoryFactoryBean factory = new JobRepositoryFactoryBean(); - factory.setDataSource(embeddedDatabase); - factory.setTransactionManager(new DataSourceTransactionManager(embeddedDatabase)); - factory.afterPropertiesSet(); - jobRepository = factory.getObject(); - job.setJobRepository(jobRepository); - jobExecution = jobRepository.createJobExecution("job", new JobParameters()); - - JobExplorerFactoryBean jobExplorerFactory = new JobExplorerFactoryBean(); - jobExplorerFactory.setDataSource(embeddedDatabase); - jobExplorerFactory.afterPropertiesSet(); - jobExplorer = jobExplorerFactory.getObject(); - job.setJobExplorer(jobExplorer); - } - - @Test - public void testGetSteps() throws Exception { - SimpleFlow flow = new JsrFlow("job"); - List transitions = new ArrayList<>(); - transitions.add(StateTransition.createStateTransition(new StepState(new StubStep("step1")), "step2")); - transitions.add(StateTransition.createStateTransition(new StepState(new StubStep("step2")), "end0")); - transitions.add(StateTransition.createEndStateTransition(new EndState(FlowExecutionStatus.COMPLETED, "end0"))); - flow.setStateTransitions(transitions); - flow.afterPropertiesSet(); - job.setFlow(flow); - job.afterPropertiesSet(); - assertEquals(2, job.getStepNames().size()); - } - - @Test - public void testTwoSteps() throws Exception { - SimpleFlow flow = new JsrFlow("job"); - List transitions = new ArrayList<>(); - transitions.add(StateTransition.createStateTransition(new StepState(new StubStep("step1")), "step2")); - StepState step2 = new StepState(new StubStep("step2")); - transitions.add(StateTransition.createStateTransition(step2, ExitStatus.FAILED.getExitCode(), "end0")); - transitions.add(StateTransition.createStateTransition(step2, ExitStatus.COMPLETED.getExitCode(), "end1")); - transitions.add(StateTransition.createEndStateTransition(new EndState(FlowExecutionStatus.FAILED, "end0"))); - transitions.add(StateTransition.createEndStateTransition(new EndState(FlowExecutionStatus.COMPLETED, "end1"))); - flow.setStateTransitions(transitions); - job.setFlow(flow); - job.afterPropertiesSet(); - job.doExecute(jobExecution); - StepExecution stepExecution = getStepExecution(jobExecution, "step2"); - assertEquals(ExitStatus.COMPLETED, stepExecution.getExitStatus()); - assertEquals(2, jobExecution.getStepExecutions().size()); - } - - @Test - public void testFailedStep() throws Exception { - SimpleFlow flow = new JsrFlow("job"); - List transitions = new ArrayList<>(); - transitions.add(StateTransition.createStateTransition(new StateSupport("step1", FlowExecutionStatus.FAILED), - "step2")); - StepState step2 = new StepState(new StubStep("step2")); - transitions.add(StateTransition.createStateTransition(step2, ExitStatus.FAILED.getExitCode(), "end0")); - transitions.add(StateTransition.createStateTransition(step2, ExitStatus.COMPLETED.getExitCode(), "end1")); - transitions.add(StateTransition.createEndStateTransition(new EndState(FlowExecutionStatus.FAILED, "end0"))); - transitions.add(StateTransition.createEndStateTransition(new EndState(FlowExecutionStatus.COMPLETED, "end1"))); - flow.setStateTransitions(transitions); - job.setFlow(flow); - job.afterPropertiesSet(); - job.doExecute(jobExecution); - StepExecution stepExecution = getStepExecution(jobExecution, "step2"); - assertEquals(ExitStatus.COMPLETED, stepExecution.getExitStatus()); - assertEquals(BatchStatus.COMPLETED, stepExecution.getStatus()); - assertEquals(2, jobExecution.getStepExecutions().size()); - } - - @Test - public void testFailedStepRestarted() throws Exception { - SimpleFlow flow = new JsrFlow("job"); - List transitions = new ArrayList<>(); - transitions.add(StateTransition.createStateTransition(new StepState(new StubStep("step1")), "step2")); - State step2State = new StateSupport("step2") { - @Override - public FlowExecutionStatus handle(FlowExecutor executor) throws Exception { - JobExecution jobExecution = executor.getJobExecution(); - StepExecution stepExecution = jobExecution.createStepExecution(getName()); - jobRepository.add(stepExecution); - if (fail) { - return FlowExecutionStatus.FAILED; - } - else { - return FlowExecutionStatus.COMPLETED; - } - } - }; - transitions.add(StateTransition.createStateTransition(step2State, ExitStatus.COMPLETED.getExitCode(), "end0")); - transitions.add(StateTransition.createStateTransition(step2State, ExitStatus.FAILED.getExitCode(), "end1")); - transitions.add(StateTransition.createEndStateTransition(new EndState(FlowExecutionStatus.COMPLETED, "end0"))); - transitions.add(StateTransition.createEndStateTransition(new EndState(FlowExecutionStatus.FAILED, "end1"))); - flow.setStateTransitions(transitions); - job.setFlow(flow); - job.afterPropertiesSet(); - fail = true; - job.execute(jobExecution); - assertEquals(ExitStatus.FAILED, jobExecution.getExitStatus()); - assertEquals(2, jobExecution.getStepExecutions().size()); - jobRepository.update(jobExecution); - jobExecution = jobRepository.createJobExecution("job", new JobParameters()); - fail = false; - job.execute(jobExecution); - assertEquals(ExitStatus.COMPLETED, jobExecution.getExitStatus()); - assertEquals(1, jobExecution.getStepExecutions().size()); - } - - @Test - public void testStoppingStep() throws Exception { - SimpleFlow flow = new JsrFlow("job"); - List transitions = new ArrayList<>(); - transitions.add(StateTransition.createStateTransition(new StepState(new StubStep("step1")), "step2")); - State state2 = new StateSupport("step2", FlowExecutionStatus.FAILED); - transitions.add(StateTransition.createStateTransition(state2, ExitStatus.FAILED.getExitCode(), "end0")); - transitions.add(StateTransition.createStateTransition(state2, ExitStatus.COMPLETED.getExitCode(), "end1")); - transitions.add(StateTransition.createStateTransition(new EndState(FlowExecutionStatus.STOPPED, "end0"), - "step3")); - transitions.add(StateTransition.createEndStateTransition(new EndState(FlowExecutionStatus.COMPLETED, "end1"))); - transitions.add(StateTransition.createStateTransition(new StepState(new StubStep("step3")), "end2")); - transitions.add(StateTransition.createEndStateTransition(new EndState(FlowExecutionStatus.COMPLETED, "end2"))); - flow.setStateTransitions(transitions); - job.setFlow(flow); - job.afterPropertiesSet(); - job.doExecute(jobExecution); - assertEquals(2, jobExecution.getStepExecutions().size()); - assertEquals(BatchStatus.STOPPED, jobExecution.getStatus()); - } - - @Test - public void testInterrupted() throws Exception { - SimpleFlow flow = new JsrFlow("job"); - List transitions = new ArrayList<>(); - transitions.add(StateTransition.createStateTransition(new StepState(new StubStep("step1") { - @Override - public void execute(StepExecution stepExecution) throws JobInterruptedException { - stepExecution.setStatus(BatchStatus.STOPPING); - jobRepository.update(stepExecution); - } - }), "end0")); - transitions.add(StateTransition.createEndStateTransition(new EndState(FlowExecutionStatus.COMPLETED, "end0"))); - flow.setStateTransitions(transitions); - flow.afterPropertiesSet(); - job.setFlow(flow); - job.afterPropertiesSet(); - job.execute(jobExecution); - assertEquals(BatchStatus.STOPPED, jobExecution.getStatus()); - checkRepository(BatchStatus.STOPPED, ExitStatus.STOPPED); - assertEquals(1, jobExecution.getAllFailureExceptions().size()); - assertEquals(JobInterruptedException.class, jobExecution.getFailureExceptions().get(0).getClass()); - } - - @Test - public void testUnknownStatusStopsJob() throws Exception { - SimpleFlow flow = new JsrFlow("job"); - List transitions = new ArrayList<>(); - transitions.add(StateTransition.createStateTransition(new StepState(new StubStep("step1") { - @Override - public void execute(StepExecution stepExecution) throws JobInterruptedException { - stepExecution.setStatus(BatchStatus.UNKNOWN); - stepExecution.setTerminateOnly(); - jobRepository.update(stepExecution); - } - }), "step2")); - transitions.add(StateTransition.createStateTransition(new StepState(new StubStep("step2")), "end0")); - transitions.add(StateTransition.createEndStateTransition(new EndState(FlowExecutionStatus.COMPLETED, "end0"))); - flow.setStateTransitions(transitions); - flow.afterPropertiesSet(); - job.setFlow(flow); - job.afterPropertiesSet(); - job.execute(jobExecution); - assertEquals(BatchStatus.UNKNOWN, jobExecution.getStatus()); - checkRepository(BatchStatus.UNKNOWN, ExitStatus.STOPPED); - assertEquals(1, jobExecution.getAllFailureExceptions().size()); - assertEquals(JobInterruptedException.class, jobExecution.getFailureExceptions().get(0).getClass()); - } - - @Test - public void testInterruptedSplit() throws Exception { - SimpleFlow flow = new JsrFlow("job"); - SimpleFlow flow1 = new JsrFlow("flow1"); - SimpleFlow flow2 = new JsrFlow("flow2"); - - List transitions = new ArrayList<>(); - transitions.add(StateTransition.createStateTransition(new StepState(new StubStep("step1") { - @Override - public void execute(StepExecution stepExecution) throws JobInterruptedException { - if (!stepExecution.getJobExecution().getExecutionContext().containsKey("STOPPED")) { - stepExecution.getJobExecution().getExecutionContext().put("STOPPED", true); - stepExecution.setStatus(BatchStatus.STOPPED); - jobRepository.update(stepExecution); - } - else { - fail("The Job should have stopped by now"); - } - } - }), "end0")); - transitions.add(StateTransition.createEndStateTransition(new EndState(FlowExecutionStatus.COMPLETED, "end0"))); - flow1.setStateTransitions(new ArrayList<>(transitions)); - flow1.afterPropertiesSet(); - flow2.setStateTransitions(new ArrayList<>(transitions)); - flow2.afterPropertiesSet(); - - transitions = new ArrayList<>(); - transitions.add(StateTransition.createStateTransition(new SplitState(Arrays. asList(flow1, flow2), - "split"), "end0")); - transitions.add(StateTransition.createEndStateTransition(new EndState(FlowExecutionStatus.COMPLETED, "end0"))); - flow.setStateTransitions(transitions); - flow.afterPropertiesSet(); - - job.setFlow(flow); - job.afterPropertiesSet(); - job.execute(jobExecution); - assertEquals(BatchStatus.STOPPED, jobExecution.getStatus()); - checkRepository(BatchStatus.STOPPED, ExitStatus.STOPPED); - assertEquals(1, jobExecution.getAllFailureExceptions().size()); - assertEquals(JobInterruptedException.class, jobExecution.getFailureExceptions().get(0).getClass()); - assertEquals(1, jobExecution.getStepExecutions().size()); - for (StepExecution stepExecution : jobExecution.getStepExecutions()) { - assertEquals(BatchStatus.STOPPED, stepExecution.getStatus()); - } - } - - @Test - public void testInterruptedException() throws Exception { - SimpleFlow flow = new JsrFlow("job"); - List transitions = new ArrayList<>(); - transitions.add(StateTransition.createStateTransition(new StepState(new StubStep("step1") { - @Override - public void execute(StepExecution stepExecution) throws JobInterruptedException { - throw new JobInterruptedException("Stopped"); - } - }), "end0")); - transitions.add(StateTransition.createEndStateTransition(new EndState(FlowExecutionStatus.COMPLETED, "end0"))); - flow.setStateTransitions(transitions); - flow.afterPropertiesSet(); - job.setFlow(flow); - job.afterPropertiesSet(); - job.execute(jobExecution); - assertEquals(BatchStatus.STOPPED, jobExecution.getStatus()); - checkRepository(BatchStatus.STOPPED, ExitStatus.STOPPED); - assertEquals(1, jobExecution.getAllFailureExceptions().size()); - assertEquals(JobInterruptedException.class, jobExecution.getFailureExceptions().get(0).getClass()); - } - - @Test - public void testInterruptedSplitException() throws Exception { - SimpleFlow flow = new JsrFlow("job"); - SimpleFlow flow1 = new JsrFlow("flow1"); - SimpleFlow flow2 = new JsrFlow("flow2"); - - List transitions = new ArrayList<>(); - transitions.add(StateTransition.createStateTransition(new StepState(new StubStep("step1") { - @Override - public void execute(StepExecution stepExecution) throws JobInterruptedException { - throw new JobInterruptedException("Stopped"); - } - }), "end0")); - transitions.add(StateTransition.createEndStateTransition(new EndState(FlowExecutionStatus.COMPLETED, "end0"))); - flow1.setStateTransitions(new ArrayList<>(transitions)); - flow1.afterPropertiesSet(); - flow2.setStateTransitions(new ArrayList<>(transitions)); - flow2.afterPropertiesSet(); - - transitions = new ArrayList<>(); - transitions.add(StateTransition.createStateTransition(new SplitState(Arrays. asList(flow1, flow2), - "split"), "end0")); - transitions.add(StateTransition.createEndStateTransition(new EndState(FlowExecutionStatus.COMPLETED, "end0"))); - flow.setStateTransitions(transitions); - flow.afterPropertiesSet(); - - job.setFlow(flow); - job.afterPropertiesSet(); - job.execute(jobExecution); - assertEquals(BatchStatus.STOPPED, jobExecution.getStatus()); - checkRepository(BatchStatus.STOPPED, ExitStatus.STOPPED); - assertEquals(1, jobExecution.getAllFailureExceptions().size()); - assertEquals(JobInterruptedException.class, jobExecution.getFailureExceptions().get(0).getClass()); - } - - @Test - public void testEndStateStopped() throws Exception { - SimpleFlow flow = new JsrFlow("job"); - List transitions = new ArrayList<>(); - transitions.add(StateTransition.createStateTransition(new StepState(new StubStep("step1")), "end")); - transitions.add(StateTransition - .createStateTransition(new EndState(FlowExecutionStatus.STOPPED, "end"), "step2")); - StepState step2 = new StepState(new StubStep("step2")); - transitions.add(StateTransition.createStateTransition(step2, ExitStatus.FAILED.getExitCode(), "end0")); - transitions.add(StateTransition.createStateTransition(step2, ExitStatus.COMPLETED.getExitCode(), "end1")); - transitions.add(StateTransition.createEndStateTransition(new EndState(FlowExecutionStatus.FAILED, "end0"))); - transitions.add(StateTransition.createEndStateTransition(new EndState(FlowExecutionStatus.COMPLETED, "end1"))); - flow.setStateTransitions(transitions); - job.setFlow(flow); - job.afterPropertiesSet(); - job.doExecute(jobExecution); - assertEquals(1, jobExecution.getStepExecutions().size()); - assertEquals(BatchStatus.STOPPED, jobExecution.getStatus()); - } - - public void testEndStateFailed() throws Exception { - SimpleFlow flow = new JsrFlow("job"); - List transitions = new ArrayList<>(); - transitions.add(StateTransition.createStateTransition(new StepState(new StubStep("step1")), "end")); - transitions - .add(StateTransition.createStateTransition(new EndState(FlowExecutionStatus.FAILED, "end"), "step2")); - transitions.add(StateTransition.createStateTransition(new StepState(new StubStep("step2")), ExitStatus.FAILED - .getExitCode(), "end0")); - transitions.add(StateTransition.createStateTransition(new StepState(new StubStep("step2")), - ExitStatus.COMPLETED.getExitCode(), "end1")); - transitions.add(StateTransition.createEndStateTransition(new EndState(FlowExecutionStatus.FAILED, "end0"))); - transitions.add(StateTransition.createEndStateTransition(new EndState(FlowExecutionStatus.COMPLETED, "end1"))); - flow.setStateTransitions(transitions); - job.setFlow(flow); - job.afterPropertiesSet(); - job.doExecute(jobExecution); - assertEquals(BatchStatus.FAILED, jobExecution.getStatus()); - assertEquals(1, jobExecution.getStepExecutions().size()); - } - - @Test - public void testEndStateStoppedWithRestart() throws Exception { - SimpleFlow flow = new JsrFlow("job"); - List transitions = new ArrayList<>(); - transitions.add(StateTransition.createStateTransition(new StepState(new StubStep("step1")), "end")); - transitions.add(StateTransition - .createStateTransition(new EndState(FlowExecutionStatus.STOPPED, "end"), "step2")); - StepState step2 = new StepState(new StubStep("step2")); - transitions.add(StateTransition.createStateTransition(step2, ExitStatus.COMPLETED.getExitCode(), "end0")); - transitions.add(StateTransition.createStateTransition(step2, ExitStatus.FAILED.getExitCode(), "end1")); - transitions.add(StateTransition.createEndStateTransition(new EndState(FlowExecutionStatus.COMPLETED, "end0"))); - transitions.add(StateTransition.createEndStateTransition(new EndState(FlowExecutionStatus.FAILED, "end1"))); - flow.setStateTransitions(transitions); - job.setFlow(flow); - job.afterPropertiesSet(); - - // To test a restart we have to use the AbstractJob.execute()... - job.execute(jobExecution); - assertEquals(BatchStatus.STOPPED, jobExecution.getStatus()); - assertEquals(1, jobExecution.getStepExecutions().size()); - - jobExecution = jobRepository.createJobExecution("job", new JobParameters()); - job.execute(jobExecution); - assertEquals(BatchStatus.COMPLETED, jobExecution.getStatus()); - assertEquals(1, jobExecution.getStepExecutions().size()); - - } - - @Test - public void testBranching() throws Exception { - SimpleFlow flow = new JsrFlow("job"); - List transitions = new ArrayList<>(); - StepState step1 = new StepState(new StubStep("step1")); - transitions.add(StateTransition.createStateTransition(step1, "step2")); - transitions.add(StateTransition.createStateTransition(step1, "COMPLETED", "step3")); - StepState step2 = new StepState(new StubStep("step2")); - transitions.add(StateTransition.createStateTransition(step2, ExitStatus.COMPLETED.getExitCode(), "end0")); - transitions.add(StateTransition.createStateTransition(step2, ExitStatus.FAILED.getExitCode(), "end1")); - transitions.add(StateTransition.createEndStateTransition(new EndState(FlowExecutionStatus.COMPLETED, "end0"))); - transitions.add(StateTransition.createEndStateTransition(new EndState(FlowExecutionStatus.FAILED, "end1"))); - StepState step3 = new StepState(new StubStep("step3")); - transitions.add(StateTransition.createStateTransition(step3, ExitStatus.FAILED.getExitCode(), "end2")); - transitions.add(StateTransition.createStateTransition(step3, ExitStatus.COMPLETED.getExitCode(), "end3")); - transitions.add(StateTransition.createEndStateTransition(new EndState(FlowExecutionStatus.FAILED, "end2"))); - transitions.add(StateTransition.createEndStateTransition(new EndState(FlowExecutionStatus.COMPLETED, "end3"))); - flow.setStateTransitions(transitions); - job.setFlow(flow); - job.afterPropertiesSet(); - job.doExecute(jobExecution); - StepExecution stepExecution = getStepExecution(jobExecution, "step2"); - assertEquals(ExitStatus.COMPLETED, stepExecution.getExitStatus()); - assertEquals(2, jobExecution.getStepExecutions().size()); - } - - @Test - public void testBasicFlow() throws Throwable { - SimpleFlow flow = new JsrFlow("job"); - List transitions = new ArrayList<>(); - transitions.add(StateTransition.createStateTransition(new StepState(new StubStep("step")), "end0")); - transitions.add(StateTransition.createEndStateTransition(new EndState(FlowExecutionStatus.COMPLETED, "end0"))); - flow.setStateTransitions(transitions); - job.setFlow(flow); - job.execute(jobExecution); - if (!jobExecution.getAllFailureExceptions().isEmpty()) { - throw jobExecution.getAllFailureExceptions().get(0); - } - assertEquals(BatchStatus.COMPLETED, jobExecution.getStatus()); - } - - @Test - public void testDecisionFlow() throws Throwable { - - SimpleFlow flow = new JsrFlow("job"); - Decider decider = new Decider() { - - @Override - public String decide(jakarta.batch.runtime.StepExecution[] executions) - throws Exception { - assertNotNull(executions); - return "SWITCH"; - } - }; - - List transitions = new ArrayList<>(); - transitions.add(StateTransition.createStateTransition(new StepState(new StubStep("step1")), "decision")); - StepState decision = new StepState(new StubDecisionStep("decision", decider)); - transitions.add(StateTransition.createStateTransition(decision, "SWITCH", "step3")); - transitions.add(StateTransition.createStateTransition(decision, "step2")); - StepState step2 = new StepState(new StubStep("step2")); - transitions.add(StateTransition.createStateTransition(step2, ExitStatus.COMPLETED.getExitCode(), "end0")); - transitions.add(StateTransition.createStateTransition(step2, ExitStatus.FAILED.getExitCode(), "end1")); - transitions.add(StateTransition.createEndStateTransition(new EndState(FlowExecutionStatus.COMPLETED, "end0"))); - transitions.add(StateTransition.createEndStateTransition(new EndState(FlowExecutionStatus.FAILED, "end1"))); - StepState step3 = new StepState(new StubStep("step3")); - transitions.add(StateTransition.createStateTransition(step3, ExitStatus.FAILED.getExitCode(), "end2")); - transitions.add(StateTransition.createStateTransition(step3, ExitStatus.COMPLETED.getExitCode(), "end3")); - transitions.add(StateTransition.createEndStateTransition(new EndState(FlowExecutionStatus.FAILED, "end2"))); - transitions.add(StateTransition.createEndStateTransition(new EndState(FlowExecutionStatus.COMPLETED, "end3"))); - flow.setStateTransitions(transitions); - - job.setFlow(flow); - job.doExecute(jobExecution); - - StepExecution stepExecution = getStepExecution(jobExecution, "step3"); - if (!jobExecution.getAllFailureExceptions().isEmpty()) { - throw jobExecution.getAllFailureExceptions().get(0); - } - - assertEquals(BatchStatus.COMPLETED, stepExecution.getStatus()); - assertEquals(3, jobExecution.getStepExecutions().size()); - - } - - @Test - public void testDecisionFlowWithExceptionInDecider() throws Throwable { - - SimpleFlow flow = new JsrFlow("job"); - JobExecutionDecider decider = new JobExecutionDecider() { - @Override - public FlowExecutionStatus decide(JobExecution jobExecution, @Nullable StepExecution stepExecution) { - assertNotNull(stepExecution); - throw new RuntimeException("Foo"); - } - }; - - List transitions = new ArrayList<>(); - transitions.add(StateTransition.createStateTransition(new StepState(new StubStep("step1")), "decision")); - DecisionState decision = new DecisionState(decider, "decision"); - transitions.add(StateTransition.createStateTransition(decision, "step2")); - transitions.add(StateTransition.createStateTransition(decision, "SWITCH", "step3")); - StepState step2 = new StepState(new StubStep("step2")); - transitions.add(StateTransition.createStateTransition(step2, ExitStatus.COMPLETED.getExitCode(), "end0")); - transitions.add(StateTransition.createStateTransition(step2, ExitStatus.FAILED.getExitCode(), "end1")); - transitions.add(StateTransition.createEndStateTransition(new EndState(FlowExecutionStatus.COMPLETED, "end0"))); - transitions.add(StateTransition.createEndStateTransition(new EndState(FlowExecutionStatus.FAILED, "end1"))); - StepState step3 = new StepState(new StubStep("step3")); - transitions.add(StateTransition.createStateTransition(step3, ExitStatus.FAILED.getExitCode(), "end2")); - transitions.add(StateTransition.createStateTransition(step3, ExitStatus.COMPLETED.getExitCode(), "end3")); - transitions.add(StateTransition.createEndStateTransition(new EndState(FlowExecutionStatus.FAILED, "end2"))); - transitions.add(StateTransition.createEndStateTransition(new EndState(FlowExecutionStatus.COMPLETED, "end3"))); - flow.setStateTransitions(transitions); - - job.setFlow(flow); - try { - job.execute(jobExecution); - } - finally { - - assertEquals(BatchStatus.FAILED, jobExecution.getStatus()); - assertEquals(1, jobExecution.getStepExecutions().size()); - - assertEquals(1, jobExecution.getAllFailureExceptions().size()); - assertEquals("Foo", jobExecution.getAllFailureExceptions().get(0).getCause().getCause().getMessage()); - - } - } - - @Test - public void testGetStepExists() throws Exception { - SimpleFlow flow = new JsrFlow("job"); - List transitions = new ArrayList<>(); - transitions.add(StateTransition.createStateTransition(new StepState(new StubStep("step1")), "step2")); - transitions.add(StateTransition.createStateTransition(new StepState(new StubStep("step2")), "end0")); - transitions.add(StateTransition.createEndStateTransition(new EndState(FlowExecutionStatus.COMPLETED, "end0"))); - flow.setStateTransitions(transitions); - flow.afterPropertiesSet(); - job.setFlow(flow); - job.afterPropertiesSet(); - - Step step = job.getStep("step2"); - assertNotNull(step); - assertEquals("step2", step.getName()); - } - - @Test - public void testGetStepExistsWithPrefix() throws Exception { - SimpleFlow flow = new JsrFlow("job"); - List transitions = new ArrayList<>(); - transitions.add(StateTransition.createStateTransition(new StepState("job.step", new StubStep("step")), "end0")); - transitions.add(StateTransition.createEndStateTransition(new EndState(FlowExecutionStatus.COMPLETED, "end0"))); - flow.setStateTransitions(transitions); - flow.afterPropertiesSet(); - job.setFlow(flow); - job.setName(flow.getName()); - job.afterPropertiesSet(); - - Step step = job.getStep("step"); - assertNotNull(step); - assertEquals("step", step.getName()); - } - - @Test - public void testGetStepNamesWithPrefix() throws Exception { - SimpleFlow flow = new JsrFlow("job"); - List transitions = new ArrayList<>(); - transitions.add(StateTransition.createStateTransition(new StepState("job.step", new StubStep("step")), "end0")); - transitions.add(StateTransition.createEndStateTransition(new EndState(FlowExecutionStatus.COMPLETED, "end0"))); - flow.setStateTransitions(transitions); - flow.afterPropertiesSet(); - job.setFlow(flow); - job.setName(flow.getName()); - job.afterPropertiesSet(); - - assertEquals("[step]", job.getStepNames().toString()); - } - - @Test - public void testGetStepNotExists() throws Exception { - SimpleFlow flow = new JsrFlow("job"); - List transitions = new ArrayList<>(); - transitions.add(StateTransition.createStateTransition(new StepState(new StubStep("step1")), "step2")); - transitions.add(StateTransition.createStateTransition(new StepState(new StubStep("step2")), "end0")); - transitions.add(StateTransition.createEndStateTransition(new EndState(FlowExecutionStatus.COMPLETED, "end0"))); - flow.setStateTransitions(transitions); - flow.afterPropertiesSet(); - job.setFlow(flow); - job.afterPropertiesSet(); - - Step step = job.getStep("foo"); - assertNull(step); - } - - @Test - public void testGetStepNotStepState() throws Exception { - SimpleFlow flow = new JsrFlow("job"); - List transitions = new ArrayList<>(); - transitions.add(StateTransition.createStateTransition(new StepState(new StubStep("step1")), "step2")); - transitions.add(StateTransition.createStateTransition(new StepState(new StubStep("step2")), "end0")); - transitions.add(StateTransition.createEndStateTransition(new EndState(FlowExecutionStatus.COMPLETED, "end0"))); - flow.setStateTransitions(transitions); - flow.afterPropertiesSet(); - job.setFlow(flow); - job.afterPropertiesSet(); - - Step step = job.getStep("end0"); - assertNull(step); - } - - @Test - public void testGetStepNestedFlow() throws Exception { - SimpleFlow nested = new JsrFlow("nested"); - List transitions = new ArrayList<>(); - transitions.add(StateTransition.createStateTransition(new StepState(new StubStep("step2")), "end1")); - transitions.add(StateTransition.createEndStateTransition(new EndState(FlowExecutionStatus.COMPLETED, "end1"))); - nested.setStateTransitions(transitions); - nested.afterPropertiesSet(); - - SimpleFlow flow = new JsrFlow("job"); - transitions = new ArrayList<>(); - transitions.add(StateTransition.createStateTransition(new StepState(new StubStep("step1")), "nested")); - transitions.add(StateTransition.createStateTransition(new FlowState(nested, "nested"), "end0")); - transitions.add(StateTransition.createEndStateTransition(new EndState(FlowExecutionStatus.COMPLETED, "end0"))); - flow.setStateTransitions(transitions); - flow.afterPropertiesSet(); - job.setFlow(flow); - job.afterPropertiesSet(); - - List names = new ArrayList<>(job.getStepNames()); - Collections.sort(names); - assertEquals("[step1, step2]", names.toString()); - } - - @Test - public void testGetStepSplitFlow() throws Exception { - SimpleFlow flow = new JsrFlow("job"); - SimpleFlow flow1 = new JsrFlow("flow1"); - SimpleFlow flow2 = new JsrFlow("flow2"); - - List transitions = new ArrayList<>(); - transitions.add(StateTransition.createStateTransition(new StepState(new StubStep("step1")), "end0")); - transitions.add(StateTransition.createEndStateTransition(new EndState(FlowExecutionStatus.COMPLETED, "end0"))); - flow1.setStateTransitions(new ArrayList<>(transitions)); - flow1.afterPropertiesSet(); - transitions = new ArrayList<>(); - transitions.add(StateTransition.createStateTransition(new StepState(new StubStep("step2")), "end1")); - transitions.add(StateTransition.createEndStateTransition(new EndState(FlowExecutionStatus.COMPLETED, "end1"))); - flow2.setStateTransitions(new ArrayList<>(transitions)); - flow2.afterPropertiesSet(); - - transitions = new ArrayList<>(); - transitions.add(StateTransition.createStateTransition(new SplitState(Arrays. asList(flow1, flow2), - "split"), "end2")); - transitions.add(StateTransition.createEndStateTransition(new EndState(FlowExecutionStatus.COMPLETED, "end2"))); - flow.setStateTransitions(transitions); - flow.afterPropertiesSet(); - - job.setFlow(flow); - job.afterPropertiesSet(); - List names = new ArrayList<>(job.getStepNames()); - Collections.sort(names); - assertEquals("[step1, step2]", names.toString()); - } - - /** - * @author Dave Syer - * - */ - private class StubStep extends StepSupport { - - private StubStep(String name) { - super(name); - } - - @Override - public void execute(StepExecution stepExecution) throws JobInterruptedException { - stepExecution.setStatus(BatchStatus.COMPLETED); - stepExecution.setExitStatus(ExitStatus.COMPLETED); - jobRepository.update(stepExecution); - } - - } - - /** - * @author Michael Minella - * - */ - private class StubDecisionStep extends StepSupport { - - private Decider decider; - - private StubDecisionStep(String name, Decider decider) { - super(name); - this.decider = decider; - } - - @Override - public void execute(StepExecution stepExecution) throws JobInterruptedException { - stepExecution.setStatus(BatchStatus.COMPLETED); - try { - stepExecution.setExitStatus(new ExitStatus(decider.decide(new jakarta.batch.runtime.StepExecution [] {new JsrStepExecution(stepExecution)}))); - } catch (Exception e) { - throw new RuntimeException(e); - } - - jobRepository.update(stepExecution); - } - } - - /** - * @param jobExecution - * @param stepName - * @return the StepExecution corresponding to the specified step - */ - private StepExecution getStepExecution(JobExecution jobExecution, String stepName) { - for (StepExecution stepExecution : jobExecution.getStepExecutions()) { - if (stepExecution.getStepName().equals(stepName)) { - return stepExecution; - } - } - fail("No stepExecution found with name: [" + stepName + "]"); - return null; - } - - private void checkRepository(BatchStatus status, ExitStatus exitStatus) { - JobInstance jobInstance = jobExecution.getJobInstance(); - JobExecution other = jobExplorer.getJobExecutions(jobInstance).get(0); - assertEquals(jobInstance.getId(), other.getJobId()); - assertEquals(status, other.getStatus()); - if (exitStatus != null) { - assertEquals(exitStatus.getExitCode(), other.getExitStatus().getExitCode()); - } - } - -} diff --git a/spring-batch-core/src/test/java/org/springframework/batch/core/jsr/job/flow/support/JsrFlowTests.java b/spring-batch-core/src/test/java/org/springframework/batch/core/jsr/job/flow/support/JsrFlowTests.java deleted file mode 100644 index 621abf291..000000000 --- a/spring-batch-core/src/test/java/org/springframework/batch/core/jsr/job/flow/support/JsrFlowTests.java +++ /dev/null @@ -1,76 +0,0 @@ -/* - * Copyright 2013-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. - */ -package org.springframework.batch.core.jsr.job.flow.support; - -import static org.junit.Assert.assertEquals; - -import org.junit.Before; -import org.junit.Test; -import org.springframework.batch.core.BatchStatus; -import org.springframework.batch.core.ExitStatus; -import org.springframework.batch.core.JobExecution; -import org.springframework.batch.core.StepExecution; -import org.springframework.batch.core.job.flow.FlowExecution; -import org.springframework.batch.core.job.flow.FlowExecutionStatus; -import org.springframework.batch.core.job.flow.State; -import org.springframework.batch.core.job.flow.StateSupport; -import org.springframework.batch.core.job.flow.support.JobFlowExecutorSupport; -import org.springframework.batch.core.job.flow.support.SimpleFlowTests; -import org.springframework.batch.core.job.flow.support.StateTransition; -import org.springframework.lang.Nullable; - -public class JsrFlowTests extends SimpleFlowTests { - - @Override - @Before - public void setUp() { - flow = new JsrFlow("flow1"); - } - - @Test - public void testNextBasedOnBatchStatus() throws Exception { - StepExecution stepExecution = new StepExecution("step1", new JobExecution(5L)); - stepExecution.setExitStatus(new ExitStatus("unmapped exit code")); - stepExecution.setStatus(BatchStatus.FAILED); - executor = new FlowExecutor(stepExecution); - - State startState = new StateSupport("step1", new FlowExecutionStatus("unmapped exit code")); - State endState = new StateSupport("failed", FlowExecutionStatus.FAILED); - - StateTransition failureTransition = StateTransition.createStateTransition(startState, "FAILED", "failed"); - StateTransition endTransition = StateTransition.createEndStateTransition(endState); - flow.setStateTransitions(collect(failureTransition, endTransition)); - flow.afterPropertiesSet(); - FlowExecution execution = flow.start(executor); - assertEquals(FlowExecutionStatus.FAILED, execution.getStatus()); - assertEquals("failed", execution.getName()); - } - - public static class FlowExecutor extends JobFlowExecutorSupport { - - private StepExecution stepExecution; - - public FlowExecutor(StepExecution stepExecution) { - this.stepExecution = stepExecution; - } - - @Nullable - @Override - public StepExecution getStepExecution() { - return stepExecution; - } - } -} diff --git a/spring-batch-core/src/test/java/org/springframework/batch/core/jsr/job/flow/support/state/JsrEndStateTests.java b/spring-batch-core/src/test/java/org/springframework/batch/core/jsr/job/flow/support/state/JsrEndStateTests.java deleted file mode 100644 index 27c720453..000000000 --- a/spring-batch-core/src/test/java/org/springframework/batch/core/jsr/job/flow/support/state/JsrEndStateTests.java +++ /dev/null @@ -1,52 +0,0 @@ -/* - * Copyright 2013-2021 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.springframework.batch.core.jsr.job.flow.support.state; - -import static org.junit.Assert.assertEquals; - -import jakarta.batch.api.AbstractBatchlet; -import jakarta.batch.runtime.BatchStatus; -import jakarta.batch.runtime.JobExecution; - -import org.junit.Test; - -import org.springframework.batch.core.jsr.AbstractJsrTestCase; - -/** - * Tests for the JSR-352 version of {@link JsrEndState} - * - * @author Michael Minella - * @author Mahmoud Ben Hassine - */ -public class JsrEndStateTests extends AbstractJsrTestCase { - - @Test - public void test() throws Exception { - JobExecution jobExecution = runJob("jobWithEndTransition", null, 10000L); - - assertEquals(BatchStatus.COMPLETED, jobExecution.getBatchStatus()); - assertEquals("SUCCESS", jobExecution.getExitStatus()); - assertEquals(1, operator.getStepExecutions(jobExecution.getExecutionId()).size()); - } - - public static class EndStateBatchlet extends AbstractBatchlet { - - @Override - public String process() throws Exception { - return "GOOD"; - } - } -} diff --git a/spring-batch-core/src/test/java/org/springframework/batch/core/jsr/launch/JsrJobOperatorTests.java b/spring-batch-core/src/test/java/org/springframework/batch/core/jsr/launch/JsrJobOperatorTests.java deleted file mode 100644 index 3034764cd..000000000 --- a/spring-batch-core/src/test/java/org/springframework/batch/core/jsr/launch/JsrJobOperatorTests.java +++ /dev/null @@ -1,688 +0,0 @@ -/* - * Copyright 2013-2021 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.springframework.batch.core.jsr.launch; - -import java.util.ArrayList; -import java.util.Date; -import java.util.HashSet; -import java.util.List; -import java.util.Properties; -import java.util.Set; -import jakarta.batch.api.AbstractBatchlet; -import jakarta.batch.api.Batchlet; -import jakarta.batch.operations.JobExecutionIsRunningException; -import jakarta.batch.operations.JobOperator; -import jakarta.batch.operations.JobRestartException; -import jakarta.batch.operations.JobStartException; -import jakarta.batch.operations.NoSuchJobException; -import jakarta.batch.operations.NoSuchJobExecutionException; -import jakarta.batch.operations.NoSuchJobInstanceException; -import jakarta.batch.runtime.BatchRuntime; -import jakarta.batch.runtime.BatchStatus; -import javax.sql.DataSource; - -import org.junit.Before; -import org.junit.Rule; -import org.junit.Test; -import org.mockito.ArgumentCaptor; -import org.mockito.Mock; -import org.mockito.junit.MockitoJUnit; -import org.mockito.junit.MockitoRule; -import org.springframework.batch.core.JobExecution; -import org.springframework.batch.core.JobInstance; -import org.springframework.batch.core.JobParametersBuilder; -import org.springframework.batch.core.StepExecution; -import org.springframework.batch.core.configuration.annotation.DataSourceConfiguration; -import org.springframework.batch.core.configuration.annotation.EnableBatchProcessing; -import org.springframework.batch.core.converter.JobParametersConverter; -import org.springframework.batch.core.converter.JobParametersConverterSupport; -import org.springframework.batch.core.explore.JobExplorer; -import org.springframework.batch.core.explore.support.SimpleJobExplorer; -import org.springframework.batch.core.jsr.AbstractJsrTestCase; -import org.springframework.batch.core.jsr.JsrJobParametersConverter; -import org.springframework.batch.core.repository.JobRepository; -import org.springframework.batch.core.step.JobRepositorySupport; -import org.springframework.batch.support.transaction.ResourcelessTransactionManager; -import org.springframework.beans.factory.BeanCreationException; -import org.springframework.context.annotation.AnnotationConfigApplicationContext; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; -import org.springframework.context.annotation.Import; -import org.springframework.context.support.GenericApplicationContext; -import org.springframework.core.task.AsyncTaskExecutor; -import org.springframework.core.task.SyncTaskExecutor; -import org.springframework.test.util.ReflectionTestUtils; -import org.springframework.transaction.PlatformTransactionManager; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertNull; -import static org.junit.Assert.assertTrue; -import static org.junit.Assert.fail; -import static org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; - -/** - * Tests for {@link JsrJobOperator}. - */ -public class JsrJobOperatorTests extends AbstractJsrTestCase { - - @Rule - public MockitoRule rule = MockitoJUnit.rule().silent(); - - private JobOperator jsrJobOperator; - @Mock - private JobExplorer jobExplorer; - @Mock - private JobRepository jobRepository; - private JobParametersConverter parameterConverter; - private static final long TIMEOUT = 10000L; - - @Before - public void setup() throws Exception { - - parameterConverter = new JobParametersConverterSupport(); - jsrJobOperator = new JsrJobOperator(jobExplorer, jobRepository, parameterConverter, new ResourcelessTransactionManager()); - } - - @Test - public void testLoadingWithBatchRuntime() { - jsrJobOperator = BatchRuntime.getJobOperator(); - assertNotNull(jsrJobOperator); - } - - @Test - public void testNullsInConstructor() { - try { - new JsrJobOperator(null, new JobRepositorySupport(), parameterConverter, null); - fail("JobExplorer should be required"); - } catch (IllegalArgumentException correct) { - } - - try { - new JsrJobOperator(new SimpleJobExplorer(null, null, null, null), null, parameterConverter, null); - fail("JobRepository should be required"); - } catch (IllegalArgumentException correct) { - } - - try { - new JsrJobOperator(new SimpleJobExplorer(null, null, null, null), new JobRepositorySupport(), null, null); - fail("ParameterConverter should be required"); - } catch (IllegalArgumentException correct) { - } - - try { - new JsrJobOperator(new SimpleJobExplorer(null, null, null, null), new JobRepositorySupport(), parameterConverter, null); - } - catch (IllegalArgumentException correct) { - } - - new JsrJobOperator(new SimpleJobExplorer(null, null, null, null), new JobRepositorySupport(), parameterConverter, new ResourcelessTransactionManager()); - } - - @Test - public void testCustomBaseContextJsrCompliant() throws Exception { - System.setProperty("JSR-352-BASE-CONTEXT", "META-INF/alternativeJsrBaseContext.xml"); - - ReflectionTestUtils.setField(JsrJobOperator.BaseContextHolder.class, "instance", null); - - JobOperator jobOperator = BatchRuntime.getJobOperator(); - - Object transactionManager = ReflectionTestUtils.getField(jobOperator, "transactionManager"); - assertTrue(transactionManager instanceof ResourcelessTransactionManager); - - long executionId = jobOperator.start("longRunningJob", null); - // Give the job a chance to get started - Thread.sleep(1000L); - jobOperator.stop(executionId); - // Give the job the chance to finish stopping - Thread.sleep(1000L); - - assertEquals(BatchStatus.STOPPED, jobOperator.getJobExecution(executionId).getBatchStatus()); - - System.getProperties().remove("JSR-352-BASE-CONTEXT"); - } - - @Test - public void testCustomBaseContextCustomWired() throws Exception { - - GenericApplicationContext context = new AnnotationConfigApplicationContext(BatchConfgiuration.class); - - JobOperator jobOperator = (JobOperator) context.getBean("jobOperator"); - - assertEquals(context, ReflectionTestUtils.getField(jobOperator, "baseContext")); - - long executionId = jobOperator.start("longRunningJob", null); - // Give the job a chance to get started - Thread.sleep(1000L); - jobOperator.stop(executionId); - // Give the job the chance to finish stopping - Thread.sleep(1000L); - - assertEquals(BatchStatus.STOPPED, jobOperator.getJobExecution(executionId).getBatchStatus()); - - System.getProperties().remove("JSR-352-BASE-CONTEXT"); - } - - @Test - public void testDefaultTaskExecutor() throws Exception { - JsrJobOperator jsrJobOperatorImpl = (JsrJobOperator) jsrJobOperator; - jsrJobOperatorImpl.afterPropertiesSet(); - assertNotNull(jsrJobOperatorImpl.getTaskExecutor()); - assertTrue((jsrJobOperatorImpl.getTaskExecutor() instanceof AsyncTaskExecutor)); - } - - @Test - public void testCustomTaskExecutor() throws Exception { - JsrJobOperator jsrJobOperatorImpl = (JsrJobOperator) jsrJobOperator; - jsrJobOperatorImpl.setTaskExecutor(new SyncTaskExecutor()); - jsrJobOperatorImpl.afterPropertiesSet(); - assertNotNull(jsrJobOperatorImpl.getTaskExecutor()); - assertTrue((jsrJobOperatorImpl.getTaskExecutor() instanceof SyncTaskExecutor)); - } - - @Test - public void testAbandonRoseyScenario() throws Exception { - JobExecution jobExecution = new JobExecution(5L); - jobExecution.setEndTime(new Date()); - when(jobExplorer.getJobExecution(5L)).thenReturn(jobExecution); - - jsrJobOperator.abandon(5L); - - ArgumentCaptor executionCaptor = ArgumentCaptor.forClass(JobExecution.class); - verify(jobRepository).update(executionCaptor.capture()); - assertEquals(org.springframework.batch.core.BatchStatus.ABANDONED, executionCaptor.getValue().getStatus()); - - } - - @Test(expected=NoSuchJobExecutionException.class) - public void testAbandonNoSuchJob() throws Exception { - jsrJobOperator.abandon(5L); - } - - @Test(expected=JobExecutionIsRunningException.class) - public void testAbandonJobRunning() throws Exception { - JobExecution jobExecution = new JobExecution(5L); - jobExecution.setStartTime(new Date(1L)); - - when(jobExplorer.getJobExecution(5L)).thenReturn(jobExecution); - - jsrJobOperator.abandon(5L); - } - - @Test - public void testGetJobExecutionRoseyScenario() { - when(jobExplorer.getJobExecution(5L)).thenReturn(new JobExecution(5L)); - - assertEquals(5L, jsrJobOperator.getJobExecution(5L).getExecutionId()); - } - - @Test(expected=NoSuchJobExecutionException.class) - public void testGetJobExecutionNoExecutionFound() { - jsrJobOperator.getJobExecution(5L); - } - - @Test - public void testGetJobExecutionsRoseyScenario() { - org.springframework.batch.core.JobInstance jobInstance = new org.springframework.batch.core.JobInstance(5L, "my job"); - List executions = new ArrayList<>(); - executions.add(new JobExecution(2L)); - - when(jobExplorer.getJobExecutions(jobInstance)).thenReturn(executions); - - List jobExecutions = jsrJobOperator.getJobExecutions(jobInstance); - assertEquals(1, jobExecutions.size()); - assertEquals(2L, executions.get(0).getId().longValue()); - } - - @Test(expected=NoSuchJobInstanceException.class) - public void testGetJobExecutionsNullJobInstance() { - jsrJobOperator.getJobExecutions(null); - } - - @Test(expected=NoSuchJobInstanceException.class) - public void testGetJobExecutionsNullReturned() { - org.springframework.batch.core.JobInstance jobInstance = new org.springframework.batch.core.JobInstance(5L, "my job"); - - jsrJobOperator.getJobExecutions(jobInstance); - } - - @Test(expected=NoSuchJobInstanceException.class) - public void testGetJobExecutionsNoneReturned() { - org.springframework.batch.core.JobInstance jobInstance = new org.springframework.batch.core.JobInstance(5L, "my job"); - List executions = new ArrayList<>(); - - when(jobExplorer.getJobExecutions(jobInstance)).thenReturn(executions); - - jsrJobOperator.getJobExecutions(jobInstance); - } - - @Test - public void testGetJobInstanceRoseyScenario() { - JobInstance instance = new JobInstance(1L, "my job"); - JobExecution execution = new JobExecution(5L); - execution.setJobInstance(instance); - - when(jobExplorer.getJobExecution(5L)).thenReturn(execution); - when(jobExplorer.getJobInstance(1L)).thenReturn(instance); - - jakarta.batch.runtime.JobInstance jobInstance = jsrJobOperator.getJobInstance(5L); - - assertEquals(1L, jobInstance.getInstanceId()); - assertEquals("my job", jobInstance.getJobName()); - } - - @Test(expected=NoSuchJobExecutionException.class) - public void testGetJobInstanceNoExecution() { - JobInstance instance = new JobInstance(1L, "my job"); - JobExecution execution = new JobExecution(5L); - execution.setJobInstance(instance); - - jsrJobOperator.getJobInstance(5L); - } - - @Test - public void testGetJobInstanceCount() throws Exception { - when(jobExplorer.getJobInstanceCount("myJob")).thenReturn(4); - - assertEquals(4, jsrJobOperator.getJobInstanceCount("myJob")); - } - - @Test(expected=NoSuchJobException.class) - public void testGetJobInstanceCountNoSuchJob() throws Exception { - when(jobExplorer.getJobInstanceCount("myJob")).thenThrow(new org.springframework.batch.core.launch.NoSuchJobException("expected")); - - jsrJobOperator.getJobInstanceCount("myJob"); - } - - @Test(expected=NoSuchJobException.class) - public void testGetJobInstanceCountZeroInstancesReturned() throws Exception { - when(jobExplorer.getJobInstanceCount("myJob")).thenReturn(0); - - jsrJobOperator.getJobInstanceCount("myJob"); - } - - @Test - public void testGetJobInstancesRoseyScenario() { - List instances = new ArrayList<>(); - instances.add(new JobInstance(1L, "myJob")); - instances.add(new JobInstance(2L, "myJob")); - instances.add(new JobInstance(3L, "myJob")); - - when(jobExplorer.getJobInstances("myJob", 0, 3)).thenReturn(instances); - - List jobInstances = jsrJobOperator.getJobInstances("myJob", 0, 3); - - assertEquals(3, jobInstances.size()); - assertEquals(1L, jobInstances.get(0).getInstanceId()); - assertEquals(2L, jobInstances.get(1).getInstanceId()); - assertEquals(3L, jobInstances.get(2).getInstanceId()); - } - - @Test(expected=NoSuchJobException.class) - public void testGetJobInstancesNullInstancesReturned() { - jsrJobOperator.getJobInstances("myJob", 0, 3); - } - - @Test(expected=NoSuchJobException.class) - public void testGetJobInstancesZeroInstancesReturned() { - List instances = new ArrayList<>(); - - when(jobExplorer.getJobInstances("myJob", 0, 3)).thenReturn(instances); - - jsrJobOperator.getJobInstances("myJob", 0, 3); - } - - @Test - public void testGetJobNames() { - List jobNames = new ArrayList<>(); - jobNames.add("job1"); - jobNames.add("job2"); - - when(jobExplorer.getJobNames()).thenReturn(jobNames); - - Set result = jsrJobOperator.getJobNames(); - - assertEquals(2, result.size()); - assertTrue(result.contains("job1")); - assertTrue(result.contains("job2")); - } - - @Test - public void testGetParametersRoseyScenario() { - JobExecution jobExecution = new JobExecution(5L, new JobParametersBuilder().addString("key1", "value1").addLong(JsrJobParametersConverter.JOB_RUN_ID, 5L).toJobParameters()); - - when(jobExplorer.getJobExecution(5L)).thenReturn(jobExecution); - - Properties params = jsrJobOperator.getParameters(5L); - - assertEquals("value1", params.get("key1")); - assertNull(params.get(JsrJobParametersConverter.JOB_RUN_ID)); - } - - @Test(expected=NoSuchJobExecutionException.class) - public void testGetParametersNoExecution() { - jsrJobOperator.getParameters(5L); - } - - @Test(expected=NoSuchJobException.class) - public void testGetNoRunningExecutions() { - Set executions = new HashSet<>(); - - when(jobExplorer.findRunningJobExecutions("myJob")).thenReturn(executions); - - jsrJobOperator.getRunningExecutions("myJob"); - } - - @Test - public void testGetRunningExecutions() { - Set executions = new HashSet<>(); - executions.add(new JobExecution(5L)); - - when(jobExplorer.findRunningJobExecutions("myJob")).thenReturn(executions); - - assertEquals(5L, jsrJobOperator.getRunningExecutions("myJob").get(0).longValue()); - } - - @Test - public void testGetStepExecutionsRoseyScenario() { - JobExecution jobExecution = new JobExecution(5L); - List stepExecutions = new ArrayList<>(); - stepExecutions.add(new StepExecution("step1", jobExecution, 1L)); - stepExecutions.add(new StepExecution("step2", jobExecution, 2L)); - jobExecution.addStepExecutions(stepExecutions); - - when(jobExplorer.getJobExecution(5L)).thenReturn(jobExecution); - when(jobExplorer.getStepExecution(5L, 1L)).thenReturn(new StepExecution("step1", jobExecution, 1L)); - when(jobExplorer.getStepExecution(5L, 2L)).thenReturn(new StepExecution("step2", jobExecution, 2L)); - - List results = jsrJobOperator.getStepExecutions(5L); - - assertEquals("step1", results.get(0).getStepName()); - assertEquals("step2", results.get(1).getStepName()); - } - - @Test(expected=NoSuchJobException.class) - public void testGetStepExecutionsNoExecutionReturned() { - jsrJobOperator.getStepExecutions(5L); - } - - @Test - public void testGetStepExecutionsPartitionedStepScenario() { - JobExecution jobExecution = new JobExecution(5L); - List stepExecutions = new ArrayList<>(); - stepExecutions.add(new StepExecution("step1", jobExecution, 1L)); - stepExecutions.add(new StepExecution("step2", jobExecution, 2L)); - stepExecutions.add(new StepExecution("step2:partition0", jobExecution, 2L)); - stepExecutions.add(new StepExecution("step2:partition1", jobExecution, 2L)); - stepExecutions.add(new StepExecution("step2:partition2", jobExecution, 2L)); - jobExecution.addStepExecutions(stepExecutions); - - when(jobExplorer.getJobExecution(5L)).thenReturn(jobExecution); - when(jobExplorer.getStepExecution(5L, 1L)).thenReturn(new StepExecution("step1", jobExecution, 1L)); - when(jobExplorer.getStepExecution(5L, 2L)).thenReturn(new StepExecution("step2", jobExecution, 2L)); - - List results = jsrJobOperator.getStepExecutions(5L); - - assertEquals("step1", results.get(0).getStepName()); - assertEquals("step2", results.get(1).getStepName()); - } - - @Test - public void testGetStepExecutionsNoStepExecutions() { - JobExecution jobExecution = new JobExecution(5L); - - when(jobExplorer.getJobExecution(5L)).thenReturn(jobExecution); - - List results = jsrJobOperator.getStepExecutions(5L); - - assertEquals(0, results.size()); - } - - @Test - public void testStartRoseyScenario() throws Exception { - jakarta.batch.runtime.JobExecution execution = runJob("jsrJobOperatorTestJob", new Properties(), TIMEOUT); - - assertEquals(BatchStatus.COMPLETED, execution.getBatchStatus()); - } - - @Test - public void testStartMultipleTimesSameParameters() throws Exception { - jsrJobOperator = BatchRuntime.getJobOperator(); - - int jobInstanceCountBefore = 0; - - try { - jobInstanceCountBefore = jsrJobOperator.getJobInstanceCount("myJob3"); - } catch (NoSuchJobException ignore) { - } - - jakarta.batch.runtime.JobExecution execution1 = runJob("jsrJobOperatorTestJob", new Properties(), TIMEOUT); - jakarta.batch.runtime.JobExecution execution2 = runJob("jsrJobOperatorTestJob", new Properties(), TIMEOUT); - jakarta.batch.runtime.JobExecution execution3 = runJob("jsrJobOperatorTestJob", new Properties(), TIMEOUT); - - assertEquals(BatchStatus.COMPLETED, execution1.getBatchStatus()); - assertEquals(BatchStatus.COMPLETED, execution2.getBatchStatus()); - assertEquals(BatchStatus.COMPLETED, execution3.getBatchStatus()); - - int jobInstanceCountAfter = jsrJobOperator.getJobInstanceCount("myJob3"); - - assertTrue((jobInstanceCountAfter - jobInstanceCountBefore) == 3); - } - - @Test - public void testRestartRoseyScenario() throws Exception { - jakarta.batch.runtime.JobExecution execution = runJob("jsrJobOperatorTestRestartJob", new Properties(), TIMEOUT); - - assertEquals(BatchStatus.FAILED, execution.getBatchStatus()); - - execution = restartJob(execution.getExecutionId(), null, TIMEOUT); - - assertEquals(BatchStatus.COMPLETED, execution.getBatchStatus()); - } - - @Test(expected = JobRestartException.class) - public void testNonRestartableJob() throws Exception { - jakarta.batch.runtime.JobExecution jobExecutionStart = runJob("jsrJobOperatorTestNonRestartableJob", new Properties(), TIMEOUT); - assertEquals(BatchStatus.FAILED, jobExecutionStart.getBatchStatus()); - - restartJob(jobExecutionStart.getExecutionId(), null, TIMEOUT); - } - - @Test(expected = JobRestartException.class) - public void testRestartAbandoned() throws Exception { - jsrJobOperator = BatchRuntime.getJobOperator(); - jakarta.batch.runtime.JobExecution execution = runJob("jsrJobOperatorTestRestartAbandonJob", null, TIMEOUT); - - assertEquals(BatchStatus.FAILED, execution.getBatchStatus()); - - jsrJobOperator.abandon(execution.getExecutionId()); - jsrJobOperator.restart(execution.getExecutionId(), null); - } - - @Test - public void testGetNoRestartJobParameters() { - JsrJobOperator jobOperator = (JsrJobOperator) jsrJobOperator; - Properties properties = jobOperator.getJobRestartProperties(null, null); - assertTrue(properties.isEmpty()); - } - - @Test - public void testGetRestartJobParameters() { - JsrJobOperator jobOperator = (JsrJobOperator) jsrJobOperator; - - JobExecution jobExecution = new JobExecution(1L, - new JobParametersBuilder().addString("prevKey1", "prevVal1").toJobParameters()); - - Properties userProperties = new Properties(); - userProperties.put("userKey1", "userVal1"); - - Properties properties = jobOperator.getJobRestartProperties(userProperties, jobExecution); - - assertTrue(properties.size() == 2); - assertTrue(properties.getProperty("prevKey1").equals("prevVal1")); - assertTrue(properties.getProperty("userKey1").equals("userVal1")); - } - - @Test - public void testGetRestartJobParametersWithDefaults() { - JsrJobOperator jobOperator = (JsrJobOperator) jsrJobOperator; - - JobExecution jobExecution = new JobExecution(1L, - new JobParametersBuilder().addString("prevKey1", "prevVal1").addString("prevKey2", "prevVal2").toJobParameters()); - - Properties defaultProperties = new Properties(); - defaultProperties.setProperty("prevKey2", "not value 2"); - Properties userProperties = new Properties(defaultProperties); - - Properties properties = jobOperator.getJobRestartProperties(userProperties, jobExecution); - - assertTrue(properties.size() == 2); - assertTrue(properties.getProperty("prevKey1").equals("prevVal1")); - assertTrue("prevKey2 = " + properties.getProperty("prevKey2"), properties.getProperty("prevKey2").equals("not value 2")); - } - - @Test - public void testNewJobParametersOverridePreviousRestartParameters() { - JsrJobOperator jobOperator = (JsrJobOperator) jsrJobOperator; - - JobExecution jobExecution = new JobExecution(1L, - new JobParametersBuilder() - .addString("prevKey1", "prevVal1") - .addString("overrideTest", "jobExecution") - .toJobParameters()); - - Properties userProperties = new Properties(); - userProperties.put("userKey1", "userVal1"); - userProperties.put("overrideTest", "userProperties"); - - Properties properties = jobOperator.getJobRestartProperties(userProperties, jobExecution); - - assertTrue(properties.size() == 3); - assertTrue(properties.getProperty("prevKey1").equals("prevVal1")); - assertTrue(properties.getProperty("userKey1").equals("userVal1")); - assertTrue(properties.getProperty("overrideTest").equals("userProperties")); - } - - @Test(expected = JobStartException.class) - public void testBeanCreationExceptionOnStart() throws Exception { - jsrJobOperator = BatchRuntime.getJobOperator(); - - try { - jsrJobOperator.start("jsrJobOperatorTestBeanCreationException", null); - } catch (JobStartException e) { - assertTrue(e.getCause() instanceof BeanCreationException); - throw e; - } - - fail("Should have failed"); - } - - @SuppressWarnings("unchecked") - @Test(expected=JobStartException.class) - public void testStartUnableToCreateJobExecution() throws Exception { - when(jobRepository.createJobExecution("myJob", null)).thenThrow(RuntimeException.class); - - jsrJobOperator.start("myJob", null); - } - - @Test - public void testJobStopRoseyScenario() throws Exception { - jsrJobOperator = BatchRuntime.getJobOperator(); - long executionId = jsrJobOperator.start("longRunningJob", null); - // Give the job a chance to get started - Thread.sleep(1000L); - jsrJobOperator.stop(executionId); - // Give the job the chance to finish stopping - Thread.sleep(1000L); - - assertEquals(BatchStatus.STOPPED, jsrJobOperator.getJobExecution(executionId).getBatchStatus()); - - } - - @Test - public void testApplicationContextClosingAfterJobSuccessful() throws Exception { - for(int i = 0; i < 3; i++) { - jakarta.batch.runtime.JobExecution execution = runJob("contextClosingTests", new Properties(), TIMEOUT); - - assertEquals(BatchStatus.COMPLETED, execution.getBatchStatus()); - - // Added to allow time for the context to finish closing before running the job again - Thread.sleep(1000l); - } - } - - public static class LongRunningBatchlet implements Batchlet { - - private boolean stopped = false; - - @Override - public String process() throws Exception { - while(!stopped) { - Thread.sleep(250); - } - return null; - } - - @Override - public void stop() throws Exception { - stopped = true; - } - } - - public static class FailingBatchlet extends AbstractBatchlet { - @Override - public String process() throws Exception { - throw new RuntimeException("blah"); - } - } - - public static class MustBeClosedBatchlet extends AbstractBatchlet { - - public static boolean closed = true; - - public MustBeClosedBatchlet() { - if(!closed) { - throw new RuntimeException("Batchlet wasn't closed last time"); - } - } - - public void close() { - closed = true; - } - - @Override - public String process() throws Exception { - closed = false; - return null; - } - } - - @Configuration - @Import(DataSourceConfiguration.class) - @EnableBatchProcessing - public static class BatchConfgiuration { - - @Bean - public JsrJobOperator jobOperator(JobExplorer jobExplorer, JobRepository jobrepository, DataSource dataSource, - PlatformTransactionManager transactionManager) throws Exception{ - - JsrJobParametersConverter jobParametersConverter = new JsrJobParametersConverter(dataSource); - jobParametersConverter.afterPropertiesSet(); - return new JsrJobOperator(jobExplorer, jobrepository, jobParametersConverter, transactionManager); - } - } -} diff --git a/spring-batch-core/src/test/java/org/springframework/batch/core/jsr/partition/JsrPartitionHandlerTests.java b/spring-batch-core/src/test/java/org/springframework/batch/core/jsr/partition/JsrPartitionHandlerTests.java deleted file mode 100644 index e24019254..000000000 --- a/spring-batch-core/src/test/java/org/springframework/batch/core/jsr/partition/JsrPartitionHandlerTests.java +++ /dev/null @@ -1,431 +0,0 @@ -/* - * Copyright 2013-2021 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.springframework.batch.core.jsr.partition; - -import org.junit.Before; -import org.junit.Ignore; -import org.junit.Test; -import org.springframework.batch.core.ExitStatus; -import org.springframework.batch.core.JobExecution; -import org.springframework.batch.core.JobInstance; -import org.springframework.batch.core.JobInterruptedException; -import org.springframework.batch.core.StepExecution; -import org.springframework.batch.core.jsr.AbstractJsrTestCase; -import org.springframework.batch.core.jsr.configuration.support.BatchPropertyContext; -import org.springframework.batch.core.jsr.step.batchlet.BatchletSupport; -import org.springframework.batch.core.repository.JobRepository; -import org.springframework.batch.core.repository.support.JobRepositoryFactoryBean; -import org.springframework.batch.core.step.StepSupport; -import org.springframework.jdbc.datasource.DataSourceTransactionManager; -import org.springframework.jdbc.datasource.embedded.EmbeddedDatabase; -import org.springframework.jdbc.datasource.embedded.EmbeddedDatabaseBuilder; -import org.springframework.util.StopWatch; - -import jakarta.batch.api.BatchProperty; -import jakarta.batch.api.partition.PartitionAnalyzer; -import jakarta.batch.api.partition.PartitionCollector; -import jakarta.batch.api.partition.PartitionMapper; -import jakarta.batch.api.partition.PartitionPlan; -import jakarta.batch.api.partition.PartitionPlanImpl; -import jakarta.batch.api.partition.PartitionReducer; -import jakarta.batch.runtime.BatchStatus; -import jakarta.inject.Inject; -import java.io.Serializable; -import java.util.Collection; -import java.util.Properties; -import java.util.Queue; -import java.util.concurrent.ConcurrentLinkedQueue; -import java.util.concurrent.atomic.AtomicInteger; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; -import static org.junit.Assert.fail; - -@Ignore // FIXME https://github.com/spring-projects/spring-batch/issues/3850 -public class JsrPartitionHandlerTests extends AbstractJsrTestCase { - - private JsrPartitionHandler handler; - private JobRepository repository; - private StepExecution stepExecution; - private AtomicInteger count; - private BatchPropertyContext propertyContext; - private JsrStepExecutionSplitter stepSplitter; - - @Before - public void setUp() throws Exception { - JobExecution jobExecution = new JobExecution(1L); - jobExecution.setJobInstance(new JobInstance(1L, "job")); - stepExecution = new StepExecution("step1", jobExecution); - stepSplitter = new JsrStepExecutionSplitter(repository, false, "step1", true); - Analyzer.collectorData = ""; - Analyzer.status = ""; - count = new AtomicInteger(0); - handler = new JsrPartitionHandler(); - handler.setStep(new StepSupport() { - @Override - public void execute(StepExecution stepExecution) throws JobInterruptedException { - count.incrementAndGet(); - stepExecution.setStatus(org.springframework.batch.core.BatchStatus.COMPLETED); - stepExecution.setExitStatus(new ExitStatus("done")); - } - }); - propertyContext = new BatchPropertyContext(); - handler.setPropertyContext(propertyContext); - EmbeddedDatabase embeddedDatabase = new EmbeddedDatabaseBuilder() - .addScript("/org/springframework/batch/core/schema-drop-hsqldb.sql") - .addScript("/org/springframework/batch/core/schema-hsqldb.sql") - .build(); - JobRepositoryFactoryBean factory = new JobRepositoryFactoryBean(); - factory.setDataSource(embeddedDatabase); - factory.setTransactionManager(new DataSourceTransactionManager(embeddedDatabase)); - factory.afterPropertiesSet(); - repository = factory.getObject(); - handler.setJobRepository(repository); - MyPartitionReducer.reset(); - CountingPartitionCollector.reset(); - } - - @Test - public void testAfterPropertiesSet() throws Exception { - handler = new JsrPartitionHandler(); - - try { - handler.afterPropertiesSet(); - fail("PropertyContext was not checked for"); - } catch(IllegalArgumentException iae) { - assertEquals("A BatchPropertyContext is required", iae.getMessage()); - } - - handler.setPropertyContext(new BatchPropertyContext()); - - try { - handler.afterPropertiesSet(); - fail("Threads or mapper was not checked for"); - } catch(IllegalArgumentException iae) { - assertEquals("Either a mapper implementation or the number of partitions/threads is required", iae.getMessage()); - } - - handler.setThreads(3); - - try { - handler.afterPropertiesSet(); - fail("JobRepository was not checked for"); - } catch(IllegalArgumentException iae) { - assertEquals("A JobRepository is required", iae.getMessage()); - } - - handler.setJobRepository(repository); - handler.afterPropertiesSet(); - - handler.setPollingInterval(-1); - try { - handler.afterPropertiesSet(); - fail("Polling interval was not checked for"); - } catch(IllegalArgumentException iae) { - assertEquals("The polling interval must be positive", iae.getMessage()); - } - } - - @Test - public void testHardcodedNumberOfPartitions() throws Exception { - handler.setThreads(3); - handler.setPartitions(3); - handler.afterPropertiesSet(); - - Collection executions = handler.handle(stepSplitter, stepExecution); - - assertEquals(3, executions.size()); - assertEquals(3, count.get()); - } - - @Test - public void testPollingPartitionsCompletion() throws Exception { - handler.setThreads(3); - handler.setPartitions(3); - handler.setPollingInterval(1000); - handler.afterPropertiesSet(); - - StopWatch stopWatch = new StopWatch(); - stopWatch.start(); - Collection executions = handler.handle(stepSplitter, stepExecution); - stopWatch.stop(); - - assertEquals(3, executions.size()); - assertEquals(3, count.get()); - assertTrue(stopWatch.getLastTaskTimeMillis() >= 1000); - } - - @Test - public void testMapperProvidesPartitions() throws Exception { - handler.setPartitionMapper(new PartitionMapper() { - - @Override - public PartitionPlan mapPartitions() throws Exception { - PartitionPlan plan = new PartitionPlanImpl(); - plan.setPartitions(3); - plan.setThreads(0); - return plan; - } - }); - - handler.afterPropertiesSet(); - - Collection executions = handler.handle(new JsrStepExecutionSplitter(repository, false, "step1", true), stepExecution); - - assertEquals(3, executions.size()); - assertEquals(3, count.get()); - } - - @Test - public void testMapperProvidesPartitionsAndThreads() throws Exception { - handler.setPartitionMapper(new PartitionMapper() { - - @Override - public PartitionPlan mapPartitions() throws Exception { - PartitionPlan plan = new PartitionPlanImpl(); - plan.setPartitions(3); - plan.setThreads(1); - return plan; - } - }); - - handler.afterPropertiesSet(); - - Collection executions = handler.handle(new JsrStepExecutionSplitter(repository, false, "step1", true), stepExecution); - - assertEquals(3, executions.size()); - assertEquals(3, count.get()); - } - - @Test - public void testMapperWithProperties() throws Exception { - handler.setPartitionMapper(new PartitionMapper() { - - @Override - public PartitionPlan mapPartitions() throws Exception { - PartitionPlan plan = new PartitionPlanImpl(); - Properties [] props = new Properties[2]; - props[0] = new Properties(); - props[0].put("key1", "value1"); - props[1] = new Properties(); - props[1].put("key1", "value2"); - plan.setPartitionProperties(props); - plan.setPartitions(3); - plan.setThreads(1); - return plan; - } - }); - - handler.afterPropertiesSet(); - - Collection executions = handler.handle(new JsrStepExecutionSplitter(repository, false, "step1", true), stepExecution); - - assertEquals(3, executions.size()); - assertEquals(3, count.get()); - assertEquals("value1", propertyContext.getStepProperties("step1:partition0").get("key1")); - assertEquals("value2", propertyContext.getStepProperties("step1:partition1").get("key1")); - } - - @Test - public void testAnalyzer() throws Exception { - Queue queue = new ConcurrentLinkedQueue<>(); - queue.add("foo"); - queue.add("bar"); - - handler.setPartitionDataQueue(queue); - handler.setThreads(2); - handler.setPartitions(2); - handler.setPartitionAnalyzer(new Analyzer()); - handler.afterPropertiesSet(); - - Collection executions = handler.handle(new JsrStepExecutionSplitter(repository, false, "step1", true), stepExecution); - - assertEquals(2, executions.size()); - assertEquals(2, count.get()); - assertEquals("foobar", Analyzer.collectorData); - assertEquals("COMPLETEDdone", Analyzer.status); - } - - @Test - public void testRestartNoOverride() throws Exception { - jakarta.batch.runtime.JobExecution execution1 = runJob("jsrPartitionHandlerRestartWithOverrideJob", null, 1000000L); - assertEquals(BatchStatus.FAILED, execution1.getBatchStatus()); - assertEquals(1, MyPartitionReducer.beginCount); - assertEquals(0, MyPartitionReducer.beforeCount); - assertEquals(1, MyPartitionReducer.rollbackCount); - assertEquals(1, MyPartitionReducer.afterCount); - assertEquals(3, CountingPartitionCollector.collected); - - MyPartitionReducer.reset(); - CountingPartitionCollector.reset(); - - jakarta.batch.runtime.JobExecution execution2 = restartJob(execution1.getExecutionId(), null, 1000000L); - assertEquals(BatchStatus.COMPLETED, execution2.getBatchStatus()); - assertEquals(1, MyPartitionReducer.beginCount); - assertEquals(1, MyPartitionReducer.beforeCount); - assertEquals(0, MyPartitionReducer.rollbackCount); - assertEquals(1, MyPartitionReducer.afterCount); - assertEquals(1, CountingPartitionCollector.collected); - } - - - @Test - public void testRestartOverride() throws Exception { - Properties jobParameters = new Properties(); - jobParameters.put("mapper.override", "true"); - - jakarta.batch.runtime.JobExecution execution1 = runJob("jsrPartitionHandlerRestartWithOverrideJob", jobParameters, 1000000L); - assertEquals(BatchStatus.FAILED, execution1.getBatchStatus()); - assertEquals(1, MyPartitionReducer.beginCount); - assertEquals(0, MyPartitionReducer.beforeCount); - assertEquals(1, MyPartitionReducer.rollbackCount); - assertEquals(1, MyPartitionReducer.afterCount); - assertEquals(3, CountingPartitionCollector.collected); - - MyPartitionReducer.reset(); - CountingPartitionCollector.reset(); - - jakarta.batch.runtime.JobExecution execution2 = restartJob(execution1.getExecutionId(), jobParameters, 1000000L); - assertEquals(BatchStatus.COMPLETED, execution2.getBatchStatus()); - assertEquals(1, MyPartitionReducer.beginCount); - assertEquals(1, MyPartitionReducer.beforeCount); - assertEquals(0, MyPartitionReducer.rollbackCount); - assertEquals(1, MyPartitionReducer.afterCount); - assertEquals(5, CountingPartitionCollector.collected); - } - - public static class CountingPartitionCollector implements PartitionCollector { - - public static int collected = 0; - - public static void reset() { - collected = 0; - } - - @Override - public Serializable collectPartitionData() throws Exception { - collected++; - - return null; - } - } - - public static class MyPartitionReducer implements PartitionReducer { - - public static int beginCount = 0; - public static int beforeCount = 0; - public static int rollbackCount = 0; - public static int afterCount = 0; - - public static void reset() { - beginCount = 0; - beforeCount = 0; - rollbackCount = 0; - afterCount = 0; - } - - @Override - public void beginPartitionedStep() throws Exception { - beginCount++; - } - - @Override - public void beforePartitionedStepCompletion() throws Exception { - beforeCount++; - } - - @Override - public void rollbackPartitionedStep() throws Exception { - rollbackCount++; - } - - @Override - public void afterPartitionedStepCompletion(PartitionStatus status) - throws Exception { - afterCount++; - } - } - - public static class MyPartitionMapper implements PartitionMapper { - - private static int count = 0; - - @Inject - @BatchProperty - String overrideString = "false"; - - @Override - public PartitionPlan mapPartitions() throws Exception { - count++; - - PartitionPlan plan = new PartitionPlanImpl(); - - if(count % 2 == 1) { - plan.setPartitions(3); - plan.setThreads(3); - } else { - plan.setPartitions(5); - plan.setThreads(5); - } - - plan.setPartitionsOverride(Boolean.valueOf(overrideString)); - - Properties[] props = new Properties[3]; - props[0] = new Properties(); - props[1] = new Properties(); - props[2] = new Properties(); - - if(count % 2 == 1) { - props[1].put("fail", "true"); - } - - plan.setPartitionProperties(props); - return plan; - } - } - - public static class MyBatchlet extends BatchletSupport { - @Inject - @BatchProperty - String fail; - - @Override - public String process() { - if("true".equalsIgnoreCase(fail)) { - throw new RuntimeException("Expected"); - } - - return null; - } - } - - public static class Analyzer implements PartitionAnalyzer { - - public static String collectorData; - public static String status; - - @Override - public void analyzeCollectorData(Serializable data) throws Exception { - collectorData = collectorData + data; - } - - @Override - public void analyzeStatus(BatchStatus batchStatus, String exitStatus) - throws Exception { - status = batchStatus + exitStatus; - } - } -} diff --git a/spring-batch-core/src/test/java/org/springframework/batch/core/jsr/partition/JsrStepExecutionSplitterTests.java b/spring-batch-core/src/test/java/org/springframework/batch/core/jsr/partition/JsrStepExecutionSplitterTests.java deleted file mode 100644 index 646d4eed7..000000000 --- a/spring-batch-core/src/test/java/org/springframework/batch/core/jsr/partition/JsrStepExecutionSplitterTests.java +++ /dev/null @@ -1,53 +0,0 @@ -/* - * Copyright 2013 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.springframework.batch.core.jsr.partition; - -import static org.junit.Assert.assertEquals; - -import java.util.Iterator; -import java.util.Set; - -import org.junit.Before; -import org.junit.Test; -import org.springframework.batch.core.JobExecution; -import org.springframework.batch.core.StepExecution; -import org.springframework.batch.core.step.JobRepositorySupport; - -public class JsrStepExecutionSplitterTests { - - private JsrStepExecutionSplitter splitter; - - @Before - public void setUp() throws Exception { - splitter = new JsrStepExecutionSplitter(new JobRepositorySupport(), false, "step1", true); - } - - @Test - public void test() throws Exception { - Set executions = splitter.split(new StepExecution("step1", new JobExecution(5L)), 3); - - assertEquals(3, executions.size()); - - Iterator stepExecutions = executions.iterator(); - - int count = 0; - while(stepExecutions.hasNext()) { - StepExecution curExecution = stepExecutions.next(); - assertEquals("step1:partition" + count, curExecution.getStepName()); - count++; - } - } -} diff --git a/spring-batch-core/src/test/java/org/springframework/batch/core/jsr/partition/PartitionCollectorAdapterTests.java b/spring-batch-core/src/test/java/org/springframework/batch/core/jsr/partition/PartitionCollectorAdapterTests.java deleted file mode 100644 index 438f2efab..000000000 --- a/spring-batch-core/src/test/java/org/springframework/batch/core/jsr/partition/PartitionCollectorAdapterTests.java +++ /dev/null @@ -1,62 +0,0 @@ -/* - * Copyright 2013-2021 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.springframework.batch.core.jsr.partition; - -import static org.junit.Assert.assertEquals; - -import java.io.Serializable; -import java.util.Queue; -import java.util.concurrent.ConcurrentLinkedQueue; -import java.util.concurrent.locks.ReentrantLock; - -import jakarta.batch.api.partition.PartitionCollector; - -import org.junit.Test; -import org.springframework.batch.core.scope.context.ChunkContext; - -public class PartitionCollectorAdapterTests { - - private PartitionCollectorAdapter adapter; - - @Test - public void testAfterChunkSuccessful() throws Exception { - Queue dataQueue = new ConcurrentLinkedQueue<>(); - - adapter = new PartitionCollectorAdapter(dataQueue, new PartitionCollector() { - - private int count = 0; - - @Override - public Serializable collectPartitionData() throws Exception { - return String.valueOf(count++); - } - }); - - adapter.setPartitionLock(new ReentrantLock()); - - ChunkContext context = new ChunkContext(null); - context.setComplete(); - - adapter.afterChunk(context); - adapter.afterChunkError(context); - adapter.afterChunk(context); - - assertEquals(3, dataQueue.size()); - assertEquals("0", dataQueue.remove()); - assertEquals("1", dataQueue.remove()); - assertEquals("2", dataQueue.remove()); - } -} diff --git a/spring-batch-core/src/test/java/org/springframework/batch/core/jsr/step/DecisionStepTests.java b/spring-batch-core/src/test/java/org/springframework/batch/core/jsr/step/DecisionStepTests.java deleted file mode 100644 index f8e28203e..000000000 --- a/spring-batch-core/src/test/java/org/springframework/batch/core/jsr/step/DecisionStepTests.java +++ /dev/null @@ -1,144 +0,0 @@ -/* - * Copyright 2013-2021 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.springframework.batch.core.jsr.step; - -import java.util.List; -import java.util.Properties; - -import jakarta.batch.api.Decider; -import jakarta.batch.runtime.BatchRuntime; -import jakarta.batch.runtime.BatchStatus; -import jakarta.batch.runtime.JobExecution; -import jakarta.batch.runtime.StepExecution; - -import org.junit.Test; - -import org.springframework.batch.core.jsr.AbstractJsrTestCase; -import org.springframework.util.Assert; - -import static org.junit.Assert.assertEquals; - -public class DecisionStepTests extends AbstractJsrTestCase { - - @Test - public void testDecisionAsFirstStepOfJob() throws Exception { - JobExecution execution = runJob("DecisionStepTests-decisionAsFirstStep-context", new Properties(), 10000L); - assertEquals(BatchStatus.FAILED, execution.getBatchStatus()); - assertEquals(0, BatchRuntime.getJobOperator().getStepExecutions(execution.getExecutionId()).size()); - } - - @Test - public void testDecisionThrowsException() throws Exception { - JobExecution execution = runJob("DecisionStepTests-decisionThrowsException-context", new Properties(), 10000L); - assertEquals(BatchStatus.FAILED, execution.getBatchStatus()); - assertEquals(2, BatchRuntime.getJobOperator().getStepExecutions(execution.getExecutionId()).size()); - } - - @Test - public void testDecisionValidExitStatus() throws Exception { - JobExecution execution = runJob("DecisionStepTests-decisionValidExitStatus-context", new Properties(), 10000L); - assertEquals(BatchStatus.COMPLETED, execution.getBatchStatus()); - assertEquals(3, BatchRuntime.getJobOperator().getStepExecutions(execution.getExecutionId()).size()); - } - - @Test - public void testDecisionUnmappedExitStatus() throws Exception { - JobExecution execution = runJob("DecisionStepTests-decisionInvalidExitStatus-context", new Properties(), 10000L); - assertEquals(BatchStatus.COMPLETED, execution.getBatchStatus()); - List stepExecutions = BatchRuntime.getJobOperator().getStepExecutions(execution.getExecutionId()); - assertEquals(2, stepExecutions.size()); - - for (StepExecution curExecution : stepExecutions) { - assertEquals(BatchStatus.COMPLETED, curExecution.getBatchStatus()); - } - } - - @Test - public void testDecisionCustomExitStatus() throws Exception { - JobExecution execution = runJob("DecisionStepTests-decisionCustomExitStatus-context", new Properties(), 10000L); - assertEquals(BatchStatus.FAILED, execution.getBatchStatus()); - assertEquals(2, BatchRuntime.getJobOperator().getStepExecutions(execution.getExecutionId()).size()); - assertEquals("CustomFail", execution.getExitStatus()); - } - - @Test - public void testDecisionAfterFlow() throws Exception { - JobExecution execution = runJob("DecisionStepTests-decisionAfterFlow-context", new Properties(), 10000L); - assertEquals(execution.getExitStatus(), BatchStatus.COMPLETED, execution.getBatchStatus()); - assertEquals(3, BatchRuntime.getJobOperator().getStepExecutions(execution.getExecutionId()).size()); - } - - @Test - public void testDecisionRestart() throws Exception { - JobExecution execution = runJob("DecisionStepTests-restart-context", new Properties(), 10000L); - assertEquals(BatchStatus.STOPPED, execution.getBatchStatus()); - - List stepExecutions = BatchRuntime.getJobOperator().getStepExecutions(execution.getExecutionId()); - assertEquals(2, stepExecutions.size()); - - assertEquals("step1", stepExecutions.get(0).getStepName()); - assertEquals("decision1", stepExecutions.get(1).getStepName()); - - JobExecution execution2 = restartJob(execution.getExecutionId(), new Properties(), 10000L); - assertEquals(BatchStatus.COMPLETED, execution2.getBatchStatus()); - - List stepExecutions2 = BatchRuntime.getJobOperator().getStepExecutions(execution2.getExecutionId()); - assertEquals(2, stepExecutions2.size()); - - assertEquals("decision1", stepExecutions2.get(0).getStepName()); - assertEquals("step2", stepExecutions2.get(1).getStepName()); - } - - public static class RestartDecider implements Decider { - - private static int runs = 0; - - @Override - public String decide(StepExecution[] executions) throws Exception { - Assert.isTrue(executions.length == 1, "Invalid array length"); - Assert.isTrue(executions[0].getStepName().equals("step1"), "Incorrect step name"); - - if(runs == 0) { - runs++; - return "STOP_HERE"; - } else { - return "CONTINUE"; - } - } - } - - public static class NextDecider implements Decider { - - @Override - public String decide(StepExecution[] executions) throws Exception { - for(StepExecution stepExecution : executions) { - if ("customFailTest".equals(stepExecution.getStepName())) { - return "CustomFail"; - } - } - - return "next"; - } - } - - public static class FailureDecider implements Decider { - - @Override - public String decide(StepExecution[] executions) throws Exception { - throw new RuntimeException("Expected"); - } - } -} diff --git a/spring-batch-core/src/test/java/org/springframework/batch/core/jsr/step/SplitTests.java b/spring-batch-core/src/test/java/org/springframework/batch/core/jsr/step/SplitTests.java deleted file mode 100644 index 8fe971e91..000000000 --- a/spring-batch-core/src/test/java/org/springframework/batch/core/jsr/step/SplitTests.java +++ /dev/null @@ -1,116 +0,0 @@ -/* - * Copyright 2020-2021 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.springframework.batch.core.jsr.step; - -import java.time.Duration; -import java.time.Instant; -import java.util.EnumSet; -import java.util.List; -import java.util.Properties; -import java.util.Set; - -import jakarta.batch.api.AbstractBatchlet; -import jakarta.batch.api.Decider; -import jakarta.batch.operations.JobOperator; -import jakarta.batch.runtime.BatchRuntime; -import jakarta.batch.runtime.BatchStatus; -import jakarta.batch.runtime.JobExecution; -import jakarta.batch.runtime.StepExecution; -import jakarta.batch.runtime.context.JobContext; -import jakarta.inject.Inject; - -import org.junit.Test; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.fail; - -/** - * @author Mahmoud Ben Hassine - */ -public class SplitTests { - - private static final Set END_STATUSES = - EnumSet.of(BatchStatus.COMPLETED, BatchStatus.FAILED, BatchStatus.STOPPED); - private final JobOperator jobOperator = BatchRuntime.getJobOperator(); - - @Test - public void testSplit() { - // given - String jobXMLName = "SplitTests-testSplit-context"; - Properties jobParameters = new Properties(); - - // when - long executionId = jobOperator.start(jobXMLName, jobParameters); - waitFor(executionId, 10); - JobExecution jobExecution = jobOperator.getJobExecution(executionId); - List stepExecutions = jobOperator.getStepExecutions(executionId); - - // then - assertEquals(BatchStatus.COMPLETED, jobExecution.getBatchStatus()); - assertEquals("COMPLETED", jobExecution.getExitStatus()); - assertEquals(5, stepExecutions.size()); - } - - @Test - public void testDecisionAfterSplit() { - // given - String jobXMLName = "SplitTests-testDecisionAfterSplit-context"; - Properties jobParameters = new Properties(); - - // when - long executionId = jobOperator.start(jobXMLName, jobParameters); - waitFor(executionId, 10); - JobExecution jobExecution = jobOperator.getJobExecution(executionId); - - // then - assertEquals(BatchStatus.COMPLETED, jobExecution.getBatchStatus()); - assertEquals(4, jobOperator.getStepExecutions(executionId).size()); - assertEquals(2, StepExecutionCountingDecider.previousStepCount); - } - - private void waitFor(long executionId, int timeoutInSeconds) { - Instant startTime = Instant.now(); - while (!END_STATUSES.contains(jobOperator.getJobExecution(executionId).getBatchStatus())) { - if ((Duration.between(Instant.now(), startTime).getSeconds() > timeoutInSeconds)) { - fail("Job processing did not complete in time"); - } - } - } - - public static class StepExecutionCountingDecider implements Decider { - - static int previousStepCount = 0; - - @Override - public String decide(StepExecution[] executions) { - previousStepCount = executions.length; - return "next"; - } - } - - public static class ExitStatusSettingBatchlet extends AbstractBatchlet { - - @Inject - JobContext jobContext; - - @Override - public String process() throws Exception { - jobContext.setExitStatus("Should be ignored"); - return null; - } - } - -} diff --git a/spring-batch-core/src/test/java/org/springframework/batch/core/jsr/step/batchlet/BatchletAdapterTests.java b/spring-batch-core/src/test/java/org/springframework/batch/core/jsr/step/batchlet/BatchletAdapterTests.java deleted file mode 100644 index 31de2ac5d..000000000 --- a/spring-batch-core/src/test/java/org/springframework/batch/core/jsr/step/batchlet/BatchletAdapterTests.java +++ /dev/null @@ -1,86 +0,0 @@ -/* - * Copyright 2013-2021 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.springframework.batch.core.jsr.step.batchlet; - -import static org.junit.Assert.assertEquals; -import static org.mockito.Mockito.doThrow; -import static org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; - -import jakarta.batch.api.Batchlet; -import jakarta.batch.operations.BatchRuntimeException; - -import org.junit.Before; -import org.junit.Rule; -import org.junit.Test; -import org.mockito.Mock; -import org.mockito.junit.MockitoJUnit; -import org.mockito.junit.MockitoRule; -import org.springframework.batch.core.ExitStatus; -import org.springframework.batch.core.StepContribution; -import org.springframework.batch.core.scope.context.ChunkContext; -import org.springframework.batch.repeat.RepeatStatus; - -public class BatchletAdapterTests { - - @Rule - public MockitoRule rule = MockitoJUnit.rule().silent(); - - private BatchletAdapter adapter; - @Mock - private Batchlet delegate; - @Mock - private StepContribution contribution; - - @Before - public void setUp() throws Exception { - adapter = new BatchletAdapter(delegate); - } - - @Test(expected=IllegalArgumentException.class) - public void testCreateWithNull() { - adapter = new BatchletAdapter(null); - } - - @Test - public void testExecuteNoExitStatus() throws Exception { - assertEquals(RepeatStatus.FINISHED, adapter.execute(contribution, new ChunkContext(null))); - - verify(delegate).process(); - } - - @Test - public void testExecuteWithExitStatus() throws Exception { - when(delegate.process()).thenReturn("my exit status"); - - assertEquals(RepeatStatus.FINISHED, adapter.execute(contribution, new ChunkContext(null))); - - verify(delegate).process(); - verify(contribution).setExitStatus(new ExitStatus("my exit status")); - } - - @Test - public void testStop() throws Exception{ - adapter.stop(); - verify(delegate).stop(); - } - - @Test(expected=BatchRuntimeException.class) - public void testStopException() throws Exception{ - doThrow(new Exception("expected")).when(delegate).stop(); - adapter.stop(); - } -} diff --git a/spring-batch-core/src/test/java/org/springframework/batch/core/jsr/step/batchlet/BatchletSupport.java b/spring-batch-core/src/test/java/org/springframework/batch/core/jsr/step/batchlet/BatchletSupport.java deleted file mode 100644 index 7f7ccf341..000000000 --- a/spring-batch-core/src/test/java/org/springframework/batch/core/jsr/step/batchlet/BatchletSupport.java +++ /dev/null @@ -1,31 +0,0 @@ -/* - * Copyright 2013-2021 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.springframework.batch.core.jsr.step.batchlet; - -import jakarta.batch.api.Batchlet; - -public class BatchletSupport implements Batchlet { - - @Override - public String process() throws Exception { - return null; - } - - @Override - public void stop() throws Exception { - // no-op - } -} diff --git a/spring-batch-core/src/test/java/org/springframework/batch/core/jsr/step/batchlet/FailingBatchlet.java b/spring-batch-core/src/test/java/org/springframework/batch/core/jsr/step/batchlet/FailingBatchlet.java deleted file mode 100644 index 0cdf88109..000000000 --- a/spring-batch-core/src/test/java/org/springframework/batch/core/jsr/step/batchlet/FailingBatchlet.java +++ /dev/null @@ -1,37 +0,0 @@ -/* - * Copyright 2013-2021 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.springframework.batch.core.jsr.step.batchlet; - -import jakarta.batch.api.Batchlet; - -/** - *

- * Test batchlet that always fails. - *

- * - * @author Chris Schaefer - * @author Mahmoud Ben Hassine - */ -public class FailingBatchlet implements Batchlet { - @Override - public String process() throws Exception { - throw new RuntimeException("process failed"); - } - - @Override - public void stop() throws Exception { - } -} diff --git a/spring-batch-core/src/test/java/org/springframework/batch/core/jsr/step/batchlet/RestartBatchlet.java b/spring-batch-core/src/test/java/org/springframework/batch/core/jsr/step/batchlet/RestartBatchlet.java deleted file mode 100644 index f2d60a145..000000000 --- a/spring-batch-core/src/test/java/org/springframework/batch/core/jsr/step/batchlet/RestartBatchlet.java +++ /dev/null @@ -1,38 +0,0 @@ -/* - * Copyright 2013-2021 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.springframework.batch.core.jsr.step.batchlet; - -import jakarta.batch.api.Batchlet; - -public class RestartBatchlet implements Batchlet { - - private static int runCount = 0; - - @Override - public String process() throws Exception { - runCount++; - - if(runCount == 1) { - throw new RuntimeException("This is expected"); - } - - return null; - } - - @Override - public void stop() throws Exception { - } -} diff --git a/spring-batch-core/src/test/java/org/springframework/batch/core/jsr/step/item/JsrChunkProcessorTests.java b/spring-batch-core/src/test/java/org/springframework/batch/core/jsr/step/item/JsrChunkProcessorTests.java deleted file mode 100644 index 194f16423..000000000 --- a/spring-batch-core/src/test/java/org/springframework/batch/core/jsr/step/item/JsrChunkProcessorTests.java +++ /dev/null @@ -1,434 +0,0 @@ -/* - * Copyright 2013-2021 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.springframework.batch.core.jsr.step.item; - -import static org.junit.Assert.assertEquals; - -import java.util.ArrayList; -import java.util.List; - -import org.junit.Before; -import org.junit.Test; -import org.springframework.batch.core.BatchStatus; -import org.springframework.batch.core.ItemProcessListener; -import org.springframework.batch.core.ItemReadListener; -import org.springframework.batch.core.ItemWriteListener; -import org.springframework.batch.core.JobExecution; -import org.springframework.batch.core.JobInterruptedException; -import org.springframework.batch.core.JobParameters; -import org.springframework.batch.core.Step; -import org.springframework.batch.core.StepExecution; -import org.springframework.batch.core.jsr.configuration.support.BatchPropertyContext; -import org.springframework.batch.core.jsr.step.builder.JsrSimpleStepBuilder; -import org.springframework.batch.core.repository.JobExecutionAlreadyRunningException; -import org.springframework.batch.core.repository.JobInstanceAlreadyCompleteException; -import org.springframework.batch.core.repository.JobRepository; -import org.springframework.batch.core.repository.JobRestartException; -import org.springframework.batch.core.repository.support.JobRepositoryFactoryBean; -import org.springframework.batch.core.step.builder.StepBuilder; -import org.springframework.batch.item.ItemProcessor; -import org.springframework.batch.item.ItemWriter; -import org.springframework.batch.item.support.ListItemReader; -import org.springframework.batch.support.transaction.ResourcelessTransactionManager; -import org.springframework.jdbc.datasource.DataSourceTransactionManager; -import org.springframework.jdbc.datasource.embedded.EmbeddedDatabase; -import org.springframework.jdbc.datasource.embedded.EmbeddedDatabaseBuilder; -import org.springframework.lang.Nullable; - -public class JsrChunkProcessorTests { - - private FailingListItemReader reader; - private FailingCountingItemProcessor processor; - private StoringItemWriter writer; - private CountingListener readListener; - private JsrSimpleStepBuilder builder; - private JobRepository repository; - private StepExecution stepExecution; - - @Before - public void setUp() throws Exception { - - List items = new ArrayList<>(); - - for (int i = 0; i < 25; i++) { - items.add("item " + i); - } - - reader = new FailingListItemReader(items); - processor = new FailingCountingItemProcessor(); - writer = new StoringItemWriter(); - readListener = new CountingListener(); - - builder = new JsrSimpleStepBuilder<>(new StepBuilder("step1")); - builder.setBatchPropertyContext(new BatchPropertyContext()); - EmbeddedDatabase embeddedDatabase = new EmbeddedDatabaseBuilder() - .addScript("/org/springframework/batch/core/schema-drop-hsqldb.sql") - .addScript("/org/springframework/batch/core/schema-hsqldb.sql") - .build(); - JobRepositoryFactoryBean factory = new JobRepositoryFactoryBean(); - factory.setDataSource(embeddedDatabase); - factory.setTransactionManager(new DataSourceTransactionManager(embeddedDatabase)); - factory.afterPropertiesSet(); - repository = factory.getObject(); - builder.repository(repository); - builder.transactionManager(new ResourcelessTransactionManager()); - stepExecution = null; - } - - @Test - public void testNoInputNoListeners() throws Exception{ - reader = new FailingListItemReader(new ArrayList<>()); - Step step = builder.chunk(25).reader(reader).processor(processor).writer(writer).listener((ItemReadListener) readListener).build(); - - runStep(step); - - assertEquals(BatchStatus.COMPLETED, stepExecution.getStatus()); - assertEquals(0, processor.count); - assertEquals(0, writer.results.size()); - assertEquals(0, stepExecution.getProcessSkipCount()); - assertEquals(0, stepExecution.getReadCount()); - assertEquals(0, stepExecution.getReadSkipCount()); - assertEquals(0, stepExecution.getSkipCount()); - assertEquals(0, stepExecution.getWriteCount()); - assertEquals(0, stepExecution.getFilterCount()); - assertEquals(0, stepExecution.getWriteSkipCount()); - } - - @Test - public void testSimpleScenarioNoListeners() throws Exception{ - Step step = builder.chunk(25).reader(reader).processor(processor).writer(writer).build(); - - runStep(step); - - assertEquals(BatchStatus.COMPLETED, stepExecution.getStatus()); - assertEquals(0, stepExecution.getProcessSkipCount()); - assertEquals(25, stepExecution.getReadCount()); - assertEquals(0, stepExecution.getReadSkipCount()); - assertEquals(0, stepExecution.getSkipCount()); - assertEquals(25, stepExecution.getWriteCount()); - assertEquals(0, stepExecution.getFilterCount()); - assertEquals(0, stepExecution.getWriteSkipCount()); - assertEquals(25, writer.results.size()); - assertEquals(25, processor.count); - - int count = 0; - for (String curItem : writer.results) { - assertEquals("item " + count, curItem); - count++; - } - } - - @Test - public void testSimpleScenarioNoProcessor() throws Exception{ - Step step = builder.chunk(25).reader(reader).writer(writer).listener((ItemReadListener) readListener).build(); - - runStep(step); - - assertEquals(BatchStatus.COMPLETED, stepExecution.getStatus()); - assertEquals(0, stepExecution.getProcessSkipCount()); - assertEquals(25, stepExecution.getReadCount()); - assertEquals(0, stepExecution.getReadSkipCount()); - assertEquals(0, stepExecution.getSkipCount()); - assertEquals(25, stepExecution.getWriteCount()); - assertEquals(0, stepExecution.getFilterCount()); - assertEquals(0, stepExecution.getWriteSkipCount()); - assertEquals(0, readListener.afterProcess); - assertEquals(25, readListener.afterRead); - assertEquals(1, readListener.afterWrite); - assertEquals(0, readListener.beforeProcess); - assertEquals(26, readListener.beforeRead); - assertEquals(1, readListener.beforeWriteCount); - assertEquals(0, readListener.onProcessError); - assertEquals(0, readListener.onReadError); - assertEquals(0, readListener.onWriteError); - assertEquals(0, processor.count); - - int count = 0; - for (String curItem : writer.results) { - assertEquals("item " + count, curItem); - count++; - } - } - - @Test - public void testProcessorFilteringNoListeners() throws Exception{ - processor.filter = true; - Step step = builder.chunk(25).reader(reader).processor(processor).writer(writer).listener((ItemReadListener) readListener).build(); - - runStep(step); - - int count = 0; - for (String curItem : writer.results) { - assertEquals("item " + count, curItem); - count += 2; - } - - assertEquals(BatchStatus.COMPLETED, stepExecution.getStatus()); - assertEquals(0, stepExecution.getProcessSkipCount()); - assertEquals(25, stepExecution.getReadCount()); - assertEquals(0, stepExecution.getReadSkipCount()); - assertEquals(0, stepExecution.getSkipCount()); - assertEquals(13, stepExecution.getWriteCount()); - assertEquals(12, stepExecution.getFilterCount()); - assertEquals(0, stepExecution.getWriteSkipCount()); - assertEquals(25, processor.count); - } - - @Test - public void testReadError() throws Exception{ - reader.failCount = 10; - - Step step = builder.chunk(25).reader(reader).processor(processor).writer(writer).listener((ItemReadListener) readListener).build(); - - runStep(step); - - assertEquals(BatchStatus.FAILED, stepExecution.getStatus()); - assertEquals(9, processor.count); - assertEquals(0, writer.results.size()); - assertEquals(0, stepExecution.getProcessSkipCount()); - assertEquals(9, stepExecution.getReadCount()); - assertEquals(0, stepExecution.getReadSkipCount()); - assertEquals(0, stepExecution.getSkipCount()); - assertEquals(0, stepExecution.getWriteCount()); - assertEquals(0, stepExecution.getFilterCount()); - assertEquals(0, stepExecution.getWriteSkipCount()); - assertEquals(1, stepExecution.getFailureExceptions().size()); - assertEquals("expected at read index 10", stepExecution.getFailureExceptions().get(0).getMessage()); - assertEquals(9, readListener.afterProcess); - assertEquals(9, readListener.afterRead); - assertEquals(0, readListener.afterWrite); - assertEquals(9, readListener.beforeProcess); - assertEquals(10, readListener.beforeRead); - assertEquals(0, readListener.beforeWriteCount); - assertEquals(0, readListener.onProcessError); - assertEquals(1, readListener.onReadError); - assertEquals(0, readListener.onWriteError); - } - - @Test - public void testProcessError() throws Exception{ - processor.failCount = 10; - - Step step = builder.chunk(25).reader(reader).processor(processor).writer(writer).listener((ItemReadListener) readListener).build(); - - runStep(step); - - assertEquals(BatchStatus.FAILED, stepExecution.getStatus()); - assertEquals(10, processor.count); - assertEquals(0, writer.results.size()); - assertEquals(0, stepExecution.getProcessSkipCount()); - assertEquals(10, stepExecution.getReadCount()); - assertEquals(0, stepExecution.getReadSkipCount()); - assertEquals(0, stepExecution.getSkipCount()); - assertEquals(0, stepExecution.getWriteCount()); - assertEquals(0, stepExecution.getFilterCount()); - assertEquals(0, stepExecution.getWriteSkipCount()); - assertEquals("expected at process index 10", stepExecution.getFailureExceptions().get(0).getMessage()); - assertEquals(9, readListener.afterProcess); - assertEquals(10, readListener.afterRead); - assertEquals(0, readListener.afterWrite); - assertEquals(10, readListener.beforeProcess); - assertEquals(10, readListener.beforeRead); - assertEquals(0, readListener.beforeWriteCount); - assertEquals(1, readListener.onProcessError); - assertEquals(0, readListener.onReadError); - assertEquals(0, readListener.onWriteError); - } - - @Test - public void testWriteError() throws Exception{ - writer.fail = true; - - Step step = builder.chunk(25).reader(reader).processor(processor).writer(writer).listener((ItemReadListener) readListener).build(); - - runStep(step); - - assertEquals(BatchStatus.FAILED, stepExecution.getStatus()); - assertEquals(25, processor.count); - assertEquals(0, writer.results.size()); - assertEquals(0, stepExecution.getProcessSkipCount()); - assertEquals(25, stepExecution.getReadCount()); - assertEquals(0, stepExecution.getReadSkipCount()); - assertEquals(0, stepExecution.getSkipCount()); - assertEquals(0, stepExecution.getWriteCount()); - assertEquals(0, stepExecution.getFilterCount()); - assertEquals(0, stepExecution.getWriteSkipCount()); - assertEquals("expected in write", stepExecution.getFailureExceptions().get(0).getMessage()); - assertEquals(25, readListener.afterProcess); - assertEquals(25, readListener.afterRead); - assertEquals(0, readListener.afterWrite); - assertEquals(25, readListener.beforeProcess); - assertEquals(25, readListener.beforeRead); - assertEquals(1, readListener.beforeWriteCount); - assertEquals(0, readListener.onProcessError); - assertEquals(0, readListener.onReadError); - assertEquals(1, readListener.onWriteError); - } - - @Test - public void testMultipleChunks() throws Exception{ - - Step step = builder.chunk(10).reader(reader).processor(processor).writer(writer).listener((ItemReadListener) readListener).build(); - - runStep(step); - - assertEquals(BatchStatus.COMPLETED, stepExecution.getStatus()); - assertEquals(25, processor.count); - assertEquals(25, writer.results.size()); - assertEquals(0, stepExecution.getProcessSkipCount()); - assertEquals(25, stepExecution.getReadCount()); - assertEquals(0, stepExecution.getReadSkipCount()); - assertEquals(0, stepExecution.getSkipCount()); - assertEquals(25, stepExecution.getWriteCount()); - assertEquals(0, stepExecution.getFilterCount()); - assertEquals(0, stepExecution.getWriteSkipCount()); - assertEquals(25, readListener.afterProcess); - assertEquals(25, readListener.afterRead); - assertEquals(3, readListener.afterWrite); - assertEquals(25, readListener.beforeProcess); - assertEquals(26, readListener.beforeRead); - assertEquals(3, readListener.beforeWriteCount); - assertEquals(0, readListener.onProcessError); - assertEquals(0, readListener.onReadError); - assertEquals(0, readListener.onWriteError); - } - - protected void runStep(Step step) - throws JobExecutionAlreadyRunningException, JobRestartException, - JobInstanceAlreadyCompleteException, JobInterruptedException { - JobExecution jobExecution = repository.createJobExecution("job1", new JobParameters()); - stepExecution = new StepExecution("step1", jobExecution); - repository.add(stepExecution); - - step.execute(stepExecution); - } - - public static class FailingListItemReader extends ListItemReader { - - protected int failCount = -1; - protected int count = 0; - - public FailingListItemReader(List list) { - super(list); - } - - @Nullable - @Override - public String read() { - count++; - - if(failCount == count) { - throw new RuntimeException("expected at read index " + failCount); - } else { - return super.read(); - } - } - } - - public static class FailingCountingItemProcessor implements ItemProcessor{ - protected int count = 0; - protected int failCount = -1; - protected boolean filter = false; - - @Nullable - @Override - public String process(String item) throws Exception { - count++; - - if(filter && count % 2 == 0) { - return null; - } else if(count == failCount){ - throw new RuntimeException("expected at process index " + failCount); - } else { - return item; - } - } - } - - public static class StoringItemWriter implements ItemWriter{ - - protected List results = new ArrayList<>(); - protected boolean fail = false; - - @Override - public void write(List items) throws Exception { - if(fail) { - throw new RuntimeException("expected in write"); - } - - results.addAll(items); - } - } - - public static class CountingListener implements ItemReadListener, ItemProcessListener, ItemWriteListener { - - protected int beforeWriteCount = 0; - protected int afterWrite = 0; - protected int onWriteError = 0; - protected int beforeProcess = 0; - protected int afterProcess = 0; - protected int onProcessError = 0; - protected int beforeRead = 0; - protected int afterRead = 0; - protected int onReadError = 0; - - @Override - public void beforeWrite(List items) { - beforeWriteCount++; - } - - @Override - public void afterWrite(List items) { - afterWrite++; - } - - @Override - public void onWriteError(Exception exception, - List items) { - onWriteError++; - } - - @Override - public void beforeProcess(String item) { - beforeProcess++; - } - - @Override - public void afterProcess(String item, @Nullable String result) { - afterProcess++; - } - - @Override - public void onProcessError(String item, Exception e) { - onProcessError++; - } - - @Override - public void beforeRead() { - beforeRead++; - } - - @Override - public void afterRead(String item) { - afterRead++; - } - - @Override - public void onReadError(Exception ex) { - onReadError++; - } - } -} diff --git a/spring-batch-core/src/test/java/org/springframework/batch/core/jsr/step/item/JsrChunkProviderTests.java b/spring-batch-core/src/test/java/org/springframework/batch/core/jsr/step/item/JsrChunkProviderTests.java deleted file mode 100644 index a76c12088..000000000 --- a/spring-batch-core/src/test/java/org/springframework/batch/core/jsr/step/item/JsrChunkProviderTests.java +++ /dev/null @@ -1,40 +0,0 @@ -/* - * Copyright 2013 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.springframework.batch.core.jsr.step.item; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotNull; - -import org.junit.Before; -import org.junit.Test; -import org.springframework.batch.core.step.item.Chunk; - -public class JsrChunkProviderTests { - - private JsrChunkProvider provider; - - @Before - public void setUp() throws Exception { - provider = new JsrChunkProvider<>(); - } - - @Test - public void test() throws Exception { - Chunk chunk = provider.provide(null); - assertNotNull(chunk); - assertEquals(0, chunk.getItems().size()); - } -} diff --git a/spring-batch-core/src/test/java/org/springframework/batch/core/jsr/step/item/JsrFaultTolerantChunkProcessorTests.java b/spring-batch-core/src/test/java/org/springframework/batch/core/jsr/step/item/JsrFaultTolerantChunkProcessorTests.java deleted file mode 100644 index 375678c6e..000000000 --- a/spring-batch-core/src/test/java/org/springframework/batch/core/jsr/step/item/JsrFaultTolerantChunkProcessorTests.java +++ /dev/null @@ -1,639 +0,0 @@ -/* - * Copyright 2013-2021 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.springframework.batch.core.jsr.step.item; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotNull; - -import java.util.ArrayList; -import java.util.List; - -import org.junit.Before; -import org.junit.Test; -import org.springframework.batch.core.BatchStatus; -import org.springframework.batch.core.ItemProcessListener; -import org.springframework.batch.core.ItemReadListener; -import org.springframework.batch.core.ItemWriteListener; -import org.springframework.batch.core.JobExecution; -import org.springframework.batch.core.JobInterruptedException; -import org.springframework.batch.core.JobParameters; -import org.springframework.batch.core.SkipListener; -import org.springframework.batch.core.Step; -import org.springframework.batch.core.StepExecution; -import org.springframework.batch.core.jsr.configuration.support.BatchPropertyContext; -import org.springframework.batch.core.jsr.step.builder.JsrFaultTolerantStepBuilder; -import org.springframework.batch.core.repository.JobExecutionAlreadyRunningException; -import org.springframework.batch.core.repository.JobInstanceAlreadyCompleteException; -import org.springframework.batch.core.repository.JobRepository; -import org.springframework.batch.core.repository.JobRestartException; -import org.springframework.batch.core.repository.support.JobRepositoryFactoryBean; -import org.springframework.batch.core.step.builder.StepBuilder; -import org.springframework.batch.item.ItemProcessor; -import org.springframework.batch.item.ItemWriter; -import org.springframework.batch.item.support.ListItemReader; -import org.springframework.batch.support.transaction.ResourcelessTransactionManager; -import org.springframework.jdbc.datasource.DataSourceTransactionManager; -import org.springframework.jdbc.datasource.embedded.EmbeddedDatabase; -import org.springframework.jdbc.datasource.embedded.EmbeddedDatabaseBuilder; -import org.springframework.lang.Nullable; - -public class JsrFaultTolerantChunkProcessorTests { - - private FailingListItemReader reader; - private FailingCountingItemProcessor processor; - private StoringItemWriter writer; - private CountingListener listener; - private JsrFaultTolerantStepBuilder builder; - private JobRepository repository; - private StepExecution stepExecution; - - @Before - public void setUp() throws Exception { - - List items = new ArrayList<>(); - - for (int i = 0; i < 25; i++) { - items.add("item " + i); - } - - reader = new FailingListItemReader(items); - processor = new FailingCountingItemProcessor(); - writer = new StoringItemWriter(); - listener = new CountingListener(); - - builder = new JsrFaultTolerantStepBuilder<>(new StepBuilder("step1")); - builder.setBatchPropertyContext(new BatchPropertyContext()); - EmbeddedDatabase embeddedDatabase = new EmbeddedDatabaseBuilder() - .addScript("/org/springframework/batch/core/schema-drop-hsqldb.sql") - .addScript("/org/springframework/batch/core/schema-hsqldb.sql") - .build(); - JobRepositoryFactoryBean factory = new JobRepositoryFactoryBean(); - factory.setDataSource(embeddedDatabase); - factory.setTransactionManager(new DataSourceTransactionManager(embeddedDatabase)); - factory.afterPropertiesSet(); - repository = factory.getObject(); - builder.repository(repository); - builder.transactionManager(new ResourcelessTransactionManager()); - stepExecution = null; - } - - @Test - public void testNoInputNoListeners() throws Exception{ - reader = new FailingListItemReader(new ArrayList<>()); - Step step = builder.chunk(25).reader(reader).processor(processor).writer(writer).listener((ItemReadListener) listener).build(); - - runStep(step); - - assertEquals(BatchStatus.COMPLETED, stepExecution.getStatus()); - assertEquals(0, processor.count); - assertEquals(0, writer.results.size()); - assertEquals(0, stepExecution.getProcessSkipCount()); - assertEquals(0, stepExecution.getReadCount()); - assertEquals(0, stepExecution.getReadSkipCount()); - assertEquals(0, stepExecution.getSkipCount()); - assertEquals(0, stepExecution.getWriteCount()); - assertEquals(0, stepExecution.getFilterCount()); - assertEquals(0, stepExecution.getWriteSkipCount()); - } - - @Test - public void testSimpleScenarioNoListeners() throws Exception{ - Step step = builder.chunk(25).reader(reader).processor(processor).writer(writer).build(); - - runStep(step); - - assertEquals(BatchStatus.COMPLETED, stepExecution.getStatus()); - assertEquals(0, stepExecution.getProcessSkipCount()); - assertEquals(25, stepExecution.getReadCount()); - assertEquals(0, stepExecution.getReadSkipCount()); - assertEquals(0, stepExecution.getSkipCount()); - assertEquals(25, stepExecution.getWriteCount()); - assertEquals(0, stepExecution.getFilterCount()); - assertEquals(0, stepExecution.getWriteSkipCount()); - assertEquals(25, writer.results.size()); - assertEquals(25, processor.count); - - int count = 0; - for (String curItem : writer.results) { - assertEquals("item " + count, curItem); - count++; - } - } - - @Test - public void testSimpleScenarioNoProcessor() throws Exception{ - Step step = builder.chunk(25).reader(reader).writer(writer).listener((ItemReadListener) listener).build(); - - runStep(step); - - assertEquals(BatchStatus.COMPLETED, stepExecution.getStatus()); - assertEquals(0, stepExecution.getProcessSkipCount()); - assertEquals(25, stepExecution.getReadCount()); - assertEquals(0, stepExecution.getReadSkipCount()); - assertEquals(0, stepExecution.getSkipCount()); - assertEquals(25, stepExecution.getWriteCount()); - assertEquals(0, stepExecution.getFilterCount()); - assertEquals(0, stepExecution.getWriteSkipCount()); - assertEquals(0, listener.afterProcess); - assertEquals(25, listener.afterRead); - assertEquals(1, listener.afterWrite); - assertEquals(0, listener.beforeProcess); - assertEquals(26, listener.beforeRead); - assertEquals(1, listener.beforeWriteCount); - assertEquals(0, listener.onProcessError); - assertEquals(0, listener.onReadError); - assertEquals(0, listener.onWriteError); - assertEquals(0, processor.count); - - int count = 0; - for (String curItem : writer.results) { - assertEquals("item " + count, curItem); - count++; - } - } - - @Test - public void testProcessorFilteringNoListeners() throws Exception{ - processor.filter = true; - Step step = builder.chunk(25).reader(reader).processor(processor).writer(writer).listener((ItemReadListener) listener).build(); - - runStep(step); - - int count = 0; - for (String curItem : writer.results) { - assertEquals("item " + count, curItem); - count += 2; - } - - assertEquals(BatchStatus.COMPLETED, stepExecution.getStatus()); - assertEquals(0, stepExecution.getProcessSkipCount()); - assertEquals(25, stepExecution.getReadCount()); - assertEquals(0, stepExecution.getReadSkipCount()); - assertEquals(0, stepExecution.getSkipCount()); - assertEquals(13, stepExecution.getWriteCount()); - assertEquals(12, stepExecution.getFilterCount()); - assertEquals(0, stepExecution.getWriteSkipCount()); - assertEquals(25, processor.count); - } - - @Test - public void testSkipReadError() throws Exception{ - reader.failCount = 10; - - Step step = builder.faultTolerant().skip(RuntimeException.class).skipLimit(20).chunk(25).reader(reader).processor(processor).writer(writer).listener((ItemReadListener) listener).build(); - - runStep(step); - - assertNotNull(stepExecution); - assertEquals(BatchStatus.COMPLETED, stepExecution.getStatus()); - assertEquals(25, processor.count); - assertEquals(25, writer.results.size()); - assertEquals(0, stepExecution.getProcessSkipCount()); - assertEquals(25, stepExecution.getReadCount()); - assertEquals(1, stepExecution.getReadSkipCount()); - assertEquals(1, stepExecution.getSkipCount()); - assertEquals(25, stepExecution.getWriteCount()); - assertEquals(0, stepExecution.getFilterCount()); - assertEquals(0, stepExecution.getWriteSkipCount()); - assertEquals(0, stepExecution.getFailureExceptions().size()); - assertEquals(25, listener.afterProcess); - assertEquals(25, listener.afterRead); - assertEquals(1, listener.afterWrite); - assertEquals(25, listener.beforeProcess); - assertEquals(27, listener.beforeRead); - assertEquals(1, listener.beforeWriteCount); - assertEquals(0, listener.onProcessError); - assertEquals(1, listener.onReadError); - assertEquals(0, listener.onWriteError); - } - - @Test - public void testRetryReadError() throws Exception{ - reader.failCount = 10; - - Step step = builder.faultTolerant().retry(RuntimeException.class).retryLimit(20).chunk(25).reader(reader).processor(processor).writer(writer).listener((ItemReadListener) listener).build(); - - runStep(step); - - assertEquals(BatchStatus.COMPLETED, stepExecution.getStatus()); - assertEquals(25, processor.count); - assertEquals(25, writer.results.size()); - assertEquals(0, stepExecution.getProcessSkipCount()); - assertEquals(25, stepExecution.getReadCount()); - assertEquals(0, stepExecution.getReadSkipCount()); - assertEquals(0, stepExecution.getSkipCount()); - assertEquals(25, stepExecution.getWriteCount()); - assertEquals(0, stepExecution.getFilterCount()); - assertEquals(0, stepExecution.getWriteSkipCount()); - assertEquals(0, stepExecution.getFailureExceptions().size()); - assertEquals(25, listener.afterProcess); - assertEquals(25, listener.afterRead); - assertEquals(1, listener.afterWrite); - assertEquals(25, listener.beforeProcess); - assertEquals(27, listener.beforeRead); - assertEquals(1, listener.beforeWriteCount); - assertEquals(0, listener.onProcessError); - assertEquals(1, listener.onReadError); - assertEquals(0, listener.onWriteError); - } - - @Test - public void testReadError() throws Exception{ - reader.failCount = 10; - - Step step = builder.chunk(25).reader(reader).processor(processor).writer(writer).listener((ItemReadListener) listener).build(); - - runStep(step); - - assertNotNull(stepExecution); - assertEquals(BatchStatus.FAILED, stepExecution.getStatus()); - assertEquals(9, processor.count); - assertEquals(0, writer.results.size()); - assertEquals(0, stepExecution.getProcessSkipCount()); - assertEquals(9, stepExecution.getReadCount()); - assertEquals(0, stepExecution.getReadSkipCount()); - assertEquals(0, stepExecution.getSkipCount()); - assertEquals(0, stepExecution.getWriteCount()); - assertEquals(0, stepExecution.getFilterCount()); - assertEquals(0, stepExecution.getWriteSkipCount()); - assertEquals(1, stepExecution.getFailureExceptions().size()); - assertEquals("expected at read index 10", stepExecution.getFailureExceptions().get(0).getCause().getMessage()); - assertEquals(9, listener.afterProcess); - assertEquals(9, listener.afterRead); - assertEquals(0, listener.afterWrite); - assertEquals(9, listener.beforeProcess); - assertEquals(10, listener.beforeRead); - assertEquals(0, listener.beforeWriteCount); - assertEquals(0, listener.onProcessError); - assertEquals(1, listener.onReadError); - assertEquals(0, listener.onWriteError); - } - - @Test - public void testProcessError() throws Exception{ - processor.failCount = 10; - - Step step = builder.chunk(25).reader(reader).processor(processor).writer(writer).listener((ItemReadListener) listener).build(); - - runStep(step); - - assertEquals(10, processor.count); - assertEquals(BatchStatus.FAILED, stepExecution.getStatus()); - assertEquals(0, writer.results.size()); - assertEquals(0, stepExecution.getProcessSkipCount()); - assertEquals(10, stepExecution.getReadCount()); - assertEquals(0, stepExecution.getReadSkipCount()); - assertEquals(0, stepExecution.getSkipCount()); - assertEquals(0, stepExecution.getWriteCount()); - assertEquals(0, stepExecution.getFilterCount()); - assertEquals(0, stepExecution.getWriteSkipCount()); - assertEquals("expected at process index 10", stepExecution.getFailureExceptions().get(0).getCause().getMessage()); - assertEquals(9, listener.afterProcess); - assertEquals(10, listener.afterRead); - assertEquals(0, listener.afterWrite); - assertEquals(10, listener.beforeProcess); - assertEquals(10, listener.beforeRead); - assertEquals(0, listener.beforeWriteCount); - assertEquals(1, listener.onProcessError); - assertEquals(0, listener.onReadError); - assertEquals(0, listener.onWriteError); - } - - @Test - public void testSkipProcessError() throws Exception{ - processor.failCount = 10; - - Step step = builder.faultTolerant().skip(RuntimeException.class).skipLimit(20).chunk(25).reader(reader).processor(processor).writer(writer).listener((ItemReadListener) listener).build(); - - runStep(step); - - assertNotNull(stepExecution); - assertEquals(BatchStatus.COMPLETED, stepExecution.getStatus()); - assertEquals(25, processor.count); - assertEquals(24, writer.results.size()); - assertEquals(1, stepExecution.getProcessSkipCount()); - assertEquals(25, stepExecution.getReadCount()); - assertEquals(0, stepExecution.getReadSkipCount()); - assertEquals(1, stepExecution.getSkipCount()); - assertEquals(24, stepExecution.getWriteCount()); - assertEquals(1, stepExecution.getFilterCount()); - assertEquals(0, stepExecution.getWriteSkipCount()); - assertEquals(0, stepExecution.getFailureExceptions().size()); - assertEquals(24, listener.afterProcess); - assertEquals(25, listener.afterRead); - assertEquals(1, listener.afterWrite); - assertEquals(25, listener.beforeProcess); - assertEquals(26, listener.beforeRead); - assertEquals(1, listener.beforeWriteCount); - assertEquals(1, listener.onProcessError); - assertEquals(0, listener.onReadError); - assertEquals(0, listener.onWriteError); - } - - @Test - public void testRetryProcessError() throws Exception{ - processor.failCount = 10; - - Step step = builder.faultTolerant().retry(RuntimeException.class).retryLimit(20).chunk(25).reader(reader).processor(processor).writer(writer).listener((ItemReadListener) listener).build(); - - runStep(step); - - assertNotNull(stepExecution); - assertEquals(BatchStatus.COMPLETED, stepExecution.getStatus()); - assertEquals(26, processor.count); - assertEquals(25, writer.results.size()); - assertEquals(0, stepExecution.getProcessSkipCount()); - assertEquals(25, stepExecution.getReadCount()); - assertEquals(0, stepExecution.getReadSkipCount()); - assertEquals(0, stepExecution.getSkipCount()); - assertEquals(25, stepExecution.getWriteCount()); - assertEquals(0, stepExecution.getFilterCount()); - assertEquals(0, stepExecution.getWriteSkipCount()); - assertEquals(0, stepExecution.getFailureExceptions().size()); - assertEquals(25, listener.afterProcess); - assertEquals(25, listener.afterRead); - assertEquals(1, listener.afterWrite); - assertEquals(26, listener.beforeProcess); - assertEquals(26, listener.beforeRead); - assertEquals(1, listener.beforeWriteCount); - assertEquals(1, listener.onProcessError); - assertEquals(0, listener.onReadError); - assertEquals(0, listener.onWriteError); - } - - @Test - public void testWriteError() throws Exception{ - writer.fail = true; - - Step step = builder.chunk(25).reader(reader).processor(processor).writer(writer).listener((ItemReadListener) listener).build(); - - runStep(step); - - assertEquals(25, processor.count); - assertEquals(BatchStatus.FAILED, stepExecution.getStatus()); - assertEquals(0, writer.results.size()); - assertEquals(0, stepExecution.getProcessSkipCount()); - assertEquals(25, stepExecution.getReadCount()); - assertEquals(0, stepExecution.getReadSkipCount()); - assertEquals(0, stepExecution.getSkipCount()); - assertEquals(0, stepExecution.getWriteCount()); - assertEquals(0, stepExecution.getFilterCount()); - assertEquals(0, stepExecution.getWriteSkipCount()); - assertEquals(25, listener.afterProcess); - assertEquals(25, listener.afterRead); - assertEquals(0, listener.afterWrite); - assertEquals(25, listener.beforeProcess); - assertEquals(25, listener.beforeRead); - assertEquals(1, listener.beforeWriteCount); - assertEquals(0, listener.onProcessError); - assertEquals(0, listener.onReadError); - assertEquals(1, listener.onWriteError); - } - - @Test - public void testRetryWriteError() throws Exception{ - writer.fail = true; - - Step step = builder.faultTolerant().retry(RuntimeException.class).retryLimit(25).chunk(25).reader(reader).processor(processor).writer(writer).listener((ItemReadListener) listener).build(); - - runStep(step); - - assertEquals(25, processor.count); - assertEquals(BatchStatus.COMPLETED, stepExecution.getStatus()); - assertEquals(25, writer.results.size()); - assertEquals(0, stepExecution.getProcessSkipCount()); - assertEquals(25, stepExecution.getReadCount()); - assertEquals(0, stepExecution.getReadSkipCount()); - assertEquals(0, stepExecution.getSkipCount()); - assertEquals(25, stepExecution.getWriteCount()); - assertEquals(0, stepExecution.getFilterCount()); - assertEquals(0, stepExecution.getWriteSkipCount()); - assertEquals(25, listener.afterProcess); - assertEquals(25, listener.afterRead); - assertEquals(1, listener.afterWrite); - assertEquals(25, listener.beforeProcess); - assertEquals(26, listener.beforeRead); - assertEquals(2, listener.beforeWriteCount); - assertEquals(0, listener.onProcessError); - assertEquals(0, listener.onReadError); - assertEquals(1, listener.onWriteError); - } - - @Test - public void testSkipWriteError() throws Exception{ - writer.fail = true; - - Step step = builder.faultTolerant().skip(RuntimeException.class).skipLimit(25).chunk(7).reader(reader).processor(processor).writer(writer).listener((ItemReadListener) listener).build(); - - runStep(step); - - assertEquals(BatchStatus.COMPLETED, stepExecution.getStatus()); - assertEquals(25, processor.count); - assertEquals(18, writer.results.size()); - assertEquals(0, stepExecution.getProcessSkipCount()); - assertEquals(25, stepExecution.getReadCount()); - assertEquals(0, stepExecution.getReadSkipCount()); - assertEquals(1, stepExecution.getSkipCount()); - assertEquals(18, stepExecution.getWriteCount()); - assertEquals(0, stepExecution.getFilterCount()); - assertEquals(1, stepExecution.getWriteSkipCount()); - assertEquals(25, listener.afterProcess); - assertEquals(25, listener.afterRead); - assertEquals(3, listener.afterWrite); - assertEquals(25, listener.beforeProcess); - assertEquals(26, listener.beforeRead); - assertEquals(4, listener.beforeWriteCount); - assertEquals(0, listener.onProcessError); - assertEquals(0, listener.onReadError); - assertEquals(1, listener.onWriteError); - assertEquals(0, listener.onSkipInRead); - assertEquals(0, listener.onSkipInProcess); - assertEquals(1, listener.onSkipInWrite); - } - - @Test - public void testMultipleChunks() throws Exception{ - - Step step = builder.chunk(10).reader(reader).processor(processor).writer(writer).listener((ItemReadListener) listener).build(); - - runStep(step); - - assertEquals(25, processor.count); - assertEquals(BatchStatus.COMPLETED, stepExecution.getStatus()); - assertEquals(25, writer.results.size()); - assertEquals(0, stepExecution.getProcessSkipCount()); - assertEquals(25, stepExecution.getReadCount()); - assertEquals(0, stepExecution.getReadSkipCount()); - assertEquals(0, stepExecution.getSkipCount()); - assertEquals(25, stepExecution.getWriteCount()); - assertEquals(0, stepExecution.getFilterCount()); - assertEquals(0, stepExecution.getWriteSkipCount()); - assertEquals(25, listener.afterProcess); - assertEquals(25, listener.afterRead); - assertEquals(3, listener.afterWrite); - assertEquals(25, listener.beforeProcess); - assertEquals(26, listener.beforeRead); - assertEquals(3, listener.beforeWriteCount); - assertEquals(0, listener.onProcessError); - assertEquals(0, listener.onReadError); - assertEquals(0, listener.onWriteError); - } - - protected void runStep(Step step) - throws JobExecutionAlreadyRunningException, JobRestartException, - JobInstanceAlreadyCompleteException, JobInterruptedException { - JobExecution jobExecution = repository.createJobExecution("job1", new JobParameters()); - stepExecution = new StepExecution("step1", jobExecution); - repository.add(stepExecution); - - step.execute(stepExecution); - } - - public static class FailingListItemReader extends ListItemReader { - - protected int failCount = -1; - protected int count = 0; - - public FailingListItemReader(List list) { - super(list); - } - - @Nullable - @Override - public String read() { - count++; - - if(failCount == count) { - throw new RuntimeException("expected at read index " + failCount); - } else { - return super.read(); - } - } - } - - public static class FailingCountingItemProcessor implements ItemProcessor{ - protected int count = 0; - protected int failCount = -1; - protected boolean filter = false; - - @Nullable - @Override - public String process(String item) throws Exception { - count++; - - if(filter && count % 2 == 0) { - return null; - } else if(count == failCount){ - throw new RuntimeException("expected at process index " + failCount); - } else { - return item; - } - } - } - - public static class StoringItemWriter implements ItemWriter{ - - protected List results = new ArrayList<>(); - protected boolean fail = false; - - @Override - public void write(List items) throws Exception { - if(fail) { - fail = false; - throw new RuntimeException("expected in write"); - } - - results.addAll(items); - } - } - - public static class CountingListener implements ItemReadListener, ItemProcessListener, ItemWriteListener, SkipListener> { - - protected int beforeWriteCount = 0; - protected int afterWrite = 0; - protected int onWriteError = 0; - protected int beforeProcess = 0; - protected int afterProcess = 0; - protected int onProcessError = 0; - protected int beforeRead = 0; - protected int afterRead = 0; - protected int onReadError = 0; - protected int onSkipInRead = 0; - protected int onSkipInProcess = 0; - protected int onSkipInWrite = 0; - - @Override - public void beforeWrite(List items) { - beforeWriteCount++; - } - - @Override - public void afterWrite(List items) { - afterWrite++; - } - - @Override - public void onWriteError(Exception exception, - List items) { - onWriteError++; - } - - @Override - public void beforeProcess(String item) { - beforeProcess++; - } - - @Override - public void afterProcess(String item, @Nullable String result) { - afterProcess++; - } - - @Override - public void onProcessError(String item, Exception e) { - onProcessError++; - } - - @Override - public void beforeRead() { - beforeRead++; - } - - @Override - public void afterRead(String item) { - afterRead++; - } - - @Override - public void onReadError(Exception ex) { - onReadError++; - } - - @Override - public void onSkipInRead(Throwable t) { - onSkipInRead++; - } - - @Override - public void onSkipInWrite(List items, Throwable t) { - onSkipInWrite++; - } - - @Override - public void onSkipInProcess(String item, Throwable t) { - onSkipInProcess++; - } - } -} diff --git a/spring-batch-core/src/test/java/org/springframework/batch/core/jsr/step/listener/ExitStatusSettingStepListener.java b/spring-batch-core/src/test/java/org/springframework/batch/core/jsr/step/listener/ExitStatusSettingStepListener.java deleted file mode 100644 index 12522900f..000000000 --- a/spring-batch-core/src/test/java/org/springframework/batch/core/jsr/step/listener/ExitStatusSettingStepListener.java +++ /dev/null @@ -1,56 +0,0 @@ -/* - * Copyright 2014-2021 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.springframework.batch.core.jsr.step.listener; - -import jakarta.batch.api.BatchProperty; -import jakarta.batch.api.listener.StepListener; -import jakarta.batch.runtime.context.JobContext; -import jakarta.inject.Inject; - -/** - *

- * {@link StepListener} for testing. Sets or appends the value of the - * testProperty field to the {@link JobContext} exit status on afterStep. - *

- * - * @author Chris Schaefer - * @author Mahmoud Ben Hassine - * @since 3.0 - */ -public class ExitStatusSettingStepListener implements StepListener { - @Inject - @BatchProperty - private String testProperty; - - @Inject - private JobContext jobContext; - - @Override - public void beforeStep() throws Exception { - - } - - @Override - public void afterStep() throws Exception { - String exitStatus = jobContext.getExitStatus(); - - if("".equals(exitStatus) || exitStatus == null) { - jobContext.setExitStatus(testProperty); - } else { - jobContext.setExitStatus(exitStatus + testProperty); - } - } -} diff --git a/spring-batch-core/src/test/java/org/springframework/batch/core/launch/support/CommandLineJobRunnerTests.java b/spring-batch-core/src/test/java/org/springframework/batch/core/launch/support/CommandLineJobRunnerTests.java index 65bfccc1e..d1b77af39 100644 --- a/spring-batch-core/src/test/java/org/springframework/batch/core/launch/support/CommandLineJobRunnerTests.java +++ b/spring-batch-core/src/test/java/org/springframework/batch/core/launch/support/CommandLineJobRunnerTests.java @@ -76,7 +76,7 @@ public class CommandLineJobRunnerTests { @Before public void setUp() throws Exception { - JobExecution jobExecution = new JobExecution(null, 1L, null, null); + JobExecution jobExecution = new JobExecution(null, 1L, null); ExitStatus exitStatus = ExitStatus.COMPLETED; jobExecution.setExitStatus(exitStatus); StubJobLauncher.jobExecution = jobExecution; @@ -314,7 +314,7 @@ public class CommandLineJobRunnerTests { public void testRestartExecution() throws Throwable { String[] args = new String[] { jobPath, "-restart", "11" }; JobParameters jobParameters = new JobParametersBuilder().addString("foo", "bar").toJobParameters(); - JobExecution jobExecution = new JobExecution(new JobInstance(0L, jobName), 11L, jobParameters, null); + JobExecution jobExecution = new JobExecution(new JobInstance(0L, jobName), 11L, jobParameters); jobExecution.setStatus(BatchStatus.FAILED); StubJobExplorer.jobExecution = jobExecution; CommandLineJobRunner.main(args); @@ -326,7 +326,7 @@ public class CommandLineJobRunnerTests { public void testRestartExecutionNotFailed() throws Throwable { String[] args = new String[] { jobPath, "-restart", "11" }; JobParameters jobParameters = new JobParametersBuilder().addString("foo", "bar").toJobParameters(); - JobExecution jobExecution = new JobExecution(new JobInstance(0L, jobName), 11L, jobParameters, null); + JobExecution jobExecution = new JobExecution(new JobInstance(0L, jobName), 11L, jobParameters); jobExecution.setStatus(BatchStatus.COMPLETED); StubJobExplorer.jobExecution = jobExecution; CommandLineJobRunner.main(args); @@ -495,7 +495,7 @@ public class CommandLineJobRunnerTests { } private JobExecution createJobExecution(JobInstance jobInstance, BatchStatus status) { - JobExecution jobExecution = new JobExecution(jobInstance, 1L, jobParameters, null); + JobExecution jobExecution = new JobExecution(jobInstance, 1L, jobParameters); jobExecution.setStatus(status); jobExecution.setStartTime(new Date()); if (status != BatchStatus.STARTED) { diff --git a/spring-batch-core/src/test/java/org/springframework/batch/core/launch/support/SimpleJobOperatorTests.java b/spring-batch-core/src/test/java/org/springframework/batch/core/launch/support/SimpleJobOperatorTests.java index 052ceeb79..888a74a72 100644 --- a/spring-batch-core/src/test/java/org/springframework/batch/core/launch/support/SimpleJobOperatorTests.java +++ b/spring-batch-core/src/test/java/org/springframework/batch/core/launch/support/SimpleJobOperatorTests.java @@ -1,5 +1,5 @@ /* - * Copyright 2006-2019 the original author or authors. + * Copyright 2006-2021 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. @@ -111,7 +111,7 @@ public class SimpleJobOperatorTests { } }); - jobOperator.setJobLauncher((job, jobParameters) -> new JobExecution(new JobInstance(123L, job.getName()), 999L, jobParameters, null)); + jobOperator.setJobLauncher((job, jobParameters) -> new JobExecution(new JobInstance(123L, job.getName()), 999L, jobParameters)); jobExplorer = mock(JobExplorer.class); @@ -189,7 +189,7 @@ public class SimpleJobOperatorTests { @Test public void testResumeSunnyDay() throws Exception { jobParameters = new JobParameters(); - when(jobExplorer.getJobExecution(111L)).thenReturn(new JobExecution(new JobInstance(123L, job.getName()), 111L, jobParameters, null)); + when(jobExplorer.getJobExecution(111L)).thenReturn(new JobExecution(new JobInstance(123L, job.getName()), 111L, jobParameters)); jobExplorer.getJobExecution(111L); Long value = jobOperator.restart(111L); assertEquals(999, value.longValue()); @@ -198,7 +198,7 @@ public class SimpleJobOperatorTests { @Test public void testGetSummarySunnyDay() throws Exception { jobParameters = new JobParameters(); - JobExecution jobExecution = new JobExecution(new JobInstance(123L, job.getName()), 111L, jobParameters, null); + JobExecution jobExecution = new JobExecution(new JobInstance(123L, job.getName()), 111L, jobParameters); when(jobExplorer.getJobExecution(111L)).thenReturn(jobExecution); jobExplorer.getJobExecution(111L); String value = jobOperator.getSummary(111L); @@ -221,7 +221,7 @@ public class SimpleJobOperatorTests { public void testGetStepExecutionSummariesSunnyDay() throws Exception { jobParameters = new JobParameters(); - JobExecution jobExecution = new JobExecution(new JobInstance(123L, job.getName()), 111L, jobParameters, null); + JobExecution jobExecution = new JobExecution(new JobInstance(123L, job.getName()), 111L, jobParameters); jobExecution.createStepExecution("step1"); jobExecution.createStepExecution("step2"); jobExecution.getStepExecutions().iterator().next().setId(21L); @@ -245,7 +245,7 @@ public class SimpleJobOperatorTests { @Test public void testFindRunningExecutionsSunnyDay() throws Exception { jobParameters = new JobParameters(); - JobExecution jobExecution = new JobExecution(new JobInstance(123L, job.getName()), 111L, jobParameters, null); + JobExecution jobExecution = new JobExecution(new JobInstance(123L, job.getName()), 111L, jobParameters); when(jobExplorer.findRunningJobExecutions("foo")).thenReturn(Collections.singleton(jobExecution)); Set value = jobOperator.getRunningExecutions("foo"); assertEquals(111L, value.iterator().next().longValue()); @@ -267,7 +267,7 @@ public class SimpleJobOperatorTests { @Test public void testGetJobParametersSunnyDay() throws Exception { final JobParameters jobParameters = new JobParameters(); - when(jobExplorer.getJobExecution(111L)).thenReturn(new JobExecution(new JobInstance(123L, job.getName()), 111L, jobParameters, null)); + when(jobExplorer.getJobExecution(111L)).thenReturn(new JobExecution(new JobInstance(123L, job.getName()), 111L, jobParameters)); String value = jobOperator.getParameters(111L); assertEquals("a=b", value); } @@ -318,7 +318,7 @@ public class SimpleJobOperatorTests { JobInstance jobInstance = new JobInstance(123L, job.getName()); when(jobExplorer.getJobInstance(123L)).thenReturn(jobInstance); - JobExecution jobExecution = new JobExecution(jobInstance, 111L, jobParameters, null); + JobExecution jobExecution = new JobExecution(jobInstance, 111L, jobParameters); when(jobExplorer.getJobExecutions(jobInstance)).thenReturn(Collections.singletonList(jobExecution)); List value = jobOperator.getExecutions(123L); assertEquals(111L, value.iterator().next().longValue()); @@ -339,7 +339,7 @@ public class SimpleJobOperatorTests { @Test public void testStop() throws Exception{ JobInstance jobInstance = new JobInstance(123L, job.getName()); - JobExecution jobExecution = new JobExecution(jobInstance, 111L, jobParameters, null); + JobExecution jobExecution = new JobExecution(jobInstance, 111L, jobParameters); when(jobExplorer.getJobExecution(111L)).thenReturn(jobExecution); jobExplorer.getJobExecution(111L); jobRepository.update(jobExecution); @@ -350,7 +350,7 @@ public class SimpleJobOperatorTests { @Test public void testStopTasklet() throws Exception { JobInstance jobInstance = new JobInstance(123L, job.getName()); - JobExecution jobExecution = new JobExecution(jobInstance, 111L, jobParameters, null); + JobExecution jobExecution = new JobExecution(jobInstance, 111L, jobParameters); StoppableTasklet tasklet = mock(StoppableTasklet.class); TaskletStep taskletStep = new TaskletStep(); taskletStep.setTasklet(tasklet); @@ -375,7 +375,7 @@ public class SimpleJobOperatorTests { @Test public void testStopTaskletWhenJobNotRegistered() throws Exception { JobInstance jobInstance = new JobInstance(123L, job.getName()); - JobExecution jobExecution = new JobExecution(jobInstance, 111L, jobParameters, null); + JobExecution jobExecution = new JobExecution(jobInstance, 111L, jobParameters); StoppableTasklet tasklet = mock(StoppableTasklet.class); JobRegistry jobRegistry = mock(JobRegistry.class); TaskletStep step = mock(TaskletStep.class); @@ -393,7 +393,7 @@ public class SimpleJobOperatorTests { @Test public void testStopTaskletException() throws Exception { JobInstance jobInstance = new JobInstance(123L, job.getName()); - JobExecution jobExecution = new JobExecution(jobInstance, 111L, jobParameters, null); + JobExecution jobExecution = new JobExecution(jobInstance, 111L, jobParameters); StoppableTasklet tasklet = new StoppableTasklet() { @Nullable @@ -430,7 +430,7 @@ public class SimpleJobOperatorTests { @Test public void testAbort() throws Exception { JobInstance jobInstance = new JobInstance(123L, job.getName()); - JobExecution jobExecution = new JobExecution(jobInstance, 111L, jobParameters, null); + JobExecution jobExecution = new JobExecution(jobInstance, 111L, jobParameters); jobExecution.setStatus(BatchStatus.STOPPING); when(jobExplorer.getJobExecution(123L)).thenReturn(jobExecution); jobRepository.update(jobExecution); @@ -442,7 +442,7 @@ public class SimpleJobOperatorTests { @Test(expected = JobExecutionAlreadyRunningException.class) public void testAbortNonStopping() throws Exception { JobInstance jobInstance = new JobInstance(123L, job.getName()); - JobExecution jobExecution = new JobExecution(jobInstance, 111L, jobParameters, null); + JobExecution jobExecution = new JobExecution(jobInstance, 111L, jobParameters); jobExecution.setStatus(BatchStatus.STARTED); when(jobExplorer.getJobExecution(123L)).thenReturn(jobExecution); jobRepository.update(jobExecution); diff --git a/spring-batch-core/src/test/java/org/springframework/batch/core/partition/support/MultiResourcePartitionerTests.java b/spring-batch-core/src/test/java/org/springframework/batch/core/partition/support/MultiResourcePartitionerTests.java index 19e99d8ca..abc939fc1 100644 --- a/spring-batch-core/src/test/java/org/springframework/batch/core/partition/support/MultiResourcePartitionerTests.java +++ b/spring-batch-core/src/test/java/org/springframework/batch/core/partition/support/MultiResourcePartitionerTests.java @@ -1,5 +1,5 @@ /* - * Copyright 2009-2017 the original author or authors. + * Copyright 2009-2021 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. @@ -36,7 +36,7 @@ public class MultiResourcePartitionerTests { @Before public void setUp() { ResourceArrayPropertyEditor editor = new ResourceArrayPropertyEditor(); - editor.setAsText("classpath:jsrBaseContext.xml"); + editor.setAsText("classpath:simple-job-launcher-context.xml"); partitioner.setResources((Resource[]) editor.getValue()); } diff --git a/spring-batch-core/src/test/java/org/springframework/batch/core/repository/dao/AbstractJobDaoTests.java b/spring-batch-core/src/test/java/org/springframework/batch/core/repository/dao/AbstractJobDaoTests.java index 18522d0c4..6f6b66594 100644 --- a/spring-batch-core/src/test/java/org/springframework/batch/core/repository/dao/AbstractJobDaoTests.java +++ b/spring-batch-core/src/test/java/org/springframework/batch/core/repository/dao/AbstractJobDaoTests.java @@ -1,5 +1,5 @@ /* - * Copyright 2006-2007 the original author or authors. + * Copyright 2006-2021 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -42,6 +42,7 @@ import org.springframework.transaction.annotation.Transactional; /** * @author Dave Syer + * @author Mahmoud Ben Hassine * */ public abstract class AbstractJobDaoTests { @@ -185,7 +186,7 @@ public abstract class AbstractJobDaoTests { public void testUpdateInvalidJobExecution() { // id is invalid - JobExecution execution = new JobExecution(jobInstance, (long) 29432, jobParameters, null); + JobExecution execution = new JobExecution(jobInstance, (long) 29432, jobParameters); execution.incrementVersion(); try { jobExecutionDao.updateJobExecution(execution); diff --git a/spring-batch-core/src/test/java/org/springframework/batch/core/repository/dao/AbstractStepExecutionDaoTests.java b/spring-batch-core/src/test/java/org/springframework/batch/core/repository/dao/AbstractStepExecutionDaoTests.java index 1a72196cc..5640a83a5 100644 --- a/spring-batch-core/src/test/java/org/springframework/batch/core/repository/dao/AbstractStepExecutionDaoTests.java +++ b/spring-batch-core/src/test/java/org/springframework/batch/core/repository/dao/AbstractStepExecutionDaoTests.java @@ -222,7 +222,7 @@ public abstract class AbstractStepExecutionDaoTests extends AbstractTransactiona @Transactional @Test public void testGetForNotExistingJobExecution() { - assertNull(dao.getStepExecution(new JobExecution(jobInstance, (long) 777, new JobParameters(), null), 11L)); + assertNull(dao.getStepExecution(new JobExecution(jobInstance, (long) 777, new JobParameters()), 11L)); } /** diff --git a/spring-batch-core/src/test/java/org/springframework/batch/core/repository/dao/JdbcJobInstanceDaoTests.java b/spring-batch-core/src/test/java/org/springframework/batch/core/repository/dao/JdbcJobInstanceDaoTests.java index 0a235d74d..31061ff95 100644 --- a/spring-batch-core/src/test/java/org/springframework/batch/core/repository/dao/JdbcJobInstanceDaoTests.java +++ b/spring-batch-core/src/test/java/org/springframework/batch/core/repository/dao/JdbcJobInstanceDaoTests.java @@ -1,5 +1,5 @@ /* - * Copyright 2008-2014 the original author or authors. + * Copyright 2008-2021 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. @@ -68,7 +68,7 @@ public class JdbcJobInstanceDaoTests extends AbstractJobInstanceDaoTests { JobParameters jobParameters = new JobParameters(); JobInstance jobInstance = dao.createJobInstance("testInstance", jobParameters); - JobExecution jobExecution = new JobExecution(jobInstance, 2L, jobParameters, null); + JobExecution jobExecution = new JobExecution(jobInstance, 2L, jobParameters); jobExecutionDao.saveJobExecution(jobExecution); JobInstance returnedInstance = dao.getJobInstance(jobExecution); diff --git a/spring-batch-core/src/test/java/org/springframework/batch/core/repository/support/SimpleJobRepositoryTests.java b/spring-batch-core/src/test/java/org/springframework/batch/core/repository/support/SimpleJobRepositoryTests.java index 0609c43e7..327bf1e36 100644 --- a/spring-batch-core/src/test/java/org/springframework/batch/core/repository/support/SimpleJobRepositoryTests.java +++ b/spring-batch-core/src/test/java/org/springframework/batch/core/repository/support/SimpleJobRepositoryTests.java @@ -1,5 +1,5 @@ /* - * Copyright 2006-2020 the original author or authors. + * Copyright 2006-2021 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. @@ -59,6 +59,7 @@ import org.springframework.batch.core.step.StepSupport; * @author Will Schipp * @author Dimitrios Liapis * @author Baris Cubukcuoglu + * @author Mahmoud Ben Hassine * */ public class SimpleJobRepositoryTests { @@ -126,7 +127,7 @@ public class SimpleJobRepositoryTests { steps.add(databaseStep1); steps.add(databaseStep2); - jobExecution = new JobExecution(new JobInstance(1L, job.getName()), 1L, jobParameters, null); + jobExecution = new JobExecution(new JobInstance(1L, job.getName()), 1L, jobParameters); } @Test @@ -146,7 +147,7 @@ public class SimpleJobRepositoryTests { @Test public void testUpdateValidJobExecution() throws Exception { - JobExecution jobExecution = new JobExecution(new JobInstance(1L, job.getName()), 1L, jobParameters, null); + JobExecution jobExecution = new JobExecution(new JobInstance(1L, job.getName()), 1L, jobParameters); // new execution - call update on job DAO jobExecutionDao.updateJobExecution(jobExecution); jobRepository.update(jobExecution); diff --git a/spring-batch-core/src/test/java/org/springframework/batch/core/scope/context/ChunkContextTests.java b/spring-batch-core/src/test/java/org/springframework/batch/core/scope/context/ChunkContextTests.java index d6c7eb54f..6d833ad06 100644 --- a/spring-batch-core/src/test/java/org/springframework/batch/core/scope/context/ChunkContextTests.java +++ b/spring-batch-core/src/test/java/org/springframework/batch/core/scope/context/ChunkContextTests.java @@ -1,5 +1,5 @@ /* - * Copyright 2006-2007 the original author or authors. + * Copyright 2006-2021 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -30,12 +30,13 @@ import org.springframework.batch.core.JobParameters; /** * @author Dave Syer + * @author Mahmoud Ben Hassine * */ public class ChunkContextTests { private ChunkContext context = new ChunkContext(new StepContext(new JobExecution(new JobInstance(0L, - "job"), 1L, new JobParameters(Collections.singletonMap("foo", new JobParameter("bar"))), null) + "job"), 1L, new JobParameters(Collections.singletonMap("foo", new JobParameter("bar")))) .createStepExecution("foo"))); @Test diff --git a/spring-batch-core/src/test/java/org/springframework/batch/core/scope/context/StepContextTests.java b/spring-batch-core/src/test/java/org/springframework/batch/core/scope/context/StepContextTests.java index e0b70a668..4c795d1ab 100644 --- a/spring-batch-core/src/test/java/org/springframework/batch/core/scope/context/StepContextTests.java +++ b/spring-batch-core/src/test/java/org/springframework/batch/core/scope/context/StepContextTests.java @@ -1,5 +1,5 @@ /* - * Copyright 2006-2019 the original author or authors. + * Copyright 2006-2021 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -32,7 +32,6 @@ import org.springframework.batch.core.JobInstance; import org.springframework.batch.core.JobParameters; import org.springframework.batch.core.JobParametersBuilder; import org.springframework.batch.core.StepExecution; -import org.springframework.batch.core.jsr.configuration.support.BatchPropertyContext; import org.springframework.batch.item.ExecutionContext; /** @@ -45,12 +44,10 @@ public class StepContextTests { private List list = new ArrayList<>(); - private StepExecution stepExecution = new StepExecution("step", new JobExecution(new JobInstance(2L, "job"), 0L, null, null), 1L); + private StepExecution stepExecution = new StepExecution("step", new JobExecution(new JobInstance(2L, "job"), 0L, null), 1L); private StepContext context = new StepContext(stepExecution); - private BatchPropertyContext propertyContext = new BatchPropertyContext(); - @Test public void testGetStepExecution() { context = new StepContext(stepExecution); @@ -68,19 +65,6 @@ public class StepContextTests { } } - @Test - public void testGetPartitionPlan() { - Properties partitionPropertyValues = new Properties(); - partitionPropertyValues.put("key1", "value1"); - - propertyContext.setStepProperties(stepExecution.getStepName(), partitionPropertyValues); - - context = new StepContext(stepExecution, propertyContext); - - Map plan = context.getPartitionPlan(); - assertEquals("value1", plan.get("key1")); - } - @Test public void testEqualsSelf() { assertEquals(context, context); diff --git a/spring-batch-core/src/test/java/org/springframework/batch/core/scope/context/StepSynchronizationManagerTests.java b/spring-batch-core/src/test/java/org/springframework/batch/core/scope/context/StepSynchronizationManagerTests.java index aee4e105e..215501bd4 100644 --- a/spring-batch-core/src/test/java/org/springframework/batch/core/scope/context/StepSynchronizationManagerTests.java +++ b/spring-batch-core/src/test/java/org/springframework/batch/core/scope/context/StepSynchronizationManagerTests.java @@ -1,5 +1,5 @@ /* - * Copyright 2013 the original author or authors. + * Copyright 2013-2021 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -32,12 +32,10 @@ import org.junit.Before; import org.junit.Test; import org.springframework.batch.core.JobExecution; import org.springframework.batch.core.StepExecution; -import org.springframework.batch.core.jsr.configuration.support.BatchPropertyContext; public class StepSynchronizationManagerTests { private StepExecution stepExecution = new StepExecution("step", new JobExecution(0L)); - private BatchPropertyContext propertyContext = new BatchPropertyContext(); @Before @After @@ -54,16 +52,6 @@ public class StepSynchronizationManagerTests { assertNotNull(StepSynchronizationManager.getContext()); } - @Test - public void testGetContextWithBatchProperties() { - StepContext context = StepSynchronizationManager.getContext(); - assertNull(context); - StepSynchronizationManager.register(stepExecution, propertyContext); - context = StepSynchronizationManager.getContext(); - assertNotNull(context); - assertEquals(stepExecution, context.getStepExecution()); - } - @Test public void testClose() throws Exception { final List list = new ArrayList<>(); diff --git a/spring-batch-core/src/test/java/org/springframework/batch/core/step/JobRepositorySupport.java b/spring-batch-core/src/test/java/org/springframework/batch/core/step/JobRepositorySupport.java index 6ef540fdc..a190681c1 100644 --- a/spring-batch-core/src/test/java/org/springframework/batch/core/step/JobRepositorySupport.java +++ b/spring-batch-core/src/test/java/org/springframework/batch/core/step/JobRepositorySupport.java @@ -1,5 +1,5 @@ /* - * Copyright 2006-2019 the original author or authors. + * Copyright 2006-2021 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. @@ -27,6 +27,7 @@ import org.springframework.lang.Nullable; /** * @author Dave Syer * @author David Turanski + * @author Mahmoud Ben Hassine * */ public class JobRepositorySupport implements JobRepository { @@ -37,7 +38,7 @@ public class JobRepositorySupport implements JobRepository { @Override public JobExecution createJobExecution(String jobName, JobParameters jobParameters) { JobInstance jobInstance = new JobInstance(0L, jobName); - return new JobExecution(jobInstance, 11L, jobParameters, null); + return new JobExecution(jobInstance, 11L, jobParameters); } /* (non-Javadoc) @@ -112,9 +113,4 @@ public class JobRepositorySupport implements JobRepository { return null; } - @Override - public JobExecution createJobExecution(JobInstance jobInstance, - JobParameters jobParameters, String jobConfigurationLocation) { - return null; - } } diff --git a/spring-batch-core/src/test/java/org/springframework/batch/core/step/item/TaskletStepExceptionTests.java b/spring-batch-core/src/test/java/org/springframework/batch/core/step/item/TaskletStepExceptionTests.java index 4a22fd629..790607d27 100644 --- a/spring-batch-core/src/test/java/org/springframework/batch/core/step/item/TaskletStepExceptionTests.java +++ b/spring-batch-core/src/test/java/org/springframework/batch/core/step/item/TaskletStepExceptionTests.java @@ -584,11 +584,6 @@ public class TaskletStepExceptionTests { return null; } - @Override - public JobExecution createJobExecution(JobInstance jobInstance, - JobParameters jobParameters, String jobConfigurationLocation) { - return null; - } } @SuppressWarnings("serial") diff --git a/spring-batch-core/src/test/java/org/springframework/batch/core/step/tasklet/SystemCommandTaskletIntegrationTests.java b/spring-batch-core/src/test/java/org/springframework/batch/core/step/tasklet/SystemCommandTaskletIntegrationTests.java index 1602d92e2..85c2ac6ae 100644 --- a/spring-batch-core/src/test/java/org/springframework/batch/core/step/tasklet/SystemCommandTaskletIntegrationTests.java +++ b/spring-batch-core/src/test/java/org/springframework/batch/core/step/tasklet/SystemCommandTaskletIntegrationTests.java @@ -58,7 +58,7 @@ public class SystemCommandTaskletIntegrationTests { private SystemCommandTasklet tasklet; private StepExecution stepExecution = new StepExecution("systemCommandStep", new JobExecution(new JobInstance(1L, - "systemCommandJob"), 1L, new JobParameters(), "configurationName")); + "systemCommandJob"), 1L, new JobParameters())); @Mock private JobExplorer jobExplorer; diff --git a/spring-batch-core/src/test/java/org/springframework/batch/core/test/step/StepExecutionSerializationUtilsTests.java b/spring-batch-core/src/test/java/org/springframework/batch/core/test/step/StepExecutionSerializationUtilsTests.java index 6d743b342..9327e7585 100644 --- a/spring-batch-core/src/test/java/org/springframework/batch/core/test/step/StepExecutionSerializationUtilsTests.java +++ b/spring-batch-core/src/test/java/org/springframework/batch/core/test/step/StepExecutionSerializationUtilsTests.java @@ -1,5 +1,5 @@ /* - * Copyright 2006-2014 the original author or authors. + * Copyright 2006-2021 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. @@ -35,13 +35,14 @@ import org.springframework.util.SerializationUtils; /** * @author Dave Syer * @author Michael Minella + * @author Mahmoud Ben Hassine */ public class StepExecutionSerializationUtilsTests { @Test public void testCycle() throws Exception { StepExecution stepExecution = new StepExecution("step", new JobExecution(new JobInstance(123L, - "job"), 321L, new JobParameters(), null), 11L); + "job"), 321L, new JobParameters()), 11L); stepExecution.getExecutionContext().put("foo.bar.spam", 123); StepExecution result = getCopy(stepExecution); assertEquals(stepExecution, result); @@ -58,7 +59,7 @@ public class StepExecutionSerializationUtilsTests { CompletionService completionService = new ExecutorCompletionService<>(executor); for (int i = 0; i < repeats; i++) { - final JobExecution jobExecution = new JobExecution(new JobInstance(123L, "job"), 321L, new JobParameters(), null); + final JobExecution jobExecution = new JobExecution(new JobInstance(123L, "job"), 321L, new JobParameters()); for (int j = 0; j < threads; j++) { completionService.submit(new Callable() { @Override diff --git a/spring-batch-core/src/test/resources/META-INF/alternativeJsrBaseContext.xml b/spring-batch-core/src/test/resources/META-INF/alternativeJsrBaseContext.xml deleted file mode 100644 index 298ec1347..000000000 --- a/spring-batch-core/src/test/resources/META-INF/alternativeJsrBaseContext.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - - diff --git a/spring-batch-core/src/test/resources/META-INF/batch-jobs/DecisionStepTests-decisionAfterFlow-context.xml b/spring-batch-core/src/test/resources/META-INF/batch-jobs/DecisionStepTests-decisionAfterFlow-context.xml deleted file mode 100644 index 59e39409a..000000000 --- a/spring-batch-core/src/test/resources/META-INF/batch-jobs/DecisionStepTests-decisionAfterFlow-context.xml +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - diff --git a/spring-batch-core/src/test/resources/META-INF/batch-jobs/DecisionStepTests-decisionAsFirstStep-context.xml b/spring-batch-core/src/test/resources/META-INF/batch-jobs/DecisionStepTests-decisionAsFirstStep-context.xml deleted file mode 100644 index f1e2cb9b2..000000000 --- a/spring-batch-core/src/test/resources/META-INF/batch-jobs/DecisionStepTests-decisionAsFirstStep-context.xml +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - - - diff --git a/spring-batch-core/src/test/resources/META-INF/batch-jobs/DecisionStepTests-decisionCustomExitStatus-context.xml b/spring-batch-core/src/test/resources/META-INF/batch-jobs/DecisionStepTests-decisionCustomExitStatus-context.xml deleted file mode 100644 index 51333699a..000000000 --- a/spring-batch-core/src/test/resources/META-INF/batch-jobs/DecisionStepTests-decisionCustomExitStatus-context.xml +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - - - - - - - - - - diff --git a/spring-batch-core/src/test/resources/META-INF/batch-jobs/DecisionStepTests-decisionInvalidExitStatus-context.xml b/spring-batch-core/src/test/resources/META-INF/batch-jobs/DecisionStepTests-decisionInvalidExitStatus-context.xml deleted file mode 100644 index 64f8874ca..000000000 --- a/spring-batch-core/src/test/resources/META-INF/batch-jobs/DecisionStepTests-decisionInvalidExitStatus-context.xml +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - - - - - - - - - - - - - - diff --git a/spring-batch-core/src/test/resources/META-INF/batch-jobs/DecisionStepTests-decisionThrowsException-context.xml b/spring-batch-core/src/test/resources/META-INF/batch-jobs/DecisionStepTests-decisionThrowsException-context.xml deleted file mode 100644 index ecbf2f970..000000000 --- a/spring-batch-core/src/test/resources/META-INF/batch-jobs/DecisionStepTests-decisionThrowsException-context.xml +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - - - - - - - - - - - - - - diff --git a/spring-batch-core/src/test/resources/META-INF/batch-jobs/DecisionStepTests-decisionValidExitStatus-context.xml b/spring-batch-core/src/test/resources/META-INF/batch-jobs/DecisionStepTests-decisionValidExitStatus-context.xml deleted file mode 100644 index 8b06afcd4..000000000 --- a/spring-batch-core/src/test/resources/META-INF/batch-jobs/DecisionStepTests-decisionValidExitStatus-context.xml +++ /dev/null @@ -1,23 +0,0 @@ - - - - - - - - - - - - - - - - - - - - diff --git a/spring-batch-core/src/test/resources/META-INF/batch-jobs/DecisionStepTests-restart-context.xml b/spring-batch-core/src/test/resources/META-INF/batch-jobs/DecisionStepTests-restart-context.xml deleted file mode 100644 index 1742e2d77..000000000 --- a/spring-batch-core/src/test/resources/META-INF/batch-jobs/DecisionStepTests-restart-context.xml +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - - - - - - - - - - - diff --git a/spring-batch-core/src/test/resources/META-INF/batch-jobs/ExceptionHandlingParsingTests-context.xml b/spring-batch-core/src/test/resources/META-INF/batch-jobs/ExceptionHandlingParsingTests-context.xml deleted file mode 100644 index 57b584f9c..000000000 --- a/spring-batch-core/src/test/resources/META-INF/batch-jobs/ExceptionHandlingParsingTests-context.xml +++ /dev/null @@ -1,89 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - One - Two - - - - - - - - Three - Four - - - - - - - - Five - Six - - - - - - - - - - - - - diff --git a/spring-batch-core/src/test/resources/META-INF/batch-jobs/FlowParserTests-context.xml b/spring-batch-core/src/test/resources/META-INF/batch-jobs/FlowParserTests-context.xml deleted file mode 100644 index cce7a773f..000000000 --- a/spring-batch-core/src/test/resources/META-INF/batch-jobs/FlowParserTests-context.xml +++ /dev/null @@ -1,39 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/spring-batch-core/src/test/resources/META-INF/batch-jobs/FlowParserTestsStepGetsFailedTransitionWhenNextAttributePresent.xml b/spring-batch-core/src/test/resources/META-INF/batch-jobs/FlowParserTestsStepGetsFailedTransitionWhenNextAttributePresent.xml deleted file mode 100644 index aac5d92bf..000000000 --- a/spring-batch-core/src/test/resources/META-INF/batch-jobs/FlowParserTestsStepGetsFailedTransitionWhenNextAttributePresent.xml +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - - - - - - - - - - diff --git a/spring-batch-core/src/test/resources/META-INF/batch-jobs/FlowParserTestsStepNoOverrideWhenNextAndFailedTransitionElementExists.xml b/spring-batch-core/src/test/resources/META-INF/batch-jobs/FlowParserTestsStepNoOverrideWhenNextAndFailedTransitionElementExists.xml deleted file mode 100644 index 2f1cde9e4..000000000 --- a/spring-batch-core/src/test/resources/META-INF/batch-jobs/FlowParserTestsStepNoOverrideWhenNextAndFailedTransitionElementExists.xml +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - - - - - - - - - - diff --git a/spring-batch-core/src/test/resources/META-INF/batch-jobs/FlowParserTestsWildcardAndNextAttrJob.xml b/spring-batch-core/src/test/resources/META-INF/batch-jobs/FlowParserTestsWildcardAndNextAttrJob.xml deleted file mode 100644 index 959e5e450..000000000 --- a/spring-batch-core/src/test/resources/META-INF/batch-jobs/FlowParserTestsWildcardAndNextAttrJob.xml +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - - - - - - - - - diff --git a/spring-batch-core/src/test/resources/META-INF/batch-jobs/ItemSkipParsingTests-context.xml b/spring-batch-core/src/test/resources/META-INF/batch-jobs/ItemSkipParsingTests-context.xml deleted file mode 100644 index 5a4a5416f..000000000 --- a/spring-batch-core/src/test/resources/META-INF/batch-jobs/ItemSkipParsingTests-context.xml +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/spring-batch-core/src/test/resources/META-INF/batch-jobs/SplitTests-testDecisionAfterSplit-context.xml b/spring-batch-core/src/test/resources/META-INF/batch-jobs/SplitTests-testDecisionAfterSplit-context.xml deleted file mode 100644 index 487a762ef..000000000 --- a/spring-batch-core/src/test/resources/META-INF/batch-jobs/SplitTests-testDecisionAfterSplit-context.xml +++ /dev/null @@ -1,32 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/spring-batch-core/src/test/resources/META-INF/batch-jobs/SplitTests-testSplit-context.xml b/spring-batch-core/src/test/resources/META-INF/batch-jobs/SplitTests-testSplit-context.xml deleted file mode 100644 index 31591ac19..000000000 --- a/spring-batch-core/src/test/resources/META-INF/batch-jobs/SplitTests-testSplit-context.xml +++ /dev/null @@ -1,58 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - One - Two - Three - Four - Five - - - - - - - - - - - - - diff --git a/spring-batch-core/src/test/resources/META-INF/batch-jobs/contextClosingTests.xml b/spring-batch-core/src/test/resources/META-INF/batch-jobs/contextClosingTests.xml deleted file mode 100644 index c1b6a6e20..000000000 --- a/spring-batch-core/src/test/resources/META-INF/batch-jobs/contextClosingTests.xml +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - - - diff --git a/spring-batch-core/src/test/resources/META-INF/batch-jobs/fullPartitionParserTests.xml b/spring-batch-core/src/test/resources/META-INF/batch-jobs/fullPartitionParserTests.xml deleted file mode 100644 index f2c71af80..000000000 --- a/spring-batch-core/src/test/resources/META-INF/batch-jobs/fullPartitionParserTests.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - - - - - - diff --git a/spring-batch-core/src/test/resources/META-INF/batch-jobs/fullPartitionParserWithHardcodedPropertiesTests.xml b/spring-batch-core/src/test/resources/META-INF/batch-jobs/fullPartitionParserWithHardcodedPropertiesTests.xml deleted file mode 100644 index 302125f50..000000000 --- a/spring-batch-core/src/test/resources/META-INF/batch-jobs/fullPartitionParserWithHardcodedPropertiesTests.xml +++ /dev/null @@ -1,46 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/spring-batch-core/src/test/resources/META-INF/batch-jobs/fullPartitionParserWithMapperPropertiesTests.xml b/spring-batch-core/src/test/resources/META-INF/batch-jobs/fullPartitionParserWithMapperPropertiesTests.xml deleted file mode 100644 index b41e97126..000000000 --- a/spring-batch-core/src/test/resources/META-INF/batch-jobs/fullPartitionParserWithMapperPropertiesTests.xml +++ /dev/null @@ -1,28 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/spring-batch-core/src/test/resources/META-INF/batch-jobs/fullPartitionParserWithPropertiesTests.xml b/spring-batch-core/src/test/resources/META-INF/batch-jobs/fullPartitionParserWithPropertiesTests.xml deleted file mode 100644 index b1b15de4b..000000000 --- a/spring-batch-core/src/test/resources/META-INF/batch-jobs/fullPartitionParserWithPropertiesTests.xml +++ /dev/null @@ -1,32 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/spring-batch-core/src/test/resources/META-INF/batch-jobs/jobWithEndTransition.xml b/spring-batch-core/src/test/resources/META-INF/batch-jobs/jobWithEndTransition.xml deleted file mode 100644 index d31dc6640..000000000 --- a/spring-batch-core/src/test/resources/META-INF/batch-jobs/jobWithEndTransition.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - - - - - - diff --git a/spring-batch-core/src/test/resources/META-INF/batch-jobs/jsrJobOperatorTestBeanCreationException.xml b/spring-batch-core/src/test/resources/META-INF/batch-jobs/jsrJobOperatorTestBeanCreationException.xml deleted file mode 100644 index 806f9ef99..000000000 --- a/spring-batch-core/src/test/resources/META-INF/batch-jobs/jsrJobOperatorTestBeanCreationException.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/spring-batch-core/src/test/resources/META-INF/batch-jobs/jsrJobOperatorTestJob.xml b/spring-batch-core/src/test/resources/META-INF/batch-jobs/jsrJobOperatorTestJob.xml deleted file mode 100644 index 730f521c8..000000000 --- a/spring-batch-core/src/test/resources/META-INF/batch-jobs/jsrJobOperatorTestJob.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/spring-batch-core/src/test/resources/META-INF/batch-jobs/jsrJobOperatorTestNonRestartableJob.xml b/spring-batch-core/src/test/resources/META-INF/batch-jobs/jsrJobOperatorTestNonRestartableJob.xml deleted file mode 100644 index 3ce335123..000000000 --- a/spring-batch-core/src/test/resources/META-INF/batch-jobs/jsrJobOperatorTestNonRestartableJob.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/spring-batch-core/src/test/resources/META-INF/batch-jobs/jsrJobOperatorTestRestartAbandonJob.xml b/spring-batch-core/src/test/resources/META-INF/batch-jobs/jsrJobOperatorTestRestartAbandonJob.xml deleted file mode 100644 index c73264625..000000000 --- a/spring-batch-core/src/test/resources/META-INF/batch-jobs/jsrJobOperatorTestRestartAbandonJob.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/spring-batch-core/src/test/resources/META-INF/batch-jobs/jsrJobOperatorTestRestartJob.xml b/spring-batch-core/src/test/resources/META-INF/batch-jobs/jsrJobOperatorTestRestartJob.xml deleted file mode 100644 index 120dfdcd9..000000000 --- a/spring-batch-core/src/test/resources/META-INF/batch-jobs/jsrJobOperatorTestRestartJob.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/spring-batch-core/src/test/resources/META-INF/batch-jobs/jsrJobPropertyTests.xml b/spring-batch-core/src/test/resources/META-INF/batch-jobs/jsrJobPropertyTests.xml deleted file mode 100644 index 31a5cf2e2..000000000 --- a/spring-batch-core/src/test/resources/META-INF/batch-jobs/jsrJobPropertyTests.xml +++ /dev/null @@ -1,109 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/spring-batch-core/src/test/resources/META-INF/batch-jobs/jsrJobPropertyTestsContext.xml b/spring-batch-core/src/test/resources/META-INF/batch-jobs/jsrJobPropertyTestsContext.xml deleted file mode 100644 index fff9d7978..000000000 --- a/spring-batch-core/src/test/resources/META-INF/batch-jobs/jsrJobPropertyTestsContext.xml +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - diff --git a/spring-batch-core/src/test/resources/META-INF/batch-jobs/jsrPartitionHandlerRestartWithOverrideJob.xml b/spring-batch-core/src/test/resources/META-INF/batch-jobs/jsrPartitionHandlerRestartWithOverrideJob.xml deleted file mode 100644 index f83c508d4..000000000 --- a/spring-batch-core/src/test/resources/META-INF/batch-jobs/jsrPartitionHandlerRestartWithOverrideJob.xml +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - - - - - - - diff --git a/spring-batch-core/src/test/resources/META-INF/batch-jobs/jsrPropertyPreparseTestJob.xml b/spring-batch-core/src/test/resources/META-INF/batch-jobs/jsrPropertyPreparseTestJob.xml deleted file mode 100644 index caa838a55..000000000 --- a/spring-batch-core/src/test/resources/META-INF/batch-jobs/jsrPropertyPreparseTestJob.xml +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - - - - - - - diff --git a/spring-batch-core/src/test/resources/META-INF/batch-jobs/jsrSpringInstanceTests.xml b/spring-batch-core/src/test/resources/META-INF/batch-jobs/jsrSpringInstanceTests.xml deleted file mode 100644 index ebe602acf..000000000 --- a/spring-batch-core/src/test/resources/META-INF/batch-jobs/jsrSpringInstanceTests.xml +++ /dev/null @@ -1,45 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/spring-batch-core/src/test/resources/META-INF/batch-jobs/jsrUniqueInstanceTests.xml b/spring-batch-core/src/test/resources/META-INF/batch-jobs/jsrUniqueInstanceTests.xml deleted file mode 100644 index aab71ad34..000000000 --- a/spring-batch-core/src/test/resources/META-INF/batch-jobs/jsrUniqueInstanceTests.xml +++ /dev/null @@ -1,53 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/spring-batch-core/src/test/resources/META-INF/batch-jobs/longRunningJob.xml b/spring-batch-core/src/test/resources/META-INF/batch-jobs/longRunningJob.xml deleted file mode 100644 index fc3e208e5..000000000 --- a/spring-batch-core/src/test/resources/META-INF/batch-jobs/longRunningJob.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/spring-batch-core/src/test/resources/META-INF/batch-jobs/partitionParserTestsBatchlet.xml b/spring-batch-core/src/test/resources/META-INF/batch-jobs/partitionParserTestsBatchlet.xml deleted file mode 100644 index 6aef4f36a..000000000 --- a/spring-batch-core/src/test/resources/META-INF/batch-jobs/partitionParserTestsBatchlet.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - diff --git a/spring-batch-core/src/test/resources/META-INF/batch-jobs/partitionParserTestsChunk.xml b/spring-batch-core/src/test/resources/META-INF/batch-jobs/partitionParserTestsChunk.xml deleted file mode 100644 index 6a9cf53a8..000000000 --- a/spring-batch-core/src/test/resources/META-INF/batch-jobs/partitionParserTestsChunk.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - - - - - - diff --git a/spring-batch-core/src/test/resources/META-INF/batch-jobs/threadLocalClassloaderBeanPostProcessorTestsJob.xml b/spring-batch-core/src/test/resources/META-INF/batch-jobs/threadLocalClassloaderBeanPostProcessorTestsJob.xml deleted file mode 100644 index e542a5d7a..000000000 --- a/spring-batch-core/src/test/resources/META-INF/batch-jobs/threadLocalClassloaderBeanPostProcessorTestsJob.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - - - - diff --git a/spring-batch-core/src/test/resources/META-INF/batch.xml b/spring-batch-core/src/test/resources/META-INF/batch.xml deleted file mode 100644 index 347468b4c..000000000 --- a/spring-batch-core/src/test/resources/META-INF/batch.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/spring-batch-core/src/test/resources/org/springframework/batch/core/jsr/configuration/xml/ChunkListenerParsingTests-context.xml b/spring-batch-core/src/test/resources/org/springframework/batch/core/jsr/configuration/xml/ChunkListenerParsingTests-context.xml deleted file mode 100644 index 70c40f2da..000000000 --- a/spring-batch-core/src/test/resources/org/springframework/batch/core/jsr/configuration/xml/ChunkListenerParsingTests-context.xml +++ /dev/null @@ -1,105 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - One - Two - - - - - - - - Three - Four - - - - - - - - Five - Six - - - - - - - - - - - - - - - - - - - diff --git a/spring-batch-core/src/test/resources/org/springframework/batch/core/jsr/configuration/xml/CustomWiredJsrJobOperatorTests-context.xml b/spring-batch-core/src/test/resources/org/springframework/batch/core/jsr/configuration/xml/CustomWiredJsrJobOperatorTests-context.xml deleted file mode 100644 index 98b068b62..000000000 --- a/spring-batch-core/src/test/resources/org/springframework/batch/core/jsr/configuration/xml/CustomWiredJsrJobOperatorTests-context.xml +++ /dev/null @@ -1,33 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/spring-batch-core/src/test/resources/org/springframework/batch/core/jsr/configuration/xml/ItemListenerParsingTests-context.xml b/spring-batch-core/src/test/resources/org/springframework/batch/core/jsr/configuration/xml/ItemListenerParsingTests-context.xml deleted file mode 100644 index e1a26a1b9..000000000 --- a/spring-batch-core/src/test/resources/org/springframework/batch/core/jsr/configuration/xml/ItemListenerParsingTests-context.xml +++ /dev/null @@ -1,102 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - One - Two - - - - - - - - Three - Four - - - - - - - - Five - Six - - - - - - - - - - - - - - - - - diff --git a/spring-batch-core/src/test/resources/org/springframework/batch/core/jsr/configuration/xml/JobListenerParsingTests-context.xml b/spring-batch-core/src/test/resources/org/springframework/batch/core/jsr/configuration/xml/JobListenerParsingTests-context.xml deleted file mode 100644 index 84d3160ed..000000000 --- a/spring-batch-core/src/test/resources/org/springframework/batch/core/jsr/configuration/xml/JobListenerParsingTests-context.xml +++ /dev/null @@ -1,47 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/spring-batch-core/src/test/resources/org/springframework/batch/core/jsr/configuration/xml/JobPropertySubstitutionTests-context.xml b/spring-batch-core/src/test/resources/org/springframework/batch/core/jsr/configuration/xml/JobPropertySubstitutionTests-context.xml deleted file mode 100644 index 8079fe32c..000000000 --- a/spring-batch-core/src/test/resources/org/springframework/batch/core/jsr/configuration/xml/JobPropertySubstitutionTests-context.xml +++ /dev/null @@ -1,68 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/spring-batch-core/src/test/resources/org/springframework/batch/core/jsr/configuration/xml/JsrDecisionParsingTests-context.xml b/spring-batch-core/src/test/resources/org/springframework/batch/core/jsr/configuration/xml/JsrDecisionParsingTests-context.xml deleted file mode 100644 index c574daf77..000000000 --- a/spring-batch-core/src/test/resources/org/springframework/batch/core/jsr/configuration/xml/JsrDecisionParsingTests-context.xml +++ /dev/null @@ -1,45 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/spring-batch-core/src/test/resources/org/springframework/batch/core/jsr/configuration/xml/RetryListenerTestBase-context.xml b/spring-batch-core/src/test/resources/org/springframework/batch/core/jsr/configuration/xml/RetryListenerTestBase-context.xml deleted file mode 100644 index 96cdf409f..000000000 --- a/spring-batch-core/src/test/resources/org/springframework/batch/core/jsr/configuration/xml/RetryListenerTestBase-context.xml +++ /dev/null @@ -1,46 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/spring-batch-core/src/test/resources/org/springframework/batch/core/jsr/configuration/xml/RetryReadListenerExhausted.xml b/spring-batch-core/src/test/resources/org/springframework/batch/core/jsr/configuration/xml/RetryReadListenerExhausted.xml deleted file mode 100644 index 37763e169..000000000 --- a/spring-batch-core/src/test/resources/org/springframework/batch/core/jsr/configuration/xml/RetryReadListenerExhausted.xml +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - - - - - diff --git a/spring-batch-core/src/test/resources/org/springframework/batch/core/jsr/configuration/xml/RetryReadListenerListenerException.xml b/spring-batch-core/src/test/resources/org/springframework/batch/core/jsr/configuration/xml/RetryReadListenerListenerException.xml deleted file mode 100644 index 0fadd800f..000000000 --- a/spring-batch-core/src/test/resources/org/springframework/batch/core/jsr/configuration/xml/RetryReadListenerListenerException.xml +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - - - - - diff --git a/spring-batch-core/src/test/resources/org/springframework/batch/core/jsr/configuration/xml/RetryReadListenerRetryOnce.xml b/spring-batch-core/src/test/resources/org/springframework/batch/core/jsr/configuration/xml/RetryReadListenerRetryOnce.xml deleted file mode 100644 index c5b6f9d63..000000000 --- a/spring-batch-core/src/test/resources/org/springframework/batch/core/jsr/configuration/xml/RetryReadListenerRetryOnce.xml +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - - - - - diff --git a/spring-batch-core/src/test/resources/org/springframework/batch/core/jsr/configuration/xml/SimpleItemBasedJobParsingTests-context.xml b/spring-batch-core/src/test/resources/org/springframework/batch/core/jsr/configuration/xml/SimpleItemBasedJobParsingTests-context.xml deleted file mode 100644 index f5456637d..000000000 --- a/spring-batch-core/src/test/resources/org/springframework/batch/core/jsr/configuration/xml/SimpleItemBasedJobParsingTests-context.xml +++ /dev/null @@ -1,121 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - One - Two - Three - Four - Five - - - - - - - - One - Two - Three - Four - Five - - - - - - - - One - Two - - - - - - - - One - Two - Three - Four - Five - Six - Seven - Eight - Nine - Ten - Eleven - Twelve - Thirteen - Fourteen - Fifteen - - - - - - - - - - diff --git a/spring-batch-core/src/test/resources/org/springframework/batch/core/jsr/configuration/xml/SimpleJobParsingTests-context.xml b/spring-batch-core/src/test/resources/org/springframework/batch/core/jsr/configuration/xml/SimpleJobParsingTests-context.xml deleted file mode 100644 index fec01304c..000000000 --- a/spring-batch-core/src/test/resources/org/springframework/batch/core/jsr/configuration/xml/SimpleJobParsingTests-context.xml +++ /dev/null @@ -1,45 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/spring-batch-core/src/test/resources/org/springframework/batch/core/jsr/configuration/xml/StepListenerParsingTests-context.xml b/spring-batch-core/src/test/resources/org/springframework/batch/core/jsr/configuration/xml/StepListenerParsingTests-context.xml deleted file mode 100644 index bcec64d6f..000000000 --- a/spring-batch-core/src/test/resources/org/springframework/batch/core/jsr/configuration/xml/StepListenerParsingTests-context.xml +++ /dev/null @@ -1,56 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/spring-batch-core/src/test/resources/org/springframework/batch/core/jsr/configuration/xml/batch.xml b/spring-batch-core/src/test/resources/org/springframework/batch/core/jsr/configuration/xml/batch.xml deleted file mode 100644 index 6c798fdbd..000000000 --- a/spring-batch-core/src/test/resources/org/springframework/batch/core/jsr/configuration/xml/batch.xml +++ /dev/null @@ -1,3 +0,0 @@ - - - \ No newline at end of file diff --git a/spring-batch-core/src/test/resources/org/springframework/batch/core/jsr/configuration/xml/default-split-task-executor-context.xml b/spring-batch-core/src/test/resources/org/springframework/batch/core/jsr/configuration/xml/default-split-task-executor-context.xml deleted file mode 100644 index f5aa8de52..000000000 --- a/spring-batch-core/src/test/resources/org/springframework/batch/core/jsr/configuration/xml/default-split-task-executor-context.xml +++ /dev/null @@ -1,79 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - One - Two - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/spring-batch-core/src/test/resources/org/springframework/batch/core/jsr/configuration/xml/invalid-split-context.xml b/spring-batch-core/src/test/resources/org/springframework/batch/core/jsr/configuration/xml/invalid-split-context.xml deleted file mode 100644 index 02422db4b..000000000 --- a/spring-batch-core/src/test/resources/org/springframework/batch/core/jsr/configuration/xml/invalid-split-context.xml +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - diff --git a/spring-batch-core/src/test/resources/org/springframework/batch/core/jsr/configuration/xml/override_batch.xml b/spring-batch-core/src/test/resources/org/springframework/batch/core/jsr/configuration/xml/override_batch.xml deleted file mode 100644 index 7649e1569..000000000 --- a/spring-batch-core/src/test/resources/org/springframework/batch/core/jsr/configuration/xml/override_batch.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/spring-batch-core/src/test/resources/org/springframework/batch/core/jsr/configuration/xml/user-specified-split-task-executor-context.xml b/spring-batch-core/src/test/resources/org/springframework/batch/core/jsr/configuration/xml/user-specified-split-task-executor-context.xml deleted file mode 100644 index 6d50f5918..000000000 --- a/spring-batch-core/src/test/resources/org/springframework/batch/core/jsr/configuration/xml/user-specified-split-task-executor-context.xml +++ /dev/null @@ -1,81 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - One - Two - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/spring-batch-core/src/test/resources/org/springframework/batch/core/repository/dao/schema-prefix-hsqldb.sql b/spring-batch-core/src/test/resources/org/springframework/batch/core/repository/dao/schema-prefix-hsqldb.sql index b2c93d6bf..857fe2191 100644 --- a/spring-batch-core/src/test/resources/org/springframework/batch/core/repository/dao/schema-prefix-hsqldb.sql +++ b/spring-batch-core/src/test/resources/org/springframework/batch/core/repository/dao/schema-prefix-hsqldb.sql @@ -28,7 +28,6 @@ CREATE TABLE PREFIX_JOB_EXECUTION ( EXIT_CODE VARCHAR(20) , EXIT_MESSAGE VARCHAR(2500) , LAST_UPDATED TIMESTAMP, - JOB_CONFIGURATION_LOCATION VARCHAR(2500) NULL, constraint PREFIX_JOB_INST_EXEC_FK foreign key (JOB_INSTANCE_ID) references PREFIX_JOB_INSTANCE(JOB_INSTANCE_ID) ) ; @@ -68,7 +67,7 @@ CREATE TABLE PREFIX_STEP_EXECUTION ( constraint PREFIX_JOB_EXEC_STEP_FK foreign key (JOB_EXECUTION_ID) references PREFIX_JOB_EXECUTION(JOB_EXECUTION_ID) ) ; - + CREATE TABLE PREFIX_STEP_EXECUTION_CONTEXT ( STEP_EXECUTION_ID BIGINT NOT NULL PRIMARY KEY, SHORT_CONTEXT VARCHAR(2500) NOT NULL, @@ -76,7 +75,7 @@ CREATE TABLE PREFIX_STEP_EXECUTION_CONTEXT ( constraint PREFIX_STEP_EXEC_CTX_FK foreign key (STEP_EXECUTION_ID) references PREFIX_STEP_EXECUTION(STEP_EXECUTION_ID) ) ; - + CREATE TABLE PREFIX_JOB_EXECUTION_CONTEXT ( JOB_EXECUTION_ID BIGINT NOT NULL PRIMARY KEY, SHORT_CONTEXT VARCHAR(2500) NOT NULL, @@ -84,13 +83,13 @@ CREATE TABLE PREFIX_JOB_EXECUTION_CONTEXT ( constraint PREFIX_JOB_EXEC_CTX_FK foreign key (JOB_EXECUTION_ID) references PREFIX_JOB_EXECUTION(JOB_EXECUTION_ID) ) ; - -CREATE TABLE PREFIX_STEP_EXECUTION_SEQ ( - ID BIGINT IDENTITY -); -CREATE TABLE PREFIX_JOB_EXECUTION_SEQ ( - ID BIGINT IDENTITY -); -CREATE TABLE PREFIX_JOB_SEQ ( - ID BIGINT IDENTITY -); + +CREATE TABLE PREFIX_STEP_EXECUTION_SEQ ( + ID BIGINT IDENTITY +); +CREATE TABLE PREFIX_JOB_EXECUTION_SEQ ( + ID BIGINT IDENTITY +); +CREATE TABLE PREFIX_JOB_SEQ ( + ID BIGINT IDENTITY +); diff --git a/spring-batch-core/src/test/resources/org/springframework/batch/core/schema-hsqldb-extended.sql b/spring-batch-core/src/test/resources/org/springframework/batch/core/schema-hsqldb-extended.sql index 4612aec20..66959b5e1 100644 --- a/spring-batch-core/src/test/resources/org/springframework/batch/core/schema-hsqldb-extended.sql +++ b/spring-batch-core/src/test/resources/org/springframework/batch/core/schema-hsqldb-extended.sql @@ -23,7 +23,6 @@ CREATE TABLE BATCH_JOB_EXECUTION ( EXIT_CODE VARCHAR(10000) , EXIT_MESSAGE VARCHAR(10000) , LAST_UPDATED TIMESTAMP, - JOB_CONFIGURATION_LOCATION VARCHAR(2500) NULL, constraint JOB_INST_EXEC_FK foreign key (JOB_INSTANCE_ID) references BATCH_JOB_INSTANCE(JOB_INSTANCE_ID) ) ; diff --git a/spring-batch-docs/src/assembly/dist.xml b/spring-batch-docs/src/assembly/dist.xml index 265cd7595..ac94746ea 100644 --- a/spring-batch-docs/src/assembly/dist.xml +++ b/spring-batch-docs/src/assembly/dist.xml @@ -24,13 +24,6 @@ docs/api - - ../spring-batch-core/src/main/resources/org/springframework/batch/core/jsr/configuration/xml - schema/batch - - *.xsd - - ../spring-batch-core/src/main/resources/org/springframework/batch/core/configuration/xml schema/batch diff --git a/spring-batch-docs/src/assembly/schemas.xml b/spring-batch-docs/src/assembly/schemas.xml index def76e180..e721bf19f 100644 --- a/spring-batch-docs/src/assembly/schemas.xml +++ b/spring-batch-docs/src/assembly/schemas.xml @@ -7,13 +7,6 @@ false - - ../spring-batch-core/src/main/resources/org/springframework/batch/core/jsr/configuration/xml - batch - - *.xsd - - ../spring-batch-core/src/main/resources/org/springframework/batch/core/configuration/xml batch diff --git a/spring-batch-docs/src/main/asciidoc/index-single.adoc b/spring-batch-docs/src/main/asciidoc/index-single.adoc index b1f568c08..621463a53 100644 --- a/spring-batch-docs/src/main/asciidoc/index-single.adoc +++ b/spring-batch-docs/src/main/asciidoc/index-single.adoc @@ -32,8 +32,6 @@ include::testing.adoc[] include::common-patterns.adoc[] -include::jsr-352.adoc[] - include::spring-batch-integration.adoc[] include::monitoring-and-metrics.adoc[] diff --git a/spring-batch-docs/src/main/asciidoc/index.adoc b/spring-batch-docs/src/main/asciidoc/index.adoc index 6773cd441..c83eef9b3 100644 --- a/spring-batch-docs/src/main/asciidoc/index.adoc +++ b/spring-batch-docs/src/main/asciidoc/index.adoc @@ -28,8 +28,6 @@ parallel steps, remote chunking and partitioning. <> :: Job and Step testing facilities and APIs. <> :: Common batch processing patterns and guidelines. -<> :: JSR-352 support, similarities and differences -with Spring Batch. <> :: Integration between Spring Batch and Spring Integration projects. <> :: Batch jobs diff --git a/spring-batch-docs/src/main/asciidoc/jsr-352.adoc b/spring-batch-docs/src/main/asciidoc/jsr-352.adoc deleted file mode 100644 index 53b46da80..000000000 --- a/spring-batch-docs/src/main/asciidoc/jsr-352.adoc +++ /dev/null @@ -1,620 +0,0 @@ -:batch-asciidoc: ./ -:toc: left -:toclevels: 4 - -[[jsr-352]] - -== JSR-352 Support - -ifndef::onlyonetoggle[] -include::toggle.adoc[] -endif::onlyonetoggle[] - -As of Spring Batch 3.0 support for JSR-352 has been fully implemented. This section is not a replacement for -the spec itself and instead, intends to explain how the JSR-352 specific concepts apply to Spring Batch. -Additional information on JSR-352 can be found via the -JCP here: link:$$https://jcp.org/en/jsr/detail?id=352$$[https://jcp.org/en/jsr/detail?id=352] - -[[jsrGeneralNotes]] - - -=== General Notes about Spring Batch and JSR-352 - -Spring Batch and JSR-352 are structurally the same. They both have jobs that are made up of steps. They -both have readers, processors, writers, and listeners. However, their interactions are subtly different. -For example, the `org.springframework.batch.core.SkipListener#onSkipInWrite(S item, Throwable t)` -within Spring Batch receives two parameters: the item that was skipped and the Exception that caused the -skip. The JSR-352 version of the same method -(`jakarta.batch.api.chunk.listener.SkipWriteListener#onSkipWriteItem(List<Object> items, Exception ex)`) -also receives two parameters. However the first one is a `List` of all the items -within the current chunk with the second being the `Exception` that caused the skip. -Because of these differences, it is important to note that there are two paths to execute a job within -Spring Batch: either a traditional Spring Batch job or a JSR-352 based job. While the use of Spring Batch -artifacts (readers, writers, etc) will work within a job configured with JSR-352's JSL and executed with the -`JsrJobOperator`, they will behave according to the rules of JSR-352. It is also -important to note that batch artifacts that have been developed against the JSR-352 interfaces will not work -within a traditional Spring Batch job. - -[[jsrSetup]] - - -=== Setup - -[[jsrSetupContexts]] - - -==== Application Contexts - -All JSR-352 based jobs within Spring Batch consist of two application contexts. A parent context, that -contains beans related to the infrastructure of Spring Batch such as the `JobRepository`, -`PlatformTransactionManager`, etc and a child context that consists of the configuration -of the job to be run. The parent context is defined via the `jsrBaseContext.xml` provided -by the framework. This context may be overridden by setting the `JSR-352-BASE-CONTEXT` system -property. - - -[NOTE] -==== -The base context is not processed by the JSR-352 processors for things like property injection so -no components requiring that additional processing should be configured there. - -==== - - -[[jsrSetupLaunching]] - - -==== Launching a JSR-352 based job - -JSR-352 requires a very simple path to executing a batch job. The following code is all that is needed to -execute your first batch job: - - - -[source, java] ----- -JobOperator operator = BatchRuntime.getJobOperator(); -jobOperator.start("myJob", new Properties()); ----- - -While that is convenient for developers, the devil is in the details. Spring Batch bootstraps a bit of -infrastructure behind the scenes that a developer may want to override. The following is bootstrapped the -first time `BatchRuntime.getJobOperator()` is called: - -|=============== -|__Bean Name__|__Default Configuration__|__Notes__ -| - dataSource - | - Apache DBCP BasicDataSource with configured values. - | - By default, HSQLDB is bootstrapped. - -|`transactionManager`|`org.springframework.jdbc.datasource.DataSourceTransactionManager`| - References the dataSource bean defined above. - -| - A Datasource initializer - || - This is configured to execute the scripts configured via the - `batch.drop.script` and `batch.schema.script` properties. By - default, the schema scripts for HSQLDB are executed. This behavior can be disabled by setting the - `batch.data.source.init` property. - -| - jobRepository - | - A JDBC based `SimpleJobRepository`. - | - This `JobRepository` uses the previously mentioned data source and transaction - manager. The schema's table prefix is configurable (defaults to BATCH_) via the - `batch.table.prefix` property. - -| - jobLauncher - |`org.springframework.batch.core.launch.support.SimpleJobLauncher`| - Used to launch jobs. - -| - batchJobOperator - |`org.springframework.batch.core.launch.support.SimpleJobOperator`| - The `JsrJobOperator` wraps this to provide most of it's functionality. - -| - jobExplorer - |`org.springframework.batch.core.explore.support.JobExplorerFactoryBean`| - Used to address lookup functionality provided by the `JsrJobOperator`. - -| - jobParametersConverter - |`org.springframework.batch.core.jsr.JsrJobParametersConverter`| - JSR-352 specific implementation of the `JobParametersConverter`. - -| - jobRegistry - |`org.springframework.batch.core.configuration.support.MapJobRegistry`| - Used by the `SimpleJobOperator`. - -| - placeholderProperties - |`org.springframework.beans.factory.config.PropertyPlaceholderConfigure`| - Loads the properties file `batch-${ENVIRONMENT:hsql}.properties` to configure - the properties mentioned above. ENVIRONMENT is a System property (defaults to `hsql`) - that can be used to specify any of the supported databases Spring Batch currently - supports. - - -|=============== - - - - - - -[NOTE] -==== -None of the above beans are optional for executing JSR-352 based jobs. All may be overridden to -provide customized functionality as needed. -==== - - -[[dependencyInjection]] - - -=== Dependency Injection - -JSR-352 is based heavily on the Spring Batch programming model. As such, while not explicitly requiring a -formal dependency injection implementation, DI of some kind implied. Spring Batch supports all three -methods for loading batch artifacts defined by JSR-352: - - -* Implementation Specific Loader: Spring Batch is built upon Spring and so supports -Spring dependency injection within JSR-352 batch jobs. -* Archive Loader: JSR-352 defines the existing of a `batch.xml` file that provides mappings -between a logical name and a class name. This file must be found within the `/META-INF/` -directory if it is used. -* Thread Context Class Loader: JSR-352 allows configurations to specify batch artifact -implementations in their JSL by providing the fully qualified class name inline. Spring -Batch supports this as well in JSR-352 configured jobs. - -To use Spring dependency injection within a JSR-352 based batch job consists of -configuring batch artifacts using a Spring application context as beans. Once the beans -have been defined, a job can refer to them as it would any bean defined within the -`batch.xml` file. - -[role="xmlContent"] -The following example shows how to use Spring dependency injection within a JSR-352 based -batch job in XML: - -.XML Configuration -[source, xml, role="xmlContent"] ----- - - - - - - - - - - - - - - - ----- - -[role="javaContent"] -The following example shows how to use Spring dependency injection within a JSR-352 based -batch job in Java: - -.Java Configuration -[source, java, role="javaContent"] ----- -@Configuration -public class BatchConfiguration { - - @Bean - public Batchlet fooBatchlet() { - FooBatchlet batchlet = new FooBatchlet(); - batchlet.setProp("bar"); - return batchlet; - } -} - - - - - - - - ----- - -The assembly of Spring contexts (imports, etc) works with JSR-352 jobs just as it would with any other -Spring based application. The only difference with a JSR-352 based job is that the entry point for the -context definition will be the job definition found in /META-INF/batch-jobs/. - -To use the thread context class loader approach, all you need to do is provide the fully qualified class -name as the ref. It is important to note that when using this approach or the `batch.xml` approach, the class -referenced requires a no argument constructor which will be used to create the bean. - - -[source, xml] ----- - - - - - - - ----- - -[[jsrJobProperties]] - - -=== Batch Properties - -[[jsrPropertySupport]] - - -==== Property Support - -JSR-352 allows for properties to be defined at the Job, Step and batch artifact level by way of -configuration in the JSL. Batch properties are configured at each level in the following way: - - -[source, xml] ----- - - - - ----- - - -`Properties` may be configured on any batch artifact. - -[[jsrBatchPropertyAnnotation]] - - -==== @BatchProperty annotation - -`Properties` are referenced in batch artifacts by annotating class fields with the -`@BatchProperty` and `@Inject` annotations (both annotations -are required by the spec). As defined by JSR-352, fields for properties must be String typed. Any type -conversion is up to the implementing developer to perform. - -An `jakarta.batch.api.chunk.ItemReader` artifact could be configured with a -properties block such as the one described above and accessed as such: - - -[source, java] ----- -public class MyItemReader extends AbstractItemReader { - @Inject - @BatchProperty - private String propertyName1; - - ... -} ----- - - -The value of the field "propertyName1" will be "propertyValue1" - -[[jsrPropertySubstitution]] - - -==== Property Substitution - -Property substitution is provided by way of operators and simple conditional expressions. The general -usage is `#{operator['key']}`. - -Supported operators: - -* `jobParameters`: access job parameter values that the job was started/restarted with. -* `jobProperties`: access properties configured at the job level of the JSL. -* `systemProperties`: access named system properties. -* `partitionPlan`: access named property from the partition plan of a partitioned step. - ----- -#{jobParameters['unresolving.prop']}?:#{systemProperties['file.separator']} ----- - -The left hand side of the assignment is the expected value, the right hand side is the -default value. In the preceding - example, the result will resolve to a value of the system property file.separator as - #{jobParameters['unresolving.prop']} is assumed to not be resolvable. If neither -expressions can be resolved, an empty String will be returned. Multiple conditions can be -used, which are separated by a ';'. - - -[[jsrProcessingModels]] - -=== Processing Models - -JSR-352 provides the same two basic processing models that Spring Batch does: - -* Item based processing - Using an `jakarta.batch.api.chunk.ItemReader`, an optional -`jakarta.batch.api.chunk.ItemProcessor`, and an `jakarta.batch.api.chunk.ItemWriter`. -* Task based processing - Using a `jakarta.batch.api.Batchlet` -implementation. This processing model is the same as the -`org.springframework.batch.core.step.tasklet.Tasklet` based processing -currently available. - - -==== Item based processing - -Item based processing in this context is a chunk size being set by the number of items read by an -`ItemReader`. To configure a step this way, specify the -`item-count` (which defaults to 10) and optionally configure the -`checkpoint-policy` as item (this is the default). - - -[source, xml] ----- -... - - - - - - - -... ----- - -If item-based checkpointing is chosen, an additional attribute `time-limit` is supported. -This sets a time limit for how long the number of items specified has to be processed. If -the timeout is reached, the chunk will complete with however many items have been read by -then regardless of what the `item-count` is configured to be. - - -==== Custom checkpointing - -JSR-352 calls the process around the commit interval within a step "checkpointing". -Item-based checkpointing is one approach as mentioned above. However, this is not robust -enough in many cases. Because of this, the spec allows for the implementation of a custom -checkpointing algorithm by implementing the `jakarta.batch.api.chunk.CheckpointAlgorithm` -interface. This functionality is functionally the same as Spring Batch's custom completion -policy. To use an implementation of `CheckpointAlgorithm`, configure your step with the -custom `checkpoint-policy` as shown below where `fooCheckpointer` refers to an -implementation of `CheckpointAlgorithm`. - - -[source, xml] ----- -... - - - - - - - - -... ----- - -[[jsrRunningAJob]] - -=== Running a job - -The entrance to executing a JSR-352 based job is through the -`jakarta.batch.operations.JobOperator`. Spring Batch provides its own implementation of -this interface (`org.springframework.batch.core.jsr.launch.JsrJobOperator`). This -implementation is loaded via the `jakarta.batch.runtime.BatchRuntime`. Launching a -JSR-352 based batch job is implemented as follows: - - -[source, java] ----- - -JobOperator jobOperator = BatchRuntime.getJobOperator(); -long jobExecutionId = jobOperator.start("fooJob", new Properties()); - ----- - -The above code does the following: - -* Bootstraps a base `ApplicationContext`: In order to provide batch functionality, the -framework needs some infrastructure bootstrapped. This occurs once per JVM. The -components that are bootstrapped are similar to those provided by -`@EnableBatchProcessing`. Specific details can be found in the javadoc for the -`JsrJobOperator`. -* Loads an `ApplicationContext` for the job requested: In the example -above, the framework looks in /META-INF/batch-jobs for a file named fooJob.xml and load a -context that is a child of the shared context mentioned previously. -* Launch the job: The job defined within the context will be executed asynchronously. -The `JobExecution's` ID will be returned. - -[NOTE] -==== -All JSR-352 based batch jobs are executed asynchronously. -==== - -When `JobOperator#start` is called using `SimpleJobOperator`, Spring Batch determines if -the call is an initial run or a retry of a previously executed run. Using the JSR-352 -based `JobOperator#start(String jobXMLName, Properties jobParameters)`, the framework -will always create a new JobInstance (JSR-352 job parameters are non-identifying). In order to -restart a job, a call to -`JobOperator#restart(long executionId, Properties restartParameters)` is required. - - -[[jsrContexts]] - -=== Contexts - -JSR-352 defines two context objects that are used to interact with the meta-data of a job or step from -within a batch artifact: `jakarta.batch.runtime.context.JobContext` and -`jakarta.batch.runtime.context.StepContext`. Both of these are available in any step -level artifact (`Batchlet`, `ItemReader`, etc) with the -`JobContext` being available to job level artifacts as well -(`JobListener` for example). - -To obtain a reference to the `JobContext` or `StepContext` -within the current scope, simply use the `@Inject` annotation: - - -[source, java] ----- -@Inject -JobContext jobContext; - ----- - - -[NOTE] -.@Autowire for JSR-352 contexts -==== -Using Spring's @Autowire is not supported for the injection of these contexts. -==== - - -In Spring Batch, the `JobContext` and `StepContext` wrap their -corresponding execution objects (`JobExecution` and -`StepExecution` respectively). Data stored through -`StepContext#setPersistentUserData(Serializable data)` is stored in the -Spring Batch `StepExecution#executionContext`. - -[[jsrStepFlow]] - - -=== Step Flow - -Within a JSR-352 based job, the flow of steps works similarly as it does within Spring Batch. -However, there are a few subtle differences: - - -* Decision's are steps - In a regular Spring Batch job, a decision is a state that does not -have an independent `StepExecution` or any of the rights and -responsibilities that go along with being a full step.. However, with JSR-352, a decision -is a step just like any other and will behave just as any other steps (transactionality, -it gets a `StepExecution`, etc). This means that they are treated the -same as any other step on restarts as well. - -* `next` attribute and step transitions - In a regular job, these are -allowed to appear together in the same step. JSR-352 allows them to both be used in the -same step with the next attribute taking precedence in evaluation. - -* Transition element ordering - In a standard Spring Batch job, transition elements are -sorted from most specific to least specific and evaluated in that order. JSR-352 jobs -evaluate transition elements in the order they are specified in the XML. - - - - -[[jsrScaling]] - - -=== Scaling a JSR-352 batch job - -Traditional Spring Batch jobs have four ways of scaling (the last two capable of being executed across -multiple JVMs): - -* Split - Running multiple steps in parallel. - - -* Multiple threads - Executing a single step via multiple threads. - - -* Partitioning - Dividing the data up for parallel processing (manager/worker). - - -* Remote Chunking - Executing the processor piece of logic remotely. - - - - -JSR-352 provides two options for scaling batch jobs. Both options support only a single JVM: - -* Split - Same as Spring Batch - - -* Partitioning - Conceptually the same as Spring Batch however implemented slightly different. - - - - - -[[jsrPartitioning]] - - -==== Partitioning - -Conceptually, partitioning in JSR-352 is the same as it is in Spring Batch. Meta-data is provided -to each worker to identify the input to be processed, with the workers reporting back to the manager the -results upon completion. However, there are some important differences: - -* Partitioned `Batchlet` - This will run multiple instances of the -configured `Batchlet` on multiple threads. Each instance will have -it's own set of properties as provided by the JSL or the -`PartitionPlan` - - -* `PartitionPlan` - With Spring Batch's partitioning, an -`ExecutionContext` is provided for each partition. With JSR-352, a -single `jakarta.batch.api.partition.PartitionPlan` is provided with an -array of `Properties` providing the meta-data for each partition. - - - -* `PartitionMapper` - JSR-352 provides two ways to generate partition -meta-data. One is via the JSL (partition properties). The second is via an implementation -of the `jakarta.batch.api.partition.PartitionMapper` interface. -Functionally, this interface is similar to the -`org.springframework.batch.core.partition.support.Partitioner` -interface provided by Spring Batch in that it provides a way to programmatically generate -meta-data for partitioning. - - -* `StepExecutions` - In Spring Batch, partitioned steps are run as -manager/worker. Within JSR-352, the same configuration occurs. However, the worker steps do -not get official `StepExecutions`. Because of that, calls to -`JsrJobOperator#getStepExecutions(long jobExecutionId)` will only -return the `StepExecution` for the manager. - -[NOTE] -==== -The child `StepExecutions` still exist in the job repository and are available -through the `JobExplorer`. -==== - - -* Compensating logic - Since Spring Batch implements the manager/worker logic of -partitioning using steps, `StepExecutionListeners` can be used to -handle compensating logic if something goes wrong. However, since the workers JSR-352 -provides a collection of other components for the ability to provide compensating logic when -errors occur and to dynamically set the exit status. These components include the following: - -|=============== -|__Artifact Interface__|__Description__ -|`jakarta.batch.api.partition.PartitionCollector`|Provides a way for worker steps to send information back to the -manager. There is one instance per worker thread. -|`jakarta.batch.api.partition.PartitionAnalyzer`|End point that receives the information collected by the -`PartitionCollector` as well as the resulting -statuses from a completed partition. -|`jakarta.batch.api.partition.PartitionReducer`|Provides the ability to provide compensating logic for a partitioned -step. - -|=============== - - -[[jsrTesting]] - -=== Testing - -Since all JSR-352 based jobs are executed asynchronously, it can be difficult to determine when a job has -completed. To help with testing, Spring Batch provides the -`org.springframework.batch.test.JsrTestUtils`. This utility class provides the -ability to start a job and restart a job and wait for it to complete. Once the job completes, the -associated `JobExecution` is returned. diff --git a/spring-batch-docs/src/main/asciidoc/schema-appendix.adoc b/spring-batch-docs/src/main/asciidoc/schema-appendix.adoc index 2df948d75..2877e19f5 100644 --- a/spring-batch-docs/src/main/asciidoc/schema-appendix.adoc +++ b/spring-batch-docs/src/main/asciidoc/schema-appendix.adoc @@ -190,7 +190,6 @@ CREATE TABLE BATCH_JOB_EXECUTION ( EXIT_CODE VARCHAR(20), EXIT_MESSAGE VARCHAR(2500), LAST_UPDATED TIMESTAMP, - JOB_CONFIGURATION_LOCATION VARCHAR(2500) NULL, constraint JOB_INSTANCE_EXECUTION_FK foreign key (JOB_INSTANCE_ID) references BATCH_JOB_INSTANCE(JOB_INSTANCE_ID) ) ; diff --git a/spring-batch-infrastructure/pom.xml b/spring-batch-infrastructure/pom.xml index 5cff94a4d..43b6ae002 100644 --- a/spring-batch-infrastructure/pom.xml +++ b/spring-batch-infrastructure/pom.xml @@ -119,12 +119,6 @@ ${jakarta.persistence-api.version} true - - jakarta.batch - jakarta.batch-api - ${jakarta.batch-api.version} - true - org.springframework.data spring-data-geode diff --git a/spring-batch-infrastructure/src/main/java/org/springframework/batch/jsr/item/CheckpointSupport.java b/spring-batch-infrastructure/src/main/java/org/springframework/batch/jsr/item/CheckpointSupport.java deleted file mode 100644 index e252f3a37..000000000 --- a/spring-batch-infrastructure/src/main/java/org/springframework/batch/jsr/item/CheckpointSupport.java +++ /dev/null @@ -1,133 +0,0 @@ -/* - * Copyright 2013-2021 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.springframework.batch.jsr.item; - -import java.io.Serializable; - -import jakarta.batch.api.chunk.ItemReader; -import jakarta.batch.api.chunk.ItemWriter; - -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -import org.springframework.batch.item.ExecutionContext; -import org.springframework.batch.item.ItemStreamException; -import org.springframework.batch.item.ItemStreamSupport; -import org.springframework.util.Assert; -import org.springframework.util.SerializationUtils; - -/** - * Provides support for JSR-352 checkpointing. Checkpoint objects are copied prior - * to being added to the {@link ExecutionContext} for persistence by the framework. - * If the checkpoint object cannot be copied and further changes occur to the same - * instance, side effects may occur. In cases like this, it is recommended that a - * copy of the object being acted upon in the reader/writer is returned via the - * {@link ItemReader#checkpointInfo()} or {@link ItemWriter#checkpointInfo()} calls. - * - * @author Michael Minella - * @author Mahmoud Ben Hassine - * @since 3.0 - */ -public abstract class CheckpointSupport extends ItemStreamSupport{ - - private final Log logger = LogFactory.getLog(this.getClass()); - - private final String checkpointKey; - - /** - * @param checkpointKey key to store the checkpoint object with in the {@link ExecutionContext} - */ - public CheckpointSupport(String checkpointKey) { - Assert.hasText(checkpointKey, "checkpointKey is required"); - this.checkpointKey = checkpointKey; - } - - /* (non-Javadoc) - * @see org.springframework.batch.item.ItemStreamSupport#open(org.springframework.batch.item.ExecutionContext) - */ - @Override - public void open(ExecutionContext executionContext) - throws ItemStreamException { - try { - String executionContextKey = getExecutionContextKey(checkpointKey); - Serializable checkpoint = (Serializable) executionContext.get(executionContextKey); - doOpen(checkpoint); - } catch (Exception e) { - throw new ItemStreamException(e); - } - } - - /** - * Used to open a batch artifact with previously saved checkpoint information. - * - * @param checkpoint previously saved checkpoint object - * @throws Exception thrown by the implementation - */ - protected abstract void doOpen(Serializable checkpoint) throws Exception; - - /* (non-Javadoc) - * @see org.springframework.batch.item.ItemStreamSupport#update(org.springframework.batch.item.ExecutionContext) - */ - @Override - public void update(ExecutionContext executionContext) - throws ItemStreamException { - try { - executionContext.put(getExecutionContextKey(checkpointKey), deepCopy(doCheckpoint())); - } catch (Exception e) { - throw new ItemStreamException(e); - } - } - - /** - * Used to provide a {@link Serializable} representing the current state of the - * batch artifact. - * - * @return the current state of the batch artifact - * @throws Exception thrown by the implementation - */ - protected abstract Serializable doCheckpoint() throws Exception; - - /* (non-Javadoc) - * @see org.springframework.batch.item.ItemStreamSupport#close() - */ - @Override - public void close() throws ItemStreamException { - try { - doClose(); - } catch (Exception e) { - throw new ItemStreamException(e); - } - } - - /** - * Used to close the underlying batch artifact - * - * @throws Exception thrown by the underlying implementation - */ - protected abstract void doClose() throws Exception; - - private Object deepCopy(Serializable orig) { - Object obj = orig; - - try { - obj = SerializationUtils.deserialize(SerializationUtils.serialize(orig)); - } catch (Exception e) { - logger.warn("Unable to copy checkpoint object. Updating the instance passed may cause side effects"); - } - - return obj; - } - -} diff --git a/spring-batch-infrastructure/src/main/java/org/springframework/batch/jsr/item/ItemProcessorAdapter.java b/spring-batch-infrastructure/src/main/java/org/springframework/batch/jsr/item/ItemProcessorAdapter.java deleted file mode 100644 index b84874fac..000000000 --- a/spring-batch-infrastructure/src/main/java/org/springframework/batch/jsr/item/ItemProcessorAdapter.java +++ /dev/null @@ -1,38 +0,0 @@ -/* - * Copyright 2013-2021 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.springframework.batch.jsr.item; - -import jakarta.batch.api.chunk.ItemProcessor; - -import org.springframework.lang.Nullable; -import org.springframework.util.Assert; - -public class ItemProcessorAdapter implements org.springframework.batch.item.ItemProcessor { - - private ItemProcessor delegate; - - public ItemProcessorAdapter(ItemProcessor processor) { - Assert.notNull(processor, "An ItemProcessor implementation is required"); - this.delegate = processor; - } - - @Nullable - @SuppressWarnings("unchecked") - @Override - public O process(I item) throws Exception { - return (O) delegate.processItem(item); - } -} diff --git a/spring-batch-infrastructure/src/main/java/org/springframework/batch/jsr/item/ItemReaderAdapter.java b/spring-batch-infrastructure/src/main/java/org/springframework/batch/jsr/item/ItemReaderAdapter.java deleted file mode 100644 index 750e7293c..000000000 --- a/spring-batch-infrastructure/src/main/java/org/springframework/batch/jsr/item/ItemReaderAdapter.java +++ /dev/null @@ -1,83 +0,0 @@ -/* - * Copyright 2013-2021 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.springframework.batch.jsr.item; - -import java.io.Serializable; - -import jakarta.batch.api.chunk.ItemReader; - -import org.springframework.lang.Nullable; -import org.springframework.util.Assert; -import org.springframework.util.ClassUtils; - -/** - * Adapter that wraps an {@link ItemReader} for use by Spring Batch. All calls are delegated as appropriate - * to the corresponding method on the delegate. - * - * @author Michael Minella - * @author Mahmoud Ben Hassine - * @since 3.0 - */ -public class ItemReaderAdapter extends CheckpointSupport implements org.springframework.batch.item.ItemReader { - - private static final String CHECKPOINT_KEY = "reader.checkpoint"; - - private ItemReader delegate; - - /** - * @param reader the {@link ItemReader} implementation to delegate to - */ - public ItemReaderAdapter(ItemReader reader) { - super(CHECKPOINT_KEY); - Assert.notNull(reader, "An ItemReader implementation is required"); - this.delegate = reader; - setExecutionContextName(ClassUtils.getShortName(delegate.getClass())); - } - - /* (non-Javadoc) - * @see org.springframework.batch.item.ItemReader#read() - */ - @Nullable - @SuppressWarnings("unchecked") - @Override - public T read() throws Exception { - return (T) delegate.readItem(); - } - - /* (non-Javadoc) - * @see org.springframework.batch.jsr.item.CheckpointSupport#doClose() - */ - @Override - protected void doClose() throws Exception{ - delegate.close(); - } - - /* (non-Javadoc) - * @see org.springframework.batch.jsr.item.CheckpointSupport#doCheckpoint() - */ - @Override - protected Serializable doCheckpoint() throws Exception { - return delegate.checkpointInfo(); - } - - /* (non-Javadoc) - * @see org.springframework.batch.jsr.item.CheckpointSupport#doOpen(java.io.Serializable) - */ - @Override - protected void doOpen(Serializable checkpoint) throws Exception { - delegate.open(checkpoint); - } -} diff --git a/spring-batch-infrastructure/src/main/java/org/springframework/batch/jsr/item/ItemWriterAdapter.java b/spring-batch-infrastructure/src/main/java/org/springframework/batch/jsr/item/ItemWriterAdapter.java deleted file mode 100644 index d5377b481..000000000 --- a/spring-batch-infrastructure/src/main/java/org/springframework/batch/jsr/item/ItemWriterAdapter.java +++ /dev/null @@ -1,83 +0,0 @@ -/* - * Copyright 2013-2021 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.springframework.batch.jsr.item; - -import java.io.Serializable; -import java.util.List; - -import jakarta.batch.api.chunk.ItemWriter; - -import org.springframework.util.Assert; -import org.springframework.util.ClassUtils; - -/** - * Adapter that wraps an {@link ItemWriter} for use by Spring Batch. All calls are delegated as appropriate - * to the corresponding method on the delegate. - * - * @author Michael Minella - * @author Mahmoud Ben Hassine - * @since 3.0 - */ -public class ItemWriterAdapter extends CheckpointSupport implements org.springframework.batch.item.ItemWriter { - - private static final String CHECKPOINT_KEY = "writer.checkpoint"; - - private ItemWriter delegate; - - /** - * @param writer a {@link ItemWriter} to delegate calls to - */ - public ItemWriterAdapter(ItemWriter writer) { - super(CHECKPOINT_KEY); - Assert.notNull(writer, "An ItemWriter implementation is required"); - this.delegate = writer; - super.setExecutionContextName(ClassUtils.getShortName(delegate.getClass())); - } - - /* (non-Javadoc) - * @see org.springframework.batch.item.ItemWriter#write(java.util.List) - */ - @SuppressWarnings("unchecked") - @Override - public void write(List items) throws Exception { - delegate.writeItems((List) items); - } - - /* (non-Javadoc) - * @see org.springframework.batch.jsr.item.CheckpointSupport#doOpen(java.io.Serializable) - */ - @Override - protected void doOpen(Serializable checkpoint) throws Exception { - delegate.open(checkpoint); - } - - /* (non-Javadoc) - * @see org.springframework.batch.jsr.item.CheckpointSupport#doCheckpoint() - */ - @Override - protected Serializable doCheckpoint() throws Exception { - Serializable checkpointInfo = delegate.checkpointInfo(); - return checkpointInfo; - } - - /* (non-Javadoc) - * @see org.springframework.batch.jsr.item.CheckpointSupport#doClose() - */ - @Override - protected void doClose() throws Exception{ - delegate.close(); - } -} diff --git a/spring-batch-infrastructure/src/main/java/org/springframework/batch/jsr/item/package-info.java b/spring-batch-infrastructure/src/main/java/org/springframework/batch/jsr/item/package-info.java deleted file mode 100644 index c4cad41a1..000000000 --- a/spring-batch-infrastructure/src/main/java/org/springframework/batch/jsr/item/package-info.java +++ /dev/null @@ -1,10 +0,0 @@ -/** - * Components for adapting JSR item based components to Spring Batch. - * - * @author Michael Minella - * @author Mahmoud Ben Hassine - */ -@NonNullApi -package org.springframework.batch.jsr.item; - -import org.springframework.lang.NonNullApi; diff --git a/spring-batch-infrastructure/src/main/java/org/springframework/batch/jsr/repeat/CheckpointAlgorithmAdapter.java b/spring-batch-infrastructure/src/main/java/org/springframework/batch/jsr/repeat/CheckpointAlgorithmAdapter.java deleted file mode 100644 index d19c60edf..000000000 --- a/spring-batch-infrastructure/src/main/java/org/springframework/batch/jsr/repeat/CheckpointAlgorithmAdapter.java +++ /dev/null @@ -1,102 +0,0 @@ -/* - * Copyright 2013-2021 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.springframework.batch.jsr.repeat; - -import jakarta.batch.api.chunk.CheckpointAlgorithm; -import jakarta.batch.operations.BatchRuntimeException; - -import org.springframework.batch.repeat.CompletionPolicy; -import org.springframework.batch.repeat.RepeatContext; -import org.springframework.batch.repeat.RepeatStatus; -import org.springframework.util.Assert; - -/** - * Wrapper for the {@link CheckpointAlgorithm} to be used via the rest - * of the framework. - * - * @author Michael Minella - * @author Mahmoud Ben Hassine - * @see CheckpointAlgorithm - * @see CompletionPolicy - */ -public class CheckpointAlgorithmAdapter implements CompletionPolicy { - - private CheckpointAlgorithm policy; - private boolean isComplete = false; - - public CheckpointAlgorithmAdapter(CheckpointAlgorithm policy) { - Assert.notNull(policy, "A CheckpointAlgorithm is required"); - - this.policy = policy; - } - - /* (non-Javadoc) - * @see org.springframework.batch.repeat.CompletionPolicy#isComplete(org.springframework.batch.repeat.RepeatContext, org.springframework.batch.repeat.RepeatStatus) - */ - @Override - public boolean isComplete(RepeatContext context, RepeatStatus result) { - try { - isComplete = policy.isReadyToCheckpoint(); - return isComplete; - } catch (Exception e) { - throw new BatchRuntimeException(e); - } - } - - /* (non-Javadoc) - * @see org.springframework.batch.repeat.CompletionPolicy#isComplete(org.springframework.batch.repeat.RepeatContext) - */ - @Override - public boolean isComplete(RepeatContext context) { - try { - isComplete = policy.isReadyToCheckpoint(); - return isComplete; - } catch (Exception e) { - throw new BatchRuntimeException(e); - } - } - - /* (non-Javadoc) - * @see org.springframework.batch.repeat.CompletionPolicy#start(org.springframework.batch.repeat.RepeatContext) - */ - @Override - public RepeatContext start(RepeatContext parent) { - try { - policy.beginCheckpoint(); - } catch (Exception e) { - throw new BatchRuntimeException(e); - } - - return parent; - } - - /** - * If {@link CheckpointAlgorithm#isReadyToCheckpoint()} is true - * we will call {@link CheckpointAlgorithm#endCheckpoint()} - * - * @param context a {@link RepeatContext} - */ - @Override - public void update(RepeatContext context) { - try { - if(isComplete) { - policy.endCheckpoint(); - } - } catch (Exception e) { - throw new BatchRuntimeException(e); - } - } -} diff --git a/spring-batch-infrastructure/src/main/java/org/springframework/batch/jsr/repeat/package-info.java b/spring-batch-infrastructure/src/main/java/org/springframework/batch/jsr/repeat/package-info.java deleted file mode 100644 index 3ae51bc5c..000000000 --- a/spring-batch-infrastructure/src/main/java/org/springframework/batch/jsr/repeat/package-info.java +++ /dev/null @@ -1,25 +0,0 @@ -/* - * Copyright 2018 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. - */ - -/** - * APIs for JSR-352 repeat support. - * - * @author Mahmoud Ben Hassine - */ -@NonNullApi -package org.springframework.batch.jsr.repeat; - -import org.springframework.lang.NonNullApi; diff --git a/spring-batch-infrastructure/src/test/java/org/springframework/batch/jsr/item/ItemProcessorAdapterTests.java b/spring-batch-infrastructure/src/test/java/org/springframework/batch/jsr/item/ItemProcessorAdapterTests.java deleted file mode 100644 index 227cb2645..000000000 --- a/spring-batch-infrastructure/src/test/java/org/springframework/batch/jsr/item/ItemProcessorAdapterTests.java +++ /dev/null @@ -1,58 +0,0 @@ -/* - * Copyright 2013-2021 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.springframework.batch.jsr.item; - -import static org.junit.Assert.assertEquals; -import static org.mockito.Mockito.when; - -import jakarta.batch.api.chunk.ItemProcessor; - -import org.junit.Before; -import org.junit.Rule; -import org.junit.Test; -import org.mockito.Mock; -import org.mockito.junit.MockitoJUnit; -import org.mockito.junit.MockitoRule; - -public class ItemProcessorAdapterTests { - - @Rule - public MockitoRule rule = MockitoJUnit.rule().silent(); - - private ItemProcessorAdapter adapter; - @Mock - private ItemProcessor delegate; - - @Before - public void setUp() throws Exception { - adapter = new ItemProcessorAdapter<>(delegate); - } - - @Test(expected=IllegalArgumentException.class) - public void testCreateWithNull() { - adapter = new ItemProcessorAdapter<>(null); - } - - @Test - public void testProcess() throws Exception { - String input = "input"; - String output = "output"; - - when(delegate.processItem(input)).thenReturn(output); - - assertEquals(output, adapter.process(input)); - } -} diff --git a/spring-batch-infrastructure/src/test/java/org/springframework/batch/jsr/item/ItemReaderAdapterTests.java b/spring-batch-infrastructure/src/test/java/org/springframework/batch/jsr/item/ItemReaderAdapterTests.java deleted file mode 100644 index d244f48f7..000000000 --- a/spring-batch-infrastructure/src/test/java/org/springframework/batch/jsr/item/ItemReaderAdapterTests.java +++ /dev/null @@ -1,183 +0,0 @@ -/* - * Copyright 2013-2021 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.springframework.batch.jsr.item; - -import java.io.Serializable; -import java.util.Arrays; -import java.util.List; -import jakarta.batch.api.chunk.ItemReader; - -import org.junit.Before; -import org.junit.Rule; -import org.junit.Test; -import org.mockito.Mock; -import org.mockito.junit.MockitoJUnit; -import org.mockito.junit.MockitoRule; -import org.springframework.batch.item.ExecutionContext; -import org.springframework.batch.item.ItemStreamException; - -import static org.junit.Assert.assertEquals; -import static org.mockito.Mockito.doThrow; -import static org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; - -public class ItemReaderAdapterTests { - - @Rule - public MockitoRule rule = MockitoJUnit.rule().silent(); - - private ItemReaderAdapter adapter; - @Mock - private ItemReader delegate; - @Mock - private ExecutionContext executionContext; - - @Before - public void setUp() throws Exception { - adapter = new ItemReaderAdapter<>(delegate); - adapter.setName("jsrReader"); - } - - @Test(expected=IllegalArgumentException.class) - public void testCreateWithNull() { - adapter = new ItemReaderAdapter<>(null); - } - - @Test - public void testOpen() throws Exception { - when(executionContext.get("jsrReader.reader.checkpoint")).thenReturn("checkpoint"); - - adapter.open(executionContext); - - verify(delegate).open("checkpoint"); - } - - @Test(expected=ItemStreamException.class) - public void testOpenException() throws Exception { - when(executionContext.get("jsrReader.reader.checkpoint")).thenReturn("checkpoint"); - - doThrow(new Exception("expected")).when(delegate).open("checkpoint"); - - adapter.open(executionContext); - } - - @Test - public void testUpdate() throws Exception { - when(delegate.checkpointInfo()).thenReturn("checkpoint"); - - adapter.update(executionContext); - - verify(executionContext).put("jsrReader.reader.checkpoint", "checkpoint"); - } - - @Test(expected=ItemStreamException.class) - public void testUpdateException() throws Exception { - doThrow(new Exception("expected")).when(delegate).checkpointInfo(); - - adapter.update(executionContext); - } - - @Test - public void testClose() throws Exception { - adapter.close(); - - verify(delegate).close(); - } - - @Test(expected=ItemStreamException.class) - public void testCloseException() throws Exception { - doThrow(new Exception("expected")).when(delegate).close(); - - adapter.close(); - } - - @Test - public void testRead() throws Exception { - when(delegate.readItem()).thenReturn("item"); - - assertEquals("item", adapter.read()); - } - - @Test - public void testCheckpointChange() throws Exception { - ItemReaderAdapter adapter = new ItemReaderAdapter<>(new ItemReader() { - - private CheckpointContainer container = null; - private List items = Arrays.asList("foo", "bar", "baz"); - - @Override - public Object readItem() throws Exception { - int index = container.getCount(); - - if(index < items.size()) { - container.setCount(index + 1); - return items.get(index); - } else { - return null; - } - } - - @Override - public void open(Serializable checkpoint) throws Exception { - container = new CheckpointContainer(); - } - - @Override - public void close() throws Exception { - } - - @Override - public Serializable checkpointInfo() throws Exception { - return container; - } - }); - - ExecutionContext context = new ExecutionContext(); - - adapter.open(context); - adapter.read(); - adapter.read(); - adapter.update(context); - adapter.read(); - adapter.close(); - - CheckpointContainer container = (CheckpointContainer) context.get("ItemReaderAdapterTests.1.reader.checkpoint"); - assertEquals(2, container.getCount()); - - } - - public static class CheckpointContainer implements Serializable{ - private static final long serialVersionUID = 1L; - private int count; - - public CheckpointContainer() { - count = 0; - } - - public int getCount() { - return count; - } - - public void setCount(int count) { - this.count = count; - } - - @Override - public String toString() { - return "CheckpointContainer has a count of " + count; - } - } -} diff --git a/spring-batch-infrastructure/src/test/java/org/springframework/batch/jsr/item/ItemWriterAdapterTests.java b/spring-batch-infrastructure/src/test/java/org/springframework/batch/jsr/item/ItemWriterAdapterTests.java deleted file mode 100644 index ba6f0d7a6..000000000 --- a/spring-batch-infrastructure/src/test/java/org/springframework/batch/jsr/item/ItemWriterAdapterTests.java +++ /dev/null @@ -1,186 +0,0 @@ -/* - * Copyright 2013-2021 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.springframework.batch.jsr.item; - -import java.io.Serializable; -import java.util.ArrayList; -import java.util.List; -import jakarta.batch.api.chunk.ItemWriter; - -import org.junit.Before; -import org.junit.Rule; -import org.junit.Test; -import org.mockito.Mock; -import org.mockito.junit.MockitoJUnit; -import org.mockito.junit.MockitoRule; -import org.springframework.batch.item.ExecutionContext; -import org.springframework.batch.item.ItemStreamException; - -import static org.junit.Assert.assertEquals; -import static org.mockito.Mockito.doThrow; -import static org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; - -public class ItemWriterAdapterTests { - - @Rule - public MockitoRule rule = MockitoJUnit.rule().silent(); - - private ItemWriterAdapter adapter; - @Mock - private ItemWriter delegate; - @Mock - private ExecutionContext executionContext; - - @Before - public void setUp() throws Exception { - - adapter = new ItemWriterAdapter<>(delegate); - adapter.setName("jsrWriter"); - } - - @Test(expected=IllegalArgumentException.class) - public void testCreateWithNull() { - adapter = new ItemWriterAdapter<>(null); - } - - @Test - public void testOpen() throws Exception { - when(executionContext.get("jsrWriter.writer.checkpoint")).thenReturn("checkpoint"); - - adapter.open(executionContext); - - verify(delegate).open("checkpoint"); - } - - @Test(expected=ItemStreamException.class) - public void testOpenException() throws Exception { - when(executionContext.get("jsrWriter.writer.checkpoint")).thenReturn("checkpoint"); - - doThrow(new Exception("expected")).when(delegate).open("checkpoint"); - - adapter.open(executionContext); - } - - @Test - public void testUpdate() throws Exception { - when(delegate.checkpointInfo()).thenReturn("checkpoint"); - - adapter.update(executionContext); - - verify(executionContext).put("jsrWriter.writer.checkpoint", "checkpoint"); - } - - @Test(expected=ItemStreamException.class) - public void testUpdateException() throws Exception { - doThrow(new Exception("expected")).when(delegate).checkpointInfo(); - - adapter.update(executionContext); - } - - @Test - public void testClose() throws Exception { - adapter.close(); - - verify(delegate).close(); - } - - @Test(expected=ItemStreamException.class) - public void testCloseException() throws Exception { - doThrow(new Exception("expected")).when(delegate).close(); - - adapter.close(); - } - - @Test - @SuppressWarnings({"rawtypes", "unchecked"}) - public void testWrite() throws Exception { - List items = new ArrayList(); - - items.add("item1"); - items.add("item2"); - - adapter.write(items); - - verify(delegate).writeItems(items); - } - - @Test - public void testCheckpointChange() throws Exception { - ItemWriterAdapter adapter = new ItemWriterAdapter<>(new ItemWriter() { - - private CheckpointContainer container = null; - - @Override - public void open(Serializable checkpoint) throws Exception { - container = new CheckpointContainer(); - } - - @Override - public void close() throws Exception { - } - - @Override - public void writeItems(List items) throws Exception { - container.setCount(container.getCount() + items.size()); - } - - @Override - public Serializable checkpointInfo() throws Exception { - return container; - } - }); - - ExecutionContext context = new ExecutionContext(); - - List items = new ArrayList<>(); - items.add("foo"); - items.add("bar"); - items.add("baz"); - adapter.open(context); - adapter.write(items); - adapter.update(context); - adapter.write(items); - adapter.close(); - - CheckpointContainer container = (CheckpointContainer) context.get("ItemWriterAdapterTests.1.writer.checkpoint"); - assertEquals(3, container.getCount()); - - } - - public static class CheckpointContainer implements Serializable{ - private static final long serialVersionUID = 1L; - - private int count; - - public CheckpointContainer() { - count = 0; - } - - public int getCount() { - return count; - } - - public void setCount(int count) { - this.count = count; - } - - @Override - public String toString() { - return "CheckpointContainer has a count of " + count; - } - } -} diff --git a/spring-batch-integration/src/test/java/org/springframework/batch/integration/JobRepositorySupport.java b/spring-batch-integration/src/test/java/org/springframework/batch/integration/JobRepositorySupport.java index 79f23a92d..4a54fdae0 100644 --- a/spring-batch-integration/src/test/java/org/springframework/batch/integration/JobRepositorySupport.java +++ b/spring-batch-integration/src/test/java/org/springframework/batch/integration/JobRepositorySupport.java @@ -1,5 +1,5 @@ /* - * Copyright 2006-2019 the original author or authors. + * Copyright 2006-2021 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -29,6 +29,7 @@ import org.springframework.lang.Nullable; /** * @author Dave Syer + * @author Mahmoud Ben Hassine * */ public class JobRepositorySupport implements JobRepository { @@ -108,8 +109,4 @@ public class JobRepositorySupport implements JobRepository { return null; } - public JobExecution createJobExecution(JobInstance jobInstance, - JobParameters jobParameters, String jobConfigurationLocation) { - return null; - } } diff --git a/spring-batch-jsr352-tck/jsr352-tck-1.0/LICENSE.txt b/spring-batch-jsr352-tck/jsr352-tck-1.0/LICENSE.txt deleted file mode 100644 index 8b9e31618..000000000 --- a/spring-batch-jsr352-tck/jsr352-tck-1.0/LICENSE.txt +++ /dev/null @@ -1,62 +0,0 @@ - -======================================================================================== -LICENSE for JSR 352 RI/TCK -======================================================================================== -The Program is licensed under the terms and conditions of the Apache 2.0 license: - -Apache License -Version 2.0, January 2004 -http://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. - -"Licensee" (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. - - diff --git a/spring-batch-jsr352-tck/jsr352-tck-1.0/NOTICE.txt b/spring-batch-jsr352-tck/jsr352-tck-1.0/NOTICE.txt deleted file mode 100644 index 79d7a7f3b..000000000 --- a/spring-batch-jsr352-tck/jsr352-tck-1.0/NOTICE.txt +++ /dev/null @@ -1,209 +0,0 @@ - -======================================================================================== -NOTICES AND INFORMATION for JSR 352 RI/TCK -======================================================================================== - -Apache 2.0 NOTICES AND INFORMATION -The Program includes the following, which were also obtained under the terms and conditions of the Apache 2.0 license: - -TestNG v6.8 -Java Inject v3.0 -SpringBatch API v2 - -Apache License -Version 2.0, January 2004 -http://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. - -"Licensee" (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 APACHE NOTICES AND INFORMATION - -======================================================================================== -JUnit NOTICES AND INFORMATION - -JUnit v4.1.0 -The Program includes JUnit which was obtained under the terms and conditions of the following license: - - -THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS COMMON PUBLIC LICENSE ("AGREEMENT"). ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. - -1. DEFINITIONS - -"Contribution" means: - -a) in the case of the initial Contributor, the initial code and documentation distributed under this Agreement, and - -b) in the case of each subsequent Contributor: - -i) changes to the Program, and - -ii) additions to the Program; - -where such changes and/or additions to the Program originate from and are distributed by that particular Contributor. A Contribution 'originates' from a Contributor if it was added to the Program by such Contributor itself or anyone acting on such Contributor's behalf. Contributions do not include additions to the Program which: (i) are separate modules of software distributed in conjunction with the Program under their own license agreement, and (ii) are not derivative works of the Program. - -"Contributor" means any person or entity that distributes the Program. - -"Licensed Patents " mean patent claims licensable by a Contributor which are necessarily infringed by the use or sale of its Contribution alone or when combined with the Program. - -"Program" means the Contributions distributed in accordance with this Agreement. - -"Recipient" means anyone who receives the Program under this Agreement, including all Contributors. - -2. GRANT OF RIGHTS - -a) Subject to the terms of this Agreement, each Contributor hereby grants Recipient a non-exclusive, worldwide, royalty-free copyright license to reproduce, prepare derivative works of, publicly display, publicly perform, distribute and sublicense the Contribution of such Contributor, if any, and such derivative works, in source code and object code form. - -b) Subject to the terms of this Agreement, each Contributor hereby grants Recipient a non-exclusive, worldwide, royalty-free patent license under Licensed Patents to make, use, sell, offer to sell, import and otherwise transfer the Contribution of such Contributor, if any, in source code and object code form. This patent license shall apply to the combination of the Contribution and the Program if, at the time the Contribution is added by the Contributor, such addition of the Contribution causes such combination to be covered by the Licensed Patents. The patent license shall not apply to any other combinations which include the Contribution. No hardware per se is licensed hereunder. - -c) Recipient understands that although each Contributor grants the licenses to its Contributions set forth herein, no assurances are provided by any Contributor that the Program does not infringe the patent or other intellectual property rights of any other entity. Each Contributor disclaims any liability to Recipient for claims brought by any other entity based on infringement of intellectual property rights or otherwise. As a condition to exercising the rights and licenses granted hereunder, each Recipient hereby assumes sole responsibility to secure any other intellectual property rights needed, if any. For example, if a third party patent license is required to allow Recipient to distribute the Program, it is Recipient's responsibility to acquire that license before distributing the Program. - -d) Each Contributor represents that to its knowledge it has sufficient copyright rights in its Contribution, if any, to grant the copyright license set forth in this Agreement. - -3. REQUIREMENTS - -A Contributor may choose to distribute the Program in object code form under its own license agreement, provided that: - -a) it complies with the terms and conditions of this Agreement; and - -b) its license agreement: - -i) effectively disclaims on behalf of all Contributors all warranties and conditions, express and implied, including warranties or conditions of title and non-infringement, and implied warranties or conditions of merchantability and fitness for a particular purpose; - -ii) effectively excludes on behalf of all Contributors all liability for damages, including direct, indirect, special, incidental and consequential damages, such as lost profits; - -iii) states that any provisions which differ from this Agreement are offered by that Contributor alone and not by any other party; and - -iv) states that source code for the Program is available from such Contributor, and informs licensees how to obtain it in a reasonable manner on or through a medium customarily used for software exchange. - -When the Program is made available in source code form: - -a) it must be made available under this Agreement; and - -b) a copy of this Agreement must be included with each copy of the Program. - -Contributors may not remove or alter any copyright notices contained within the Program. - -Each Contributor must identify itself as the originator of its Contribution, if any, in a manner that reasonably allows subsequent Recipients to identify the originator of the Contribution. - -4. COMMERCIAL DISTRIBUTION - -Commercial distributors of software may accept certain responsibilities with respect to end users, business partners and the like. While this license is intended to facilitate the commercial use of the Program, the Contributor who includes the Program in a commercial product offering should do so in a manner which does not create potential liability for other Contributors. Therefore, if a Contributor includes the Program in a commercial product offering, such Contributor ("Commercial Contributor") hereby agrees to defend and indemnify every other Contributor ("Indemnified Contributor") against any losses, damages and costs (collectively "Losses") arising from claims, lawsuits and other legal actions brought by a third party against the Indemnified Contributor to the extent caused by the acts or omissions of such Commercial Contributor in connection with its distribution of the Program in a commercial product offering. The obligations in this section do not apply to any claims or Losses relating to any actual or alleged intellectual property infringement. In order to qualify, an Indemnified Contributor must: a) promptly notify the Commercial Contributor in writing of such claim, and b) allow the Commercial Contributor to control, and cooperate with the Commercial Contributor in, the defense and any related settlement negotiations. The Indemnified Contributor may participate in any such claim at its own expense. - -For example, a Contributor might include the Program in a commercial product offering, Product X. That Contributor is then a Commercial Contributor. If that Commercial Contributor then makes performance claims, or offers warranties related to Product X, those performance claims and warranties are such Commercial Contributor's responsibility alone. Under this section, the Commercial Contributor would have to defend claims against the other Contributors related to those performance claims and warranties, and if a court requires any other Contributor to pay any damages as a result, the Commercial Contributor must pay those damages. - -5. NO WARRANTY - -EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, THE PROGRAM IS PROVIDED 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. Each Recipient is solely responsible for determining the appropriateness of using and distributing the Program and assumes all risks associated with its exercise of rights under this Agreement, including but not limited to the risks and costs of program errors, compliance with applicable laws, damage to or loss of data, programs or equipment, and unavailability or interruption of operations. - -6. DISCLAIMER OF LIABILITY - -EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, NEITHER RECIPIENT NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. - -7. GENERAL - -If any provision of this Agreement is invalid or unenforceable under applicable law, it shall not affect the validity or enforceability of the remainder of the terms of this Agreement, and without further action by the parties hereto, such provision shall be reformed to the minimum extent necessary to make such provision valid and enforceable. - -If Recipient institutes patent litigation against a Contributor with respect to a patent applicable to software (including a cross-claim or counterclaim in a lawsuit), then any patent licenses granted by that Contributor to such Recipient under this Agreement shall terminate as of the date such litigation is filed. In addition, if Recipient institutes patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Program itself (excluding combinations of the Program with other software or hardware) infringes such Recipient's patent(s), then such Recipient's rights granted under Section 2(b) shall terminate as of the date such litigation is filed. - -All Recipient's rights under this Agreement shall terminate if it fails to comply with any of the material terms or conditions of this Agreement and does not cure such failure in a reasonable period of time after becoming aware of such noncompliance. If all Recipient's rights under this Agreement terminate, Recipient agrees to cease use and distribution of the Program as soon as reasonably practicable. However, Recipient's obligations under this Agreement and any licenses granted by Recipient relating to the Program shall continue and survive. - -Everyone is permitted to copy and distribute copies of this Agreement, but in order to avoid inconsistency the Agreement is copyrighted and may only be modified in the following manner. The Agreement Steward reserves the right to publish new versions (including revisions) of this Agreement from time to time. No one other than the Agreement Steward has the right to modify this Agreement. IBM is the initial Agreement Steward. IBM may assign the responsibility to serve as the Agreement Steward to a suitable separate entity. Each new version of the Agreement will be given a distinguishing version number. The Program (including Contributions) may always be distributed subject to the version of the Agreement under which it was received. In addition, after a new version of the Agreement is published, Contributor may elect to distribute the Program (including its Contributions) under the new version. Except as expressly stated in Sections 2(a) and 2(b) above, Recipient receives no rights or licenses to the intellectual property of any Contributor under this Agreement, whether expressly, by implication, estoppel or otherwise. All rights in the Program not expressly granted under this Agreement are reserved. - -This Agreement is governed by the laws of the State of New York and the intellectual property laws of the United States of America. No party to this Agreement will bring a legal action under this Agreement more than one year after the cause of action arose. Each party waives its rights to a jury trial in any resulting litigation. - -. - -End of JUnit NOTICES AND INFORMATION -======================================================================================== - -XML Unit NOTICES AND INFORMATION - -XML Unit v1.1 - -The Program includes XML Unit which was obtained under the terms and conditions of the following license: - -Copyright (c) 2001-2007, Jeff Martin, Tim Bacon -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions -are met: - - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above - copyright notice, this list of conditions and the following - disclaimer in the documentation and/or other materials provided - with the distribution. - * Neither the name of the xmlunit.sourceforge.net nor the names - of its contributors may be used to endorse or promote products - derived from this software without specific prior written - permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -POSSIBILITY OF SUCH DAMAGE. - -End of XML Unit NOTICES AND INFORMATION -=========================================================================================[= - -End of JSR 352 RI/TCK NOTICES AND INFORMATION diff --git a/spring-batch-jsr352-tck/jsr352-tck-1.0/artifacts/jsr352-api-sigtest-java6.sig b/spring-batch-jsr352-tck/jsr352-tck-1.0/artifacts/jsr352-api-sigtest-java6.sig deleted file mode 100644 index 960da6bd0..000000000 --- a/spring-batch-jsr352-tck/jsr352-tck-1.0/artifacts/jsr352-api-sigtest-java6.sig +++ /dev/null @@ -1,539 +0,0 @@ -#Signature file v4.1 -#Version - -CLSS public abstract interface java.io.Serializable - -CLSS public abstract interface java.lang.Comparable<%0 extends java.lang.Object> -meth public abstract int compareTo({java.lang.Comparable%0}) - -CLSS public abstract java.lang.Enum<%0 extends java.lang.Enum<{java.lang.Enum%0}>> -cons protected (java.lang.String,int) -intf java.io.Serializable -intf java.lang.Comparable<{java.lang.Enum%0}> -meth protected final java.lang.Object clone() throws java.lang.CloneNotSupportedException -meth protected final void finalize() -meth public final boolean equals(java.lang.Object) -meth public final int compareTo({java.lang.Enum%0}) -meth public final int hashCode() -meth public final int ordinal() -meth public final java.lang.Class<{java.lang.Enum%0}> getDeclaringClass() -meth public final java.lang.String name() -meth public java.lang.String toString() -meth public static <%0 extends java.lang.Enum<{%%0}>> {%%0} valueOf(java.lang.Class<{%%0}>,java.lang.String) -supr java.lang.Object -hfds name,ordinal - -CLSS public java.lang.Exception -cons public () -cons public (java.lang.String) -cons public (java.lang.String,java.lang.Throwable) -cons public (java.lang.Throwable) -supr java.lang.Throwable -hfds serialVersionUID - -CLSS public java.lang.Object -cons public () -meth protected java.lang.Object clone() throws java.lang.CloneNotSupportedException -meth protected void finalize() throws java.lang.Throwable -meth public boolean equals(java.lang.Object) -meth public final java.lang.Class getClass() -meth public final void notify() -meth public final void notifyAll() -meth public final void wait() throws java.lang.InterruptedException -meth public final void wait(long) throws java.lang.InterruptedException -meth public final void wait(long,int) throws java.lang.InterruptedException -meth public int hashCode() -meth public java.lang.String toString() - -CLSS public java.lang.RuntimeException -cons public () -cons public (java.lang.String) -cons public (java.lang.String,java.lang.Throwable) -cons public (java.lang.Throwable) -supr java.lang.Exception -hfds serialVersionUID - -CLSS public java.lang.Throwable -cons public () -cons public (java.lang.String) -cons public (java.lang.String,java.lang.Throwable) -cons public (java.lang.Throwable) -intf java.io.Serializable -meth public java.lang.StackTraceElement[] getStackTrace() -meth public java.lang.String getLocalizedMessage() -meth public java.lang.String getMessage() -meth public java.lang.String toString() -meth public java.lang.Throwable fillInStackTrace() -meth public java.lang.Throwable getCause() -meth public java.lang.Throwable initCause(java.lang.Throwable) -meth public void printStackTrace() -meth public void printStackTrace(java.io.PrintStream) -meth public void printStackTrace(java.io.PrintWriter) -meth public void setStackTrace(java.lang.StackTraceElement[]) -supr java.lang.Object -hfds backtrace,cause,detailMessage,serialVersionUID,stackTrace - -CLSS public abstract interface java.lang.annotation.Annotation -meth public abstract boolean equals(java.lang.Object) -meth public abstract int hashCode() -meth public abstract java.lang.Class annotationType() -meth public abstract java.lang.String toString() - -CLSS public abstract interface !annotation java.lang.annotation.Documented - anno 0 java.lang.annotation.Documented() - anno 0 java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy value=RUNTIME) - anno 0 java.lang.annotation.Target(java.lang.annotation.ElementType[] value=[ANNOTATION_TYPE]) -intf java.lang.annotation.Annotation - -CLSS public abstract interface !annotation java.lang.annotation.Retention - anno 0 java.lang.annotation.Documented() - anno 0 java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy value=RUNTIME) - anno 0 java.lang.annotation.Target(java.lang.annotation.ElementType[] value=[ANNOTATION_TYPE]) -intf java.lang.annotation.Annotation -meth public abstract java.lang.annotation.RetentionPolicy value() - -CLSS public abstract interface !annotation java.lang.annotation.Target - anno 0 java.lang.annotation.Documented() - anno 0 java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy value=RUNTIME) - anno 0 java.lang.annotation.Target(java.lang.annotation.ElementType[] value=[ANNOTATION_TYPE]) -intf java.lang.annotation.Annotation -meth public abstract java.lang.annotation.ElementType[] value() - -CLSS public abstract jakarta.batch.api.AbstractBatchlet -cons public () -intf jakarta.batch.api.Batchlet -meth public abstract java.lang.String process() throws java.lang.Exception -meth public void stop() throws java.lang.Exception -supr java.lang.Object - -CLSS public abstract interface !annotation jakarta.batch.api.BatchProperty - anno 0 java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy value=RUNTIME) - anno 0 java.lang.annotation.Target(java.lang.annotation.ElementType[] value=[FIELD, METHOD, PARAMETER]) - anno 0 javax.inject.Qualifier() -intf java.lang.annotation.Annotation -meth public abstract !hasdefault java.lang.String name() - -CLSS public abstract interface jakarta.batch.api.Batchlet -meth public abstract java.lang.String process() throws java.lang.Exception -meth public abstract void stop() throws java.lang.Exception - -CLSS public abstract interface jakarta.batch.api.Decider -meth public abstract java.lang.String decide(jakarta.batch.runtime.StepExecution[]) throws java.lang.Exception - -CLSS public abstract jakarta.batch.api.chunk.AbstractCheckpointAlgorithm -cons public () -intf jakarta.batch.api.chunk.CheckpointAlgorithm -meth public abstract boolean isReadyToCheckpoint() throws java.lang.Exception -meth public int checkpointTimeout() throws java.lang.Exception -meth public void beginCheckpoint() throws java.lang.Exception -meth public void endCheckpoint() throws java.lang.Exception -supr java.lang.Object - -CLSS public abstract jakarta.batch.api.chunk.AbstractItemReader -cons public () -intf jakarta.batch.api.chunk.ItemReader -meth public abstract java.lang.Object readItem() throws java.lang.Exception -meth public java.io.Serializable checkpointInfo() throws java.lang.Exception -meth public void close() throws java.lang.Exception -meth public void open(java.io.Serializable) throws java.lang.Exception -supr java.lang.Object - -CLSS public abstract jakarta.batch.api.chunk.AbstractItemWriter -cons public () -intf jakarta.batch.api.chunk.ItemWriter -meth public abstract void writeItems(java.util.List) throws java.lang.Exception -meth public java.io.Serializable checkpointInfo() throws java.lang.Exception -meth public void close() throws java.lang.Exception -meth public void open(java.io.Serializable) throws java.lang.Exception -supr java.lang.Object - -CLSS public abstract interface jakarta.batch.api.chunk.CheckpointAlgorithm -meth public abstract boolean isReadyToCheckpoint() throws java.lang.Exception -meth public abstract int checkpointTimeout() throws java.lang.Exception -meth public abstract void beginCheckpoint() throws java.lang.Exception -meth public abstract void endCheckpoint() throws java.lang.Exception - -CLSS public abstract interface jakarta.batch.api.chunk.ItemProcessor -meth public abstract java.lang.Object processItem(java.lang.Object) throws java.lang.Exception - -CLSS public abstract interface jakarta.batch.api.chunk.ItemReader -meth public abstract java.io.Serializable checkpointInfo() throws java.lang.Exception -meth public abstract java.lang.Object readItem() throws java.lang.Exception -meth public abstract void close() throws java.lang.Exception -meth public abstract void open(java.io.Serializable) throws java.lang.Exception - -CLSS public abstract interface jakarta.batch.api.chunk.ItemWriter -meth public abstract java.io.Serializable checkpointInfo() throws java.lang.Exception -meth public abstract void close() throws java.lang.Exception -meth public abstract void open(java.io.Serializable) throws java.lang.Exception -meth public abstract void writeItems(java.util.List) throws java.lang.Exception - -CLSS public abstract jakarta.batch.api.chunk.listener.AbstractChunkListener -cons public () -intf jakarta.batch.api.chunk.listener.ChunkListener -meth public void afterChunk() throws java.lang.Exception -meth public void beforeChunk() throws java.lang.Exception -meth public void onError(java.lang.Exception) throws java.lang.Exception -supr java.lang.Object - -CLSS public abstract jakarta.batch.api.chunk.listener.AbstractItemProcessListener -cons public () -intf jakarta.batch.api.chunk.listener.ItemProcessListener -meth public void afterProcess(java.lang.Object,java.lang.Object) throws java.lang.Exception -meth public void beforeProcess(java.lang.Object) throws java.lang.Exception -meth public void onProcessError(java.lang.Object,java.lang.Exception) throws java.lang.Exception -supr java.lang.Object - -CLSS public abstract jakarta.batch.api.chunk.listener.AbstractItemReadListener -cons public () -intf jakarta.batch.api.chunk.listener.ItemReadListener -meth public void afterRead(java.lang.Object) throws java.lang.Exception -meth public void beforeRead() throws java.lang.Exception -meth public void onReadError(java.lang.Exception) throws java.lang.Exception -supr java.lang.Object - -CLSS public abstract jakarta.batch.api.chunk.listener.AbstractItemWriteListener -cons public () -intf jakarta.batch.api.chunk.listener.ItemWriteListener -meth public void afterWrite(java.util.List) throws java.lang.Exception -meth public void beforeWrite(java.util.List) throws java.lang.Exception -meth public void onWriteError(java.util.List,java.lang.Exception) throws java.lang.Exception -supr java.lang.Object - -CLSS public abstract interface jakarta.batch.api.chunk.listener.ChunkListener -meth public abstract void afterChunk() throws java.lang.Exception -meth public abstract void beforeChunk() throws java.lang.Exception -meth public abstract void onError(java.lang.Exception) throws java.lang.Exception - -CLSS public abstract interface jakarta.batch.api.chunk.listener.ItemProcessListener -meth public abstract void afterProcess(java.lang.Object,java.lang.Object) throws java.lang.Exception -meth public abstract void beforeProcess(java.lang.Object) throws java.lang.Exception -meth public abstract void onProcessError(java.lang.Object,java.lang.Exception) throws java.lang.Exception - -CLSS public abstract interface jakarta.batch.api.chunk.listener.ItemReadListener -meth public abstract void afterRead(java.lang.Object) throws java.lang.Exception -meth public abstract void beforeRead() throws java.lang.Exception -meth public abstract void onReadError(java.lang.Exception) throws java.lang.Exception - -CLSS public abstract interface jakarta.batch.api.chunk.listener.ItemWriteListener -meth public abstract void afterWrite(java.util.List) throws java.lang.Exception -meth public abstract void beforeWrite(java.util.List) throws java.lang.Exception -meth public abstract void onWriteError(java.util.List,java.lang.Exception) throws java.lang.Exception - -CLSS public abstract interface jakarta.batch.api.chunk.listener.RetryProcessListener -meth public abstract void onRetryProcessException(java.lang.Object,java.lang.Exception) throws java.lang.Exception - -CLSS public abstract interface jakarta.batch.api.chunk.listener.RetryReadListener -meth public abstract void onRetryReadException(java.lang.Exception) throws java.lang.Exception - -CLSS public abstract interface jakarta.batch.api.chunk.listener.RetryWriteListener -meth public abstract void onRetryWriteException(java.util.List,java.lang.Exception) throws java.lang.Exception - -CLSS public abstract interface jakarta.batch.api.chunk.listener.SkipProcessListener -meth public abstract void onSkipProcessItem(java.lang.Object,java.lang.Exception) throws java.lang.Exception - -CLSS public abstract interface jakarta.batch.api.chunk.listener.SkipReadListener -meth public abstract void onSkipReadItem(java.lang.Exception) throws java.lang.Exception - -CLSS public abstract interface jakarta.batch.api.chunk.listener.SkipWriteListener -meth public abstract void onSkipWriteItem(java.util.List,java.lang.Exception) throws java.lang.Exception - -CLSS abstract interface jakarta.batch.api.chunk.listener.package-info - -CLSS abstract interface jakarta.batch.api.chunk.package-info - -CLSS public abstract jakarta.batch.api.listener.AbstractJobListener -cons public () -intf jakarta.batch.api.listener.JobListener -meth public void afterJob() throws java.lang.Exception -meth public void beforeJob() throws java.lang.Exception -supr java.lang.Object - -CLSS public abstract jakarta.batch.api.listener.AbstractStepListener -cons public () -intf jakarta.batch.api.listener.StepListener -meth public void afterStep() throws java.lang.Exception -meth public void beforeStep() throws java.lang.Exception -supr java.lang.Object - -CLSS public abstract interface jakarta.batch.api.listener.JobListener -meth public abstract void afterJob() throws java.lang.Exception -meth public abstract void beforeJob() throws java.lang.Exception - -CLSS public abstract interface jakarta.batch.api.listener.StepListener -meth public abstract void afterStep() throws java.lang.Exception -meth public abstract void beforeStep() throws java.lang.Exception - -CLSS abstract interface jakarta.batch.api.listener.package-info - -CLSS abstract interface jakarta.batch.api.package-info - -CLSS public abstract jakarta.batch.api.partition.AbstractPartitionAnalyzer -cons public () -intf jakarta.batch.api.partition.PartitionAnalyzer -meth public void analyzeCollectorData(java.io.Serializable) throws java.lang.Exception -meth public void analyzeStatus(jakarta.batch.runtime.BatchStatus,java.lang.String) throws java.lang.Exception -supr java.lang.Object - -CLSS public abstract jakarta.batch.api.partition.AbstractPartitionReducer -cons public () -intf jakarta.batch.api.partition.PartitionReducer -meth public void afterPartitionedStepCompletion(jakarta.batch.api.partition.PartitionReducer$PartitionStatus) throws java.lang.Exception -meth public void beforePartitionedStepCompletion() throws java.lang.Exception -meth public void beginPartitionedStep() throws java.lang.Exception -meth public void rollbackPartitionedStep() throws java.lang.Exception -supr java.lang.Object - -CLSS public abstract interface jakarta.batch.api.partition.PartitionAnalyzer -meth public abstract void analyzeCollectorData(java.io.Serializable) throws java.lang.Exception -meth public abstract void analyzeStatus(jakarta.batch.runtime.BatchStatus,java.lang.String) throws java.lang.Exception - -CLSS public abstract interface jakarta.batch.api.partition.PartitionCollector -meth public abstract java.io.Serializable collectPartitionData() throws java.lang.Exception - -CLSS public abstract interface jakarta.batch.api.partition.PartitionMapper -meth public abstract jakarta.batch.api.partition.PartitionPlan mapPartitions() throws java.lang.Exception - -CLSS public abstract interface jakarta.batch.api.partition.PartitionPlan -meth public abstract boolean getPartitionsOverride() -meth public abstract int getPartitions() -meth public abstract int getThreads() -meth public abstract java.util.Properties[] getPartitionProperties() -meth public abstract void setPartitionProperties(java.util.Properties[]) -meth public abstract void setPartitions(int) -meth public abstract void setPartitionsOverride(boolean) -meth public abstract void setThreads(int) - -CLSS public jakarta.batch.api.partition.PartitionPlanImpl -cons public () -intf jakarta.batch.api.partition.PartitionPlan -meth public boolean getPartitionsOverride() -meth public int getPartitions() -meth public int getThreads() -meth public java.util.Properties[] getPartitionProperties() -meth public void setPartitionProperties(java.util.Properties[]) -meth public void setPartitions(int) -meth public void setPartitionsOverride(boolean) -meth public void setThreads(int) -supr java.lang.Object -hfds override,partitionProperties,partitions,threads - -CLSS public abstract interface jakarta.batch.api.partition.PartitionReducer -innr public final static !enum PartitionStatus -meth public abstract void afterPartitionedStepCompletion(jakarta.batch.api.partition.PartitionReducer$PartitionStatus) throws java.lang.Exception -meth public abstract void beforePartitionedStepCompletion() throws java.lang.Exception -meth public abstract void beginPartitionedStep() throws java.lang.Exception -meth public abstract void rollbackPartitionedStep() throws java.lang.Exception - -CLSS public final static !enum jakarta.batch.api.partition.PartitionReducer$PartitionStatus - outer jakarta.batch.api.partition.PartitionReducer -fld public final static jakarta.batch.api.partition.PartitionReducer$PartitionStatus COMMIT -fld public final static jakarta.batch.api.partition.PartitionReducer$PartitionStatus ROLLBACK -meth public static jakarta.batch.api.partition.PartitionReducer$PartitionStatus valueOf(java.lang.String) -meth public static jakarta.batch.api.partition.PartitionReducer$PartitionStatus[] values() -supr java.lang.Enum - -CLSS abstract interface jakarta.batch.api.partition.package-info - -CLSS public jakarta.batch.operations.BatchRuntimeException -cons public () -cons public (java.lang.String) -cons public (java.lang.String,java.lang.Throwable) -cons public (java.lang.Throwable) -supr java.lang.RuntimeException -hfds serialVersionUID - -CLSS public jakarta.batch.operations.JobExecutionAlreadyCompleteException -cons public () -cons public (java.lang.String) -cons public (java.lang.String,java.lang.Throwable) -cons public (java.lang.Throwable) -supr jakarta.batch.operations.BatchRuntimeException -hfds serialVersionUID - -CLSS public jakarta.batch.operations.JobExecutionIsRunningException -cons public () -cons public (java.lang.String) -cons public (java.lang.String,java.lang.Throwable) -cons public (java.lang.Throwable) -supr jakarta.batch.operations.BatchRuntimeException -hfds serialVersionUID - -CLSS public jakarta.batch.operations.JobExecutionNotMostRecentException -cons public () -cons public (java.lang.String) -cons public (java.lang.String,java.lang.Throwable) -cons public (java.lang.Throwable) -supr jakarta.batch.operations.BatchRuntimeException -hfds serialVersionUID - -CLSS public jakarta.batch.operations.JobExecutionNotRunningException -cons public () -cons public (java.lang.String) -cons public (java.lang.String,java.lang.Throwable) -cons public (java.lang.Throwable) -supr jakarta.batch.operations.BatchRuntimeException -hfds serialVersionUID - -CLSS public abstract interface jakarta.batch.operations.JobOperator -meth public abstract int getJobInstanceCount(java.lang.String) -meth public abstract java.util.List getRunningExecutions(java.lang.String) -meth public abstract java.util.List getJobExecutions(jakarta.batch.runtime.JobInstance) -meth public abstract java.util.List getJobInstances(java.lang.String,int,int) -meth public abstract java.util.List getStepExecutions(long) -meth public abstract java.util.Properties getParameters(long) -meth public abstract java.util.Set getJobNames() -meth public abstract jakarta.batch.runtime.JobExecution getJobExecution(long) -meth public abstract jakarta.batch.runtime.JobInstance getJobInstance(long) -meth public abstract long restart(long,java.util.Properties) -meth public abstract long start(java.lang.String,java.util.Properties) -meth public abstract void abandon(long) -meth public abstract void stop(long) - -CLSS public jakarta.batch.operations.JobRestartException -cons public () -cons public (java.lang.String) -cons public (java.lang.String,java.lang.Throwable) -cons public (java.lang.Throwable) -supr jakarta.batch.operations.BatchRuntimeException -hfds serialVersionUID - -CLSS public jakarta.batch.operations.JobSecurityException -cons public () -cons public (java.lang.String) -cons public (java.lang.String,java.lang.Throwable) -cons public (java.lang.Throwable) -supr jakarta.batch.operations.BatchRuntimeException -hfds serialVersionUID - -CLSS public jakarta.batch.operations.JobStartException -cons public () -cons public (java.lang.String) -cons public (java.lang.String,java.lang.Throwable) -cons public (java.lang.Throwable) -supr jakarta.batch.operations.BatchRuntimeException -hfds serialVersionUID - -CLSS public jakarta.batch.operations.NoSuchJobException -cons public () -cons public (java.lang.String) -cons public (java.lang.String,java.lang.Throwable) -cons public (java.lang.Throwable) -supr jakarta.batch.operations.BatchRuntimeException -hfds serialVersionUID - -CLSS public jakarta.batch.operations.NoSuchJobExecutionException -cons public () -cons public (java.lang.String) -cons public (java.lang.String,java.lang.Throwable) -cons public (java.lang.Throwable) -supr jakarta.batch.operations.BatchRuntimeException -hfds serialVersionUID - -CLSS public jakarta.batch.operations.NoSuchJobInstanceException -cons public () -cons public (java.lang.String) -cons public (java.lang.String,java.lang.Throwable) -cons public (java.lang.Throwable) -supr jakarta.batch.operations.BatchRuntimeException -hfds serialVersionUID - -CLSS abstract interface jakarta.batch.operations.package-info - -CLSS public jakarta.batch.runtime.BatchRuntime -cons public () -meth public static jakarta.batch.operations.JobOperator getJobOperator() -supr java.lang.Object -hfds logger,sourceClass - -CLSS public final !enum jakarta.batch.runtime.BatchStatus -fld public final static jakarta.batch.runtime.BatchStatus ABANDONED -fld public final static jakarta.batch.runtime.BatchStatus COMPLETED -fld public final static jakarta.batch.runtime.BatchStatus FAILED -fld public final static jakarta.batch.runtime.BatchStatus STARTED -fld public final static jakarta.batch.runtime.BatchStatus STARTING -fld public final static jakarta.batch.runtime.BatchStatus STOPPED -fld public final static jakarta.batch.runtime.BatchStatus STOPPING -meth public static jakarta.batch.runtime.BatchStatus valueOf(java.lang.String) -meth public static jakarta.batch.runtime.BatchStatus[] values() -supr java.lang.Enum - -CLSS public abstract interface jakarta.batch.runtime.JobExecution -meth public abstract java.lang.String getExitStatus() -meth public abstract java.lang.String getJobName() -meth public abstract java.util.Date getCreateTime() -meth public abstract java.util.Date getEndTime() -meth public abstract java.util.Date getLastUpdatedTime() -meth public abstract java.util.Date getStartTime() -meth public abstract java.util.Properties getJobParameters() -meth public abstract jakarta.batch.runtime.BatchStatus getBatchStatus() -meth public abstract long getExecutionId() - -CLSS public abstract interface jakarta.batch.runtime.JobInstance -meth public abstract java.lang.String getJobName() -meth public abstract long getInstanceId() - -CLSS public abstract interface jakarta.batch.runtime.Metric -innr public final static !enum MetricType -meth public abstract jakarta.batch.runtime.Metric$MetricType getType() -meth public abstract long getValue() - -CLSS public final static !enum jakarta.batch.runtime.Metric$MetricType - outer jakarta.batch.runtime.Metric -fld public final static jakarta.batch.runtime.Metric$MetricType COMMIT_COUNT -fld public final static jakarta.batch.runtime.Metric$MetricType FILTER_COUNT -fld public final static jakarta.batch.runtime.Metric$MetricType PROCESS_SKIP_COUNT -fld public final static jakarta.batch.runtime.Metric$MetricType READ_COUNT -fld public final static jakarta.batch.runtime.Metric$MetricType READ_SKIP_COUNT -fld public final static jakarta.batch.runtime.Metric$MetricType ROLLBACK_COUNT -fld public final static jakarta.batch.runtime.Metric$MetricType WRITE_COUNT -fld public final static jakarta.batch.runtime.Metric$MetricType WRITE_SKIP_COUNT -meth public static jakarta.batch.runtime.Metric$MetricType valueOf(java.lang.String) -meth public static jakarta.batch.runtime.Metric$MetricType[] values() -supr java.lang.Enum - -CLSS public abstract interface jakarta.batch.runtime.StepExecution -meth public abstract java.io.Serializable getPersistentUserData() -meth public abstract java.lang.String getExitStatus() -meth public abstract java.lang.String getStepName() -meth public abstract java.util.Date getEndTime() -meth public abstract java.util.Date getStartTime() -meth public abstract jakarta.batch.runtime.BatchStatus getBatchStatus() -meth public abstract jakarta.batch.runtime.Metric[] getMetrics() -meth public abstract long getStepExecutionId() - -CLSS public abstract interface jakarta.batch.runtime.context.JobContext -meth public abstract java.lang.Object getTransientUserData() -meth public abstract java.lang.String getExitStatus() -meth public abstract java.lang.String getJobName() -meth public abstract java.util.Properties getProperties() -meth public abstract jakarta.batch.runtime.BatchStatus getBatchStatus() -meth public abstract long getExecutionId() -meth public abstract long getInstanceId() -meth public abstract void setExitStatus(java.lang.String) -meth public abstract void setTransientUserData(java.lang.Object) - -CLSS public abstract interface jakarta.batch.runtime.context.StepContext -meth public abstract java.io.Serializable getPersistentUserData() -meth public abstract java.lang.Exception getException() -meth public abstract java.lang.Object getTransientUserData() -meth public abstract java.lang.String getExitStatus() -meth public abstract java.lang.String getStepName() -meth public abstract java.util.Properties getProperties() -meth public abstract jakarta.batch.runtime.BatchStatus getBatchStatus() -meth public abstract jakarta.batch.runtime.Metric[] getMetrics() -meth public abstract long getStepExecutionId() -meth public abstract void setExitStatus(java.lang.String) -meth public abstract void setPersistentUserData(java.io.Serializable) -meth public abstract void setTransientUserData(java.lang.Object) - -CLSS abstract interface jakarta.batch.runtime.context.package-info - -CLSS abstract interface jakarta.batch.runtime.package-info - -CLSS public abstract interface !annotation javax.inject.Qualifier - anno 0 java.lang.annotation.Documented() - anno 0 java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy value=RUNTIME) - anno 0 java.lang.annotation.Target(java.lang.annotation.ElementType[] value=[ANNOTATION_TYPE]) -intf java.lang.annotation.Annotation - diff --git a/spring-batch-jsr352-tck/jsr352-tck-1.0/artifacts/jsr352-api-sigtest-java7.sig b/spring-batch-jsr352-tck/jsr352-tck-1.0/artifacts/jsr352-api-sigtest-java7.sig deleted file mode 100644 index 763f5b10b..000000000 --- a/spring-batch-jsr352-tck/jsr352-tck-1.0/artifacts/jsr352-api-sigtest-java7.sig +++ /dev/null @@ -1,545 +0,0 @@ -#Signature file v4.1 -#Version - -CLSS public abstract interface java.io.Serializable - -CLSS public abstract interface java.lang.Comparable<%0 extends java.lang.Object> -meth public abstract int compareTo({java.lang.Comparable%0}) - -CLSS public abstract java.lang.Enum<%0 extends java.lang.Enum<{java.lang.Enum%0}>> -cons protected (java.lang.String,int) -intf java.io.Serializable -intf java.lang.Comparable<{java.lang.Enum%0}> -meth protected final java.lang.Object clone() throws java.lang.CloneNotSupportedException -meth protected final void finalize() -meth public final boolean equals(java.lang.Object) -meth public final int compareTo({java.lang.Enum%0}) -meth public final int hashCode() -meth public final int ordinal() -meth public final java.lang.Class<{java.lang.Enum%0}> getDeclaringClass() -meth public final java.lang.String name() -meth public java.lang.String toString() -meth public static <%0 extends java.lang.Enum<{%%0}>> {%%0} valueOf(java.lang.Class<{%%0}>,java.lang.String) -supr java.lang.Object -hfds name,ordinal - -CLSS public java.lang.Exception -cons protected (java.lang.String,java.lang.Throwable,boolean,boolean) -cons public () -cons public (java.lang.String) -cons public (java.lang.String,java.lang.Throwable) -cons public (java.lang.Throwable) -supr java.lang.Throwable -hfds serialVersionUID - -CLSS public java.lang.Object -cons public () -meth protected java.lang.Object clone() throws java.lang.CloneNotSupportedException -meth protected void finalize() throws java.lang.Throwable -meth public boolean equals(java.lang.Object) -meth public final java.lang.Class getClass() -meth public final void notify() -meth public final void notifyAll() -meth public final void wait() throws java.lang.InterruptedException -meth public final void wait(long) throws java.lang.InterruptedException -meth public final void wait(long,int) throws java.lang.InterruptedException -meth public int hashCode() -meth public java.lang.String toString() - -CLSS public java.lang.RuntimeException -cons protected (java.lang.String,java.lang.Throwable,boolean,boolean) -cons public () -cons public (java.lang.String) -cons public (java.lang.String,java.lang.Throwable) -cons public (java.lang.Throwable) -supr java.lang.Exception -hfds serialVersionUID - -CLSS public java.lang.Throwable -cons protected (java.lang.String,java.lang.Throwable,boolean,boolean) -cons public () -cons public (java.lang.String) -cons public (java.lang.String,java.lang.Throwable) -cons public (java.lang.Throwable) -intf java.io.Serializable -meth public final java.lang.Throwable[] getSuppressed() -meth public final void addSuppressed(java.lang.Throwable) -meth public java.lang.StackTraceElement[] getStackTrace() -meth public java.lang.String getLocalizedMessage() -meth public java.lang.String getMessage() -meth public java.lang.String toString() -meth public java.lang.Throwable fillInStackTrace() -meth public java.lang.Throwable getCause() -meth public java.lang.Throwable initCause(java.lang.Throwable) -meth public void printStackTrace() -meth public void printStackTrace(java.io.PrintStream) -meth public void printStackTrace(java.io.PrintWriter) -meth public void setStackTrace(java.lang.StackTraceElement[]) -supr java.lang.Object -hfds CAUSE_CAPTION,EMPTY_THROWABLE_ARRAY,NULL_CAUSE_MESSAGE,SELF_SUPPRESSION_MESSAGE,SUPPRESSED_CAPTION,SUPPRESSED_SENTINEL,UNASSIGNED_STACK,backtrace,cause,detailMessage,serialVersionUID,stackTrace,suppressedExceptions -hcls PrintStreamOrWriter,SentinelHolder,WrappedPrintStream,WrappedPrintWriter - -CLSS public abstract interface java.lang.annotation.Annotation -meth public abstract boolean equals(java.lang.Object) -meth public abstract int hashCode() -meth public abstract java.lang.Class annotationType() -meth public abstract java.lang.String toString() - -CLSS public abstract interface !annotation java.lang.annotation.Documented - anno 0 java.lang.annotation.Documented() - anno 0 java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy value=RUNTIME) - anno 0 java.lang.annotation.Target(java.lang.annotation.ElementType[] value=[ANNOTATION_TYPE]) -intf java.lang.annotation.Annotation - -CLSS public abstract interface !annotation java.lang.annotation.Retention - anno 0 java.lang.annotation.Documented() - anno 0 java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy value=RUNTIME) - anno 0 java.lang.annotation.Target(java.lang.annotation.ElementType[] value=[ANNOTATION_TYPE]) -intf java.lang.annotation.Annotation -meth public abstract java.lang.annotation.RetentionPolicy value() - -CLSS public abstract interface !annotation java.lang.annotation.Target - anno 0 java.lang.annotation.Documented() - anno 0 java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy value=RUNTIME) - anno 0 java.lang.annotation.Target(java.lang.annotation.ElementType[] value=[ANNOTATION_TYPE]) -intf java.lang.annotation.Annotation -meth public abstract java.lang.annotation.ElementType[] value() - -CLSS public abstract jakarta.batch.api.AbstractBatchlet -cons public () -intf jakarta.batch.api.Batchlet -meth public abstract java.lang.String process() throws java.lang.Exception -meth public void stop() throws java.lang.Exception -supr java.lang.Object - -CLSS public abstract interface !annotation jakarta.batch.api.BatchProperty - anno 0 java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy value=RUNTIME) - anno 0 java.lang.annotation.Target(java.lang.annotation.ElementType[] value=[FIELD, METHOD, PARAMETER]) - anno 0 javax.inject.Qualifier() -intf java.lang.annotation.Annotation -meth public abstract !hasdefault java.lang.String name() - -CLSS public abstract interface jakarta.batch.api.Batchlet -meth public abstract java.lang.String process() throws java.lang.Exception -meth public abstract void stop() throws java.lang.Exception - -CLSS public abstract interface jakarta.batch.api.Decider -meth public abstract java.lang.String decide(jakarta.batch.runtime.StepExecution[]) throws java.lang.Exception - -CLSS public abstract jakarta.batch.api.chunk.AbstractCheckpointAlgorithm -cons public () -intf jakarta.batch.api.chunk.CheckpointAlgorithm -meth public abstract boolean isReadyToCheckpoint() throws java.lang.Exception -meth public int checkpointTimeout() throws java.lang.Exception -meth public void beginCheckpoint() throws java.lang.Exception -meth public void endCheckpoint() throws java.lang.Exception -supr java.lang.Object - -CLSS public abstract jakarta.batch.api.chunk.AbstractItemReader -cons public () -intf jakarta.batch.api.chunk.ItemReader -meth public abstract java.lang.Object readItem() throws java.lang.Exception -meth public java.io.Serializable checkpointInfo() throws java.lang.Exception -meth public void close() throws java.lang.Exception -meth public void open(java.io.Serializable) throws java.lang.Exception -supr java.lang.Object - -CLSS public abstract jakarta.batch.api.chunk.AbstractItemWriter -cons public () -intf jakarta.batch.api.chunk.ItemWriter -meth public abstract void writeItems(java.util.List) throws java.lang.Exception -meth public java.io.Serializable checkpointInfo() throws java.lang.Exception -meth public void close() throws java.lang.Exception -meth public void open(java.io.Serializable) throws java.lang.Exception -supr java.lang.Object - -CLSS public abstract interface jakarta.batch.api.chunk.CheckpointAlgorithm -meth public abstract boolean isReadyToCheckpoint() throws java.lang.Exception -meth public abstract int checkpointTimeout() throws java.lang.Exception -meth public abstract void beginCheckpoint() throws java.lang.Exception -meth public abstract void endCheckpoint() throws java.lang.Exception - -CLSS public abstract interface jakarta.batch.api.chunk.ItemProcessor -meth public abstract java.lang.Object processItem(java.lang.Object) throws java.lang.Exception - -CLSS public abstract interface jakarta.batch.api.chunk.ItemReader -meth public abstract java.io.Serializable checkpointInfo() throws java.lang.Exception -meth public abstract java.lang.Object readItem() throws java.lang.Exception -meth public abstract void close() throws java.lang.Exception -meth public abstract void open(java.io.Serializable) throws java.lang.Exception - -CLSS public abstract interface jakarta.batch.api.chunk.ItemWriter -meth public abstract java.io.Serializable checkpointInfo() throws java.lang.Exception -meth public abstract void close() throws java.lang.Exception -meth public abstract void open(java.io.Serializable) throws java.lang.Exception -meth public abstract void writeItems(java.util.List) throws java.lang.Exception - -CLSS public abstract jakarta.batch.api.chunk.listener.AbstractChunkListener -cons public () -intf jakarta.batch.api.chunk.listener.ChunkListener -meth public void afterChunk() throws java.lang.Exception -meth public void beforeChunk() throws java.lang.Exception -meth public void onError(java.lang.Exception) throws java.lang.Exception -supr java.lang.Object - -CLSS public abstract jakarta.batch.api.chunk.listener.AbstractItemProcessListener -cons public () -intf jakarta.batch.api.chunk.listener.ItemProcessListener -meth public void afterProcess(java.lang.Object,java.lang.Object) throws java.lang.Exception -meth public void beforeProcess(java.lang.Object) throws java.lang.Exception -meth public void onProcessError(java.lang.Object,java.lang.Exception) throws java.lang.Exception -supr java.lang.Object - -CLSS public abstract jakarta.batch.api.chunk.listener.AbstractItemReadListener -cons public () -intf jakarta.batch.api.chunk.listener.ItemReadListener -meth public void afterRead(java.lang.Object) throws java.lang.Exception -meth public void beforeRead() throws java.lang.Exception -meth public void onReadError(java.lang.Exception) throws java.lang.Exception -supr java.lang.Object - -CLSS public abstract jakarta.batch.api.chunk.listener.AbstractItemWriteListener -cons public () -intf jakarta.batch.api.chunk.listener.ItemWriteListener -meth public void afterWrite(java.util.List) throws java.lang.Exception -meth public void beforeWrite(java.util.List) throws java.lang.Exception -meth public void onWriteError(java.util.List,java.lang.Exception) throws java.lang.Exception -supr java.lang.Object - -CLSS public abstract interface jakarta.batch.api.chunk.listener.ChunkListener -meth public abstract void afterChunk() throws java.lang.Exception -meth public abstract void beforeChunk() throws java.lang.Exception -meth public abstract void onError(java.lang.Exception) throws java.lang.Exception - -CLSS public abstract interface jakarta.batch.api.chunk.listener.ItemProcessListener -meth public abstract void afterProcess(java.lang.Object,java.lang.Object) throws java.lang.Exception -meth public abstract void beforeProcess(java.lang.Object) throws java.lang.Exception -meth public abstract void onProcessError(java.lang.Object,java.lang.Exception) throws java.lang.Exception - -CLSS public abstract interface jakarta.batch.api.chunk.listener.ItemReadListener -meth public abstract void afterRead(java.lang.Object) throws java.lang.Exception -meth public abstract void beforeRead() throws java.lang.Exception -meth public abstract void onReadError(java.lang.Exception) throws java.lang.Exception - -CLSS public abstract interface jakarta.batch.api.chunk.listener.ItemWriteListener -meth public abstract void afterWrite(java.util.List) throws java.lang.Exception -meth public abstract void beforeWrite(java.util.List) throws java.lang.Exception -meth public abstract void onWriteError(java.util.List,java.lang.Exception) throws java.lang.Exception - -CLSS public abstract interface jakarta.batch.api.chunk.listener.RetryProcessListener -meth public abstract void onRetryProcessException(java.lang.Object,java.lang.Exception) throws java.lang.Exception - -CLSS public abstract interface jakarta.batch.api.chunk.listener.RetryReadListener -meth public abstract void onRetryReadException(java.lang.Exception) throws java.lang.Exception - -CLSS public abstract interface jakarta.batch.api.chunk.listener.RetryWriteListener -meth public abstract void onRetryWriteException(java.util.List,java.lang.Exception) throws java.lang.Exception - -CLSS public abstract interface jakarta.batch.api.chunk.listener.SkipProcessListener -meth public abstract void onSkipProcessItem(java.lang.Object,java.lang.Exception) throws java.lang.Exception - -CLSS public abstract interface jakarta.batch.api.chunk.listener.SkipReadListener -meth public abstract void onSkipReadItem(java.lang.Exception) throws java.lang.Exception - -CLSS public abstract interface jakarta.batch.api.chunk.listener.SkipWriteListener -meth public abstract void onSkipWriteItem(java.util.List,java.lang.Exception) throws java.lang.Exception - -CLSS abstract interface jakarta.batch.api.chunk.listener.package-info - -CLSS abstract interface jakarta.batch.api.chunk.package-info - -CLSS public abstract jakarta.batch.api.listener.AbstractJobListener -cons public () -intf jakarta.batch.api.listener.JobListener -meth public void afterJob() throws java.lang.Exception -meth public void beforeJob() throws java.lang.Exception -supr java.lang.Object - -CLSS public abstract jakarta.batch.api.listener.AbstractStepListener -cons public () -intf jakarta.batch.api.listener.StepListener -meth public void afterStep() throws java.lang.Exception -meth public void beforeStep() throws java.lang.Exception -supr java.lang.Object - -CLSS public abstract interface jakarta.batch.api.listener.JobListener -meth public abstract void afterJob() throws java.lang.Exception -meth public abstract void beforeJob() throws java.lang.Exception - -CLSS public abstract interface jakarta.batch.api.listener.StepListener -meth public abstract void afterStep() throws java.lang.Exception -meth public abstract void beforeStep() throws java.lang.Exception - -CLSS abstract interface jakarta.batch.api.listener.package-info - -CLSS abstract interface jakarta.batch.api.package-info - -CLSS public abstract jakarta.batch.api.partition.AbstractPartitionAnalyzer -cons public () -intf jakarta.batch.api.partition.PartitionAnalyzer -meth public void analyzeCollectorData(java.io.Serializable) throws java.lang.Exception -meth public void analyzeStatus(jakarta.batch.runtime.BatchStatus,java.lang.String) throws java.lang.Exception -supr java.lang.Object - -CLSS public abstract jakarta.batch.api.partition.AbstractPartitionReducer -cons public () -intf jakarta.batch.api.partition.PartitionReducer -meth public void afterPartitionedStepCompletion(jakarta.batch.api.partition.PartitionReducer$PartitionStatus) throws java.lang.Exception -meth public void beforePartitionedStepCompletion() throws java.lang.Exception -meth public void beginPartitionedStep() throws java.lang.Exception -meth public void rollbackPartitionedStep() throws java.lang.Exception -supr java.lang.Object - -CLSS public abstract interface jakarta.batch.api.partition.PartitionAnalyzer -meth public abstract void analyzeCollectorData(java.io.Serializable) throws java.lang.Exception -meth public abstract void analyzeStatus(jakarta.batch.runtime.BatchStatus,java.lang.String) throws java.lang.Exception - -CLSS public abstract interface jakarta.batch.api.partition.PartitionCollector -meth public abstract java.io.Serializable collectPartitionData() throws java.lang.Exception - -CLSS public abstract interface jakarta.batch.api.partition.PartitionMapper -meth public abstract jakarta.batch.api.partition.PartitionPlan mapPartitions() throws java.lang.Exception - -CLSS public abstract interface jakarta.batch.api.partition.PartitionPlan -meth public abstract boolean getPartitionsOverride() -meth public abstract int getPartitions() -meth public abstract int getThreads() -meth public abstract java.util.Properties[] getPartitionProperties() -meth public abstract void setPartitionProperties(java.util.Properties[]) -meth public abstract void setPartitions(int) -meth public abstract void setPartitionsOverride(boolean) -meth public abstract void setThreads(int) - -CLSS public jakarta.batch.api.partition.PartitionPlanImpl -cons public () -intf jakarta.batch.api.partition.PartitionPlan -meth public boolean getPartitionsOverride() -meth public int getPartitions() -meth public int getThreads() -meth public java.util.Properties[] getPartitionProperties() -meth public void setPartitionProperties(java.util.Properties[]) -meth public void setPartitions(int) -meth public void setPartitionsOverride(boolean) -meth public void setThreads(int) -supr java.lang.Object -hfds override,partitionProperties,partitions,threads - -CLSS public abstract interface jakarta.batch.api.partition.PartitionReducer -innr public final static !enum PartitionStatus -meth public abstract void afterPartitionedStepCompletion(jakarta.batch.api.partition.PartitionReducer$PartitionStatus) throws java.lang.Exception -meth public abstract void beforePartitionedStepCompletion() throws java.lang.Exception -meth public abstract void beginPartitionedStep() throws java.lang.Exception -meth public abstract void rollbackPartitionedStep() throws java.lang.Exception - -CLSS public final static !enum jakarta.batch.api.partition.PartitionReducer$PartitionStatus - outer jakarta.batch.api.partition.PartitionReducer -fld public final static jakarta.batch.api.partition.PartitionReducer$PartitionStatus COMMIT -fld public final static jakarta.batch.api.partition.PartitionReducer$PartitionStatus ROLLBACK -meth public static jakarta.batch.api.partition.PartitionReducer$PartitionStatus valueOf(java.lang.String) -meth public static jakarta.batch.api.partition.PartitionReducer$PartitionStatus[] values() -supr java.lang.Enum - -CLSS abstract interface jakarta.batch.api.partition.package-info - -CLSS public jakarta.batch.operations.BatchRuntimeException -cons public () -cons public (java.lang.String) -cons public (java.lang.String,java.lang.Throwable) -cons public (java.lang.Throwable) -supr java.lang.RuntimeException -hfds serialVersionUID - -CLSS public jakarta.batch.operations.JobExecutionAlreadyCompleteException -cons public () -cons public (java.lang.String) -cons public (java.lang.String,java.lang.Throwable) -cons public (java.lang.Throwable) -supr jakarta.batch.operations.BatchRuntimeException -hfds serialVersionUID - -CLSS public jakarta.batch.operations.JobExecutionIsRunningException -cons public () -cons public (java.lang.String) -cons public (java.lang.String,java.lang.Throwable) -cons public (java.lang.Throwable) -supr jakarta.batch.operations.BatchRuntimeException -hfds serialVersionUID - -CLSS public jakarta.batch.operations.JobExecutionNotMostRecentException -cons public () -cons public (java.lang.String) -cons public (java.lang.String,java.lang.Throwable) -cons public (java.lang.Throwable) -supr jakarta.batch.operations.BatchRuntimeException -hfds serialVersionUID - -CLSS public jakarta.batch.operations.JobExecutionNotRunningException -cons public () -cons public (java.lang.String) -cons public (java.lang.String,java.lang.Throwable) -cons public (java.lang.Throwable) -supr jakarta.batch.operations.BatchRuntimeException -hfds serialVersionUID - -CLSS public abstract interface jakarta.batch.operations.JobOperator -meth public abstract int getJobInstanceCount(java.lang.String) -meth public abstract java.util.List getRunningExecutions(java.lang.String) -meth public abstract java.util.List getJobExecutions(jakarta.batch.runtime.JobInstance) -meth public abstract java.util.List getJobInstances(java.lang.String,int,int) -meth public abstract java.util.List getStepExecutions(long) -meth public abstract java.util.Properties getParameters(long) -meth public abstract java.util.Set getJobNames() -meth public abstract jakarta.batch.runtime.JobExecution getJobExecution(long) -meth public abstract jakarta.batch.runtime.JobInstance getJobInstance(long) -meth public abstract long restart(long,java.util.Properties) -meth public abstract long start(java.lang.String,java.util.Properties) -meth public abstract void abandon(long) -meth public abstract void stop(long) - -CLSS public jakarta.batch.operations.JobRestartException -cons public () -cons public (java.lang.String) -cons public (java.lang.String,java.lang.Throwable) -cons public (java.lang.Throwable) -supr jakarta.batch.operations.BatchRuntimeException -hfds serialVersionUID - -CLSS public jakarta.batch.operations.JobSecurityException -cons public () -cons public (java.lang.String) -cons public (java.lang.String,java.lang.Throwable) -cons public (java.lang.Throwable) -supr jakarta.batch.operations.BatchRuntimeException -hfds serialVersionUID - -CLSS public jakarta.batch.operations.JobStartException -cons public () -cons public (java.lang.String) -cons public (java.lang.String,java.lang.Throwable) -cons public (java.lang.Throwable) -supr jakarta.batch.operations.BatchRuntimeException -hfds serialVersionUID - -CLSS public jakarta.batch.operations.NoSuchJobException -cons public () -cons public (java.lang.String) -cons public (java.lang.String,java.lang.Throwable) -cons public (java.lang.Throwable) -supr jakarta.batch.operations.BatchRuntimeException -hfds serialVersionUID - -CLSS public jakarta.batch.operations.NoSuchJobExecutionException -cons public () -cons public (java.lang.String) -cons public (java.lang.String,java.lang.Throwable) -cons public (java.lang.Throwable) -supr jakarta.batch.operations.BatchRuntimeException -hfds serialVersionUID - -CLSS public jakarta.batch.operations.NoSuchJobInstanceException -cons public () -cons public (java.lang.String) -cons public (java.lang.String,java.lang.Throwable) -cons public (java.lang.Throwable) -supr jakarta.batch.operations.BatchRuntimeException -hfds serialVersionUID - -CLSS abstract interface jakarta.batch.operations.package-info - -CLSS public jakarta.batch.runtime.BatchRuntime -cons public () -meth public static jakarta.batch.operations.JobOperator getJobOperator() -supr java.lang.Object -hfds logger,sourceClass - -CLSS public final !enum jakarta.batch.runtime.BatchStatus -fld public final static jakarta.batch.runtime.BatchStatus ABANDONED -fld public final static jakarta.batch.runtime.BatchStatus COMPLETED -fld public final static jakarta.batch.runtime.BatchStatus FAILED -fld public final static jakarta.batch.runtime.BatchStatus STARTED -fld public final static jakarta.batch.runtime.BatchStatus STARTING -fld public final static jakarta.batch.runtime.BatchStatus STOPPED -fld public final static jakarta.batch.runtime.BatchStatus STOPPING -meth public static jakarta.batch.runtime.BatchStatus valueOf(java.lang.String) -meth public static jakarta.batch.runtime.BatchStatus[] values() -supr java.lang.Enum - -CLSS public abstract interface jakarta.batch.runtime.JobExecution -meth public abstract java.lang.String getExitStatus() -meth public abstract java.lang.String getJobName() -meth public abstract java.util.Date getCreateTime() -meth public abstract java.util.Date getEndTime() -meth public abstract java.util.Date getLastUpdatedTime() -meth public abstract java.util.Date getStartTime() -meth public abstract java.util.Properties getJobParameters() -meth public abstract jakarta.batch.runtime.BatchStatus getBatchStatus() -meth public abstract long getExecutionId() - -CLSS public abstract interface jakarta.batch.runtime.JobInstance -meth public abstract java.lang.String getJobName() -meth public abstract long getInstanceId() - -CLSS public abstract interface jakarta.batch.runtime.Metric -innr public final static !enum MetricType -meth public abstract jakarta.batch.runtime.Metric$MetricType getType() -meth public abstract long getValue() - -CLSS public final static !enum jakarta.batch.runtime.Metric$MetricType - outer jakarta.batch.runtime.Metric -fld public final static jakarta.batch.runtime.Metric$MetricType COMMIT_COUNT -fld public final static jakarta.batch.runtime.Metric$MetricType FILTER_COUNT -fld public final static jakarta.batch.runtime.Metric$MetricType PROCESS_SKIP_COUNT -fld public final static jakarta.batch.runtime.Metric$MetricType READ_COUNT -fld public final static jakarta.batch.runtime.Metric$MetricType READ_SKIP_COUNT -fld public final static jakarta.batch.runtime.Metric$MetricType ROLLBACK_COUNT -fld public final static jakarta.batch.runtime.Metric$MetricType WRITE_COUNT -fld public final static jakarta.batch.runtime.Metric$MetricType WRITE_SKIP_COUNT -meth public static jakarta.batch.runtime.Metric$MetricType valueOf(java.lang.String) -meth public static jakarta.batch.runtime.Metric$MetricType[] values() -supr java.lang.Enum - -CLSS public abstract interface jakarta.batch.runtime.StepExecution -meth public abstract java.io.Serializable getPersistentUserData() -meth public abstract java.lang.String getExitStatus() -meth public abstract java.lang.String getStepName() -meth public abstract java.util.Date getEndTime() -meth public abstract java.util.Date getStartTime() -meth public abstract jakarta.batch.runtime.BatchStatus getBatchStatus() -meth public abstract jakarta.batch.runtime.Metric[] getMetrics() -meth public abstract long getStepExecutionId() - -CLSS public abstract interface jakarta.batch.runtime.context.JobContext -meth public abstract java.lang.Object getTransientUserData() -meth public abstract java.lang.String getExitStatus() -meth public abstract java.lang.String getJobName() -meth public abstract java.util.Properties getProperties() -meth public abstract jakarta.batch.runtime.BatchStatus getBatchStatus() -meth public abstract long getExecutionId() -meth public abstract long getInstanceId() -meth public abstract void setExitStatus(java.lang.String) -meth public abstract void setTransientUserData(java.lang.Object) - -CLSS public abstract interface jakarta.batch.runtime.context.StepContext -meth public abstract java.io.Serializable getPersistentUserData() -meth public abstract java.lang.Exception getException() -meth public abstract java.lang.Object getTransientUserData() -meth public abstract java.lang.String getExitStatus() -meth public abstract java.lang.String getStepName() -meth public abstract java.util.Properties getProperties() -meth public abstract jakarta.batch.runtime.BatchStatus getBatchStatus() -meth public abstract jakarta.batch.runtime.Metric[] getMetrics() -meth public abstract long getStepExecutionId() -meth public abstract void setExitStatus(java.lang.String) -meth public abstract void setPersistentUserData(java.io.Serializable) -meth public abstract void setTransientUserData(java.lang.Object) - -CLSS abstract interface jakarta.batch.runtime.context.package-info - -CLSS abstract interface jakarta.batch.runtime.package-info - -CLSS public abstract interface !annotation javax.inject.Qualifier - anno 0 java.lang.annotation.Documented() - anno 0 java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy value=RUNTIME) - anno 0 java.lang.annotation.Target(java.lang.annotation.ElementType[] value=[ANNOTATION_TYPE]) -intf java.lang.annotation.Annotation - diff --git a/spring-batch-jsr352-tck/jsr352-tck-1.0/artifacts/jsr352-tck-SPI-javadoc.jar b/spring-batch-jsr352-tck/jsr352-tck-1.0/artifacts/jsr352-tck-SPI-javadoc.jar deleted file mode 100644 index deec681e771c5c270265024731799b0eac3df277..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 39132 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 K)qy^b1M>i1lN}!b diff --git a/spring-batch-jsr352-tck/jsr352-tck-1.0/artifacts/jsr352-tck-impl-javadoc.jar b/spring-batch-jsr352-tck/jsr352-tck-1.0/artifacts/jsr352-tck-impl-javadoc.jar deleted file mode 100644 index 128ca6a9ab674a78d4db371a63aae8a62b667b6c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 510894 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�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�iQdvfyW@e+9h5QKq>x`KUTEXh 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%0DtnGbBoZ(n#G3x3g2mvGfKB;hxNj&xfV=$YUA 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%0Dlh+si>)!0R~@vM-1ATQ~1gk6+%~0^ZxI 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

    GejZ35a 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 c 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

    R=r5Bb=p+YUd4k{-D=Y_-$ez|f=MIZ;&uWtn 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 - - - - - - - - diff --git a/spring-batch-jsr352-tck/jsr352-tck-1.0/artifacts/jsr352-tck-impl.jar b/spring-batch-jsr352-tck/jsr352-tck-1.0/artifacts/jsr352-tck-impl.jar deleted file mode 100644 index be3603b4a9b3515e95ccf4e6f8d019493820d7d8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 394314 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

    IGbl^NKK(rpdBiJuNh%G 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%0D4(9|(ins65a}Yr`y)L7< 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 diff --git a/spring-batch-jsr352-tck/jsr352-tck-1.0/build.xml b/spring-batch-jsr352-tck/jsr352-tck-1.0/build.xml deleted file mode 100644 index 50e3913c5..000000000 --- a/spring-batch-jsr352-tck/jsr352-tck-1.0/build.xml +++ /dev/null @@ -1,92 +0,0 @@ - - - - - - JSR 352 TCK - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/spring-batch-jsr352-tck/jsr352-tck-1.0/doc/jsr352-tck-reference-guide.pdf b/spring-batch-jsr352-tck/jsr352-tck-1.0/doc/jsr352-tck-reference-guide.pdf deleted file mode 100644 index a818d51261727d69d3717c0e17e5a3843a988ab1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 192470 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%0D~d3o1sd3h9#8 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

    ;Ejg&H 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 }@HL0C$#kHfb$AOeTa&0rWo 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

    qgX*7;bf(3Bk%9lRH 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 z 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 diff --git a/spring-batch-jsr352-tck/jsr352-tck-1.0/jsr352-tck.properties b/spring-batch-jsr352-tck/jsr352-tck-1.0/jsr352-tck.properties deleted file mode 100644 index 9a835beee..000000000 --- a/spring-batch-jsr352-tck/jsr352-tck-1.0/jsr352-tck.properties +++ /dev/null @@ -1,53 +0,0 @@ -# -# Edit this property to contain a classpath listing of the directories and jars for the SE JSR 352 runtime implementation (that you're running the TCK against) -# For example: batch.impl.classes=$HOME/foo/lib/classes:$HOME/foo/lib/foo.jar:$HOME/foo/lib/batch-api.jar -# -# Another example, for the RI root dir in the same parent directory as the TCK root dir, one could use: -#batch.impl.classes=../jsr352-ri-1.0/jakarta.batch.api.jar:../jsr352-ri-1.0/jsr352-SE-RI-runtime.jar:../jsr352-ri-1.0/jsr352-RI-spi.jar:../jsr352-ri-1.0/derby.jar -batch.impl.classes= - -# Add JVM options to pass to TestNG here. JVM arguments should be separated by spaces, as this will provided to the TestNG invocation -# using the function -jvm.options= - -###################################### -# Sleep timer values for TCK tests -###################################### - -# Test Class: ExecutionTests -ExecutionTests.testInvokeJobWithUserStop.sleep=1000 - -# Test Class: JobOperatorTests -JobOperatorTests.testInvokeJobWithUserStop.sleep=1000 -JobOperatorTests.testJobOperatorGetRunningJobExecutions.sleep=1000 -JobOperatorTests.testJobOperatorGetRunningJobExecutions.app.timeinterval=10000 -JobOperatorTests.testJobOperatorGetRunningJobInstancesException.app.timeinterval=10000 -JobOperatorTests.testJobOperatorTestAbandonActiveRestart.sleep=5000 -JobOperatorTests.testJobOperatorTestRestartAlreadAbandonedJob.sleep=1 - - -#Test Class: ParallelExecutionTests -ParallelExecutionTests.testStopRunningPartitionedStep.sleep=1900 -ParallelExecutionTests.testStopRestartRunningPartitionedStep.sleep=1900 -ParallelExecutionTests.testInvokeJobWithOnePartitionedStepExitStatus.sleep=2000 - -#Test Class: StopOrFailOnExitStatusWithRestartTests -StopOrFailOnExitStatusWithRestartTests.testInvokeJobWithUserStop.sleep=500 - -#Test Class: TransactionTests -TransactionTests.testGlobalTranNoExceptions.sleep=0 -TransactionTests.testGlobalTranForcedExceptionWithRollback.sleep=0 -TransactionTests.testGlobalTranForcedExceptionCheckpointRestart.sleep=0 -TransactionTests.testGlobalTranNoDelayLongTimeout.sleep=0 -TransactionTests.testGlobalTranLongDelayShortTimeoutThenNoDelayShortTimeout.sleep.1=10000 -TransactionTests.testGlobalTranLongDelayShortTimeoutThenNoDelayShortTimeout.sleep.2=0 -TransactionTests.testGlobalTranLongDelayMixOfLongTimeoutStepsAndShortTimeoutSteps.sleep=10000 -TransactionTests.testGlobalTranLongDelayMixOfLongTimeoutStepsAndShortTimeoutStepsCustomCheckpointAlgorithm.sleep=10000 -TransactionTests.testGlobalTranForcedTimeoutCheckpointRestart.sleep.1=10000 -TransactionTests.testGlobalTranForcedTimeoutCheckpointRestart.sleep.2=0 - -#Test Class: ChunkTests -ChunkTests.testChunkTimeBased10Seconds.sleep=500 -ChunkTests.testChunkRestartTimeBasedCheckpoint.sleep=500 -ChunkTests.testChunkTimeBasedTimeLimit0.sleep=500 -ChunkTests.testChunkRestartTimeBasedDefaultCheckpoint.sleep=500 \ No newline at end of file diff --git a/spring-batch-jsr352-tck/jsr352-tck-1.0/lib/javax.inject.jar b/spring-batch-jsr352-tck/jsr352-tck-1.0/lib/javax.inject.jar deleted file mode 100644 index 1ff61ceecf0d3c8c7f6bc4f0c4455f9df05e71c2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2497 zcmaJ@3pAAZ8=e__BdVQ6VP}XaB-E(f4h^HJHQ31z*|r+vIxZuZImxBPAVjlh&B&B% zV#KUAXN?|$-hJ)6-86O|F}b! z=tBq$jG?vLLJrHt{9vviaTWLS;i2_|r(POfnr^LwX@HxzN5dW6YE<{-qqESX&(Hk> zGE1A=Ez@W1l6w0XFJifp{rdQw3m|3xnc;k z6V7s9Ec%sHJpPparxgoXA@^{~sF~Ys9k${)E6b+S!sYH2=XDs(J)lb;X>aLuHPwh^ zt*L}08^4b*`EGmas_k$4Hf)6Y;&==8t^>!tEAeEs`V{n`t+>!oucq>(` zC$oo%c+;{%C1z%U-$QU%sASbq6T_Wg5U8GiZ%wL#D5@e4zNm6(W~n5N}oO-l|G$S?v+{SKe>%w-(a$b2z14<5Z>g1_d0k; zCR8;;)mgQl+H9@ZNnNX0cvP5C*sEz04=w4U1f1{;zTeIaFs?RL)+QssR8QK!d*8x+ zEx%iGXwFTH$?#9RJQ>tn%IQHj+^kVY=xWq7_1hW+&!swIZXA_I@)o)NOS$o(Artx! zl26uW7Q4$(EKaGP;_VqdY+xKNf5`g$YG?H_m-@du%wG#&84kDNhI3Gc=lj^4QuKU! zhSN_G)?if>y8P(ViG3DY_pwe5z}`7%lyAaonStF0FHT)th6{KEYmxLId=7KI$|GEq zM_d4z;^pcV@QF&3B{J6x0017(SQ8ZfA+NY+ zRK^ z#6{ErMMX<<`+pH%}&E~eAoyOMPEoTP5vL=HCE z+YziSN3t8yye7?P_GTcNX+d^VEcProOmi+dks|9q)bVqDps#z`Q+^{A}8)bqz znKegCKY^+4r=b=e+hc0I59k(<3dL=^yNykAHGc0RqJODk<865qRe$3}YtJ+$m83(p z+a(*og)HSG_r;yJ4-7}^m)n+%HTr8Oj96jtqJd_^5Hon)XGdOGVz#cBrr2UJ#bl|(J6 zcYR>8cetXh7VP~<4@NaT^4s4RsA7nmZJ(NMPZOIV#urN2SH<$5ro$7-{%&8I?(-l! zjcD3KV@gMJE{-==vA(aPio3Ts*<6>#H^c4hoFPhkOULS=v)R|H54!5d+w>0%EHG2Y zB0hvgfFGhwEc7k3>)EK0zizfgDOYB9$@!UA>sOtD$cK3Se*0O)`SJMdMrYnlZbyl@ zZd_!1Qu#BdwQXhgZCWd#k*m&(6ftrU`*F6>Sv>=3mxqizul=${E!_qy$QkK#4g&%6 zQ*Yq6I3HAq9zkVUorfkqiQcGn3x;YBQVeDus(H32($Ix z;B^iJa`aWGBrA4p`s@=hcV{i8Sn06^EV--h(mP2F!zRU9X@MY}lb-Be=gY0|s~rAE zka#aY4Q55&r0#&qDx2Q8xDj4lBXW Q0Db(kQsa|w4Jvs1KWt);3jhEB diff --git a/spring-batch-jsr352-tck/jsr352-tck-1.0/lib/junit-4.10.jar b/spring-batch-jsr352-tck/jsr352-tck-1.0/lib/junit-4.10.jar deleted file mode 100644 index bf5c0b9c6ad26f515407effa28232a3e05200868..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 253160 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 Yw@xWsR6GN7?^BUq&LVA^JqvL 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%0D;ifS?#HmxOc?~%#59-k`6GKjp6kN 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 z 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 z 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�}0ELkf`wu+b|w&$H6-wn%cF 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

    p22 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

      FY{BSgOP=%ZRR6{TaAbL7G;hz1Z^Y zxUWCY%uJi5(qDtnF3=r2T$NauLU9P}AdCMqB(D>V116M9rxdNrL?1Bexr0u2s2ai4 za|SA)KIICMuj&d0Z%_Xg$Oq3Y&KJ)%(3x9KCfim;=J9Zurx+rQ=<-lzxTNyF3*UDtjLNu!VgwqG>8$L4Wd^efvynN^t&Ms zM;qY`4L)+po`w$Q`NppZm1|pQ-uK`&L0*+b#l%s?OwmT{RX=^hlq~FNpjMs4cK#WR z$a%-?>?^oXH&vwXm?O_MOX1M2hcz|gh@ObnpnfuFn!zJ!6rW9+Jv{EZgQ>X9_59VZ zI5%RgP-m0}*6&Zf4-DHKi4W$i>VQY4#aZ7?x=5*rCCVnQf_m~RJYl(})%P-Dym*dY zYCP=0EwfRd&U>d^3VgY1B%n3W_R?gJhb7?W-1U zK{HEg-hYqpqq{D_IrJJ?s-=16pDMB~e~U4AE&rZLpF3WMXM*kxIAwf&;_2Le@1DNL zU-|spCh!BP!_a@L2WJw1U{VR5D?HY~Qf;>JRGltlPdzloK(&&b z{vr32!Co_9XR9%ts@Ugtw<KQsL z|5YY=MVJbX0eR9$?OPPOq>|u}33H9XxGTDvs#RqADN7|6pi4t4nwO9Hc=0H9fLA#R z7Z5*}#;fRuc3UxSQU1`lWKK$~to5^E_m&D#;hL1B4L6n{HR)9Je;9kq zs5-YKS`>G8m*DR1?k>UI-QC^Y-Q6KL1c%^GaCZ$72oQKXeNK1h1Ko08fi z$J*7gv(AujiHL+WPhk1fPjLA!H=%;A$PzGd#rj0;HeAi2DNSPu=n2fC0Y>=O@ClL5#hHSq^cPd(U=(RbEiOJkc zk<^)^W;HX+e$-(e-b-X%yx)3X^~68j`{?MXe0Lap+27+|9nrj(MB*2Q{i2B8uN*`_f(wIg+ zyY;4aJQPOr9_j0d8hGnnTd_e;^5?XoPw98MP>x$L5h4zQqsctBh{S6Ig?rxZIpOP` z9&5+D=vWsy;R-th;#`$zPvB~X?%`0Kn}|E_Fk2m=0>M|FU{A`smM;i(1?B|O;KNme zTLq6Cth@tR4J%yGUdN5gp?5;{-A#2M$Hy4GZ_5x1BTO-DcpUSM++YpBY!;#k4E8V3 zPn3l@q$x6BUZH|)Ak5Im7{Ht41#VlsLV^^Hi1;TV;YsTaxVj-dgrHvsR}?v*y9Vyc zE#vz-{DB(GA*m=XR*7Ab3(Ps~cNXT5%Mc`}bIO~;-|qJ`>!irv%EYNyh#lQ%Q5e7e zpfSoVapX&MTeAtDHcYJF)wbAoWW#w8thxYyL6C{!lBQBd!G&ekz`-&HY_k@jMa zF9>N@B3jFfHZu06kC0;;@kON@Il_2L!uUucJEZ{4*~aOqg97N81?D~}k$c4yV()EJ zz=SY`v`IRat~VOHo^4 z7SYe8+wim3kSB=9IJa753?s5K9>`jigluN9b7}Tk#hs@=x=2_xSj%k(?K?gQYtJBG zD;ZBTluJbSTCXj1J%Th<&Nlfr6O+r$PFZoC~Ya`JwJHL>$Jo|8bXrYDn z?lpW#4qHM|>SPuMO+Fpy)nURft!B(Xze?FRRI?VoiMfonJRL^CMd;t{1-#xWL5XvH zQolT0)4*C@N0oL;7_a#LCR~@pAa2QXV!2|;7Kk6wR_T$Hj`Jvr3i}`?*NnuUCroWI zk5O+WT@hLjkJ4pL5K2{)qyua+Mnz-ML5n#1-<6f3t;HuGcL(c^NJw7y z<@#Z(TXjBu-GQb>>loTyVEmbLI%6T;e9A4iB1)NI4~vOgX&zPT!mb-Jk0p*rL<}DM zjow!haj&)53Of(eBzNC!uktH(o>{SFBt(wjo@FKq-du1bRw9+t)>&@lNBI(&{SMXA zjAhfl#!ryQ4y5lfDl{-M5NR?@bsBo$su-?`(~=!%3C-!1*L6911V28*Ye4Zlf4|JRFq7AOwLUCRM@mo zGi53)YZupZC6jGVL&gx3eMEB+P84>d<0!IY(4&?QnAxd9V>)F%)y4<}Fyhtvg*;ab zL=Yn#R2xB>N{K@&jUib?Yu76kW}U6MZZ~AMyR0J16_qUhp~_Al)fIJ0*bX=;R^*C{ zu8kVWGn2g3r4cPdVkPFbX8hS8$I{eiPk7`#c=g?kO-u6FITWQ0X^3cCbN{(2)a5ky z)L4Tz>yx@}hI9@)=g*w5vXoDD>zW_w%V;X^HHvD|sW16MAspdWqkEvz=B~&H%o)D2 z4Yzh))N)J~h&SZ+6F3dRwX`IxkqrlDcGIHguw-7C&}UMbI%%fLFnYr##j@neh%YjK zuTe?0PB;a76?05mE?vBktPX7PAE{Xi>B0J#0o5dQrK+re#`LWg3jJCr={$`k6jF`t z>)5exSK$~fbX6B0y|5+{o~?uAd&hOO?X5B@cVhw%R7#xg1s zdsrMy?6#KINL@PinrS1l-&5p-BsvV%2&Cn2x$WS2T3vOr*=UG)tD*4SuE&u717ix`p9_FH+SX3)GU3NbapdKK>ZHSzBcNl)H297$|zGro?J@z1BS(+QEY83dumSos z)O533n?yT{8}hb27JVukoCD#DdQUHOE5+)%W)%W3G9DO?3{R{mM#5Q=j|3HIQ{@KO zda@mn4I+u54(*hsL79;@!o?;{pB zmwrkEdOwQwGx80u*tNwk;0*uVW0v1b8*!v6#tWqJFdB0o_BofC3g5(%l4YNCs92+^Hn)V=Ks8 z26dnV3@JJ2LfyD1j%CAwd}rLrM7n?n&I3PtCI|on{VtRM2drE$&!>Z9+~)^1A`$>s z0m=siiCrMVhzw#Pbm#?i3+KTO7K&5=RkaAJXx2vx#t{M(E{J~x%sCK%OY9*Jb)%y= zb8a#!EEozr6W#{}TqdaI4P*s}gtRCUV5!K$r^AfxfEJW337}VK33g-R|%w6Q>2x*6| zU~3JS)`s-aOn}6@GP)1Uy0DJm>)&h7j1FWtAM~@adf>xAw)4B%yq9jtQ*NUX%2C|yowd^v|Qvw z1#ACe&mELd9}{j8TU-FF-&~|`CXjnwsz3CIK-~}I!Bg@xlCUrGA_<>jyqltakXgu# zwa;gmo~}aF{`aqAR8cWGWnybVJdKJeSfI7#Lo3F!tOowQ;X%u%)GF;ec($8M?<8@dd98In$!EJji= z?_HlE-T?2_$AxF51gyAcsS8L>D2xR(#rjcofNtAMb#1?K{FjgZnqz?+H{ccr0|N4f z`X7AM&dt=x+0x!l&BfB@Z$28UzNvz%hW5UhV3Irqb4apiplwu1wp(nVwg@(xmKIf( zg7Yj?xjbP8Et9_K;Vx1+^L&uJA7f02$J2YDrawT$a+1yR2LDF4?2M@_{MFJl%=wz{ z(dTWN%l+>0^XF?|57fG-k4&WoT4GQt&^`f(sO=#WNt2XVN{-+k)h73{g5uF8DZ%o)7>4ag8v?Rn_|@iui+E|N+e>%YMO@}v5@y0Jw~Xo;qbv1 z*pI4lX~HxPXfPZ*VdAE1*L5;(efr?Mt;;4Hs&*o7GtArbbP2K@FXTkp%Z#^gWhbUs zay&>q4q+ajf*jbVl8CX$SwdZVzl_q-v(a94{_qt~br}mW#qN|Kzg;~f@5iM%A0m&I zH9xWML>j45P3YBCP<5R_CPhCI&M}r`_^dO}Y?EZ-3`d;IPHY@ayjtSsD#JnTCkSU1 z3fpVwkwPlsZs22RnSQ~A(iZTNS7vfNhO~`XEY~(>a?E5gW)Qh!d;$*E6K1l$*=H-r;MQ|3x_QN10ifT$hY=tzh|X_aMlhyI*<+Ej75oyXqB z^Nq(L9%uSHA|E`7g!R&#vhQ9Be7$8^gfn}x?~k2aze1oXkW5{Rm~0!}m3T`o1JR;x zWhNWyTMK9BtB=h2d?VbHcD-V6M8lY0MtRNimtbZB8N9fHJ`{|y8REttQS#WGFYX6t z25>=zbp1S$Rf+YeT-+-wRQPmWkswij;`np7XlFikkL#^MGPmG#@SIahAMXbyNV2i` zJsY478Mlaqvkm@vq@Vu*=OOcwQ%-dqvk&`z0Y@S$CbWdvJBZOYG+>QhSZ3X#i@!UV zaq#s7;RBq)4V`TfoWJmwP!&V11Ns4{xk7FuF0#@KxuG@ky)Pcj-(ew?rJ4Ph%F7nH z_q;2|wp3>MF>8t6TyvK4ekMn~g|c)hrn@B)*=w!PxV9vh#&OHr6yL=ssmBN=L@*d%p^9kFg6(X}X|X3c*Ri6<`*J%ySm16bxM}4?I#G zLb|X!V4RbFgP%_JOQVI`lQ6kK4ZA@b_5g*sC3Vg_FwP*) zDtzZW6(1W%+Kih=Wr{)OjyDdL2L<~HwAv~7Z0NGXGmlkn0d4ZU>M&Pt0B^r*J5Cms z{|&(tW_R=0G|ByX?#lOb3fJ1<&&>n>f5xB%MRE`?Xdoa%6d)kL#em;u=|t>*#UK|` zr@yM1BYmmLB}v$PPs z@5_2E-`rkXTbp{wfNw<^qkG_P(GR-fY$*l0@9A>8ba#PV_cP(I z?Dq(J=?ubio9+2BZ&d95?p5~PMAVU@->F0uX30+$y3T?{<1@MoTTG$(s(lFeuH4y8s@$DHb1QtdUgsy z9ipr%rZRr!jgIpOr_s0tB4K0E=Twt1$})%Mo<16OA^Kt2cGwGV;-1zigkz0reZ2%J zf?>NF$wvMWB@4UOZQN>tw2RI>UaDNoy>nFdf(>8$`;Wl_4g-~kjpdew?Gw#9iNUOe zN|LnXJH8B7TSsm`gU-WV_Jvc5_Y0I2m?{aO&nE4ow}sAZyal`GIK736tLEiiZKNod z*z2e(``?Nr*~?L(I~CI4#mXBIqEZ0L~Bi4kij@dacZALNwE%p zxDDIvp6@7iO&Vz2kR3opqBwsHq=xu*VgNj*Miy$zTb!Ge{waA_fXDHpWkg==>5phk z15o*}#AW5>S#@pRs`1A4Q}NY>pokI!T<6plIKnv_;bh!%1;= za`b6RFKyO2mn!F_IgIQQLH&|?e2QfG;iJ8Rc}`yUPE{ne6_OEXS3`Cj8`jrAOcl{e zFO~%1@GyIvCyd_OT^@+uXh?V;#BB;QbEv#9LaZlZKa(9|-kRM}96zI-@~6zeV9t_; z8?GIsE|@0^%{xBcSF|1?q8OBP4(xNE`o&Ux}xNdQ_iSrOnA0g zN*@>)Hf5^I^HGw37i^ou_}aryYC?&X%%^&Cdsk3>)-kI{La z$rcoRX6T}}=c4<0coC85ok6$V804=vb-gSegL?W`W}UkJG?sJo%F3#x*2rjI!j6EG z398K+o5Y^1_ewQCs8_9AHuMCtRBSOIUeOJD*`6}FIGgRz^UitM|BdsJbUvx;q15RmhQI(>;DO@~ zwk_uUiQJ)kY@2Q0Xqu(a0oq+#*JkkhPmA3wL;{6FH@COe2cXYG4Js9DNPEPD5^?EC zCVcg)@=8iPFlySmZkQl#FSiW)70wXTW#G}X)2WFh!vs3h9eCbzLNLh9gKdZvI1&xc zXobt@DVToZ%IF6)KXpW(ii=Sk_18A=AiozTJA)Zsl(z1G{=mT%=fIwnXfcAcpyh_$S)w$S`ObR^Bko1Ob%T14AE0bx*8`;zLbZoB3id zS51sYS9B#lMU}+iB61R|jX+GZMh{)n#fnNef^j1$6*X4X9@c2*cw^iCJx5yO>7imZ zO~4A{!-U}|rA4->irDFhw0zN?&-PgT{I|=`-PJO;^tt2NV#PD<4tO*?cO^^JlIZa0 zk{`D@oI2eO7K=$V=G`EtX^?6U`5x*f5=|ZbbTKeDroX0C=UQ?2>m4&6q-u;g(pm5N znB9WErhd-T>t~BOVp_g@sF^~onb6J<&^(&^S+gdgAr#+i zmruH~@U?PUC_C!z#T1-gZGE=R%^-d)Qr>E-n*MOq80BSAtp@Xp=t$nHnxruj%a~@O zw$ch#U6JgM>*)2JzQZZ#4Y+u7h)>%Qa5L0j{PE*%YN9Z<;)##!xPB0PcjgfGmN(4s z#3^G?*rn7P@7@}*uS-uP2~j(<$)}I_VFj-z-vhjcIY<*BE9lgc@TemNc(;JPZlwCw zlL4QsoLC56g(g2g{l~aJzCv)$`AB1LvXZq`wYeZWqcCoCkQ;IFu!ilp*hS`5a`isV z$w$l{Ude8R#wt0&p0%8f$mg27IhD7wPxp;6I?CTi+nYG-0jq{cY+EwnPt|6+h<@ zf8xI(eB)=ycI8+V>+S|IpYfc&^U8nWb$)xF`dkm(4*MQq0Q+66flvV6m<3^Mw;)Ia zIi#T;7}t?AD1TR~BS-aHO3I0oBWVy?*};55b1`xW6MkT%F+69SEND~1L4ry`{0^8+ z64k1>oS{j@=8wIi$i0qUr0wz{+#;DYRP z7_%hsmI>58nz)?BbhTQRzD!JslRxpaS}!`3JFEN*jwvvsSa7RLFjsy6Ei>&525D;} ztg>BfR3PF^$u<(FNiH*uL2r_P^A;9JDlB2jlsV1x?X(?tRid1CGS<{{DPDKW7F;N- z%ElhtE5kyrU^yhEX=ruR0y(!!VBPFkC~F=X9E>(+J}<5{;j^u(mB+2KKa-U`zd|5M zZk|Ww3he(*2;vZ4uj4Qk<1Vd7AkNOvVD%%8lYUl*oWK!Y+ufPHO?V3#S~PC0qvkq0 zFAld^mQA@~5*2)3$-c2^(r+U{@7#8fm_tMPaBlJlGrrtfiW-!ITy~xL!8Abf6Av{@ zWufbhME?)IO!jnyIROjqZDZ(*w?HO)!Kw&_3?@Dr%e+DZ-j59`BMqmzVK9ES$wF){ z`zb-kY_Av$78VlWVe~FgEwpl$68)31*sWoh-;#p1Ej_Ty*}8+aS!UVc>&KU@Ics-Z z;mvQt!UT3|!UXo@!0jzL!vUYci+6Q9{1gUXo|1zEte;?~t)FQ4iGb4~RBsByVB0Hp zNqlN{P~r3USm6B!J-4!$;e4Rnrb}YFZ3JX{iY7$|Bq+A1n}2o*cC%eQ@>AqB@2O8S zn|Zi|9ggrRk7{cwRu3II2eN%?SO(m^VDlkn`G^S$Wm9v?qdl*waz60Upy7CosZ}LV zux+yTHpPT@U0>SwxNMsf9IhWBh2~+*ogyFQF7ZuG?n6|yIz)%2MOpGq zr_eD_&Gs_vd##4 zMeXNUbcwI#{h4;f-Xiu=&C8;8-!MNBK5?{J+r6ygnVwJY4}q!$KNl%~h~!}V#5cH% zSsltMLRr?#lI?DuPWlnMjGC`_=|mQzmO1w_j)YL+H4Of)nvz)CE!E@#B8|g{t8Uus z2lM)*JBi|`0J}bvi&u5+>$X}Wg2Ps$`B@JG34CWhXn< z39NW{$K~qTDS^#JK(IRM zOmS;BU|K&h#_nRj@hhxOXv~zeIHWw&vw1sm40t3(Yy^8N&7|AWJUbAgS=sdc%&EL* ziG)np32wuts9c%JpleC<0`B!y@bD6fgon5x+L?l=9PN$E-yuGe0gG3mnCxk8%JQti zJMWEBiv;XC%7PjWg0;9m*B4CQS+N$J&I0chW-YXdrTW+*Wv(IkrZ=sC%Ncy*%mnhrJI8r)OyN1vg>h zjKb6M#-WE4L))g<8gXSa$rcch*&-xUCYMA@1?3c`hTJnoDTk&AD@+6tMJzI7gik-|zV0q0e0#b3fIfvU zIuH=h=l%Vq_viI{&W~aLx=pYK3<20;&@YT5-#m~i8P^h*4JO=#`Q^t) zOLF*24W$v}U*6B(q|PM{_KOXD;0V)`6~MklGJcS>dMdFIAS29AV^Og3kZx6&fS(!L zYR1V+zPy{i4GNpF@KA~qz#Tdss2Dvy+=rdN6@xct%~`r3gV#?BtG9Tn3Oi+--nC}_ zE`y_&rZ;WvAvRczqqpE7G5Lv!<6yJ11SYIRtT<1B9P&-Ha1myU6f#0r{DH&e(IL8Y3= zJL6?DiCb4^7TV6rZB@Ye22HP?BDT0o1K5`yGb zFwq!r1?M$66yYmuAhz{X_&kjTjZ| z36Rm-1WPy`$Q^p@0(P@FF?uC+f_cY5qgjppOQL4laQTv?m;*5Ynw!pks@aIjRcg?I0_Zxuv*a-(;V3| zDBdi1bNb{reIRNWuXLN!$Js^B)#c-3&B6n?iHEMRu#A4@FUiv($NAom_+#G*uVmy) z!ek|8LY-IaV|D6`XVyXh;deDkjB3w^Du~a{ z(ZFx_ySq;AI3aB>eDi%390kTR;Tto5=nFw7WLI&q`#RTdS#ntsM`)xzYTRD5->^~Q zXhmCT_Ux!Qs-`o~M2(y}W)jC8b%K=;=uet>Lfv1CT{(Wxv}}_dNAi`V!K4>0bx&u( z5ud{aZfTSS}dM#_`<4MIFcVoUKz zi0_BYCVA)c9o3dD|IcxRG!;ExL>GBYOKnLEoxe)Fry<98E*&};*%b>`?q$mkl^?Zp zwK&-nZk3GQQM7+(s1Wo!d8*8*qSPqBwvx{R4K6;AWn9IUepctM_PQhMcfxL%pDtmL z7r)J`_bX8(hupK<+-tqcG04n8r~>iZX}_P-yuvoHmvtdyAY;l&y2gOJhW{v#MbGHTH44kx?uE&wq4KzU#1QF zHvliWtVbc41Q>Cs^0D$4<1H<0^<^GX_QOEvMdH-#Ie!X5GR{B&ITgixWG4E)Cp2t< z{=HE9hi%`>+@Lzh#x=-BUn3Y{L}c~sEfqVepA5!uz&RV~xvEf9p-t4TPSh@slFhya z%O!r!sxb9sNqZ_ll?R7l>mZx1@k0CCFTpus(`Nls z<@6uMrU&GDqbn>BRl$u?d#fpH5B*^~K0aH`$QRR&R-oM^uQu_5Bg{V|U50ZljFJe1 zyl6IYG%~w4?OdtKz5-@{z(G*r%LOs{`+9^QN-&10abGO%sK~>0$ay%^*1(NFp%v5W z#~?0TGND%~#|G;K6yOq(Zd2Dae|GqkVtOCfRFjo_$o)a0&OoWe2LoLhp1rwZ66ygZ zZQFFUdp>p^r=0IgCX;l^ju>7!Qv9GWw@jy(LZ?#vY6Zn+1x4Bl|qq&k0s)2iE29+5Wl z>kpfKybonwbz6&~R}*y{(+*o+cgzy?fIG`9^-Xo%BVKpht{%Y;M^oMv9H61+Q}ckf z9@Kkn(8JNLCnfzvnMSru<9B(qOtsey*jo|WNro;I9g<<(k|%bmUS~u!Lcer0fBC02 z7-il)rS2VN8)tdPtdKDm9HFwFdd_S|)^tagI7hPW<&GHtFLU*l@A&3^!B($nvi=Hb z{(a)FbH+Nk!|hYX8%IoAJ52n_8IHRA`vQqm`LN9VQ4%_cpfMCAX}S_Wk^K~Cx3@P~ zqtQX9u05tPD!~2sTR$5UzZK$%=gPt0sa`AjDCz<_<3|1T%0h9TgtWsjf|RHx)1HEI zuPm^pW3JTrCcPeKi*N#FlFdT%Xqv3=V&C4T`29QEC;UsVcoQOOY#u*t44||DeQLN7 zRp(kN-#o^t_L*NBlW4xEISQ7*N&ZQ0*&S+{`Mi{)xp?r@4&`rBy5Q=_RYGm*($8R~ z1SW@OTzO+G3)a&qW`gB}$k{)>SbIXIq27sJ9HQOkQ)4iA@nbCR^R$ke{~?a%H}Wsj z`iEViRe0pses3{L`MWDgyDKTf3W-sh!tit{RXXg=8qNfUtI2TM%~+TPn$lUOP?1np zVqEf3R$|Uwpo!RgMHceZ1Huo_I$6n44vlA*Dy+Uf4AKLBC`Z>S={GIo{sn;%R|4UJ zCYLdHb}*u^O_)hNH?k(1vI-_YV>t3a%ehWiV%d9;u|#L zm>WS3i-6gT$kHOk7bCIG#F8IjDvsqng~%cy9$yD;C8}ZXvS6F(AjzvoUvjiiB1FxZ zd*H8BiJBbA=Z|*2(`=lhU0E$H-z00b!fO<-sn@902K&QDlMX@bZA-q|YJ6ZvelauJ z3WAu6Gn)%kZ-hS|La4#y;UhS2_Gt0sCAjmzbMQ<-+AGT>;BT9(80Ht=$k9a;#k4=r z0~-p?y8~KrxviF{V{im?Eq;#WNWCKd_bbq^n~~AW*C!(YR>cljbV>0~b|ocbXJ_wX z=mPi@t?FcG=WJ&0Wc%+=Lbi&Hb_0TNzGZ?iw3C-Z%k+FqENY2@iNZVqo%$-ELZ`V0 z&QF{W`~mU8I$>#WaIH1R=AX^;8Aee9sKlWOP~lMEph3~k2Sz3s3jMzH*u*+1wy`a9 z)vL=~2Yp#a_I`&n`>{n(Q)yFDnhIYC4`okHzgXg^SW3S*(epjY_1NF6UO!}ad`0;N zFa&awv+1(zzooI21s@_cvE%!}&lJlyfxhUx`@Mpd zyb@*F7D~#keK)twrfETP?VG)D&l}KJ%F~vLOG8XPS>fB;E!fPN`bR_{OisyJg@$y4 z{8<%4OlAg#khX=$^ou%}$=ZNklm|ne4JC2pn#03U?>soNvi1WJp@yKJ81i@`NC`1-M@M9g}_t z*~HR5q5Dl>Z~%d+wSK-n0SGD;Ah18?ilu~HT%0V8Tmj2D{}Pg|V!zdZAX-j&WumI|F8AWDQ_BC6#^FcZ`#Smf9DlvWu7?`- z(1-YGU#ES}UVJw;)`%W-t#PjMHZ=KiCjI$>+m=4BcVD;lSgT$>2iPxIBTp6tK0t)yoHoS$0^yqs&3DYhfn zw3GZ8S!BTZ19Rz1R_!?Z$9T%lDYQ=e%v~^>NP=n+X4hHYGm%OvqPpjOB2Vyl)%zT%ZEg!H) zYAt)bP|n>^oeJakVqTczL!-8bl)vzUiiE4D^IOc4sC)&Hd|_;{GcIt|$j`>I-0ZJg z=F`v`{kp>4pTa$d*W%9j0`bqtg`>yMQx34ceZcvn8!83(fNf@J?&@S{WMlf5hk2+Bv+-UYNU;g5d}^; zB=C|114)MZ$$wBB5ul=B>j+5{g4v`OaL=FIOIqw+{J<^_Ar3)KWCr0Ck{Fs87#fH^ zWMlxEBnx-(+u;7M;0*LS?AH!}M+q>WKZEmsApVNavX;&+rgr}c&hav^LPBVx@1w&H zw57BftBsD$t*RxW#4nDxZ5?(jS>cH0yP!{s%u%;mId|GQ+n&1i$FKp!XT;RRRm4^y zX-URpj~^Vf0CmmUFcU}E?CDgh{D+CyR4LYVkGgipO#Fwo&$g)K%;j8#KlrYR;zGu? zxbW{H$GYb;eX*PkY14HOmEDX&u3nZue<=K>SRCVN+9Bg<1ATdIjJc4mPm1Kk5AyDt zKyjc1#2c*;hWPCD=$rZP)LA_4_;czr*qW*7R=4V#_N) zrGM*oC~5K)pn1!GXnyAZq2>L^q7{nfc2YKmPh*k{G>x>0i9*n;co)>z*kFQI56&oo zRZV*l5sa#>OTFCI%ozW(DO~npoHxSQhWZfxP;rUKQf2esC`tY= zC{0BSZES=MjjjJOWz*OhgnmJ+p<@~?{|}D+LL28rj#qN1ks(M!!pqRe0v0kCcZ&YzgY zJWP#Uf7j}t?o05O@47+Qi9-aw@~%WJ9?S!j*}aoARD>c9VFo|NC=MY+3f(r@J-G)b z4pF!BI$w04+BTV^Dh}bO(B7?J<|t*QXO*a@Zlw8vB-qAJsnbu&%27(MlfUdkK`xQ$ zGgqXb<$FoZqDeun@|c!zKubQ4EFUfjC}>Z1!oXCsbT5 zdqIytq-F8obXN^EzkcKO3HpxRv)oB_;-@ZZogXYmm)3XkDS2fJT{0>MIQ#BsW+EhR zc3tl{uMmRg5eUG=FF1IGiq}5^vlOO=NEHC{2H^Y|m?iD)t^aAwy0J_!1A<6m?-r~$ z$f8JK3<<0d);!=$NJ^?UHOri$$xESABZHbAK!{{^+>Tj@*8*?d0yCHa(A@NE^t{3! z(;xXT&4!PPrb7}5X>!9xio9{e)jk~-rI_L1)#NsQVVe08)s5eYN>-*2(<8$D=;T<@DdOPLLhB zWL%;U5NUOOG8Ec_!nm{?y`f2haNFR_=HF2(A~rEFF%UW;Gtkc5#L&dR&;Yy<>uUfh zDk#ryw)-pV%uy)jr2tSZ{tx|0**Uuy+8LWl*_qk@>6w7U`d3!Hx?e<@>E25k>OKJY z95TFIe$7ym=+B%XKz9A*R|hE8;t;^3V$)oa!^1If1C-SLL4u(={Xa^@zEs*}atRKG z@EUsY0{Wm2f>qeqq_@%Y4>HQpG69{62Z5~x>yv;KJk~b^1R_ft12+jr3kN5dl^O_7 z32;jU6!RUR-|+mRsjkomGxGo}T!1Y4$M~?6l%1QswW-Np6U2W40(OJocZ2W~hsc}U zOIX}P*ffzwfC}uZnDA#;Qd7>Pzp5kI(sQ3r)Tg#SjQ?7 z{EI&fj1h&3afu>SWZ+kPC2J%_zkp!)Ek@xLBs7$p>uLJAS-}k1^!yT=IE0kRpduP0 zGgLsz$uTKN>0fE)D_~7Ob_SMUKq|NeG$<@6Xo6YjybauiK~``es;o1U1E?CvAfzNS z(+$XP;`pUri%2k*R)9FL{s*b}hdBO8DqQ1xe)(yL`M$y{Xziz_g%JbeWIg1fps1f@ zbxceLJ5JwrX#wn1x*H9cM1vNThp@T1{&64LATBSqH8w7m-f-tmj9RbU9UBV&OG-nA zhjM7#k!*QkGkpziK1WUc?S*R$$|}&i<2wrxr!2?jBB)u7nery%aH%| z*WUWSN+}+V|`N#VWWe+$%gQ6t}SBVofW5HUc3_oC^_iH@n!v zlo!4JX-S>y!C}sou}Mi%i%-wRHF`T0AB)jDUeQL(s!C}iz*0ry+zPBvlmT69GeRpJ z!nSVsUO^u<`(yR!(#5?*Pe6UT`6~ezlJLv5UZmhy$Cs|p2QVQZQ2~R>QE`vT1c#Xa z#sA9_QZLONe(^~>0DdCC|KGFHUoP-(|NhGrY~!X7`W2BvXB6q8G#Zc*XYE**TZOaG zVBOR|%1JM@%tI6_Y+Jt8aDT1U1=1a`*4ZV$SX3EXm=m;~k)!K(u~8-4x2m*5!# z*Yq_ekjBUa2}nCT87k%bulNoT7Khe}`*TBxUV2J~&gkES)8L7@iIKU1u>r)>Mvwpy z+!Ka@%^d%X0lYp&1bYCHnEzi5LB-U@)c8O0a7~zz9{g3HR(@(+QWsL-7xH%ehKDSw z7*Y`)5x&)WiquA{`BhfbhZT`O0Fg{SDLIrN4BPK+YCC_s-X18OQ{ExPAj?2JqqFK} zDvMBaYaq*kWk#4b)`3pVlE5pc`B+%E8$R_WyyTsf;Vl2k+ptrI7P>jBw3M$Jy8O<@ zc)Qke$TPV^Ykrud3 z_9*WoZs=N>2z^FQar2h%TIw-!Afw{?!ZCbU2=RB|2NF_gM6IYs@nm}L*Wc!ae+7z* zBB#<{>F3X#KARJ_Bv+kBp|qTMrP~D>u4MX$x~i zt%MX9{z&e&!2gUg5OY{+$iZR+RZQteKiMUv^<~1u@+|VG#8VyH5+9X7{^zN^b{4ga zx;?nPiBlb~m2|?|vaLs6I*xOfM$^Rw`=PS$d7cf~EAjpy`R;TlEwY^`>Kh>`oI*UH zHHLt&^l)$J5nzP)ljONw(Z9eBGO+1pjQ;mka{uzBhpy>ffM7TQhVy4Gm9sZ-wJ{Yp z{AD(tfB8{t9N(|N8M^(1`3}=Rj$08L?K(t`1SLv)4|3i~o0t(gC4O&(LC_}>iK|i( z%Q@Bkh}FySIQjqqNE_jC;q-+JF$d~(_q~#2#CW4?lxC)OEW<^$>w(iXyxIc%H>l=R z?w$#^ypI%(vl3-3>Xjx^ZV3ZTQTwRe*`lT!7$ZW(?}gE)w;XLrtsxQ$044!eBTztg<=&ykD zCv*iPD}cBB1N#3iL$A6Qo&HOWIQ|YIznIa_qQ#aR05$SG_9^gDvUHO2OLS#T>h@R0 zP+ZeORf$Lpq~ZMBLdms6#{y|l)j%P-L5FN2UP>UzM-puEcMSurNLU2|pjIv<*w`kC zso_ADXmmC)a4~SQf`Dh{2G!yIVAHAx3M%J==0Ji^?9R7jt|ERNn zkCFcbsP-E`-{YL2JtJ#5Qsn<|!0DaI`|hEn`40sI@Nj(WT5exIIf5UjV~~}1njQf? zM0yAhZK5R0+(uK!-V5SjVVC@e3F6GD0vJ&NE};JsUBeG1S$tyn?+92hgZ)>@9mva0 z6dxIgKeh+d%=sJGUv|v%q1R&p09F@Z$A7YSWm5DJWSPv#m479aI&bKobO4ToP%Uo zWRzLI>`TV zzd}mc)Y;X>VpY;$bZ+ z7`$1qgni-6dRnyt@IzuOJ=;Cb(_f~#dp>uAaP}9*`r<;eXTgc_69_~wDu?Y(o}Tu( z$3jglx_8C9kk`tGZEt=L^_<_Ax9(HC9X>V~o1KpGL3||lncf_eJoFlH8QV&JOUb50 zf?Ik2?Ac3w0&b~JIbEu3S=5>QVEb-rjXn|RvF!ZqQ+ctg5Ts>5h+@DILo-cn3Kn){ zd5KSFQEF^5H!Uc-a7RJxVXk`m^7SbtRwQmElvGY* zixoIS4g0gGNRT=;bZr^y(n?_N&Z1%3#Wd@s{#`%ePCRp7rmg{|RVvtY&ctKxM9%KY zHK73T4qLbM-~_Ac{0@@jV+MDbuXuq5b=&kQxGPvHUwN$$y|)?&HXNs6AOhzGpejbyl-=x34rH z*<;w@r2ijX-xyfex^>;gwrw@G)7Ul}+fJj#wr$(C?KHNz)2KzU8Q7-P=40W~Hs^Z;eO8MrE}(D$to$K0jY8^dHg|Ayth3`qt_BeaoUd6KeL zJKgqh%@6yGw7A>D7I1Yo`*`;O^6}6Yf(60-+5ld6h_5Z@WFPJD#$Yu1wp{d*<1pwk zt4&c2q$14Ph}kI%()t^`@{kUQ-5ZLVkrId%r54SWnHld6e&3nW*Ki!XV!h~lHo2f& zl4VUy!}>*`{6Gvuv|(=LVPjEf6zzEI=a7l&S=&g@wP}JbnFRZ?-kbx~H(586r z!evn;w^yHLNhUaSI8PP9ZK^I9(q{rnU&jTCIbCYfnoC~kt?d1pOa@vsnc!MYlw&Zq z&wdsUJO;H8B31xN%xEz-(QmzQK4v%XC5+4 zxpBlt#J1EU4bbK30q4_n!5yJ$sq3Sgz!WUg?(tW~AmNtUkrnqcZSbN^~9&+zsai~Q}+Ie=5{@_;vL<-gpjKP>X^#jHuRAWT0a z5Oi8xTRam&0^{?urLEpn56q7Uf6)+e-5+{6-;@kNTbpcO;$1Xx-D8C#(JN&>vB;j6`vlFM~!%%_0 zryk?+e8oM$H~XD>{1Z+5zynMAr ztelMd^?5b%Cx-^74>U6+YCYH~?^NFQ8fd-fz0mt5_z3GY(8^mY1It@bzXbB7SV3P; z6xR0h@MFpqA3FBea%+b{zrLSm-1T~j22j@X%W-P#U&Kh_b3g~CtLX|Hr z*MEiNzu_)8^zyM^`C^%WgUY|b8zRC|JX!=aA*`L>0amB~-;mSqfC_}1h%i7u#To-y zo4?rM?_iqQ3;j(Jm{XMgmtgw)|NfQq`@dkSBzhnY^A>-Cz|LN+Yk`U!(B7L=34t{p zTWqve21_^fu?~Kb@IC zlk7TGC%ld3q})Faicg$Il?{vH>UC$G!@GJ#D3DftS?R~2P(5Qw^Frd6!7c+(fr_uKfGcXr# z!DpW7_@>hO`}Kw5wZ7+NsPxs+uvPBiAQn^N5`Nzz<(wpFD3~+q{KB_*tuTF1lh1Sg z#YY%4>FcGIS6It%=fUs;#kEZPIDVII(2Xf7IY3Lf06xV3 z#bW+A0Wk|;v&8>b>jSHNV2}mUf^UtJor%A#=Xc7ww`eE^!2~~L{x4L|{5PtnF`ORf z$HLbH)^A{}umBj7qLp5pkpwIMMm0NF9`=8kI%QIv;3BGR0`BbEBCwJtj)a>Z<(^9f zrmjTRKmJ5%|43U6KYXOX00N5;7!VLdQ{%l5Xh4J(GK|IkpID|87j z1b^7qU(3-X6>WJ`VEhe`@H6z2(*ArCoT8SPG}wZIN{cB7Gl;`Bmtx?iQ!M9}zKI>+ zI|b?cO<>&Jl-pVwR+KQk=6KSr+iB|U?e-S)LuH>9gc{3^$qu-m%;@4r8zvB^!*QPk zpOWlc#S=D_$%0xbeHdtXQKKeF^!guWv{kKuNJOrL(baH&1k#XUWLXr9PO~s6C|do{ zNMZTBuXX#4090fK3L8fi`ZIT( zZAlYxU|Ih3Vi=r))!4x$dB*pEtZC0CmY*EVidmIrNrk(&$45E|Li&6rI|d?2 z(RKMLDYMHA@~<%DQm4_D%+KS(_{yjzKU^{A-&LeWHs1}OYfd?bFTE^RnUFMi1u7Pj z0UH_GFVRQ*6%(IfgHa|9v&omhmenpVt#j5}89*!Vlf1t)cPfl4Fvf_>UTmM28kW4G zoDYn;E3iU+9Ve;f)>t}(NkRnMdNcDISgL=>&UirS7;=VGY9sm;8FP7Y4+&@U4pT=v zU926!p)gTa-3bF!~-2s@-fjuMfB zZd$O$UY?zC{o!Mg5 zG!mK(opaLFOWrFcU$4Gt@c=;nEQqwrlkg9Dkmk89PVjm6^7+_0_}Sn~UXA_d6YiHm z{>T7&(A}TbC*!=(jz+f!)oKK*>Y}aOz7%))E#u4&Z`YZY$|~eF_Z%!aw}JNU%N~xp zL71q;!^1a_^eoMS$IPXfQQ&fKn5_=%fRTE^_0>g<{gS}x71j7yDRzTedxR)N>$c9+ zQ#V=84H>P|K%Ywq7`pM-^GFttC-ViqcHJj!Fd^aPWUm}cl=Kydz$yv!)##0|i`Uk%_dWv&oq4~BAu90?Z7*}cR-QQs!7?OnBRWk z{Q)9?Tn*=*=t3XU^|X#FuuyiA>GAfR@O(>N4E2H_$kmS;i=*yMX7rs=}UCH zzwU7U9g7oai0+JmAM-2lA^I;LRZjfxCitH$0$69Mxk3PC8vj>*|0a)-XMTr-|HwH0 zMbDJ|N%qJ9`QvmLAovoC^O`A=o9U~hX6Xn$s{mAbKtKV-01!ZZ2kl?7h2OF2V@}j? zHSnMPM$`VO@A!R1{__w2H?;I;#OglCUmT2A`M1JE48r@rATR$$s8Mob&7fi*oI)&W zO^tWpre$WNX{qU?OpE~ovo-}$@-6tp18qPgIwD?qliBH8v2?*$2RTK`0jBDiU!}3J z!k`V33Nf&B?00#S)GQk#{}W<@BkCOmGH{cajF$cg`H>;J+J)y~z{#gGWdAutmH?U{x?$8V8x*lgTw2_+z*hEnTeQnHeF z(fwGXjU&(5RMm2Cd^-WX%lpdRfdebu>=cf8yfE#>($K)eGB5D{cF*x)BfyqG?g!Bi z`}B|$4*-7a{OCVyhVC62w$UA6DWDw+< zc#{_feVj)vmMb@y_&J$3lg0UBgDuvz%Q$8m4h`wFD;Uv|ec#{fhn*0q0HdiEg_4wn zwrLP^v>0_sx`jY~E#4CxAJu$R&!8bQO@rDps#T>Cmn;usQoZaqVf!@dhn}|w#ngfW zVKWz2*hN|iooC(XFut;wEGec*GNIT$Sc?rkHG&mAHx%5=xzJ8tkDDju7>Q^j6HS@~ zz96U3b5F(3L>ugngLJro@1*F|?4=i!%~lbtahI$ooP?7%-o|ERT3(Iqq0wF5S2O}T z#jR0*I*iLc6By1Eb1r)U@1^uwf*k|CqOHw*q4Z8){F3q&v&J0<_3mBY4CV=8GCfj` z%&bZb>si(zdfIfUcGCEbQ-7tgs`Y}s?MLCs(6OU5SoVSLh67tXih;^QssS|o2$LG4 zWq_o$1MjPW&9TcG^b8^>!A$6{A>a})16RI0D*bP*^AGX`}NlcF#M$L4p9 zRN9EMq7xe?KQos)<<5BWyCuA;@iy^SnATWI6IGO~-aBJn@=`xg`P8&V%W}g`?n?)O zGXkfuy|%ZFh(^Gt4xzL%j-^3P8F3W(9}h?d-uhHaAX7Z4m)DB? z%SJHKeb{z$n^yzjpu2haL^^upyhf7SmyyVDRd*2`!RvnESs6lq_MXzg|7#5^IrY;g z)&Z#F2@C?FWTA5DD;!YTB?sL={5bC~hVh_;1O_c39t5~EbsB+56e<2sd%PGkh(5*o z>o}){pa?qt6F(>VzrEU2kJbql|BNMgx@it=kv*qWXlMo9*4_x>i+DLGL4c1CnB_;1*dlvUb`N%Q2z7IW_8Gi)`bn)x zxcdw~^ujgp614X&^}M~~76BJc_jOk4Ctl9lL)q|QbXl$Q?%p2%`Gl9=PnZe)w z_iwQGKbb+G<7NLhB=@&C;qXVC_!H!A89a#pl`r+LP_g=Fs4)IRYVlx=l*vEh(*YtkKU%iC}l!4G;37e%o zQ;2ULd=vLKWpkmYoYxW>Jg>Mo+&X;UU*AAKtON9dzSDFn?pDEELzO=G8KgGLe$xOm zjifT(fPTtDC2RBt2P5aPsc@R*0M8=IUHMX(?Ou(fF;yPpX}ZnW5%5s$k*WNt-*@&3 zaZ=u&9ZH37+~x`ph+JyUEvB|=E;>j1%7}ic?1Phqr1AYu4$V_m4jZwnnCAge^FTs`=x$0ucr&G?Dw@m9 zA=D%$cb&&Y2tl*reOgv4y-C@%qSg;C!_3d{IkX-ZSE+r6AFNh&<`Y+SB-@pGQnk?> zpJ8>sOCiv&qrI+lWA5dRXnbYORxh=7@`^Cdr;C_opQ_v4yF_Pym!af>-y!_)t2CqPIX*lhz#l zMEju?El-*=cEkN+70<30Pp=x6k&!}dF>idSAN`HPa89ps*bH-bk^yS=M0NAwHLN@J&64lmvr@{mU+gnL!}0~D zC;#nwD7n}IHK%_|O^W3B^>8^B#c3t!xeWIdXRAjJbaY%3TrhWQ zG=WNZ#b8~W>DXD$rI*ySM<1V_#}C7;Q?oOSL~!uFQ%?&$5JoG=M~Fo(Q2<5eD5~;Y z-eVh!j%CBTgKdjD-RFLqH14!?kOg zwVcHa=2tixT%9T9BBQvDy#ra3%c^z0BF=tqoH zVm|nqkX@nmr0rb)NY@xmITfscm+cQwl)NJlSFo@(`yaZ3Bvox?ToWvx zZZcyh4Fq_|O(~10&`cvMQ5huZxwXX)RYc}iRw>5t5e5mX)|HW%(a{`wF2fn+9MkRt zMQa)Cdd`_Q`O&YCZ&)`^u98GZg*q2L*WDqhN)aO3I`g@G&DA=p^v4LMhgO$ikI2VKe z3J{(E@mn>VMlzpCO=kMCs=;J<{qPZiWv4RD#P3FCZkiIW0Ep0v ztkLkaC$V8%WEy0s`Apj{hqpBzV!19;af$MfBe7fMfRy!3w!fuimvWjC$1zRFm4CDe zJGPEH%i$@@drb!!4~Cr~;!cNZ$j%(>-pDkgNXvEq1*rt*v!#c}YH_iNR)p!+ zd{(&ZKF`YncmH!)0zY$jcBgJ-BCp`no~bMal7PY~1vommU#wfSIXErpn6c^1T!k6N z3^tdt7Nk{R*TmYCa)sXg_V7bBk}tGKg;1;Z*#r%@xQ{;IbK zLbpF1X>*>jr7#4MQ90xk^4VT16p6Usq^pyia^yxNpo=4x*vTxoEgOE1uK}ND^bozd zIOTZrQ{>~Vi*3rGkMq)J95?wX-05u5a{@fe_IzRwhBF=VGDii$=bQ7k%+FTB1P3TN z4a<|oX@tIILib}7XY$ZU#%L_yTM}zqCTm$l!Qm{wh=+UELj@!S2oX4YzDkh0!(`J9 zAQJhI?hdecLF$^~W*=(bqvh_B$v0znEyfQ|@RIA;yB~b?>S^EUSk9`x$Cfu5(NZdz zJsuC>lr2M?`R*;DnYjpSi}&i)8ko&cCyST#ixP1+$1}9|mjpT;$k;cGQW7cvXm@NP z2>?=P45O+joN-8yE>(r~a86`Y0Qm~REyQP7RrVAiM_Np*Ndg_2&?oRLUXf63m@Mx( zbS^#8a&F|Lu){dfnodhJgYc7Byb^5mu?sFccm+QS&5$Xnc_gFbn%O z{G`?cA7n_fOcrXdtKRG?`CvDw+wtE?))nn860(LN0I5FDE6qr6gC3pZc-J?X zL<~FZFT8YJCwr084UymJzEo(-Ez|8MdI;Ze-^bG@J^!Q4i{5lh2L$N4NPw=3;qR_X z!O_IY#L?B{57+g-{Fd6f7I6OP8wVIgNZ#UyqPyHv$%JAgM2#dOwUa(`oHYpQMiPWE zEC@;#2UDSdXA*ut4!spU1&f}U8LOPZ5`}j@RCBr6uW?W@~Z$8(Oz3|h9fr`9Mhuqj3$Qw(A7f#>Z8N@+?}sj9EJ)GEWz48X(KZ? z1Y&k!4+>hN{8e-#cMz_`91umprD3{NYH1lctu%r;C}(qI;^633Omy`*?KHmT>21zt zk=qO$$nx5yusUfv!AWv32yYed!W7;%E04LipKB&f;)}bvm}!4;9&dNjeq_INoc`fl zQuv*BeGDcvy|>8NM|ypk*=2^2#be;U{-ceh2-VkU1J(NZtnPAR`(kwd7Q|EF#G3iA z?`Aq^ST=nVbLki>O6A?G-n?5DvC*x}mGm7Tlxs$tWtSs7OCOm%6V04N!qK9_i#%LH z#$mIVdPF+h#7KsHn8E8eHLXQ;_PX_zJ9kZ#H+Mf3eWPS_C{6Dzct5|d_zIZc5RGun z^4nrHK4QSrRZ~XM9-_`vv;Q&#qXs_AbIb9CLxu)6)6<=GO-pD9lvm{jeHqQG$`F5> zis%hO3TB+f*{dSoU)E1K1hQ{j25Gc6+5cK4Rl{f+HCS~SmxZRh7Hx&b@~56(L4Ocs z)H1qtg?nJIKR&v^j=10ACl1VtU!s!{xY}RCVmzBuLb_DLd8$j)xnM51(MS9tS**28 z=9og-)ebx0ESu78lfWqw_@o-o%hOzFg86t_4Lc}0z^R$$2S^gs5)v)uiu5p6(MHy! zBZ?!B;PhE2mAlM@J71EU+1XllIKYp0LFG6nDA!)$l|HR^H$QY+%XjsM=tOb1WPz$F4iM#Zzh&nznH>n}~nTOmb zUl8_Psx67WaX^ti9ouJDsJvz9gKpr;&pzV4R>&iVBVHH+V0=3iT#@CjiAfYvH-uGo z%r*{*DFBp0(HaL#XY3cYdr zA$V+8Uf2D26ze||2gylrp!n_hjg9(^LA~E}uA4H?oBrU-E`D8j zdH+l4@w-*hC>aGJ21r2|0Vh#m|J|MZT|E<}_T+{NbR2r|uJfmf^YDdL^-wFti%RN= z{`#U&&L6cR_LNFaW8qB85}=hfFgM&B`tUh6QXCPQzebPbEEc?f^No7$;#gp{p&;-X zo%DR%^z6B|Ww<>S5O@X2#oRt!`F4X-IkL$uBQvTh#7|*muq#1#W-nr!z^zp4QXMU| z%J+k{inxF@B6CCL)O@7t$7GzA$CJGantdh2<8EuTMP@A2qm}z-OFoT=5J0ULZ~m^L z#jjK}f$Cjo{0gS(-NNW5tnW8u+4F$LU^B3E=KV1LeGN^w#qkcvDlg(om`XfOO9B?p zc~kaPmUKs2Cr6?b#szI~OR)>%WoOuE@>$%7!xO4%AUl;W1( z^@kg(lN#~-r8G!cY!6Y75}QV*3c&{r{Lc7!tUA`g`|-1kK;qsu3d!46G_6Ww(`qvn zok(OQ3&tl?PgfkTVM%Srr(qitQFzQ{5AjlBL8d$=E*WZMwZ)4*lYzz|x0c3(Or$h! z7zn&a;b$G9uV_$IDg=~^tTE&Jao2CC#wSUP7>o%sOsQ~YNy9k1C3-$@EBs)#Goj!e z{eejt#JV6;gdUN=!^f7h1CObqrAG8E&A68NGlBZ9YEhLD2C4S+sF)LJby^lH{%W)_ zs(zuhKf>ORTrO;l6Sd@gLt>+(j@-^t*^dseffx6K^mEY-*D@R>(>lq`Yd2}uJ^HmU zQz)0xg|C8h;*Q{y2AkFsAWKs%FNgD!z38p;y<$4WyPBXgyB?rS&e$izhd6qSwZa5; zVl}~-@OS&U3Uqr%JDFj}CzV5iKZG)RKF}M_ozUrxvp~9igGEtSujM4& z_<1lXGN4r-fox)M*yRE2+hKwQ(+ z`YGp8=Hiv3YzU}Hb`{bFs<&xZ62+nkfFV$$TxrY$u@B;TZO zJ&pMUQocbsbNxg**`W`VyW)BodZoDXfJb}e+qk9JX^&>!!u8S{(nZ|%zb;>iK@y-^ zs(7kY>yL1N&j~L1W>pt-jiVEC?!9kSN;i|w0yQ*E+Noc23y(4@VbCXzraf2U1t7=| zzMHF-!4bwo(-MHIa?fx2xA`u5#`>vUP4 z()MnuCNrk>9xq=S`&!@7jXu2n3ppKyoxpY!zVl(Ax@Eu)RuVK{&3Mq-p_@W8zg{PYKMp!5)J1y8ly+$!8rO_7u4k2amZImoP!{Rl^~}VKC%`Ev4U|Hp zEXUu(IxoymZVYP?=&48}DnDcW@GdN+M&0I)IBI4wztL^V3FaTz^r+MTwEMS#$KRzJ zwpp|8QK=CZAT7J=g)250rq)3jpYC-V;_J~MT zik@wOTrT+$3fz7ca^)Cw(bM461pCL@C0Ulh*!==|^m#<|`74&?K~CAVd)D??Aue}J zQqNv~5h{ShstLa3XTuLn2jk^E>++B6s@B~L5FD?;6&zCr=skO@=2ajib$$`-eG3og zq`DVPs&Tii?g%M?J8YY)zVBDh-7D@@U|{cFr0($WoIw~qkk&_Ly|z9dM(wLf0H)1L z1d)m*S@14UE#jz5^iYX9bd@d zHC|cNwjW5BGlfsgDi19;xkOAIPPtTqUdzzQO>`^h2Ta?o4@ICh%5=8x{{sL0A!e@6 z35o<_8w{ZTUpvUZqu8Hawqy#9cJ{!5*#A;B2gR@dR>KFsUs78{EjKJT?1`!}x>vcA zLJ29>&A-^_8cE4GH_*A~%@pQB>HYk`pUBx!g|QwAW@=`3l=GB4Hgdeq^9{ceBX&rK z0DID^LEm7kpIMmV;Jd#;=lp@q6$J0yMtQu?$tAP#IU6-I(x>O12^tcJG1l@I$mAzI2rt8U47-W*_;O388e zX1_P0_Izx1A%yfm!#mLDsx{EmFwl6(Ni%2^cTlnm4>qKFEgPVzBA4!vniFq`G|OOt zEk+(in42m}I6XP~w2}av6?G)T*vqI{qWldxa!xX$Z}8hs?6ML58=HK06lL9;Zi9le zsVdCEuLZCaYb3Jk&Z$=_ErPja$u5=0UPB0lVkyfFM?N+w*bgco6kzAZ0RUs zQQ>b&wE3aG{v!VPeWLi^QgO5(fkG)@Uh)r(_TNwR-}KUp+wZ~Vrf#lgZm#|0v7?r; zxnb7zVcN40vQXq;rB=eBxeEDoGW7|@C#J4hX`)C~RU}QSR@ZdRMTuJT6-zY4Ovm=m zsC*^9BJW{ude5B=Dc12tj*dTcw;x}(jy)I}-k-0{T0UG1#z(U{a?{ET)nP9{PxdA+ zVZ(3FA}4iF{cz;P4Ip(A49*Y6bYbm_>PuLS$s>z5bLk9p!kIpA6x>X45LBxfJyXT* zrXH}$k5AauX7;pUEu*wszzVHjA&+FAgB zg4Z#%C^YK4cY=_fb0+g-a`4UkKqE7immUAQnAwEJ8k5O1lb+UjDq|M?RDCIfs9^M< zQdemkF&tbkGuCpOhP-}DjVxd)&r|%x(IVe&={`HopC{{vZl+|aK&@`)*{gd;W_1By zwFcs0Ucx!%a^+1Ad{^bW1NfOevAEN@xb+AQ-ISchRl|`8KcJ4$;wUDgn(k#h?`&q} z?$WPAU>Fm{l)gn~FnY1eouYa$oUJI@b53!V)#k~_C6leBeYyT&Fnz%DXgv3I_psKc zT1yL^(=JFw+OjIPH{v__=Z%I@t1X{2tDz%bHNnvgg<6xStGD^Z#6y@Wt_rzN3nxkM zxXCU;HM{}`2hkZG;2GI=fnw-Pa>eJa_T$R#7!vm-N6cpE;e;4ZGF*{ zU@IzKOAu=Hk8%;}LpCw=$vZP}&u102AAuovo98x`PPfyN+$zYo+i~zx96*Hs1@!{w z^^u3|*GjKEKp8ZKq#(D+;Q;OzoB#&^R>w5;1->)p3(ik;pQ@d_nHeEabw-&kLC_v( z3_b`sBaH!7(4HYS@Uf1ySpW|x;m#uj!cMN=c`6G4(&HuOXM&%=#OfDgtX=|mUp4^o zo9Pazm-Wu|PmzHV2-}@{KaWVORtx=)5inQUuyfPLv?%rEj2Y=ZtW**?>K0b~~&evGxudR0eE3;PxmbH&p!xr&V<2VU?0CK}8S)o}s zHd}%zEBVu%$kQmT7hsd-irap;NujClLLFkntT{)xxPpEGmt} ze!SU8WA(h*A_8Wj?IJ_Vemkml_tgETqNT){8qGzJZtLbHe6Z!Ts26^r8ox?SX>joPb&ll<4U6F%L(N{8bQ~(SB#fKl@Zlq=<}uHIA`293p5lg9 ziX{}w$>XP+!^@(D&>;G@9gX^q7LPymqvTWC3E@gch~I{0A-P9{e)0tOKBXIwZM#KPf+;+{ktIKWYpxf( zJ@TcgUpDfzE)KdrX~Tt)iNMGb?&iTlici>lKhPLeCC<%EGUVGOMI`Z=RByjKn2|fo z>bGyO=pa8cGBCP@b{ryi?9)CRqMwnwd+K5vl-qnIR8Ou=lWB}}hCNyCYo1jlo8P=` zwL_>W=@_uNUFnx~%lMieB6%g|2|oY&YN^x}r7U^BjGie|{u*a|p!S7zqom24PH{dd zveCTb*=Q^k;N?p%@&8}T|_JcCw+zPUKTdA~0L=Tu9E z!HF$g7VpuCLxvY}^t+(7!M7IX)+~{1;^mL|_!P^E`B}R^NuqaDnVrIDyF&_ojT7!; zzA*N5?0*aqWp)Tt3lz?p?^@&%I%hGqqz#==eB&EvfRa(_hNt%W&ruwj-Bzb@jowmcXTtm$2>tvNmTfR~}LzyF+s?FqPTUWia7U@$`G-;TXI({B0eej6vu&@9C`JuxNaqq9|H-Ezg z8dMqayFjLr8`v-K4=I?km4&^i`|sXM;24uXqjHdvv^=UJ7GFzNvqE_1fdMjD-HM#{ zxU?cMk|=9>KS=DLxM8rPve-CWT3YxU8nE87-G~jPpfDui@eSx1a=&s`ikK0-e%!ov zILcgjxqlfU{eaqvCeAW{Hp*H6{S|JN(@0MD2MumS9@0ST=Z;VK3#HZ)BWyP3TUi+( zd)1%M^KII)4LoqgifBmHkK$Vx1bpvgiRxZb@8_r6jS>rccLw%Q_sbMZvDDgX)$C|h z52_nGHT{(PewA;OCm&$U5kiR^%S_xIfwwPEF5@rI%$Tx+HHvyhoY;si#D7}als&D) z%|KVpz7mDlajt5l<#*+_z)TCTst(L^X>dH2Mux*AK`z3bs%#>G17usOO#APwWx>Kz%? zhN}9d2zrYv#bOl5_uSi%(c!D=^XqFWQ?Z#7A<{E?Wr%ba|B8Z5B?1O)uL}D&K{?pWeHD22kZk-f2X6g=sQy8RDrbUiw>h z;S%67(w2lhs2QXZNPE9DX5&11V$~EtCQEsWDvF-I3ZvK;BL&Gh)oQ2^(0&^c zoWSO^SKc#m-gt0Zf0?+uKKA_uzQbGzS6s*J zM^zqbw&h{lfMfvRK*i zOHl3oas;KJ@^@}Iaa~Le8hq>YP5jfQN_-ykUYi842o(Tt zr%dSx{ug~$UgOvUzq^-adMYk!#$sN-U)d^;U-FMcEcnASY5S^fy5&*boR2N~GXivo z^+Tt_n%6Hiv#r~JThfivt}l7xZ0Z%vma4zfYT8e>RZfvaZBTl_d3*NId4_}b#rE^j z0vJ&a0U!jS`m>FWkW9*Te(o-Lgts?8BxkJN9_}Q2u{KLN6uMJ{%(%aLd8=>A( z;kxVRhsFCPhrzH*x`-4}G&^t10A_oSDY|>V9d0B1 z^bMr@!*>u{$N^-AQ@?aBA?D&@!vN@1gb6|=Q%+Q^v@(L0^0LZ@7P=YB2|oba`VX#< zC*cG%9i_lM4RD+9&8zTZfRLy;x|bft^Z6@_)rP9sAWb*CQ}B=E__oP2 z6^GL8(Z)IPQg4m4VNCQ0CJxnvTA+TXP}H04h}d|=``MG{z-TVdJnY~T>NLu1mAz`p zG;q@3o>1cy5b6$l{7wIn{S#8(6|W-G6+f=3KX`$X^(u;OzEL%&K1DfKsgOU$;H5uXDW>G{mcXE0+0 z3rkalRzzuvCTmtl#uvvLm8O^8o@@y_*bt7qCfy*BVrnke^0_q6L566CjwfxI&wu(C_>{fMgo1OTVLgiGl%zyM)xDU9PlBSK>*riUeK}2)H68JV_2)70AtpMl2y!zv@3r-w zXfmXaCUc4lupXTtsvePi#nly(;wR3sa+NwOP2c4@5*D7wFR6XJ% zGnP9oo0u~qUt1-IZ7<>!M`}~@vJD6yBos_0iO3Dqf`hrBZ<(D7$+4JaXeBrq2K?y; z{5~mk1px(*H?4u>*qF7nyU^J3d(=SYU2~WPZibn61i(80+e)=NMD*n?D0VKC!f$i^ zKD>9j$vP`Fy}%3h;{6(BAxW;RvB~8;*m9%sM-gtK%Ex>hy{_mY_$XX@V~5XzEmn$i zx;|Q#AQ_;TorWxYn>JI|pUPc&Icv7Z*)7WqOwm1KaW*_#ch%6oc%JJnoO2%I|a_QYaSV&BH_7) z6u)DCKZ#-!+b~vYx+G5G9`QRt?tVHQA;PTe`o$&nCA%_EFHU$Us&N|LH`N-cUz1zY7q9IL?{^v_8>TauSv48-?icf zF?k`JlzAJKVqzbHADk;pqqv9K*^CDL?cvyi#zI*QQhB7DqYhc{C!+*B{IH*v)`KF-Z4^^He4p~!dS+ z`4jb%-WtRFb}D~=fVmj5CVhTTI6nCci#a*9SY^s=@H&yAWOt!}T+71hcMDg@E3#i{ za?@vLlHIVE&Uxbi+^b2dsBMRA2k3yCH~Gg{ANYa&?~ok~O}vMEDzp|tKk@Cile<$F7K2EKlo zcQ6+Yayk65mFEh zh;bhwCjWld9=Hcq_!wed>Q~5jSbY3wLk@EIaH&R>#0j^VyeDOivJ>f^KZ2Bk!$%(` zdSW~Q`&wNp-Sxh{u@;+ii#DGsX8=PTyypwn-oIkSlgSO4m3KlD+?iZx)^g`}F!a++ zG4B>zKa|*?Sw=%;l5r}Q2FFo z;W7WP5R7_vW5ab4>D9sLu<)>Qzf5jqhca9J0(`OV0{6)*nTFn?XB(|GRceVT^AZUix~ z+R&iza|e#-y)ShaQDo5Fw!I6AtL&mR?{IY#xdwak?n-F@iFVHA;4n_La@f%&2v^o* zfA3l)>#%O*=hE?K5$sm1brE9p7&2JA7W8rXe)&)mAucOn<&~3QXB83b7)jl%sovd> zw^Z2-Q!z%j0ne>#6(chejP1BK$Q5OE{70}RuX=ZFjwUIO$^j81o1YR8Zb>4A1l7~& zcR-pjZQ;X-TYUA9z<*rEZ$nJ)hqVy_f(xy{ zt`fGt>k774(@(O1en2YTY=4-rDut6jMv(Gq^XP&uo$M3t%qWNSo&P;O9lpZiH{3zf;Pr z?L1lp|G`$9li3k)4$?*DueYDyQN9iQ)Dpv;7M%@;`!aoN63BpQ+!^3Tt`lj9X5`gI zCfwf|_-HKR5KTxgof@kc;)Fu+^aS%|D@8E|G5;r$vZ5ClTeyYsQ+z_MLjX2(1Bx@W zI(9mYGE2E_D{#LQ3!AnJZO7=WE4k6?Q(^%+K1+^N%v|VXc-bSybzPv#DDEBZOAWNP-C?b))yc&a z*nOkcGK%Y}86&TZvP})&D1%D>p2m=>?V5B3tg;F4fR{V7>hkYPiRUL`;XU8C4>@#V zq;^2tjgaDxo1#kBTq$jWP3MQ_;r!+NW64Ll(4*0t?nGC12NGPfT|both-QP;DU-73 z@hB-=vQNYj8&*1Le#v46-??KRjgA>gmJKtnzQ_q`Gvjk^r1|j~TuZOjO6#igXi}@K zDKW;$x!~)T3ce*+aL~JAXH{2=N6?|-L{r0B?Q}xfp$_DovcZCZp$6bR&%>985Y zTx)Bm?c{8oY1AnUx8IewOI!jx3)T3{|wzb6Jd*%uh!&KM9 zFCJ((2N;cpsgnQ;FE!ftjq-{`#=!d@lLrdzmNWCiQCj1cYIM=FAwmtacg^ERRLAlx z$(-fTaR$DIu&CYbzTP=7t_xrC*=GsiLXm!k=K0ElESv8$cXd>yTmx^ zvm)G%(04(5c}g{CC-5WvOsC?FgTi%yxNZqvteDubO-4_^f&AMUjVog%$#Ac(+T5f) zp#yyrZfK&?xyrSn&Rli3%Zl20U`m_gKhU zjC75A$+N+pjlQIfMv5yz;zA)KC$fNDnqAdBc7IL7TdEr@A-`q4PB{)Il}978pgM^X zjuTPnZPc2P*_n!@2Qru5At;LjE3aM13$0Yv(-~9QNt6T^&li zNG+@e2Lge!UH>Su;d|@;eo^3E9Tg^ivCh+`yDy9$TM>C44Tpu znubW#nle^Hq1*xo`8Gve8b4BPdk*c7iVIgDY01!XvS0m5#z8P|J7V7;WewzdGhr}` zKD#Z!8doi)rp#6HTsxJt;Lx|eW#W2#?P|9uha`wH_KoQ;I;0B(krQPo@oHI3986jR zpKRnMR|kNu=akfBFV$CR5=mNC(RhM9IqygITKgpQr1~Zt76pH4Ujp2x{Xe?CF-VYR zU9-EVZQHhO+qR8qThq2}+qN}r+qUiP@7_JTXYYxP$cn7|U73|H9)z689Ht~E}%Gc3mKOVE3&h`d!ctDz#v?K8%PWwf<7+`0=X{9lqetYIuv4Y}v_^ohX zGv4B8bdgqzLi5)`F5}dqL$<^T7i@dCK7i-MVI~R}49s49M;%Lp7%wEw&{?9R@OO1J z^~b@EnKVbMe?_|SS|5vcOK&x-@BCv?=}PT2;@A3zP+PAH-r6J5fz9}N4ShqE8DIoj z&k^g1t6sPKrhbk>9NL1j40vk7tk+5+1Dc50y_O$JR^hykHXXB4^MLBYFr1)^=QKOy zC-NOqNFUz##PjS-Qgng-t_R1};Th{P#PHP~R_NXi75Y$~ns{fV-#hzL|3M?bJUO8a zbpANHVDP(`S~NifHvIHkn&@D|FX_Vh+KNcdNiyC}i($=MIbzU|;O}4y!;Oiw>)6gL zCOx7@v`V%UwGUFTP~SNDU0CgtuSbZN|f#Oj~hGj+l27h|}M%sZ4sY30p&e6{lyXzRvO|wlx4xX&QTluZGLcad4}Jfx zkMYl$3`dEVbo`0gV}4@x|Dl2U@1fFvy{p+eSp7>TBS;DAM@$0#tC>cd16GqNF{I{K zL|3vH)eESAfJ7)t6ux03gVbu`&?Sy;&2WziVUYPA+>IE9*}AAKIYY|Cl^4_fB%5bP zkB{#+#15&dXDt7)Fd~wND^YYM;D|69>E7Q{7F$C^CDLLBBryRZkpxIHnTg$Gzje?n z^wx2G6+Ym6)Xwsb>Klw;$!t9e^T8@))^E@wjP?K?jd5g*-~kFOXN=H!EcN=&*RFp`Qar^dZw-04|Z#$*88ak+NnRz)%&E*CO#Xe9ve3x|D9J zrO>I0gglX1K!`+1xEl9IvcPAPXM^E~{PKtDj=80WK6MuBQ4RqP?lj z=^9LCb#1PEh${1<)k}%2qg_n{R3gC+erVHx3#LCn(4fwWpgTeRhBd zZzs3_qlMiV5Bx-dB@DtYshwsAViqz7WN>|VVxd3WON7rgX>5Y^ngMG#9_jp?OQXbE z=AlyH6gw32t7-)(8Ed0T8EW_f9Qu@S48EDiC-6;*0zbDetbCXUX8rhtGm`l~&XK(R zY0)?Z-%gHb8ZLh{p2}7?EN7cD#OSvgm+ga86AU53bwm&Tt!Dbq#@$Wf4y*kE8!Peu zfBGc<732SRsyV3z;ikO!$ahSd#+KH}4^GTjX~1F}Cn6B_CzuBv2oVTK6FVMIl$6Q9 zv_F5TJ$I={b$w0pd~R;ZysCp(_)Jx+Y01*c)ynF5ZRod)-oZE5bC7N`y(PaIh=debEPQnhxsT_$y?Z4#j`~Mm6Kh8N7-n|1$c=7JN`uidE2_ zGh>HtFqW}f4m8_X$aBh#j8{Xa5B?xtqbVNcuGY)I-5WyMCgnTqXh_W1+6Z(vjj*#< zhn;rq0ljqc|@SkkVm`$F=GweJ0pVZUv=;_yVDpSZlUQf5CSiS^v{XVa#$a) z@J)7OJ7$3=XvQyw5H?37adtc6=>vY7Snl0(^-$-5b#RU#j3gvZ%MI0D908 zUIVaCWBR|eK))qczH6;t8sy(2pna2?xM03A`h3x(zsZk$?|S?{uHkzoM+kI9NWzoi z^Z0`WF~Xryz$uA@TW*MgAu-EWH3NgF0mFT3o@^Kn)5ofQqZM0@L2Z z#QVN6)mjXm8n={}0mfd16|cl*GHK2M@8sfcZG4BHnhArtsZ1*^a@>67w9w3j#@87{ zG1F$F#+Ws$e>plBy)t#BO#I8rDE*2QMT#FWOx(+5Uh$bWLf7FvX!dCWp1a!F7GMHc z+|ISqN`x3S#)X;WiFBQ%xoGq%5Pjb~#hXTgbbmG!9&@v;iYa|H2^hf5BE|(UEoBAs z8nid+as%~O*yb$kd4&|veaM1%0$!r3Od8l>t!ZiiWdtE&OoSaa^1!;-xFi}Vy2%); zA%GejL}rrIop57OhodKR6G1%>Zqg0t{?9(Zm*3merJlG5cW;}_ zrq1JOUog55X%<84`0$$keiR74)!{HJ8*x?oHoil~7)#$fl;#S0f8-AfF5eeh=+~iDoCqbNgGz1#w66kT3JUt9qeXU zZ1}JwRW@o1i?pzOq%V{0Xe8r-#HGUJT2wQ5L>+&1OcB%Evr8+K9I=lkpu`R{P7{Zu zqz~Hk(^plv#8bcgvrOPQ*5W#{hm##{Bw4-SWd&;#qBI~FeojbH*i6n&!_PdRP7^4o zQ?{}d3fo7{!^z`L#?~c37^e*B!sv4zo3S?w%xaG$OrkX>69%|;xL&{&Usj45lVB(& z;?le3una9V#{Nz0+tSP}Zrs7`i<23C6)H5|U~?2Ku^AT~?FYo1X(b|Cjamk>AC08^ zcI{v6Dw^ehdQ4ICggU>X#AI$C3S>aMu!Olek0WC|<1?72`ilyy(JZE7YX7~zO0tAo z#9o#TfC@MpkmU4C?D#QXnz#$Aa~gZ_;7?#s^q`)Y|F2sE#YcGByrEQwLLT?p>E_Cb zRc?b)nAmIC6eAIv4mb;(6(252u@zOWrj?GT99D(mOO3zg4v}d-Ul(Z2k{$K@s!m8x zHtTv0`X-dCn;_9rj8}q z^eVsCZxr8S>L9mdu7&ZwsU`~WcSz-2=~+WGqow6W?=8^VLNQaWZDU+rTmMSW6jlv2 zl?mhwh%>#efDc=t|7aCw8;QR%-T$0>uSei+!4?x<7b^?~cfCwD>cK%dS;O(PUxBi9v#g$v4AWX5N@IOL#WJ>HR}w z-k1!FW)#Dz`|F24G#%tr-Rs9(Vamy&cDigVdh00tX~hFef)A~jn}0U*sRF0roWdE~ zDb#~V!dCHqa5=quSUK}4g~ysaS?UAzrderSF=T~3X->g#hNXYHIb#FkDZ`&~3GAn1 z=#VU4w0^||8I_{qRLk;o)6&!8^gPq_Ghvk|{oU;ybj##2OXaGvGv%()`2~sM^r|Ct z%j&YDvILnoqOPFWoEBQfMGDLAGSt%7V9rJ5lCt?r#@wwlaCrL0uA%q_k?Z`${bI}9 z7HN+_5B)iJ*@SDKb!D^CpfUPP}r2K zW=h(~+bD`kp&6G(6|WH&vuFPzRWp!3?uTj?5u`B3a6OKEsfkB3saKcJW{p(kXmU|}Jit&umGkCS^;1ddg77@ps?*A< zgQ%%-Vf5}@hOm8lpC0K)yQRF)2~gOG5`_c*ddFD)@z=V}?8-(vcJ*-y9YH#8toe45 zB&i{q2p2W8Qdi2B*^5)R(&wIcHP5S_gPYYN(%lA*z-61Tf>J)$qjsC|c^OST?|8|F zkTX!JsDfqdT8|{!4*nU?JEgVPR$=w^`J6->XgZ6yC`T(-5m(|k+a}4#MFo4A{ARwB z&TJB#u1H=dRs8R;tLc-DY#K%Tvy_bp<`Uyf_5)``Nj&uNUdDOQoU5&C7ZtsCnC4I~ zwIrjtRZ;e1j}^xfwwGoV;=_uyC>NHCR}C??uMs2ZGBVrVXV0cQa9>rvI6*RT+>|y%G`>w?L1kL1?HM)qZfz) z0cMs^=0HMeg}l&8P1gusOYkJkTHUp?XKcw`1y)Z4XF)V?s?G|J@LF4aa*PBeIVpG% z_fBcmQvHw@dV7w~>KEFb>Yqki9YW*;$EJcF%4H+6_YCcwOL0^ho5|4KZ_p=Gv^LII zQ-_M2Y?*MJL^B#{#T?-P3q@_sCEt?)F+SMqct>c6$4?U@>K~hQ@TX_tr1;x!u1;L0 zY8rO|PR{f4IRR;fO~5LH30y;^VEeXrJ^FO_)&7$w*;k?LT4^Y>8}T`MS$dSZ0)k(6 zav02Mvr`Zo_6C8*5jx}qTn{Av=Q*L)=9&#&HtWGQR+=BWm{fFp!8uS>RXutqDC({BhQI8988b2%_4qK0GWVa=7maE zRbI&iy|nHTWDZsw%eLptLBETHl=<+<1x}K9Qf!b zNco2WWE0UipomPctL3E}fH3=WGLH@|xr7{u|DTajIH4OtDB@K!16Kz%=*|&}w!hw; z&P!R&A?ZhCyo10E1b8l1dW4>2eMNK+o}@`dWCv`PGFzMhM*q(04S1AE-E&F)yPG2Kpt}DI*mnknJ zN1P2J=pAJ-_}gAy+#OTAu)r;e^lm{JFk+D^=Ly@awk$P&$YPD1hoPQ%i|v#bRIzRO zW>K6kQ-3LZ;y2JI_v^lZnGpM;#PSs=YKl|P-&2upkrg>4B1U1;v~mfrD4~DolR2Y| z02%gi9$R#0m9n7?x+Hs99w;|Gy_VbbVSY4dLEljGkvh$Q=d?)ap|COKXkP)F)#f*D z5raWP3MzJy5)G|Kw67um2u1pzTSW1wP3y)sz906Eq@B2|C$=u zXe#<9>eH=G06tM03~l&SSfkl!-e)`BGIe?esw+ttKC{2{#X?uz!cow|Xz`r(1o`QH zl(o$@u`YyaHz3z~@2z)oO~6asci**d1i-%J9?Yy z?YjX!K~4qCzmvXL!I#}${Lq#YdLNZ>wSB=*hR^u0wb}M$GF<_uQ09g^i>Fu*F`S!8 za<&-1;FFdH)G(1B(BfAyQgObg04^mjU#4e-3u`FkjcDc;y$Xx0LDR%h9^_J$09z{; zj|e+y?A)~Yznk4Xu|UmkT?lrJ)nqOeG{Iqe_x=hYlj|*L4>aWzD~y=m9ei+wX2L6@Q?dVp&Eai$)(!<>6DiZ!ND+o{ej`m3uNTZzzxN zhKReu3ycHF)%?opKq#pb_HXni{Jtui<{Yb55&wJ?eW-z;W))pZCY$7Q%y(zY%J#U9d|9^guN^=m=2)^W0`7$= z&01ywIuDAT?qH}M6ds8#iPw!ND^eY($g0Rb$fxBohCHQYZzuhnaQ5e2w0yUlthas_ zbs$H=-~a-xMi`mZ*d81hpw66VfNFnSb})_&+mjE!$tj8lxYMup7#_&gX3n_*NtuGg z?v-)J=iL~m2Y;SJr5A2qA*wgkQg5Op``994&WJPiK@$4tLnp!vZAg;rg;_r#lMZ)#+})g24x|_cjfX4p=b@i(VKtyNnaaQ?9Hr zdk&erTJ9%0e_C7(g6$|)Ghw-;f-3BDZZyif`o;TsNN)Ku?ree7i6sk9iXZ6ClG+)8y&38OVSYo#S%>7= zH{&!j^PI{m$MPsOuHe7oh^i>kK}17o_a(SBtn$Y=?h;&5=8o9M70xVOrml_4%dLww zmlZuDpRAJ|=uIf9k6)gxXw<~V_YKCh7o|2q#4N7=NS&;VA1hEmmj!Q&M6e5DwQi2; zu-G9RGyq&4NRzoXt%i_`5b%h!=<+o^ma4f?ng-nsM8#+X-K8!L(N{?QOwh)13>6mK z^TTc#QT8gA^NrW=?cfV(O>(omP;97je8ih*h;DS3BjiWv)D1HNtMB2&*6IS4o@Ae>fxN9&LwAt$NinYC!^i-0t^Z9nA{h7=1npm`#B~&C^ zc-H8By9lnc<_|0|M76lM2CqiyEevXX=&-WA|7Y ziY9!~kQZZgS1Ou$g)ZQ>JOwdlB=1qogQx_8c~N8B(O&|I!4z3w;WK3}mZ1Ro-$9uD zxkwgt(<94*gHck}DcAydcG`EfRat`V0ca=Ou~Dz6t|f*oU&AFPwvsPS=Cy!r>6&LhQKZ)O zfn`XKS9Vi$OT z8${Q`ICD-8p&l#de5t3x`t%I-iGS^D=^T1O(T{BAO+^|b{6pgWt#76JI&`mIu(BEPC zNb0OhZ`IRv=7mML`S*I0{U}9N&A9rMt?Nmgo;>=V(|%6a*KV=q^_@AStF%l)6DMUld?AD3mTs+&|sLu*`}A-Sa=Q5?m# z_E)nvFtwvBj^NBU_fKd4mMF;?kebYa>?5jZn$4agN%CL5Kea{?>y5+D^I%|U$!9kV zG~<5FK=bbIF&}w-V$m>;2lomzCUJ4RpnL}caSmB=ILH(0FF=z7j)5)bOwC+>Ijvu# zD!ikAph7em<9r)pc|y`+fZc}lZd8L*JE$Vg z=dT|?8%3v!x4I)-)j&Pa!ETt|qTk8)4k(mh+PE4;pJ^$XEEK+lKLpH5LjztHu5d><&BpWqmqVH&!ngXh8LW!|F_in^h zU+~CnRw*@3K((oBQaSftc<23omiw0Xy`C^#m0?B4z2|=Ie)jBn=IwTU8uI0PWd1Yx z5)y2~j@zf2DbGOij>WPO)B)m=K>hspRu{!~3BK=^UUuvY6~=aG9oWMY{khC7B$%_! ztK{Mt>I=}XwG--k=?1q`O^9TRO#52x77(VwPCFSc_?95=t9FAMeOL&AkdH7mCis?t z!;3posoqyGImCnmXPAuW1(~;M7r{&Pz(=(pD`)=3J+rJ2?MB4@R0w1wiDsl;;pPs;8=3U=&Bu;USQ7D~5#nIn%aSDG z8fy72IdQ7B-Rcb@X}`y6BV_PVI4W8+D8|?G^z}MZ^G3)v+L1AMpkOR96yeWYhApn{ zc&SXD%n}NUxy&Qix_?cj8o*&xlN@t19>{27fLNhHEZ6SiJ_;!+A#MgUl2Vms;XyXR zn-zuBX`;{9X2`sXfwT;!>^U+_h81qQlUsnT4c*rotas3?Pl&%AkC>{t81_FGdQ6NK zci!=4V5}`)ZbKcKyW~$x$lru@VuI9((8$Y6*tQN2CI3xLkjAR!I3YhFzfNa6O&@kM z>t~ru$l`ewZ=shb7?816oN0HW1)-8k;7ZDtx|x(puCJ0-bQSM`Ru4cFz+P!tGv{3F~v)@udsWU&xwdEWkxXjcrPEJ(PQ8jJVZW_jg%Pf zkK!m@v{@att2(!l^Z3F2Tu&FuxuY3v<*vjV{lzjIk@_5i%P_*deI1UJA(<2Rk>$UR zO89-UZT#<_U`ALZd%VWu&5wtggtiO?hLWG?X70!PfC!cBBU z#7k(Xfiru6&AC(b!Uva*y!FjNr*dEGrP+US?TPAro|tia_Lk7PSQ^WTd*C-JNt!9E zJDT@9Eo`Xwwo+~j+chh7#%Eky#PvQvmboo1yJeC0AY9;GNd1R+wV`H9LV7Kt#_|m{ znaW_r-Uz3Ue@^*JT6Bu==kzTUPKy!$5S{Y}Bod`h)jr!xRrL1mGv!zAe#{FLUL>-f z5{hq9N6)GF-ZkW&R23dh&CvN+P+h6|ir+nyvcRYRECpS+f!X9IQe~u@oYd+rW-*J9 z;E*N#oCOn0buN#tX)?`MAREmcDA*-A3SMN&;_cPA_^EonVh^nZ9u?YbfS1Zkw8|PI z*`5h8Eo0I0=e2=Y*@I}`@XMZ3%>{O{nWg#fJJ#XxlDxQmLuxCmqEAL&*c5ZEu|KHW znBySHZb>d6VG0RE*^P;XrN@jEkYr+{E4W9k-;2oxVnra;GSQKBAxE4c7I5%B<4Fr= zy~@K(36X_FaxO->qYj*}#wFa8Oi{#(%!vZ?e;YF|l;u@YEUle84;k?QhrF4OR#>%y zbh2;B;B4lVj&8H6t)xK$s+ygcXXTB&yy74n#OOIXY>0#eU`X5_;}*JI5H9_o>ldeB z+PaFflB26|GDBuOiBr1yAug+5fLKVbQfBMBl?xl!P#DPB)r{dWQ*a!k4F>F70R0t9#w>dUGvV`J11D#q7*_L^@H^sbAo{yF=$g3{rOU-RMLdPru zHJ2yyEio6X>SmZ19J>R%wAJ#`&owREgX_~3+hRX9NferKSTUkS#XV33K z9vxbFecdqN27s*H&{^t7FiDzEgp5F>MJnNY2X@>nPa7KPWvIUqb5hZ7xHRWh zF43()fRYF}l0_sg9VZ3XM!F`5NdAgck@pCM?*X{qT}^|NQ?i21FsB%lS)W0q-<}StP7c%Y)es^wK*BaJzH2!_Q#jas^K^;mQ9O! zO}E|5oZ@lbcDajOlC?*#za z35WOfUIM0cV;3ZV9}>xQ<98?;-IU|Y#;@(v+p&ik^i5p7f^%g>%|o8^mBnis&XrSsOi3-ij)gp! zvZN468m(`nM2U~Kve3hvhFbf9nqqybnEJzy7=%ti?<~n=PO2}Nc2dj}trd!4;+4}o zF1o(T2l&$Uj{BR*&Y*+(gILAdfMA`CPT5F=b>ihw^vcKh-u8!l!ATKkdg59Bd&@N> zt?T<;)|K{o;?n1s7u)$Hsv#}H&i6x}?6LjWvYo7Kn`Jf#&Eid2MVWD|Ar)j}J9i)K zF$t>Zd~xKL>rEI8g5N8@%{Pp0x=YMAE%X|_4rAS!D27oSEus*V z(Tzp3zm(<>jgT4%u49@IXi*o&Cq^p-MmbDL(r}=gKqX>Df-1$COOfY;Ws@27mp33; zzVmaIr8|Vml6$FUVBAy9mpQ8Y0>mLF)}1UMy-$mAxdw`yg#A-r8vA?Qyj#=3!9c2r#K= z2Uw}32W3$%Ds&0LP_if{NKV!>Wt^#4#;wLNa!CR>8oM`A$HcAHF=kNx**E5pOCA}o zR585=vGb=!`&%!Q3}xb;PmMO}P)EIP;*RJ-=~OQ%WnLyZUMiG#NSP%#j|^G1AfaRZ zA=1@lNJ#YU--!@8Vhy@4ZVyT4DPKQe9wb;&?u1!&fUHv{5pTwTQ-Z}ipi-pL>QA>L zXkR^NsX2f$kuPsf^ByLvW}YQ^Uc_FuiE3vgpZ7ays<+DP4d`_~2J#7fresc3o173> zPP?)WT~o8p!K#FbriAXVFWK23=#Tw!rJdO@>yd1FkQkqhpJ0aa8nr2pQW5>5!{3pY zB}H+h4C_P5GbbIyVve+Cs&2#HV5KB0BFAkcT=W@3FXaZMr9+!E4F*0iKAqTzotSAW ztH^WXB2?M!;v|g}$2ZhRtjW|crY%4t$vVivqp5Q32_p#|+yp^1pWAl6;jQxUxL0B# zWK|eZ#q=gVuJ7KxNHY%iM9=H0xbD8dEmZVU?bfIaX})PdKe(RSm98fS&NvuYAG-31 zz^_Ry>_|czzig1z^`wvZzuQ@+8mcimVj?A`w9aOMVHN^&wzvOmD?ZQseZifyoB-E%U*nTUo!ex|tF1u*vNdXJUtt=Mjo1X(IbZ*7&$-WEj4R ztAiJUoM6majZf2WE1GzSTKF7IH7#7tO_#5vty=nz_^jr2IXw0hELI*$Q=TNwl%%;_ z6$lZwXst}+s^y-#DxZ>v=U$5A@-33v?KxNiYSP6W6c{m1 zBP0e|h!L(+z+`+ZcC9Wy+WY-Ka;}Fe$?}Zkcv;uQH7zHanTl(qi0 z64c2WDCmF9L$I4Ofyv24W_@MT^doKDXzt)in_H=^e!-X0HQ5o{qbXr@2$yKI>v0-@ zU9ar_Q<=|@UB?%NX69bKu+hgj^Kh~N1ZbYi*uUb`(jgrId(yIcmI>2DgvwOm&s~Aa z1uR_pLcvt8F?RSB2M%t9Eq%Fw>&46gKM3j+U#J`%0AA`BEKe991=<4r!$Fpr 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�%=iq=O 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

      <(D3uIWCtrYF@-1PQ-?l2qz)Vr~x7; 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

      Wh{~lUN^Q*i=kx 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

      c(?=Epmom_iurr=9Qq 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%0D5X)!d5W)OhXLJTbgl5W?^<|uVkTZMf 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 Z{}~=3VR)T;2++$*H*iK)fUIh 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 diff --git a/spring-batch-jsr352-tck/jsr352-tck-1.0/lib/xmlunit-1.1.jar b/spring-batch-jsr352-tck/jsr352-tck-1.0/lib/xmlunit-1.1.jar deleted file mode 100644 index c2d2ac6e981d6256288d071a0303c58c31a56905..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 86249 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 TFfii4A5KDG{KyFm@nHTBtne7^ diff --git a/spring-batch-jsr352-tck/jsr352-tck-1.0/readme.txt b/spring-batch-jsr352-tck/jsr352-tck-1.0/readme.txt deleted file mode 100644 index 810c0598d..000000000 --- a/spring-batch-jsr352-tck/jsr352-tck-1.0/readme.txt +++ /dev/null @@ -1,28 +0,0 @@ -Batch Applications for the Java Platform TCK ------------- - -The Batch Applications for the Java Platform specification (JSR-352) describes the job specification language, -Java programming model, and runtime environment for batch applications for the Java platform. - -This is the TCK for JSR-352. - -This distribution, as a whole, is licensed under the terms of the Apache Public License (see LICENSE.TXT). - - -This distribution consists of: - -artifacts/ - -- TCK binaries and source, packaged as jars - -- TestNG suite.xml file for running the TCK - -doc/ - -- Reference guide for the TCK - -lib/ - -- Dependencies for running the TCK - -build.xml - -- Ant build file used to run (and optionally build from source) the TCK - -jsr352-tck.properties - -- Specify the location of required properties here \ No newline at end of file diff --git a/spring-batch-jsr352-tck/pom.xml b/spring-batch-jsr352-tck/pom.xml deleted file mode 100644 index 88356c4cd..000000000 --- a/spring-batch-jsr352-tck/pom.xml +++ /dev/null @@ -1,78 +0,0 @@ - - - 4.0.0 - - org.springframework.batch - spring-batch - 5.0.0-SNAPSHOT - - spring-batch-jsr352-tck - Spring Batch JSR-352 TCK - Executes the JSR-352-TCK suite - - - ${project.basedir}/jsr352-tck-1.0 - - - - - jakarta.batch - jakarta.batch-api - ${jakarta.batch-api.version} - - - org.springframework.batch - spring-batch-core - ${project.version} - - - org.springframework - spring-jdbc - ${spring-framework.version} - - - org.hsqldb - hsqldb - ${hsqldb.version} - - - org.apache.commons - commons-dbcp2 - ${commons-dbcp2.version} - - - - - - - org.apache.maven.plugins - maven-antrun-plugin - 3.0.0 - - - run-jsr352-tck - verify - - run - - - - - - - - - - - - org.apache.maven.plugins - maven-deploy-plugin - ${maven-deploy-plugin.version} - - true - - - - - - \ No newline at end of file diff --git a/spring-batch-samples/src/main/java/org/springframework/batch/sample/domain/person/PersonService.java b/spring-batch-samples/src/main/java/org/springframework/batch/sample/domain/person/PersonService.java index 8b1afdc32..78b45b69f 100644 --- a/spring-batch-samples/src/main/java/org/springframework/batch/sample/domain/person/PersonService.java +++ b/spring-batch-samples/src/main/java/org/springframework/batch/sample/domain/person/PersonService.java @@ -24,7 +24,7 @@ import org.springframework.batch.sample.domain.order.Address; /** * Custom class that contains logic that would normally be be contained in * {@link org.springframework.batch.item.ItemReader} and - * {@link jakarta.batch.api.chunk.ItemWriter}. + * {@link org.springframework.batch.item.ItemWriter}. * * @author tomas.slanina * @author Robert Kasanicky diff --git a/spring-batch-samples/src/main/java/org/springframework/batch/sample/jsr352/JsrSampleBatchlet.java b/spring-batch-samples/src/main/java/org/springframework/batch/sample/jsr352/JsrSampleBatchlet.java deleted file mode 100644 index 75c4ce441..000000000 --- a/spring-batch-samples/src/main/java/org/springframework/batch/sample/jsr352/JsrSampleBatchlet.java +++ /dev/null @@ -1,51 +0,0 @@ -/* - * Copyright 2014-2021 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.springframework.batch.sample.jsr352; - -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; - -import jakarta.batch.api.AbstractBatchlet; -import jakarta.batch.api.BatchProperty; -import jakarta.inject.Inject; - -/** - *

      - * Sample {@link jakarta.batch.api.Batchlet} implementation. - *

      - * - * @since 3.0 - * @author Chris Schaefer - */ -public class JsrSampleBatchlet extends AbstractBatchlet { - private static final Log LOG = LogFactory.getLog(JsrSampleBatchlet.class); - - @Inject - @BatchProperty - private String remoteServiceURL; - - @Override - public String process() throws Exception { - if (LOG.isInfoEnabled()) { - LOG.info("Calling remote service at: " + remoteServiceURL); - } - Thread.sleep(2000); - - LOG.info("Remote service call complete"); - - return null; - } -} diff --git a/spring-batch-samples/src/main/java/org/springframework/batch/sample/jsr352/JsrSampleItemProcessor.java b/spring-batch-samples/src/main/java/org/springframework/batch/sample/jsr352/JsrSampleItemProcessor.java deleted file mode 100644 index 4429592ed..000000000 --- a/spring-batch-samples/src/main/java/org/springframework/batch/sample/jsr352/JsrSampleItemProcessor.java +++ /dev/null @@ -1,43 +0,0 @@ -/* - * Copyright 2014-2021 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.springframework.batch.sample.jsr352; - -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; - -import jakarta.batch.api.chunk.ItemProcessor; - -/** - *

      - * Sample {@link jakarta.batch.api.chunk.ItemProcessor} implementation. - *

      - * - * @since 3.0 - * @author Chris Schaefer - */ -public class JsrSampleItemProcessor implements ItemProcessor { - private static final Log LOG = LogFactory.getLog(JsrSampleItemProcessor.class); - - @Override - public Object processItem(Object o) throws Exception { - String person = (String) o; - - if (LOG.isInfoEnabled()) { - LOG.info("Transforming person: " + person + " to uppercase"); - } - return person.toUpperCase(); - } -} diff --git a/spring-batch-samples/src/main/java/org/springframework/batch/sample/jsr352/JsrSampleItemReader.java b/spring-batch-samples/src/main/java/org/springframework/batch/sample/jsr352/JsrSampleItemReader.java deleted file mode 100644 index 6100980da..000000000 --- a/spring-batch-samples/src/main/java/org/springframework/batch/sample/jsr352/JsrSampleItemReader.java +++ /dev/null @@ -1,58 +0,0 @@ -/* - * Copyright 2014-2021 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.springframework.batch.sample.jsr352; - -import java.util.ArrayList; -import java.util.List; -import jakarta.batch.api.chunk.AbstractItemReader; - -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; - -/** - *

      - * Sample {@link jakarta.batch.api.chunk.ItemReader} implementation. - *

      - * - * @since 3.0 - * @author Chris Schaefer - */ -@SuppressWarnings("serial") -public class JsrSampleItemReader extends AbstractItemReader { - private static final Log LOG = LogFactory.getLog(JsrSampleItemReader.class); - - private List people = new ArrayList() {{ - add("John"); - add("Joe"); - add("Mark"); - add("Jane"); - }}; - - @Override - public Object readItem() throws Exception { - String person = null; - - if(people.iterator().hasNext()) { - person = people.iterator().next(); - people.remove(person); - if (LOG.isInfoEnabled()) { - LOG.info("Read person: " + person); - } - } - - return person; - } -} diff --git a/spring-batch-samples/src/main/java/org/springframework/batch/sample/jsr352/JsrSampleItemWriter.java b/spring-batch-samples/src/main/java/org/springframework/batch/sample/jsr352/JsrSampleItemWriter.java deleted file mode 100644 index a5dd77c4b..000000000 --- a/spring-batch-samples/src/main/java/org/springframework/batch/sample/jsr352/JsrSampleItemWriter.java +++ /dev/null @@ -1,43 +0,0 @@ -/* - * Copyright 2014-2021 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.springframework.batch.sample.jsr352; - -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; - -import jakarta.batch.api.chunk.AbstractItemWriter; -import java.util.List; - -/** - *

      - * Sample {@link jakarta.batch.api.chunk.ItemWriter} implementation. - *

      - * - * @since 3.0 - * @author Chris Schaefer - */ -public class JsrSampleItemWriter extends AbstractItemWriter { - private static final Log LOG = LogFactory.getLog(JsrSampleItemWriter.class); - - @Override - public void writeItems(List people) throws Exception { - for(Object person : people) { - if (LOG.isInfoEnabled()) { - LOG.info("Writing person: " + person); - } - } - } -} diff --git a/spring-batch-samples/src/main/java/org/springframework/batch/sample/jsr352/JsrSampleTasklet.java b/spring-batch-samples/src/main/java/org/springframework/batch/sample/jsr352/JsrSampleTasklet.java deleted file mode 100644 index 9101cc6c9..000000000 --- a/spring-batch-samples/src/main/java/org/springframework/batch/sample/jsr352/JsrSampleTasklet.java +++ /dev/null @@ -1,57 +0,0 @@ -/* - * Copyright 2014-2021 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.springframework.batch.sample.jsr352; - -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -import org.springframework.batch.core.StepContribution; -import org.springframework.batch.core.scope.context.ChunkContext; -import org.springframework.batch.core.step.tasklet.Tasklet; -import org.springframework.batch.repeat.RepeatStatus; -import org.springframework.lang.Nullable; - -import jakarta.batch.api.BatchProperty; -import jakarta.inject.Inject; - -/** - *

      - * Sample {@link org.springframework.batch.core.step.tasklet.Tasklet} implementation. - *

      - * - * @since 3.0 - * @author Chris Schaefer - */ -public class JsrSampleTasklet implements Tasklet { - private static final Log LOG = LogFactory.getLog(JsrSampleTasklet.class); - - @Inject - @BatchProperty - private String remoteServiceURL; - - @Nullable - @Override - public RepeatStatus execute(StepContribution stepContribution, ChunkContext chunkContext) throws Exception { - if (LOG.isInfoEnabled()) { - LOG.info("Calling remote service at: " + remoteServiceURL); - } - - Thread.sleep(2000); - - LOG.info("Remote service call complete"); - - return RepeatStatus.FINISHED; - } -} diff --git a/spring-batch-samples/src/main/resources/META-INF/batch-jobs/batchXmlConfigSample.xml b/spring-batch-samples/src/main/resources/META-INF/batch-jobs/batchXmlConfigSample.xml deleted file mode 100644 index b62343d6c..000000000 --- a/spring-batch-samples/src/main/resources/META-INF/batch-jobs/batchXmlConfigSample.xml +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - - - - - - - - - - - - diff --git a/spring-batch-samples/src/main/resources/META-INF/batch-jobs/inlineConfigSample.xml b/spring-batch-samples/src/main/resources/META-INF/batch-jobs/inlineConfigSample.xml deleted file mode 100644 index d99b61db9..000000000 --- a/spring-batch-samples/src/main/resources/META-INF/batch-jobs/inlineConfigSample.xml +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - - - - - - - - - - - - diff --git a/spring-batch-samples/src/main/resources/META-INF/batch-jobs/springConfigSample.xml b/spring-batch-samples/src/main/resources/META-INF/batch-jobs/springConfigSample.xml deleted file mode 100644 index 0f7dcb300..000000000 --- a/spring-batch-samples/src/main/resources/META-INF/batch-jobs/springConfigSample.xml +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - - - - - - - - - - - - diff --git a/spring-batch-samples/src/main/resources/META-INF/batch-jobs/springConfigSampleContext.xml b/spring-batch-samples/src/main/resources/META-INF/batch-jobs/springConfigSampleContext.xml deleted file mode 100644 index 3e3221c53..000000000 --- a/spring-batch-samples/src/main/resources/META-INF/batch-jobs/springConfigSampleContext.xml +++ /dev/null @@ -1,29 +0,0 @@ - - - - - - - - - - - - John - Joe - Mark - Jane - - - - - - - - - - - diff --git a/spring-batch-samples/src/main/resources/META-INF/batch.xml b/spring-batch-samples/src/main/resources/META-INF/batch.xml deleted file mode 100644 index 47caaf4ff..000000000 --- a/spring-batch-samples/src/main/resources/META-INF/batch.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/spring-batch-samples/src/test/java/org/springframework/batch/sample/jsr352/JsrConfigSampleTests.java b/spring-batch-samples/src/test/java/org/springframework/batch/sample/jsr352/JsrConfigSampleTests.java deleted file mode 100644 index 8cd088d17..000000000 --- a/spring-batch-samples/src/test/java/org/springframework/batch/sample/jsr352/JsrConfigSampleTests.java +++ /dev/null @@ -1,105 +0,0 @@ -/* - * Copyright 2014-2021 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.springframework.batch.sample.jsr352; - -import org.junit.Before; -import org.junit.Test; - -import jakarta.batch.operations.JobOperator; -import jakarta.batch.runtime.BatchRuntime; -import jakarta.batch.runtime.BatchStatus; -import jakarta.batch.runtime.JobExecution; -import java.util.Properties; - -import static org.junit.Assert.assertTrue; - -/** - *

      - * Test cases to run JSR-352 configuration samples. - *

      - * - * @since 3.0 - * @author Chris Schaefer - * @author Mahmoud Ben Hassine - */ -public class JsrConfigSampleTests { - private Properties properties = new Properties(); - - @Before - public void setup() { - properties.setProperty("remoteServiceURL", "https://api.example.com"); - } - - /** - *

      - * Use inline class names as batch artifact references. - *

      - */ - @Test - public void inlineConfigSampleTest() { - JobOperator jobOperator = BatchRuntime.getJobOperator(); - Long executionId = jobOperator.start("inlineConfigSample", properties); - - BatchStatus batchStatus = waitForJobComplete(jobOperator, executionId); - assertTrue(BatchStatus.COMPLETED.equals(batchStatus)); - } - - /** - *

      - * Use batch artifact references defined in batch.xml. - *

      - */ - @Test - public void batchXmlConfigSampleTest() { - JobOperator jobOperator = BatchRuntime.getJobOperator(); - Long executionId = jobOperator.start("batchXmlConfigSample", properties); - - BatchStatus batchStatus = waitForJobComplete(jobOperator, executionId); - assertTrue(BatchStatus.COMPLETED.equals(batchStatus)); - } - - /** - *

      - * Use batch artifact references defined via Spring beans. - *

      - */ - @Test - public void springConfigSampleTest() { - JobOperator jobOperator = BatchRuntime.getJobOperator(); - Long executionId = jobOperator.start("springConfigSampleContext", properties); - - BatchStatus batchStatus = waitForJobComplete(jobOperator, executionId); - assertTrue(BatchStatus.COMPLETED.equals(batchStatus)); - } - - // JSR jobs run async - private BatchStatus waitForJobComplete(JobOperator jobOperator, long executionId) { - JobExecution execution = jobOperator.getJobExecution(executionId); - - BatchStatus curBatchStatus = execution.getBatchStatus(); - - while(true) { - if(curBatchStatus == BatchStatus.STOPPED || curBatchStatus == BatchStatus.COMPLETED || curBatchStatus == BatchStatus.FAILED) { - break; - } - - execution = jobOperator.getJobExecution(executionId); - curBatchStatus = execution.getBatchStatus(); - } - - return curBatchStatus; - } -} diff --git a/spring-batch-test/src/main/java/org/springframework/batch/test/JsrTestUtils.java b/spring-batch-test/src/main/java/org/springframework/batch/test/JsrTestUtils.java deleted file mode 100644 index 1f397c490..000000000 --- a/spring-batch-test/src/main/java/org/springframework/batch/test/JsrTestUtils.java +++ /dev/null @@ -1,129 +0,0 @@ -/* - * Copyright 2013-2021 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.springframework.batch.test; - -import jakarta.batch.operations.JobOperator; -import jakarta.batch.runtime.BatchRuntime; -import jakarta.batch.runtime.BatchStatus; -import jakarta.batch.runtime.JobExecution; -import jakarta.batch.runtime.Metric; -import jakarta.batch.runtime.StepExecution; -import java.util.Date; -import java.util.Properties; -import java.util.concurrent.TimeoutException; - -import org.springframework.lang.Nullable; - -/** - * Provides testing utilities to execute JSR-352 jobs and block until they are complete (since all JSR-352 based jobs - * are executed asynchronously). - * - * @author Michael Minella - * @author Mahmoud Ben Hassine - * @since 3.0 - */ -public class JsrTestUtils { - - private static JobOperator operator; - - static { - operator = BatchRuntime.getJobOperator(); - } - - private JsrTestUtils() {} - - /** - * Executes a job and waits for it's status to be any of {@link BatchStatus#STOPPED}, - * {@link BatchStatus#COMPLETED}, or {@link BatchStatus#FAILED}. If the job does not - * reach one of those statuses within the given timeout, a {@link java.util.concurrent.TimeoutException} is - * thrown. - * - * @param jobName the name of the job. - * @param properties job parameters to be associated with the job. - * @param timeout maximum amount of time to wait in milliseconds. - * @return the {@link JobExecution} for the final state of the job - * @throws java.util.concurrent.TimeoutException if the timeout occurs - */ - public static JobExecution runJob(String jobName, Properties properties, long timeout) throws TimeoutException{ - long executionId = operator.start(jobName, properties); - JobExecution execution = operator.getJobExecution(executionId); - - Date curDate = new Date(); - BatchStatus curBatchStatus = execution.getBatchStatus(); - - while(true) { - if(curBatchStatus == BatchStatus.STOPPED || curBatchStatus == BatchStatus.COMPLETED || curBatchStatus == BatchStatus.FAILED) { - break; - } - - if(new Date().getTime() - curDate.getTime() > timeout) { - throw new TimeoutException("Job processing did not complete in time"); - } - - execution = operator.getJobExecution(executionId); - curBatchStatus = execution.getBatchStatus(); - } - return execution; - } - - /** - * Restarts a job and waits for it's status to be any of {@link BatchStatus#STOPPED}, - * {@link BatchStatus#COMPLETED}, or {@link BatchStatus#FAILED}. If the job does not - * reach one of those statuses within the given timeout, a {@link java.util.concurrent.TimeoutException} is - * thrown. - * - * @param executionId the id of the job execution to restart. - * @param properties job parameters to be associated with the job. - * @param timeout maximum amount of time to wait in milliseconds. - * @return the {@link JobExecution} for the final state of the job - * @throws java.util.concurrent.TimeoutException if the timeout occurs - */ - public static JobExecution restartJob(long executionId, Properties properties, long timeout) throws TimeoutException { - long restartId = operator.restart(executionId, properties); - JobExecution execution = operator.getJobExecution(restartId); - - Date curDate = new Date(); - BatchStatus curBatchStatus = execution.getBatchStatus(); - - while(true) { - if(curBatchStatus == BatchStatus.STOPPED || curBatchStatus == BatchStatus.COMPLETED || curBatchStatus == BatchStatus.FAILED) { - break; - } - - if(new Date().getTime() - curDate.getTime() > timeout) { - throw new TimeoutException("Job processing did not complete in time"); - } - - execution = operator.getJobExecution(restartId); - curBatchStatus = execution.getBatchStatus(); - } - return execution; - } - - @Nullable - public static Metric getMetric(StepExecution stepExecution, Metric.MetricType type) { - Metric[] metrics = stepExecution.getMetrics(); - - for (Metric metric : metrics) { - if(metric.getType() == type) { - return metric; - } - } - - return null; - } - -} diff --git a/spring-batch-test/src/main/java/org/springframework/batch/test/MetaDataInstanceFactory.java b/spring-batch-test/src/main/java/org/springframework/batch/test/MetaDataInstanceFactory.java index 5be0d8218..698d779ef 100644 --- a/spring-batch-test/src/main/java/org/springframework/batch/test/MetaDataInstanceFactory.java +++ b/spring-batch-test/src/main/java/org/springframework/batch/test/MetaDataInstanceFactory.java @@ -1,5 +1,5 @@ /* - * Copyright 2006-2007 the original author or authors. + * Copyright 2006-2021 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -30,6 +30,7 @@ import org.springframework.batch.support.PropertiesConverter; * {@link JobInstance} and {@link StepExecution}. * * @author Dave Syer + * @author Mahmoud Ben Hassine * */ public class MetaDataInstanceFactory { @@ -138,7 +139,7 @@ public class MetaDataInstanceFactory { */ public static JobExecution createJobExecution(String jobName, Long instanceId, Long executionId, JobParameters jobParameters) { - return new JobExecution(createJobInstance(jobName, instanceId), executionId, jobParameters, null); + return new JobExecution(createJobInstance(jobName, instanceId), executionId, jobParameters); } /**

    ;g}mr7Ty-K-`9tJ@R) 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

    YsZq(Mlan0|cQ4s6cpaq4`FPUc@gsSxE=qGmBP` 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 diff --git a/spring-batch-jsr352-tck/jsr352-tck-1.0/lib/testng-6.8.jar b/spring-batch-jsr352-tck/jsr352-tck-1.0/lib/testng-6.8.jar deleted file mode 100644 index dd6c8bbf3248ba1a24a05e6a3c2e09557afda9ec..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1377268 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

    }Xrd4*x}hSA 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ν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

    qq5ceTR}N^|ue(Rre?0!~<%Eob?ee`U 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≥fM-vN*&Z3vnqCDoc)4lXqcG-e|s@0(7(7vJjnuv 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 diff --git a/spring-batch-jsr352-tck/jsr352-tck-1.0/artifacts/jsr352-tck-impl-src.jar b/spring-batch-jsr352-tck/jsr352-tck-1.0/artifacts/jsr352-tck-impl-src.jar deleted file mode 100644 index 441e4ebea6638bf33fec563c047d70cb68e9b29a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 249972 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