This is an automated email from the ASF dual-hosted git repository.

asf-gitbox-commits pushed a commit to branch asf-site
in repository https://gitbox.apache.org/repos/asf/plc4x-website.git


The following commit(s) were added to refs/heads/asf-site by this push:
     new 38f2a4448 Site checkin for project PLC4X: Jenkins Tools
38f2a4448 is described below

commit 38f2a4448e977d57d98694e755992b2430aa9d94
Author: jenkins <[email protected]>
AuthorDate: Tue Jun 23 22:10:54 2026 +0000

    Site checkin for project PLC4X: Jenkins Tools
---
 plc4x/pre-release/developers/architecture.html     |   3 +
 plc4x/pre-release/developers/building.html         |   3 +
 plc4x/pre-release/developers/code-gen/index.html   |   3 +
 .../developers/code-gen/language/freemarker.html   |   3 +
 .../developers/code-gen/protocol/df1.html          |   3 +
 .../developers/code-gen/protocol/mspec.html        |   3 +
 plc4x/pre-release/developers/conferences.html      |   3 +
 plc4x/pre-release/developers/contributing.html     |   3 +
 plc4x/pre-release/developers/decisions.html        |   3 +
 plc4x/pre-release/developers/index.html            |   3 +
 .../pre-release/developers/infrastructure/ci.html  |   3 +
 .../developers/infrastructure/index.html           |   3 +
 .../developers/infrastructure/issues.html          |   3 +
 .../developers/infrastructure/sonar.html           |   3 +
 .../pre-release/developers/infrastructure/vm.html  |   3 +
 .../developers/infrastructure/website.html         |   3 +
 .../developers/infrastructure/wiki.html            |   3 +
 plc4x/pre-release/developers/jqassistant.html      |   3 +
 plc4x/pre-release/developers/maturity.html         |   3 +
 plc4x/pre-release/developers/preparing/index.html  |   3 +
 plc4x/pre-release/developers/preparing/linux.html  |   3 +
 plc4x/pre-release/developers/preparing/macos.html  |   3 +
 .../pre-release/developers/preparing/windows.html  |   3 +
 .../developers/protocols/ads/protocol.html         |   3 +
 .../developers/protocols/eip/protocol.html         |   3 +
 plc4x/pre-release/developers/protocols/index.html  |   3 +
 .../developers/release/build-tools.html            |   3 +
 plc4x/pre-release/developers/release/extras.html   |   3 +
 plc4x/pre-release/developers/release/index.html    |   3 +
 plc4x/pre-release/developers/release/release.html  |   3 +
 .../pre-release/developers/release/validation.html |   3 +
 plc4x/pre-release/developers/team.html             |   3 +
 plc4x/pre-release/developers/testing/index.html    |   3 +
 plc4x/pre-release/developers/tools.html            |   3 +
 plc4x/pre-release/developers/tutorials/index.html  |   3 +
 .../tutorials/testing-serializers-and-parsers.html |   3 +
 .../developers/tutorials/writing-driver.html       |   3 +
 plc4x/pre-release/index.html                       |   3 +
 plc4x/pre-release/users/adopters.html              |   3 +
 .../pre-release/users/blogs-videos-and-slides.html |   3 +
 plc4x/pre-release/users/commercial-support.html    |   3 +
 plc4x/pre-release/users/download.html              |   3 +
 .../users/getting-started/general-concepts.html    |   3 +
 plc4x/pre-release/users/getting-started/index.html |   3 +
 .../getting-started/opcua-client-certificate.html  |   3 +
 plc4x/pre-release/users/getting-started/plc4c.html |   3 +
 .../pre-release/users/getting-started/plc4cs.html  |   3 +
 .../pre-release/users/getting-started/plc4go.html  |   3 +
 plc4x/pre-release/users/getting-started/plc4j.html |   3 +
 .../pre-release/users/getting-started/plc4py.html  |   3 +
 .../users/getting-started/using-snapshots.html     |   3 +
 .../users/getting-started/virtual-modbus.html      |   3 +
 plc4x/pre-release/users/index.html                 |   6 +
 plc4x/pre-release/users/industry40.html            |   3 +
 .../users/integrations/apache-calcite.html         |   3 +
 .../users/integrations/apache-camel.html           |   3 +
 .../users/integrations/apache-edgent.html          |   3 +
 .../users/integrations/apache-iotdb.html           |   3 +
 .../users/integrations/apache-kafka.html           |   3 +
 .../users/integrations/apache-nifi.html            |   3 +
 .../users/integrations/apache-streampipes.html     |   3 +
 .../users/integrations/eclipse-ditto.html          |   3 +
 .../users/integrations/eclipse-milo.html           |   3 +
 plc4x/pre-release/users/integrations/index.html    |   3 +
 plc4x/pre-release/users/issues.html                |   3 +
 plc4x/pre-release/users/preparing-issues.html      |   3 +
 plc4x/pre-release/users/protocols/ab-eth.html      |   3 +
 plc4x/pre-release/users/protocols/ads.html         |   3 +
 plc4x/pre-release/users/protocols/bacnet.html      |   3 +
 plc4x/pre-release/users/protocols/c-bus.html       |   3 +
 plc4x/pre-release/users/protocols/can.html         |   3 +
 plc4x/pre-release/users/protocols/canopen.html     |   3 +
 plc4x/pre-release/users/protocols/ctrlx.html       |   3 +
 plc4x/pre-release/users/protocols/deltav.html      |   3 +
 plc4x/pre-release/users/protocols/df1.html         |   3 +
 plc4x/pre-release/users/protocols/eip.html         |   3 +
 plc4x/pre-release/users/protocols/firmata.html     |   3 +
 plc4x/pre-release/users/protocols/genericcan.html  |   3 +
 plc4x/pre-release/users/protocols/iec-60870.html   |   3 +
 plc4x/pre-release/users/protocols/index.html       |   3 +
 plc4x/pre-release/users/protocols/knxnetip.html    |   3 +
 plc4x/pre-release/users/protocols/logix.html       |   3 +
 plc4x/pre-release/users/protocols/modbus.html      |   3 +
 plc4x/pre-release/users/protocols/opcua.html       |   3 +
 .../pre-release/users/protocols/open-protocol.html |   3 +
 plc4x/pre-release/users/protocols/plc4x.html       |   3 +
 plc4x/pre-release/users/protocols/profinet.html    |   3 +
 plc4x/pre-release/users/protocols/s7-light.html    |   3 +
 plc4x/pre-release/users/protocols/s7.html          |   3 +
 plc4x/pre-release/users/protocols/simulated.html   |   3 +
 plc4x/pre-release/users/protocols/umas.html        |   3 +
 plc4x/pre-release/users/security.html              |   3 +
 plc4x/pre-release/users/tools/capture-replay.html  |   3 +
 .../pre-release/users/tools/connection-cache.html  |   3 +
 plc4x/pre-release/users/tools/connection-pool.html |   3 +
 plc4x/pre-release/users/tools/index.html           |   3 +
 plc4x/pre-release/users/tools/opm.html             |   3 +
 .../{connection-cache.html => plc4x-server.html}   | 340 ++++++++++++++-------
 plc4x/pre-release/users/tools/scraper.html         |   3 +
 plc4x/pre-release/users/tools/testing.html         |   3 +
 plc4x/pre-release/users/transports/can.html        |   3 +
 plc4x/pre-release/users/transports/index.html      |   3 +
 .../pre-release/users/transports/pcap-replay.html  |   3 +
 plc4x/pre-release/users/transports/raw-socket.html |   3 +
 plc4x/pre-release/users/transports/serial.html     |   3 +
 plc4x/pre-release/users/transports/socketcan.html  |   3 +
 plc4x/pre-release/users/transports/tcp.html        |   3 +
 plc4x/pre-release/users/transports/udp.html        |   3 +
 search-index.js                                    |   2 +-
 109 files changed, 558 insertions(+), 108 deletions(-)

diff --git a/plc4x/pre-release/developers/architecture.html 
b/plc4x/pre-release/developers/architecture.html
index dd9db7ef5..3f6ad10c1 100644
--- a/plc4x/pre-release/developers/architecture.html
+++ b/plc4x/pre-release/developers/architecture.html
@@ -282,6 +282,9 @@
   <li class="nav-item" data-depth="3">
     <a class="nav-link" href="../users/tools/opm.html">Object PLC Mapping</a>
   </li>
+  <li class="nav-item" data-depth="3">
+    <a class="nav-link" href="../users/tools/plc4x-server.html">PLC4X 
Server</a>
+  </li>
   <li class="nav-item" data-depth="3">
     <a class="nav-link" href="../users/tools/scraper.html">Scraper</a>
   </li>
diff --git a/plc4x/pre-release/developers/building.html 
b/plc4x/pre-release/developers/building.html
index 73a1ad84b..29726c9cd 100644
--- a/plc4x/pre-release/developers/building.html
+++ b/plc4x/pre-release/developers/building.html
@@ -282,6 +282,9 @@
   <li class="nav-item" data-depth="3">
     <a class="nav-link" href="../users/tools/opm.html">Object PLC Mapping</a>
   </li>
+  <li class="nav-item" data-depth="3">
+    <a class="nav-link" href="../users/tools/plc4x-server.html">PLC4X 
Server</a>
+  </li>
   <li class="nav-item" data-depth="3">
     <a class="nav-link" href="../users/tools/scraper.html">Scraper</a>
   </li>
diff --git a/plc4x/pre-release/developers/code-gen/index.html 
b/plc4x/pre-release/developers/code-gen/index.html
index 37277645a..c9af6c431 100644
--- a/plc4x/pre-release/developers/code-gen/index.html
+++ b/plc4x/pre-release/developers/code-gen/index.html
@@ -282,6 +282,9 @@
   <li class="nav-item" data-depth="3">
     <a class="nav-link" href="../../users/tools/opm.html">Object PLC 
Mapping</a>
   </li>
+  <li class="nav-item" data-depth="3">
+    <a class="nav-link" href="../../users/tools/plc4x-server.html">PLC4X 
Server</a>
+  </li>
   <li class="nav-item" data-depth="3">
     <a class="nav-link" href="../../users/tools/scraper.html">Scraper</a>
   </li>
diff --git a/plc4x/pre-release/developers/code-gen/language/freemarker.html 
b/plc4x/pre-release/developers/code-gen/language/freemarker.html
index ee5b47a77..1f3975d1c 100644
--- a/plc4x/pre-release/developers/code-gen/language/freemarker.html
+++ b/plc4x/pre-release/developers/code-gen/language/freemarker.html
@@ -282,6 +282,9 @@
   <li class="nav-item" data-depth="3">
     <a class="nav-link" href="../../../users/tools/opm.html">Object PLC 
Mapping</a>
   </li>
+  <li class="nav-item" data-depth="3">
+    <a class="nav-link" href="../../../users/tools/plc4x-server.html">PLC4X 
Server</a>
+  </li>
   <li class="nav-item" data-depth="3">
     <a class="nav-link" href="../../../users/tools/scraper.html">Scraper</a>
   </li>
diff --git a/plc4x/pre-release/developers/code-gen/protocol/df1.html 
b/plc4x/pre-release/developers/code-gen/protocol/df1.html
index cf39a4f0f..aa2f9b17c 100644
--- a/plc4x/pre-release/developers/code-gen/protocol/df1.html
+++ b/plc4x/pre-release/developers/code-gen/protocol/df1.html
@@ -282,6 +282,9 @@
   <li class="nav-item" data-depth="3">
     <a class="nav-link" href="../../../users/tools/opm.html">Object PLC 
Mapping</a>
   </li>
+  <li class="nav-item" data-depth="3">
+    <a class="nav-link" href="../../../users/tools/plc4x-server.html">PLC4X 
Server</a>
+  </li>
   <li class="nav-item" data-depth="3">
     <a class="nav-link" href="../../../users/tools/scraper.html">Scraper</a>
   </li>
diff --git a/plc4x/pre-release/developers/code-gen/protocol/mspec.html 
b/plc4x/pre-release/developers/code-gen/protocol/mspec.html
index 64cd5ff07..0d5eaab54 100644
--- a/plc4x/pre-release/developers/code-gen/protocol/mspec.html
+++ b/plc4x/pre-release/developers/code-gen/protocol/mspec.html
@@ -282,6 +282,9 @@
   <li class="nav-item" data-depth="3">
     <a class="nav-link" href="../../../users/tools/opm.html">Object PLC 
Mapping</a>
   </li>
+  <li class="nav-item" data-depth="3">
+    <a class="nav-link" href="../../../users/tools/plc4x-server.html">PLC4X 
Server</a>
+  </li>
   <li class="nav-item" data-depth="3">
     <a class="nav-link" href="../../../users/tools/scraper.html">Scraper</a>
   </li>
diff --git a/plc4x/pre-release/developers/conferences.html 
b/plc4x/pre-release/developers/conferences.html
index 029244e7a..748eb5299 100644
--- a/plc4x/pre-release/developers/conferences.html
+++ b/plc4x/pre-release/developers/conferences.html
@@ -282,6 +282,9 @@
   <li class="nav-item" data-depth="3">
     <a class="nav-link" href="../users/tools/opm.html">Object PLC Mapping</a>
   </li>
+  <li class="nav-item" data-depth="3">
+    <a class="nav-link" href="../users/tools/plc4x-server.html">PLC4X 
Server</a>
+  </li>
   <li class="nav-item" data-depth="3">
     <a class="nav-link" href="../users/tools/scraper.html">Scraper</a>
   </li>
diff --git a/plc4x/pre-release/developers/contributing.html 
b/plc4x/pre-release/developers/contributing.html
index ca970f748..70200f088 100644
--- a/plc4x/pre-release/developers/contributing.html
+++ b/plc4x/pre-release/developers/contributing.html
@@ -282,6 +282,9 @@
   <li class="nav-item" data-depth="3">
     <a class="nav-link" href="../users/tools/opm.html">Object PLC Mapping</a>
   </li>
+  <li class="nav-item" data-depth="3">
+    <a class="nav-link" href="../users/tools/plc4x-server.html">PLC4X 
Server</a>
+  </li>
   <li class="nav-item" data-depth="3">
     <a class="nav-link" href="../users/tools/scraper.html">Scraper</a>
   </li>
diff --git a/plc4x/pre-release/developers/decisions.html 
b/plc4x/pre-release/developers/decisions.html
index 96b0efd2b..d02b9e429 100644
--- a/plc4x/pre-release/developers/decisions.html
+++ b/plc4x/pre-release/developers/decisions.html
@@ -282,6 +282,9 @@
   <li class="nav-item" data-depth="3">
     <a class="nav-link" href="../users/tools/opm.html">Object PLC Mapping</a>
   </li>
