Package hudson.plugins.im.build_notify

Source Code of hudson.plugins.im.build_notify.BuildParametersBuildToChatNotifier$DescriptorImpl

package hudson.plugins.im.build_notify;

import java.io.IOException;
import java.util.List;

import org.kohsuke.stapler.DataBoundConstructor;

import hudson.Extension;
import hudson.model.AbstractBuild;
import hudson.model.BuildListener;
import hudson.model.ParameterValue;
import hudson.model.ParametersAction;
import hudson.plugins.im.IMPublisher;

/**
* Extends {@link DefaultBuildToChatNotifier} and also prints
* build parameters used in the build, if any.
*
* @author petehayes
*/
public class BuildParametersBuildToChatNotifier extends SummaryOnlyBuildToChatNotifier {

    @DataBoundConstructor
    public BuildParametersBuildToChatNotifier() {
    }

    @Override
    public String buildCompletionMessage(IMPublisher publisher,
            AbstractBuild<?, ?> build, BuildListener listener)
            throws IOException, InterruptedException {
        String msg = super.buildCompletionMessage(publisher, build, listener);
        return msg + getBuildParameters(build);
    }

    @Override
    public String culpritMessage(IMPublisher publisher,
            AbstractBuild<?, ?> build, BuildListener listener) {
        String msg = super.culpritMessage(publisher, build, listener);
        return msg + getBuildParameters(build);
    }

    @Override
    public String suspectMessage(IMPublisher publisher,
            AbstractBuild<?, ?> build, BuildListener listener,
            boolean firstFailure) {
        String msg = super.suspectMessage(publisher, build, listener, firstFailure);
        return msg + getBuildParameters(build);
    }

    @Override
    public String upstreamCommitterMessage(IMPublisher publisher,
            AbstractBuild<?, ?> build, BuildListener listener,
            AbstractBuild<?, ?> upstreamBuild) {
        String msg = super.upstreamCommitterMessage(publisher, build, listener, upstreamBuild);
        return msg + getBuildParameters(build);
    }

    private CharSequence getBuildParameters(AbstractBuild<?, ?> build) {

        ParametersAction parametersAction = build.getAction(ParametersAction.class);

        if (parametersAction == null) {
            return "";
        }

        StringBuilder buf = new StringBuilder();
        List<ParameterValue> parameters = parametersAction.getParameters();

        buf.append("\nParameters:");
        for (ParameterValue parameter : parameters) {
            buf.append("\n");
            buf.append(parameter.getShortDescription());
        }

        return buf;
    }

    @Extension
    public static class DescriptorImpl extends BuildToChatNotifierDescriptor {

        @Override
        public String getDisplayName() {
            return "Summary and build parameters";
        }
    }
}
TOP

Related Classes of hudson.plugins.im.build_notify.BuildParametersBuildToChatNotifier$DescriptorImpl

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.