提交 3f7875c1 编写于 作者: J Jesse Glick

[FIXED JENKINS-26147] Move BUILD_NOW_TEXT to ParameterizedJobMixIn.

上级 ac1cc266
......@@ -473,6 +473,7 @@ public abstract class AbstractProject<P extends AbstractProject<P,R>,R extends A
* @since 1.401
*/
public String getBuildNowText() {
// For compatibility, still use the deprecated replacer if specified.
return AlternativeUiTextProvider.get(BUILD_NOW_TEXT, this, getParameterizedJobMixIn().getBuildNowText());
}
......@@ -2243,8 +2244,9 @@ public abstract class AbstractProject<P extends AbstractProject<P,R>,R extends A
public static final Permission ABORT = CANCEL;
/**
* Replaceable "Build Now" text.
* @deprecated Use {@link ParameterizedJobMixIn#BUILD_NOW_TEXT}.
*/
@Deprecated
public static final Message<AbstractProject> BUILD_NOW_TEXT = new Message<AbstractProject>();
/**
......
......@@ -41,6 +41,7 @@ import hudson.model.queue.QueueTaskFuture;
import hudson.search.SearchIndexBuilder;
import hudson.triggers.Trigger;
import hudson.triggers.TriggerDescriptor;
import hudson.util.AlternativeUiTextProvider;
import hudson.views.BuildButtonColumn;
import java.io.IOException;
import java.util.ArrayList;
......@@ -261,13 +262,20 @@ public abstract class ParameterizedJobMixIn<JobT extends Job<JobT, RunT> & Param
return new CauseAction(cause);
}
/**
* Allows customization of the human-readable display name to be rendered in the <i>Build Now</i> link.
* @see #getBuildNowText
* @since TODO
*/
public static final AlternativeUiTextProvider.Message<ParameterizedJob> BUILD_NOW_TEXT = new AlternativeUiTextProvider.Message<ParameterizedJob>();
/**
* Suggested implementation of {@link ParameterizedJob#getBuildNowText}.
* Uses {@link #BUILD_NOW_TEXT}.
*/
public final String getBuildNowText() {
// TODO JENKINS-26147 use replacement for AbstractProject.BUILD_NOW_TEXT
// TODO move these messages (& translations) to this package
return isParameterized() ? hudson.model.Messages.AbstractProject_build_with_parameters() : hudson.model.Messages.AbstractProject_BuildNow();
return isParameterized() ? hudson.model.Messages.AbstractProject_build_with_parameters() : AlternativeUiTextProvider.get(BUILD_NOW_TEXT, asJob(), hudson.model.Messages.AbstractProject_BuildNow());
}
/**
......
......@@ -23,18 +23,16 @@
*/
package hudson.util;
import static org.junit.Assert.assertTrue;
import hudson.model.AbstractProject;
import hudson.model.FreeStyleProject;
import jenkins.model.ParameterizedJobMixIn;
import static org.hamcrest.Matchers.containsString;
import static org.junit.Assert.assertThat;
import org.junit.Rule;
import org.junit.Test;
import org.jvnet.hudson.test.JenkinsRule;
import org.jvnet.hudson.test.TestExtension;
/**
* @author Kohsuke Kawaguchi
*/
public class AlternativeUiTextProviderTest {
@Rule
......@@ -42,9 +40,15 @@ public class AlternativeUiTextProviderTest {
@TestExtension
public static class Impl extends AlternativeUiTextProvider {
static boolean oldschool;
@SuppressWarnings("deprecation")
@Override public <T> String getText(Message<T> text, T context) {
if (text==AbstractProject.BUILD_NOW_TEXT)
return "XYZ:"+AbstractProject.BUILD_NOW_TEXT.cast(context).getDisplayName();
if (oldschool && text == ParameterizedJobMixIn.BUILD_NOW_TEXT) {
return "oldschool:" + ParameterizedJobMixIn.BUILD_NOW_TEXT.cast(context).getDisplayName();
}
if (!oldschool && text == AbstractProject.BUILD_NOW_TEXT) {
return "newschool:" + AbstractProject.BUILD_NOW_TEXT.cast(context).getDisplayName();
}
return null;
}
}
......@@ -55,6 +59,8 @@ public class AlternativeUiTextProviderTest {
@Test
public void basics() throws Exception {
FreeStyleProject p = j.createFreeStyleProject("aaa");
assertTrue(j.createWebClient().getPage(p).asText().contains("XYZ:aaa"));
assertThat(j.createWebClient().getPage(p).asText(), containsString("newschool:aaa"));
Impl.oldschool = true;
assertThat(j.createWebClient().getPage(p).asText(), containsString("oldschool:aaa"));
}
}
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册