The Builder class and Stapler
The first class is GravenBuilder.java
. The class declares that it extends the Builder
class:
public class GravenBuilder extends Builder {
As we can see in the JavaDoc at http://javadoc.jenkins-ci.org/hudson/tasks/Builder.html, extending the Builder
class will register this class with Jenkins as a
custom builder, which is what we are after.
Tip
This extension declaration is how the Extension point page is updated—the program that builds the index will find this reference in the code and automatically create the association for us.
The GravenBuilder
class also contains this simple method:
@DataBoundConstructor public GravenBuilder(String task) { this.task = task; }
Through the use of the @DataBoundConstructor
annotation, this method will register the selection of this task/build type when the user decides to create this new build type. This is done automatically via the Stapler framework, which Jenkins uses to serialize and convert Java objects. You can find out more...