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.

Reply via email to