kuri-bind uses Kotlin reflection (kotlin-reflect) as its single member-discovery mechanism. Java
POJOs and records are supported through Kotlin reflection's interop views (getters surface as member
functions, fields as member properties, record components in canonical order). That works, but it pulls
kotlin-reflect onto the classpath even for consumers whose request objects are plain Java.
A dedicated java.lang.reflect-native member scanner would let pure-Java consumers bind without
kotlin-reflect: read bean getters (getX/isX), fields, and record components directly. The
MemberScanner interface already exists as the seam — the binder engine is written against it, so a
second implementation (selected at runtime or via an option) is all that's required.
Open questions:
- Selection: classpath probe for
kotlin-reflect, an explicit option, or a separate artifact.
- Whether annotation-site resolution (
@get:/@field:/constructor parameter) can match kotlin-reflect
fidelity for Kotlin classes without kotlin-reflect (likely limited — this backend targets Java shapes).
Filed to track demand, per the note in the README.
kuri-binduses Kotlin reflection (kotlin-reflect) as its single member-discovery mechanism. JavaPOJOs and records are supported through Kotlin reflection's interop views (getters surface as member
functions, fields as member properties, record components in canonical order). That works, but it pulls
kotlin-reflectonto the classpath even for consumers whose request objects are plain Java.A dedicated
java.lang.reflect-native member scanner would let pure-Java consumers bind withoutkotlin-reflect: read bean getters (getX/isX), fields, and record components directly. TheMemberScannerinterface already exists as the seam — the binder engine is written against it, so asecond implementation (selected at runtime or via an option) is all that's required.
Open questions:
kotlin-reflect, an explicit option, or a separate artifact.@get:/@field:/constructor parameter) can match kotlin-reflectfidelity for Kotlin classes without
kotlin-reflect(likely limited — this backend targets Java shapes).Filed to track demand, per the note in the README.