Previously, all integral numbers were parsed as integers. This
caused two problems:
1. Compilation would fail if the default value for a long wasn't a
valid integer.
2. The default value for a byte or short could be out of range,
resulting in the generation of invalid metadata and an error
that could have been caught at compile time not being caught
until runtime.
This commit updates the parsing of all numeric values to use the
parse method of the target primitive type. For example,
Short.parseShort(String) is now used to parse a short.
Fixes gh-30020
This commit makes @ConstructorBinding optional for a type
that has a single parameterized constructor. An @Autowired annotation
on any of the constructors indicates that the type should not be constructor
bound.
Since @ConstructorBinding is now deduced for a single parameterized constructor,
the annotation is no longer needed at the type level.
Closes gh-23216
This commit disables a test that does not test what it is supposed to
and improve the Metadata assertions to fail early if more than one
matching item by name and type is found in the metadata.
See gh-26271
Previously, the configuration metadata annotation processor only
declared support for `@Endpoint` and none of the other more
specialized `@…Endpoint` annotations that are meta-annotated with
`@Endpoint` such as `@WebEndpoint` and `@JmxEndpoint. This would
result in missing metadata if a full or incremental build only
compiled classes annotated with one of the more specialized
`@…Endpoint` annotations as the annotation processor would not be
called.
This commit updates the processor's supported annotation types to
include every known `@…Endpoint` annotation. The test processor has
also been similarly updated to align its behaviour with that of the
main processor.
Fixes gh-25388