Commit Graph

231 Commits

Author SHA1 Message Date
Phillip Webb
106d30a1a6 Merge branch 'main' into 4.0.x 2025-05-20 17:21:08 -07:00
Andy Wilkinson
0b12cebff4 Fix warnings reported in Eclipse 2025-05-14 11:37:07 +01:00
Stéphane Nicoll
b3f35baed3 Add metadata support for types in arbitrary modules
Previously, if a ConfigurationProperties had a nested type or was
extending from a type located outside the compilation unit, no
metadata discovered on the source code was available (documentation and
explicit default value, if any). This typically happens when such a type
resides in another module.

This commit introduces `@ConfigurationPropertiesSource` as a way to
annotate such type and have metadata generated for them in their own
module.

Type-metadata is generated as one file per type and is reused
transparently whenever that type is used. As for module metadata, an
additional file can be crafted manually and will be merged when the
metadata for the type is generated.

The following is an example structure with two types where one has
an additional metadata:

META-iNF/
  spring/
    configuration-properties/
      additional/
        com.example.SourceOne.json
      com.example.SourceOne.json
      com.example.SourceTwo.json

Those files are used only by the annotation processor and are not meant
to be public API.

See gh-18366
2025-05-13 13:42:55 +02:00
Phillip Webb
36fb1e9b4b Replace Actuator @Nullable with @OptionalParameter
Closes gh-45389
2025-05-09 17:38:12 -07:00
Phillip Webb
70e11de647 Merge branch '3.4.x'
Closes gh-45040
2025-04-08 15:09:38 -07:00
Phillip Webb
e29dc450a6 Merge branch '3.3.x' into 3.4.x
Closes gh-45039
2025-04-08 15:09:25 -07:00
Phillip Webb
46b14de6e9 Polish 'Handle generics with identical names in different positions'
See gh-45011
2025-04-08 15:07:51 -07:00
Dmytro Nosan
e24fd50615 Handle generics with identical names in different positions
Update `TypeUtils` to handle generics with identical names in different
positions.

See gh-45011

Signed-off-by: Dmytro Nosan <dimanosan@gmail.com>
2025-04-08 15:05:42 -07:00
Johnny Lim
a39e1c4a09 Polish
Signed-off-by: Johnny Lim <izeye@naver.com>

See gh-44034
2025-01-31 17:04:58 +01:00
Moritz Halbritter
f24ba9935c Add ability to ignore configuration properties
Properties which should be ignored can be specified in the
additional-spring-configuration-metadata.json file. The ignored
properties section is copied into the final
spring-configuration-metadata.json file, and the ignored properties are
removed from the properties element in the final file.

Closes gh-2421
2025-01-28 11:09:26 +01:00
Stéphane Nicoll
e5ec38074b Merge branch '3.3.x'
Closes gh-42917
2024-10-29 13:39:31 +09:00
Stéphane Nicoll
5fcc585178 Merge branch '3.2.x' into 3.3.x
Closes gh-42916
2024-10-29 13:39:23 +09:00
Stéphane Nicoll
eba7a5a077 Update copyright year of changed files
See gh-42901
2024-10-29 13:35:35 +09:00
Tran Ngoc Nhan
ff855d9421 Remove redundant null check
See gh-42901
2024-10-29 13:33:55 +09:00
Tran Ngoc Nhan
fcbf6b0200 Polish
See gh-42798
2024-10-21 13:23:42 +02:00
Andy Wilkinson
25082d33e7 Provide more control over access to endpoint operations
This commit reworks the support for enabling and disabling endpoints,
replacing the on/off support that it provided with a finer-grained
access model that supports only allowing read-only access to endpoint
operations in addition to disabling an endpoint (access of none) and
fully enabling it (access of unrestricted).

The following properties are deprecated:

- management.endpoints.enabled-by-default
- management.endpoint.<id>.enabled

Their replacements are:

- management.endpoints.access.default
- management.endpoint.<id>.access

Similarly, the enableByDefault attribute on @Endpoint has been
deprecated with a new defaultAccess attribute replacing it.

Additionally, a new property has been introduced that allows an
operator to control the level of access to Actuator endpoints
that is permitted:

- management.endpoints.access.max-permitted

This property caps any access that may has been configured for
an endpoint. For example, if
management.endpoints.access.max-permitted is set to read-only and
management.endpoint.loggers.access is set to unrestricted, only
read-only access to the loggers endpoint will be allowed.

Closes gh-39046
2024-10-17 13:56:44 +01:00
Stéphane Nicoll
00440b982c Merge branch '3.3.x'
Closes gh-42321
2024-09-16 09:04:19 +02:00
Stéphane Nicoll
437ff754ef Merge branch '3.2.x' into 3.3.x
Closes gh-42320
2024-09-16 09:04:07 +02:00
Stéphane Nicoll
242803d59b Polish "Replace Configuration fully qualified name by constant"
See gh-42311
2024-09-16 09:01:36 +02:00
mushroom528
9bcfc72307 Replace Configuration fully qualified name by constant
See gh-42311
2024-09-16 09:01:23 +02:00
Stéphane Nicoll
477bd7d15a Detect default enum value
This commit improves the configuration metadata annotation processor to
detect a default enum value. The algorithm is best-effort, similarly to
what it already does for well known prefixes (period, duration, etc).

