Revisit nullability annotations

This commit introduces the following changes.

1) It adds a new Spring @NonNull annotation which allows to apply
@NonNullApi semantic on a specific element, like @Nullable does.
Combined with @Nullable, it allows partial null-safety support when
package granularity is too broad.

2) @Nullable and @NonNull can apply to ElementType.TYPE_USE in order
to be used on generic type arguments (SPR-15942).

3) Annotations does not apply to ElementType.TYPE_PARAMETER anymore
since it is not supported yet (applicability for such use case is
controversial and need to be discussed).

4) @NonNullApi does not apply to ElementType.FIELD anymore since in a
lot of use cases (private, protected) it is not part for the public API
+ its usage should remain opt-in. A dedicated @NonNullFields annotation
has been added in order to set fields default to non-nullable.

5) Updated Javadoc and reference documentation.

Issue: SPR-15756
This commit is contained in:
Sebastien Deleuze 2017-09-15 13:26:41 +02:00
parent ec2218c967
commit 1bc93e3d0f
364 changed files with 1003 additions and 113 deletions

View File

@ -4,6 +4,8 @@
* <p>Normally to be used through an AspectJAutoProxyCreator rather than directly.
*/
@NonNullApi
@NonNullFields
package org.springframework.aop.aspectj.annotation;
import org.springframework.lang.NonNullApi;
import org.springframework.lang.NonNullApi;
import org.springframework.lang.NonNullFields;

View File

@ -3,6 +3,8 @@
* Support for AspectJ annotation aspects resides in the "aspectj.annotation" package.
*/
@NonNullApi
@NonNullFields
package org.springframework.aop.aspectj.autoproxy;
import org.springframework.lang.NonNullApi;
import org.springframework.lang.NonNullApi;
import org.springframework.lang.NonNullFields;

View File

@ -9,6 +9,8 @@
* functionality, with consistent semantics, with the proxy-based Spring AOP framework.
*/
@NonNullApi
@NonNullFields
package org.springframework.aop.aspectj;
import org.springframework.lang.NonNullApi;
import org.springframework.lang.NonNullApi;
import org.springframework.lang.NonNullFields;

View File

@ -3,6 +3,8 @@
* with XML schema being the primary configuration format.
*/
@NonNullApi
@NonNullFields
package org.springframework.aop.config;
import org.springframework.lang.NonNullApi;
import org.springframework.lang.NonNullApi;
import org.springframework.lang.NonNullFields;

View File

@ -10,6 +10,8 @@
* <p>These adapters do not depend on any other Spring framework classes to allow such usage.
*/
@NonNullApi
@NonNullFields
package org.springframework.aop.framework.adapter;
import org.springframework.lang.NonNullApi;
import org.springframework.lang.NonNullApi;
import org.springframework.lang.NonNullFields;

View File

@ -10,6 +10,8 @@
* Post-processors can be explicitly registered on a ConfigurableBeanFactory instead.
*/
@NonNullApi
@NonNullFields
package org.springframework.aop.framework.autoproxy;
import org.springframework.lang.NonNullApi;
import org.springframework.lang.NonNullApi;
import org.springframework.lang.NonNullFields;

View File

@ -13,6 +13,8 @@
* ProxyFactory class.
*/
@NonNullApi
@NonNullFields
package org.springframework.aop.framework;
import org.springframework.lang.NonNullApi;
import org.springframework.lang.NonNullApi;
import org.springframework.lang.NonNullFields;

View File

@ -4,6 +4,8 @@
* functionality packages, like "transaction" and "orm".
*/
@NonNullApi
@NonNullFields
package org.springframework.aop.interceptor;
import org.springframework.lang.NonNullApi;
import org.springframework.lang.NonNullApi;
import org.springframework.lang.NonNullFields;

View File

@ -18,6 +18,8 @@
* integrated with the Spring IoC container.
*/
@NonNullApi
@NonNullFields
package org.springframework.aop;
import org.springframework.lang.NonNullApi;
import org.springframework.lang.NonNullApi;
import org.springframework.lang.NonNullFields;

