The Cloud Foundry Java buildpack has been rewritten in Go to align with other buildpacks in the ecosystem. This change addresses maintenance challenges and improves consistency across the CF buildpack collection.
Background
The Ruby-based Java buildpack was unmaintained and stands alone as the only major CF buildpack not implemented in Go. The new Go implementation has been released as version 5.x and will serve as a drop-in replacement.
Breaking Changes
With this reimplementation, we decided to clean up legacy features that made the implementation quite complicated. This is why breaking changes have been introduced.
Removed Legacy Features
The following legacy features have been removed:
- JRE selection based on
JBP_CONFIG_COMPONENTSis deprecated - Custom JRE usage is no longer supported
- SpringAutoReconfigurationFramework is disabled by default
- Default JRE has changed from OpenJDK JRE 1.8.0_x to 17.x (OpenJDK 25 support has been added too)
- Default Tomcat changed from version 9 to version 10 – Tomcat 10 uses the Jakarta EE namespace (jakarta.* instead of javax.*); apps using Jakarta EE APIs directly require adaptation.
- Resource configuration overlay mechanism. Buildpack fork is needed in the following cases:
- Specifying a repository root for some dependency, other than the default one from manifest.yml, a buildpack fork is needed and the new repository root adjusted there.
- Adjusting embedded default configuration for frameworks (can be found here)
- Resource configuration overlay can still be achieved for Tomcat containers (more info here)
Removed Frameworks
Additionally, the following frameworks have been removed:
- Takipi Agent
- Java Security
- Spring Insight
- Resource overlay configuration
For more details, please refer to the documentation of the Go-based Java Buildpack.
Release Plan
- v5.0.x – Experimental releases that may still introduce breaking changes based on feedback
- v5.1.0 – First GA release
Since the buildpack hasn’t been released in some time, there’s a list of additional updates mentioned in the release notes. Please take a moment to review them.
Help Us Validate
We need your feedback on the new implementation. Here’s how you can help:
- Deploy your Java applications using v5.0.x experimental releases
- Test your custom configurations and environment variables
- Report any issues you discover
- Or simply post a message in the buildpacks Slack channel to let us know everything works fine for you
Your testing and feedback will directly improve the quality of the GA release. Try the experimental release and share your results.
