Skip to content

Commit 4d79950

Browse files
committed
[JENKINS-69135] Use DataboundSetter
1 parent 884f777 commit 4d79950

File tree

6 files changed

+37
-10
lines changed

6 files changed

+37
-10
lines changed

src/main/java/org/jenkinsci/plugins/workflow/libs/LibraryCachingConfiguration.java

Lines changed: 19 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,15 @@
22

33
import hudson.Extension;
44
import hudson.FilePath;
5+
import hudson.RestrictedSince;
56
import hudson.model.AbstractDescribableImpl;
67
import hudson.model.Descriptor;
78
import hudson.util.FormValidation;
89
import jenkins.model.Jenkins;
10+
import org.kohsuke.accmod.Restricted;
11+
import org.kohsuke.accmod.restrictions.NoExternalUse;
912
import org.kohsuke.stapler.DataBoundConstructor;
13+
import org.kohsuke.stapler.DataBoundSetter;
1014
import org.kohsuke.stapler.QueryParameter;
1115

1216
import java.io.IOException;
@@ -35,12 +39,21 @@ public final class LibraryCachingConfiguration extends AbstractDescribableImpl<L
3539
public static final String GLOBAL_LIBRARIES_DIR = "global-libraries-cache";
3640
public static final String LAST_READ_FILE = "last_read";
3741