View File

@ -2,6 +2,8 @@
* Support for AOP-based scoping of target objects, with configurable backend.
*/
@NonNullApi
@NonNullFields
package org.springframework.aop.scope;
import org.springframework.lang.NonNullApi;
import org.springframework.lang.NonNullApi;
import org.springframework.lang.NonNullFields;

View File

@ -2,6 +2,8 @@
* Annotation support for AOP pointcuts.
*/
@NonNullApi
@NonNullFields
package org.springframework.aop.support.annotation;
import org.springframework.lang.NonNullApi;
import org.springframework.lang.NonNullApi;
import org.springframework.lang.NonNullFields;

View File

@ -2,6 +2,8 @@
* Convenience classes for using Spring's AOP API.
*/
@NonNullApi
@NonNullFields
package org.springframework.aop.support;
import org.springframework.lang.NonNullApi;
import org.springframework.lang.NonNullApi;
import org.springframework.lang.NonNullFields;

View File

@ -2,6 +2,8 @@
* Support package for beans-style handling of Java 5 annotations.
*/
@NonNullApi
@NonNullFields
package org.springframework.beans.annotation;
import org.springframework.lang.NonNullApi;
import org.springframework.lang.NonNullFields;

View File

@ -2,6 +2,8 @@
* Support package for annotation-driven bean configuration.
*/
@NonNullApi
@NonNullFields
package org.springframework.beans.factory.annotation;
import org.springframework.lang.NonNullApi;
import org.springframework.lang.NonNullFields;

View File

@ -2,6 +2,8 @@
* SPI interfaces and configuration-related convenience classes for bean factories.
*/
@NonNullApi
@NonNullFields
package org.springframework.beans.factory.config;
import org.springframework.lang.NonNullApi;
import org.springframework.lang.NonNullFields;

View File

@ -10,6 +10,8 @@
* by Rod Johnson (Wrox, 2002).
*/
@NonNullApi
@NonNullFields
package org.springframework.beans.factory;
import org.springframework.lang.NonNullApi;
import org.springframework.lang.NonNullFields;

View File

@ -2,6 +2,8 @@
* Support infrastructure for bean definition parsing.
*/
@NonNullApi
@NonNullFields
package org.springframework.beans.factory.parsing;
import org.springframework.lang.NonNullApi;
import org.springframework.lang.NonNullFields;

View File

@ -2,6 +2,8 @@
* Support package for the Java 6 ServiceLoader facility.
*/
@NonNullApi
@NonNullFields
package org.springframework.beans.factory.serviceloader;
import org.springframework.lang.NonNullApi;
import org.springframework.lang.NonNullFields;

View File

@ -3,6 +3,8 @@
* Contains abstract base classes for {@code BeanFactory} implementations.
*/
@NonNullApi
@NonNullFields
package org.springframework.beans.factory.support;
import org.springframework.lang.NonNullApi;
import org.springframework.lang.NonNullFields;

View File

@ -3,6 +3,8 @@
* Foundation for aspect-driven bean configuration.
*/
@NonNullApi
@NonNullFields
package org.springframework.beans.factory.wiring;
import org.springframework.lang.NonNullApi;
import org.springframework.lang.NonNullFields;

View File

@ -3,6 +3,8 @@
* including a standard "spring-beans" XSD.
*/
@NonNullApi
@NonNullFields
package org.springframework.beans.factory.xml;
import org.springframework.lang.NonNullApi;
import org.springframework.lang.NonNullFields;

View File

@ -10,6 +10,8 @@
* by Rod Johnson (Wrox, 2002).
*/
@NonNullApi
@NonNullFields
package org.springframework.beans;
import org.springframework.lang.NonNullApi;
import org.springframework.lang.NonNullFields;

View File

@ -7,6 +7,8 @@
* specific binding processes, as they are localized or the like.
*/
@NonNullApi
@NonNullFields
package org.springframework.beans.propertyeditors;
import org.springframework.lang.NonNullApi;
import org.springframework.lang.NonNullFields;