+  <li class="nav-item" data-depth="3">
+    <a class="nav-link" href="../users/tools/plc4x-server.html">PLC4X 
Server</a>
+  </li>
   <li class="nav-item" data-depth="3">
     <a class="nav-link" href="../users/tools/scraper.html">Scraper</a>
   </li>
diff --git a/plc4x/pre-release/developers/index.html 
b/plc4x/pre-release/developers/index.html
index 9609e3986..d5db64a49 100644
--- a/plc4x/pre-release/developers/index.html
+++ b/plc4x/pre-release/developers/index.html
@@ -282,6 +282,9 @@
   <li class="nav-item" data-depth="3">
     <a class="nav-link" href="../users/tools/opm.html">Object PLC Mapping</a>
   </li>
+  <li class="nav-item" data-depth="3">
+    <a class="nav-link" href="../users/tools/plc4x-server.html">PLC4X 
Server</a>
+  </li>
   <li class="nav-item" data-depth="3">
     <a class="nav-link" href="../users/tools/scraper.html">Scraper</a>
   </li>
diff --git a/plc4x/pre-release/developers/infrastructure/ci.html 
b/plc4x/pre-release/developers/infrastructure/ci.html
index 78201d959..f8d80ff7b 100644
--- a/plc4x/pre-release/developers/infrastructure/ci.html
+++ b/plc4x/pre-release/developers/infrastructure/ci.html
@@ -282,6 +282,9 @@
   <li class="nav-item" data-depth="3">
     <a class="nav-link" href="../../users/tools/opm.html">Object PLC 
Mapping</a>
   </li>
+  <li class="nav-item" data-depth="3">
+    <a class="nav-link" href="../../users/tools/plc4x-server.html">PLC4X 
Server</a>
+  </li>
   <li class="nav-item" data-depth="3">
     <a class="nav-link" href="../../users/tools/scraper.html">Scraper</a>
   </li>
diff --git a/plc4x/pre-release/developers/infrastructure/index.html 
b/plc4x/pre-release/developers/infrastructure/index.html
index acaa74f36..b10ec0940 100644
--- a/plc4x/pre-release/developers/infrastructure/index.html
+++ b/plc4x/pre-release/developers/infrastructure/index.html
@@ -282,6 +282,9 @@
   <li class="nav-item" data-depth="3">
     <a class="nav-link" href="../../users/tools/opm.html">Object PLC 
Mapping</a>
   </li>
+  <li class="nav-item" data-depth="3">
+    <a class="nav-link" href="../../users/tools/plc4x-server.html">PLC4X 
Server</a>
+  </li>
   <li class="nav-item" data-depth="3">
     <a class="nav-link" href="../../users/tools/scraper.html">Scraper</a>
   </li>
diff --git a/plc4x/pre-release/developers/infrastructure/issues.html 
b/plc4x/pre-release/developers/infrastructure/issues.html
index a15dbcbe0..6d45876ea 100644
--- a/plc4x/pre-release/developers/infrastructure/issues.html
+++ b/plc4x/pre-release/developers/infrastructure/issues.html
@@ -282,6 +282,9 @@
   <li class="nav-item" data-depth="3">
     <a class="nav-link" href="../../users/tools/opm.html">Object PLC 
Mapping</a>
   </li>
+  <li class="nav-item" data-depth="3">
+    <a class="nav-link" href="../../users/tools/plc4x-server.html">PLC4X 
Server</a>
+  </li>
   <li class="nav-item" data-depth="3">
     <a class="nav-link" href="../../users/tools/scraper.html">Scraper</a>
   </li>
diff --git a/plc4x/pre-release/developers/infrastructure/sonar.html 
b/plc4x/pre-release/developers/infrastructure/sonar.html
index 16e9ac9ed..33c8616ae 100644
--- a/plc4x/pre-release/developers/infrastructure/sonar.html
+++ b/plc4x/pre-release/developers/infrastructure/sonar.html
@@ -282,6 +282,9 @@
   <li class="nav-item" data-depth="3">
     <a class="nav-link" href="../../users/tools/opm.html">Object PLC 
Mapping</a>
   </li>
+  <li class="nav-item" data-depth="3">
+    <a class="nav-link" href="../../users/tools/plc4x-server.html">PLC4X 
Server</a>
+  </li>
   <li class="nav-item" data-depth="3">
     <a class="nav-link" href="../../users/tools/scraper.html">Scraper</a>
   </li>
diff --git a/plc4x/pre-release/developers/infrastructure/vm.html 
b/plc4x/pre-release/developers/infrastructure/vm.html
index 61c13d6cb..9495b4f67 100644
--- a/plc4x/pre-release/developers/infrastructure/vm.html
+++ b/plc4x/pre-release/developers/infrastructure/vm.html
@@ -282,6 +282,9 @@
   <li class="nav-item" data-depth="3">
     <a class="nav-link" href="../../users/tools/opm.html">Object PLC 
Mapping</a>
   </li>
+  <li class="nav-item" data-depth="3">
+    <a class="nav-link" href="../../users/tools/plc4x-server.html">PLC4X 
Server</a>
+  </li>
   <li class="nav-item" data-depth="3">
     <a class="nav-link" href="../../users/tools/scraper.html">Scraper</a>
   </li>
diff --git a/plc4x/pre-release/developers/infrastructure/website.html 
b/plc4x/pre-release/developers/infrastructure/website.html
index 33e85b124..778d06670 100644
--- a/plc4x/pre-release/developers/infrastructure/website.html
+++ b/plc4x/pre-release/developers/infrastructure/website.html
@@ -282,6 +282,9 @@
   <li class="nav-item" data-depth="3">
     <a class="nav-link" href="../../users/tools/opm.html">Object PLC 
Mapping</a>
   </li>
+  <li class="nav-item" data-depth="3">
+    <a class="nav-link" href="../../users/tools/plc4x-server.html">PLC4X 
Server</a>
+  </li>
   <li class="nav-item" data-depth="3">
     <a class="nav-link" href="../../users/tools/scraper.html">Scraper</a>
   </li>
diff --git a/plc4x/pre-release/developers/infrastructure/wiki.html 
b/plc4x/pre-release/developers/infrastructure/wiki.html
index 00fd4ac1d..2ec344ad6 100644
--- a/plc4x/pre-release/developers/infrastructure/wiki.html
+++ b/plc4x/pre-release/developers/infrastructure/wiki.html
@@ -282,6 +282,9 @@
   <li class="nav-item" data-depth="3">
     <a class="nav-link" href="../../users/tools/opm.html">Object PLC 
Mapping</a>
   </li>
+  <li class="nav-item" data-depth="3">
+    <a class="nav-link" href="../../users/tools/plc4x-server.html">PLC4X 
Server</a>
+  </li>
   <li class="nav-item" data-depth="3">
     <a class="nav-link" href="../../users/tools/scraper.html">Scraper</a>
   </li>
diff --git a/plc4x/pre-release/developers/jqassistant.html 
b/plc4x/pre-release/developers/jqassistant.html
index e1d1bab83..099c4b42f 100644
--- a/plc4x/pre-release/developers/jqassistant.html
+++ b/plc4x/pre-release/developers/jqassistant.html
@@ -282,6 +282,9 @@
   <li class="nav-item" data-depth="3">
     <a class="nav-link" href="../users/tools/opm.html">Object PLC Mapping</a>
   </li>
+  <li class="nav-item" data-depth="3">
+    <a class="nav-link" href="../users/tools/plc4x-server.html">PLC4X 
Server</a>
+  </li>
   <li class="nav-item" data-depth="3">
     <a class="nav-link" href="../users/tools/scraper.html">Scraper</a>
   </li>
diff --git a/plc4x/pre-release/developers/maturity.html 
b/plc4x/pre-release/developers/maturity.html
index 470a56515..f1c40d556 100644
--- a/plc4x/pre-release/developers/maturity.html
+++ b/plc4x/pre-release/developers/maturity.html
@@ -282,6 +282,9 @@
   <li class="nav-item" data-depth="3">
     <a class="nav-link" href="../users/tools/opm.html">Object PLC Mapping</a>
   </li>
+  <li class="nav-item" data-depth="3">
+    <a class="nav-link" href="../users/tools/plc4x-server.html">PLC4X 
Server</a>
+  </li>
   <li class="nav-item" data-depth="3">
     <a class="nav-link" href="../users/tools/scraper.html">Scraper</a>
   </li>
diff --git a/plc4x/pre-release/developers/preparing/index.html 
b/plc4x/pre-release/developers/preparing/index.html
index ec5e431f0..16ecee951 100644
--- a/plc4x/pre-release/developers/preparing/index.html
+++ b/plc4x/pre-release/developers/preparing/index.html
@@ -282,6 +282,9 @@
   <li class="nav-item" data-depth="3">
     <a class="nav-link" href="../../users/tools/opm.html">Object PLC 
Mapping</a>
   </li>
+  <li class="nav-item" data-depth="3">
+    <a class="nav-link" href="../../users/tools/plc4x-server.html">PLC4X 
Server</a>
+  </li>
   <li class="nav-item" data-depth="3">
     <a class="nav-link" href="../../users/tools/scraper.html">Scraper</a>
   </li>
diff --git a/plc4x/pre-release/developers/preparing/linux.html 
b/plc4x/pre-release/developers/preparing/linux.html
index b309f9afc..2f0fc5e9c 100644
--- a/plc4x/pre-release/developers/preparing/linux.html
+++ b/plc4x/pre-release/developers/preparing/linux.html
@@ -282,6 +282,9 @@
   <li class="nav-item" data-depth="3">
     <a class="nav-link" href="../../users/tools/opm.html">Object PLC 
Mapping</a>
   </li>
+  <li class="nav-item" data-depth="3">
+    <a class="nav-link" href="../../users/tools/plc4x-server.html">PLC4X 
Server</a>
+  </li>
   <li class="nav-item" data-depth="3">
     <a class="nav-link" href="../../users/tools/scraper.html">Scraper</a>
   </li>
diff --git a/plc4x/pre-release/developers/preparing/macos.html 
b/plc4x/pre-release/developers/preparing/macos.html
index 756fb40c0..e655aef9c 100644
--- a/plc4x/pre-release/developers/preparing/macos.html
+++ b/plc4x/pre-release/developers/preparing/macos.html
@@ -282,6 +282,9 @@
   <li class="nav-item" data-depth="3">
     <a class="nav-link" href="../../users/tools/opm.html">Object PLC 
Mapping</a>
   </li>
+  <li class="nav-item" data-depth="3">
+    <a class="nav-link" href="../../users/tools/plc4x-server.html">PLC4X 
Server</a>
+  </li>
   <li class="nav-item" data-depth="3">
     <a class="nav-link" href="../../users/tools/scraper.html">Scraper</a>
   </li>
diff --git a/plc4x/pre-release/developers/preparing/windows.html 
b/plc4x/pre-release/developers/preparing/windows.html
index ace28a1f6..13cb369fb 100644
--- a/plc4x/pre-release/developers/preparing/windows.html
+++ b/plc4x/pre-release/developers/preparing/windows.html
@@ -282,6 +282,9 @@
   <li class="nav-item" data-depth="3">
     <a class="nav-link" href="../../users/tools/opm.html">Object PLC 
Mapping</a>
   </li>
+  <li class="nav-item" data-depth="3">
+    <a class="nav-link" href="../../users/tools/plc4x-server.html">PLC4X 
Server</a>
+  </li>
   <li class="nav-item" data-depth="3">
     <a class="nav-link" href="../../users/tools/scraper.html">Scraper</a>
   </li>
diff --git a/plc4x/pre-release/developers/protocols/ads/protocol.html 
b/plc4x/pre-release/developers/protocols/ads/protocol.html
index 45296d476..5d3e45405 100644
--- a/plc4x/pre-release/developers/protocols/ads/protocol.html
+++ b/plc4x/pre-release/developers/protocols/ads/protocol.html
@@ -282,6 +282,9 @@
   <li class="nav-item" data-depth="3">
     <a class="nav-link" href="../../../users/tools/opm.html">Object PLC 
Mapping</a>
   </li>
+  <li class="nav-item" data-depth="3">
+    <a class="nav-link" href="../../../users/tools/plc4x-server.html">PLC4X 
Server</a>
+  </li>
   <li class="nav-item" data-depth="3">
     <a class="nav-link" href="../../../users/tools/scraper.html">Scraper</a>
   </li>
diff --git a/plc4x/pre-release/developers/protocols/eip/protocol.html 
b/plc4x/pre-release/developers/protocols/eip/protocol.html
index 1048a6c35..360033363 100644
--- a/plc4x/pre-release/developers/protocols/eip/protocol.html
+++ b/plc4x/pre-release/developers/protocols/eip/protocol.html
@@ -282,6 +282,9 @@
   <li class="nav-item" data-depth="3">
     <a class="nav-link" href="../../../users/tools/opm.html">Object PLC 
Mapping</a>
   </li>
+  <li class="nav-item" data-depth="3">
+    <a class="nav-link" href="../../../users/tools/plc4x-server.html">PLC4X 
Server</a>
+  </li>
   <li class="nav-item" data-depth="3">
     <a class="nav-link" href="../../../users/tools/scraper.html">Scraper</a>
   </li>
diff --git a/plc4x/pre-release/developers/protocols/index.html 
b/plc4x/pre-release/developers/protocols/index.html
index 3bbd2230a..16397bb61 100644
--- a/plc4x/pre-release/developers/protocols/index.html
+++ b/plc4x/pre-release/developers/protocols/index.html
@@ -282,6 +282,9 @@
   <li class="nav-item" data-depth="3">
     <a class="nav-link" href="../../users/tools/opm.html">Object PLC 
Mapping</a>
   </li>
+  <li class="nav-item" data-depth="3">
+    <a class="nav-link" href="../../users/tools/plc4x-server.html">PLC4X 
Server</a>
+  </li>
   <li class="nav-item" data-depth="3">
     <a class="nav-link" href="../../users/tools/scraper.html">Scraper</a>
   </li>
diff --git a/plc4x/pre-release/developers/release/build-tools.html 
b/plc4x/pre-release/developers/release/build-tools.html
index 925b03b9b..ccaee2113 100644
--- a/plc4x/pre-release/developers/release/build-tools.html
+++ b/plc4x/pre-release/developers/release/build-tools.html
@@ -282,6 +282,9 @@
   <li class="nav-item" data-depth="3">
     <a class="nav-link" href="../../users/tools/opm.html">Object PLC 
Mapping</a>
   </li>
+  <li class="nav-item" data-depth="3">
+    <a class="nav-link" href="../../users/tools/plc4x-server.html">PLC4X 
Server</a>
+  </li>
   <li class="nav-item" data-depth="3">
     <a class="nav-link" href="../../users/tools/scraper.html">Scraper</a>
   </li>
