cosmetics for make progress messages

checkCanceled() for resource builders
This commit is contained in:
Eugene Zhuravlev
2012-11-22 22:45:17 +01:00
parent 3caa62173c
commit 260cb518d9
7 changed files with 35 additions and 16 deletions
@@ -64,7 +64,7 @@ public class JavaBuilderUtil {
if (!context.isProjectRebuild()) {
if (context.shouldDifferentiate(chunk)) {
context.processMessage(new ProgressMessage("Checking dependencies"));
context.processMessage(new ProgressMessage("Checking dependencies... [" + chunk.getName() + "]"));
final Set<File> allCompiledFiles = getAllCompiledFilesContainer(context);
final Set<File> allAffectedFiles = getAllAffectedFilesContainer(context);
@@ -146,7 +146,7 @@ public class JavaBuilderUtil {
globalMappings.differentiateOnRebuild(delta);
}
context.processMessage(new ProgressMessage("Updating dependency information"));
context.processMessage(new ProgressMessage("Updating dependency information... [" + chunk.getName() + "]"));
globalMappings.integrate(delta);
@@ -194,7 +194,7 @@ public class JavaBuilder extends ModuleLevelBuilder {
final DiagnosticSink diagnosticSink = new DiagnosticSink(context);
final Mappings delta = pd.dataManager.getMappings().createDelta();
final Callbacks.Backend mappingsCallback = delta.getCallback();
final OutputFilesSink outputSink = new OutputFilesSink(context, outputConsumer, mappingsCallback);
final OutputFilesSink outputSink = new OutputFilesSink(context, outputConsumer, mappingsCallback, chunk.getName());
try {
if (hasSourcesToCompile) {
exitCode = ExitCode.OK;
@@ -208,7 +208,7 @@ public class JavaBuilder extends ModuleLevelBuilder {
}
final String chunkName = chunk.getName();
context.processMessage(new ProgressMessage("Compiling java [" + chunkName + "]"));
context.processMessage(new ProgressMessage("Parsing java... [" + chunkName + "]"));
final int filesCount = files.size();
boolean compiledOk = true;
@@ -63,11 +63,11 @@ public class NotNullInstrumentingBuilder extends ModuleLevelBuilder{
final InstrumentationClassFinder finder = createInstrumentationClassFinder(platformCp, classpath, outputConsumer);
try {
try {
context.processMessage(new ProgressMessage("Adding NotNull assertions [" + chunk.getName() + "]"));
context.processMessage(new ProgressMessage("Adding @NotNull assertions... [" + chunk.getName() + "]"));
exitCode = instrumentNotNull(context, outputConsumer, finder);
}
finally {
context.processMessage(new ProgressMessage("Finished adding NotNull assertions [" + chunk.getName() + "]"));
context.processMessage(new ProgressMessage("Finished adding @NotNull assertions [" + chunk.getName() + "]"));
}
}
finally {
@@ -31,12 +31,17 @@ class OutputFilesSink implements OutputFileConsumer {
private final CompileContext myContext;
private final ModuleLevelBuilder.OutputConsumer myOutputConsumer;
private final Callbacks.Backend myMappingsCallback;
private final String myChunkName;
private final Set<File> mySuccessfullyCompiled = new THashSet<File>(FileUtil.FILE_HASHING_STRATEGY);
public OutputFilesSink(CompileContext context, ModuleLevelBuilder.OutputConsumer outputConsumer, Callbacks.Backend callback) {
public OutputFilesSink(CompileContext context,
ModuleLevelBuilder.OutputConsumer outputConsumer,
Callbacks.Backend callback,
String chunkName) {
myContext = context;
myOutputConsumer = outputConsumer;
myMappingsCallback = callback;
myChunkName = "[" +chunkName + "]";
}
public void save(final @NotNull OutputFileObject fileObject) {
@@ -96,6 +101,8 @@ class OutputFilesSink implements OutputFileConsumer {
}
private void writeToDisk(@NotNull OutputFileObject fileObject, boolean isTemp) throws IOException {
myContext.processMessage(new ProgressMessage("Writing classes... " + myChunkName));
final File file = fileObject.getFile();
final BinaryContent content = fileObject.getContent();
if (content == null) {
@@ -107,10 +114,10 @@ class OutputFilesSink implements OutputFileConsumer {
final File source = fileObject.getSourceFile();
if (!isTemp && source != null) {
mySuccessfullyCompiled.add(source);
final String className = fileObject.getClassName();
if (className != null) {
myContext.processMessage(new ProgressMessage("Compiled " + className));
}
//final String className = fileObject.getClassName();
//if (className != null) {
// myContext.processMessage(new ProgressMessage("Compiled " + className));
//}
}
}
@@ -73,14 +73,13 @@ public class ResourcesBuilder extends TargetBuilder<ResourceRootDescriptor, Reso
public boolean apply(ResourcesTarget target, final File file, final ResourceRootDescriptor sourceRoot) throws IOException {
if (patterns.isResourceFile(file, sourceRoot.getRootFile())) {
try {
context.processMessage(new ProgressMessage("Copying " + file.getPath()));
copyResource(context, sourceRoot, file, outputConsumer);
}
catch (IOException e) {
LOG.info(e);
context.processMessage(
new CompilerMessage(
"Resource Compiler", BuildMessage.Kind.ERROR, e.getMessage(), FileUtil.toSystemIndependentName(file.getPath())
"resources", BuildMessage.Kind.ERROR, e.getMessage(), FileUtil.toSystemIndependentName(file.getPath())
)
);
return false;
@@ -94,10 +93,12 @@ public class ResourcesBuilder extends TargetBuilder<ResourceRootDescriptor, Reso
}
}
}
return true;
return !context.getCancelStatus().isCanceled();
}
});
context.checkCanceled();
if (cleanedSources != null) {
// cleanup mapping for the files that were copied before but not copied now
for (Map.Entry<ResourcesTarget, Set<File>> entry : cleanedSources.entrySet()) {
@@ -111,6 +112,7 @@ public class ResourcesBuilder extends TargetBuilder<ResourceRootDescriptor, Reso
}
}
context.processMessage(new ProgressMessage("Finished copying resources [" + target.getModule().getName() + "]"));
}
catch (Exception e) {
throw new ProjectBuildException(e.getMessage(), e);
@@ -142,6 +144,8 @@ public class ResourcesBuilder extends TargetBuilder<ResourceRootDescriptor, Reso
}
targetPath.append('/').append(relativePath);
context.processMessage(new ProgressMessage("Copying resources... [" + rd.getTarget().getModule().getName() + "]"));
final String outputPath = targetPath.toString();
final File targetFile = new File(outputPath);
FileUtil.copyContent(file, targetFile);
@@ -16,6 +16,7 @@ import org.jetbrains.jps.incremental.ProjectBuildException;
import org.jetbrains.jps.incremental.TargetBuilder;
import org.jetbrains.jps.incremental.messages.BuildMessage;
import org.jetbrains.jps.incremental.messages.CompilerMessage;
import org.jetbrains.jps.incremental.messages.ProgressMessage;
import org.jetbrains.jps.maven.model.JpsMavenExtensionService;
import org.jetbrains.jps.maven.model.impl.*;
@@ -85,6 +86,8 @@ public class MavenResourcesBuilder extends TargetBuilder<MavenResourceRootDescri
shouldFilter = false;
}
try {
context.processMessage(new ProgressMessage("Copying resources... [" + target.getModule().getName() + "]"));
if (shouldFilter) {
copyWithFiltering(file, outputFile);
}
@@ -104,7 +107,7 @@ public class MavenResourcesBuilder extends TargetBuilder<MavenResourceRootDescri
}
}
}
return true;
return !context.getCancelStatus().isCanceled();
}
private void copyWithFiltering(File file, File outputFile) throws IOException {
@@ -154,6 +157,8 @@ public class MavenResourcesBuilder extends TargetBuilder<MavenResourceRootDescri
});
context.checkCanceled();
if (cleanedSources != null) {
// cleanup mapping for the files that were copied before but not copied now
for (Map.Entry<MavenResourcesTarget, Set<File>> entry : cleanedSources.entrySet()) {
@@ -166,6 +171,8 @@ public class MavenResourcesBuilder extends TargetBuilder<MavenResourceRootDescri
}
}
}
context.processMessage(new ProgressMessage("Finished copying resources [" + target.getModule().getName() + "]"));
}
@@ -92,7 +92,6 @@ public class FormsInstrumenter extends FormsBuilder {
}
try {
context.processMessage(new ProgressMessage("Instrumenting forms [" + chunk.getName() + "]"));
final ProjectPaths paths = context.getProjectPaths();
final Collection<File> classpath = paths.getCompilationClasspath(chunk, false);
final Collection<File> platformCp = paths.getPlatformCompilationClasspath(chunk, false);
@@ -176,6 +175,8 @@ public class FormsInstrumenter extends FormsBuilder {
class2form.put(classToBind, formFile);
try {
context.processMessage(new ProgressMessage("Instrumenting forms... [" + chunk.getName() + "]"));
final BinaryContent originalContent = compiled.getContent();
final ClassReader classReader =
new ClassReader(originalContent.getBuffer(), originalContent.getOffset(), originalContent.getLength());