View File

@ -3,6 +3,8 @@
* such as utility classes for sorting and holding lists of beans.
*/
@NonNullApi
@NonNullFields
package org.springframework.beans.support;
import org.springframework.lang.NonNullApi;
import org.springframework.lang.NonNullFields;

View File

@ -4,6 +4,8 @@
* allowing to set up Caffeine caches within Spring's cache abstraction.
*/
@NonNullApi
@NonNullFields
package org.springframework.cache.caffeine;
import org.springframework.lang.NonNullApi;
import org.springframework.lang.NonNullApi;
import org.springframework.lang.NonNullFields;

View File

@ -10,6 +10,8 @@
* Spring's support in {@code org.springframework.cache.jcache}.
*/
@NonNullApi
@NonNullFields
package org.springframework.cache.ehcache;
import org.springframework.lang.NonNullApi;
import org.springframework.lang.NonNullApi;
import org.springframework.lang.NonNullFields;

View File

@ -5,6 +5,8 @@
* use in a Spring context, using a JSR-107 compliant cache provider.
*/
@NonNullApi
@NonNullFields
package org.springframework.cache.jcache;
import org.springframework.lang.NonNullApi;
import org.springframework.lang.NonNullApi;
import org.springframework.lang.NonNullFields;

View File

@ -3,6 +3,8 @@
* Provides synchronization of put operations with Spring-managed transactions.
*/
@NonNullApi
@NonNullFields
package org.springframework.cache.transaction;
import org.springframework.lang.NonNullApi;
import org.springframework.lang.NonNullApi;
import org.springframework.lang.NonNullFields;

View File

@ -4,6 +4,8 @@
* class for convenient population of a JavaMail MimeMessage.
*/
@NonNullApi
@NonNullFields
package org.springframework.mail.javamail;
import org.springframework.lang.NonNullApi;
import org.springframework.lang.NonNullApi;
import org.springframework.lang.NonNullFields;

View File

@ -3,6 +3,8 @@
* Concrete implementations are provided in the subpackages.
*/
@NonNullApi
@NonNullFields
package org.springframework.mail;
import org.springframework.lang.NonNullApi;
import org.springframework.lang.NonNullApi;
import org.springframework.lang.NonNullFields;

View File

@ -3,6 +3,8 @@
* facility, as supported by IBM WebSphere 6.0+ and BEA WebLogic 9.0+.
*/
@NonNullApi
@NonNullFields
package org.springframework.scheduling.commonj;
import org.springframework.lang.NonNullApi;
import org.springframework.lang.NonNullApi;
import org.springframework.lang.NonNullFields;

View File

@ -6,6 +6,8 @@
* convenience classes for implementing Quartz Jobs.
*/
@NonNullApi
@NonNullFields
package org.springframework.scheduling.quartz;
import org.springframework.lang.NonNullApi;
import org.springframework.lang.NonNullApi;
import org.springframework.lang.NonNullFields;

View File

@ -4,6 +4,8 @@
* within a Spring application context.
*/
@NonNullApi
@NonNullFields
package org.springframework.ui.freemarker;
import org.springframework.lang.NonNullApi;
import org.springframework.lang.NonNullApi;
import org.springframework.lang.NonNullFields;

View File

@ -4,6 +4,8 @@
* {@link org.springframework.cache.interceptor.CacheOperationSource}.
*/
@NonNullApi
@NonNullFields
package org.springframework.cache.annotation;
import org.springframework.lang.NonNullApi;
import org.springframework.lang.NonNullApi;
import org.springframework.lang.NonNullFields;

View File

@ -5,6 +5,8 @@
* use in a Spring context, using a JDK based thread pool at runtime.
*/
@NonNullApi
@NonNullFields
package org.springframework.cache.concurrent;
import org.springframework.lang.NonNullApi;
import org.springframework.lang.NonNullApi;
import org.springframework.lang.NonNullFields;

View File