diff --git a/plc4x/pre-release/developers/release/extras.html 
b/plc4x/pre-release/developers/release/extras.html
index 5cd68ed1c..36e34f242 100644
--- a/plc4x/pre-release/developers/release/extras.html
+++ b/plc4x/pre-release/developers/release/extras.html
@@ -282,6 +282,9 @@
   <li class="nav-item" data-depth="3">
     <a class="nav-link" href="../../users/tools/opm.html">Object PLC 
Mapping</a>
   </li>
+  <li class="nav-item" data-depth="3">
+    <a class="nav-link" href="../../users/tools/plc4x-server.html">PLC4X 
Server</a>
+  </li>
   <li class="nav-item" data-depth="3">
     <a class="nav-link" href="../../users/tools/scraper.html">Scraper</a>
   </li>
diff --git a/plc4x/pre-release/developers/release/index.html 
b/plc4x/pre-release/developers/release/index.html
index 3b84721a4..482ab7d13 100644
--- a/plc4x/pre-release/developers/release/index.html
+++ b/plc4x/pre-release/developers/release/index.html
@@ -282,6 +282,9 @@
   <li class="nav-item" data-depth="3">
     <a class="nav-link" href="../../users/tools/opm.html">Object PLC 
Mapping</a>
   </li>
+  <li class="nav-item" data-depth="3">
+    <a class="nav-link" href="../../users/tools/plc4x-server.html">PLC4X 
Server</a>
+  </li>
   <li class="nav-item" data-depth="3">
     <a class="nav-link" href="../../users/tools/scraper.html">Scraper</a>
   </li>
diff --git a/plc4x/pre-release/developers/release/release.html 
b/plc4x/pre-release/developers/release/release.html
index 0a7b1f91a..4f31df4bc 100644
--- a/plc4x/pre-release/developers/release/release.html
+++ b/plc4x/pre-release/developers/release/release.html
@@ -282,6 +282,9 @@
   <li class="nav-item" data-depth="3">
     <a class="nav-link" href="../../users/tools/opm.html">Object PLC 
Mapping</a>
   </li>
+  <li class="nav-item" data-depth="3">
+    <a class="nav-link" href="../../users/tools/plc4x-server.html">PLC4X 
Server</a>
+  </li>
   <li class="nav-item" data-depth="3">
     <a class="nav-link" href="../../users/tools/scraper.html">Scraper</a>
   </li>
diff --git a/plc4x/pre-release/developers/release/validation.html 
b/plc4x/pre-release/developers/release/validation.html
index a9228815b..993a09a8e 100644
--- a/plc4x/pre-release/developers/release/validation.html
+++ b/plc4x/pre-release/developers/release/validation.html
@@ -282,6 +282,9 @@
   <li class="nav-item" data-depth="3">
     <a class="nav-link" href="../../users/tools/opm.html">Object PLC 
Mapping</a>
   </li>
+  <li class="nav-item" data-depth="3">
+    <a class="nav-link" href="../../users/tools/plc4x-server.html">PLC4X 
Server</a>
+  </li>
   <li class="nav-item" data-depth="3">
     <a class="nav-link" href="../../users/tools/scraper.html">Scraper</a>
   </li>
diff --git a/plc4x/pre-release/developers/team.html 
b/plc4x/pre-release/developers/team.html
index ae67db071..1a528d2d6 100644
--- a/plc4x/pre-release/developers/team.html
+++ b/plc4x/pre-release/developers/team.html
@@ -282,6 +282,9 @@
   <li class="nav-item" data-depth="3">
     <a class="nav-link" href="../users/tools/opm.html">Object PLC Mapping</a>
   </li>
+  <li class="nav-item" data-depth="3">
+    <a class="nav-link" href="../users/tools/plc4x-server.html">PLC4X 
Server</a>
+  </li>
   <li class="nav-item" data-depth="3">
     <a class="nav-link" href="../users/tools/scraper.html">Scraper</a>
   </li>
diff --git a/plc4x/pre-release/developers/testing/index.html 
b/plc4x/pre-release/developers/testing/index.html
index 7cd40d3f7..a6e829ec4 100644
--- a/plc4x/pre-release/developers/testing/index.html
+++ b/plc4x/pre-release/developers/testing/index.html
@@ -282,6 +282,9 @@
   <li class="nav-item" data-depth="3">
     <a class="nav-link" href="../../users/tools/opm.html">Object PLC 
Mapping</a>
   </li>
+  <li class="nav-item" data-depth="3">
+    <a class="nav-link" href="../../users/tools/plc4x-server.html">PLC4X 
Server</a>
+  </li>
   <li class="nav-item" data-depth="3">
     <a class="nav-link" href="../../users/tools/scraper.html">Scraper</a>
   </li>
diff --git a/plc4x/pre-release/developers/tools.html 
b/plc4x/pre-release/developers/tools.html
index 12ab7359b..055394505 100644
--- a/plc4x/pre-release/developers/tools.html
+++ b/plc4x/pre-release/developers/tools.html
@@ -282,6 +282,9 @@
   <li class="nav-item" data-depth="3">
     <a class="nav-link" href="../users/tools/opm.html">Object PLC Mapping</a>
   </li>
+  <li class="nav-item" data-depth="3">
+    <a class="nav-link" href="../users/tools/plc4x-server.html">PLC4X 
Server</a>
+  </li>
   <li class="nav-item" data-depth="3">
     <a class="nav-link" href="../users/tools/scraper.html">Scraper</a>
   </li>
diff --git a/plc4x/pre-release/developers/tutorials/index.html 
b/plc4x/pre-release/developers/tutorials/index.html
index 45a8eae96..50facbf52 100644
--- a/plc4x/pre-release/developers/tutorials/index.html
+++ b/plc4x/pre-release/developers/tutorials/index.html
@@ -282,6 +282,9 @@
   <li class="nav-item" data-depth="3">
     <a class="nav-link" href="../../users/tools/opm.html">Object PLC 
Mapping</a>
   </li>
+  <li class="nav-item" data-depth="3">
+    <a class="nav-link" href="../../users/tools/plc4x-server.html">PLC4X 
Server</a>
+  </li>
   <li class="nav-item" data-depth="3">
     <a class="nav-link" href="../../users/tools/scraper.html">Scraper</a>
   </li>
diff --git 
a/plc4x/pre-release/developers/tutorials/testing-serializers-and-parsers.html 
b/plc4x/pre-release/developers/tutorials/testing-serializers-and-parsers.html
index 85b57a737..3ef0f7c07 100644
--- 
a/plc4x/pre-release/developers/tutorials/testing-serializers-and-parsers.html
+++ 
b/plc4x/pre-release/developers/tutorials/testing-serializers-and-parsers.html
@@ -282,6 +282,9 @@
   <li class="nav-item" data-depth="3">
     <a class="nav-link" href="../../users/tools/opm.html">Object PLC 
Mapping</a>
   </li>
+  <li class="nav-item" data-depth="3">
+    <a class="nav-link" href="../../users/tools/plc4x-server.html">PLC4X 
Server</a>
+  </li>
   <li class="nav-item" data-depth="3">
     <a class="nav-link" href="../../users/tools/scraper.html">Scraper</a>
   </li>
diff --git a/plc4x/pre-release/developers/tutorials/writing-driver.html 
b/plc4x/pre-release/developers/tutorials/writing-driver.html
index aa1acabd1..3069494c2 100644
--- a/plc4x/pre-release/developers/tutorials/writing-driver.html
+++ b/plc4x/pre-release/developers/tutorials/writing-driver.html
@@ -282,6 +282,9 @@
   <li class="nav-item" data-depth="3">
     <a class="nav-link" href="../../users/tools/opm.html">Object PLC 
Mapping</a>
   </li>
+  <li class="nav-item" data-depth="3">
+    <a class="nav-link" href="../../users/tools/plc4x-server.html">PLC4X 
Server</a>
+  </li>
   <li class="nav-item" data-depth="3">
     <a class="nav-link" href="../../users/tools/scraper.html">Scraper</a>
   </li>
diff --git a/plc4x/pre-release/index.html b/plc4x/pre-release/index.html
index 8e4b88fa1..47f25bede 100644
--- a/plc4x/pre-release/index.html
+++ b/plc4x/pre-release/index.html
@@ -282,6 +282,9 @@
   <li class="nav-item" data-depth="3">
     <a class="nav-link" href="users/tools/opm.html">Object PLC Mapping</a>
   </li>
+  <li class="nav-item" data-depth="3">
+    <a class="nav-link" href="users/tools/plc4x-server.html">PLC4X Server</a>
+  </li>
   <li class="nav-item" data-depth="3">
     <a class="nav-link" href="users/tools/scraper.html">Scraper</a>
   </li>
diff --git a/plc4x/pre-release/users/adopters.html 
b/plc4x/pre-release/users/adopters.html
index 8aab7bdf1..bbaae80b4 100644
--- a/plc4x/pre-release/users/adopters.html
+++ b/plc4x/pre-release/users/adopters.html
@@ -282,6 +282,9 @@
   <li class="nav-item" data-depth="3">
     <a class="nav-link" href="tools/opm.html">Object PLC Mapping</a>
   </li>
+  <li class="nav-item" data-depth="3">
+    <a class="nav-link" href="tools/plc4x-server.html">PLC4X Server</a>
+  </li>
   <li class="nav-item" data-depth="3">
     <a class="nav-link" href="tools/scraper.html">Scraper</a>
   </li>
diff --git a/plc4x/pre-release/users/blogs-videos-and-slides.html 
b/plc4x/pre-release/users/blogs-videos-and-slides.html
index 4e57464a3..e74eb80f5 100644
--- a/plc4x/pre-release/users/blogs-videos-and-slides.html
+++ b/plc4x/pre-release/users/blogs-videos-and-slides.html
@@ -282,6 +282,9 @@
   <li class="nav-item" data-depth="3">
     <a class="nav-link" href="tools/opm.html">Object PLC Mapping</a>
   </li>
+  <li class="nav-item" data-depth="3">
+    <a class="nav-link" href="tools/plc4x-server.html">PLC4X Server</a>
+  </li>
   <li class="nav-item" data-depth="3">
     <a class="nav-link" href="tools/scraper.html">Scraper</a>
   </li>
diff --git a/plc4x/pre-release/users/commercial-support.html 
b/plc4x/pre-release/users/commercial-support.html
index 8025d59c8..2dbcd64b3 100644
--- a/plc4x/pre-release/users/commercial-support.html
+++ b/plc4x/pre-release/users/commercial-support.html
@@ -282,6 +282,9 @@
   <li class="nav-item" data-depth="3">
     <a class="nav-link" href="tools/opm.html">Object PLC Mapping</a>
   </li>
+  <li class="nav-item" data-depth="3">
+    <a class="nav-link" href="tools/plc4x-server.html">PLC4X Server</a>
+  </li>
   <li class="nav-item" data-depth="3">
     <a class="nav-link" href="tools/scraper.html">Scraper</a>
   </li>
diff --git a/plc4x/pre-release/users/download.html 
b/plc4x/pre-release/users/download.html
index 8566461d7..575beff65 100644
--- a/plc4x/pre-release/users/download.html
+++ b/plc4x/pre-release/users/download.html
@@ -282,6 +282,9 @@
   <li class="nav-item" data-depth="3">
     <a class="nav-link" href="tools/opm.html">Object PLC Mapping</a>
   </li>
+  <li class="nav-item" data-depth="3">
+    <a class="nav-link" href="tools/plc4x-server.html">PLC4X Server</a>
+  </li>
   <li class="nav-item" data-depth="3">
     <a class="nav-link" href="tools/scraper.html">Scraper</a>
   </li>
diff --git a/plc4x/pre-release/users/getting-started/general-concepts.html 
b/plc4x/pre-release/users/getting-started/general-concepts.html
index 77bc67dfd..4d7624643 100644
--- a/plc4x/pre-release/users/getting-started/general-concepts.html
+++ b/plc4x/pre-release/users/getting-started/general-concepts.html
@@ -282,6 +282,9 @@
   <li class="nav-item" data-depth="3">
     <a class="nav-link" href="../tools/opm.html">Object PLC Mapping</a>
   </li>
+  <li class="nav-item" data-depth="3">
+    <a class="nav-link" href="../tools/plc4x-server.html">PLC4X Server</a>
+  </li>
   <li class="nav-item" data-depth="3">
     <a class="nav-link" href="../tools/scraper.html">Scraper</a>
   </li>
diff --git a/plc4x/pre-release/users/getting-started/index.html 
b/plc4x/pre-release/users/getting-started/index.html
index 519f8eff5..e2e4d8010 100644
--- a/plc4x/pre-release/users/getting-started/index.html
+++ b/plc4x/pre-release/users/getting-started/index.html
@@ -282,6 +282,9 @@
   <li class="nav-item" data-depth="3">
     <a class="nav-link" href="../tools/opm.html">Object PLC Mapping</a>
   </li>
+  <li class="nav-item" data-depth="3">
+    <a class="nav-link" href="../tools/plc4x-server.html">PLC4X Server</a>
+  </li>
   <li class="nav-item" data-depth="3">
     <a class="nav-link" href="../tools/scraper.html">Scraper</a>
   </li>
diff --git 
a/plc4x/pre-release/users/getting-started/opcua-client-certificate.html 
b/plc4x/pre-release/users/getting-started/opcua-client-certificate.html
index a60a7aa5d..e826c1ae4 100644
--- a/plc4x/pre-release/users/getting-started/opcua-client-certificate.html
+++ b/plc4x/pre-release/users/getting-started/opcua-client-certificate.html
@@ -282,6 +282,9 @@
   <li class="nav-item" data-depth="3">
     <a class="nav-link" href="../tools/opm.html">Object PLC Mapping</a>
   </li>
+  <li class="nav-item" data-depth="3">
+    <a class="nav-link" href="../tools/plc4x-server.html">PLC4X Server</a>
+  </li>
   <li class="nav-item" data-depth="3">
     <a class="nav-link" href="../tools/scraper.html">Scraper</a>
   </li>
diff --git a/plc4x/pre-release/users/getting-started/plc4c.html 
b/plc4x/pre-release/users/getting-started/plc4c.html
index da8611daa..a8d9839a1 100644
--- a/plc4x/pre-release/users/getting-started/plc4c.html
+++ b/plc4x/pre-release/users/getting-started/plc4c.html
@@ -282,6 +282,9 @@
   <li class="nav-item" data-depth="3">
     <a class="nav-link" href="../tools/opm.html">Object PLC Mapping</a>
   </li>
+  <li class="nav-item" data-depth="3">
+    <a class="nav-link" href="../tools/plc4x-server.html">PLC4X Server</a>
+  </li>
   <li class="nav-item" data-depth="3">
     <a class="nav-link" href="../tools/scraper.html">Scraper</a>
   </li>
