RFR: 8242888: Convert dynamic proxy to hidden classes
Chen Liang
liach at openjdk.org
Thu May 23 03:33:10 UTC 2024
Please review this change that convert dynamic proxies implementations to hidden classes, intended to target JDK 24.
Summary:
1. Adds new implementation while preserving the old implementation behind `-Djdk.reflect.useLegacyProxyImpl=true` in case there are compatibility issues.
2. ClassLoader.defineClass0 takes a ClassLoader instance but discards it in native code; I updated native code to reuse that ClassLoader for Proxy support.
3. ProxyGenerator changes mainly involve using Class data to pass Method list (accessed in a single condy) and removal of obsolete setup code generation.
Testing: tier1 and tier2 have no related failures.
Comment: Since #8278, Proxy has been converted to ClassFile API, and infrastructure has changed; now, the migration to hidden classes is much cleaner and has less impact, such as preserving ProtectionDomain and dynamic module without "anchor classes", and avoiding java.lang.invoke package.
-------------
Commit messages:
- Fixes
- Merge branch 'master' of https://github.com/openjdk/jdk into feature/hidden-proxy
- First draft
Changes: https://git.openjdk.org/jdk/pull/19356/files
Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=19356&range=00
Issue: https://bugs.openjdk.org/browse/JDK-8242888
Stats: 303 lines in 8 files changed: 70 ins; 153 del; 80 mod
Patch: https://git.openjdk.org/jdk/pull/19356.diff
Fetch: git fetch https://git.openjdk.org/jdk.git pull/19356/head:pull/19356
PR: https://git.openjdk.org/jdk/pull/19356
More information about the core-libs-dev
mailing list