@ -5,6 +5,8 @@
* for details on code-based configuration without XML.
*/
@NonNullApi
@NonNullFields
package org.springframework.cache.config;
import org.springframework.lang.NonNullApi;
import org.springframework.lang.NonNullApi;
import org.springframework.lang.NonNullFields;

View File

@ -4,6 +4,8 @@
* Any POJO can be cache-advised with Spring.
*/
@NonNullApi
@NonNullFields
package org.springframework.cache.interceptor;
import org.springframework.lang.NonNullApi;
import org.springframework.lang.NonNullApi;
import org.springframework.lang.NonNullFields;

View File

@ -3,6 +3,8 @@
* Concrete implementations are provided in the subpackages.
*/
@NonNullApi
@NonNullFields
package org.springframework.cache;
import org.springframework.lang.NonNullApi;
import org.springframework.lang.NonNullApi;
import org.springframework.lang.NonNullFields;

View File

@ -3,6 +3,8 @@
* Provides abstract classes for cache managers and caches.
*/
@NonNullApi
@NonNullFields
package org.springframework.cache.support;
import org.springframework.lang.NonNullApi;
import org.springframework.lang.NonNullApi;
import org.springframework.lang.NonNullFields;

View File

@ -4,6 +4,8 @@
* Spring-managed objects.
*/
@NonNullApi
@NonNullFields
package org.springframework.context.annotation;
import org.springframework.lang.NonNullApi;
import org.springframework.lang.NonNullFields;

View File

@ -3,6 +3,8 @@
* with XML schema being the primary configuration format.
*/
@NonNullApi
@NonNullFields
package org.springframework.context.config;
import org.springframework.lang.NonNullApi;
import org.springframework.lang.NonNullApi;
import org.springframework.lang.NonNullFields;

View File

@ -3,6 +3,8 @@
* To be supported by all major application context implementations.
*/
@NonNullApi
@NonNullFields
package org.springframework.context.event;
import org.springframework.lang.NonNullApi;
import org.springframework.lang.NonNullApi;
import org.springframework.lang.NonNullFields;

View File

@ -2,6 +2,8 @@
* Expression parsing support within a Spring application context.
*/
@NonNullApi
@NonNullFields
package org.springframework.context.expression;
import org.springframework.lang.NonNullApi;
import org.springframework.lang.NonNullApi;
import org.springframework.lang.NonNullFields;

View File

@ -3,6 +3,8 @@
* plus global holder that exposes a thread-bound Locale.
*/
@NonNullApi
@NonNullFields
package org.springframework.context.i18n;
import org.springframework.lang.NonNullApi;
import org.springframework.lang.NonNullApi;
import org.springframework.lang.NonNullFields;

View File

@ -2,6 +2,8 @@
* Support package for reading and managing the components index.
*/
@NonNullApi
@NonNullFields
package org.springframework.context.index;
import org.springframework.lang.NonNullApi;
import org.springframework.lang.NonNullApi;
import org.springframework.lang.NonNullFields;

View File

@ -11,6 +11,8 @@
* any dependency on Spring-specific APIs.
*/
@NonNullApi
@NonNullFields
package org.springframework.context;
import org.springframework.lang.NonNullApi;
import org.springframework.lang.NonNullApi;
import org.springframework.lang.NonNullFields;

View File

@ -4,6 +4,8 @@
* implementations and a MessageSource implementation.
*/
@NonNullApi
@NonNullFields
package org.springframework.context.support;
import org.springframework.lang.NonNullApi;
import org.springframework.lang.NonNullApi;
import org.springframework.lang.NonNullFields;

View File

@ -3,6 +3,8 @@
* {@link org.springframework.instrument.classloading.LoadTimeWeaver} abstraction.
*/
@NonNullApi
@NonNullFields
package org.springframework.context.weaving;
import org.springframework.lang.NonNullApi;
import org.springframework.lang.NonNullApi;
import org.springframework.lang.NonNullFields;

View File

@ -20,6 +20,8 @@
* <i>Expert One-on-One J2EE</i>.
*/
@NonNullApi
@NonNullFields
package org.springframework.ejb.access;
import org.springframework.lang.NonNullApi;
import org.springframework.lang.NonNullApi;
import org.springframework.lang.NonNullFields;