diff --git a/plc4x/pre-release/users/getting-started/plc4cs.html 
b/plc4x/pre-release/users/getting-started/plc4cs.html
index 8428dc2c0..13b6f96e5 100644
--- a/plc4x/pre-release/users/getting-started/plc4cs.html
+++ b/plc4x/pre-release/users/getting-started/plc4cs.html
@@ -282,6 +282,9 @@
   <li class="nav-item" data-depth="3">
     <a class="nav-link" href="../tools/opm.html">Object PLC Mapping</a>
   </li>
+  <li class="nav-item" data-depth="3">
+    <a class="nav-link" href="../tools/plc4x-server.html">PLC4X Server</a>
+  </li>
   <li class="nav-item" data-depth="3">
     <a class="nav-link" href="../tools/scraper.html">Scraper</a>
   </li>
diff --git a/plc4x/pre-release/users/getting-started/plc4go.html 
b/plc4x/pre-release/users/getting-started/plc4go.html
index d563247f0..7513f2c88 100644
--- a/plc4x/pre-release/users/getting-started/plc4go.html
+++ b/plc4x/pre-release/users/getting-started/plc4go.html
@@ -282,6 +282,9 @@
   <li class="nav-item" data-depth="3">
     <a class="nav-link" href="../tools/opm.html">Object PLC Mapping</a>
   </li>
+  <li class="nav-item" data-depth="3">
+    <a class="nav-link" href="../tools/plc4x-server.html">PLC4X Server</a>
+  </li>
   <li class="nav-item" data-depth="3">
     <a class="nav-link" href="../tools/scraper.html">Scraper</a>
   </li>
diff --git a/plc4x/pre-release/users/getting-started/plc4j.html 
b/plc4x/pre-release/users/getting-started/plc4j.html
index 4f2e81591..0582ad3f2 100644
--- a/plc4x/pre-release/users/getting-started/plc4j.html
+++ b/plc4x/pre-release/users/getting-started/plc4j.html
@@ -282,6 +282,9 @@
   <li class="nav-item" data-depth="3">
     <a class="nav-link" href="../tools/opm.html">Object PLC Mapping</a>
   </li>
+  <li class="nav-item" data-depth="3">
+    <a class="nav-link" href="../tools/plc4x-server.html">PLC4X Server</a>
+  </li>
   <li class="nav-item" data-depth="3">
     <a class="nav-link" href="../tools/scraper.html">Scraper</a>
   </li>
diff --git a/plc4x/pre-release/users/getting-started/plc4py.html 
b/plc4x/pre-release/users/getting-started/plc4py.html
index dc82bc585..3f119c6a0 100644
--- a/plc4x/pre-release/users/getting-started/plc4py.html
+++ b/plc4x/pre-release/users/getting-started/plc4py.html
@@ -282,6 +282,9 @@
   <li class="nav-item" data-depth="3">
     <a class="nav-link" href="../tools/opm.html">Object PLC Mapping</a>
   </li>
+  <li class="nav-item" data-depth="3">
+    <a class="nav-link" href="../tools/plc4x-server.html">PLC4X Server</a>
+  </li>
   <li class="nav-item" data-depth="3">
     <a class="nav-link" href="../tools/scraper.html">Scraper</a>
   </li>
diff --git a/plc4x/pre-release/users/getting-started/using-snapshots.html 
b/plc4x/pre-release/users/getting-started/using-snapshots.html
index 7772dbbbf..23f301b92 100644
--- a/plc4x/pre-release/users/getting-started/using-snapshots.html
+++ b/plc4x/pre-release/users/getting-started/using-snapshots.html
@@ -282,6 +282,9 @@
   <li class="nav-item" data-depth="3">
     <a class="nav-link" href="../tools/opm.html">Object PLC Mapping</a>
   </li>
+  <li class="nav-item" data-depth="3">
+    <a class="nav-link" href="../tools/plc4x-server.html">PLC4X Server</a>
+  </li>
   <li class="nav-item" data-depth="3">
     <a class="nav-link" href="../tools/scraper.html">Scraper</a>
   </li>
diff --git a/plc4x/pre-release/users/getting-started/virtual-modbus.html 
b/plc4x/pre-release/users/getting-started/virtual-modbus.html
index 920f58ba2..a8c2dfd1d 100644
--- a/plc4x/pre-release/users/getting-started/virtual-modbus.html
+++ b/plc4x/pre-release/users/getting-started/virtual-modbus.html
@@ -282,6 +282,9 @@
   <li class="nav-item" data-depth="3">
     <a class="nav-link" href="../tools/opm.html">Object PLC Mapping</a>
   </li>
+  <li class="nav-item" data-depth="3">
+    <a class="nav-link" href="../tools/plc4x-server.html">PLC4X Server</a>
+  </li>
   <li class="nav-item" data-depth="3">
     <a class="nav-link" href="../tools/scraper.html">Scraper</a>
   </li>
diff --git a/plc4x/pre-release/users/index.html 
b/plc4x/pre-release/users/index.html
index 8571f1aa4..bc70695d4 100644
--- a/plc4x/pre-release/users/index.html
+++ b/plc4x/pre-release/users/index.html
@@ -282,6 +282,9 @@
   <li class="nav-item" data-depth="3">
     <a class="nav-link" href="tools/opm.html">Object PLC Mapping</a>
   </li>
+  <li class="nav-item" data-depth="3">
+    <a class="nav-link" href="tools/plc4x-server.html">PLC4X Server</a>
+  </li>
   <li class="nav-item" data-depth="3">
     <a class="nav-link" href="tools/scraper.html">Scraper</a>
   </li>
@@ -572,6 +575,9 @@ We are planning on shipping libraries for usage in:</p>
 <p><a href="tools/opm.html">Object PLC Mapping (OPM)</a> (Object PLC Mapping - 
Like JPA for PLC data)</p>
 </li>
 <li>
+<p><a href="tools/plc4x-server.adoc">PLC4X-Server</a> (A small relay server 
that speaks the <strong>PLC4X proxy protocol</strong>.)</p>
+</li>
+<li>
 <p><a href="tools/scraper.html">Scraper</a> (Util for automating fetching PLC 
data using a variety of triggers)</p>
 </li>
 <li>
diff --git a/plc4x/pre-release/users/industry40.html 
b/plc4x/pre-release/users/industry40.html
index d6e3d739f..fb47db540 100644
--- a/plc4x/pre-release/users/industry40.html
+++ b/plc4x/pre-release/users/industry40.html
@@ -282,6 +282,9 @@
   <li class="nav-item" data-depth="3">
     <a class="nav-link" href="tools/opm.html">Object PLC Mapping</a>
   </li>
+  <li class="nav-item" data-depth="3">
+    <a class="nav-link" href="tools/plc4x-server.html">PLC4X Server</a>
+  </li>
   <li class="nav-item" data-depth="3">
     <a class="nav-link" href="tools/scraper.html">Scraper</a>
   </li>
diff --git a/plc4x/pre-release/users/integrations/apache-calcite.html 
b/plc4x/pre-release/users/integrations/apache-calcite.html
index 2951d09ce..0833f44c0 100644
--- a/plc4x/pre-release/users/integrations/apache-calcite.html
+++ b/plc4x/pre-release/users/integrations/apache-calcite.html
@@ -282,6 +282,9 @@
   <li class="nav-item" data-depth="3">
     <a class="nav-link" href="../tools/opm.html">Object PLC Mapping</a>
   </li>
+  <li class="nav-item" data-depth="3">
+    <a class="nav-link" href="../tools/plc4x-server.html">PLC4X Server</a>
+  </li>
   <li class="nav-item" data-depth="3">
     <a class="nav-link" href="../tools/scraper.html">Scraper</a>
   </li>
diff --git a/plc4x/pre-release/users/integrations/apache-camel.html 
b/plc4x/pre-release/users/integrations/apache-camel.html
index 1c3a6c13a..8701ca2f6 100644
--- a/plc4x/pre-release/users/integrations/apache-camel.html
+++ b/plc4x/pre-release/users/integrations/apache-camel.html
@@ -282,6 +282,9 @@
   <li class="nav-item" data-depth="3">
     <a class="nav-link" href="../tools/opm.html">Object PLC Mapping</a>
   </li>
+  <li class="nav-item" data-depth="3">
+    <a class="nav-link" href="../tools/plc4x-server.html">PLC4X Server</a>
+  </li>
   <li class="nav-item" data-depth="3">
     <a class="nav-link" href="../tools/scraper.html">Scraper</a>
   </li>
diff --git a/plc4x/pre-release/users/integrations/apache-edgent.html 
b/plc4x/pre-release/users/integrations/apache-edgent.html
index 00bf4697b..fb27f402b 100644
--- a/plc4x/pre-release/users/integrations/apache-edgent.html
+++ b/plc4x/pre-release/users/integrations/apache-edgent.html
@@ -282,6 +282,9 @@
   <li class="nav-item" data-depth="3">
     <a class="nav-link" href="../tools/opm.html">Object PLC Mapping</a>
   </li>
+  <li class="nav-item" data-depth="3">
+    <a class="nav-link" href="../tools/plc4x-server.html">PLC4X Server</a>
+  </li>
   <li class="nav-item" data-depth="3">
     <a class="nav-link" href="../tools/scraper.html">Scraper</a>
   </li>
diff --git a/plc4x/pre-release/users/integrations/apache-iotdb.html 
b/plc4x/pre-release/users/integrations/apache-iotdb.html
index 95323d842..f7cadd417 100644
--- a/plc4x/pre-release/users/integrations/apache-iotdb.html
+++ b/plc4x/pre-release/users/integrations/apache-iotdb.html
@@ -282,6 +282,9 @@
   <li class="nav-item" data-depth="3">
     <a class="nav-link" href="../tools/opm.html">Object PLC Mapping</a>
   </li>
+  <li class="nav-item" data-depth="3">
+    <a class="nav-link" href="../tools/plc4x-server.html">PLC4X Server</a>
+  </li>
   <li class="nav-item" data-depth="3">
     <a class="nav-link" href="../tools/scraper.html">Scraper</a>
   </li>
diff --git a/plc4x/pre-release/users/integrations/apache-kafka.html 
b/plc4x/pre-release/users/integrations/apache-kafka.html
index 0b4bc7b58..bdcab9713 100644
--- a/plc4x/pre-release/users/integrations/apache-kafka.html
+++ b/plc4x/pre-release/users/integrations/apache-kafka.html
@@ -282,6 +282,9 @@
   <li class="nav-item" data-depth="3">
     <a class="nav-link" href="../tools/opm.html">Object PLC Mapping</a>
   </li>
+  <li class="nav-item" data-depth="3">
+    <a class="nav-link" href="../tools/plc4x-server.html">PLC4X Server</a>
+  </li>
   <li class="nav-item" data-depth="3">
     <a class="nav-link" href="../tools/scraper.html">Scraper</a>
   </li>
diff --git a/plc4x/pre-release/users/integrations/apache-nifi.html 
b/plc4x/pre-release/users/integrations/apache-nifi.html
index 78dd4784a..ad14b61d4 100644
--- a/plc4x/pre-release/users/integrations/apache-nifi.html
+++ b/plc4x/pre-release/users/integrations/apache-nifi.html
@@ -282,6 +282,9 @@
   <li class="nav-item" data-depth="3">
     <a class="nav-link" href="../tools/opm.html">Object PLC Mapping</a>
   </li>
+  <li class="nav-item" data-depth="3">
+    <a class="nav-link" href="../tools/plc4x-server.html">PLC4X Server</a>
+  </li>
   <li class="nav-item" data-depth="3">
     <a class="nav-link" href="../tools/scraper.html">Scraper</a>
   </li>
diff --git a/plc4x/pre-release/users/integrations/apache-streampipes.html 
b/plc4x/pre-release/users/integrations/apache-streampipes.html
index 26ce84a4f..31812280d 100644
--- a/plc4x/pre-release/users/integrations/apache-streampipes.html
+++ b/plc4x/pre-release/users/integrations/apache-streampipes.html
@@ -282,6 +282,9 @@
   <li class="nav-item" data-depth="3">
     <a class="nav-link" href="../tools/opm.html">Object PLC Mapping</a>
   </li>
+  <li class="nav-item" data-depth="3">
+    <a class="nav-link" href="../tools/plc4x-server.html">PLC4X Server</a>
+  </li>
   <li class="nav-item" data-depth="3">
     <a class="nav-link" href="../tools/scraper.html">Scraper</a>
   </li>
diff --git a/plc4x/pre-release/users/integrations/eclipse-ditto.html 
b/plc4x/pre-release/users/integrations/eclipse-ditto.html
index 3421f445e..8d4c0d757 100644
--- a/plc4x/pre-release/users/integrations/eclipse-ditto.html
+++ b/plc4x/pre-release/users/integrations/eclipse-ditto.html
@@ -282,6 +282,9 @@
   <li class="nav-item" data-depth="3">
     <a class="nav-link" href="../tools/opm.html">Object PLC Mapping</a>
   </li>
+  <li class="nav-item" data-depth="3">
+    <a class="nav-link" href="../tools/plc4x-server.html">PLC4X Server</a>
+  </li>
   <li class="nav-item" data-depth="3">
     <a class="nav-link" href="../tools/scraper.html">Scraper</a>
   </li>
diff --git a/plc4x/pre-release/users/integrations/eclipse-milo.html 
b/plc4x/pre-release/users/integrations/eclipse-milo.html
index 07258b6b4..67fe739c4 100644
--- a/plc4x/pre-release/users/integrations/eclipse-milo.html
+++ b/plc4x/pre-release/users/integrations/eclipse-milo.html
@@ -282,6 +282,9 @@
   <li class="nav-item" data-depth="3">
     <a class="nav-link" href="../tools/opm.html">Object PLC Mapping</a>
   </li>
+  <li class="nav-item" data-depth="3">
+    <a class="nav-link" href="../tools/plc4x-server.html">PLC4X Server</a>
+  </li>
   <li class="nav-item" data-depth="3">
     <a class="nav-link" href="../tools/scraper.html">Scraper</a>
   </li>
diff --git a/plc4x/pre-release/users/integrations/index.html 
b/plc4x/pre-release/users/integrations/index.html
index 0fe5d8f23..303a54da6 100644
--- a/plc4x/pre-release/users/integrations/index.html
+++ b/plc4x/pre-release/users/integrations/index.html
@@ -282,6 +282,9 @@
   <li class="nav-item" data-depth="3">
     <a class="nav-link" href="../tools/opm.html">Object PLC Mapping</a>
   </li>
+  <li class="nav-item" data-depth="3">
+    <a class="nav-link" href="../tools/plc4x-server.html">PLC4X Server</a>
+  </li>
   <li class="nav-item" data-depth="3">
     <a class="nav-link" href="../tools/scraper.html">Scraper</a>
   </li>
