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