blob: f03a4e21a7dcb69579978d7c852ac0d3cf5bc2b8 [file] [log] [blame] [view]
# Bootstrap class plugins
All bootstrap plugins are optional, due to unexpected risk. Bootstrap plugins are provided in `bootstrap-plugins` folder.
For using these plugins, you need to put the target plugin jar file into `/plugins`.
Now, we have the following known bootstrap plugins.
* Plugin of JDK HttpURLConnection. Agent is compatible with JDK 1.8+
* Plugin of JDK Callable and Runnable. Agent is compatible with JDK 1.8+
* Plugin of JDK ThreadPoolExecutor. Agent is compatible with JDK 1.8+
* Plugin of JDK ForkJoinPool. Agent is compatible with JDK 1.8+
* Plugin of JDK VirtualThreadExecutor. Agent is compatible with JDK 21+
* Plugin of JDK HttpClient. Agent is compatible with JDK 11+
### HttpURLConnection Plugin Notice
The plugin of JDK HttpURLConnection depended on `sun.net.*`. When using Java 9+, You should add some JVM options as follows:
| Java version | JVM option |
|--------------|--------------------------------------------------------------------------------|
| 9-15 |Nothing to do. Because `--illegal-access` default model is permitted. |
| 16 |Add `--add-exports java.base/sun.net.www=ALL-UNNAMED` or `--illegal-access=permit` |
| 17+ |Add `--add-exports java.base/sun.net.www=ALL-UNNAMED` |
For more information
1. [JEP 403: Strongly Encapsulate JDK Internals](https://openjdk.org/jeps/403)
2. [A peek into Java 17: Encapsulating the Java runtime internals](https://blogs.oracle.com/javamagazine/post/a-peek-into-java-17-continuing-the-drive-to-encapsulate-the-java-runtime-internals)