MSFT OpenJDK for Azure App Service
- By David Ramel
- April 25, 2022
The Microsoft Build of OpenJDK has come to its Azure App Service, bringing with it new support for Java 17 and Tomcat 10.0.
The Azure App Service, is an HTTP-based service for hosting web applications, REST APIs, and mobile back ends. It's designed to allow Java developers to quickly build, deploy, and scale their Java SE, Tomcat, and JBoss EAP web applications on a fully managed service. And they can deploy their apps with Maven plugins from the command line or in editors such as IntelliJ, Eclipse, and Visual Studio Code.
This new support is part of its big push from Microsoft to further Java development in the Azure cloud. The company shipped its first Build of OpenJDK, an open-source kit for Java, featuring backported fixes and enhancements the company deems important to its customers and internal users.
Early this year, Microsoft published an update on progress made in pointing its OpenJDK build to Azure Platform Services, including Azure Functions, Azure Spring Cloud, and Azure App Service.
Last month the company announced that a platform update to support the Microsoft OpenJDK build has been fully rolled out, featuring brand-new platform runtimes for Java 17 and Tomcat 10.0. The latter is a free and open-source implementation of the Jakarta Servlet, Jakarta Expression Language, and WebSocket technologies, providing a "pure Java" HTTP web server environment in which Java code can run. Here's what Microsoft had to say about them:
"Java 17 on App Service is distributed via the Microsoft Build of OpenJDK, a no-cost long-term supported distribution of the OpenJDK and Microsoft's new way to collaborate and contribute to the Java ecosystem. You can learn more about the Microsoft Build of OpenJDK from the documentation."
More information is also provided in a YouTube video featuring an interview with Martijn Verburg, the principal engineering group manager for the Java Engineering Group at Microsoft, on the Microsoft Build of OpenJDK 17.
Java 8 and 11 were previously supported on Azure App Service. Note that, with the new Java 17 support, the app service is still running behind the mainstream Java channel, which saw the debut of Java 18 last month. Other Microsoft wares have been quicker to adopt the latest Java version. For example the company just this week announced that its Java on Visual Studio Code experience -- provided via extensions -- now supports Java 18. However, Java 17 is a Long-Term Support (LTS) release, while Java 18 is not.
"Tomcat 10.0 builds on Tomcat 9.0.x, supports Java 8 and later, and is the first Tomcat release to migrate from the Java EE 8 specification to Jakarta EE 9. This means that Tomcat 9.0 or 8.5 applications will require a refactor and rebuild to run on Tomcat 10.0 in almost all cases.
This sample application illustrates the code changes that must be made to migrate a Tomcat 9 application from Java EE APIs to Jakarta EE APIs. For more information, please refer to the official Tomcat 10.0 migration guide on the Apache Tomcat website for guidance on migrating Tomcat 9.0 and 8.5 applications to Tomcat 10.0. Tomcat 10 on App Service is supported for Java 8, 11, and 17. It is distributed with Eclipse Temurin for Java 8, and Microsoft Builds of OpenJDK for Java 11 and 17."
David Ramel is an editor and writer for Converge360.