From 52e3265c344f958c74e04056c666b878f603f1b8 Mon Sep 17 00:00:00 2001 From: Laurens-W Date: Tue, 15 Feb 2022 09:31:51 +0100 Subject: [PATCH] [Java][RestTemplate] Use class level RestTemplate for uri encoding (#11606) * Move static logic to initialization method when no RestTemplate is provided. Otherwise, use the settings from the RestTemplate that was provided. * Move code outside of withXml Run required scripts Co-authored-by: Westerlaken, H.L. (Laurens) --- .../Java/libraries/resttemplate/ApiClient.mustache | 11 +++++------ .../main/java/org/openapitools/client/ApiClient.java | 11 +++++------ .../main/java/org/openapitools/client/ApiClient.java | 11 +++++------ 3 files changed, 15 insertions(+), 18 deletions(-) diff --git a/modules/openapi-generator/src/main/resources/Java/libraries/resttemplate/ApiClient.mustache b/modules/openapi-generator/src/main/resources/Java/libraries/resttemplate/ApiClient.mustache index 0b094ccd6a8..6270c6ceb3c 100644 --- a/modules/openapi-generator/src/main/resources/Java/libraries/resttemplate/ApiClient.mustache +++ b/modules/openapi-generator/src/main/resources/Java/libraries/resttemplate/ApiClient.mustache @@ -608,12 +608,6 @@ public class ApiClient{{#jsr310}} extends JavaTimeFormatter{{/jsr310}} { * @return path with placeholders replaced by variables */ public String expandPath(String pathTemplate, Map variables) { - // disable default URL encoding - DefaultUriBuilderFactory uriBuilderFactory = new DefaultUriBuilderFactory(); - uriBuilderFactory.setEncodingMode(DefaultUriBuilderFactory.EncodingMode.NONE); - final RestTemplate restTemplate = new RestTemplate(); - restTemplate.setUriTemplateHandler(uriBuilderFactory); - return restTemplate.getUriTemplateHandler().expand(pathTemplate, variables).toString(); } @@ -788,6 +782,11 @@ public class ApiClient{{#jsr310}} extends JavaTimeFormatter{{/jsr310}} { {{/withXml}}{{^withXml}}RestTemplate restTemplate = new RestTemplate();{{/withXml}} // This allows us to read the response more than once - Necessary for debugging. restTemplate.setRequestFactory(new BufferingClientHttpRequestFactory(restTemplate.getRequestFactory())); + + // disable default URL encoding + DefaultUriBuilderFactory uriBuilderFactory = new DefaultUriBuilderFactory(); + uriBuilderFactory.setEncodingMode(DefaultUriBuilderFactory.EncodingMode.NONE); + restTemplate.setUriTemplateHandler(uriBuilderFactory); return restTemplate; } diff --git a/samples/client/petstore/java/resttemplate-withXml/src/main/java/org/openapitools/client/ApiClient.java b/samples/client/petstore/java/resttemplate-withXml/src/main/java/org/openapitools/client/ApiClient.java index a26851adcdb..06309d589f6 100644 --- a/samples/client/petstore/java/resttemplate-withXml/src/main/java/org/openapitools/client/ApiClient.java +++ b/samples/client/petstore/java/resttemplate-withXml/src/main/java/org/openapitools/client/ApiClient.java @@ -568,12 +568,6 @@ public class ApiClient extends JavaTimeFormatter { * @return path with placeholders replaced by variables */ public String expandPath(String pathTemplate, Map variables) { - // disable default URL encoding - DefaultUriBuilderFactory uriBuilderFactory = new DefaultUriBuilderFactory(); - uriBuilderFactory.setEncodingMode(DefaultUriBuilderFactory.EncodingMode.NONE); - final RestTemplate restTemplate = new RestTemplate(); - restTemplate.setUriTemplateHandler(uriBuilderFactory); - return restTemplate.getUriTemplateHandler().expand(pathTemplate, variables).toString(); } @@ -746,6 +740,11 @@ public class ApiClient extends JavaTimeFormatter { // This allows us to read the response more than once - Necessary for debugging. restTemplate.setRequestFactory(new BufferingClientHttpRequestFactory(restTemplate.getRequestFactory())); + + // disable default URL encoding + DefaultUriBuilderFactory uriBuilderFactory = new DefaultUriBuilderFactory(); + uriBuilderFactory.setEncodingMode(DefaultUriBuilderFactory.EncodingMode.NONE); + restTemplate.setUriTemplateHandler(uriBuilderFactory); return restTemplate; } diff --git a/samples/client/petstore/java/resttemplate/src/main/java/org/openapitools/client/ApiClient.java b/samples/client/petstore/java/resttemplate/src/main/java/org/openapitools/client/ApiClient.java index efc2083f2d3..97f686f6cfd 100644 --- a/samples/client/petstore/java/resttemplate/src/main/java/org/openapitools/client/ApiClient.java +++ b/samples/client/petstore/java/resttemplate/src/main/java/org/openapitools/client/ApiClient.java @@ -563,12 +563,6 @@ public class ApiClient extends JavaTimeFormatter { * @return path with placeholders replaced by variables */ public String expandPath(String pathTemplate, Map variables) { - // disable default URL encoding - DefaultUriBuilderFactory uriBuilderFactory = new DefaultUriBuilderFactory(); - uriBuilderFactory.setEncodingMode(DefaultUriBuilderFactory.EncodingMode.NONE); - final RestTemplate restTemplate = new RestTemplate(); - restTemplate.setUriTemplateHandler(uriBuilderFactory); - return restTemplate.getUriTemplateHandler().expand(pathTemplate, variables).toString(); } @@ -733,6 +727,11 @@ public class ApiClient extends JavaTimeFormatter { RestTemplate restTemplate = new RestTemplate(); // This allows us to read the response more than once - Necessary for debugging. restTemplate.setRequestFactory(new BufferingClientHttpRequestFactory(restTemplate.getRequestFactory())); + + // disable default URL encoding + DefaultUriBuilderFactory uriBuilderFactory = new DefaultUriBuilderFactory(); + uriBuilderFactory.setEncodingMode(DefaultUriBuilderFactory.EncodingMode.NONE); + restTemplate.setUriTemplateHandler(uriBuilderFactory); return restTemplate; }