View File

@ -3,6 +3,8 @@
* with XML schema being the primary configuration format.
*/
@NonNullApi
@NonNullFields
package org.springframework.ejb.config;
import org.springframework.lang.NonNullApi;
import org.springframework.lang.NonNullApi;
import org.springframework.lang.NonNullFields;

View File

@ -2,6 +2,8 @@
* Annotations for declaratively configuring field formatting rules.
*/
@NonNullApi
@NonNullFields
package org.springframework.format.annotation;
import org.springframework.lang.NonNullApi;
import org.springframework.lang.NonNullApi;
import org.springframework.lang.NonNullFields;

View File

@ -2,6 +2,8 @@
* Integration with Joda-Time for formatting Joda date and time types as well as standard JDK Date types.
*/
@NonNullApi
@NonNullFields
package org.springframework.format.datetime.joda;
import org.springframework.lang.NonNullApi;
import org.springframework.lang.NonNullApi;
import org.springframework.lang.NonNullFields;

View File

@ -2,6 +2,8 @@
* Formatters for {@code java.util.Date} properties.
*/
@NonNullApi
@NonNullFields
package org.springframework.format.datetime;
import org.springframework.lang.NonNullApi;
import org.springframework.lang.NonNullApi;
import org.springframework.lang.NonNullFields;

View File

@ -2,6 +2,8 @@
* Integration with the JSR-310 <code>java.time</code> package in JDK 8.
*/
@NonNullApi
@NonNullFields
package org.springframework.format.datetime.standard;
import org.springframework.lang.NonNullApi;
import org.springframework.lang.NonNullApi;
import org.springframework.lang.NonNullFields;

View File

@ -2,6 +2,8 @@
* Integration with the JSR-354 <code>javax.money</code> package.
*/
@NonNullApi
@NonNullFields
package org.springframework.format.number.money;
import org.springframework.lang.NonNullApi;
import org.springframework.lang.NonNullApi;
import org.springframework.lang.NonNullFields;

View File

@ -2,6 +2,8 @@
* Formatters for {@code java.lang.Number} properties.
*/
@NonNullApi
@NonNullFields
package org.springframework.format.number;
import org.springframework.lang.NonNullApi;
import org.springframework.lang.NonNullApi;
import org.springframework.lang.NonNullFields;

View File

@ -2,6 +2,8 @@
* An API for defining Formatters to format field model values for display in a UI.
*/
@NonNullApi
@NonNullFields
package org.springframework.format;
import org.springframework.lang.NonNullApi;
import org.springframework.lang.NonNullApi;
import org.springframework.lang.NonNullFields;

View File

@ -3,6 +3,8 @@
* providing common implementations as well as adapters.
*/
@NonNullApi
@NonNullFields
package org.springframework.format.support;
import org.springframework.lang.NonNullApi;
import org.springframework.lang.NonNullApi;
import org.springframework.lang.NonNullFields;

View File

@ -2,6 +2,8 @@
* Support for class instrumentation on GlassFish.
*/
@NonNullApi
@NonNullFields
package org.springframework.instrument.classloading.glassfish;
import org.springframework.lang.NonNullApi;
import org.springframework.lang.NonNullApi;
import org.springframework.lang.NonNullFields;

View File

@ -2,6 +2,8 @@
* Support for class instrumentation on JBoss AS 6 and 7.
*/
@NonNullApi
@NonNullFields
package org.springframework.instrument.classloading.jboss;
import org.springframework.lang.NonNullApi;
import org.springframework.lang.NonNullApi;
import org.springframework.lang.NonNullFields;

View File

@ -3,6 +3,8 @@
* as required by JPA providers (but not JPA-specific).
*/
@NonNullApi
@NonNullFields
package org.springframework.instrument.classloading;
import org.springframework.lang.NonNullApi;
import org.springframework.lang.NonNullApi;
import org.springframework.lang.NonNullFields;

View File