38-
@DataBoundConstructor public LibraryCachingConfiguration(int refreshTimeMinutes, String excludedVersionsStr, String includedVersionsStr) {
42+
@DataBoundConstructor public LibraryCachingConfiguration(int refreshTimeMinutes, String excludedVersionsStr) {
3943
this.refreshTimeMinutes = refreshTimeMinutes;
4044
this.excludedVersionsStr = excludedVersionsStr;
41-
this.includedVersionsStr = includedVersionsStr;
45+
this.includedVersionsStr = "";
4246
}
4347

48+
/*
49+
* Visible for testing ...
50+
*/
51+
@Restricted(NoExternalUse.class)
52+
LibraryCachingConfiguration(int refreshTimeMinutes, String excludedVersionsStr, String includedVersionsStr) {
53+
this.refreshTimeMinutes = refreshTimeMinutes;
54+
this.excludedVersionsStr = excludedVersionsStr;
55+
this.includedVersionsStr = includedVersionsStr;
56+
}
4457

4558
public int getRefreshTimeMinutes() {
4659
return refreshTimeMinutes;
@@ -64,6 +77,10 @@ public String getIncludedVersionsStr() {
6477
return includedVersionsStr;
6578
}
6679

80+
@DataBoundSetter
81+
public void setIncludedVersionsStr(String includedVersionsStr) {
82+
this.includedVersionsStr = includedVersionsStr;
83+
}
6784

6885
private List<String> getExcludedVersions() {
6986
if (excludedVersionsStr == null) {

src/test/java/org/jenkinsci/plugins/workflow/libs/GlobalLibrariesTest.java

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,8 @@ public class GlobalLibrariesTest {
5757
assertEquals(Collections.emptyList(), gl.getLibraries());
5858
LibraryConfiguration foo = new LibraryConfiguration("foo", new SCMSourceRetriever(new SubversionSCMSource("foo", "https://phony.jenkins.io/foo/")));
5959
LibraryConfiguration bar = new LibraryConfiguration("bar", new SCMSourceRetriever(new GitSCMSource(null, "https://phony.jenkins.io/bar.git", "", "origin", "+refs/heads/*:refs/remotes/origin/*", "*", "", true)));
60+
LibraryCachingConfiguration cachingConfiguration = new LibraryCachingConfiguration(120, "develop", "master stable");
61+
foo.setCachingConfiguration(cachingConfiguration);
6062
bar.setDefaultVersion("master");
6163
bar.setImplicit(true);
6264
bar.setAllowVersionOverride(false);
@@ -72,6 +74,14 @@ public class GlobalLibrariesTest {
7274
r.assertEqualDataBoundBeans(Arrays.asList(foo, bar), libs);
7375
libs = gl.getLibraries();
7476
r.assertEqualDataBoundBeans(Arrays.asList(foo, bar), libs);
77+
boolean noFoo = true;
78+
for (LibraryConfiguration lib : libs) {
79+
if ("foo".equals(lib.getName())) {
80+
noFoo = false;
81+
r.assertEqualDataBoundBeans(lib.getCachingConfiguration(), cachingConfiguration);
82+
}
83+
}
84+
assertFalse("Missing a library called foo (should not happen)", noFoo);
7585
}
7686

7787
@Issue("SECURITY-1422")

src/test/java/org/jenkinsci/plugins/workflow/libs/LibraryAdderTest.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -420,7 +420,7 @@ public class LibraryAdderTest {
420420
new SCMSourceRetriever(new GitSCMSource(null, sampleRepo.toString(), "", "*", "", true)));
421421
globalLib.setDefaultVersion("master");
422422
globalLib.setImplicit(true);
423-
globalLib.setCachingConfiguration(new LibraryCachingConfiguration(60, "", ""));
423+
globalLib.setCachingConfiguration(new LibraryCachingConfiguration(60, ""));
424424
GlobalLibraries.get().setLibraries(Collections.singletonList(globalLib));
425425
// Create a folder library with the same name and which is also set up to enable caching.
426426
sampleRepo2.write("vars/folderLibVar.groovy", "def call() { jenkins.model.Jenkins.get().setSystemMessage('folder library') }");
@@ -430,7 +430,7 @@ public class LibraryAdderTest {
430430
new SCMSourceRetriever(new GitSCMSource(null, sampleRepo2.toString(), "", "*", "", true)));
431431
folderLib.setDefaultVersion("master");
432432
folderLib.setImplicit(true);
433-
folderLib.setCachingConfiguration(new LibraryCachingConfiguration(60, "", ""));
433+
folderLib.setCachingConfiguration(new LibraryCachingConfiguration(60, ""));
434434
Folder f = r.jenkins.createProject(Folder.class, "folder1");
435435
f.getProperties().add(new FolderLibraries(Collections.singletonList(folderLib)));
436436
// Create a job that uses the folder library, which will take precedence over the global library, since they have the same name.
@@ -493,7 +493,7 @@ public void parallelBuildsDontInterfereWithExpiredCache() throws Throwable {
493493
new SCMSourceRetriever(new GitSCMSource(null, sampleRepo.toString(), "", "*", "", true)));
494494
config.setDefaultVersion("master");
495495
config.setImplicit(true);
496-
config.setCachingConfiguration(new LibraryCachingConfiguration(30, null, null));
496+
config.setCachingConfiguration(new LibraryCachingConfiguration(30, null));
497497
GlobalLibraries.get().getLibraries().add(config);
498498
WorkflowJob p1 = r.createProject(WorkflowJob.class);
499499
WorkflowJob p2 = r.createProject(WorkflowJob.class);

src/test/java/org/jenkinsci/plugins/workflow/libs/LibraryCachingCleanupTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ public void smokes() throws Throwable {
5959
new SCMSourceRetriever(new GitSCMSource(null, sampleRepo.toString(), "", "*", "", true)));
6060
config.setDefaultVersion("master");
6161
config.setImplicit(true);
62-
config.setCachingConfiguration(new LibraryCachingConfiguration(30, null, null));
62+
config.setCachingConfiguration(new LibraryCachingConfiguration(30, null));
6363
GlobalLibraries.get().getLibraries().add(config);
6464
// Run build and check that cache gets created.
6565
WorkflowJob p = r.createProject(WorkflowJob.class);

src/test/java/org/jenkinsci/plugins/workflow/libs/LibraryCachingConfigurationTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -218,7 +218,7 @@ public void clearCache() throws Exception {
218218
new SCMSourceRetriever(new GitSCMSource(null, sampleRepo.toString(), "", "*", "", true)));
219219
config.setDefaultVersion("master");
220220
config.setImplicit(true);
221-
config.setCachingConfiguration(new LibraryCachingConfiguration(30, null, null));
221+
config.setCachingConfiguration(new LibraryCachingConfiguration(30, null));
222222
GlobalLibraries.get().getLibraries().add(config);
223223
// Run build and check that cache gets created.
224224
WorkflowJob p = r.createProject(WorkflowJob.class);

src/test/java/org/jenkinsci/plugins/workflow/libs/ResourceStepTest.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@ public class ResourceStepTest {
7171
initFixedContentLibrary();
7272

7373
LibraryConfiguration libraryConfig = new LibraryConfiguration("stuff", new SCMSourceRetriever(new GitSCMSource(null, sampleRepo.toString(), "", "*", "", true)));
74-
libraryConfig.setCachingConfiguration(new LibraryCachingConfiguration(0, "", ""));
74+
libraryConfig.setCachingConfiguration(new LibraryCachingConfiguration(0, ""));
7575
GlobalLibraries.get().setLibraries(Collections.singletonList(libraryConfig));
7676
WorkflowJob p = r.jenkins.createProject(WorkflowJob.class, "p");
7777

@@ -92,7 +92,7 @@ public class ResourceStepTest {
9292
initFixedContentLibrary();
9393

9494
LibraryConfiguration libraryConfig = new LibraryConfiguration("stuff", new SCMSourceRetriever(new GitSCMSource(null, sampleRepo.toString(), "", "*", "", true)));
95-
libraryConfig.setCachingConfiguration(new LibraryCachingConfiguration(0, "test_unused other", ""));
95+
libraryConfig.setCachingConfiguration(new LibraryCachingConfiguration(0, "test_unused other"));
9696
GlobalLibraries.get().setLibraries(Collections.singletonList(libraryConfig));
9797
WorkflowJob p = r.jenkins.createProject(WorkflowJob.class, "p");
9898

@@ -114,7 +114,7 @@ public class ResourceStepTest {
114114
initFixedContentLibrary();
115115

116116
LibraryConfiguration libraryConfig = new LibraryConfiguration("stuff", new SCMSourceRetriever(new GitSCMSource(null, sampleRepo.toString(), "", "*", "", true)));
117-
libraryConfig.setCachingConfiguration(new LibraryCachingConfiguration(60, "test_unused other", ""));
117+
libraryConfig.setCachingConfiguration(new LibraryCachingConfiguration(60, "test_unused other"));
118118
GlobalLibraries.get().setLibraries(Collections.singletonList(libraryConfig));
119119
WorkflowJob p = r.jenkins.createProject(WorkflowJob.class, "p");
120120

0 commit comments

Comments
 (0)