Celebrating 15 years of SAP’s involvement in the OpenJDK

Almost exactly 15 years ago, on the 14th of July 2011, SAP became a member of the OpenJDK and one of its biggest contributors (source), helping to keep Java alive. To quote Ian Brown from the Java Platform Team at Netflix:

The superpower of #OpenJDK is that companies like #SAP can build what they need on top of the #JVM and then share those innovations back upstream for the benefit of the ecosystem. Congratulations to the #SAPMachine team on a decade and a half of advancing the state of the art in managed runtimes and being an awesome member of the community!

Mastodon

The Early Days

But of course, SAP’s involvement in the Java community didn’t start there. Java became more and more important in the late 90ties, so SAP wanted to have a JVM tightly integrated with the SAP technology stack (including ABAP) and in 2000/2001 started participating in the Java Community Process (JCP), when it became a licensee of J2EE and J2SE, with Michael Bechauf becoming a representative in the executive committee in 2002 to guide the Java platform to become “the foundation for a next generation service composition platform that can rapidly deliver applications that support those business processes deemed most critical for a company.” (source)

Java becoming a foundational technology for SAP was also facilitated by SAP’s 2000 acquisition of the Bulgarian company InQMy, which developed an application server (source). This became a foundational part of SAP’s NetWeaver application server. This product was released in 2004 (source). The Java application server initially ran on licensed Sun/Oracle JVM technology. SAP later developed SAPJVM, a SAP-maintained HotSpot-based JVM optimized for enterprise SAP workloads.

For SAP, it was an important decision when in 2001 we incorporated Java into our core products and made it an essential part of our technology platform SAP NetWeaver.

SAP Blogs

But this was still the time when Java was primarily developed by Sun, from which SAP licensed the Java source code for SAPJVM, with smaller contributions and bug fixes happening in private between the two companies. The team that later became the SapMachine team made many changes to make the JVM suitable for SAP’s use-cases: It ported HotSpot to many enterprise platforms, maintained SAP-specific fixes, optimized GC and memory behavior, supported AIX, PowerPC, s390, and other enterprise platforms, and made changes to integrate the JVM into SAP’s existing ecosystem. As well as starting development of the Eclipse-based SAPJVM-profiler, which is still endeared to its many users. Some would even argue it’s one of the best profilers out there…

SAP and the OpenJDK

Then, in December 2007, Sun started releasing the Java runtime as open-source under the GPL license (source). But the process was slow, so slow in fact that in 2009, a SAPJVM-related person wrote:

The Java industry is currently going through important changes, and there are many discussions around the openness of Java and the Java Community Process (JCP). To date, the JCP is heavily dominated by Sun Microsystems which was not always to the benefit of all parties interested in Java. Java is the lifeblood of the IT industry, and IT is a fundamental underpinning of the way business is conducted in the 21st century. The technical interfaces that are jointly developed by the community should be immune from bias, and the community should be able to work even closer together in the spirit of cooperation to continue the Java success story.

SAP Blogs

Then, after Oracle acquired Sun in 2010, IBM and Apple joined the OpenJDK project, helping broaden its governance beyond Sun/Oracle. SAP joined them in 2011, when Volker Simonis, the then lead of SAP’s JVM team, wrote the following mail to the OpenJDK mailing lists:

Dear all, I’m really happy that as of today, SAP has signed the Oracle Contributor Agreement (OCA). This means that with immediate effect the SAP JVM developers can officially join the discussions on the various OpenJDK mailing lists and contribute patches and enhancements to the project. SAP is a long time Sun and now Oracle Java source licensee who has ported the original Sun (now Oracle) JDK to all the 14 SAP supported platforms (including the Oracle supported Linux/Windows/Solaris platforms plus Win/IA64, AS400/PPC64, HPUX/PARISC, HPUX/IA64, Linux/IA64, Linux/PPC64, Linux/S390, AIX/PPC64). I’m sure this move will be fruitful and beneficial for both, the OpenJDK community as well as SAP. Looking forward to working with you, Volker Simonis and the whole SAP JVM team

SAP JOINs the OpenJDK

SAP’s Contributions

One of the biggest contributions, which is still ongoing, is the support of the OpenJDK on the PowerPC platform. This started in 2013 with JEP 175, with the stated motivation to:

  • Extend the platform coverage of the JDK source base to Linux/PowerPC64 and AIX/PowerPC64
  • Refactor and modularize the HotSpot source base to simplify future ports
  • Foster the collaboration between Java implementers in the OpenJDK Community

SAP started this project, which is currently led by Martin Dörr (source), with major contributions by Richard Reingruber, who recently worked on porting virtual threads to the platform. And since 2022, I’ve been part of this team, while many of my colleagues have been part of this journey for over 15 years.

Additionally, SAP is currently a member of two groups and is making important efforts to keep the project stable:

  • JCP Executive Committee Member: SAP’s membership in the Java Community Process (JCP) Executive Committee, held since 2001, ensures that SAP has a significant influence on the direction and standards of the Java platform. This benefits both SAP and the broader Java community.
  • Java SE Expert Groups: SAP has been part of the Java SE Expert Groups since Java SE 9. These expert groups review the Java Specification Requests (JSR) which define the standard for Java releases. This ongoing involvement allows SAP to shape the future of Java SE and ensure that it meets the needs of enterprise applications, both now and in the future. A comprehensive list of all JSRs is available on the JCP JSR website.
  • OpenJDK updates: SAP [with Götz Lindenmaier] is Lead Maintainer for OpenJDK 25 updates and OpenJDK 17 updates, and Maintainer for OpenJDK 21 updates, ensuring these release lines remain stable, secure, and reliable.
SAP’s Engagement in the OpenJDK Project

With the other notable contributions, besides the PowerPC and S390 port being:

  • Helpful NullPointerExceptions: Introduced Helpful NullPointerExceptions (JEP 358), which enhances null pointer exceptions by providing more detailed information, including the variable name and type. This improvement helps developers identify and fix null pointer exceptions more quickly and accurately.
  • Elastic Metaspace: Introduced the Elastic Metaspace (JEP 387), which improves the efficiency of metaspace memory usage by the JVM and hence helps reducing memory footprint.
  • JFR CPU-Time Profiling: Added JFR CPU-Time Profiling (JEP 509), which brings CPU based profiling capabilities to the JFR feature of the JDK.
SAP’s Engagement in the OpenJDK Project

The last one is my contribution. You can read more about it in my blog post series, starting with the post “Java 25’s new CPU-Time Profiler (1)“.

Other contributions to the ecosystem include all the work I have done in recent years:

And many more.

So celebrate with me that SAP has been active in the Java community for over 25 years and has been a part of OpenJDK for 15 years.

P.S.: And if you’re an SAP employee who wants to join our party, we celebrate next week on the 14th of July in the WDF03 canteen (online and offline), sign up here.

Author

  • Johannes Bechberger

    Johannes Bechberger is a JVM developer working on profilers and their underlying technology in the SapMachine team at SAP. This includes improvements to async-profiler and its ecosystem, a website to view the different JFR event types, and improvements to the FirefoxProfiler, making it usable in the Java world. His work today comprises many open-source contributions and his blog, where he regularly writes on in-depth profiling and debugging topics. He also works on hello-ebpf, the first eBPF library for Java. His most recent contribution is the new CPU Time Profiler in JDK 25.

    View all posts

New posts like these come out at least every two weeks, to get notified about new posts, follow me on BlueSky, Twitter, Mastodon, or LinkedIn, or join the newsletter:

Leave a Reply

Your email address will not be published. Required fields are marked *