Based on an expression and an identifier, the default value is inferred
if the expression matches the declaration of the property type.

See gh-7562
2024-08-01 15:43:21 +02:00
Andy Wilkinson
23b344691d Polish "Support @Name with JavaBean-based configuration properties"
See gh-39452
2024-07-23 14:00:20 +01:00
Jared Bates
6c8987e0d8 Allow NestedConfigurationProperty on getters
This commit adds support adding `@NestedConfigurationProperty` on a
getter.

See gh-38844
2024-07-15 09:24:27 +02:00
Alexis Couvreur
47c8a859ea Support NestedConfigurationProperty for record types
Add ElementType.RECORD_COMPONENT to NestedConfigurationProperty and
implement isMarkedAsNested for RecordParameterPropertyDescriptor.

This will allow nested records to be properly harvested for their
properties.

See gh-41251
2024-07-04 10:58:51 +02:00
Andy Wilkinson
94c9a5c686 Polish 2024-05-02 10:49:31 +01:00
Phillip Webb
ff5c2a2351 Improve javadoc cleanup to remove duplicate spaces
Improve `TypeUtils` so that repeated space chars are removed.

Fixes gh-40593
2024-05-01 22:37:10 -07:00
Phillip Webb
bce468fb19 Polish 'Generate configuration metadata for records'
Restructure `PropertyDescriptor` type hierarchy and polish code.

See gh-29403
2024-04-22 10:28:00 -07:00
Pavel Anisimov
af976caec9 Generate configuration metadata for records
Update `spring-boot-configuration-processor` to support generating
configuration metadata from record parameter javadoc.

See gh-29403
2024-04-22 10:27:47 -07:00
Moritz Halbritter
6abcde3ce8 Prevent deprecation for DBCP2 username and password properties
Closes gh-40076
2024-04-04 15:06:30 +02:00
Phillip Webb
a0a804cfdf Merge branch '3.2.x' 2024-01-22 12:20:41 -08:00
Phillip Webb
088b313ae5 Polish 2024-01-22 11:57:37 -08:00
Moritz Halbritter
ca799f7b21 Tolerate actuator endpoints with the same id
Closes gh-39249
2024-01-22 12:33:05 +01:00
Andy Wilkinson
17e9f0cb8e Merge branch '3.2.x'
Closes gh-39093
2024-01-11 11:36:38 +00:00
Andy Wilkinson
7087897507 Merge branch '3.1.x' into 3.2.x
Closes gh-39091
2024-01-11 10:33:57 +00:00
Andy Wilkinson
45c32854a5 Fix Checkstyle upgrade
Closes gh-38746
2024-01-10 15:37:38 +00:00
Moritz Halbritter
25614710d5 Fail if superfluous properties are used in property metadata
Closes gh-37597
2024-01-09 13:59:51 +01:00
Moritz Halbritter
970c226847 Polish 2024-01-09 13:59:14 +01:00
Phillip Webb
5354ad15b3 Merge branch '3.1.x'
Closes gh-38877
2023-12-19 22:51:48 -08:00
Yanming Zhou
ac18e3015c Use .isEmpty() where feasible
See gh-38739
2023-12-19 22:38:05 -08:00
Phillip Webb
8edec21a6f Update copyright year of changed files 2023-08-13 20:44:44 -07:00
Moritz Halbritter
0588f9bf37 Use Deque instead of Stack 2023-08-08 14:06:31 +02:00
Moritz Halbritter
ed9169501e Polish 2023-08-08 13:12:47 +02:00
Scott Frederick
2e50d11d86 Add since attribute to @DeprecatedConfigurationProperty annotation
Closes gh-36482
2023-08-01 16:13:22 -05:00
Phillip Webb
0b15962aca Merge branch '2.7.x' into 3.0.x 2023-02-22 18:36:16 -08:00
Phillip Webb
c4de86c244 Merge branch '2.7.x' into 3.0.x 2023-02-21 23:17:57 -08:00
Phillip Webb
df5898a146 Reformat code following spring-javaformat upgrade 2023-02-21 22:53:27 -08:00
Phillip Webb
71efc55bf9 Merge branch '2.7.x' 2023-01-18 16:31:53 -08:00
Phillip Webb
470a255b0d Polish 2023-01-18 15:47:50 -08:00
Phillip Webb
7c508fa324 Update copyright year of changed files 2023-01-18 15:37:58 -08:00
Moritz Halbritter
fe8d8f4ed3 Merge branch '2.7.x' 2023-01-18 13:50:06 +01:00