Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

@DeprecatedConfigurationProperty has no effect when declared on a record component's accessor method #29526

Closed
wilkinsona opened this issue Jan 21, 2022 · 1 comment
Assignees
Labels
type: bug A general bug
Milestone

Comments

@wilkinsona
Copy link
Member

@DeprecatedConfigurationProperty must be used on the getter of the deprecated element. For a record, that looks like this:

@ConstructorBinding
@ConfigurationProperties("example")
public record Example(String alpha, String bravo) {

	@Deprecated
	@DeprecatedConfigurationProperty
	public String alpha() {
		return this.alpha;
	}

}

This does not work as the deprecation is not captured in the metadata:

{
  "groups": [
    {
      "name": "example",
      "type": "com.example.demo.Example",
      "sourceType": "com.example.demo.Example"
    }
  ],
  "properties": [
    {
      "name": "example.alpha",
      "type": "java.lang.String",
      "sourceType": "com.example.demo.Example"
    },
    {
      "name": "example.bravo",
      "type": "java.lang.String",
      "sourceType": "com.example.demo.Example"
    }
  ],
  "hints": []
}
@wilkinsona wilkinsona added the type: bug A general bug label Jan 21, 2022
@wilkinsona wilkinsona added this to the 2.5.x milestone Jan 21, 2022
@wilkinsona
Copy link
Member Author

In the example above alpha() isn't considered to be a getter for the alpha property as it doesn't match the get… or is… pattern that's currently looked for.

@wilkinsona wilkinsona modified the milestones: 2.5.x, 2.6.x May 19, 2022
@wilkinsona wilkinsona modified the milestones: 2.6.x, 2.7.x Nov 24, 2022
@mhalbritter mhalbritter self-assigned this Jan 18, 2023
@mhalbritter mhalbritter modified the milestones: 2.7.x, 2.7.8 Jan 18, 2023
krenson pushed a commit to krenson/test-push that referenced this issue Mar 15, 2023
…ot-starter-parent from 2.7.7 to 2.7.8 (patch)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [org.springframework.boot:spring-boot-starter-parent](https://spring.io/projects/spring-boot) ([source](https://github.com/spring-projects/spring-boot)) | parent | patch | `2.7.7` -> `2.7.8` |

---

### Release Notes

<details>
<summary>spring-projects/spring-boot</summary>

### [`v2.7.8`](https://github.com/spring-projects/spring-boot/releases/tag/v2.7.8)

[Compare Source](spring-projects/spring-boot@v2.7.7...v2.7.8)

#### ⭐ Noteworthy

-   The coordinates of the MySQL JDBC driver have [changed from `mysql:mysql-connector-java` to `com.mysql:mysql-connector-j`](https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-2.7-Release-Notes#mysql-jdbc-driver).

#### 🐞 Bug Fixes

-   Devtools sets non-existent property spring.reactor.debug [#&#8203;33858](spring-projects/spring-boot#33858)
-   Failing calls to reactive health indicators are not logged [#&#8203;33774](spring-projects/spring-boot#33774)
-   Failure analysis of NoUniqueBeanDefinitionException reports "defined in null" when bean definition has no resource description [#&#8203;33765](spring-projects/spring-boot#33765)
-   NPE in RabbitProperties when user is given, but password not [#&#8203;33752](spring-projects/spring-boot#33752)
-   SDKMAN should not use repo.spring.io for releases [#&#8203;33708](spring-projects/spring-boot#33708)
-   Homebrew and Scoop should not use repo.spring.io for releases [#&#8203;33702](spring-projects/spring-boot#33702)
-   EndpointRequestMatcher should have a toString method [#&#8203;33690](spring-projects/spring-boot#33690)
-   It is not possible to provide a custom TransactionProvider bean for JOOQ [#&#8203;32899](spring-projects/spring-boot#32899)
-   SpringBootMockResolver causes AopTestUtils.getUltimateTargetObject to recurse until the stack overflows when it calls it with Spring Security's authentication manager bean [#&#8203;32632](spring-projects/spring-boot#32632)
-   Inconsistent discovery of parameter names for selectors in custom actuator endpoints [#&#8203;31240](spring-projects/spring-boot#31240)
-   `@DeprecatedConfigurationProperty` has no effect when declared on a record component's accessor method [#&#8203;29526](spring-projects/spring-boot#29526)
-   Headless mode is forced when banner.\* file is present. [#&#8203;28803](spring-projects/spring-boot#28803)
-   Diagnostics are poor when the JMX port used by the Maven start goal is in use [#&#8203;24044](spring-projects/spring-boot#24044)

#### 📔 Documentation

-   Replace "via" in documentat...
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
type: bug A general bug
Projects
None yet
Development

No branches or pull requests

2 participants