@ -2,6 +2,8 @@
* Support for class instrumentation on Tomcat.
*/
@NonNullApi
@NonNullFields
package org.springframework.instrument.classloading.tomcat;
import org.springframework.lang.NonNullApi;
import org.springframework.lang.NonNullApi;
import org.springframework.lang.NonNullFields;

View File

@ -2,6 +2,8 @@
* Support for class instrumentation on BEA WebLogic 10+.
*/
@NonNullApi
@NonNullFields
package org.springframework.instrument.classloading.weblogic;
import org.springframework.lang.NonNullApi;
import org.springframework.lang.NonNullApi;
import org.springframework.lang.NonNullFields;

View File

@ -2,6 +2,8 @@
* Support for class instrumentation on IBM WebSphere Application Server 7+.
*/
@NonNullApi
@NonNullFields
package org.springframework.instrument.classloading.websphere;
import org.springframework.lang.NonNullApi;
import org.springframework.lang.NonNullApi;
import org.springframework.lang.NonNullFields;

View File

@ -2,6 +2,8 @@
* Provides support for accessing remote MBean resources.
*/
@NonNullApi
@NonNullFields
package org.springframework.jmx.access;
import org.springframework.lang.NonNullApi;
import org.springframework.lang.NonNullApi;
import org.springframework.lang.NonNullFields;

View File

@ -4,6 +4,8 @@
* via a special JmxAttributeSource implementation.
*/
@NonNullApi
@NonNullFields
package org.springframework.jmx.export.annotation;
import org.springframework.lang.NonNullApi;
import org.springframework.lang.NonNullApi;
import org.springframework.lang.NonNullFields;

View File

@ -3,6 +3,8 @@
* determine the attributes and operations to expose for Spring-managed beans.
*/
@NonNullApi
@NonNullFields
package org.springframework.jmx.export.assembler;
import org.springframework.lang.NonNullApi;
import org.springframework.lang.NonNullApi;
import org.springframework.lang.NonNullFields;

View File

@ -3,6 +3,8 @@
* JMX metadata in a provider-agnostic manner.
*/
@NonNullApi
@NonNullFields
package org.springframework.jmx.export.metadata;
import org.springframework.lang.NonNullApi;
import org.springframework.lang.NonNullApi;
import org.springframework.lang.NonNullFields;

View File

@ -3,6 +3,8 @@
* to determine the JMX names to use for exported Spring-managed beans.
*/
@NonNullApi
@NonNullFields
package org.springframework.jmx.export.naming;
import org.springframework.lang.NonNullApi;
import org.springframework.lang.NonNullApi;
import org.springframework.lang.NonNullFields;

View File

@ -3,6 +3,8 @@
* to send JMX notifications.
*/
@NonNullApi
@NonNullFields
package org.springframework.jmx.export.notification;
import org.springframework.lang.NonNullApi;
import org.springframework.lang.NonNullApi;
import org.springframework.lang.NonNullFields;

View File

@ -3,6 +3,8 @@
* Spring-managed beans as JMX MBeans.
*/
@NonNullApi
@NonNullFields
package org.springframework.jmx.export;
import org.springframework.lang.NonNullApi;
import org.springframework.lang.NonNullApi;
import org.springframework.lang.NonNullFields;

View File

@ -3,6 +3,8 @@
* Spring-managed beans as JMX MBeans as well as access to remote JMX MBeans.
*/
@NonNullApi
@NonNullFields
package org.springframework.jmx;
import org.springframework.lang.NonNullApi;
import org.springframework.lang.NonNullApi;
import org.springframework.lang.NonNullFields;

View File

@ -3,6 +3,8 @@
* and for exposing an {@code MBeanServer} to remote clients.
*/
@NonNullApi
@NonNullFields
package org.springframework.jmx.support;
import org.springframework.lang.NonNullApi;
import org.springframework.lang.NonNullApi;
import org.springframework.lang.NonNullFields;

View File

