From 61545fabfc34df11d501321647fe0af3f718dd34 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Deleuze?= Date: Tue, 3 Dec 2024 15:22:50 +0100 Subject: [PATCH] Deprecate Spring nullability annotations JSpecify annotations should be used instead. See gh-28797 --- .../src/main/java/org/springframework/lang/NonNull.java | 4 +++- .../src/main/java/org/springframework/lang/NonNullApi.java | 4 +++- .../src/main/java/org/springframework/lang/NonNullFields.java | 4 +++- .../src/main/java/org/springframework/lang/Nullable.java | 2 ++ 4 files changed, 11 insertions(+), 3 deletions(-) diff --git a/spring-core/src/main/java/org/springframework/lang/NonNull.java b/spring-core/src/main/java/org/springframework/lang/NonNull.java index 8ec9fb0334..393737c93d 100644 --- a/spring-core/src/main/java/org/springframework/lang/NonNull.java +++ b/spring-core/src/main/java/org/springframework/lang/NonNull.java @@ -1,5 +1,5 @@ /* - * Copyright 2002-2023 the original author or authors. + * Copyright 2002-2024 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. @@ -42,6 +42,7 @@ import javax.annotation.meta.TypeQualifierNickname; * @author Sebastien Deleuze * @author Juergen Hoeller * @since 5.0 + * @deprecated since 7.0; use {@link org.jspecify.annotations.NonNull} instead * @see NonNullApi * @see NonNullFields * @see Nullable @@ -51,5 +52,6 @@ import javax.annotation.meta.TypeQualifierNickname; @Documented @Nonnull @TypeQualifierNickname +@Deprecated public @interface NonNull { } diff --git a/spring-core/src/main/java/org/springframework/lang/NonNullApi.java b/spring-core/src/main/java/org/springframework/lang/NonNullApi.java index e2418426a6..720dc4704a 100644 --- a/spring-core/src/main/java/org/springframework/lang/NonNullApi.java +++ b/spring-core/src/main/java/org/springframework/lang/NonNullApi.java @@ -1,5 +1,5 @@ /* - * Copyright 2002-2023 the original author or authors. + * Copyright 2002-2024 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. @@ -38,6 +38,7 @@ import javax.annotation.meta.TypeQualifierDefault; * @author Sebastien Deleuze * @author Juergen Hoeller * @since 5.0 + * @deprecated since 7.0; use {@link org.jspecify.annotations.NullMarked} instead * @see NonNullFields * @see Nullable * @see NonNull @@ -47,5 +48,6 @@ import javax.annotation.meta.TypeQualifierDefault; @Documented @Nonnull @TypeQualifierDefault({ElementType.METHOD, ElementType.PARAMETER}) +@Deprecated public @interface NonNullApi { } diff --git a/spring-core/src/main/java/org/springframework/lang/NonNullFields.java b/spring-core/src/main/java/org/springframework/lang/NonNullFields.java index 3bbaba3b7c..2cb03e38b0 100644 --- a/spring-core/src/main/java/org/springframework/lang/NonNullFields.java +++ b/spring-core/src/main/java/org/springframework/lang/NonNullFields.java @@ -1,5 +1,5 @@ /* - * Copyright 2002-2023 the original author or authors. + * Copyright 2002-2024 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. @@ -37,6 +37,7 @@ import javax.annotation.meta.TypeQualifierDefault; * * @author Sebastien Deleuze * @since 5.0 + * @deprecated since 7.0; use {@link org.jspecify.annotations.NullMarked} instead * @see NonNullApi * @see Nullable * @see NonNull @@ -46,5 +47,6 @@ import javax.annotation.meta.TypeQualifierDefault; @Documented @Nonnull @TypeQualifierDefault(ElementType.FIELD) +@Deprecated public @interface NonNullFields { } diff --git a/spring-core/src/main/java/org/springframework/lang/Nullable.java b/spring-core/src/main/java/org/springframework/lang/Nullable.java index a07eec0b7c..4b1b401cd7 100644 --- a/spring-core/src/main/java/org/springframework/lang/Nullable.java +++ b/spring-core/src/main/java/org/springframework/lang/Nullable.java @@ -42,6 +42,7 @@ import javax.annotation.meta.TypeQualifierNickname; * @author Sebastien Deleuze * @author Juergen Hoeller * @since 5.0 + * @deprecated since 7.0; use {@link org.jspecify.annotations.Nullable} instead * @see NonNullApi * @see NonNullFields * @see NonNull @@ -51,5 +52,6 @@ import javax.annotation.meta.TypeQualifierNickname; @Documented @CheckForNull @TypeQualifierNickname +@Deprecated public @interface Nullable { }