Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Closes gh-31484
- Loading branch information
Showing
9 changed files
with
303 additions
and
9 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
61 changes: 61 additions & 0 deletions
61
...a/org/springframework/boot/configurationprocessor/InheritanceMetadataGenerationTests.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,61 @@ | ||
/* | ||
* Copyright 2012-2022 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.inheritance.ChildProperties; | ||
import org.springframework.boot.configurationsample.inheritance.ChildPropertiesConfig; | ||
import org.springframework.boot.configurationsample.inheritance.OverrideChildProperties; | ||
import org.springframework.boot.configurationsample.inheritance.OverrideChildPropertiesConfig; | ||
|
||
import static org.assertj.core.api.Assertions.assertThat; | ||
|
||
class InheritanceMetadataGenerationTests extends AbstractMetadataGenerationTests { | ||
|
||
@Test | ||
void childProperties() throws Exception { | ||
ConfigurationMetadata metadata = compile(ChildPropertiesConfig.class); | ||
assertThat(metadata).has(Metadata.withGroup("inheritance").fromSource(ChildPropertiesConfig.class)); | ||
assertThat(metadata).has(Metadata.withGroup("inheritance.nest").fromSource(ChildProperties.class)); | ||
assertThat(metadata).has(Metadata.withGroup("inheritance.child-nest").fromSource(ChildProperties.class)); | ||
assertThat(metadata).has(Metadata.withProperty("inheritance.bool-value")); | ||
assertThat(metadata).has(Metadata.withProperty("inheritance.int-value")); | ||
assertThat(metadata).has(Metadata.withProperty("inheritance.long-value")); | ||
assertThat(metadata).has(Metadata.withProperty("inheritance.nest.bool-value")); | ||
assertThat(metadata).has(Metadata.withProperty("inheritance.nest.int-value")); | ||
assertThat(metadata).has(Metadata.withProperty("inheritance.child-nest.bool-value")); | ||
assertThat(metadata).has(Metadata.withProperty("inheritance.child-nest.int-value")); | ||
} | ||
|
||
@Test | ||
void overrideChildProperties() throws Exception { | ||
ConfigurationMetadata metadata = compile(OverrideChildPropertiesConfig.class); | ||
assertThat(metadata).has(Metadata.withGroup("inheritance").fromSource(OverrideChildPropertiesConfig.class)); | ||
assertThat(metadata).has(Metadata.withGroup("inheritance.nest").fromSource(OverrideChildProperties.class)); | ||
assertThat(metadata).has(Metadata.withProperty("inheritance.bool-value")); | ||
assertThat(metadata).has(Metadata.withProperty("inheritance.int-value")); | ||
assertThat(metadata).has(Metadata.withProperty("inheritance.long-value")); | ||
assertThat(metadata).has(Metadata.withProperty("inheritance.nest.bool-value")); | ||
assertThat(metadata).has(Metadata.withProperty("inheritance.nest.int-value")); | ||
assertThat(metadata).has(Metadata.withProperty("inheritance.nest.long-value")); | ||
|
||
} | ||
|
||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
71 changes: 71 additions & 0 deletions
71
...rc/test/java/org/springframework/boot/configurationsample/inheritance/BaseProperties.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,71 @@ | ||
/* | ||
* Copyright 2012-2022 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.inheritance; | ||
|
||
public class BaseProperties { | ||
|
||
private boolean boolValue; | ||
|
||
private int intValue; | ||
|
||
private final Nest nest = new Nest(); | ||
|
||
public boolean isBoolValue() { | ||
return this.boolValue; | ||
} | ||
|
||
public void setBoolValue(boolean boolValue) { | ||
this.boolValue = boolValue; | ||
} | ||
|
||
public int getIntValue() { | ||
return this.intValue; | ||
} | ||
|
||
public void setIntValue(int intValue) { | ||
this.intValue = intValue; | ||
} | ||
|
||
public Nest getNest() { | ||
return this.nest; | ||
} | ||
|
||
public static class Nest { | ||
|
||
private boolean boolValue; | ||
|
||
private int intValue; | ||
|
||
public boolean isBoolValue() { | ||
return this.boolValue; | ||
} | ||
|
||
public void setBoolValue(boolean boolValue) { | ||
this.boolValue = boolValue; | ||
} | ||
|
||
public int getIntValue() { | ||
return this.intValue; | ||
} | ||
|
||
public void setIntValue(int intValue) { | ||
this.intValue = intValue; | ||
} | ||
|
||
} | ||
|
||
} |
61 changes: 61 additions & 0 deletions
61
...c/test/java/org/springframework/boot/configurationsample/inheritance/ChildProperties.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,61 @@ | ||
/* | ||
* Copyright 2012-2022 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.inheritance; | ||
|
||
public class ChildProperties extends BaseProperties { | ||
|
||
private long longValue; | ||
|
||
private final NestInChild childNest = new NestInChild(); | ||
|
||
public long getLongValue() { | ||
return this.longValue; | ||
} | ||
|
||
public void setLongValue(long longValue) { | ||
this.longValue = longValue; | ||
} | ||
|
||
public NestInChild getChildNest() { | ||
return this.childNest; | ||
} | ||
|
||
public static class NestInChild { | ||
|
||
private boolean boolValue; | ||
|
||
private int intValue; | ||
|
||
public boolean isBoolValue() { | ||
return this.boolValue; | ||
} | ||
|
||
public void setBoolValue(boolean boolValue) { | ||
this.boolValue = boolValue; | ||
} | ||
|
||
public int getIntValue() { | ||
return this.intValue; | ||
} | ||
|
||
public void setIntValue(int intValue) { | ||
this.intValue = intValue; | ||
} | ||
|
||
} | ||
|
||
} |
28 changes: 28 additions & 0 deletions
28
.../java/org/springframework/boot/configurationsample/inheritance/ChildPropertiesConfig.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,28 @@ | ||
/* | ||
* Copyright 2012-2022 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.inheritance; | ||
|
||
import org.springframework.boot.configurationsample.ConfigurationProperties; | ||
|
||
public class ChildPropertiesConfig { | ||
|
||
@ConfigurationProperties(prefix = "inheritance") | ||
public ChildProperties childConfig() { | ||
return new ChildProperties(); | ||
} | ||
|
||
} |
36 changes: 36 additions & 0 deletions
36
...ava/org/springframework/boot/configurationsample/inheritance/OverrideChildProperties.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,36 @@ | ||
package org.springframework.boot.configurationsample.inheritance; | ||
|
||
public class OverrideChildProperties extends BaseProperties { | ||
|
||
private long longValue; | ||
|
||
private final CustomNest nest = new CustomNest(); | ||
|
||
public long getLongValue() { | ||
return this.longValue; | ||
} | ||
|
||
public void setLongValue(long longValue) { | ||
this.longValue = longValue; | ||
} | ||
|
||
@Override | ||
public CustomNest getNest() { | ||
return this.nest; | ||
} | ||
|
||
public static class CustomNest extends Nest { | ||
|
||
private long longValue; | ||
|
||
public long getLongValue() { | ||
return this.longValue; | ||
} | ||
|
||
public void setLongValue(long longValue) { | ||
this.longValue = longValue; | ||
} | ||
|
||
} | ||
|
||
} |
28 changes: 28 additions & 0 deletions
28
...g/springframework/boot/configurationsample/inheritance/OverrideChildPropertiesConfig.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,28 @@ | ||
/* | ||
* Copyright 2012-2022 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.inheritance; | ||
|
||
import org.springframework.boot.configurationsample.ConfigurationProperties; | ||
|
||
public class OverrideChildPropertiesConfig { | ||
|
||
@ConfigurationProperties(prefix = "inheritance") | ||
public OverrideChildProperties overrideChildProperties() { | ||
return new OverrideChildProperties(); | ||
} | ||
|
||
} |