@ -8,6 +8,8 @@
* by Rod Johnson (Wrox, 2002).
*/
@NonNullApi
@NonNullFields
package org.springframework.jndi;
import org.springframework.lang.NonNullApi;
import org.springframework.lang.NonNullApi;
import org.springframework.lang.NonNullFields;

View File

@ -3,6 +3,8 @@
* including a JNDI-based BeanFactory implementation.
*/
@NonNullApi
@NonNullFields
package org.springframework.jndi.support;
import org.springframework.lang.NonNullApi;
import org.springframework.lang.NonNullApi;
import org.springframework.lang.NonNullFields;

View File

@ -3,6 +3,8 @@
* independent of any specific remote method invocation system.
*/
@NonNullApi
@NonNullFields
package org.springframework.remoting;
import org.springframework.lang.NonNullApi;
import org.springframework.lang.NonNullApi;
import org.springframework.lang.NonNullFields;

View File

@ -2,6 +2,8 @@
* Java 5 annotation for asynchronous method execution.
*/
@NonNullApi
@NonNullFields
package org.springframework.scheduling.annotation;
import org.springframework.lang.NonNullApi;
import org.springframework.lang.NonNullApi;
import org.springframework.lang.NonNullFields;

View File

@ -6,6 +6,8 @@
* interfaces as well as the Spring {@code TaskExecutor} mechanism.
*/
@NonNullApi
@NonNullFields
package org.springframework.scheduling.concurrent;
import org.springframework.lang.NonNullApi;
import org.springframework.lang.NonNullApi;
import org.springframework.lang.NonNullFields;

View File

@ -3,6 +3,8 @@
* with XML schema being the primary configuration format.
*/
@NonNullApi
@NonNullFields
package org.springframework.scheduling.config;
import org.springframework.lang.NonNullApi;
import org.springframework.lang.NonNullApi;
import org.springframework.lang.NonNullFields;

View File

@ -3,6 +3,8 @@
* independent of any specific scheduling system.
*/
@NonNullApi
@NonNullFields
package org.springframework.scheduling;
import org.springframework.lang.NonNullApi;
import org.springframework.lang.NonNullApi;
import org.springframework.lang.NonNullFields;

View File

@ -3,6 +3,8 @@
* Provides a Runnable adapter for Spring's MethodInvoker.
*/
@NonNullApi
@NonNullFields
package org.springframework.scheduling.support;
import org.springframework.lang.NonNullApi;
import org.springframework.lang.NonNullApi;
import org.springframework.lang.NonNullFields;

View File

@ -5,6 +5,8 @@
* into Spring's scripting infrastructure.
*/
@NonNullApi
@NonNullFields
package org.springframework.scripting.bsh;
import org.springframework.lang.NonNullApi;
import org.springframework.lang.NonNullApi;
import org.springframework.lang.NonNullFields;

View File

@ -3,6 +3,8 @@
* with XML schema being the primary configuration format.
*/
@NonNullApi
@NonNullFields
package org.springframework.scripting.config;
import org.springframework.lang.NonNullApi;
import org.springframework.lang.NonNullApi;
import org.springframework.lang.NonNullFields;

View File

@ -4,6 +4,8 @@
* into Spring's scripting infrastructure.
*/
@NonNullApi
@NonNullFields
package org.springframework.scripting.groovy;
import org.springframework.lang.NonNullApi;
import org.springframework.lang.NonNullApi;
import org.springframework.lang.NonNullFields;

View File

@ -2,6 +2,8 @@
* Core interfaces for Spring's scripting support.
*/
@NonNullApi
@NonNullFields
package org.springframework.scripting;
import org.springframework.lang.NonNullApi;
import org.springframework.lang.NonNullApi;
import org.springframework.lang.NonNullFields;

View File

@ -4,6 +4,8 @@
* definitions into scripted objects.
*/
@NonNullApi
@NonNullFields
package org.springframework.scripting.support;
import org.springframework.lang.NonNullApi;
import org.springframework.lang.NonNullApi;
import org.springframework.lang.NonNullFields;

View File

