You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
**Bootstrap classes** (~112 total): Only the core API, runtime support, and SLF4J logging are stored as regular `.class` files. These are visible to the bootstrap classloader because the manifest declares `Boot-Class-Path: .`.
35
+
**Bootstrap classes** (~4 total): Only the classes required by the INVOKEDYNAMIC dispatch mechanism are stored as regular `.class` files. These are visible to the bootstrap classloader because the manifest declares `Boot-Class-Path: .`.
39
36
40
37
**Masked classes** (~1600+): Agent, client, and shared classes are stored as `.classdata` files under `META-INF/btrace/`. The JVM's class loading ignores these files entirely. They are loaded on demand by `MaskedClassLoader`.
41
38
@@ -76,7 +73,7 @@ Each mode creates a `MaskedClassLoader` for the appropriate section (agent or cl
@@ -114,16 +111,12 @@ Utility class for detecting masked JARs. A JAR is identified as masked by the pr
114
111
A build-only module that defines which classes belong in the bootstrap section via a `bootIncludes` filter closure. This filter is used by the `btraceJar` task in `btrace-dist/build.gradle` to separate classes into `.class` (bootstrap) vs `.classdata` (masked) during JAR assembly.
115
112
116
113
**Bootstrap inclusion criteria:**
117
-
-`org/openjdk/btrace/core/` — core API (excluding Messages)
118
-
-`org/openjdk/btrace/runtime/` — runtime support
119
-
-`org/openjdk/btrace/core/extensions/` — extension API
120
-
-`org/openjdk/btrace/libs/org/slf4j/` — relocated SLF4J (logging from bootstrap code)
121
-
122
-
**Explicitly excluded from bootstrap:**
123
-
- ASM classes (loaded via shared section)
124
-
- JCTools queues (loaded via shared section)
125
-
- Communication protocol classes
126
-
- Annotation and handler classes
114
+
-`org/openjdk/btrace/indy/` — `IndyDispatcher`: bootstrap method for all INVOKEDYNAMIC probe/runtime dispatch
115
+
-`org/openjdk/btrace/runtime/LinkingFlag` — re-entrancy guard used by `IndyDispatcher` and `LinkerInstrumentor`
116
+
-`org/openjdk/btrace/core/HandlerRepository.class` — interface referenced directly by `IndyDispatcher`
6.~~Comprehensive testing: all instrumentation tests must pass with new dispatch~~ ✓ Done (938 unit tests + BTraceFunctionalTests pass; 5 remaining failures are Docker/JBang infrastructure)
0 commit comments