package hudson.plugins.im.build_notify;
import hudson.Extension;
import hudson.model.AbstractBuild;
import hudson.model.BuildListener;
import hudson.model.ResultTrend;
import hudson.plugins.im.IMPublisher;
import hudson.plugins.im.tools.BuildHelper;
import hudson.plugins.im.tools.MessageHelper;
import org.kohsuke.stapler.DataBoundConstructor;
import java.io.IOException;
import static hudson.plugins.im.tools.BuildHelper.*;
/**
* {@link BuildToChatNotifier} that sends out a brief one line summary.
*
* @author Kohsuke Kawaguchi
*/
public class SummaryOnlyBuildToChatNotifier extends BuildToChatNotifier {
@DataBoundConstructor
public SummaryOnlyBuildToChatNotifier() {
}
@Override
public String buildStartMessage(IMPublisher publisher, AbstractBuild<?, ?> build, BuildListener listener) throws IOException, InterruptedException {
return Messages.SummaryOnlyBuildToChatNotifier_StartMessage(build.getDisplayName(),getProjectName(build));
}
@Override
public String buildCompletionMessage(IMPublisher publisher, AbstractBuild<?, ?> build, BuildListener listener) throws IOException, InterruptedException {
final StringBuilder sb;
if (BuildHelper.isFix(build)) {
sb = new StringBuilder(Messages.SummaryOnlyBuildToChatNotifier_BuildIsFixed());
} else {
sb = new StringBuilder();
}
sb.append(Messages.SummaryOnlyBuildToChatNotifier_Summary(
getProjectName(build), build.getDisplayName(),
ResultTrend.getResultTrend(build).getID(),
build.getTimestampString(),
MessageHelper.getBuildURL(build)));
return sb.toString();
}
@Extension
public static class DescriptorImpl extends BuildToChatNotifierDescriptor {
public String getDisplayName() {
return "Just summary";
}
}
}