Spring Team
Michael Minella

Michael Minella

Spring Batch & Cloud Task Lead

Naperville, IL

Michael Minella is a software engineer, teacher and author with over a decade of enterprise development experience. He is the project lead of Spring Batch and a member of the expert group for JSR-352 (java batch processing). Michael is the author of Pro Spring Batch from Apress and the popular Refcard JUnit and EasyMock. Outside of the daily grind, Michael enjoys spending time with his family as well as hobbies including woodworking, photography, and InfoSec.
Blog Posts by Michael Minella

Spring Cloud Task 1.2.2.RELEASE is now available

We are pleased to announce that Spring Cloud Task 1.2.2.RELEASE is now available via Maven Central, Github and the Pivotal download repository. This release adds support for Spring Framework’s recent added support for db engines other than MYISAM for the sequence tables when using MySql. A special thanks to Thomas Risberg for the contributions around this issue.

Spring Cloud Task Home | Source on GitHub | Reference Documentation

We look forward to your feedback in Github, StackOverflow, to me directly via Twitter @michaelminella or at SpringOnePlatform in December!

Read more...

Spring Cloud Task 2.0.0.M1 is now available

We are pleased to announce that Spring Cloud Task 2.0.0.M1 is now available via Github and the Pivotal download repository. Many thanks to all of those who contributed to this release.

This release is the first release that is compatible with the Spring Boot 2.0 milestones (specifically Spring Boot 2.0.0.M3 for this release). With that upgrade, all dependencies are also upgraded (Spring Cloud Stream, Spring Batch, etc) as well as an upgrade of the baseline Java version to Java 8.

What do you think?

Read more...

Spring Batch 4.0.0.M3 is now available

We are pleased to announce that Spring Batch 4.0.0.M3 is now available via Github and the Pivotal download repository. This release represents the third milestone for the Spring Batch 4.0 release. Many thanks to all that contributed to this release.

What’s new?

This milestone continues the work laid out in the previous 4.0.0 milestones. Specific updates include:

  • Dependency updates
  • Continued java configuration improvements
  • Intial updates to documentation

Dependency updates

As the dependency graph of Spring Boot 2 evolves, we have been updating our dependencies to be in line with them. This includes the updating of Spring Data Kay and Spring Integraiton 5 dependencies as well as removing support for Log4J 1.x in favor of the newer 2.x line.

Read more...

Spring Batch 3.0.8.RELEASE is now available

We are pleased to announce that Spring Batch 3.0.8.RELEASE is now available via Maven Central, Github, and the Pivotal download repository. This is the 8th maintenance release for the 3.0.x branch of Spring Batch and addresses a number of minor bug fixes and enhancements. One of the new features is that the DefaultDataFieldMaxValueIncrementerFactory has been updated to support InnoDB for the sequence tables used in MySql for the job repository when using Spring Framework 4.3.6+. Many thanks to all of those who submitted the many pull requests that went into this release.

Read more...

Spring Batch 4.0.0.M2 is now available

We are pleased to announce that Spring Batch 4.0.0.M2 is now available via Github and the Pivotal download repository. This release represents the second milestone for the Spring Batch 4.0 release. Many thanks to all that contributed to this release.

What’s new?

This milestone continues the work laid out in Spring Batch 4.0.0.M1. Specific updates include:

  • Dependency updates
  • Continued java configuration improvements

Dependency updates

Spring Batch 4 will be the version included in Spring Boot 2 so we’re taking this time to syncronize our dependencies. With that, this release supports upgrades to the latest milestones of the Spring Data Kay release train and Spring Integration 5.

Read more...

Spring Cloud Task 1.2.0.M1 is now available

We are pleased to announce that Spring Cloud Task 1.2.0.M1 is now available via Github and the Pivotal download repository. Many thanks to all of those who contributed to this release.

Spring Cloud Task 1.2.0.M1 offers the following features:

This is the first milestone for the 1.2.x line of Spring Cloud Task. Intended to continue the integrations required for Spring Cloud Data Flow, this release provides the following new features:

  • Better DataSource integration between task and batch - This release makes configuring the DataSource used by the task/batch integration easier.

  • Allows an external process to update the external execution id - Prior to this release, the external execution id (the execution id for the underlying platform) had to be updated by the task itself. In some use cases, this is not possible. This release exposes the ability to update the external execution id outside the scope of the task itself.

  • Allow the user to configure a prefix for the task tables - Similar to how Spring Batch allows a user to configure a prefix for the batch repository tables, Spring Cloud Task now exposes the ability to configure a prefix for task repository tables as well.

  • Add support for parent execution ids - In complex use cases, the ability for one task to launch multiple other tasks is very common. Spring Cloud Task has already supported this via partitioned batch jobs launching worker nodes as tasks. This release provides the ability within the task repository to associate the parent child relationship that occurs from that capability (both in the batch use case and with raw tasks).

  • Upgrade to Spring Cloud Camden SR5 - This release is compatible with Spring Cloud Camden’s recent SR5 release.

