diff --git a/jps/jps-builders/src/org/jetbrains/jps/builders/BuildRootIndex.java b/jps/jps-builders/src/org/jetbrains/jps/builders/BuildRootIndex.java index eb53d4408c55..ab9f6b390173 100644 --- a/jps/jps-builders/src/org/jetbrains/jps/builders/BuildRootIndex.java +++ b/jps/jps-builders/src/org/jetbrains/jps/builders/BuildRootIndex.java @@ -2,8 +2,8 @@ package org.jetbrains.jps.builders; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; +import org.jetbrains.jps.builders.java.JavaSourceRootDescriptor; import org.jetbrains.jps.incremental.CompileContext; -import org.jetbrains.jps.incremental.fs.RootDescriptor; import java.io.File; import java.io.FileFilter; @@ -43,7 +43,7 @@ public interface BuildRootIndex { Collection findAllParentDescriptors(@NotNull File file, @Nullable CompileContext context); @Nullable - RootDescriptor getModuleAndRoot(@Nullable CompileContext context, File file); + JavaSourceRootDescriptor getModuleAndRoot(@Nullable CompileContext context, File file); @NotNull FileFilter getRootFilter(@NotNull BuildRootDescriptor descriptor); diff --git a/jps/jps-builders/src/org/jetbrains/jps/builders/impl/BuildRootIndexImpl.java b/jps/jps-builders/src/org/jetbrains/jps/builders/impl/BuildRootIndexImpl.java index a6db7f3e56e0..b907db6ca11e 100644 --- a/jps/jps-builders/src/org/jetbrains/jps/builders/impl/BuildRootIndexImpl.java +++ b/jps/jps-builders/src/org/jetbrains/jps/builders/impl/BuildRootIndexImpl.java @@ -9,11 +9,11 @@ import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import org.jetbrains.jps.builders.*; import org.jetbrains.jps.builders.java.JavaModuleBuildTargetType; +import org.jetbrains.jps.builders.java.JavaSourceRootDescriptor; import org.jetbrains.jps.incremental.BuilderRegistry; import org.jetbrains.jps.incremental.CompileContext; import org.jetbrains.jps.indices.IgnoredFileIndex; import org.jetbrains.jps.indices.ModuleExcludeIndex; -import org.jetbrains.jps.incremental.fs.RootDescriptor; import org.jetbrains.jps.model.JpsModel; import org.jetbrains.jps.service.JpsServiceManager; @@ -213,7 +213,7 @@ public class BuildRootIndexImpl implements BuildRootIndex { public Collection clearTempRoots(@NotNull CompileContext context) { try { final Map map = ROOT_DESCRIPTOR_MAP.get(context); - return map != null? map.values() : Collections.emptyList(); + return map != null? map.values() : Collections.emptyList(); } finally { TEMP_TARGET_ROOTS_MAP.set(context, null); @@ -223,7 +223,7 @@ public class BuildRootIndexImpl implements BuildRootIndex { @Override @Nullable - public RootDescriptor getModuleAndRoot(@Nullable CompileContext context, File file) { + public JavaSourceRootDescriptor getModuleAndRoot(@Nullable CompileContext context, File file) { return findParentDescriptor(file, JavaModuleBuildTargetType.ALL_TYPES, context); } diff --git a/jps/jps-builders/src/org/jetbrains/jps/builders/java/JavaBuilderUtil.java b/jps/jps-builders/src/org/jetbrains/jps/builders/java/JavaBuilderUtil.java index 9e854b388ba1..4f5f2ec25170 100644 --- a/jps/jps-builders/src/org/jetbrains/jps/builders/java/JavaBuilderUtil.java +++ b/jps/jps-builders/src/org/jetbrains/jps/builders/java/JavaBuilderUtil.java @@ -14,7 +14,6 @@ import org.jetbrains.jps.incremental.CompileContext; import org.jetbrains.jps.incremental.FSOperations; import org.jetbrains.jps.incremental.ModuleBuildTarget; import org.jetbrains.jps.incremental.Utils; -import org.jetbrains.jps.incremental.fs.RootDescriptor; import org.jetbrains.jps.incremental.messages.ProgressMessage; import org.jetbrains.jps.model.module.JpsModule; @@ -164,7 +163,7 @@ public class JavaBuilderUtil { final List> result = new ArrayList>(); for (File file : affected) { if (!moduleBasedFilter.accept(file)) { - final RootDescriptor moduleAndRoot = context.getProjectDescriptor().getBuildRootIndex().getModuleAndRoot(context, file); + final JavaSourceRootDescriptor moduleAndRoot = context.getProjectDescriptor().getBuildRootIndex().getModuleAndRoot(context, file); result.add(Pair.create(file, moduleAndRoot != null ? moduleAndRoot.target.getModule() : null)); } } @@ -176,7 +175,7 @@ public class JavaBuilderUtil { final Set chunkModules = chunk.getModules(); if (!chunkModules.isEmpty()) { for (File file : affected) { - final RootDescriptor moduleAndRoot = context.getProjectDescriptor().getBuildRootIndex().getModuleAndRoot(context, file); + final JavaSourceRootDescriptor moduleAndRoot = context.getProjectDescriptor().getBuildRootIndex().getModuleAndRoot(context, file); if (moduleAndRoot != null && chunkModules.contains(moduleAndRoot.target.getModule())) { return true; } @@ -250,7 +249,7 @@ public class JavaBuilderUtil { @Override public boolean accept(File file) { - final RootDescriptor rd = myContext.getProjectDescriptor().getBuildRootIndex().getModuleAndRoot(myContext, file); + final JavaSourceRootDescriptor rd = myContext.getProjectDescriptor().getBuildRootIndex().getModuleAndRoot(myContext, file); if (rd == null) { return true; } diff --git a/jps/jps-builders/src/org/jetbrains/jps/incremental/fs/RootDescriptor.java b/jps/jps-builders/src/org/jetbrains/jps/builders/java/JavaSourceRootDescriptor.java similarity index 86% rename from jps/jps-builders/src/org/jetbrains/jps/incremental/fs/RootDescriptor.java rename to jps/jps-builders/src/org/jetbrains/jps/builders/java/JavaSourceRootDescriptor.java index 1b150b0ccbb2..3abe143bd1cf 100644 --- a/jps/jps-builders/src/org/jetbrains/jps/incremental/fs/RootDescriptor.java +++ b/jps/jps-builders/src/org/jetbrains/jps/builders/java/JavaSourceRootDescriptor.java @@ -1,4 +1,4 @@ -package org.jetbrains.jps.incremental.fs; +package org.jetbrains.jps.builders.java; import com.intellij.openapi.util.io.FileUtil; import org.jetbrains.annotations.NotNull; @@ -15,7 +15,7 @@ import java.io.FileFilter; * @author Eugene Zhuravlev * Date: 1/3/12 */ -public final class RootDescriptor extends BuildRootDescriptor { +public final class JavaSourceRootDescriptor extends BuildRootDescriptor { @NotNull public final File root; @NotNull @@ -23,7 +23,7 @@ public final class RootDescriptor extends BuildRootDescriptor { public final boolean isGeneratedSources; public final boolean isTemp; - public RootDescriptor(@NotNull File root, @NotNull ModuleBuildTarget target, boolean isGenerated, boolean isTemp) { + public JavaSourceRootDescriptor(@NotNull File root, @NotNull ModuleBuildTarget target, boolean isGenerated, boolean isTemp) { this.root = root; this.target = target; this.isGeneratedSources = isGenerated; diff --git a/jps/jps-builders/src/org/jetbrains/jps/incremental/CompilerEncodingConfiguration.java b/jps/jps-builders/src/org/jetbrains/jps/incremental/CompilerEncodingConfiguration.java index 3213284cf44c..df28a3585498 100644 --- a/jps/jps-builders/src/org/jetbrains/jps/incremental/CompilerEncodingConfiguration.java +++ b/jps/jps-builders/src/org/jetbrains/jps/incremental/CompilerEncodingConfiguration.java @@ -8,7 +8,7 @@ import org.jetbrains.annotations.Nullable; import org.jetbrains.jps.JpsPathUtil; import org.jetbrains.jps.ModuleChunk; import org.jetbrains.jps.builders.BuildRootIndex; -import org.jetbrains.jps.incremental.fs.RootDescriptor; +import org.jetbrains.jps.builders.java.JavaSourceRootDescriptor; import org.jetbrains.jps.model.JpsEncodingConfigurationService; import org.jetbrains.jps.model.JpsEncodingProjectConfiguration; import org.jetbrains.jps.model.JpsModel; @@ -49,7 +49,7 @@ public class CompilerEncodingConfiguration { File file = JpsPathUtil.urlToFile(fileUrl); if (charset == null || (!file.isDirectory() && !shouldHonorEncodingForCompilation(builders, file))) continue; - final RootDescriptor rootDescriptor = myRootsIndex.getModuleAndRoot(null, file); + final JavaSourceRootDescriptor rootDescriptor = myRootsIndex.getModuleAndRoot(null, file); if (rootDescriptor == null) continue; final JpsModule module = rootDescriptor.target.getModule(); diff --git a/jps/jps-builders/src/org/jetbrains/jps/incremental/FSOperations.java b/jps/jps-builders/src/org/jetbrains/jps/incremental/FSOperations.java index 149e7dde7374..71c8d09673ce 100644 --- a/jps/jps-builders/src/org/jetbrains/jps/incremental/FSOperations.java +++ b/jps/jps-builders/src/org/jetbrains/jps/incremental/FSOperations.java @@ -10,9 +10,9 @@ import org.jetbrains.jps.ModuleChunk; import org.jetbrains.jps.builders.BuildTarget; import org.jetbrains.jps.builders.FileProcessor; import org.jetbrains.jps.builders.impl.BuildTargetChunk; +import org.jetbrains.jps.builders.java.JavaSourceRootDescriptor; import org.jetbrains.jps.cmdline.ProjectDescriptor; import org.jetbrains.jps.incremental.fs.BuildFSState; -import org.jetbrains.jps.incremental.fs.RootDescriptor; import org.jetbrains.jps.incremental.storage.Timestamps; import org.jetbrains.jps.indices.ModuleExcludeIndex; import org.jetbrains.jps.model.java.JpsJavaClasspathKind; @@ -30,7 +30,7 @@ import java.util.Set; */ public class FSOperations { public static void markDirty(CompileContext context, final File file) throws IOException { - final RootDescriptor rd = context.getProjectDescriptor().getBuildRootIndex().getModuleAndRoot(context, file); + final JavaSourceRootDescriptor rd = context.getProjectDescriptor().getBuildRootIndex().getModuleAndRoot(context, file); if (rd != null) { final ProjectDescriptor pd = context.getProjectDescriptor(); pd.fsState.markDirty(context, file, rd, pd.timestamps.getStorage()); @@ -38,7 +38,7 @@ public class FSOperations { } public static void markDirtyIfNotDeleted(CompileContext context, final File file) throws IOException { - final RootDescriptor rd = context.getProjectDescriptor().getBuildRootIndex().getModuleAndRoot(context, file); + final JavaSourceRootDescriptor rd = context.getProjectDescriptor().getBuildRootIndex().getModuleAndRoot(context, file); if (rd != null) { final ProjectDescriptor pd = context.getProjectDescriptor(); pd.fsState.markDirtyIfNotDeleted(context, file, rd, pd.timestamps.getStorage()); @@ -46,7 +46,7 @@ public class FSOperations { } public static void markDeleted(CompileContext context, File file) throws IOException { - final RootDescriptor rd = context.getProjectDescriptor().getBuildRootIndex().getModuleAndRoot(context, file); + final JavaSourceRootDescriptor rd = context.getProjectDescriptor().getBuildRootIndex().getModuleAndRoot(context, file); if (rd != null) { final ProjectDescriptor pd = context.getProjectDescriptor(); pd.fsState.registerDeleted(rd.target, file, pd.timestamps.getStorage()); @@ -132,7 +132,7 @@ public class FSOperations { @Nullable THashSet currentFiles) throws IOException { final ModuleExcludeIndex rootsIndex = context.getProjectDescriptor().getModuleExcludeIndex(); final Set excludes = new HashSet(rootsIndex.getModuleExcludes(target.getModule())); - for (RootDescriptor rd : context.getProjectDescriptor().getBuildRootIndex().getTargetRoots(target, context)) { + for (JavaSourceRootDescriptor rd : context.getProjectDescriptor().getBuildRootIndex().getTargetRoots(target, context)) { if (!rd.root.exists()) { continue; } @@ -141,7 +141,7 @@ public class FSOperations { } } - private static void traverseRecursively(CompileContext context, final RootDescriptor rd, final File file, Set excludes, @NotNull final Timestamps tsStorage, final boolean forceDirty, @Nullable Set currentFiles) throws IOException { + private static void traverseRecursively(CompileContext context, final JavaSourceRootDescriptor rd, final File file, Set excludes, @NotNull final Timestamps tsStorage, final boolean forceDirty, @Nullable Set currentFiles) throws IOException { final File[] children = file.listFiles(); if (children != null) { // is directory if (children.length > 0 && !JpsPathUtil.isUnder(excludes, file)) { diff --git a/jps/jps-builders/src/org/jetbrains/jps/incremental/IncProjectBuilder.java b/jps/jps-builders/src/org/jetbrains/jps/incremental/IncProjectBuilder.java index ee3fc69633de..d2c396150a10 100644 --- a/jps/jps-builders/src/org/jetbrains/jps/incremental/IncProjectBuilder.java +++ b/jps/jps-builders/src/org/jetbrains/jps/incremental/IncProjectBuilder.java @@ -24,12 +24,12 @@ import org.jetbrains.jps.builders.*; import org.jetbrains.jps.builders.impl.BuildTargetChunk; import org.jetbrains.jps.builders.java.JavaBuilderUtil; import org.jetbrains.jps.builders.java.JavaModuleBuildTargetType; +import org.jetbrains.jps.builders.java.JavaSourceRootDescriptor; import org.jetbrains.jps.builders.java.dependencyView.Callbacks; import org.jetbrains.jps.builders.storage.SourceToOutputMapping; import org.jetbrains.jps.cmdline.BuildRunner; import org.jetbrains.jps.cmdline.ProjectDescriptor; import org.jetbrains.jps.incremental.fs.BuildFSState; -import org.jetbrains.jps.incremental.fs.RootDescriptor; import org.jetbrains.jps.incremental.java.ExternalJavacDescriptor; import org.jetbrains.jps.incremental.java.JavaBuilder; import org.jetbrains.jps.incremental.java.JavaBuilderLogger; @@ -598,9 +598,7 @@ public class IncProjectBuilder { rootFiles.add(rd.getRootFile()); context.getProjectDescriptor().fsState.clearRecompile(rd); } - myAsyncTasks.add( - FileUtil.asyncDelete(rootFiles) - ); + myAsyncTasks.add(FileUtil.asyncDelete(rootFiles)); } try { @@ -760,9 +758,9 @@ public class IncProjectBuilder { nextPassRequired = false; myProjectDescriptor.fsState.beforeNextRoundStart(context, chunk); - DirtyFilesHolder dirtyFilesHolder = new DirtyFilesHolder() { + DirtyFilesHolder dirtyFilesHolder = new DirtyFilesHolder() { @Override - public void processDirtyFiles(@NotNull FileProcessor processor) throws IOException { + public void processDirtyFiles(@NotNull FileProcessor processor) throws IOException { FSOperations.processFilesToRecompile(context, chunk, processor); } }; @@ -834,16 +832,16 @@ public class IncProjectBuilder { } private static void syncOutputFiles(final CompileContext context, - DirtyFilesHolder dirtyFilesHolder) throws ProjectBuildException { + DirtyFilesHolder dirtyFilesHolder) throws ProjectBuildException { final BuildDataManager dataManager = context.getProjectDescriptor().dataManager; try { final Collection allOutputs = new LinkedList(); - dirtyFilesHolder.processDirtyFiles(new FileProcessor() { + dirtyFilesHolder.processDirtyFiles(new FileProcessor() { private final Map storageMap = new HashMap(); @Override - public boolean apply(ModuleBuildTarget target, File file, RootDescriptor sourceRoot) throws IOException { + public boolean apply(ModuleBuildTarget target, File file, JavaSourceRootDescriptor sourceRoot) throws IOException { SourceToOutputMapping srcToOut = storageMap.get(target); if (srcToOut == null) { srcToOut = dataManager.getSourceToOutputMap(target); @@ -943,7 +941,7 @@ public class IncProjectBuilder { fsState.markInitialScanPerformed(target); } final Timestamps timestamps = pd.timestamps.getStorage(); - for (RootDescriptor rd : pd.getBuildRootIndex().getTargetRoots(target, context)) { + for (JavaSourceRootDescriptor rd : pd.getBuildRootIndex().getTargetRoots(target, context)) { marked |= fsState.markAllUpToDate(context, rd, timestamps); } } diff --git a/jps/jps-builders/src/org/jetbrains/jps/incremental/ModuleBuildTarget.java b/jps/jps-builders/src/org/jetbrains/jps/incremental/ModuleBuildTarget.java index c87aa2b5e8ee..6458ee525cbc 100644 --- a/jps/jps-builders/src/org/jetbrains/jps/incremental/ModuleBuildTarget.java +++ b/jps/jps-builders/src/org/jetbrains/jps/incremental/ModuleBuildTarget.java @@ -6,10 +6,10 @@ import org.jetbrains.annotations.NotNull; import org.jetbrains.jps.JpsPathUtil; import org.jetbrains.jps.builders.BuildRootIndex; import org.jetbrains.jps.builders.BuildTarget; +import org.jetbrains.jps.builders.java.JavaSourceRootDescriptor; import org.jetbrains.jps.indices.IgnoredFileIndex; import org.jetbrains.jps.indices.ModuleExcludeIndex; import org.jetbrains.jps.builders.java.JavaModuleBuildTargetType; -import org.jetbrains.jps.incremental.fs.RootDescriptor; import org.jetbrains.jps.model.JpsModel; import org.jetbrains.jps.model.java.JavaSourceRootType; import org.jetbrains.jps.model.java.JpsJavaDependenciesEnumerator; @@ -26,7 +26,7 @@ import java.util.List; /** * @author nik */ -public class ModuleBuildTarget extends BuildTarget { +public class ModuleBuildTarget extends BuildTarget { private final JpsModule myModule; private final String myModuleName; private final JavaModuleBuildTargetType myTargetType; @@ -77,21 +77,21 @@ public class ModuleBuildTarget extends BuildTarget { @NotNull @Override - public List computeRootDescriptors(JpsModel model, ModuleExcludeIndex index, IgnoredFileIndex ignoredFileIndex) { - List roots = new ArrayList(); + public List computeRootDescriptors(JpsModel model, ModuleExcludeIndex index, IgnoredFileIndex ignoredFileIndex) { + List roots = new ArrayList(); for (JpsModuleSourceRoot sourceRoot : myModule.getSourceRoots()) { final File root = JpsPathUtil.urlToFile(sourceRoot.getUrl()); final boolean testRoot = JavaSourceRootType.TEST_SOURCE.equals(sourceRoot.getRootType()); if (testRoot == isTests()) { - roots.add(new RootDescriptor(root, this, false, false)); + roots.add(new JavaSourceRootDescriptor(root, this, false, false)); } } return roots; } @Override - public RootDescriptor findRootDescriptor(String rootId, BuildRootIndex rootIndex) { - List descriptors = rootIndex.getRootDescriptors(new File(rootId), Collections.singletonList(myTargetType), null); + public JavaSourceRootDescriptor findRootDescriptor(String rootId, BuildRootIndex rootIndex) { + List descriptors = rootIndex.getRootDescriptors(new File(rootId), Collections.singletonList(myTargetType), null); return ContainerUtil.getFirstItem(descriptors); } diff --git a/jps/jps-builders/src/org/jetbrains/jps/incremental/ModuleLevelBuilder.java b/jps/jps-builders/src/org/jetbrains/jps/incremental/ModuleLevelBuilder.java index 5eefe58c52d4..550a38235aa6 100644 --- a/jps/jps-builders/src/org/jetbrains/jps/incremental/ModuleLevelBuilder.java +++ b/jps/jps-builders/src/org/jetbrains/jps/incremental/ModuleLevelBuilder.java @@ -2,7 +2,7 @@ package org.jetbrains.jps.incremental; import org.jetbrains.jps.ModuleChunk; import org.jetbrains.jps.builders.DirtyFilesHolder; -import org.jetbrains.jps.incremental.fs.RootDescriptor; +import org.jetbrains.jps.builders.java.JavaSourceRootDescriptor; import java.io.File; @@ -25,7 +25,7 @@ public abstract class ModuleLevelBuilder extends Builder { public abstract ExitCode build(CompileContext context, ModuleChunk chunk, - DirtyFilesHolder dirtyFilesHolder) throws ProjectBuildException; + DirtyFilesHolder dirtyFilesHolder) throws ProjectBuildException; public boolean shouldHonorFileEncodingForCompilation(File file) { return false; diff --git a/jps/jps-builders/src/org/jetbrains/jps/incremental/fs/BuildFSState.java b/jps/jps-builders/src/org/jetbrains/jps/incremental/fs/BuildFSState.java index 0244743ed3b2..cf7ee4b5a610 100644 --- a/jps/jps-builders/src/org/jetbrains/jps/incremental/fs/BuildFSState.java +++ b/jps/jps-builders/src/org/jetbrains/jps/incremental/fs/BuildFSState.java @@ -10,9 +10,9 @@ import org.jetbrains.jps.builders.BuildRootDescriptor; import org.jetbrains.jps.builders.BuildRootIndex; import org.jetbrains.jps.builders.BuildTarget; import org.jetbrains.jps.builders.FileProcessor; +import org.jetbrains.jps.builders.java.JavaSourceRootDescriptor; import org.jetbrains.jps.incremental.CompileContext; import org.jetbrains.jps.incremental.CompileScope; -import org.jetbrains.jps.incremental.ModuleBuildTarget; import org.jetbrains.jps.incremental.Utils; import org.jetbrains.jps.incremental.artifacts.instructions.ArtifactRootDescriptor; import org.jetbrains.jps.incremental.storage.Timestamps; @@ -30,7 +30,7 @@ import java.util.Set; */ public class BuildFSState extends FSState { private static final Logger LOG = Logger.getInstance("#org.jetbrains.jps.incremental.fs.BuildFSState"); - private static final Key> CONTEXT_TARGETS_KEY = Key.create("_fssfate_context_modules_"); + private static final Key>> CONTEXT_TARGETS_KEY = Key.create("_fssfate_context_targets_"); private static final Key CURRENT_ROUND_DELTA_KEY = Key.create("_current_round_delta_"); private static final Key LAST_ROUND_DELTA_KEY = Key.create("_last_round_delta_"); @@ -69,12 +69,12 @@ public class BuildFSState extends FSState { if (context == null) { return false; } - Set targets = CONTEXT_TARGETS_KEY.get(context, Collections.emptySet()); + Set> targets = CONTEXT_TARGETS_KEY.get(context, Collections.>emptySet()); return targets.contains(rd.getTarget()); } @Override - public boolean markDirtyIfNotDeleted(@Nullable CompileContext context, File file, final RootDescriptor rd, @Nullable Timestamps tsStorage) throws IOException { + public boolean markDirtyIfNotDeleted(@Nullable CompileContext context, File file, final BuildRootDescriptor rd, @Nullable Timestamps tsStorage) throws IOException { final boolean marked = super.markDirtyIfNotDeleted(context, file, rd, tsStorage); if (marked) { final FilesDelta roundDelta = getRoundDelta(CURRENT_ROUND_DELTA_KEY, context); @@ -112,7 +112,7 @@ public class BuildFSState extends FSState { setRoundDelta(CURRENT_ROUND_DELTA_KEY, context, new FilesDelta()); } - public > boolean processFilesToRecompile(CompileContext context, final T target, final FileProcessor processor) throws IOException { + public > boolean processFilesToRecompile(CompileContext context, final T target, final FileProcessor processor) throws IOException { final Map> data = getSourcesToRecompile(context, target); BuildRootIndex rootIndex = context.getProjectDescriptor().getBuildRootIndex(); final CompileScope scope = context.getScope(); @@ -137,7 +137,7 @@ public class BuildFSState extends FSState { /** * @return true if marked something, false otherwise */ - public boolean markAllUpToDate(CompileContext context, final RootDescriptor rd, final Timestamps stamps) throws IOException { + public boolean markAllUpToDate(CompileContext context, final JavaSourceRootDescriptor rd, final Timestamps stamps) throws IOException { boolean marked = false; final FilesDelta delta = getDelta(rd.target); final Set files = delta.clearRecompile(rd); @@ -192,7 +192,7 @@ public class BuildFSState extends FSState { return marked; } - private static void setContextTargets(@Nullable CompileContext context, @Nullable Set targets) { + private static void setContextTargets(@Nullable CompileContext context, @Nullable Set> targets) { if (context != null) { CONTEXT_TARGETS_KEY.set(context, targets); } diff --git a/jps/jps-builders/src/org/jetbrains/jps/incremental/fs/FSState.java b/jps/jps-builders/src/org/jetbrains/jps/incremental/fs/FSState.java index 04b6d9e7ffa7..099bde222228 100644 --- a/jps/jps-builders/src/org/jetbrains/jps/incremental/fs/FSState.java +++ b/jps/jps-builders/src/org/jetbrains/jps/incremental/fs/FSState.java @@ -89,11 +89,11 @@ public class FSState { public boolean markDirtyIfNotDeleted(@Nullable CompileContext context, final File file, - final RootDescriptor rd, + final BuildRootDescriptor rd, final @Nullable Timestamps tsStorage) throws IOException { - final boolean marked = getDelta(rd.target).markRecompileIfNotDeleted(rd, file); + final boolean marked = getDelta(rd.getTarget()).markRecompileIfNotDeleted(rd, file); if (marked && tsStorage != null) { - tsStorage.removeStamp(file, rd.target); + tsStorage.removeStamp(file, rd.getTarget()); } return marked; } diff --git a/jps/jps-builders/src/org/jetbrains/jps/incremental/fs/FilesDelta.java b/jps/jps-builders/src/org/jetbrains/jps/incremental/fs/FilesDelta.java index 7917adbc8aae..b242d03c65c8 100644 --- a/jps/jps-builders/src/org/jetbrains/jps/incremental/fs/FilesDelta.java +++ b/jps/jps-builders/src/org/jetbrains/jps/incremental/fs/FilesDelta.java @@ -109,7 +109,7 @@ final class FilesDelta { return added; } - public boolean markRecompileIfNotDeleted(RootDescriptor root, File file) { + public boolean markRecompileIfNotDeleted(BuildRootDescriptor root, File file) { final boolean isMarkedDeleted; synchronized (myDeletedPaths) { isMarkedDeleted = !myDeletedPaths.isEmpty() && myDeletedPaths.contains(FileUtil.toCanonicalPath(file.getPath())); diff --git a/jps/jps-builders/src/org/jetbrains/jps/incremental/java/JavaBuilder.java b/jps/jps-builders/src/org/jetbrains/jps/incremental/java/JavaBuilder.java index f61920af149e..a9c87ffb6413 100644 --- a/jps/jps-builders/src/org/jetbrains/jps/incremental/java/JavaBuilder.java +++ b/jps/jps-builders/src/org/jetbrains/jps/incremental/java/JavaBuilder.java @@ -35,11 +35,11 @@ import org.jetbrains.jps.builders.BuildRootIndex; import org.jetbrains.jps.builders.DirtyFilesHolder; import org.jetbrains.jps.builders.FileProcessor; import org.jetbrains.jps.builders.java.JavaBuilderUtil; +import org.jetbrains.jps.builders.java.JavaSourceRootDescriptor; import org.jetbrains.jps.builders.java.dependencyView.Callbacks; import org.jetbrains.jps.builders.java.dependencyView.Mappings; import org.jetbrains.jps.cmdline.ProjectDescriptor; import org.jetbrains.jps.incremental.*; -import org.jetbrains.jps.incremental.fs.RootDescriptor; import org.jetbrains.jps.incremental.messages.BuildMessage; import org.jetbrains.jps.incremental.messages.CompilerMessage; import org.jetbrains.jps.incremental.messages.ProgressMessage; @@ -124,7 +124,7 @@ public class JavaBuilder extends ModuleLevelBuilder { if (srcFile != null && content != null) { final String outputPath = FileUtil.toSystemIndependentName(out.getFile().getPath()); final String sourcePath = FileUtil.toSystemIndependentName(srcFile.getPath()); - final RootDescriptor rootDescriptor = context.getProjectDescriptor().getBuildRootIndex().getModuleAndRoot(context, srcFile); + final JavaSourceRootDescriptor rootDescriptor = context.getProjectDescriptor().getBuildRootIndex().getModuleAndRoot(context, srcFile); final BuildDataManager dataManager = context.getProjectDescriptor().dataManager; boolean isTemp = false; if (rootDescriptor != null) { @@ -172,13 +172,13 @@ public class JavaBuilder extends ModuleLevelBuilder { public ExitCode build(final CompileContext context, final ModuleChunk chunk, - DirtyFilesHolder dirtyFilesHolder) throws ProjectBuildException { + DirtyFilesHolder dirtyFilesHolder) throws ProjectBuildException { try { final Set filesToCompile = new THashSet(FileUtil.FILE_HASHING_STRATEGY); final Set formsToCompile = new THashSet(FileUtil.FILE_HASHING_STRATEGY); - dirtyFilesHolder.processDirtyFiles(new FileProcessor() { - public boolean apply(ModuleBuildTarget target, File file, RootDescriptor sourceRoot) throws IOException { + dirtyFilesHolder.processDirtyFiles(new FileProcessor() { + public boolean apply(ModuleBuildTarget target, File file, JavaSourceRootDescriptor sourceRoot) throws IOException { if (JAVA_SOURCES_FILTER.accept(file)) { filesToCompile.add(file); } @@ -195,11 +195,11 @@ public class JavaBuilder extends ModuleLevelBuilder { if (!context.isProjectRebuild()) { for (Iterator formsIterator = formsToCompile.iterator(); formsIterator.hasNext(); ) { final File form = formsIterator.next(); - final RootDescriptor descriptor = context.getProjectDescriptor().getBuildRootIndex().getModuleAndRoot(context, form); + final JavaSourceRootDescriptor descriptor = context.getProjectDescriptor().getBuildRootIndex().getModuleAndRoot(context, form); if (descriptor == null) { continue; } - for (RootDescriptor rd : context.getProjectDescriptor().getBuildRootIndex().getTargetRoots(descriptor.target, context)) { + for (JavaSourceRootDescriptor rd : context.getProjectDescriptor().getBuildRootIndex().getTargetRoots(descriptor.target, context)) { final File boundSource = getBoundSource(rd.root, form); if (boundSource == null) { continue; @@ -330,7 +330,7 @@ public class JavaBuilder extends ModuleLevelBuilder { final Set tempRootsSourcePath = new HashSet(); final BuildRootIndex index = pd.getBuildRootIndex(); for (ModuleBuildTarget target : chunk.getTargets()) { - for (RootDescriptor rd : index.getTempTargetRoots(target, context)) { + for (JavaSourceRootDescriptor rd : index.getTempTargetRoots(target, context)) { tempRootsSourcePath.add(rd.root); } } @@ -893,7 +893,7 @@ public class JavaBuilder extends ModuleLevelBuilder { continue; } final Set roots = new LinkedHashSet(); - for (RootDescriptor descriptor : context.getProjectDescriptor().getBuildRootIndex().getTargetRoots(target, context)) { + for (JavaSourceRootDescriptor descriptor : context.getProjectDescriptor().getBuildRootIndex().getTargetRoots(target, context)) { roots.add(descriptor.root); } map.put(outputDir, roots); diff --git a/jps/jps-builders/src/org/jetbrains/jps/incremental/resources/ResourcesBuilder.java b/jps/jps-builders/src/org/jetbrains/jps/incremental/resources/ResourcesBuilder.java index 2f6ecf5847d1..ce5c1446adeb 100644 --- a/jps/jps-builders/src/org/jetbrains/jps/incremental/resources/ResourcesBuilder.java +++ b/jps/jps-builders/src/org/jetbrains/jps/incremental/resources/ResourcesBuilder.java @@ -8,9 +8,9 @@ import org.jetbrains.jps.JpsPathUtil; import org.jetbrains.jps.ModuleChunk; import org.jetbrains.jps.builders.DirtyFilesHolder; import org.jetbrains.jps.builders.FileProcessor; +import org.jetbrains.jps.builders.java.JavaSourceRootDescriptor; import org.jetbrains.jps.builders.storage.SourceToOutputMapping; import org.jetbrains.jps.incremental.*; -import org.jetbrains.jps.incremental.fs.RootDescriptor; import org.jetbrains.jps.incremental.messages.BuildMessage; import org.jetbrains.jps.incremental.messages.CompilerMessage; import org.jetbrains.jps.incremental.messages.ProgressMessage; @@ -49,7 +49,7 @@ public class ResourcesBuilder extends ModuleLevelBuilder { public ExitCode build(final CompileContext context, final ModuleChunk chunk, - DirtyFilesHolder dirtyFilesHolder) throws ProjectBuildException { + DirtyFilesHolder dirtyFilesHolder) throws ProjectBuildException { final ResourcePatterns patterns = ResourcePatterns.KEY.get(context); assert patterns != null; try { @@ -66,8 +66,8 @@ public class ResourcesBuilder extends ModuleLevelBuilder { } }; - FSOperations.processFilesToRecompile(context, chunk, moduleFilter, new FileProcessor() { - public boolean apply(final ModuleBuildTarget target, final File file, final RootDescriptor sourceRoot) throws IOException { + FSOperations.processFilesToRecompile(context, chunk, moduleFilter, new FileProcessor() { + public boolean apply(final ModuleBuildTarget target, final File file, final JavaSourceRootDescriptor sourceRoot) throws IOException { if (patterns.isResourceFile(file, sourceRoot.root)) { try { context.processMessage(new ProgressMessage("Copying " + file.getPath())); @@ -99,7 +99,7 @@ public class ResourcesBuilder extends ModuleLevelBuilder { private static void copyResource(CompileContext context, JpsModule module, File file, - RootDescriptor sourceRoot, + JavaSourceRootDescriptor sourceRoot, final SourceToOutputMapping outputToSourceMapping, final boolean tests) throws IOException { final String outputRootUrl = JpsJavaExtensionService.getInstance().getOutputUrl(module, tests); if (outputRootUrl == null) { diff --git a/plugins/android/jps-plugin/src/org/jetbrains/jps/android/AndroidAdditionalRootProviderService.java b/plugins/android/jps-plugin/src/org/jetbrains/jps/android/AndroidAdditionalRootProviderService.java index 96a73f7b6c0d..b8632920b4ad 100644 --- a/plugins/android/jps-plugin/src/org/jetbrains/jps/android/AndroidAdditionalRootProviderService.java +++ b/plugins/android/jps-plugin/src/org/jetbrains/jps/android/AndroidAdditionalRootProviderService.java @@ -4,8 +4,8 @@ import org.jetbrains.annotations.NotNull; import org.jetbrains.jps.builders.AdditionalRootsProviderService; import org.jetbrains.jps.builders.BuildTarget; import org.jetbrains.jps.builders.java.JavaModuleBuildTargetType; +import org.jetbrains.jps.builders.java.JavaSourceRootDescriptor; import org.jetbrains.jps.incremental.ModuleBuildTarget; -import org.jetbrains.jps.incremental.fs.RootDescriptor; import java.io.File; import java.util.ArrayList; @@ -15,17 +15,17 @@ import java.util.List; /** * @author Eugene.Kudelevsky */ -public class AndroidAdditionalRootProviderService extends AdditionalRootsProviderService { +public class AndroidAdditionalRootProviderService extends AdditionalRootsProviderService { public AndroidAdditionalRootProviderService() { super(Collections.singletonList(JavaModuleBuildTargetType.PRODUCTION)); } @NotNull @Override - public List getAdditionalRoots(@NotNull BuildTarget target, File dataStorageRoot) { + public List getAdditionalRoots(@NotNull BuildTarget target, File dataStorageRoot) { ModuleBuildTarget buildTarget = (ModuleBuildTarget)target; final File generatedSourcesRoot = AndroidJpsUtil.getGeneratedSourcesStorage(buildTarget.getModule(), dataStorageRoot); - final List result = new ArrayList(); + final List result = new ArrayList(); addRoot(result, buildTarget, new File(generatedSourcesRoot, AndroidJpsUtil.AAPT_GENERATED_SOURCE_ROOT_NAME)); addRoot(result, buildTarget, new File(generatedSourcesRoot, AndroidJpsUtil.AIDL_GENERATED_SOURCE_ROOT_NAME)); @@ -35,7 +35,7 @@ public class AndroidAdditionalRootProviderService extends AdditionalRootsProvide return result; } - private static void addRoot(List result, ModuleBuildTarget buildTarget, final File file) { - result.add(new RootDescriptor(file, buildTarget, true, false)); + private static void addRoot(List result, ModuleBuildTarget buildTarget, final File file) { + result.add(new JavaSourceRootDescriptor(file, buildTarget, true, false)); } } diff --git a/plugins/android/jps-plugin/src/org/jetbrains/jps/android/AndroidLibraryPackagingBuilder.java b/plugins/android/jps-plugin/src/org/jetbrains/jps/android/AndroidLibraryPackagingBuilder.java index d27f6f8e213a..013a36f27553 100644 --- a/plugins/android/jps-plugin/src/org/jetbrains/jps/android/AndroidLibraryPackagingBuilder.java +++ b/plugins/android/jps-plugin/src/org/jetbrains/jps/android/AndroidLibraryPackagingBuilder.java @@ -8,8 +8,8 @@ import org.jetbrains.jps.ModuleChunk; import org.jetbrains.jps.ProjectPaths; import org.jetbrains.jps.android.model.JpsAndroidModuleExtension; import org.jetbrains.jps.builders.DirtyFilesHolder; +import org.jetbrains.jps.builders.java.JavaSourceRootDescriptor; import org.jetbrains.jps.incremental.*; -import org.jetbrains.jps.incremental.fs.RootDescriptor; import org.jetbrains.jps.incremental.messages.ProgressMessage; import org.jetbrains.jps.model.module.JpsModule; @@ -28,7 +28,7 @@ public class AndroidLibraryPackagingBuilder extends ModuleLevelBuilder { } @Override - public ExitCode build(CompileContext context, ModuleChunk chunk, DirtyFilesHolder dirtyFilesHolder) throws ProjectBuildException { + public ExitCode build(CompileContext context, ModuleChunk chunk, DirtyFilesHolder dirtyFilesHolder) throws ProjectBuildException { if (chunk.containsTests() || !AndroidJpsUtil.containsAndroidFacet(chunk) || AndroidJpsUtil.isLightBuild(context)) { return ExitCode.NOTHING_DONE; } diff --git a/plugins/android/jps-plugin/src/org/jetbrains/jps/android/AndroidSourceGeneratingBuilder.java b/plugins/android/jps-plugin/src/org/jetbrains/jps/android/AndroidSourceGeneratingBuilder.java index d5b7dd222055..fe40f735c8b4 100644 --- a/plugins/android/jps-plugin/src/org/jetbrains/jps/android/AndroidSourceGeneratingBuilder.java +++ b/plugins/android/jps-plugin/src/org/jetbrains/jps/android/AndroidSourceGeneratingBuilder.java @@ -23,9 +23,9 @@ import org.jetbrains.jps.ModuleChunk; import org.jetbrains.jps.android.model.JpsAndroidModuleExtension; import org.jetbrains.jps.builders.DirtyFilesHolder; import org.jetbrains.jps.builders.FileProcessor; +import org.jetbrains.jps.builders.java.JavaSourceRootDescriptor; import org.jetbrains.jps.builders.storage.SourceToOutputMapping; import org.jetbrains.jps.incremental.*; -import org.jetbrains.jps.incremental.fs.RootDescriptor; import org.jetbrains.jps.incremental.java.FormsParsing; import org.jetbrains.jps.incremental.messages.BuildMessage; import org.jetbrains.jps.incremental.messages.CompilerMessage; @@ -75,7 +75,7 @@ public class AndroidSourceGeneratingBuilder extends ModuleLevelBuilder { @Override public ModuleLevelBuilder.ExitCode build(CompileContext context, ModuleChunk chunk, - DirtyFilesHolder dirtyFilesHolder) throws ProjectBuildException { + DirtyFilesHolder dirtyFilesHolder) throws ProjectBuildException { if (chunk.containsTests() || !AndroidJpsUtil.containsAndroidFacet(chunk)) { return ExitCode.NOTHING_DONE; } @@ -90,7 +90,7 @@ public class AndroidSourceGeneratingBuilder extends ModuleLevelBuilder { private static ModuleLevelBuilder.ExitCode doBuild(CompileContext context, ModuleChunk chunk, - DirtyFilesHolder dirtyFilesHolder) throws IOException { + DirtyFilesHolder dirtyFilesHolder) throws IOException { final Map moduleDataMap = computeModuleDatas(chunk.getModules(), context); if (moduleDataMap == null || moduleDataMap.size() == 0) { return ExitCode.ABORT; @@ -110,9 +110,9 @@ public class AndroidSourceGeneratingBuilder extends ModuleLevelBuilder { final Map idlFilesToCompile = new HashMap(); final Map rsFilesToCompile = new HashMap(); - dirtyFilesHolder.processDirtyFiles(new FileProcessor() { + dirtyFilesHolder.processDirtyFiles(new FileProcessor() { @Override - public boolean apply(ModuleBuildTarget target, File file, RootDescriptor sourceRoot) throws IOException { + public boolean apply(ModuleBuildTarget target, File file, JavaSourceRootDescriptor sourceRoot) throws IOException { final JpsAndroidModuleExtension extension = AndroidJpsUtil.getExtension(target.getModule()); if (extension == null) { @@ -905,7 +905,7 @@ public class AndroidSourceGeneratingBuilder extends ModuleLevelBuilder { @Nullable private static String getDependencyFolder(@NotNull CompileContext context, @NotNull File sourceFile, @NotNull File genFolder) { - final RootDescriptor descriptor = context.getProjectDescriptor().getBuildRootIndex().getModuleAndRoot(context, sourceFile); + final JavaSourceRootDescriptor descriptor = context.getProjectDescriptor().getBuildRootIndex().getModuleAndRoot(context, sourceFile); if (descriptor == null) { return null; } @@ -975,7 +975,7 @@ public class AndroidSourceGeneratingBuilder extends ModuleLevelBuilder { @Nullable private static String computePackageForFile(@NotNull CompileContext context, @NotNull File file) throws IOException { - final RootDescriptor descriptor = context.getProjectDescriptor().getBuildRootIndex().getModuleAndRoot(context, file); + final JavaSourceRootDescriptor descriptor = context.getProjectDescriptor().getBuildRootIndex().getModuleAndRoot(context, file); if (descriptor == null) { return null; } diff --git a/plugins/groovy/jps-plugin/src/org/jetbrains/jps/incremental/groovy/GroovyBuilder.java b/plugins/groovy/jps-plugin/src/org/jetbrains/jps/incremental/groovy/GroovyBuilder.java index 9d66ca712ead..734e392d337d 100644 --- a/plugins/groovy/jps-plugin/src/org/jetbrains/jps/incremental/groovy/GroovyBuilder.java +++ b/plugins/groovy/jps-plugin/src/org/jetbrains/jps/incremental/groovy/GroovyBuilder.java @@ -14,12 +14,12 @@ import org.jetbrains.jps.builders.BuildRootIndex; import org.jetbrains.jps.builders.DirtyFilesHolder; import org.jetbrains.jps.builders.FileProcessor; import org.jetbrains.jps.builders.java.JavaBuilderUtil; +import org.jetbrains.jps.builders.java.JavaSourceRootDescriptor; import org.jetbrains.jps.builders.java.dependencyView.Callbacks; import org.jetbrains.jps.builders.java.dependencyView.Mappings; import org.jetbrains.jps.builders.storage.SourceToOutputMapping; import org.jetbrains.jps.cmdline.ClasspathBootstrap; import org.jetbrains.jps.incremental.*; -import org.jetbrains.jps.incremental.fs.RootDescriptor; import org.jetbrains.jps.incremental.java.ClassPostProcessor; import org.jetbrains.jps.incremental.java.JavaBuilder; import org.jetbrains.jps.incremental.messages.BuildMessage; @@ -67,7 +67,7 @@ public class GroovyBuilder extends ModuleLevelBuilder { public ModuleLevelBuilder.ExitCode build(final CompileContext context, ModuleChunk chunk, - DirtyFilesHolder dirtyFilesHolder) throws ProjectBuildException { + DirtyFilesHolder dirtyFilesHolder) throws ProjectBuildException { try { final List toCompile = collectChangedFiles(context, dirtyFilesHolder); if (toCompile.isEmpty()) { @@ -136,7 +136,7 @@ public class GroovyBuilder extends ModuleLevelBuilder { final BuildRootIndex rootsIndex = context.getProjectDescriptor().getBuildRootIndex(); for (ModuleBuildTarget target : generationOutputs.keySet()) { File root = new File(generationOutputs.get(target)); - rootsIndex.associateTempRoot(context, target, new RootDescriptor(root, target, true, true)); + rootsIndex.associateTempRoot(context, target, new JavaSourceRootDescriptor(root, target, true, true)); } } @@ -206,7 +206,7 @@ public class GroovyBuilder extends ModuleLevelBuilder { GroovycOSProcessHandler.OutputItem item, Map generationOutputs, String compilerOutput) throws IOException { if (chunk.getModules().size() > 1) { final BuildRootIndex rootsIndex = context.getProjectDescriptor().getBuildRootIndex(); - RootDescriptor descriptor = rootsIndex.getModuleAndRoot(context, new File(item.sourcePath)); + JavaSourceRootDescriptor descriptor = rootsIndex.getModuleAndRoot(context, new File(item.sourcePath)); if (descriptor != null) { ModuleBuildTarget srcTarget = descriptor.target; if (!srcTarget.equals(chunk.representativeTarget())) { @@ -238,12 +238,12 @@ public class GroovyBuilder extends ModuleLevelBuilder { } private static List collectChangedFiles(CompileContext context, - DirtyFilesHolder dirtyFilesHolder) throws IOException { + DirtyFilesHolder dirtyFilesHolder) throws IOException { final ResourcePatterns patterns = ResourcePatterns.KEY.get(context); assert patterns != null; final List toCompile = new ArrayList(); - dirtyFilesHolder.processDirtyFiles(new FileProcessor() { - public boolean apply(ModuleBuildTarget target, File file, RootDescriptor sourceRoot) throws IOException { + dirtyFilesHolder.processDirtyFiles(new FileProcessor() { + public boolean apply(ModuleBuildTarget target, File file, JavaSourceRootDescriptor sourceRoot) throws IOException { final String path = file.getPath(); if (isGroovyFile(path) && !patterns.isResourceFile(file, sourceRoot.root)) { //todo file type check toCompile.add(file); @@ -269,7 +269,7 @@ public class GroovyBuilder extends ModuleLevelBuilder { for (GroovycOSProcessHandler.OutputItem item : successfullyCompiled) { final String sourcePath = FileUtil.toSystemIndependentName(item.sourcePath); final String outputPath = FileUtil.toSystemIndependentName(item.outputPath); - final RootDescriptor moduleAndRoot = context.getProjectDescriptor().getBuildRootIndex().getModuleAndRoot(context, new File(sourcePath)); + final JavaSourceRootDescriptor moduleAndRoot = context.getProjectDescriptor().getBuildRootIndex().getModuleAndRoot(context, new File(sourcePath)); if (moduleAndRoot != null) { final ModuleBuildTarget target = moduleAndRoot.target; context.getProjectDescriptor().dataManager.getSourceToOutputMap(target).appendOutput(sourcePath, outputPath);