From 51e2cdc4ee85c5ce83eb43c82b131bf6d0b0236b Mon Sep 17 00:00:00 2001 From: Joseph Petersen Date: Fri, 7 Jun 2019 11:54:55 +0200 Subject: [PATCH] [JENKINS-57121] - make list view JCasC compliant (#3994) * make list view JCasC complianant * setRecurse @DataBoundSetter * Set and synchronized jobNames * description databound setter for view --- core/src/main/java/hudson/model/ListView.java | 26 ++++++++++++++++--- core/src/main/java/hudson/model/View.java | 8 +++++- 2 files changed, 30 insertions(+), 4 deletions(-) diff --git a/core/src/main/java/hudson/model/ListView.java b/core/src/main/java/hudson/model/ListView.java index e9ea468a01..e0879dc5f2 100644 --- a/core/src/main/java/hudson/model/ListView.java +++ b/core/src/main/java/hudson/model/ListView.java @@ -124,6 +124,11 @@ public class ListView extends View implements DirectlyModifiableView { this.columns.replaceBy(columns); } + @DataBoundSetter + public void setJobFilters(List jobFilters) throws IOException { + this.jobFilters.replaceBy(jobFilters); + } + private Object readResolve() { if(includeRegex!=null) { try { @@ -171,6 +176,9 @@ public class ListView extends View implements DirectlyModifiableView { return columns; } + public Set getJobNames() { + return Collections.unmodifiableSet(jobNames); + } /** * Returns a read-only view of all {@link Job}s in this view. @@ -320,14 +328,15 @@ public class ListView extends View implements DirectlyModifiableView { public String getIncludeRegex() { return includeRegex; } - + public boolean isRecurse() { return recurse; } - + /** * @since 1.568 */ + @DataBoundSetter public void setRecurse(boolean recurse) { this.recurse = recurse; } @@ -462,7 +471,7 @@ public class ListView extends View implements DirectlyModifiableView { columns = new DescribableList<>(this); } columns.rebuildHetero(req, json, ListViewColumn.all(), "columns"); - + if (jobFilters == null) { jobFilters = new DescribableList<>(this); } @@ -473,6 +482,7 @@ public class ListView extends View implements DirectlyModifiableView { } /** @since 1.526 */ + @DataBoundSetter public void setIncludeRegex(String includeRegex) { this.includeRegex = Util.nullify(includeRegex); if (this.includeRegex == null) @@ -481,6 +491,16 @@ public class ListView extends View implements DirectlyModifiableView { this.includePattern = Pattern.compile(includeRegex); } + @DataBoundSetter + public synchronized void setJobNames(Set jobNames) { + this.jobNames = new TreeSet<>(jobNames); + } + + @DataBoundSetter + public void setStatusFilter(Boolean statusFilter) { + this.statusFilter = statusFilter; + } + @Extension @Symbol("list") public static class DescriptorImpl extends ViewDescriptor { @Override diff --git a/core/src/main/java/hudson/model/View.java b/core/src/main/java/hudson/model/View.java index 2a23e5149e..6b27e876a8 100644 --- a/core/src/main/java/hudson/model/View.java +++ b/core/src/main/java/hudson/model/View.java @@ -76,6 +76,7 @@ import org.apache.tools.ant.filters.StringInputStream; import org.jenkins.ui.icon.Icon; import org.jenkins.ui.icon.IconSet; import org.kohsuke.accmod.restrictions.DoNotUse; +import org.kohsuke.stapler.DataBoundSetter; import org.kohsuke.stapler.HttpResponse; import org.kohsuke.stapler.HttpResponses; import org.kohsuke.stapler.Stapler; @@ -292,7 +293,12 @@ public abstract class View extends AbstractModelObject implements AccessControll public String getDescription() { return description; } - + + @DataBoundSetter + public void setDescription(String description) { + this.description = description; + } + /** * Gets the view properties configured for this view. * @since 1.406 -- GitLab