From 9cf06153a85e72340c040ce6143e60ad85986cb4 Mon Sep 17 00:00:00 2001 From: Marcin Grzejszczak Date: Mon, 29 Jul 2019 14:43:13 +0200 Subject: [PATCH 1/3] Added symbolic link of index.adoc --- docs/src/main/asciidoc/index.adoc | 1 + 1 file changed, 1 insertion(+) create mode 120000 docs/src/main/asciidoc/index.adoc diff --git a/docs/src/main/asciidoc/index.adoc b/docs/src/main/asciidoc/index.adoc new file mode 120000 index 00000000..f609d02f --- /dev/null +++ b/docs/src/main/asciidoc/index.adoc @@ -0,0 +1 @@ +spring-cloud-openfeign.adoc \ No newline at end of file From 2cdc1aceeb6a2bdd49227058c7a09789706697a9 Mon Sep 17 00:00:00 2001 From: Glosur Date: Sun, 28 Jul 2019 20:56:32 +0000 Subject: [PATCH 2/3] Fix serialization of Pageable.unpaged --- .../support/PageableSpringEncoder.java | 31 ++++++++++++++-- .../support/PageableEncoderTests.java | 37 +++++++++++++++---- 2 files changed, 57 insertions(+), 11 deletions(-) diff --git a/spring-cloud-openfeign-core/src/main/java/org/springframework/cloud/openfeign/support/PageableSpringEncoder.java b/spring-cloud-openfeign-core/src/main/java/org/springframework/cloud/openfeign/support/PageableSpringEncoder.java index 567809c9..fd4dc384 100644 --- a/spring-cloud-openfeign-core/src/main/java/org/springframework/cloud/openfeign/support/PageableSpringEncoder.java +++ b/spring-cloud-openfeign-core/src/main/java/org/springframework/cloud/openfeign/support/PageableSpringEncoder.java @@ -37,6 +37,21 @@ public class PageableSpringEncoder implements Encoder { private final Encoder delegate; + /** + * Page index parameter name. + */ + private String pageParameter = "page"; + + /** + * Page size parameter name. + */ + private String sizeParameter = "size"; + + /** + * Sort parameter name. + */ + private String sortParameter = "sort"; + /** * Creates a new PageableSpringEncoder with the given delegate for fallback. If no * delegate is provided and this encoder cant handle the request, an EncodeException @@ -54,8 +69,12 @@ public class PageableSpringEncoder implements Encoder { if (supports(object)) { if (object instanceof Pageable) { Pageable pageable = (Pageable) object; - template.query("page", pageable.getPageNumber() + ""); - template.query("size", pageable.getPageSize() + ""); + + if (pageable.isPaged()) { + template.query(pageParameter, pageable.getPageNumber() + ""); + template.query(sizeParameter, pageable.getPageSize() + ""); + } + if (pageable.getSort() != null) { applySort(template, pageable.getSort()); } @@ -82,11 +101,17 @@ public class PageableSpringEncoder implements Encoder { Collection existingSorts = template.queries().get("sort"); List sortQueries = existingSorts != null ? new ArrayList<>(existingSorts) : new ArrayList<>(); + if (!sortParameter.equals("sort")) { + existingSorts = template.queries().get(sortParameter); + if (existingSorts != null) { + sortQueries.addAll(existingSorts); + } + } for (Sort.Order order : sort) { sortQueries.add(order.getProperty() + "," + order.getDirection()); } if (!sortQueries.isEmpty()) { - template.query("sort", sortQueries); + template.query(sortParameter, sortQueries); } } diff --git a/spring-cloud-openfeign-core/src/test/java/org/springframework/cloud/openfeign/support/PageableEncoderTests.java b/spring-cloud-openfeign-core/src/test/java/org/springframework/cloud/openfeign/support/PageableEncoderTests.java index 8e0e64ef..db30c41f 100644 --- a/spring-cloud-openfeign-core/src/test/java/org/springframework/cloud/openfeign/support/PageableEncoderTests.java +++ b/spring-cloud-openfeign-core/src/test/java/org/springframework/cloud/openfeign/support/PageableEncoderTests.java @@ -63,13 +63,18 @@ public class PageableEncoderTests { encoder.encode(createPageAndSortRequest(), null, request); // Request queries shall contain three entries - assertThat(request.queries().size()).isEqualTo(3); + assertThat(request.queries()).hasSize(3); // Request page shall contain page assertThat(request.queries().get("page")).contains(String.valueOf(PAGE)); // Request size shall contain size - assertThat(request.queries().get("size")).contains(String.valueOf(SIZE)); - // Request sort size shall contain sort entries - assertThat(request.queries().get("sort").size()).isEqualTo(2); + assertThat(request.queries().get("size")).contains(String.valueOf(SIZE)); // Request + // sort + // size + // shall + // contain + // sort + // entries + assertThat(request.queries().get("sort")).hasSize(2); } private Pageable createPageAndSortRequest() { @@ -86,9 +91,14 @@ public class PageableEncoderTests { // Request page shall contain page assertThat(request.queries().get("page")).contains(String.valueOf(PAGE)); // Request size shall contain size - assertThat(request.queries().get("size")).contains(String.valueOf(SIZE)); - // Request sort size shall contain sort entries - assertThat(request.queries().containsKey("sort")).isEqualTo(false); + assertThat(request.queries().get("size")).contains(String.valueOf(SIZE)); // Request + // sort + // size + // shall + // contain + // sort + // entries + assertThat(request.queries()).doesNotContainKey("sort"); } private Pageable createPageAndRequest() { @@ -105,11 +115,22 @@ public class PageableEncoderTests { // Request queries shall contain three entries assertThat(request.queries().size()).isEqualTo(1); // Request sort size shall contain sort entries - assertThat(request.queries().get("sort").size()).isEqualTo(2); + assertThat(request.queries().get("sort")).hasSize(2); } private Sort createSort() { return Sort.by(SORT_1, SORT_2).ascending(); } + @Test + public void testUnpagedRequest() { + Encoder encoder = this.context.getInstance("foo", Encoder.class); + assertThat(encoder).isNotNull(); + RequestTemplate request = new RequestTemplate(); + + encoder.encode(Pageable.unpaged(), null, request); + // Request queries shall contain three entries + assertThat(request.queries()).isEmpty(); + } + } From 96ae8479aaaa9a5b0e41254dd446b24db226e4d8 Mon Sep 17 00:00:00 2001 From: Olga Maciaszek-Sharma Date: Fri, 30 Aug 2019 16:34:25 +0200 Subject: [PATCH 3/3] Remove unused jersey dependency. Add dependency version for okhttp. --- spring-cloud-openfeign-core/pom.xml | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/spring-cloud-openfeign-core/pom.xml b/spring-cloud-openfeign-core/pom.xml index c4b44ecd..b39aa4b7 100644 --- a/spring-cloud-openfeign-core/pom.xml +++ b/spring-cloud-openfeign-core/pom.xml @@ -158,14 +158,10 @@ rxjava true - - com.sun.jersey.contribs - jersey-apache-client4 - true - com.squareup.okhttp3 okhttp + 4.1.0 true