aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEvgeny Mandrikov <mandrikov@gmail.com>2019-01-23 01:39:20 +0100
committerEvgeny Mandrikov <mandrikov@gmail.com>2019-01-23 01:39:20 +0100
commit50510c1e7ed757d555e343117f30bc5ba40c2c93 (patch)
treee93ec4670a253c9fed34a8e8844b1db39b80332c
parentf9abb28308b116d2e37b464de8e1b49a4d5cf7c7 (diff)
downloadplatform_external_jacoco-50510c1e7ed757d555e343117f30bc5ba40c2c93.tar.gz
platform_external_jacoco-50510c1e7ed757d555e343117f30bc5ba40c2c93.tar.bz2
platform_external_jacoco-50510c1e7ed757d555e343117f30bc5ba40c2c93.zip
Add InjectedClassRuntime to documentation
-rw-r--r--org.jacoco.doc/docroot/doc/implementation.html12
1 files changed, 9 insertions, 3 deletions
diff --git a/org.jacoco.doc/docroot/doc/implementation.html b/org.jacoco.doc/docroot/doc/implementation.html
index b1eda7f3..668b7dd4 100644
--- a/org.jacoco.doc/docroot/doc/implementation.html
+++ b/org.jacoco.doc/docroot/doc/implementation.html
@@ -210,12 +210,18 @@ boolean[] probes = (boolean[]) args[0];
public static field to an existing JRE class through instrumentation. Unlike
the other methods above this is only possible for environments where a Java
agent is active.</li>
+ <li><b><code>InjectedClassRuntime</code></b>: This approach defines a new class
+ using <code>java.lang.invoke.MethodHandles.Lookup.defineClass</code>
+ introduced in Java 9.</li>
</ul>
<p>
- The current JaCoCo Java agent implementation uses the
- <code>ModifiedSystemClassRuntime</code> adding a field to the class
- <code>java.lang.UnknownError</code>. Versions 0.5.0 - 0.7.9 were adding field
+ Starting from version 0.8.3 JaCoCo Java agent implementation uses the
+ <code>InjectedClassRuntime</code> to define new class in bootstrap class
+ loader when running on JRE 9 and higher, otherwise uses
+ <code>ModifiedSystemClassRuntime</code> to add field to an existing JRE class.
+ Starting from version 0.8.0 field is added to the class
+ <code>java.lang.UnknownError</code>, versions 0.5.0 - 0.7.9 were adding field
to the class <code>java.util.UUID</code>, having bigger chance of conflict
with other agents.
</p>