From 75a2cab196849a89f07733cd129fac14e7c0555f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=90=D0=BB=D0=B5=D0=BA=D1=81=D0=B0=D0=BD=D0=B4=D1=8A?= =?UTF-8?q?=D1=80=20=D0=9A=D1=83=D1=80=D1=82=D0=B0=D0=BA=D0=BE=D0=B2?= Date: Tue, 21 Jan 2025 12:09:06 +0200 Subject: [PATCH] Adjust to JavaCore.defaultRootModules deprecation Use the new method that filters based on the release. If release option is not set, use target and if it's not there too use the latest version. --- .../buildpaths/ModuleDependenciesPage.java | 14 ++++++++++---- .../ui/wizards/buildpaths/ModuleDialog.java | 15 +++++++++++---- 2 files changed, 21 insertions(+), 8 deletions(-) diff --git a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/wizards/buildpaths/ModuleDependenciesPage.java b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/wizards/buildpaths/ModuleDependenciesPage.java index 7161be06b13..1798fd88af3 100644 --- a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/wizards/buildpaths/ModuleDependenciesPage.java +++ b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/wizards/buildpaths/ModuleDependenciesPage.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2019 GK Software SE, and others. + * Copyright (c) 2019, 2025 GK Software SE, and others. * * This program and the accompanying materials * are made available under the terms of the Eclipse Public License 2.0 @@ -13,6 +13,7 @@ *******************************************************************************/ package org.eclipse.jdt.internal.ui.wizards.buildpaths; +import java.text.MessageFormat; import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; @@ -26,8 +27,6 @@ import java.util.function.Predicate; import java.util.stream.Collectors; -import java.text.MessageFormat; - import org.eclipse.swt.SWT; import org.eclipse.swt.custom.CTabFolder; import org.eclipse.swt.events.SelectionListener; @@ -347,7 +346,14 @@ protected void scanModules() { } try { if (fCurrJProject.getModuleDescription() == null) { // cache default roots when compiling the unnamed module: - fAllDefaultSystemModules= closure(JavaCore.defaultRootModules(Arrays.asList(fAllSystemRoots))); + String release = fCurrJProject.getOption(JavaCore.COMPILER_RELEASE, true); + if (release == null) { + release = fCurrJProject.getOption(JavaCore.COMPILER_CODEGEN_TARGET_PLATFORM, true); + } + if (release == null) { + release = JavaCore.latestSupportedJavaVersion(); + } + fAllDefaultSystemModules= closure(JavaCore.defaultRootModules(Arrays.asList(fAllSystemRoots), release)); } } catch (JavaModelException e) { JavaPlugin.log(e); diff --git a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/wizards/buildpaths/ModuleDialog.java b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/wizards/buildpaths/ModuleDialog.java index 779541a02ed..221731437b7 100644 --- a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/wizards/buildpaths/ModuleDialog.java +++ b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/wizards/buildpaths/ModuleDialog.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2017, 2020 GK Software SE, and others. + * Copyright (c) 2017, 2025 GK Software SE, and others. * * This program and the accompanying materials * are made available under the terms of the Eclipse Public License 2.0 @@ -799,11 +799,18 @@ private List defaultIncludedModuleNamesForUnnamedModule() { if (fJavaElements != null) { List roots= new ArrayList<>(); for (IJavaElement element : fJavaElements) { - if (element instanceof IPackageFragmentRoot) { - roots.add((IPackageFragmentRoot) element); + if (element instanceof IPackageFragmentRoot el) { + roots.add(el); } } - return JavaCore.defaultRootModules(roots); + String release = fJavaElements[0].getJavaProject().getOption(JavaCore.COMPILER_RELEASE, true); + if (release == null) { + release = fJavaElements[0].getJavaProject().getOption(JavaCore.COMPILER_CODEGEN_TARGET_PLATFORM, true); + } + if (release == null) { + release = JavaCore.latestSupportedJavaVersion(); + } + return JavaCore.defaultRootModules(roots, release); } return Collections.emptyList(); }