cloudfoundry / java-buildpack

Cloud Foundry buildpack for running Java applications
Apache License 2.0
433 stars 2.59k forks source link

Java 21 Support #1035

Closed jbennett2091 closed 7 months ago

jbennett2091 commented 9 months ago

Java 21 is the new LTS version of Java. Please provide cloudfoundry support for this JVM so that applications built for Java 21 can run in CF.

pivotal-david-osullivan commented 9 months ago

We are investigating adding 21 to the default list of version lines, the current problem with this is a size limitation on CF wrt buildpack size > 1GB.

The binaries for 21 have been added to the default repository already, so at the moment you just need to add 21 to the version_lines list, bundle the buildpack, and choose 21 with the OpenJDK config variable.

anthonydahanne commented 8 months ago

@pivotal-david-osullivan , according to @dsabeti buildpacks larger than 1GB have been successfully used in the field.

I think we could add 21 directly into the official Java buildpack

candrews commented 8 months ago

Any news?

I'm not clear on what, if anything, is blocking the resolution of this issue by merging https://github.com/cloudfoundry/java-buildpack/pull/1040

anthonydahanne commented 8 months ago

we're currently validating the size bigger than 1GB will not break the upload of JBP updates (we believe, as @pivotal-david-osullivan mentioned https://github.com/cloudfoundry/java-buildpack/issues/1035#issuecomment-1753051227 that it could be an issue in some cases)

dohq commented 7 months ago

I created a buildpack with JDK21 enabled locally and tried cf create-buildpack in a TAS 2.11 environment. The file size was 1.1G, but the result was "413 Request Entity Too Large" and it seemed to fail.

Creating buildpack java_buildpack_offline_jdk21 as admin...
OK

Uploading buildpack java_buildpack_offline_jdk21 as admin...
 1.01 GiB / 1.01 GiB [====================================================================================================================================================================================================================] 100.00% 1m19s

Error unmarshalling the following into a cloud controller error: <html>
<head><title>413 Request Entity Too Large</title></head>
<body>
<center><h1>413 Request Entity Too Large</h1></center>
<hr><center>nginx</center>
</body>
</html>

FAILED
Time: 0h:01m:19s
jaschenk commented 7 months ago

Anyway we can get some traction on this? I was able to build locally the build pack and to eliminate the size issues, removing JDK8 and JDK11, as you should have the options to build what you want. Thank you for everyone's efforts. But you should consider clipping out older JDKs.

dsabeti commented 7 months ago

Just updating this thread on the progress:

@anthonydahanne, I think you're safe to start the work to integrate Java 21 in the buildpack.