From 9a9f34a8305a67d10dbb1f772677c6ab32cb9fed Mon Sep 17 00:00:00 2001 From: Joseph Petersen Date: Mon, 25 May 2020 23:40:15 +0200 Subject: [PATCH 1/3] add default method to fallback to calling getParent on run for any SCMFileSystem that has yet to implement Run method --- src/main/java/jenkins/scm/api/SCMFileSystem.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/main/java/jenkins/scm/api/SCMFileSystem.java b/src/main/java/jenkins/scm/api/SCMFileSystem.java index 899ecc7c..854f7e09 100644 --- a/src/main/java/jenkins/scm/api/SCMFileSystem.java +++ b/src/main/java/jenkins/scm/api/SCMFileSystem.java @@ -568,8 +568,10 @@ public final boolean supports(SCMSourceDescriptor descriptor) { * @throws InterruptedException if the attempt to create a {@link SCMFileSystem} was interrupted. */ @CheckForNull - public abstract SCMFileSystem build(@NonNull Run build, @NonNull SCM scm, @CheckForNull SCMRevision rev) - throws IOException, InterruptedException; + public SCMFileSystem build(@NonNull Run build, @NonNull SCM scm, @CheckForNull SCMRevision rev) + throws IOException, InterruptedException { + return build(build.getParent(), scm, rev); + } /** * Given a {@link SCM} this should try to build a corresponding {@link SCMFileSystem} instance that From ffe538cac3f9e27f02437d1f492eec3f012640ec Mon Sep 17 00:00:00 2001 From: Joseph Petersen Date: Mon, 25 May 2020 23:46:22 +0200 Subject: [PATCH 2/3] avoid using raw Run class --- src/main/java/jenkins/scm/api/SCMFileSystem.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/jenkins/scm/api/SCMFileSystem.java b/src/main/java/jenkins/scm/api/SCMFileSystem.java index 854f7e09..97469505 100644 --- a/src/main/java/jenkins/scm/api/SCMFileSystem.java +++ b/src/main/java/jenkins/scm/api/SCMFileSystem.java @@ -186,7 +186,7 @@ public static SCMFileSystem of(@NonNull Run build, @NonNull SCM scm) throws IOEx * @throws InterruptedException if the attempt to create a {@link SCMFileSystem} was interrupted. */ @CheckForNull - public static SCMFileSystem of(@NonNull Run build, @NonNull SCM scm, @CheckForNull SCMRevision rev) + public static SCMFileSystem of(@NonNull Run build, @NonNull SCM scm, @CheckForNull SCMRevision rev) throws IOException, InterruptedException { Objects.requireNonNull(scm); SCMFileSystem fallBack = null; From 8a747bdddd9b51e2847026ed7ac409746d97e03f Mon Sep 17 00:00:00 2001 From: Joseph Petersen Date: Mon, 25 May 2020 23:48:19 +0200 Subject: [PATCH 3/3] avoid using raw Run class, for real --- src/main/java/jenkins/scm/api/SCMFileSystem.java | 2 +- src/test/java/jenkins/scm/impl/SCMFileSystemTest.java | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/main/java/jenkins/scm/api/SCMFileSystem.java b/src/main/java/jenkins/scm/api/SCMFileSystem.java index 97469505..45d1df22 100644 --- a/src/main/java/jenkins/scm/api/SCMFileSystem.java +++ b/src/main/java/jenkins/scm/api/SCMFileSystem.java @@ -169,7 +169,7 @@ public boolean changesSince(@CheckForNull SCMRevision revision, @NonNull OutputS * @throws InterruptedException if the attempt to create a {@link SCMFileSystem} was interrupted. */ @CheckForNull - public static SCMFileSystem of(@NonNull Run build, @NonNull SCM scm) throws IOException, InterruptedException { + public static SCMFileSystem of(@NonNull Run build, @NonNull SCM scm) throws IOException, InterruptedException { return of(build, scm, null); } diff --git a/src/test/java/jenkins/scm/impl/SCMFileSystemTest.java b/src/test/java/jenkins/scm/impl/SCMFileSystemTest.java index f1cad54a..ea130295 100644 --- a/src/test/java/jenkins/scm/impl/SCMFileSystemTest.java +++ b/src/test/java/jenkins/scm/impl/SCMFileSystemTest.java @@ -120,7 +120,7 @@ public SCMFileSystem build(@NonNull Item owner, @NonNull SCM scm, @CheckForNull @Override @CheckForNull - public SCMFileSystem build(@NonNull Run build, @NonNull SCM scm, @CheckForNull SCMRevision rev) + public SCMFileSystem build(@NonNull Run build, @NonNull SCM scm, @CheckForNull SCMRevision rev) throws IOException, InterruptedException { return null; } @@ -158,7 +158,7 @@ public SCMFileSystem build(@NonNull Item owner, @NonNull SCM scm, @CheckForNull @Override @CheckForNull - public SCMFileSystem build(@NonNull Run build, @NonNull SCM scm, @CheckForNull SCMRevision rev) + public SCMFileSystem build(@NonNull Run build, @NonNull SCM scm, @CheckForNull SCMRevision rev) throws IOException, InterruptedException { return null; }