This is an automated email from the ASF dual-hosted git repository.
zregvart pushed a commit to branch camel-2.22.x
in repository https://gitbox.apache.org/repos/asf/camel.git
The following commit(s) were added to refs/heads/camel-2.22.x by this push:
new 6d8c157 CAMEL-13192: Path resolution in rest-swagger fa...
6d8c157 is described below
commit 6d8c157ba37a145f78104e542e59a54d9762e0b8
Author: Zoran Regvart <[email protected]>
AuthorDate: Wed Feb 13 14:27:17 2019 +0100
CAMEL-13192: Path resolution in rest-swagger fa...
...ils to include the whole path
This fixes the path resolution in `rest-swagger` component so that any
trailing path characters are not lost when resolving.
---
.../component/rest/swagger/RestSwaggerEndpoint.java | 6 +++++-
.../rest/swagger/RestSwaggerEndpointTest.java | 21 +++++++++++++++++++++
2 files changed, 26 insertions(+), 1 deletion(-)
diff --git
a/components/camel-rest-swagger/src/main/java/org/apache/camel/component/rest/swagger/RestSwaggerEndpoint.java
b/components/camel-rest-swagger/src/main/java/org/apache/camel/component/rest/swagger/RestSwaggerEndpoint.java
index 20b3df0..a34956b 100644
---
a/components/camel-rest-swagger/src/main/java/org/apache/camel/component/rest/swagger/RestSwaggerEndpoint.java
+++
b/components/camel-rest-swagger/src/main/java/org/apache/camel/component/rest/swagger/RestSwaggerEndpoint.java
@@ -472,10 +472,14 @@ public final class RestSwaggerEndpoint extends
DefaultEndpoint {
resolved.append('{').append(name).append('}');
}
- pos = end;
+ pos = end + 1;
start = uriTemplate.indexOf('{', pos);
}
+ if (pos < uriTemplate.length()) {
+ resolved.append(uriTemplate.substring(pos));
+ }
+
return resolved.toString();
}
diff --git
a/components/camel-rest-swagger/src/test/java/org/apache/camel/component/rest/swagger/RestSwaggerEndpointTest.java
b/components/camel-rest-swagger/src/test/java/org/apache/camel/component/rest/swagger/RestSwaggerEndpointTest.java
index cb88a8c..7597f9f 100644
---
a/components/camel-rest-swagger/src/test/java/org/apache/camel/component/rest/swagger/RestSwaggerEndpointTest.java
+++
b/components/camel-rest-swagger/src/test/java/org/apache/camel/component/rest/swagger/RestSwaggerEndpointTest.java
@@ -21,10 +21,12 @@ import java.net.URI;
import java.util.Arrays;
import java.util.Collections;
import java.util.HashMap;
+import java.util.Map;
import io.swagger.models.Operation;
import io.swagger.models.Scheme;
import io.swagger.models.Swagger;
+import io.swagger.models.parameters.Parameter;
import io.swagger.models.parameters.PathParameter;
import io.swagger.models.parameters.QueryParameter;
@@ -360,6 +362,25 @@ public class RestSwaggerEndpointTest {
}
@Test
+ public void shouldResolveUris() {
+ final RestSwaggerEndpoint endpoint = new RestSwaggerEndpoint();
+ endpoint.parameters = new HashMap<>();
+ endpoint.parameters.put("param1", "value1");
+
+ final Map<String, Parameter> pathParameters = new HashMap<>();
+ pathParameters.put("param1", new PathParameter().name("param1"));
+ pathParameters.put("param2", new PathParameter().name("param2"));
+
+ assertThat(endpoint.resolveUri("/path",
pathParameters)).isEqualTo("/path");
+ assertThat(endpoint.resolveUri("/path/{param1}",
pathParameters)).isEqualTo("/path/value1");
+ assertThat(endpoint.resolveUri("/{param1}/path",
pathParameters)).isEqualTo("/value1/path");
+ assertThat(endpoint.resolveUri("/{param1}/path/{param2}",
pathParameters)).isEqualTo("/value1/path/{param2}");
+ assertThat(endpoint.resolveUri("/{param1}/{param2}",
pathParameters)).isEqualTo("/value1/{param2}");
+ assertThat(endpoint.resolveUri("/path/{param1}/to/{param2}/rest",
pathParameters))
+ .isEqualTo("/path/value1/to/{param2}/rest");
+ }
+
+ @Test
public void shouldSerializeGivenLiteralValues() {
final RestSwaggerEndpoint endpoint = new RestSwaggerEndpoint();
endpoint.parameters = new HashMap<>();