From da8eafcd0e443d1a587de9e1e3500e3a69cc783f Mon Sep 17 00:00:00 2001 From: Daniil Ovchinnikov Date: Mon, 27 Nov 2023 18:56:37 +0100 Subject: [PATCH] set `JpsJavaProjectExtension.setOutputUrl` when loading JPS project in tests This allows to keep use `JpsJavaProjectExtension.getOutputUrl`, and in turn `ProjectPaths.getModuleOutputDir` in tests. This approach works both locally and on build server. GitOrigin-RevId: 9c47cdca8330c70fc9e0ca54123986e359039fa1 --- .../com/intellij/project/IntelliJProjectConfiguration.kt | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/platform/testFramework/src/com/intellij/project/IntelliJProjectConfiguration.kt b/platform/testFramework/src/com/intellij/project/IntelliJProjectConfiguration.kt index be3f8a04546fe..37c3efe669c69 100644 --- a/platform/testFramework/src/com/intellij/project/IntelliJProjectConfiguration.kt +++ b/platform/testFramework/src/com/intellij/project/IntelliJProjectConfiguration.kt @@ -7,11 +7,13 @@ import com.intellij.openapi.util.NlsSafe import com.intellij.openapi.util.io.FileUtil import com.intellij.openapi.vfs.VirtualFile import com.intellij.openapi.vfs.VirtualFileManager +import com.intellij.util.PathUtil import com.intellij.util.SystemProperties import com.intellij.util.io.systemIndependentPath import org.jetbrains.jps.model.JpsProject import org.jetbrains.jps.model.jarRepository.JpsRemoteRepositoryDescription import org.jetbrains.jps.model.jarRepository.JpsRemoteRepositoryService +import org.jetbrains.jps.model.java.JpsJavaExtensionService import org.jetbrains.jps.model.library.JpsLibraryCollection import org.jetbrains.jps.model.library.JpsOrderRootType import org.jetbrains.jps.model.serialization.JpsSerializationManager @@ -102,7 +104,10 @@ class IntelliJProjectConfiguration { @JvmStatic fun loadIntelliJProject(projectHome: String): JpsProject { val m2Repo = getLocalMavenRepo().systemIndependentPath - return JpsSerializationManager.getInstance().loadProject(projectHome, mapOf(PathMacrosImpl.MAVEN_REPOSITORY to m2Repo), true) + val project = JpsSerializationManager.getInstance().loadProject(projectHome, mapOf(PathMacrosImpl.MAVEN_REPOSITORY to m2Repo), true) + val outPath = Path.of(PathUtil.getJarPathForClass(PathUtil::class.java)).parent.parent + JpsJavaExtensionService.getInstance().getOrCreateProjectExtension(project).outputUrl = outPath.toString() + return project } @JvmStatic