Browse Source
* gh-39452: Polish "Support `@Name` with JavaBean-based configuration properties" Support `@Name` with JavaBean-based configuration properties Closes gh-39452pull/41596/head
13 changed files with 229 additions and 63 deletions
@ -1,41 +0,0 @@
@@ -1,41 +0,0 @@
|
||||
/* |
||||
* 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.configurationprocessor; |
||||
|
||||
import org.junit.jupiter.api.Test; |
||||
|
||||
import org.springframework.boot.configurationprocessor.metadata.ConfigurationMetadata; |
||||
import org.springframework.boot.configurationprocessor.metadata.Metadata; |
||||
import org.springframework.boot.configurationsample.immutable.ImmutableNameAnnotationProperties; |
||||
|
||||
import static org.assertj.core.api.Assertions.assertThat; |
||||
|
||||
/** |
||||
* Metadata generation tests for immutable properties using {@code @Name}. |
||||
* |
||||
* @author Phillip Webb |
||||
*/ |
||||
class ImmutableNameAnnotationPropertiesTests extends AbstractMetadataGenerationTests { |
||||
|
||||
@Test |
||||
void immutableNameAnnotationProperties() { |
||||
ConfigurationMetadata metadata = compile(ImmutableNameAnnotationProperties.class); |
||||
assertThat(metadata).has(Metadata.withProperty("named.import", String.class) |
||||
.fromSource(ImmutableNameAnnotationProperties.class)); |
||||
} |
||||
|
||||
} |
||||
@ -0,0 +1,57 @@
@@ -0,0 +1,57 @@
|
||||
/* |
||||
* Copyright 2012-2024 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.configurationprocessor; |
||||
|
||||
import org.junit.jupiter.api.Test; |
||||
|
||||
import org.springframework.boot.configurationprocessor.metadata.ConfigurationMetadata; |
||||
import org.springframework.boot.configurationprocessor.metadata.Metadata; |
||||
import org.springframework.boot.configurationsample.immutable.ConstructorParameterNameAnnotationProperties; |
||||
import org.springframework.boot.configurationsample.immutable.JavaBeanNameAnnotationProperties; |
||||
import org.springframework.boot.configurationsample.immutable.RecordComponentNameAnnotationProperties; |
||||
|
||||
import static org.assertj.core.api.Assertions.assertThat; |
||||
|
||||
/** |
||||
* Metadata generation tests for using {@code @Name}. |
||||
* |
||||
* @author Phillip Webb |
||||
*/ |
||||
class NameAnnotationPropertiesTests extends AbstractMetadataGenerationTests { |
||||
|
||||
@Test |
||||
void constructorParameterNameAnnotationProperties() { |
||||
ConfigurationMetadata metadata = compile(ConstructorParameterNameAnnotationProperties.class); |
||||
assertThat(metadata).has(Metadata.withProperty("named.import", String.class) |
||||
.fromSource(ConstructorParameterNameAnnotationProperties.class)); |
||||
} |
||||
|
||||
@Test |
||||
void recordComponentNameAnnotationProperties() { |
||||
ConfigurationMetadata metadata = compile(RecordComponentNameAnnotationProperties.class); |
||||
assertThat(metadata).has(Metadata.withProperty("named.import", String.class) |
||||
.fromSource(RecordComponentNameAnnotationProperties.class)); |
||||
} |
||||
|
||||
@Test |
||||
void javaBeanNameAnnotationProperties() { |
||||
ConfigurationMetadata metadata = compile(JavaBeanNameAnnotationProperties.class); |
||||
assertThat(metadata).has( |
||||
Metadata.withProperty("named.import", String.class).fromSource(JavaBeanNameAnnotationProperties.class)); |
||||
} |
||||
|
||||
} |
||||
8
spring-boot-project/spring-boot-tools/spring-boot-configuration-processor/src/test/java/org/springframework/boot/configurationsample/immutable/ImmutableNameAnnotationProperties.java → spring-boot-project/spring-boot-tools/spring-boot-configuration-processor/src/test/java/org/springframework/boot/configurationsample/immutable/ConstructorParameterNameAnnotationProperties.java
8
spring-boot-project/spring-boot-tools/spring-boot-configuration-processor/src/test/java/org/springframework/boot/configurationsample/immutable/ImmutableNameAnnotationProperties.java → spring-boot-project/spring-boot-tools/spring-boot-configuration-processor/src/test/java/org/springframework/boot/configurationsample/immutable/ConstructorParameterNameAnnotationProperties.java
@ -0,0 +1,41 @@
@@ -0,0 +1,41 @@
|
||||
/* |
||||
* Copyright 2012-2024 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.immutable; |
||||
|
||||
import org.springframework.boot.configurationsample.ConfigurationProperties; |
||||
import org.springframework.boot.configurationsample.Name; |
||||
|
||||
/** |
||||
* Java bean properties making use of {@code @Name}. |
||||
* |
||||
* @author Andy Wilkinson |
||||
*/ |
||||
@ConfigurationProperties("named") |
||||
public class JavaBeanNameAnnotationProperties { |
||||
|
||||
@Name("import") |
||||
private String imports; |
||||
|
||||
public String getImports() { |
||||
return this.imports; |
||||
} |
||||
|
||||
public void setImports(String imports) { |
||||
this.imports = imports; |
||||
} |
||||
|
||||
} |
||||
@ -0,0 +1,30 @@
@@ -0,0 +1,30 @@
|
||||
/* |
||||
* Copyright 2012-2024 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.immutable; |
||||
|
||||
import org.springframework.boot.configurationsample.ConfigurationProperties; |
||||
import org.springframework.boot.configurationsample.Name; |
||||
|
||||
/** |
||||
* Immutable record properties making use of {@code @Name}. |
||||
* |
||||
* @author Andy Wilkinson |
||||
*/ |
||||
@ConfigurationProperties("named") |
||||
public record RecordComponentNameAnnotationProperties(@Name("import") String imports) { |
||||
|
||||
} |
||||
Loading…
Reference in new issue