external build: progress messages for post/pre-processing tasks added (IDEA-133560)

This commit is contained in:
nik
2014-12-01 12:40:21 +03:00
parent 4da0c1bc2b
commit 3ba72cb2f9
3 changed files with 19 additions and 3 deletions
@@ -26,7 +26,16 @@ import java.util.List;
*/
public abstract class ArtifactBuildTaskProvider {
public enum ArtifactBuildPhase {
PRE_PROCESSING, FINISHING_BUILD, POST_PROCESSING
PRE_PROCESSING("pre-processing"), FINISHING_BUILD("finishing"), POST_PROCESSING("post-processing");
private final String myPresentableName;
ArtifactBuildPhase(String presentableName) {
myPresentableName = presentableName;
}
public String getPresentableName() {
return myPresentableName;
}
}
@NotNull
@@ -185,8 +185,11 @@ public class IncArtifactBuilder extends TargetBuilder<ArtifactRootDescriptor, Ar
throws ProjectBuildException {
for (ArtifactBuildTaskProvider provider : JpsServiceManager.getInstance().getExtensions(ArtifactBuildTaskProvider.class)) {
List<? extends BuildTask> tasks = provider.createArtifactBuildTasks(artifact, phase);
for (BuildTask task : tasks) {
task.build(context);
if (!tasks.isEmpty()) {
context.processMessage(new ProgressMessage("Running " + phase.getPresentableName() + " tasks for '" + artifact.getName() + "' artifact..."));
for (BuildTask task : tasks) {
task.build(context);
}
}
}
}
@@ -26,6 +26,7 @@ import com.intellij.openapi.util.Key;
import com.intellij.openapi.util.io.FileUtil;
import com.intellij.openapi.util.text.StringUtil;
import com.intellij.rt.ant.execution.AntMain2;
import com.intellij.util.PathUtilRt;
import com.intellij.util.SystemProperties;
import com.intellij.util.execution.ParametersListUtil;
import org.jetbrains.annotations.NotNull;
@@ -39,6 +40,7 @@ import org.jetbrains.jps.builders.artifacts.ArtifactBuildTaskProvider;
import org.jetbrains.jps.incremental.*;
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.model.JpsDummyElement;
import org.jetbrains.jps.model.JpsProject;
import org.jetbrains.jps.model.artifact.JpsArtifact;
@@ -173,6 +175,8 @@ public class AntArtifactBuildTaskProvider extends ArtifactBuildTaskProvider {
programParams.add(targetName);
}
context.processMessage(new ProgressMessage("Running " + (targetName != null ? "'" + targetName + "'" : "default") + " Ant target from '" +
PathUtilRt.getFileName(buildFilePath) + "' file..."));
Iterable<AntBuildTaskListener> listeners = JpsServiceManager.getInstance().getExtensions(AntBuildTaskListener.class);
for (AntBuildTaskListener listener : listeners) {
listener.beforeAntBuildTaskStarted(myExtension, vmParams, programParams);