diff --git a/plc4x/pre-release/users/issues.html 
b/plc4x/pre-release/users/issues.html
index 417a03e8e..c3c8cfef8 100644
--- a/plc4x/pre-release/users/issues.html
+++ b/plc4x/pre-release/users/issues.html
@@ -282,6 +282,9 @@
   <li class="nav-item" data-depth="3">
     <a class="nav-link" href="tools/opm.html">Object PLC Mapping</a>
   </li>
+  <li class="nav-item" data-depth="3">
+    <a class="nav-link" href="tools/plc4x-server.html">PLC4X Server</a>
+  </li>
   <li class="nav-item" data-depth="3">
     <a class="nav-link" href="tools/scraper.html">Scraper</a>
   </li>
diff --git a/plc4x/pre-release/users/preparing-issues.html 
b/plc4x/pre-release/users/preparing-issues.html
index cbca95f42..46ee8d9db 100644
--- a/plc4x/pre-release/users/preparing-issues.html
+++ b/plc4x/pre-release/users/preparing-issues.html
@@ -282,6 +282,9 @@
   <li class="nav-item" data-depth="3">
     <a class="nav-link" href="tools/opm.html">Object PLC Mapping</a>
   </li>
+  <li class="nav-item" data-depth="3">
+    <a class="nav-link" href="tools/plc4x-server.html">PLC4X Server</a>
+  </li>
   <li class="nav-item" data-depth="3">
     <a class="nav-link" href="tools/scraper.html">Scraper</a>
   </li>
diff --git a/plc4x/pre-release/users/protocols/ab-eth.html 
b/plc4x/pre-release/users/protocols/ab-eth.html
index b85eb5c96..a7234ebb7 100644
--- a/plc4x/pre-release/users/protocols/ab-eth.html
+++ b/plc4x/pre-release/users/protocols/ab-eth.html
@@ -282,6 +282,9 @@
   <li class="nav-item" data-depth="3">
     <a class="nav-link" href="../tools/opm.html">Object PLC Mapping</a>
   </li>
+  <li class="nav-item" data-depth="3">
+    <a class="nav-link" href="../tools/plc4x-server.html">PLC4X Server</a>
+  </li>
   <li class="nav-item" data-depth="3">
     <a class="nav-link" href="../tools/scraper.html">Scraper</a>
   </li>
diff --git a/plc4x/pre-release/users/protocols/ads.html 
b/plc4x/pre-release/users/protocols/ads.html
index 8d4aeb7a2..9c217fad2 100644
--- a/plc4x/pre-release/users/protocols/ads.html
+++ b/plc4x/pre-release/users/protocols/ads.html
@@ -282,6 +282,9 @@
   <li class="nav-item" data-depth="3">
     <a class="nav-link" href="../tools/opm.html">Object PLC Mapping</a>
   </li>
+  <li class="nav-item" data-depth="3">
+    <a class="nav-link" href="../tools/plc4x-server.html">PLC4X Server</a>
+  </li>
   <li class="nav-item" data-depth="3">
     <a class="nav-link" href="../tools/scraper.html">Scraper</a>
   </li>
diff --git a/plc4x/pre-release/users/protocols/bacnet.html 
b/plc4x/pre-release/users/protocols/bacnet.html
index b316e684c..8b81e07ab 100644
--- a/plc4x/pre-release/users/protocols/bacnet.html
+++ b/plc4x/pre-release/users/protocols/bacnet.html
@@ -282,6 +282,9 @@
   <li class="nav-item" data-depth="3">
     <a class="nav-link" href="../tools/opm.html">Object PLC Mapping</a>
   </li>
+  <li class="nav-item" data-depth="3">
+    <a class="nav-link" href="../tools/plc4x-server.html">PLC4X Server</a>
+  </li>
   <li class="nav-item" data-depth="3">
     <a class="nav-link" href="../tools/scraper.html">Scraper</a>
   </li>
diff --git a/plc4x/pre-release/users/protocols/c-bus.html 
b/plc4x/pre-release/users/protocols/c-bus.html
index dc9dd5fd6..086dcfb3e 100644
--- a/plc4x/pre-release/users/protocols/c-bus.html
+++ b/plc4x/pre-release/users/protocols/c-bus.html
@@ -282,6 +282,9 @@
   <li class="nav-item" data-depth="3">
     <a class="nav-link" href="../tools/opm.html">Object PLC Mapping</a>
   </li>
+  <li class="nav-item" data-depth="3">
+    <a class="nav-link" href="../tools/plc4x-server.html">PLC4X Server</a>
+  </li>
   <li class="nav-item" data-depth="3">
     <a class="nav-link" href="../tools/scraper.html">Scraper</a>
   </li>
diff --git a/plc4x/pre-release/users/protocols/can.html 
b/plc4x/pre-release/users/protocols/can.html
index 8af6266b0..3a1ab5871 100644
--- a/plc4x/pre-release/users/protocols/can.html
+++ b/plc4x/pre-release/users/protocols/can.html
@@ -282,6 +282,9 @@
   <li class="nav-item" data-depth="3">
     <a class="nav-link" href="../tools/opm.html">Object PLC Mapping</a>
   </li>
+  <li class="nav-item" data-depth="3">
+    <a class="nav-link" href="../tools/plc4x-server.html">PLC4X Server</a>
+  </li>
   <li class="nav-item" data-depth="3">
     <a class="nav-link" href="../tools/scraper.html">Scraper</a>
   </li>
diff --git a/plc4x/pre-release/users/protocols/canopen.html 
b/plc4x/pre-release/users/protocols/canopen.html
index a72bb38f2..68ba824d3 100644
--- a/plc4x/pre-release/users/protocols/canopen.html
+++ b/plc4x/pre-release/users/protocols/canopen.html
@@ -282,6 +282,9 @@
   <li class="nav-item" data-depth="3">
     <a class="nav-link" href="../tools/opm.html">Object PLC Mapping</a>
   </li>
+  <li class="nav-item" data-depth="3">
+    <a class="nav-link" href="../tools/plc4x-server.html">PLC4X Server</a>
+  </li>
   <li class="nav-item" data-depth="3">
     <a class="nav-link" href="../tools/scraper.html">Scraper</a>
   </li>
diff --git a/plc4x/pre-release/users/protocols/ctrlx.html 
b/plc4x/pre-release/users/protocols/ctrlx.html
index 97a4f538a..664ad5c7e 100644
--- a/plc4x/pre-release/users/protocols/ctrlx.html
+++ b/plc4x/pre-release/users/protocols/ctrlx.html
@@ -282,6 +282,9 @@
   <li class="nav-item" data-depth="3">
     <a class="nav-link" href="../tools/opm.html">Object PLC Mapping</a>
   </li>
+  <li class="nav-item" data-depth="3">
+    <a class="nav-link" href="../tools/plc4x-server.html">PLC4X Server</a>
+  </li>
   <li class="nav-item" data-depth="3">
     <a class="nav-link" href="../tools/scraper.html">Scraper</a>
   </li>
diff --git a/plc4x/pre-release/users/protocols/deltav.html 
b/plc4x/pre-release/users/protocols/deltav.html
index ffb192525..9064ac9c5 100644
--- a/plc4x/pre-release/users/protocols/deltav.html
+++ b/plc4x/pre-release/users/protocols/deltav.html
@@ -282,6 +282,9 @@
   <li class="nav-item" data-depth="3">
     <a class="nav-link" href="../tools/opm.html">Object PLC Mapping</a>
   </li>
+  <li class="nav-item" data-depth="3">
+    <a class="nav-link" href="../tools/plc4x-server.html">PLC4X Server</a>
+  </li>
   <li class="nav-item" data-depth="3">
     <a class="nav-link" href="../tools/scraper.html">Scraper</a>
   </li>
diff --git a/plc4x/pre-release/users/protocols/df1.html 
b/plc4x/pre-release/users/protocols/df1.html
index 7ebdc1c0b..ffa2de7b1 100644
--- a/plc4x/pre-release/users/protocols/df1.html
+++ b/plc4x/pre-release/users/protocols/df1.html
@@ -282,6 +282,9 @@
   <li class="nav-item" data-depth="3">
     <a class="nav-link" href="../tools/opm.html">Object PLC Mapping</a>
   </li>
+  <li class="nav-item" data-depth="3">
+    <a class="nav-link" href="../tools/plc4x-server.html">PLC4X Server</a>
+  </li>
   <li class="nav-item" data-depth="3">
     <a class="nav-link" href="../tools/scraper.html">Scraper</a>
   </li>
diff --git a/plc4x/pre-release/users/protocols/eip.html 
b/plc4x/pre-release/users/protocols/eip.html
index 0b67c660d..880c1c508 100644
--- a/plc4x/pre-release/users/protocols/eip.html
+++ b/plc4x/pre-release/users/protocols/eip.html
@@ -282,6 +282,9 @@
   <li class="nav-item" data-depth="3">
     <a class="nav-link" href="../tools/opm.html">Object PLC Mapping</a>
   </li>
+  <li class="nav-item" data-depth="3">
+    <a class="nav-link" href="../tools/plc4x-server.html">PLC4X Server</a>
+  </li>
   <li class="nav-item" data-depth="3">
     <a class="nav-link" href="../tools/scraper.html">Scraper</a>
   </li>
diff --git a/plc4x/pre-release/users/protocols/firmata.html 
b/plc4x/pre-release/users/protocols/firmata.html
index a68e26333..2c89f0994 100644
--- a/plc4x/pre-release/users/protocols/firmata.html
+++ b/plc4x/pre-release/users/protocols/firmata.html
@@ -282,6 +282,9 @@
   <li class="nav-item" data-depth="3">
     <a class="nav-link" href="../tools/opm.html">Object PLC Mapping</a>
   </li>
+  <li class="nav-item" data-depth="3">
+    <a class="nav-link" href="../tools/plc4x-server.html">PLC4X Server</a>
+  </li>
   <li class="nav-item" data-depth="3">
     <a class="nav-link" href="../tools/scraper.html">Scraper</a>
   </li>
diff --git a/plc4x/pre-release/users/protocols/genericcan.html 
b/plc4x/pre-release/users/protocols/genericcan.html
index 7cf2d2c70..a198be2e2 100644
--- a/plc4x/pre-release/users/protocols/genericcan.html
+++ b/plc4x/pre-release/users/protocols/genericcan.html
@@ -282,6 +282,9 @@
   <li class="nav-item" data-depth="3">
     <a class="nav-link" href="../tools/opm.html">Object PLC Mapping</a>
   </li>
+  <li class="nav-item" data-depth="3">
+    <a class="nav-link" href="../tools/plc4x-server.html">PLC4X Server</a>
+  </li>
   <li class="nav-item" data-depth="3">
     <a class="nav-link" href="../tools/scraper.html">Scraper</a>
   </li>
diff --git a/plc4x/pre-release/users/protocols/iec-60870.html 
b/plc4x/pre-release/users/protocols/iec-60870.html
index 61c98e734..4e4db0a59 100644
--- a/plc4x/pre-release/users/protocols/iec-60870.html
+++ b/plc4x/pre-release/users/protocols/iec-60870.html
@@ -282,6 +282,9 @@
   <li class="nav-item" data-depth="3">
     <a class="nav-link" href="../tools/opm.html">Object PLC Mapping</a>
   </li>
+  <li class="nav-item" data-depth="3">
+    <a class="nav-link" href="../tools/plc4x-server.html">PLC4X Server</a>
+  </li>
   <li class="nav-item" data-depth="3">
     <a class="nav-link" href="../tools/scraper.html">Scraper</a>
   </li>
diff --git a/plc4x/pre-release/users/protocols/index.html 
b/plc4x/pre-release/users/protocols/index.html
index 7345d94c7..bc41466cb 100644
--- a/plc4x/pre-release/users/protocols/index.html
+++ b/plc4x/pre-release/users/protocols/index.html
@@ -282,6 +282,9 @@
   <li class="nav-item" data-depth="3">
     <a class="nav-link" href="../tools/opm.html">Object PLC Mapping</a>
   </li>
+  <li class="nav-item" data-depth="3">
+    <a class="nav-link" href="../tools/plc4x-server.html">PLC4X Server</a>
+  </li>
   <li class="nav-item" data-depth="3">
     <a class="nav-link" href="../tools/scraper.html">Scraper</a>
   </li>
diff --git a/plc4x/pre-release/users/protocols/knxnetip.html 
b/plc4x/pre-release/users/protocols/knxnetip.html
index afab30bef..d295f5e78 100644
--- a/plc4x/pre-release/users/protocols/knxnetip.html
+++ b/plc4x/pre-release/users/protocols/knxnetip.html
@@ -282,6 +282,9 @@
   <li class="nav-item" data-depth="3">
     <a class="nav-link" href="../tools/opm.html">Object PLC Mapping</a>
   </li>
+  <li class="nav-item" data-depth="3">
+    <a class="nav-link" href="../tools/plc4x-server.html">PLC4X Server</a>
+  </li>
   <li class="nav-item" data-depth="3">
     <a class="nav-link" href="../tools/scraper.html">Scraper</a>
   </li>
diff --git a/plc4x/pre-release/users/protocols/logix.html 
b/plc4x/pre-release/users/protocols/logix.html
index 292714a91..a869bc4cb 100644
--- a/plc4x/pre-release/users/protocols/logix.html
+++ b/plc4x/pre-release/users/protocols/logix.html
@@ -282,6 +282,9 @@
   <li class="nav-item" data-depth="3">
     <a class="nav-link" href="../tools/opm.html">Object PLC Mapping</a>
   </li>
+  <li class="nav-item" data-depth="3">
+    <a class="nav-link" href="../tools/plc4x-server.html">PLC4X Server</a>
+  </li>
   <li class="nav-item" data-depth="3">
     <a class="nav-link" href="../tools/scraper.html">Scraper</a>
   </li>
diff --git a/plc4x/pre-release/users/protocols/modbus.html 
b/plc4x/pre-release/users/protocols/modbus.html
index d6dcd4cc4..867088843 100644
--- a/plc4x/pre-release/users/protocols/modbus.html
+++ b/plc4x/pre-release/users/protocols/modbus.html
@@ -282,6 +282,9 @@
   <li class="nav-item" data-depth="3">
     <a class="nav-link" href="../tools/opm.html">Object PLC Mapping</a>
   </li>
+  <li class="nav-item" data-depth="3">
+    <a class="nav-link" href="../tools/plc4x-server.html">PLC4X Server</a>
+  </li>
   <li class="nav-item" data-depth="3">
     <a class="nav-link" href="../tools/scraper.html">Scraper</a>
   </li>
