Merge branch '2.7.x'

Closes gh-33871
This commit is contained in:
Moritz Halbritter
2023-01-18 12:08:58 +01:00
4 changed files with 97 additions and 19 deletions

View File

@@ -24,6 +24,7 @@ import org.springframework.boot.configurationprocessor.metadata.Metadata;
import org.springframework.boot.configurationsample.recursive.RecursiveProperties;
import org.springframework.boot.configurationsample.simple.ClassWithNestedProperties;
import org.springframework.boot.configurationsample.simple.DeprecatedFieldSingleProperty;
import org.springframework.boot.configurationsample.simple.DeprecatedRecord;
import org.springframework.boot.configurationsample.simple.DeprecatedSingleProperty;
import org.springframework.boot.configurationsample.simple.DescriptionProperties;
import org.springframework.boot.configurationsample.simple.HierarchicalProperties;
@@ -219,6 +220,16 @@ class ConfigurationMetadataAnnotationProcessorTests extends AbstractMetadataGene
.withNoDeprecation().fromSource(type));
}
@Test
void deprecatedPropertyOnRecord() {
Class<?> type = DeprecatedRecord.class;
ConfigurationMetadata metadata = compile(type);
assertThat(metadata).has(Metadata.withGroup("deprecated-record").fromSource(type));
assertThat(metadata).has(Metadata.withProperty("deprecated-record.alpha", String.class).fromSource(type)
.withDeprecation("some-reason", null));
assertThat(metadata).has(Metadata.withProperty("deprecated-record.bravo", String.class).fromSource(type));
}
@Test
void typBoxing() {
Class<?> type = BoxingPojo.class;

View File

@@ -0,0 +1,38 @@
/*
* Copyright 2012-2023 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.
* You may obtain a copy of the License at
*
* https://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.springframework.boot.configurationsample.simple;
import org.springframework.boot.configurationsample.ConfigurationProperties;
import org.springframework.boot.configurationsample.DeprecatedConfigurationProperty;
/**
* Configuration properties as record with deprecated property.
* @param alpha alpha property, deprecated
* @param bravo bravo property
*
* @author Moritz Halbritter
*/
@ConfigurationProperties("deprecated-record")
public record DeprecatedRecord(String alpha, String bravo) {
@Deprecated
@DeprecatedConfigurationProperty(reason = "some-reason")
public String alpha() {
return this.alpha;
}
}