From d61a204d41be672a43b21a7ebb2e7703f57fdf6c Mon Sep 17 00:00:00 2001 From: nik Date: Tue, 25 Sep 2012 11:32:27 +0400 Subject: [PATCH] external compiler: generification --- .../jetbrains/jps/api/CmdlineProtoUtil.java | 2 +- .../AdditionalRootsProviderService.java | 6 ++-- .../jps/builders/BuildRootDescriptor.java | 2 +- .../jps/builders/BuildRootIndex.java | 6 ++-- .../jetbrains/jps/builders/BuildTarget.java | 8 ++--- .../jps/builders/BuildTargetIndex.java | 3 +- .../jps/builders/BuildTargetLoader.java | 4 +-- .../jps/builders/BuildTargetType.java | 6 ++-- .../jps/builders/impl/BuildRootIndexImpl.java | 13 ++++--- .../builders/impl/BuildTargetIndexImpl.java | 11 +++--- .../java/JavaModuleBuildTargetType.java | 13 ++++--- .../jetbrains/jps/cmdline/BuildRunner.java | 14 ++++---- .../jps/incremental/BuilderRegistry.java | 12 ++++--- .../jps/incremental/BuilderService.java | 2 +- .../jps/incremental/CompileScope.java | 6 ++-- .../jps/incremental/CompileScopeImpl.java | 16 ++++----- .../jps/incremental/IncProjectBuilder.java | 4 +-- .../jps/incremental/ModuleBuildTarget.java | 3 +- .../artifacts/ArtifactBuildTarget.java | 2 +- .../artifacts/ArtifactBuildTargetType.java | 13 ++++--- .../artifacts/ArtifactBuilderService.java | 2 +- .../jps/incremental/fs/BuildFSState.java | 4 +-- .../jetbrains/jps/incremental/fs/FSState.java | 36 +++++++++---------- .../jps/incremental/fs/FilesDelta.java | 2 +- .../jps/incremental/fs/RootDescriptor.java | 2 +- .../incremental/storage/BuildDataManager.java | 4 +-- .../storage/BuildTargetConfiguration.java | 4 +-- .../storage/BuildTargetTypeState.java | 21 +++++------ .../storage/BuildTargetsState.java | 14 ++++---- .../incremental/storage/TimestampStorage.java | 6 ++-- .../jps/incremental/storage/Timestamps.java | 6 ++-- .../jetbrains/ether/IncrementalTestCase.java | 2 +- .../artifacts/ArtifactBuilderTestCase.java | 4 +-- 33 files changed, 127 insertions(+), 126 deletions(-) diff --git a/jps/jps-builders/src/org/jetbrains/jps/api/CmdlineProtoUtil.java b/jps/jps-builders/src/org/jetbrains/jps/api/CmdlineProtoUtil.java index dc95cadacd09..318634a88604 100644 --- a/jps/jps-builders/src/org/jetbrains/jps/api/CmdlineProtoUtil.java +++ b/jps/jps-builders/src/org/jetbrains/jps/api/CmdlineProtoUtil.java @@ -54,7 +54,7 @@ public class CmdlineProtoUtil { ); } - public static TargetTypeBuildScope createAllTargetsScope(BuildTargetType type) { + public static TargetTypeBuildScope createAllTargetsScope(BuildTargetType type) { return TargetTypeBuildScope.newBuilder() .setTypeId(type.getTypeId()) .setAllTargets(true) diff --git a/jps/jps-builders/src/org/jetbrains/jps/builders/AdditionalRootsProviderService.java b/jps/jps-builders/src/org/jetbrains/jps/builders/AdditionalRootsProviderService.java index fa366cd24d81..04f060466409 100644 --- a/jps/jps-builders/src/org/jetbrains/jps/builders/AdditionalRootsProviderService.java +++ b/jps/jps-builders/src/org/jetbrains/jps/builders/AdditionalRootsProviderService.java @@ -11,13 +11,13 @@ import java.util.List; * @author nik */ public abstract class AdditionalRootsProviderService { - private Collection myTargetTypes; + private Collection>> myTargetTypes; - protected AdditionalRootsProviderService(Collection targetTypes) { + protected AdditionalRootsProviderService(Collection>> targetTypes) { myTargetTypes = targetTypes; } - public Collection getTargetTypes() { + public Collection>> getTargetTypes() { return myTargetTypes; } diff --git a/jps/jps-builders/src/org/jetbrains/jps/builders/BuildRootDescriptor.java b/jps/jps-builders/src/org/jetbrains/jps/builders/BuildRootDescriptor.java index 1036b61ebda0..7043b930a994 100644 --- a/jps/jps-builders/src/org/jetbrains/jps/builders/BuildRootDescriptor.java +++ b/jps/jps-builders/src/org/jetbrains/jps/builders/BuildRootDescriptor.java @@ -10,5 +10,5 @@ public abstract class BuildRootDescriptor { public abstract File getRootFile(); - public abstract BuildTarget getTarget(); + public abstract BuildTarget getTarget(); } 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 5155171cf7f2..0d45b2b71e7c 100644 --- a/jps/jps-builders/src/org/jetbrains/jps/builders/BuildRootIndex.java +++ b/jps/jps-builders/src/org/jetbrains/jps/builders/BuildRootIndex.java @@ -21,7 +21,7 @@ public interface BuildRootIndex { List getTempTargetRoots(@NotNull BuildTarget target, @NotNull CompileContext context); @NotNull - List getRootDescriptors(@NotNull File root, @NotNull Collection types, + List getRootDescriptors(@NotNull File root, @NotNull Collection>> types, @Nullable CompileContext context); void associateTempRoot(@NotNull CompileContext context, @NotNull BuildTarget target, @NotNull R root); @@ -30,12 +30,12 @@ public interface BuildRootIndex { Collection clearTempRoots(@NotNull CompileContext context); @Nullable - R findParentDescriptor(@NotNull File file, @NotNull Collection types, + R findParentDescriptor(@NotNull File file, @NotNull Collection>> types, @Nullable CompileContext context); @NotNull Collection findAllParentDescriptors(@NotNull File file, - @NotNull Collection types, + @NotNull Collection>> types, @Nullable CompileContext context); @Nullable diff --git a/jps/jps-builders/src/org/jetbrains/jps/builders/BuildTarget.java b/jps/jps-builders/src/org/jetbrains/jps/builders/BuildTarget.java index 0a08d88d16ab..7f83261a0012 100644 --- a/jps/jps-builders/src/org/jetbrains/jps/builders/BuildTarget.java +++ b/jps/jps-builders/src/org/jetbrains/jps/builders/BuildTarget.java @@ -13,19 +13,19 @@ import java.util.List; * @author nik */ public abstract class BuildTarget { - private final BuildTargetType myTargetType; + private final BuildTargetType myTargetType; - protected BuildTarget(BuildTargetType targetType) { + protected BuildTarget(BuildTargetType targetType) { myTargetType = targetType; } public abstract String getId(); - public final BuildTargetType getTargetType() { + public final BuildTargetType getTargetType() { return myTargetType; } - public abstract Collection computeDependencies(); + public abstract Collection> computeDependencies(); public void writeConfiguration(PrintWriter out, BuildRootIndex buildRootIndex) { } diff --git a/jps/jps-builders/src/org/jetbrains/jps/builders/BuildTargetIndex.java b/jps/jps-builders/src/org/jetbrains/jps/builders/BuildTargetIndex.java index cf804acabdcd..c79538982c65 100644 --- a/jps/jps-builders/src/org/jetbrains/jps/builders/BuildTargetIndex.java +++ b/jps/jps-builders/src/org/jetbrains/jps/builders/BuildTargetIndex.java @@ -9,5 +9,6 @@ import java.util.Collection; */ public interface BuildTargetIndex { @NotNull - Collection> getAllTargets(@NotNull BuildTargetType type); + > + Collection getAllTargets(@NotNull BuildTargetType type); } diff --git a/jps/jps-builders/src/org/jetbrains/jps/builders/BuildTargetLoader.java b/jps/jps-builders/src/org/jetbrains/jps/builders/BuildTargetLoader.java index 67dfb1e9477d..aabdb030f501 100644 --- a/jps/jps-builders/src/org/jetbrains/jps/builders/BuildTargetLoader.java +++ b/jps/jps-builders/src/org/jetbrains/jps/builders/BuildTargetLoader.java @@ -6,7 +6,7 @@ import org.jetbrains.annotations.Nullable; /** * @author nik */ -public abstract class BuildTargetLoader { +public abstract class BuildTargetLoader> { @Nullable - public abstract BuildTarget createTarget(@NotNull String targetId); + public abstract T createTarget(@NotNull String targetId); } diff --git a/jps/jps-builders/src/org/jetbrains/jps/builders/BuildTargetType.java b/jps/jps-builders/src/org/jetbrains/jps/builders/BuildTargetType.java index 8460896b823f..b3154f85dc6a 100644 --- a/jps/jps-builders/src/org/jetbrains/jps/builders/BuildTargetType.java +++ b/jps/jps-builders/src/org/jetbrains/jps/builders/BuildTargetType.java @@ -8,7 +8,7 @@ import java.util.Collection; /** * @author nik */ -public abstract class BuildTargetType { +public abstract class BuildTargetType> { private final String myTypeId; protected BuildTargetType(String typeId) { @@ -20,8 +20,8 @@ public abstract class BuildTargetType { } @NotNull - public abstract Collection> computeAllTargets(@NotNull JpsModel model); + public abstract Collection computeAllTargets(@NotNull JpsModel model); @NotNull - public abstract BuildTargetLoader createLoader(@NotNull JpsModel model); + public abstract BuildTargetLoader createLoader(@NotNull JpsModel model); } 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 5eef208ff308..2455fef6f6cf 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 @@ -31,15 +31,14 @@ public class BuildRootIndexImpl implements BuildRootIndex { myRootsByTarget = new HashMap, List>(); myRootToDescriptor = new THashMap>(FileUtil.FILE_HASHING_STRATEGY); final Iterable rootsProviders = JpsServiceManager.getInstance().getExtensions(AdditionalRootsProviderService.class); - for (BuildTargetType targetType : BuilderRegistry.getInstance().getTargetTypes()) { - Collection> targets = targetIndex.getAllTargets(targetType); - for (BuildTarget target : targets) { + for (BuildTargetType targetType : BuilderRegistry.getInstance().getTargetTypes()) { + for (BuildTarget target : targetIndex.getAllTargets(targetType)) { addRoots(dataStorageRoot, rootsProviders, targetType, target, model, index); } } } - private void addRoots(File dataStorageRoot, Iterable rootsProviders, BuildTargetType targetType, + private void addRoots(File dataStorageRoot, Iterable rootsProviders, BuildTargetType targetType, BuildTarget target, JpsModel model, ModuleRootsIndex index) { List descriptors = target.computeRootDescriptors(model, index); for (AdditionalRootsProviderService provider : rootsProviders) { @@ -67,7 +66,7 @@ public class BuildRootIndexImpl implements BuildRootIndex { @NotNull @Override public List getRootDescriptors(@NotNull File root, - @NotNull Collection types, + @NotNull Collection>> types, @Nullable CompileContext context) { List descriptors = myRootToDescriptor.get(root); List result = new SmartList(); @@ -153,7 +152,7 @@ public class BuildRootIndexImpl implements BuildRootIndex { @Override @Nullable - public R findParentDescriptor(@NotNull File file, @NotNull Collection types, + public R findParentDescriptor(@NotNull File file, @NotNull Collection>> types, @Nullable CompileContext context) { File current = file; while (current != null) { @@ -169,7 +168,7 @@ public class BuildRootIndexImpl implements BuildRootIndex { @Override @NotNull public Collection findAllParentDescriptors(@NotNull File file, - @NotNull Collection types, + @NotNull Collection>> types, @Nullable CompileContext context) { File current = file; Collection result = null; diff --git a/jps/jps-builders/src/org/jetbrains/jps/builders/impl/BuildTargetIndexImpl.java b/jps/jps-builders/src/org/jetbrains/jps/builders/impl/BuildTargetIndexImpl.java index f7d1d8435ec3..5863cc84e46a 100644 --- a/jps/jps-builders/src/org/jetbrains/jps/builders/impl/BuildTargetIndexImpl.java +++ b/jps/jps-builders/src/org/jetbrains/jps/builders/impl/BuildTargetIndexImpl.java @@ -15,18 +15,19 @@ import java.util.Map; * @author nik */ public class BuildTargetIndexImpl implements BuildTargetIndex { - private Map>> myTargets; + private Map, Collection>> myTargets; public BuildTargetIndexImpl(@NotNull JpsModel model) { - myTargets = new HashMap>>(); - for (BuildTargetType type : BuilderRegistry.getInstance().getTargetTypes()) { + myTargets = new HashMap, Collection>>(); + for (BuildTargetType type : BuilderRegistry.getInstance().getTargetTypes()) { myTargets.put(type, type.computeAllTargets(model)); } } @NotNull @Override - public Collection> getAllTargets(@NotNull BuildTargetType type) { - return myTargets.get(type); + public > Collection getAllTargets(@NotNull BuildTargetType type) { + //noinspection unchecked + return (Collection)myTargets.get(type); } } diff --git a/jps/jps-builders/src/org/jetbrains/jps/builders/java/JavaModuleBuildTargetType.java b/jps/jps-builders/src/org/jetbrains/jps/builders/java/JavaModuleBuildTargetType.java index 981f8df2438b..303275abff73 100644 --- a/jps/jps-builders/src/org/jetbrains/jps/builders/java/JavaModuleBuildTargetType.java +++ b/jps/jps-builders/src/org/jetbrains/jps/builders/java/JavaModuleBuildTargetType.java @@ -2,7 +2,6 @@ package org.jetbrains.jps.builders.java; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; -import org.jetbrains.jps.builders.BuildTarget; import org.jetbrains.jps.builders.BuildTargetLoader; import org.jetbrains.jps.builders.BuildTargetType; import org.jetbrains.jps.incremental.ModuleBuildTarget; @@ -14,7 +13,7 @@ import java.util.*; /** * @author nik */ -public class JavaModuleBuildTargetType extends BuildTargetType { +public class JavaModuleBuildTargetType extends BuildTargetType { public static final JavaModuleBuildTargetType PRODUCTION = new JavaModuleBuildTargetType("java-production", false); public static final JavaModuleBuildTargetType TEST = new JavaModuleBuildTargetType("java-test", true); public static final List ALL_TYPES = Arrays.asList(PRODUCTION, TEST); @@ -28,9 +27,9 @@ public class JavaModuleBuildTargetType extends BuildTargetType { @NotNull @Override - public Collection> computeAllTargets(@NotNull JpsModel model) { + public Collection computeAllTargets(@NotNull JpsModel model) { List modules = model.getProject().getModules(); - List> targets = new ArrayList>(modules.size()); + List targets = new ArrayList(modules.size()); for (JpsModule module : modules) { targets.add(new ModuleBuildTarget(module, this)); } @@ -39,7 +38,7 @@ public class JavaModuleBuildTargetType extends BuildTargetType { @NotNull @Override - public BuildTargetLoader createLoader(@NotNull JpsModel model) { + public Loader createLoader(@NotNull JpsModel model) { return new Loader(model); } @@ -51,7 +50,7 @@ public class JavaModuleBuildTargetType extends BuildTargetType { return tests ? TEST : PRODUCTION; } - private class Loader extends BuildTargetLoader { + private class Loader extends BuildTargetLoader { private final Map myModules; public Loader(JpsModel model) { @@ -63,7 +62,7 @@ public class JavaModuleBuildTargetType extends BuildTargetType { @Nullable @Override - public BuildTarget createTarget(@NotNull String targetId) { + public ModuleBuildTarget createTarget(@NotNull String targetId) { JpsModule module = myModules.get(targetId); return module != null ? new ModuleBuildTarget(module, JavaModuleBuildTargetType.this) : null; } diff --git a/jps/jps-builders/src/org/jetbrains/jps/cmdline/BuildRunner.java b/jps/jps-builders/src/org/jetbrains/jps/cmdline/BuildRunner.java index d8e8ec352fd4..36b8d3f08adf 100644 --- a/jps/jps-builders/src/org/jetbrains/jps/cmdline/BuildRunner.java +++ b/jps/jps-builders/src/org/jetbrains/jps/cmdline/BuildRunner.java @@ -135,12 +135,12 @@ public class BuildRunner { private static CompileScope createCompilationScope(BuildType buildType, ProjectDescriptor pd, List scopes, Collection paths) throws Exception { - Set targetTypes = new HashSet(); - Set targets = new HashSet(); - Map> files; + Set> targetTypes = new HashSet>(); + Set> targets = new HashSet>(); + Map, Set> files; for (TargetTypeBuildScope scope : scopes) { - BuildTargetType targetType = BuilderRegistry.getInstance().getTargetType(scope.getTypeId()); + BuildTargetType targetType = BuilderRegistry.getInstance().getTargetType(scope.getTypeId()); if (targetType == null) { LOG.info("Unknown target type: " + scope.getTypeId()); continue; @@ -149,9 +149,9 @@ public class BuildRunner { targetTypes.add(targetType); } else { - BuildTargetLoader loader = targetType.createLoader(pd.jpsModel); + BuildTargetLoader loader = targetType.createLoader(pd.jpsModel); for (String targetId : scope.getTargetIdList()) { - BuildTarget target = loader.createTarget(targetId); + BuildTarget target = loader.createTarget(targetId); if (target != null) { targets.add(target); } @@ -164,7 +164,7 @@ public class BuildRunner { final Timestamps timestamps = pd.timestamps.getStorage(); if (!paths.isEmpty()) { - files = new HashMap>(); + files = new HashMap, Set>(); for (String path : paths) { final File file = new File(path); final RootDescriptor rd = pd.getBuildRootIndex().getModuleAndRoot(null, file); diff --git a/jps/jps-builders/src/org/jetbrains/jps/incremental/BuilderRegistry.java b/jps/jps-builders/src/org/jetbrains/jps/incremental/BuilderRegistry.java index 9d57171784a7..33222309f5f2 100644 --- a/jps/jps-builders/src/org/jetbrains/jps/incremental/BuilderRegistry.java +++ b/jps/jps-builders/src/org/jetbrains/jps/incremental/BuilderRegistry.java @@ -2,6 +2,7 @@ package org.jetbrains.jps.incremental; import com.intellij.openapi.diagnostic.Logger; import com.intellij.util.containers.ContainerUtil; +import org.jetbrains.annotations.Nullable; import org.jetbrains.jps.builders.BuildTargetType; import org.jetbrains.jps.service.JpsServiceManager; @@ -18,7 +19,7 @@ public class BuilderRegistry { } private final Map> myModuleLevelBuilders = new HashMap>(); private final List myProjectLevelBuilders = new ArrayList(); - private final Map myTargetTypes = new LinkedHashMap(); + private final Map> myTargetTypes = new LinkedHashMap>(); public static BuilderRegistry getInstance() { return Holder.ourInstance; @@ -35,9 +36,9 @@ public class BuilderRegistry { for (ModuleLevelBuilder builder : moduleLevelBuilders) { myModuleLevelBuilders.get(builder.getCategory()).add(builder); } - for (BuildTargetType type : service.getTargetTypes()) { + for (BuildTargetType type : service.getTargetTypes()) { String id = type.getTypeId(); - BuildTargetType old = myTargetTypes.put(id, type); + BuildTargetType old = myTargetTypes.put(id, type); if (old != null) { LOG.error("Two build target types (" + type + ", " + old + ") use same id (" + id + ")"); } @@ -45,11 +46,12 @@ public class BuilderRegistry { } } - public BuildTargetType getTargetType(String typeId) { + @Nullable + public BuildTargetType getTargetType(String typeId) { return myTargetTypes.get(typeId); } - public Collection getTargetTypes() { + public Collection> getTargetTypes() { return myTargetTypes.values(); } diff --git a/jps/jps-builders/src/org/jetbrains/jps/incremental/BuilderService.java b/jps/jps-builders/src/org/jetbrains/jps/incremental/BuilderService.java index 7e6e32feb026..cdf7138ec37e 100644 --- a/jps/jps-builders/src/org/jetbrains/jps/incremental/BuilderService.java +++ b/jps/jps-builders/src/org/jetbrains/jps/incremental/BuilderService.java @@ -10,7 +10,7 @@ import java.util.List; * @author nik */ public abstract class BuilderService { - public List getTargetTypes() { + public List> getTargetTypes() { return Collections.emptyList(); } diff --git a/jps/jps-builders/src/org/jetbrains/jps/incremental/CompileScope.java b/jps/jps-builders/src/org/jetbrains/jps/incremental/CompileScope.java index 4130030d1352..cedaaeb811f9 100644 --- a/jps/jps-builders/src/org/jetbrains/jps/incremental/CompileScope.java +++ b/jps/jps-builders/src/org/jetbrains/jps/incremental/CompileScope.java @@ -10,9 +10,9 @@ import java.io.File; * Date: 1/15/12 */ public abstract class CompileScope { - public abstract boolean isAffected(BuildTarget target, @NotNull File file); + public abstract boolean isAffected(BuildTarget target, @NotNull File file); - public abstract boolean isAffected(@NotNull BuildTarget target); + public abstract boolean isAffected(@NotNull BuildTarget target); - public abstract boolean isRecompilationForced(@NotNull BuildTarget target); + public abstract boolean isRecompilationForced(@NotNull BuildTarget target); } diff --git a/jps/jps-builders/src/org/jetbrains/jps/incremental/CompileScopeImpl.java b/jps/jps-builders/src/org/jetbrains/jps/incremental/CompileScopeImpl.java index 9c5d4ffa9716..b18cf1cf63e3 100644 --- a/jps/jps-builders/src/org/jetbrains/jps/incremental/CompileScopeImpl.java +++ b/jps/jps-builders/src/org/jetbrains/jps/incremental/CompileScopeImpl.java @@ -12,12 +12,12 @@ import java.util.*; */ public class CompileScopeImpl extends CompileScope { protected final boolean myForcedCompilation; - private final Collection myTypes; - private final Collection myTargets; - private final Map> myFiles; + private final Collection> myTypes; + private final Collection> myTargets; + private final Map, Set> myFiles; - public CompileScopeImpl(boolean forcedCompilation, Collection types, Collection targets, - Map> files) { + public CompileScopeImpl(boolean forcedCompilation, Collection> types, Collection> targets, + Map, Set> files) { myForcedCompilation = forcedCompilation; myTypes = types; myTargets = targets; @@ -25,17 +25,17 @@ public class CompileScopeImpl extends CompileScope { } @Override - public boolean isAffected(@NotNull BuildTarget target) { + public boolean isAffected(@NotNull BuildTarget target) { return myTypes.contains(target.getTargetType()) || myTargets.contains(target) || myFiles.containsKey(target); } @Override - public boolean isRecompilationForced(@NotNull BuildTarget target) { + public boolean isRecompilationForced(@NotNull BuildTarget target) { return myForcedCompilation && (myTypes.contains(target.getTargetType()) || myTargets.contains(target)); } @Override - public boolean isAffected(BuildTarget target, @NotNull File file) { + public boolean isAffected(BuildTarget target, @NotNull File file) { if (myFiles.isEmpty()) {//optimization return true; } 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 cdbfd5d27f56..292ad4475ae1 100644 --- a/jps/jps-builders/src/org/jetbrains/jps/incremental/IncProjectBuilder.java +++ b/jps/jps-builders/src/org/jetbrains/jps/incremental/IncProjectBuilder.java @@ -304,7 +304,7 @@ public class IncProjectBuilder { myProjectDescriptor.fsState.clearAll(); } - public static void clearOutputFiles(CompileContext context, BuildTarget target) throws IOException { + public static void clearOutputFiles(CompileContext context, BuildTarget target) throws IOException { final SourceToOutputMapping map = context.getProjectDescriptor().dataManager.getSourceToOutputMap(target); for (String srcPath : map.getKeys()) { final Collection outs = map.getState(srcPath); @@ -341,7 +341,7 @@ public class IncProjectBuilder { } ProjectDescriptor projectDescriptor = context.getProjectDescriptor(); - for (BuildTargetType type : JavaModuleBuildTargetType.ALL_TYPES) { + for (BuildTargetType type : JavaModuleBuildTargetType.ALL_TYPES) { for (BuildTarget target : projectDescriptor.getBuildTargetIndex().getAllTargets(type)) { for (BuildRootDescriptor descriptor : projectDescriptor.getBuildRootIndex().getTargetRoots(target, context)) { allSourceRoots.add(descriptor.getRootFile()); 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 e317dc0788ef..a78c7728baae 100644 --- a/jps/jps-builders/src/org/jetbrains/jps/incremental/ModuleBuildTarget.java +++ b/jps/jps-builders/src/org/jetbrains/jps/incremental/ModuleBuildTarget.java @@ -6,7 +6,6 @@ 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.BuildTargetType; import org.jetbrains.jps.builders.java.JavaModuleBuildTargetType; import org.jetbrains.jps.incremental.fs.RootDescriptor; import org.jetbrains.jps.model.JpsModel; @@ -90,7 +89,7 @@ public class ModuleBuildTarget extends BuildTarget { @Override public RootDescriptor findRootDescriptor(String rootId, BuildRootIndex rootIndex) { - List descriptors = rootIndex.getRootDescriptors(new File(rootId), Collections.singletonList(myTargetType), null); + 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/artifacts/ArtifactBuildTarget.java b/jps/jps-builders/src/org/jetbrains/jps/incremental/artifacts/ArtifactBuildTarget.java index a053b564ceef..c74d4f8a5996 100644 --- a/jps/jps-builders/src/org/jetbrains/jps/incremental/artifacts/ArtifactBuildTarget.java +++ b/jps/jps-builders/src/org/jetbrains/jps/incremental/artifacts/ArtifactBuildTarget.java @@ -39,7 +39,7 @@ public class ArtifactBuildTarget extends BuildTarget { } @Override - public Collection computeDependencies() { + public Collection> computeDependencies() { return Collections.emptyList(); } diff --git a/jps/jps-builders/src/org/jetbrains/jps/incremental/artifacts/ArtifactBuildTargetType.java b/jps/jps-builders/src/org/jetbrains/jps/incremental/artifacts/ArtifactBuildTargetType.java index d915c03d9d34..5df9c5531494 100644 --- a/jps/jps-builders/src/org/jetbrains/jps/incremental/artifacts/ArtifactBuildTargetType.java +++ b/jps/jps-builders/src/org/jetbrains/jps/incremental/artifacts/ArtifactBuildTargetType.java @@ -2,7 +2,6 @@ package org.jetbrains.jps.incremental.artifacts; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; -import org.jetbrains.jps.builders.BuildTarget; import org.jetbrains.jps.builders.BuildTargetLoader; import org.jetbrains.jps.builders.BuildTargetType; import org.jetbrains.jps.model.JpsModel; @@ -14,7 +13,7 @@ import java.util.*; /** * @author nik */ -public class ArtifactBuildTargetType extends BuildTargetType { +public class ArtifactBuildTargetType extends BuildTargetType { public static final ArtifactBuildTargetType INSTANCE = new ArtifactBuildTargetType(); public ArtifactBuildTargetType() { @@ -23,9 +22,9 @@ public class ArtifactBuildTargetType extends BuildTargetType { @NotNull @Override - public Collection> computeAllTargets(@NotNull JpsModel model) { + public Collection computeAllTargets(@NotNull JpsModel model) { Collection artifacts = JpsBuilderArtifactService.getInstance().getArtifacts(model, true); - List> targets = new ArrayList>(artifacts.size()); + List targets = new ArrayList(artifacts.size()); for (JpsArtifact artifact : artifacts) { targets.add(new ArtifactBuildTarget(artifact)); } @@ -34,11 +33,11 @@ public class ArtifactBuildTargetType extends BuildTargetType { @NotNull @Override - public BuildTargetLoader createLoader(@NotNull JpsModel model) { + public Loader createLoader(@NotNull JpsModel model) { return new Loader(model); } - private static class Loader extends BuildTargetLoader { + private static class Loader extends BuildTargetLoader { private final Map myArtifacts; public Loader(JpsModel model) { @@ -50,7 +49,7 @@ public class ArtifactBuildTargetType extends BuildTargetType { @Nullable @Override - public BuildTarget createTarget(@NotNull String targetId) { + public ArtifactBuildTarget createTarget(@NotNull String targetId) { JpsArtifact artifact = myArtifacts.get(targetId); return artifact != null ? new ArtifactBuildTarget(artifact) : null; } diff --git a/jps/jps-builders/src/org/jetbrains/jps/incremental/artifacts/ArtifactBuilderService.java b/jps/jps-builders/src/org/jetbrains/jps/incremental/artifacts/ArtifactBuilderService.java index 92c7ce528702..80809063b4f5 100644 --- a/jps/jps-builders/src/org/jetbrains/jps/incremental/artifacts/ArtifactBuilderService.java +++ b/jps/jps-builders/src/org/jetbrains/jps/incremental/artifacts/ArtifactBuilderService.java @@ -13,7 +13,7 @@ import java.util.List; */ public class ArtifactBuilderService extends BuilderService { @Override - public List getTargetTypes() { + public List> getTargetTypes() { return Collections.singletonList(ArtifactBuildTargetType.INSTANCE); } 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 94d48037cc11..f2033f89417b 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 @@ -41,12 +41,12 @@ public class BuildFSState extends FSState { } @Override - public boolean markInitialScanPerformed(BuildTarget target) { + public boolean markInitialScanPerformed(BuildTarget target) { return myAlwaysScanFS || super.markInitialScanPerformed(target); } @Override - public Map> getSourcesToRecompile(@NotNull CompileContext context, BuildTarget target) { + public Map> getSourcesToRecompile(@NotNull CompileContext context, BuildTarget target) { final FilesDelta lastRoundDelta = getRoundDelta(LAST_ROUND_DELTA_KEY, context); if (lastRoundDelta != null) { return lastRoundDelta.getSourcesToRecompile(); 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 3a56f813e0c1..04b6d9e7ffa7 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 @@ -24,20 +24,20 @@ import java.util.*; public class FSState { public static final int VERSION = 3; private static final Logger LOG = Logger.getInstance("#org.jetbrains.jps.incremental.fs.FSState"); - private final Map myDeltas = Collections.synchronizedMap(new HashMap()); - protected final Set myInitialScanPerformed = Collections.synchronizedSet(new HashSet()); + private final Map, FilesDelta> myDeltas = Collections.synchronizedMap(new HashMap, FilesDelta>()); + protected final Set> myInitialScanPerformed = Collections.synchronizedSet(new HashSet>()); public void save(DataOutput out) throws IOException { - MultiMap targetsByType = new MultiMap(); - for (BuildTarget target : myInitialScanPerformed) { + MultiMap, BuildTarget> targetsByType = new MultiMap, BuildTarget>(); + for (BuildTarget target : myInitialScanPerformed) { targetsByType.putValue(target.getTargetType(), target); } out.writeInt(targetsByType.size()); - for (BuildTargetType type : targetsByType.keySet()) { + for (BuildTargetType type : targetsByType.keySet()) { IOUtil.writeString(type.getTypeId(), out); - Collection targets = targetsByType.get(type); + Collection> targets = targetsByType.get(type); out.writeInt(targets.size()); - for (BuildTarget target : targets) { + for (BuildTarget target : targets) { IOUtil.writeString(target.getId(), out); getDelta(target).save(out); } @@ -50,13 +50,13 @@ public class FSState { while (typeCount-- > 0) { final String typeId = IOUtil.readString(in); int targetCount = in.readInt(); - BuildTargetType type = registry.getTargetType(typeId); - BuildTargetLoader loader = type != null ? type.createLoader(model) : null; + BuildTargetType type = registry.getTargetType(typeId); + BuildTargetLoader loader = type != null ? type.createLoader(model) : null; while (targetCount-- > 0) { final String id = IOUtil.readString(in); boolean loaded = false; if (loader != null) { - BuildTarget target = loader.createTarget(id); + BuildTarget target = loader.createTarget(id); if (target != null) { getDelta(target).load(in, target, buildRootIndex); myInitialScanPerformed.add(target); @@ -98,29 +98,29 @@ public class FSState { return marked; } - public void registerDeleted(BuildTarget target, final File file, @Nullable Timestamps tsStorage) throws IOException { + public void registerDeleted(BuildTarget target, final File file, @Nullable Timestamps tsStorage) throws IOException { registerDeleted(target, file); if (tsStorage != null) { tsStorage.removeStamp(file, target); } } - public void registerDeleted(BuildTarget target, File file) { + public void registerDeleted(BuildTarget target, File file) { getDelta(target).addDeleted(file); } - public Map> getSourcesToRecompile(@NotNull CompileContext context, BuildTarget target) { + public Map> getSourcesToRecompile(@NotNull CompileContext context, BuildTarget target) { return getDelta(target).getSourcesToRecompile(); } - public void clearDeletedPaths(BuildTarget target) { + public void clearDeletedPaths(BuildTarget target) { final FilesDelta delta = myDeltas.get(target); if (delta != null) { delta.clearDeletedPaths(); } } - public Collection getAndClearDeletedPaths(BuildTarget target) { + public Collection getAndClearDeletedPaths(BuildTarget target) { final FilesDelta delta = myDeltas.get(target); if (delta != null) { return delta.getAndClearDeletedPaths(); @@ -129,7 +129,7 @@ public class FSState { } @NotNull - protected final FilesDelta getDelta(BuildTarget buildTarget) { + protected final FilesDelta getDelta(BuildTarget buildTarget) { synchronized (myDeltas) { FilesDelta delta = myDeltas.get(buildTarget); if (delta == null) { @@ -140,13 +140,13 @@ public class FSState { } } - public boolean hasWorkToDo(BuildTarget target) { + public boolean hasWorkToDo(BuildTarget target) { if (!myInitialScanPerformed.contains(target)) return true; FilesDelta delta = myDeltas.get(target); return delta != null && delta.hasChanges(); } - public boolean markInitialScanPerformed(BuildTarget target) { + public boolean markInitialScanPerformed(BuildTarget target) { return myInitialScanPerformed.add(target); } } 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 608517b729f7..7917adbc8aae 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 @@ -43,7 +43,7 @@ final class FilesDelta { } } - public void load(DataInput in, @NotNull BuildTarget target, BuildRootIndex buildRootIndex) throws IOException { + public void load(DataInput in, @NotNull BuildTarget target, BuildRootIndex buildRootIndex) throws IOException { myDeletedPaths.clear(); int deletedCount = in.readInt(); while (deletedCount-- > 0) { diff --git a/jps/jps-builders/src/org/jetbrains/jps/incremental/fs/RootDescriptor.java b/jps/jps-builders/src/org/jetbrains/jps/incremental/fs/RootDescriptor.java index a971a23accee..9d9cfd7e3ea5 100644 --- a/jps/jps-builders/src/org/jetbrains/jps/incremental/fs/RootDescriptor.java +++ b/jps/jps-builders/src/org/jetbrains/jps/incremental/fs/RootDescriptor.java @@ -47,7 +47,7 @@ public final class RootDescriptor extends BuildRootDescriptor { } @Override - public BuildTarget getTarget() { + public BuildTarget getTarget() { return 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 4c9b68b461ad..308555bc6155 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 @@ -26,7 +26,7 @@ public class BuildDataManager implements StorageOwner { private static final String MAPPINGS_STORAGE = "mappings"; private final Object mySourceToOutputLock = new Object(); - private final Map mySourceToOutputs = new HashMap(); + private final Map, SourceToOutputMapping> mySourceToOutputs = new HashMap, SourceToOutputMapping>(); private final SourceToFormMapping mySrcToFormMap; private final ArtifactsBuildData myArtifactsBuildData; @@ -50,7 +50,7 @@ public class BuildDataManager implements StorageOwner { return new File(myDataStorageRoot, "output-roots"); } - public SourceToOutputMapping getSourceToOutputMap(final BuildTarget target) throws IOException { + public SourceToOutputMapping getSourceToOutputMap(final BuildTarget target) throws IOException { SourceToOutputMapping mapping; synchronized (mySourceToOutputLock) { mapping = mySourceToOutputs.get(target); diff --git a/jps/jps-builders/src/org/jetbrains/jps/incremental/storage/BuildTargetConfiguration.java b/jps/jps-builders/src/org/jetbrains/jps/incremental/storage/BuildTargetConfiguration.java index 4cd57099f787..4c177a40d28c 100644 --- a/jps/jps-builders/src/org/jetbrains/jps/incremental/storage/BuildTargetConfiguration.java +++ b/jps/jps-builders/src/org/jetbrains/jps/incremental/storage/BuildTargetConfiguration.java @@ -11,11 +11,11 @@ import java.io.*; */ public class BuildTargetConfiguration { private static final Logger LOG = Logger.getInstance(BuildTargetConfiguration.class); - private final BuildTarget myTarget; + private final BuildTarget myTarget; private final BuildTargetsState myTargetsState; private String myConfiguration; - public BuildTargetConfiguration(BuildTarget target, BuildTargetsState targetsState) { + public BuildTargetConfiguration(BuildTarget target, BuildTargetsState targetsState) { myTarget = target; myTargetsState = targetsState; myConfiguration = load(); diff --git a/jps/jps-builders/src/org/jetbrains/jps/incremental/storage/BuildTargetTypeState.java b/jps/jps-builders/src/org/jetbrains/jps/incremental/storage/BuildTargetTypeState.java index 1bc42517b9c7..5657be9c0a91 100644 --- a/jps/jps-builders/src/org/jetbrains/jps/incremental/storage/BuildTargetTypeState.java +++ b/jps/jps-builders/src/org/jetbrains/jps/incremental/storage/BuildTargetTypeState.java @@ -18,17 +18,18 @@ import java.util.concurrent.ConcurrentMap; */ public class BuildTargetTypeState { private static final Logger LOG = Logger.getInstance("#org.jetbrains.jps.incremental.storage.BuildTargetTypeState"); - private final Map myTargetIds; - private final ConcurrentMap myConfigurations = new ConcurrentHashMap(); - private final BuildTargetType myTargetType; + private final Map, Integer> myTargetIds; + private final ConcurrentMap, BuildTargetConfiguration> myConfigurations; + private final BuildTargetType myTargetType; private final BuildTargetsState myTargetsState; private final File myTargetsFile; - public BuildTargetTypeState(BuildTargetType targetType, BuildTargetsState state) { + public BuildTargetTypeState(BuildTargetType targetType, BuildTargetsState state) { myTargetType = targetType; myTargetsState = state; myTargetsFile = new File(state.getTargetTypeDataRoot(targetType), "targets.dat"); - myTargetIds = new HashMap(); + myConfigurations = new ConcurrentHashMap, BuildTargetConfiguration>(); + myTargetIds = new HashMap, Integer>(); load(); } @@ -42,12 +43,12 @@ public class BuildTargetTypeState { try { input.readInt();//reserved for version int size = input.readInt(); - BuildTargetLoader loader = myTargetType.createLoader(myTargetsState.getModel()); + BuildTargetLoader loader = myTargetType.createLoader(myTargetsState.getModel()); while (size-- > 0) { String stringId = IOUtil.readString(input); int intId = input.readInt(); myTargetsState.markUsedId(intId); - BuildTarget target = loader.createTarget(stringId); + BuildTarget target = loader.createTarget(stringId); if (target != null) { myTargetIds.put(target, intId); } @@ -74,7 +75,7 @@ public class BuildTargetTypeState { try { output.writeInt(0); output.writeInt(myTargetIds.size()); - for (Map.Entry entry : myTargetIds.entrySet()) { + for (Map.Entry, Integer> entry : myTargetIds.entrySet()) { IOUtil.writeString(entry.getKey().getId(), output); output.writeInt(entry.getValue()); } @@ -88,14 +89,14 @@ public class BuildTargetTypeState { } } - public synchronized int getTargetId(BuildTarget target) { + public synchronized int getTargetId(BuildTarget target) { if (!myTargetIds.containsKey(target)) { myTargetIds.put(target, myTargetsState.getFreeId()); } return myTargetIds.get(target); } - public BuildTargetConfiguration getConfiguration(BuildTarget target) { + public BuildTargetConfiguration getConfiguration(BuildTarget target) { BuildTargetConfiguration configuration = myConfigurations.get(target); if (configuration == null) { configuration = new BuildTargetConfiguration(target, myTargetsState); diff --git a/jps/jps-builders/src/org/jetbrains/jps/incremental/storage/BuildTargetsState.java b/jps/jps-builders/src/org/jetbrains/jps/incremental/storage/BuildTargetsState.java index f82311a526b2..22a950c81908 100644 --- a/jps/jps-builders/src/org/jetbrains/jps/incremental/storage/BuildTargetsState.java +++ b/jps/jps-builders/src/org/jetbrains/jps/incremental/storage/BuildTargetsState.java @@ -22,7 +22,7 @@ public class BuildTargetsState { private static final Logger LOG = Logger.getInstance("#org.jetbrains.jps.incremental.storage.BuildTargetsState"); private final File myDataStorageRoot; private AtomicInteger myMaxTargetId = new AtomicInteger(0); - private ConcurrentMap myTypeStates = new ConcurrentHashMap(); + private ConcurrentMap, BuildTargetTypeState> myTypeStates = new ConcurrentHashMap, BuildTargetTypeState>(); private JpsModel myModel; private final BuildRootIndexImpl myBuildRootIndex; @@ -43,13 +43,13 @@ public class BuildTargetsState { catch (IOException e) { LOG.debug("Cannot load " + targetTypesFile + ":" + e.getMessage(), e); LOG.debug("Loading all target types to calculate max target id"); - for (BuildTargetType type : BuilderRegistry.getInstance().getTargetTypes()) { + for (BuildTargetType type : BuilderRegistry.getInstance().getTargetTypes()) { getTypeState(type); } } } - public File getTargetTypeDataRoot(BuildTargetType targetType) { + public File getTargetTypeDataRoot(BuildTargetType targetType) { return new File(getTargetsDataRoot(), targetType.getTypeId()); } @@ -81,15 +81,15 @@ public class BuildTargetsState { } } - public int getBuildTargetId(@NotNull BuildTarget target) { + public int getBuildTargetId(@NotNull BuildTarget target) { return getTypeState(target.getTargetType()).getTargetId(target); } - public BuildTargetConfiguration getTargetConfiguration(@NotNull BuildTarget target) { + public BuildTargetConfiguration getTargetConfiguration(@NotNull BuildTarget target) { return getTypeState(target.getTargetType()).getConfiguration(target); } - private BuildTargetTypeState getTypeState(BuildTargetType type) { + private BuildTargetTypeState getTypeState(BuildTargetType type) { BuildTargetTypeState state = myTypeStates.get(type); if (state == null) { state = new BuildTargetTypeState(type, this); @@ -113,7 +113,7 @@ public class BuildTargetsState { return myMaxTargetId.incrementAndGet(); } - public File getTargetDataRoot(BuildTarget target) { + public File getTargetDataRoot(BuildTarget target) { return new File(getTargetTypeDataRoot(target.getTargetType()), PathUtilRt.suggestFileName(target.getId(), true, true)); } diff --git a/jps/jps-builders/src/org/jetbrains/jps/incremental/storage/TimestampStorage.java b/jps/jps-builders/src/org/jetbrains/jps/incremental/storage/TimestampStorage.java index a5bc4061cf98..be8c788cc25c 100644 --- a/jps/jps-builders/src/org/jetbrains/jps/incremental/storage/TimestampStorage.java +++ b/jps/jps-builders/src/org/jetbrains/jps/incremental/storage/TimestampStorage.java @@ -33,7 +33,7 @@ public class TimestampStorage extends AbstractStateStorage target) throws IOException { final TimestampPerTarget[] state = getState(file); if (state != null) { int targetId = myTargetsState.getBuildTargetId(target); @@ -47,7 +47,7 @@ public class TimestampStorage extends AbstractStateStorage buildTarget, long timestamp) throws IOException { int targetId = myTargetsState.getBuildTargetId(buildTarget); update(file, updateTimestamp(getState(file), targetId, timestamp)); } @@ -67,7 +67,7 @@ public class TimestampStorage extends AbstractStateStorage buildTarget) throws IOException { TimestampPerTarget[] state = getState(file); if (state != null) { int targetId = myTargetsState.getBuildTargetId(buildTarget); diff --git a/jps/jps-builders/src/org/jetbrains/jps/incremental/storage/Timestamps.java b/jps/jps-builders/src/org/jetbrains/jps/incremental/storage/Timestamps.java index 4db6796df35f..48f0a82ea347 100644 --- a/jps/jps-builders/src/org/jetbrains/jps/incremental/storage/Timestamps.java +++ b/jps/jps-builders/src/org/jetbrains/jps/incremental/storage/Timestamps.java @@ -12,11 +12,11 @@ import java.io.IOException; public interface Timestamps { void force(); - void saveStamp(File file, BuildTarget buildTarget, long timestamp) throws IOException; + void saveStamp(File file, BuildTarget buildTarget, long timestamp) throws IOException; - void removeStamp(File file, BuildTarget buildTarget) throws IOException; + void removeStamp(File file, BuildTarget buildTarget) throws IOException; void clean() throws IOException; - long getStamp(File file, BuildTarget target) throws IOException; + long getStamp(File file, BuildTarget target) throws IOException; } diff --git a/jps/jps-builders/testSrc/org/jetbrains/ether/IncrementalTestCase.java b/jps/jps-builders/testSrc/org/jetbrains/ether/IncrementalTestCase.java index 23ed20d4bdce..342637fdfcaa 100644 --- a/jps/jps-builders/testSrc/org/jetbrains/ether/IncrementalTestCase.java +++ b/jps/jps-builders/testSrc/org/jetbrains/ether/IncrementalTestCase.java @@ -233,7 +233,7 @@ public abstract class IncrementalTestCase extends JpsBuildTestCase { } private static CompileScope createAllModulesScope(final boolean forcedCompilation) { - return new CompileScopeImpl(forcedCompilation, JavaModuleBuildTargetType.ALL_TYPES, Collections.emptySet(), Collections.>emptyMap()); + return new CompileScopeImpl(forcedCompilation, JavaModuleBuildTargetType.ALL_TYPES, Collections.>emptySet(), Collections., Set>emptyMap()); } private JpsSdk getOrCreateJdk() { diff --git a/jps/jps-builders/testSrc/org/jetbrains/jps/incremental/artifacts/ArtifactBuilderTestCase.java b/jps/jps-builders/testSrc/org/jetbrains/jps/incremental/artifacts/ArtifactBuilderTestCase.java index 7086206c392f..ab87c94f34e5 100644 --- a/jps/jps-builders/testSrc/org/jetbrains/jps/incremental/artifacts/ArtifactBuilderTestCase.java +++ b/jps/jps-builders/testSrc/org/jetbrains/jps/incremental/artifacts/ArtifactBuilderTestCase.java @@ -154,12 +154,12 @@ public abstract class ArtifactBuilderTestCase extends JpsBuildTestCase { ProjectDescriptor descriptor = createProjectDescriptor(new BuildLoggingManager(myArtifactBuilderLogger, new JavaBuilderLoggerImpl())); try { myArtifactBuilderLogger.clear(); - List targets = new ArrayList(); + List> targets = new ArrayList>(); for (JpsArtifact artifact : artifacts) { targets.add(new ArtifactBuildTarget(artifact)); } final CompileScope scope = new CompileScopeImpl(force, JavaModuleBuildTargetType.ALL_TYPES, targets, - Collections.>emptyMap()); + Collections., Set>emptyMap()); result = doBuild(descriptor, scope, !force, false, false); } finally {