diff --git a/plc4x/pre-release/users/protocols/opcua.html 
b/plc4x/pre-release/users/protocols/opcua.html
index f2423db9d..980279d47 100644
--- a/plc4x/pre-release/users/protocols/opcua.html
+++ b/plc4x/pre-release/users/protocols/opcua.html
@@ -282,6 +282,9 @@
   <li class="nav-item" data-depth="3">
     <a class="nav-link" href="../tools/opm.html">Object PLC Mapping</a>
   </li>
+  <li class="nav-item" data-depth="3">
+    <a class="nav-link" href="../tools/plc4x-server.html">PLC4X Server</a>
+  </li>
   <li class="nav-item" data-depth="3">
     <a class="nav-link" href="../tools/scraper.html">Scraper</a>
   </li>
diff --git a/plc4x/pre-release/users/protocols/open-protocol.html 
b/plc4x/pre-release/users/protocols/open-protocol.html
index 03b149fdd..954183caa 100644
--- a/plc4x/pre-release/users/protocols/open-protocol.html
+++ b/plc4x/pre-release/users/protocols/open-protocol.html
@@ -282,6 +282,9 @@
   <li class="nav-item" data-depth="3">
     <a class="nav-link" href="../tools/opm.html">Object PLC Mapping</a>
   </li>
+  <li class="nav-item" data-depth="3">
+    <a class="nav-link" href="../tools/plc4x-server.html">PLC4X Server</a>
+  </li>
   <li class="nav-item" data-depth="3">
     <a class="nav-link" href="../tools/scraper.html">Scraper</a>
   </li>
diff --git a/plc4x/pre-release/users/protocols/plc4x.html 
b/plc4x/pre-release/users/protocols/plc4x.html
index ec7ac5a75..04829f524 100644
--- a/plc4x/pre-release/users/protocols/plc4x.html
+++ b/plc4x/pre-release/users/protocols/plc4x.html
@@ -282,6 +282,9 @@
   <li class="nav-item" data-depth="3">
     <a class="nav-link" href="../tools/opm.html">Object PLC Mapping</a>
   </li>
+  <li class="nav-item" data-depth="3">
+    <a class="nav-link" href="../tools/plc4x-server.html">PLC4X Server</a>
+  </li>
   <li class="nav-item" data-depth="3">
     <a class="nav-link" href="../tools/scraper.html">Scraper</a>
   </li>
diff --git a/plc4x/pre-release/users/protocols/profinet.html 
b/plc4x/pre-release/users/protocols/profinet.html
index 556007f00..68e0c2dba 100644
--- a/plc4x/pre-release/users/protocols/profinet.html
+++ b/plc4x/pre-release/users/protocols/profinet.html
@@ -282,6 +282,9 @@
   <li class="nav-item" data-depth="3">
     <a class="nav-link" href="../tools/opm.html">Object PLC Mapping</a>
   </li>
+  <li class="nav-item" data-depth="3">
+    <a class="nav-link" href="../tools/plc4x-server.html">PLC4X Server</a>
+  </li>
   <li class="nav-item" data-depth="3">
     <a class="nav-link" href="../tools/scraper.html">Scraper</a>
   </li>
diff --git a/plc4x/pre-release/users/protocols/s7-light.html 
b/plc4x/pre-release/users/protocols/s7-light.html
index 66b640a99..f2342b03a 100644
--- a/plc4x/pre-release/users/protocols/s7-light.html
+++ b/plc4x/pre-release/users/protocols/s7-light.html
@@ -282,6 +282,9 @@
   <li class="nav-item" data-depth="3">
     <a class="nav-link" href="../tools/opm.html">Object PLC Mapping</a>
   </li>
+  <li class="nav-item" data-depth="3">
+    <a class="nav-link" href="../tools/plc4x-server.html">PLC4X Server</a>
+  </li>
   <li class="nav-item" data-depth="3">
     <a class="nav-link" href="../tools/scraper.html">Scraper</a>
   </li>
diff --git a/plc4x/pre-release/users/protocols/s7.html 
b/plc4x/pre-release/users/protocols/s7.html
index 97152808b..e7a14e801 100644
--- a/plc4x/pre-release/users/protocols/s7.html
+++ b/plc4x/pre-release/users/protocols/s7.html
@@ -282,6 +282,9 @@
   <li class="nav-item" data-depth="3">
     <a class="nav-link" href="../tools/opm.html">Object PLC Mapping</a>
   </li>
+  <li class="nav-item" data-depth="3">
+    <a class="nav-link" href="../tools/plc4x-server.html">PLC4X Server</a>
+  </li>
   <li class="nav-item" data-depth="3">
     <a class="nav-link" href="../tools/scraper.html">Scraper</a>
   </li>
diff --git a/plc4x/pre-release/users/protocols/simulated.html 
b/plc4x/pre-release/users/protocols/simulated.html
index 3d77db6b5..3b389ebaf 100644
--- a/plc4x/pre-release/users/protocols/simulated.html
+++ b/plc4x/pre-release/users/protocols/simulated.html
@@ -282,6 +282,9 @@
   <li class="nav-item" data-depth="3">
     <a class="nav-link" href="../tools/opm.html">Object PLC Mapping</a>
   </li>
+  <li class="nav-item" data-depth="3">
+    <a class="nav-link" href="../tools/plc4x-server.html">PLC4X Server</a>
+  </li>
   <li class="nav-item" data-depth="3">
     <a class="nav-link" href="../tools/scraper.html">Scraper</a>
   </li>
diff --git a/plc4x/pre-release/users/protocols/umas.html 
b/plc4x/pre-release/users/protocols/umas.html
index a93084a55..a50c36036 100644
--- a/plc4x/pre-release/users/protocols/umas.html
+++ b/plc4x/pre-release/users/protocols/umas.html
@@ -282,6 +282,9 @@
   <li class="nav-item" data-depth="3">
     <a class="nav-link" href="../tools/opm.html">Object PLC Mapping</a>
   </li>
+  <li class="nav-item" data-depth="3">
+    <a class="nav-link" href="../tools/plc4x-server.html">PLC4X Server</a>
+  </li>
   <li class="nav-item" data-depth="3">
     <a class="nav-link" href="../tools/scraper.html">Scraper</a>
   </li>
diff --git a/plc4x/pre-release/users/security.html 
b/plc4x/pre-release/users/security.html
index a88654b70..308252302 100644
--- a/plc4x/pre-release/users/security.html
+++ b/plc4x/pre-release/users/security.html
@@ -282,6 +282,9 @@
   <li class="nav-item" data-depth="3">
     <a class="nav-link" href="tools/opm.html">Object PLC Mapping</a>
   </li>
+  <li class="nav-item" data-depth="3">
+    <a class="nav-link" href="tools/plc4x-server.html">PLC4X Server</a>
+  </li>
   <li class="nav-item" data-depth="3">
     <a class="nav-link" href="tools/scraper.html">Scraper</a>
   </li>
diff --git a/plc4x/pre-release/users/tools/capture-replay.html 
b/plc4x/pre-release/users/tools/capture-replay.html
index 4e705e960..543670d20 100644
--- a/plc4x/pre-release/users/tools/capture-replay.html
+++ b/plc4x/pre-release/users/tools/capture-replay.html
@@ -282,6 +282,9 @@
   <li class="nav-item" data-depth="3">
     <a class="nav-link" href="opm.html">Object PLC Mapping</a>
   </li>
+  <li class="nav-item" data-depth="3">
+    <a class="nav-link" href="plc4x-server.html">PLC4X Server</a>
+  </li>
   <li class="nav-item" data-depth="3">
     <a class="nav-link" href="scraper.html">Scraper</a>
   </li>
diff --git a/plc4x/pre-release/users/tools/connection-cache.html 
b/plc4x/pre-release/users/tools/connection-cache.html
index de25f345c..fa355f433 100644
--- a/plc4x/pre-release/users/tools/connection-cache.html
+++ b/plc4x/pre-release/users/tools/connection-cache.html
@@ -282,6 +282,9 @@
   <li class="nav-item" data-depth="3">
     <a class="nav-link" href="opm.html">Object PLC Mapping</a>
   </li>
+  <li class="nav-item" data-depth="3">
+    <a class="nav-link" href="plc4x-server.html">PLC4X Server</a>
+  </li>
   <li class="nav-item" data-depth="3">
     <a class="nav-link" href="scraper.html">Scraper</a>
   </li>
diff --git a/plc4x/pre-release/users/tools/connection-pool.html 
b/plc4x/pre-release/users/tools/connection-pool.html
index c4a653d51..efd591935 100644
--- a/plc4x/pre-release/users/tools/connection-pool.html
+++ b/plc4x/pre-release/users/tools/connection-pool.html
@@ -282,6 +282,9 @@
   <li class="nav-item" data-depth="3">
     <a class="nav-link" href="opm.html">Object PLC Mapping</a>
   </li>
+  <li class="nav-item" data-depth="3">
+    <a class="nav-link" href="plc4x-server.html">PLC4X Server</a>
+  </li>
   <li class="nav-item" data-depth="3">
     <a class="nav-link" href="scraper.html">Scraper</a>
   </li>
diff --git a/plc4x/pre-release/users/tools/index.html 
b/plc4x/pre-release/users/tools/index.html
index 71c2e6bf3..5d42c2a06 100644
--- a/plc4x/pre-release/users/tools/index.html
+++ b/plc4x/pre-release/users/tools/index.html
@@ -282,6 +282,9 @@
   <li class="nav-item" data-depth="3">
     <a class="nav-link" href="opm.html">Object PLC Mapping</a>
   </li>
+  <li class="nav-item" data-depth="3">
+    <a class="nav-link" href="plc4x-server.html">PLC4X Server</a>
+  </li>
   <li class="nav-item" data-depth="3">
     <a class="nav-link" href="scraper.html">Scraper</a>
   </li>
diff --git a/plc4x/pre-release/users/tools/opm.html 
b/plc4x/pre-release/users/tools/opm.html
index ddf968537..ade924655 100644
--- a/plc4x/pre-release/users/tools/opm.html
+++ b/plc4x/pre-release/users/tools/opm.html
@@ -282,6 +282,9 @@
   <li class="nav-item is-current-page" data-depth="3">
     <a class="nav-link" href="opm.html">Object PLC Mapping</a>
   </li>
+  <li class="nav-item" data-depth="3">
+    <a class="nav-link" href="plc4x-server.html">PLC4X Server</a>
+  </li>
   <li class="nav-item" data-depth="3">
     <a class="nav-link" href="scraper.html">Scraper</a>
   </li>
diff --git a/plc4x/pre-release/users/tools/connection-cache.html 
b/plc4x/pre-release/users/tools/plc4x-server.html
similarity index 64%
copy from plc4x/pre-release/users/tools/connection-cache.html
copy to plc4x/pre-release/users/tools/plc4x-server.html
index de25f345c..0903a160a 100644
--- a/plc4x/pre-release/users/tools/connection-cache.html
+++ b/plc4x/pre-release/users/tools/plc4x-server.html
@@ -3,7 +3,7 @@
   <head>
     <meta charset="utf-8">
     <meta name="viewport" content="width=device-width,initial-scale=1">
-    <title>The Connection Cache concept :: PLC4X</title>
+    <title>PLC4X Server :: PLC4X</title>
     <meta name="generator" content="Antora 3.1.14">
 <!--
   Licensed to the Apache Software Foundation (ASF) under one
@@ -276,12 +276,15 @@
   <li class="nav-item" data-depth="3">
     <a class="nav-link" href="capture-replay.html">Capture Replay</a>
   </li>
-  <li class="nav-item is-current-page" data-depth="3">
+  <li class="nav-item" data-depth="3">
     <a class="nav-link" href="connection-cache.html">The Connection Cache 
concept</a>
   </li>
   <li class="nav-item" data-depth="3">
     <a class="nav-link" href="opm.html">Object PLC Mapping</a>
   </li>
+  <li class="nav-item is-current-page" data-depth="3">
+    <a class="nav-link" href="plc4x-server.html">PLC4X Server</a>
+  </li>
   <li class="nav-item" data-depth="3">
     <a class="nav-link" href="scraper.html">Scraper</a>
   </li>
@@ -463,88 +466,113 @@
     <li><a href="../index.html">PLC4X</a></li>
     <li><a href="../index.html">Users</a></li>
     <li><a href="index.html">Tools</a></li>
-    <li><a href="connection-cache.html">The Connection Cache concept</a></li>
+    <li><a href="plc4x-server.html">PLC4X Server</a></li>
   </ul>
 </nav>
 <div class="page-versions">
   <button class="version-menu-toggle" title="Show other versions of 
page">pre-release</button>
   <div class="version-menu">
-    <a class="version is-current" href="connection-cache.html">pre-release</a>
-    <a class="version" 
href="../../../latest/users/tools/connection-cache.html">latest</a>
-    <a class="version" 
href="../../../0.12.0/users/tools/connection-cache.html">0.12.0</a>
+    <a class="version is-current" href="plc4x-server.html">pre-release</a>
+    <a class="version is-missing" 
href="../../../latest/users/index.html">latest</a>
+    <a class="version is-missing" 
href="../../../0.12.0/users/index.html">0.12.0</a>
   </div>
 </div>
-<div class="edit-this-page"><a 
href="https://github.com/apache/plc4x/edit/develop/website/asciidoc/modules/users/pages/tools/connection-cache.adoc";>Edit
 this Page</a></div>
+<div class="edit-this-page"><a 
href="https://github.com/apache/plc4x/edit/develop/website/asciidoc/modules/users/pages/tools/plc4x-server.adoc";>Edit
 this Page</a></div>
 </div>
   <div class="content">
 <aside class="toc sidebar" data-title="Contents" data-levels="2">
   <div class="toc-menu"></div>
 </aside>
 <article class="doc">
-<h1 class="page">The Connection Cache concept</h1>
+<h1 class="page">PLC4X Server</h1>
 <div id="preamble">
 <div class="sectionbody">
 <div class="paragraph">
-<p>In some applications there might be multiple parts of the code that require 
access to a PLC connection.</p>
+<p>The <code>PLC4X Server</code> is a small relay server that speaks the 
<strong>PLC4X proxy protocol</strong>.</p>
 </div>
 <div class="paragraph">
-<p>In contrast to usual microservice architectures, with PLCs we can&#8217;t 
simply open as many connections as we like. For example a S7-1200 typically 
allows 3 concurrent connections.</p>
+<p>A client using the <code>plc4x</code> driver connects to this server, and 
the server opens the <em>real</em> connection to a PLC on its behalf and 
forwards reads and writes.</p>
 </div>
 <div class="paragraph">
