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 c8e992f89181..4fd157e29c5d 100644 --- a/jps/jps-builders/src/org/jetbrains/jps/builders/BuildTarget.java +++ b/jps/jps-builders/src/org/jetbrains/jps/builders/BuildTarget.java @@ -46,7 +46,7 @@ public abstract class BuildTarget { public abstract Collection> computeDependencies(BuildTargetRegistry targetRegistry, TargetOutputIndex outputIndex); - public void writeConfiguration(PrintWriter out, BuildDataPaths dataPaths, BuildRootIndex buildRootIndex) { + public void writeConfiguration(CompileContext context, PrintWriter out) { } @NotNull diff --git a/jps/jps-builders/src/org/jetbrains/jps/incremental/BuildOperations.java b/jps/jps-builders/src/org/jetbrains/jps/incremental/BuildOperations.java index 6f2015e88bc4..6a95e49e3144 100644 --- a/jps/jps-builders/src/org/jetbrains/jps/incremental/BuildOperations.java +++ b/jps/jps-builders/src/org/jetbrains/jps/incremental/BuildOperations.java @@ -51,13 +51,13 @@ public class BuildOperations { if (context.isProjectRebuild()) { FSOperations.markDirtyFiles(context, target, timestamps, true, null, null); pd.fsState.markInitialScanPerformed(target); - configuration.save(); + configuration.save(context); } else if (context.getScope().isRecompilationForced(target) || configuration.isTargetDirty(context) || configuration.outputRootWasDeleted(context)) { initTargetFSState(context, target, true); IncProjectBuilder.clearOutputFiles(context, target); pd.dataManager.cleanTargetStorages(target); - configuration.save(); + configuration.save(context); } else if (!pd.fsState.isInitialScanPerformed(target)) { initTargetFSState(context, target, false); 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 2ae917dcf319..d85da8f9a414 100644 --- a/jps/jps-builders/src/org/jetbrains/jps/incremental/ModuleBuildTarget.java +++ b/jps/jps-builders/src/org/jetbrains/jps/incremental/ModuleBuildTarget.java @@ -23,7 +23,10 @@ import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import org.jetbrains.jps.ProjectPaths; import org.jetbrains.jps.api.GlobalOptions; -import org.jetbrains.jps.builders.*; +import org.jetbrains.jps.builders.BuildTarget; +import org.jetbrains.jps.builders.BuildTargetRegistry; +import org.jetbrains.jps.builders.ModuleBasedTarget; +import org.jetbrains.jps.builders.TargetOutputIndex; import org.jetbrains.jps.builders.java.ExcludedJavaSourceRootProvider; import org.jetbrains.jps.builders.java.JavaModuleBuildTargetType; import org.jetbrains.jps.builders.java.JavaSourceRootDescriptor; @@ -153,7 +156,7 @@ public final class ModuleBuildTarget extends JVMModuleBuildTarget roots = buildRootIndex.getTargetRoots(this, null); + final BuildRootIndex rootIndex = context.getProjectDescriptor().getBuildRootIndex(); + final List roots = rootIndex.getTargetRoots(this, null); for (ResourceRootDescriptor root : roots) { fingerprint += FileUtil.fileHashCode(root.getRootFile()); fingerprint += root.getPackagePrefix().hashCode(); 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 44a91bd1314b..1bacc2c70795 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 @@ -106,9 +106,10 @@ public class ArtifactBuildTarget extends BuildTarget { } @Override - public void writeConfiguration(PrintWriter out, BuildDataPaths dataPaths, BuildRootIndex buildRootIndex) { + public void writeConfiguration(CompileContext context, PrintWriter out) { out.println(StringUtil.notNullize(myArtifact.getOutputPath())); - for (ArtifactRootDescriptor descriptor : buildRootIndex.getTargetRoots(this, null)) { + final BuildRootIndex rootIndex = context.getProjectDescriptor().getBuildRootIndex(); + for (ArtifactRootDescriptor descriptor : rootIndex.getTargetRoots(this, null)) { descriptor.writeConfiguration(out); } } 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 8d926f89c273..5b001facff92 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 @@ -65,7 +65,7 @@ public class BuildTargetConfiguration { } public boolean isTargetDirty(CompileContext context) { - final String currentState = getCurrentState(); + final String currentState = getCurrentState(context); if (!currentState.equals(myConfiguration)) { LOG.debug(myTarget + " configuration was changed:"); LOG.debug("Old:"); @@ -88,13 +88,13 @@ public class BuildTargetConfiguration { return false; } - public void save() { + public void save(CompileContext context) { try { File configFile = getConfigFile(); FileUtil.createParentDirs(configFile); Writer out = new BufferedWriter(new FileWriter(configFile)); try { - String current = getCurrentState(); + String current = getCurrentState(context); out.write(current); myConfiguration = current; } @@ -115,18 +115,18 @@ public class BuildTargetConfiguration { return new File(myTargetsState.getDataPaths().getTargetDataRoot(myTarget), "nonexistent-outputs.dat"); } - private String getCurrentState() { + private String getCurrentState(CompileContext context) { String state = myCurrentState; if (state == null) { - myCurrentState = state = saveToString(); + myCurrentState = state = saveToString(context); } return state; } - private String saveToString() { + private String saveToString(CompileContext context) { StringWriter out = new StringWriter(); //noinspection IOResourceOpenedButNotSafelyClosed - myTarget.writeConfiguration(new PrintWriter(out), myTargetsState.getDataPaths(), myTargetsState.getBuildRootIndex()); + myTarget.writeConfiguration(context, new PrintWriter(out)); return out.toString(); } diff --git a/plugins/maven/jps-plugin/src/org/jetbrains/jps/maven/model/impl/MavenResourcesTarget.java b/plugins/maven/jps-plugin/src/org/jetbrains/jps/maven/model/impl/MavenResourcesTarget.java index fdfc7fe63b38..8cc12d1f9916 100644 --- a/plugins/maven/jps-plugin/src/org/jetbrains/jps/maven/model/impl/MavenResourcesTarget.java +++ b/plugins/maven/jps-plugin/src/org/jetbrains/jps/maven/model/impl/MavenResourcesTarget.java @@ -141,7 +141,8 @@ public class MavenResourcesTarget extends ModuleBasedTarget