Prevents the build toolwindow from stealing the focus when an automatic build is triggered by the automatic test runner when the code is uncompilable. #IDEA-335769 Fixed
(cherry picked from commit d6bd1f9fade4fab3c91b25bbe788f870aaf123bc)
IJ-CR-180263
GitOrigin-RevId: e5ff8f040d27d4a1686289af4a1158a6ee38c633
Stop using the local IDE runtime JDK as a fallback when the project builds remotely (Docker/SSH/WSL). This avoids launching the build with a JDK that cannot run on the target machine and prevents hard‑to‑diagnose failures. When no compatible remote JDK is found, we now fail fast. Existing local and WSL‑specific behavior remains unchanged.
(cherry picked from commit 3e27c308520d3522572fdfc2ee57e4d6c4e2ab63)
IJ-CR-179667
GitOrigin-RevId: a3958d861960083811dee737e11a7450009a5863
SDK selection now accounts for the project's Eel environment rather than only WSL paths, so only SDKs runnable on the target machine are considered. When Eel is available, filtering uses compatibility checks against the project/Eel context to support generic non‑WSL remote setups. If the "wsl.use.remote.agent.for.nio.filesystem" registry key is `false`, WSL‑over‑Eel remains disabled and the legacy WslDistribution matching continues to be used.
(cherry picked from commit 43723999a07be66da6fc6facda079c7a70b86fc8)
IJ-CR-179667
GitOrigin-RevId: 72b304214d4c8361d64925eae3079012e78b27d2
Routes the build system directory and project system hashing to Eel storage whenever Eel is available, and the project is non‑local, not just for WSL. This unifies remote handling so non‑local, non‑WSL projects now keep JPS-build-related files on the remote Eel side instead of the local machine.
The previous WSL‑specific logic is preserved and continues to be used for WSL projects or when Eel isn't applicable. Local projects remain in the local build system directory with no behavioral changes. This reduces cross‑machine path mismatches and keeps build state co‑located with remote sources for more reliable builds.
(cherry picked from commit 602fa5f5f9f2bc4649bdb37431485997d380617a)
IJ-CR-179667
GitOrigin-RevId: 69d02be22a9bb48b989f84d196aba35ac294300b
Unifies path‑mapper selection so builds work consistently for remote Eel projects in addition to WSL. When the "wsl.use.remote.agent.for.nio.filesystem" registry key is `false`, WSL‑over‑Eel is disabled, and we intentionally fall back to legacy `WslDistribution` mapping. This preserves existing local/WSL behavior while enabling remote Eel workflows.
These changes also address a likely issue in `com.intellij.compiler.server.BuildManager.scheduleBuild()` method where `currentFSChanges` previously relied on a WSL‑only mapper. It now uses the unified mapper that supports both Eel and the alternate WSL path conversion.
(cherry picked from commit ff5c0ad873f513c0e34b3dc01a8b79904c8e7650)
IJ-CR-179667
GitOrigin-RevId: d106a542c08ac8ca2565f7691db6c3a9e9d8702a
The option was introduced as a Registry flag in `aba75dc4a9c7d6c33f8aa96a83d5505304e5e0b2` and later replaced with a system property in `63439ad1d476dda6f6d7640d3fb19f1dcc63917e` due to Fleet’s inability to access the Registry. The property is read but never set anywhere in the product or in `ultimate-teamcity-config`, so the behavior has effectively been disabled since 2021.1. This change removes the property handling and related code paths. No functional change is expected.
(cherry picked from commit a06a298f8776f3e2d648176198b30d56c1fd7021)
IJ-CR-179667
GitOrigin-RevId: 08e1f054ad61be423f98e0af9f97995ea5293858
Application‑level libraries ("Global Libraries" in UI) must be isolated by the environment, so each EEL environment sees only its own library set. This prevents cross‑environment leakage and aligns library scoping with SDK scoping.
Notes
- Environment choice is derived from the passed `Project` (carrier of the already‑resolved `EelMachine`), so selection is synchronous and safe for this API surface.
- API names stay as they are; documentation clarifies that the `Project` parameter selects the environment for the application‑level table and does not turn it into a project‑level table.
- In the Project Structure UI, the existing environment‑scoped modifiable model remains owned by the UI; outside the UI, callers get a standalone modifiable model for the chosen environment.
GitOrigin-RevId: e88445929d19012d029e79d44f09f694aba8df6f
APIs, which were marked as deprecated in 251 or earlier and don't have external usages, are marked as internal. Also, if there are no internal usages, it's also marked for removal.
GitOrigin-RevId: ffd772fc41738cdf3bcf5a122756936383184866
Also converts ArchivedCompilationContextUtil.java file to ArchivedCompilationContextUtil.kt file.
GitOrigin-RevId: 2e08a242bda539415467d17ae86e01140e84ce9d
Also renames ArchivedCompilationContextUtil.getArchivedCompiledClassesLocation()/.getArchivedCompiledClassesLocationIfIsRunningFromBazelOut().
GitOrigin-RevId: dd5d8b65f46ead13e53f0fdf9b99a6e999b3a9e7
The error was caused by reusing the old cache for compilation. As a result, the file with the compiler settings did not match the current state of the project. This led to the module being compiled with the version of the target Java bytecode that was used for the first compilation.
GitOrigin-RevId: 3a5e40192f664ca842750b2d276b7b4b44d67eaa
this commit also changes the policy of choosing the fallback JDK for the forked javac, which is now the oldest available in the JDK table, but not older than the minimal supported JDK version for running javac
GitOrigin-RevId: 1c757fc1faa0aff36ecac04b8d12a8a2f7e313a6
We want to get rid of VirtualFilePointer's and eventually replace all of them with the VirtualFileUrl.
GitOrigin-RevId: 6c97578069744188945d04ace32d9ae6a68aa0be
1. It is `java`, not `java.exe` (see `JavaSdkImpl`)
2. Various options were also unaware of eel
Merge-request: IJ-MR-171187
Merged-by: Ilya Kazakevich <ilya.kazakevich@jetbrains.com>
GitOrigin-RevId: 1ade6505d9fc912e3da097f7f94de654fd0fddb4
+ implement simplest MRU-like interner, instead of Caffeine -- Caffeine seems to be an overkill for such a simple task.
+ Use `-Dcompiler.InternedPath.USE_CAFFEINE_INTERNER=true` to return Caffeine-based interner
GitOrigin-RevId: 4b95e28dc2c4303d9078be445ee8f94e593ac176
This is needed to avoid confusion since these methods aren't called by the compilation engine anymore.
GitOrigin-RevId: 203140c584e7ed667751468002c89cba4479e4d7