-<p>Also can the process of establishing a connection be a pretty 
cost-intensive task. For example in the ADS protocol, when connecting, the 
driver loads the tables containing the description of all data-types defined in 
the PLC alongside the symbol-table which declares which variables are defined, 
which addresses they have, which datatype they reference and where they are 
located in the PLCs memory.</p>
+<p>This is useful when the PLCs are only reachable from the machine running 
the server (e.g. behind a firewall or on an isolated OT network), while the 
clients live elsewhere.</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre> +------------+   plc4x proxy protocol    +--------------+   native 
protocol   +-------+
+ |  client    | ------------------------&gt; | PLC4X Server | 
------------------&gt; |  PLC  |
+ | (plc4x drv)|        TLS + auth         |              |   (s7, modbus, …)   
|       |
+ +------------+                           +--------------+                     
+-------+</pre>
 </div>
-<div class="paragraph">
-<p>Even if only one block of code repeatedly requires access to the PLC, 
simply creating a connection every time would put a too high load on the PLC 
and the network.</p>
 </div>
 <div class="paragraph">
-<p>When using the connection cache, many pieces of code can use it in 
parallel. However, only one piece of code can have access to a connection at 
the same time.</p>
+<p>The server bundles <strong>all</strong> PLC4X drivers, so the relayed 
connection string can target any supported protocol (<code>s7</code>, 
<code>modbus</code>, <code>ads</code>, <code>opcua</code>, 
<code>simulated</code>, …).</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_security_model"><a class="anchor" 
href="#_security_model"></a>Security model</h2>
+<div class="sectionbody">
+<div class="ulist">
+<ul>
+<li>
+<p><strong>Authentication is mandatory.</strong> Every client connection must 
complete a username/password handshake before any operation is accepted. There 
is no unauthenticated mode.</p>
+</li>
+<li>
+<p><strong>TLS is the default transport.</strong> Credentials and payloads are 
encrypted in transit. Plaintext TCP is available only as an explicit opt-in for 
trusted networks/testing.</p>
+</li>
+</ul>
 </div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_building"><a class="anchor" href="#_building"></a>Building</h2>
+<div class="sectionbody">
 <div class="paragraph">
-<p>So the first thread asking for a new connection will have the cache create 
a new connection and return it to the client. It can then use this just like 
any ordinary connection retrieved from the basic PlcConnectionManager. The main 
difference however is, that as soon as the client calls <code>close()</code> on 
this so-called connection-lease, the connection is not closed, but the cache 
puts it back into the storage, waiting for the next thread to require it.</p>
+<p>From the module directory:</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="highlightjs highlight"><code class="language-bash hljs" 
data-lang="bash">mvn package</code></pre>
+</div>
 </div>
 <div class="paragraph">
-<p>If a thread asks for a connection, which is currently leased by another 
thread, then the requesting thread will wait till the connection is returned 
and will then instantly continue using the connection till it then returns it 
back to the cache.</p>
+<p>This produces a runnable fat-jar at 
<code>target/plc4j-plc4x-server-&lt;version&gt;.jar</code>.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_running_the_server"><a class="anchor" 
href="#_running_the_server"></a>Running the server</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="highlightjs highlight"><code class="language-bash hljs" 
data-lang="bash">java -jar target/plc4j-plc4x-server-&lt;version&gt;.jar 
[port]</code></pre>
+</div>
 </div>
 <div class="paragraph">
-<p>If a second thread however asks for a different connection (with a 
different connection string), then the connection cache will create a new 
connection and return that instantly.</p>
+<p>The listen port may be given as the first argument, or via the 
<code>plc4x.server.port</code> system property / <code>PLC4X_SERVER_PORT</code> 
environment variable. If omitted it defaults to <strong>59837</strong>.</p>
 </div>
+<div class="sect2">
+<h3 id="_first_start_with_no_configuration"><a class="anchor" 
href="#_first_start_with_no_configuration"></a>First start with no 
configuration</h3>
 <div class="paragraph">
-<p>When using the connection cache, connections should not use a 
connection-lease for a prolonged period of time. So the connection cache keeps 
track of the leases it hands out and terminates connection-leases that have not 
been returned for a long time.</p>
+<p>If you start the server without configuring credentials, it generates a 
default identity and prints it <strong>once</strong> to the console:</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre>============================================================
+ No PLC4X server credentials configured - generated defaults:
+   username: toddy
+   password: 3Qm0v2yq... (randomly generated)
+ Provide plc4x.server.username/password to set your own.
+============================================================</pre>
+</div>
 </div>
 <div class="paragraph">
-<p>Here comes an example application, that uses the connection cache:</p>
+<p>Because no keystore is configured either, it also generates an ephemeral 
self-signed TLS certificate and logs its fingerprint so a client can trust/pin 
it:</p>
 </div>
 <div class="listingblock">
 <div class="content">
