Hi everyone,

    I am a newbie of jenkins plugin development.  I developed a class 
PolarionAlmProjectProperty extends JobProperty and deployed it to jenkins, 
when I typed any text in  polarionalm.regex and polarionalm.baseUrl 
editboxes in configuration form of a jenkins job, saved it,   and then 
reopened configuration UI, both these two editboxes remain blank, no text 
has been saved.  what wrong with source code ?
  
  Best Regards,

roland ye
2012-9-28    

source code  of PolarionALMProjectProperty.java
=======================================
 
package hudson.plugins.polarionalm;

import net.sf.json.JSONObject;

import org.kohsuke.stapler.StaplerRequest;

import hudson.Extension;
import hudson.model.AbstractProject;
import hudson.model.Job;
import hudson.model.JobProperty;
import hudson.model.JobPropertyDescriptor;

public class PolarionAlmProjectProperty extends 
JobProperty<AbstractProject<?,?>> {

    @Extension
    public static final DescriptorImpl DESCRIPTOR = new DescriptorImpl();

    public static final class DescriptorImpl extends JobPropertyDescriptor {
        private String regex;
        private String baseUrl;

        public DescriptorImpl() {
            super(PolarionAlmProjectProperty.class);
            load();
        }

        @Override
        public boolean configure(StaplerRequest req, JSONObject json)
                throws FormException {
            regex = req.getParameter("polarionalm.regex");
            baseUrl = req.getParameter("polarionalm.base");
            System.out.println("polarionalm regx:" + regex);
            System.out.println("polarionalm baseUrl:" + baseUrl);
            
            save();
            return true;
        }

        @Override
        public boolean isApplicable(Class<? extends Job> jobType) {
            //return false;
            return true;
        }

        @Override
        public PolarionAlmProjectProperty newInstance(StaplerRequest req,
                JSONObject formData) throws FormException {
            return new PolarionAlmProjectProperty();
        }


        @Override
        public String getDisplayName() {
            return "polarionalm";
        }

        public String getRegex() {
            if(regex == null) return "HUDSON-[0-9]*";
            return regex;
        }

        public String getBaseUrl() {
            if(baseUrl == null) return "http://localhost/polarion";;
            return baseUrl;
        }
    }
}

content of config.jelly
================

<j:jelly xmlns:j="jelly:core" xmlns:st="jelly:stapler" xmlns:f="/lib/form">
  <f:entry title="polarionalm.regex" field="regex">
        <f:textbox/>
  </f:entry>
  <f:entry title="polarionalm.baseUrl" field="baseUrl">
        <f:textbox/>
  </f:entry>  
</j:jelly>



Reply via email to