This is an automated email from the ASF dual-hosted git repository.
git-site-role 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 28ad574 Site checkin for project PLC4X: Jenkins Tools
28ad574 is described below
commit 28ad574f619f7561238f6f55d6f9352160ef4099
Author: jenkins <[email protected]>
AuthorDate: Mon Oct 7 19:35:37 2019 +0000
Site checkin for project PLC4X: Jenkins Tools
---
dependency-convergence.html | 1 +
dependency-info.html | 1 +
dependency-management.html | 1 +
developers/building.html | 1 +
developers/ci.html | 1 +
developers/code-gen/index.html | 1 +
developers/code-gen/language/freemarker.html | 1 +
developers/code-gen/protocol/df1.html | 1 +
developers/code-gen/protocol/mspec.html | 1 +
developers/conferences.html | 1 +
developers/contributing.html | 1 +
developers/decisions.html | 1 +
developers/issues.html | 1 +
developers/jqassistant.html | 1 +
developers/maturity.html | 1 +
developers/preparing.html | 1 +
developers/release-build-tools.html | 1 +
developers/release.html | 1 +
developers/sonar.html | 1 +
developers/team.html | 1 +
developers/vm.html | 1 +
developers/vpn.html | 1 +
developers/website.html | 1 +
developers/wiki.html | 1 +
developers/writing-driver/writing-driver.html | 1 +
distribution-management.html | 1 +
index.html | 1 +
issue-management.html | 1 +
licenses.html | 1 +
mailing-lists.html | 1 +
modules.html | 1 +
plugin-management.html | 1 +
plugins.html | 1 +
project-info.html | 1 +
protocols/ads/index.html | 1 +
protocols/delta-v/index.html | 1 +
protocols/delta-v/read-data.html | 1 +
protocols/delta-v/reverse-engineering.html | 1 +
protocols/ehtercat/index.html | 1 +
protocols/ethernet-ip/index.html | 1 +
protocols/features.html | 1 +
protocols/index.html | 1 +
protocols/modbus/index.html | 1 +
protocols/opc-ua/index.html | 1 +
protocols/s7/index.html | 1 +
protocols/s7/s7comm-plus.html | 1 +
protocols/s7/s7comm.html | 1 +
scm.html | 1 +
sitemap.html | 2 +
summary.html | 1 +
users/download.html | 1 +
users/gettingstarted.html | 1 +
users/industry40.html | 1 +
users/opm.html | 1 +
users/security.html | 1 +
users/{opm.html => testing.html} | 185 +++++++++++++++++++++-----
56 files changed, 208 insertions(+), 33 deletions(-)
diff --git a/dependency-convergence.html b/dependency-convergence.html
index 8c30632..1e2cd18 100644
--- a/dependency-convergence.html
+++ b/dependency-convergence.html
@@ -53,6 +53,7 @@
<ul class="dropdown-menu">
<li ><a href="users/download.html" title="Download"
>Download</a></li>
<li ><a href="users/gettingstarted.html" title="Getting
Started" >Getting Started</a></li>
+ <li ><a href="users/testing.html" title="PLC4X without a
PLC and Unit Testing" >PLC4X without a PLC and Unit Testing</a></li>
<li ><a href="users/opm.html" title="Object PLC Mapping
(OPM)" >Object PLC Mapping (OPM)</a></li>
<li ><a href="users/industry40.html" title="Industry 4.0
with Apache" >Industry 4.0 with Apache</a></li>
<li ><a href="users/security.html" title="Security"
>Security</a></li>
diff --git a/dependency-info.html b/dependency-info.html
index 9794910..79aa440 100644
--- a/dependency-info.html
+++ b/dependency-info.html
@@ -53,6 +53,7 @@
<ul class="dropdown-menu">
<li ><a href="users/download.html" title="Download"
>Download</a></li>
<li ><a href="users/gettingstarted.html" title="Getting
Started" >Getting Started</a></li>
+ <li ><a href="users/testing.html" title="PLC4X without a
PLC and Unit Testing" >PLC4X without a PLC and Unit Testing</a></li>
<li ><a href="users/opm.html" title="Object PLC Mapping
(OPM)" >Object PLC Mapping (OPM)</a></li>
<li ><a href="users/industry40.html" title="Industry 4.0
with Apache" >Industry 4.0 with Apache</a></li>
<li ><a href="users/security.html" title="Security"
>Security</a></li>
diff --git a/dependency-management.html b/dependency-management.html
index fe02a90..cc96e50 100644
--- a/dependency-management.html
+++ b/dependency-management.html
@@ -53,6 +53,7 @@
<ul class="dropdown-menu">
<li ><a href="users/download.html" title="Download"
>Download</a></li>
<li ><a href="users/gettingstarted.html" title="Getting
Started" >Getting Started</a></li>
+ <li ><a href="users/testing.html" title="PLC4X without a
PLC and Unit Testing" >PLC4X without a PLC and Unit Testing</a></li>
<li ><a href="users/opm.html" title="Object PLC Mapping
(OPM)" >Object PLC Mapping (OPM)</a></li>
<li ><a href="users/industry40.html" title="Industry 4.0
with Apache" >Industry 4.0 with Apache</a></li>
<li ><a href="users/security.html" title="Security"
>Security</a></li>
diff --git a/developers/building.html b/developers/building.html
index 2dc83ef..792c539 100644
--- a/developers/building.html
+++ b/developers/building.html
@@ -53,6 +53,7 @@
<ul class="dropdown-menu">
<li ><a href="../users/download.html" title="Download"
>Download</a></li>
<li ><a href="../users/gettingstarted.html"
title="Getting Started" >Getting Started</a></li>
+ <li ><a href="../users/testing.html" title="PLC4X
without a PLC and Unit Testing" >PLC4X without a PLC and Unit Testing</a></li>
<li ><a href="../users/opm.html" title="Object PLC
Mapping (OPM)" >Object PLC Mapping (OPM)</a></li>
<li ><a href="../users/industry40.html" title="Industry
4.0 with Apache" >Industry 4.0 with Apache</a></li>
<li ><a href="../users/security.html" title="Security"
>Security</a></li>
diff --git a/developers/ci.html b/developers/ci.html
index e36826b..14e7e26 100644
--- a/developers/ci.html
+++ b/developers/ci.html
@@ -53,6 +53,7 @@
<ul class="dropdown-menu">
<li ><a href="../users/download.html" title="Download"
>Download</a></li>
<li ><a href="../users/gettingstarted.html"
title="Getting Started" >Getting Started</a></li>
+ <li ><a href="../users/testing.html" title="PLC4X
without a PLC and Unit Testing" >PLC4X without a PLC and Unit Testing</a></li>
<li ><a href="../users/opm.html" title="Object PLC
Mapping (OPM)" >Object PLC Mapping (OPM)</a></li>
<li ><a href="../users/industry40.html" title="Industry
4.0 with Apache" >Industry 4.0 with Apache</a></li>
<li ><a href="../users/security.html" title="Security"
>Security</a></li>
diff --git a/developers/code-gen/index.html b/developers/code-gen/index.html
index fc2bcc6..4e7e882 100644
--- a/developers/code-gen/index.html
+++ b/developers/code-gen/index.html
@@ -53,6 +53,7 @@
<ul class="dropdown-menu">
<li ><a href="../../users/download.html"
title="Download" >Download</a></li>
<li ><a href="../../users/gettingstarted.html"
title="Getting Started" >Getting Started</a></li>
+ <li ><a href="../../users/testing.html" title="PLC4X
without a PLC and Unit Testing" >PLC4X without a PLC and Unit Testing</a></li>
<li ><a href="../../users/opm.html" title="Object PLC
Mapping (OPM)" >Object PLC Mapping (OPM)</a></li>
<li ><a href="../../users/industry40.html"
title="Industry 4.0 with Apache" >Industry 4.0 with Apache</a></li>
<li ><a href="../../users/security.html"
title="Security" >Security</a></li>
diff --git a/developers/code-gen/language/freemarker.html
b/developers/code-gen/language/freemarker.html
index 0c1ceaf..26ab0f9 100644
--- a/developers/code-gen/language/freemarker.html
+++ b/developers/code-gen/language/freemarker.html
@@ -53,6 +53,7 @@
<ul class="dropdown-menu">
<li ><a href="../../../users/download.html"
title="Download" >Download</a></li>
<li ><a href="../../../users/gettingstarted.html"
title="Getting Started" >Getting Started</a></li>
+ <li ><a href="../../../users/testing.html" title="PLC4X
without a PLC and Unit Testing" >PLC4X without a PLC and Unit Testing</a></li>
<li ><a href="../../../users/opm.html" title="Object PLC
Mapping (OPM)" >Object PLC Mapping (OPM)</a></li>
<li ><a href="../../../users/industry40.html"
title="Industry 4.0 with Apache" >Industry 4.0 with Apache</a></li>
<li ><a href="../../../users/security.html"
title="Security" >Security</a></li>
diff --git a/developers/code-gen/protocol/df1.html
b/developers/code-gen/protocol/df1.html
index a536b70..8577398 100644
--- a/developers/code-gen/protocol/df1.html
+++ b/developers/code-gen/protocol/df1.html
@@ -53,6 +53,7 @@
<ul class="dropdown-menu">
<li ><a href="../../../users/download.html"
title="Download" >Download</a></li>
<li ><a href="../../../users/gettingstarted.html"
title="Getting Started" >Getting Started</a></li>
+ <li ><a href="../../../users/testing.html" title="PLC4X
without a PLC and Unit Testing" >PLC4X without a PLC and Unit Testing</a></li>
<li ><a href="../../../users/opm.html" title="Object PLC
Mapping (OPM)" >Object PLC Mapping (OPM)</a></li>
<li ><a href="../../../users/industry40.html"
title="Industry 4.0 with Apache" >Industry 4.0 with Apache</a></li>
<li ><a href="../../../users/security.html"
title="Security" >Security</a></li>
diff --git a/developers/code-gen/protocol/mspec.html
b/developers/code-gen/protocol/mspec.html
index 0880cc1..98201c5 100644
--- a/developers/code-gen/protocol/mspec.html
+++ b/developers/code-gen/protocol/mspec.html
@@ -53,6 +53,7 @@
<ul class="dropdown-menu">
<li ><a href="../../../users/download.html"
title="Download" >Download</a></li>
<li ><a href="../../../users/gettingstarted.html"
title="Getting Started" >Getting Started</a></li>
+ <li ><a href="../../../users/testing.html" title="PLC4X
without a PLC and Unit Testing" >PLC4X without a PLC and Unit Testing</a></li>
<li ><a href="../../../users/opm.html" title="Object PLC
Mapping (OPM)" >Object PLC Mapping (OPM)</a></li>
<li ><a href="../../../users/industry40.html"
title="Industry 4.0 with Apache" >Industry 4.0 with Apache</a></li>
<li ><a href="../../../users/security.html"
title="Security" >Security</a></li>
diff --git a/developers/conferences.html b/developers/conferences.html
index 0fcb1ed..55ea176 100644
--- a/developers/conferences.html
+++ b/developers/conferences.html
@@ -53,6 +53,7 @@
<ul class="dropdown-menu">
<li ><a href="../users/download.html" title="Download"
>Download</a></li>
<li ><a href="../users/gettingstarted.html"
title="Getting Started" >Getting Started</a></li>
+ <li ><a href="../users/testing.html" title="PLC4X
without a PLC and Unit Testing" >PLC4X without a PLC and Unit Testing</a></li>
<li ><a href="../users/opm.html" title="Object PLC
Mapping (OPM)" >Object PLC Mapping (OPM)</a></li>
<li ><a href="../users/industry40.html" title="Industry
4.0 with Apache" >Industry 4.0 with Apache</a></li>
<li ><a href="../users/security.html" title="Security"
>Security</a></li>
diff --git a/developers/contributing.html b/developers/contributing.html
index 5b8d753..d256967 100644
--- a/developers/contributing.html
+++ b/developers/contributing.html
@@ -53,6 +53,7 @@
<ul class="dropdown-menu">
<li ><a href="../users/download.html" title="Download"
>Download</a></li>
<li ><a href="../users/gettingstarted.html"
title="Getting Started" >Getting Started</a></li>
+ <li ><a href="../users/testing.html" title="PLC4X
without a PLC and Unit Testing" >PLC4X without a PLC and Unit Testing</a></li>
<li ><a href="../users/opm.html" title="Object PLC
Mapping (OPM)" >Object PLC Mapping (OPM)</a></li>
<li ><a href="../users/industry40.html" title="Industry
4.0 with Apache" >Industry 4.0 with Apache</a></li>
<li ><a href="../users/security.html" title="Security"
>Security</a></li>
diff --git a/developers/decisions.html b/developers/decisions.html
index 232eff7..66c6e21 100644
--- a/developers/decisions.html
+++ b/developers/decisions.html
@@ -53,6 +53,7 @@
<ul class="dropdown-menu">
<li ><a href="../users/download.html" title="Download"
>Download</a></li>
<li ><a href="../users/gettingstarted.html"
title="Getting Started" >Getting Started</a></li>
+ <li ><a href="../users/testing.html" title="PLC4X
without a PLC and Unit Testing" >PLC4X without a PLC and Unit Testing</a></li>
<li ><a href="../users/opm.html" title="Object PLC
Mapping (OPM)" >Object PLC Mapping (OPM)</a></li>
<li ><a href="../users/industry40.html" title="Industry
4.0 with Apache" >Industry 4.0 with Apache</a></li>
<li ><a href="../users/security.html" title="Security"
>Security</a></li>
diff --git a/developers/issues.html b/developers/issues.html
index bf7443b..740d83b 100644
--- a/developers/issues.html
+++ b/developers/issues.html
@@ -53,6 +53,7 @@
<ul class="dropdown-menu">
<li ><a href="../users/download.html" title="Download"
>Download</a></li>
<li ><a href="../users/gettingstarted.html"
title="Getting Started" >Getting Started</a></li>
+ <li ><a href="../users/testing.html" title="PLC4X
without a PLC and Unit Testing" >PLC4X without a PLC and Unit Testing</a></li>
<li ><a href="../users/opm.html" title="Object PLC
Mapping (OPM)" >Object PLC Mapping (OPM)</a></li>
<li ><a href="../users/industry40.html" title="Industry
4.0 with Apache" >Industry 4.0 with Apache</a></li>
<li ><a href="../users/security.html" title="Security"
>Security</a></li>
diff --git a/developers/jqassistant.html b/developers/jqassistant.html
index 429a9aa..f6b8ca3 100644
--- a/developers/jqassistant.html
+++ b/developers/jqassistant.html
@@ -53,6 +53,7 @@
<ul class="dropdown-menu">
<li ><a href="../users/download.html" title="Download"
>Download</a></li>
<li ><a href="../users/gettingstarted.html"
title="Getting Started" >Getting Started</a></li>
+ <li ><a href="../users/testing.html" title="PLC4X
without a PLC and Unit Testing" >PLC4X without a PLC and Unit Testing</a></li>
<li ><a href="../users/opm.html" title="Object PLC
Mapping (OPM)" >Object PLC Mapping (OPM)</a></li>
<li ><a href="../users/industry40.html" title="Industry
4.0 with Apache" >Industry 4.0 with Apache</a></li>
<li ><a href="../users/security.html" title="Security"
>Security</a></li>
diff --git a/developers/maturity.html b/developers/maturity.html
index fcc610e..8c9e6d4 100644
--- a/developers/maturity.html
+++ b/developers/maturity.html
@@ -53,6 +53,7 @@
<ul class="dropdown-menu">
<li ><a href="../users/download.html" title="Download"
>Download</a></li>
<li ><a href="../users/gettingstarted.html"
title="Getting Started" >Getting Started</a></li>
+ <li ><a href="../users/testing.html" title="PLC4X
without a PLC and Unit Testing" >PLC4X without a PLC and Unit Testing</a></li>
<li ><a href="../users/opm.html" title="Object PLC
Mapping (OPM)" >Object PLC Mapping (OPM)</a></li>
<li ><a href="../users/industry40.html" title="Industry
4.0 with Apache" >Industry 4.0 with Apache</a></li>
<li ><a href="../users/security.html" title="Security"
>Security</a></li>
diff --git a/developers/preparing.html b/developers/preparing.html
index c229256..b681998 100644
--- a/developers/preparing.html
+++ b/developers/preparing.html
@@ -53,6 +53,7 @@
<ul class="dropdown-menu">
<li ><a href="../users/download.html" title="Download"
>Download</a></li>
<li ><a href="../users/gettingstarted.html"
title="Getting Started" >Getting Started</a></li>
+ <li ><a href="../users/testing.html" title="PLC4X
without a PLC and Unit Testing" >PLC4X without a PLC and Unit Testing</a></li>
<li ><a href="../users/opm.html" title="Object PLC
Mapping (OPM)" >Object PLC Mapping (OPM)</a></li>
<li ><a href="../users/industry40.html" title="Industry
4.0 with Apache" >Industry 4.0 with Apache</a></li>
<li ><a href="../users/security.html" title="Security"
>Security</a></li>
diff --git a/developers/release-build-tools.html
b/developers/release-build-tools.html
index 89fb4d9..1b3a390 100644
--- a/developers/release-build-tools.html
+++ b/developers/release-build-tools.html
@@ -53,6 +53,7 @@
<ul class="dropdown-menu">
<li ><a href="../users/download.html" title="Download"
>Download</a></li>
<li ><a href="../users/gettingstarted.html"
title="Getting Started" >Getting Started</a></li>
+ <li ><a href="../users/testing.html" title="PLC4X
without a PLC and Unit Testing" >PLC4X without a PLC and Unit Testing</a></li>
<li ><a href="../users/opm.html" title="Object PLC
Mapping (OPM)" >Object PLC Mapping (OPM)</a></li>
<li ><a href="../users/industry40.html" title="Industry
4.0 with Apache" >Industry 4.0 with Apache</a></li>
<li ><a href="../users/security.html" title="Security"
>Security</a></li>
diff --git a/developers/release.html b/developers/release.html
index 232c253..35b2a68 100644
--- a/developers/release.html
+++ b/developers/release.html
@@ -53,6 +53,7 @@
<ul class="dropdown-menu">
<li ><a href="../users/download.html" title="Download"
>Download</a></li>
<li ><a href="../users/gettingstarted.html"
title="Getting Started" >Getting Started</a></li>
+ <li ><a href="../users/testing.html" title="PLC4X
without a PLC and Unit Testing" >PLC4X without a PLC and Unit Testing</a></li>
<li ><a href="../users/opm.html" title="Object PLC
Mapping (OPM)" >Object PLC Mapping (OPM)</a></li>
<li ><a href="../users/industry40.html" title="Industry
4.0 with Apache" >Industry 4.0 with Apache</a></li>
<li ><a href="../users/security.html" title="Security"
>Security</a></li>
diff --git a/developers/sonar.html b/developers/sonar.html
index 46dee7d..28fa0c4 100644
--- a/developers/sonar.html
+++ b/developers/sonar.html
@@ -53,6 +53,7 @@
<ul class="dropdown-menu">
<li ><a href="../users/download.html" title="Download"
>Download</a></li>
<li ><a href="../users/gettingstarted.html"
title="Getting Started" >Getting Started</a></li>
+ <li ><a href="../users/testing.html" title="PLC4X
without a PLC and Unit Testing" >PLC4X without a PLC and Unit Testing</a></li>
<li ><a href="../users/opm.html" title="Object PLC
Mapping (OPM)" >Object PLC Mapping (OPM)</a></li>
<li ><a href="../users/industry40.html" title="Industry
4.0 with Apache" >Industry 4.0 with Apache</a></li>
<li ><a href="../users/security.html" title="Security"
>Security</a></li>
diff --git a/developers/team.html b/developers/team.html
index bd98360..6a18b4a 100644
--- a/developers/team.html
+++ b/developers/team.html
@@ -53,6 +53,7 @@
<ul class="dropdown-menu">
<li ><a href="../users/download.html" title="Download"
>Download</a></li>
<li ><a href="../users/gettingstarted.html"
title="Getting Started" >Getting Started</a></li>
+ <li ><a href="../users/testing.html" title="PLC4X
without a PLC and Unit Testing" >PLC4X without a PLC and Unit Testing</a></li>
<li ><a href="../users/opm.html" title="Object PLC
Mapping (OPM)" >Object PLC Mapping (OPM)</a></li>
<li ><a href="../users/industry40.html" title="Industry
4.0 with Apache" >Industry 4.0 with Apache</a></li>
<li ><a href="../users/security.html" title="Security"
>Security</a></li>
diff --git a/developers/vm.html b/developers/vm.html
index 182e539..1386b16 100644
--- a/developers/vm.html
+++ b/developers/vm.html
@@ -53,6 +53,7 @@
<ul class="dropdown-menu">
<li ><a href="../users/download.html" title="Download"
>Download</a></li>
<li ><a href="../users/gettingstarted.html"
title="Getting Started" >Getting Started</a></li>
+ <li ><a href="../users/testing.html" title="PLC4X
without a PLC and Unit Testing" >PLC4X without a PLC and Unit Testing</a></li>
<li ><a href="../users/opm.html" title="Object PLC
Mapping (OPM)" >Object PLC Mapping (OPM)</a></li>
<li ><a href="../users/industry40.html" title="Industry
4.0 with Apache" >Industry 4.0 with Apache</a></li>
<li ><a href="../users/security.html" title="Security"
>Security</a></li>
diff --git a/developers/vpn.html b/developers/vpn.html
index 4b92610..f2fdcc0 100644
--- a/developers/vpn.html
+++ b/developers/vpn.html
@@ -53,6 +53,7 @@
<ul class="dropdown-menu">
<li ><a href="../users/download.html" title="Download"
>Download</a></li>
<li ><a href="../users/gettingstarted.html"
title="Getting Started" >Getting Started</a></li>
+ <li ><a href="../users/testing.html" title="PLC4X
without a PLC and Unit Testing" >PLC4X without a PLC and Unit Testing</a></li>
<li ><a href="../users/opm.html" title="Object PLC
Mapping (OPM)" >Object PLC Mapping (OPM)</a></li>
<li ><a href="../users/industry40.html" title="Industry
4.0 with Apache" >Industry 4.0 with Apache</a></li>
<li ><a href="../users/security.html" title="Security"
>Security</a></li>
diff --git a/developers/website.html b/developers/website.html
index 6b42565..9801cff 100644
--- a/developers/website.html
+++ b/developers/website.html
@@ -53,6 +53,7 @@
<ul class="dropdown-menu">
<li ><a href="../users/download.html" title="Download"
>Download</a></li>
<li ><a href="../users/gettingstarted.html"
title="Getting Started" >Getting Started</a></li>
+ <li ><a href="../users/testing.html" title="PLC4X
without a PLC and Unit Testing" >PLC4X without a PLC and Unit Testing</a></li>
<li ><a href="../users/opm.html" title="Object PLC
Mapping (OPM)" >Object PLC Mapping (OPM)</a></li>
<li ><a href="../users/industry40.html" title="Industry
4.0 with Apache" >Industry 4.0 with Apache</a></li>
<li ><a href="../users/security.html" title="Security"
>Security</a></li>
diff --git a/developers/wiki.html b/developers/wiki.html
index 07b9a1a..1fbba74 100644
--- a/developers/wiki.html
+++ b/developers/wiki.html
@@ -53,6 +53,7 @@
<ul class="dropdown-menu">
<li ><a href="../users/download.html" title="Download"
>Download</a></li>
<li ><a href="../users/gettingstarted.html"
title="Getting Started" >Getting Started</a></li>
+ <li ><a href="../users/testing.html" title="PLC4X
without a PLC and Unit Testing" >PLC4X without a PLC and Unit Testing</a></li>
<li ><a href="../users/opm.html" title="Object PLC
Mapping (OPM)" >Object PLC Mapping (OPM)</a></li>
<li ><a href="../users/industry40.html" title="Industry
4.0 with Apache" >Industry 4.0 with Apache</a></li>
<li ><a href="../users/security.html" title="Security"
>Security</a></li>
diff --git a/developers/writing-driver/writing-driver.html
b/developers/writing-driver/writing-driver.html
index 55ac02e..df9cd33 100644
--- a/developers/writing-driver/writing-driver.html
+++ b/developers/writing-driver/writing-driver.html
@@ -53,6 +53,7 @@
<ul class="dropdown-menu">
<li ><a href="../../users/download.html"
title="Download" >Download</a></li>
<li ><a href="../../users/gettingstarted.html"
title="Getting Started" >Getting Started</a></li>
+ <li ><a href="../../users/testing.html" title="PLC4X
without a PLC and Unit Testing" >PLC4X without a PLC and Unit Testing</a></li>
<li ><a href="../../users/opm.html" title="Object PLC
Mapping (OPM)" >Object PLC Mapping (OPM)</a></li>
<li ><a href="../../users/industry40.html"
title="Industry 4.0 with Apache" >Industry 4.0 with Apache</a></li>
<li ><a href="../../users/security.html"
title="Security" >Security</a></li>
diff --git a/distribution-management.html b/distribution-management.html
index dfe2b93..5c486f4 100644
--- a/distribution-management.html
+++ b/distribution-management.html
@@ -53,6 +53,7 @@
<ul class="dropdown-menu">
<li ><a href="users/download.html" title="Download"
>Download</a></li>
<li ><a href="users/gettingstarted.html" title="Getting
Started" >Getting Started</a></li>
+ <li ><a href="users/testing.html" title="PLC4X without a
PLC and Unit Testing" >PLC4X without a PLC and Unit Testing</a></li>
<li ><a href="users/opm.html" title="Object PLC Mapping
(OPM)" >Object PLC Mapping (OPM)</a></li>
<li ><a href="users/industry40.html" title="Industry 4.0
with Apache" >Industry 4.0 with Apache</a></li>
<li ><a href="users/security.html" title="Security"
>Security</a></li>
diff --git a/index.html b/index.html
index 921dd5c..fbfc4d0 100644
--- a/index.html
+++ b/index.html
@@ -53,6 +53,7 @@
<ul class="dropdown-menu">
<li ><a href="users/download.html" title="Download"
>Download</a></li>
<li ><a href="users/gettingstarted.html" title="Getting
Started" >Getting Started</a></li>
+ <li ><a href="users/testing.html" title="PLC4X without a
PLC and Unit Testing" >PLC4X without a PLC and Unit Testing</a></li>
<li ><a href="users/opm.html" title="Object PLC Mapping
(OPM)" >Object PLC Mapping (OPM)</a></li>
<li ><a href="users/industry40.html" title="Industry 4.0
with Apache" >Industry 4.0 with Apache</a></li>
<li ><a href="users/security.html" title="Security"
>Security</a></li>
diff --git a/issue-management.html b/issue-management.html
index a29324b..0cfcb8b 100644
--- a/issue-management.html
+++ b/issue-management.html
@@ -53,6 +53,7 @@
<ul class="dropdown-menu">
<li ><a href="users/download.html" title="Download"
>Download</a></li>
<li ><a href="users/gettingstarted.html" title="Getting
Started" >Getting Started</a></li>
+ <li ><a href="users/testing.html" title="PLC4X without a
PLC and Unit Testing" >PLC4X without a PLC and Unit Testing</a></li>
<li ><a href="users/opm.html" title="Object PLC Mapping
(OPM)" >Object PLC Mapping (OPM)</a></li>
<li ><a href="users/industry40.html" title="Industry 4.0
with Apache" >Industry 4.0 with Apache</a></li>
<li ><a href="users/security.html" title="Security"
>Security</a></li>
diff --git a/licenses.html b/licenses.html
index c89e86c..8bf6e23 100644
--- a/licenses.html
+++ b/licenses.html
@@ -53,6 +53,7 @@
<ul class="dropdown-menu">
<li ><a href="users/download.html" title="Download"
>Download</a></li>
<li ><a href="users/gettingstarted.html" title="Getting
Started" >Getting Started</a></li>
+ <li ><a href="users/testing.html" title="PLC4X without a
PLC and Unit Testing" >PLC4X without a PLC and Unit Testing</a></li>
<li ><a href="users/opm.html" title="Object PLC Mapping
(OPM)" >Object PLC Mapping (OPM)</a></li>
<li ><a href="users/industry40.html" title="Industry 4.0
with Apache" >Industry 4.0 with Apache</a></li>
<li ><a href="users/security.html" title="Security"
>Security</a></li>
diff --git a/mailing-lists.html b/mailing-lists.html
index e541a01..27836fb 100644
--- a/mailing-lists.html
+++ b/mailing-lists.html
@@ -53,6 +53,7 @@
<ul class="dropdown-menu">
<li ><a href="users/download.html" title="Download"
>Download</a></li>
<li ><a href="users/gettingstarted.html" title="Getting
Started" >Getting Started</a></li>
+ <li ><a href="users/testing.html" title="PLC4X without a
PLC and Unit Testing" >PLC4X without a PLC and Unit Testing</a></li>
<li ><a href="users/opm.html" title="Object PLC Mapping
(OPM)" >Object PLC Mapping (OPM)</a></li>
<li ><a href="users/industry40.html" title="Industry 4.0
with Apache" >Industry 4.0 with Apache</a></li>
<li ><a href="users/security.html" title="Security"
>Security</a></li>
diff --git a/modules.html b/modules.html
index a7a4a84..4fbd891 100644
--- a/modules.html
+++ b/modules.html
@@ -53,6 +53,7 @@
<ul class="dropdown-menu">
<li ><a href="users/download.html" title="Download"
>Download</a></li>
<li ><a href="users/gettingstarted.html" title="Getting
Started" >Getting Started</a></li>
+ <li ><a href="users/testing.html" title="PLC4X without a
PLC and Unit Testing" >PLC4X without a PLC and Unit Testing</a></li>
<li ><a href="users/opm.html" title="Object PLC Mapping
(OPM)" >Object PLC Mapping (OPM)</a></li>
<li ><a href="users/industry40.html" title="Industry 4.0
with Apache" >Industry 4.0 with Apache</a></li>
<li ><a href="users/security.html" title="Security"
>Security</a></li>
diff --git a/plugin-management.html b/plugin-management.html
index 7a927bb..3eeb87f 100644
--- a/plugin-management.html
+++ b/plugin-management.html
@@ -53,6 +53,7 @@
<ul class="dropdown-menu">
<li ><a href="users/download.html" title="Download"
>Download</a></li>
<li ><a href="users/gettingstarted.html" title="Getting
Started" >Getting Started</a></li>
+ <li ><a href="users/testing.html" title="PLC4X without a
PLC and Unit Testing" >PLC4X without a PLC and Unit Testing</a></li>
<li ><a href="users/opm.html" title="Object PLC Mapping
(OPM)" >Object PLC Mapping (OPM)</a></li>
<li ><a href="users/industry40.html" title="Industry 4.0
with Apache" >Industry 4.0 with Apache</a></li>
<li ><a href="users/security.html" title="Security"
>Security</a></li>
diff --git a/plugins.html b/plugins.html
index b9c6aa1..4f628e1 100644
--- a/plugins.html
+++ b/plugins.html
@@ -53,6 +53,7 @@
<ul class="dropdown-menu">
<li ><a href="users/download.html" title="Download"
>Download</a></li>
<li ><a href="users/gettingstarted.html" title="Getting
Started" >Getting Started</a></li>
+ <li ><a href="users/testing.html" title="PLC4X without a
PLC and Unit Testing" >PLC4X without a PLC and Unit Testing</a></li>
<li ><a href="users/opm.html" title="Object PLC Mapping
(OPM)" >Object PLC Mapping (OPM)</a></li>
<li ><a href="users/industry40.html" title="Industry 4.0
with Apache" >Industry 4.0 with Apache</a></li>
<li ><a href="users/security.html" title="Security"
>Security</a></li>
diff --git a/project-info.html b/project-info.html
index a701445..69f0d24 100644
--- a/project-info.html
+++ b/project-info.html
@@ -53,6 +53,7 @@
<ul class="dropdown-menu">
<li ><a href="users/download.html" title="Download"
>Download</a></li>
<li ><a href="users/gettingstarted.html" title="Getting
Started" >Getting Started</a></li>
+ <li ><a href="users/testing.html" title="PLC4X without a
PLC and Unit Testing" >PLC4X without a PLC and Unit Testing</a></li>
<li ><a href="users/opm.html" title="Object PLC Mapping
(OPM)" >Object PLC Mapping (OPM)</a></li>
<li ><a href="users/industry40.html" title="Industry 4.0
with Apache" >Industry 4.0 with Apache</a></li>
<li ><a href="users/security.html" title="Security"
>Security</a></li>
diff --git a/protocols/ads/index.html b/protocols/ads/index.html
index aabe459..76a4708 100644
--- a/protocols/ads/index.html
+++ b/protocols/ads/index.html
@@ -53,6 +53,7 @@
<ul class="dropdown-menu">
<li ><a href="../../users/download.html"
title="Download" >Download</a></li>
<li ><a href="../../users/gettingstarted.html"
title="Getting Started" >Getting Started</a></li>
+ <li ><a href="../../users/testing.html" title="PLC4X
without a PLC and Unit Testing" >PLC4X without a PLC and Unit Testing</a></li>
<li ><a href="../../users/opm.html" title="Object PLC
Mapping (OPM)" >Object PLC Mapping (OPM)</a></li>
<li ><a href="../../users/industry40.html"
title="Industry 4.0 with Apache" >Industry 4.0 with Apache</a></li>
<li ><a href="../../users/security.html"
title="Security" >Security</a></li>
diff --git a/protocols/delta-v/index.html b/protocols/delta-v/index.html
index 27ad1d7..ddfc607 100644
--- a/protocols/delta-v/index.html
+++ b/protocols/delta-v/index.html
@@ -53,6 +53,7 @@
<ul class="dropdown-menu">
<li ><a href="../../users/download.html"
title="Download" >Download</a></li>
<li ><a href="../../users/gettingstarted.html"
title="Getting Started" >Getting Started</a></li>
+ <li ><a href="../../users/testing.html" title="PLC4X
without a PLC and Unit Testing" >PLC4X without a PLC and Unit Testing</a></li>
<li ><a href="../../users/opm.html" title="Object PLC
Mapping (OPM)" >Object PLC Mapping (OPM)</a></li>
<li ><a href="../../users/industry40.html"
title="Industry 4.0 with Apache" >Industry 4.0 with Apache</a></li>
<li ><a href="../../users/security.html"
title="Security" >Security</a></li>
diff --git a/protocols/delta-v/read-data.html b/protocols/delta-v/read-data.html
index 6161e7a..84db19f 100644
--- a/protocols/delta-v/read-data.html
+++ b/protocols/delta-v/read-data.html
@@ -53,6 +53,7 @@
<ul class="dropdown-menu">
<li ><a href="../../users/download.html"
title="Download" >Download</a></li>
<li ><a href="../../users/gettingstarted.html"
title="Getting Started" >Getting Started</a></li>
+ <li ><a href="../../users/testing.html" title="PLC4X
without a PLC and Unit Testing" >PLC4X without a PLC and Unit Testing</a></li>
<li ><a href="../../users/opm.html" title="Object PLC
Mapping (OPM)" >Object PLC Mapping (OPM)</a></li>
<li ><a href="../../users/industry40.html"
title="Industry 4.0 with Apache" >Industry 4.0 with Apache</a></li>
<li ><a href="../../users/security.html"
title="Security" >Security</a></li>
diff --git a/protocols/delta-v/reverse-engineering.html
b/protocols/delta-v/reverse-engineering.html
index db6d9c3..8e0c05e 100644
--- a/protocols/delta-v/reverse-engineering.html
+++ b/protocols/delta-v/reverse-engineering.html
@@ -53,6 +53,7 @@
<ul class="dropdown-menu">
<li ><a href="../../users/download.html"
title="Download" >Download</a></li>
<li ><a href="../../users/gettingstarted.html"
title="Getting Started" >Getting Started</a></li>
+ <li ><a href="../../users/testing.html" title="PLC4X
without a PLC and Unit Testing" >PLC4X without a PLC and Unit Testing</a></li>
<li ><a href="../../users/opm.html" title="Object PLC
Mapping (OPM)" >Object PLC Mapping (OPM)</a></li>
<li ><a href="../../users/industry40.html"
title="Industry 4.0 with Apache" >Industry 4.0 with Apache</a></li>
<li ><a href="../../users/security.html"
title="Security" >Security</a></li>
diff --git a/protocols/ehtercat/index.html b/protocols/ehtercat/index.html
index 5770a4c..7eeaaf5 100644
--- a/protocols/ehtercat/index.html
+++ b/protocols/ehtercat/index.html
@@ -53,6 +53,7 @@
<ul class="dropdown-menu">
<li ><a href="../../users/download.html"
title="Download" >Download</a></li>
<li ><a href="../../users/gettingstarted.html"
title="Getting Started" >Getting Started</a></li>
+ <li ><a href="../../users/testing.html" title="PLC4X
without a PLC and Unit Testing" >PLC4X without a PLC and Unit Testing</a></li>
<li ><a href="../../users/opm.html" title="Object PLC
Mapping (OPM)" >Object PLC Mapping (OPM)</a></li>
<li ><a href="../../users/industry40.html"
title="Industry 4.0 with Apache" >Industry 4.0 with Apache</a></li>
<li ><a href="../../users/security.html"
title="Security" >Security</a></li>
diff --git a/protocols/ethernet-ip/index.html b/protocols/ethernet-ip/index.html
index ff29c24..8b3c702 100644
--- a/protocols/ethernet-ip/index.html
+++ b/protocols/ethernet-ip/index.html
@@ -53,6 +53,7 @@
<ul class="dropdown-menu">
<li ><a href="../../users/download.html"
title="Download" >Download</a></li>
<li ><a href="../../users/gettingstarted.html"
title="Getting Started" >Getting Started</a></li>
+ <li ><a href="../../users/testing.html" title="PLC4X
without a PLC and Unit Testing" >PLC4X without a PLC and Unit Testing</a></li>
<li ><a href="../../users/opm.html" title="Object PLC
Mapping (OPM)" >Object PLC Mapping (OPM)</a></li>
<li ><a href="../../users/industry40.html"
title="Industry 4.0 with Apache" >Industry 4.0 with Apache</a></li>
<li ><a href="../../users/security.html"
title="Security" >Security</a></li>
diff --git a/protocols/features.html b/protocols/features.html
index a626a7f..2d79489 100644
--- a/protocols/features.html
+++ b/protocols/features.html
@@ -53,6 +53,7 @@
<ul class="dropdown-menu">
<li ><a href="../users/download.html" title="Download"
>Download</a></li>
<li ><a href="../users/gettingstarted.html"
title="Getting Started" >Getting Started</a></li>
+ <li ><a href="../users/testing.html" title="PLC4X
without a PLC and Unit Testing" >PLC4X without a PLC and Unit Testing</a></li>
<li ><a href="../users/opm.html" title="Object PLC
Mapping (OPM)" >Object PLC Mapping (OPM)</a></li>
<li ><a href="../users/industry40.html" title="Industry
4.0 with Apache" >Industry 4.0 with Apache</a></li>
<li ><a href="../users/security.html" title="Security"
>Security</a></li>
diff --git a/protocols/index.html b/protocols/index.html
index 7bab580..047612b 100644
--- a/protocols/index.html
+++ b/protocols/index.html
@@ -53,6 +53,7 @@
<ul class="dropdown-menu">
<li ><a href="../users/download.html" title="Download"
>Download</a></li>
<li ><a href="../users/gettingstarted.html"
title="Getting Started" >Getting Started</a></li>
+ <li ><a href="../users/testing.html" title="PLC4X
without a PLC and Unit Testing" >PLC4X without a PLC and Unit Testing</a></li>
<li ><a href="../users/opm.html" title="Object PLC
Mapping (OPM)" >Object PLC Mapping (OPM)</a></li>
<li ><a href="../users/industry40.html" title="Industry
4.0 with Apache" >Industry 4.0 with Apache</a></li>
<li ><a href="../users/security.html" title="Security"
>Security</a></li>
diff --git a/protocols/modbus/index.html b/protocols/modbus/index.html
index 1fe9877..32d5795 100644
--- a/protocols/modbus/index.html
+++ b/protocols/modbus/index.html
@@ -53,6 +53,7 @@
<ul class="dropdown-menu">
<li ><a href="../../users/download.html"
title="Download" >Download</a></li>
<li ><a href="../../users/gettingstarted.html"
title="Getting Started" >Getting Started</a></li>
+ <li ><a href="../../users/testing.html" title="PLC4X
without a PLC and Unit Testing" >PLC4X without a PLC and Unit Testing</a></li>
<li ><a href="../../users/opm.html" title="Object PLC
Mapping (OPM)" >Object PLC Mapping (OPM)</a></li>
<li ><a href="../../users/industry40.html"
title="Industry 4.0 with Apache" >Industry 4.0 with Apache</a></li>
<li ><a href="../../users/security.html"
title="Security" >Security</a></li>
diff --git a/protocols/opc-ua/index.html b/protocols/opc-ua/index.html
index 52fd84b..e298527 100644
--- a/protocols/opc-ua/index.html
+++ b/protocols/opc-ua/index.html
@@ -53,6 +53,7 @@
<ul class="dropdown-menu">
<li ><a href="../../users/download.html"
title="Download" >Download</a></li>
<li ><a href="../../users/gettingstarted.html"
title="Getting Started" >Getting Started</a></li>
+ <li ><a href="../../users/testing.html" title="PLC4X
without a PLC and Unit Testing" >PLC4X without a PLC and Unit Testing</a></li>
<li ><a href="../../users/opm.html" title="Object PLC
Mapping (OPM)" >Object PLC Mapping (OPM)</a></li>
<li ><a href="../../users/industry40.html"
title="Industry 4.0 with Apache" >Industry 4.0 with Apache</a></li>
<li ><a href="../../users/security.html"
title="Security" >Security</a></li>
diff --git a/protocols/s7/index.html b/protocols/s7/index.html
index ce79b79..31bb89e 100644
--- a/protocols/s7/index.html
+++ b/protocols/s7/index.html
@@ -53,6 +53,7 @@
<ul class="dropdown-menu">
<li ><a href="../../users/download.html"
title="Download" >Download</a></li>
<li ><a href="../../users/gettingstarted.html"
title="Getting Started" >Getting Started</a></li>
+ <li ><a href="../../users/testing.html" title="PLC4X
without a PLC and Unit Testing" >PLC4X without a PLC and Unit Testing</a></li>
<li ><a href="../../users/opm.html" title="Object PLC
Mapping (OPM)" >Object PLC Mapping (OPM)</a></li>
<li ><a href="../../users/industry40.html"
title="Industry 4.0 with Apache" >Industry 4.0 with Apache</a></li>
<li ><a href="../../users/security.html"
title="Security" >Security</a></li>
diff --git a/protocols/s7/s7comm-plus.html b/protocols/s7/s7comm-plus.html
index 5fe1919..d6edd5f 100644
--- a/protocols/s7/s7comm-plus.html
+++ b/protocols/s7/s7comm-plus.html
@@ -53,6 +53,7 @@
<ul class="dropdown-menu">
<li ><a href="../../users/download.html"
title="Download" >Download</a></li>
<li ><a href="../../users/gettingstarted.html"
title="Getting Started" >Getting Started</a></li>
+ <li ><a href="../../users/testing.html" title="PLC4X
without a PLC and Unit Testing" >PLC4X without a PLC and Unit Testing</a></li>
<li ><a href="../../users/opm.html" title="Object PLC
Mapping (OPM)" >Object PLC Mapping (OPM)</a></li>
<li ><a href="../../users/industry40.html"
title="Industry 4.0 with Apache" >Industry 4.0 with Apache</a></li>
<li ><a href="../../users/security.html"
title="Security" >Security</a></li>
diff --git a/protocols/s7/s7comm.html b/protocols/s7/s7comm.html
index fae6c37..75fe732 100644
--- a/protocols/s7/s7comm.html
+++ b/protocols/s7/s7comm.html
@@ -53,6 +53,7 @@
<ul class="dropdown-menu">
<li ><a href="../../users/download.html"
title="Download" >Download</a></li>
<li ><a href="../../users/gettingstarted.html"
title="Getting Started" >Getting Started</a></li>
+ <li ><a href="../../users/testing.html" title="PLC4X
without a PLC and Unit Testing" >PLC4X without a PLC and Unit Testing</a></li>
<li ><a href="../../users/opm.html" title="Object PLC
Mapping (OPM)" >Object PLC Mapping (OPM)</a></li>
<li ><a href="../../users/industry40.html"
title="Industry 4.0 with Apache" >Industry 4.0 with Apache</a></li>
<li ><a href="../../users/security.html"
title="Security" >Security</a></li>
diff --git a/scm.html b/scm.html
index 8ef3c30..b784d29 100644
--- a/scm.html
+++ b/scm.html
@@ -53,6 +53,7 @@
<ul class="dropdown-menu">
<li ><a href="users/download.html" title="Download"
>Download</a></li>
<li ><a href="users/gettingstarted.html" title="Getting
Started" >Getting Started</a></li>
+ <li ><a href="users/testing.html" title="PLC4X without a
PLC and Unit Testing" >PLC4X without a PLC and Unit Testing</a></li>
<li ><a href="users/opm.html" title="Object PLC Mapping
(OPM)" >Object PLC Mapping (OPM)</a></li>
<li ><a href="users/industry40.html" title="Industry 4.0
with Apache" >Industry 4.0 with Apache</a></li>
<li ><a href="users/security.html" title="Security"
>Security</a></li>
diff --git a/sitemap.html b/sitemap.html
index f07532d..f2fcb49 100644
--- a/sitemap.html
+++ b/sitemap.html
@@ -53,6 +53,7 @@
<ul class="dropdown-menu">
<li ><a href="users/download.html" title="Download"
>Download</a></li>
<li ><a href="users/gettingstarted.html" title="Getting
Started" >Getting Started</a></li>
+ <li ><a href="users/testing.html" title="PLC4X without a
PLC and Unit Testing" >PLC4X without a PLC and Unit Testing</a></li>
<li ><a href="users/opm.html" title="Object PLC Mapping
(OPM)" >Object PLC Mapping (OPM)</a></li>
<li ><a href="users/industry40.html" title="Industry 4.0
with Apache" >Industry 4.0 with Apache</a></li>
<li ><a href="users/security.html" title="Security"
>Security</a></li>
@@ -205,6 +206,7 @@
<ul>
<li><a href="users/download.html">Download</a></li>
<li><a href="users/gettingstarted.html">Getting Started</a></li>
+ <li><a href="users/testing.html">PLC4X without a PLC and Unit
Testing</a></li>
<li><a href="users/opm.html">Object PLC Mapping (OPM)</a></li>
<li><a href="users/industry40.html">Industry 4.0 with Apache</a></li>
<li><a href="users/security.html">Security</a></li>
diff --git a/summary.html b/summary.html
index 6499331..09f55a1 100644
--- a/summary.html
+++ b/summary.html
@@ -53,6 +53,7 @@
<ul class="dropdown-menu">
<li ><a href="users/download.html" title="Download"
>Download</a></li>
<li ><a href="users/gettingstarted.html" title="Getting
Started" >Getting Started</a></li>
+ <li ><a href="users/testing.html" title="PLC4X without a
PLC and Unit Testing" >PLC4X without a PLC and Unit Testing</a></li>
<li ><a href="users/opm.html" title="Object PLC Mapping
(OPM)" >Object PLC Mapping (OPM)</a></li>
<li ><a href="users/industry40.html" title="Industry 4.0
with Apache" >Industry 4.0 with Apache</a></li>
<li ><a href="users/security.html" title="Security"
>Security</a></li>
diff --git a/users/download.html b/users/download.html
index 9faf5c7..bae10c7 100644
--- a/users/download.html
+++ b/users/download.html
@@ -53,6 +53,7 @@
<ul class="dropdown-menu">
<li class="active" ><a href=""
title="Download" >Download</a></li>
<li ><a href="gettingstarted.html" title="Getting
Started" >Getting Started</a></li>
+ <li ><a href="testing.html" title="PLC4X without a PLC
and Unit Testing" >PLC4X without a PLC and Unit Testing</a></li>
<li ><a href="opm.html" title="Object PLC Mapping (OPM)"
>Object PLC Mapping (OPM)</a></li>
<li ><a href="industry40.html" title="Industry 4.0 with
Apache" >Industry 4.0 with Apache</a></li>
<li ><a href="security.html" title="Security"
>Security</a></li>
diff --git a/users/gettingstarted.html b/users/gettingstarted.html
index 0761449..bdc6858 100644
--- a/users/gettingstarted.html
+++ b/users/gettingstarted.html
@@ -53,6 +53,7 @@
<ul class="dropdown-menu">
<li ><a href="download.html" title="Download"
>Download</a></li>
<li class="active" ><a href=""
title="Getting Started" >Getting Started</a></li>
+ <li ><a href="testing.html" title="PLC4X without a PLC
and Unit Testing" >PLC4X without a PLC and Unit Testing</a></li>
<li ><a href="opm.html" title="Object PLC Mapping (OPM)"
>Object PLC Mapping (OPM)</a></li>
<li ><a href="industry40.html" title="Industry 4.0 with
Apache" >Industry 4.0 with Apache</a></li>
<li ><a href="security.html" title="Security"
>Security</a></li>
diff --git a/users/industry40.html b/users/industry40.html
index 7fdbab7..dbfe0a1 100644
--- a/users/industry40.html
+++ b/users/industry40.html
@@ -53,6 +53,7 @@
<ul class="dropdown-menu">
<li ><a href="download.html" title="Download"
>Download</a></li>
<li ><a href="gettingstarted.html" title="Getting
Started" >Getting Started</a></li>
+ <li ><a href="testing.html" title="PLC4X without a PLC
and Unit Testing" >PLC4X without a PLC and Unit Testing</a></li>
<li ><a href="opm.html" title="Object PLC Mapping (OPM)"
>Object PLC Mapping (OPM)</a></li>
<li class="active" ><a href=""
title="Industry 4.0 with Apache" >Industry 4.0 with Apache</a></li>
<li ><a href="security.html" title="Security"
>Security</a></li>
diff --git a/users/opm.html b/users/opm.html
index 84522fb..87a6d1e 100644
--- a/users/opm.html
+++ b/users/opm.html
@@ -53,6 +53,7 @@
<ul class="dropdown-menu">
<li ><a href="download.html" title="Download"
>Download</a></li>
<li ><a href="gettingstarted.html" title="Getting
Started" >Getting Started</a></li>
+ <li ><a href="testing.html" title="PLC4X without a PLC
and Unit Testing" >PLC4X without a PLC and Unit Testing</a></li>
<li class="active" ><a href=""
title="Object PLC Mapping (OPM)" >Object PLC Mapping (OPM)</a></li>
<li ><a href="industry40.html" title="Industry 4.0 with
Apache" >Industry 4.0 with Apache</a></li>
<li ><a href="security.html" title="Security"
>Security</a></li>
diff --git a/users/security.html b/users/security.html
index a1656f6..91d9b15 100644
--- a/users/security.html
+++ b/users/security.html
@@ -53,6 +53,7 @@
<ul class="dropdown-menu">
<li ><a href="download.html" title="Download"
>Download</a></li>
<li ><a href="gettingstarted.html" title="Getting
Started" >Getting Started</a></li>
+ <li ><a href="testing.html" title="PLC4X without a PLC
and Unit Testing" >PLC4X without a PLC and Unit Testing</a></li>
<li ><a href="opm.html" title="Object PLC Mapping (OPM)"
>Object PLC Mapping (OPM)</a></li>
<li ><a href="industry40.html" title="Industry 4.0 with
Apache" >Industry 4.0 with Apache</a></li>
<li class="active" ><a href=""
title="Security" >Security</a></li>
diff --git a/users/opm.html b/users/testing.html
similarity index 67%
copy from users/opm.html
copy to users/testing.html
index 84522fb..4842d37 100644
--- a/users/opm.html
+++ b/users/testing.html
@@ -9,7 +9,7 @@
<head>
<meta charset="UTF-8" />
- <title>Apache PLC4X® - Object PLC Mapping</title>
+ <title>Apache PLC4X® - Testing (or using PLC4X without a PLC)</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta name="description" content="" />
<meta http-equiv="content-language" content="en" />
@@ -31,7 +31,7 @@
});
</script>
</head> <!-- end : head -->
- <body class="page-users-opm project-plc4x-parent">
+ <body class="page-users-testing project-plc4x-parent">
<div id="m-top-navbar" class="navbar navbar-default navbar-fixed-top">
<div class="container">
@@ -53,7 +53,8 @@
<ul class="dropdown-menu">
<li ><a href="download.html" title="Download"
>Download</a></li>
<li ><a href="gettingstarted.html" title="Getting
Started" >Getting Started</a></li>
- <li class="active" ><a href=""
title="Object PLC Mapping (OPM)" >Object PLC Mapping (OPM)</a></li>
+ <li class="active" ><a href=""
title="PLC4X without a PLC and Unit Testing" >PLC4X without a PLC and Unit
Testing</a></li>
+ <li ><a href="opm.html" title="Object PLC Mapping (OPM)"
>Object PLC Mapping (OPM)</a></li>
<li ><a href="industry40.html" title="Industry 4.0 with
Apache" >Industry 4.0 with Apache</a></li>
<li ><a href="security.html" title="Security"
>Security</a></li>
</ul>
@@ -176,12 +177,11 @@
</div> <!-- .navbar-header -->
<div class="collapse navbar-collapse" id="toc-nav-collapse">
<ul id="toc" class="nav navbar-nav">
- <li
class="toplevel"><a href="#_toc_object_plc_mapping1" title="Object PLC
Mapping">Object PLC Mapping</a></li>
- <li class="toplevel"><a
href="#_toc_what_is_object_plc_mapping1" title="What is Object PLC
Mapping">What is Object PLC Mapping</a></li>
+ <li
class="toplevel"><a href="#_toc_testing_or_using_plc4x_without_a_plc1"
title="Testing (or using PLC4X without a PLC)">Testing (or using PLC4X without
a PLC)</a></li>
+ <li class="toplevel"><a href="#_toc_the_mock_driver1"
title="The Mock Driver">The Mock Driver</a></li>
<li class="toplevel"><a href="#_toc_simple_example1"
title="Simple Example">Simple Example</a></li>
- <li class="toplevel"><a href="#_toc_annotations1"
title="Annotations">Annotations</a></li>
- <li class="toplevel"><a href="#_toc_more_details1"
title="More details">More details</a></li>
- <li class="toplevel"><a href="#_toc_references1"
title="References">References</a></li>
+ <li class="toplevel"><a
href="#_toc_unit_testing_with_the_mock_driver1" title="Unit Testing with the
Mock Driver">Unit Testing with the Mock Driver</a></li>
+ <li class="toplevel"><a href="#_toc_conclusion1"
title="Conclusion">Conclusion</a></li>
</ul>
</div>
</div> <!-- .container -->
@@ -194,61 +194,180 @@
<div class="body-content">
<div class="sect1">
<div class="page-header">
- <h2 id="_toc_object_plc_mapping1">Object PLC Mapping</h2>
+ <h2 id="_toc_testing_or_using_plc4x_without_a_plc1">Testing (or using PLC4X
without a PLC)</h2>
</div>
<div class="sectionbody">
<div class="sect2">
- <h3 id="_toc_what_is_object_plc_mapping1">What is Object PLC Mapping</h3>
+ <h3 id="_toc_the_mock_driver1">The Mock Driver</h3>
<div class="paragraph">
- <p>Object PLC Mapping (OPM) is heavily inspired by the Java Persistence
API (JPA) [1]. One of the main goal of the PLC4X Project is to make it easy to
communicate with PLC devices to enable the development of applications that
interact with PLCs. As many (or even most) of the application programmers are
no experts in PLC Communication and protocols it should be as easy as possible
to interact with PLCs without too much domain knowledge. This is exactly the
reason why JPA was initiali [...]
+ <p>PLC4X has a <em>Mock Driver</em> which was initially implemented to be
used for Unit Tests and this still is its main purpose. But this driver is also
very suitable to play around a bit with the PLC4X API if no <em>Hardware</em>
PLC is available. The driver can be found in the Maven module</p>
+ </div>
+ <div class="listingblock">
+ <div class="content">
+ <pre class="prettyprint highlight"><code><dependency>
+ <groupId>org.apache.plc4x</groupId>
+ <artifactId>plc4j-protocol-driver-base-test</artifactId>
+ <version>${current.version}</version>
+ <scope>test</scope>
+</dependency></code></pre>
+ </div>
+ </div>
+ <div class="paragraph">
+ <p>The connection string Syntax for the mock driver is
<code>mock:{name-of-the-connection}</code>. So you can use multiple Mock
Devices at the same time.</p>
+ </div>
+ <div class="paragraph">
+ <p>The Mock Driver does nothing else than forwarding all Requests to a
<em>Virtual Device</em> which we can provide to control all responses and also
Monitor them, e.g. for unit tests. The Interface for the Mock Device is</p>
+ </div>
+ <div class="listingblock">
+ <div class="content">
+ <pre class="prettyprint highlight"><code>public interface MockDevice {
+
+ Pair<PlcResponseCode, BaseDefaultFieldItem> read(String fieldQuery);
+
+ PlcResponseCode write(String fieldQuery, Object value);
+
+ Pair<PlcResponseCode, PlcSubscriptionHandle> subscribe(String
fieldQuery);
+
+ void unsubscribe();
+
+ // ...
+
+}</code></pre>
+ </div>
</div>
</div>
<div class="sect2">
<h3 id="_toc_simple_example1">Simple Example</h3>
<div class="paragraph">
- <p>The following short code snippet shows how to read one value from a PLC
via OPM. First, a <em>PlcEntityManager</em> is instantiated, then a
<strong>connected</strong> entity is fetched for a given PLC connection
address. Connected means that all method calls of the entity are intersected
and replaced by PLC calls. This is then used to print one value to the console.
In the second snippet one can see how the Entity class looks. The address where
to read the variable <em>pressure</e [...]
+ <p>Imagine we have some Code which we cannot control or whose
functionality we want to test. This can be done with the Mock Driver in the
following way.</p>
+ </div>
+ <div class="paragraph">
+ <p>First, a new Mock Connection is established (like any other connection
also would be):</p>
</div>
<div class="listingblock">
<div class="content">
- <pre class="prettyprint highlight"><code data-lang="java">public static
void main(String[] args) {
- PlcEntityManager em = new PlcEntityManager();
- MyEntity entity = em.connect(MyEntity.class, "s7://...");
- System.out.println(entity.getPressure());
-}</code></pre>
+ <pre class="prettyprint highlight"><code>PlcDriverManager driverManager =
new PlcDriverManager();
+PlcMockConnection connection = (PlcMockConnection)
driverManager.getConnection("mock:my-mock-connection");</code></pre>
</div>
</div>
<div class="paragraph">
- <p>The class <em>MyEntity</em> is given by</p>
+ <p>You see, that we directly cast the Connection to a
<code>PlcMockConnection</code>. This is done, because we need to
<em>connect</em> a Device to this Mock Connection.</p>
+ </div>
+ <div class="paragraph">
+ <p>This is done in the following Snippet</p>
</div>
<div class="listingblock">
<div class="content">
- <pre class="prettyprint highlight"><code data-lang="java">@PlcEntity
-public class MyEntity {
-
- @PlcField("DB01:DW01:LONG")
- private double pressure;
+ <pre class="prettyprint
highlight"><code>connection.setDevice(mockDevice);</code></pre>
+ </div>
+ </div>
+ <div class="paragraph">
+ <p>Here, we pass it an instance of <code>MockDevice</code> which could be
a simple Implementation of the interface like</p>
+ </div>
+ <div class="listingblock">
+ <div class="content">
+ <pre class="prettyprint highlight"><code>MockDevice mockDevice = new
MockDevice() {
- public void MyEntity() {
- // For OPM
+ Pair<PlcResponseCode, BaseDefaultFieldItem> read(String fieldQuery) {
+ System.out.println("I got a read to " + fieldQuery);
+ return Pair.of(PlcResponseCode.OK, new
DefaultStringFieldItem("hello"));
}
- public double getPressure() {
- return pressure;
+ PlcResponseCode write(String fieldQuery, Object value) {
+ System.out.println("I got a write to " + fieldQuery + " with the value
" + value);
+ return PlcResponseCode.OK;
}
+
+ // ...
+
}</code></pre>
</div>
</div>
+ <div class="paragraph">
+ <p>This would just return a String Value <code>hello</code> for every
request and print all read and write requests to the Console.</p>
+ </div>
</div>
<div class="sect2">
- <h3 id="_toc_annotations1">Annotations</h3>
- </div>
- <div class="sect2">
- <h3 id="_toc_more_details1">More details</h3>
+ <h3 id="_toc_unit_testing_with_the_mock_driver1">Unit Testing with the Mock
Driver</h3>
+ <div class="paragraph">
+ <p>To use the Mock driver in Unit Tests the easiest way is to generate the
<code>MockDriver</code> instance as Mockito (or any other Framework) Mock. Like
in the following Example</p>
+ </div>
+ <div class="listingblock">
+ <div class="content">
+ <pre class="prettyprint highlight"><code>MockDevice mockDevice =
Mockito.mock(MockDevice.class);
+
+PlcDriverManager driverManager = new PlcDriverManager();
+PlcMockConnection connection = (PlcMockConnection)
driverManager.getConnection("mock:my-mock-connection");
+connection.setDevice(mockDevice);
+
+// Populate the Mock to avoid a NPE
+when(mockDevice).read(anyString()).thenReturn(Pair.of(PlcResponseCode.OK, new
DefaultStringFieldItem("hello")));
+
+// Some Demo code that uses the same Driver Manager and either the connection
from above
+// or at least mock:my-mock-connection as connection string
+// Here: send a request to the field "MyAdress"
+connection
+ .readRequestBuilder
+ .addItem("station", "MyAdress")
+ .build()
+ .execute()
+ .get();
+
+// Check that the we really issued a Read request to the Field "MyAdress"
+verify(mockDevice).read(eq("MyAdress"));</code></pre>
+ </div>
+ </div>
+ <div class="paragraph">
+ <p>But as the <em>MockDriver</em> uses a static Mock Connection registry
the following Code works also</p>
+ </div>
+ <div class="listingblock">
+ <div class="content">
+ <pre class="prettyprint highlight"><code>MockDevice mockDevice =
Mockito.mock(MockDevice.class);
+
+// Setup
+PlcDriverManager driverManager = new PlcDriverManager();
+PlcMockConnection connection = (PlcMockConnection)
driverManager.getConnection("mock:my-mock-connection");
+connection.setDevice(mockDevice);
+// Populate the Mock to avoid a NPE
+when(mockDevice).read(anyString()).thenReturn(Pair.of(PlcResponseCode.OK, new
DefaultStringFieldItem("hello")));
+
+// Some Demo code that uses the same Driver Manager and either the connection
from above
+// or at least mock:my-mock-connection as connection string
+// Here: send a request to the field "MyAdress"
+// and we build up a new Connection
+try (PlcConnection conn =
driverManager.getConnection("mock:my-mock-connection")) {
+ conn
+ .readRequestBuilder
+ .addItem("station", "MyAdress")
+ .build()
+ .execute()
+ .get();
+} catch (Exception e) {
+ // do nothing
+}
+
+// Check that the we really issued a Read request to the Field "MyAdress"
+verify(mockDevice).read(eq("MyAdress"));</code></pre>
+ </div>
+ </div>
+ <div class="paragraph">
+ <p>The Snippet above shows that the part under test really has to share
nothing with the test code except for the connection string.</p>
+ </div>
</div>
<div class="sect2">
- <h3 id="_toc_references1">References</h3>
+ <h3 id="_toc_conclusion1">Conclusion</h3>
+ <div class="paragraph">
+ <p>The above examples show that the <code>MockDriver</code> driver can not
only be used to play around with the API but is also a powerful tool to do unit
testing of Code which uses the PLC4X API. All that needs to be done is to
either pass an instance of the Mocked Connection or just use the same
Connection string (e.g. from a test configuration) that was used to Prepare a
Mock Device. Some Examples of futher (more Complex) use cases can be found in
the PLC4X Codebases, e.g. in the [...]
+ </div>
+ <div class="ulist">
+ <ul>
+ <li> <p><code>org.apache.plc4x.java.opm.PlcEntityManagerTest</code></p>
</li>
+ <li>
<p><code>org.apache.plc4x.java.opm.PlcEntityManagerComplexTest</code></p> </li>
+ <li> <p><code>org.apache.plc4x.java.scraper.ScraperTest</code></p> </li>
+ </ul>
+ </div>
<div class="paragraph">
- <p>[1] <a
href="https://www.oracle.com/technetwork/java/javaee/tech/persistence-jsp-140049.html"
class="bare">https://www.oracle.com/technetwork/java/javaee/tech/persistence-jsp-140049.html</a></p>
+ <p>and many more Test classes, especially in the OPM and the Scraper
Module.</p>
</div>
</div>
</div>