Read more...

Spring Batch 4.0.0.M1 is now available

We are pleased to announce that Spring Batch 4.0.0.M1 is now available via Github and the Pivotal download repository. This release represents the first milestone for the Spring Batch 4.0 release. Many thanks to all of those who contributed to this release.

What’s new?

We have taken this opportunity to look at Spring Batch from a new light in a few areas. Specifically:
* Java baseline
* Dependency baseline
* Java configuration

Java Baseline

Spring Batch has historically followed the baseline of Spring Framework with the intent of providing the best interoperability between Spring Batch and Spring Framework versions as possible. Spring Batch 4.0 is taking this opportunity to upgrade to Spring Framework 5 as the minimum required version. With this, Java 8 will be required for Spring Batch 4. If you’ve been using Spring Batch with Java 8 already, this should be a pretty transparent as Spring Batch has had a solid Java 8 story for years now. Doing things like the following has been supported as long as Java 8 has been around:

Read more...

Spring Cloud Task 1.1.0.RELEASE is now available

We are pleased to announce that Spring Cloud Task 1.1.0.RELEASE is now available via Github and the Pivotal download repository. Many thanks to all of those who contributed to this release.

Spring Cloud Task 1.1.0 offers the following features:

This is the generally available release (GA) for 1.1.0. This release addresses key enhancements to the project to allow for better coverage of operational concerns for tasks in a cloud environment. Features new to the 1.1.0 line include:

  • Updated error handling - 1.0.x stored stack traces that were the result of task executions within the TaskExecution#exitMessage field, requiring that this field perform double duty. First it was available for orchestration of tasks (similar to StepExecution#exitStatus in Spring Batch) as well as the storage of stack traces for debugging. In the 1.1.0 release, error messages have been moved to a new field TaskExecution#errorMessage so that each field has it’s own, dedicated use.

  • Updated customization options for partitioned batch jobs - In the 1.0.x line for Spring Cloud Task, when launching workers as tasks, there was not a way to customize the command line arguments provided to them. This is an issue in environments like CloudFoundry where you can use command line args to customize configuration without the need to re-push your app. In the new 1.1.0 release, we provide the ability to customize command line arguments via the CommandLineArgsProvider which is similar in functionality to the EnvironmentVariablesProvider introduced in 1.0.2.

  • External execution id persistence - When running a task in a cloud environment, there is typically a separate id associated with the infrastructure for the task’s execution. The id that YARN uses in the history server or the task id used by CloudFoundry are examples of these ids. Spring Cloud Task 1.1.0 now provides the ability to persist this external execution id for the ability to map one to the other.

  • Record the request of a task execution - When launching tasks on some form of infrastructure like Kubernetes or CloudFoundry, there can be a lag between the time the task execution is requested vs when it actually starts. Compounding this issue is the fact that if there is a problem with the platform, the task may not get launched at all. If this does occur, you’ll still want a record of the request. Spring Cloud Task 1.1.0 introduces the ability to record that a task is expected to start prior to it’s execution actually beginning. Allowing the launcher to record this request and the task itself will update it’s status accordingly.

  • Additional database support for the task repository - 1.1.0 introduces a community contributed schema to support DB2 as a datastore for the task repository.

Read more...

Spring Cloud Task 1.0.3.RELEASE and 1.1.0.M1 are now available

We are pleased to announce that Spring Cloud Task 1.0.3.RELEASE and 1.1.0.M1 are now available via Maven Central, Github and the Pivotal download repository. Many thanks to all of those who contributed to this release.

What’s new in Spring Cloud Task 1.0.3.RELEASE

1.0.3.RELEASE represents the next minor release for the 1.0.x branch. It’s a minor update that cleans up the dependency management within the project to be in alignment with how the rest of the Spring Cloud portfolio manages it’s dependencies.

Read more...

Spring Cloud Task 1.0.2.RELEASE is now available

We are pleased to announce that Spring Cloud Task 1.0.2.RELEASE is now available via Maven Central, Github and the Pivotal download repository. This release provides some minor enhancements including persisting of the completion of a task when terminated by an external signal. Many thanks to all of those who contributed to this release.

Spring Cloud Task Home | Source on GitHub | Reference Documentation

We look forward to your feedback in Github, StackOverflow, to me directly via Twitter @michaelminella or at SpringOnePlatform next week!

Read more...