Update documentation with new runtime.
diff --git a/org.jacoco.doc/docroot/doc/implementation.html b/org.jacoco.doc/docroot/doc/implementation.html
index b8040f3..693c0f9 100644
--- a/org.jacoco.doc/docroot/doc/implementation.html
+++ b/org.jacoco.doc/docroot/doc/implementation.html
@@ -47,36 +47,8 @@
diagram gives an overview with the techniques used by JaCoCo highlighted:
</p>
-<ul>
- <li>Runtime Profiling
- <ul>
- <li>Java Virtual Machine Profiler Interface (JVMPI), until Java 1.4</li>
- <li>Java Virtual Machine Tool Interface (JVMTI), since Java 1.5</li>
- </ul>
- </li>
- <li><span class="high">Instrumentation*</span>
- <ul>
- <li>Java Source Instrumentation</li>
- <li><span class="high">Byte Code Instrumentation*</span>
- <ul>
- <li>Offline
- <ul>
- <li>Replace Original Classes In-Place</li>
- <li>Inject Instrumented Classes into the Class Path</li>
- </ul>
- </li>
- <li><span class="high">On-The-Fly*</span>
- <ul>
- <li>Special Classloader Implementions or Framework Specific Hooks</li>
- <li><span class="high">Java Agent*</span></li>
- </ul>
- </li>
- </ul>
- </li>
- </ul>
- </li>
-</ul>
-
+<img src=".resources/implementation-1.png" alt="Coverage Implementation Techniques"/>
+
<p>
Byte code instrumentation is very fast, can be implemented in pure Java and
works with every Java VM. On-the-fly instrumentation with the Java agent
@@ -228,6 +200,12 @@
runtime registers a custom <code>Handler</code> to receive the parameter
array. This approach might break environments that install their own log
managers (e.g. Glassfish).</li>
+ <li><b><code>URLStreamHandlerRuntime</code></b>: This runtime registers a
+ <code>URLStreamHandler</code> for a "jacoco-xxxxx" protocol. Instrumented
+ classes open a connection on this protocol. The returned connection object
+ is the one that provides access to the coverage runtime through its
+ <code>equals()</code> method. However to register the protocol the runtime
+ needs to access internal members of the <code>java.net.URL</code> class.</li>
<li><b><code>ModifiedSystemClassRuntime</code></b>: This approach adds a
public static field to an existing JRE class through instrumentation. Unlike
the other methods above this is only possible for environments where a Java