This is an automated email from the ASF dual-hosted git repository. jfeinauer pushed a change to branch master in repository https://gitbox.apache.org/repos/asf/incubator-plc4x.git.
from cef1c19 Merge tag 'release/0.2.0' add fca1b78 [maven-release-plugin] prepare for next development iteration add 77ffb14 - Added some documentation on the branching model add e9b3e9d - Documentation on the new release process .. add 7ae072b - Fixed the linking of generated images. add 9079be4 - Updated RELEASE_NOTES in preparation for release 0.2.0 add de01c66 - Removed an element that was not actually implemented yet add 33b2dd3 - Removed the MD5 verification as we no longer have MD5 files add e3f3936 - Minor update of the release.adoc to use a different tag name as the original version was causing problems during the release. - Manually added a mention of the MqttExampleOptions.java being copyrighted by Google to the main LICENSE file. add d33bfbd - Fixed the MQTT example after API changes in the MQTT-Bee project add d9d2503 - Unified the way the examples are configured. add 6bf1908 - Unified the way the examples are configured even more. add cc4cf37 - Removed the LICENSE file addition - Updated the README.md add 9e82c12 - Fixed a small typo in the RELEASE_NOTES add a08cfb4 - First attempt to separate the protocol and driver parts - Split up the different levels of the S7 driver into 3 separate protocol layers add 1243e20 - Split up the modbus driver into driver and protocol add 1d555bf - Split up the modbus driver into driver and protocol add b87edb1 [OPM] Added Timeout Test for PlcEntityManager.read(...). add 285f600 Merge remote-tracking branch 'origin/develop' into develop add 5e1bd12 - Switched the output for the site generation to our new repo at https://gitbox.apache.org/repos/asf/incubator-plc4x-website.git add d9e475e - Fixed some issues reported during our 0.2.0 release add 52b9351 - Added some more exclusions to the gitignore file add e0b067b [OPM] Added AliasRegistry and SimpleAliasRegistry as default impl. add 95f2d3d [OPM] Refactoring + Added timeout / cache to PlcField.java Annotation / added the functionality of the annotation. add 6e02169 [OPM] Refactoring, added comments from Sebastian. add fef24a7 Merge remote-tracking branch 'origin/develop' into develop add fad07e2 - Added some more exclusions to the gitignore file add e891cc7 - Added some more exclusions to the gitignore file add 561abb5 deleted DS_Store file add 47eccb1 - Testfix in OPM. - Fix in PlcMockDriver. add 65ce7d8 Fixed Sonar Bug. add 90b6f36 Changed Squid Number in PlcEntityInterceptor.java. add d8b26f9 Merge branch 'develop' of https://gitbox.apache.org/repos/asf/incubator-plc4x into develop add 2c7287d deleted DS_Store file add 3f24b82 [plc4j-simulated] added subscription support on simulated driver add 5d2903c - Added support for Siemens LOGO PLCs add 643f4ac [plc4j-driver-base] fixed getFieldNames() on DefaultPlcSubscriptionEvent add 1e94c1e temporarily switched to offline build ... add 15a8f41 temporarily switched to offline build ... add 12986db Re-enabled the deployment add 2dfbbe4 Added some documentation on changes important to users. add 2d045f6 Re-enabled the deployment add 4c79f29 Fixed some failing tests add a1f50a3 - Split up the ADS Driver the same way the others are split up add 4e236b7 - Split up the ADS Driver the same way the others are split up add 6fa99c2 [plc4j-opm] enable write support (PLC4X-70) add 78c7562 [OPM] Added OPM Documentation. add abcda3b [plc4j-pool] Fixed visibility of Interface. add 90b7f10 [plc4j-opm] fixed issue with detached entity. add 8013c09 [plc4j-opm] deactivate caching by default and fixed test add 70445ae [plc4j-opm] fixed some sonar issues. add d1bcb67 [plc4j-opm] fixed tests add f29f791 [plc4j-opm] added some tests for entity interceptor add 11e4e8f [plc4j] cleanup mock code and moved it completely to driver-bases-test add b7c907f [plc4j-driver-bases-test] added some tests. add 2852c41 [plc4j-driver-bases-test] enabled some tests. add 33d5983 [plc4j-driver-simulated] added tests and fixed bugs. add 8955a23 [plc4j-opm] Minor test coverage. add 2b4dfb6 [plc4x] enable global osgi manifest generation add 1e2263f [plc4j-scraper] Added module, initial tests. add 3fabc85 [plc4j-scraper] Added another test + logback. add 95cde8e [plc4j-scraper] Added a tet with "guarding" runnable that cancels tests and decreases performance massive. add 57efa48 [plc4j-scraper] Improvements. add 79c06aa [plc4j-scraper] Added tests. add 07886c2 [plc4j-scraper] Current state. add 1463e49 [plc4j-scraper] Fix for S7 Connection. Further implementation. add ad3a136 [plc4j-scraper] Working state. add 78e1d31 [plc4j-scraper] Increased tests coverage for Scraper.java. add d4143ea [plc4j-scraper] Test fix. add 5820835 [plc4j-scraper] Minor fixes. Added commons-pool2 versioning. add 6edb3f8 - Fixed some typos in the script add 8587eb6 PLC4X-58 - [S7] Reading more then PDU with one request blocks calling thread indefinitely add 6cfccbd - Improved the test coverage add be1ea77 - Fixed a compilation error as InternalPlcConsumerRegistration was not extending InternalPlcMessage add 92604c0 [plc4j-scraper] Added configuration with yml / json support. add 1c2a5e4 [plc4j-scraper] Added complete example. add eca6fc3 [plc4x-osgi] fixed complains about missing plugin version add 5e7c6c0 [plc4x-karaf] added new karaf-integration add 3d30794 - Added a RAT exclusion for JSON files. add 58d05a1 - Added license headers. add f1561bd - Added min to the stats. add fd78316 - Resolved some build issues. add 93a8094 - Fixed an issue in a test. add edbf0c8 [plc4j-scraper] Extended ResultHandler.java to also pass jobname and connection alias. add 777829a [plc4j-scraper] Added javadoc. add 0abbdd0 [plc4j-scraper] Added Builder for Job / Scraper config. add fe8e751 [plc4j-scraper] Fix in Builder. add 0ec10f8 [plc4j-scraper] Added assertions in test. renamed test. add 826fc1d [PLC4X-75] - Fixing dependency to the wrap url-handler add fac1b5d Merge pull request #42 from ANierbeck/develop add 6e78786 - Extended the size of the byte-offset to allow 5 digit offsets. add 39e69b0 - Fixed a bug in the processing of real responses. add 50f020a - Added name and description to the pom.xml add dcca499 PLC4X-76 - When receiving responses with more than 512 byte, the IsoOnTcp protocol doesn't work add 829cbae - Added profiling to the edgent adapter. add 85e1cc4 - Added a cleanup before un-stashing the snapshots to hopefully reduce the deploy-time as currently all previous snapshot versions were deployed too. add a1b3bd4 adjusted connector implementation add 5806147 Made the example take multiple addresses as input add 5d03591 PLC4X-77 - When the last item in a request is a DINT, the DefaultS7MessageProcessor dies with an ArrayIndexOutOfFoundsException add cc5fce9 PLC4X-77 - When the last item in a request is a DINT, the DefaultS7MessageProcessor dies with an ArrayIndexOutOfFoundsException add fbb8b98 Removed some now obsolete comment. add 32b0a87 Fixed some textual errors. add e7cfa1a Made the constructor public so it can also be configured programmatically. add d248967 - Added name and description so the build displays the scraper the same way as all the other modules. add cc7c3c9 Merge branch 'develop' of https://gitbox.apache.org/repos/asf/incubator-plc4x into develop add 3d0222c - Fixed the build by adding a missing dependency. add 099c1a7 - Added the new release. add d401780 - Fixed some things SonarQube was complaining about. - Tried to get the deleting of the "local-snapshots-dir" working. add 4a0709e - Removed the commented out slackSending add 3ef1a1d - Fixed the guava version as there were CVEs reported with the 18.0 version transitively referenced from the ethernet-ip module. add 79c57bf [plc4x-karaf] remove duplicated plugin management add 6fb2583 Tried figuring out how to clear the stash add 26ca89b Tried figuring out how to clear the stash add f293a86 Tried figuring out how to clear the stash add 6a41048 PLC4X-78 - Write operations seem to fail - Continued work on the write operations add e192c64 PLC4X-78 - Write operations seem to fail - Fixed a problem that was causing a test to fail add 3d9ba43 PLC4X-78 - Write operations seem to fail - Fixed a problem that was causing a test to fail / Extended the S7PlcTestConnection to dump the content of packets not matching the expected packet add b28d4a0 Try to get the email sending working - Intentionally added a test-failure add 5d8237c PLC4X-78 - Write operations seem to fail - Made it stable again add 1712ddb PLC4X-78 - Write operations seem to fail - Inserted a failure - Finetuned the Jenkinsfile to send nicer formatted emails and one email if the build is back to normal add 81fa0bd PLC4X-78 - Write operations seem to fail - Tried fixing the pipeline syntax. add 630e8ba PLC4X-78 - Write operations seem to fail - Another try of fixing the syntax ... add a5aa4d0 PLC4X-78 - Write operations seem to fail - And another ... add 359c7b0 PLC4X-78 - Write operations seem to fail - And another ... add acb7388 PLC4X-78 - Write operations seem to fail - And another ... add 009a924 PLC4X-78 - Write operations seem to fail - And another ... add 9fb6273 PLC4X-78 - Write operations seem to fail - And another ... add 6c1d5da PLC4X-78 - Write operations seem to fail - And another ... add 07c5234 PLC4X-78 - Write operations seem to fail - And another ... add c9b39f7 PLC4X-78 - Write operations seem to fail - And another ... add 4dcffa2 PLC4X-78 - Write operations seem to fail - And another ... - Intentionally breaking the API module to get faster results ... add b2f5e9b PLC4X-78 - Write operations seem to fail - And another ... add 96baaa0 PLC4X-78 - Write operations seem to fail - And another ... add aa0c6df PLC4X-78 - Write operations seem to fail - And another ... add e9d2ad7 Fixed the compilation error ... now the build should be unstable due to a failing test ... add 967b6ca Fixed the build again ... add 8c96312 Adjusted the content of the unstable-email add 8d190c2 Adjusted the content of the failure-email add b054c6e [OPM] Improved logging, better Exception handling. add 2cb21bc Added some Logging for Diagnostics in PlcDriverManager. add a67f311 [OPM,POOL] Added better defaults for Scrapers PlcPooledDriverManager. add bf5f708 Make the email code only send emails for develop. add 2fefd99 Added a section that reports commits made to the master branch. add 5768c8a Streamlined the Jenkinsfile to use the jenkins.pom for deploying the site the same way we are doing this in the deploy-snapshots phase. add c9278a7 Removed an unneeded variable assignment. add e1dcefe Fixed some typos ... add 4d4612a Initial commit C++ API add d3e6a58 [CALCITE] Started implementation for the Calcite Integration. add df1a6db [CALCITE] Running Version. add 06ea388 [CALCITE] Some refactoring. add 69a003e [CALCITE] Some refactoring. add acfdb79 Merge branch 'feature/calcite-adapter' into develop add 44401f4 [CALCITE] Fixed Snapshot dependency. add 4def181 [CALCITE] Fixed failing test (moved calcite model.yml to json). add 1165d9a Initial commit C++ API add c6c536b Finished a version of the code donated by Markus Sommer that is buildable with Maven and works on Mac, Linux and Windows 64bit machines. add 73456be Cleaning up in the poms and documenting some of the settings. add c657a31 Configured the Jenkinsfile to cleanup the deployment directories for snapshots and the site after deployment (Freeing up more space on the normal build nodes) add 8666051 Added a workspace-wipe at the end of a successful build. add 4dcf1da Made the jenkins job discard build logs and artifacts earlier. add 1f2778b [CALCITE] Fixed sonar issues. add 3c38bb2 - Made the C++ build run faster (Boost now builds the "system" library) - Fixed a problem with the Windows build (the boost build adds an additional directory when building on windows) add 1ff2614 Adjusted the example to match some API changes in the upstream cloud-bee library. add dc22e1c - Cleaned up the properties - Made the CMakeLists.txt no longer contain two versions of the include path - Integrated the C++ module into the main build (but is only included, if the "with-cpp" profile is manually enabled) add a9412d3 - Moved the enforcer-checks to a dedicated "development" profile as they only make sense there and could otherwise cause problems when building previous releases. add 4b3a57d S7: fix of array acquirement, fix of String aquirement, added additional scraper yml add e8d0a7b Extended RELEASE_NOTES for Release 0.3.0 add f8270e2 Changed Copyright info in NOTICE. add 87f6c1a [maven-release-plugin] prepare branch rel/0.3 add fd7842f Fixed failing Test. add dc4d601 Replaced the old dependency (after renaming). add b0a46fa - Manually removed the "-SNAPSHOT" suffix from modules not part of the normal build in preparation of the upcoming release. add 26bbf9d [maven-release-plugin] prepare for next development iteration add 92084ec Fixed failing Test. add 333656e - Updated the pom versions of modules excluded from the build. add 2696c89 - Fixed an invalid dependency add 0d03828 - Added DFDL Schema for S7 Protocol. add 8076766 - Added two more DFDL schemas for ISO-TP and ISO-on-TCP add 46d5d93 S7: fix of array acquirement, fix of String aquirement, added additional scraper yml add 704f989 Merge pull request #43 from timbo2k/s7_array_stuff add 980c069 S7: changed byteLength and blockNumber from short to int add 7031908 Merge pull request #44 from timbo2k/too_short_range_for_offset add 972188f - Resolved merge conflicts.. add 248068e - Fixed some tests now failling due to the tape change of blockNumber and byteOffset add aebdb7e - Added some more documentation on things we noticed when preparing the last release branch add 3bf21b0 - Made the TcpSocketChannelFactory wrap any exception into a Plc4xException in order to fix issues with some tests which would fail for people with DNS providers with capture-all responses. add 4f94262 - Added "name" tags to the projects poms that were missing them ... now the output of the reactor sumary looks nice again. add 9db9e6b - Found another place where tests fail on systems with DNS providers that return default IPs add 232bef5 - Disabled one test we simply can't check reliably in case of DNS providers returning default IP addresses for unknown domain names add 316fdbd - Replaced the hostname we expect not to exist with one a little more obvious. add 297b090 - Defined a new Annotation "RequirePcapNg" you can annotate Junit5 tests with to automatically disable tests, if the libpcap requirement is not met (Especially on Windows) add d8588bf README - Updated the integration module list - Updated the requirements - Added information on installing libpcap/WinPcap - Added a section on building with C++ add 1fca054 - Added a new RequirePcap for general libpcap requiring tests add 0a9c0c1 - Bumped the artifact version to a newer one due to CVEs add 83747fb - Excluded the plexus-utils dependency. add e853c79 - Fixed some SonarQube findings add 6fb54d7 - Cleaned up the dependency versions add 1a09a0a - Hopefully fixed the Scraper test that was failing on some systems. add 9313aa8 - Changed the way we do the Vulnerability checks for our referenced libraries. - Improved the documentation in our README add 29b0cef - Commented in the commented out line back. add 5c896fe - Changed the dependencyManagement to use version-properties for every dependency. add c32afe3 - Added a annotation to prevent Mockito unnecessary-stubbing exceptions add 3b736d7 - Further attempts to get the ScraperTaskTest running on all platforms add 717cdd4 - Moved the JAR related plugin configuration to the java-module profile to reduce the number of warnings in the build add ad84572 - Updated the JQAssistant version and removed a now obsolete setting from the Jenkinsfile add 9570de7 - Converted the test-data from pcapng files to pcap files as on some systems there were issues reading them. add f71b59f - Converted the test-data from pcapng files to pcap files as on some systems there were issues reading them. add 8ff9546 - Removed an unneeded utility class. add a05c0f4 - Bumped the karaf plugin to a newer version - Bumped the maven sonar plugin to a newer version - Merged the wireshark-utils with the test-utils - Added JUnit5 annotations for detecting an active internet connection - Added JUnit5 annotations for detecting an capture-all DNS service add 556518a - Reassigned the features generate-descriptor and verify goal executions of the karaf plugin to the package phase of the build. add 4b1bf59 - Removed some unused imports. add cecf75e - Added a first Daffodil testcase for the cotp protocol add 7a93015 - Managed to get the Daffodil testcase working. add be30559 - Got the testsuite working for the protocols module (Was missing a "src/main/java" directory, which activates the "java-module" profile) add 54f4269 - Added tests to fully test the tpkt protocol. add 7c843a2 - Simplified the way test-suites are defined add 58cd74a Merge branch 'develop' into rel/0.3 add ef3ec76 Fixed all versions after merging master to prepare RC. add 0190e77 Fixed all versions after merging master to prepare RC. add bc61d51 Commented out mqtt support due to SNAPSHOT dependency on mqtt-bee add a7b8fdf [maven-release-plugin] prepare for next development iteration add 3754811 [maven-release-plugin] rollback the release of release/0.3.0 add 696bd0d Reverted previous release commits, restarting release cycle. add 7e4b25d [maven-release-plugin] prepare for next development iteration add f270609 [maven-release-plugin] rollback the release of release/0.3.0 add 904eba4 [maven-release-plugin] prepare release release/0.3.0 add 9298697 [maven-release-plugin] prepare for next development iteration add ac40415 Fixed issue in RELEASE_NOTES add 2baacd7 Going back to status before rc1 release. add 6f2ee1c Fixed issue in RELEASE_NOTES add ed21ab1 [maven-release-plugin] prepare release release/0.3.0 new 7392cd5 [maven-release-plugin] copy for tag release/0.3.0 The 1 revisions listed above as "new" are entirely new to this repository and will be described in separate emails. The revisions listed as "add" were already present in the repository and have only been added to this reference. Summary of changes: .gitignore | 15 +- DEVELOPMENT.md | 2 +- Jenkinsfile | 118 ++++- LICENSE | 11 +- NOTICE | 9 +- README | 41 +- RELEASE_NOTES | 44 +- plc4s/pom.xml => Sometimes-Failling-Tests.md | 28 +- examples/dummy-driver/pom.xml | 8 +- examples/hello-cloud-azure/pom.xml | 21 +- .../java/examples/cloud/azure/CliOptions.java | 99 ++++ .../cloud/azure/S7PlcToAzureIoTHubSample.java | 23 +- examples/hello-cloud-google/README.md | 14 +- examples/hello-cloud-google/pom.xml | 63 +-- .../java/examples/cloud/google/CliOptions.java | 222 ++++++++ .../examples/cloud/google/MqttExampleOptions.java | 164 ------ .../cloud/google/S7PlcToGoogleIoTCoreSample.java | 29 +- .../src/remote-resources/META-INF/LICENSE | 5 - examples/hello-connectivity-kafka/pom.xml | 21 +- examples/hello-connectivity-mqtt/pom.xml | 24 +- .../examples/connectivity/mqtt/MqttConnector.java | 18 +- examples/hello-integration-edgent/pom.xml | 16 +- .../examples/integration/edgent/CliOptions.java | 99 ++++ .../examples/integration/edgent/PlcLogger.java | 18 +- examples/hello-opm/pom.xml | 18 +- .../plc4x/java/examples/helloplc4x/HelloPlc4x.java | 110 ---- examples/hello-storage-elasticsearch/pom.xml | 18 +- examples/hello-world-plc4x/pom.xml | 26 +- .../plc4x/java/examples/helloplc4x/CliOptions.java | 84 +++ .../plc4x/java/examples/helloplc4x/HelloPlc4x.java | 15 +- examples/pom.xml | 7 +- integrations/apache-brooklyn/pom.xml | 2 +- .../apache-calcite}/pom.xml | 73 +-- .../main/java/org/apache/plc4x/Plc4xBaseTable.java | 198 +++++++ .../main/java/org/apache/plc4x/Plc4xSchema.java | 103 ++++ .../java/org/apache/plc4x/Plc4xSchemaFactory.java | 58 ++ .../java/org/apache/plc4x/Plc4xStreamTable.java | 33 +- .../src/main/java/org/apache/plc4x/Plc4xTable.java | 23 +- .../java/org/apache/plc4x/DriverManagerTest.java | 85 +++ .../java/org/apache/plc4x/Plc4XBaseTableTest.java | 48 ++ .../org/apache/plc4x/Plc4xSchemaFactoryTest.java | 25 +- .../apache-calcite/src/test/resources/example.yml | 21 +- .../apache-calcite}/src/test/resources/logback.xml | 0 .../apache-calcite/src/test/resources/model.json | 40 ++ integrations/apache-camel/pom.xml | 18 +- integrations/apache-edgent/pom.xml | 16 +- .../apache/plc4x/edgent/PlcConnectionAdapter.java | 10 +- integrations/apache-kafka/pom.xml | 17 +- .../apache/plc4x/kafka/Plc4xSourceConnector.java | 84 ++- .../apache-karaf/karaf-ads-feature/pom.xml | 52 ++ .../apache-karaf/karaf-demo-server}/pom.xml | 92 ++-- .../apache-karaf/karaf-ethernet-ip-feature/pom.xml | 52 ++ .../apache-karaf/karaf-modbus-feature/pom.xml | 52 ++ integrations/apache-karaf/karaf-s7-feature/pom.xml | 52 ++ .../apache-karaf/karaf-simulated-feature/pom.xml | 52 ++ integrations/apache-karaf/pom.xml | 88 +++ integrations/apache-mynewt/pom.xml | 2 +- integrations/apache-nifi/nifi-plc4x-nar/pom.xml | 33 +- .../apache-nifi/nifi-plc4x-processors/pom.xml | 11 +- integrations/apache-nifi/pom.xml | 2 +- integrations/pom.xml | 4 +- jenkins.pom | 24 + plc4c/pom.xml | 4 +- plc4cpp/README.md | 31 ++ plc4cpp/api/pom.xml | 50 ++ plc4cpp/api/src/main/cmake/CMakeLists.txt | 76 +++ .../cpp/org/apache/plc4x/cpp/api/PlcConnection.cpp | 20 +- .../cpp/org/apache/plc4x/cpp/api/PlcConnection.h | 112 ++++ .../cpp/api/authentication/PlcAuthentication.cpp | 39 +- .../cpp/api/authentication/PlcAuthentication.h | 38 +- .../PlcUsernamePasswordAuthentication.cpp | 97 ++++ .../PlcUsernamePasswordAuthentication.h | 65 +++ .../cpp/api/exceptions/PlcConnectionException.cpp | 29 +- .../cpp/api/exceptions/PlcConnectionException.h | 53 ++ .../plc4x/cpp/api/exceptions/PlcException.cpp | 58 +- .../apache/plc4x/cpp/api/exceptions/PlcException.h | 58 ++ .../cpp/api/exceptions/PlcFieldRangeException.cpp | 31 +- .../cpp/api/exceptions/PlcFieldRangeException.h | 37 +- .../PlcIncompatibleDatatypeException.cpp | 31 +- .../exceptions/PlcIncompatibleDatatypeException.h | 50 +- .../api/exceptions/PlcInvalidFieldException.cpp | 63 +++ .../cpp/api/exceptions/PlcInvalidFieldException.h | 57 ++ .../plc4x/cpp/api/exceptions/PlcIoException.cpp | 30 +- .../plc4x/cpp/api/exceptions/PlcIoException.h | 55 ++ .../api/exceptions/PlcNotImplementedException.cpp | 27 +- .../api/exceptions/PlcNotImplementedException.h | 55 +- .../cpp/api/exceptions/PlcProtocolException.cpp | 27 +- .../cpp/api/exceptions/PlcProtocolException.h | 58 ++ .../PlcProtocolPayloadTooBigException.cpp | 69 +++ .../exceptions/PlcProtocolPayloadTooBigException.h | 64 +++ .../cpp/api/exceptions/PlcRuntimeException.cpp | 53 +- .../plc4x/cpp/api/exceptions/PlcRuntimeException.h | 59 +++ .../cpp/api/exceptions/PlcTimeoutException.cpp | 53 +- .../plc4x/cpp/api/exceptions/PlcTimeoutException.h | 69 +++ .../exceptions/PlcUnsupportedDataTypeException.cpp | 27 +- .../exceptions/PlcUnsupportedDataTypeException.h | 54 ++ .../PlcUnsupportedOperationException.cpp | 27 +- .../exceptions/PlcUnsupportedOperationException.h | 55 ++ .../plc4x/cpp/api/messages/PlcFieldRequest.cpp | 27 +- .../plc4x/cpp/api/messages/PlcFieldRequest.h | 61 +++ .../plc4x/cpp/api/messages/PlcFieldResponse.cpp | 27 +- .../plc4x/cpp/api/messages/PlcFieldResponse.h | 67 +++ .../apache/plc4x/cpp/api/messages/PlcMessage.cpp | 27 +- .../org/apache/plc4x/cpp/api/messages/PlcMessage.h | 42 +- .../plc4x/cpp/api/messages/PlcReadRequest.cpp | 39 +- .../apache/plc4x/cpp/api/messages/PlcReadRequest.h | 64 ++- .../cpp/api/messages/PlcReadRequestBuilder.cpp | 27 +- .../plc4x/cpp/api/messages/PlcReadRequestBuilder.h | 57 +- .../plc4x/cpp/api/messages/PlcReadResponse.cpp | 27 +- .../plc4x/cpp/api/messages/PlcReadResponse.h | 136 +++++ .../apache/plc4x/cpp/api/messages/PlcRequest.cpp | 27 +- .../org/apache/plc4x/cpp/api/messages/PlcRequest.h | 45 +- .../plc4x/cpp/api/messages/PlcRequestBuilder.cpp | 27 +- .../plc4x/cpp/api/messages/PlcRequestBuilder.h | 55 +- .../apache/plc4x/cpp/api/messages/PlcResponse.cpp | 27 +- .../apache/plc4x/cpp/api/messages/PlcResponse.h | 58 +- .../cpp/api/messages/PlcSubscriptionEvent.cpp | 27 +- .../plc4x/cpp/api/messages/PlcSubscriptionEvent.h | 58 +- .../cpp/api/messages/PlcSubscriptionRequest.cpp | 27 +- .../cpp/api/messages/PlcSubscriptionRequest.h | 88 +++ .../cpp/api/messages/PlcSubscriptionResponse.cpp | 27 +- .../cpp/api/messages/PlcSubscriptionResponse.h | 62 +++ .../cpp/api/messages/PlcUnsubscriptionRequest.cpp | 27 +- .../cpp/api/messages/PlcUnsubscriptionRequest.h | 61 +++ .../cpp/api/messages/PlcUnsubscriptionResponse.cpp | 27 +- .../cpp/api/messages/PlcUnsubscriptionResponse.h | 41 +- .../plc4x/cpp/api/messages/PlcWriteRequest.cpp | 27 +- .../plc4x/cpp/api/messages/PlcWriteRequest.h | 86 +++ .../plc4x/cpp/api/messages/PlcWriteResponse.cpp | 27 +- .../plc4x/cpp/api/messages/PlcWriteResponse.h | 45 +- .../org/apache/plc4x/cpp/api/messages/REQUEST.cpp | 28 +- .../org/apache/plc4x/cpp/api/messages/REQUEST.h | 37 +- .../org/apache/plc4x/cpp/api/messages/RESPONSE.cpp | 28 +- .../org/apache/plc4x/cpp/api/messages/RESPONSE.h | 38 +- .../plc4x/cpp/api/messages/RequestTemplate.cpp | 28 +- .../plc4x/cpp/api/messages/RequestTemplate.h | 36 +- .../plc4x/cpp/api/messages/ResponseTemplate.cpp | 28 +- .../plc4x/cpp/api/messages/ResponseTemplate.h | 37 +- .../cpp/api/metadata/PlcConnectionMetadata.cpp | 28 +- .../plc4x/cpp/api/metadata/PlcConnectionMetadata.h | 66 +++ .../org/apache/plc4x/cpp/api/model/Consumer.cpp | 27 +- .../cpp/org/apache/plc4x/cpp/api/model/Consumer.h | 62 +++ .../cpp/api/model/PlcConsumerRegistration.cpp | 27 +- .../plc4x/cpp/api/model/PlcConsumerRegistration.h | 37 +- .../org/apache/plc4x/cpp/api/model/PlcField.cpp | 27 +- .../cpp/org/apache/plc4x/cpp/api/model/PlcField.h | 60 +++ .../plc4x/cpp/api/model/PlcSubscriptionHandle.cpp | 27 +- .../plc4x/cpp/api/model/PlcSubscriptionHandle.h | 62 +++ .../plc4x/cpp/api/types/PlcClientDataType.cpp | 27 +- .../apache/plc4x/cpp/api/types/PlcClientDataType.h | 46 +- .../apache/plc4x/cpp/api/types/PlcResponseCode.cpp | 27 +- .../apache/plc4x/cpp/api/types/PlcResponseCode.h | 41 +- .../plc4x/cpp/api/types/PlcSubscriptionType.cpp | 27 +- .../plc4x/cpp/api/types/PlcSubscriptionType.h | 61 ++- .../apache/plc4x/cpp/api/types/ValueTypeObject.cpp | 30 +- .../apache/plc4x/cpp/api/types/ValueTypeObject.h | 38 +- plc4cpp/libs/pom.xml | 152 ++++++ plc4cpp/pom.xml | 221 ++++++++ plc4j/api/pom.xml | 5 +- .../org/apache/plc4x/java/PlcDriverManager.java | 7 + .../api/exceptions/PlcInvalidFieldException.java | 1 + .../apache/plc4x/java/PlcDriverManagerTest.java | 7 +- .../exceptions/PlcFieldRangeExceptionTest.java} | 18 +- .../exceptions/PlcInvalidFieldExceptionTest.java | 8 + .../plc4x/java/mock/DuplicateMockDriver.java} | 11 +- .../org/apache/plc4x/java/mock/MockDriver.java | 55 ++ .../apache/plc4x/java/mock/MockPlcConnection.java} | 11 +- .../services/org.apache.plc4x.java.spi.PlcDriver | 0 .../services/org.apache.plc4x.java.spi.PlcDriver | 2 +- plc4j/core/pom.xml | 71 --- .../org/apache/plc4x/java/mock/MockConnection.java | 52 -- .../apache/plc4x/java/mock/PlcMockDriverTest.java | 74 --- plc4j/{utils/opm => drivers/ads}/pom.xml | 86 +-- .../org/apache/plc4x/java/ads/AdsPlcDriver.java | 34 +- .../ads/connection/AdsAbstractPlcConnection.java | 4 +- .../java/ads/connection/AdsConnectionFactory.java | 0 .../ads/connection/AdsSerialPlcConnection.java | 0 .../java/ads/connection/AdsTcpPlcConnection.java | 39 +- .../services/org.apache.plc4x.java.spi.PlcDriver | 0 .../apache/plc4x/java/ads/AdsPlcDriverTest.java | 36 +- .../ads/adslib/ADSClientNotificationExample.java | 0 .../org/apache/plc4x/java/ads/adslib/AdsLib.java | 0 .../apache/plc4x/java/ads/adslib/AmsRequest.java | 4 +- .../apache/plc4x/java/ads/adslib/AmsRouter.java | 0 .../org/apache/plc4x/java/ads/adslib/Output.java | 0 .../apache/plc4x/java/ads/adslib/package-info.java | 0 .../connection/AdsAbstractPlcConnectionTest.java | 13 +- .../ads/connection/AdsConnectionFactoryTest.java | 9 +- .../ads/connection/AdsSerialPlcConnectionTest.java | 9 +- .../ads/connection/AdsTcpPlcConnectionTests.java | 45 +- plc4j/drivers/delta-v/pom.xml | 37 ++ plc4j/{utils/opm => drivers/ethernet-ip}/pom.xml | 101 ++-- .../plc4x/java/ethernetip/EtherNetIpPlcDriver.java | 4 +- .../connection/BaseEtherNetIpPlcConnection.java | 2 +- .../connection/EtherNetIpTcpPlcConnection.java | 0 .../services/org.apache.plc4x.java.spi.PlcDriver | 0 .../org/apache/plc4x/java/ethernetip/EnipTest.java | 24 +- .../java/ethernetip/ManualPlc4XEtherNetIpTest.java | 0 .../src/test/resources/read-attribute.pcap | Bin 0 -> 258 bytes plc4j/{utils/opm => drivers/modbus}/pom.xml | 88 ++- .../apache/plc4x/java/modbus/ModbusPlcDriver.java | 38 +- .../modbus/connection/BaseModbusPlcConnection.java | 32 +- .../modbus/connection/ModbusConnectionFactory.java | 0 .../connection/ModbusSerialPlcConnection.java | 0 .../modbus/connection/ModbusTcpPlcConnection.java | 30 +- .../services/org.apache.plc4x.java.spi.PlcDriver | 0 .../plc4x/java/modbus/ModbusPlcDriverTest.java | 10 +- .../connection/BaseModbusPlcConnectionTest.java | 4 +- .../connection/ModbusConnectionFactoryTest.java | 2 +- .../connection/ModbusSerialPlcConnectionTest.java | 0 .../connection/ModbusTcpPlcConnectionTests.java | 0 plc4j/drivers/pom.xml | 44 ++ plc4s/pom.xml => plc4j/drivers/s7/README.md | 27 +- plc4j/{protocols => drivers}/s7/pom.xml | 103 ++-- .../java/org/apache/plc4x/java/s7/S7PlcDriver.java | 6 +- .../plc4x/java/s7/connection/S7PlcConnection.java | 89 ++-- .../services/org.apache.plc4x.java.spi.PlcDriver | 0 .../org/apache/plc4x/java/s7/S7PlcDriverTest.java | 2 + .../java/s7/connection/S7PlcConnectionIT.java | 45 +- .../java/s7/connection/S7PlcConnectionTests.java | 47 +- .../java/s7/connection/S7PlcTestConnection.java | 50 +- .../java/s7/connection}/issues/PLC4X47Test.java | 2 +- .../s7/connection/iso-tp-connect-response.pcap | Bin .../s7/connection/s7-cpu-functions-response.pcap | Bin .../java/s7/connection/s7-read-large-response.pcap | Bin 0 -> 652 bytes .../java/s7/connection/s7-read-var-request.pcap | Bin 0 -> 125 bytes .../java/s7/connection/s7-read-var-response.pcap | Bin 0 -> 120 bytes .../s7-setup-communication-response.pcap | Bin .../java/s7/connection/s7-write-var-request.pcap | Bin 0 -> 130 bytes .../java/s7/connection/s7-write-var-response.pcap | Bin 0 -> 116 bytes plc4j/drivers/simulated/pom.xml | 61 +++ .../plc4x/java/simulated/SimulatedPlcDriver.java} | 46 +- .../connection/SimulatedPlcConnection.java | 219 ++++++++ .../java/simulated/connection/TestDevice.java | 199 +++++++ .../java/simulated/connection}/TestField.java | 99 ++-- .../simulated/connection}/TestFieldHandler.java | 8 +- .../java/simulated/connection}/TestFieldItem.java | 4 +- .../plc4x/java/simulated/connection}/TestType.java | 2 +- .../services/org.apache.plc4x.java.spi.PlcDriver | 38 ++ .../java/simulated/SimulatedPlcDriverTest.java | 57 ++ .../connection/SimulatedPlcConnectionTest.java | 245 +++++++++ .../java/simulated/connection}/TestDeviceTest.java | 6 +- .../simulated/connection/TestFieldHandlerTest.java | 133 +++++ .../simulated/connection/TestFieldItemTest.java} | 15 +- .../java/simulated/connection/TestFieldTest.java | 61 +++ plc4j/pom.xml | 4 +- plc4j/protocols/ads/pom.xml | 32 +- .../java/ads/api/commands/types/LengthTest.java | 2 +- .../ads/api/commands/types/ReadLengthTest.java | 2 +- .../ads/api/commands/types/SampleSizeTest.java | 2 +- .../java/ads/api/commands/types/SamplesTest.java | 2 +- .../ads/api/commands/types/WriteLengthTest.java | 2 +- .../java/ads/api/generic/types/AmsPortTest.java | 2 +- .../java/ads/api/generic/types/DataLengthTest.java | 2 +- .../java/ads/api/generic/types/TcpLengthTest.java | 2 +- plc4j/protocols/benchmarks/pom.xml | 6 +- plc4j/protocols/delta-v/pom.xml | 10 +- plc4j/protocols/driver-bases/base/pom.xml | 6 +- .../plc4x/java/base/PlcByteToMessageCodec.java | 59 +++ .../base/connection/AbstractPlcConnection.java | 20 + .../java/base/connection/NettyPlcConnection.java | 20 +- .../java/base/messages/DefaultPlcReadResponse.java | 13 +- .../base/messages/DefaultPlcSubscriptionEvent.java | 5 +- .../java/base/messages/InternalPlcMessage.java} | 11 +- .../java/base/messages/InternalPlcRequest.java | 2 +- .../base/model/DefaultPlcSubscriptionHandle.java | 17 +- .../model/InternalPlcConsumerRegistration.java | 3 +- .../base/model/InternalPlcSubscriptionHandle.java | 3 +- .../base/connection/AbstractPlcConnectionTest.java | 16 + .../base/connection/NettyPlcConnectionTest.java | 78 +++ .../messages/DefaultPlcSubscriptionEventTest.java | 8 +- .../model/DefaultPlcSubscriptionHandleTest.java | 5 +- plc4j/protocols/driver-bases/pom.xml | 2 +- plc4j/protocols/driver-bases/raw-socket/pom.xml | 6 +- plc4j/protocols/driver-bases/serial/pom.xml | 7 +- plc4j/protocols/driver-bases/tcp/pom.xml | 6 +- .../base/connection/TcpSocketChannelFactory.java | 2 + plc4j/protocols/driver-bases/test/pom.xml | 6 +- .../plc4x/java/base/util/Junit5Backport.java | 41 -- .../org/apache/plc4x/java/mock/MockDevice.java | 18 +- .../java/org/apache/plc4x/java/mock/MockField.java | 13 + .../apache/plc4x/java/mock/MockFieldHandler.java | 70 +++ .../org/apache/plc4x/java/mock/MockFieldItem.java} | 9 +- .../org/apache/plc4x/java/mock/MockReader.java | 51 -- .../apache/plc4x/java/mock/PlcMockConnection.java | 111 +++- .../org/apache/plc4x/java/mock/PlcMockDriver.java | 22 +- .../plc4x/java/mock/MockFieldHandlerTest.java | 111 ++++ .../apache/plc4x/java/mock/MockFieldItemTest.java} | 15 +- .../org/apache/plc4x/java/mock/MockFieldTest.java} | 34 +- .../plc4x/java/mock/PlcMockConnectionTest.java | 164 ++++++ .../apache/plc4x/java/mock/PlcMockDriverTest.java | 53 +- .../protocols/{ethernetip => ethernet-ip}/pom.xml | 36 +- .../java/ethernetip/model/EtherNetIpField.java | 0 .../plc4x/java/ethernetip/netty/EnipCodec.java | 0 .../ethernetip/netty/Plc4XEtherNetIpProtocol.java | 0 .../netty/events/EtherNetIpConnectedEvent.java | 0 .../ethernetip/netty/util/EnipPlcFieldHandler.java | 0 .../src/site/asciidoc/index.adoc | 0 .../src/site/resources/img/WAGO_enip_exporer.png | Bin .../src/test/resources/read-attribute.pcapng | Bin 664 -> 0 bytes plc4j/{utils/opm => protocols/iso-on-tcp}/pom.xml | 66 +-- .../java/isoontcp/protocol}/IsoOnTcpProtocol.java | 63 +-- .../isoontcp/protocol/model/IsoOnTcpMessage.java} | 12 +- .../isoontcp/protocol}/IsoOnTcpProtocolTest.java | 41 +- plc4j/{utils/opm => protocols/iso-tp}/pom.xml | 69 +-- .../plc4x/java/isotp/protocol}/IsoTPProtocol.java | 50 +- .../protocol}/events/IsoTPConnectedEvent.java | 2 +- .../java/isotp/protocol}/model/IsoTPMessage.java | 4 +- .../model/params/CalledTsapParameter.java | 4 +- .../model/params/CallingTsapParameter.java | 4 +- .../protocol}/model/params/ChecksumParameter.java | 4 +- .../DisconnectAdditionalInformationParameter.java | 4 +- .../isotp/protocol}/model/params/Parameter.java | 4 +- .../protocol}/model/params/TpduSizeParameter.java | 6 +- .../protocol}/model/params/TsapParameter.java | 2 +- .../model/tpdus/ConnectionConfirmTpdu.java | 8 +- .../model/tpdus/ConnectionRequestTpdu.java | 8 +- .../protocol}/model/tpdus/ConnectionTpdu.java | 8 +- .../isotp/protocol}/model/tpdus/CustomTpdu.java | 6 +- .../java/isotp/protocol}/model/tpdus/DataTpdu.java | 6 +- .../model/tpdus/DisconnectConfirmTpdu.java | 6 +- .../model/tpdus/DisconnectRequestTpdu.java | 8 +- .../protocol}/model/tpdus/DisconnectTpdu.java | 6 +- .../isotp/protocol}/model/tpdus/ErrorTpdu.java | 8 +- .../java/isotp/protocol}/model/tpdus/Tpdu.java | 6 +- .../isotp/protocol}/model/types/DeviceGroup.java | 2 +- .../protocol}/model/types/DisconnectReason.java | 2 +- .../isotp/protocol}/model/types/ParameterCode.java | 2 +- .../isotp/protocol}/model/types/ProtocolClass.java | 2 +- .../isotp/protocol}/model/types/RejectCause.java | 2 +- .../java/isotp/protocol}/model/types/TpduCode.java | 2 +- .../java/isotp/protocol}/model/types/TpduSize.java | 2 +- .../java/isotp/protocol}/IsoTPProtocolTest.java | 65 +-- .../isotp/protocol}/model/IsoTPMessageTests.java | 46 +- .../protocol}/model/params/ParameterTests.java | 44 +- .../protocol}/model/params/TsapParameterTests.java | 42 +- .../protocol}/model/tpdus/IsotpModelTests.java | 48 +- .../protocol}/model/types/IsotpTypeTests.java | 38 +- plc4j/protocols/modbus/pom.xml | 34 +- .../java/modbus/netty/Plc4XModbusProtocol.java | 30 +- plc4j/protocols/pom.xml | 7 +- plc4j/protocols/s7/pom.xml | 61 +-- .../org/apache/plc4x/java/s7/model/S7Field.java | 75 ++- .../plc4x/java/s7/netty/Plc4XS7Protocol.java | 7 +- .../org/apache/plc4x/java/s7/netty/S7Protocol.java | 61 ++- .../model/params/items/S7AnyVarParameterItem.java | 12 +- .../netty/model/types/DataTransportErrorCode.java | 4 +- .../s7/netty/model/types/DataTransportSize.java | 6 +- .../java/s7/netty/model/types/MemoryArea.java | 3 +- .../java/s7/netty/model/types/MessageType.java | 2 +- .../java/s7/netty/model/types/ParameterType.java | 2 +- .../s7/netty/model/types/SpecificationType.java | 2 +- .../java/s7/netty/model/types/TransportSize.java | 30 +- .../netty/model/types/VariableAddressingMode.java | 2 +- .../strategies/DefaultS7MessageProcessor.java | 243 +++++---- .../java/s7/netty/util/S7PlcFieldHandler.java | 2 - .../s7/netty/util/S7RequestSizeCalculator.java | 1 + .../plc4x/java/s7/types/S7ControllerType.java | 5 +- .../plc4x/java/s7/utils/S7TsapIdEncoder.java | 2 +- .../plc4x/java/s7/netty/Plc4XS7ProtocolSpec.groovy | 2 +- .../java/org/apache/plc4x/java/issues/PLC4X56.java | 42 +- .../org/apache/plc4x/java/s7/PcapGenerator.java | 6 +- .../org/apache/plc4x/java/s7/S7PlcScanner.java | 86 --- .../org/apache/plc4x/java/s7/S7PlcTestConsole.java | 69 --- .../apache/plc4x/java/s7/S7PlcWriterSample.java | 63 --- .../apache/plc4x/java/s7/model/S7FieldTests.java | 8 +- .../plc4x/java/s7/netty/Plc4XS7ProtocolTest.java | 11 +- .../apache/plc4x/java/s7/netty/S7ProtocolTest.java | 8 +- .../s7/netty/model/messages/S7MessageTests.java | 9 +- .../strategies/DefaultS7MessageProcessorTest.java | 221 +++++++- .../plc4x/java/s7/utils/S7TsapIdEncoderTest.java | 2 +- ...spockframework.report.IReportCreator.properties | 0 .../java/s7/connection/s7-read-var-request.pcapng | Bin 400 -> 0 bytes .../java/s7/connection/s7-read-var-response.pcapng | Bin 392 -> 0 bytes .../java/s7/connection/s7-write-var-request.pcapng | Bin 404 -> 0 bytes .../s7/connection/s7-write-var-response.pcapng | Bin 388 -> 0 bytes plc4j/protocols/test/pom.xml | 56 -- .../apache/plc4x/java/mock/MockFieldHandler.java | 33 -- .../apache/plc4x/java/mock/PlcMockConnection.java | 127 ----- .../org/apache/plc4x/java/mock/PlcMockDriver.java | 62 --- .../org/apache/plc4x/java/test/TestConnection.java | 127 ----- .../org/apache/plc4x/java/test/TestDevice.java | 118 ----- .../services/org.apache.plc4x.java.spi.PlcDriver | 20 - plc4j/utils/connection-pool/pom.xml | 10 +- .../java/utils/connectionpool/PoolKeyFactory.java | 1 + .../connectionpool/PooledPlcDriverManager.java | 2 +- plc4j/utils/opm/pom.xml | 24 +- .../org/apache/plc4x/java/opm/AliasRegistry.java} | 34 +- .../java/org/apache/plc4x/java/opm/OpmUtils.java | 49 +- .../plc4x/java/opm/PlcEntityInterceptor.java | 309 +++++++++-- .../apache/plc4x/java/opm/PlcEntityManager.java | 143 ++--- .../java/org/apache/plc4x/java/opm/PlcField.java | 6 +- .../apache/plc4x/java/opm/SimpleAliasRegistry.java | 75 +++ .../apache/plc4x/java/opm/ConnectedEntityTest.java | 119 +++++ .../org/apache/plc4x/java/opm/OpmUtilsTest.java | 66 +++ .../plc4x/java/opm/PlcEntityInterceptorTest.java | 181 +++++-- .../java/opm/PlcEntityManagerComplexTest.java | 41 +- .../plc4x/java/opm/PlcEntityManagerTest.java | 314 ++++++++--- .../plc4x/java/opm/SimpleAliasRegistryTest.java | 79 +++ plc4j/utils/pom.xml | 4 +- plc4j/utils/raw-sockets/pom.xml | 10 +- .../java/utils/rawsockets/RawIpSocketTest.java | 2 + plc4j/utils/scraper/pom.xml | 121 +++++ .../apache/plc4x/java/scraper/ResultHandler.java} | 23 +- .../org/apache/plc4x/java/scraper/ScrapeJob.java | 64 +++ .../org/apache/plc4x/java/scraper/Scraper.java | 174 ++++++ .../org/apache/plc4x/java/scraper/ScraperTask.java | 197 +++++++ .../java/scraper/config/JobConfiguration.java | 71 +++ .../scraper/config/JobConfigurationBuilder.java | 60 +++ .../java/scraper/config/ScraperConfiguration.java | 131 +++++ .../config/ScraperConfigurationBuilder.java | 48 ++ .../config/ScraperConfigurationException.java} | 33 +- .../scraper/util/PercentageAboveThreshold.java | 58 ++ .../apache/plc4x/java/s7/ManualS7PlcDriverMT.java | 205 +++++++ .../java/scraper/ScraperConfigurationTest.java | 202 +++++++ .../apache/plc4x/java/scraper/ScraperRunner.java} | 22 +- .../apache/plc4x/java/scraper/ScraperTaskTest.java | 113 ++++ .../org/apache/plc4x/java/scraper/ScraperTest.java | 175 ++++++ .../config/ScraperConfigurationBuilderTest.java | 72 +++ plc4j/utils/scraper/src/test/resources/config.json | 18 + .../scraper/src/test/resources/config.yml} | 18 +- .../scraper/src/test/resources/example.yml} | 33 +- .../src/test/resources/example_with_strings.yml | 41 ++ .../scraper/src/test/resources/logback-test.xml | 36 ++ plc4j/utils/scraper/src/test/resources/logback.xml | 36 ++ plc4j/utils/test-utils/pom.xml | 22 +- .../plc4x/test/RequireInternetConnection.java} | 18 +- .../test/RequireInternetConnectionCondition.java | 45 ++ .../plc4x/test/RequireNonCaptureAllDns.java} | 18 +- .../test/RequireNonCaptureAllDnsCondition.java} | 21 +- .../java/org/apache/plc4x/test/RequirePcap.java} | 18 +- .../apache/plc4x/test/RequirePcapCondition.java | 57 ++ .../java/org/apache/plc4x/test/RequirePcapNg.java} | 18 +- .../apache/plc4x/test/RequirePcapNgCondition.java | 69 +++ plc4j/utils/wireshark-utils/pom.xml | 42 -- .../org/apache/plc4x/java/utils/PcapngUtils.java | 106 ---- plc4s/pom.xml | 2 +- pom.xml | 582 ++++++++++++++++---- protocols/pom.xml | 62 +++ .../src/main/dfdl/daffodil-built-in-catalog.xml | 31 +- .../apache/plc4x/protocols/cotp-protocol.dfdl.xsd | 213 ++++++++ .../apache/plc4x/protocols/s7-protocol.dfdl.xsd | 587 +++++++++++++++++++++ .../apache/plc4x/protocols/tpkt-protocol.dfdl.xsd | 87 +++ plc4s/pom.xml => protocols/src/main/java/.keepMe | 24 - .../plc4x/protocols/AbstractProtocolTest.java | 56 ++ .../apache/plc4x/protocols/TpktProtocolTest.java | 13 +- .../org/apache/plc4x/protocols/tpkt-protocol.tdml | 112 ++++ src/site/asciidoc/developers/contributing.adoc | 80 +++ src/site/asciidoc/developers/release.adoc | 121 ++++- src/site/asciidoc/index.adoc | 4 +- src/site/asciidoc/protocols/s7/s7comm.adoc | 2 +- src/site/asciidoc/users/download.adoc | 13 + src/site/asciidoc/users/opm.adoc | 73 +++ src/site/site.xml | 1 + tools/check_sigs.sh | 11 - tools/common.sh | 14 +- 456 files changed, 14768 insertions(+), 4593 deletions(-) copy plc4s/pom.xml => Sometimes-Failling-Tests.md (55%) create mode 100644 examples/hello-cloud-azure/src/main/java/org/apache/plc4x/java/examples/cloud/azure/CliOptions.java create mode 100644 examples/hello-cloud-google/src/main/java/org/apache/plc4x/java/examples/cloud/google/CliOptions.java delete mode 100644 examples/hello-cloud-google/src/main/java/org/apache/plc4x/java/examples/cloud/google/MqttExampleOptions.java delete mode 100644 examples/hello-cloud-google/src/remote-resources/META-INF/LICENSE create mode 100644 examples/hello-integration-edgent/src/main/java/org/apache/plc4x/java/examples/integration/edgent/CliOptions.java delete mode 100644 examples/hello-plc4x/src/main/java/org/apache/plc4x/java/examples/helloplc4x/HelloPlc4x.java create mode 100644 examples/hello-world-plc4x/src/main/java/org/apache/plc4x/java/examples/helloplc4x/CliOptions.java copy {examples/hello-cloud-azure => integrations/apache-calcite}/pom.xml (60%) create mode 100644 integrations/apache-calcite/src/main/java/org/apache/plc4x/Plc4xBaseTable.java create mode 100644 integrations/apache-calcite/src/main/java/org/apache/plc4x/Plc4xSchema.java create mode 100644 integrations/apache-calcite/src/main/java/org/apache/plc4x/Plc4xSchemaFactory.java rename plc4j/core/src/test/java/org/apache/plc4x/java/mock/MockDriver.java => integrations/apache-calcite/src/main/java/org/apache/plc4x/Plc4xStreamTable.java (53%) copy plc4j/protocols/s7/src/main/java/org/apache/plc4x/java/isotp/netty/model/params/ChecksumParameter.java => integrations/apache-calcite/src/main/java/org/apache/plc4x/Plc4xTable.java (57%) create mode 100644 integrations/apache-calcite/src/test/java/org/apache/plc4x/DriverManagerTest.java create mode 100644 integrations/apache-calcite/src/test/java/org/apache/plc4x/Plc4XBaseTableTest.java copy plc4j/protocols/s7/src/main/java/org/apache/plc4x/java/isotp/netty/model/params/CalledTsapParameter.java => integrations/apache-calcite/src/test/java/org/apache/plc4x/Plc4xSchemaFactoryTest.java (58%) copy plc4j/protocols/ads/src/main/resources/META-INF/services/org.apache.plc4x.java.spi.PlcDriver => integrations/apache-calcite/src/test/resources/example.yml (64%) copy {plc4j/protocols/ads => integrations/apache-calcite}/src/test/resources/logback.xml (100%) create mode 100644 integrations/apache-calcite/src/test/resources/model.json create mode 100644 integrations/apache-karaf/karaf-ads-feature/pom.xml copy {plc4j/utils/opm => integrations/apache-karaf/karaf-demo-server}/pom.xml (50%) create mode 100644 integrations/apache-karaf/karaf-ethernet-ip-feature/pom.xml create mode 100644 integrations/apache-karaf/karaf-modbus-feature/pom.xml create mode 100644 integrations/apache-karaf/karaf-s7-feature/pom.xml create mode 100644 integrations/apache-karaf/karaf-simulated-feature/pom.xml create mode 100644 integrations/apache-karaf/pom.xml create mode 100644 plc4cpp/README.md create mode 100644 plc4cpp/api/pom.xml create mode 100644 plc4cpp/api/src/main/cmake/CMakeLists.txt rename plc4j/protocols/s7/src/test/java/org/apache/plc4x/java/netty/NettyTestBase.java => plc4cpp/api/src/main/cpp/org/apache/plc4x/cpp/api/PlcConnection.cpp (78%) mode change 100644 => 100755 create mode 100755 plc4cpp/api/src/main/cpp/org/apache/plc4x/cpp/api/PlcConnection.h copy plc4j/protocols/s7/src/main/java/org/apache/plc4x/java/isoontcp/netty/model/IsoOnTcpMessage.java => plc4cpp/api/src/main/cpp/org/apache/plc4x/cpp/api/authentication/PlcAuthentication.cpp (56%) mode change 100644 => 100755 copy plc4j/protocols/s7/src/main/java/org/apache/plc4x/java/isoontcp/netty/model/IsoOnTcpMessage.java => plc4cpp/api/src/main/cpp/org/apache/plc4x/cpp/api/authentication/PlcAuthentication.h (64%) mode change 100644 => 100755 create mode 100755 plc4cpp/api/src/main/cpp/org/apache/plc4x/cpp/api/authentication/PlcUsernamePasswordAuthentication.cpp create mode 100755 plc4cpp/api/src/main/cpp/org/apache/plc4x/cpp/api/authentication/PlcUsernamePasswordAuthentication.h copy plc4j/protocols/s7/src/main/java/org/apache/plc4x/java/s7/types/S7ControllerType.java => plc4cpp/api/src/main/cpp/org/apache/plc4x/cpp/api/exceptions/PlcConnectionException.cpp (74%) mode change 100644 => 100755 create mode 100755 plc4cpp/api/src/main/cpp/org/apache/plc4x/cpp/api/exceptions/PlcConnectionException.h copy plc4j/protocols/s7/src/main/java/org/apache/plc4x/java/isotp/netty/model/params/ChecksumParameter.java => plc4cpp/api/src/main/cpp/org/apache/plc4x/cpp/api/exceptions/PlcException.cpp (52%) mode change 100644 => 100755 create mode 100755 plc4cpp/api/src/main/cpp/org/apache/plc4x/cpp/api/exceptions/PlcException.h copy plc4j/protocols/s7/src/main/java/org/apache/plc4x/java/isoontcp/netty/model/IsoOnTcpMessage.java => plc4cpp/api/src/main/cpp/org/apache/plc4x/cpp/api/exceptions/PlcFieldRangeException.cpp (59%) mode change 100644 => 100755 copy plc4j/protocols/s7/src/main/java/org/apache/plc4x/java/isoontcp/netty/model/IsoOnTcpMessage.java => plc4cpp/api/src/main/cpp/org/apache/plc4x/cpp/api/exceptions/PlcFieldRangeException.h (61%) mode change 100644 => 100755 copy plc4j/protocols/s7/src/main/java/org/apache/plc4x/java/isoontcp/netty/model/IsoOnTcpMessage.java => plc4cpp/api/src/main/cpp/org/apache/plc4x/cpp/api/exceptions/PlcIncompatibleDatatypeException.cpp (59%) mode change 100644 => 100755 copy plc4j/protocols/s7/src/main/java/org/apache/plc4x/java/isotp/netty/model/params/ChecksumParameter.java => plc4cpp/api/src/main/cpp/org/apache/plc4x/cpp/api/exceptions/PlcIncompatibleDatatypeException.h (58%) mode change 100644 => 100755 create mode 100755 plc4cpp/api/src/main/cpp/org/apache/plc4x/cpp/api/exceptions/PlcInvalidFieldException.cpp create mode 100755 plc4cpp/api/src/main/cpp/org/apache/plc4x/cpp/api/exceptions/PlcInvalidFieldException.h copy plc4j/protocols/s7/src/main/java/org/apache/plc4x/java/s7/types/S7ControllerType.java => plc4cpp/api/src/main/cpp/org/apache/plc4x/cpp/api/exceptions/PlcIoException.cpp (72%) mode change 100644 => 100755 create mode 100755 plc4cpp/api/src/main/cpp/org/apache/plc4x/cpp/api/exceptions/PlcIoException.h copy plc4j/protocols/s7/src/main/java/org/apache/plc4x/java/s7/types/S7ControllerType.java => plc4cpp/api/src/main/cpp/org/apache/plc4x/cpp/api/exceptions/PlcNotImplementedException.cpp (74%) mode change 100644 => 100755 copy plc4j/protocols/s7/src/main/java/org/apache/plc4x/java/isotp/netty/model/params/ChecksumParameter.java => plc4cpp/api/src/main/cpp/org/apache/plc4x/cpp/api/exceptions/PlcNotImplementedException.h (54%) mode change 100644 => 100755 copy plc4j/protocols/s7/src/main/java/org/apache/plc4x/java/s7/types/S7ControllerType.java => plc4cpp/api/src/main/cpp/org/apache/plc4x/cpp/api/exceptions/PlcProtocolException.cpp (75%) mode change 100644 => 100755 create mode 100755 plc4cpp/api/src/main/cpp/org/apache/plc4x/cpp/api/exceptions/PlcProtocolException.h create mode 100755 plc4cpp/api/src/main/cpp/org/apache/plc4x/cpp/api/exceptions/PlcProtocolPayloadTooBigException.cpp create mode 100755 plc4cpp/api/src/main/cpp/org/apache/plc4x/cpp/api/exceptions/PlcProtocolPayloadTooBigException.h copy plc4j/protocols/s7/src/main/java/org/apache/plc4x/java/isotp/netty/model/params/ChecksumParameter.java => plc4cpp/api/src/main/cpp/org/apache/plc4x/cpp/api/exceptions/PlcRuntimeException.cpp (53%) mode change 100644 => 100755 create mode 100755 plc4cpp/api/src/main/cpp/org/apache/plc4x/cpp/api/exceptions/PlcRuntimeException.h copy plc4j/protocols/s7/src/main/java/org/apache/plc4x/java/isotp/netty/model/params/ChecksumParameter.java => plc4cpp/api/src/main/cpp/org/apache/plc4x/cpp/api/exceptions/PlcTimeoutException.cpp (58%) mode change 100644 => 100755 create mode 100755 plc4cpp/api/src/main/cpp/org/apache/plc4x/cpp/api/exceptions/PlcTimeoutException.h copy plc4j/protocols/s7/src/main/java/org/apache/plc4x/java/s7/types/S7ControllerType.java => plc4cpp/api/src/main/cpp/org/apache/plc4x/cpp/api/exceptions/PlcUnsupportedDataTypeException.cpp (74%) mode change 100644 => 100755 create mode 100755 plc4cpp/api/src/main/cpp/org/apache/plc4x/cpp/api/exceptions/PlcUnsupportedDataTypeException.h copy plc4j/protocols/s7/src/main/java/org/apache/plc4x/java/s7/types/S7ControllerType.java => plc4cpp/api/src/main/cpp/org/apache/plc4x/cpp/api/exceptions/PlcUnsupportedOperationException.cpp (74%) mode change 100644 => 100755 create mode 100755 plc4cpp/api/src/main/cpp/org/apache/plc4x/cpp/api/exceptions/PlcUnsupportedOperationException.h copy plc4j/protocols/s7/src/main/java/org/apache/plc4x/java/s7/types/S7ControllerType.java => plc4cpp/api/src/main/cpp/org/apache/plc4x/cpp/api/messages/PlcFieldRequest.cpp (75%) mode change 100644 => 100755 create mode 100755 plc4cpp/api/src/main/cpp/org/apache/plc4x/cpp/api/messages/PlcFieldRequest.h copy plc4j/protocols/s7/src/main/java/org/apache/plc4x/java/s7/types/S7ControllerType.java => plc4cpp/api/src/main/cpp/org/apache/plc4x/cpp/api/messages/PlcFieldResponse.cpp (75%) mode change 100644 => 100755 create mode 100755 plc4cpp/api/src/main/cpp/org/apache/plc4x/cpp/api/messages/PlcFieldResponse.h copy plc4j/protocols/s7/src/main/java/org/apache/plc4x/java/s7/types/S7ControllerType.java => plc4cpp/api/src/main/cpp/org/apache/plc4x/cpp/api/messages/PlcMessage.cpp (75%) mode change 100644 => 100755 copy plc4j/protocols/s7/src/main/java/org/apache/plc4x/java/isotp/netty/model/params/CalledTsapParameter.java => plc4cpp/api/src/main/cpp/org/apache/plc4x/cpp/api/messages/PlcMessage.h (62%) mode change 100644 => 100755 copy plc4j/protocols/s7/src/main/java/org/apache/plc4x/java/isoontcp/netty/model/IsoOnTcpMessage.java => plc4cpp/api/src/main/cpp/org/apache/plc4x/cpp/api/messages/PlcReadRequest.cpp (57%) mode change 100644 => 100755 copy plc4j/protocols/s7/src/main/java/org/apache/plc4x/java/isotp/netty/model/params/DisconnectAdditionalInformationParameter.java => plc4cpp/api/src/main/cpp/org/apache/plc4x/cpp/api/messages/PlcReadRequest.h (51%) mode change 100644 => 100755 copy plc4j/protocols/s7/src/main/java/org/apache/plc4x/java/s7/types/S7ControllerType.java => plc4cpp/api/src/main/cpp/org/apache/plc4x/cpp/api/messages/PlcReadRequestBuilder.cpp (75%) mode change 100644 => 100755 copy plc4j/protocols/s7/src/main/java/org/apache/plc4x/java/isotp/netty/model/params/ChecksumParameter.java => plc4cpp/api/src/main/cpp/org/apache/plc4x/cpp/api/messages/PlcReadRequestBuilder.h (54%) mode change 100644 => 100755 copy plc4j/protocols/s7/src/main/java/org/apache/plc4x/java/s7/types/S7ControllerType.java => plc4cpp/api/src/main/cpp/org/apache/plc4x/cpp/api/messages/PlcReadResponse.cpp (75%) mode change 100644 => 100755 create mode 100755 plc4cpp/api/src/main/cpp/org/apache/plc4x/cpp/api/messages/PlcReadResponse.h copy plc4j/protocols/s7/src/main/java/org/apache/plc4x/java/s7/types/S7ControllerType.java => plc4cpp/api/src/main/cpp/org/apache/plc4x/cpp/api/messages/PlcRequest.cpp (75%) mode change 100644 => 100755 copy plc4j/protocols/s7/src/main/java/org/apache/plc4x/java/isotp/netty/model/params/CalledTsapParameter.java => plc4cpp/api/src/main/cpp/org/apache/plc4x/cpp/api/messages/PlcRequest.h (60%) mode change 100644 => 100755 copy plc4j/protocols/s7/src/main/java/org/apache/plc4x/java/s7/types/S7ControllerType.java => plc4cpp/api/src/main/cpp/org/apache/plc4x/cpp/api/messages/PlcRequestBuilder.cpp (75%) mode change 100644 => 100755 copy plc4j/protocols/s7/src/main/java/org/apache/plc4x/java/isotp/netty/model/params/ChecksumParameter.java => plc4cpp/api/src/main/cpp/org/apache/plc4x/cpp/api/messages/PlcRequestBuilder.h (58%) mode change 100644 => 100755 copy plc4j/protocols/s7/src/main/java/org/apache/plc4x/java/s7/types/S7ControllerType.java => plc4cpp/api/src/main/cpp/org/apache/plc4x/cpp/api/messages/PlcResponse.cpp (75%) mode change 100644 => 100755 copy plc4j/protocols/s7/src/main/java/org/apache/plc4x/java/isotp/netty/model/params/ChecksumParameter.java => plc4cpp/api/src/main/cpp/org/apache/plc4x/cpp/api/messages/PlcResponse.h (55%) mode change 100644 => 100755 copy plc4j/protocols/s7/src/main/java/org/apache/plc4x/java/s7/types/S7ControllerType.java => plc4cpp/api/src/main/cpp/org/apache/plc4x/cpp/api/messages/PlcSubscriptionEvent.cpp (75%) mode change 100644 => 100755 copy plc4j/protocols/s7/src/main/java/org/apache/plc4x/java/isotp/netty/model/params/ChecksumParameter.java => plc4cpp/api/src/main/cpp/org/apache/plc4x/cpp/api/messages/PlcSubscriptionEvent.h (53%) mode change 100644 => 100755 copy plc4j/protocols/s7/src/main/java/org/apache/plc4x/java/s7/types/S7ControllerType.java => plc4cpp/api/src/main/cpp/org/apache/plc4x/cpp/api/messages/PlcSubscriptionRequest.cpp (75%) mode change 100644 => 100755 create mode 100755 plc4cpp/api/src/main/cpp/org/apache/plc4x/cpp/api/messages/PlcSubscriptionRequest.h copy plc4j/protocols/s7/src/main/java/org/apache/plc4x/java/s7/types/S7ControllerType.java => plc4cpp/api/src/main/cpp/org/apache/plc4x/cpp/api/messages/PlcSubscriptionResponse.cpp (74%) mode change 100644 => 100755 create mode 100755 plc4cpp/api/src/main/cpp/org/apache/plc4x/cpp/api/messages/PlcSubscriptionResponse.h copy plc4j/protocols/s7/src/main/java/org/apache/plc4x/java/s7/types/S7ControllerType.java => plc4cpp/api/src/main/cpp/org/apache/plc4x/cpp/api/messages/PlcUnsubscriptionRequest.cpp (74%) mode change 100644 => 100755 create mode 100755 plc4cpp/api/src/main/cpp/org/apache/plc4x/cpp/api/messages/PlcUnsubscriptionRequest.h copy plc4j/protocols/s7/src/main/java/org/apache/plc4x/java/s7/types/S7ControllerType.java => plc4cpp/api/src/main/cpp/org/apache/plc4x/cpp/api/messages/PlcUnsubscriptionResponse.cpp (74%) mode change 100644 => 100755 copy plc4j/protocols/s7/src/main/java/org/apache/plc4x/java/isotp/netty/model/tpdus/CustomTpdu.java => plc4cpp/api/src/main/cpp/org/apache/plc4x/cpp/api/messages/PlcUnsubscriptionResponse.h (57%) mode change 100644 => 100755 copy plc4j/protocols/s7/src/main/java/org/apache/plc4x/java/s7/types/S7ControllerType.java => plc4cpp/api/src/main/cpp/org/apache/plc4x/cpp/api/messages/PlcWriteRequest.cpp (75%) mode change 100644 => 100755 create mode 100755 plc4cpp/api/src/main/cpp/org/apache/plc4x/cpp/api/messages/PlcWriteRequest.h copy plc4j/protocols/s7/src/main/java/org/apache/plc4x/java/s7/types/S7ControllerType.java => plc4cpp/api/src/main/cpp/org/apache/plc4x/cpp/api/messages/PlcWriteResponse.cpp (75%) mode change 100644 => 100755 copy plc4j/protocols/s7/src/main/java/org/apache/plc4x/java/isotp/netty/model/params/TsapParameter.java => plc4cpp/api/src/main/cpp/org/apache/plc4x/cpp/api/messages/PlcWriteResponse.h (60%) mode change 100644 => 100755 copy plc4j/protocols/s7/src/main/java/org/apache/plc4x/java/s7/types/S7ControllerType.java => plc4cpp/api/src/main/cpp/org/apache/plc4x/cpp/api/messages/REQUEST.cpp (76%) mode change 100644 => 100755 copy plc4j/protocols/s7/src/main/java/org/apache/plc4x/java/isoontcp/netty/model/IsoOnTcpMessage.java => plc4cpp/api/src/main/cpp/org/apache/plc4x/cpp/api/messages/REQUEST.h (69%) mode change 100644 => 100755 copy plc4j/protocols/s7/src/main/java/org/apache/plc4x/java/s7/types/S7ControllerType.java => plc4cpp/api/src/main/cpp/org/apache/plc4x/cpp/api/messages/RESPONSE.cpp (76%) mode change 100644 => 100755 copy plc4j/protocols/s7/src/main/java/org/apache/plc4x/java/isoontcp/netty/model/IsoOnTcpMessage.java => plc4cpp/api/src/main/cpp/org/apache/plc4x/cpp/api/messages/RESPONSE.h (68%) mode change 100644 => 100755 copy plc4j/protocols/s7/src/main/java/org/apache/plc4x/java/s7/types/S7ControllerType.java => plc4cpp/api/src/main/cpp/org/apache/plc4x/cpp/api/messages/RequestTemplate.cpp (75%) mode change 100644 => 100755 copy plc4j/protocols/s7/src/main/java/org/apache/plc4x/java/isoontcp/netty/model/IsoOnTcpMessage.java => plc4cpp/api/src/main/cpp/org/apache/plc4x/cpp/api/messages/RequestTemplate.h (66%) mode change 100644 => 100755 copy plc4j/protocols/s7/src/main/java/org/apache/plc4x/java/s7/types/S7ControllerType.java => plc4cpp/api/src/main/cpp/org/apache/plc4x/cpp/api/messages/ResponseTemplate.cpp (75%) mode change 100644 => 100755 copy plc4j/protocols/s7/src/main/java/org/apache/plc4x/java/isoontcp/netty/model/IsoOnTcpMessage.java => plc4cpp/api/src/main/cpp/org/apache/plc4x/cpp/api/messages/ResponseTemplate.h (66%) mode change 100644 => 100755 copy plc4j/protocols/s7/src/main/java/org/apache/plc4x/java/s7/types/S7ControllerType.java => plc4cpp/api/src/main/cpp/org/apache/plc4x/cpp/api/metadata/PlcConnectionMetadata.cpp (75%) mode change 100644 => 100755 create mode 100755 plc4cpp/api/src/main/cpp/org/apache/plc4x/cpp/api/metadata/PlcConnectionMetadata.h copy plc4j/protocols/s7/src/main/java/org/apache/plc4x/java/s7/types/S7ControllerType.java => plc4cpp/api/src/main/cpp/org/apache/plc4x/cpp/api/model/Consumer.cpp (76%) mode change 100644 => 100755 create mode 100755 plc4cpp/api/src/main/cpp/org/apache/plc4x/cpp/api/model/Consumer.h copy plc4j/protocols/s7/src/main/java/org/apache/plc4x/java/s7/types/S7ControllerType.java => plc4cpp/api/src/main/cpp/org/apache/plc4x/cpp/api/model/PlcConsumerRegistration.cpp (75%) mode change 100644 => 100755 copy plc4j/protocols/s7/src/main/java/org/apache/plc4x/java/isoontcp/netty/model/IsoOnTcpMessage.java => plc4cpp/api/src/main/cpp/org/apache/plc4x/cpp/api/model/PlcConsumerRegistration.h (63%) mode change 100644 => 100755 copy plc4j/protocols/s7/src/main/java/org/apache/plc4x/java/s7/types/S7ControllerType.java => plc4cpp/api/src/main/cpp/org/apache/plc4x/cpp/api/model/PlcField.cpp (76%) mode change 100644 => 100755 create mode 100755 plc4cpp/api/src/main/cpp/org/apache/plc4x/cpp/api/model/PlcField.h copy plc4j/protocols/s7/src/main/java/org/apache/plc4x/java/s7/types/S7ControllerType.java => plc4cpp/api/src/main/cpp/org/apache/plc4x/cpp/api/model/PlcSubscriptionHandle.cpp (75%) mode change 100644 => 100755 create mode 100755 plc4cpp/api/src/main/cpp/org/apache/plc4x/cpp/api/model/PlcSubscriptionHandle.h copy plc4j/protocols/s7/src/main/java/org/apache/plc4x/java/s7/types/S7ControllerType.java => plc4cpp/api/src/main/cpp/org/apache/plc4x/cpp/api/types/PlcClientDataType.cpp (75%) mode change 100644 => 100755 copy plc4j/protocols/s7/src/main/java/org/apache/plc4x/java/isoontcp/netty/model/IsoOnTcpMessage.java => plc4cpp/api/src/main/cpp/org/apache/plc4x/cpp/api/types/PlcClientDataType.h (60%) mode change 100644 => 100755 copy plc4j/protocols/s7/src/main/java/org/apache/plc4x/java/s7/types/S7ControllerType.java => plc4cpp/api/src/main/cpp/org/apache/plc4x/cpp/api/types/PlcResponseCode.cpp (75%) mode change 100644 => 100755 copy plc4j/protocols/s7/src/main/java/org/apache/plc4x/java/isoontcp/netty/model/IsoOnTcpMessage.java => plc4cpp/api/src/main/cpp/org/apache/plc4x/cpp/api/types/PlcResponseCode.h (62%) mode change 100644 => 100755 copy plc4j/protocols/s7/src/main/java/org/apache/plc4x/java/s7/types/S7ControllerType.java => plc4cpp/api/src/main/cpp/org/apache/plc4x/cpp/api/types/PlcSubscriptionType.cpp (75%) mode change 100644 => 100755 copy plc4j/protocols/s7/src/main/java/org/apache/plc4x/java/isotp/netty/model/params/ChecksumParameter.java => plc4cpp/api/src/main/cpp/org/apache/plc4x/cpp/api/types/PlcSubscriptionType.h (50%) mode change 100644 => 100755 copy plc4j/protocols/s7/src/main/java/org/apache/plc4x/java/s7/types/S7ControllerType.java => plc4cpp/api/src/main/cpp/org/apache/plc4x/cpp/api/types/ValueTypeObject.cpp (74%) mode change 100644 => 100755 rename plc4j/protocols/s7/src/main/java/org/apache/plc4x/java/isoontcp/netty/model/IsoOnTcpMessage.java => plc4cpp/api/src/main/cpp/org/apache/plc4x/cpp/api/types/ValueTypeObject.h (64%) mode change 100644 => 100755 create mode 100644 plc4cpp/libs/pom.xml create mode 100644 plc4cpp/pom.xml rename plc4j/{core => api}/src/main/java/org/apache/plc4x/java/PlcDriverManager.java (89%) rename plc4j/{core => api}/src/test/java/org/apache/plc4x/java/PlcDriverManagerTest.java (93%) copy plc4j/{protocols/test/src/main/java/org/apache/plc4x/java/test/TestFieldItem.java => api/src/test/java/org/apache/plc4x/java/api/exceptions/PlcFieldRangeExceptionTest.java} (68%) rename plc4j/{protocols/ads/src/main/java/org/apache/plc4x/java/ads/connection/package-info.java => api/src/test/java/org/apache/plc4x/java/mock/DuplicateMockDriver.java} (79%) create mode 100644 plc4j/api/src/test/java/org/apache/plc4x/java/mock/MockDriver.java copy plc4j/{protocols/test/src/main/java/org/apache/plc4x/java/test/TestType.java => api/src/test/java/org/apache/plc4x/java/mock/MockPlcConnection.java} (75%) copy plc4j/{core => api}/src/test/resources/META-INF/services/org.apache.plc4x.java.spi.PlcDriver (100%) rename plc4j/{core => api}/src/test/resources/test/META-INF/services/org.apache.plc4x.java.spi.PlcDriver (94%) delete mode 100644 plc4j/core/pom.xml delete mode 100644 plc4j/core/src/test/java/org/apache/plc4x/java/mock/MockConnection.java delete mode 100644 plc4j/core/src/test/java/org/apache/plc4x/java/mock/PlcMockDriverTest.java copy plc4j/{utils/opm => drivers/ads}/pom.xml (56%) rename plc4j/{protocols => drivers}/ads/src/main/java/org/apache/plc4x/java/ads/AdsPlcDriver.java (83%) rename plc4j/{protocols => drivers}/ads/src/main/java/org/apache/plc4x/java/ads/connection/AdsAbstractPlcConnection.java (99%) rename plc4j/{protocols => drivers}/ads/src/main/java/org/apache/plc4x/java/ads/connection/AdsConnectionFactory.java (100%) rename plc4j/{protocols => drivers}/ads/src/main/java/org/apache/plc4x/java/ads/connection/AdsSerialPlcConnection.java (100%) rename plc4j/{protocols => drivers}/ads/src/main/java/org/apache/plc4x/java/ads/connection/AdsTcpPlcConnection.java (95%) rename plc4j/{protocols => drivers}/ads/src/main/resources/META-INF/services/org.apache.plc4x.java.spi.PlcDriver (100%) rename plc4j/{protocols => drivers}/ads/src/test/java/org/apache/plc4x/java/ads/AdsPlcDriverTest.java (85%) rename plc4j/{protocols => drivers}/ads/src/test/java/org/apache/plc4x/java/ads/adslib/ADSClientNotificationExample.java (100%) rename plc4j/{protocols => drivers}/ads/src/test/java/org/apache/plc4x/java/ads/adslib/AdsLib.java (100%) rename plc4j/{protocols => drivers}/ads/src/test/java/org/apache/plc4x/java/ads/adslib/AmsRequest.java (97%) rename plc4j/{protocols => drivers}/ads/src/test/java/org/apache/plc4x/java/ads/adslib/AmsRouter.java (100%) copy plc4j/{protocols => drivers}/ads/src/test/java/org/apache/plc4x/java/ads/adslib/Output.java (100%) rename plc4j/{protocols => drivers}/ads/src/test/java/org/apache/plc4x/java/ads/adslib/package-info.java (100%) rename plc4j/{protocols => drivers}/ads/src/test/java/org/apache/plc4x/java/ads/connection/AdsAbstractPlcConnectionTest.java (96%) rename plc4j/{protocols => drivers}/ads/src/test/java/org/apache/plc4x/java/ads/connection/AdsConnectionFactoryTest.java (96%) rename plc4j/{protocols => drivers}/ads/src/test/java/org/apache/plc4x/java/ads/connection/AdsSerialPlcConnectionTest.java (97%) rename plc4j/{protocols => drivers}/ads/src/test/java/org/apache/plc4x/java/ads/connection/AdsTcpPlcConnectionTests.java (84%) create mode 100644 plc4j/drivers/delta-v/pom.xml copy plc4j/{utils/opm => drivers/ethernet-ip}/pom.xml (51%) rename plc4j/{protocols/ethernetip => drivers/ethernet-ip}/src/main/java/org/apache/plc4x/java/ethernetip/EtherNetIpPlcDriver.java (100%) rename plc4j/{protocols/ethernetip => drivers/ethernet-ip}/src/main/java/org/apache/plc4x/java/ethernetip/connection/BaseEtherNetIpPlcConnection.java (100%) rename plc4j/{protocols/ethernetip => drivers/ethernet-ip}/src/main/java/org/apache/plc4x/java/ethernetip/connection/EtherNetIpTcpPlcConnection.java (100%) copy plc4j/{protocols/ethernetip => drivers/ethernet-ip}/src/main/resources/META-INF/services/org.apache.plc4x.java.spi.PlcDriver (100%) rename plc4j/{protocols/ethernetip => drivers/ethernet-ip}/src/test/java/org/apache/plc4x/java/ethernetip/EnipTest.java (97%) rename plc4j/{protocols/ethernetip => drivers/ethernet-ip}/src/test/java/org/apache/plc4x/java/ethernetip/ManualPlc4XEtherNetIpTest.java (100%) create mode 100644 plc4j/drivers/ethernet-ip/src/test/resources/read-attribute.pcap copy plc4j/{utils/opm => drivers/modbus}/pom.xml (56%) rename plc4j/{protocols => drivers}/modbus/src/main/java/org/apache/plc4x/java/modbus/ModbusPlcDriver.java (79%) rename plc4j/{protocols => drivers}/modbus/src/main/java/org/apache/plc4x/java/modbus/connection/BaseModbusPlcConnection.java (81%) rename plc4j/{protocols => drivers}/modbus/src/main/java/org/apache/plc4x/java/modbus/connection/ModbusConnectionFactory.java (100%) rename plc4j/{protocols => drivers}/modbus/src/main/java/org/apache/plc4x/java/modbus/connection/ModbusSerialPlcConnection.java (100%) rename plc4j/{protocols => drivers}/modbus/src/main/java/org/apache/plc4x/java/modbus/connection/ModbusTcpPlcConnection.java (77%) rename plc4j/{protocols => drivers}/modbus/src/main/resources/META-INF/services/org.apache.plc4x.java.spi.PlcDriver (100%) rename plc4j/{protocols => drivers}/modbus/src/test/java/org/apache/plc4x/java/modbus/ModbusPlcDriverTest.java (93%) rename plc4j/{protocols => drivers}/modbus/src/test/java/org/apache/plc4x/java/modbus/connection/BaseModbusPlcConnectionTest.java (96%) rename plc4j/{protocols => drivers}/modbus/src/test/java/org/apache/plc4x/java/modbus/connection/ModbusConnectionFactoryTest.java (98%) rename plc4j/{protocols => drivers}/modbus/src/test/java/org/apache/plc4x/java/modbus/connection/ModbusSerialPlcConnectionTest.java (100%) rename plc4j/{protocols => drivers}/modbus/src/test/java/org/apache/plc4x/java/modbus/connection/ModbusTcpPlcConnectionTests.java (100%) create mode 100644 plc4j/drivers/pom.xml copy plc4s/pom.xml => plc4j/drivers/s7/README.md (55%) copy plc4j/{protocols => drivers}/s7/pom.xml (62%) rename plc4j/{protocols => drivers}/s7/src/main/java/org/apache/plc4x/java/s7/S7PlcDriver.java (96%) rename plc4j/{protocols => drivers}/s7/src/main/java/org/apache/plc4x/java/s7/connection/S7PlcConnection.java (79%) rename plc4j/{protocols => drivers}/s7/src/main/resources/META-INF/services/org.apache.plc4x.java.spi.PlcDriver (100%) rename plc4j/{protocols => drivers}/s7/src/test/java/org/apache/plc4x/java/s7/S7PlcDriverTest.java (96%) rename plc4j/{protocols => drivers}/s7/src/test/java/org/apache/plc4x/java/s7/connection/S7PlcConnectionIT.java (75%) rename plc4j/{protocols => drivers}/s7/src/test/java/org/apache/plc4x/java/s7/connection/S7PlcConnectionTests.java (54%) rename plc4j/{protocols => drivers}/s7/src/test/java/org/apache/plc4x/java/s7/connection/S7PlcTestConnection.java (82%) rename plc4j/{protocols/s7/src/test/java/org/apache/plc4x/java/s7 => drivers/s7/src/test/java/org/apache/plc4x/java/s7/connection}/issues/PLC4X47Test.java (97%) rename plc4j/{protocols => drivers}/s7/src/test/resources/org/apache/plc4x/java/s7/connection/iso-tp-connect-response.pcap (100%) rename plc4j/{protocols => drivers}/s7/src/test/resources/org/apache/plc4x/java/s7/connection/s7-cpu-functions-response.pcap (100%) create mode 100644 plc4j/drivers/s7/src/test/resources/org/apache/plc4x/java/s7/connection/s7-read-large-response.pcap create mode 100644 plc4j/drivers/s7/src/test/resources/org/apache/plc4x/java/s7/connection/s7-read-var-request.pcap create mode 100644 plc4j/drivers/s7/src/test/resources/org/apache/plc4x/java/s7/connection/s7-read-var-response.pcap rename plc4j/{protocols => drivers}/s7/src/test/resources/org/apache/plc4x/java/s7/connection/s7-setup-communication-response.pcap (100%) create mode 100644 plc4j/drivers/s7/src/test/resources/org/apache/plc4x/java/s7/connection/s7-write-var-request.pcap create mode 100644 plc4j/drivers/s7/src/test/resources/org/apache/plc4x/java/s7/connection/s7-write-var-response.pcap create mode 100644 plc4j/drivers/simulated/pom.xml rename plc4j/{protocols/test/src/main/java/org/apache/plc4x/java/test/TestPlcDriver.java => drivers/simulated/src/main/java/org/apache/plc4x/java/simulated/SimulatedPlcDriver.java} (57%) create mode 100644 plc4j/drivers/simulated/src/main/java/org/apache/plc4x/java/simulated/connection/SimulatedPlcConnection.java create mode 100644 plc4j/drivers/simulated/src/main/java/org/apache/plc4x/java/simulated/connection/TestDevice.java rename plc4j/{protocols/test/src/main/java/org/apache/plc4x/java/test => drivers/simulated/src/main/java/org/apache/plc4x/java/simulated/connection}/TestField.java (55%) rename plc4j/{protocols/test/src/main/java/org/apache/plc4x/java/test => drivers/simulated/src/main/java/org/apache/plc4x/java/simulated/connection}/TestFieldHandler.java (96%) copy plc4j/{protocols/test/src/main/java/org/apache/plc4x/java/test => drivers/simulated/src/main/java/org/apache/plc4x/java/simulated/connection}/TestFieldItem.java (91%) copy plc4j/{protocols/test/src/main/java/org/apache/plc4x/java/test => drivers/simulated/src/main/java/org/apache/plc4x/java/simulated/connection}/TestType.java (94%) create mode 100644 plc4j/drivers/simulated/src/main/resources/META-INF/services/org.apache.plc4x.java.spi.PlcDriver create mode 100644 plc4j/drivers/simulated/src/test/java/org/apache/plc4x/java/simulated/SimulatedPlcDriverTest.java create mode 100644 plc4j/drivers/simulated/src/test/java/org/apache/plc4x/java/simulated/connection/SimulatedPlcConnectionTest.java rename plc4j/{protocols/test/src/test/java/org/apache/plc4x/java/test => drivers/simulated/src/test/java/org/apache/plc4x/java/simulated/connection}/TestDeviceTest.java (92%) create mode 100644 plc4j/drivers/simulated/src/test/java/org/apache/plc4x/java/simulated/connection/TestFieldHandlerTest.java copy plc4j/{protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/model/InternalPlcSubscriptionHandle.java => drivers/simulated/src/test/java/org/apache/plc4x/java/simulated/connection/TestFieldItemTest.java} (72%) create mode 100644 plc4j/drivers/simulated/src/test/java/org/apache/plc4x/java/simulated/connection/TestFieldTest.java create mode 100644 plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/PlcByteToMessageCodec.java rename plc4j/protocols/{ads/src/main/java/org/apache/plc4x/java/ads/package-info.java => driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/InternalPlcMessage.java} (83%) create mode 100644 plc4j/protocols/driver-bases/base/src/test/java/org/apache/plc4x/java/base/connection/NettyPlcConnectionTest.java delete mode 100644 plc4j/protocols/driver-bases/test/src/main/java/org/apache/plc4x/java/base/util/Junit5Backport.java copy plc4j/protocols/{test/src/main/java/org/apache/plc4x/java/test/TestFieldItem.java => driver-bases/test/src/main/java/org/apache/plc4x/java/mock/MockFieldItem.java} (82%) delete mode 100644 plc4j/protocols/driver-bases/test/src/main/java/org/apache/plc4x/java/mock/MockReader.java create mode 100644 plc4j/protocols/driver-bases/test/src/test/java/org/apache/plc4x/java/mock/MockFieldHandlerTest.java copy plc4j/protocols/driver-bases/{base/src/main/java/org/apache/plc4x/java/base/model/InternalPlcSubscriptionHandle.java => test/src/test/java/org/apache/plc4x/java/mock/MockFieldItemTest.java} (73%) rename plc4j/protocols/{ads/src/test/java/org/apache/plc4x/java/ads/adslib/Output.java => driver-bases/test/src/test/java/org/apache/plc4x/java/mock/MockFieldTest.java} (56%) create mode 100644 plc4j/protocols/driver-bases/test/src/test/java/org/apache/plc4x/java/mock/PlcMockConnectionTest.java rename plc4j/protocols/{ => driver-bases}/test/src/test/java/org/apache/plc4x/java/mock/PlcMockDriverTest.java (71%) rename plc4j/protocols/{ethernetip => ethernet-ip}/pom.xml (78%) rename plc4j/protocols/{ethernetip => ethernet-ip}/src/main/java/org/apache/plc4x/java/ethernetip/model/EtherNetIpField.java (100%) rename plc4j/protocols/{ethernetip => ethernet-ip}/src/main/java/org/apache/plc4x/java/ethernetip/netty/EnipCodec.java (100%) rename plc4j/protocols/{ethernetip => ethernet-ip}/src/main/java/org/apache/plc4x/java/ethernetip/netty/Plc4XEtherNetIpProtocol.java (100%) rename plc4j/protocols/{ethernetip => ethernet-ip}/src/main/java/org/apache/plc4x/java/ethernetip/netty/events/EtherNetIpConnectedEvent.java (100%) rename plc4j/protocols/{ethernetip => ethernet-ip}/src/main/java/org/apache/plc4x/java/ethernetip/netty/util/EnipPlcFieldHandler.java (100%) rename plc4j/protocols/{ethernetip => ethernet-ip}/src/site/asciidoc/index.adoc (100%) rename plc4j/protocols/{ethernetip => ethernet-ip}/src/site/resources/img/WAGO_enip_exporer.png (100%) delete mode 100644 plc4j/protocols/ethernetip/src/test/resources/read-attribute.pcapng copy plc4j/{utils/opm => protocols/iso-on-tcp}/pom.xml (53%) rename plc4j/protocols/{s7/src/main/java/org/apache/plc4x/java/isoontcp/netty => iso-on-tcp/src/main/java/org/apache/plc4x/java/isoontcp/protocol}/IsoOnTcpProtocol.java (70%) copy plc4j/protocols/{test/src/main/java/org/apache/plc4x/java/test/TestType.java => iso-on-tcp/src/main/java/org/apache/plc4x/java/isoontcp/protocol/model/IsoOnTcpMessage.java} (73%) rename plc4j/protocols/{s7/src/test/java/org/apache/plc4x/java/isoontcp/netty => iso-on-tcp/src/test/java/org/apache/plc4x/java/isoontcp/protocol}/IsoOnTcpProtocolTest.java (86%) copy plc4j/{utils/opm => protocols/iso-tp}/pom.xml (53%) rename plc4j/protocols/{s7/src/main/java/org/apache/plc4x/java/isotp/netty => iso-tp/src/main/java/org/apache/plc4x/java/isotp/protocol}/IsoTPProtocol.java (93%) rename plc4j/protocols/{s7/src/main/java/org/apache/plc4x/java/isotp/netty => iso-tp/src/main/java/org/apache/plc4x/java/isotp/protocol}/events/IsoTPConnectedEvent.java (93%) rename plc4j/protocols/{s7/src/main/java/org/apache/plc4x/java/isotp/netty => iso-tp/src/main/java/org/apache/plc4x/java/isotp/protocol}/model/IsoTPMessage.java (90%) rename plc4j/protocols/{s7/src/main/java/org/apache/plc4x/java/isotp/netty => iso-tp/src/main/java/org/apache/plc4x/java/isotp/protocol}/model/params/CalledTsapParameter.java (88%) rename plc4j/protocols/{s7/src/main/java/org/apache/plc4x/java/isotp/netty => iso-tp/src/main/java/org/apache/plc4x/java/isotp/protocol}/model/params/CallingTsapParameter.java (88%) rename plc4j/protocols/{s7/src/main/java/org/apache/plc4x/java/isotp/netty => iso-tp/src/main/java/org/apache/plc4x/java/isotp/protocol}/model/params/ChecksumParameter.java (89%) rename plc4j/protocols/{s7/src/main/java/org/apache/plc4x/java/isotp/netty => iso-tp/src/main/java/org/apache/plc4x/java/isotp/protocol}/model/params/DisconnectAdditionalInformationParameter.java (89%) rename plc4j/protocols/{s7/src/main/java/org/apache/plc4x/java/isotp/netty => iso-tp/src/main/java/org/apache/plc4x/java/isotp/protocol}/model/params/Parameter.java (86%) rename plc4j/protocols/{s7/src/main/java/org/apache/plc4x/java/isotp/netty => iso-tp/src/main/java/org/apache/plc4x/java/isotp/protocol}/model/params/TpduSizeParameter.java (85%) rename plc4j/protocols/{s7/src/main/java/org/apache/plc4x/java/isotp/netty => iso-tp/src/main/java/org/apache/plc4x/java/isotp/protocol}/model/params/TsapParameter.java (94%) rename plc4j/protocols/{s7/src/main/java/org/apache/plc4x/java/isotp/netty => iso-tp/src/main/java/org/apache/plc4x/java/isotp/protocol}/model/tpdus/ConnectionConfirmTpdu.java (81%) rename plc4j/protocols/{s7/src/main/java/org/apache/plc4x/java/isotp/netty => iso-tp/src/main/java/org/apache/plc4x/java/isotp/protocol}/model/tpdus/ConnectionRequestTpdu.java (81%) rename plc4j/protocols/{s7/src/main/java/org/apache/plc4x/java/isotp/netty => iso-tp/src/main/java/org/apache/plc4x/java/isotp/protocol}/model/tpdus/ConnectionTpdu.java (86%) rename plc4j/protocols/{s7/src/main/java/org/apache/plc4x/java/isotp/netty => iso-tp/src/main/java/org/apache/plc4x/java/isotp/protocol}/model/tpdus/CustomTpdu.java (84%) rename plc4j/protocols/{s7/src/main/java/org/apache/plc4x/java/isotp/netty => iso-tp/src/main/java/org/apache/plc4x/java/isotp/protocol}/model/tpdus/DataTpdu.java (88%) rename plc4j/protocols/{s7/src/main/java/org/apache/plc4x/java/isotp/netty => iso-tp/src/main/java/org/apache/plc4x/java/isotp/protocol}/model/tpdus/DisconnectConfirmTpdu.java (85%) rename plc4j/protocols/{s7/src/main/java/org/apache/plc4x/java/isotp/netty => iso-tp/src/main/java/org/apache/plc4x/java/isotp/protocol}/model/tpdus/DisconnectRequestTpdu.java (83%) rename plc4j/protocols/{s7/src/main/java/org/apache/plc4x/java/isotp/netty => iso-tp/src/main/java/org/apache/plc4x/java/isotp/protocol}/model/tpdus/DisconnectTpdu.java (88%) rename plc4j/protocols/{s7/src/main/java/org/apache/plc4x/java/isotp/netty => iso-tp/src/main/java/org/apache/plc4x/java/isotp/protocol}/model/tpdus/ErrorTpdu.java (84%) rename plc4j/protocols/{s7/src/main/java/org/apache/plc4x/java/isotp/netty => iso-tp/src/main/java/org/apache/plc4x/java/isotp/protocol}/model/tpdus/Tpdu.java (91%) rename plc4j/protocols/{s7/src/main/java/org/apache/plc4x/java/isotp/netty => iso-tp/src/main/java/org/apache/plc4x/java/isotp/protocol}/model/types/DeviceGroup.java (95%) rename plc4j/protocols/{s7/src/main/java/org/apache/plc4x/java/isotp/netty => iso-tp/src/main/java/org/apache/plc4x/java/isotp/protocol}/model/types/DisconnectReason.java (97%) rename plc4j/protocols/{s7/src/main/java/org/apache/plc4x/java/isotp/netty => iso-tp/src/main/java/org/apache/plc4x/java/isotp/protocol}/model/types/ParameterCode.java (97%) rename plc4j/protocols/{s7/src/main/java/org/apache/plc4x/java/isotp/netty => iso-tp/src/main/java/org/apache/plc4x/java/isotp/protocol}/model/types/ProtocolClass.java (96%) rename plc4j/protocols/{s7/src/main/java/org/apache/plc4x/java/isotp/netty => iso-tp/src/main/java/org/apache/plc4x/java/isotp/protocol}/model/types/RejectCause.java (96%) rename plc4j/protocols/{s7/src/main/java/org/apache/plc4x/java/isotp/netty => iso-tp/src/main/java/org/apache/plc4x/java/isotp/protocol}/model/types/TpduCode.java (96%) rename plc4j/protocols/{s7/src/main/java/org/apache/plc4x/java/isotp/netty => iso-tp/src/main/java/org/apache/plc4x/java/isotp/protocol}/model/types/TpduSize.java (97%) rename plc4j/protocols/{s7/src/test/java/org/apache/plc4x/java/isotp/netty => iso-tp/src/test/java/org/apache/plc4x/java/isotp/protocol}/IsoTPProtocolTest.java (93%) rename plc4j/protocols/{s7/src/test/java/org/apache/plc4x/java/isotp/netty => iso-tp/src/test/java/org/apache/plc4x/java/isotp/protocol}/model/IsoTPMessageTests.java (53%) rename plc4j/protocols/{s7/src/test/java/org/apache/plc4x/java/isotp/netty => iso-tp/src/test/java/org/apache/plc4x/java/isotp/protocol}/model/params/ParameterTests.java (60%) rename plc4j/protocols/{s7/src/test/java/org/apache/plc4x/java/isotp/netty => iso-tp/src/test/java/org/apache/plc4x/java/isotp/protocol}/model/params/TsapParameterTests.java (55%) rename plc4j/protocols/{s7/src/test/java/org/apache/plc4x/java/isotp/netty => iso-tp/src/test/java/org/apache/plc4x/java/isotp/protocol}/model/tpdus/IsotpModelTests.java (86%) rename plc4j/protocols/{s7/src/test/java/org/apache/plc4x/java/isotp/netty => iso-tp/src/test/java/org/apache/plc4x/java/isotp/protocol}/model/types/IsotpTypeTests.java (87%) delete mode 100644 plc4j/protocols/s7/src/test/java/org/apache/plc4x/java/s7/S7PlcScanner.java delete mode 100644 plc4j/protocols/s7/src/test/java/org/apache/plc4x/java/s7/S7PlcTestConsole.java delete mode 100644 plc4j/protocols/s7/src/test/java/org/apache/plc4x/java/s7/S7PlcWriterSample.java copy plc4j/protocols/{driver-bases/test/src/main => s7/src/test}/resources/META-INF/services/com.athaydes.spockframework.report.IReportCreator.properties (100%) delete mode 100644 plc4j/protocols/s7/src/test/resources/org/apache/plc4x/java/s7/connection/s7-read-var-request.pcapng delete mode 100644 plc4j/protocols/s7/src/test/resources/org/apache/plc4x/java/s7/connection/s7-read-var-response.pcapng delete mode 100644 plc4j/protocols/s7/src/test/resources/org/apache/plc4x/java/s7/connection/s7-write-var-request.pcapng delete mode 100644 plc4j/protocols/s7/src/test/resources/org/apache/plc4x/java/s7/connection/s7-write-var-response.pcapng delete mode 100644 plc4j/protocols/test/pom.xml delete mode 100644 plc4j/protocols/test/src/main/java/org/apache/plc4x/java/mock/MockFieldHandler.java delete mode 100644 plc4j/protocols/test/src/main/java/org/apache/plc4x/java/mock/PlcMockConnection.java delete mode 100644 plc4j/protocols/test/src/main/java/org/apache/plc4x/java/mock/PlcMockDriver.java delete mode 100644 plc4j/protocols/test/src/main/java/org/apache/plc4x/java/test/TestConnection.java delete mode 100644 plc4j/protocols/test/src/main/java/org/apache/plc4x/java/test/TestDevice.java delete mode 100644 plc4j/protocols/test/src/main/resources/META-INF/services/org.apache.plc4x.java.spi.PlcDriver copy plc4j/{protocols/test/src/main/java/org/apache/plc4x/java/mock/MockDevice.java => utils/opm/src/main/java/org/apache/plc4x/java/opm/AliasRegistry.java} (50%) create mode 100644 plc4j/utils/opm/src/main/java/org/apache/plc4x/java/opm/SimpleAliasRegistry.java create mode 100644 plc4j/utils/opm/src/test/java/org/apache/plc4x/java/opm/ConnectedEntityTest.java create mode 100644 plc4j/utils/opm/src/test/java/org/apache/plc4x/java/opm/OpmUtilsTest.java create mode 100644 plc4j/utils/opm/src/test/java/org/apache/plc4x/java/opm/SimpleAliasRegistryTest.java create mode 100644 plc4j/utils/scraper/pom.xml rename plc4j/{protocols/test/src/main/java/org/apache/plc4x/java/mock/MockDevice.java => utils/scraper/src/main/java/org/apache/plc4x/java/scraper/ResultHandler.java} (62%) create mode 100644 plc4j/utils/scraper/src/main/java/org/apache/plc4x/java/scraper/ScrapeJob.java create mode 100644 plc4j/utils/scraper/src/main/java/org/apache/plc4x/java/scraper/Scraper.java create mode 100644 plc4j/utils/scraper/src/main/java/org/apache/plc4x/java/scraper/ScraperTask.java create mode 100644 plc4j/utils/scraper/src/main/java/org/apache/plc4x/java/scraper/config/JobConfiguration.java create mode 100644 plc4j/utils/scraper/src/main/java/org/apache/plc4x/java/scraper/config/JobConfigurationBuilder.java create mode 100644 plc4j/utils/scraper/src/main/java/org/apache/plc4x/java/scraper/config/ScraperConfiguration.java create mode 100644 plc4j/utils/scraper/src/main/java/org/apache/plc4x/java/scraper/config/ScraperConfigurationBuilder.java rename plc4j/{core/src/test/java/org/apache/plc4x/java/mock/DoubleMockDriver.java => utils/scraper/src/main/java/org/apache/plc4x/java/scraper/config/ScraperConfigurationException.java} (52%) create mode 100644 plc4j/utils/scraper/src/main/java/org/apache/plc4x/java/scraper/util/PercentageAboveThreshold.java create mode 100644 plc4j/utils/scraper/src/test/java/org/apache/plc4x/java/s7/ManualS7PlcDriverMT.java create mode 100644 plc4j/utils/scraper/src/test/java/org/apache/plc4x/java/scraper/ScraperConfigurationTest.java rename plc4j/{protocols/test/src/main/java/org/apache/plc4x/java/mock/MockField.java => utils/scraper/src/test/java/org/apache/plc4x/java/scraper/ScraperRunner.java} (56%) create mode 100644 plc4j/utils/scraper/src/test/java/org/apache/plc4x/java/scraper/ScraperTaskTest.java create mode 100644 plc4j/utils/scraper/src/test/java/org/apache/plc4x/java/scraper/ScraperTest.java create mode 100644 plc4j/utils/scraper/src/test/java/org/apache/plc4x/java/scraper/config/ScraperConfigurationBuilderTest.java create mode 100644 plc4j/utils/scraper/src/test/resources/config.json rename plc4j/{core/src/test/resources/META-INF/services/org.apache.plc4x.java.spi.PlcDriver => utils/scraper/src/test/resources/config.yml} (68%) rename plc4j/{protocols/ethernetip/src/main/resources/META-INF/services/org.apache.plc4x.java.spi.PlcDriver => utils/scraper/src/test/resources/example.yml} (53%) create mode 100644 plc4j/utils/scraper/src/test/resources/example_with_strings.yml create mode 100644 plc4j/utils/scraper/src/test/resources/logback-test.xml create mode 100644 plc4j/utils/scraper/src/test/resources/logback.xml copy plc4j/utils/{opm/src/main/java/org/apache/plc4x/java/opm/PlcField.java => test-utils/src/main/java/org/apache/plc4x/test/RequireInternetConnection.java} (71%) create mode 100644 plc4j/utils/test-utils/src/main/java/org/apache/plc4x/test/RequireInternetConnectionCondition.java copy plc4j/utils/{opm/src/main/java/org/apache/plc4x/java/opm/PlcField.java => test-utils/src/main/java/org/apache/plc4x/test/RequireNonCaptureAllDns.java} (71%) rename plc4j/{protocols/test/src/main/java/org/apache/plc4x/java/test/TestFieldItem.java => utils/test-utils/src/main/java/org/apache/plc4x/test/RequireNonCaptureAllDnsCondition.java} (50%) copy plc4j/utils/{opm/src/main/java/org/apache/plc4x/java/opm/PlcField.java => test-utils/src/main/java/org/apache/plc4x/test/RequirePcap.java} (71%) create mode 100644 plc4j/utils/test-utils/src/main/java/org/apache/plc4x/test/RequirePcapCondition.java copy plc4j/utils/{opm/src/main/java/org/apache/plc4x/java/opm/PlcField.java => test-utils/src/main/java/org/apache/plc4x/test/RequirePcapNg.java} (71%) create mode 100644 plc4j/utils/test-utils/src/main/java/org/apache/plc4x/test/RequirePcapNgCondition.java delete mode 100644 plc4j/utils/wireshark-utils/pom.xml delete mode 100644 plc4j/utils/wireshark-utils/src/main/java/org/apache/plc4x/java/utils/PcapngUtils.java create mode 100644 protocols/pom.xml copy plc4s/pom.xml => protocols/src/main/dfdl/daffodil-built-in-catalog.xml (57%) create mode 100644 protocols/src/main/dfdl/org/apache/plc4x/protocols/cotp-protocol.dfdl.xsd create mode 100644 protocols/src/main/dfdl/org/apache/plc4x/protocols/s7-protocol.dfdl.xsd create mode 100644 protocols/src/main/dfdl/org/apache/plc4x/protocols/tpkt-protocol.dfdl.xsd copy plc4s/pom.xml => protocols/src/main/java/.keepMe (54%) create mode 100644 protocols/src/test/java/org/apache/plc4x/protocols/AbstractProtocolTest.java rename plc4j/protocols/test/src/main/java/org/apache/plc4x/java/test/TestType.java => protocols/src/test/java/org/apache/plc4x/protocols/TpktProtocolTest.java (74%) create mode 100644 protocols/src/test/resources/org/apache/plc4x/protocols/tpkt-protocol.tdml create mode 100644 src/site/asciidoc/users/opm.adoc