From f893e4bf75cbdd01db1abf75148a7c47c6ad16cd Mon Sep 17 00:00:00 2001 From: Konstantin Nisht Date: Thu, 28 Nov 2024 17:28:35 +0100 Subject: [PATCH] [eel] Extract eel.impl module from eel.provider GitOrigin-RevId: 052898597e18d84e011db633c8d69952d78b324f --- .idea/modules.xml | 3 +- java/idea-ui/intellij.java.ui.iml | 1 + .../roots/ui/configuration/EelSdkFilter.kt | 2 +- .../ModuleStructureConfigurable.java | 3 +- java/java-impl/intellij.java.impl.iml | 2 +- .../projectRoots/impl/JavaSdkImpl.java | 5 +- .../{eelProvider => eel-impl}/BUILD.bazel | 0 .../{eelProvider => eel-impl}/api-dump.txt | 0 .../intellij.platform.eel.impl.iml} | 1 + .../platform/eel/impl/IpAddressesImpl.kt | 0 .../platform/eel/impl/fs}/EelFsResultImpl.kt | 2 +- .../platform/eel/impl/fs}/EelInfoImpl.kt | 2 +- .../eel/impl/fs}/EelProcessResultImpl.kt | 6 +- .../eel/impl}/fs/LocalEelFileSystemApi.kt | 3 +- .../platform/eel/impl}/fs/package-info.java | 2 +- .../eel/impl/local/ChannelStreamAdapter.kt | 0 .../eel/impl/local/EelLocalApiService.kt | 0 .../eel/impl/local/EelLocalExecApi.kt | 2 +- .../eel/impl/local/LocalEelApiImpl.kt | 25 ++++--- .../eel/impl/local/LocalEelArchiveApiImpl.kt | 0 .../eel/impl/local/LocalEelProcess.kt | 0 .../platform/eel/impl/local/LocalPid.kt | 0 .../platform/eel/impl/local/package-info.java | 0 .../local/processKiller/PosixProcessKiller.kt | 0 .../local/processKiller/WinProcessKiller.kt | 0 .../local/tunnels/EelLocalTunnelsPosixApi.kt | 0 .../tunnels/EelLocalTunnelsWindowsApi.kt | 1 - .../eel/impl/local/tunnels/SocketAdapter.kt | 0 .../platform/eel/impl/local/tunnels/impl.kt | 0 .../eel/impl/local/tunnels/package-info.java | 0 .../platform/eel/impl/networkResults.kt | 0 .../platform/eel/impl/package-info.java | 0 .../eel/impl}/utils/eelProcessUtils.kt | 2 +- .../eel/impl/utils/eelProviderUtils.kt | 73 +++++++++++++++++++ .../platform/eel/impl/utils/package-info.java | 5 ++ platform/eel-provider/api-dump.txt | 0 .../intellij.platform.eel.provider.iml | 15 ++++ .../platform/eel/provider/EelProvider.kt | 59 ++------------- .../platform/eel/provider/package-info.java | 0 .../eel/provider/utils/eelPathUtils.kt | 3 +- .../eel/provider/utils/eelTunnelUtils.kt} | 2 +- .../platform/eel/provider/utils/eelUtils.kt | 0 .../eel/provider/utils/package-info.java | 3 +- .../target/eel/EelTargetEnvironmentRequest.kt | 2 +- ...intellij.platform.ijent.community.impl.iml | 2 +- .../impl/nio/IjentNioFileSystemProvider.kt | 2 +- .../lang-impl/intellij.platform.lang.impl.iml | 1 + .../projectRoots/impl/JavaHomeFinder.java | 5 +- .../projectRoots/impl/JavaHomeFinderEel.kt | 2 +- .../projectRoots/impl/JdkFinderImpl.java | 6 +- .../impl/jdkDownloader/JdkAuto.kt | 2 +- .../impl/jdkDownloader/JdkDownloader.kt | 2 +- .../impl/jdkDownloader/JdkInstaller.kt | 2 +- .../projectRoot/ProjectSdksModel.java | 5 +- .../src/META-INF/PlatformExtensions.xml | 5 ++ .../intellij.platform.tests.iml | 3 +- .../execution/wsl/WSLDistributionTest.kt | 5 +- plugins/maven/intellij.maven.iml | 1 + .../execution/MavenRunConfiguration.java | 3 +- .../importing/MavenWslTargetConfigurator.kt | 2 +- .../idea/maven/server/MavenWrapperSupport.kt | 2 +- .../EelMavenRemoteProcessSupportFactory.kt | 4 +- .../eel/EelMavenServerRemoteProcessSupport.kt | 2 +- .../idea/maven/utils/MavenEelUtil.kt | 4 +- .../jetbrains/idea/maven/utils/MavenUtil.java | 6 +- .../maven/wizards/MavenModuleBuilderHelper.kt | 2 +- 66 files changed, 177 insertions(+), 115 deletions(-) rename platform/{eelProvider => eel-impl}/BUILD.bazel (100%) rename platform/{eelProvider => eel-impl}/api-dump.txt (100%) rename platform/{eelProvider/intellij.platform.eel.provider.iml => eel-impl/intellij.platform.eel.impl.iml} (94%) rename platform/{eelProvider => eel-impl}/src/com/intellij/platform/eel/impl/IpAddressesImpl.kt (100%) rename platform/{eelProvider/src/com/intellij/platform/eel/provider => eel-impl/src/com/intellij/platform/eel/impl/fs}/EelFsResultImpl.kt (99%) rename platform/{eelProvider/src/com/intellij/platform/eel/provider => eel-impl/src/com/intellij/platform/eel/impl/fs}/EelInfoImpl.kt (92%) rename platform/{eelProvider/src/com/intellij/platform/eel/provider => eel-impl/src/com/intellij/platform/eel/impl/fs}/EelProcessResultImpl.kt (89%) rename platform/{eelProvider/src/com/intellij/platform/eel/provider => eel-impl/src/com/intellij/platform/eel/impl}/fs/LocalEelFileSystemApi.kt (99%) rename platform/{eelProvider/src/com/intellij/platform/eel/provider => eel-impl/src/com/intellij/platform/eel/impl}/fs/package-info.java (79%) rename platform/{eelProvider => eel-impl}/src/com/intellij/platform/eel/impl/local/ChannelStreamAdapter.kt (100%) rename platform/{eelProvider => eel-impl}/src/com/intellij/platform/eel/impl/local/EelLocalApiService.kt (100%) rename platform/{eelProvider => eel-impl}/src/com/intellij/platform/eel/impl/local/EelLocalExecApi.kt (96%) rename platform/{eelProvider => eel-impl}/src/com/intellij/platform/eel/impl/local/LocalEelApiImpl.kt (85%) rename platform/{eelProvider => eel-impl}/src/com/intellij/platform/eel/impl/local/LocalEelArchiveApiImpl.kt (100%) rename platform/{eelProvider => eel-impl}/src/com/intellij/platform/eel/impl/local/LocalEelProcess.kt (100%) rename platform/{eelProvider => eel-impl}/src/com/intellij/platform/eel/impl/local/LocalPid.kt (100%) rename platform/{eelProvider => eel-impl}/src/com/intellij/platform/eel/impl/local/package-info.java (100%) rename platform/{eelProvider => eel-impl}/src/com/intellij/platform/eel/impl/local/processKiller/PosixProcessKiller.kt (100%) rename platform/{eelProvider => eel-impl}/src/com/intellij/platform/eel/impl/local/processKiller/WinProcessKiller.kt (100%) rename platform/{eelProvider => eel-impl}/src/com/intellij/platform/eel/impl/local/tunnels/EelLocalTunnelsPosixApi.kt (100%) rename platform/{eelProvider => eel-impl}/src/com/intellij/platform/eel/impl/local/tunnels/EelLocalTunnelsWindowsApi.kt (94%) rename platform/{eelProvider => eel-impl}/src/com/intellij/platform/eel/impl/local/tunnels/SocketAdapter.kt (100%) rename platform/{eelProvider => eel-impl}/src/com/intellij/platform/eel/impl/local/tunnels/impl.kt (100%) rename platform/{eelProvider => eel-impl}/src/com/intellij/platform/eel/impl/local/tunnels/package-info.java (100%) rename platform/{eelProvider => eel-impl}/src/com/intellij/platform/eel/impl/networkResults.kt (100%) rename platform/{eelProvider => eel-impl}/src/com/intellij/platform/eel/impl/package-info.java (100%) rename platform/{eelProvider/src/com/intellij/platform/eel/provider => eel-impl/src/com/intellij/platform/eel/impl}/utils/eelProcessUtils.kt (98%) create mode 100644 platform/eel-impl/src/com/intellij/platform/eel/impl/utils/eelProviderUtils.kt create mode 100644 platform/eel-impl/src/com/intellij/platform/eel/impl/utils/package-info.java create mode 100644 platform/eel-provider/api-dump.txt create mode 100644 platform/eel-provider/intellij.platform.eel.provider.iml rename platform/{eelProvider => eel-provider}/src/com/intellij/platform/eel/provider/EelProvider.kt (60%) rename platform/{eelProvider => eel-provider}/src/com/intellij/platform/eel/provider/package-info.java (100%) rename platform/{eelProvider => eel-provider}/src/com/intellij/platform/eel/provider/utils/eelPathUtils.kt (98%) rename platform/{eelProvider/src/com/intellij/platform/eel/provider/util.kt => eel-provider/src/com/intellij/platform/eel/provider/utils/eelTunnelUtils.kt} (99%) rename platform/{eelProvider => eel-provider}/src/com/intellij/platform/eel/provider/utils/eelUtils.kt (100%) rename platform/{eelProvider => eel-provider}/src/com/intellij/platform/eel/provider/utils/package-info.java (92%) diff --git a/.idea/modules.xml b/.idea/modules.xml index 759ace67d76d..01123bcbe013 100644 --- a/.idea/modules.xml +++ b/.idea/modules.xml @@ -654,7 +654,8 @@ - + + diff --git a/java/idea-ui/intellij.java.ui.iml b/java/idea-ui/intellij.java.ui.iml index abb03b9688a8..63431732d070 100644 --- a/java/idea-ui/intellij.java.ui.iml +++ b/java/idea-ui/intellij.java.ui.iml @@ -35,6 +35,7 @@ + \ No newline at end of file diff --git a/java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/EelSdkFilter.kt b/java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/EelSdkFilter.kt index 5eaa6e7f4e6b..52737b156a62 100644 --- a/java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/EelSdkFilter.kt +++ b/java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/EelSdkFilter.kt @@ -6,7 +6,7 @@ package com.intellij.openapi.roots.ui.configuration import com.intellij.openapi.project.Project import com.intellij.openapi.projectRoots.Sdk import com.intellij.openapi.roots.ui.configuration.projectRoot.ProjectSdksModel -import com.intellij.platform.eel.provider.getEelApiKey +import com.intellij.platform.eel.impl.utils.getEelApiKey import java.util.function.Predicate internal fun filterSdkByEel(project: Project): Predicate { diff --git a/java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/projectRoot/ModuleStructureConfigurable.java b/java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/projectRoot/ModuleStructureConfigurable.java index 856e4016b482..e65daf062323 100644 --- a/java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/projectRoot/ModuleStructureConfigurable.java +++ b/java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/projectRoot/ModuleStructureConfigurable.java @@ -49,6 +49,7 @@ import com.intellij.openapi.util.text.StringUtil; import com.intellij.openapi.vfs.LocalFileSystem; import com.intellij.openapi.vfs.VirtualFile; import com.intellij.openapi.vfs.pointers.VirtualFilePointerManager; +import com.intellij.platform.eel.impl.utils.EelProviderUtilsKt; import com.intellij.platform.eel.provider.EelApiKey; import com.intellij.ui.navigation.Place; import com.intellij.util.PlatformIcons; @@ -576,7 +577,7 @@ public class ModuleStructureConfigurable extends BaseStructureConfigurable imple modules = myContext.myModulesConfigurator.addNewModule(basePath); } if (modules != null && !modules.isEmpty()) { - EelApiKey eelKey = Registry.is("java.home.finder.use.eel") ? getEelApiKey(myProject) : null; + EelApiKey eelKey = Registry.is("java.home.finder.use.eel") ? EelProviderUtilsKt.getEelApiKey(myProject) : null; //new module wizard may add yet another SDK to the project myProjectStructureConfigurable.getProjectJdksModel().syncSdks(eelKey); for (Module module : modules) { diff --git a/java/java-impl/intellij.java.impl.iml b/java/java-impl/intellij.java.impl.iml index f9818c146754..42d261b03f73 100644 --- a/java/java-impl/intellij.java.impl.iml +++ b/java/java-impl/intellij.java.impl.iml @@ -81,7 +81,7 @@ - + diff --git a/java/java-impl/src/com/intellij/openapi/projectRoots/impl/JavaSdkImpl.java b/java/java-impl/src/com/intellij/openapi/projectRoots/impl/JavaSdkImpl.java index cdc1ce90f721..d714dca3ecb6 100644 --- a/java/java-impl/src/com/intellij/openapi/projectRoots/impl/JavaSdkImpl.java +++ b/java/java-impl/src/com/intellij/openapi/projectRoots/impl/JavaSdkImpl.java @@ -34,7 +34,6 @@ import com.intellij.openapi.vfs.newvfs.events.VFileContentChangeEvent; import com.intellij.openapi.vfs.newvfs.events.VFileCreateEvent; import com.intellij.openapi.vfs.newvfs.events.VFileDeleteEvent; import com.intellij.openapi.vfs.newvfs.events.VFileEvent; -import com.intellij.platform.eel.provider.EelProviderUtil; import com.intellij.pom.java.LanguageLevel; import com.intellij.util.PathUtil; import com.intellij.util.concurrency.AppExecutorUtil; @@ -61,6 +60,8 @@ import java.nio.file.Path; import java.util.*; import java.util.concurrent.ConcurrentHashMap; +import static com.intellij.platform.eel.impl.utils.EelProviderUtilsKt.getEelApiBlocking; + public final class JavaSdkImpl extends JavaSdk { private static final Logger LOG = Logger.getInstance(JavaSdkImpl.class); @@ -201,7 +202,7 @@ public final class JavaSdkImpl extends JavaSdk { @Override public @NotNull Collection suggestHomePaths(@Nullable Project project) { - return JavaHomeFinder.suggestHomePaths(EelProviderUtil.getEelApiBlocking(project), false); + return JavaHomeFinder.suggestHomePaths(getEelApiBlocking(project), false); } @Override diff --git a/platform/eelProvider/BUILD.bazel b/platform/eel-impl/BUILD.bazel similarity index 100% rename from platform/eelProvider/BUILD.bazel rename to platform/eel-impl/BUILD.bazel diff --git a/platform/eelProvider/api-dump.txt b/platform/eel-impl/api-dump.txt similarity index 100% rename from platform/eelProvider/api-dump.txt rename to platform/eel-impl/api-dump.txt diff --git a/platform/eelProvider/intellij.platform.eel.provider.iml b/platform/eel-impl/intellij.platform.eel.impl.iml similarity index 94% rename from platform/eelProvider/intellij.platform.eel.provider.iml rename to platform/eel-impl/intellij.platform.eel.impl.iml index b0343003cd58..9b1525057659 100644 --- a/platform/eelProvider/intellij.platform.eel.provider.iml +++ b/platform/eel-impl/intellij.platform.eel.impl.iml @@ -20,5 +20,6 @@ + \ No newline at end of file diff --git a/platform/eelProvider/src/com/intellij/platform/eel/impl/IpAddressesImpl.kt b/platform/eel-impl/src/com/intellij/platform/eel/impl/IpAddressesImpl.kt similarity index 100% rename from platform/eelProvider/src/com/intellij/platform/eel/impl/IpAddressesImpl.kt rename to platform/eel-impl/src/com/intellij/platform/eel/impl/IpAddressesImpl.kt diff --git a/platform/eelProvider/src/com/intellij/platform/eel/provider/EelFsResultImpl.kt b/platform/eel-impl/src/com/intellij/platform/eel/impl/fs/EelFsResultImpl.kt similarity index 99% rename from platform/eelProvider/src/com/intellij/platform/eel/provider/EelFsResultImpl.kt rename to platform/eel-impl/src/com/intellij/platform/eel/impl/fs/EelFsResultImpl.kt index 5e4325cd3299..b88f5591ed15 100644 --- a/platform/eelProvider/src/com/intellij/platform/eel/provider/EelFsResultImpl.kt +++ b/platform/eel-impl/src/com/intellij/platform/eel/impl/fs/EelFsResultImpl.kt @@ -1,5 +1,5 @@ // Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. -package com.intellij.platform.eel.provider +package com.intellij.platform.eel.impl.fs import com.intellij.platform.eel.EelResult import com.intellij.platform.eel.fs.EelFileSystemApi diff --git a/platform/eelProvider/src/com/intellij/platform/eel/provider/EelInfoImpl.kt b/platform/eel-impl/src/com/intellij/platform/eel/impl/fs/EelInfoImpl.kt similarity index 92% rename from platform/eelProvider/src/com/intellij/platform/eel/provider/EelInfoImpl.kt rename to platform/eel-impl/src/com/intellij/platform/eel/impl/fs/EelInfoImpl.kt index c6190aff1c1f..17d79945803e 100644 --- a/platform/eelProvider/src/com/intellij/platform/eel/provider/EelInfoImpl.kt +++ b/platform/eel-impl/src/com/intellij/platform/eel/impl/fs/EelInfoImpl.kt @@ -1,5 +1,5 @@ // Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. -package com.intellij.platform.eel.provider +package com.intellij.platform.eel.impl.fs import com.intellij.platform.eel.EelUserPosixInfo import com.intellij.platform.eel.EelUserWindowsInfo diff --git a/platform/eelProvider/src/com/intellij/platform/eel/provider/EelProcessResultImpl.kt b/platform/eel-impl/src/com/intellij/platform/eel/impl/fs/EelProcessResultImpl.kt similarity index 89% rename from platform/eelProvider/src/com/intellij/platform/eel/provider/EelProcessResultImpl.kt rename to platform/eel-impl/src/com/intellij/platform/eel/impl/fs/EelProcessResultImpl.kt index 5897774d6e8e..0478b24bde3f 100644 --- a/platform/eelProvider/src/com/intellij/platform/eel/provider/EelProcessResultImpl.kt +++ b/platform/eel-impl/src/com/intellij/platform/eel/impl/fs/EelProcessResultImpl.kt @@ -1,12 +1,12 @@ // Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. -package com.intellij.platform.eel.provider +package com.intellij.platform.eel.impl.fs import com.intellij.platform.eel.EelExecApi import com.intellij.platform.eel.EelProcess import com.intellij.platform.eel.EelResult -import org.jetbrains.annotations.ApiStatus.Internal +import org.jetbrains.annotations.ApiStatus -@Internal +@ApiStatus.Internal object EelProcessResultImpl { private data class Ok(override val value: EelProcess) : EelResult.Ok private data class Error(override val error: EelExecApi.ExecuteProcessError) : EelResult.Error diff --git a/platform/eelProvider/src/com/intellij/platform/eel/provider/fs/LocalEelFileSystemApi.kt b/platform/eel-impl/src/com/intellij/platform/eel/impl/fs/LocalEelFileSystemApi.kt similarity index 99% rename from platform/eelProvider/src/com/intellij/platform/eel/provider/fs/LocalEelFileSystemApi.kt rename to platform/eel-impl/src/com/intellij/platform/eel/impl/fs/LocalEelFileSystemApi.kt index 9db7460f206d..886b637d96eb 100644 --- a/platform/eelProvider/src/com/intellij/platform/eel/provider/fs/LocalEelFileSystemApi.kt +++ b/platform/eel-impl/src/com/intellij/platform/eel/impl/fs/LocalEelFileSystemApi.kt @@ -1,5 +1,5 @@ // Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. -package com.intellij.platform.eel.provider.fs +package com.intellij.platform.eel.impl.fs import com.intellij.openapi.util.SystemInfoRt import com.intellij.platform.eel.EelResult @@ -9,7 +9,6 @@ import com.intellij.platform.eel.fs.* import com.intellij.platform.eel.fs.EelFileSystemApi.FileWriterCreationMode.* import com.intellij.platform.eel.path.EelPath import com.intellij.platform.eel.path.EelPathException -import com.intellij.platform.eel.provider.EelFsResultImpl import com.intellij.platform.eel.provider.utils.EelPathUtils import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.withContext diff --git a/platform/eelProvider/src/com/intellij/platform/eel/provider/fs/package-info.java b/platform/eel-impl/src/com/intellij/platform/eel/impl/fs/package-info.java similarity index 79% rename from platform/eelProvider/src/com/intellij/platform/eel/provider/fs/package-info.java rename to platform/eel-impl/src/com/intellij/platform/eel/impl/fs/package-info.java index f0ada521dae0..70249986c252 100644 --- a/platform/eelProvider/src/com/intellij/platform/eel/provider/fs/package-info.java +++ b/platform/eel-impl/src/com/intellij/platform/eel/impl/fs/package-info.java @@ -1,5 +1,5 @@ // Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. @ApiStatus.Internal -package com.intellij.platform.eel.provider.fs; +package com.intellij.platform.eel.impl.fs; import org.jetbrains.annotations.ApiStatus; \ No newline at end of file diff --git a/platform/eelProvider/src/com/intellij/platform/eel/impl/local/ChannelStreamAdapter.kt b/platform/eel-impl/src/com/intellij/platform/eel/impl/local/ChannelStreamAdapter.kt similarity index 100% rename from platform/eelProvider/src/com/intellij/platform/eel/impl/local/ChannelStreamAdapter.kt rename to platform/eel-impl/src/com/intellij/platform/eel/impl/local/ChannelStreamAdapter.kt diff --git a/platform/eelProvider/src/com/intellij/platform/eel/impl/local/EelLocalApiService.kt b/platform/eel-impl/src/com/intellij/platform/eel/impl/local/EelLocalApiService.kt similarity index 100% rename from platform/eelProvider/src/com/intellij/platform/eel/impl/local/EelLocalApiService.kt rename to platform/eel-impl/src/com/intellij/platform/eel/impl/local/EelLocalApiService.kt diff --git a/platform/eelProvider/src/com/intellij/platform/eel/impl/local/EelLocalExecApi.kt b/platform/eel-impl/src/com/intellij/platform/eel/impl/local/EelLocalExecApi.kt similarity index 96% rename from platform/eelProvider/src/com/intellij/platform/eel/impl/local/EelLocalExecApi.kt rename to platform/eel-impl/src/com/intellij/platform/eel/impl/local/EelLocalExecApi.kt index 5d710c69c40e..ff90df228aca 100644 --- a/platform/eelProvider/src/com/intellij/platform/eel/impl/local/EelLocalExecApi.kt +++ b/platform/eel-impl/src/com/intellij/platform/eel/impl/local/EelLocalExecApi.kt @@ -4,7 +4,7 @@ package com.intellij.platform.eel.impl.local import com.intellij.platform.eel.EelExecApi import com.intellij.platform.eel.EelProcess import com.intellij.platform.eel.EelResult -import com.intellij.platform.eel.provider.EelProcessResultImpl +import com.intellij.platform.eel.impl.fs.EelProcessResultImpl import com.pty4j.PtyProcessBuilder import org.jetbrains.annotations.ApiStatus import java.io.File diff --git a/platform/eelProvider/src/com/intellij/platform/eel/impl/local/LocalEelApiImpl.kt b/platform/eel-impl/src/com/intellij/platform/eel/impl/local/LocalEelApiImpl.kt similarity index 85% rename from platform/eelProvider/src/com/intellij/platform/eel/impl/local/LocalEelApiImpl.kt rename to platform/eel-impl/src/com/intellij/platform/eel/impl/local/LocalEelApiImpl.kt index 3dd4de2c5af4..5160c8ea0a9e 100644 --- a/platform/eelProvider/src/com/intellij/platform/eel/impl/local/LocalEelApiImpl.kt +++ b/platform/eel-impl/src/com/intellij/platform/eel/impl/local/LocalEelApiImpl.kt @@ -5,23 +5,24 @@ import com.intellij.openapi.diagnostic.Logger import com.intellij.openapi.util.SystemInfo import com.intellij.openapi.util.io.FileUtil import com.intellij.openapi.util.io.FileUtilRt -import com.intellij.openapi.vfs.VfsUtilCore import com.intellij.platform.eel.* import com.intellij.platform.eel.fs.EelFileSystemApi import com.intellij.platform.eel.fs.EelFileSystemApi.CreateTemporaryDirectoryError import com.intellij.platform.eel.fs.EelFileSystemPosixApi import com.intellij.platform.eel.fs.EelFileSystemWindowsApi import com.intellij.platform.eel.fs.getPath +import com.intellij.platform.eel.impl.fs.EelFsResultImpl +import com.intellij.platform.eel.impl.fs.EelFsResultImpl.Ok +import com.intellij.platform.eel.impl.fs.EelFsResultImpl.Other +import com.intellij.platform.eel.impl.fs.EelUserPosixInfoImpl +import com.intellij.platform.eel.impl.fs.EelUserWindowsInfoImpl +import com.intellij.platform.eel.impl.fs.PosixNioBasedEelFileSystemApi +import com.intellij.platform.eel.impl.fs.WindowsNioBasedEelFileSystemApi import com.intellij.platform.eel.impl.local.tunnels.EelLocalTunnelsPosixApi import com.intellij.platform.eel.impl.local.tunnels.EelLocalTunnelsWindowsApi import com.intellij.platform.eel.path.EelPath -import com.intellij.platform.eel.provider.EelFsResultImpl.Error -import com.intellij.platform.eel.provider.EelFsResultImpl.Ok -import com.intellij.platform.eel.provider.EelFsResultImpl.Other -import com.intellij.platform.eel.provider.EelUserPosixInfoImpl -import com.intellij.platform.eel.provider.EelUserWindowsInfoImpl -import com.intellij.platform.eel.provider.fs.PosixNioBasedEelFileSystemApi -import com.intellij.platform.eel.provider.fs.WindowsNioBasedEelFileSystemApi +import com.intellij.platform.eel.provider.LocalPosixEelApi +import com.intellij.platform.eel.provider.LocalWindowsEelApi import com.intellij.util.text.nullize import com.sun.security.auth.module.UnixSystem import kotlinx.coroutines.CoroutineScope @@ -44,7 +45,7 @@ internal class LocalEelPathMapper(private val eelApi: EelApi) : EelPathMapper { } } -internal class LocalWindowsEelApiImpl(nioFs: FileSystem = FileSystems.getDefault()) : LocalEelApi, EelWindowsApi { +internal class LocalWindowsEelApiImpl(nioFs: FileSystem = FileSystems.getDefault()) : LocalWindowsEelApi { init { check(SystemInfo.isWindows) } @@ -65,7 +66,7 @@ internal class LocalWindowsEelApiImpl(nioFs: FileSystem = FileSystems.getDefault } @VisibleForTesting -class LocalPosixEelApiImpl(nioFs: FileSystem = FileSystems.getDefault()) : LocalEelApi, EelPosixApi { +class LocalPosixEelApiImpl(nioFs: FileSystem = FileSystems.getDefault()) : LocalPosixEelApi { init { check(SystemInfo.isUnix) } @@ -119,7 +120,7 @@ private fun doCreateTemporaryDirectory( ?: run { val path = Path.of(FileUtilRt.getTempDirectory()) if (mapper.getOriginalPath(path) == null) { - return Error(Other(EelPath.Absolute.parse(path.toString(), null), "Can't map this path")) + return EelFsResultImpl.Error(Other(EelPath.Absolute.parse(path.toString(), null), "Can't map this path")) } path.toFile() } @@ -133,7 +134,7 @@ private fun doCreateTemporaryDirectory( return if (tempDirectoryEel != null) Ok(tempDirectoryEel) else - Error(Other(EelPath.Absolute.parse(tempDirectory.toString(), null), "Can't map this path")) + EelFsResultImpl.Error(Other(EelPath.Absolute.parse(tempDirectory.toString(), null), "Can't map this path")) } private val LOG = Logger.getInstance(EelApi::class.java) diff --git a/platform/eelProvider/src/com/intellij/platform/eel/impl/local/LocalEelArchiveApiImpl.kt b/platform/eel-impl/src/com/intellij/platform/eel/impl/local/LocalEelArchiveApiImpl.kt similarity index 100% rename from platform/eelProvider/src/com/intellij/platform/eel/impl/local/LocalEelArchiveApiImpl.kt rename to platform/eel-impl/src/com/intellij/platform/eel/impl/local/LocalEelArchiveApiImpl.kt diff --git a/platform/eelProvider/src/com/intellij/platform/eel/impl/local/LocalEelProcess.kt b/platform/eel-impl/src/com/intellij/platform/eel/impl/local/LocalEelProcess.kt similarity index 100% rename from platform/eelProvider/src/com/intellij/platform/eel/impl/local/LocalEelProcess.kt rename to platform/eel-impl/src/com/intellij/platform/eel/impl/local/LocalEelProcess.kt diff --git a/platform/eelProvider/src/com/intellij/platform/eel/impl/local/LocalPid.kt b/platform/eel-impl/src/com/intellij/platform/eel/impl/local/LocalPid.kt similarity index 100% rename from platform/eelProvider/src/com/intellij/platform/eel/impl/local/LocalPid.kt rename to platform/eel-impl/src/com/intellij/platform/eel/impl/local/LocalPid.kt diff --git a/platform/eelProvider/src/com/intellij/platform/eel/impl/local/package-info.java b/platform/eel-impl/src/com/intellij/platform/eel/impl/local/package-info.java similarity index 100% rename from platform/eelProvider/src/com/intellij/platform/eel/impl/local/package-info.java rename to platform/eel-impl/src/com/intellij/platform/eel/impl/local/package-info.java diff --git a/platform/eelProvider/src/com/intellij/platform/eel/impl/local/processKiller/PosixProcessKiller.kt b/platform/eel-impl/src/com/intellij/platform/eel/impl/local/processKiller/PosixProcessKiller.kt similarity index 100% rename from platform/eelProvider/src/com/intellij/platform/eel/impl/local/processKiller/PosixProcessKiller.kt rename to platform/eel-impl/src/com/intellij/platform/eel/impl/local/processKiller/PosixProcessKiller.kt diff --git a/platform/eelProvider/src/com/intellij/platform/eel/impl/local/processKiller/WinProcessKiller.kt b/platform/eel-impl/src/com/intellij/platform/eel/impl/local/processKiller/WinProcessKiller.kt similarity index 100% rename from platform/eelProvider/src/com/intellij/platform/eel/impl/local/processKiller/WinProcessKiller.kt rename to platform/eel-impl/src/com/intellij/platform/eel/impl/local/processKiller/WinProcessKiller.kt diff --git a/platform/eelProvider/src/com/intellij/platform/eel/impl/local/tunnels/EelLocalTunnelsPosixApi.kt b/platform/eel-impl/src/com/intellij/platform/eel/impl/local/tunnels/EelLocalTunnelsPosixApi.kt similarity index 100% rename from platform/eelProvider/src/com/intellij/platform/eel/impl/local/tunnels/EelLocalTunnelsPosixApi.kt rename to platform/eel-impl/src/com/intellij/platform/eel/impl/local/tunnels/EelLocalTunnelsPosixApi.kt diff --git a/platform/eelProvider/src/com/intellij/platform/eel/impl/local/tunnels/EelLocalTunnelsWindowsApi.kt b/platform/eel-impl/src/com/intellij/platform/eel/impl/local/tunnels/EelLocalTunnelsWindowsApi.kt similarity index 94% rename from platform/eelProvider/src/com/intellij/platform/eel/impl/local/tunnels/EelLocalTunnelsWindowsApi.kt rename to platform/eel-impl/src/com/intellij/platform/eel/impl/local/tunnels/EelLocalTunnelsWindowsApi.kt index 16b847296ad0..334ba3240b13 100644 --- a/platform/eelProvider/src/com/intellij/platform/eel/impl/local/tunnels/EelLocalTunnelsWindowsApi.kt +++ b/platform/eel-impl/src/com/intellij/platform/eel/impl/local/tunnels/EelLocalTunnelsWindowsApi.kt @@ -4,7 +4,6 @@ package com.intellij.platform.eel.impl.local.tunnels import com.intellij.platform.eel.EelConnectionError import com.intellij.platform.eel.EelResult import com.intellij.platform.eel.EelTunnelsApi -import com.intellij.platform.eel.EelTunnelsPosixApi import com.intellij.platform.eel.EelTunnelsWindowsApi internal object EelLocalTunnelsWindowsApi : EelTunnelsWindowsApi { diff --git a/platform/eelProvider/src/com/intellij/platform/eel/impl/local/tunnels/SocketAdapter.kt b/platform/eel-impl/src/com/intellij/platform/eel/impl/local/tunnels/SocketAdapter.kt similarity index 100% rename from platform/eelProvider/src/com/intellij/platform/eel/impl/local/tunnels/SocketAdapter.kt rename to platform/eel-impl/src/com/intellij/platform/eel/impl/local/tunnels/SocketAdapter.kt diff --git a/platform/eelProvider/src/com/intellij/platform/eel/impl/local/tunnels/impl.kt b/platform/eel-impl/src/com/intellij/platform/eel/impl/local/tunnels/impl.kt similarity index 100% rename from platform/eelProvider/src/com/intellij/platform/eel/impl/local/tunnels/impl.kt rename to platform/eel-impl/src/com/intellij/platform/eel/impl/local/tunnels/impl.kt diff --git a/platform/eelProvider/src/com/intellij/platform/eel/impl/local/tunnels/package-info.java b/platform/eel-impl/src/com/intellij/platform/eel/impl/local/tunnels/package-info.java similarity index 100% rename from platform/eelProvider/src/com/intellij/platform/eel/impl/local/tunnels/package-info.java rename to platform/eel-impl/src/com/intellij/platform/eel/impl/local/tunnels/package-info.java diff --git a/platform/eelProvider/src/com/intellij/platform/eel/impl/networkResults.kt b/platform/eel-impl/src/com/intellij/platform/eel/impl/networkResults.kt similarity index 100% rename from platform/eelProvider/src/com/intellij/platform/eel/impl/networkResults.kt rename to platform/eel-impl/src/com/intellij/platform/eel/impl/networkResults.kt diff --git a/platform/eelProvider/src/com/intellij/platform/eel/impl/package-info.java b/platform/eel-impl/src/com/intellij/platform/eel/impl/package-info.java similarity index 100% rename from platform/eelProvider/src/com/intellij/platform/eel/impl/package-info.java rename to platform/eel-impl/src/com/intellij/platform/eel/impl/package-info.java diff --git a/platform/eelProvider/src/com/intellij/platform/eel/provider/utils/eelProcessUtils.kt b/platform/eel-impl/src/com/intellij/platform/eel/impl/utils/eelProcessUtils.kt similarity index 98% rename from platform/eelProvider/src/com/intellij/platform/eel/provider/utils/eelProcessUtils.kt rename to platform/eel-impl/src/com/intellij/platform/eel/impl/utils/eelProcessUtils.kt index e690aa6165dd..adf3b15ba490 100644 --- a/platform/eelProvider/src/com/intellij/platform/eel/provider/utils/eelProcessUtils.kt +++ b/platform/eel-impl/src/com/intellij/platform/eel/impl/utils/eelProcessUtils.kt @@ -1,5 +1,5 @@ // Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. -package com.intellij.platform.eel.provider.utils +package com.intellij.platform.eel.impl.utils import com.intellij.execution.process.ProcessOutput import com.intellij.platform.eel.* diff --git a/platform/eel-impl/src/com/intellij/platform/eel/impl/utils/eelProviderUtils.kt b/platform/eel-impl/src/com/intellij/platform/eel/impl/utils/eelProviderUtils.kt new file mode 100644 index 000000000000..430f9228fcaa --- /dev/null +++ b/platform/eel-impl/src/com/intellij/platform/eel/impl/utils/eelProviderUtils.kt @@ -0,0 +1,73 @@ +// Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. +package com.intellij.platform.eel.impl.utils + +import com.intellij.openapi.diagnostic.logger +import com.intellij.openapi.progress.runBlockingMaybeCancellable +import com.intellij.openapi.project.Project +import com.intellij.openapi.project.guessProjectDir +import com.intellij.openapi.util.Key +import com.intellij.openapi.util.UserDataHolderEx +import com.intellij.openapi.util.getOrCreateUserData +import com.intellij.openapi.util.getOrCreateUserDataUnsafe +import com.intellij.openapi.vfs.VirtualFile +import com.intellij.platform.eel.EelApi +import com.intellij.platform.eel.provider.EelApiKey +import com.intellij.platform.eel.provider.EelProvider +import com.intellij.platform.eel.provider.LocalEelKey +import com.intellij.platform.eel.provider.getEelApi +import com.intellij.platform.eel.provider.getEelApiKey +import com.intellij.platform.eel.provider.localEel +import com.intellij.util.concurrency.annotations.RequiresBlockingContext +import java.nio.file.Path +import kotlin.io.path.Path + +private val CannotGuessProjectDirLoggingKey = Key.create>("Eel.CannotGuessProjectDirLoggingKey") + + +private fun Project.guessProjectDirAndLogWarn(callLocation: String): VirtualFile? { + val dirResult = runCatching { guessProjectDir() } + val dir = dirResult.getOrNull() + + if (dir == null) { + val shouldLog = (if (this is UserDataHolderEx) { + getOrCreateUserData(CannotGuessProjectDirLoggingKey) { mutableSetOf() } + } + else getOrCreateUserDataUnsafe(CannotGuessProjectDirLoggingKey) { mutableSetOf() }).add(callLocation) + + if (shouldLog) { + LOG.warn("$callLocation: Cannot guess project dir for $this", dirResult.exceptionOrNull()) + } + } + + return dir +} + +private fun Project?.computeProjectPath(callLocation: String): Path? { + if (this == null || this.isDefault) return null + + val projectDir = guessProjectDirAndLogWarn(callLocation) + val basePath = basePath?.let(::Path) + + return try { + projectDir?.toNioPath() ?: basePath + } + catch (e: UnsupportedOperationException) { + basePath + } +} + +suspend fun Project?.getEelApi(): EelApi { + return computeProjectPath("Project?.getEelApi")?.getEelApi() ?: localEel +} + +@RequiresBlockingContext +fun Project?.getEelApiBlocking(): EelApi { + if (this == null) return localEel + return runBlockingMaybeCancellable { getEelApi() } +} + +fun Project?.getEelApiKey(): EelApiKey { + return computeProjectPath("Project?.getEelApiKey")?.getEelApiKey() ?: LocalEelKey +} + +private val LOG by lazy { logger() } \ No newline at end of file diff --git a/platform/eel-impl/src/com/intellij/platform/eel/impl/utils/package-info.java b/platform/eel-impl/src/com/intellij/platform/eel/impl/utils/package-info.java new file mode 100644 index 000000000000..be5ec94b3f05 --- /dev/null +++ b/platform/eel-impl/src/com/intellij/platform/eel/impl/utils/package-info.java @@ -0,0 +1,5 @@ +// Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. +@ApiStatus.Internal +package com.intellij.platform.eel.impl.utils; + +import org.jetbrains.annotations.ApiStatus; \ No newline at end of file diff --git a/platform/eel-provider/api-dump.txt b/platform/eel-provider/api-dump.txt new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/platform/eel-provider/intellij.platform.eel.provider.iml b/platform/eel-provider/intellij.platform.eel.provider.iml new file mode 100644 index 000000000000..dadf5aaeddf6 --- /dev/null +++ b/platform/eel-provider/intellij.platform.eel.provider.iml @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/platform/eelProvider/src/com/intellij/platform/eel/provider/EelProvider.kt b/platform/eel-provider/src/com/intellij/platform/eel/provider/EelProvider.kt similarity index 60% rename from platform/eelProvider/src/com/intellij/platform/eel/provider/EelProvider.kt rename to platform/eel-provider/src/com/intellij/platform/eel/provider/EelProvider.kt index c0d38cb75665..0c90e91fa494 100644 --- a/platform/eelProvider/src/com/intellij/platform/eel/provider/EelProvider.kt +++ b/platform/eel-provider/src/com/intellij/platform/eel/provider/EelProvider.kt @@ -3,70 +3,25 @@ package com.intellij.platform.eel.provider +import com.intellij.openapi.application.ApplicationManager +import com.intellij.openapi.components.service import com.intellij.openapi.diagnostic.logger import com.intellij.openapi.extensions.ExtensionPointName import com.intellij.openapi.progress.runBlockingMaybeCancellable import com.intellij.openapi.project.Project -import com.intellij.openapi.project.guessProjectDir import com.intellij.openapi.util.* -import com.intellij.openapi.vfs.VirtualFile import com.intellij.platform.eel.EelApi +import com.intellij.platform.eel.EelPosixApi +import com.intellij.platform.eel.EelWindowsApi import com.intellij.platform.eel.LocalEelApi -import com.intellij.platform.eel.impl.local.LocalPosixEelApiImpl -import com.intellij.platform.eel.impl.local.LocalWindowsEelApiImpl import com.intellij.platform.util.coroutines.forEachConcurrent import com.intellij.util.concurrency.annotations.RequiresBlockingContext import org.jetbrains.annotations.ApiStatus import java.nio.file.Path -import kotlin.io.path.Path -private val CannotGuessProjectDirLoggingKey = Key.create>("Eel.CannotGuessProjectDirLoggingKey") -private fun Project.guessProjectDirAndLogWarn(callLocation: String): VirtualFile? { - val dirResult = runCatching { guessProjectDir() } - val dir = dirResult.getOrNull() - - if (dir == null) { - val shouldLog = (if (this is UserDataHolderEx) { - getOrCreateUserData(CannotGuessProjectDirLoggingKey) { mutableSetOf() } - } - else getOrCreateUserDataUnsafe(CannotGuessProjectDirLoggingKey) { mutableSetOf() }).add(callLocation) - - if (shouldLog) { - LOG.warn("$callLocation: Cannot guess project dir for $this", dirResult.exceptionOrNull()) - } - } - - return dir -} - -private fun Project?.computeProjectPath(callLocation: String): Path? { - if (this == null || this.isDefault) return null - - val projectDir = guessProjectDirAndLogWarn(callLocation) - val basePath = basePath?.let(::Path) - - return try { - projectDir?.toNioPath() ?:basePath - } - catch (e: UnsupportedOperationException) { - basePath - } -} - -suspend fun Project?.getEelApi(): EelApi { - return computeProjectPath("Project?.getEelApi")?.getEelApi() ?: localEel -} - -@RequiresBlockingContext -fun Project?.getEelApiBlocking(): EelApi { - if (this == null) return localEel - return runBlockingMaybeCancellable { getEelApi() } -} - -fun Project?.getEelApiKey(): EelApiKey { - return computeProjectPath("Project?.getEelApiKey")?.getEelApiKey() ?: LocalEelKey -} +interface LocalWindowsEelApi : LocalEelApi, EelWindowsApi +interface LocalPosixEelApi : LocalEelApi, EelPosixApi private val LOG by lazy { logger() } @@ -106,7 +61,7 @@ fun Path.getEelApiKey(): EelApiKey { } val localEel: LocalEelApi by lazy { - if (SystemInfo.isWindows) LocalWindowsEelApiImpl() else LocalPosixEelApiImpl() + if (SystemInfo.isWindows) ApplicationManager.getApplication().service() else ApplicationManager.getApplication().service() } abstract class EelApiKey { diff --git a/platform/eelProvider/src/com/intellij/platform/eel/provider/package-info.java b/platform/eel-provider/src/com/intellij/platform/eel/provider/package-info.java similarity index 100% rename from platform/eelProvider/src/com/intellij/platform/eel/provider/package-info.java rename to platform/eel-provider/src/com/intellij/platform/eel/provider/package-info.java diff --git a/platform/eelProvider/src/com/intellij/platform/eel/provider/utils/eelPathUtils.kt b/platform/eel-provider/src/com/intellij/platform/eel/provider/utils/eelPathUtils.kt similarity index 98% rename from platform/eelProvider/src/com/intellij/platform/eel/provider/utils/eelPathUtils.kt rename to platform/eel-provider/src/com/intellij/platform/eel/provider/utils/eelPathUtils.kt index 17c86a92ef62..3fd5712c6e4d 100644 --- a/platform/eelProvider/src/com/intellij/platform/eel/provider/utils/eelPathUtils.kt +++ b/platform/eel-provider/src/com/intellij/platform/eel/provider/utils/eelPathUtils.kt @@ -1,6 +1,7 @@ // Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. package com.intellij.platform.eel.provider.utils +import com.intellij.util.concurrency.annotations.RequiresBackgroundThread import com.intellij.util.concurrency.annotations.RequiresBlockingContext import org.jetbrains.annotations.ApiStatus import java.io.IOException @@ -17,7 +18,7 @@ import kotlin.io.path.relativeTo object EelPathUtils { private val LOG = com.intellij.openapi.diagnostic.logger() - @RequiresBlockingContext + @RequiresBackgroundThread fun walkingTransfer(sourceRoot: Path, targetRoot: Path, removeSource: Boolean, copyAttributes: Boolean) { val sourceStack = ArrayDeque() sourceStack.add(sourceRoot) diff --git a/platform/eelProvider/src/com/intellij/platform/eel/provider/util.kt b/platform/eel-provider/src/com/intellij/platform/eel/provider/utils/eelTunnelUtils.kt similarity index 99% rename from platform/eelProvider/src/com/intellij/platform/eel/provider/util.kt rename to platform/eel-provider/src/com/intellij/platform/eel/provider/utils/eelTunnelUtils.kt index c60b1bda3b2e..f6c14b96e3d1 100644 --- a/platform/eelProvider/src/com/intellij/platform/eel/provider/util.kt +++ b/platform/eel-provider/src/com/intellij/platform/eel/provider/utils/eelTunnelUtils.kt @@ -1,7 +1,7 @@ // Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. @file:JvmName("IjentTunnelsUtil") -package com.intellij.platform.eel.provider +package com.intellij.platform.eel.provider.utils import com.intellij.openapi.diagnostic.Logger import com.intellij.platform.eel.EelTunnelsApi diff --git a/platform/eelProvider/src/com/intellij/platform/eel/provider/utils/eelUtils.kt b/platform/eel-provider/src/com/intellij/platform/eel/provider/utils/eelUtils.kt similarity index 100% rename from platform/eelProvider/src/com/intellij/platform/eel/provider/utils/eelUtils.kt rename to platform/eel-provider/src/com/intellij/platform/eel/provider/utils/eelUtils.kt diff --git a/platform/eelProvider/src/com/intellij/platform/eel/provider/utils/package-info.java b/platform/eel-provider/src/com/intellij/platform/eel/provider/utils/package-info.java similarity index 92% rename from platform/eelProvider/src/com/intellij/platform/eel/provider/utils/package-info.java rename to platform/eel-provider/src/com/intellij/platform/eel/provider/utils/package-info.java index 14b036c5cd63..efec971d158b 100644 --- a/platform/eelProvider/src/com/intellij/platform/eel/provider/utils/package-info.java +++ b/platform/eel-provider/src/com/intellij/platform/eel/provider/utils/package-info.java @@ -1,7 +1,6 @@ // Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. - /** - * EEL utils + * EEL API provider */ @ApiStatus.Internal package com.intellij.platform.eel.provider.utils; diff --git a/platform/execution-impl/src/com/intellij/execution/target/eel/EelTargetEnvironmentRequest.kt b/platform/execution-impl/src/com/intellij/execution/target/eel/EelTargetEnvironmentRequest.kt index 3b468dd8e1a4..44f1ebf0e85c 100644 --- a/platform/execution-impl/src/com/intellij/execution/target/eel/EelTargetEnvironmentRequest.kt +++ b/platform/execution-impl/src/com/intellij/execution/target/eel/EelTargetEnvironmentRequest.kt @@ -12,7 +12,7 @@ import com.intellij.platform.eel.* import com.intellij.platform.eel.fs.EelFileSystemApi import com.intellij.platform.eel.fs.getPath import com.intellij.platform.eel.provider.utils.EelPathUtils -import com.intellij.platform.eel.provider.forwardLocalPort +import com.intellij.platform.eel.provider.utils.forwardLocalPort import com.intellij.platform.util.coroutines.channel.ChannelInputStream import com.intellij.platform.util.coroutines.channel.ChannelOutputStream import com.intellij.platform.util.coroutines.childScope diff --git a/platform/ijent/impl/intellij.platform.ijent.community.impl.iml b/platform/ijent/impl/intellij.platform.ijent.community.impl.iml index e7ae194cb789..8be3c173057a 100644 --- a/platform/ijent/impl/intellij.platform.ijent.community.impl.iml +++ b/platform/ijent/impl/intellij.platform.ijent.community.impl.iml @@ -20,7 +20,7 @@ - + \ No newline at end of file diff --git a/platform/ijent/impl/src/com/intellij/platform/ijent/community/impl/nio/IjentNioFileSystemProvider.kt b/platform/ijent/impl/src/com/intellij/platform/ijent/community/impl/nio/IjentNioFileSystemProvider.kt index 000f3964e95f..23a56bd1ce94 100644 --- a/platform/ijent/impl/src/com/intellij/platform/ijent/community/impl/nio/IjentNioFileSystemProvider.kt +++ b/platform/ijent/impl/src/com/intellij/platform/ijent/community/impl/nio/IjentNioFileSystemProvider.kt @@ -8,7 +8,7 @@ import com.intellij.platform.eel.fs.EelFileInfo.Type.* import com.intellij.platform.eel.fs.EelFileSystemApi.ReplaceExistingDuringMove.* import com.intellij.platform.eel.fs.EelPosixFileInfo.Type.Symlink import com.intellij.platform.eel.path.EelPath -import com.intellij.platform.eel.provider.EelFsResultImpl +import com.intellij.platform.eel.impl.fs.EelFsResultImpl import com.intellij.platform.ijent.community.impl.nio.IjentNioFileSystemProvider.Companion.newFileSystemMap import com.intellij.platform.ijent.community.impl.nio.IjentNioFileSystemProvider.UnixFilePermissionBranch.* import com.intellij.platform.ijent.fs.IjentFileSystemApi diff --git a/platform/lang-impl/intellij.platform.lang.impl.iml b/platform/lang-impl/intellij.platform.lang.impl.iml index 3f54f6299caf..87da6ecc4f0d 100644 --- a/platform/lang-impl/intellij.platform.lang.impl.iml +++ b/platform/lang-impl/intellij.platform.lang.impl.iml @@ -108,6 +108,7 @@ + \ No newline at end of file diff --git a/platform/lang-impl/src/com/intellij/openapi/projectRoots/impl/JavaHomeFinder.java b/platform/lang-impl/src/com/intellij/openapi/projectRoots/impl/JavaHomeFinder.java index 189a4ab728d0..fc913bd27a4a 100644 --- a/platform/lang-impl/src/com/intellij/openapi/projectRoots/impl/JavaHomeFinder.java +++ b/platform/lang-impl/src/com/intellij/openapi/projectRoots/impl/JavaHomeFinder.java @@ -10,6 +10,7 @@ import com.intellij.platform.eel.EelApi; import com.intellij.platform.eel.EelPlatform; import com.intellij.platform.eel.path.EelPath; import com.intellij.platform.eel.path.EelPathKt; +import com.intellij.platform.eel.provider.EelProviderUtil; import com.intellij.util.EnvironmentUtil; import com.intellij.util.SystemProperties; import com.intellij.util.containers.ContainerUtil; @@ -28,7 +29,7 @@ import java.util.Collections; import java.util.List; import static com.intellij.openapi.projectRoots.impl.JavaHomeFinderEel.javaHomeFinderEel; -import static com.intellij.platform.eel.provider.EelProviderUtil.getEelApiBlocking; +import static com.intellij.platform.eel.impl.utils.EelProviderUtilsKt.getEelApiBlocking; import static com.intellij.platform.eel.provider.EelProviderUtil.getLocalEel; @ApiStatus.Internal @@ -165,7 +166,7 @@ public abstract class JavaHomeFinder { } private static @Nullable Path defaultJavaLocationUsingEel(Path path) { - EelApi eel = getEelApiBlocking(path); + EelApi eel = EelProviderUtil.getEelApiBlocking(path); EelPlatform platform = eel.getPlatform(); String eelPath = null; if (platform instanceof EelPlatform.Windows) { diff --git a/platform/lang-impl/src/com/intellij/openapi/projectRoots/impl/JavaHomeFinderEel.kt b/platform/lang-impl/src/com/intellij/openapi/projectRoots/impl/JavaHomeFinderEel.kt index 075da57335dc..2045734b0400 100644 --- a/platform/lang-impl/src/com/intellij/openapi/projectRoots/impl/JavaHomeFinderEel.kt +++ b/platform/lang-impl/src/com/intellij/openapi/projectRoots/impl/JavaHomeFinderEel.kt @@ -9,7 +9,7 @@ import com.intellij.openapi.progress.runBlockingMaybeCancellable import com.intellij.platform.eel.* import com.intellij.platform.eel.fs.* import com.intellij.platform.eel.path.EelPath -import com.intellij.platform.eel.provider.utils.awaitProcessResult +import com.intellij.platform.eel.impl.utils.awaitProcessResult import com.intellij.util.suspendingLazy import kotlinx.coroutines.CoroutineScope import java.io.IOException diff --git a/platform/lang-impl/src/com/intellij/openapi/projectRoots/impl/JdkFinderImpl.java b/platform/lang-impl/src/com/intellij/openapi/projectRoots/impl/JdkFinderImpl.java index 8cf76e038b37..fdf28f88d12f 100644 --- a/platform/lang-impl/src/com/intellij/openapi/projectRoots/impl/JdkFinderImpl.java +++ b/platform/lang-impl/src/com/intellij/openapi/projectRoots/impl/JdkFinderImpl.java @@ -3,13 +3,15 @@ package com.intellij.openapi.projectRoots.impl; import com.intellij.openapi.project.Project; import com.intellij.openapi.projectRoots.JdkFinder; -import com.intellij.platform.eel.provider.EelProviderUtil; import org.jetbrains.annotations.ApiStatus; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import java.util.List; +import static com.intellij.platform.eel.impl.utils.EelProviderUtilsKt.getEelApiBlocking; + + @ApiStatus.Internal public final class JdkFinderImpl implements JdkFinder { @Override @@ -24,6 +26,6 @@ public final class JdkFinderImpl implements JdkFinder { @Override public @NotNull List<@NotNull String> suggestHomePaths(@Nullable Project project) { - return JavaHomeFinder.suggestHomePaths(EelProviderUtil.getEelApiBlocking(project), false); + return JavaHomeFinder.suggestHomePaths(getEelApiBlocking(project), false); } } diff --git a/platform/lang-impl/src/com/intellij/openapi/projectRoots/impl/jdkDownloader/JdkAuto.kt b/platform/lang-impl/src/com/intellij/openapi/projectRoots/impl/jdkDownloader/JdkAuto.kt index 4893cd1b25c4..7bcacc66bf1a 100644 --- a/platform/lang-impl/src/com/intellij/openapi/projectRoots/impl/jdkDownloader/JdkAuto.kt +++ b/platform/lang-impl/src/com/intellij/openapi/projectRoots/impl/jdkDownloader/JdkAuto.kt @@ -28,7 +28,7 @@ import com.intellij.openapi.util.NlsSafe import com.intellij.openapi.util.registry.Registry import com.intellij.openapi.vfs.JarFileSystem import com.intellij.openapi.vfs.VirtualFile -import com.intellij.platform.eel.provider.getEelApi +import com.intellij.platform.eel.impl.utils.getEelApi import com.intellij.platform.eel.provider.localEel import com.intellij.util.SuspendingLazy import com.intellij.util.lang.JavaVersion diff --git a/platform/lang-impl/src/com/intellij/openapi/projectRoots/impl/jdkDownloader/JdkDownloader.kt b/platform/lang-impl/src/com/intellij/openapi/projectRoots/impl/jdkDownloader/JdkDownloader.kt index 5bb1ca1d9e9c..5c669bbb3953 100644 --- a/platform/lang-impl/src/com/intellij/openapi/projectRoots/impl/jdkDownloader/JdkDownloader.kt +++ b/platform/lang-impl/src/com/intellij/openapi/projectRoots/impl/jdkDownloader/JdkDownloader.kt @@ -25,7 +25,7 @@ import com.intellij.openapi.ui.Messages import com.intellij.openapi.util.NlsContexts import com.intellij.openapi.util.registry.Registry import com.intellij.platform.eel.EelApi -import com.intellij.platform.eel.provider.getEelApiBlocking +import com.intellij.platform.eel.impl.utils.getEelApiBlocking import org.jetbrains.annotations.ApiStatus.Internal import org.jetbrains.annotations.Nls import java.nio.file.Path diff --git a/platform/lang-impl/src/com/intellij/openapi/projectRoots/impl/jdkDownloader/JdkInstaller.kt b/platform/lang-impl/src/com/intellij/openapi/projectRoots/impl/jdkDownloader/JdkInstaller.kt index 187c573a6111..b4f3bb9184e9 100644 --- a/platform/lang-impl/src/com/intellij/openapi/projectRoots/impl/jdkDownloader/JdkInstaller.kt +++ b/platform/lang-impl/src/com/intellij/openapi/projectRoots/impl/jdkDownloader/JdkInstaller.kt @@ -29,7 +29,7 @@ import com.intellij.platform.eel.* import com.intellij.platform.eel.path.EelPath import com.intellij.platform.eel.provider.getEelApi import com.intellij.platform.eel.provider.getEelApiBlocking -import com.intellij.platform.eel.provider.utils.awaitProcessResult +import com.intellij.platform.eel.impl.utils.awaitProcessResult import com.intellij.util.Urls import com.intellij.util.io.HttpRequests import com.intellij.util.io.delete diff --git a/platform/lang-impl/src/com/intellij/openapi/roots/ui/configuration/projectRoot/ProjectSdksModel.java b/platform/lang-impl/src/com/intellij/openapi/roots/ui/configuration/projectRoot/ProjectSdksModel.java index 8bbf47adb4c1..434ac4cba418 100644 --- a/platform/lang-impl/src/com/intellij/openapi/roots/ui/configuration/projectRoot/ProjectSdksModel.java +++ b/platform/lang-impl/src/com/intellij/openapi/roots/ui/configuration/projectRoot/ProjectSdksModel.java @@ -25,6 +25,7 @@ import com.intellij.openapi.util.NlsContexts.ListItem; import com.intellij.openapi.util.io.FileUtil; import com.intellij.openapi.util.registry.Registry; import com.intellij.platform.eel.provider.EelApiKey; +import com.intellij.platform.eel.provider.EelProviderUtil; import com.intellij.platform.eel.provider.LocalEelKey; import com.intellij.util.ArrayUtilRt; import com.intellij.util.Consumer; @@ -44,7 +45,7 @@ import java.util.concurrent.atomic.AtomicReference; import java.util.function.Predicate; import static com.intellij.openapi.util.NlsActions.ActionText; -import static com.intellij.platform.eel.provider.EelProviderUtil.getEelApiKey; +import static com.intellij.platform.eel.impl.utils.EelProviderUtilsKt.getEelApiKey; /** * @author anna @@ -130,7 +131,7 @@ public class ProjectSdksModel implements SdkModel { if (sdkHomePath != null) { try { Path path = Path.of(sdkHomePath); - if (getEelApiKey(path).equals(eelApiKey)) { + if (EelProviderUtil.getEelApiKey(path).equals(eelApiKey)) { return true; } } diff --git a/platform/platform-resources/src/META-INF/PlatformExtensions.xml b/platform/platform-resources/src/META-INF/PlatformExtensions.xml index 5c80ac44854e..1b61199d9017 100644 --- a/platform/platform-resources/src/META-INF/PlatformExtensions.xml +++ b/platform/platform-resources/src/META-INF/PlatformExtensions.xml @@ -69,6 +69,11 @@ displayNameKey="configurable.group.other.settings.display.name" descriptionKey="configurable.group.other.settings.description"/> + + + - + + \ No newline at end of file diff --git a/platform/platform-tests/testSrc/com/intellij/execution/wsl/WSLDistributionTest.kt b/platform/platform-tests/testSrc/com/intellij/execution/wsl/WSLDistributionTest.kt index 97b71cb4f913..b0366e2c5b25 100644 --- a/platform/platform-tests/testSrc/com/intellij/execution/wsl/WSLDistributionTest.kt +++ b/platform/platform-tests/testSrc/com/intellij/execution/wsl/WSLDistributionTest.kt @@ -13,12 +13,10 @@ import com.intellij.openapi.project.Project import com.intellij.openapi.util.Computable import com.intellij.openapi.util.Disposer import com.intellij.openapi.util.Key -import com.intellij.openapi.util.SystemInfo import com.intellij.openapi.util.use -import com.intellij.openapi.vfs.impl.wsl.WslConstants import com.intellij.platform.eel.* import com.intellij.platform.eel.EelExecApi.ExecuteProcessError -import com.intellij.platform.eel.provider.EelProcessResultImpl +import com.intellij.platform.eel.impl.fs.EelProcessResultImpl import com.intellij.platform.ijent.IjentExecApi import com.intellij.platform.ijent.IjentPosixApi import com.intellij.platform.ijent.IjentProcessInfo @@ -48,7 +46,6 @@ import org.junit.jupiter.api.Test import org.junit.jupiter.api.TestTemplate import org.junit.jupiter.api.extension.* import java.io.File -import java.lang.reflect.Field import java.nio.file.FileSystems import java.util.stream.Stream import kotlin.reflect.full.memberProperties diff --git a/plugins/maven/intellij.maven.iml b/plugins/maven/intellij.maven.iml index 100b239fcfcf..3a3699486655 100644 --- a/plugins/maven/intellij.maven.iml +++ b/plugins/maven/intellij.maven.iml @@ -111,6 +111,7 @@ + diff --git a/plugins/maven/src/main/java/org/jetbrains/idea/maven/execution/MavenRunConfiguration.java b/plugins/maven/src/main/java/org/jetbrains/idea/maven/execution/MavenRunConfiguration.java index dfc923fc604e..c616850fb0ac 100644 --- a/plugins/maven/src/main/java/org/jetbrains/idea/maven/execution/MavenRunConfiguration.java +++ b/plugins/maven/src/main/java/org/jetbrains/idea/maven/execution/MavenRunConfiguration.java @@ -74,7 +74,8 @@ import java.nio.file.Paths; import java.util.*; import java.util.function.Function; -import static com.intellij.platform.eel.provider.EelProviderUtil.getEelApiBlocking; +import static com.intellij.platform.eel.impl.utils.EelProviderUtilsKt.getEelApiBlocking; + public class MavenRunConfiguration extends LocatableConfigurationBase implements ModuleRunProfile, TargetEnvironmentAwareRunProfile { private static final ExtensionPointName EP_NAME = diff --git a/plugins/maven/src/main/java/org/jetbrains/idea/maven/importing/MavenWslTargetConfigurator.kt b/plugins/maven/src/main/java/org/jetbrains/idea/maven/importing/MavenWslTargetConfigurator.kt index 47777cea0cfa..9867e6cb63f4 100644 --- a/plugins/maven/src/main/java/org/jetbrains/idea/maven/importing/MavenWslTargetConfigurator.kt +++ b/plugins/maven/src/main/java/org/jetbrains/idea/maven/importing/MavenWslTargetConfigurator.kt @@ -12,8 +12,8 @@ import com.intellij.openapi.util.Key import com.intellij.openapi.util.SystemInfo import com.intellij.openapi.util.UserDataHolder import com.intellij.platform.eel.EelApi -import com.intellij.platform.eel.provider.getEelApiBlocking import com.intellij.platform.eel.provider.utils.fetchLoginShellEnvVariablesBlocking +import com.intellij.platform.eel.impl.utils.getEelApiBlocking import org.jetbrains.idea.maven.execution.target.MavenRuntimeTargetConfiguration import org.jetbrains.idea.maven.project.MavenProjectBundle import org.jetbrains.idea.maven.project.MavenProjectsManager diff --git a/plugins/maven/src/main/java/org/jetbrains/idea/maven/server/MavenWrapperSupport.kt b/plugins/maven/src/main/java/org/jetbrains/idea/maven/server/MavenWrapperSupport.kt index 84d3980b0468..bcf162be63d5 100644 --- a/plugins/maven/src/main/java/org/jetbrains/idea/maven/server/MavenWrapperSupport.kt +++ b/plugins/maven/src/main/java/org/jetbrains/idea/maven/server/MavenWrapperSupport.kt @@ -10,9 +10,9 @@ import com.intellij.openapi.project.Project import com.intellij.openapi.util.io.FileUtil import com.intellij.openapi.vfs.VirtualFile import com.intellij.platform.eel.EelPosixApi +import com.intellij.platform.eel.impl.utils.getEelApiKey import com.intellij.platform.eel.provider.LocalEelKey import com.intellij.platform.eel.provider.getEelApiBlocking -import com.intellij.platform.eel.provider.getEelApiKey import com.intellij.util.io.HttpRequests import com.intellij.util.io.zip.JBZipFile import org.jetbrains.idea.maven.buildtool.MavenSyncConsole diff --git a/plugins/maven/src/main/java/org/jetbrains/idea/maven/server/eel/EelMavenRemoteProcessSupportFactory.kt b/plugins/maven/src/main/java/org/jetbrains/idea/maven/server/eel/EelMavenRemoteProcessSupportFactory.kt index 885b3eda178a..872c1cd1fb5c 100644 --- a/plugins/maven/src/main/java/org/jetbrains/idea/maven/server/eel/EelMavenRemoteProcessSupportFactory.kt +++ b/plugins/maven/src/main/java/org/jetbrains/idea/maven/server/eel/EelMavenRemoteProcessSupportFactory.kt @@ -5,9 +5,9 @@ import com.intellij.openapi.project.Project import com.intellij.openapi.projectRoots.Sdk import com.intellij.platform.eel.LocalEelApi import com.intellij.platform.eel.fs.getPath +import com.intellij.platform.eel.impl.utils.getEelApiBlocking +import com.intellij.platform.eel.impl.utils.getEelApiKey import com.intellij.platform.eel.provider.LocalEelKey -import com.intellij.platform.eel.provider.getEelApiBlocking -import com.intellij.platform.eel.provider.getEelApiKey import org.jetbrains.idea.maven.server.MavenDistribution import org.jetbrains.idea.maven.server.MavenRemoteProcessSupportFactory import org.jetbrains.idea.maven.server.MavenRemoteProcessSupportFactory.MavenRemoteProcessSupport diff --git a/plugins/maven/src/main/java/org/jetbrains/idea/maven/server/eel/EelMavenServerRemoteProcessSupport.kt b/plugins/maven/src/main/java/org/jetbrains/idea/maven/server/eel/EelMavenServerRemoteProcessSupport.kt index b1fb2c8f3dbf..57714ee45dbd 100644 --- a/plugins/maven/src/main/java/org/jetbrains/idea/maven/server/eel/EelMavenServerRemoteProcessSupport.kt +++ b/plugins/maven/src/main/java/org/jetbrains/idea/maven/server/eel/EelMavenServerRemoteProcessSupport.kt @@ -14,7 +14,7 @@ import com.intellij.openapi.roots.ProjectRootManager import com.intellij.platform.eel.* import com.intellij.platform.eel.fs.pathSeparator import com.intellij.platform.eel.provider.utils.fetchLoginShellEnvVariablesBlocking -import com.intellij.platform.eel.provider.forwardLocalPort +import com.intellij.platform.eel.provider.utils.forwardLocalPort import com.intellij.platform.util.coroutines.childScope import kotlinx.coroutines.DelicateCoroutinesApi import kotlinx.coroutines.launch diff --git a/plugins/maven/src/main/java/org/jetbrains/idea/maven/utils/MavenEelUtil.kt b/plugins/maven/src/main/java/org/jetbrains/idea/maven/utils/MavenEelUtil.kt index 6513b68a4a18..0672fb9b890d 100644 --- a/plugins/maven/src/main/java/org/jetbrains/idea/maven/utils/MavenEelUtil.kt +++ b/plugins/maven/src/main/java/org/jetbrains/idea/maven/utils/MavenEelUtil.kt @@ -28,9 +28,9 @@ import com.intellij.openapi.util.registry.Registry import com.intellij.platform.eel.EelApi import com.intellij.platform.eel.LocalEelApi import com.intellij.platform.eel.fs.getPath -import com.intellij.platform.eel.provider.getEelApi +import com.intellij.platform.eel.impl.utils.getEelApi +import com.intellij.platform.eel.impl.utils.where import com.intellij.platform.eel.provider.utils.fetchLoginShellEnvVariablesBlocking -import com.intellij.platform.eel.provider.utils.where import com.intellij.platform.eel.toNioPath import com.intellij.platform.ide.progress.runWithModalProgressBlocking import com.intellij.platform.ide.progress.withBackgroundProgress diff --git a/plugins/maven/src/main/java/org/jetbrains/idea/maven/utils/MavenUtil.java b/plugins/maven/src/main/java/org/jetbrains/idea/maven/utils/MavenUtil.java index 55d5e25b31c3..62a3727a070f 100644 --- a/plugins/maven/src/main/java/org/jetbrains/idea/maven/utils/MavenUtil.java +++ b/plugins/maven/src/main/java/org/jetbrains/idea/maven/utils/MavenUtil.java @@ -50,7 +50,6 @@ import com.intellij.openapi.vfs.*; import com.intellij.platform.eel.EelApi; import com.intellij.platform.eel.EelPlatform; import com.intellij.platform.eel.LocalEelApi; -import com.intellij.platform.eel.provider.utils.EelUtilsKt; import com.intellij.psi.PsiFile; import com.intellij.psi.PsiManager; import com.intellij.serviceContainer.AlreadyDisposedException; @@ -99,7 +98,8 @@ import java.util.zip.CRC32; import static com.intellij.openapi.util.text.StringUtil.*; import static com.intellij.platform.eel.fs.EelFileSystemApiKt.getPath; -import static com.intellij.platform.eel.provider.EelProviderUtil.getEelApiBlocking; +import static com.intellij.platform.eel.impl.utils.EelProviderUtilsKt.getEelApiBlocking; +import static com.intellij.platform.eel.provider.utils.EelUtilsKt.fetchLoginShellEnvVariablesBlocking; import static com.intellij.util.xml.NanoXmlBuilder.stop; import static icons.ExternalSystemIcons.Task; import static org.jetbrains.idea.maven.project.MavenHomeKt.resolveMavenHomeType; @@ -684,7 +684,7 @@ public class MavenUtil { List result = new ArrayList<>(); var eel = getEelApiBlocking(project); - var envs = EelUtilsKt.fetchLoginShellEnvVariablesBlocking(eel.getExec()); + var envs = fetchLoginShellEnvVariablesBlocking(eel.getExec()); String m2home = envs.get(ENV_M2_HOME); if (!isEmptyOrSpaces(m2home)) { diff --git a/plugins/maven/src/main/java/org/jetbrains/idea/maven/wizards/MavenModuleBuilderHelper.kt b/plugins/maven/src/main/java/org/jetbrains/idea/maven/wizards/MavenModuleBuilderHelper.kt index 737b308fc60f..c871ae9de333 100644 --- a/plugins/maven/src/main/java/org/jetbrains/idea/maven/wizards/MavenModuleBuilderHelper.kt +++ b/plugins/maven/src/main/java/org/jetbrains/idea/maven/wizards/MavenModuleBuilderHelper.kt @@ -17,7 +17,7 @@ import com.intellij.openapi.vfs.VfsUtil import com.intellij.openapi.vfs.VirtualFile import com.intellij.platform.eel.fs.EelFileSystemApi import com.intellij.platform.eel.getOrThrow -import com.intellij.platform.eel.provider.getEelApi +import com.intellij.platform.eel.impl.utils.getEelApi import com.intellij.platform.eel.toNioPath import com.intellij.psi.PsiDocumentManager import com.intellij.psi.PsiFile