From 34d1b6c1b2d01da31f02bd13695cd38920fcc668 Mon Sep 17 00:00:00 2001 From: Vladimir Krivosheev Date: Sat, 14 Sep 2024 16:50:30 +0200 Subject: [PATCH] deprecate getTargetDataRoot in favour of getTargetDataRootDir (prefer NIO) GitOrigin-RevId: 127cb04b82c6780d04a64aa8d1a1b6c7cb219219 --- jps/jps-builders/api-dump.txt | 11 +++++----- .../jps/builders/impl/BuildDataPathsImpl.java | 2 +- .../impl/storage/BuildTargetStorages.java | 2 +- .../jps/builders/storage/BuildDataPaths.java | 4 ++++ .../incremental/storage/BuildDataManager.java | 20 +++++++++++-------- 5 files changed, 23 insertions(+), 16 deletions(-) diff --git a/jps/jps-builders/api-dump.txt b/jps/jps-builders/api-dump.txt index f69655475c4b..bcd9be3248c3 100644 --- a/jps/jps-builders/api-dump.txt +++ b/jps/jps-builders/api-dump.txt @@ -1845,8 +1845,8 @@ org.jetbrains.jps.builders.storage.SourceToOutputMapping - a:setOutputs(java.lang.String,java.util.Collection):V a:org.jetbrains.jps.builders.storage.StorageProvider - ():V -- a:createStorage(java.io.File):org.jetbrains.jps.incremental.storage.StorageOwner -- createStorage(java.io.File,org.jetbrains.jps.incremental.relativizer.PathRelativizerService):org.jetbrains.jps.incremental.storage.StorageOwner +- a:createStorage(java.nio.file.Path):org.jetbrains.jps.incremental.storage.StorageOwner +- createStorage(java.nio.file.Path,org.jetbrains.jps.incremental.relativizer.PathRelativizerService):org.jetbrains.jps.incremental.storage.StorageOwner f:org.jetbrains.jps.cmdline.BuildRunner - (org.jetbrains.jps.cmdline.JpsModelLoader):V - createCompilationScope(org.jetbrains.jps.cmdline.ProjectDescriptor,java.util.List):org.jetbrains.jps.incremental.CompileScope @@ -2617,7 +2617,6 @@ a:org.jetbrains.jps.incremental.storage.AbstractStateStorage - f:wipe():Z f:org.jetbrains.jps.incremental.storage.BuildDataManager - sf:PROCESS_CONSTANTS_NON_INCREMENTAL_PROPERTY:java.lang.String -- (org.jetbrains.jps.builders.storage.BuildDataPaths,org.jetbrains.jps.incremental.storage.BuildTargetsState,org.jetbrains.jps.incremental.relativizer.PathRelativizerService):V - clean(java.util.function.Consumer):V - cleanTargetStorages(org.jetbrains.jps.builders.BuildTarget):V - close():V @@ -2630,7 +2629,6 @@ f:org.jetbrains.jps.incremental.storage.BuildDataManager - s:getMappingsRoot(java.io.File):java.io.File - getOutputToTargetRegistry():org.jetbrains.jps.incremental.storage.OutputToTargetRegistry - getRelativizer():org.jetbrains.jps.incremental.relativizer.PathRelativizerService -- getSourceToFormMap():org.jetbrains.jps.incremental.storage.OneToManyPathsMapping - getSourceToOutputMap(org.jetbrains.jps.builders.BuildTarget):org.jetbrains.jps.builders.storage.SourceToOutputMapping - getStorage(org.jetbrains.jps.builders.BuildTarget,org.jetbrains.jps.builders.storage.StorageProvider):org.jetbrains.jps.incremental.storage.StorageOwner - getTargetsState():org.jetbrains.jps.incremental.storage.BuildTargetsState @@ -2684,6 +2682,7 @@ a:org.jetbrains.jps.incremental.storage.CompositeStorageOwner - pa:getChildStorages():java.lang.Iterable f:org.jetbrains.jps.incremental.storage.OneToManyPathsMapping - org.jetbrains.jps.incremental.storage.AbstractStateStorage +- org.jetbrains.jps.incremental.storage.StorageOwner - (java.nio.file.Path,org.jetbrains.jps.incremental.relativizer.PathRelativizerService):V - appendData(java.lang.String,java.lang.String):V - appendData(java.lang.String,java.util.Collection):V @@ -2694,7 +2693,7 @@ f:org.jetbrains.jps.incremental.storage.OneToManyPathsMapping - remove(java.lang.String):V - removeData(java.lang.String,java.lang.String):V - update(java.lang.String,java.lang.String):V -- update(java.lang.String,java.util.Collection):V +- update(java.lang.String,java.util.List):V f:org.jetbrains.jps.incremental.storage.OutputToTargetRegistry - org.jetbrains.jps.incremental.storage.AbstractStateStorage - getSafeToDeleteOutputs(java.util.Collection,I):java.util.Collection @@ -2706,7 +2705,7 @@ f:org.jetbrains.jps.incremental.storage.ProjectStamps - sf:TRACK_LIBRARY_CONTENT:Z - sf:TRACK_LIBRARY_CONTENT_PROPERTY:java.lang.String - (java.io.File,org.jetbrains.jps.incremental.storage.BuildTargetsState,org.jetbrains.jps.incremental.relativizer.PathRelativizerService):V -- (java.nio.file.Path,org.jetbrains.jps.incremental.storage.BuildTargetsState,org.jetbrains.jps.incremental.relativizer.PathRelativizerService):V +- (java.nio.file.Path,org.jetbrains.jps.incremental.storage.BuildTargetsState):V - close():V - getStampStorage():org.jetbrains.jps.incremental.storage.StampsStorage org.jetbrains.jps.incremental.storage.StampsStorage diff --git a/jps/jps-builders/src/org/jetbrains/jps/builders/impl/BuildDataPathsImpl.java b/jps/jps-builders/src/org/jetbrains/jps/builders/impl/BuildDataPathsImpl.java index 1ca039c0c027..7c0212042e5b 100644 --- a/jps/jps-builders/src/org/jetbrains/jps/builders/impl/BuildDataPathsImpl.java +++ b/jps/jps-builders/src/org/jetbrains/jps/builders/impl/BuildDataPathsImpl.java @@ -40,7 +40,7 @@ public final class BuildDataPathsImpl implements BuildDataPaths { @Override public @NotNull File getTargetDataRoot(@NotNull BuildTarget target) { - return getTargetDataRoot(target.getTargetType(), target.getId()).toFile(); + return getTargetDataRootDir(target).toFile(); } @Override diff --git a/jps/jps-builders/src/org/jetbrains/jps/builders/impl/storage/BuildTargetStorages.java b/jps/jps-builders/src/org/jetbrains/jps/builders/impl/storage/BuildTargetStorages.java index bc32136510e3..d4f8e289794b 100644 --- a/jps/jps-builders/src/org/jetbrains/jps/builders/impl/storage/BuildTargetStorages.java +++ b/jps/jps-builders/src/org/jetbrains/jps/builders/impl/storage/BuildTargetStorages.java @@ -32,7 +32,7 @@ public final class BuildTargetStorages extends CompositeStorageOwner { try { return (S)myStorages.computeIfAbsent(provider, _provider -> { try { - return _provider.createStorage(myPaths.getTargetDataRoot(myTarget).toPath(), relativizer); + return _provider.createStorage(myPaths.getTargetDataRootDir(myTarget), relativizer); } catch (IOException e) { throw new BuildDataCorruptedException(e); diff --git a/jps/jps-builders/src/org/jetbrains/jps/builders/storage/BuildDataPaths.java b/jps/jps-builders/src/org/jetbrains/jps/builders/storage/BuildDataPaths.java index 77d7070c1d45..2b51433c2c8b 100644 --- a/jps/jps-builders/src/org/jetbrains/jps/builders/storage/BuildDataPaths.java +++ b/jps/jps-builders/src/org/jetbrains/jps/builders/storage/BuildDataPaths.java @@ -15,6 +15,10 @@ public interface BuildDataPaths { @NotNull File getTargetTypeDataRoot(@NotNull BuildTargetType targetType); + /** + * @deprecated Use {@link #getTargetDataRootDir}. + */ + @Deprecated @NotNull File getTargetDataRoot(@NotNull BuildTarget target); @NotNull Path getTargetDataRootDir(@NotNull BuildTarget target); diff --git a/jps/jps-builders/src/org/jetbrains/jps/incremental/storage/BuildDataManager.java b/jps/jps-builders/src/org/jetbrains/jps/incremental/storage/BuildDataManager.java index 4d2a75a620d5..738fc20fc0f7 100644 --- a/jps/jps-builders/src/org/jetbrains/jps/incremental/storage/BuildDataManager.java +++ b/jps/jps-builders/src/org/jetbrains/jps/incremental/storage/BuildDataManager.java @@ -4,6 +4,7 @@ package org.jetbrains.jps.incremental.storage; import com.intellij.openapi.diagnostic.Logger; import com.intellij.openapi.util.io.FileUtil; import com.intellij.openapi.util.io.FileUtilRt; +import com.intellij.openapi.util.io.NioFiles; import com.intellij.util.io.PersistentHashMapValueStorage; import org.jetbrains.annotations.ApiStatus; import org.jetbrains.annotations.NotNull; @@ -31,6 +32,7 @@ import java.io.*; import java.nio.file.Path; import java.util.Collection; import java.util.Iterator; +import java.util.List; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ConcurrentMap; import java.util.concurrent.Future; @@ -76,6 +78,7 @@ public final class BuildDataManager { } }; + @ApiStatus.Internal public BuildDataManager(BuildDataPaths dataPaths, BuildTargetsState targetsState, PathRelativizerService relativizer, @@ -151,6 +154,7 @@ public final class BuildDataManager { return targetStorages.getOrCreateStorage(provider, myRelativizer); } + @ApiStatus.Internal public OneToManyPathMapping getSourceToFormMap() { return mySrcToFormMap; } @@ -186,12 +190,12 @@ public final class BuildDataManager { } finally { // delete all data except src-out mapping which is cleaned in a special way - final File[] targetData = myDataPaths.getTargetDataRoot(target).listFiles(); - if (targetData != null) { - final File srcOutputMapRoot = getSourceToOutputMapRoot(target); - for (File dataFile : targetData) { - if (!FileUtil.filesEqual(dataFile, srcOutputMapRoot)) { - FileUtil.delete(dataFile); + List targetData = NioFiles.list(myDataPaths.getTargetDataRootDir(target)); + if (!targetData.isEmpty()) { + Path srcOutputMapRoot = getSourceToOutputMapRoot(target); + for (Path dataFile : targetData) { + if (!dataFile.equals(srcOutputMapRoot)) { + NioFiles.deleteRecursively(dataFile); } } } @@ -346,8 +350,8 @@ public final class BuildDataManager { } } - private File getSourceToOutputMapRoot(BuildTarget target) { - return new File(myDataPaths.getTargetDataRoot(target), SRC_TO_OUTPUT_STORAGE); + private @NotNull Path getSourceToOutputMapRoot(BuildTarget target) { + return myDataPaths.getTargetDataRootDir(target).resolve(SRC_TO_OUTPUT_STORAGE); } private Path getSourceToOutputMapRoot(BuildTargetType targetType, String targetId) {