From 8201a8c78e37628205a40e9f0fbff130690ca9c7 Mon Sep 17 00:00:00 2001 From: Dmitry Kichinsky Date: Sat, 22 Mar 2025 21:11:23 +0100 Subject: [PATCH] [maven] IDEA-368906 Maven40ServerEmbedderImpl: clean up legacy API usages (cherry picked from commit b09d608ef0398541d94d2e6b0abb5c5013d333f7) IJ-CR-158528 GitOrigin-RevId: 11a31f6600325aa9496428bb6faba4baa019d0ef --- .../server/m40/Maven40ServerEmbedderImpl.java | 143 +----------------- .../m40/utils/Maven40SettingsBuilder.java | 51 ------- 2 files changed, 7 insertions(+), 187 deletions(-) delete mode 100644 plugins/maven/maven40-server-impl/src/com/intellij/maven/server/m40/utils/Maven40SettingsBuilder.java diff --git a/plugins/maven/maven40-server-impl/src/com/intellij/maven/server/m40/Maven40ServerEmbedderImpl.java b/plugins/maven/maven40-server-impl/src/com/intellij/maven/server/m40/Maven40ServerEmbedderImpl.java index 15141768801a..5e85aad08743 100644 --- a/plugins/maven/maven40-server-impl/src/com/intellij/maven/server/m40/Maven40ServerEmbedderImpl.java +++ b/plugins/maven/maven40-server-impl/src/com/intellij/maven/server/m40/Maven40ServerEmbedderImpl.java @@ -12,13 +12,11 @@ import com.intellij.maven.server.m40.utils.Maven40ModelConverter; import com.intellij.maven.server.m40.utils.Maven40ProjectResolver; import com.intellij.maven.server.m40.utils.Maven40RepositorySystemSessionFactory; import com.intellij.maven.server.m40.utils.Maven40ServerConsoleLogger; -import com.intellij.maven.server.m40.utils.Maven40SettingsBuilder; import com.intellij.maven.server.m40.utils.Maven40Sl4jLoggerWrapper; import com.intellij.maven.server.m40.utils.Maven40Slf4jServiceProvider; import com.intellij.maven.server.m40.utils.Maven40TransferListenerAdapter; import com.intellij.maven.server.m40.utils.Maven40WorkspaceMapReader; import com.intellij.maven.server.telemetry.MavenServerOpenTelemetry; -import com.intellij.openapi.util.io.FileUtilRt; import com.intellij.openapi.util.text.StringUtilRt; import org.apache.maven.AbstractMavenLifecycleParticipant; import org.apache.maven.DefaultMaven; @@ -50,7 +48,6 @@ import org.apache.maven.cling.invoker.mvn.MavenInvokerRequest; import org.apache.maven.cling.invoker.mvn.MavenParser; import org.apache.maven.execution.DefaultMavenExecutionResult; import org.apache.maven.execution.MavenExecutionRequest; -import org.apache.maven.execution.MavenExecutionRequestPopulationException; import org.apache.maven.execution.MavenExecutionResult; import org.apache.maven.execution.MavenSession; import org.apache.maven.execution.ProfileActivation; @@ -72,9 +69,6 @@ import org.apache.maven.project.ProjectBuildingException; import org.apache.maven.resolver.MavenChainedWorkspaceReader; import org.apache.maven.resolver.RepositorySystemSessionFactory; import org.apache.maven.session.scope.internal.SessionScope; -import org.apache.maven.settings.Settings; -import org.apache.maven.settings.building.DefaultSettingsBuilderFactory; -import org.apache.maven.settings.building.SettingsBuilder; import org.codehaus.plexus.classworlds.ClassWorld; import org.eclipse.aether.RepositorySystem; import org.eclipse.aether.RepositorySystemSession; @@ -110,7 +104,6 @@ import org.jetbrains.idea.maven.server.MavenServerConfigUtil; import org.jetbrains.idea.maven.server.MavenServerConsoleIndicator; import org.jetbrains.idea.maven.server.MavenServerConsoleIndicatorImpl; import org.jetbrains.idea.maven.server.MavenServerEmbeddedBase; -import org.jetbrains.idea.maven.server.MavenServerEmbedder; import org.jetbrains.idea.maven.server.MavenServerExecutionResult; import org.jetbrains.idea.maven.server.MavenServerGlobals; import org.jetbrains.idea.maven.server.MavenServerResponse; @@ -124,7 +117,6 @@ import org.jetbrains.idea.maven.server.ProjectResolutionRequest; import org.jetbrains.idea.maven.server.security.MavenToken; import java.io.File; -import java.lang.reflect.Field; import java.nio.file.Path; import java.nio.file.Paths; import java.util.ArrayList; @@ -151,7 +143,6 @@ import static org.apache.maven.cling.invoker.Utils.getCanonicalPath; public class Maven40ServerEmbedderImpl extends MavenServerEmbeddedBase { private final @NotNull Maven40Invoker myMavenInvoker; private final @NotNull Lookup myContainer; - private final @NotNull Settings myMavenSettings; private final Maven40ServerConsoleLogger myConsoleWrapper; @@ -204,7 +195,7 @@ public class Maven40ServerEmbedderImpl extends MavenServerEmbeddedBase { commandLineOptions.add("-q"); } - String mavenEmbedderCliOptions = System.getProperty(MavenServerEmbedder.MAVEN_EMBEDDER_CLI_ADDITIONAL_ARGS); + String mavenEmbedderCliOptions = System.getProperty(MAVEN_EMBEDDER_CLI_ADDITIONAL_ARGS); if (mavenEmbedderCliOptions != null) { commandLineOptions.addAll(StringUtilRt.splitHonorQuotes(mavenEmbedderCliOptions, ' ')); } @@ -294,8 +285,6 @@ public class Maven40ServerEmbedderImpl extends MavenServerEmbeddedBase { throw new RuntimeException(e); } - SettingsBuilder settingsBuilder = new DefaultSettingsBuilderFactory().newInstance(); - myAlwaysUpdateSnapshots = commandLineOptions.contains("-U") || commandLineOptions.contains("--update-snapshots"); Map mySystemProperties = invokerRequest.systemProperties(); @@ -303,14 +292,6 @@ public class Maven40ServerEmbedderImpl extends MavenServerEmbeddedBase { mySystemProperties.put("java.home", serverSettings.getProjectJdk()); } - Map userProperties = invokerRequest.userProperties(); - myMavenSettings = Maven40SettingsBuilder.buildSettings( - settingsBuilder, - serverSettings, - toProperties(mySystemProperties), - toProperties(userProperties) - ); - myRepositorySystem = getComponent(MavenRepositorySystem.class); Maven40ImporterSpy importerSpy = getComponentIfExists(Maven40ImporterSpy.class); @@ -323,11 +304,6 @@ public class Maven40ServerEmbedderImpl extends MavenServerEmbeddedBase { myImporterSpy = importerSpy; } - public File getMultiModuleProjectDirectory() { - String directory = myEmbedderSettings.getMultiModuleProjectDirectory(); - return null == directory ? null : new File(directory); - } - @Override public @NotNull MavenServerResponse> resolveProjects(@NotNull LongRunningTaskInput longRunningTaskInput, @NotNull ProjectResolutionRequest request, @@ -513,19 +489,6 @@ public class Maven40ServerEmbedderImpl extends MavenServerEmbeddedBase { return myContainer.lookupOptional(clazz, roleHint).orElse(null); } - private static MavenId extractIdFromException(Throwable exception) { - try { - Field field = exception.getClass().getDeclaredField("extension"); - field.setAccessible(true); - return null; - //CoreExtension extension = (CoreExtension)field.get(exception); - //return new MavenId(extension.getGroupId(), extension.getArtifactId(), extension.getVersion()); - } - catch (Throwable e) { - return null; - } - } - public MavenExecutionRequest createRequest(File file, List activeProfiles, List inactiveProfiles) { @@ -573,72 +536,6 @@ public class Maven40ServerEmbedderImpl extends MavenServerEmbeddedBase { } } - private static Properties toProperties(Map map) { - Properties result = new Properties(); - for (Map.Entry entry : map.entrySet()) { - result.setProperty(entry.getKey(), entry.getValue()); - } - return result; - } - - private void injectDefaultRepositories(MavenExecutionRequest request) - throws MavenExecutionRequestPopulationException { - Set definedRepositories = myRepositorySystem.getRepoIds(request.getRemoteRepositories()); - - if (!definedRepositories.contains(MavenRepositorySystem.DEFAULT_REMOTE_REPO_ID)) { - try { - request.addRemoteRepository(myRepositorySystem.createDefaultRemoteRepository(request)); - } - catch (Exception e) { - throw new MavenExecutionRequestPopulationException("Cannot create default remote repository.", e); - } - } - } - - private void injectDefaultPluginRepositories(MavenExecutionRequest request) - throws MavenExecutionRequestPopulationException { - Set definedRepositories = myRepositorySystem.getRepoIds(request.getPluginArtifactRepositories()); - - if (!definedRepositories.contains(MavenRepositorySystem.DEFAULT_REMOTE_REPO_ID)) { - try { - request.addPluginArtifactRepository(myRepositorySystem.createDefaultRemoteRepository(request)); - } - catch (Exception e) { - throw new MavenExecutionRequestPopulationException("Cannot create default remote repository.", e); - } - } - } - - private static @NotNull File getMultimoduleProjectDir(@Nullable File file) { - File mavenMultiModuleProjectDirectory; - if (file == null) { - mavenMultiModuleProjectDirectory = new File(FileUtilRt.getTempDirectory()); - } - else { - mavenMultiModuleProjectDirectory = MavenServerUtil.findMavenBasedir(file); - } - return mavenMultiModuleProjectDirectory; - } - - private static List collectActiveProfiles(@Nullable List defaultActiveProfiles, - @Nullable List explicitActiveProfiles, - @Nullable List explicitInactiveProfiles) { - if (defaultActiveProfiles == null || defaultActiveProfiles.isEmpty()) { - return explicitActiveProfiles != null ? explicitActiveProfiles : Collections.emptyList(); - } - - Set result = new HashSet<>(defaultActiveProfiles); - if (explicitInactiveProfiles != null && !explicitInactiveProfiles.isEmpty()) { - result.removeAll(explicitInactiveProfiles); - } - - if (explicitActiveProfiles != null) { - result.addAll(explicitActiveProfiles); - } - - return new ArrayList<>(result); - } - /** * adapted from {@link DefaultMaven#doExecute(MavenExecutionRequest)} */ @@ -693,22 +590,6 @@ public class Maven40ServerEmbedderImpl extends MavenServerEmbeddedBase { return result; } - private RepositorySystemSessionFactory getCoreSystemSessionFactory() throws RuntimeException { - - try { - DefaultMaven component = getComponent(DefaultMaven.class); - Field field = DefaultMaven.class.getDeclaredField("repositorySessionFactory"); - field.setAccessible(true); - return (RepositorySystemSessionFactory)field.get(component); - } - catch (RuntimeException e) { - throw e; - } - catch (Exception e) { - throw new RuntimeException(e); - } - } - private static RepositorySystemSession.CloseableSession newCloseableSession(MavenExecutionRequest request, WorkspaceReader workspaceReader, RepositorySystemSessionFactory repositorySessionFactory) { @@ -774,7 +655,7 @@ public class Maven40ServerEmbedderImpl extends MavenServerEmbeddedBase { MavenServerGlobals.getLogger().warn(new RuntimeException(message, e)); } - private Lookup getContainer() { + private @NotNull Lookup getContainer() { return myContainer; } @@ -813,7 +694,7 @@ public class Maven40ServerEmbedderImpl extends MavenServerEmbeddedBase { for (PluginResolutionRequest pluginResolutionRequest : pluginResolutionRequests) { MavenId mavenPluginId = pluginResolutionRequest.getMavenPluginId(); - List remoteRepos = RepositoryUtils.toRepos(convertRepositories(pluginResolutionRequest.getRepositories(), false)); + List remoteRepos = RepositoryUtils.toRepos(map2ArtifactRepositories(pluginResolutionRequest.getRepositories(), false)); List dependencies = new ArrayList<>(); for (MavenId dependencyId : pluginResolutionRequest.getPluginDependencies()) { @@ -1089,7 +970,7 @@ public class Maven40ServerEmbedderImpl extends MavenServerEmbeddedBase { for (MavenArtifactResolutionRequest request : requests) { repos.addAll(request.getRemoteRepositories()); } - List repositories = convertRepositories(new ArrayList<>(repos), updateSnapshots); + List repositories = map2ArtifactRepositories(new ArrayList<>(repos), updateSnapshots); repositories.forEach(executionRequest::addRemoteRepository); executeWithMavenSession(executionRequest, MavenWorkspaceMap.empty(), task.getIndicator(), mavenSession -> { @@ -1133,14 +1014,6 @@ public class Maven40ServerEmbedderImpl extends MavenServerEmbeddedBase { Maven40Sl4jLoggerWrapper.setCurrentWrapper(consoleWrapper); } - private @NotNull List convertRepositories(List repositories, boolean forceResolveSnapshots) { - List result = map2ArtifactRepositories(repositories, forceResolveSnapshots); - if (getComponent(LegacySupport.class).getRepositorySession() == null) { - myRepositorySystem.injectMirror(result, myMavenSettings.getMirrors()); - } - return result; - } - private List map2ArtifactRepositories(List repositories, boolean forceResolveSnapshots) { List result = new ArrayList<>(); for (MavenRemoteRepository each : repositories) { @@ -1179,7 +1052,7 @@ public class Maven40ServerEmbedderImpl extends MavenServerEmbeddedBase { MavenServerUtil.checkToken(token); try { return new HashSet<>( - convertRemoteRepositories(convertRepositories(new ArrayList<>(repositories), false))); + convertRemoteRepositories(map2ArtifactRepositories(new ArrayList<>(repositories), false))); } catch (Exception e) { throw wrapToSerializableRuntimeException(e); @@ -1195,7 +1068,7 @@ public class Maven40ServerEmbedderImpl extends MavenServerEmbeddedBase { MavenServerUtil.checkToken(token); if (artifacts.isEmpty()) return new MavenArtifactResolveResult(new ArrayList<>(), null); try { - return resolveArtifactsTransitively(artifacts, remoteRepositories); + return resolveArtifactsTransitively(artifacts); } catch (Throwable e) { MavenServerGlobals.getLogger().error(e); @@ -1213,9 +1086,7 @@ public class Maven40ServerEmbedderImpl extends MavenServerEmbeddedBase { } } - private MavenArtifactResolveResult resolveArtifactsTransitively( - @NotNull List artifacts, - @NotNull List remoteRepositories) { + private MavenArtifactResolveResult resolveArtifactsTransitively(@NotNull List artifacts) { MavenExecutionRequest request = createRequest(null, null, null); Map resolvedArtifactMap = new HashMap<>(); diff --git a/plugins/maven/maven40-server-impl/src/com/intellij/maven/server/m40/utils/Maven40SettingsBuilder.java b/plugins/maven/maven40-server-impl/src/com/intellij/maven/server/m40/utils/Maven40SettingsBuilder.java deleted file mode 100644 index bf359f532521..000000000000 --- a/plugins/maven/maven40-server-impl/src/com/intellij/maven/server/m40/utils/Maven40SettingsBuilder.java +++ /dev/null @@ -1,51 +0,0 @@ -// Copyright 2000-2023 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. -package com.intellij.maven.server.m40.utils; - -import org.apache.maven.settings.Settings; -import org.apache.maven.settings.building.DefaultSettingsBuildingRequest; -import org.apache.maven.settings.building.SettingsBuilder; -import org.apache.maven.settings.building.SettingsBuildingException; -import org.apache.maven.settings.building.SettingsBuildingRequest; -import org.jetbrains.idea.maven.server.MavenServerGlobals; -import org.jetbrains.idea.maven.server.MavenServerSettings; - -import java.io.File; -import java.util.Properties; - -public final class Maven40SettingsBuilder { - public static Settings buildSettings(SettingsBuilder builder, - MavenServerSettings settings, - Properties systemProperties, - Properties userProperties) { - SettingsBuildingRequest settingsRequest = new DefaultSettingsBuildingRequest(); - if (settings.getGlobalSettingsPath() != null) { - settingsRequest.setGlobalSettingsFile(new File(settings.getGlobalSettingsPath())); - } - if (settings.getUserSettingsPath() != null) { - settingsRequest.setUserSettingsFile(new File(settings.getUserSettingsPath())); - } - - settingsRequest.setSystemProperties(systemProperties); - settingsRequest.setUserProperties(userProperties); - - Settings result = new Settings(); - try { - result = builder.build(settingsRequest).getEffectiveSettings(); - } - catch (SettingsBuildingException e) { - MavenServerGlobals.getLogger().info(e); - } - - result.setOffline(settings.isOffline()); - - if (settings.getLocalRepositoryPath() != null) { - result.setLocalRepository(settings.getLocalRepositoryPath()); - } - - if (result.getLocalRepository() == null) { - result.setLocalRepository(new File(System.getProperty("user.home"), ".m2/repository").getPath()); - } - - return result; - } -}