Navigation Menu

Skip to content

Commit

Permalink
JENKINS-39076 Do not call super to workaround Groovy StackOverflowErr…
Browse files Browse the repository at this point in the history
…or bug.

Utilize StaplerRequest.bindJSON method as per the new implementation of GlobalConfiguration in Jenkins 2.x. bindJSON method requires setter methods, hence opening the setter methods visibility from package to public.
  • Loading branch information
ceilfors committed Oct 25, 2016
1 parent e6ea6e0 commit 4300ee1
Showing 1 changed file with 9 additions and 40 deletions.
@@ -1,78 +1,47 @@
package com.ceilfors.jenkins.plugins.jiratrigger

import groovy.transform.PackageScope
import hudson.Extension
import hudson.util.Secret
import jenkins.model.GlobalConfiguration
import net.sf.json.JSONObject
import org.kohsuke.stapler.StaplerRequest

/**
* @author ceilfors
*/
@Extension
class JiraTriggerGlobalConfiguration extends GlobalConfiguration {

private String jiraRootUrl
private String jiraUsername
String jiraRootUrl
String jiraUsername
private Secret jiraPassword
private boolean jiraCommentReply = false
boolean jiraCommentReply = false

JiraTriggerGlobalConfiguration() {
load()
}

JiraTriggerGlobalConfiguration(String jiraRootUrl, String jiraUsername, String jiraPassword) {
setJiraRootUrl(jiraRootUrl)
setJiraUsername(jiraUsername)
setJiraPassword(jiraPassword)
this.jiraRootUrl = jiraRootUrl
this.jiraUsername = jiraUsername
this.setJiraPassword(jiraPassword)
}

@Override
boolean configure(StaplerRequest req, JSONObject formData) {
setJiraRootUrl(formData.getString("jiraRootUrl"))
setJiraUsername(formData.getString("jiraUsername"))
setJiraPassword(formData.getString("jiraPassword"))
jiraCommentReply = formData.getBoolean("jiraCommentReply")
req.bindJSON(this, formData)
save();
return super.configure(req, formData)
}

String getJiraRootUrl() {
return jiraRootUrl
}

String getJiraUsername() {
return jiraUsername
return true;
}

Secret getJiraPassword() {
return jiraPassword
}

boolean getJiraCommentReply() {
return jiraCommentReply
}

@PackageScope
void setJiraRootUrl(String jiraRootUrl) {
this.jiraRootUrl = jiraRootUrl
}

@PackageScope
void setJiraUsername(String jiraUsername) {
this.jiraUsername = jiraUsername
}

@PackageScope
void setJiraPassword(String jiraPassword) {
this.jiraPassword = Secret.fromString(jiraPassword)
}

@PackageScope
void setJiraCommentReply(boolean jiraCommentReply) {
this.jiraCommentReply = jiraCommentReply
}

void validateConfiguration() {
if (!jiraRootUrl) {
throw new JiraTriggerException(JiraTriggerErrorCode.JIRA_NOT_CONFIGURED).add("config", "jiraRootUrl")
Expand Down

0 comments on commit 4300ee1

Please sign in to comment.