You are viewing a plain text version of this content. The canonical link for it is here.
Posted to site-commits@maven.apache.org by ti...@apache.org on 2020/10/30 22:02:10 UTC

svn commit: r1883002 - /maven/website/components/surefire-archives/surefire-3.0.0-M5/maven-surefire-plugin/examples/process-communication.html

Author: tibordigana
Date: Fri Oct 30 22:02:09 2020
New Revision: 1883002

Log:
added a missing file process-communication.html

Added:
    maven/website/components/surefire-archives/surefire-3.0.0-M5/maven-surefire-plugin/examples/process-communication.html

Added: maven/website/components/surefire-archives/surefire-3.0.0-M5/maven-surefire-plugin/examples/process-communication.html
==============================================================================
--- maven/website/components/surefire-archives/surefire-3.0.0-M5/maven-surefire-plugin/examples/process-communication.html (added)
+++ maven/website/components/surefire-archives/surefire-3.0.0-M5/maven-surefire-plugin/examples/process-communication.html Fri Oct 30 22:02:09 2020
@@ -0,0 +1,370 @@
+<!DOCTYPE html>
+<!--
+ | Generated by Apache Maven Doxia Site Renderer 1.9.1 from src\site\apt/examples\process-communication.apt.vm at 2020-06-13
+ | Rendered using Apache Maven Fluido Skin 1.9
+-->
+<html xmlns="http://www.w3.org/1999/xhtml" lang="en">
+  <head>
+    <meta charset="UTF-8" />
+    <meta name="viewport" content="width=device-width, initial-scale=1" />
+    <meta name="generator" content="Apache Maven Doxia Site Renderer 1.9.1" />
+    <meta name="author" content="Communication Channels in Surefire users@maven.apache.org" />
+    <meta name="date" content="2020-03-15" />
+    <title>Maven Surefire Plugin &#x2013; Using JUnit 5 Platform</title>
+    <link rel="stylesheet" href="../css/apache-maven-fluido-1.9.min.css" />
+    <link rel="stylesheet" href="../css/site.css" />
+    <link rel="stylesheet" href="../css/print.css" media="print" />
+    <script src="../js/apache-maven-fluido-1.9.min.js"></script>
+    <!-- Google Analytics -->
+    <script>
+      (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+       (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+            m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+      })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+      ga('create', 'UA-140879-1', 'auto');
+      ga('send', 'pageview');
+      ga('set', 'anonymizeIp', true);
+      ga('set', 'forceSSL', true);
+    </script>
+  </head>
+  <body class="topBarEnabled">
+    <a href="https://github.com/apache/maven-surefire">
+      <img style="position: absolute; top: 0; right: 0; border: 0; z-index: 10000;"
+        src="https://s3.amazonaws.com/github/ribbons/forkme_right_gray_6d6d6d.png"
+        alt="Fork me on GitHub">
+    </a>
+    <header id="topbar" class="navbar navbar-fixed-top ">
+      <div class="navbar-inner">
+        <div class="container-fluid">
+        <a data-target=".nav-collapse" data-toggle="collapse" class="btn btn-navbar">
+          <span class="icon-bar"></span>
+          <span class="icon-bar"></span>
+          <span class="icon-bar"></span>
+        </a>
+            <ul class="nav">
+      <li class="dropdown">
+        <a href="#" class="dropdown-toggle" data-toggle="dropdown">Overview <b class="caret"></b></a>
+        <ul class="dropdown-menu">
+            <li><a href="../index.html" title="Introduction">Introduction</a></li>
+            <li><a href="../plugin-info.html" title="Goals">Goals</a></li>
+            <li><a href="../usage.html" title="Usage">Usage</a></li>
+            <li><a href="../featurematrix.html" title="Feature Matrix">Feature Matrix</a></li>
+            <li><a href="../api.html" title="API">API</a></li>
+            <li><a href="../faq.html" title="FAQ">FAQ</a></li>
+            <li><a href="../developing.html" title="Developing">Developing</a></li>
+            <li><a href="../jira-report.html" title="Release Notes">Release Notes</a></li>
+            <li><a href="http://www.apache.org/licenses/" title="License">License</a></li>
+            <li><a href="../../download.html" title="Download">Download</a></li>
+        </ul>
+      </li>
+      <li class="dropdown">
+        <a href="#" class="dropdown-toggle" data-toggle="dropdown">Examples <b class="caret"></b></a>
+        <ul class="dropdown-menu">
+            <li><a href="../examples/jpms.html" title="Java Modularity (JPMS) in Tests">Java Modularity (JPMS) in Tests</a></li>
+            <li><a href="../examples/process-communication.html" title="TCP/IP Communication between Forks">TCP/IP Communication between Forks</a></li>
+            <li><a href="../examples/testng.html" title="Using TestNG">Using TestNG</a></li>
+            <li><a href="../examples/junit.html" title="Using JUnit">Using JUnit</a></li>
+            <li><a href="../examples/junit-platform.html" title="Using JUnit 5 Platform">Using JUnit 5 Platform</a></li>
+            <li><a href="../examples/pojo-test.html" title="Using POJO Tests">Using POJO Tests</a></li>
+            <li><a href="../examples/spock.html" title="Using Spock">Using Spock</a></li>
+            <li><a href="../examples/cucumber.html" title="Using Cucumber">Using Cucumber</a></li>
+            <li><a href="../examples/cwd.html" title="Special characters in directories">Special characters in directories</a></li>
+            <li><a href="../examples/skipping-tests.html" title="Skipping Tests">Skipping Tests</a></li>
+            <li><a href="../examples/skip-after-failure.html" title="Skip After Failure">Skip After Failure</a></li>
+            <li><a href="../examples/inclusion-exclusion.html" title="Inclusions and Exclusions of Tests">Inclusions and Exclusions of Tests</a></li>
+            <li><a href="../examples/single-test.html" title="Running a Single Test">Running a Single Test</a></li>
+            <li><a href="../examples/rerun-failing-tests.html" title="Re-run Failing Tests">Re-run Failing Tests</a></li>
+            <li><a href="../examples/class-loading.html" title="Class Loading and Forking">Class Loading and Forking</a></li>
+            <li><a href="../examples/debugging.html" title="Debugging Tests">Debugging Tests</a></li>
+            <li><a href="../examples/system-properties.html" title="Using System Properties">Using System Properties</a></li>
+            <li><a href="../examples/configuring-classpath.html" title="Configuring the Classpath">Configuring the Classpath</a></li>
+            <li><a href="../examples/providers.html" title="Selecting Providers">Selecting Providers</a></li>
+            <li><a href="../newerrorsummary.html" title="New Error Summary">New Error Summary</a></li>
+            <li><a href="../multilineexceptions.html" title="Multi-lined Exception Messages">Multi-lined Exception Messages</a></li>
+            <li><a href="../examples/fork-options-and-parallel-execution.html" title="Fork Options and Parallel Test Execution">Fork Options and Parallel Test Execution</a></li>
+            <li><a href="../examples/logging.html" title="Using Console Logs">Using Console Logs</a></li>
+            <li><a href="../examples/shutdown.html" title="Shutdown of Forked JVM">Shutdown of Forked JVM</a></li>
+            <li><a href="../java9.html" title="Run tests with Java 9">Run tests with Java 9</a></li>
+            <li><a href="../docker.html" title="Run tests in Docker">Run tests in Docker</a></li>
+            <li><a href="../examples/toolchains.html" title="Run tests in a different JVM using toolchains">Run tests in a different JVM using toolchains</a></li>
+        </ul>
+      </li>
+      <li class="dropdown">
+        <a href="#" class="dropdown-toggle" data-toggle="dropdown">Project Documentation <b class="caret"></b></a>
+        <ul class="dropdown-menu">
+            <li class="dropdown-submenu">
+<a href="../project-info.html" title="Project Information">Project Information</a>
+              <ul class="dropdown-menu">
+                  <li><a href="../index.html" title="About">About</a></li>
+                  <li><a href="../summary.html" title="Summary">Summary</a></li>
+                  <li><a href="../dependency-info.html" title="Dependency Information">Dependency Information</a></li>
+                  <li><a href="../team.html" title="Team">Team</a></li>
+                  <li><a href="../scm.html" title="Source Code Management">Source Code Management</a></li>
+                  <li><a href="../issue-management.html" title="Issue Management">Issue Management</a></li>
+                  <li><a href="../mailing-lists.html" title="Mailing Lists">Mailing Lists</a></li>
+                  <li><a href="../dependency-management.html" title="Dependency Management">Dependency Management</a></li>
+                  <li><a href="../dependencies.html" title="Dependencies">Dependencies</a></li>
+                  <li><a href="../dependency-convergence.html" title="Dependency Convergence">Dependency Convergence</a></li>
+                  <li><a href="../ci-management.html" title="CI Management">CI Management</a></li>
+                  <li><a href="../plugin-management.html" title="Plugin Management">Plugin Management</a></li>
+                  <li><a href="../plugins.html" title="Plugins">Plugins</a></li>
+                  <li><a href="../distribution-management.html" title="Distribution Management">Distribution Management</a></li>
+              </ul>
+            </li>
+            <li class="dropdown-submenu">
+<a href="../project-reports.html" title="Project Reports">Project Reports</a>
+              <ul class="dropdown-menu">
+                  <li><a href="../surefire-report.html" title="Surefire Report">Surefire Report</a></li>
+                  <li><a href="../plugin-info.html" title="Plugin Documentation">Plugin Documentation</a></li>
+              </ul>
+            </li>
+        </ul>
+      </li>
+      <li class="dropdown">
+        <a href="#" class="dropdown-toggle" data-toggle="dropdown">Maven Projects <b class="caret"></b></a>
+        <ul class="dropdown-menu">
+            <li><a href="../../../archetype/index.html" title="Archetype">Archetype</a></li>
+            <li><a href="../../../resolver/index.html" title="Artifact Resolver">Artifact Resolver</a></li>
+            <li><a href="../../../doxia/index.html" title="Doxia">Doxia</a></li>
+            <li><a href="../../../jxr/index.html" title="JXR">JXR</a></li>
+            <li><a href="../../../ref/current" title="Maven">Maven</a></li>
+            <li><a href="../../../pom/index.html" title="Parent POMs">Parent POMs</a></li>
+            <li><a href="../../../plugins/index.html" title="Plugins">Plugins</a></li>
+            <li><a href="../../../plugin-testing/index.html" title="Plugin Testing">Plugin Testing</a></li>
+            <li><a href="../../../plugin-tools/index.html" title="Plugin Tools">Plugin Tools</a></li>
+            <li><a href="../../../apache-resource-bundles/index.html" title="Resource Bundles">Resource Bundles</a></li>
+            <li><a href="../../../scm/index.html" title="SCM">SCM</a></li>
+            <li><a href="../../../shared/index.html" title="Shared Components">Shared Components</a></li>
+            <li><a href="../../../skins/index.html" title="Skins">Skins</a></li>
+            <li><a href="../../index.html" title="Surefire">Surefire</a></li>
+            <li><a href="../../../wagon/index.html" title="Wagon">Wagon</a></li>
+        </ul>
+      </li>
+      <li class="dropdown">
+        <a href="#" class="dropdown-toggle" data-toggle="dropdown">ASF <b class="caret"></b></a>
+        <ul class="dropdown-menu">
+            <li><a href="https://www.apache.org/foundation/how-it-works.html" title="How Apache Works">How Apache Works</a></li>
+            <li><a href="https://www.apache.org/foundation/" title="Foundation">Foundation</a></li>
+            <li><a href="https://www.apache.org/foundation/sponsorship.html" title="Sponsoring Apache">Sponsoring Apache</a></li>
+            <li><a href="https://www.apache.org/foundation/thanks.html" title="Thanks">Thanks</a></li>
+        </ul>
+      </li>
+            </ul>
+        </div>
+      </div>
+    </header>
+    <div class="container-fluid">
+      <header>
+        <div id="banner">
+          <div class="pull-left"><a href="http://maven.apache.org/" id="bannerLeft"><img src="http://maven.apache.org/images/apache-maven-project.png"  alt="Maven Surefire Plugin"/></a></div>
+          <div class="pull-right"><div id="bannerRight"><img src="http://maven.apache.org/images/maventxt_logo_200.gif"  alt=""/></div>
+</div>
+          <div class="clear"><hr/></div>
+        </div>
+
+        <div id="breadcrumbs">
+          <ul class="breadcrumb">
+      <li class=""><a href="https://www.apache.org/" class="externalLink" title="Apache">Apache</a><span class="divider">/</span></li>
+      <li class=""><a href="../../../index.html" title="Maven">Maven</a><span class="divider">/</span></li>
+      <li class=""><a href="../../index.html" title="Surefire">Surefire</a><span class="divider">/</span></li>
+      <li class=""><a href="../index.html" title="Maven Surefire Plugin">Maven Surefire Plugin</a><span class="divider">/</span></li>
+    <li class="active ">Using JUnit 5 Platform <a href="https://github.com/apache/maven-surefire/tree/HEAD/maven-surefire-plugin/src\site\apt/examples\process-communication.apt.vm"><img src="../images/accessories-text-editor.png" title="Edit" /></a></li>
+        <li id="publishDate" class="pull-right"><span class="divider">|</span> Last Published: 2020-06-13</li>
+          <li id="projectVersion" class="pull-right">Version: 3.0.0-M5</li>
+          </ul>
+        </div>
+      </header>
+      <div class="row-fluid">
+        <header id="leftColumn" class="span2">
+          <nav class="well sidebar-nav">
+  <ul class="nav nav-list">
+   <li class="nav-header">Overview</li>
+    <li><a href="../index.html" title="Introduction"><span class="none"></span>Introduction</a></li>
+    <li><a href="../plugin-info.html" title="Goals"><span class="none"></span>Goals</a></li>
+    <li><a href="../usage.html" title="Usage"><span class="none"></span>Usage</a></li>
+    <li><a href="../featurematrix.html" title="Feature Matrix"><span class="none"></span>Feature Matrix</a></li>
+    <li><a href="../api.html" title="API"><span class="none"></span>API</a></li>
+    <li><a href="../faq.html" title="FAQ"><span class="none"></span>FAQ</a></li>
+    <li><a href="../developing.html" title="Developing"><span class="none"></span>Developing</a></li>
+    <li><a href="../jira-report.html" title="Release Notes"><span class="none"></span>Release Notes</a></li>
+    <li><a href="http://www.apache.org/licenses/" class="externalLink" title="License"><span class="none"></span>License</a></li>
+    <li><a href="../../download.html" title="Download"><span class="none"></span>Download</a></li>
+   <li class="nav-header">Examples</li>
+    <li><a href="../examples/jpms.html" title="Java Modularity (JPMS) in Tests"><span class="none"></span>Java Modularity (JPMS) in Tests</a></li>
+    <li class="active"><a href="#"><span class="none"></span>TCP/IP Communication between Forks</a></li>
+    <li><a href="../examples/testng.html" title="Using TestNG"><span class="none"></span>Using TestNG</a></li>
+    <li><a href="../examples/junit.html" title="Using JUnit"><span class="none"></span>Using JUnit</a></li>
+    <li><a href="../examples/junit-platform.html" title="Using JUnit 5 Platform"><span class="none"></span>Using JUnit 5 Platform</a></li>
+    <li><a href="../examples/pojo-test.html" title="Using POJO Tests"><span class="none"></span>Using POJO Tests</a></li>
+    <li><a href="../examples/spock.html" title="Using Spock"><span class="none"></span>Using Spock</a></li>
+    <li><a href="../examples/cucumber.html" title="Using Cucumber"><span class="none"></span>Using Cucumber</a></li>
+    <li><a href="../examples/cwd.html" title="Special characters in directories"><span class="none"></span>Special characters in directories</a></li>
+    <li><a href="../examples/skipping-tests.html" title="Skipping Tests"><span class="none"></span>Skipping Tests</a></li>
+    <li><a href="../examples/skip-after-failure.html" title="Skip After Failure"><span class="none"></span>Skip After Failure</a></li>
+    <li><a href="../examples/inclusion-exclusion.html" title="Inclusions and Exclusions of Tests"><span class="none"></span>Inclusions and Exclusions of Tests</a></li>
+    <li><a href="../examples/single-test.html" title="Running a Single Test"><span class="none"></span>Running a Single Test</a></li>
+    <li><a href="../examples/rerun-failing-tests.html" title="Re-run Failing Tests"><span class="none"></span>Re-run Failing Tests</a></li>
+    <li><a href="../examples/class-loading.html" title="Class Loading and Forking"><span class="none"></span>Class Loading and Forking</a></li>
+    <li><a href="../examples/debugging.html" title="Debugging Tests"><span class="none"></span>Debugging Tests</a></li>
+    <li><a href="../examples/system-properties.html" title="Using System Properties"><span class="none"></span>Using System Properties</a></li>
+    <li><a href="../examples/configuring-classpath.html" title="Configuring the Classpath"><span class="none"></span>Configuring the Classpath</a></li>
+    <li><a href="../examples/providers.html" title="Selecting Providers"><span class="none"></span>Selecting Providers</a></li>
+    <li><a href="../newerrorsummary.html" title="New Error Summary"><span class="none"></span>New Error Summary</a></li>
+    <li><a href="../multilineexceptions.html" title="Multi-lined Exception Messages"><span class="none"></span>Multi-lined Exception Messages</a></li>
+    <li><a href="../examples/fork-options-and-parallel-execution.html" title="Fork Options and Parallel Test Execution"><span class="none"></span>Fork Options and Parallel Test Execution</a></li>
+    <li><a href="../examples/logging.html" title="Using Console Logs"><span class="none"></span>Using Console Logs</a></li>
+    <li><a href="../examples/shutdown.html" title="Shutdown of Forked JVM"><span class="none"></span>Shutdown of Forked JVM</a></li>
+    <li><a href="../java9.html" title="Run tests with Java 9"><span class="none"></span>Run tests with Java 9</a></li>
+    <li><a href="../docker.html" title="Run tests in Docker"><span class="none"></span>Run tests in Docker</a></li>
+    <li><a href="../examples/toolchains.html" title="Run tests in a different JVM using toolchains"><span class="none"></span>Run tests in a different JVM using toolchains</a></li>
+   <li class="nav-header">Project Documentation</li>
+    <li><a href="../project-info.html" title="Project Information"><span class="icon-chevron-right"></span>Project Information</a></li>
+    <li><a href="../project-reports.html" title="Project Reports"><span class="icon-chevron-right"></span>Project Reports</a></li>
+   <li class="nav-header">Maven Projects</li>
+    <li><a href="../../../archetype/index.html" title="Archetype"><span class="none"></span>Archetype</a></li>
+    <li><a href="../../../resolver/index.html" title="Artifact Resolver"><span class="none"></span>Artifact Resolver</a></li>
+    <li><a href="../../../doxia/index.html" title="Doxia"><span class="none"></span>Doxia</a></li>
+    <li><a href="../../../jxr/index.html" title="JXR"><span class="none"></span>JXR</a></li>
+    <li><a href="../../../ref/current" title="Maven"><span class="none"></span>Maven</a></li>
+    <li><a href="../../../pom/index.html" title="Parent POMs"><span class="none"></span>Parent POMs</a></li>
+    <li><a href="../../../plugins/index.html" title="Plugins"><span class="none"></span>Plugins</a></li>
+    <li><a href="../../../plugin-testing/index.html" title="Plugin Testing"><span class="none"></span>Plugin Testing</a></li>
+    <li><a href="../../../plugin-tools/index.html" title="Plugin Tools"><span class="none"></span>Plugin Tools</a></li>
+    <li><a href="../../../apache-resource-bundles/index.html" title="Resource Bundles"><span class="none"></span>Resource Bundles</a></li>
+    <li><a href="../../../scm/index.html" title="SCM"><span class="none"></span>SCM</a></li>
+    <li><a href="../../../shared/index.html" title="Shared Components"><span class="none"></span>Shared Components</a></li>
+    <li><a href="../../../skins/index.html" title="Skins"><span class="none"></span>Skins</a></li>
+    <li><a href="../../index.html" title="Surefire"><span class="none"></span>Surefire</a></li>
+    <li><a href="../../../wagon/index.html" title="Wagon"><span class="none"></span>Wagon</a></li>
+   <li class="nav-header">ASF</li>
+    <li><a href="https://www.apache.org/foundation/how-it-works.html" class="externalLink" title="How Apache Works"><span class="none"></span>How Apache Works</a></li>
+    <li><a href="https://www.apache.org/foundation/" class="externalLink" title="Foundation"><span class="none"></span>Foundation</a></li>
+    <li><a href="https://www.apache.org/foundation/sponsorship.html" class="externalLink" title="Sponsoring Apache"><span class="none"></span>Sponsoring Apache</a></li>
+    <li><a href="https://www.apache.org/foundation/thanks.html" class="externalLink" title="Thanks"><span class="none"></span>Thanks</a></li>
+  </ul>
+          </nav>
+          <div class="well sidebar-nav">
+<form id="search-form" action="https://www.google.com/search" method="get" >
+  <input value="https://maven.apache.org/surefire/maven-surefire-plugin/" name="sitesearch" type="hidden"/>
+  <input class="search-query" name="q" id="query" type="text" />
+</form>
+<script>asyncJs( 'https://cse.google.com/brand?form=search-form' )</script>
+            <hr />
+            <div id="poweredBy">
+              <div class="clear"></div>
+    <div id="twitter" style="border:none; margin-top: 10px">
+    <a href="https://twitter.com/ASFMavenProject" class="twitter-follow-button" data-show-count="false" data-align="left" data-size="medium" data-show-screen-name="true" data-lang="en">Follow ASFMavenProject</a>
+    <script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src="//platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");</script>
+    </div>
+              <div class="clear"></div>
+              <div class="clear"></div>
+<a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy"><img class="builtBy" alt="Built by Maven" src="../images/logos/maven-feather.png" /></a>
+            </div>
+          </div>
+        </header>
+        <main id="bodyColumn"  class="span10" >
+<section>
+<h2><a name="Communication_Channels_used_between_the_Maven_Process_and_Surefire_Process"></a>Communication Channels used between the Maven Process and Surefire Process</h2>
+<p>There is one way to change the communication channel and two types of connection in the Surefire. The communication channel can be changed even by the user in the user's POM. The physical layer of the channel can be switched from Process Pipes to TCP/IP. The user select the default implementations in the POM or the user can implement his own channel without asking the Apache Maven development team for providing a new support. Let's show you how this can be accomplished.</p><section>
+<h3><a name="forkNode"></a>forkNode</h3>
+<p>The configuration is done by using only one configuration parameter <code>forkNode</code>.</p></section><section>
+<h3><a name="The_TCP.2FIP_communication_channel"></a>The TCP/IP communication channel</h3>
+<p>The Surefire plugin uses process pipes by default. The implementation class for default configuration is <code>org.apache.maven.plugin.surefire.extensions.LegacyForkNodeFactory</code> and it does not have to be specified. The TCP/IP channel can be selected as follows and the implementation class has to be specified:</p>
+<div class="source"><pre class="prettyprint linenums">&lt;project&gt;
+    [...]
+    &lt;build&gt;
+        &lt;plugins&gt;
+            [...]
+            &lt;plugin&gt;
+                &lt;groupId&gt;org.apache.maven.plugins&lt;/groupId&gt;
+                &lt;artifactId&gt;maven-surefire-plugin&lt;/artifactId&gt;
+                &lt;version&gt;3.0.0-M5&lt;/version&gt;
+                &lt;configuration&gt;
+                    &lt;forkNode implementation=&quot;org.apache.maven.plugin.surefire.extensions.SurefireForkNodeFactory&quot;/&gt;
+                &lt;/configuration&gt;
+            &lt;/plugin&gt;
+            [...]
+        &lt;/plugins&gt;
+    &lt;/build&gt;
+    [...]
+&lt;/project&gt;
+</pre></div></section><section>
+<h3><a name="Custom_implementation"></a>Custom implementation</h3>
+<p>The custom implementation involves two implementations. The first is used by the Maven process and there you should implement the interface <code>org.apache.maven.surefire.extensions.ForkNodeFactory</code>, use the implementation in a dependency <code>your-extension-api-impl-artifactid</code> declared below the plugin and configuration should specify fully qualified class name of your custom <code>ForkNodeFactory</code> in the attribute <code>implementation</code>.</p>
+<p>The second implementation is SPI which is utilized by the forked JVM. Implement the Java SPI interface <code>org.apache.maven.surefire.spi.MasterProcessChannelProcessorFactory</code> in the artifact <code>your-extension-spi-impl-artifactid</code>.</p>
+<div class="source"><pre class="prettyprint linenums">&lt;project&gt;
+    [...]
+    &lt;dependencies&gt;
+        &lt;dependency&gt;
+            &lt;groupId&gt;your-extension-spi-impl-groupid&lt;/groupId&gt;
+            &lt;artifactId&gt;your-extension-spi-impl-artifactid&lt;/artifactId&gt;
+            &lt;version&gt;your-extension-spi-impl-version&lt;/version&gt;
+        &lt;/dependency&gt;
+    &lt;/dependencies&gt;
+    [...]
+    &lt;build&gt;
+        &lt;plugins&gt;
+            [...]
+            &lt;plugin&gt;
+                &lt;groupId&gt;org.apache.maven.plugins&lt;/groupId&gt;
+                &lt;artifactId&gt;maven-surefire-plugin&lt;/artifactId&gt;
+                &lt;version&gt;3.0.0-M5&lt;/version&gt;
+                &lt;dependencies&gt;
+                    &lt;dependency&gt;
+                        &lt;groupId&gt;your-extension-api-impl-groupid&lt;/groupId&gt;
+                        &lt;artifactId&gt;your-extension-api-impl-artifactid&lt;/artifactId&gt;
+                        &lt;version&gt;your-extension-api-impl-version&lt;/version&gt;
+                    &lt;/dependency&gt;
+                &lt;/dependencies&gt;
+                &lt;configuration&gt;
+                    &lt;forkNode implementation=&quot;your.extention.api.impl.CustomForkNodeFactory&quot;/&gt;
+                &lt;/configuration&gt;
+            &lt;/plugin&gt;
+            [...]
+        &lt;/plugins&gt;
+    &lt;/build&gt;
+    [...]
+&lt;/project&gt;
+</pre></div>
+<p>The project <code>your-extension-api-impl-artifactid</code> should have the following dependency as mandatory:</p>
+<div class="source"><pre class="prettyprint linenums">&lt;project&gt;
+    [...]
+    &lt;dependencies&gt;
+        &lt;dependency&gt;
+            &lt;groupId&gt;org.apache.maven.plugins&lt;/groupId&gt;
+            &lt;artifactId&gt;surefire-extensions-api&lt;/artifactId&gt;
+            &lt;version&gt;3.0.0-M5&lt;/version&gt;
+            &lt;scope&gt;provided&lt;/scope&gt;
+        &lt;/dependency&gt;
+    &lt;/dependencies&gt;
+    [...]
+&lt;/project&gt;
+</pre></div>
+<p>The project <code>your-extension-spi-impl-artifactid</code> should have the following dependency as mandatory:</p>
+<div class="source"><pre class="prettyprint linenums">&lt;project&gt;
+    [...]
+    &lt;dependencies&gt;
+        &lt;dependency&gt;
+            &lt;groupId&gt;org.apache.maven.plugins&lt;/groupId&gt;
+            &lt;artifactId&gt;surefire-extensions-spi&lt;/artifactId&gt;
+            &lt;version&gt;3.0.0-M5&lt;/version&gt;
+            &lt;scope&gt;provided&lt;/scope&gt;
+        &lt;/dependency&gt;
+    &lt;/dependencies&gt;
+    [...]
+&lt;/project&gt;
+</pre></div>
+<p>Your SPI implementation appears in <code>src/main/resources/META-INF/services/org.apache.maven.surefire.spi.MasterProcessChannelProcessorFactory</code> and contains one implementation class. Your POM already specified it, see <code>your.extention.api.impl.CustomForkNodeFactory</code>.</p></section></section>
+        </main>
+      </div>
+    </div>
+    <hr/>
+    <footer>
+      <div class="container-fluid">
+        <div class="row-fluid">
+<p>Apache Maven Surefire Plugin, Maven Surefire Plugin, Apache, the Apache feather logo, and the Apache Maven Surefire Plugin project logos are trademarks of The Apache Software Foundation. <a href="https://maven.apache.org/surefire/maven-surefire-plugin/privacy-policy.html">Privacy Policy</a></p>
+        </div>
+      </div>
+    </footer>
+  </body>
+</html>