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.