Skip to content

Commit

Permalink
Merge pull request #580 from jglick/UserMergeOptions.mergeStrategy-JE…
Browse files Browse the repository at this point in the history
…NKINS-34070

[JENKINS-34070] Fixing UserMergeOptions.mergeStrategy databinding
  • Loading branch information
MarkEWaite committed Apr 18, 2018
2 parents a81c655 + 624ffce commit 44e9eb0
Show file tree
Hide file tree
Showing 2 changed files with 28 additions and 12 deletions.
32 changes: 23 additions & 9 deletions src/main/java/hudson/plugins/git/UserMergeOptions.java
@@ -1,14 +1,15 @@
package hudson.plugins.git;

import hudson.Extension;
import hudson.Util;
import hudson.model.AbstractDescribableImpl;
import hudson.model.Descriptor;
import hudson.plugins.git.opt.PreBuildMergeOptions;
import hudson.util.ListBoxModel;
import org.jenkinsci.plugins.gitclient.MergeCommand;
import org.kohsuke.stapler.DataBoundConstructor;

import java.io.Serializable;
import org.kohsuke.stapler.DataBoundSetter;

/**
* User-provided configuration that dictates which branch in which repository we'll be
Expand All @@ -18,7 +19,7 @@
public class UserMergeOptions extends AbstractDescribableImpl<UserMergeOptions> implements Serializable {

private String mergeRemote;
private String mergeTarget;
private final String mergeTarget;
private String mergeStrategy;
private MergeCommand.GitPluginFastForwardMode fastForwardMode;

Expand All @@ -39,7 +40,6 @@ public UserMergeOptions(String mergeRemote, String mergeTarget, String mergeStra
* @param mergeStrategy merge strategy
* @param fastForwardMode fast forward mode
*/
@DataBoundConstructor
public UserMergeOptions(String mergeRemote, String mergeTarget, String mergeStrategy,
MergeCommand.GitPluginFastForwardMode fastForwardMode) {
this.mergeRemote = mergeRemote;
Expand All @@ -48,6 +48,11 @@ public UserMergeOptions(String mergeRemote, String mergeTarget, String mergeStra
this.fastForwardMode = fastForwardMode;
}

@DataBoundConstructor
public UserMergeOptions(String mergeTarget) {
this.mergeTarget = mergeTarget;
}

/**
* Construct UserMergeOptions from PreBuildMergeOptions.
* @param pbm pre-build merge options used to construct UserMergeOptions
Expand All @@ -64,6 +69,11 @@ public String getMergeRemote() {
return mergeRemote;
}

@DataBoundSetter
public void setMergeRemote(String mergeRemote) {
this.mergeRemote = Util.fixEmptyAndTrim(mergeRemote);
}

/**
* Ref in the repository that becomes the input of the merge.
* Normally a branch name like 'master'.
Expand All @@ -89,13 +99,23 @@ public MergeCommand.Strategy getMergeStrategy() {
return MergeCommand.Strategy.DEFAULT;
}

@DataBoundSetter
public void setMergeStrategy(MergeCommand.Strategy mergeStrategy) {
this.mergeStrategy = mergeStrategy.toString(); // not .name() as you might expect! TODO in Turkey this will be e.g. recursıve
}

public MergeCommand.GitPluginFastForwardMode getFastForwardMode() {
for (MergeCommand.GitPluginFastForwardMode ffMode : MergeCommand.GitPluginFastForwardMode.values())
if (ffMode.equals(fastForwardMode))
return ffMode;
return MergeCommand.GitPluginFastForwardMode.FF;
}

@DataBoundSetter
public void setFastForwardMode(MergeCommand.GitPluginFastForwardMode fastForwardMode) {
this.fastForwardMode = fastForwardMode;
}

@Override
public String toString() {
return "UserMergeOptions{" +
Expand Down Expand Up @@ -148,11 +168,5 @@ public String getDisplayName() {
return "";
}

public ListBoxModel doFillMergeStrategyItems() {
ListBoxModel m = new ListBoxModel();
for (MergeCommand.Strategy strategy: MergeCommand.Strategy.values())
m.add(strategy.toString(), strategy.toString());
return m;
}
}
}
@@ -1,13 +1,15 @@
<?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:entry title="${%Name of repository}" field="mergeRemote">
<f:textbox id="git.mergeRemote" />
<f:textbox/>
</f:entry>
<f:entry title="${%Branch to merge to}" field="mergeTarget">
<f:textbox id="git.mergeTarget" clazz="required"/>
<f:textbox clazz="required"/>
</f:entry>
<f:entry title="${%Merge strategy}" field="mergeStrategy">
<f:select />
<f:enum>
${it.toString()}
</f:enum>
</f:entry>
<f:entry title="${%Fast-forward mode}" field="fastForwardMode">
<f:enum>
Expand Down

0 comments on commit 44e9eb0

Please sign in to comment.