diff --git a/docs/modules/java-binding/pages/codegen.adoc b/docs/modules/java-binding/pages/codegen.adoc index 7a22dba9..fab31e6d 100644 --- a/docs/modules/java-binding/pages/codegen.adoc +++ b/docs/modules/java-binding/pages/codegen.adoc @@ -198,7 +198,7 @@ For Spring Boot applications, and for users of `pkl-config-java` compiling the g .--non-null-annotation [%collapsible] ==== -Default: `org.pkl.config.java.mapper.NonNull` + +Default: `org.jspecify.annotations.NonNull` + Fully qualified name of the annotation type to use for annotating non-null types. + The specified annotation type must be annotated with `@java.lang.annotation.Target(ElementType.TYPE_USE)` or the generated code may not compile. diff --git a/docs/modules/pkl-gradle/pages/index.adoc b/docs/modules/pkl-gradle/pages/index.adoc index adbfa87b..5c53acd0 100644 --- a/docs/modules/pkl-gradle/pages/index.adoc +++ b/docs/modules/pkl-gradle/pages/index.adoc @@ -423,7 +423,7 @@ For Spring Boot applications, and for users of `pkl-config-java` compiling the g .nonNullAnnotation: Property [%collapsible] ==== -Default: `"org.pkl.config.java.mapper.NonNull"` + +Default: `"org.jspecify.annotations.NonNull"` + Example: `nonNullAnnotation = "org.project.MyAnnotation"` + Fully qualified name of the annotation type to use for annotating non-null types. + The specified annotation type must be annotated with `@java.lang.annotation.Target(ElementType.TYPE_USE)` diff --git a/docs/modules/release-notes/pages/0.32.adoc b/docs/modules/release-notes/pages/0.32.adoc index 699bb4ef..53595679 100644 --- a/docs/modules/release-notes/pages/0.32.adoc +++ b/docs/modules/release-notes/pages/0.32.adoc @@ -37,6 +37,10 @@ The following APIs have been removed without replacement. * `org.pkl.config.java.Config#makeConfig` (pr:https://github.com/apple/pkl/pull/1531[]) +The following APIs have been deprecated for removal. + +* `org.pkl.config.java.mapper.NonNull` (https://github.com/apple/pkl/pull/1607[#1607]). + .XXX [%collapsible] ==== diff --git a/pkl-codegen-java/src/main/kotlin/org/pkl/codegen/java/JavaCodeGenerator.kt b/pkl-codegen-java/src/main/kotlin/org/pkl/codegen/java/JavaCodeGenerator.kt index 0bff1700..ad153aaf 100644 --- a/pkl-codegen-java/src/main/kotlin/org/pkl/codegen/java/JavaCodeGenerator.kt +++ b/pkl-codegen-java/src/main/kotlin/org/pkl/codegen/java/JavaCodeGenerator.kt @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -@file:Suppress("unused") +@file:Suppress("unused", "CanConvertToMultiDollarString") package org.pkl.codegen.java @@ -172,7 +172,7 @@ class JavaCodeGenerator( val annotation = codegenOptions.nonNullAnnotation val className = if (annotation == null) { - ClassName.get("org.pkl.config.java.mapper", "NonNull") + ClassName.get("org.jspecify.annotations", "NonNull") } else { toClassName(annotation) } diff --git a/pkl-codegen-java/src/test/resources/org/pkl/codegen/java/GenerateGetters.jva b/pkl-codegen-java/src/test/resources/org/pkl/codegen/java/GenerateGetters.jva index b1955249..cd510a3b 100644 --- a/pkl-codegen-java/src/test/resources/org/pkl/codegen/java/GenerateGetters.jva +++ b/pkl-codegen-java/src/test/resources/org/pkl/codegen/java/GenerateGetters.jva @@ -5,8 +5,8 @@ import java.lang.Override; import java.lang.String; import java.lang.StringBuilder; import java.util.Objects; +import org.jspecify.annotations.NonNull; import org.pkl.config.java.mapper.Named; -import org.pkl.config.java.mapper.NonNull; import org.pkl.core.DataSize; import org.pkl.core.Duration; diff --git a/pkl-codegen-java/src/test/resources/org/pkl/codegen/java/Inheritance.jva b/pkl-codegen-java/src/test/resources/org/pkl/codegen/java/Inheritance.jva index b4f86167..ce22aa8a 100644 --- a/pkl-codegen-java/src/test/resources/org/pkl/codegen/java/Inheritance.jva +++ b/pkl-codegen-java/src/test/resources/org/pkl/codegen/java/Inheritance.jva @@ -5,8 +5,8 @@ import java.lang.Override; import java.lang.String; import java.lang.StringBuilder; import java.util.Objects; +import org.jspecify.annotations.NonNull; import org.pkl.config.java.mapper.Named; -import org.pkl.config.java.mapper.NonNull; import org.pkl.core.Duration; public final class Mod { diff --git a/pkl-codegen-java/src/test/resources/org/pkl/codegen/java/Javadoc.jva b/pkl-codegen-java/src/test/resources/org/pkl/codegen/java/Javadoc.jva index 5e4fc227..d2b9b617 100644 --- a/pkl-codegen-java/src/test/resources/org/pkl/codegen/java/Javadoc.jva +++ b/pkl-codegen-java/src/test/resources/org/pkl/codegen/java/Javadoc.jva @@ -5,8 +5,8 @@ import java.lang.Override; import java.lang.String; import java.lang.StringBuilder; import java.util.Objects; +import org.jspecify.annotations.NonNull; import org.pkl.config.java.mapper.Named; -import org.pkl.config.java.mapper.NonNull; /** * module comment. diff --git a/pkl-codegen-java/src/test/resources/org/pkl/codegen/java/PropertyTypes.jva b/pkl-codegen-java/src/test/resources/org/pkl/codegen/java/PropertyTypes.jva index b4710b1a..ec64fc0e 100644 --- a/pkl-codegen-java/src/test/resources/org/pkl/codegen/java/PropertyTypes.jva +++ b/pkl-codegen-java/src/test/resources/org/pkl/codegen/java/PropertyTypes.jva @@ -11,8 +11,8 @@ import java.util.Map; import java.util.Objects; import java.util.Set; import java.util.regex.Pattern; +import org.jspecify.annotations.NonNull; import org.pkl.config.java.mapper.Named; -import org.pkl.config.java.mapper.NonNull; import org.pkl.core.DataSize; import org.pkl.core.DataSizeUnit; import org.pkl.core.Duration; diff --git a/pkl-config-java/src/main/java/org/pkl/config/java/mapper/NonNull.java b/pkl-config-java/src/main/java/org/pkl/config/java/mapper/NonNull.java index a0703be4..18018a0c 100644 --- a/pkl-config-java/src/main/java/org/pkl/config/java/mapper/NonNull.java +++ b/pkl-config-java/src/main/java/org/pkl/config/java/mapper/NonNull.java @@ -1,5 +1,5 @@ /* - * Copyright © 2024 Apple Inc. and the Pkl project authors. All rights reserved. + * Copyright © 2024-2026 Apple Inc. and the Pkl project authors. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -21,8 +21,16 @@ import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; -/** Indicates that a type does not accept {@code null} as a value. */ +/** + * Indicates that a type does not accept {@code null} as a value. + * + *

This annotation is deprecated, and any usage should be replaced with {@link + * org.jspecify.annotations.NonNull}. + * + * @deprecated since 0.32.0 + */ @Target({ElementType.TYPE_PARAMETER, ElementType.TYPE_USE}) @Retention(RetentionPolicy.CLASS) @Documented +@Deprecated(forRemoval = true) public @interface NonNull {}