You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jclouds.apache.org by na...@apache.org on 2024/03/20 14:19:52 UTC
(jclouds) branch master updated: JCLOUDS-1630: Handle URI template properly with opened curve bracket (#199)
This is an automated email from the ASF dual-hosted git repository.
nacx pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/jclouds.git
The following commit(s) were added to refs/heads/master by this push:
new bc43572d65 JCLOUDS-1630: Handle URI template properly with opened curve bracket (#199)
bc43572d65 is described below
commit bc43572d657956e013b094dfa08618c61a795e3d
Author: Maxim <gm...@gmail.com>
AuthorDate: Wed Mar 20 15:19:46 2024 +0100
JCLOUDS-1630: Handle URI template properly with opened curve bracket (#199)
Co-authored-by: Maksim_Hadalau <Ma...@epam.com>
---
core/src/main/java/org/jclouds/http/UriTemplates.java | 11 +++++++++++
core/src/test/java/org/jclouds/http/UriTemplatesTest.java | 7 +++++++
2 files changed, 18 insertions(+)
diff --git a/core/src/main/java/org/jclouds/http/UriTemplates.java b/core/src/main/java/org/jclouds/http/UriTemplates.java
index 77f6b80925..8ffad12e3f 100644
--- a/core/src/main/java/org/jclouds/http/UriTemplates.java
+++ b/core/src/main/java/org/jclouds/http/UriTemplates.java
@@ -38,6 +38,11 @@ public class UriTemplates {
return template.toString(); // skip expansion if there's no valid variables set. ex. {a} is the first valid
checkNotNull(variables, "variables for %s", template);
+ // if no variables provided - return template as is
+ if (variables.isEmpty()) {
+ return template;
+ }
+
boolean inVar = false;
StringBuilder var = new StringBuilder();
StringBuilder builder = new StringBuilder();
@@ -72,6 +77,12 @@ public class UriTemplates {
builder.append(c);
}
}
+
+ // if variables provided but, curve bracket is not closed - append remaining to the result
+ if (inVar) {
+ builder.append('{').append(var);
+ }
+
return builder.toString();
}
}
diff --git a/core/src/test/java/org/jclouds/http/UriTemplatesTest.java b/core/src/test/java/org/jclouds/http/UriTemplatesTest.java
index 83c1f86651..f9c1a4198d 100644
--- a/core/src/test/java/org/jclouds/http/UriTemplatesTest.java
+++ b/core/src/test/java/org/jclouds/http/UriTemplatesTest.java
@@ -55,4 +55,11 @@ public class UriTemplatesTest {
public void testJson() {
assertEquals(expand("{\"key\":\"{variable}\"}", ImmutableMap.of("variable", "value")), "{\"key\":\"value\"}");
}
+
+ public void testExpandWithOpenedCurveBracket() {
+ assertEquals(expand("/repos/folder with { brackets in a key", ImmutableMap.of()),
+ "/repos/folder with { brackets in a key");
+ assertEquals(expand("/repos/folder with {foo", ImmutableMap.of("foo", "var")),
+ "/repos/folder with {foo");
+ }
}