diff --git a/.mvn/jvm.config b/.mvn/jvm.config new file mode 100644 index 00000000..e27f6e8f --- /dev/null +++ b/.mvn/jvm.config @@ -0,0 +1,14 @@ +--add-exports jdk.compiler/com.sun.tools.javac.api=ALL-UNNAMED +--add-exports jdk.compiler/com.sun.tools.javac.file=ALL-UNNAMED +--add-exports jdk.compiler/com.sun.tools.javac.main=ALL-UNNAMED +--add-exports jdk.compiler/com.sun.tools.javac.model=ALL-UNNAMED +--add-exports jdk.compiler/com.sun.tools.javac.parser=ALL-UNNAMED +--add-exports jdk.compiler/com.sun.tools.javac.processing=ALL-UNNAMED +--add-exports jdk.compiler/com.sun.tools.javac.tree=ALL-UNNAMED +--add-exports jdk.compiler/com.sun.tools.javac.util=ALL-UNNAMED +--add-opens jdk.compiler/com.sun.tools.javac.code=ALL-UNNAMED +--add-opens jdk.compiler/com.sun.tools.javac.comp=ALL-UNNAMED +--add-opens=java.base/java.util=ALL-UNNAMED +--add-opens=java.base/java.lang.reflect=ALL-UNNAMED +--add-opens=java.base/java.text=ALL-UNNAMED +--add-opens=java.desktop/java.awt.font=ALL-UNNAMED diff --git a/pom.xml b/pom.xml index 8e228e75..35608a62 100644 --- a/pom.xml +++ b/pom.xml @@ -23,6 +23,7 @@ 3.27.3 2.31.29 1.80 + 2.36.0 v1-rev20221013-2.0.0 2.60.0 @@ -39,6 +40,7 @@ 1.13.17 5.17.0 4.1.121.Final + 0.12.3 3.14.9 7.0.0-M2 2025.1.0-M1 @@ -379,9 +381,22 @@ org.apache.maven.plugins maven-compiler-plugin - ${java.version} - ${java.version} + ${java.version} true + ${source.level} + true + + + com.google.errorprone + error_prone_core + ${errorprone.version} + + + com.uber.nullaway + nullaway + ${nullaway.version} + + @@ -398,6 +413,13 @@ compile + + + -XDcompilePolicy=simple + --should-stop=ifError=FLOW + -Xplugin:ErrorProne -XepDisableAllChecks -Xep:NullAway:ERROR -XepOpt:NullAway:OnlyNullMarked=true -XepOpt:NullAway:CustomContractAnnotations=org.springframework.lang.Contract + + java-test-compile diff --git a/spring-vault-core/pom.xml b/spring-vault-core/pom.xml index 2728e9a3..5caa591e 100644 --- a/spring-vault-core/pom.xml +++ b/spring-vault-core/pom.xml @@ -135,6 +135,11 @@ kotlinx-coroutines-reactor true + + org.jspecify + jspecify + 1.0.0 + diff --git a/spring-vault-core/src/main/java/org/springframework/vault/annotation/PropertySourceAotProcessor.java b/spring-vault-core/src/main/java/org/springframework/vault/annotation/PropertySourceAotProcessor.java index afd76650..156f0ebd 100644 --- a/spring-vault-core/src/main/java/org/springframework/vault/annotation/PropertySourceAotProcessor.java +++ b/spring-vault-core/src/main/java/org/springframework/vault/annotation/PropertySourceAotProcessor.java @@ -18,6 +18,8 @@ package org.springframework.vault.annotation; import java.util.Map.Entry; import java.util.function.Predicate; +import org.jspecify.annotations.Nullable; + import org.springframework.aot.generate.GenerationContext; import org.springframework.beans.factory.aot.BeanRegistrationAotContribution; import org.springframework.beans.factory.aot.BeanRegistrationAotProcessor; @@ -31,7 +33,6 @@ import org.springframework.beans.factory.config.RuntimeBeanReference; import org.springframework.beans.factory.support.RegisteredBean; import org.springframework.beans.factory.support.RootBeanDefinition; import org.springframework.javapoet.CodeBlock; -import org.springframework.lang.Nullable; import org.springframework.util.ClassUtils; import org.springframework.vault.core.lease.domain.RequestedSecret; import org.springframework.vault.core.lease.domain.RequestedSecret.Mode; @@ -48,7 +49,7 @@ import org.springframework.vault.core.util.PropertyTransformers.NoOpPropertyTran class PropertySourceAotProcessor implements BeanRegistrationAotProcessor { @Override - public BeanRegistrationAotContribution processAheadOfTime(RegisteredBean registeredBean) { + public @Nullable BeanRegistrationAotContribution processAheadOfTime(RegisteredBean registeredBean) { if (registeredBean.getBeanClass() == org.springframework.vault.core.env.LeaseAwareVaultPropertySource.class) { return BeanRegistrationAotContribution.withCustomCodeFragments(AotContribution::new); diff --git a/spring-vault-core/src/main/java/org/springframework/vault/annotation/VaultPropertySource.java b/spring-vault-core/src/main/java/org/springframework/vault/annotation/VaultPropertySource.java index 2e40b8a7..245259bc 100644 --- a/spring-vault-core/src/main/java/org/springframework/vault/annotation/VaultPropertySource.java +++ b/spring-vault-core/src/main/java/org/springframework/vault/annotation/VaultPropertySource.java @@ -113,7 +113,7 @@ public @interface VaultPropertySource { */ Renewal renewal() default Renewal.OFF; - public enum Renewal { + enum Renewal { /** * Do not renew leases associated with secrets. diff --git a/spring-vault-core/src/main/java/org/springframework/vault/annotation/VaultPropertySourceRegistrar.java b/spring-vault-core/src/main/java/org/springframework/vault/annotation/VaultPropertySourceRegistrar.java index 3efba599..34304d32 100644 --- a/spring-vault-core/src/main/java/org/springframework/vault/annotation/VaultPropertySourceRegistrar.java +++ b/spring-vault-core/src/main/java/org/springframework/vault/annotation/VaultPropertySourceRegistrar.java @@ -21,6 +21,8 @@ import java.util.LinkedHashSet; import java.util.Map; import java.util.Set; +import org.jspecify.annotations.Nullable; + import org.springframework.beans.BeansException; import org.springframework.beans.factory.config.BeanDefinition; import org.springframework.beans.factory.config.BeanFactoryPostProcessor; @@ -36,7 +38,6 @@ import org.springframework.core.env.Environment; import org.springframework.core.env.MutablePropertySources; import org.springframework.core.env.PropertySource; import org.springframework.core.type.AnnotationMetadata; -import org.springframework.lang.Nullable; import org.springframework.util.Assert; import org.springframework.util.StringUtils; import org.springframework.vault.annotation.VaultPropertySource.Renewal; @@ -200,9 +201,9 @@ class VaultPropertySourceRegistrar Set result = new LinkedHashSet<>(); addAttributesIfNotNull(result, metadata.getAnnotationAttributes(annotationClassName, false)); - Map container = metadata.getAnnotationAttributes(containerClassName, false); + Map container = metadata.getAnnotationAttributes(containerClassName, false); if (container != null && container.containsKey("value")) { - for (Map containedAttributes : (Map[]) container.get("value")) { + for (Map containedAttributes : (Map[]) container.get("value")) { addAttributesIfNotNull(result, containedAttributes); } } @@ -210,7 +211,7 @@ class VaultPropertySourceRegistrar } private static void addAttributesIfNotNull(Set result, - @Nullable Map attributes) { + @Nullable Map attributes) { if (attributes != null) { result.add(AnnotationAttributes.fromMap(attributes)); } diff --git a/spring-vault-core/src/main/java/org/springframework/vault/annotation/package-info.java b/spring-vault-core/src/main/java/org/springframework/vault/annotation/package-info.java index 5fef6fd8..08753440 100644 --- a/spring-vault-core/src/main/java/org/springframework/vault/annotation/package-info.java +++ b/spring-vault-core/src/main/java/org/springframework/vault/annotation/package-info.java @@ -1,6 +1,5 @@ /** * Annotation support for the Spring Vault. */ -@org.springframework.lang.NonNullApi -@org.springframework.lang.NonNullFields +@org.jspecify.annotations.NullMarked package org.springframework.vault.annotation; diff --git a/spring-vault-core/src/main/java/org/springframework/vault/aot/VaultRuntimeHints.java b/spring-vault-core/src/main/java/org/springframework/vault/aot/VaultRuntimeHints.java index 64c9ea1e..fcee7fda 100644 --- a/spring-vault-core/src/main/java/org/springframework/vault/aot/VaultRuntimeHints.java +++ b/spring-vault-core/src/main/java/org/springframework/vault/aot/VaultRuntimeHints.java @@ -18,6 +18,8 @@ package org.springframework.vault.aot; import java.io.IOException; import java.util.stream.Stream; +import org.jspecify.annotations.Nullable; + import org.springframework.aot.hint.MemberCategory; import org.springframework.aot.hint.ReflectionHints; import org.springframework.aot.hint.RuntimeHints; @@ -41,7 +43,7 @@ class VaultRuntimeHints implements RuntimeHintsRegistrar { private final CachingMetadataReaderFactory factory = new CachingMetadataReaderFactory(); @Override - public void registerHints(RuntimeHints hints, ClassLoader classLoader) { + public void registerHints(RuntimeHints hints, @Nullable ClassLoader classLoader) { PathMatchingResourcePatternResolver resolver = new PathMatchingResourcePatternResolver(classLoader); diff --git a/spring-vault-core/src/main/java/org/springframework/vault/aot/package-info.java b/spring-vault-core/src/main/java/org/springframework/vault/aot/package-info.java index 319ab0f4..c270b6b1 100644 --- a/spring-vault-core/src/main/java/org/springframework/vault/aot/package-info.java +++ b/spring-vault-core/src/main/java/org/springframework/vault/aot/package-info.java @@ -1,6 +1,5 @@ /** * Ahead-of-Time support. */ -@org.springframework.lang.NonNullApi -@org.springframework.lang.NonNullFields +@org.jspecify.annotations.NullMarked package org.springframework.vault.aot; diff --git a/spring-vault-core/src/main/java/org/springframework/vault/authentication/AppRoleAuthentication.java b/spring-vault-core/src/main/java/org/springframework/vault/authentication/AppRoleAuthentication.java index ee0e3585..a82dc976 100644 --- a/spring-vault-core/src/main/java/org/springframework/vault/authentication/AppRoleAuthentication.java +++ b/spring-vault-core/src/main/java/org/springframework/vault/authentication/AppRoleAuthentication.java @@ -20,12 +20,12 @@ import java.util.Map; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; +import org.jspecify.annotations.Nullable; import org.springframework.http.HttpEntity; import org.springframework.http.HttpHeaders; import org.springframework.http.HttpMethod; import org.springframework.http.ResponseEntity; -import org.springframework.lang.Nullable; import org.springframework.util.Assert; import org.springframework.util.ClassUtils; import org.springframework.vault.authentication.AppRoleAuthenticationOptions.RoleId; @@ -214,7 +214,7 @@ public class AppRoleAuthentication implements ClientAuthentication, Authenticati ResponseEntity entity = this.restOperations.exchange(getRoleIdIdPath(this.options), HttpMethod.GET, createHttpEntity(token), VaultResponse.class); - return (String) entity.getBody().getRequiredData().get("role_id"); + return (String) ResponseUtil.getRequiredData(entity).get("role_id"); } catch (HttpStatusCodeException e) { throw new VaultLoginException("Cannot get Role id using AppRole: %s" @@ -231,7 +231,7 @@ public class AppRoleAuthentication implements ClientAuthentication, Authenticati ResponseEntity entity = this.restOperations.exchange(unwrappingEndpoints.getPath(), unwrappingEndpoints.getUnwrapRequestMethod(), createHttpEntity(token), VaultResponse.class); - VaultResponse response = unwrappingEndpoints.unwrap(entity.getBody()); + VaultResponse response = unwrappingEndpoints.unwrap(ResponseUtil.getRequiredBody(entity)); return (String) response.getRequiredData().get("role_id"); } @@ -257,7 +257,7 @@ public class AppRoleAuthentication implements ClientAuthentication, Authenticati try { VaultResponse response = this.restOperations.postForObject(getSecretIdPath(this.options), createHttpEntity(token), VaultResponse.class); - return (String) response.getRequiredData().get("secret_id"); + return (String) ResponseUtil.getRequiredData(response).get("secret_id"); } catch (HttpStatusCodeException e) { throw new VaultLoginException("Cannot get Secret id using AppRole: %s" @@ -275,7 +275,7 @@ public class AppRoleAuthentication implements ClientAuthentication, Authenticati ResponseEntity entity = this.restOperations.exchange(unwrappingEndpoints.getPath(), unwrappingEndpoints.getUnwrapRequestMethod(), createHttpEntity(token), VaultResponse.class); - VaultResponse response = unwrappingEndpoints.unwrap(entity.getBody()); + VaultResponse response = unwrappingEndpoints.unwrap(ResponseUtil.getRequiredBody(entity)); return (String) response.getRequiredData().get("secret_id"); } diff --git a/spring-vault-core/src/main/java/org/springframework/vault/authentication/AppRoleAuthenticationOptions.java b/spring-vault-core/src/main/java/org/springframework/vault/authentication/AppRoleAuthenticationOptions.java index a838b2a3..306382fa 100644 --- a/spring-vault-core/src/main/java/org/springframework/vault/authentication/AppRoleAuthenticationOptions.java +++ b/spring-vault-core/src/main/java/org/springframework/vault/authentication/AppRoleAuthenticationOptions.java @@ -15,7 +15,8 @@ */ package org.springframework.vault.authentication; -import org.springframework.lang.Nullable; +import org.jspecify.annotations.Nullable; + import org.springframework.util.Assert; import org.springframework.vault.authentication.AppRoleTokens.AbsentSecretId; import org.springframework.vault.authentication.AppRoleTokens.Provided; diff --git a/spring-vault-core/src/main/java/org/springframework/vault/authentication/AuthenticationSteps.java b/spring-vault-core/src/main/java/org/springframework/vault/authentication/AuthenticationSteps.java index 3a188b62..89684f09 100644 --- a/spring-vault-core/src/main/java/org/springframework/vault/authentication/AuthenticationSteps.java +++ b/spring-vault-core/src/main/java/org/springframework/vault/authentication/AuthenticationSteps.java @@ -24,10 +24,11 @@ import java.util.function.Consumer; import java.util.function.Function; import java.util.function.Supplier; +import org.jspecify.annotations.Nullable; + import org.springframework.http.HttpEntity; import org.springframework.http.HttpHeaders; import org.springframework.http.HttpMethod; -import org.springframework.lang.Nullable; import org.springframework.util.Assert; import org.springframework.vault.support.VaultResponse; import org.springframework.vault.support.VaultToken; @@ -298,8 +299,7 @@ public class AuthenticationSteps { @Nullable String uriTemplate; - @Nullable - String[] urlVariables; + String @Nullable[] urlVariables; @Nullable HttpEntity entity; @@ -379,14 +379,14 @@ public class AuthenticationSteps { this.uri = uri; } - private HttpRequestBuilder(HttpMethod method, @Nullable String uriTemplate, @Nullable String[] urlVariables) { + private HttpRequestBuilder(HttpMethod method, @Nullable String uriTemplate, String @Nullable[] urlVariables) { this.method = method; this.uriTemplate = uriTemplate; this.urlVariables = urlVariables; } private HttpRequestBuilder(HttpMethod method, @Nullable URI uri, @Nullable String uriTemplate, - @Nullable String[] urlVariables, @Nullable HttpEntity entity) { + String @Nullable[] urlVariables, @Nullable HttpEntity entity) { this.method = method; this.uri = uri; this.uriTemplate = uriTemplate; @@ -448,8 +448,8 @@ public class AuthenticationSteps { @Nullable final String uriTemplate; - @Nullable - final String[] urlVariables; + + final String @Nullable[] urlVariables; @Nullable final HttpEntity entity; @@ -485,8 +485,7 @@ public class AuthenticationSteps { return this.uriTemplate; } - @Nullable - String[] getUrlVariables() { + String @Nullable[] getUrlVariables() { return this.urlVariables; } diff --git a/spring-vault-core/src/main/java/org/springframework/vault/authentication/AuthenticationStepsExecutor.java b/spring-vault-core/src/main/java/org/springframework/vault/authentication/AuthenticationStepsExecutor.java index a1219298..1d08dc8d 100644 --- a/spring-vault-core/src/main/java/org/springframework/vault/authentication/AuthenticationStepsExecutor.java +++ b/spring-vault-core/src/main/java/org/springframework/vault/authentication/AuthenticationStepsExecutor.java @@ -17,11 +17,11 @@ package org.springframework.vault.authentication; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; +import org.jspecify.annotations.Nullable; import org.springframework.http.HttpEntity; import org.springframework.http.HttpHeaders; import org.springframework.http.ResponseEntity; -import org.springframework.lang.Nullable; import org.springframework.util.Assert; import org.springframework.vault.VaultException; import org.springframework.vault.authentication.AuthenticationSteps.HttpRequest; @@ -71,7 +71,6 @@ public class AuthenticationStepsExecutor implements ClientAuthentication { } @Override - @SuppressWarnings("unchecked") public VaultToken login() throws VaultException { Iterable> steps = this.chain.steps; 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 7d69969d..d278b87f 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 @@ -155,6 +155,7 @@ public class AuthenticationStepsOperator implements VaultTokenSupplier { return state; } + @SuppressWarnings({"NullAway", "DataFlowIssue"}) private Mono doHttpRequest(HttpRequestNode step, Object state) { HttpRequest definition = step.getDefinition(); @@ -164,7 +165,7 @@ public class AuthenticationStepsOperator implements VaultTokenSupplier { if (definition.getUri() == null) { spec = this.webClient.method(definition.getMethod()) - .uri(definition.getUriTemplate(), definition.getUrlVariables()); + .uri(definition.getUriTemplate(), (Object[]) definition.getUrlVariables()); } else { spec = this.webClient.method(definition.getMethod()).uri(definition.getUri()); diff --git a/spring-vault-core/src/main/java/org/springframework/vault/authentication/AwsEc2Authentication.java b/spring-vault-core/src/main/java/org/springframework/vault/authentication/AwsEc2Authentication.java index 1745a2ec..44c44cee 100644 --- a/spring-vault-core/src/main/java/org/springframework/vault/authentication/AwsEc2Authentication.java +++ b/spring-vault-core/src/main/java/org/springframework/vault/authentication/AwsEc2Authentication.java @@ -256,7 +256,7 @@ public class AwsEc2Authentication implements ClientAuthentication, Authenticatio throw new HttpClientErrorException(exchange.getStatusCode()); } - return exchange.getBody(); + return ResponseUtil.getRequiredBody(exchange); } catch (RestClientException e) { throw new VaultLoginException( diff --git a/spring-vault-core/src/main/java/org/springframework/vault/authentication/AwsEc2AuthenticationOptions.java b/spring-vault-core/src/main/java/org/springframework/vault/authentication/AwsEc2AuthenticationOptions.java index 90d12e12..c93cc847 100644 --- a/spring-vault-core/src/main/java/org/springframework/vault/authentication/AwsEc2AuthenticationOptions.java +++ b/spring-vault-core/src/main/java/org/springframework/vault/authentication/AwsEc2AuthenticationOptions.java @@ -20,7 +20,8 @@ import java.time.Duration; import java.util.Arrays; import java.util.UUID; -import org.springframework.lang.Nullable; +import org.jspecify.annotations.Nullable; + import org.springframework.util.Assert; /** diff --git a/spring-vault-core/src/main/java/org/springframework/vault/authentication/AwsIamAuthentication.java b/spring-vault-core/src/main/java/org/springframework/vault/authentication/AwsIamAuthentication.java index ba84fb42..904ef750 100644 --- a/spring-vault-core/src/main/java/org/springframework/vault/authentication/AwsIamAuthentication.java +++ b/spring-vault-core/src/main/java/org/springframework/vault/authentication/AwsIamAuthentication.java @@ -22,7 +22,6 @@ import java.util.HashMap; import java.util.LinkedHashMap; import java.util.List; import java.util.Map; -import java.util.Map.Entry; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ObjectMapper; @@ -230,14 +229,8 @@ public class AwsIamAuthentication implements ClientAuthentication, Authenticatio .build(); SdkHttpFullRequest signedRequest = signer.sign(request, signerParams); - Map map = new LinkedHashMap<>(); - - for (Entry> entry : signedRequest.headers().entrySet()) { - map.put(entry.getKey(), entry.getValue()); - } - try { - return OBJECT_MAPPER.writeValueAsString(map); + return OBJECT_MAPPER.writeValueAsString(new LinkedHashMap<>(signedRequest.headers())); } catch (JsonProcessingException e) { throw new IllegalStateException("Cannot serialize headers to JSON", e); diff --git a/spring-vault-core/src/main/java/org/springframework/vault/authentication/AwsIamAuthenticationOptions.java b/spring-vault-core/src/main/java/org/springframework/vault/authentication/AwsIamAuthenticationOptions.java index 050e5997..e22222d2 100644 --- a/spring-vault-core/src/main/java/org/springframework/vault/authentication/AwsIamAuthenticationOptions.java +++ b/spring-vault-core/src/main/java/org/springframework/vault/authentication/AwsIamAuthenticationOptions.java @@ -17,6 +17,7 @@ package org.springframework.vault.authentication; import java.net.URI; +import org.jspecify.annotations.Nullable; import software.amazon.awssdk.auth.credentials.AwsCredentials; import software.amazon.awssdk.auth.credentials.AwsCredentialsProvider; import software.amazon.awssdk.auth.credentials.StaticCredentialsProvider; @@ -24,7 +25,6 @@ import software.amazon.awssdk.regions.Region; import software.amazon.awssdk.regions.providers.AwsRegionProvider; import software.amazon.awssdk.regions.providers.DefaultAwsRegionProviderChain; -import org.springframework.lang.Nullable; import org.springframework.util.Assert; /** diff --git a/spring-vault-core/src/main/java/org/springframework/vault/authentication/AzureMsiAuthentication.java b/spring-vault-core/src/main/java/org/springframework/vault/authentication/AzureMsiAuthentication.java index 55905792..4bb4a95d 100644 --- a/spring-vault-core/src/main/java/org/springframework/vault/authentication/AzureMsiAuthentication.java +++ b/spring-vault-core/src/main/java/org/springframework/vault/authentication/AzureMsiAuthentication.java @@ -20,12 +20,12 @@ import java.util.Map; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; +import org.jspecify.annotations.Nullable; import org.springframework.http.HttpEntity; import org.springframework.http.HttpHeaders; import org.springframework.http.HttpMethod; import org.springframework.http.ResponseEntity; -import org.springframework.lang.Nullable; import org.springframework.util.Assert; import org.springframework.vault.VaultException; import org.springframework.vault.authentication.AuthenticationSteps.HttpRequestBuilder; @@ -190,7 +190,7 @@ public class AzureMsiAuthentication implements ClientAuthentication, Authenticat ResponseEntity response = this.azureMetadataRestOperations .exchange(this.options.getIdentityTokenServiceUri(), HttpMethod.GET, METADATA_HEADERS, Map.class); - return (String) response.getBody().get("access_token"); + return (String) ResponseUtil.getRequiredBody(response).get("access_token"); } private AzureVmEnvironment getVmEnvironment() { @@ -205,7 +205,7 @@ public class AzureMsiAuthentication implements ClientAuthentication, Authenticat ResponseEntity response = this.azureMetadataRestOperations .exchange(this.options.getInstanceMetadataServiceUri(), HttpMethod.GET, METADATA_HEADERS, Map.class); - return toAzureVmEnvironment(response.getBody()); + return toAzureVmEnvironment(ResponseUtil.getRequiredBody(response)); } @SuppressWarnings("unchecked") diff --git a/spring-vault-core/src/main/java/org/springframework/vault/authentication/AzureMsiAuthenticationOptions.java b/spring-vault-core/src/main/java/org/springframework/vault/authentication/AzureMsiAuthenticationOptions.java index 77097f47..9afce8c2 100644 --- a/spring-vault-core/src/main/java/org/springframework/vault/authentication/AzureMsiAuthenticationOptions.java +++ b/spring-vault-core/src/main/java/org/springframework/vault/authentication/AzureMsiAuthenticationOptions.java @@ -17,7 +17,8 @@ package org.springframework.vault.authentication; import java.net.URI; -import org.springframework.lang.Nullable; +import org.jspecify.annotations.Nullable; + import org.springframework.util.Assert; /** diff --git a/spring-vault-core/src/main/java/org/springframework/vault/authentication/ClientCertificateAuthentication.java b/spring-vault-core/src/main/java/org/springframework/vault/authentication/ClientCertificateAuthentication.java index 9ba4b32c..46060bd2 100644 --- a/spring-vault-core/src/main/java/org/springframework/vault/authentication/ClientCertificateAuthentication.java +++ b/spring-vault-core/src/main/java/org/springframework/vault/authentication/ClientCertificateAuthentication.java @@ -108,6 +108,7 @@ public class ClientCertificateAuthentication implements ClientAuthentication, Au VaultResponse response = this.restOperations .postForObject(AuthenticationUtil.getLoginPath(this.options.getPath()), request, VaultResponse.class); + Assert.state(response != null, "Response must not be null"); Assert.state(response.getAuth() != null, "Auth field must not be null"); logger.debug("Login successful using TLS certificates"); diff --git a/spring-vault-core/src/main/java/org/springframework/vault/authentication/ClientCertificateAuthenticationOptions.java b/spring-vault-core/src/main/java/org/springframework/vault/authentication/ClientCertificateAuthenticationOptions.java index 23d9d405..464009e5 100644 --- a/spring-vault-core/src/main/java/org/springframework/vault/authentication/ClientCertificateAuthenticationOptions.java +++ b/spring-vault-core/src/main/java/org/springframework/vault/authentication/ClientCertificateAuthenticationOptions.java @@ -15,7 +15,8 @@ */ package org.springframework.vault.authentication; -import org.springframework.lang.Nullable; +import org.jspecify.annotations.Nullable; + import org.springframework.util.Assert; /** diff --git a/spring-vault-core/src/main/java/org/springframework/vault/authentication/CubbyholeAuthentication.java b/spring-vault-core/src/main/java/org/springframework/vault/authentication/CubbyholeAuthentication.java index 59a281ee..6b61445b 100644 --- a/spring-vault-core/src/main/java/org/springframework/vault/authentication/CubbyholeAuthentication.java +++ b/spring-vault-core/src/main/java/org/springframework/vault/authentication/CubbyholeAuthentication.java @@ -23,7 +23,6 @@ import org.apache.commons.logging.LogFactory; import org.springframework.http.HttpEntity; import org.springframework.http.HttpMethod; import org.springframework.http.ResponseEntity; -import org.springframework.lang.Nullable; import org.springframework.util.Assert; import org.springframework.vault.VaultException; import org.springframework.vault.authentication.AuthenticationSteps.HttpRequest; @@ -201,7 +200,6 @@ public class CubbyholeAuthentication implements ClientAuthentication, Authentica return createAuthenticationSteps(this.options); } - @Nullable private VaultResponse lookupToken(String url) { try { @@ -210,9 +208,7 @@ public class CubbyholeAuthentication implements ClientAuthentication, Authentica ResponseEntity entity = this.restOperations.exchange(url, unwrapMethod, requestEntity, VaultResponse.class); - Assert.state(entity.getBody() != null, "Auth response must not be null"); - - return entity.getBody(); + return ResponseUtil.getRequiredBody(entity); } catch (RestClientException e) { throw VaultLoginException.create("Cubbyhole", e); diff --git a/spring-vault-core/src/main/java/org/springframework/vault/authentication/CubbyholeAuthenticationOptions.java b/spring-vault-core/src/main/java/org/springframework/vault/authentication/CubbyholeAuthenticationOptions.java index b918218e..fb66602c 100644 --- a/spring-vault-core/src/main/java/org/springframework/vault/authentication/CubbyholeAuthenticationOptions.java +++ b/spring-vault-core/src/main/java/org/springframework/vault/authentication/CubbyholeAuthenticationOptions.java @@ -15,7 +15,8 @@ */ package org.springframework.vault.authentication; -import org.springframework.lang.Nullable; +import org.jspecify.annotations.Nullable; + import org.springframework.util.Assert; import org.springframework.vault.support.VaultToken; diff --git a/spring-vault-core/src/main/java/org/springframework/vault/authentication/GcpComputeAuthentication.java b/spring-vault-core/src/main/java/org/springframework/vault/authentication/GcpComputeAuthentication.java index 2e2f63a6..a5b80be3 100644 --- a/spring-vault-core/src/main/java/org/springframework/vault/authentication/GcpComputeAuthentication.java +++ b/spring-vault-core/src/main/java/org/springframework/vault/authentication/GcpComputeAuthentication.java @@ -140,7 +140,7 @@ public class GcpComputeAuthentication extends GcpJwtAuthenticationSupport ResponseEntity response = this.googleMetadataRestOperations.exchange(COMPUTE_METADATA_URL_TEMPLATE, HttpMethod.GET, entity, String.class, urlParameters); - return response.getBody(); + return ResponseUtil.getRequiredBody(response); } catch (HttpStatusCodeException e) { throw new VaultLoginException("Cannot obtain signed identity", e); diff --git a/spring-vault-core/src/main/java/org/springframework/vault/authentication/GcpComputeAuthenticationOptions.java b/spring-vault-core/src/main/java/org/springframework/vault/authentication/GcpComputeAuthenticationOptions.java index be3c8ad2..e5d658b5 100644 --- a/spring-vault-core/src/main/java/org/springframework/vault/authentication/GcpComputeAuthenticationOptions.java +++ b/spring-vault-core/src/main/java/org/springframework/vault/authentication/GcpComputeAuthenticationOptions.java @@ -15,7 +15,8 @@ */ package org.springframework.vault.authentication; -import org.springframework.lang.Nullable; +import org.jspecify.annotations.Nullable; + import org.springframework.util.Assert; /** diff --git a/spring-vault-core/src/main/java/org/springframework/vault/authentication/GcpIamAuthenticationOptions.java b/spring-vault-core/src/main/java/org/springframework/vault/authentication/GcpIamAuthenticationOptions.java index a844ae5d..81e68906 100644 --- a/spring-vault-core/src/main/java/org/springframework/vault/authentication/GcpIamAuthenticationOptions.java +++ b/spring-vault-core/src/main/java/org/springframework/vault/authentication/GcpIamAuthenticationOptions.java @@ -20,8 +20,8 @@ import java.time.Duration; import com.google.api.client.auth.oauth2.Credential; import com.google.api.client.googleapis.auth.oauth2.GoogleCredential; +import org.jspecify.annotations.Nullable; -import org.springframework.lang.Nullable; import org.springframework.util.Assert; /** diff --git a/spring-vault-core/src/main/java/org/springframework/vault/authentication/GcpIamCredentialsAuthenticationOptions.java b/spring-vault-core/src/main/java/org/springframework/vault/authentication/GcpIamCredentialsAuthenticationOptions.java index 42a22678..43e42db6 100644 --- a/spring-vault-core/src/main/java/org/springframework/vault/authentication/GcpIamCredentialsAuthenticationOptions.java +++ b/spring-vault-core/src/main/java/org/springframework/vault/authentication/GcpIamCredentialsAuthenticationOptions.java @@ -20,8 +20,8 @@ import java.time.Duration; import com.google.auth.oauth2.GoogleCredentials; import com.google.auth.oauth2.ServiceAccountCredentials; +import org.jspecify.annotations.Nullable; -import org.springframework.lang.Nullable; import org.springframework.util.Assert; /** diff --git a/spring-vault-core/src/main/java/org/springframework/vault/authentication/GitHubAuthenticationOptions.java b/spring-vault-core/src/main/java/org/springframework/vault/authentication/GitHubAuthenticationOptions.java index 01abb1f6..9a827d57 100644 --- a/spring-vault-core/src/main/java/org/springframework/vault/authentication/GitHubAuthenticationOptions.java +++ b/spring-vault-core/src/main/java/org/springframework/vault/authentication/GitHubAuthenticationOptions.java @@ -17,7 +17,8 @@ package org.springframework.vault.authentication; import java.util.function.Supplier; -import org.springframework.lang.Nullable; +import org.jspecify.annotations.Nullable; + import org.springframework.util.Assert; /** diff --git a/spring-vault-core/src/main/java/org/springframework/vault/authentication/JwtAuthentication.java b/spring-vault-core/src/main/java/org/springframework/vault/authentication/JwtAuthentication.java index cbb880a5..b1d57c15 100644 --- a/spring-vault-core/src/main/java/org/springframework/vault/authentication/JwtAuthentication.java +++ b/spring-vault-core/src/main/java/org/springframework/vault/authentication/JwtAuthentication.java @@ -20,8 +20,8 @@ import java.util.Map; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; +import org.jspecify.annotations.Nullable; -import org.springframework.lang.Nullable; import org.springframework.util.Assert; import org.springframework.util.StringUtils; import org.springframework.vault.VaultException; diff --git a/spring-vault-core/src/main/java/org/springframework/vault/authentication/JwtAuthenticationOptions.java b/spring-vault-core/src/main/java/org/springframework/vault/authentication/JwtAuthenticationOptions.java index 7d99772c..f2b9c542 100644 --- a/spring-vault-core/src/main/java/org/springframework/vault/authentication/JwtAuthenticationOptions.java +++ b/spring-vault-core/src/main/java/org/springframework/vault/authentication/JwtAuthenticationOptions.java @@ -17,7 +17,8 @@ package org.springframework.vault.authentication; import java.util.function.Supplier; -import org.springframework.lang.Nullable; +import org.jspecify.annotations.Nullable; + import org.springframework.util.Assert; /** diff --git a/spring-vault-core/src/main/java/org/springframework/vault/authentication/KubernetesAuthenticationOptions.java b/spring-vault-core/src/main/java/org/springframework/vault/authentication/KubernetesAuthenticationOptions.java index ea5ddad8..97ea210f 100644 --- a/spring-vault-core/src/main/java/org/springframework/vault/authentication/KubernetesAuthenticationOptions.java +++ b/spring-vault-core/src/main/java/org/springframework/vault/authentication/KubernetesAuthenticationOptions.java @@ -17,7 +17,8 @@ package org.springframework.vault.authentication; import java.util.function.Supplier; -import org.springframework.lang.Nullable; +import org.jspecify.annotations.Nullable; + import org.springframework.util.Assert; /** diff --git a/spring-vault-core/src/main/java/org/springframework/vault/authentication/LifecycleAwareSessionManager.java b/spring-vault-core/src/main/java/org/springframework/vault/authentication/LifecycleAwareSessionManager.java index 395980d6..0794e03a 100644 --- a/spring-vault-core/src/main/java/org/springframework/vault/authentication/LifecycleAwareSessionManager.java +++ b/spring-vault-core/src/main/java/org/springframework/vault/authentication/LifecycleAwareSessionManager.java @@ -203,7 +203,7 @@ public class LifecycleAwareSessionManager extends LifecycleAwareSessionManagerSu this.logger.info("Renewing token"); Optional token = getToken(); - if (!token.isPresent()) { + if (token.isEmpty()) { getSessionToken(); return RenewOutcome.TERMINAL_ERROR; } @@ -266,11 +266,11 @@ public class LifecycleAwareSessionManager extends LifecycleAwareSessionManagerSu @Override public VaultToken getSessionToken() { - if (!getToken().isPresent()) { + if (getToken().isEmpty()) { this.lock.lock(); try { - if (!getToken().isPresent()) { + if (getToken().isEmpty()) { doGetSessionToken(); } } @@ -339,7 +339,7 @@ public class LifecycleAwareSessionManager extends LifecycleAwareSessionManagerSu Runnable task = () -> { Optional tokenWrapper = getToken(); - if (!tokenWrapper.isPresent()) { + if (tokenWrapper.isEmpty()) { return; } diff --git a/spring-vault-core/src/main/java/org/springframework/vault/authentication/LifecycleAwareSessionManagerSupport.java b/spring-vault-core/src/main/java/org/springframework/vault/authentication/LifecycleAwareSessionManagerSupport.java index 801f9c97..38996086 100644 --- a/spring-vault-core/src/main/java/org/springframework/vault/authentication/LifecycleAwareSessionManagerSupport.java +++ b/spring-vault-core/src/main/java/org/springframework/vault/authentication/LifecycleAwareSessionManagerSupport.java @@ -24,8 +24,8 @@ import java.util.concurrent.atomic.AtomicBoolean; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; +import org.jspecify.annotations.Nullable; -import org.springframework.lang.Nullable; import org.springframework.scheduling.TaskScheduler; import org.springframework.scheduling.Trigger; import org.springframework.scheduling.TriggerContext; @@ -181,8 +181,7 @@ public abstract class LifecycleAwareSessionManagerSupport extends Authentication private final AtomicBoolean fired = new AtomicBoolean(); - @Nullable - private final Instant nextExecutionTime; + private final @Nullable Instant nextExecutionTime; public OneShotTrigger(@Nullable Date nextExecutionTime) { this(nextExecutionTime != null ? nextExecutionTime.toInstant() : null); @@ -193,7 +192,7 @@ public abstract class LifecycleAwareSessionManagerSupport extends Authentication } @Override - public Instant nextExecution(TriggerContext triggerContext) { + public @Nullable Instant nextExecution(TriggerContext triggerContext) { return this.fired.compareAndSet(false, true) ? this.nextExecutionTime : null; } diff --git a/spring-vault-core/src/main/java/org/springframework/vault/authentication/LoginToken.java b/spring-vault-core/src/main/java/org/springframework/vault/authentication/LoginToken.java index a7bb3ec8..f6cc6daa 100644 --- a/spring-vault-core/src/main/java/org/springframework/vault/authentication/LoginToken.java +++ b/spring-vault-core/src/main/java/org/springframework/vault/authentication/LoginToken.java @@ -18,7 +18,8 @@ package org.springframework.vault.authentication; import java.time.Duration; import java.util.Arrays; -import org.springframework.lang.Nullable; +import org.jspecify.annotations.Nullable; + import org.springframework.util.Assert; import org.springframework.util.StringUtils; import org.springframework.vault.support.VaultToken; @@ -205,8 +206,8 @@ public class LoginToken extends VaultToken { */ public static class LoginTokenBuilder { - @Nullable - private char[] token; + + private char @Nullable[] token; private boolean renewable; diff --git a/spring-vault-core/src/main/java/org/springframework/vault/authentication/PcfAuthenticationOptions.java b/spring-vault-core/src/main/java/org/springframework/vault/authentication/PcfAuthenticationOptions.java index 8ebdb953..431046cb 100644 --- a/spring-vault-core/src/main/java/org/springframework/vault/authentication/PcfAuthenticationOptions.java +++ b/spring-vault-core/src/main/java/org/springframework/vault/authentication/PcfAuthenticationOptions.java @@ -18,7 +18,8 @@ package org.springframework.vault.authentication; import java.time.Clock; import java.util.function.Supplier; -import org.springframework.lang.Nullable; +import org.jspecify.annotations.Nullable; + import org.springframework.util.Assert; import org.springframework.util.ObjectUtils; diff --git a/spring-vault-core/src/main/java/org/springframework/vault/authentication/ResponseUtil.java b/spring-vault-core/src/main/java/org/springframework/vault/authentication/ResponseUtil.java new file mode 100644 index 00000000..f0141c93 --- /dev/null +++ b/spring-vault-core/src/main/java/org/springframework/vault/authentication/ResponseUtil.java @@ -0,0 +1,52 @@ +/* + * Copyright 2025 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.springframework.vault.authentication; + +import org.jspecify.annotations.Nullable; + +import org.springframework.http.ResponseEntity; +import org.springframework.vault.support.VaultResponseSupport; + +/** + * @author Mark Paluch + */ +class ResponseUtil { + + public static T getRequiredBody(ResponseEntity entity) { + + T body = entity.getBody(); + + if (body == null) { + throw new IllegalStateException("Expected non-null response body"); + } + + return body; + + } + + public static > T getRequiredData(ResponseEntity entity) { + return getRequiredBody(entity).getRequiredData(); + } + + public static > T getRequiredData(@Nullable R response) { + + if (response == null) { + throw new IllegalStateException("Expected non-null response body"); + } + + return response.getRequiredData(); + } +} diff --git a/spring-vault-core/src/main/java/org/springframework/vault/authentication/UsernamePasswordAuthenticationOptions.java b/spring-vault-core/src/main/java/org/springframework/vault/authentication/UsernamePasswordAuthenticationOptions.java index a6da3cd5..209211b9 100644 --- a/spring-vault-core/src/main/java/org/springframework/vault/authentication/UsernamePasswordAuthenticationOptions.java +++ b/spring-vault-core/src/main/java/org/springframework/vault/authentication/UsernamePasswordAuthenticationOptions.java @@ -15,7 +15,8 @@ */ package org.springframework.vault.authentication; -import org.springframework.lang.Nullable; +import org.jspecify.annotations.Nullable; + import org.springframework.util.Assert; /** diff --git a/spring-vault-core/src/main/java/org/springframework/vault/authentication/event/package-info.java b/spring-vault-core/src/main/java/org/springframework/vault/authentication/event/package-info.java index 88a0c93b..40c70fd4 100644 --- a/spring-vault-core/src/main/java/org/springframework/vault/authentication/event/package-info.java +++ b/spring-vault-core/src/main/java/org/springframework/vault/authentication/event/package-info.java @@ -1,6 +1,5 @@ /** * Support classes for authentication application events. */ -@org.springframework.lang.NonNullApi -@org.springframework.lang.NonNullFields +@org.jspecify.annotations.NullMarked package org.springframework.vault.authentication.event; diff --git a/spring-vault-core/src/main/java/org/springframework/vault/authentication/package-info.java b/spring-vault-core/src/main/java/org/springframework/vault/authentication/package-info.java index c44b841b..f0daaaa4 100644 --- a/spring-vault-core/src/main/java/org/springframework/vault/authentication/package-info.java +++ b/spring-vault-core/src/main/java/org/springframework/vault/authentication/package-info.java @@ -1,6 +1,5 @@ /** * Support for authentication and session management. */ -@org.springframework.lang.NonNullApi -@org.springframework.lang.NonNullFields +@org.jspecify.annotations.NullMarked package org.springframework.vault.authentication; diff --git a/spring-vault-core/src/main/java/org/springframework/vault/client/ClientConfiguration.java b/spring-vault-core/src/main/java/org/springframework/vault/client/ClientConfiguration.java index 8eb76740..ac07bbc4 100644 --- a/spring-vault-core/src/main/java/org/springframework/vault/client/ClientConfiguration.java +++ b/spring-vault-core/src/main/java/org/springframework/vault/client/ClientConfiguration.java @@ -39,11 +39,11 @@ import org.apache.commons.logging.LogFactory; import org.eclipse.jetty.client.transport.HttpClientTransportOverHTTP; import org.eclipse.jetty.io.ClientConnector; import org.eclipse.jetty.util.ssl.SslContextFactory; +import org.jspecify.annotations.Nullable; import reactor.netty.http.client.HttpClient; import org.springframework.http.client.ClientHttpRequestFactory; import org.springframework.http.client.reactive.ClientHttpConnector; -import org.springframework.lang.Nullable; import org.springframework.util.FileCopyUtils; import org.springframework.util.StringUtils; import org.springframework.vault.support.ClientOptions; @@ -69,7 +69,7 @@ class ClientConfiguration { } static SSLContext getSSLContext(SslConfiguration.KeyStoreConfiguration keyStoreConfiguration, - SslConfiguration.KeyConfiguration keyConfiguration, @Nullable TrustManager[] trustManagers) + SslConfiguration.KeyConfiguration keyConfiguration, TrustManager @Nullable[] trustManagers) throws GeneralSecurityException, IOException { KeyManager[] keyManagers = keyStoreConfiguration.isPresent() @@ -113,9 +113,9 @@ class ClientConfiguration { return keyStore; } - @Nullable - static TrustManager[] getTrustManagers(SslConfiguration sslConfiguration) - throws GeneralSecurityException, IOException { + + static TrustManager @Nullable[] getTrustManagers(SslConfiguration sslConfiguration) + throws GeneralSecurityException, IOException { return sslConfiguration.getTrustStoreConfiguration().isPresent() ? createTrustManagerFactory(sslConfiguration.getTrustStoreConfiguration()).getTrustManagers() : null; 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 068ea7d9..4e99d12a 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 @@ -26,13 +26,14 @@ import java.util.Map; import java.util.Set; import java.util.function.Supplier; +import org.jspecify.annotations.Nullable; + import org.springframework.http.HttpHeaders; import org.springframework.http.HttpMethod; import org.springframework.http.HttpRequest; import org.springframework.http.client.AbstractClientHttpRequestFactoryWrapper; import org.springframework.http.client.ClientHttpRequest; import org.springframework.http.client.ClientHttpRequestFactory; -import org.springframework.lang.Nullable; import org.springframework.util.Assert; import org.springframework.vault.support.ClientOptions; import org.springframework.vault.support.SslConfiguration; 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 7d3c2a21..5971d7fb 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 @@ -19,6 +19,8 @@ import java.net.URI; import java.util.ArrayList; import java.util.List; +import org.jspecify.annotations.Nullable; + import org.springframework.http.HttpHeaders; import org.springframework.http.client.ClientHttpRequestFactory; import org.springframework.http.client.ClientHttpRequestInterceptor; @@ -26,7 +28,6 @@ import org.springframework.http.converter.ByteArrayHttpMessageConverter; import org.springframework.http.converter.HttpMessageConverter; import org.springframework.http.converter.StringHttpMessageConverter; import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter; -import org.springframework.lang.Nullable; import org.springframework.util.Assert; import org.springframework.web.client.RestTemplate; import org.springframework.web.util.DefaultUriBuilderFactory; diff --git a/spring-vault-core/src/main/java/org/springframework/vault/client/VaultEndpoint.java b/spring-vault-core/src/main/java/org/springframework/vault/client/VaultEndpoint.java index 853d2c5f..f7b634f0 100644 --- a/spring-vault-core/src/main/java/org/springframework/vault/client/VaultEndpoint.java +++ b/spring-vault-core/src/main/java/org/springframework/vault/client/VaultEndpoint.java @@ -20,7 +20,8 @@ import java.net.MalformedURLException; import java.net.URI; import java.util.Objects; -import org.springframework.lang.Nullable; +import org.jspecify.annotations.Nullable; + import org.springframework.util.Assert; import org.springframework.util.StringUtils; 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 db1be517..7c5789e9 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 @@ -24,9 +24,10 @@ import java.util.Map; import java.util.Set; import java.util.function.Supplier; +import org.jspecify.annotations.Nullable; + import org.springframework.http.HttpRequest; import org.springframework.http.client.reactive.ClientHttpConnector; -import org.springframework.lang.Nullable; import org.springframework.util.Assert; import org.springframework.vault.support.ClientOptions; import org.springframework.vault.support.SslConfiguration; diff --git a/spring-vault-core/src/main/java/org/springframework/vault/client/package-info.java b/spring-vault-core/src/main/java/org/springframework/vault/client/package-info.java index 5c9ec697..f6e8f1d3 100644 --- a/spring-vault-core/src/main/java/org/springframework/vault/client/package-info.java +++ b/spring-vault-core/src/main/java/org/springframework/vault/client/package-info.java @@ -1,6 +1,5 @@ /** * Spring Vault Client abstraction. */ -@org.springframework.lang.NonNullApi -@org.springframework.lang.NonNullFields +@org.jspecify.annotations.NullMarked package org.springframework.vault.client; diff --git a/spring-vault-core/src/main/java/org/springframework/vault/config/AbstractVaultConfiguration.java b/spring-vault-core/src/main/java/org/springframework/vault/config/AbstractVaultConfiguration.java index 7f37024f..a8a07d64 100644 --- a/spring-vault-core/src/main/java/org/springframework/vault/config/AbstractVaultConfiguration.java +++ b/spring-vault-core/src/main/java/org/springframework/vault/config/AbstractVaultConfiguration.java @@ -15,6 +15,8 @@ */ package org.springframework.vault.config; +import org.jspecify.annotations.Nullable; + import org.springframework.beans.BeansException; import org.springframework.beans.factory.BeanFactory; import org.springframework.beans.factory.DisposableBean; @@ -26,7 +28,6 @@ import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.core.env.Environment; import org.springframework.http.client.ClientHttpRequestFactory; -import org.springframework.lang.Nullable; import org.springframework.scheduling.concurrent.ThreadPoolTaskScheduler; import org.springframework.util.Assert; import org.springframework.vault.authentication.ClientAuthentication; diff --git a/spring-vault-core/src/main/java/org/springframework/vault/config/DefaultRestTemplateFactory.java b/spring-vault-core/src/main/java/org/springframework/vault/config/DefaultRestTemplateFactory.java index fa6e5231..21cea45c 100644 --- a/spring-vault-core/src/main/java/org/springframework/vault/config/DefaultRestTemplateFactory.java +++ b/spring-vault-core/src/main/java/org/springframework/vault/config/DefaultRestTemplateFactory.java @@ -18,8 +18,9 @@ package org.springframework.vault.config; import java.util.function.Consumer; import java.util.function.Function; +import org.jspecify.annotations.Nullable; + import org.springframework.http.client.ClientHttpRequestFactory; -import org.springframework.lang.Nullable; import org.springframework.vault.client.RestTemplateBuilder; import org.springframework.vault.client.RestTemplateFactory; import org.springframework.web.client.RestTemplate; diff --git a/spring-vault-core/src/main/java/org/springframework/vault/config/DefaultWebClientFactory.java b/spring-vault-core/src/main/java/org/springframework/vault/config/DefaultWebClientFactory.java index 62331cd4..6dfabde2 100644 --- a/spring-vault-core/src/main/java/org/springframework/vault/config/DefaultWebClientFactory.java +++ b/spring-vault-core/src/main/java/org/springframework/vault/config/DefaultWebClientFactory.java @@ -18,8 +18,9 @@ package org.springframework.vault.config; import java.util.function.Consumer; import java.util.function.Function; +import org.jspecify.annotations.Nullable; + import org.springframework.http.client.reactive.ClientHttpConnector; -import org.springframework.lang.Nullable; import org.springframework.vault.client.WebClientBuilder; import org.springframework.vault.client.WebClientFactory; import org.springframework.web.reactive.function.client.WebClient; diff --git a/spring-vault-core/src/main/java/org/springframework/vault/config/EnvironmentVaultConfiguration.java b/spring-vault-core/src/main/java/org/springframework/vault/config/EnvironmentVaultConfiguration.java index dc8b90af..88972d57 100644 --- a/spring-vault-core/src/main/java/org/springframework/vault/config/EnvironmentVaultConfiguration.java +++ b/spring-vault-core/src/main/java/org/springframework/vault/config/EnvironmentVaultConfiguration.java @@ -23,6 +23,7 @@ import java.util.stream.Collectors; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; +import org.jspecify.annotations.Nullable; import software.amazon.awssdk.auth.credentials.DefaultCredentialsProvider; import org.springframework.beans.BeansException; @@ -30,7 +31,6 @@ import org.springframework.context.ApplicationContext; import org.springframework.context.ApplicationContextAware; import org.springframework.context.annotation.Configuration; import org.springframework.core.io.Resource; -import org.springframework.lang.Nullable; import org.springframework.util.Assert; import org.springframework.util.StringUtils; import org.springframework.vault.authentication.*; diff --git a/spring-vault-core/src/main/java/org/springframework/vault/config/package-info.java b/spring-vault-core/src/main/java/org/springframework/vault/config/package-info.java index 351f1436..0958e2ce 100644 --- a/spring-vault-core/src/main/java/org/springframework/vault/config/package-info.java +++ b/spring-vault-core/src/main/java/org/springframework/vault/config/package-info.java @@ -1,6 +1,5 @@ /** * Spring configuration for Vault. */ -@org.springframework.lang.NonNullApi -@org.springframework.lang.NonNullFields +@org.jspecify.annotations.NullMarked package org.springframework.vault.config; diff --git a/spring-vault-core/src/main/java/org/springframework/vault/core/KeyValueUtilities.java b/spring-vault-core/src/main/java/org/springframework/vault/core/KeyValueUtilities.java index f199a3ce..c254423e 100644 --- a/spring-vault-core/src/main/java/org/springframework/vault/core/KeyValueUtilities.java +++ b/spring-vault-core/src/main/java/org/springframework/vault/core/KeyValueUtilities.java @@ -11,7 +11,8 @@ import java.util.List; import java.util.Map; import java.util.stream.Collectors; -import org.springframework.lang.Nullable; +import org.jspecify.annotations.Nullable; + import org.springframework.util.Assert; import org.springframework.util.StringUtils; import org.springframework.vault.support.DurationParser; diff --git a/spring-vault-core/src/main/java/org/springframework/vault/core/PropertyMapper.java b/spring-vault-core/src/main/java/org/springframework/vault/core/PropertyMapper.java index 1b5c627b..ebdcb28f 100644 --- a/spring-vault-core/src/main/java/org/springframework/vault/core/PropertyMapper.java +++ b/spring-vault-core/src/main/java/org/springframework/vault/core/PropertyMapper.java @@ -23,7 +23,8 @@ import java.util.function.Function; import java.util.function.Predicate; import java.util.function.Supplier; -import org.springframework.lang.Nullable; +import org.jspecify.annotations.Nullable; + import org.springframework.util.Assert; import org.springframework.util.ObjectUtils; import org.springframework.util.StringUtils; diff --git a/spring-vault-core/src/main/java/org/springframework/vault/core/ReactiveVaultKeyValueAccessor.java b/spring-vault-core/src/main/java/org/springframework/vault/core/ReactiveVaultKeyValueAccessor.java index 80f1b869..856c4fa5 100644 --- a/spring-vault-core/src/main/java/org/springframework/vault/core/ReactiveVaultKeyValueAccessor.java +++ b/spring-vault-core/src/main/java/org/springframework/vault/core/ReactiveVaultKeyValueAccessor.java @@ -22,6 +22,7 @@ import java.util.function.Function; import com.fasterxml.jackson.core.type.TypeReference; import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.ObjectMapper; +import org.jspecify.annotations.Nullable; import reactor.core.publisher.Mono; import org.springframework.core.ParameterizedTypeReference; @@ -29,7 +30,6 @@ import org.springframework.http.HttpEntity; import org.springframework.http.HttpMethod; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; -import org.springframework.lang.Nullable; import org.springframework.util.Assert; import org.springframework.vault.VaultException; import org.springframework.vault.client.VaultResponses; diff --git a/spring-vault-core/src/main/java/org/springframework/vault/core/ReactiveVaultOperations.java b/spring-vault-core/src/main/java/org/springframework/vault/core/ReactiveVaultOperations.java index 4c26d22b..913178af 100644 --- a/spring-vault-core/src/main/java/org/springframework/vault/core/ReactiveVaultOperations.java +++ b/spring-vault-core/src/main/java/org/springframework/vault/core/ReactiveVaultOperations.java @@ -17,11 +17,11 @@ package org.springframework.vault.core; import java.util.function.Function; +import org.jspecify.annotations.Nullable; import org.reactivestreams.Publisher; import reactor.core.publisher.Flux; import reactor.core.publisher.Mono; -import org.springframework.lang.Nullable; import org.springframework.vault.VaultException; import org.springframework.vault.support.VaultResponse; import org.springframework.vault.support.VaultResponseSupport; diff --git a/spring-vault-core/src/main/java/org/springframework/vault/core/ReactiveVaultTemplate.java b/spring-vault-core/src/main/java/org/springframework/vault/core/ReactiveVaultTemplate.java index 239e710a..170e051f 100644 --- a/spring-vault-core/src/main/java/org/springframework/vault/core/ReactiveVaultTemplate.java +++ b/spring-vault-core/src/main/java/org/springframework/vault/core/ReactiveVaultTemplate.java @@ -18,6 +18,7 @@ package org.springframework.vault.core; import java.util.List; import java.util.function.Function; +import org.jspecify.annotations.Nullable; import org.reactivestreams.Publisher; import reactor.core.publisher.Flux; import reactor.core.publisher.Mono; @@ -25,7 +26,6 @@ import reactor.core.publisher.Mono; import org.springframework.core.ParameterizedTypeReference; import org.springframework.http.HttpMethod; import org.springframework.http.client.reactive.ClientHttpConnector; -import org.springframework.lang.Nullable; import org.springframework.util.Assert; import org.springframework.vault.VaultException; import org.springframework.vault.authentication.SessionManager; diff --git a/spring-vault-core/src/main/java/org/springframework/vault/core/ReactiveVaultVersionedKeyValueOperations.java b/spring-vault-core/src/main/java/org/springframework/vault/core/ReactiveVaultVersionedKeyValueOperations.java index fa05de6a..ed5f7735 100644 --- a/spring-vault-core/src/main/java/org/springframework/vault/core/ReactiveVaultVersionedKeyValueOperations.java +++ b/spring-vault-core/src/main/java/org/springframework/vault/core/ReactiveVaultVersionedKeyValueOperations.java @@ -1,11 +1,12 @@ package org.springframework.vault.core; import java.util.Map; -import org.springframework.lang.Nullable; + +import reactor.core.publisher.Mono; + import org.springframework.vault.support.Versioned; import org.springframework.vault.support.Versioned.Metadata; import org.springframework.vault.support.Versioned.Version; -import reactor.core.publisher.Mono; /** * Interface that specifies a basic set of Vault operations using Vault's versioned diff --git a/spring-vault-core/src/main/java/org/springframework/vault/core/RestOperationsCallback.java b/spring-vault-core/src/main/java/org/springframework/vault/core/RestOperationsCallback.java index 7a79e9fd..1627c605 100644 --- a/spring-vault-core/src/main/java/org/springframework/vault/core/RestOperationsCallback.java +++ b/spring-vault-core/src/main/java/org/springframework/vault/core/RestOperationsCallback.java @@ -15,7 +15,8 @@ */ package org.springframework.vault.core; -import org.springframework.lang.Nullable; +import org.jspecify.annotations.Nullable; + import org.springframework.web.client.RestOperations; /** diff --git a/spring-vault-core/src/main/java/org/springframework/vault/core/VaultKeyValue1Template.java b/spring-vault-core/src/main/java/org/springframework/vault/core/VaultKeyValue1Template.java index 2eedc8d2..495f58df 100644 --- a/spring-vault-core/src/main/java/org/springframework/vault/core/VaultKeyValue1Template.java +++ b/spring-vault-core/src/main/java/org/springframework/vault/core/VaultKeyValue1Template.java @@ -19,8 +19,8 @@ import java.util.List; import java.util.Map; import com.fasterxml.jackson.databind.JsonNode; +import org.jspecify.annotations.Nullable; -import org.springframework.lang.Nullable; import org.springframework.util.Assert; import org.springframework.vault.support.VaultResponse; import org.springframework.vault.support.VaultResponseSupport; diff --git a/spring-vault-core/src/main/java/org/springframework/vault/core/VaultKeyValue2Accessor.java b/spring-vault-core/src/main/java/org/springframework/vault/core/VaultKeyValue2Accessor.java index 4912f92e..7ca869c5 100644 --- a/spring-vault-core/src/main/java/org/springframework/vault/core/VaultKeyValue2Accessor.java +++ b/spring-vault-core/src/main/java/org/springframework/vault/core/VaultKeyValue2Accessor.java @@ -19,9 +19,9 @@ import java.util.Collections; import java.util.List; import com.fasterxml.jackson.databind.JsonNode; +import org.jspecify.annotations.Nullable; import org.springframework.http.HttpMethod; -import org.springframework.lang.Nullable; import org.springframework.vault.support.VaultResponseSupport; /** diff --git a/spring-vault-core/src/main/java/org/springframework/vault/core/VaultKeyValue2Template.java b/spring-vault-core/src/main/java/org/springframework/vault/core/VaultKeyValue2Template.java index b73646fd..05678b4a 100644 --- a/spring-vault-core/src/main/java/org/springframework/vault/core/VaultKeyValue2Template.java +++ b/spring-vault-core/src/main/java/org/springframework/vault/core/VaultKeyValue2Template.java @@ -18,7 +18,8 @@ package org.springframework.vault.core; import java.util.Collections; import java.util.Map; -import org.springframework.lang.Nullable; +import org.jspecify.annotations.Nullable; + import org.springframework.util.Assert; import org.springframework.vault.VaultException; import org.springframework.vault.support.VaultResponse; diff --git a/spring-vault-core/src/main/java/org/springframework/vault/core/VaultKeyValueAccessor.java b/spring-vault-core/src/main/java/org/springframework/vault/core/VaultKeyValueAccessor.java index 20b64397..e511d979 100644 --- a/spring-vault-core/src/main/java/org/springframework/vault/core/VaultKeyValueAccessor.java +++ b/spring-vault-core/src/main/java/org/springframework/vault/core/VaultKeyValueAccessor.java @@ -23,6 +23,7 @@ import java.util.function.Function; import com.fasterxml.jackson.core.type.TypeReference; import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.ObjectMapper; +import org.jspecify.annotations.Nullable; import org.springframework.core.ParameterizedTypeReference; import org.springframework.http.HttpEntity; @@ -30,7 +31,6 @@ import org.springframework.http.HttpMethod; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter; -import org.springframework.lang.Nullable; import org.springframework.util.Assert; import org.springframework.vault.VaultException; import org.springframework.vault.client.VaultResponses; diff --git a/spring-vault-core/src/main/java/org/springframework/vault/core/VaultKeyValueMetadataOperations.java b/spring-vault-core/src/main/java/org/springframework/vault/core/VaultKeyValueMetadataOperations.java index fccc2141..6966cdd4 100644 --- a/spring-vault-core/src/main/java/org/springframework/vault/core/VaultKeyValueMetadataOperations.java +++ b/spring-vault-core/src/main/java/org/springframework/vault/core/VaultKeyValueMetadataOperations.java @@ -15,7 +15,8 @@ */ package org.springframework.vault.core; -import org.springframework.lang.Nullable; +import org.jspecify.annotations.Nullable; + import org.springframework.vault.support.VaultMetadataRequest; import org.springframework.vault.support.VaultMetadataResponse; diff --git a/spring-vault-core/src/main/java/org/springframework/vault/core/VaultKeyValueOperations.java b/spring-vault-core/src/main/java/org/springframework/vault/core/VaultKeyValueOperations.java index f480a258..17af0f24 100644 --- a/spring-vault-core/src/main/java/org/springframework/vault/core/VaultKeyValueOperations.java +++ b/spring-vault-core/src/main/java/org/springframework/vault/core/VaultKeyValueOperations.java @@ -17,7 +17,8 @@ package org.springframework.vault.core; import java.util.Map; -import org.springframework.lang.Nullable; +import org.jspecify.annotations.Nullable; + import org.springframework.vault.support.VaultResponse; import org.springframework.vault.support.VaultResponseSupport; diff --git a/spring-vault-core/src/main/java/org/springframework/vault/core/VaultKeyValueOperationsSupport.java b/spring-vault-core/src/main/java/org/springframework/vault/core/VaultKeyValueOperationsSupport.java index c7606582..a1cae258 100644 --- a/spring-vault-core/src/main/java/org/springframework/vault/core/VaultKeyValueOperationsSupport.java +++ b/spring-vault-core/src/main/java/org/springframework/vault/core/VaultKeyValueOperationsSupport.java @@ -17,7 +17,7 @@ package org.springframework.vault.core; import java.util.List; -import org.springframework.lang.Nullable; +import org.jspecify.annotations.Nullable; /** * Interface that specifies a basic set of Vault operations using Vault's Key/Value secret diff --git a/spring-vault-core/src/main/java/org/springframework/vault/core/VaultOperations.java b/spring-vault-core/src/main/java/org/springframework/vault/core/VaultOperations.java index fc0fe9aa..c2e6776b 100644 --- a/spring-vault-core/src/main/java/org/springframework/vault/core/VaultOperations.java +++ b/spring-vault-core/src/main/java/org/springframework/vault/core/VaultOperations.java @@ -17,7 +17,8 @@ package org.springframework.vault.core; import java.util.List; -import org.springframework.lang.Nullable; +import org.jspecify.annotations.Nullable; + import org.springframework.vault.VaultException; import org.springframework.vault.core.VaultKeyValueOperationsSupport.KeyValueBackend; import org.springframework.vault.support.VaultResponse; diff --git a/spring-vault-core/src/main/java/org/springframework/vault/core/VaultPkiOperations.java b/spring-vault-core/src/main/java/org/springframework/vault/core/VaultPkiOperations.java index dc5b698d..e791d836 100644 --- a/spring-vault-core/src/main/java/org/springframework/vault/core/VaultPkiOperations.java +++ b/spring-vault-core/src/main/java/org/springframework/vault/core/VaultPkiOperations.java @@ -17,7 +17,8 @@ package org.springframework.vault.core; import java.io.InputStream; -import org.springframework.lang.Nullable; +import org.jspecify.annotations.Nullable; + import org.springframework.vault.VaultException; import org.springframework.vault.support.CertificateBundle; import org.springframework.vault.support.VaultCertificateRequest; diff --git a/spring-vault-core/src/main/java/org/springframework/vault/core/VaultSysOperations.java b/spring-vault-core/src/main/java/org/springframework/vault/core/VaultSysOperations.java index 28b25609..490c3864 100644 --- a/spring-vault-core/src/main/java/org/springframework/vault/core/VaultSysOperations.java +++ b/spring-vault-core/src/main/java/org/springframework/vault/core/VaultSysOperations.java @@ -18,7 +18,8 @@ package org.springframework.vault.core; import java.util.List; import java.util.Map; -import org.springframework.lang.Nullable; +import org.jspecify.annotations.Nullable; + import org.springframework.vault.VaultException; import org.springframework.vault.support.Policy; import org.springframework.vault.support.VaultHealth; diff --git a/spring-vault-core/src/main/java/org/springframework/vault/core/VaultSysTemplate.java b/spring-vault-core/src/main/java/org/springframework/vault/core/VaultSysTemplate.java index 457e4c05..344c5602 100644 --- a/spring-vault-core/src/main/java/org/springframework/vault/core/VaultSysTemplate.java +++ b/spring-vault-core/src/main/java/org/springframework/vault/core/VaultSysTemplate.java @@ -29,13 +29,13 @@ import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.SerializationFeature; +import org.jspecify.annotations.Nullable; import org.springframework.core.ParameterizedTypeReference; import org.springframework.http.HttpEntity; import org.springframework.http.HttpHeaders; import org.springframework.http.HttpMethod; import org.springframework.http.ResponseEntity; -import org.springframework.lang.Nullable; import org.springframework.util.Assert; import org.springframework.util.ObjectUtils; import org.springframework.vault.VaultException; diff --git a/spring-vault-core/src/main/java/org/springframework/vault/core/VaultTemplate.java b/spring-vault-core/src/main/java/org/springframework/vault/core/VaultTemplate.java index c68cddd2..56791a43 100644 --- a/spring-vault-core/src/main/java/org/springframework/vault/core/VaultTemplate.java +++ b/spring-vault-core/src/main/java/org/springframework/vault/core/VaultTemplate.java @@ -18,6 +18,8 @@ package org.springframework.vault.core; import java.util.Collections; import java.util.List; +import org.jspecify.annotations.Nullable; + import org.springframework.beans.factory.DisposableBean; import org.springframework.beans.factory.InitializingBean; import org.springframework.core.ParameterizedTypeReference; @@ -26,7 +28,6 @@ import org.springframework.http.ResponseEntity; import org.springframework.http.client.ClientHttpRequestFactory; import org.springframework.http.client.ClientHttpRequestInterceptor; import org.springframework.http.client.SimpleClientHttpRequestFactory; -import org.springframework.lang.Nullable; import org.springframework.util.Assert; import org.springframework.vault.authentication.ClientAuthentication; import org.springframework.vault.authentication.SessionManager; diff --git a/spring-vault-core/src/main/java/org/springframework/vault/core/VaultTokenTemplate.java b/spring-vault-core/src/main/java/org/springframework/vault/core/VaultTokenTemplate.java index 3e3e67c1..d378c563 100644 --- a/spring-vault-core/src/main/java/org/springframework/vault/core/VaultTokenTemplate.java +++ b/spring-vault-core/src/main/java/org/springframework/vault/core/VaultTokenTemplate.java @@ -17,10 +17,11 @@ package org.springframework.vault.core; import java.util.Collections; +import org.jspecify.annotations.Nullable; + import org.springframework.http.HttpEntity; import org.springframework.http.HttpMethod; import org.springframework.http.ResponseEntity; -import org.springframework.lang.Nullable; import org.springframework.util.Assert; import org.springframework.vault.VaultException; import org.springframework.vault.client.VaultResponses; diff --git a/spring-vault-core/src/main/java/org/springframework/vault/core/VaultTransitOperations.java b/spring-vault-core/src/main/java/org/springframework/vault/core/VaultTransitOperations.java index 623509fa..96276352 100644 --- a/spring-vault-core/src/main/java/org/springframework/vault/core/VaultTransitOperations.java +++ b/spring-vault-core/src/main/java/org/springframework/vault/core/VaultTransitOperations.java @@ -17,7 +17,8 @@ package org.springframework.vault.core; import java.util.List; -import org.springframework.lang.Nullable; +import org.jspecify.annotations.Nullable; + import org.springframework.vault.support.*; /** diff --git a/spring-vault-core/src/main/java/org/springframework/vault/core/VaultTransitTemplate.java b/spring-vault-core/src/main/java/org/springframework/vault/core/VaultTransitTemplate.java index 84be6be6..754b1818 100644 --- a/spring-vault-core/src/main/java/org/springframework/vault/core/VaultTransitTemplate.java +++ b/spring-vault-core/src/main/java/org/springframework/vault/core/VaultTransitTemplate.java @@ -25,8 +25,8 @@ import java.util.Objects; import java.util.function.Function; import com.fasterxml.jackson.annotation.JsonProperty; +import org.jspecify.annotations.Nullable; -import org.springframework.lang.Nullable; import org.springframework.util.Assert; import org.springframework.util.ObjectUtils; import org.springframework.util.StringUtils; diff --git a/spring-vault-core/src/main/java/org/springframework/vault/core/VaultVersionedKeyValueOperations.java b/spring-vault-core/src/main/java/org/springframework/vault/core/VaultVersionedKeyValueOperations.java index 3bee8715..b2678787 100644 --- a/spring-vault-core/src/main/java/org/springframework/vault/core/VaultVersionedKeyValueOperations.java +++ b/spring-vault-core/src/main/java/org/springframework/vault/core/VaultVersionedKeyValueOperations.java @@ -17,7 +17,8 @@ package org.springframework.vault.core; import java.util.Map; -import org.springframework.lang.Nullable; +import org.jspecify.annotations.Nullable; + import org.springframework.vault.support.Versioned; import org.springframework.vault.support.Versioned.Metadata; import org.springframework.vault.support.Versioned.Version; diff --git a/spring-vault-core/src/main/java/org/springframework/vault/core/VaultVersionedKeyValueTemplate.java b/spring-vault-core/src/main/java/org/springframework/vault/core/VaultVersionedKeyValueTemplate.java index 47e24a11..ed29b677 100644 --- a/spring-vault-core/src/main/java/org/springframework/vault/core/VaultVersionedKeyValueTemplate.java +++ b/spring-vault-core/src/main/java/org/springframework/vault/core/VaultVersionedKeyValueTemplate.java @@ -23,9 +23,9 @@ import java.util.Map; import java.util.stream.Collectors; import com.fasterxml.jackson.databind.JsonNode; +import org.jspecify.annotations.Nullable; import org.springframework.http.HttpMethod; -import org.springframework.lang.Nullable; import org.springframework.util.Assert; import org.springframework.vault.client.VaultResponses; import org.springframework.vault.support.VaultResponse; diff --git a/spring-vault-core/src/main/java/org/springframework/vault/core/VaultWrappingOperations.java b/spring-vault-core/src/main/java/org/springframework/vault/core/VaultWrappingOperations.java index abe391c3..3cb053a0 100644 --- a/spring-vault-core/src/main/java/org/springframework/vault/core/VaultWrappingOperations.java +++ b/spring-vault-core/src/main/java/org/springframework/vault/core/VaultWrappingOperations.java @@ -17,7 +17,8 @@ package org.springframework.vault.core; import java.time.Duration; -import org.springframework.lang.Nullable; +import org.jspecify.annotations.Nullable; + import org.springframework.vault.VaultException; import org.springframework.vault.support.VaultResponse; import org.springframework.vault.support.VaultResponseSupport; diff --git a/spring-vault-core/src/main/java/org/springframework/vault/core/VaultWrappingTemplate.java b/spring-vault-core/src/main/java/org/springframework/vault/core/VaultWrappingTemplate.java index 1f7ac0a1..ac9e67ea 100644 --- a/spring-vault-core/src/main/java/org/springframework/vault/core/VaultWrappingTemplate.java +++ b/spring-vault-core/src/main/java/org/springframework/vault/core/VaultWrappingTemplate.java @@ -23,11 +23,12 @@ import java.util.Collections; import java.util.Map; import java.util.function.BiFunction; +import org.jspecify.annotations.Nullable; + import org.springframework.core.ParameterizedTypeReference; import org.springframework.http.HttpEntity; import org.springframework.http.HttpHeaders; import org.springframework.http.HttpMethod; -import org.springframework.lang.Nullable; import org.springframework.util.Assert; import org.springframework.util.StringUtils; import org.springframework.vault.VaultException; diff --git a/spring-vault-core/src/main/java/org/springframework/vault/core/env/LeaseAwareVaultPropertySource.java b/spring-vault-core/src/main/java/org/springframework/vault/core/env/LeaseAwareVaultPropertySource.java index e707f2bd..d10fb87a 100644 --- a/spring-vault-core/src/main/java/org/springframework/vault/core/env/LeaseAwareVaultPropertySource.java +++ b/spring-vault-core/src/main/java/org/springframework/vault/core/env/LeaseAwareVaultPropertySource.java @@ -23,10 +23,10 @@ import java.util.concurrent.ConcurrentHashMap; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; +import org.jspecify.annotations.Nullable; import org.springframework.core.env.EnumerablePropertySource; import org.springframework.core.env.PropertySource; -import org.springframework.lang.Nullable; import org.springframework.util.Assert; import org.springframework.vault.core.VaultOperations; import org.springframework.vault.core.lease.SecretLeaseContainer; diff --git a/spring-vault-core/src/main/java/org/springframework/vault/core/env/VaultPropertySource.java b/spring-vault-core/src/main/java/org/springframework/vault/core/env/VaultPropertySource.java index e0d92cbe..2a3d90dd 100644 --- a/spring-vault-core/src/main/java/org/springframework/vault/core/env/VaultPropertySource.java +++ b/spring-vault-core/src/main/java/org/springframework/vault/core/env/VaultPropertySource.java @@ -22,10 +22,10 @@ import java.util.concurrent.locks.ReentrantLock; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; +import org.jspecify.annotations.Nullable; import org.springframework.core.env.EnumerablePropertySource; import org.springframework.core.env.PropertySource; -import org.springframework.lang.Nullable; import org.springframework.util.Assert; import org.springframework.vault.VaultException; import org.springframework.vault.core.VaultOperations; diff --git a/spring-vault-core/src/main/java/org/springframework/vault/core/env/package-info.java b/spring-vault-core/src/main/java/org/springframework/vault/core/env/package-info.java index 49ff7a84..cb09b948 100644 --- a/spring-vault-core/src/main/java/org/springframework/vault/core/env/package-info.java +++ b/spring-vault-core/src/main/java/org/springframework/vault/core/env/package-info.java @@ -1,6 +1,5 @@ /** * Spring Vault's environment abstraction consisting property source support. */ -@org.springframework.lang.NonNullApi -@org.springframework.lang.NonNullFields +@org.jspecify.annotations.NullMarked package org.springframework.vault.core.env; diff --git a/spring-vault-core/src/main/java/org/springframework/vault/core/lease/SecretLeaseContainer.java b/spring-vault-core/src/main/java/org/springframework/vault/core/lease/SecretLeaseContainer.java index c8ad5e9a..970883ac 100644 --- a/spring-vault-core/src/main/java/org/springframework/vault/core/lease/SecretLeaseContainer.java +++ b/spring-vault-core/src/main/java/org/springframework/vault/core/lease/SecretLeaseContainer.java @@ -38,12 +38,12 @@ import java.util.function.Predicate; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; +import org.jspecify.annotations.Nullable; import org.springframework.beans.factory.DisposableBean; import org.springframework.beans.factory.InitializingBean; import org.springframework.context.SmartLifecycle; import org.springframework.http.HttpStatus; -import org.springframework.lang.Nullable; import org.springframework.scheduling.TaskScheduler; import org.springframework.scheduling.Trigger; import org.springframework.scheduling.TriggerContext; diff --git a/spring-vault-core/src/main/java/org/springframework/vault/core/lease/SecretLeaseEventPublisher.java b/spring-vault-core/src/main/java/org/springframework/vault/core/lease/SecretLeaseEventPublisher.java index 2ba1f89a..0d868293 100644 --- a/spring-vault-core/src/main/java/org/springframework/vault/core/lease/SecretLeaseEventPublisher.java +++ b/spring-vault-core/src/main/java/org/springframework/vault/core/lease/SecretLeaseEventPublisher.java @@ -21,9 +21,9 @@ import java.util.concurrent.CopyOnWriteArraySet; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; +import org.jspecify.annotations.Nullable; import org.springframework.beans.factory.InitializingBean; -import org.springframework.lang.Nullable; import org.springframework.util.Assert; import org.springframework.vault.core.lease.domain.Lease; import org.springframework.vault.core.lease.domain.RequestedSecret; diff --git a/spring-vault-core/src/main/java/org/springframework/vault/core/lease/domain/Lease.java b/spring-vault-core/src/main/java/org/springframework/vault/core/lease/domain/Lease.java index 424c7d63..b01a67ce 100644 --- a/spring-vault-core/src/main/java/org/springframework/vault/core/lease/domain/Lease.java +++ b/spring-vault-core/src/main/java/org/springframework/vault/core/lease/domain/Lease.java @@ -17,7 +17,8 @@ package org.springframework.vault.core.lease.domain; import java.time.Duration; -import org.springframework.lang.Nullable; +import org.jspecify.annotations.Nullable; + import org.springframework.util.Assert; /** diff --git a/spring-vault-core/src/main/java/org/springframework/vault/core/lease/domain/package-info.java b/spring-vault-core/src/main/java/org/springframework/vault/core/lease/domain/package-info.java index ec9c4db5..5f5018aa 100644 --- a/spring-vault-core/src/main/java/org/springframework/vault/core/lease/domain/package-info.java +++ b/spring-vault-core/src/main/java/org/springframework/vault/core/lease/domain/package-info.java @@ -1,6 +1,5 @@ /** * Lease domain classes. */ -@org.springframework.lang.NonNullApi -@org.springframework.lang.NonNullFields +@org.jspecify.annotations.NullMarked package org.springframework.vault.core.lease.domain; diff --git a/spring-vault-core/src/main/java/org/springframework/vault/core/lease/event/SecretLeaseErrorEvent.java b/spring-vault-core/src/main/java/org/springframework/vault/core/lease/event/SecretLeaseErrorEvent.java index 844f83b8..428117e0 100644 --- a/spring-vault-core/src/main/java/org/springframework/vault/core/lease/event/SecretLeaseErrorEvent.java +++ b/spring-vault-core/src/main/java/org/springframework/vault/core/lease/event/SecretLeaseErrorEvent.java @@ -17,7 +17,8 @@ package org.springframework.vault.core.lease.event; import java.io.Serial; -import org.springframework.lang.Nullable; +import org.jspecify.annotations.Nullable; + import org.springframework.vault.core.lease.domain.Lease; import org.springframework.vault.core.lease.domain.RequestedSecret; diff --git a/spring-vault-core/src/main/java/org/springframework/vault/core/lease/event/SecretLeaseEvent.java b/spring-vault-core/src/main/java/org/springframework/vault/core/lease/event/SecretLeaseEvent.java index fad8725c..6eea2546 100644 --- a/spring-vault-core/src/main/java/org/springframework/vault/core/lease/event/SecretLeaseEvent.java +++ b/spring-vault-core/src/main/java/org/springframework/vault/core/lease/event/SecretLeaseEvent.java @@ -17,8 +17,9 @@ package org.springframework.vault.core.lease.event; import java.io.Serial; +import org.jspecify.annotations.Nullable; + import org.springframework.context.ApplicationEvent; -import org.springframework.lang.Nullable; import org.springframework.vault.core.lease.domain.Lease; import org.springframework.vault.core.lease.domain.RequestedSecret; diff --git a/spring-vault-core/src/main/java/org/springframework/vault/core/lease/event/package-info.java b/spring-vault-core/src/main/java/org/springframework/vault/core/lease/event/package-info.java index 43cf4acb..7505dfc7 100644 --- a/spring-vault-core/src/main/java/org/springframework/vault/core/lease/event/package-info.java +++ b/spring-vault-core/src/main/java/org/springframework/vault/core/lease/event/package-info.java @@ -1,6 +1,5 @@ /** * Support classes for lease application events. */ -@org.springframework.lang.NonNullApi -@org.springframework.lang.NonNullFields +@org.jspecify.annotations.NullMarked package org.springframework.vault.core.lease.event; diff --git a/spring-vault-core/src/main/java/org/springframework/vault/core/lease/package-info.java b/spring-vault-core/src/main/java/org/springframework/vault/core/lease/package-info.java index 986da0f8..f81dfc7f 100644 --- a/spring-vault-core/src/main/java/org/springframework/vault/core/lease/package-info.java +++ b/spring-vault-core/src/main/java/org/springframework/vault/core/lease/package-info.java @@ -1,6 +1,5 @@ /** * The core package implementing lease renewal and secret rotation. */ -@org.springframework.lang.NonNullApi -@org.springframework.lang.NonNullFields +@org.jspecify.annotations.NullMarked package org.springframework.vault.core.lease; diff --git a/spring-vault-core/src/main/java/org/springframework/vault/core/package-info.java b/spring-vault-core/src/main/java/org/springframework/vault/core/package-info.java index 2db7821d..c419de80 100644 --- a/spring-vault-core/src/main/java/org/springframework/vault/core/package-info.java +++ b/spring-vault-core/src/main/java/org/springframework/vault/core/package-info.java @@ -1,6 +1,5 @@ /** * Vault core support. */ -@org.springframework.lang.NonNullApi -@org.springframework.lang.NonNullFields +@org.jspecify.annotations.NullMarked package org.springframework.vault.core; diff --git a/spring-vault-core/src/main/java/org/springframework/vault/core/util/KeyValueDelegate.java b/spring-vault-core/src/main/java/org/springframework/vault/core/util/KeyValueDelegate.java index caa3a559..735f6978 100644 --- a/spring-vault-core/src/main/java/org/springframework/vault/core/util/KeyValueDelegate.java +++ b/spring-vault-core/src/main/java/org/springframework/vault/core/util/KeyValueDelegate.java @@ -23,7 +23,7 @@ import java.util.function.Supplier; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; -import org.springframework.lang.Nullable; +import org.jspecify.annotations.Nullable; import org.springframework.util.ConcurrentReferenceHashMap; import org.springframework.util.StringUtils; import org.springframework.vault.VaultException; diff --git a/spring-vault-core/src/main/java/org/springframework/vault/core/util/package-info.java b/spring-vault-core/src/main/java/org/springframework/vault/core/util/package-info.java index 46d397e1..2fe77369 100644 --- a/spring-vault-core/src/main/java/org/springframework/vault/core/util/package-info.java +++ b/spring-vault-core/src/main/java/org/springframework/vault/core/util/package-info.java @@ -1,6 +1,5 @@ /** * Property transformer classes for Spring Vault core support. */ -@org.springframework.lang.NonNullApi -@org.springframework.lang.NonNullFields +@org.jspecify.annotations.NullMarked package org.springframework.vault.core.util; diff --git a/spring-vault-core/src/main/java/org/springframework/vault/package-info.java b/spring-vault-core/src/main/java/org/springframework/vault/package-info.java index 3fad8f92..94b3994f 100644 --- a/spring-vault-core/src/main/java/org/springframework/vault/package-info.java +++ b/spring-vault-core/src/main/java/org/springframework/vault/package-info.java @@ -1,6 +1,5 @@ /** * Spring support for Hashicorp Vault. */ -@org.springframework.lang.NonNullApi -@org.springframework.lang.NonNullFields +@org.jspecify.annotations.NullMarked package org.springframework.vault; diff --git a/spring-vault-core/src/main/java/org/springframework/vault/repository/configuration/package-info.java b/spring-vault-core/src/main/java/org/springframework/vault/repository/configuration/package-info.java index 8be9217f..5a560c5c 100644 --- a/spring-vault-core/src/main/java/org/springframework/vault/repository/configuration/package-info.java +++ b/spring-vault-core/src/main/java/org/springframework/vault/repository/configuration/package-info.java @@ -1,5 +1,5 @@ /** * Support infrastructure for the configuration of Vault specific repositories. */ -@org.springframework.lang.NonNullApi +@org.jspecify.annotations.NullMarked package org.springframework.vault.repository.configuration; diff --git a/spring-vault-core/src/main/java/org/springframework/vault/repository/convert/DefaultVaultTypeMapper.java b/spring-vault-core/src/main/java/org/springframework/vault/repository/convert/DefaultVaultTypeMapper.java index 8bef7a82..7c361c13 100644 --- a/spring-vault-core/src/main/java/org/springframework/vault/repository/convert/DefaultVaultTypeMapper.java +++ b/spring-vault-core/src/main/java/org/springframework/vault/repository/convert/DefaultVaultTypeMapper.java @@ -19,6 +19,8 @@ import java.util.Collections; import java.util.List; import java.util.Map; +import org.jspecify.annotations.Nullable; + import org.springframework.data.convert.DefaultTypeMapper; import org.springframework.data.convert.SimpleTypeInformationMapper; import org.springframework.data.convert.TypeAliasAccessor; @@ -27,7 +29,6 @@ import org.springframework.data.mapping.Alias; import org.springframework.data.mapping.PersistentEntity; import org.springframework.data.mapping.context.MappingContext; import org.springframework.data.util.TypeInformation; -import org.springframework.lang.Nullable; /** * Default implementation of {@link VaultTypeMapper} allowing configuration of the key to diff --git a/spring-vault-core/src/main/java/org/springframework/vault/repository/convert/MappingVaultConverter.java b/spring-vault-core/src/main/java/org/springframework/vault/repository/convert/MappingVaultConverter.java index 03db72e2..4f5d44ad 100644 --- a/spring-vault-core/src/main/java/org/springframework/vault/repository/convert/MappingVaultConverter.java +++ b/spring-vault-core/src/main/java/org/springframework/vault/repository/convert/MappingVaultConverter.java @@ -24,6 +24,8 @@ import java.util.Map; import java.util.Map.Entry; import java.util.Optional; +import org.jspecify.annotations.Nullable; + import org.springframework.core.CollectionFactory; import org.springframework.core.convert.support.DefaultConversionService; import org.springframework.data.mapping.MappingException; @@ -36,7 +38,6 @@ import org.springframework.data.mapping.model.ParameterValueProvider; import org.springframework.data.mapping.model.PersistentEntityParameterValueProvider; import org.springframework.data.mapping.model.PropertyValueProvider; import org.springframework.data.util.TypeInformation; -import org.springframework.lang.Nullable; import org.springframework.util.Assert; import org.springframework.util.ClassUtils; import org.springframework.util.CollectionUtils; diff --git a/spring-vault-core/src/main/java/org/springframework/vault/repository/convert/SecretDocument.java b/spring-vault-core/src/main/java/org/springframework/vault/repository/convert/SecretDocument.java index a571901f..dcca7047 100644 --- a/spring-vault-core/src/main/java/org/springframework/vault/repository/convert/SecretDocument.java +++ b/spring-vault-core/src/main/java/org/springframework/vault/repository/convert/SecretDocument.java @@ -18,7 +18,8 @@ package org.springframework.vault.repository.convert; import java.util.LinkedHashMap; import java.util.Map; -import org.springframework.lang.Nullable; +import org.jspecify.annotations.Nullable; + import org.springframework.util.Assert; import org.springframework.util.ObjectUtils; import org.springframework.vault.support.VaultResponse; diff --git a/spring-vault-core/src/main/java/org/springframework/vault/repository/convert/SecretDocumentAccessor.java b/spring-vault-core/src/main/java/org/springframework/vault/repository/convert/SecretDocumentAccessor.java index a0a1b77b..a025d245 100644 --- a/spring-vault-core/src/main/java/org/springframework/vault/repository/convert/SecretDocumentAccessor.java +++ b/spring-vault-core/src/main/java/org/springframework/vault/repository/convert/SecretDocumentAccessor.java @@ -20,7 +20,8 @@ import java.util.Iterator; import java.util.LinkedHashMap; import java.util.Map; -import org.springframework.lang.Nullable; +import org.jspecify.annotations.Nullable; + import org.springframework.util.Assert; import org.springframework.util.StringUtils; import org.springframework.vault.repository.mapping.VaultPersistentProperty; diff --git a/spring-vault-core/src/main/java/org/springframework/vault/repository/convert/VaultCustomConversions.java b/spring-vault-core/src/main/java/org/springframework/vault/repository/convert/VaultCustomConversions.java index b2502899..2d602cb3 100644 --- a/spring-vault-core/src/main/java/org/springframework/vault/repository/convert/VaultCustomConversions.java +++ b/spring-vault-core/src/main/java/org/springframework/vault/repository/convert/VaultCustomConversions.java @@ -23,10 +23,11 @@ import java.util.List; import java.util.Locale; import java.util.Set; +import org.jspecify.annotations.Nullable; + import org.springframework.core.convert.TypeDescriptor; import org.springframework.core.convert.converter.GenericConverter; import org.springframework.data.convert.WritingConverter; -import org.springframework.lang.Nullable; import org.springframework.vault.repository.mapping.VaultSimpleTypes; /** diff --git a/spring-vault-core/src/main/java/org/springframework/vault/repository/convert/package-info.java b/spring-vault-core/src/main/java/org/springframework/vault/repository/convert/package-info.java index b6f87721..143cf7a7 100644 --- a/spring-vault-core/src/main/java/org/springframework/vault/repository/convert/package-info.java +++ b/spring-vault-core/src/main/java/org/springframework/vault/repository/convert/package-info.java @@ -1,5 +1,5 @@ /** * Spring Vault specific converter infrastructure. */ -@org.springframework.lang.NonNullApi +@org.jspecify.annotations.NullMarked package org.springframework.vault.repository.convert; diff --git a/spring-vault-core/src/main/java/org/springframework/vault/repository/core/VaultKeyValueAdapter.java b/spring-vault-core/src/main/java/org/springframework/vault/repository/core/VaultKeyValueAdapter.java index e9e6adde..d45ad241 100644 --- a/spring-vault-core/src/main/java/org/springframework/vault/repository/core/VaultKeyValueAdapter.java +++ b/spring-vault-core/src/main/java/org/springframework/vault/repository/core/VaultKeyValueAdapter.java @@ -23,10 +23,11 @@ import java.util.Map; import java.util.Map.Entry; import java.util.concurrent.ConcurrentHashMap; +import org.jspecify.annotations.Nullable; + import org.springframework.dao.OptimisticLockingFailureException; import org.springframework.data.keyvalue.core.AbstractKeyValueAdapter; import org.springframework.data.util.CloseableIterator; -import org.springframework.lang.Nullable; import org.springframework.util.Assert; import org.springframework.vault.VaultException; import org.springframework.vault.core.VaultKeyValueOperations; diff --git a/spring-vault-core/src/main/java/org/springframework/vault/repository/core/VaultKeyValueTemplate.java b/spring-vault-core/src/main/java/org/springframework/vault/repository/core/VaultKeyValueTemplate.java index a12e01a2..65b443dc 100644 --- a/spring-vault-core/src/main/java/org/springframework/vault/repository/core/VaultKeyValueTemplate.java +++ b/spring-vault-core/src/main/java/org/springframework/vault/repository/core/VaultKeyValueTemplate.java @@ -18,13 +18,14 @@ package org.springframework.vault.repository.core; import java.util.Collections; import java.util.Set; +import org.jspecify.annotations.Nullable; + import org.springframework.context.ApplicationEventPublisher; import org.springframework.dao.DuplicateKeyException; import org.springframework.data.keyvalue.core.KeyValueAdapter; import org.springframework.data.keyvalue.core.KeyValueTemplate; import org.springframework.data.keyvalue.core.event.KeyValueEvent; import org.springframework.data.keyvalue.core.mapping.KeyValuePersistentEntity; -import org.springframework.lang.Nullable; import org.springframework.util.Assert; import org.springframework.util.ClassUtils; import org.springframework.util.CollectionUtils; diff --git a/spring-vault-core/src/main/java/org/springframework/vault/repository/core/VaultQueryEngine.java b/spring-vault-core/src/main/java/org/springframework/vault/repository/core/VaultQueryEngine.java index fe10786d..753d89d5 100644 --- a/spring-vault-core/src/main/java/org/springframework/vault/repository/core/VaultQueryEngine.java +++ b/spring-vault-core/src/main/java/org/springframework/vault/repository/core/VaultQueryEngine.java @@ -21,12 +21,13 @@ import java.util.Comparator; import java.util.stream.Collectors; import java.util.stream.Stream; +import org.jspecify.annotations.Nullable; + import org.springframework.data.keyvalue.core.CriteriaAccessor; import org.springframework.data.keyvalue.core.QueryEngine; import org.springframework.data.keyvalue.core.SpelSortAccessor; import org.springframework.data.keyvalue.core.query.KeyValueQuery; import org.springframework.expression.spel.standard.SpelExpressionParser; -import org.springframework.lang.Nullable; import org.springframework.vault.repository.query.VaultQuery; /** diff --git a/spring-vault-core/src/main/java/org/springframework/vault/repository/core/package-info.java b/spring-vault-core/src/main/java/org/springframework/vault/repository/core/package-info.java index f655ae1a..166cb5d0 100644 --- a/spring-vault-core/src/main/java/org/springframework/vault/repository/core/package-info.java +++ b/spring-vault-core/src/main/java/org/springframework/vault/repository/core/package-info.java @@ -1,5 +1,5 @@ /** * Spring Vault core repository implementation. */ -@org.springframework.lang.NonNullApi +@org.jspecify.annotations.NullMarked package org.springframework.vault.repository.core; diff --git a/spring-vault-core/src/main/java/org/springframework/vault/repository/mapping/BasicVaultPersistentEntity.java b/spring-vault-core/src/main/java/org/springframework/vault/repository/mapping/BasicVaultPersistentEntity.java index e7d54d62..00101659 100644 --- a/spring-vault-core/src/main/java/org/springframework/vault/repository/mapping/BasicVaultPersistentEntity.java +++ b/spring-vault-core/src/main/java/org/springframework/vault/repository/mapping/BasicVaultPersistentEntity.java @@ -15,6 +15,8 @@ */ package org.springframework.vault.repository.mapping; +import org.jspecify.annotations.Nullable; + import org.springframework.data.expression.ValueExpression; import org.springframework.data.expression.ValueExpressionParser; import org.springframework.data.keyvalue.core.mapping.AnnotationBasedKeySpaceResolver; @@ -23,7 +25,6 @@ import org.springframework.data.keyvalue.core.mapping.KeySpaceResolver; import org.springframework.data.util.TypeInformation; import org.springframework.expression.Expression; import org.springframework.expression.common.LiteralExpression; -import org.springframework.lang.Nullable; import org.springframework.util.ObjectUtils; import org.springframework.util.StringUtils; diff --git a/spring-vault-core/src/main/java/org/springframework/vault/repository/mapping/VaultMappingContext.java b/spring-vault-core/src/main/java/org/springframework/vault/repository/mapping/VaultMappingContext.java index ee488c91..eddbc376 100644 --- a/spring-vault-core/src/main/java/org/springframework/vault/repository/mapping/VaultMappingContext.java +++ b/spring-vault-core/src/main/java/org/springframework/vault/repository/mapping/VaultMappingContext.java @@ -15,12 +15,13 @@ */ package org.springframework.vault.repository.mapping; +import org.jspecify.annotations.Nullable; + import org.springframework.data.keyvalue.core.mapping.KeySpaceResolver; import org.springframework.data.keyvalue.core.mapping.context.KeyValueMappingContext; import org.springframework.data.mapping.model.Property; import org.springframework.data.mapping.model.SimpleTypeHolder; import org.springframework.data.util.TypeInformation; -import org.springframework.lang.Nullable; /** * Mapping context for {@link VaultPersistentEntity Vault-specific entities}. diff --git a/spring-vault-core/src/main/java/org/springframework/vault/repository/mapping/package-info.java b/spring-vault-core/src/main/java/org/springframework/vault/repository/mapping/package-info.java index 7a33e8bd..08b28a30 100644 --- a/spring-vault-core/src/main/java/org/springframework/vault/repository/mapping/package-info.java +++ b/spring-vault-core/src/main/java/org/springframework/vault/repository/mapping/package-info.java @@ -1,5 +1,5 @@ /** * Infrastructure for the Vault JSON-to-object mapping subsystem. */ -@org.springframework.lang.NonNullApi +@org.jspecify.annotations.NullMarked package org.springframework.vault.repository.mapping; diff --git a/spring-vault-core/src/main/java/org/springframework/vault/repository/query/package-info.java b/spring-vault-core/src/main/java/org/springframework/vault/repository/query/package-info.java index 00311b43..0a1e76e5 100644 --- a/spring-vault-core/src/main/java/org/springframework/vault/repository/query/package-info.java +++ b/spring-vault-core/src/main/java/org/springframework/vault/repository/query/package-info.java @@ -1,5 +1,5 @@ /** * Query derivation mechanism for Vault specific repositories. */ -@org.springframework.lang.NonNullApi +@org.jspecify.annotations.NullMarked package org.springframework.vault.repository.query; diff --git a/spring-vault-core/src/main/java/org/springframework/vault/repository/support/VaultRevisionRepository.java b/spring-vault-core/src/main/java/org/springframework/vault/repository/support/VaultRevisionRepository.java index 8f529b99..c87ad9e2 100644 --- a/spring-vault-core/src/main/java/org/springframework/vault/repository/support/VaultRevisionRepository.java +++ b/spring-vault-core/src/main/java/org/springframework/vault/repository/support/VaultRevisionRepository.java @@ -21,6 +21,8 @@ import java.util.List; import java.util.Map; import java.util.Optional; +import org.jspecify.annotations.Nullable; + import org.springframework.data.domain.Page; import org.springframework.data.domain.PageImpl; import org.springframework.data.domain.Pageable; @@ -28,7 +30,6 @@ import org.springframework.data.history.Revision; import org.springframework.data.history.Revisions; import org.springframework.data.repository.core.EntityInformation; import org.springframework.data.repository.history.RevisionRepository; -import org.springframework.lang.Nullable; import org.springframework.util.Assert; import org.springframework.vault.core.VaultKeyValueMetadataOperations; import org.springframework.vault.core.VaultOperations; diff --git a/spring-vault-core/src/main/java/org/springframework/vault/repository/support/package-info.java b/spring-vault-core/src/main/java/org/springframework/vault/repository/support/package-info.java index c3c16f5b..15a394ae 100644 --- a/spring-vault-core/src/main/java/org/springframework/vault/repository/support/package-info.java +++ b/spring-vault-core/src/main/java/org/springframework/vault/repository/support/package-info.java @@ -1,5 +1,5 @@ /** * Support infrastructure for query derivation of Vault specific repositories. */ -@org.springframework.lang.NonNullApi +@org.jspecify.annotations.NullMarked package org.springframework.vault.repository.support; diff --git a/spring-vault-core/src/main/java/org/springframework/vault/security/package-info.java b/spring-vault-core/src/main/java/org/springframework/vault/security/package-info.java index 2f3f6087..6ca23714 100644 --- a/spring-vault-core/src/main/java/org/springframework/vault/security/package-info.java +++ b/spring-vault-core/src/main/java/org/springframework/vault/security/package-info.java @@ -1,6 +1,5 @@ /** * Integration with Spring Security. */ -@org.springframework.lang.NonNullApi -@org.springframework.lang.NonNullFields +@org.jspecify.annotations.NullMarked package org.springframework.vault.security; diff --git a/spring-vault-core/src/main/java/org/springframework/vault/support/AbstractResult.java b/spring-vault-core/src/main/java/org/springframework/vault/support/AbstractResult.java index aca2db57..ab21107e 100644 --- a/spring-vault-core/src/main/java/org/springframework/vault/support/AbstractResult.java +++ b/spring-vault-core/src/main/java/org/springframework/vault/support/AbstractResult.java @@ -15,7 +15,8 @@ */ package org.springframework.vault.support; -import org.springframework.lang.Nullable; +import org.jspecify.annotations.Nullable; + import org.springframework.util.Assert; import org.springframework.vault.VaultException; diff --git a/spring-vault-core/src/main/java/org/springframework/vault/support/Certificate.java b/spring-vault-core/src/main/java/org/springframework/vault/support/Certificate.java index 94f5e3d7..94f1ecaa 100644 --- a/spring-vault-core/src/main/java/org/springframework/vault/support/Certificate.java +++ b/spring-vault-core/src/main/java/org/springframework/vault/support/Certificate.java @@ -26,8 +26,8 @@ import java.util.Base64; import java.util.List; import com.fasterxml.jackson.annotation.JsonProperty; +import org.jspecify.annotations.Nullable; -import org.springframework.lang.Nullable; import org.springframework.util.Assert; import org.springframework.vault.VaultException; diff --git a/spring-vault-core/src/main/java/org/springframework/vault/support/CertificateBundle.java b/spring-vault-core/src/main/java/org/springframework/vault/support/CertificateBundle.java index bed61daa..5025b8b6 100644 --- a/spring-vault-core/src/main/java/org/springframework/vault/support/CertificateBundle.java +++ b/spring-vault-core/src/main/java/org/springframework/vault/support/CertificateBundle.java @@ -28,8 +28,8 @@ import java.util.Locale; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import com.fasterxml.jackson.annotation.JsonProperty; +import org.jspecify.annotations.Nullable; -import org.springframework.lang.Nullable; import org.springframework.util.Assert; import org.springframework.vault.VaultException; diff --git a/spring-vault-core/src/main/java/org/springframework/vault/support/DurationParser.java b/spring-vault-core/src/main/java/org/springframework/vault/support/DurationParser.java index 75db0637..d3bffd7d 100644 --- a/spring-vault-core/src/main/java/org/springframework/vault/support/DurationParser.java +++ b/spring-vault-core/src/main/java/org/springframework/vault/support/DurationParser.java @@ -22,7 +22,8 @@ import java.util.Locale; import java.util.regex.Matcher; import java.util.regex.Pattern; -import org.springframework.lang.Nullable; +import org.jspecify.annotations.Nullable; + import org.springframework.util.ObjectUtils; /** diff --git a/spring-vault-core/src/main/java/org/springframework/vault/support/JsonMapFlattener.java b/spring-vault-core/src/main/java/org/springframework/vault/support/JsonMapFlattener.java index 4521489d..3696a161 100644 --- a/spring-vault-core/src/main/java/org/springframework/vault/support/JsonMapFlattener.java +++ b/spring-vault-core/src/main/java/org/springframework/vault/support/JsonMapFlattener.java @@ -22,7 +22,8 @@ import java.util.Map.Entry; import java.util.function.Function; import java.util.function.UnaryOperator; -import org.springframework.lang.Nullable; +import org.jspecify.annotations.Nullable; + import org.springframework.util.Assert; import org.springframework.util.StringUtils; diff --git a/spring-vault-core/src/main/java/org/springframework/vault/support/PemObject.java b/spring-vault-core/src/main/java/org/springframework/vault/support/PemObject.java index 25ebb784..580e25dc 100644 --- a/spring-vault-core/src/main/java/org/springframework/vault/support/PemObject.java +++ b/spring-vault-core/src/main/java/org/springframework/vault/support/PemObject.java @@ -30,7 +30,8 @@ import java.util.List; import java.util.regex.Matcher; import java.util.regex.Pattern; -import org.springframework.lang.Nullable; +import org.jspecify.annotations.Nullable; + import org.springframework.util.Assert; /** diff --git a/spring-vault-core/src/main/java/org/springframework/vault/support/SslConfiguration.java b/spring-vault-core/src/main/java/org/springframework/vault/support/SslConfiguration.java index a9b760b2..abf8d90b 100644 --- a/spring-vault-core/src/main/java/org/springframework/vault/support/SslConfiguration.java +++ b/spring-vault-core/src/main/java/org/springframework/vault/support/SslConfiguration.java @@ -23,9 +23,10 @@ import java.util.Arrays; import java.util.Collections; import java.util.List; +import org.jspecify.annotations.Nullable; + import org.springframework.core.io.AbstractResource; import org.springframework.core.io.Resource; -import org.springframework.lang.Nullable; import org.springframework.util.Assert; /** @@ -160,7 +161,7 @@ public class SslConfiguration { * @return the created {@link SslConfiguration}. * @see java.security.KeyStore */ - public static SslConfiguration forTrustStore(Resource trustStore, @Nullable char[] trustStorePassword) { + public static SslConfiguration forTrustStore(Resource trustStore, char @Nullable[] trustStorePassword) { Assert.notNull(trustStore, "TrustStore must not be null"); Assert.isTrue(trustStore.exists(), () -> "TrustStore %s does not exist".formatted(trustStore)); @@ -191,7 +192,7 @@ public class SslConfiguration { * @return the created {@link SslConfiguration}. * @see java.security.KeyStore */ - public static SslConfiguration forKeyStore(Resource keyStore, @Nullable char[] keyStorePassword) { + public static SslConfiguration forKeyStore(Resource keyStore, char @Nullable[] keyStorePassword) { return forKeyStore(new KeyStoreConfiguration(keyStore, keyStorePassword, DEFAULT_KEYSTORE_TYPE), KeyConfiguration.unconfigured()); } @@ -236,7 +237,7 @@ public class SslConfiguration { * @since 2.2 * @see java.security.KeyStore */ - public static SslConfiguration forKeyStore(Resource keyStore, @Nullable char[] keyStorePassword, + public static SslConfiguration forKeyStore(Resource keyStore, char @Nullable[] keyStorePassword, KeyConfiguration keyConfiguration) { Assert.notNull(keyStore, "KeyStore must not be null"); @@ -259,8 +260,8 @@ public class SslConfiguration { * @return the created {@link SslConfiguration}. * @see java.security.KeyStore */ - public static SslConfiguration create(Resource keyStore, @Nullable char[] keyStorePassword, Resource trustStore, - @Nullable char[] trustStorePassword) { + public static SslConfiguration create(Resource keyStore, char @Nullable[] keyStorePassword, Resource trustStore, + char @Nullable[] trustStorePassword) { Assert.notNull(keyStore, "KeyStore must not be null"); Assert.isTrue(keyStore.exists(), () -> "KeyStore %s does not exist".formatted(keyStore)); @@ -440,12 +441,12 @@ public class SslConfiguration { } @Nullable - private static String stringOrNull(@Nullable char[] storePassword) { + private static String stringOrNull(char @Nullable[] storePassword) { return storePassword != null ? new String(storePassword) : null; } - @Nullable - private static char[] charsOrNull(@Nullable String trustStorePassword) { + + private static char @Nullable[] charsOrNull(@Nullable String trustStorePassword) { return trustStorePassword != null ? trustStorePassword.toCharArray() : null; } @@ -464,11 +465,11 @@ public class SslConfiguration { */ private final Resource resource; + /** * Password used to access the key store/trust store. */ - @Nullable - private final char[] storePassword; + private final char @Nullable[] storePassword; /** * Key store/trust store type. @@ -478,7 +479,7 @@ public class SslConfiguration { /** * Create a new {@link KeyStoreConfiguration}. */ - public KeyStoreConfiguration(Resource resource, @Nullable char[] storePassword, String storeType) { + public KeyStoreConfiguration(Resource resource, char @Nullable[] storePassword, String storeType) { Assert.notNull(resource, "Resource must not be null"); Assert.isTrue(resource instanceof AbsentResource || resource.exists(), @@ -516,7 +517,7 @@ public class SslConfiguration { * @return the {@link KeyStoreConfiguration} for {@code resource}. * @since 2.0 */ - public static KeyStoreConfiguration of(Resource resource, @Nullable char[] storePassword) { + public static KeyStoreConfiguration of(Resource resource, char @Nullable[] storePassword) { return of(resource, storePassword, DEFAULT_KEYSTORE_TYPE); } @@ -530,7 +531,7 @@ public class SslConfiguration { * @return the {@link KeyStoreConfiguration} for {@code resource}. * @since 2.3 */ - public static KeyStoreConfiguration of(Resource resource, @Nullable char[] storePassword, String keyStoreType) { + public static KeyStoreConfiguration of(Resource resource, char @Nullable[] storePassword, String keyStoreType) { return new KeyStoreConfiguration(resource, storePassword, keyStoreType); } @@ -559,12 +560,12 @@ public class SslConfiguration { return this.resource; } + /** * @return the key store/trust store password. Empty {@code char} array if not * set. */ - @Nullable - public char[] getStorePassword() { + public char @Nullable[] getStorePassword() { return this.storePassword; } @@ -600,11 +601,11 @@ public class SslConfiguration { private static final KeyConfiguration UNCONFIGURED = new KeyConfiguration(null, null); - private final @Nullable char[] keyPassword; + private final char @Nullable[] keyPassword; private final @Nullable String keyAlias; - private KeyConfiguration(@Nullable char[] keyPassword, @Nullable String keyAlias) { + private KeyConfiguration(char @Nullable[] keyPassword, @Nullable String keyAlias) { if (keyPassword == null) { this.keyPassword = null; @@ -633,15 +634,15 @@ public class SslConfiguration { * . * @return the {@link KeyConfiguration}. */ - public static KeyConfiguration of(@Nullable char[] keyPassword, @Nullable String keyAlias) { + public static KeyConfiguration of(char @Nullable[] keyPassword, @Nullable String keyAlias) { return new KeyConfiguration(keyPassword, keyAlias); } + /** * @return the key password to use. */ - @Nullable - public char[] getKeyPassword() { + public char @Nullable[] getKeyPassword() { return this.keyPassword; } diff --git a/spring-vault-core/src/main/java/org/springframework/vault/support/VaultCertificateRequest.java b/spring-vault-core/src/main/java/org/springframework/vault/support/VaultCertificateRequest.java index c3f07972..e5117ce4 100644 --- a/spring-vault-core/src/main/java/org/springframework/vault/support/VaultCertificateRequest.java +++ b/spring-vault-core/src/main/java/org/springframework/vault/support/VaultCertificateRequest.java @@ -23,7 +23,8 @@ import java.util.Collection; import java.util.List; import java.util.concurrent.TimeUnit; -import org.springframework.lang.Nullable; +import org.jspecify.annotations.Nullable; + import org.springframework.util.Assert; import org.springframework.util.StringUtils; diff --git a/spring-vault-core/src/main/java/org/springframework/vault/support/VaultDecryptionResult.java b/spring-vault-core/src/main/java/org/springframework/vault/support/VaultDecryptionResult.java index f6689e3a..27ba9aaa 100644 --- a/spring-vault-core/src/main/java/org/springframework/vault/support/VaultDecryptionResult.java +++ b/spring-vault-core/src/main/java/org/springframework/vault/support/VaultDecryptionResult.java @@ -15,7 +15,8 @@ */ package org.springframework.vault.support; -import org.springframework.lang.Nullable; +import org.jspecify.annotations.Nullable; + import org.springframework.util.Assert; import org.springframework.vault.VaultException; diff --git a/spring-vault-core/src/main/java/org/springframework/vault/support/VaultEncryptionResult.java b/spring-vault-core/src/main/java/org/springframework/vault/support/VaultEncryptionResult.java index 0fb61c00..9eace061 100644 --- a/spring-vault-core/src/main/java/org/springframework/vault/support/VaultEncryptionResult.java +++ b/spring-vault-core/src/main/java/org/springframework/vault/support/VaultEncryptionResult.java @@ -15,7 +15,8 @@ */ package org.springframework.vault.support; -import org.springframework.lang.Nullable; +import org.jspecify.annotations.Nullable; + import org.springframework.vault.VaultException; /** diff --git a/spring-vault-core/src/main/java/org/springframework/vault/support/VaultHealth.java b/spring-vault-core/src/main/java/org/springframework/vault/support/VaultHealth.java index 0f369348..95247309 100644 --- a/spring-vault-core/src/main/java/org/springframework/vault/support/VaultHealth.java +++ b/spring-vault-core/src/main/java/org/springframework/vault/support/VaultHealth.java @@ -15,7 +15,7 @@ */ package org.springframework.vault.support; -import org.springframework.lang.Nullable; +import org.jspecify.annotations.Nullable; /** * Vault health state. diff --git a/spring-vault-core/src/main/java/org/springframework/vault/support/VaultHmacRequest.java b/spring-vault-core/src/main/java/org/springframework/vault/support/VaultHmacRequest.java index 66999e0d..538f4f35 100644 --- a/spring-vault-core/src/main/java/org/springframework/vault/support/VaultHmacRequest.java +++ b/spring-vault-core/src/main/java/org/springframework/vault/support/VaultHmacRequest.java @@ -16,8 +16,8 @@ package org.springframework.vault.support; import com.fasterxml.jackson.annotation.JsonInclude; +import org.jspecify.annotations.Nullable; -import org.springframework.lang.Nullable; import org.springframework.util.Assert; /** diff --git a/spring-vault-core/src/main/java/org/springframework/vault/support/VaultMetadataRequest.java b/spring-vault-core/src/main/java/org/springframework/vault/support/VaultMetadataRequest.java index e966b4e2..f1be36f2 100644 --- a/spring-vault-core/src/main/java/org/springframework/vault/support/VaultMetadataRequest.java +++ b/spring-vault-core/src/main/java/org/springframework/vault/support/VaultMetadataRequest.java @@ -19,8 +19,7 @@ import java.time.Duration; import java.util.Map; import com.fasterxml.jackson.annotation.JsonProperty; - -import org.springframework.lang.Nullable; +import org.jspecify.annotations.Nullable; /** * Value object to bind Vault HTTP kv metadata update API requests. diff --git a/spring-vault-core/src/main/java/org/springframework/vault/support/VaultMetadataResponse.java b/spring-vault-core/src/main/java/org/springframework/vault/support/VaultMetadataResponse.java index c8e62358..eea8ba41 100644 --- a/spring-vault-core/src/main/java/org/springframework/vault/support/VaultMetadataResponse.java +++ b/spring-vault-core/src/main/java/org/springframework/vault/support/VaultMetadataResponse.java @@ -22,7 +22,8 @@ import java.util.Collections; import java.util.List; import java.util.Map; -import org.springframework.lang.Nullable; +import org.jspecify.annotations.Nullable; + import org.springframework.vault.support.Versioned.Metadata; /** diff --git a/spring-vault-core/src/main/java/org/springframework/vault/support/VaultMount.java b/spring-vault-core/src/main/java/org/springframework/vault/support/VaultMount.java index a04b2b6c..ce56f25e 100644 --- a/spring-vault-core/src/main/java/org/springframework/vault/support/VaultMount.java +++ b/spring-vault-core/src/main/java/org/springframework/vault/support/VaultMount.java @@ -19,8 +19,8 @@ import java.util.Collections; import java.util.Map; import com.fasterxml.jackson.annotation.JsonProperty; +import org.jspecify.annotations.Nullable; -import org.springframework.lang.Nullable; import org.springframework.util.Assert; /** diff --git a/spring-vault-core/src/main/java/org/springframework/vault/support/VaultResponseSupport.java b/spring-vault-core/src/main/java/org/springframework/vault/support/VaultResponseSupport.java index 0023b8e1..58fe9948 100644 --- a/spring-vault-core/src/main/java/org/springframework/vault/support/VaultResponseSupport.java +++ b/spring-vault-core/src/main/java/org/springframework/vault/support/VaultResponseSupport.java @@ -21,8 +21,7 @@ import java.util.Map; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import com.fasterxml.jackson.annotation.JsonProperty; - -import org.springframework.lang.Nullable; +import org.jspecify.annotations.Nullable; /** * Value object to bind generic Vault HTTP API responses. diff --git a/spring-vault-core/src/main/java/org/springframework/vault/support/VaultSignRequest.java b/spring-vault-core/src/main/java/org/springframework/vault/support/VaultSignRequest.java index 1cbdb417..f638587e 100644 --- a/spring-vault-core/src/main/java/org/springframework/vault/support/VaultSignRequest.java +++ b/spring-vault-core/src/main/java/org/springframework/vault/support/VaultSignRequest.java @@ -15,7 +15,8 @@ */ package org.springframework.vault.support; -import org.springframework.lang.Nullable; +import org.jspecify.annotations.Nullable; + import org.springframework.util.Assert; /** diff --git a/spring-vault-core/src/main/java/org/springframework/vault/support/VaultSignatureVerificationRequest.java b/spring-vault-core/src/main/java/org/springframework/vault/support/VaultSignatureVerificationRequest.java index 37738e2d..a8b27bb4 100644 --- a/spring-vault-core/src/main/java/org/springframework/vault/support/VaultSignatureVerificationRequest.java +++ b/spring-vault-core/src/main/java/org/springframework/vault/support/VaultSignatureVerificationRequest.java @@ -15,7 +15,8 @@ */ package org.springframework.vault.support; -import org.springframework.lang.Nullable; +import org.jspecify.annotations.Nullable; + import org.springframework.util.Assert; /** diff --git a/spring-vault-core/src/main/java/org/springframework/vault/support/VaultTokenRequest.java b/spring-vault-core/src/main/java/org/springframework/vault/support/VaultTokenRequest.java index e9a8e3af..06e60b95 100644 --- a/spring-vault-core/src/main/java/org/springframework/vault/support/VaultTokenRequest.java +++ b/spring-vault-core/src/main/java/org/springframework/vault/support/VaultTokenRequest.java @@ -25,8 +25,8 @@ import java.util.concurrent.TimeUnit; import java.util.stream.StreamSupport; import com.fasterxml.jackson.annotation.JsonProperty; +import org.jspecify.annotations.Nullable; -import org.springframework.lang.Nullable; import org.springframework.util.Assert; /** diff --git a/spring-vault-core/src/main/java/org/springframework/vault/support/VaultTransformDecodeResult.java b/spring-vault-core/src/main/java/org/springframework/vault/support/VaultTransformDecodeResult.java index 97dbcf1e..43d2aa7a 100644 --- a/spring-vault-core/src/main/java/org/springframework/vault/support/VaultTransformDecodeResult.java +++ b/spring-vault-core/src/main/java/org/springframework/vault/support/VaultTransformDecodeResult.java @@ -15,7 +15,8 @@ */ package org.springframework.vault.support; -import org.springframework.lang.Nullable; +import org.jspecify.annotations.Nullable; + import org.springframework.util.Assert; import org.springframework.vault.VaultException; diff --git a/spring-vault-core/src/main/java/org/springframework/vault/support/VaultTransformEncodeResult.java b/spring-vault-core/src/main/java/org/springframework/vault/support/VaultTransformEncodeResult.java index a3510fb3..847277b4 100644 --- a/spring-vault-core/src/main/java/org/springframework/vault/support/VaultTransformEncodeResult.java +++ b/spring-vault-core/src/main/java/org/springframework/vault/support/VaultTransformEncodeResult.java @@ -15,7 +15,8 @@ */ package org.springframework.vault.support; -import org.springframework.lang.Nullable; +import org.jspecify.annotations.Nullable; + import org.springframework.vault.VaultException; /** diff --git a/spring-vault-core/src/main/java/org/springframework/vault/support/VaultTransitKeyConfiguration.java b/spring-vault-core/src/main/java/org/springframework/vault/support/VaultTransitKeyConfiguration.java index 9269c282..f89bf1c8 100644 --- a/spring-vault-core/src/main/java/org/springframework/vault/support/VaultTransitKeyConfiguration.java +++ b/spring-vault-core/src/main/java/org/springframework/vault/support/VaultTransitKeyConfiguration.java @@ -16,8 +16,7 @@ package org.springframework.vault.support; import com.fasterxml.jackson.annotation.JsonProperty; - -import org.springframework.lang.Nullable; +import org.jspecify.annotations.Nullable; /** * Value object to bind Vault HTTP Transit Key Config API requests. diff --git a/spring-vault-core/src/main/java/org/springframework/vault/support/Versioned.java b/spring-vault-core/src/main/java/org/springframework/vault/support/Versioned.java index 88ddafff..d50542d6 100644 --- a/spring-vault-core/src/main/java/org/springframework/vault/support/Versioned.java +++ b/spring-vault-core/src/main/java/org/springframework/vault/support/Versioned.java @@ -22,7 +22,8 @@ import java.util.Map; import java.util.Objects; import java.util.Optional; -import org.springframework.lang.Nullable; +import org.jspecify.annotations.Nullable; + import org.springframework.util.Assert; import org.springframework.util.CollectionUtils; diff --git a/spring-vault-core/src/main/java/org/springframework/vault/support/WrappedMetadata.java b/spring-vault-core/src/main/java/org/springframework/vault/support/WrappedMetadata.java index c691d7e0..21d8ef31 100644 --- a/spring-vault-core/src/main/java/org/springframework/vault/support/WrappedMetadata.java +++ b/spring-vault-core/src/main/java/org/springframework/vault/support/WrappedMetadata.java @@ -18,7 +18,8 @@ package org.springframework.vault.support; import java.time.Duration; import java.time.Instant; -import org.springframework.lang.Nullable; +import org.jspecify.annotations.Nullable; + import org.springframework.util.Assert; /** diff --git a/spring-vault-core/src/main/java/org/springframework/vault/support/package-info.java b/spring-vault-core/src/main/java/org/springframework/vault/support/package-info.java index c7e971d0..c23fb640 100644 --- a/spring-vault-core/src/main/java/org/springframework/vault/support/package-info.java +++ b/spring-vault-core/src/main/java/org/springframework/vault/support/package-info.java @@ -1,6 +1,5 @@ /** * Classes supporting the Vault packages, such as value objects. */ -@org.springframework.lang.NonNullApi -@org.springframework.lang.NonNullFields +@org.jspecify.annotations.NullMarked package org.springframework.vault.support; diff --git a/spring-vault-core/src/test/java/org/springframework/vault/repository/convert/DefaultVaultTypeMapperUnitTests.java b/spring-vault-core/src/test/java/org/springframework/vault/repository/convert/DefaultVaultTypeMapperUnitTests.java index fb52a7ee..d8d081e4 100644 --- a/spring-vault-core/src/test/java/org/springframework/vault/repository/convert/DefaultVaultTypeMapperUnitTests.java +++ b/spring-vault-core/src/test/java/org/springframework/vault/repository/convert/DefaultVaultTypeMapperUnitTests.java @@ -20,12 +20,12 @@ import java.util.Collections; import java.util.LinkedHashMap; import java.util.Map; +import org.jspecify.annotations.Nullable; import org.junit.jupiter.api.Test; import org.springframework.data.convert.ConfigurableTypeInformationMapper; import org.springframework.data.convert.SimpleTypeInformationMapper; import org.springframework.data.util.TypeInformation; -import org.springframework.lang.Nullable; import static org.assertj.core.api.Assertions.*;