Answers frequently asked questions about GitHub Copilot App Modernization - upgrade for Java (preview).
What is GitHub Copilot App Modernization - upgrade for Java (preview)?
GitHub Copilot App Modernization - upgrade for Java (preview) is an AI-based agentic solution designed to assist with upgrading your Java apps.
What can GitHub Copilot App Modernization - upgrade for Java (preview) do?
Today, GitHub Copilot App Modernization - upgrade for Java (preview) helps you upgrade the Java runtime, dependencies, popular frameworks, and code in your project to newer versions. It's an extension for Visual Studio Code which can perform the following tasks:
- Analyze the project and its dependencies and propose an upgrade plan.
- Execute the plan to transform the project.
- Automatically fix issues during the progress.
- Report all details including commits, logs, and output.
- Perform a check for Common Vulnerabilities and Exposures (CVE) security vulnerabilities and code inconsistencies after the upgrade.
- Show a summary including file changes, updated dependencies, and fixed issues.
- Generate unit tests separately from the upgrade process.
What GitHub Copilot plans are available for GitHub Copilot App Modernization - upgrade for Java (preview)?
This product is currently available for the GitHub Copilot Business and Enterprise plans.
Can this tool help migrate my codebase to Azure?
There's a separate tool to accomplish this task. For more information, see GitHub Copilot App Modernization for Java (preview).
Do you have an upgrade tool for .NET?
Yes. For more information, see GitHub Copilot App Modernization for .NET.
What kind of applications was GitHub Copilot App Modernization - upgrade for Java (preview) evaluated on?
We validated the tool on various open-source repositories to ensure build success after upgrade. We also worked extensively with customers during the Technical Preview phase. User feedback plays a critical role in refining the experience. If you would like to participate, see Provide your feedback on GitHub Copilot App Modernization - upgrade for Java.
Does it support framework and library upgrades like Spring Boot and JUnit?
Yes. Although its primary focus is on Java runtime upgrades, the assistant includes a planning phase to analyze and recommend updates for the following tools:
- Spring Boot
- JUnit and other test frameworks
- Other third-party dependencies
You can edit the upgrade plan to select the versions that best meet your compatibility and project requirements.
Currently, we only support upgrading to Spring Boot 2.7 and 3.2, but more versions are going to be supported soon. If you specify a different Spring Boot version during the upgrade, we select the closest supported version.
What kind of Java versions are supported?
We currently support the following Java Development Kit (JDK) versions:
- JDK 8
- JDK 11
- JDK 17
- JDK 21
The minimum required JDK version for a project is JDK 8, and you can upgrade the project to use any version up to JDK 21.
What types of Java projects are supported?
Currently, only the following project types are supported:
- Maven projects (including Maven Wrapper)
- Gradle projects (Gradle Wrapper only, version 5+)
Kotlin DSL-based Gradle projects aren't supported.
What are the operational requirements for using this tool?
To ensure successful operation, the following information is required:
- The Project type. The project must be a Git-based Java project buildable with Maven or Gradle.
- The target Java version - the JDK version you want to upgrade to - for example, Java 21.
- The source and target JDK paths - the paths to the installed JDKs for the current and target versions.
- The Maven/Gradle setup - paths to the Maven/Gradle build tools. For Gradle, only Gradle wrappers are supported.
What are the limitations of this tool?
Currently, the extension has the following functional limitations:
- The extension exclusively supports Java upgrades and doesn't cater to other programming languages.
- It works only with Java projects built using Maven and Gradle.
- Only Git repositories are supported. Other version control systems aren't compatible.
- The extension can't guarantee that the changes it proposes are optimal or considered best-practice.
We recommend using the following best practices with this tool:
- Run the extension only on projects that meet the specified characteristics as previously described.
- Complete thorough code reviews before merging extension output into production branches.
- Run all tests and complete the usual QA checks associated with your change management process as appropriate.
Does it store my code?
No, the tool uses GitHub Copilot in the same way you use it to modify code, which doesn't retain code snippets beyond the immediate session.