Microsoft Deepens Its Investments in Java
Big news for Java developers today along with some recent recap. Check it out!
Java Community Process
Today we are proud to share that Microsoft has signed the Java Specification Participation Agreement, known as JSPA, to officially join the Java Community Process.
“For the past 23 years, the Java Community Process (JCP) program has guided the specification of the Java platform in cooperation with the international Java developer community. The JCP program welcomes participation and membership from corporate, open source, individual, and Java User Group participants. We are delighted to welcome Microsoft to the JCP program; it continues to represent the vibrant Java ecosystem. We look forward to seeing their contributions.”
Heather VanCura, Chair and Director of the JCP program, Oracle
The JCP is the mechanism for developing standard technical specifications for Java technologies, enabling collaboration between individual developers, customers, and vendors interested in submitting suggestions for Java APIs.
“The JCP is the place where we define and discuss the future of Java, and where we need the collaboration of all the Java community”, adds Bruno Souza, President of the SouJava User Group, an Executive Committee Member of the JCP. “Microsoft has been an important part of this community, with their involvement in OpenJDK but also supporting Java User Groups and community events. Because of all that, Microsoft has become a strong partner of SouJava and we are excited to have them go even deeper on their commitment with the Java community.”
As we have collectively learned since the announcement of the Microsoft Build of OpenJDK in April 2021, Java usage within Microsoft has grown way beyond Minecraft. We have more than 500,000 JVMs in production running hundreds of internal Microsoft systems. In addition to significant internal Java usage, there are many customers and developers coding and running Java on Microsoft Azure and GitHub. Joining the JCP is a major, yet natural step forward for Microsoft in helping shape the future of the Java Platform.
“Java remains a key context for IT today and for the foreseeable future,” said James Governor, co-founder of RedMonk. “Microsoft is clearly illustrating its commitment to that future by becoming a strategic member of the Eclipse Foundation, but also with its engineering contributions to technologies such as OpenJDK, Windows on ARM, Apple M1 and Alpine Linux.”
Participating in the JCP is a significant milestone in Microsoft’s journey within the Java ecosystem. We look forward to working on behalf of our customers and teams in collaborating with partners, Java vendors, Java User Groups (JUGs), and individuals. These are the passionate contributors making the future of Java and keeping it innovative.
Microsoft Build of OpenJDK
This week marks the celebration of the latest Microsoft Build of OpenJDK updates. Microsoft is committed in supporting the Long-Term Supported (LTS) versions which are OpenJDK 11 and OpenJDK 17. Developers are encouraged to update their systems and workloads to OpenJDK 17.0.1 and OpenJDK 11.0.13. These versions will soon be rolled out to Microsoft Azure services where Microsoft manages the JDK on behalf of the customers, such as Azure App Service, Azure Functions, and Azure Spring Cloud.
This week we’ve also included new articles in the documentation:
- Vanity URLs for latest updates of LTS builds
- Default locale settings in container images
- Stay on older minor versions in container images
As a reminder, OpenJDK 16 is not a Long-Term Supported (LTS) major release per Microsoft Build of OpenJDK Support Policy, and therefore has not received an update, remaining at 16.0.2 release. Minecraft’s Java Edition currently deploys with OpenJDK 16 and will soon move to OpenJDK 17. We will archive all OpenJDK 16 released versions once the transition is complete.
New LTS release cadence
In September 2021, Oracle proposed their new Two Year LTS Cadence of the commercial Oracle JDK binaries. Martijn Verburg, who leads the Microsoft Java Engineering Group, and actively participates in the Eclipse Adoptium project and the London Java Community JUG, had this to say about Microsoft’s interest in aligning this release cadence with the Microsoft Build of OpenJDK:
“Microsoft believes in the end-user and operator benefits that modern Java brings. Therefore, we would also like to endorse the 2-year LTS proposal for builds of OpenJDK. Since most of the end-user ecosystem prefers to have the extra stability of an LTS, this is a great way to encourage them with their modernization efforts!
Microsoft is willing to commit to helping maintain the various LTS updates projects as they move through their natural lifecycles.”
— Martijn Verburg
Microsoft expects to release OpenJDK 21 as its next LTS version by 2023 – provided the OpenJDK ecosystem moves forward with this proposal and other OpenJDK vendors adopt this cadence.
Jakarta EE and Java EE and Spring on Azure
The most widespread impact of the JCP on the daily lives of millions of Java developers worldwide is unquestionably the central role it plays in the development of the foundational technologies for server-side Java. Some combination of Servlet, JSP, Expression Language, JPA, JMS, Bean Validation and Dependency Injection is at the heart of every server-side Java, from Spring to Tomcat to WebLogic to WebSphere, JBoss EAP and more. These technologies were all developed using the JCP and are concrete proof that the voice and spirit of the Java community is implemented directly in the code that makes Java a continued success.
Microsoft contributes to the continued vitality of these and many other standard-based technologies by ensuring they have a happy home on Azure. Here are a few examples of how Java EE, and Jakarta EE going forward, run great on Azure.
- JBoss EAP on Azure App Service and VMs
- Oracle WebLogic Server on Azure Kubernetes Service and Azure VMs
- IBM WebSphere Liberty on Azure RedHat OpenShift and Azure Kubernetes Service
- IBM WebSphere Traditional on Azure VMs
- JMS on Azure Service Bus Messaging
- Azure Spring Cloud and Spring Cloud for Azure
For more details on these and other Java on Azure developments, please see these other posts on this blog:
Microsoft is increasing its investment in open standard enterprise Java with its membership of JCP and continued support of Jakarta EE and Eclipse MicroProfile technologies on Azure.
Java on Visual Studio Code
Last week we saw the 1.0 release of the Language Support for Java on Visual Studio Code, a multi-year collaboration between Microsoft, Red Hat, and the Java community. This release includes a series of changes, but most importantly the stability that more than 1 million Visual Studio Code Java developers expect.
Highlights in this release include:
- Java 17 support
- Performance improvements
- Type hierarchy navigation
- Source lookup
- Gradle Kotlin support
Java on GitHub
If all this is not enough, we invite all Java developers to sign up for GitHub Copilot and GitHub Codespaces! Both services include support for Java and integration with Visual Studio Code.
Happy coding Java fans!
* JCP Flag cover photo credit to Obie Fernandez - Creative Commons License.
GitHub copilot support for Eclipse IDE would be great feature too just like intellij.
Very good news!
Visual Studio for Mac keeps having the update ‘Eclipse Temurin JDK 220.127.116.112’, no matter how often I click ‘Restart and Install Update’. And even worse, after that, I can’t build Android apps because then I get ‘/Library/Frameworks/Mono.framework/External/xbuild/Xamarin/Android/Xamarin.Android.Tooling.targets(5,5): Warning: An exception occurred while validating the Java SDK installation in ” that was found while searching the paths from ‘monodroid-config.xml’. Ensure that the Android section of the Visual Studio options has a valid Java SDK directory configured. To use a custom SDK path for a command line build, set the ‘JavaSdkDirectory’ MSBuild property to the custom path. Exception: Value cannot be null.’
@Marc Vos : Can you create an issue at Link? Please attach all logs from /Library/Logs/VisualStudio/8.0 and /Library/Logs/VisualStudio/17.0 (If preview version is installed). Also, can you mention which all java version is installed at /Library/Java/JavaVirtualMachines.
Workaround to fix the JDK Path and prevent update from showing in the Updater: You can set the Java SDK Path to “/Library/Java/JavaVirtualMachines/temurin-8.jdk/Contents/Home”, using the following menu path, VisualStudio->Preferences->Projects->Android->SDKLocations->Location->Java SDK Location. .
These are all amazing news!
I was stuck in IntelliJ for Java development as I was thinking it’s not possible to debug with Visual Studio Code. Turns out not only debugging but also Copilot integrations are in place, wow.
Software Developer @Tigillo