Michael Minella

Michael Minella

Michael Minella is an engineer, Java Champion, speaker, & author with over 24 years of enterprise development experience. He has been a member of the Spring OSS team for over 13 years and currently serves as the Director responsible for Spring R&D. Formerly he lead the Spring Batch project and was the founder of the Spring Cloud Task project. Michael has spoken on topics that include Java and Spring & is a JavaOne Rockstar. He was a member of the expert group for JSR-352 (java batch processing) & is a committer on the Jakarata EE JBatch project. Michael is the author of The Definitive Guide to Spring Batch and the regular curmudgeon on the podcast OffHeap (https://javaoffheap.com/).

Recent Blog posts by Michael Minella

Spring Cloud Task 1.0.0.RC1 is now available

Releases | June 17, 2016 | ...

We are pleased to announce the release of Spring Cloud Task 1.0.0.RC1. This is the first release candidate of the Spring Cloud Task project!

What's New?

This release really represents the polishing of the functionality that existed within 1.0.0.M2:

  • The TaskRepository
  • Task listeners
  • Task integration with Spring Batch
  • Task integration with Spring Cloud Stream

There are a few minor breaking changes (renaming of a few methods) but those are all to get things right for our 1.0.0.GA. This release will serve as the baseline version of Spring Cloud Data Flow's 1.0.0.RC1 as well.

What's Next?

We…

Spring Cloud Task 1.0.0.M2 is now available

Releases | April 29, 2016 | ...

We are pleased to announce the release of Spring Cloud Task 1.0.0.M2. This is the second milestone of the Spring Cloud Task project with some exciting new features!

What's New?

With the M1 release of Spring Cloud Task, we introduced the concept of a task, the @EnableTask annotation, and the general concept of a microservice that has an end. We've been quite busy since then. Some of the highlights of what is new include:

  • Spring Cloud Task Listeners
  • Integration with Spring Cloud Stream
  • Integration with Spring Batch
  • More samples

Let's take a look at what each of these include.

Spring Cloud…

Spring Batch 3.0.7.RELEASE is now available

Releases | April 25, 2016 | ...

We are pleased to announce that Spring Batch 3.0.7.RELEASE is now available via Maven Central, Github and the Pivotal download repository. This is the 7th maintenance release for the 3.0.x branch of Spring Batch and addresses a number of minor bug fixes and enhancements. Most important of them, it addresses compatibility issues with the latest Spring Data release as well as adding updates to support the latest Hibernate releases. Many thanks to all of those who submitted the many pull requests that went into this release.

Spring Batch Home | Source on GitHub | Reference Documentation

We look forward to your feedback in Jira, StackOverflow, or to me directly via Twitter @michaelminella

Introducing Spring Cloud Task

Releases | January 27, 2016 | ...

Today we are pleased to introduce a new project in the Spring portfolio, Spring Cloud Task. Under the umbrella of the Spring Cloud grouping of projects and the sister project of Spring Cloud Stream, Spring Cloud Task aims to bring functionality required to support short lived microservices to Spring Boot based applications. With this blog post, we are releasing our first milestone of the project and are eager for your input and feedback.

The Goals of Spring Cloud Task

In most cases, the modern cloud environment is designed around the execution of processes that are not expected to end (think web applications or stream modules). If they do, it's considered a failure by the platform and they are typically restarted. While many platforms do have some method to execute a process that is expected to end (a batch job for example), the results of that execution are typically not maintained in a consumable way. Yet for mission critical applications, even though they are short lived, they still have the same non-functional requirements long lived processes have.

While this functionality is useful in a cloud environment, the same issues can arise in a traditional deployment model as well. When executing Spring Boot applications via a scheduler like cron, it can be useful to be able to monitor the results of the application after it’s completion.

A Spring Cloud Task takes the approach that a Spring Boot application can have a start and an end and still be production grade. Batch applications are just one example of where short lived processes can be helpful.

Getting Started

In this first release of Spring Cloud Task, we introduce the basics of the configuration mechanisms as well as a repository to record what happens when a task is executed. Those who are familiar with Spring Batch and its job repository should find the general paradigms of Spring Cloud Task familiar.

To get familiar with Spring Cloud Task, the easiest way is to write an application. The documentation walks you through the creation of an initial task and its execution. You can read more about that here.

Where we're going

Tasks will be a new primitive within Spring Cloud Data Flow in the coming releases allowing users to execute virtually any Spring Boot application as a short lived task. This provides the flexibility to run everything from a simple CommandLineRunner to a full batch job in dynamic way, allowing resources to be consumed on demand and returned once complete. The upcoming releases including Spring Cloud Task 1.0 GA which we plan for just before Spring Cloud Data Flow goes 1.0 GA, will be adding features to support that effort.

Tell us what you think!

Spring Cloud Task is a new and exciting project that we feel fills an under served area of enterprise development. However, we want to know what you think. Please let us know via the issues in Github Issues, StackOverflow, or directly on Twitter!

Spring Batch 3.0.6.RELEASE is now available

Releases | December 11, 2015 | ...

We are pleased to announce that Spring Batch 3.0.6.RELEASE is now available via Maven Central, Github and the Pivotal download repository. This is the 6th maintenance release for the 3.0.x branch of Spring Batch and addresses a number of minor bug fixes and enhancements. Many thanks to all of those who submitted the many pull requests that went into this release.

Spring Batch Home | Source on GitHub | Reference Documentation

We look forward to your feedback in Jira, StackOverflow, or to me directly via Twitter @michaelminella.

Spring Batch 3.0.5.RELEASE is now available

Releases | August 10, 2015 | ...

We are pleased to announce that Spring Batch 3.0.5.RELEASE is now available via Maven Central, Github and the Pivotal download repository. This is the 5th maintenance release for the 3.0.x branch of Spring Batch and addresses a number of minor enhancements as well as bringing Spring Batch fully compatible with Spring Framework 4.2. Many thanks to all of those who submitted the many pull requests that went into this release.

Spring Batch Home | Source on GitHub | Reference Documentation

We look forward to your feedback in Jira, StackOverflow, or to me directly via Twitter @michaelminella.

Spring Batch 3.0.4.RELEASE is now available

Releases | May 19, 2015 | ...

We are pleased to announce that Spring Batch 3.0.4.RELEASE is now available via Maven Central, Github and the SpringSource download repository. This is the 4th maintenance release for the 3.0.x branch of Spring Batch and addresses a number of bugs and a few minor enhancements. Many thanks to all of those who submitted the many pull requests that went into this release.

Spring Batch Home | Source on GitHub | Reference Documentation

We look forward to your feedback in Jira, StackOverflow, or to me directly via Twitter @michaelminella.

Spring Batch and Spring Batch Admin Releases

Releases | January 16, 2015 | ...

We are pleased to announce a number of Spring Batch related releases today. A bug fix release for Spring Batch, a bug fix release for Spring Batch Admin and a milestone release for the new version of Spring Batch Admin are all now available.

Spring Batch 3.0.3

Spring Batch 3.0.3 represents the latest maintenance release for Spring Batch, addressing a number of enhancements and minor bug fixes. New features in Spring Batch 3.0.3 include:

Improved Support For JSR-352 Custom Infrastructures

Before this release, the only way to override the infrastructure provided by Spring Batch out of the box for JSR-352 configured jobs was to include the configuration in the job's context. This prevented the ability to configure a global override for really shared components. With 3.0.3, you can now specify the location of a Spring configuration via a System property that can override the existing infrastructure.

Optional Polling For Partitioned Results

When using remote partitioning, the master needs a way to be notified that the slave partitions have completed their work. Historically that has been accomplished by each slave replying to the master, the results being aggregated, and then the master being notified that all the slaves have completed. However, this required extra configuration that may not be necessary. Since the slaves in a partitioned job maintain their state in the same job repository that the master does, the master can just poll the job repository to see if the slaves are complete. This release adds the ability to configure the MessageChannelPartitionHandler to poll the job repository instead of waiting for response messages. You can read more about the configuration of this new feature in the documentation for the MessageChannelPartitionHandler.

This isn't a complete list of updates, but highlight the major new features. You can see exactly what changed in Spring Batch's Jira issue tracker here: https://jira.spring.io/browse/BATCH/

Spring Batch Admin

1.3.1

The first of two Spring Batch Admin releases we are making available today is the first maintenance release for the Spring Batch Admin 1.3 line. This release addresses a number of minor bugs, the list of which can be found in Jira here: https://jira.spring.io/browse/BATCHADM/

2.0.0.M1

The biggest question I received at SpringOne2GX this past year was "What's going on with Spring Batch Admin?" Spring Batch Admin had its last update in July (shortly before SpringOne2GX last year), but it wasn't much of a feature upgrade. It was released to update the dependencies and address some bugs. Since then, we've been hard at work updating a number of features to bring Spring Batch Admin up to date. Today we announce the first milestone towards that goal.

JSR-352 Support

Spring Batch Admin, as part of the 2.0.0.M1 release, will now support JSR-352 configured jobs. By dropping your XML based configuration in the /META-INF/batch-jobs directory as the spec requires, Spring Batch Admin will load the job to be launchable by the REST endpoints and the current UI. All of the monitoring aspects provided by Spring Batch Admin (viewing the executions, start/stop/restart, etc) are available.

Java Configuration Support

As the shift within the Spring community has been going from XML based configuration to java based configuration, Spring Batch Admin is keeping up. As of this release, Spring Batch Admin supports the configuration of a package to scan for java configured Spring Batch jobs. As with any other batch jobs, these will be loaded and available for execution just like their XML counterparts.

It's important to note, that while Spring Batch Admin now supports java based configuration, you won't want to use @EnableBatchProcessing with it. There's a reason for that. @EnableBatchProcessing provides a collection of infrastructure that is already provided out of the box by Spring Batch Admin. Configuring jobs via java config for use within Spring Batch Admin is exactly the same as if you were using @EnableBatchProcessing...without using that annotation. You still get the ability to autowire the JobBuilderFactory and StepBuilderFactory just like you normally would.

REST Endpoint Updates

As part of the work the Spring XD team has been doing in their administration UI, they have created a completely new set of batch related REST endpoints. This release migrates those endpoints into Spring Batch Admin for all to consume. Off of the /batch path lives a collection of endpoints that provide functionality similar to the existing REST API, however goes much further. The new API follows HATEOAS principles allowing for API discovery and traversal. While the support of HATEOAS is a work in progress, this release provides a look into where we're going with this.

The Future of Spring Batch Admin

Like all of the Spring projects, we strive to make things backwards compatible as much as reasonable possible. Because of that, Spring Batch Admin 2.0 is undergoing some major changes to allow backwards compatibility in the future. These changes include, the removal of an "official" UI, and deprecation of the older version of the REST API. This release does not contain any of these changes. These changes will be coming before Spring Batch Admin 2.0 is generally available. It is our desire to be open and transparent as to the direction of the project.

Anyone that has followed the rate of change in the UI space over the past few years can quickly discern that picking a modern front-end technology and being able to maintain backwards compatibility for the foreseeable future is not possible right now. The rate of breaking changes is just too great right now. When factoring this into our desire to provide tools at the forefront of their related space, we've decided to remove the UI as a formal part of the project. That being said, we still understand that a client is an important piece of what Spring Batch Admin brings to the table. Because of this, it is our plan to provide a collection of sample projects that demonstrate a couple different client options. This will allow us to evolve client options independently of the core framework/API in a way that doesn't prevent us from being backwards compatible.

We will also be deprecating the older version of the REST API. The new API takes a step forward in the REST API maturity model, moving from basic CRUD over HTTP to support for true resources. While the new REST endpoints are still a work in progress, once they are feature complete, we will deprecate the old ones to focus development efforts on improving and evolving the new set.

Where We Go From Here

We will continue to work on the changes mentioned above and currently plan on another release early in the second quarter of this year. We are excited about the future of Spring Batch Admin and look forward to your feedback in Jira, Github, StackOverflow, and social media!

Spring Batch 3.0.2.RELEASE is now available

Releases | October 28, 2014 | ...

We are pleased to announce that Spring Batch 3.0.2.RELEASE is now available via Maven Central, Github and the SpringSource download repository. This is the 2nd maintenance release for the 3.0.x branch of Spring Batch and addresses a number of bugs and a few minor enhancements. Many thanks to all of those who submitted the many pull requests that went into this release.

Spring Batch Home | Source on GitHub | Reference Documentation

We look forward to your feedback.

Spring Batch Admin 1.3.0.RELEASE Is Available

Releases | July 28, 2014 | ...

We are pleased to announce that Spring Batch Admin 1.3.0.RELEASE is now available via Maven Central, Github and the SpringSource download repository. This release provides updates to Spring Batch Admin to make it compatible with Spring Batch 2.2.x and beyond. In addition to the minor functional updates, this release also provides an overall update to third party dependencies. As noted previously, this will be the last major version with the spring-batch-integration module included as it has been moved to Spring Batch as of Spring Batch 3.0. As always, we look forward to your feedback in…

Get ahead

VMware offers training and certification to turbo-charge your progress.

Learn more

Get support

Tanzu Spring offers support and binaries for OpenJDK™, Spring, and Apache Tomcat® in one simple subscription.

Learn more

Upcoming events

Check out all the upcoming events in the Spring community.

View all