Cloud Foundry Logo
blog single gear
Engineering

Java Buildpack: Re-implementation in Go

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_COMPONENTS is 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.

Beyhan Veli Profile Image

Beyhan Veli, AUTHOR

SEE ALL ARTICLES