Browse Source

Deprecate [Property|Preferences]PlaceholderConfigurer for removal

PropertyPlaceholderConfigurer and PreferencesPlaceholderConfigurer have
been officially deprecated since Spring Framework 5.2.

Since we no longer expect applications to depend on these outdated
mechanisms, this commit deprecates these classes "for removal" in
Spring Framework 8.0.

Closes gh-34880
pull/34883/head
Sam Brannen 7 months ago
parent
commit
33aeb6ee9c
  1. 4
      integration-tests/src/test/java/org/springframework/core/env/PropertyPlaceholderConfigurerEnvironmentIntegrationTests.java
  2. 11
      spring-beans/src/main/java/org/springframework/beans/factory/config/PreferencesPlaceholderConfigurer.java
  3. 12
      spring-beans/src/main/java/org/springframework/beans/factory/config/PropertyPlaceholderConfigurer.java
  4. 4
      spring-beans/src/test/java/org/springframework/beans/factory/config/PropertyPlaceholderConfigurerTests.java
  5. 4
      spring-beans/src/test/java/org/springframework/beans/factory/config/PropertyResourceConfigurerTests.java
  6. 4
      spring-context/src/main/java/org/springframework/context/config/PropertyPlaceholderBeanDefinitionParser.java
  7. 8
      spring-context/src/test/java/org/springframework/context/annotation/CommonAnnotationBeanPostProcessorTests.java
  8. 2
      spring-context/src/test/java/org/springframework/context/annotation/configuration/ConfigurationClassProcessingTests.java
  9. 4
      spring-context/src/test/java/org/springframework/context/expression/ApplicationContextExpressionTests.java
  10. 4
      spring-context/src/test/java/org/springframework/context/support/BeanFactoryPostProcessorTests.java
  11. 4
      spring-context/src/test/java/org/springframework/context/support/PropertyResourceConfigurerIntegrationTests.java

4
integration-tests/src/test/java/org/springframework/core/env/PropertyPlaceholderConfigurerEnvironmentIntegrationTests.java vendored

