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.

Reply via email to