| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
Expose the members a bean property is composed of (#12918) * feat(introspection): expose the members a bean property is composed of A bean property merges its field, read method and write method into a single BeanProperty with one merged AnnotationMetadata, read through the getter. There was no way to ask which member declared which annotation, what kind of member it is, or to read the value the field holds. Jakarta Bean Validation needs exactly that: a constraint on a field is validated against the value the field holds while one on the getter is validated against what the getter returns, the TraversableResolver is told FIELD or METHOD per element, and ConstraintFinder.declaredOn() filters on it. Add an opt-in @Introspected(members = true) that makes each member available through BeanProperty.getMembers() as a BeanPropertyMember carrying its own element type, declaring type, annotation metadata, Argument and a generated read accessor. A field member reads the field directly rather than going through the getter; when the member already is the property's read member the existing accessor is reused rather than generating a second one. The attribute defaults to false so introspections that do not need the extra metadata do not grow, and generated code is unchanged in that case. Reading a field that is not accessible from the generated introspection, such as a private field, still falls back to reflection. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> * Suppress the Sonar volatile-collection warning on the lazy property members Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> * Address the Copilot review of the property members Say in the `members()` javadoc that it does nothing without annotation metadata, and keep the nullability of `BeanPropertyRef.members` on the local it is read into. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 5 <noreply@anthropic.com> | 2 天前 | |
Use standardized project names (#11354) * Use standardized project names This will make it easier to use Micronaut Core as an included build. This also simplifies some dependency substitution rules which were a bit awkward. * Convert all build scripts to Kotlin DSL For consistency and better IDE support. | 1 年前 |
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 2 天前 | ||
| 1 年前 |