Skip to content

v5.0.0

Latest

Choose a tag to compare

@ari-wg-gitbot ari-wg-gitbot released this 21 Mar 12:59
15e0b03

⚠️ Experimental Release — As per the RFC: Java Buildpack Migration to Golang, the v5.0.x series is intended to collect broad community feedback. Incompatible changes may still occur before the first GA release (v5.1.0).


🎉 Complete Rewrite: Ruby → Go

This is the first release of the Go-based Java Buildpack — a full rewrite of the previously Ruby-based implementation. It is built on top of libbuildpack, aligning the Java Buildpack with the rest of the Cloud Foundry buildpack ecosystem. The new buildpack is a drop-in replacement for v4.x under this new major version.

The migration restores active maintainability and makes it easier for the broader CF community to contribute.

⚠️ New Defaults — Action Required

If your application does not pin Java or Tomcat versions, the following new defaults apply on your next cf push or cf restage:

Ruby Buildpack (v4) Go Buildpack (v5)
Java OpenJDK JRE 1.8.x OpenJDK JRE 17.x
Tomcat Tomcat 9.0.x Tomcat 10.x
SpringAutoReconfiguration Enabled Disabled (deprecated)

The Tomcat 9 → 10 upgrade changes the servlet namespace from javax.* to jakarta.* and will likely require code changes. A migration tool is available to help.

To keep your current versions, pin them explicitly — see the Migration Guide.

Breaking Changes

  • SpringAutoReconfigurationFramework disabled by default — use java-cfenv as the recommended replacement.
  • JBP_CONFIG_COMPONENTS for JRE selection is deprecated — use JBP_CONFIG_<JRE_TYPE> instead (e.g. JBP_CONFIG_OPEN_JDK_JRE). See JRE Selection.
  • Custom JRE usage is only supported as documented in the Custom JRE Usage Guide.

JRE location has changed — hardcoded paths will break (#1151)

The Go-based buildpack installs the JRE in a different location than the Ruby buildpack. If your application or any CF Tasks invoke Java via a hardcoded path (e.g. .java-buildpack/open_jdk_jre/bin/java) or set JAVA_HOME pointing to the old location, they will fail with No such file or directory after migrating to v5.

Fix: Always use the $JAVA_HOME environment variable to reference the JRE. The buildpack exports $JAVA_HOME at runtime via profile.d/0_java.sh — it always points to the correct JRE location regardless of vendor or version. Update any scripts or CF Tasks to use $JAVA_HOME/bin/java instead of any hardcoded path.

Frameworks Not Carried Over from v4

Framework Reason
Takipi Agent (OverOps) Agent moved behind a licensed login wall
Java Security Rarely used; handle at platform or application level
Multi Buildpack Native multi-buildpack support is built into libbuildpack
Spring Insight Legacy; replaced by modern APMs (New Relic, AppDynamics, Dynatrace)
Config via resource overlay Anti-pattern; requires a buildpack fork

💬 Feedback Welcome

Try it out and report any issues or unexpected behaviour:


Packaged binaries:

name version cf_stacks
auto-reconfiguration 2.12.0 cflinuxfs4
azure-application-insights 3.6.2 cflinuxfs4
cf-metrics-exporter 0.7.1 cflinuxfs4
client-certificate-mapper 2.0.1 cflinuxfs4
container-security-provider 1.20.0 cflinuxfs4
contrast-security 6.23.0 cflinuxfs4
datadog-javaagent 1.42.1 cflinuxfs4
elastic-apm-agent 1.52.0 cflinuxfs4
google-stackdriver-profiler 0.4.0 cflinuxfs4
groovy 4.0.29 cflinuxfs4
jacoco 0.8.14 cflinuxfs4
java-cfenv 3.5.0 cflinuxfs4
java-memory-assistant 0.5.0 cflinuxfs4
java-memory-assistant-cleanup 0.1.0 cflinuxfs4
jprofiler-profiler 15.0.4 cflinuxfs4, cflinuxfs5
jrebel 2025.4.1 cflinuxfs4
jvmkill 1.17.0 cflinuxfs4
luna-security-provider 7.4.0 cflinuxfs4
mariadb-jdbc 3.5.7 cflinuxfs4
memory-calculator 4.1.0 cflinuxfs4
memory-calculator 4.2.0 cflinuxfs4
metric-writer 3.5.0 cflinuxfs4
newrelic 8.15.0 cflinuxfs4
open-telemetry-javaagent 2.22.0 cflinuxfs4
openjdk 8.0.482+10 cflinuxfs4, cflinuxfs5
openjdk 11.0.30+9 cflinuxfs4, cflinuxfs5
openjdk 17.0.18+10 cflinuxfs4, cflinuxfs5
openjdk 21.0.10+10 cflinuxfs4, cflinuxfs5
openjdk 25.0.2+12 cflinuxfs4, cflinuxfs5
postgresql-jdbc 42.7.8 cflinuxfs4
sapmachine 17.0.18 cflinuxfs4, cflinuxfs5
sapmachine 21.0.10 cflinuxfs4, cflinuxfs5
sapmachine 25.0.2 cflinuxfs4, cflinuxfs5
sealights-agent 4.0.2570 cflinuxfs4
skywalking-agent 9.6.0 cflinuxfs4, cflinuxfs5
splunk-otel-javaagent 2.22.0 cflinuxfs4
spring-boot-cli 2.7.18 cflinuxfs4
tomcat 9.0.113 cflinuxfs4
tomcat 10.1.52 cflinuxfs4, cflinuxfs5
tomcat 11.0.20 cflinuxfs4, cflinuxfs5
tomcat-access-logging-support 3.4.0 cflinuxfs3, cflinuxfs4
tomcat-lifecycle-support 3.4.0 cflinuxfs3, cflinuxfs4
tomcat-logging-support 3.4.0 cflinuxfs3, cflinuxfs4
your-kit-profiler 2025.9.191 cflinuxfs4, cflinuxfs5
zulu 8.0.482 cflinuxfs4, cflinuxfs5
zulu 11.0.30 cflinuxfs4, cflinuxfs5
zulu 17.0.18 cflinuxfs4, cflinuxfs5

Default binary versions:

name version
openjdk 17.x
zulu 11.x
sapmachine 21.x
tomcat 10.1.x
tomcat-access-logging-support 3.x
tomcat-lifecycle-support 3.x
tomcat-logging-support 3.x
groovy 4.0.x
spring-boot-cli 2.7.x
jvmkill 1.x
memory-calculator 4.x
auto-reconfiguration 2.x
java-cfenv 3.x
client-certificate-mapper 2.x
postgresql-jdbc 42.x
mariadb-jdbc 3.x
datadog-javaagent 1.x
elastic-apm-agent 1.x
azure-application-insights 3.x
skywalking-agent 9.x
splunk-otel-javaagent 2.x
google-stackdriver-profiler 0.x
open-telemetry-javaagent 2.x
jacoco 0.8.x
contrast-security 6.x
jrebel 2025.x
java-memory-assistant 0.x
java-memory-assistant-cleanup 0.x
your-kit-profiler 2025.x
jprofiler-profiler 15.x
sealights-agent 4.x
container-security-provider 1.x
luna-security-provider 7.x
newrelic 8.x
cf-metrics-exporter 0.7.x
metric-writer 3.x
  • Uncached buildpack SHA256: d247a1e98ae3ccd5f483f60f679c42ba06f305d7b0b988516bf9b2cbda037bcf

What's Changed

New Contributors

Full Changelog: v2.1.2...v5.0.0