{"id":232109,"date":"2025-05-19T08:55:03","date_gmt":"2025-05-19T15:55:03","guid":{"rendered":"https:\/\/devblogs.microsoft.com\/java\/?p=232109"},"modified":"2025-10-14T23:16:45","modified_gmt":"2025-10-15T06:16:45","slug":"public-preview-app-mod-java","status":"publish","type":"post","link":"https:\/\/devblogs.microsoft.com\/java\/public-preview-app-mod-java\/","title":{"rendered":"Announcing Public Preview of the GitHub Copilot app modernization for Java"},"content":{"rendered":"<p data-start=\"281\" data-end=\"521\">Modernizing Java applications and migrating to the cloud is often a complex, time-consuming, and fragmented process. <span data-contrast=\"auto\"><strong>GitHub Copilot app modernization for Java <\/strong><\/span>is a powerful solution designed to simplify and accelerate your journey to the cloud.<\/p>\n<p data-start=\"523\" data-end=\"819\">Available now in <strong>Public Preview as <\/strong>a <a href=\"https:\/\/marketplace.visualstudio.com\/items?itemName=vscjava.migrate-java-to-azure\">Visual Studio Code extension<\/a>, <span data-contrast=\"auto\"><strong>GitHub Copilot app modernization for Java<\/strong> <\/span> provides an intelligent, guided approach to Java upgrades and modernization\u2014automating repetitive tasks, improving consistency, and reducing risk.<\/p>\n<h2>Six Core Value Pillars<\/h2>\n<h3><strong>1.Intelligent Issue Analysis &amp; Recommendation\u00a0<\/strong><\/h3>\n<p><span data-contrast=\"none\">Modernization starts with insight. Whether you\u2019re upgrading Java runtime or migrating to Azure, modernization starts with understanding your code. Our tool<\/span><span data-contrast=\"none\"> analyzes your project\u2019s current state and generates a plan, offering <\/span><b><span data-contrast=\"none\">context-aware fixes<\/span><\/b><span data-contrast=\"none\"> and actionable recommendations from <\/span><b><span data-contrast=\"none\">Azure Migrate Application Code Assessment Tool (AppCAT)<\/span><\/b><span data-contrast=\"none\">, so you spend less time diagnosing and more time modernizing.\u00a0<\/span><span data-contrast=\"auto\">AppCAT is also available as a stand-alone CLI tool. See <\/span><a href=\"https:\/\/learn.microsoft.com\/en-us\/azure\/migrate\/appcat\/java-preview?view=migrate-classic&amp;tabs=linux\"><span data-contrast=\"none\">AppCAT for Java<\/span><\/a><span data-contrast=\"auto\"> to learn more.<\/span><span data-ccp-props=\"{}\">\u00a0<\/span><\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/java\/wp-content\/uploads\/sites\/51\/2025\/05\/intelligent.gif\"><img decoding=\"async\" class=\"alignnone size-full wp-image-232121\" src=\"https:\/\/devblogs.microsoft.com\/java\/wp-content\/uploads\/sites\/51\/2025\/05\/intelligent.gif\" alt=\"Intelligent analysis and recommendation\" width=\"1280\" height=\"720\" \/><\/a><\/p>\n<h3><strong>2.Expert-led Code Transformation<\/strong><\/h3>\n<p><span data-contrast=\"none\">Once plan is generated, GitHub Copilot App Modernization for Java is a powerful code transformation engine that combines <\/span><b><span data-contrast=\"auto\">expert-led migration strategies<\/span><\/b><span data-contrast=\"auto\"> and <\/span><b><span data-contrast=\"auto\">automated Java upgrade<\/span><\/b><span data-contrast=\"auto\">.<\/span> <span data-contrast=\"auto\">Whether you&#8217;re moving from Java 8 to Java 21 or re-platforming for Azure services, Copilot applies structured changes with precision.<\/span><span data-ccp-props=\"{&quot;335559738&quot;:240,&quot;335559739&quot;:240}\">\u00a0<\/span><\/p>\n<p>For cloud modernization scenarios, it offers <strong data-start=\"2147\" data-end=\"2181\">predefined AI-powered formulas<\/strong> that encode proven migration strategies. These formulas apply expert knowledge to common Java-to-Azure scenarios with high accuracy. Currently supported formulas include secret management, message queue integration, identity, and more. See the <a class=\"cursor-pointer\" href=\"https:\/\/learn.microsoft.com\/en-us\/azure\/developer\/java\/migration\/migrate-github-copilot-app-modernization-for-java-predefined-formula\" target=\"_new\" rel=\"noopener\" data-start=\"2441\" data-end=\"2482\">predefined formulas<\/a> page for a full list.<\/p>\n<p>For Java upgrades, the extension execute tools like <a href=\"https:\/\/docs.openrewrite.org\/\"><strong data-start=\"2549\" data-end=\"2564\">OpenRewrite<\/strong><\/a> to apply code transformations, dynamically resolve build issues, and run test validations \u2014 ensuring a smooth, error-free upgrade process.<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/java\/wp-content\/uploads\/sites\/51\/2025\/05\/codetransformation.gif\"><img decoding=\"async\" class=\"alignnone size-full wp-image-232122\" src=\"https:\/\/devblogs.microsoft.com\/java\/wp-content\/uploads\/sites\/51\/2025\/05\/codetransformation.gif\" alt=\"Expert-led code transformation\" width=\"1280\" height=\"720\" \/><\/a><\/p>\n<h3><strong>3.<span class=\"TextRun SCXW31899825 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW31899825 BCX0\">Automation Through Learning<\/span><\/span><span class=\"EOP SCXW31899825 BCX0\" data-ccp-props=\"{}\">\u00a0<\/span><\/strong><\/h3>\n<p data-start=\"2780\" data-end=\"3083\">Beyond predefined strategies, developers can capture their own migration logic into <strong data-start=\"2864\" data-end=\"2892\">custom reusable formulas<\/strong>. This is done by converting Git commits into structured migration patterns\u2014allowing teams to scale and <strong data-start=\"2996\" data-end=\"3026\">reuse learned remediations<\/strong> across multiple codebases with accuracy and consistency.<\/p>\n<p data-start=\"3085\" data-end=\"3314\"><span class=\"TextRun SCXW70210983 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW70210983 BCX0\">Custom formulas can be created from one or more commits, provided they accurately reflect the intended coding behaviors.<\/span> <span class=\"NormalTextRun SCXW70210983 BCX0\">The e<\/span><span class=\"NormalTextRun SCXW70210983 BCX0\">xample below <\/span><span class=\"NormalTextRun SCXW70210983 BCX0\">combines <\/span><span class=\"NormalTextRun SCXW70210983 BCX0\">previous<\/span> <span class=\"NormalTextRun SCXW70210983 BCX0\">code changes <\/span><span class=\"NormalTextRun SCXW70210983 BCX0\">from local file to Azure Blob and RabbitMQ to Azure Service Bus<\/span><span class=\"NormalTextRun SCXW70210983 BCX0\"> into one <\/span><span class=\"NormalTextRun SCXW70210983 BCX0\">powerful<\/span><span class=\"NormalTextRun SCXW70210983 BCX0\">,<\/span> <span class=\"NormalTextRun SCXW70210983 BCX0\">all-encompassing <\/span><span class=\"NormalTextRun SCXW70210983 BCX0\">formula, and executes it against<\/span><span class=\"NormalTextRun SCXW70210983 BCX0\"> my current project.<\/span><\/span><span class=\"EOP TrackedChange SCXW70210983 BCX0\" data-ccp-props=\"{}\">\n<\/span><\/p>\n<p data-start=\"3085\" data-end=\"3314\"><a href=\"https:\/\/devblogs.microsoft.com\/java\/wp-content\/uploads\/sites\/51\/2025\/05\/automation.gif\"><img decoding=\"async\" class=\"alignnone size-full wp-image-232123\" src=\"https:\/\/devblogs.microsoft.com\/java\/wp-content\/uploads\/sites\/51\/2025\/05\/automation.gif\" alt=\"Automation through Learning\" width=\"1280\" height=\"720\" \/><\/a><\/p>\n<h3><strong>4.<span class=\"TextRun SCXW31899825 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW31899825 BCX0\">Automatic Error Fixing<\/span><\/span><\/strong><\/h3>\n<p><span class=\"TextRun SCXW161761646 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW161761646 BCX0\">Modernization <\/span><span class=\"NormalTextRun SCXW161761646 BCX0\">isn&#8217;t<\/span><span class=\"NormalTextRun SCXW161761646 BCX0\"> complete until your application successfully builds. <\/span><span class=\"NormalTextRun SCXW161761646 BCX0\">GitHub Copilot App Modernization for Java <\/span><span class=\"NormalTextRun SCXW161761646 BCX0\">helps resolve issues automatically and performs test validations, ensuring error-free transformations and keeping your production pipelines running smoothly.<\/span><\/span><span class=\"EOP SCXW161761646 BCX0\" data-ccp-props=\"{}\">\u00a0<\/span><\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/java\/wp-content\/uploads\/sites\/51\/2025\/05\/buildfix.png\"><img decoding=\"async\" class=\"alignnone size-full wp-image-232115\" src=\"https:\/\/devblogs.microsoft.com\/java\/wp-content\/uploads\/sites\/51\/2025\/05\/buildfix.png\" alt=\"GitHub Copilot app modernization for Java automatically fixes errors\" width=\"1325\" height=\"1206\" srcset=\"https:\/\/devblogs.microsoft.com\/java\/wp-content\/uploads\/sites\/51\/2025\/05\/buildfix.png 1325w, https:\/\/devblogs.microsoft.com\/java\/wp-content\/uploads\/sites\/51\/2025\/05\/buildfix-300x273.png 300w, https:\/\/devblogs.microsoft.com\/java\/wp-content\/uploads\/sites\/51\/2025\/05\/buildfix-1024x932.png 1024w, https:\/\/devblogs.microsoft.com\/java\/wp-content\/uploads\/sites\/51\/2025\/05\/buildfix-768x699.png 768w\" sizes=\"(max-width: 1325px) 100vw, 1325px\" \/><\/a><\/p>\n<h3><strong>5.Post-upgrade CVE and Code Inconsistency Validation<\/strong><\/h3>\n<p><span class=\"TextRun SCXW267216705 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW267216705 BCX0\">The GitHub Copilot App Modernization for Java scans for CVE vulnerabilities and code inconsistencies after the upgrade process is completed. When such issues are detected, the tool automatically fixes the issues within the Agent Mode, allowing the user to review the fixes. This improves the application&#8217;s security posture and ensures compliance with organizational guidelines.<\/span><\/span><span class=\"EOP SCXW267216705 BCX0\" data-ccp-props=\"{}\">\u00a0<\/span><\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/java\/wp-content\/uploads\/sites\/51\/2025\/05\/Post_Upgrade_CVE_check.gif\"><img decoding=\"async\" class=\"alignnone size-full wp-image-232120\" src=\"https:\/\/devblogs.microsoft.com\/java\/wp-content\/uploads\/sites\/51\/2025\/05\/Post_Upgrade_CVE_check.gif\" alt=\"GitHub Copilot app modernization checks for CVE issues and address them\" width=\"3840\" height=\"2160\" \/><\/a><\/p>\n<h3><strong>6.<span class=\"TextRun SCXW237739807 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW237739807 BCX0\">Automated Deployment to Azure<\/span><\/span><span class=\"EOP SCXW237739807 BCX0\" data-ccp-props=\"{}\">\u00a0<\/span><\/strong><\/h3>\n<p><span class=\"TextRun SCXW158037778 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW158037778 BCX0\">When <\/span><span class=\"NormalTextRun SCXW158037778 BCX0\">you\u2019re<\/span><span class=\"NormalTextRun SCXW158037778 BCX0\"> ready,<\/span> <span class=\"NormalTextRun SCXW158037778 BCX0\">GitHub Copilot for Azure<\/span> <span class=\"NormalTextRun CommentStart SCXW158037778 BCX0\">helps <\/span><span class=\"NormalTextRun SCXW158037778 BCX0\">facilitate<\/span><span class=\"NormalTextRun SCXW158037778 BCX0\"> automated deployment to Azure<\/span><span class=\"NormalTextRun SCXW158037778 BCX0\">, completing the app modernization process. <\/span><span class=\"NormalTextRun SCXW158037778 BCX0\">When the Copilot agent is requested to deploy your application, it creates the required Infrastructure as Code files, deploys the application, addresses any deployment errors <\/span><span class=\"NormalTextRun SCXW158037778 BCX0\">encountered<\/span><span class=\"NormalTextRun SCXW158037778 BCX0\">, and sets up CI\/CD pipelines.<\/span> <\/span><a class=\"Hyperlink SCXW158037778 BCX0\" href=\"https:\/\/learn.microsoft.com\/en-us\/azure\/developer\/github-copilot-azure\/quickstart-deploy-existing-app\" target=\"_blank\" rel=\"noreferrer noopener\"><span class=\"TextRun Underlined SCXW158037778 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"none\"><span class=\"NormalTextRun SCXW158037778 BCX0\" data-ccp-charstyle=\"Hyperlink\">GitHub Copilot for Azure<\/span><\/span><\/a><span class=\"TextRun SCXW158037778 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW158037778 BCX0\"> is a separate e<\/span><span class=\"NormalTextRun SCXW158037778 BCX0\">x<\/span><span class=\"NormalTextRun SCXW158037778 BCX0\">tension today<\/span><span class=\"NormalTextRun SCXW158037778 BCX0\"> and <\/span><span class=\"NormalTextRun SCXW158037778 BCX0\">efforts are underway to integrate it with GitHub Copilot App Modernization for Java.<\/span><\/span><\/p>\n<p>&nbsp;<\/p>\n<h3><strong><span class=\"TextRun SCXW153579137 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW153579137 BCX0\">What our customers are saying<\/span><\/span><span class=\"EOP SCXW153579137 BCX0\" data-ccp-props=\"{}\">\u00a0<\/span><\/strong><\/h3>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/java\/wp-content\/uploads\/sites\/51\/2025\/05\/cht.png\"><img decoding=\"async\" class=\"alignnone wp-image-232170\" src=\"https:\/\/devblogs.microsoft.com\/java\/wp-content\/uploads\/sites\/51\/2025\/05\/cht.png\" alt=\"Partnership between CHT and Microsoft\" width=\"686\" height=\"386\" srcset=\"https:\/\/devblogs.microsoft.com\/java\/wp-content\/uploads\/sites\/51\/2025\/05\/cht.png 576w, https:\/\/devblogs.microsoft.com\/java\/wp-content\/uploads\/sites\/51\/2025\/05\/cht-300x169.png 300w\" sizes=\"(max-width: 686px) 100vw, 686px\" \/><\/a><\/p>\n<h2 data-start=\"523\" data-end=\"819\"><strong>Install the Extension<\/strong><\/h2>\n<p>To use all features mentioned above, please download and install\u00a0<a href=\"https:\/\/marketplace.visualstudio.com\/items?itemName=vscjava.migrate-java-to-azure\" target=\"_blank\" rel=\"noopener\">Extension<\/a>\u00a0for GitHub Copilot app modernization for Java.<\/p>\n<h2><b><span data-contrast=\"auto\">Get Started Today<\/span><\/b> <span data-ccp-props=\"{&quot;469777462&quot;:[6966],&quot;469777927&quot;:[0],&quot;469777928&quot;:[1]}\">\u00a0<\/span><\/h2>\n<ul>\n<li><span data-contrast=\"auto\">Modernize<\/span> <span data-contrast=\"auto\">your first app :<\/span><a href=\"https:\/\/aka.ms\/AM4JGetStarted\"><span data-contrast=\"none\">https:\/\/aka.ms\/AM4JGetStarted<\/span><\/a><\/li>\n<li><span data-contrast=\"auto\">Upgrade for Java quick-start:<\/span><a href=\"https:\/\/aka.ms\/ghcp-appmod\/java-upgrade-docs\"><span data-contrast=\"auto\"> https:\/\/<\/span><span data-contrast=\"none\">aka.ms\/ghcp-appmod\/java-upgrade-docs<\/span><\/a><span data-ccp-props=\"{}\">\u00a0<\/span><\/li>\n<li>Upgrade for Java demo: <a href=\"https:\/\/aka.ms\/ghcp-appmod\/java-demos\">https:\/\/aka.ms\/ghcp-appmod\/java-demos<\/a><\/li>\n<li><span data-contrast=\"auto\">Deploy your app to Azure: <\/span><a href=\"https:\/\/aka.ms\/copilot-agent-deploy\"><span data-contrast=\"none\">https:\/\/aka.ms\/copilot-agent-deploy<\/span><\/a><span data-contrast=\"auto\">\u00a0<\/span><span data-ccp-props=\"{}\">\u00a0<\/span><\/li>\n<li><span data-contrast=\"auto\">Sel<\/span><span data-contrast=\"auto\">f-paced workshop: <\/span><a href=\"https:\/\/aka.ms\/AM4JWorkshop\"><span data-contrast=\"none\">https:\/\/aka.ms\/AM4JWorkshop<\/span><\/a><span data-ccp-props=\"{}\">\u00a0<\/span><\/li>\n<\/ul>\n<p><span data-ccp-props=\"{}\">\u00a0<\/span><\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Modernizing Java applications and migrating to the cloud is often a complex, time-consuming, and fragmented process. GitHub Copilot app modernization for Java is a powerful solution designed to simplify and accelerate your journey to the cloud. Available now in Public Preview as a Visual Studio Code extension, GitHub Copilot app modernization for Java provides an [&hellip;]<\/p>\n","protected":false},"author":31999,"featured_media":232161,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[14,829,22,1,15],"tags":[],"class_list":["post-232109","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-cloud","category-copilot","category-desktop","category-java","category-vscode"],"acf":[],"blog_post_summary":"<p>Modernizing Java applications and migrating to the cloud is often a complex, time-consuming, and fragmented process. GitHub Copilot app modernization for Java is a powerful solution designed to simplify and accelerate your journey to the cloud. Available now in Public Preview as a Visual Studio Code extension, GitHub Copilot app modernization for Java provides an [&hellip;]<\/p>\n","_links":{"self":[{"href":"https:\/\/devblogs.microsoft.com\/java\/wp-json\/wp\/v2\/posts\/232109","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/devblogs.microsoft.com\/java\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/devblogs.microsoft.com\/java\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/java\/wp-json\/wp\/v2\/users\/31999"}],"replies":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/java\/wp-json\/wp\/v2\/comments?post=232109"}],"version-history":[{"count":0,"href":"https:\/\/devblogs.microsoft.com\/java\/wp-json\/wp\/v2\/posts\/232109\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/java\/wp-json\/wp\/v2\/media\/232161"}],"wp:attachment":[{"href":"https:\/\/devblogs.microsoft.com\/java\/wp-json\/wp\/v2\/media?parent=232109"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/java\/wp-json\/wp\/v2\/categories?post=232109"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/java\/wp-json\/wp\/v2\/tags?post=232109"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}