← All recipes
Moderne licensed

Migrate to the new chunk-oriented step model

Recipe IDorg.openrewrite.java.spring.batch.MigrateToChunkOrientedStepBuilderArtifactorg.openrewrite.recipe:rewrite-spring

Spring Batch 6.0 deprecates StepBuilder.chunk(int, PlatformTransactionManager) in favor of a new chunk-oriented model, where the transaction manager is configured through ChunkOrientedStepBuilder.transactionManager(PlatformTransactionManager). Replaces chunk(chunkSize, transactionManager) with chunk(chunkSize).transactionManager(transactionManager), but only where every other method in the builder chain has an equivalent on ChunkOrientedStepBuilder. The new model dropped the Spring Retry based chunk and retry APIs without a drop-in replacement, so chains calling backOffPolicy, retryPolicy, retryContextCache, keyGenerator, noRetry, noRollback, noSkip, processorNonTransactional, readerIsTransactionalQueue, chunkOperations, stepOperations, exceptionHandler, listener(RetryListener), chunk(CompletionPolicy, PlatformTransactionManager) or taskExecutor(TaskExecutor) with a non-async executor are left untouched, and remain a manual migration step. See the Spring Batch 6.0 migration guide.

Single recipeMSAL

Usage

This recipe has no required configuration options. You’ll need the Moderne CLI configured before running the command below.

mod run . --recipe org.openrewrite.java.spring.batch.MigrateToChunkOrientedStepBuilder

If the recipe isn’t available locally, install it with:

mod config recipes jar install org.openrewrite.recipe:rewrite-spring:RELEASE

Data tables

Structured output this recipe can produce.

  • Source files that had resultsSource files that were modified by the recipe run.org.openrewrite.table.SourcesFileResults
  • Source files that had search resultsSearch results that were found during the recipe run.org.openrewrite.table.SearchResults
  • Source files that errored on a recipeThe details of all errors produced by a recipe run.org.openrewrite.table.SourcesFileErrors
  • Recipe performanceStatistics used in analyzing the performance of recipes.org.openrewrite.table.RecipeRunStats