I guess I have to partially answer my own question:
* add the Action to the rootBuild
build.addAction(...) --> build.getRootBuild().addAction(...)
On Tuesday, March 25, 2014 4:48:42 PM UTC-4, Kaj Kandler wrote:
>
> I have this simple MavenReporter and Action and try to add the Action to
> the side-panel, but can't figure out how to do that
> -------------------------
> package org.example.sample;
>
> import hudson.Extension;
> import hudson.Launcher;
> import hudson.maven.MavenBuildProxy;
> import hudson.maven.MavenReportInfo;
> import hudson.maven.MavenReporter;
> import hudson.maven.MavenReporterDescriptor;
> import hudson.maven.MojoInfo;
> import hudson.maven.MavenBuild;
> import hudson.maven.MavenModule;
> import hudson.model.BuildListener;
> import hudson.model.AbstractBuild;
> import hudson.tasks.Builder;
>
> import java.io.IOException;
>
> import org.apache.maven.project.MavenProject;
> import org.kohsuke.stapler.DataBoundConstructor;
> import org.kohsuke.stapler.StaplerRequest;
>
> /**
> * Sample {@link Builder}.
> *
> * <p>
> * When the user configures the project and enables this builder, {@link
> DescriptorImpl#newInstance(StaplerRequest)} is
> * invoked and a new {@link HelloWorldMavenReporter} is created. The
> created instance is persisted to the project
> * configuration XML by using XStream, so this allows you to use instance
> fields (like {@link #name}) to remember the
> * configuration.
> *
> * <p>
> * When a build is performed, the {@link #perform(AbstractBuild, Launcher,
> BuildListener)} method will be invoked.
> *
> * @author Kohsuke Kawaguchi
> */
> public class HelloWorldMavenReporter extends MavenReporter {
>
> // Fields in config.jelly must match the parameter names in the
> "DataBoundConstructor"
> @DataBoundConstructor
> public HelloWorldMavenReporter() {
> }
>
> /*
> * (non-JSDoc)
> *
> * @see
> hudson.maven.MavenReporter#preBuild(hudson.maven.MavenBuildProxy,
> org.apache.maven.project.MavenProject,
> * hudson.model.BuildListener)
> */
> @Override
> public boolean preBuild(MavenBuildProxy build, MavenProject pom,
> BuildListener listener) throws InterruptedException, IOException {
> System.err.println("... preBuild(" + pom.getId() + ")");
> return super.preBuild(build, pom, listener);
> }
>
> /*
> * (non-JSDoc)
> *
> * @see
> hudson.maven.MavenReporter#enterModule(hudson.maven.MavenBuildProxy,
> org.apache.maven.project.MavenProject,
> * hudson.model.BuildListener)
> */
> @Override
> public boolean enterModule(MavenBuildProxy build, MavenProject pom,
> BuildListener listener) throws InterruptedException, IOException {
> System.err.println("... enterModule(" + pom.getId() + ")");
> return super.enterModule(build, pom, listener);
> }
>
> /*
> * (non-JSDoc)
> *
> * @see
> hudson.maven.MavenReporter#leaveModule(hudson.maven.MavenBuildProxy,
> org.apache.maven.project.MavenProject,
> * hudson.model.BuildListener)
> */
> @Override
> public boolean leaveModule(MavenBuildProxy build, MavenProject pom,
> BuildListener listener) throws InterruptedException, IOException {
> System.err.println("... leaveModule(" + pom.getId() + ")");
> return super.leaveModule(build, pom, listener);
> }
>
> /*
> * (non-JSDoc)
> *
> * @see
> hudson.maven.MavenReporter#preExecute(hudson.maven.MavenBuildProxy,
> org.apache.maven.project.MavenProject,
> * hudson.maven.MojoInfo, hudson.model.BuildListener)
> */
> @Override
> public boolean preExecute(MavenBuildProxy build, MavenProject pom,
> MojoInfo mojo, BuildListener listener) throws InterruptedException,
> IOException {
> System.err.println("... preExecute(" + pom.getId() + ")");
> return super.preExecute(build, pom, mojo, listener);
> }
>
> /*
> * (non-JSDoc)
> *
> * @see
> hudson.maven.MavenReporter#postExecute(hudson.maven.MavenBuildProxy,
> org.apache.maven.project.MavenProject,
> * hudson.maven.MojoInfo, hudson.model.BuildListener,
> java.lang.Throwable)
> */
> @Override
> public boolean postExecute(MavenBuildProxy build, MavenProject pom,
> MojoInfo mojo, BuildListener listener, Throwable error) throws
> InterruptedException,
> IOException {
> System.err.println("... postExecute(" + pom.getId() + ")");
> return super.postExecute(build, pom, mojo, listener, error);
> }
>
> /*
> * (non-JSDoc)
> *
> * @see
> hudson.maven.MavenReporter#postBuild(hudson.maven.MavenBuildProxy,
> org.apache.maven.project.MavenProject,
> * hudson.model.BuildListener)
> */
> @Override
> public boolean postBuild(MavenBuildProxy build, MavenProject pom,
> BuildListener listener) throws InterruptedException, IOException {
> System.err.println("... postBuild(" + pom.getId() + ")");
> return super.postBuild(build, pom, listener);
> }
>
> /*
> * (non-JSDoc)
> *
> * @see hudson.maven.MavenReporter#end(hudson.maven.MavenBuild,
> hudson.Launcher, hudson.model.BuildListener)
> */
> @Override
> public boolean end(MavenBuild build, Launcher launcher, BuildListener
> listener) throws InterruptedException, IOException {
> listener.getLogger().println("... end(" + build.getId() + ")");
> HelloWorldAction hwAction = new HelloWorldAction();
> build.addAction(hwAction);
> return super.end(build, launcher, listener);
> }
>
> /*
> * (non-JSDoc)
> *
> * @see
> hudson.maven.MavenReporter#reportGenerated(hudson.maven.MavenBuildProxy,
> * org.apache.maven.project.MavenProject,
> hudson.maven.MavenReportInfo, hudson.model.BuildListener)
> */
> @Override
> public boolean reportGenerated(MavenBuildProxy build, MavenProject
> pom, MavenReportInfo report, BuildListener listener) throws
> InterruptedException,
> IOException {
> System.err.println("... reportGenerated(" + pom.getId() + ")");
> return super.reportGenerated(build, pom, report, listener);
> }
>
> // Overridden for better type safety.
> // If your plugin doesn't really define any property on Descriptor,
> // you don't have to do this.
> @Override
> public DescriptorImpl getDescriptor() {
> return (DescriptorImpl) super.getDescriptor();
> }
>
> /**
> * Descriptor for {@link HelloWorldMavenReporter}. Used as a singleton.
> * The class is marked as public so that it can be accessed from views.
> *
> * <p>
> * See
> <tt>src/main/resources/hudson/plugins/hello_world/HelloWorldBuilder/*.jelly</tt>
>
> for the actual HTML fragment
> * for the configuration screen.
> */
> @Extension
> // This indicates to Jenkins that this is an implementation of an
> extension point.
> public static final class DescriptorImpl extends
> MavenReporterDescriptor {
>
> @Override
> public String getDisplayName() {
> return "Hello World";
> }
>
> /*
> * (non-JSDoc)
> *
> * @see
> hudson.maven.MavenReporterDescriptor#newAutoInstance(hudson.maven.MavenModule)
> */
> @Override
> public MavenReporter newAutoInstance(MavenModule module) {
> return new HelloWorldMavenReporter();
> }
> }
> }
> ----------------
>
> package org.example.sample;
>
> import hudson.model.Action;
>
> public class HelloWorldAction implements Action {
>
> public String getIconFileName() {
> return null;
> }
>
> public String getDisplayName() {
> return "Hello World";
> }
>
> public String getUrlName() {
> return null;
> }
>
> }
> -----------------
>
--
You received this message because you are subscribed to the Google Groups
"Jenkins Developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.