The search feature of Team Foundation Server (TFS) uses Elasticsearch, which depends on Java SE. Until now, Oracle Java SE was the supported version of JRE for TFS search. With the change in Oracle licensing terms, there will be no more “free public Java updates” and users are required to buy a subscription to continue to get JRE updates for commercial use. We’ve heard from lots of customers wanting other options and we’re happy to announce that TFS Search is now supported with Azul Zulu OpenJDK, allowing you to choose between Azul Zulu OpenJDK and Oracle JRE based on your needs.
We have been using Azul Zulu OpenJDK to run the search capabilities in our hosted Azure DevOps Services for a while now so we are confident that search will work seamlessly with Azul Zulu OpenJDK for our on-premises customers also.
From the next major version of TFS (Azure DevOps Server 2019), customers selecting installation of Java during install time will have Azul Zulu OpenJDK 8 community version as the default option.
Note that while users with Oracle Java subscription will get automatic updates, Azul Zulu OpenJDK community version is a volunteer driven effort with no dedicated commercial support and updates. If you require dedicated commercial support to Azul Zulu OpenJDK, please contact Azul for more details on Zulu Enterprise.
What options do I have if I am using an older version of Team Foundation Server?
All TFS Search users (from TFS 2017 RTW) can pursue one of the following options.
Option 1: Continue using Oracle JRE (Customer may need to buy an Oracle JRE SE subscription for updates if they do not already have one in place)
Option 2: Move to Azul Zulu OpenJDK
How to Move to Azul Zulu OpenJDK
You can easily switch to Azul Zulu OpenJDK without incurring any TFS downtime in few simple steps, as outlined in the following diagram below.
You can find detailed step-by-step guidance based on the TFS version here.
What will be the experience in Azure DevOps Server 2019 RTW and onward?
In the next major release of TFS (which will be called Azure DevOps Server 2019) you will be able to use either Azul Zulu OpenJDK 8 (update 201 or higher) or Oracle JRE 8 (update 60 or higher) on the machine where the search feature is installed. For a single box configuration (when Elasticsearch is installed on the same server as Azure DevOps Server), when a compatible version of Java is not found, the Search configuration experience will help you download and install Azul Zulu OpenJDK, 8 as shown in the following image.
You can reach us on Developer Community if you need any further help or have any suggestions.