Hi,
I have a custom form in my Application and I would like to load values to
its fields.
For this purpose I have a class that extends from ItemListener and have
overriden the onUpdated method to read the updated config file and set
values to the text box fields by creating an Action object,adding that
action object to the project and saving the project. For some reason this
does not work. The code snippet is below!
*Action Class:*
public class MyAction<T extends AbstractItem> implements Action {
final private T item;
private String gitRepo;
private String gitBranch;
private String mavenGoals;
private String mavenPOM;
private String eMailRecipient;
public MyAction(T item, String gitRepo, String gitBranch, String
mavenGoals, String mavenPOM, String eMailRecipient) {
this.item = item;
this.gitRepo = gitRepo;
this.gitBranch = gitBranch;
this.mavenGoals = mavenGoals;
this.mavenPOM = mavenPOM;
this.eMailRecipient = eMailRecipient;
}
public String getGitRepo() {
return gitRepo;
}
public String getGitBranch() {
return gitBranch;
}
public String getMavenGoals() {
return mavenGoals;
}
public String getMavenPOM() {
return mavenPOM;
}
public String geteMailRecipient() {
return eMailRecipient;
}
public MyAction(T item) {
this.item = item;
}
public T getItem() {
return item;
}
*ItemListener Class*
@Extension
public class MyActionListener extends ItemListener{
@Override
public void onUpdated(Item item){
if(item instanceof AbstractItem)
{
for(Action action : Jenkins.getInstance().getActions())
if(action.getClass()==MyAction.class)
{
AbstractProject proj=(AbstractProject) item;
XmlFile projConfig=proj.getConfigFile();
String config=projConfig.toString();
String
gitRepo=config.substring(config.indexOf("<url>")+5,
config.indexOf("</url>"));
String
branch=config.substring(config.indexOf("<name>")+6,config.indexOf("</name>"));
String
mavengoals=config.substring(config.indexOf("<target>")+8,config.indexOf("<target>"));
String
mavenPom=config.substring(config.indexOf("<pom>")+5,config.indexOf("</pom>"));
String
eMailReceipient=config.substring(config.indexOf("<recipientList>")+15,config.indexOf("<recipientList>"));
Action newAction=new MyAction((AbstractItem)
item,gitRepo,branch,mavengoals,mavenPom,eMailReceipient);
proj.addAction(newAction);
try {
proj.save();
} catch (IOException ex) {
Logger.getLogger(MyActionListener.class.getName()).log(Level.SEVERE, null,
ex);
}
}
}
}
}
*Jelly File:*
<f:form method="post" name="config" action="configSubmit">
<f:block>
<f:section title="${%Job Configuration}">
<f:entry title="${%Job name}">
<f:textbox id="name" name="name" default="${it.ItemName}"/>
</f:entry>
</f:section>
<f:section title="${%Source Code Management}">
<f:entry title="${%Git Repo}">
<f:textbox id="repo" name="repo"
default="[email protected]:{Enter your git repo here}"
value="${it.GitRepo}"/>
</f:entry>
<f:entry title="${%Branch}">
<f:textbox id="branch" name="branch" default="master"
value="${it.GitBranch}"/>
</f:entry>
</f:section>
<f:section title="${%Maven Targets}">
<f:entry title="${%Goals}">
<f:textbox id="goals" name="goals" default="-U clean
install" value="${it.MavenGoals}"/>
</f:entry>
<f:entry title="${%POM}">
<f:textbox id="pom" name="pom" default="pom.xml"
value="${it.MavenPOM}"/>
</f:entry>
</f:section>
<f:section title="${%E-Mail Notification}">
<f:entry title="${%Recipient}">
<f:textbox id="emailrecipient" name="emailrecipient"
default="QE DL For Notifying" value="${it.eMailRecipient}"/>
</f:entry>
</f:section>
<f:section title="${%Assembler Postbuild}">
<f:entry title="${%Assembler Target POM.xml{relative path}}">
<f:textbox id="assemblerpom" name="assemblerpom"/>
</f:entry>
</f:section>
</f:block>
<f:bottomButtonBar>
<f:submit value="${%Save}" />
</f:bottomButtonBar>
</f:form>
What am i doing wrong here??
--
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.