On Mon, 7 Apr 2025 16:36:07 GMT, Jorn Vernee <jver...@openjdk.org> wrote:
> `jnativescan` uses the `ClassResolver` class to find both system classes, as > well as application classes. In principle, a class resolver supports both > iterating over all classes from that particular source, as well as looking up > classes by name. However, the `ClassResolver` for system classes doesn't > support iterating, and the lookup functionality for `ClassResolvers` from > other sources is never used (only iterating). > > This patch proposes to split the iterating functionality out of > `ClassResolver`. Clients that were using this functionality will switch to > using the iteration functionality that is available on `ClassFileSource` > directly (whose classes were previously being wrapped in a `ClassResolver`). > As a result of this latter change, we can now also let `NativeMethodFinder` > operate on individual classes. We just iterate over all the class file > sources in `JNativeScanTask`, and feed individual class models to > `NativeMethodFinder`. I think this is a good conceptual simplification of > `NativeMethodFinder`, > > Since `ClassResolver` is now only used for system classes, I've removed it, > leaving only its single implementation: `SystemClassResolver`. > > Testing: running `langtools_jnativescan` test suite. This pull request has now been integrated. Changeset: 8bb0ca49 Author: Jorn Vernee <jver...@openjdk.org> URL: https://git.openjdk.org/jdk/commit/8bb0ca49715d8c713d6319b00a7684564ba57a9b Stats: 374 lines in 5 files changed: 150 ins; 191 del; 33 mod 8353917: jnativescan: Simplify ClassResolver Reviewed-by: mcimadamore ------------- PR: https://git.openjdk.org/jdk/pull/24493