# Spring Batch 6.0: the item/repeat infrastructure moved packages Verified by decompiling the real jars pulled from Maven Central, not by reading prose. --- Spring Batch 5.2.x (docs.spring.io javadoc, org.springframework.batch:spring-batch-infrastructure:5.2.6) --- Package: org.springframework.batch.item Class: org.springframework.batch.item.ExecutionContext --- Spring Batch 6.0.5 (unzip -l spring-batch-infrastructure-6.0.5.jar) --- $ unzip -l spring-batch-infrastructure-6.0.5.jar | grep -E "ExecutionContext.class|CompletionPolicy.class" 2908 2026-08-17 10:28 org/springframework/batch/infrastructure/repeat/policy/SimpleCompletionPolicy.class 3388 2026-08-17 10:28 org/springframework/batch/infrastructure/repeat/policy/CompositeCompletionPolicy.class 1179 2026-08-17 10:28 org/springframework/batch/infrastructure/repeat/policy/DefaultResultCompletionPolicy.class 2934 2026-08-17 10:28 org/springframework/batch/infrastructure/repeat/policy/CountingCompletionPolicy.class 718 2026-08-17 10:28 org/springframework/batch/infrastructure/repeat/CompletionPolicy.class 7922 2026-08-17 10:28 org/springframework/batch/infrastructure/item/ExecutionContext.class Every class under the old org.springframework.batch.item.* and org.springframework.batch.repeat.* now lives under org.springframework.batch.infrastructure.item.* and org.springframework.batch.infrastructure.repeat.* -- ItemReader, ItemWriter, ItemProcessor, ExecutionContext, RepeatStatus, CompletionPolicy, every FlatFileItemReaderBuilder and JdbcBatchItemWriterBuilder, all of it. A 5.x guide's imports do not compile against 6.0 for this reason alone, before any API shape has changed at all. --- Partitioner interface, decompiled from spring-batch-core-6.0.5.jar --- $ javap org/springframework/batch/core/partition/Partitioner.class Compiled from "Partitioner.java" public interface org.springframework.batch.core.partition.Partitioner { public abstract java.util.Map partition(int); } Note the return type: Map. Any 5.x Partitioner implementation that imports org.springframework.batch.item.ExecutionContext fails to compile against 6.0 with "cannot find symbol" on that single import line -- the fix is a one-line import change, but the error message does not say that; it just says the type does not exist, which sends most people straight to a search engine instead of to the correct one-line fix. --- Two more classes that moved, found while writing this module's beans --- org.springframework.batch.core.job.parameters.JobParametersBuilder (was org.springframework.batch.core.JobParametersBuilder) org.springframework.batch.core.repository.explore.JobExplorer (was org.springframework.batch.core.explore.JobExplorer) org.springframework.batch.core.scope.context.StepSynchronizationManager (NOT org.springframework.batch.core.step -- BatchConfig's first draft guessed that package for reading the current partition's step name inside an ItemWriter and failed to compile; see docs/04-the-writer-and-the-beanmapped-trap.md)