From f5110739fae67ff77f74232e70c0ba55b51cce49 Mon Sep 17 00:00:00 2001 From: Andrew Bayer Date: Mon, 2 Apr 2018 11:51:12 -0400 Subject: [PATCH 1/2] Simplifying snippetizer link URL construction --- .../plugins/workflow/cps/SnippetizerLink.java | 24 ++----------------- 1 file changed, 2 insertions(+), 22 deletions(-) diff --git a/src/main/java/org/jenkinsci/plugins/workflow/cps/SnippetizerLink.java b/src/main/java/org/jenkinsci/plugins/workflow/cps/SnippetizerLink.java index 618f43732..c38b5af4c 100644 --- a/src/main/java/org/jenkinsci/plugins/workflow/cps/SnippetizerLink.java +++ b/src/main/java/org/jenkinsci/plugins/workflow/cps/SnippetizerLink.java @@ -75,32 +75,12 @@ public final String getDisplayUrl() { StaplerRequest req = Stapler.getCurrentRequest(); if (req == null) { - return u; + throw new IllegalStateException("Can't get display URL without Stapler context."); } Item i = req.findAncestorObject(Item.class); - StringBuilder toAppend = new StringBuilder(); - - toAppend.append(req.getContextPath()); - - if (!req.getContextPath().endsWith("/")) { - toAppend.append("/"); - } - - if (i == null) { - toAppend.append(u); - } else { - toAppend.append(i.getUrl()); - - if (!i.getUrl().endsWith("/")) { - toAppend.append("/"); - } - - toAppend.append(u); - } - - return toAppend.toString(); + return req.getContextPath() + '/' + (i == null ? "" : i.getUrl()) + u; } /** From 09559d96d8c938470d3675b94625ee09de0c7f0c Mon Sep 17 00:00:00 2001 From: Liam Newman Date: Thu, 20 Jun 2019 11:27:14 -0700 Subject: [PATCH 2/2] Use StringUtils while concatenating url --- .../plugins/workflow/cps/SnippetizerLink.java | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/src/main/java/org/jenkinsci/plugins/workflow/cps/SnippetizerLink.java b/src/main/java/org/jenkinsci/plugins/workflow/cps/SnippetizerLink.java index c38b5af4c..ee4b401d2 100644 --- a/src/main/java/org/jenkinsci/plugins/workflow/cps/SnippetizerLink.java +++ b/src/main/java/org/jenkinsci/plugins/workflow/cps/SnippetizerLink.java @@ -28,6 +28,7 @@ import hudson.ExtensionPoint; import hudson.model.Item; import hudson.model.Job; +import org.apache.commons.lang.StringUtils; import org.kohsuke.stapler.Stapler; import org.kohsuke.stapler.StaplerRequest; @@ -80,7 +81,7 @@ public final String getDisplayUrl() { Item i = req.findAncestorObject(Item.class); - return req.getContextPath() + '/' + (i == null ? "" : i.getUrl()) + u; + return req.getContextPath() + "/" + (i == null ? "" : StringUtils.stripEnd(i.getUrl(), "/")) + "/" + u; } /** @@ -176,6 +177,22 @@ public boolean inNewWindow() { } @Extension(ordinal = 600L) + public static class ExamplesLink extends SnippetizerLink { + + @Nonnull + @Override + public String getUrl() { + return "https://jenkins.io/doc/pipeline/examples/"; + } + + @Nonnull + @Override + public String getDisplayName() { + return Messages.SnippetizerLink_ExamplesLink_displayName(); + } + } + + @Extension(ordinal = 500L) public static class GDSLLink extends SnippetizerLink { @Override @Nonnull