From 4d8232c0eecb477764e4cf789341a51a6d156d94 Mon Sep 17 00:00:00 2001 From: Mark Paluch Date: Tue, 18 Feb 2025 14:31:50 +0100 Subject: [PATCH] Upgrade to Spring Framework 7. Adopt to HttpHeaders, upgrade to Spring Data 2025.1. Closes #898 --- pom.xml | 8 ++++---- .../vault/authentication/AuthenticationStepsOperator.java | 2 +- .../vault/client/ClientHttpRequestFactoryFactory.java | 2 +- .../vault/client/ReactiveVaultClients.java | 2 +- .../springframework/vault/client/RestTemplateBuilder.java | 2 +- .../org/springframework/vault/client/VaultClients.java | 2 +- .../springframework/vault/client/WebClientBuilder.java | 2 +- .../vault/repository/query/VaultPartTreeQuery.java | 8 ++++---- .../vault/client/ReactiveVaultClientsUnitTests.java | 8 ++------ .../vault/client/RestTemplateBuilderUnitTests.java | 3 +-- .../repository/query/VaultQueryCreatorUnitTests.java | 2 +- 11 files changed, 18 insertions(+), 23 deletions(-) diff --git a/pom.xml b/pom.xml index 5b79083a..192738d8 100644 --- a/pom.xml +++ b/pom.xml @@ -40,10 +40,10 @@ 5.17.0 4.1.121.Final 3.14.9 - 6.2.7 - 2025.0.0 - 6.4.5 - 2024.0.6 + 7.0.0-M2 + 2025.1.0-M1 + 6.2.0 + 2024.0.2 UTF-8 17 diff --git a/spring-vault-core/src/main/java/org/springframework/vault/authentication/AuthenticationStepsOperator.java b/spring-vault-core/src/main/java/org/springframework/vault/authentication/AuthenticationStepsOperator.java index c59a38af..7d69969d 100644 --- a/spring-vault-core/src/main/java/org/springframework/vault/authentication/AuthenticationStepsOperator.java +++ b/spring-vault-core/src/main/java/org/springframework/vault/authentication/AuthenticationStepsOperator.java @@ -170,7 +170,7 @@ public class AuthenticationStepsOperator implements VaultTokenSupplier { spec = this.webClient.method(definition.getMethod()).uri(definition.getUri()); } - for (Entry> header : entity.getHeaders().entrySet()) { + for (Entry> header : entity.getHeaders().headerSet()) { spec = spec.header(header.getKey(), header.getValue().get(0)); } diff --git a/spring-vault-core/src/main/java/org/springframework/vault/client/ClientHttpRequestFactoryFactory.java b/spring-vault-core/src/main/java/org/springframework/vault/client/ClientHttpRequestFactoryFactory.java index 5c940367..0719fbb5 100644 --- a/spring-vault-core/src/main/java/org/springframework/vault/client/ClientHttpRequestFactoryFactory.java +++ b/spring-vault-core/src/main/java/org/springframework/vault/client/ClientHttpRequestFactoryFactory.java @@ -81,7 +81,7 @@ import org.springframework.vault.support.SslConfiguration.KeyStoreConfiguration; /** * Factory for {@link ClientHttpRequestFactory} that supports Apache HTTP Components, - * Netty and the JDK HTTP client (in that order). This factory configures a + * Netty and the JDK HTTP client (in that order). This factory configures a * {@link ClientHttpRequestFactory} depending on the available dependencies. * * @author Mark Paluch diff --git a/spring-vault-core/src/main/java/org/springframework/vault/client/ReactiveVaultClients.java b/spring-vault-core/src/main/java/org/springframework/vault/client/ReactiveVaultClients.java index 6e8abaa6..ee069f0b 100644 --- a/spring-vault-core/src/main/java/org/springframework/vault/client/ReactiveVaultClients.java +++ b/spring-vault-core/src/main/java/org/springframework/vault/client/ReactiveVaultClients.java @@ -182,7 +182,7 @@ public class ReactiveVaultClients { return ClientRequest.from(request).headers(headers -> { - if (!headers.containsKey(VaultHttpHeaders.VAULT_NAMESPACE)) { + if (!headers.containsHeader(VaultHttpHeaders.VAULT_NAMESPACE)) { headers.add(VaultHttpHeaders.VAULT_NAMESPACE, namespace); } }).build(); diff --git a/spring-vault-core/src/main/java/org/springframework/vault/client/RestTemplateBuilder.java b/spring-vault-core/src/main/java/org/springframework/vault/client/RestTemplateBuilder.java index d405b000..068ea7d9 100644 --- a/spring-vault-core/src/main/java/org/springframework/vault/client/RestTemplateBuilder.java +++ b/spring-vault-core/src/main/java/org/springframework/vault/client/RestTemplateBuilder.java @@ -231,7 +231,7 @@ public class RestTemplateBuilder { HttpHeaders headers = httpRequest.getHeaders(); defaultHeaders.forEach((key, value) -> { - if (!headers.containsKey(key)) { + if (!headers.containsHeader(key)) { headers.add(key, value); } }); diff --git a/spring-vault-core/src/main/java/org/springframework/vault/client/VaultClients.java b/spring-vault-core/src/main/java/org/springframework/vault/client/VaultClients.java index c021bec4..7d3c2a21 100644 --- a/spring-vault-core/src/main/java/org/springframework/vault/client/VaultClients.java +++ b/spring-vault-core/src/main/java/org/springframework/vault/client/VaultClients.java @@ -136,7 +136,7 @@ public class VaultClients { HttpHeaders headers = request.getHeaders(); - if (!headers.containsKey(VaultHttpHeaders.VAULT_NAMESPACE)) { + if (!headers.containsHeader(VaultHttpHeaders.VAULT_NAMESPACE)) { headers.add(VaultHttpHeaders.VAULT_NAMESPACE, namespace); } diff --git a/spring-vault-core/src/main/java/org/springframework/vault/client/WebClientBuilder.java b/spring-vault-core/src/main/java/org/springframework/vault/client/WebClientBuilder.java index 80299d72..db1be517 100644 --- a/spring-vault-core/src/main/java/org/springframework/vault/client/WebClientBuilder.java +++ b/spring-vault-core/src/main/java/org/springframework/vault/client/WebClientBuilder.java @@ -196,7 +196,7 @@ public class WebClientBuilder { return next .exchange(ClientRequest.from(request).headers(headers -> defaultHeaders.forEach((key, value) -> { - if (!headers.containsKey(key)) { + if (!headers.containsHeader(key)) { headers.add(key, value); } })).build()); diff --git a/spring-vault-core/src/main/java/org/springframework/vault/repository/query/VaultPartTreeQuery.java b/spring-vault-core/src/main/java/org/springframework/vault/repository/query/VaultPartTreeQuery.java index 24abdb37..7d4072f0 100644 --- a/spring-vault-core/src/main/java/org/springframework/vault/repository/query/VaultPartTreeQuery.java +++ b/spring-vault-core/src/main/java/org/springframework/vault/repository/query/VaultPartTreeQuery.java @@ -21,7 +21,7 @@ import org.springframework.data.keyvalue.repository.query.KeyValuePartTreeQuery; import org.springframework.data.mapping.context.MappingContext; import org.springframework.data.repository.query.ParameterAccessor; import org.springframework.data.repository.query.QueryMethod; -import org.springframework.data.repository.query.QueryMethodEvaluationContextProvider; +import org.springframework.data.repository.query.ValueExpressionDelegate; import org.springframework.data.repository.query.parser.AbstractQueryCreator; import org.springframework.data.repository.query.parser.PartTree; import org.springframework.data.spel.EvaluationContextProvider; @@ -41,15 +41,15 @@ public class VaultPartTreeQuery extends KeyValuePartTreeQuery { * {@link EvaluationContextProvider}, {@link KeyValueOperations} and query creator * type. * @param queryMethod must not be {@literal null}. - * @param evaluationContextProvider must not be {@literal null}. + * @param valueExpressionDelegate must not be {@literal null}. * @param keyValueOperations must not be {@literal null}. * @param queryCreator must not be {@literal null}. */ @SuppressWarnings({ "unchecked", "RedundantCast", "rawtypes" }) - public VaultPartTreeQuery(QueryMethod queryMethod, QueryMethodEvaluationContextProvider evaluationContextProvider, + public VaultPartTreeQuery(QueryMethod queryMethod, ValueExpressionDelegate valueExpressionDelegate, KeyValueOperations keyValueOperations, Class> queryCreator) { - super(queryMethod, evaluationContextProvider, keyValueOperations, + super(queryMethod, valueExpressionDelegate, keyValueOperations, (QueryCreatorFactory) new VaultQueryCreatorFactory( (MappingContext) keyValueOperations.getMappingContext())); } diff --git a/spring-vault-core/src/test/java/org/springframework/vault/client/ReactiveVaultClientsUnitTests.java b/spring-vault-core/src/test/java/org/springframework/vault/client/ReactiveVaultClientsUnitTests.java index dca30dac..bca629c2 100644 --- a/spring-vault-core/src/test/java/org/springframework/vault/client/ReactiveVaultClientsUnitTests.java +++ b/spring-vault-core/src/test/java/org/springframework/vault/client/ReactiveVaultClientsUnitTests.java @@ -15,8 +15,6 @@ */ package org.springframework.vault.client; -import java.util.Collections; - import org.junit.jupiter.api.Test; import reactor.core.publisher.Mono; import reactor.test.StepVerifier; @@ -58,8 +56,7 @@ class ReactiveVaultClientsUnitTests { .as(StepVerifier::create) // .verifyComplete(); - assertThat(request.getHeaders()).containsEntry(VaultHttpHeaders.VAULT_NAMESPACE, - Collections.singletonList("foo/bar")); + assertThat(request.getHeaders().containsHeaderValue(VaultHttpHeaders.VAULT_NAMESPACE, "foo/bar")).isTrue(); } @Test @@ -83,8 +80,7 @@ class ReactiveVaultClientsUnitTests { .as(StepVerifier::create) // .verifyComplete(); - assertThat(request.getHeaders()).containsEntry(VaultHttpHeaders.VAULT_NAMESPACE, - Collections.singletonList("baz")); + assertThat(request.getHeaders().containsHeaderValue(VaultHttpHeaders.VAULT_NAMESPACE, "baz")).isTrue(); } } diff --git a/spring-vault-core/src/test/java/org/springframework/vault/client/RestTemplateBuilderUnitTests.java b/spring-vault-core/src/test/java/org/springframework/vault/client/RestTemplateBuilderUnitTests.java index d9fe8e0a..a9aae4bd 100644 --- a/spring-vault-core/src/test/java/org/springframework/vault/client/RestTemplateBuilderUnitTests.java +++ b/spring-vault-core/src/test/java/org/springframework/vault/client/RestTemplateBuilderUnitTests.java @@ -17,7 +17,6 @@ package org.springframework.vault.client; import java.io.IOException; import java.net.URI; -import java.util.Collections; import org.junit.jupiter.api.Test; @@ -74,7 +73,7 @@ class RestTemplateBuilderUnitTests { ClientHttpRequest request = restTemplate.getRequestFactory().createRequest(URI.create("/"), HttpMethod.GET); - assertThat(request.getHeaders()).containsEntry("header", Collections.singletonList("value")); + assertThat(request.getHeaders().get("header")).containsOnly("value"); } } diff --git a/spring-vault-core/src/test/java/org/springframework/vault/repository/query/VaultQueryCreatorUnitTests.java b/spring-vault-core/src/test/java/org/springframework/vault/repository/query/VaultQueryCreatorUnitTests.java index 42c96ab1..8a1e1152 100644 --- a/spring-vault-core/src/test/java/org/springframework/vault/repository/query/VaultQueryCreatorUnitTests.java +++ b/spring-vault-core/src/test/java/org/springframework/vault/repository/query/VaultQueryCreatorUnitTests.java @@ -226,7 +226,7 @@ class VaultQueryCreatorUnitTests { return queryCreator.createQuery().getCriteria(); } - private static interface dummy { + private interface dummy { Object someUnrelatedMethod(String arg);