Skip to content

Spring Cloud Task 3.0 Migration Guide

Glenn Renfro edited this page Oct 19, 2022 · 9 revisions

This document is meant to help you migrate your application to Spring Cloud Task 3.0.

This document is a work in progress.

Major changes

JDK 17 baseline

Spring Cloud Task 3 is based on Spring Framework 6 and Spring Boot 3 which requires Java 17 as a minimum version. Therefore, you need to use Java 17+ to run Spring Cloud Task 3 applications.

Dependencies upgrade

Spring Cloud Task 3 is updating its Spring dependencies across the board to the following versions:

  • Spring Framework 6
  • Spring Boot 3

Moreover, this version marks the migration to Jakarta EE 9. Please make sure to update your import statements from javax.* to jakarta.* for all EE APIs you use.

Database schema updates

MS SQLServer

Up until v2, the DDL script for MS SQLServer used tables to emulate sequences. In this version, this usage has been updated with real sequences:

CREATE SEQUENCE TASK_SEQ START WITH 0 MINVALUE 0 MAXVALUE 9223372036854775807 NO CACHE NO CYCLE;

New applications can use the provided script with no modifications. Existing applications should consider modifying the snippet above to start sequences from the last value in sequence tables used with v4.

Oracle

Oracle In this version, Oracle sequences are now ordered. The sequences creation script has been updated for new applications. Existing applications can use the migration script in org/springframework/batch/core/migration/5.0/migration-oracle.sql to alter the existing sequences.

Moreover, the DDL script for Oracle has been renamed as follows:

org/springframework/cloud/task/schema-oracle10g.sql has been renamed to org/springframework/cloud/task/schema-oracle.sql.

Data types updates

Due to updates in Batch 5.0:

  • Metric counters (readCount, writeCount, etc) in org.springframework.batch.core.StepExecution and org.springframework.batch.core.StepContribution have been changed from int to long. All getters and setters have been updated accordingly.
  • The skipCount parameter in org.springframework.batch.core.step.skip.SkipPolicy#shouldSkip has been changed from int to long. This is related to the previous point.
  • The jobConfigurationName is no longer stored in the JobExecution.

If you have code that uses these fields you may have to update your code.

Spring Batch

There have been several changes in Spring Batch and thus it is recommended that you also read the Spring Batch migration guide as many of these changes may affect users who use Spring Cloud Task plus Spring Batch.

Clone this wiki locally