Hi,

I'm attempting to implement a custom SCM, where I am using the git and 
subversion plugins as examples on how to do this.

I'm currently stuck on setting the global options for my plugin. I made a 
jelly template to set the 'sometoolPath' option. My understanding of the 
@DataBoundConstructor and @DataBoundSetter was that this would cause these 
to be called when the SCM implementation was configured:

public class MySCM extends SCM implements Serializable {
    // Global configuration options - set from the GUI
    private String sometoolPath;

    @DataBoundConstructor
    public MySCM() {
        System.out.println("Instantiated new instance of MySCM!!!");
    }

    @DataBoundSetter
    public void setSometoolPath(String sometoolPath) {
        System.out.println("Updated path: " + sometoolPath);
        this.sometoolPath = sometoolPath;
    }

    public String getSometoolPath() {
        return sometoolPath;
    }

    ...

    @Override
    public DescriptorImpl getDescriptor() {
        return (DescriptorImpl) super.getDescriptor();
    }

    @Extension
    public static final class DescriptorImpl extends SCMDescriptor<MySCM> {
        public DescriptorImpl() {
            super(MySCM.class, null);
            load();
        }

        @Override
        public SCM newInstance(StaplerRequest req, JSONObject formData) 
throws FormException {
            MySCM scm = (MySCM) super.newInstance(req, formData);
            return scm;
        }

        @Override
        public boolean configure(StaplerRequest req, JSONObject formData) 
throws FormException {
            save();
            return true;
        }

        @Override
        public String getDisplayName() {
            return "My Cool SCM";
        }
    }
}

But no matter what I do, the setter function is not called.

For completeness, here is the content of MySCM/global.jelly:
<?xml version="1.0" encoding="UTF-8"?>
<?jelly escape-by-default='true'?>
<j:jelly xmlns:j="jelly:core" xmlns:st="jelly:stapler" xmlns:d=
"jelly:define" xmlns:l="/lib/layout" xmlns:t="/lib/hudson" xmlns:f=
"/lib/form">
    <f:section title="${%Custom SCM Plugin}">
        <f:entry field="sometoolPath" title="${%Path to command}">
            <f:textbox default="customcommand"/>
        </f:entry>
    </f:section>
</j:jelly>

Thanks for any pointers anyone can give me.

Kind regards,
Berend Dekens

-- 
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 jenkinsci-dev+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/jenkinsci-dev/ce5e64b4-99b3-40c7-a25c-f407fb746d77n%40googlegroups.com.

Reply via email to