diff --git a/spring-context/src/main/java/org/springframework/context/annotation/AdviceModeImportSelector.java b/spring-context/src/main/java/org/springframework/context/annotation/AdviceModeImportSelector.java
index adfb7a55dea..c32c9a247e9 100644
--- a/spring-context/src/main/java/org/springframework/context/annotation/AdviceModeImportSelector.java
+++ b/spring-context/src/main/java/org/springframework/context/annotation/AdviceModeImportSelector.java
@@ -21,6 +21,7 @@ import java.lang.annotation.Annotation;
import org.springframework.core.GenericTypeResolver;
import org.springframework.core.annotation.AnnotationAttributes;
import org.springframework.core.type.AnnotationMetadata;
+import org.springframework.lang.NonNullApi;
import org.springframework.lang.Nullable;
/**
@@ -32,6 +33,7 @@ import org.springframework.lang.Nullable;
* @since 3.1
* @param annotation containing {@linkplain #getAdviceModeAttributeName() AdviceMode attribute}
*/
+@NonNullApi
public abstract class AdviceModeImportSelector implements ImportSelector {
public static final String DEFAULT_ADVICE_MODE_ATTRIBUTE_NAME = "mode";
diff --git a/spring-context/src/main/java/org/springframework/context/annotation/AnnotatedBeanDefinitionReader.java b/spring-context/src/main/java/org/springframework/context/annotation/AnnotatedBeanDefinitionReader.java
index 6a6fee8df5c..150274d92ef 100644
--- a/spring-context/src/main/java/org/springframework/context/annotation/AnnotatedBeanDefinitionReader.java
+++ b/spring-context/src/main/java/org/springframework/context/annotation/AnnotatedBeanDefinitionReader.java
@@ -30,6 +30,7 @@ import org.springframework.beans.factory.support.BeanNameGenerator;
import org.springframework.core.env.Environment;
import org.springframework.core.env.EnvironmentCapable;
import org.springframework.core.env.StandardEnvironment;
+import org.springframework.lang.NonNullApi;
import org.springframework.lang.Nullable;
import org.springframework.util.Assert;
@@ -45,6 +46,7 @@ import org.springframework.util.Assert;
* @since 3.0
* @see AnnotationConfigApplicationContext#register
*/
+@NonNullApi
public class AnnotatedBeanDefinitionReader {
private final BeanDefinitionRegistry registry;
diff --git a/spring-context/src/main/java/org/springframework/context/annotation/AnnotationBeanNameGenerator.java b/spring-context/src/main/java/org/springframework/context/annotation/AnnotationBeanNameGenerator.java
index 8d4dd12103d..d742dd590bf 100644
--- a/spring-context/src/main/java/org/springframework/context/annotation/AnnotationBeanNameGenerator.java
+++ b/spring-context/src/main/java/org/springframework/context/annotation/AnnotationBeanNameGenerator.java
@@ -26,6 +26,7 @@ import org.springframework.beans.factory.support.BeanDefinitionRegistry;
import org.springframework.beans.factory.support.BeanNameGenerator;
import org.springframework.core.annotation.AnnotationAttributes;
import org.springframework.core.type.AnnotationMetadata;
+import org.springframework.lang.NonNullApi;
import org.springframework.lang.Nullable;
import org.springframework.util.ClassUtils;
import org.springframework.util.StringUtils;
@@ -60,6 +61,7 @@ import org.springframework.util.StringUtils;
* @see org.springframework.stereotype.Controller#value()
* @see javax.inject.Named#value()
*/
+@NonNullApi
public class AnnotationBeanNameGenerator implements BeanNameGenerator {
private static final String COMPONENT_ANNOTATION_CLASSNAME = "org.springframework.stereotype.Component";
diff --git a/spring-context/src/main/java/org/springframework/context/annotation/AnnotationConfigApplicationContext.java b/spring-context/src/main/java/org/springframework/context/annotation/AnnotationConfigApplicationContext.java
index b99e4aebf81..952a8679849 100644
--- a/spring-context/src/main/java/org/springframework/context/annotation/AnnotationConfigApplicationContext.java
+++ b/spring-context/src/main/java/org/springframework/context/annotation/AnnotationConfigApplicationContext.java
@@ -23,6 +23,7 @@ import org.springframework.beans.factory.support.BeanNameGenerator;
import org.springframework.beans.factory.support.DefaultListableBeanFactory;
import org.springframework.context.support.GenericApplicationContext;
import org.springframework.core.env.ConfigurableEnvironment;
+import org.springframework.lang.NonNullApi;
import org.springframework.lang.Nullable;
import org.springframework.util.Assert;
@@ -50,6 +51,7 @@ import org.springframework.util.Assert;
* @see ClassPathBeanDefinitionScanner
* @see org.springframework.context.support.GenericXmlApplicationContext
*/
+@NonNullApi
public class AnnotationConfigApplicationContext extends GenericApplicationContext implements AnnotationConfigRegistry {
private final AnnotatedBeanDefinitionReader reader;
diff --git a/spring-context/src/main/java/org/springframework/context/annotation/AnnotationConfigBeanDefinitionParser.java b/spring-context/src/main/java/org/springframework/context/annotation/AnnotationConfigBeanDefinitionParser.java
index de52f2e6d32..90082eb4526 100644
--- a/spring-context/src/main/java/org/springframework/context/annotation/AnnotationConfigBeanDefinitionParser.java
+++ b/spring-context/src/main/java/org/springframework/context/annotation/AnnotationConfigBeanDefinitionParser.java
@@ -26,6 +26,7 @@ import org.springframework.beans.factory.parsing.BeanComponentDefinition;
import org.springframework.beans.factory.parsing.CompositeComponentDefinition;
import org.springframework.beans.factory.xml.BeanDefinitionParser;
import org.springframework.beans.factory.xml.ParserContext;
+import org.springframework.lang.NonNullApi;
/**
* Parser for the <context:annotation-config/> element.
@@ -36,6 +37,7 @@ import org.springframework.beans.factory.xml.ParserContext;
* @since 2.5
* @see AnnotationConfigUtils
*/
+@NonNullApi
public class AnnotationConfigBeanDefinitionParser implements BeanDefinitionParser {
@Override
diff --git a/spring-context/src/main/java/org/springframework/context/annotation/AnnotationConfigRegistry.java b/spring-context/src/main/java/org/springframework/context/annotation/AnnotationConfigRegistry.java
index d1fe2f1def8..34b0d87c1e7 100644
--- a/spring-context/src/main/java/org/springframework/context/annotation/AnnotationConfigRegistry.java
+++ b/spring-context/src/main/java/org/springframework/context/annotation/AnnotationConfigRegistry.java
@@ -16,6 +16,8 @@
package org.springframework.context.annotation;
+import org.springframework.lang.NonNullApi;
+
/**
* Common interface for annotation config application contexts,
* defining {@link #register} and {@link #scan} methods.
@@ -23,6 +25,7 @@ package org.springframework.context.annotation;
* @author Juergen Hoeller
* @since 4.1
*/
+@NonNullApi
public interface AnnotationConfigRegistry {
/**
diff --git a/spring-context/src/main/java/org/springframework/context/annotation/AnnotationConfigUtils.java b/spring-context/src/main/java/org/springframework/context/annotation/AnnotationConfigUtils.java
index 9f688c893a6..6d5a118e2a6 100644
--- a/spring-context/src/main/java/org/springframework/context/annotation/AnnotationConfigUtils.java
+++ b/spring-context/src/main/java/org/springframework/context/annotation/AnnotationConfigUtils.java
@@ -37,6 +37,7 @@ import org.springframework.core.annotation.AnnotationAttributes;
import org.springframework.core.annotation.AnnotationAwareOrderComparator;
import org.springframework.core.type.AnnotatedTypeMetadata;
import org.springframework.core.type.AnnotationMetadata;
+import org.springframework.lang.NonNullApi;
import org.springframework.lang.Nullable;
import org.springframework.util.ClassUtils;
@@ -60,6 +61,7 @@ import org.springframework.util.ClassUtils;
* @see org.springframework.beans.factory.annotation.RequiredAnnotationBeanPostProcessor
* @see org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor
*/
+@NonNullApi
public class AnnotationConfigUtils {
/**
diff --git a/spring-context/src/main/java/org/springframework/context/annotation/AnnotationScopeMetadataResolver.java b/spring-context/src/main/java/org/springframework/context/annotation/AnnotationScopeMetadataResolver.java
index ddbf312a08a..adfab1e8743 100644
--- a/spring-context/src/main/java/org/springframework/context/annotation/AnnotationScopeMetadataResolver.java
+++ b/spring-context/src/main/java/org/springframework/context/annotation/AnnotationScopeMetadataResolver.java
@@ -21,6 +21,7 @@ import java.lang.annotation.Annotation;
import org.springframework.beans.factory.annotation.AnnotatedBeanDefinition;
import org.springframework.beans.factory.config.BeanDefinition;
import org.springframework.core.annotation.AnnotationAttributes;
+import org.springframework.lang.NonNullApi;
import org.springframework.util.Assert;
/**
@@ -36,6 +37,7 @@ import org.springframework.util.Assert;
* @since 2.5
* @see org.springframework.context.annotation.Scope
*/
+@NonNullApi
public class AnnotationScopeMetadataResolver implements ScopeMetadataResolver {
private final ScopedProxyMode defaultProxyMode;
diff --git a/spring-context/src/main/java/org/springframework/context/annotation/AspectJAutoProxyRegistrar.java b/spring-context/src/main/java/org/springframework/context/annotation/AspectJAutoProxyRegistrar.java
index 5ec21e9c3e0..db739c7069f 100644
--- a/spring-context/src/main/java/org/springframework/context/annotation/AspectJAutoProxyRegistrar.java
+++ b/spring-context/src/main/java/org/springframework/context/annotation/AspectJAutoProxyRegistrar.java
@@ -20,6 +20,7 @@ import org.springframework.aop.config.AopConfigUtils;
import org.springframework.beans.factory.support.BeanDefinitionRegistry;
import org.springframework.core.annotation.AnnotationAttributes;
import org.springframework.core.type.AnnotationMetadata;
+import org.springframework.lang.NonNullApi;
/**
* Registers an {@link org.springframework.aop.aspectj.annotation.AnnotationAwareAspectJAutoProxyCreator
@@ -31,6 +32,7 @@ import org.springframework.core.type.AnnotationMetadata;
* @since 3.1
* @see EnableAspectJAutoProxy
*/
+@NonNullApi
class AspectJAutoProxyRegistrar implements ImportBeanDefinitionRegistrar {
/**
diff --git a/spring-context/src/main/java/org/springframework/context/annotation/AutoProxyRegistrar.java b/spring-context/src/main/java/org/springframework/context/annotation/AutoProxyRegistrar.java
index c02ceb33192..b72c3bb8540 100644
--- a/spring-context/src/main/java/org/springframework/context/annotation/AutoProxyRegistrar.java
+++ b/spring-context/src/main/java/org/springframework/context/annotation/AutoProxyRegistrar.java
@@ -25,6 +25,7 @@ import org.springframework.aop.config.AopConfigUtils;
import org.springframework.beans.factory.support.BeanDefinitionRegistry;
import org.springframework.core.annotation.AnnotationAttributes;
import org.springframework.core.type.AnnotationMetadata;
+import org.springframework.lang.NonNullApi;
/**
* Registers an auto proxy creator against the current {@link BeanDefinitionRegistry}
@@ -35,6 +36,7 @@ import org.springframework.core.type.AnnotationMetadata;
* @since 3.1
* @see EnableAspectJAutoProxy
*/
+@NonNullApi
public class AutoProxyRegistrar implements ImportBeanDefinitionRegistrar {
private final Log logger = LogFactory.getLog(getClass());
diff --git a/spring-context/src/main/java/org/springframework/context/annotation/BeanAnnotationHelper.java b/spring-context/src/main/java/org/springframework/context/annotation/BeanAnnotationHelper.java
index b28ab0492b6..70c1bf75ba9 100644
--- a/spring-context/src/main/java/org/springframework/context/annotation/BeanAnnotationHelper.java
+++ b/spring-context/src/main/java/org/springframework/context/annotation/BeanAnnotationHelper.java
@@ -19,6 +19,7 @@ package org.springframework.context.annotation;
import java.lang.reflect.Method;
import org.springframework.core.annotation.AnnotatedElementUtils;
+import org.springframework.lang.NonNullApi;
/**
* Utilities for processing {@link Bean}-annotated methods.
@@ -27,6 +28,7 @@ import org.springframework.core.annotation.AnnotatedElementUtils;
* @author Juergen Hoeller
* @since 3.1
*/
+@NonNullApi
class BeanAnnotationHelper {
public static boolean isBeanAnnotated(Method method) {
diff --git a/spring-context/src/main/java/org/springframework/context/annotation/BeanMethod.java b/spring-context/src/main/java/org/springframework/context/annotation/BeanMethod.java
index 939cb6b300e..9ce76505d02 100644
--- a/spring-context/src/main/java/org/springframework/context/annotation/BeanMethod.java
+++ b/spring-context/src/main/java/org/springframework/context/annotation/BeanMethod.java
@@ -19,6 +19,7 @@ package org.springframework.context.annotation;
import org.springframework.beans.factory.parsing.Problem;
import org.springframework.beans.factory.parsing.ProblemReporter;
import org.springframework.core.type.MethodMetadata;
+import org.springframework.lang.NonNullApi;
/**
* Represents a {@link Configuration} class method marked with the
@@ -31,6 +32,7 @@ import org.springframework.core.type.MethodMetadata;
* @see ConfigurationClassParser
* @see ConfigurationClassBeanDefinitionReader
*/
+@NonNullApi
final class BeanMethod extends ConfigurationMethod {
public BeanMethod(MethodMetadata metadata, ConfigurationClass configurationClass) {
diff --git a/spring-context/src/main/java/org/springframework/context/annotation/ClassPathBeanDefinitionScanner.java b/spring-context/src/main/java/org/springframework/context/annotation/ClassPathBeanDefinitionScanner.java
index 53721d6b6f0..4811262197d 100644
--- a/spring-context/src/main/java/org/springframework/context/annotation/ClassPathBeanDefinitionScanner.java
+++ b/spring-context/src/main/java/org/springframework/context/annotation/ClassPathBeanDefinitionScanner.java
@@ -31,6 +31,7 @@ import org.springframework.core.env.Environment;
import org.springframework.core.env.EnvironmentCapable;
import org.springframework.core.env.StandardEnvironment;
import org.springframework.core.io.ResourceLoader;
+import org.springframework.lang.NonNullApi;
import org.springframework.util.Assert;
import org.springframework.util.PatternMatchUtils;
@@ -59,6 +60,7 @@ import org.springframework.util.PatternMatchUtils;
* @see org.springframework.stereotype.Service
* @see org.springframework.stereotype.Controller
*/
+@NonNullApi
public class ClassPathBeanDefinitionScanner extends ClassPathScanningCandidateComponentProvider {
private final BeanDefinitionRegistry registry;
diff --git a/spring-context/src/main/java/org/springframework/context/annotation/ClassPathScanningCandidateComponentProvider.java b/spring-context/src/main/java/org/springframework/context/annotation/ClassPathScanningCandidateComponentProvider.java
index cc7603e11ec..deea227f366 100644
--- a/spring-context/src/main/java/org/springframework/context/annotation/ClassPathScanningCandidateComponentProvider.java
+++ b/spring-context/src/main/java/org/springframework/context/annotation/ClassPathScanningCandidateComponentProvider.java
@@ -51,6 +51,7 @@ import org.springframework.core.type.classreading.MetadataReaderFactory;
import org.springframework.core.type.filter.AnnotationTypeFilter;
import org.springframework.core.type.filter.AssignableTypeFilter;
import org.springframework.core.type.filter.TypeFilter;
+import org.springframework.lang.NonNullApi;
import org.springframework.lang.Nullable;
import org.springframework.stereotype.Component;
import org.springframework.stereotype.Controller;
@@ -84,6 +85,7 @@ import org.springframework.util.ClassUtils;
* @see ScannedGenericBeanDefinition
* @see CandidateComponentsIndex
*/
+@NonNullApi
public class ClassPathScanningCandidateComponentProvider implements EnvironmentCapable, ResourceLoaderAware {
static final String DEFAULT_RESOURCE_PATTERN = "**/*.class";
diff --git a/spring-context/src/main/java/org/springframework/context/annotation/CommonAnnotationBeanPostProcessor.java b/spring-context/src/main/java/org/springframework/context/annotation/CommonAnnotationBeanPostProcessor.java
index 8045b1758d1..2af43afbe61 100644
--- a/spring-context/src/main/java/org/springframework/context/annotation/CommonAnnotationBeanPostProcessor.java
+++ b/spring-context/src/main/java/org/springframework/context/annotation/CommonAnnotationBeanPostProcessor.java
@@ -65,6 +65,7 @@ import org.springframework.core.BridgeMethodResolver;
import org.springframework.core.MethodParameter;
import org.springframework.core.Ordered;
import org.springframework.jndi.support.SimpleJndiBeanFactory;
+import org.springframework.lang.NonNullApi;
import org.springframework.util.Assert;
import org.springframework.util.ClassUtils;
import org.springframework.util.ReflectionUtils;
@@ -139,6 +140,7 @@ import org.springframework.util.StringValueResolver;
* @see org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor
*/
@SuppressWarnings("serial")
+@NonNullApi
public class CommonAnnotationBeanPostProcessor extends InitDestroyAnnotationBeanPostProcessor
implements InstantiationAwareBeanPostProcessor, BeanFactoryAware, Serializable {
diff --git a/spring-context/src/main/java/org/springframework/context/annotation/ComponentScanAnnotationParser.java b/spring-context/src/main/java/org/springframework/context/annotation/ComponentScanAnnotationParser.java
index 07628c50a50..f846f5cd0d5 100644
--- a/spring-context/src/main/java/org/springframework/context/annotation/ComponentScanAnnotationParser.java
+++ b/spring-context/src/main/java/org/springframework/context/annotation/ComponentScanAnnotationParser.java
@@ -38,6 +38,7 @@ import org.springframework.core.type.filter.AspectJTypeFilter;
import org.springframework.core.type.filter.AssignableTypeFilter;
import org.springframework.core.type.filter.RegexPatternTypeFilter;
import org.springframework.core.type.filter.TypeFilter;
+import org.springframework.lang.NonNullApi;
import org.springframework.util.Assert;
import org.springframework.util.ClassUtils;
import org.springframework.util.StringUtils;
@@ -52,6 +53,7 @@ import org.springframework.util.StringUtils;
* @see ClassPathBeanDefinitionScanner#scan(String...)
* @see ComponentScanBeanDefinitionParser
*/
+@NonNullApi
class ComponentScanAnnotationParser {
private final Environment environment;
diff --git a/spring-context/src/main/java/org/springframework/context/annotation/ComponentScanBeanDefinitionParser.java b/spring-context/src/main/java/org/springframework/context/annotation/ComponentScanBeanDefinitionParser.java
index 96dad592e14..53b0e676216 100644
--- a/spring-context/src/main/java/org/springframework/context/annotation/ComponentScanBeanDefinitionParser.java
+++ b/spring-context/src/main/java/org/springframework/context/annotation/ComponentScanBeanDefinitionParser.java
@@ -40,6 +40,7 @@ import org.springframework.core.type.filter.AspectJTypeFilter;
import org.springframework.core.type.filter.AssignableTypeFilter;
import org.springframework.core.type.filter.RegexPatternTypeFilter;
import org.springframework.core.type.filter.TypeFilter;
+import org.springframework.lang.NonNullApi;
import org.springframework.util.ReflectionUtils;
import org.springframework.util.StringUtils;
@@ -51,6 +52,7 @@ import org.springframework.util.StringUtils;
* @author Juergen Hoeller
* @since 2.5
*/
+@NonNullApi
public class ComponentScanBeanDefinitionParser implements BeanDefinitionParser {
private static final String BASE_PACKAGE_ATTRIBUTE = "base-package";
diff --git a/spring-context/src/main/java/org/springframework/context/annotation/Condition.java b/spring-context/src/main/java/org/springframework/context/annotation/Condition.java
index 2cdcc36cb82..4eeb2736b59 100644
--- a/spring-context/src/main/java/org/springframework/context/annotation/Condition.java
+++ b/spring-context/src/main/java/org/springframework/context/annotation/Condition.java
@@ -18,6 +18,7 @@ package org.springframework.context.annotation;
import org.springframework.beans.factory.config.BeanFactoryPostProcessor;
import org.springframework.core.type.AnnotatedTypeMetadata;
+import org.springframework.lang.NonNullApi;
/**
* A single {@code condition} that must be {@linkplain #matches matched} in order
@@ -39,6 +40,7 @@ import org.springframework.core.type.AnnotatedTypeMetadata;
* @see ConditionContext
*/
@FunctionalInterface
+@NonNullApi
public interface Condition {
/**
diff --git a/spring-context/src/main/java/org/springframework/context/annotation/ConditionContext.java b/spring-context/src/main/java/org/springframework/context/annotation/ConditionContext.java
index 4eb3a847ca4..8be2dad8296 100644
--- a/spring-context/src/main/java/org/springframework/context/annotation/ConditionContext.java
+++ b/spring-context/src/main/java/org/springframework/context/annotation/ConditionContext.java
@@ -20,7 +20,6 @@ import org.springframework.beans.factory.config.ConfigurableListableBeanFactory;
import org.springframework.beans.factory.support.BeanDefinitionRegistry;
import org.springframework.core.env.Environment;
import org.springframework.core.io.ResourceLoader;
-import org.springframework.lang.Nullable;
/**
* Context information for use by {@link Condition}s.
@@ -35,7 +34,6 @@ public interface ConditionContext {
* should the condition match or {@code null} if the registry is not available.
* @return the registry or {@code null}
*/
- @Nullable
BeanDefinitionRegistry getRegistry();
/**
@@ -44,7 +42,6 @@ public interface ConditionContext {
* is not available.
* @return the bean factory or {@code null}
*/
- @Nullable
ConfigurableListableBeanFactory getBeanFactory();
/**
@@ -52,7 +49,6 @@ public interface ConditionContext {
* or {@code null} if no environment is available.
* @return the environment or {@code null}
*/
- @Nullable
Environment getEnvironment();
/**
@@ -60,7 +56,6 @@ public interface ConditionContext {
* if the resource loader cannot be obtained.
* @return a resource loader or {@code null}
*/
- @Nullable
ResourceLoader getResourceLoader();
/**
@@ -68,7 +63,6 @@ public interface ConditionContext {
* classes or {@code null} if the default classloader should be used.
* @return the class loader or {@code null}
*/
- @Nullable
ClassLoader getClassLoader();
}
diff --git a/spring-context/src/main/java/org/springframework/context/annotation/ConditionEvaluator.java b/spring-context/src/main/java/org/springframework/context/annotation/ConditionEvaluator.java
index 7f085e101bc..dfac10d1f6b 100644
--- a/spring-context/src/main/java/org/springframework/context/annotation/ConditionEvaluator.java
+++ b/spring-context/src/main/java/org/springframework/context/annotation/ConditionEvaluator.java
@@ -31,6 +31,7 @@ import org.springframework.core.env.EnvironmentCapable;
import org.springframework.core.io.ResourceLoader;
import org.springframework.core.type.AnnotatedTypeMetadata;
import org.springframework.core.type.AnnotationMetadata;
+import org.springframework.lang.NonNullApi;
import org.springframework.lang.Nullable;
import org.springframework.util.ClassUtils;
import org.springframework.util.MultiValueMap;
@@ -41,6 +42,7 @@ import org.springframework.util.MultiValueMap;
* @author Phillip Webb
* @since 4.0
*/
+@NonNullApi
class ConditionEvaluator {
private final ConditionContextImpl context;
diff --git a/spring-context/src/main/java/org/springframework/context/annotation/ConfigurationClass.java b/spring-context/src/main/java/org/springframework/context/annotation/ConfigurationClass.java
index 5cc0dccc259..8921421d214 100644
--- a/spring-context/src/main/java/org/springframework/context/annotation/ConfigurationClass.java
+++ b/spring-context/src/main/java/org/springframework/context/annotation/ConfigurationClass.java
@@ -31,6 +31,7 @@ import org.springframework.core.io.Resource;
import org.springframework.core.type.AnnotationMetadata;
import org.springframework.core.type.StandardAnnotationMetadata;
import org.springframework.core.type.classreading.MetadataReader;
+import org.springframework.lang.NonNullApi;
import org.springframework.lang.Nullable;
import org.springframework.util.Assert;
import org.springframework.util.ClassUtils;
@@ -47,6 +48,7 @@ import org.springframework.util.ClassUtils;
* @see BeanMethod
* @see ConfigurationClassParser
*/
+@NonNullApi
final class ConfigurationClass {
private final AnnotationMetadata metadata;
diff --git a/spring-context/src/main/java/org/springframework/context/annotation/ConfigurationClassBeanDefinitionReader.java b/spring-context/src/main/java/org/springframework/context/annotation/ConfigurationClassBeanDefinitionReader.java
index c74988d7054..cf8ced6bccf 100644
--- a/spring-context/src/main/java/org/springframework/context/annotation/ConfigurationClassBeanDefinitionReader.java
+++ b/spring-context/src/main/java/org/springframework/context/annotation/ConfigurationClassBeanDefinitionReader.java
@@ -50,6 +50,7 @@ import org.springframework.core.io.Resource;
import org.springframework.core.io.ResourceLoader;
import org.springframework.core.type.AnnotationMetadata;
import org.springframework.core.type.MethodMetadata;
+import org.springframework.lang.NonNullApi;
import org.springframework.util.StringUtils;
/**
@@ -67,6 +68,7 @@ import org.springframework.util.StringUtils;
* @since 3.0
* @see ConfigurationClassParser
*/
+@NonNullApi
class ConfigurationClassBeanDefinitionReader {
private static final Log logger = LogFactory.getLog(ConfigurationClassBeanDefinitionReader.class);
diff --git a/spring-context/src/main/java/org/springframework/context/annotation/ConfigurationClassEnhancer.java b/spring-context/src/main/java/org/springframework/context/annotation/ConfigurationClassEnhancer.java
index cd4881f37f5..14be48ed122 100644
--- a/spring-context/src/main/java/org/springframework/context/annotation/ConfigurationClassEnhancer.java
+++ b/spring-context/src/main/java/org/springframework/context/annotation/ConfigurationClassEnhancer.java
@@ -49,6 +49,7 @@ import org.springframework.cglib.proxy.NoOp;
import org.springframework.cglib.transform.ClassEmitterTransformer;
import org.springframework.cglib.transform.TransformingClassGenerator;
import org.springframework.core.annotation.AnnotatedElementUtils;
+import org.springframework.lang.NonNullApi;
import org.springframework.lang.Nullable;
import org.springframework.objenesis.ObjenesisException;
import org.springframework.objenesis.SpringObjenesis;
@@ -72,6 +73,7 @@ import org.springframework.util.ReflectionUtils;
* @see #enhance
* @see ConfigurationClassPostProcessor
*/
+@NonNullApi
class ConfigurationClassEnhancer {
// The callbacks to use. Note that these callbacks must be stateless.
diff --git a/spring-context/src/main/java/org/springframework/context/annotation/ConfigurationClassParser.java b/spring-context/src/main/java/org/springframework/context/annotation/ConfigurationClassParser.java
index e6c1c3d3687..cb4213931f7 100644
--- a/spring-context/src/main/java/org/springframework/context/annotation/ConfigurationClassParser.java
+++ b/spring-context/src/main/java/org/springframework/context/annotation/ConfigurationClassParser.java
@@ -72,6 +72,7 @@ import org.springframework.core.type.StandardAnnotationMetadata;
import org.springframework.core.type.classreading.MetadataReader;
import org.springframework.core.type.classreading.MetadataReaderFactory;
import org.springframework.core.type.filter.AssignableTypeFilter;
+import org.springframework.lang.NonNullApi;
import org.springframework.lang.Nullable;
import org.springframework.util.Assert;
import org.springframework.util.CollectionUtils;
@@ -100,6 +101,7 @@ import org.springframework.util.StringUtils;
* @since 3.0
* @see ConfigurationClassBeanDefinitionReader
*/
+@NonNullApi
class ConfigurationClassParser {
private static final PropertySourceFactory DEFAULT_PROPERTY_SOURCE_FACTORY = new DefaultPropertySourceFactory();
diff --git a/spring-context/src/main/java/org/springframework/context/annotation/ConfigurationClassPostProcessor.java b/spring-context/src/main/java/org/springframework/context/annotation/ConfigurationClassPostProcessor.java
index b1f0ceb0159..27e7372c643 100644
--- a/spring-context/src/main/java/org/springframework/context/annotation/ConfigurationClassPostProcessor.java
+++ b/spring-context/src/main/java/org/springframework/context/annotation/ConfigurationClassPostProcessor.java
@@ -61,6 +61,7 @@ import org.springframework.core.io.ResourceLoader;
import org.springframework.core.type.AnnotationMetadata;
import org.springframework.core.type.classreading.CachingMetadataReaderFactory;
import org.springframework.core.type.classreading.MetadataReaderFactory;
+import org.springframework.lang.NonNullApi;
import org.springframework.lang.Nullable;
import org.springframework.util.Assert;
import org.springframework.util.ClassUtils;
@@ -85,6 +86,7 @@ import static org.springframework.context.annotation.AnnotationConfigUtils.*;
* @author Phillip Webb
* @since 3.0
*/
+@NonNullApi
public class ConfigurationClassPostProcessor implements BeanDefinitionRegistryPostProcessor,
PriorityOrdered, ResourceLoaderAware, BeanClassLoaderAware, EnvironmentAware {
diff --git a/spring-context/src/main/java/org/springframework/context/annotation/ConfigurationClassUtils.java b/spring-context/src/main/java/org/springframework/context/annotation/ConfigurationClassUtils.java
index f5117f54e8d..9593e26cdfa 100644
--- a/spring-context/src/main/java/org/springframework/context/annotation/ConfigurationClassUtils.java
+++ b/spring-context/src/main/java/org/springframework/context/annotation/ConfigurationClassUtils.java
@@ -35,6 +35,7 @@ import org.springframework.core.type.AnnotationMetadata;
import org.springframework.core.type.StandardAnnotationMetadata;
import org.springframework.core.type.classreading.MetadataReader;
import org.springframework.core.type.classreading.MetadataReaderFactory;
+import org.springframework.lang.NonNullApi;
import org.springframework.stereotype.Component;
/**
@@ -44,6 +45,7 @@ import org.springframework.stereotype.Component;
* @author Juergen Hoeller
* @since 3.1
*/
+@NonNullApi
abstract class ConfigurationClassUtils {
private static final String CONFIGURATION_CLASS_FULL = "full";
diff --git a/spring-context/src/main/java/org/springframework/context/annotation/ConfigurationCondition.java b/spring-context/src/main/java/org/springframework/context/annotation/ConfigurationCondition.java
index c46f8a030bc..63ac178883b 100644
--- a/spring-context/src/main/java/org/springframework/context/annotation/ConfigurationCondition.java
+++ b/spring-context/src/main/java/org/springframework/context/annotation/ConfigurationCondition.java
@@ -16,6 +16,8 @@
package org.springframework.context.annotation;
+import org.springframework.lang.NonNullApi;
+
/**
* A {@link Condition} that offers more fine-grained control when used with
* {@code @Configuration}. Allows certain {@link Condition}s to adapt when they match
@@ -27,6 +29,7 @@ package org.springframework.context.annotation;
* @since 4.0
* @see Configuration
*/
+@NonNullApi
public interface ConfigurationCondition extends Condition {
/**
diff --git a/spring-context/src/main/java/org/springframework/context/annotation/ConfigurationMethod.java b/spring-context/src/main/java/org/springframework/context/annotation/ConfigurationMethod.java
index b359be7d64b..5259597b722 100644
--- a/spring-context/src/main/java/org/springframework/context/annotation/ConfigurationMethod.java
+++ b/spring-context/src/main/java/org/springframework/context/annotation/ConfigurationMethod.java
@@ -19,11 +19,13 @@ package org.springframework.context.annotation;
import org.springframework.beans.factory.parsing.Location;
import org.springframework.beans.factory.parsing.ProblemReporter;
import org.springframework.core.type.MethodMetadata;
+import org.springframework.lang.NonNullApi;
/**
* @author Chris Beams
* @since 3.1
*/
+@NonNullApi
abstract class ConfigurationMethod {
protected final MethodMetadata metadata;
diff --git a/spring-context/src/main/java/org/springframework/context/annotation/ConflictingBeanDefinitionException.java b/spring-context/src/main/java/org/springframework/context/annotation/ConflictingBeanDefinitionException.java
index 03e0c649d62..14fc8596503 100644
--- a/spring-context/src/main/java/org/springframework/context/annotation/ConflictingBeanDefinitionException.java
+++ b/spring-context/src/main/java/org/springframework/context/annotation/ConflictingBeanDefinitionException.java
@@ -16,6 +16,8 @@
package org.springframework.context.annotation;
+import org.springframework.lang.NonNullApi;
+
/**
* Marker subclass of {@link IllegalStateException}, allowing for explicit
* catch clauses in calling code.
@@ -24,6 +26,7 @@ package org.springframework.context.annotation;
* @since 3.1
*/
@SuppressWarnings("serial")
+@NonNullApi
class ConflictingBeanDefinitionException extends IllegalStateException {
public ConflictingBeanDefinitionException(String message) {
diff --git a/spring-context/src/main/java/org/springframework/context/annotation/ContextAnnotationAutowireCandidateResolver.java b/spring-context/src/main/java/org/springframework/context/annotation/ContextAnnotationAutowireCandidateResolver.java
index 785ada6c5e0..8e505111acb 100644
--- a/spring-context/src/main/java/org/springframework/context/annotation/ContextAnnotationAutowireCandidateResolver.java
+++ b/spring-context/src/main/java/org/springframework/context/annotation/ContextAnnotationAutowireCandidateResolver.java
@@ -27,6 +27,7 @@ import org.springframework.beans.factory.config.DependencyDescriptor;
import org.springframework.beans.factory.support.DefaultListableBeanFactory;
import org.springframework.core.MethodParameter;
import org.springframework.core.annotation.AnnotationUtils;
+import org.springframework.lang.NonNullApi;
import org.springframework.util.Assert;
/**
@@ -38,6 +39,7 @@ import org.springframework.util.Assert;
* @author Juergen Hoeller
* @since 4.0
*/
+@NonNullApi
public class ContextAnnotationAutowireCandidateResolver extends QualifierAnnotationAutowireCandidateResolver {
@Override
diff --git a/spring-context/src/main/java/org/springframework/context/annotation/DeferredImportSelector.java b/spring-context/src/main/java/org/springframework/context/annotation/DeferredImportSelector.java
index ceb7f9b6e32..5c8c166bd1d 100644
--- a/spring-context/src/main/java/org/springframework/context/annotation/DeferredImportSelector.java
+++ b/spring-context/src/main/java/org/springframework/context/annotation/DeferredImportSelector.java
@@ -16,6 +16,8 @@
package org.springframework.context.annotation;
+import org.springframework.lang.NonNullApi;
+
/**
* A variation of {@link ImportSelector} that runs after all {@code @Configuration} beans
* have been processed. This type of selector can be particularly useful when the selected
@@ -28,6 +30,7 @@ package org.springframework.context.annotation;
* @author Phillip Webb
* @since 4.0
*/
+@NonNullApi
public interface DeferredImportSelector extends ImportSelector {
}
diff --git a/spring-context/src/main/java/org/springframework/context/annotation/ImportAware.java b/spring-context/src/main/java/org/springframework/context/annotation/ImportAware.java
index 6daf4dddea6..d989445ee08 100644
--- a/spring-context/src/main/java/org/springframework/context/annotation/ImportAware.java
+++ b/spring-context/src/main/java/org/springframework/context/annotation/ImportAware.java
@@ -18,6 +18,7 @@ package org.springframework.context.annotation;
import org.springframework.beans.factory.Aware;
import org.springframework.core.type.AnnotationMetadata;
+import org.springframework.lang.NonNullApi;
/**
* Interface to be implemented by any @{@link Configuration} class that wishes
@@ -28,6 +29,7 @@ import org.springframework.core.type.AnnotationMetadata;
* @author Chris Beams
* @since 3.1
*/
+@NonNullApi
public interface ImportAware extends Aware {
/**
diff --git a/spring-context/src/main/java/org/springframework/context/annotation/ImportBeanDefinitionRegistrar.java b/spring-context/src/main/java/org/springframework/context/annotation/ImportBeanDefinitionRegistrar.java
index 1dce3d41140..6f815d62719 100644
--- a/spring-context/src/main/java/org/springframework/context/annotation/ImportBeanDefinitionRegistrar.java
+++ b/spring-context/src/main/java/org/springframework/context/annotation/ImportBeanDefinitionRegistrar.java
@@ -19,6 +19,7 @@ package org.springframework.context.annotation;
import org.springframework.beans.factory.support.BeanDefinitionRegistry;
import org.springframework.beans.factory.support.BeanDefinitionRegistryPostProcessor;
import org.springframework.core.type.AnnotationMetadata;
+import org.springframework.lang.NonNullApi;
/**
* Interface to be implemented by types that register additional bean definitions when
@@ -47,6 +48,7 @@ import org.springframework.core.type.AnnotationMetadata;
* @see ImportSelector
* @see Configuration
*/
+@NonNullApi
public interface ImportBeanDefinitionRegistrar {
/**
diff --git a/spring-context/src/main/java/org/springframework/context/annotation/ImportRegistry.java b/spring-context/src/main/java/org/springframework/context/annotation/ImportRegistry.java
index c614d55d8d6..9d09114c1c1 100644
--- a/spring-context/src/main/java/org/springframework/context/annotation/ImportRegistry.java
+++ b/spring-context/src/main/java/org/springframework/context/annotation/ImportRegistry.java
@@ -17,11 +17,13 @@
package org.springframework.context.annotation;
import org.springframework.core.type.AnnotationMetadata;
+import org.springframework.lang.NonNullApi;
/**
* @author Juergen Hoeller
* @author Phil Webb
*/
+@NonNullApi
interface ImportRegistry {
AnnotationMetadata getImportingClassFor(String importedClass);
diff --git a/spring-context/src/main/java/org/springframework/context/annotation/ImportSelector.java b/spring-context/src/main/java/org/springframework/context/annotation/ImportSelector.java
index c684426f22c..6062cce1904 100644
--- a/spring-context/src/main/java/org/springframework/context/annotation/ImportSelector.java
+++ b/spring-context/src/main/java/org/springframework/context/annotation/ImportSelector.java
@@ -17,6 +17,7 @@
package org.springframework.context.annotation;
import org.springframework.core.type.AnnotationMetadata;
+import org.springframework.lang.NonNullApi;
/**
* Interface to be implemented by types that determine which @{@link Configuration}
@@ -45,6 +46,7 @@ import org.springframework.core.type.AnnotationMetadata;
* @see ImportBeanDefinitionRegistrar
* @see Configuration
*/
+@NonNullApi
public interface ImportSelector {
/**
diff --git a/spring-context/src/main/java/org/springframework/context/annotation/Jsr330ScopeMetadataResolver.java b/spring-context/src/main/java/org/springframework/context/annotation/Jsr330ScopeMetadataResolver.java
index a63d954cb53..08dfce3eff7 100644
--- a/spring-context/src/main/java/org/springframework/context/annotation/Jsr330ScopeMetadataResolver.java
+++ b/spring-context/src/main/java/org/springframework/context/annotation/Jsr330ScopeMetadataResolver.java
@@ -22,6 +22,7 @@ import java.util.Set;
import org.springframework.beans.factory.annotation.AnnotatedBeanDefinition;
import org.springframework.beans.factory.config.BeanDefinition;
+import org.springframework.lang.NonNullApi;
/**
* Simple {@link ScopeMetadataResolver} implementation that follows JSR-330 scoping rules:
@@ -39,6 +40,7 @@ import org.springframework.beans.factory.config.BeanDefinition;
* @see ClassPathBeanDefinitionScanner#setScopeMetadataResolver
* @see AnnotatedBeanDefinitionReader#setScopeMetadataResolver
*/
+@NonNullApi
public class Jsr330ScopeMetadataResolver implements ScopeMetadataResolver {
private final Map scopeMap = new HashMap<>();
diff --git a/spring-context/src/main/java/org/springframework/context/annotation/LoadTimeWeavingConfiguration.java b/spring-context/src/main/java/org/springframework/context/annotation/LoadTimeWeavingConfiguration.java
index b01feb0d51d..3e1657f5c95 100644
--- a/spring-context/src/main/java/org/springframework/context/annotation/LoadTimeWeavingConfiguration.java
+++ b/spring-context/src/main/java/org/springframework/context/annotation/LoadTimeWeavingConfiguration.java
@@ -26,6 +26,7 @@ import org.springframework.context.weaving.DefaultContextLoadTimeWeaver;
import org.springframework.core.annotation.AnnotationAttributes;
import org.springframework.core.type.AnnotationMetadata;
import org.springframework.instrument.classloading.LoadTimeWeaver;
+import org.springframework.lang.NonNullApi;
import org.springframework.lang.Nullable;
/**
@@ -41,6 +42,7 @@ import org.springframework.lang.Nullable;
* @see ConfigurableApplicationContext#LOAD_TIME_WEAVER_BEAN_NAME
*/
@Configuration
+@NonNullApi
public class LoadTimeWeavingConfiguration implements ImportAware, BeanClassLoaderAware {
private AnnotationAttributes enableLTW;
diff --git a/spring-context/src/main/java/org/springframework/context/annotation/LoadTimeWeavingConfigurer.java b/spring-context/src/main/java/org/springframework/context/annotation/LoadTimeWeavingConfigurer.java
index 8df85b91f09..c248d6b4366 100644
--- a/spring-context/src/main/java/org/springframework/context/annotation/LoadTimeWeavingConfigurer.java
+++ b/spring-context/src/main/java/org/springframework/context/annotation/LoadTimeWeavingConfigurer.java
@@ -17,6 +17,7 @@
package org.springframework.context.annotation;
import org.springframework.instrument.classloading.LoadTimeWeaver;
+import org.springframework.lang.NonNullApi;
/**
* Interface to be implemented by
@@ -33,6 +34,7 @@ import org.springframework.instrument.classloading.LoadTimeWeaver;
* @see LoadTimeWeavingConfiguration
* @see EnableLoadTimeWeaving
*/
+@NonNullApi
public interface LoadTimeWeavingConfigurer {
/**
diff --git a/spring-context/src/main/java/org/springframework/context/annotation/MBeanExportConfiguration.java b/spring-context/src/main/java/org/springframework/context/annotation/MBeanExportConfiguration.java
index 0e4a8410411..185542939e6 100644
--- a/spring-context/src/main/java/org/springframework/context/annotation/MBeanExportConfiguration.java
+++ b/spring-context/src/main/java/org/springframework/context/annotation/MBeanExportConfiguration.java
@@ -32,6 +32,7 @@ import org.springframework.jmx.export.annotation.AnnotationMBeanExporter;
import org.springframework.jmx.support.RegistrationPolicy;
import org.springframework.jmx.support.WebSphereMBeanServerFactoryBean;
import org.springframework.jndi.JndiLocatorDelegate;
+import org.springframework.lang.NonNullApi;
import org.springframework.lang.Nullable;
import org.springframework.util.ClassUtils;
import org.springframework.util.StringUtils;
@@ -48,6 +49,7 @@ import org.springframework.util.StringUtils;
* @see EnableMBeanExport
*/
@Configuration
+@NonNullApi
public class MBeanExportConfiguration implements ImportAware, EnvironmentAware, BeanFactoryAware {
private static final String MBEAN_EXPORTER_BEAN_NAME = "mbeanExporter";
diff --git a/spring-context/src/main/java/org/springframework/context/annotation/ParserStrategyUtils.java b/spring-context/src/main/java/org/springframework/context/annotation/ParserStrategyUtils.java
index f1ced5158fd..31855266f4f 100644
--- a/spring-context/src/main/java/org/springframework/context/annotation/ParserStrategyUtils.java
+++ b/spring-context/src/main/java/org/springframework/context/annotation/ParserStrategyUtils.java
@@ -26,6 +26,7 @@ import org.springframework.context.EnvironmentAware;
import org.springframework.context.ResourceLoaderAware;
import org.springframework.core.env.Environment;
import org.springframework.core.io.ResourceLoader;
+import org.springframework.lang.NonNullApi;
/**
* Common delegate code for the handling of parser strategies, e.g.
@@ -34,6 +35,7 @@ import org.springframework.core.io.ResourceLoader;
* @author Juergen Hoeller
* @since 4.3.3
*/
+@NonNullApi
abstract class ParserStrategyUtils {
/**
diff --git a/spring-context/src/main/java/org/springframework/context/annotation/ScannedGenericBeanDefinition.java b/spring-context/src/main/java/org/springframework/context/annotation/ScannedGenericBeanDefinition.java
index 1b815588459..272f325e5e1 100644
--- a/spring-context/src/main/java/org/springframework/context/annotation/ScannedGenericBeanDefinition.java
+++ b/spring-context/src/main/java/org/springframework/context/annotation/ScannedGenericBeanDefinition.java
@@ -22,6 +22,7 @@ import org.springframework.beans.factory.support.GenericBeanDefinition;
import org.springframework.core.type.AnnotationMetadata;
import org.springframework.core.type.MethodMetadata;
import org.springframework.core.type.classreading.MetadataReader;
+import org.springframework.lang.NonNullApi;
import org.springframework.util.Assert;
/**
@@ -45,6 +46,7 @@ import org.springframework.util.Assert;
* @see AnnotatedGenericBeanDefinition
*/
@SuppressWarnings("serial")
+@NonNullApi
public class ScannedGenericBeanDefinition extends GenericBeanDefinition implements AnnotatedBeanDefinition {
private final AnnotationMetadata metadata;
diff --git a/spring-context/src/main/java/org/springframework/context/annotation/ScopeMetadata.java b/spring-context/src/main/java/org/springframework/context/annotation/ScopeMetadata.java
index a13dfdd1933..baddf65c29a 100644
--- a/spring-context/src/main/java/org/springframework/context/annotation/ScopeMetadata.java
+++ b/spring-context/src/main/java/org/springframework/context/annotation/ScopeMetadata.java
@@ -17,6 +17,7 @@
package org.springframework.context.annotation;
import org.springframework.beans.factory.config.BeanDefinition;
+import org.springframework.lang.NonNullApi;
import org.springframework.util.Assert;
/**
@@ -32,6 +33,7 @@ import org.springframework.util.Assert;
* @see ScopeMetadataResolver
* @see ScopedProxyMode
*/
+@NonNullApi
public class ScopeMetadata {
private String scopeName = BeanDefinition.SCOPE_SINGLETON;
diff --git a/spring-context/src/main/java/org/springframework/context/annotation/ScopeMetadataResolver.java b/spring-context/src/main/java/org/springframework/context/annotation/ScopeMetadataResolver.java
index 0020b96e847..bdd860c668b 100644
--- a/spring-context/src/main/java/org/springframework/context/annotation/ScopeMetadataResolver.java
+++ b/spring-context/src/main/java/org/springframework/context/annotation/ScopeMetadataResolver.java
@@ -17,6 +17,7 @@
package org.springframework.context.annotation;
import org.springframework.beans.factory.config.BeanDefinition;
+import org.springframework.lang.NonNullApi;
/**
* Strategy interface for resolving the scope of bean definitions.
@@ -26,6 +27,7 @@ import org.springframework.beans.factory.config.BeanDefinition;
* @see org.springframework.context.annotation.Scope
*/
@FunctionalInterface
+@NonNullApi
public interface ScopeMetadataResolver {
/**
diff --git a/spring-context/src/main/java/org/springframework/context/annotation/ScopedProxyCreator.java b/spring-context/src/main/java/org/springframework/context/annotation/ScopedProxyCreator.java
index 371c8b66741..8737b8f7c63 100644
--- a/spring-context/src/main/java/org/springframework/context/annotation/ScopedProxyCreator.java
+++ b/spring-context/src/main/java/org/springframework/context/annotation/ScopedProxyCreator.java
@@ -19,6 +19,7 @@ package org.springframework.context.annotation;
import org.springframework.aop.scope.ScopedProxyUtils;
import org.springframework.beans.factory.config.BeanDefinitionHolder;
import org.springframework.beans.factory.support.BeanDefinitionRegistry;
+import org.springframework.lang.NonNullApi;
/**
* Delegate factory class used to just introduce an AOP framework dependency
@@ -28,6 +29,7 @@ import org.springframework.beans.factory.support.BeanDefinitionRegistry;
* @since 3.0
* @see org.springframework.aop.scope.ScopedProxyUtils#createScopedProxy
*/
+@NonNullApi
class ScopedProxyCreator {
public static BeanDefinitionHolder createScopedProxy(
diff --git a/spring-context/src/main/java/org/springframework/context/annotation/package-info.java b/spring-context/src/main/java/org/springframework/context/annotation/package-info.java
index ca7cc4691b6..590924e7d43 100644
--- a/spring-context/src/main/java/org/springframework/context/annotation/package-info.java
+++ b/spring-context/src/main/java/org/springframework/context/annotation/package-info.java
@@ -3,7 +3,4 @@
* annotations, component-scanning, and Java-based metadata for creating
* Spring-managed objects.
*/
-@NonNullApi
package org.springframework.context.annotation;
-
-import org.springframework.lang.NonNullApi;
\ No newline at end of file
diff --git a/spring-core/src/main/java/org/springframework/core/env/AbstractEnvironment.java b/spring-core/src/main/java/org/springframework/core/env/AbstractEnvironment.java
index 4516f5633fe..b1661d00bd4 100644
--- a/spring-core/src/main/java/org/springframework/core/env/AbstractEnvironment.java
+++ b/spring-core/src/main/java/org/springframework/core/env/AbstractEnvironment.java
@@ -27,6 +27,7 @@ import org.apache.commons.logging.LogFactory;
import org.springframework.core.SpringProperties;
import org.springframework.core.convert.support.ConfigurableConversionService;
+import org.springframework.lang.NonNullApi;
import org.springframework.lang.Nullable;
import org.springframework.util.Assert;
import org.springframework.util.ObjectUtils;
@@ -51,6 +52,7 @@ import org.springframework.util.StringUtils;
* @see ConfigurableEnvironment
* @see StandardEnvironment
*/
+@NonNullApi
public abstract class AbstractEnvironment implements ConfigurableEnvironment {
/**
diff --git a/spring-core/src/main/java/org/springframework/core/env/AbstractPropertyResolver.java b/spring-core/src/main/java/org/springframework/core/env/AbstractPropertyResolver.java
index 20f96b22818..525ea017832 100644
--- a/spring-core/src/main/java/org/springframework/core/env/AbstractPropertyResolver.java
+++ b/spring-core/src/main/java/org/springframework/core/env/AbstractPropertyResolver.java
@@ -25,6 +25,7 @@ import org.apache.commons.logging.LogFactory;
import org.springframework.core.convert.ConversionService;
import org.springframework.core.convert.support.ConfigurableConversionService;
import org.springframework.core.convert.support.DefaultConversionService;
+import org.springframework.lang.NonNullApi;
import org.springframework.lang.Nullable;
import org.springframework.util.Assert;
import org.springframework.util.ClassUtils;
@@ -38,6 +39,7 @@ import org.springframework.util.SystemPropertyUtils;
* @author Juergen Hoeller
* @since 3.1
*/
+@NonNullApi
public abstract class AbstractPropertyResolver implements ConfigurablePropertyResolver {
protected final Log logger = LogFactory.getLog(getClass());
diff --git a/spring-core/src/main/java/org/springframework/core/env/CommandLineArgs.java b/spring-core/src/main/java/org/springframework/core/env/CommandLineArgs.java
index 11ee00a3da6..898d5fc6537 100644
--- a/spring-core/src/main/java/org/springframework/core/env/CommandLineArgs.java
+++ b/spring-core/src/main/java/org/springframework/core/env/CommandLineArgs.java
@@ -23,6 +23,7 @@ import java.util.List;
import java.util.Map;
import java.util.Set;
+import org.springframework.lang.NonNullApi;
import org.springframework.lang.Nullable;
/**
@@ -33,6 +34,7 @@ import org.springframework.lang.Nullable;
* @since 3.1
* @see SimpleCommandLineArgsParser
*/
+@NonNullApi
class CommandLineArgs {
private final Map> optionArgs = new HashMap<>();
diff --git a/spring-core/src/main/java/org/springframework/core/env/CommandLinePropertySource.java b/spring-core/src/main/java/org/springframework/core/env/CommandLinePropertySource.java
index f4905331dad..a9387c1c285 100644
--- a/spring-core/src/main/java/org/springframework/core/env/CommandLinePropertySource.java
+++ b/spring-core/src/main/java/org/springframework/core/env/CommandLinePropertySource.java
@@ -19,6 +19,7 @@ package org.springframework.core.env;
import java.util.Collection;
import java.util.List;
+import org.springframework.lang.NonNullApi;
import org.springframework.lang.Nullable;
import org.springframework.util.StringUtils;
@@ -204,6 +205,7 @@ import org.springframework.util.StringUtils;
* @see SimpleCommandLinePropertySource
* @see JOptCommandLinePropertySource
*/
+@NonNullApi
public abstract class CommandLinePropertySource extends EnumerablePropertySource {
/** The default name given to {@link CommandLinePropertySource} instances: {@value} */
diff --git a/spring-core/src/main/java/org/springframework/core/env/CompositePropertySource.java b/spring-core/src/main/java/org/springframework/core/env/CompositePropertySource.java
index 31902223704..d8af2212ce5 100644
--- a/spring-core/src/main/java/org/springframework/core/env/CompositePropertySource.java
+++ b/spring-core/src/main/java/org/springframework/core/env/CompositePropertySource.java
@@ -23,6 +23,7 @@ import java.util.LinkedHashSet;
import java.util.List;
import java.util.Set;
+import org.springframework.lang.NonNullApi;
import org.springframework.util.StringUtils;
/**
@@ -39,6 +40,7 @@ import org.springframework.util.StringUtils;
* @author Phillip Webb
* @since 3.1.1
*/
+@NonNullApi
public class CompositePropertySource extends EnumerablePropertySource