@ -5,6 +5,8 @@
* <p>Intended for use by tools and aspects (making an ideal target for pointcuts).
*/
@NonNullApi
@NonNullFields
package org.springframework.stereotype;
import org.springframework.lang.NonNullApi;
import org.springframework.lang.NonNullApi;
import org.springframework.lang.NonNullFields;

View File

@ -3,6 +3,8 @@
* for UI applications. The theme feature is added here.
*/
@NonNullApi
@NonNullFields
package org.springframework.ui.context;
import org.springframework.lang.NonNullApi;
import org.springframework.lang.NonNullApi;
import org.springframework.lang.NonNullFields;

View File

@ -3,6 +3,8 @@
* Provides support classes for specialized UI contexts, e.g. for web UIs.
*/
@NonNullApi
@NonNullFields
package org.springframework.ui.context.support;
import org.springframework.lang.NonNullApi;
import org.springframework.lang.NonNullApi;
import org.springframework.lang.NonNullFields;

View File

@ -3,6 +3,8 @@
* Provides a generic ModelMap for model holding.
*/
@NonNullApi
@NonNullFields
package org.springframework.ui;
import org.springframework.lang.NonNullApi;
import org.springframework.lang.NonNullApi;
import org.springframework.lang.NonNullFields;

View File

@ -6,6 +6,8 @@
* supporting the specification of validation groups.
*/
@NonNullApi
@NonNullFields
package org.springframework.validation.annotation;
import org.springframework.lang.NonNullApi;
import org.springframework.lang.NonNullApi;
import org.springframework.lang.NonNullFields;

View File

@ -9,6 +9,8 @@
* to other Spring components.
*/
@NonNullApi
@NonNullFields
package org.springframework.validation.beanvalidation;
import org.springframework.lang.NonNullApi;
import org.springframework.lang.NonNullApi;
import org.springframework.lang.NonNullFields;

View File

@ -3,6 +3,8 @@
* for usage in business and/or UI layers.
*/
@NonNullApi
@NonNullFields
package org.springframework.validation;
import org.springframework.lang.NonNullApi;
import org.springframework.lang.NonNullApi;
import org.springframework.lang.NonNullFields;

View File

@ -2,6 +2,8 @@
* Support classes for handling validation results.
*/
@NonNullApi
@NonNullFields
package org.springframework.validation.support;
import org.springframework.lang.NonNullApi;
import org.springframework.lang.NonNullApi;
import org.springframework.lang.NonNullFields;

View File

@ -3,6 +3,8 @@
* annotations with attribute overrides.
*/
@NonNullApi
@NonNullFields
package org.springframework.core.annotation;
import org.springframework.lang.NonNullApi;
import org.springframework.lang.NonNullApi;
import org.springframework.lang.NonNullFields;

View File

@ -4,6 +4,8 @@
* between a reactive stream of bytes and Java objects.
*/
@NonNullApi
@NonNullFields
package org.springframework.core.codec;
import org.springframework.lang.NonNullApi;
import org.springframework.lang.NonNullFields;

View File

@ -2,6 +2,8 @@
* SPI to implement Converters for the type conversion system.
*/
@NonNullApi
@NonNullFields
package org.springframework.core.convert.converter;
import org.springframework.lang.NonNullApi;
import org.springframework.lang.NonNullFields;

View File

@ -2,6 +2,8 @@
* Type conversion system API.
*/
@NonNullApi
@NonNullFields
package org.springframework.core.convert;
import org.springframework.lang.NonNullApi;
import org.springframework.lang.NonNullFields;

View File

@ -2,6 +2,8 @@
* Default implementation of the type conversion system.
*/
@NonNullApi
@NonNullFields
package org.springframework.core.convert.support;
import org.springframework.lang.NonNullApi;
import org.springframework.lang.NonNullFields;

View File

@ -3,6 +3,8 @@
* profile and hierarchical property source support.
*/
@NonNullApi
@NonNullFields
package org.springframework.core.env;
import org.springframework.lang.NonNullApi;
import org.springframework.lang.NonNullFields;

Some files were not shown because too many files have changed in this diff Show More