-<pre class="highlightjs highlight"><code class="language-java hljs" 
data-lang="java">    public static void main(String[] args) throws Exception {
-        PlcConnectionManager connectionManager = 
CachedPlcConnectionManager.getBuilder().build();
-        for (int i = 0; i &lt; 10000; i++) {
-            try(PlcConnection connection = 
connectionManager.getConnection("s7://192.168.1.192")) {
-                if (connection.isConnected()){
-                    PlcReadRequest.Builder builder = 
connection.readRequestBuilder();
-                    builder.addTagAddress("PollingValue", "%DB1:4.0:BOOL");
-                    PlcReadRequest readRequest = builder.build();
-                    PlcReadResponse syncResponse = 
readRequest.execute().get(2000, TimeUnit.MILLISECONDS);
-                    printResponse(syncResponse);
-                } else {
-                    logger.info("PLC is not connected, let's try again to 
connect");
-                    connection.connect();
-                }
-            } catch (PlcConnectionException e){
-                logger.error("Connection exception in trying to connect", e);
-            } catch (CancellationException e){
-                logger.error("Polling Thread canceled", e);
-            } catch (IllegalStateException e){
-                logger.error("Error in Netty state machine", e);
-            } catch (ExecutionException e){
-                logger.error("Interrupted Exception fired", e);
-            } catch (TimeoutException e) {
-                logger.error("Timeout exception fired", e);
-            }
-            TimeUnit.MILLISECONDS.sleep(100);
-        }
-        System.exit(0);
-    }</code></pre>
+<pre>No keystore configured - generated an ephemeral self-signed certificate.
+Server certificate SHA-256 fingerprint: B1:A5:51:F8:...:35:CE</pre>
 </div>
 </div>
 <div class="admonitionblock note">
@@ -554,104 +582,202 @@
 <i class="fa icon-note" title="Note"></i>
 </td>
 <td class="content">
+Configured credentials are <strong>never</strong> logged — only generated ones 
are printed.
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_configuration"><a class="anchor" 
href="#_configuration"></a>Configuration</h2>
+<div class="sectionbody">
 <div class="paragraph">
-<p>To use the Connection Cache you have to add a dependency to the 
<code>plc4j-connection-cache</code> module.</p>
+<p>All settings are read from system properties (<code>-D…</code>) or 
environment variables.</p>
 </div>
+<table class="tableblock frame-all grid-all stretch">
+<colgroup>
+<col style="width: 20%;">
+<col style="width: 30%;">
+<col style="width: 30%;">
+<col style="width: 20%;">
+</colgroup>
+<thead>
+<tr>
+<th class="tableblock halign-left valign-top">Setting</th>
+<th class="tableblock halign-left valign-top">System property</th>
+<th class="tableblock halign-left valign-top">Environment variable</th>
+<th class="tableblock halign-left valign-top">Default</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Listen 
port</p></td>
+<td class="tableblock halign-left valign-top"><p 
class="tableblock"><code>plc4x.server.port</code></p></td>
+<td class="tableblock halign-left valign-top"><p 
class="tableblock"><code>PLC4X_SERVER_PORT</code></p></td>
+<td class="tableblock halign-left valign-top"><p 
class="tableblock"><code>59837</code></p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p 
class="tableblock">Username</p></td>
+<td class="tableblock halign-left valign-top"><p 
class="tableblock"><code>plc4x.server.username</code></p></td>
+<td class="tableblock halign-left valign-top"><p 
class="tableblock"><code>PLC4X_SERVER_USERNAME</code></p></td>
+<td class="tableblock halign-left valign-top"><p 
class="tableblock"><code>toddy</code></p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p 
class="tableblock">Password</p></td>
+<td class="tableblock halign-left valign-top"><p 
class="tableblock"><code>plc4x.server.password</code></p></td>
+<td class="tableblock halign-left valign-top"><p 
class="tableblock"><code>PLC4X_SERVER_PASSWORD</code></p></td>
+<td class="tableblock halign-left valign-top"><p 
class="tableblock"><em>(generated)</em></p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Plaintext 
mode</p></td>
+<td class="tableblock halign-left valign-top"><p 
class="tableblock"><code>plc4x.server.plaintext</code></p></td>
+<td class="tableblock halign-left valign-top"><p 
class="tableblock"><code>PLC4X_SERVER_PLAINTEXT</code></p></td>
+<td class="tableblock halign-left valign-top"><p 
class="tableblock"><code>false</code> (TLS on)</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">TLS 
keystore</p></td>
+<td class="tableblock halign-left valign-top"><p 
class="tableblock"><code>plc4x.server.keystore</code></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">—</p></td>
+<td class="tableblock halign-left valign-top"><p 
class="tableblock"><em>(self-signed)</em></p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Keystore 
pass.</p></td>
+<td class="tableblock halign-left valign-top"><p 
class="tableblock"><code>plc4x.server.keystore-password</code></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">—</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">—</p></td>
+</tr>
+</tbody>
+</table>
+<div class="sect2">
+<h3 id="_example_explicit_credentials_your_own_tls_certificate"><a 
class="anchor" 
href="#_example_explicit_credentials_your_own_tls_certificate"></a>Example: 
explicit credentials + your own TLS certificate</h3>
 <div class="listingblock">
 <div class="content">
-<pre>    &lt;dependency&gt;
-      &lt;groupId&gt;org.apache.plc4x&lt;/groupId&gt;
-      &lt;artifactId&gt;plc4j-connection-cache&lt;/artifactId&gt;
-      &lt;version&gt;0.14.0-SNAPSHOT&lt;/version&gt;
-    &lt;/dependency&gt;</pre>
+<pre class="highlightjs highlight"><code class="language-bash hljs" 
data-lang="bash">java \
+  -Dplc4x.server.port=59837 \
+  -Dplc4x.server.username=operator \
+  -Dplc4x.server.password='s3cr3t!' \
+  -Dplc4x.server.keystore=/etc/plc4x/server.p12 \
+  -Dplc4x.server.keystore-password='keystorepass' \
+  -jar target/plc4j-plc4x-server-&lt;version&gt;.jar</code></pre>
 </div>
 </div>
-</td>
-</tr>
-</table>
+<div class="paragraph">
+<p>The keystore must be a PKCS12 (or JKS) file containing the server&#8217;s 
private key and certificate.</p>
+</div>
 </div>
+<div class="sect2">
+<h3 id="_example_plaintext_trusted_network_local_testing_only"><a 
class="anchor" 
href="#_example_plaintext_trusted_network_local_testing_only"></a>Example: 
plaintext (trusted network / local testing only)</h3>
+<div class="listingblock">
+<div class="content">
+<pre class="highlightjs highlight"><code class="language-bash hljs" 
data-lang="bash">java -Dplc4x.server.plaintext=true \
+     -Dplc4x.server.username=operator \
+     -Dplc4x.server.password='s3cr3t!' \
+     -jar target/plc4j-plc4x-server-&lt;version&gt;.jar</code></pre>
+</div>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_connecting_a_client"><a class="anchor" 
href="#_connecting_a_client"></a>Connecting a client</h2>
+<div class="sectionbody">
 <div class="paragraph">
-<p>In this snippet of code there are some considerations that are worth to be 
underlined.</p>
+<p>A client uses the <code>plc4x</code> driver. The connection string points 
at the server, and the <strong><code>remote-connection-string</code></strong> 
parameter (URL-encoded) tells the server which PLC to open.</p>
+</div>
+<div class="sect2">
+<h3 id="_connection_string_format"><a class="anchor" 
href="#_connection_string_format"></a>Connection string format</h3>
+<div class="listingblock">
+<div class="content">
+<pre>plc4x:&lt;transport&gt;://&lt;server-host&gt;:&lt;server-port&gt;?remote-connection-string=&lt;url-encoded-plc-url&gt;&amp;username=&lt;user&gt;&amp;password=&lt;pass&gt;[&amp;tls.verify-ssl=false]</pre>
+</div>
 </div>
 <div class="ulist">
 <ul>
 <li>
-<p>In recent versions of PLC4X we have refactored the 
<code>PlcDriverManager</code> to provide access to a 
<code>PlcConnectionManager</code> interface. This contains all methods that are 
related to creating connections. The ConnectionCache implements this same 
interface, therefore you can use a <code>CachedPlcConnectionManager</code> 
everywhere you can use the normal <code>PlcConnectionManager</code>.</p>
+<p><code>&lt;transport&gt;</code> is <code>tls</code> (default) or 
<code>tcp</code> (plaintext). <code>plc4x://…</code> without a prefix uses the 
default, TLS.</p>
 </li>
 <li>
-<p>A new <code>CachedPlcConnectionManager</code> is usually created using a 
builder, that can be accessed via: 
<code>CachedPlcConnectionManager.getBuilder()</code>. This will be explained in 
more detail in the next chapter.</p>
+<p><code>remote-connection-string</code> is the <strong>URL-encoded</strong> 
connection string the server should open to the actual PLC.</p>
 </li>
 <li>
-<p>The <code>try-with-resources</code> statement (i.e. <code>try 
(PlcConnection connection = 
connectionManager.getConnection(connectionString))</code>) ensures that a 
leased connection will be automatically returned to the cache after the use. As 
said before if the application keeps hold of the connection for too long, after 
a configurable amount of time will be automatically closed by the cache and the 
thread can no-longer use it (i.e. the <code>maxLeaseTime</code> parameter 
defaults to [...]
+<p><code>username</code> / <code>password</code> are mandatory.</p>
 </li>
 <li>
-<p>Before handing out a connection-lease, the connection cache will execute a 
<code>ping()</code> operation on the corresponding connection to check if 
it&#8217;s still valid. If this check fails, the cache will terminate this 
connection, establish a new one and then return a handle for that new 
connection.</p>
+<p><code>tls.verify-ssl=false</code> disables certificate validation — needed 
when the server uses an auto-generated self-signed certificate. With a properly 
trusted (CA-signed) certificate, leave it at its default 
(<code>true</code>).</p>
 </li>
 </ul>
 </div>
 </div>
-</div>
 <div class="sect2">
-<h3 id="_configuring_the_cachedplcconnectionmanager"><a class="anchor" 
href="#_configuring_the_cachedplcconnectionmanager"></a>Configuring the 
CachedPlcConnectionManager</h3>
+<h3 id="_example_java"><a class="anchor" href="#_example_java"></a>Example 
(Java)</h3>
 <div class="paragraph">
-<p>As mentioned before the <code>CachedPlcConnectionManager</code> is 
configurable. Mainly this involves configuring the timeouts.</p>
+<p>Target PLC URL <code>s7://10.10.1.5</code> → URL-encoded as 
<code>s7%3A%2F%2F10.10.1.5</code>.</p>
 </div>
+<div class="listingblock">
+<div class="content">
+<pre class="highlightjs highlight"><code class="language-java hljs" 
data-lang="java">String url = "plc4x:tls://server.example.com:59837"
+    + "?remote-connection-string=s7%3A%2F%2F10.10.1.5"
+    + "&amp;username=operator"
+    + "&amp;password=s3cr3t!"
+    + "&amp;tls.verify-ssl=false"; // self-signed server cert
+
+try (PlcConnection connection = new 
DefaultPlcDriverManager().getConnection(url)) {
+    PlcReadRequest request = connection.readRequestBuilder()
+        .addTagAddress("value", "%DB1.DBW0:INT")
+        .build();
+    PlcReadResponse response = request.execute().get();
+    System.out.println(response.getInteger("value"));
+}</code></pre>
+</div>
+</div>
+</div>
+<div class="sect2">
+<h3 id="_plaintext_client"><a class="anchor" 
href="#_plaintext_client"></a>Plaintext client</h3>
+<div class="listingblock">
+<div class="content">
+<pre class="highlightjs highlight"><code class="language-java hljs" 
data-lang="java">String url = "plc4x:tcp://server.example.com:59837"
+    + "?remote-connection-string=s7%3A%2F%2F10.10.1.5"
+    + "&amp;username=operator&amp;password=s3cr3t!";</code></pre>
+</div>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_troubleshooting"><a class="anchor" 
href="#_troubleshooting"></a>Troubleshooting</h2>
+<div class="sectionbody">
 <table class="tableblock frame-all grid-all stretch">
 <colgroup>
-<col style="width: 18.1818%;">
-<col style="width: 18.1818%;">
-<col style="width: 18.1818%;">
-<col style="width: 45.4546%;">
+<col style="width: 40%;">
+<col style="width: 60%;">
 </colgroup>
 <thead>
 <tr>
-<th class="tableblock halign-left valign-top">Name</th>
-<th class="tableblock halign-left valign-top">type</th>
-<th class="tableblock halign-left valign-top">Default</th>
-<th class="tableblock halign-left valign-top">Description</th>
+<th class="tableblock halign-left valign-top">Symptom</th>
+<th class="tableblock halign-left valign-top">Cause / fix</th>
 </tr>
 </thead>
 <tbody>
 <tr>
-<td class="tableblock halign-left valign-top"><p 
class="tableblock">maxLeaseTime</p></td>
-<td class="tableblock halign-left valign-top"><p 
class="tableblock">java.time.Duration</p></td>
-<td class="tableblock halign-left valign-top"><div class="content"><div 
class="paragraph">
-<p><code>4 seconds</code></p>
-</div></div></td>
-<td class="tableblock halign-left valign-top"><div class="content"><div 
class="paragraph">
-<p>Time that a thread is allowed to keep a connection-lease till the 
connection-cache terminates the lease.</p>
-</div></div></td>
+<td class="tableblock halign-left valign-top"><p 
class="tableblock"><code>Server certificate not trusted … PKIX path building 
failed</code></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">TLS cert 
not trusted by the client. Add <code>tls.verify-ssl=false</code>, or trust/pin 
the server cert.</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Connect 
fails with <code>ACCESS_DENIED</code> / authentication error</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Missing or 
wrong <code>username</code> / <code>password</code>.</p></td>
 </tr>
 <tr>
-<td class="tableblock halign-left valign-top"><p 
class="tableblock">maxWaitTime</p></td>
-<td class="tableblock halign-left valign-top"><p 
class="tableblock">java.time.Duration</p></td>
-<td class="tableblock halign-left valign-top"><div class="content"><div 
class="paragraph">
-<p><code>20 seconds</code></p>
-</div></div></td>
-<td class="tableblock halign-left valign-top"><div class="content"><div 
class="paragraph">
-<p>Time that a thread asking for a connection will wait until the connection 
cache gives up and throws a <code>PlcConnectionException</code>.</p>
-</div></div></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Connect 
hangs or fails immediately on a <code>tcp</code> client vs <code>tls</code> 
server</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Transport 
mismatch — client and server must agree on TLS vs plaintext.</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p 
class="tableblock"><code>INVALID_ADDRESS</code> on connect</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">The server 
could not open the <code>remote-connection-string</code> (bad URL, PLC 
unreachable).</p></td>
 </tr>
 </tbody>
 </table>
-<div class="paragraph">
-<p>The configuration of a <code>CachedPlcConnectionManager</code> is done when 
creating the instance. For this the builder contains two methods to configure 
the timeouts.</p>
-</div>
-<div class="paragraph">
-<p>Here comes an example:</p>
-</div>
-<div class="listingblock">
-<div class="content">
-<pre class="highlightjs highlight"><code class="language-java hljs" 
data-lang="java">    public static void main(String[] args) throws Exception {
-        PlcConnectionManager connectionManager = 
CachedPlcConnectionManager.getBuilder()
-            .withMaxLeaseTime(Duration.ofSeconds(10))
-            .withMaxWaitTime(Duration.ofMinutes(1))
-            .build();
-
-        ...
-
-    }</code></pre>
-</div>
 </div>
 </div>
 </article>
diff --git a/plc4x/pre-release/users/tools/scraper.html 
b/plc4x/pre-release/users/tools/scraper.html
index 0a06e852f..b3b06407f 100644
--- a/plc4x/pre-release/users/tools/scraper.html
+++ b/plc4x/pre-release/users/tools/scraper.html
@@ -282,6 +282,9 @@
   <li class="nav-item" data-depth="3">
     <a class="nav-link" href="opm.html">Object PLC Mapping</a>
   </li>
+  <li class="nav-item" data-depth="3">
+    <a class="nav-link" href="plc4x-server.html">PLC4X Server</a>
+  </li>
   <li class="nav-item is-current-page" data-depth="3">
     <a class="nav-link" href="scraper.html">Scraper</a>
   </li>
diff --git a/plc4x/pre-release/users/tools/testing.html 
b/plc4x/pre-release/users/tools/testing.html
index e1d50ce46..d7327886e 100644
--- a/plc4x/pre-release/users/tools/testing.html
+++ b/plc4x/pre-release/users/tools/testing.html
@@ -282,6 +282,9 @@
   <li class="nav-item" data-depth="3">
     <a class="nav-link" href="opm.html">Object PLC Mapping</a>
   </li>
+  <li class="nav-item" data-depth="3">
+    <a class="nav-link" href="plc4x-server.html">PLC4X Server</a>
+  </li>
   <li class="nav-item" data-depth="3">
     <a class="nav-link" href="scraper.html">Scraper</a>
   </li>
diff --git a/plc4x/pre-release/users/transports/can.html 
b/plc4x/pre-release/users/transports/can.html
index ca5e1b596..cf45e0bde 100644
--- a/plc4x/pre-release/users/transports/can.html
+++ b/plc4x/pre-release/users/transports/can.html
@@ -282,6 +282,9 @@
   <li class="nav-item" data-depth="3">
     <a class="nav-link" href="../tools/opm.html">Object PLC Mapping</a>
   </li>
+  <li class="nav-item" data-depth="3">
+    <a class="nav-link" href="../tools/plc4x-server.html">PLC4X Server</a>
+  </li>
   <li class="nav-item" data-depth="3">
     <a class="nav-link" href="../tools/scraper.html">Scraper</a>
   </li>
diff --git a/plc4x/pre-release/users/transports/index.html 
b/plc4x/pre-release/users/transports/index.html
index 9c902e9e0..f0da7ad40 100644
--- a/plc4x/pre-release/users/transports/index.html
+++ b/plc4x/pre-release/users/transports/index.html
@@ -282,6 +282,9 @@
   <li class="nav-item" data-depth="3">
     <a class="nav-link" href="../tools/opm.html">Object PLC Mapping</a>
   </li>
+  <li class="nav-item" data-depth="3">
+    <a class="nav-link" href="../tools/plc4x-server.html">PLC4X Server</a>
+  </li>
   <li class="nav-item" data-depth="3">
     <a class="nav-link" href="../tools/scraper.html">Scraper</a>
   </li>
diff --git a/plc4x/pre-release/users/transports/pcap-replay.html 
b/plc4x/pre-release/users/transports/pcap-replay.html
index 972968686..9b865d99c 100644
--- a/plc4x/pre-release/users/transports/pcap-replay.html
+++ b/plc4x/pre-release/users/transports/pcap-replay.html
@@ -282,6 +282,9 @@
   <li class="nav-item" data-depth="3">
     <a class="nav-link" href="../tools/opm.html">Object PLC Mapping</a>
   </li>
+  <li class="nav-item" data-depth="3">
+    <a class="nav-link" href="../tools/plc4x-server.html">PLC4X Server</a>
+  </li>
   <li class="nav-item" data-depth="3">
     <a class="nav-link" href="../tools/scraper.html">Scraper</a>
   </li>
diff --git a/plc4x/pre-release/users/transports/raw-socket.html 
b/plc4x/pre-release/users/transports/raw-socket.html
index d3fd0fa65..0db961c78 100644
--- a/plc4x/pre-release/users/transports/raw-socket.html
+++ b/plc4x/pre-release/users/transports/raw-socket.html
@@ -282,6 +282,9 @@
   <li class="nav-item" data-depth="3">
     <a class="nav-link" href="../tools/opm.html">Object PLC Mapping</a>
   </li>
+  <li class="nav-item" data-depth="3">
+    <a class="nav-link" href="../tools/plc4x-server.html">PLC4X Server</a>
+  </li>
   <li class="nav-item" data-depth="3">
     <a class="nav-link" href="../tools/scraper.html">Scraper</a>
   </li>
diff --git a/plc4x/pre-release/users/transports/serial.html 
b/plc4x/pre-release/users/transports/serial.html
index f6408dac3..8af910deb 100644
--- a/plc4x/pre-release/users/transports/serial.html
+++ b/plc4x/pre-release/users/transports/serial.html
@@ -282,6 +282,9 @@
   <li class="nav-item" data-depth="3">
     <a class="nav-link" href="../tools/opm.html">Object PLC Mapping</a>
   </li>
+  <li class="nav-item" data-depth="3">
+    <a class="nav-link" href="../tools/plc4x-server.html">PLC4X Server</a>
+  </li>
   <li class="nav-item" data-depth="3">
     <a class="nav-link" href="../tools/scraper.html">Scraper</a>
   </li>
diff --git a/plc4x/pre-release/users/transports/socketcan.html 
b/plc4x/pre-release/users/transports/socketcan.html
index da2d3e4c4..49cf81059 100644
--- a/plc4x/pre-release/users/transports/socketcan.html
+++ b/plc4x/pre-release/users/transports/socketcan.html
@@ -282,6 +282,9 @@
   <li class="nav-item" data-depth="3">
     <a class="nav-link" href="../tools/opm.html">Object PLC Mapping</a>
   </li>
+  <li class="nav-item" data-depth="3">
+    <a class="nav-link" href="../tools/plc4x-server.html">PLC4X Server</a>
+  </li>
   <li class="nav-item" data-depth="3">
     <a class="nav-link" href="../tools/scraper.html">Scraper</a>
   </li>
diff --git a/plc4x/pre-release/users/transports/tcp.html 
b/plc4x/pre-release/users/transports/tcp.html
index 412e7fbb9..d3aea6e5c 100644
--- a/plc4x/pre-release/users/transports/tcp.html
+++ b/plc4x/pre-release/users/transports/tcp.html
@@ -282,6 +282,9 @@
   <li class="nav-item" data-depth="3">
     <a class="nav-link" href="../tools/opm.html">Object PLC Mapping</a>
   </li>
+  <li class="nav-item" data-depth="3">
+    <a class="nav-link" href="../tools/plc4x-server.html">PLC4X Server</a>
+  </li>
   <li class="nav-item" data-depth="3">
     <a class="nav-link" href="../tools/scraper.html">Scraper</a>
   </li>
diff --git a/plc4x/pre-release/users/transports/udp.html 
b/plc4x/pre-release/users/transports/udp.html
index 085a0a09b..763cbe61b 100644
--- a/plc4x/pre-release/users/transports/udp.html
+++ b/plc4x/pre-release/users/transports/udp.html
@@ -282,6 +282,9 @@
   <li class="nav-item" data-depth="3">
     <a class="nav-link" href="../tools/opm.html">Object PLC Mapping</a>
   </li>
+  <li class="nav-item" data-depth="3">
+    <a class="nav-link" href="../tools/plc4x-server.html">PLC4X Server</a>
+  </li>
   <li class="nav-item" data-depth="3">
     <a class="nav-link" href="../tools/scraper.html">Scraper</a>
   </li>
diff --git a/search-index.js b/search-index.js
index 74a92faad..3cdcda27c 100644
--- a/search-index.js
+++ b/search-index.js
@@ -1 +1 @@
-antoraSearch.initSearch(lunr, 
{"index":{"version":"2.3.9","fields":["title","name","text","component"],"fieldVectors":[["title/1",[0,68.241]],["name/1",[1,1.518]],["text/1",[]],["component/1",[2,0.399]],["title/2-1",[3,34.251,4,29.605]],["name/2-1",[]],["text/2-1",[]],["component/2-1",[]],["title/2-2",[5,42.682]],["name/2-2",[]],["text/2-2",[]],["component/2-2",[]],["title/2-3",[6,11.978,7,12.614,8,9.475,9,16.29,10,15.567,11,20.896,12,26.036,13,12.106]],["name/2-3",[]],["text/2-3",[]],["
 [...]
\ No newline at end of file
+antoraSearch.initSearch(lunr, 
{"index":{"version":"2.3.9","fields":["title","name","text","component"],"fieldVectors":[["title/1",[0,68.352]],["name/1",[1,1.518]],["text/1",[]],["component/1",[2,0.398]],["title/2-1",[3,34.343,4,29.696]],["name/2-1",[]],["text/2-1",[]],["component/2-1",[]],["title/2-2",[5,42.792]],["name/2-2",[]],["text/2-2",[]],["component/2-2",[]],["title/2-3",[6,11.992,7,12.659,8,9.5,9,16.266,10,15.551,11,20.941,12,26.082,13,12.151]],["name/2-3",[]],["text/2-3",[]],["c
 [...]
\ No newline at end of file

Reply via email to