From 46df905acdb081c811167e3e07ec0721ec01f0e3 Mon Sep 17 00:00:00 2001 From: Brian Clozel Date: Tue, 20 May 2025 15:58:29 +0200 Subject: [PATCH 1/4] Switch to 1.4.x branch --- .github/workflows/build-and-deploy-snapshot.yml | 2 +- .github/workflows/ci.yml | 2 +- .github/workflows/update-antora-ui-spring.yml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/build-and-deploy-snapshot.yml b/.github/workflows/build-and-deploy-snapshot.yml index 4f69c430..6364a5a5 100644 --- a/.github/workflows/build-and-deploy-snapshot.yml +++ b/.github/workflows/build-and-deploy-snapshot.yml @@ -2,7 +2,7 @@ name: Build and Deploy Snapshot on: push: branches: - - main + - 1.4.x permissions: actions: write concurrency: diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 32c2ef8f..d12af80f 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -2,7 +2,7 @@ name: CI on: push: branches: - - main + - 1.4.x concurrency: group: ${{ github.workflow }}-${{ github.ref }} jobs: diff --git a/.github/workflows/update-antora-ui-spring.yml b/.github/workflows/update-antora-ui-spring.yml index 6091232b..314ff0dc 100644 --- a/.github/workflows/update-antora-ui-spring.yml +++ b/.github/workflows/update-antora-ui-spring.yml @@ -16,7 +16,7 @@ jobs: name: Update on Supported Branches strategy: matrix: - branch: [ '1.3.x', 'main' ] + branch: [ '1.3.x', '1.4.x', 'main' ] steps: - uses: spring-io/spring-doc-actions/update-antora-spring-ui@e28269199d1d27975cf7f65e16d6095c555b3cd0 # v0.0.20 name: Update From fbd114bd10458aa9d63cf0d08b9756e6b3cc53c5 Mon Sep 17 00:00:00 2001 From: Dennis Date: Wed, 23 Apr 2025 12:57:43 +0200 Subject: [PATCH 2/4] Add toString() method in ArgumentValue See gh-1196 Signed-off-by: Dennis Griese --- .../graphql/data/ArgumentValue.java | 17 +++++++++++++++++ .../graphql/data/ArgumentValueTests.java | 14 ++++++++++++++ 2 files changed, 31 insertions(+) diff --git a/spring-graphql/src/main/java/org/springframework/graphql/data/ArgumentValue.java b/spring-graphql/src/main/java/org/springframework/graphql/data/ArgumentValue.java index 5ce87f2f..2943d4c3 100644 --- a/spring-graphql/src/main/java/org/springframework/graphql/data/ArgumentValue.java +++ b/spring-graphql/src/main/java/org/springframework/graphql/data/ArgumentValue.java @@ -137,6 +137,23 @@ public final class ArgumentValue { return result; } + /** + * Returns a non-empty string representation of this {@code ArgumentValue} + * suitable for debugging. + * + * @return the string representation of this instance + */ + @Override + public String toString() { + if (this.omitted) { + return "ArgumentValue.omitted"; + } + if (this.value == null){ + return "ArgumentValue.empty"; + } + return "ArgumentValue[%s]".formatted(this.value); + } + /** * Static factory method for an argument value that was provided, even if diff --git a/spring-graphql/src/test/java/org/springframework/graphql/data/ArgumentValueTests.java b/spring-graphql/src/test/java/org/springframework/graphql/data/ArgumentValueTests.java index fdfa4f0a..9c73c97b 100644 --- a/spring-graphql/src/test/java/org/springframework/graphql/data/ArgumentValueTests.java +++ b/spring-graphql/src/test/java/org/springframework/graphql/data/ArgumentValueTests.java @@ -80,4 +80,18 @@ class ArgumentValueTests { assertThat(called.get()).isFalse(); } + @Test + void toStringShouldReturnOmittedWhenOmitted() { + assertThat(ArgumentValue.omitted()).hasToString("ArgumentValue.omitted"); + } + + @Test + void toStringShouldReturnEmptyWhenNull() { + assertThat(ArgumentValue.ofNullable(null)).hasToString("ArgumentValue.empty"); + } + + @Test + void toStringShouldReturnValueWhenValue() { + assertThat(ArgumentValue.ofNullable("hello")).hasToString("ArgumentValue[hello]"); + } } From 831357be0166c35213cb3f34e437d1493af67c76 Mon Sep 17 00:00:00 2001 From: rstoyanchev Date: Thu, 29 May 2025 15:02:34 +0100 Subject: [PATCH 3/4] Polishing contribution Closes: gh-1196 --- .../graphql/data/ArgumentValue.java | 15 ++------------- .../graphql/data/ArgumentValueTests.java | 14 +++----------- 2 files changed, 5 insertions(+), 24 deletions(-) diff --git a/spring-graphql/src/main/java/org/springframework/graphql/data/ArgumentValue.java b/spring-graphql/src/main/java/org/springframework/graphql/data/ArgumentValue.java index 2943d4c3..d53460b7 100644 --- a/spring-graphql/src/main/java/org/springframework/graphql/data/ArgumentValue.java +++ b/spring-graphql/src/main/java/org/springframework/graphql/data/ArgumentValue.java @@ -137,21 +137,10 @@ public final class ArgumentValue { return result; } - /** - * Returns a non-empty string representation of this {@code ArgumentValue} - * suitable for debugging. - * - * @return the string representation of this instance - */ @Override public String toString() { - if (this.omitted) { - return "ArgumentValue.omitted"; - } - if (this.value == null){ - return "ArgumentValue.empty"; - } - return "ArgumentValue[%s]".formatted(this.value); + String v = ((this.value != null) ? this.value.toString() : (this.omitted) ? "omitted" : "empty"); + return "ArgumentValue[" + v + "]"; } diff --git a/spring-graphql/src/test/java/org/springframework/graphql/data/ArgumentValueTests.java b/spring-graphql/src/test/java/org/springframework/graphql/data/ArgumentValueTests.java index 9c73c97b..ca3ff970 100644 --- a/spring-graphql/src/test/java/org/springframework/graphql/data/ArgumentValueTests.java +++ b/spring-graphql/src/test/java/org/springframework/graphql/data/ArgumentValueTests.java @@ -81,17 +81,9 @@ class ArgumentValueTests { } @Test - void toStringShouldReturnOmittedWhenOmitted() { - assertThat(ArgumentValue.omitted()).hasToString("ArgumentValue.omitted"); - } - - @Test - void toStringShouldReturnEmptyWhenNull() { - assertThat(ArgumentValue.ofNullable(null)).hasToString("ArgumentValue.empty"); - } - - @Test - void toStringShouldReturnValueWhenValue() { + void toStringValue() { + assertThat(ArgumentValue.omitted()).hasToString("ArgumentValue[omitted]"); + assertThat(ArgumentValue.ofNullable(null)).hasToString("ArgumentValue[empty]"); assertThat(ArgumentValue.ofNullable("hello")).hasToString("ArgumentValue[hello]"); } } From a5c25b815f64aede8268d7341ae7f5cc6669d2a9 Mon Sep 17 00:00:00 2001 From: rstoyanchev Date: Thu, 29 May 2025 16:24:07 +0100 Subject: [PATCH 4/4] Fix nested parameter names in QuerydslDataFetcher Closes: gh-1215 --- .../graphql/data/query/QuerydslDataFetcher.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/spring-graphql/src/main/java/org/springframework/graphql/data/query/QuerydslDataFetcher.java b/spring-graphql/src/main/java/org/springframework/graphql/data/query/QuerydslDataFetcher.java index 11a7c41e..0ed1711f 100644 --- a/spring-graphql/src/main/java/org/springframework/graphql/data/query/QuerydslDataFetcher.java +++ b/spring-graphql/src/main/java/org/springframework/graphql/data/query/QuerydslDataFetcher.java @@ -158,13 +158,14 @@ public abstract class QuerydslDataFetcher { @Nullable String prefix, Map arguments, MultiValueMap parameters) { for (Map.Entry entry : arguments.entrySet()) { + String key = ((prefix != null) ? prefix + "." : "") + entry.getKey(); Object value = entry.getValue(); if (value instanceof Map nested) { - addParameters(entry.getKey(), (Map) nested, parameters); + addParameters(key, (Map) nested, parameters); continue; } List values = (value instanceof List) ? (List) value : Collections.singletonList(value); - parameters.put(((prefix != null) ? prefix + "." : "") + entry.getKey(), values); + parameters.put(key, values); } }