@ -1,5 +1,5 @@ @@ -1,5 +1,5 @@
/*
* Copyright 2002-2019 the original author or authors.
* Copyright 2002-2025 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@ -25,7 +25,7 @@ import static org.springframework.beans.factory.support.BeanDefinitionBuilder.ro @@ -25,7 +25,7 @@ import static org.springframework.beans.factory.support.BeanDefinitionBuilder.ro
class PropertyPlaceholderConfigurerEnvironmentIntegrationTests {
@Test
@SuppressWarnings("deprecation")
@SuppressWarnings({"deprecation", "removal"})
void test() {
GenericApplicationContext ctx = new GenericApplicationContext();
ctx.registerBeanDefinition("ppc",

11
spring-beans/src/main/java/org/springframework/beans/factory/config/PreferencesPlaceholderConfigurer.java

@ -1,5 +1,5 @@ @@ -1,5 +1,5 @@
/*
* Copyright 2002-2019 the original author or authors.
* Copyright 2002-2025 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@ -26,8 +26,8 @@ import org.springframework.beans.factory.BeanDefinitionStoreException; @@ -26,8 +26,8 @@ import org.springframework.beans.factory.BeanDefinitionStoreException;
import org.springframework.beans.factory.InitializingBean;
/**
* Subclass of PropertyPlaceholderConfigurer that supports JDK 1.4's
* Preferences API ({@code java.util.prefs}).
* Subclass of {@link PropertyPlaceholderConfigurer} that supports JDK 1.4's
* {@link Preferences} API.
*
* <p>Tries to resolve placeholders as keys first in the user preferences,
* then in the system preferences, then in this configurer's properties.
@ -43,9 +43,10 @@ import org.springframework.beans.factory.InitializingBean; @@ -43,9 +43,10 @@ import org.springframework.beans.factory.InitializingBean;
* @see #setSystemTreePath
* @see #setUserTreePath
* @see java.util.prefs.Preferences
* @deprecated as of 5.2, along with {@link PropertyPlaceholderConfigurer}
* @deprecated as of 5.2, along with {@link PropertyPlaceholderConfigurer}; to be removed in 8.0
*/
@Deprecated
@Deprecated(since = "5.2", forRemoval = true)
@SuppressWarnings({"deprecation", "removal"})
public class PreferencesPlaceholderConfigurer extends PropertyPlaceholderConfigurer implements InitializingBean {
private @Nullable String systemTreePath;

12
spring-beans/src/main/java/org/springframework/beans/factory/config/PropertyPlaceholderConfigurer.java

@ -1,5 +1,5 @@ @@ -1,5 +1,5 @@
/*
* Copyright 2002-2024 the original author or authors.
* Copyright 2002-2025 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@ -52,11 +52,13 @@ import org.springframework.util.StringValueResolver; @@ -52,11 +52,13 @@ import org.springframework.util.StringValueResolver;
* @see #setSystemPropertiesModeName
* @see PlaceholderConfigurerSupport
* @see PropertyOverrideConfigurer
* @deprecated as of 5.2; use {@code org.springframework.context.support.PropertySourcesPlaceholderConfigurer}
* instead which is more flexible through taking advantage of the {@link org.springframework.core.env.Environment}
* and {@link org.springframework.core.env.PropertySource} mechanisms.
* @deprecated as of 5.2, to be removed in 8.0;
* use {@code org.springframework.context.support.PropertySourcesPlaceholderConfigurer}
* instead which is more flexible through taking advantage of the
* {@link org.springframework.core.env.Environment} and
* {@link org.springframework.core.env.PropertySource} mechanisms.
*/
@Deprecated
@Deprecated(since = "5.2", forRemoval = true)
public class PropertyPlaceholderConfigurer extends PlaceholderConfigurerSupport {
/** Never check system properties. */

4
spring-beans/src/test/java/org/springframework/beans/factory/config/PropertyPlaceholderConfigurerTests.java

@ -1,5 +1,5 @@ @@ -1,5 +1,5 @@
/*
* Copyright 2002-2024 the original author or authors.
* Copyright 2002-2025 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@ -44,7 +44,7 @@ import static org.springframework.beans.factory.support.BeanDefinitionReaderUtil @@ -44,7 +44,7 @@ import static org.springframework.beans.factory.support.BeanDefinitionReaderUtil
* @author Chris Beams
* @author Sam Brannen
*/
@SuppressWarnings("deprecation")
@SuppressWarnings({"deprecation", "removal"})
class PropertyPlaceholderConfigurerTests {
private static final String P1 = "p1";

4
spring-beans/src/test/java/org/springframework/beans/factory/config/PropertyResourceConfigurerTests.java

@ -1,5 +1,5 @@ @@ -1,5 +1,5 @@
/*
* Copyright 2002-2024 the original author or authors.
* Copyright 2002-2025 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@ -59,7 +59,7 @@ import static org.springframework.core.testfixture.io.ResourceTestUtils.qualifie @@ -59,7 +59,7 @@ import static org.springframework.core.testfixture.io.ResourceTestUtils.qualifie
* @since 02.10.2003
* @see PropertyPlaceholderConfigurerTests
*/
@SuppressWarnings("deprecation")
@SuppressWarnings({"deprecation", "removal"})
class PropertyResourceConfigurerTests {
static {

4
spring-context/src/main/java/org/springframework/context/config/PropertyPlaceholderBeanDefinitionParser.java

@ -1,5 +1,5 @@ @@ -1,5 +1,5 @@
/*
* Copyright 2002-2023 the original author or authors.
* Copyright 2002-2025 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@ -39,7 +39,7 @@ class PropertyPlaceholderBeanDefinitionParser extends AbstractPropertyLoadingBea @@ -39,7 +39,7 @@ class PropertyPlaceholderBeanDefinitionParser extends AbstractPropertyLoadingBea
@Override
@SuppressWarnings("deprecation")
@SuppressWarnings({"deprecation", "removal"})
protected Class<?> getBeanClass(Element element) {
// The default value of system-properties-mode is 'ENVIRONMENT'. This value
// indicates that resolution of placeholders against system properties is a

8
spring-context/src/test/java/org/springframework/context/annotation/CommonAnnotationBeanPostProcessorTests.java

@ -1,5 +1,5 @@ @@ -1,5 +1,5 @@
/*
* Copyright 2002-2024 the original author or authors.
* Copyright 2002-2025 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@ -227,7 +227,7 @@ class CommonAnnotationBeanPostProcessorTests { @@ -227,7 +227,7 @@ class CommonAnnotationBeanPostProcessorTests {
bf.registerResolvableDependency(BeanFactory.class, bf);
bf.registerResolvableDependency(INestedTestBean.class, (ObjectFactory<Object>) NestedTestBean::new);
@SuppressWarnings("deprecation")
@SuppressWarnings({"deprecation", "removal"})
org.springframework.beans.factory.config.PropertyPlaceholderConfigurer ppc = new org.springframework.beans.factory.config.PropertyPlaceholderConfigurer();
Properties props = new Properties();
props.setProperty("tb", "testBean4");
@ -312,7 +312,7 @@ class CommonAnnotationBeanPostProcessorTests { @@ -312,7 +312,7 @@ class CommonAnnotationBeanPostProcessorTests {
bf.addBeanPostProcessor(bpp);
bf.registerResolvableDependency(BeanFactory.class, bf);
@SuppressWarnings("deprecation")
@SuppressWarnings({"deprecation", "removal"})
org.springframework.beans.factory.config.PropertyPlaceholderConfigurer ppc = new org.springframework.beans.factory.config.PropertyPlaceholderConfigurer();
Properties props = new Properties();
props.setProperty("tb", "testBean3");
@ -363,7 +363,7 @@ class CommonAnnotationBeanPostProcessorTests { @@ -363,7 +363,7 @@ class CommonAnnotationBeanPostProcessorTests {
bf.addBeanPostProcessor(bpp);
bf.registerResolvableDependency(BeanFactory.class, bf);
@SuppressWarnings("deprecation")
@SuppressWarnings({"deprecation", "removal"})
org.springframework.beans.factory.config.PropertyPlaceholderConfigurer ppc = new org.springframework.beans.factory.config.PropertyPlaceholderConfigurer();
Properties props = new Properties();
props.setProperty("tb", "testBean3");

2
spring-context/src/test/java/org/springframework/context/annotation/configuration/ConfigurationClassProcessingTests.java

@ -267,7 +267,7 @@ class ConfigurationClassProcessingTests { @@ -267,7 +267,7 @@ class ConfigurationClassProcessingTests {
void configurationWithPostProcessor() {
AnnotationConfigApplicationContext ctx = new AnnotationConfigApplicationContext();
ctx.register(ConfigWithPostProcessor.class);
@SuppressWarnings("deprecation")
@SuppressWarnings({"deprecation", "removal"})
RootBeanDefinition placeholderConfigurer = new RootBeanDefinition(
org.springframework.beans.factory.config.PropertyPlaceholderConfigurer.class);
placeholderConfigurer.getPropertyValues().add("properties", "myProp=myValue");

4
spring-context/src/test/java/org/springframework/context/expression/ApplicationContextExpressionTests.java

@ -1,5 +1,5 @@ @@ -1,5 +1,5 @@
/*
* Copyright 2002-2024 the original author or authors.
* Copyright 2002-2025 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@ -68,7 +68,7 @@ import static org.springframework.context.expression.StandardBeanExpressionResol @@ -68,7 +68,7 @@ import static org.springframework.context.expression.StandardBeanExpressionResol
class ApplicationContextExpressionTests {
@Test
@SuppressWarnings("deprecation")
@SuppressWarnings({"deprecation", "removal"})
void genericApplicationContext() throws Exception {
GenericApplicationContext ac = new GenericApplicationContext();
AnnotationConfigUtils.registerAnnotationConfigProcessors(ac);

4
spring-context/src/test/java/org/springframework/context/support/BeanFactoryPostProcessorTests.java

@ -1,5 +1,5 @@ @@ -1,5 +1,5 @@
/*
* Copyright 2002-2023 the original author or authors.
* Copyright 2002-2025 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@ -76,7 +76,7 @@ class BeanFactoryPostProcessorTests { @@ -76,7 +76,7 @@ class BeanFactoryPostProcessorTests {
}
@Test
@SuppressWarnings("deprecation")
@SuppressWarnings({"deprecation", "removal"})
void multipleDefinedBeanFactoryPostProcessors() {
StaticApplicationContext ac = new StaticApplicationContext();
ac.registerSingleton("tb1", TestBean.class);

4
spring-context/src/test/java/org/springframework/context/support/PropertyResourceConfigurerIntegrationTests.java

@ -1,5 +1,5 @@ @@ -1,5 +1,5 @@
/*
* Copyright 2002-2022 the original author or authors.
* Copyright 2002-2025 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@ -43,7 +43,7 @@ import static org.assertj.core.api.Assertions.assertThatExceptionOfType; @@ -43,7 +43,7 @@ import static org.assertj.core.api.Assertions.assertThatExceptionOfType;
* @author Sam Brannen
* @see org.springframework.beans.factory.config.PropertyResourceConfigurerTests
*/
@SuppressWarnings("deprecation")
@SuppressWarnings({"deprecation", "removal"})
class PropertyResourceConfigurerIntegrationTests {
@Test

Loading…
Cancel
Save