$ the-wire · showcase
Spring Batch deprecates repository setters and JobExecution getters, Spring Security fixes a standalone crypto crash
By RepoJournal · Filed · About Spring · Composed from the cited sources · methodology
Spring Batch deprecated a batch of configuration setters and JobExecution convenience getters while aligning MongoDB metadata resolution with the JDBC job repository, and Spring Security restored standalone password encoding after a 7.1.0 refactor broke it.
Spring Batch landed a coordinated deprecation of its repository-based configuration API. The convenience getters for JobInstance id on JobExecution are deprecated [1], as are `setRepository` on RepositoryItemWriter [2] and `setSorts` and `setRepository` on RepositoryItemReader [3]. The MongoDB collection prefix support was reworked to follow the JDBC job repository design: collection and sequence names now resolve lazily, matching how `AbstractJdbcBatchMetadataDao#getQuery` resolves `%PREFIX%`, after the previous commit resolved names eagerly and changed the meaning of an existing `MongoSequenceIncrementer` constructor parameter [4]. A separate fix restores skip annotation listener detection [5].
Spring Security corrected a regression introduced by a 7.1.0 refactor. `AbstractValidatingPasswordEncoder` had been changed to use `org.springframework.util.StringUtils#hasLength`, but `spring-core` is an `optional` dependency of `spring-security-crypto`, so it is not published in the POM and is not guaranteed on the classpath for standalone users. The result was a `NoClassDefFoundError` on `BCryptPasswordEncoder#matches` and other encoders extending the base class when used standalone [6]. The commit restores the inline null check.
Spring Tools added logging to the git baseline tracker and snapshot capture, and then serialized git-baseline capture per project to stop the same commit from being captured twice [7][8], with test issues fixed alongside [9]. The Node.js publish workflow was corrected, including the repo URL [10][11]. Spring Data Elasticsearch landed a polishing pass on its Elasticsearch 9.5.3 update [12], and Spring Security's cryptography documentation moved its inline Java and Kotlin samples to include-code directives backed by tested sample classes [13].
Action items
- → Audit RepositoryItemWriter and RepositoryItemReader configuration for setRepository and setSorts before upgrading Spring Batch spring-projects/spring-batch [plan]
- → Upgrade spring-security-crypto past 7.1.0 if you use BCryptPasswordEncoder standalone without spring-core spring-projects/spring-security [immediate]
- → Migrate off JobExecution convenience getters for JobInstance id in Spring Batch spring-projects/spring-batch [plan]
References
- [1] Deprecate JobExecution convenience getters for JobInstance id ↗ spring-projects/spring-batch
- [2] Deprecate `setRepository` in `RepositoryItemWriter` ↗ spring-projects/spring-batch
- [3] Deprecate `setSorts` and `setRepository` in `RepositoryItemReader` ↗ spring-projects/spring-batch
- [4] Align the MongoDB collection prefix support with the JDBC job repository ↗ spring-projects/spring-batch
- [5] Fix skip annotation listener detection ↗ spring-projects/spring-batch
- [6] Avoid spring-core in password encoder validation ↗ spring-projects/spring-security
- [7] GH-1974: add logging to the git baseline tracker and snapshot capture ↗ spring-projects/spring-tools
- [8] GH-1974: serialize git-baseline capture per project to fix double-capturing the same commit ↗ spring-projects/spring-tools
- [9] fix test issues ↗ spring-projects/spring-tools
- [10] Nodejs publish ↗ spring-projects/spring-tools
- [11] Nodejs publish (#1970) ↗ spring-projects/spring-tools
- [12] Polishing Elasticsearch 9.5.3 update. ↗ spring-projects/spring-data-elasticsearch
- [13] Update cryptography.adoc to use include-code ↗ spring-projects/spring-security