diff --git a/java/compiler/openapi/src/com/intellij/openapi/compiler/CompilerPaths.java b/java/compiler/openapi/src/com/intellij/openapi/compiler/CompilerPaths.java index f10fef02631f..a7aaf85c7366 100644 --- a/java/compiler/openapi/src/com/intellij/openapi/compiler/CompilerPaths.java +++ b/java/compiler/openapi/src/com/intellij/openapi/compiler/CompilerPaths.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2014 JetBrains s.r.o. + * Copyright 2000-2017 JetBrains s.r.o. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -91,6 +91,7 @@ public class CompilerPaths { } public static String getCompilerSystemDirectoryName(Project project) { + // todo: use ProjectKt.getSystemCacheFileName() return ProjectUtilCore.getPresentableName(project) + "." + project.getLocationHash(); } diff --git a/java/execution/impl/src/com/intellij/execution/testDiscovery/TestDiscoveryExtension.java b/java/execution/impl/src/com/intellij/execution/testDiscovery/TestDiscoveryExtension.java index ff964fdd6ef5..14038787be32 100644 --- a/java/execution/impl/src/com/intellij/execution/testDiscovery/TestDiscoveryExtension.java +++ b/java/execution/impl/src/com/intellij/execution/testDiscovery/TestDiscoveryExtension.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2016 JetBrains s.r.o. + * Copyright 2000-2017 JetBrains s.r.o. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -36,6 +36,7 @@ import com.intellij.openapi.util.WriteExternalException; import com.intellij.openapi.util.io.FileUtil; import com.intellij.openapi.util.registry.Registry; import com.intellij.openapi.util.text.StringUtil; +import com.intellij.project.ProjectKt; import com.intellij.rt.coverage.data.ProjectData; import com.intellij.util.Alarm; import com.intellij.util.ArrayUtil; @@ -144,7 +145,7 @@ public class TestDiscoveryExtension extends RunConfigurationExtension { @NotNull public static String baseTestDiscoveryPathForProject(Project project) { - return PathManager.getSystemPath() + File.separator + "testDiscovery" + File.separator + project.getName() + "." + project.getLocationHash(); + return PathManager.getSystemPath() + File.separator + "testDiscovery" + File.separator + ProjectKt.getSystemCacheFileName(project, true, "."); } private static final Object ourTracesLock = new Object(); diff --git a/platform/lang-impl/src/com/intellij/framework/detection/impl/DetectedFrameworksData.java b/platform/lang-impl/src/com/intellij/framework/detection/impl/DetectedFrameworksData.java index 0032860b8203..1e240c905007 100644 --- a/platform/lang-impl/src/com/intellij/framework/detection/impl/DetectedFrameworksData.java +++ b/platform/lang-impl/src/com/intellij/framework/detection/impl/DetectedFrameworksData.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2014 JetBrains s.r.o. + * Copyright 2000-2017 JetBrains s.r.o. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -18,8 +18,8 @@ package com.intellij.framework.detection.impl; import com.intellij.framework.detection.DetectedFrameworkDescription; import com.intellij.openapi.diagnostic.Logger; import com.intellij.openapi.project.Project; -import com.intellij.openapi.util.io.FileUtil; import com.intellij.openapi.vfs.VirtualFile; +import com.intellij.project.ProjectKt; import com.intellij.util.containers.MultiMap; import com.intellij.util.indexing.FileBasedIndex; import com.intellij.util.io.DataExternalizer; @@ -50,7 +50,7 @@ public class DetectedFrameworksData { public DetectedFrameworksData(Project project) { myDetectedFrameworks = new MultiMap<>(); - File file = new File(FrameworkDetectorRegistryImpl.getDetectionDirPath() + File.separator + FileUtil.sanitizeFileName(project.getName(), false) + "." + project.getLocationHash() + + File file = new File(FrameworkDetectorRegistryImpl.getDetectionDirPath() + File.separator + ProjectKt.getSystemCacheFileName(project, true, ".") + File.separator + "files"); myNewFiles = new TIntObjectHashMap<>(); try { diff --git a/platform/projectModel-impl/src/com/intellij/project/project.kt b/platform/projectModel-impl/src/com/intellij/project/project.kt index 29a58e7b05b4..0c91a6a7ab54 100644 --- a/platform/projectModel-impl/src/com/intellij/project/project.kt +++ b/platform/projectModel-impl/src/com/intellij/project/project.kt @@ -29,6 +29,7 @@ import com.intellij.openapi.roots.ModuleRootManager import com.intellij.openapi.util.SystemInfo import com.intellij.openapi.util.io.FileUtil import com.intellij.openapi.vfs.VirtualFile +import com.intellij.util.PathUtilRt import com.intellij.util.io.basicAttributesIfExists import com.intellij.util.io.exists import java.nio.file.InvalidPathException @@ -120,4 +121,11 @@ fun Project.guessProjectDir() : VirtualFile { } } return this.baseDir!! +} + +// Use parameters only for migration purposes, once all usages will be migrated, parameters will be removed +@JvmOverloads +fun Project.getSystemCacheFileName(forceNameUse: Boolean = false, hashSeparator: String = "-"): String { + val name = if (!forceNameUse && isDirectoryBased) FileUtil.sanitizeFileName(PathUtilRt.getFileName(basePath), false) else name + return "$name$hashSeparator$locationHash" } \ No newline at end of file