This is an automated email from the ASF dual-hosted git repository. sruehl pushed a change to branch feature/TopLevelItemSpliting in repository https://gitbox.apache.org/repos/asf/incubator-plc4x.git.
omit 33ab0ab Introduced protocol layer to split requestItems to several requests. add f95d70f Introduced TcpHexDumper to driver-bases/test add 492ed4a added test for modbus PlcDriver add 1c65826 moved Assert and Junit5Backport to driver-bases/test add c326e36 added modbus connection tests add 036e394 fixed build problems add 22d5106 added Test for Plc4XModbusProtocol and fixed several Bugs. add a66f66d Refactored the way the maps the enums are built up. add 7a2b14b Added some EtherNet/IP related documentation. add 735431e PLC4X-38 - Implement the Ethernet/IP Protocol add 44627a3 PLC4X-38 - Implement the Ethernet/IP Protocol add 748a39d PLC4X-40 - Refactor the PlcSubscriber to be more aligned with the PlcReader and PlcWriter add 7079cad Changed the pom to use a variable instead of having it hard coded for every modbus driver dependency. add e413887 refined test for modbus protocol add 917c7fb added sanity checks for produced values and cleaned up type checks add c4a35b3 added tests for double data type in ads add be1703c create a blacklist of not yet supported types on modbus add 234c121 refactored common used test code into driver-bases-test add 6adebdf fixed calender tests and simplified assertions while at it add 5f3d7ab removed unsused method (cleanup for 6adebdf) add 14d5585 added BigInteger support on modbus and ads add 9efd47c fixed documentation of test class javadoc add 18bb3f3 modbus: fixed coil parsing add 9e05e64 modbus protocol test: increased readability by extracting duplicate code add 11db5b9 added byte[] and Byte[] to supported data types test add 9221ed5 small fix in supported data types regarding byte[] and Byte[] mixup add 5d06aa7 supported data type tests: increase readability by introducing typed class add 947579f added support for float and double in modbus add dbc6812 fixed upper bounds for registers. add bd291ae added type generator function to Plc4XS7ProtocolTest add c0b3745 added double support to S7 add d7159aa added PlcNotImplementedException to mark not yet implemented code parts. add 810d649 fixed double implementation in S7 add d6a498e Made Jenkins use a ".repository" as local repo directory for deployment instead of the default one in an attempt to solve deployment problems on jenkins. add 4bec0c1 Exclude the Ubuntu node H32 from the nodes used for deploying as this seems to have issues with using GIT add f567718 Added an enforcer rule, that fails the build if any dependencies (direct and transitive) are used for which known vulnerabilities exist. add 44c0d68 Added an enforcer rule, that fails the build if any dependencies (direct and transitive) are used for which known vulnerabilities exist. add a372307 Merge branches 'feature/ethernet-ip' and 'master' of https://gitbox.apache.org/repos/asf/incubator-plc4x into feature/ethernet-ip add 75bf337 Added some javadoc to S7 communication path and several todos that may be helpful. add a919e94 Added javadoc on S7PlcConnection. add b1c4c86 Merge branch 's7-communication-documentation' of https://github.com/JulianFeinauer/incubator-plc4x into JulianFeinauer-s7-communication-documentation add 4caff3c Removed the TODOs add 8639d34 Merge branch 'JulianFeinauer-s7-communication-documentation' add 5363805 Avoid some exceptions when disconnecting from S7 PLCs add 972c532 Added byte[] and Byte[] implementation to modbus. add f80c9ef Made the disconnect for S7 respect the ISO TP protocol. add 5f3bf64 Merge branches 'feature/ethernet-ip' and 'master' of https://gitbox.apache.org/repos/asf/incubator-plc4x into feature/ethernet-ip add e035944 Added the repo for the enip snapshots add 428b144 Added the EnipClient class from the enip projects client module add 9a299c8 Added missing dependency add 8c87fca Added byte[] and Byte[] implementation to ads. add 4f38a3f fixed some sonar bugs add 7a38a36 fixed some sonar bugs add 4d5bf28 manage commons-collections dependency add 07b6007 removed obsolete supported datatype checking code add 093de00 added missing toString()/hashCode()/equals() add 68b0388 Fixed a typo add e986509 - Did some cleaning up in the sites protocols section - Added some initial documentation on the DeltaV protocol add 001c092 Some super-minor textual changes add 43dca59 Fine tuned the generated diagrams add fa3d375 Added some information on how we did the reverse-engineering add d54464b Increased the timeout of this test as it was randomly failing on jenkins. add 5202c9d Implement basic example of connecting an S7 device to Azure IoT Hub add 552385d Merge branch 's7_azure_iothub_example' of https://github.com/DerDackel/incubator-plc4x into DerDackel-s7_azure_iothub_example add ec261d5 fix a few typos add d220353 Merge pull request #12 from bodewig/fix-some-typos add 1436e2c Merge branch 'master' of github.com:apache/incubator-plc4x into DerDackel-s7_azure_iothub_example add d0d80ea Manually updated the project: - Added ASF headers - Made the Maven build work (Were version conflicts in the MS dependencies) - Fixed some little problems in the Example itself. add 49cd675 Merge branch 'DerDackel-s7_azure_iothub_example' add 0bc1f0d Merge branches 'feature/ethernet-ip' and 'master' of https://gitbox.apache.org/repos/asf/incubator-plc4x into feature/ethernet-ip add d2035b3 Created a first version of a S7DataType enum to help with the TIA portal type addresses. add 5877abe - Worked on the documentation of how to get involved and where to meet the community (or part of it) - Fixed the links in the community menu. add 4bdc006 - Freshup for the start page add 5b2f695 Added apache header to apache nifi logo add 0d718a2 Fixed the fontawesome icon support add 02b8b7b - Workaround for an output error when using asciidoctor [TIP] add 73fe5e9 Merge branches 'feature/ethernet-ip' and 'master' of https://gitbox.apache.org/repos/asf/incubator-plc4x into feature/ethernet-ip add 66ff504 Changed the scope of the core module add 2d4b799 Some more fine-tuning of the start-page add d04b40d Introduced build for PlcSubscriptionRequest and PlcUnsubscriptionRequest + generified items for subscription + reordered SubscriptionRequestCyclicItem so that consumer is the last parameter. + adjusted manual test add 73a3f42 moved PlcRequestContainer to driver-bases add ec3fb9f added toString()/equals()/hashCode() to AdsSubscriptionHandle add 47ff4f0 added a immutability test to plc4j-api to track immutability add 78853ad - Make the S7 Driver inspect the type of S7 device it is connected to. add 276768b Minor updates pulled from the kafka branch add 8e6af2d Merge branch 'master' of https://gitbox.apache.org/repos/asf/incubator-plc4x into feature/ethernet-ip add 44860d9 Updated the code after moving the PlcRequestContainer to another package add ffd8d81 Further work on the EtherNet/IP implementation. add 8bec538 Adjusted the poc to latest changes in the enip driver add 992f707 Updated the ethernetip driver to a new version add 5dad848 Removed the maven version check as it was reported by the build itself not being intended for this sort of check add 1f60789 First working version of a driver able to read values via EtherNet/IP add 69b305c - Updated the apache parent referenced to the newly released version 21 - After updating the site was no longer able to be generated, so I switched to an updated fork of the reflow skin which is able to run with the latest site plugin version - Refactored the site.css to replace the need of the forked skin template add 7fab974 Merge branches 'feature/ethernet-ip' and 'master' of https://gitbox.apache.org/repos/asf/incubator-plc4x into feature/ethernet-ip add a4c4797 [ADS] added TODO: about broken multiplicator add bd550d7 Merge branches 'feature/ethernet-ip' and 'master' of https://gitbox.apache.org/repos/asf/incubator-plc4x into feature/ethernet-ip add 0b0e202 [ADS] partially fixed length calculation where it is partially possible add 4021fb8 Merge branch 'master' of https://gitbox.apache.org/repos/asf/incubator-plc4x into feature/ethernet-ip add 9c820f7 [ALL] added new PlcInvalidAddress to indicate an invalid address add 502e1b2 Merge branch 'master' of https://gitbox.apache.org/repos/asf/incubator-plc4x into feature/ethernet-ip add 23f05c8 - Renamed PlcInvalidAddress to PlcInvalidAddressException - Refactored the code for parsing addresses in the EtherNet/IP driver add b01792d adjusted ADS and Modbus to new exception type add 0dc480c - Cleaned up the code to parse the addresses in the s7 driver add d430446 - Updated the site generation to not only output an image of the next apache event, but also a link to the page. add ff4e895 [ADS] fixed subscription ignores subscription type add bad9ad0 [ADS] use LittleEndianDecoder for determination of length of types. add ddad4ad [ADS] added TODOs/Notes about the broken types in ADS add dd293ba cleanup fo azure example add d0fbfbe simplified azure example add d555c3e Made the S7 driver react on channel failures. add fc70e60 API Refactoring according to proposal: https://cwiki.apache.org/confluence/display/PLC4X/Chris%27+Proposal+2 add 61c9e68 API Redesign add 14bed12 Some further fine-tuning after porting the examples and the edgent-integration add abbf96c - Adjusted the camel integration - Continued work on the Edgent integration - Started implementing the api changes in driver base add a3baa0e - Commented out stuff that was preventing compilation - Added optional JUnit 5 support - Fine-tuned the S7 field parsing - Added tests for S7 field parsing add c3d3b5a - Finished porting the S7 driver (At least the tests are green again) add 003924a - Started implementing the payload handling add 8f9e9d8 - Finished refactoring the reading of values in s7 add 483a486 - Updated several examples and integration modules to be more aligned with the latest refactorings. - Moved the PlcFieldHandler to a separate class. - Disabled all drivers except s7 for now (will re-enable them one by one) add a0a1237 - Continued refactoring ... add 5228d63 - Fine tuned the subscription api add a4afc99 - Fixed the camel test-suite and build add 8fe6f82 added internal layer to add functionality needed for driver internals and keep them separated from the user api add 88a3df1 some (little) progress on ADS api refactoring add 98e6336 [AZURE-Example] fixed compile issue in sample add eb3db9a [ALL] cleanup API and remove the generic extensions again add 6ed4be8 [edgent] fixed broken test add ba34efd fix some issues with generics and build add 4be6686 - Continued work on the edgent integration testsuite - Cleaned up unneeded dependencies in the hello-plc4x project - Fixed JavaDoc comments to no longer break the site generation add 6fb35bf Implement basic example of connecting an S7 device to Google Cloud IoT Core add 511f6a8 - Fixed some cve related problems - Commented out an eventually unused dependency add 8260725 Merge branch 'pisquaredover6-master' add 6f8287f Stub of kafka-connect add a46b4c9 Merge add 10d51f9 Merge add 5d062f0 Merge branches 'feature/apache-kafka' and 'master' of https://gitbox.apache.org/repos/asf/incubator-plc4x into feature/apache-kafka add d6be19e Merge branches 'feature/apache-kafka' and 'master' of https://gitbox.apache.org/repos/asf/incubator-plc4x into feature/apache-kafka add a3625a2 create only one task in source connector add a1b97c4 removed unused import add b430e28 added configuration options add 9184353 added test driver implementation add e8149ce Merge branch 'skorikov-feature/apache-kafka' into feature/apache-kafka add 42ddef9 Merge branches 'feature/apache-kafka' and 'master' of https://gitbox.apache.org/repos/asf/incubator-plc4x add a396de4 Refactored the recent additions to master - Google IoT Example - Kakfka-Connect integration - Test driver add fd95ee9 Refactored the recent additions to master - Google IoT Example - Kakfka-Connect integration - Test driver add df806f8 - Finished refactoring the read part of the S7 driver (Still todo's in the write part) - Optimized the example - Added a getObject() method to the FieldItem class - Added a set of S7FieldItems that return the nearest matching type to the one in the address in getObject() add 220d8d8 - Added the prefix "Default" to the FieldItems in base-driver add 464b883 - Implemented most of the encoding of values for write requests in S7 add 924e75e - Refactored the EtherNet/IP driver add 032acf1 - Some minor updates fixing stuff that wasn't updated as the modules were commented out. add d6d13cc adjusted kafka source connector to new api add 1b0ca49 implemented throttling add 28a70be refactoring add d74d905 removed unnecessary code add 334a4eb added further connect schemas add 5ee9fa9 implemented kafka sink connector add 955ad74 implemented kafka sink connector add 1319e0b Merge pull request #16 from skorikov/feature/api-redesign-chris-c add dcf68dc Some further work on the modbus protocol add 398f4b9 - Implemented getByte for booleanfield - Fixed tbe IotElasticsearchFactory example add aff5bb3 Merge branch 'feature/api-redesign-chris-c' of https://github.com/skorikov/incubator-plc4x into skorikov-feature/api-redesign-chris-c add 4250310 added support for multiple queries in kafka source connector add 130fa97 Merge branch 'skorikov-skorikov-feature/api-redesign-chris-c' into skorikov-feature/api-redesign-chris-c add 549e4ee Merge branch 'skorikov-feature/api-redesign-chris-c' into feature/api-redesign-chris-c add adf6b67 implemented support for multiple workers in kafka sink connector add af6d47a Merge branch 'skorikov-feature/api-redesign-chris-c' into feature/api-redesign-chris-c add fb55138 added url to source key schema add ee60bed removed unused import add be3f365 added convenience methods for easily building of requests add 140b01c added possibility to add types only known at runtime to plc write requests add f16b671 adjusted subscription api to new API requirements add 910d379 progress on subscription support add f7bd1c4 make ads compile again add 26cba52 added support for BigInteger on field handler add 19716f8 make ads test run again (still failing though) add 16fc039 fixed remaining tests in ADS. Still needs a lot of refactoring and todo tests add 5c3a127 fixed missing methods for BigInteger Support add 9d5f2e2 some work on ADS tests add cb27228 fixed ethernetip field handler add 8e655f3 ADS guard against bufferoverflow when writing to ADS add 88d1776 - Disabled the ADS module till the site problems are fixed - Fixed some problems in decoding split up requests - Fixed a problem in the parsing of S7 addresses - It seems bit-stream datatypes all need an extra byte at the end add 2587167 fixed issues with site generation add 660f212 cleanup AdsPlcFieldHandler. Still needs fixing. add 4bd85c7 fixed compare to messup in AdsPlcFieldHandler add dc20326 renamce shortcut numValues to numberOfValues add 6b25a0e some refactoring on the ADS decoder/encoder add d0e2261 [ADS] fixed small endianness problem in decoder add 4e750d6 - Added some of the correct codes for some of the new datatypes. add 022d7f5 - Updated the getConnectionUnknownHost test to run even if internet providers use a default host for unknown host-names. add 01373d9 - Replaced the old TransportSize with the originally named S7DataType class add 4a95fb3 - Switched to the last released version of Apache Edgent - Added dependencyManagement to the kafka example to fix cve problems which will be fixed by new edgent versions add 38febac ADS/General fixed date handling add 08e6bbb - Added the oss sonatype release repo to the repo-list for this module - Changed the enip driver to the release version add f0f09af [maven-release-plugin] rollback the release of plc4x-parent-0.1.0 add 3bc5d6a - Changed the enip driver to the release version add 21f5386 [General] added remaining datatypes for FieldItem add 352375c [maven-release-plugin] prepare release plc4x-parent-0.1.0 add 49f93e6 [maven-release-plugin] prepare for next development iteration add e22e344 [maven-release-plugin] rollback the release of plc4x-parent-0.1.0 add af14dd9 removed old files add 98976eb Merge branch 'feature/api-redesign-chris-c' of https://github.com/skorikov/incubator-plc4x into skorikov-feature/api-redesign-chris-c add 86fb5db Merge branch 'skorikov-feature/api-redesign-chris-c' add 8cd6926 Fixed dependency problems. add bb403f2 - Added a reminder to eventually clean up the dependencies. add 7f7363f [maven-release-plugin] prepare release plc4x-parent-0.1.0 add c350696 [maven-release-plugin] rollback the release of plc4x-parent-0.1.0 add 45d2cc8 [maven-release-plugin] prepare release plc4x-parent-0.1.0 add d4f80a7 [maven-release-plugin] prepare for next development iteration add f26f990 - Added tools for checking PLC4X releases add 9cd6be8 - Removed the NOTICE block on the Reflow-Skin as we no longer contain code of this in our repo and release. add 87a2368 - Added missing README and RELEASE_NOTES files. add 11ce613 - Merged the new and the old README.md and removed the Markdown version after that. add 7a1456a - Added some first documentation on the release process - Added a plugin to the root pom that additionally creates MD5 and SHA512 hashes for the release artifacts add 8c1e0c1 [maven-release-plugin] prepare release plc4x-parent-0.1.0-rc2 add 5064145 [maven-release-plugin] prepare for next development iteration add 946defc - Fixed a deprecated maven property. add 7a92960 [Modbus] re-enable basic modbus support [General] added byte[] and BigDecimal support in FieldHandlers [General] added abstract field handler which throws exceptions by default [Test] added hex util for tests to convert byte[] to hex add 865fc9e [General] fixed broken getAllByteArrays implementation add f74c7bf [Modbus] added possibility to add a quantity to addresses to read multiple values. add 34bac1f [Modbus] added example to read an int from 2 registers [General] changed byte[] to Byte[] to avoid recurring boxing problems new e955366 Introduced protocol layer to split requestItems to several requests. This update added new revisions after undoing existing revisions. That is to say, some revisions that were in the old version of the branch are not in the new version. This situation occurs when a user --force pushes a change and generates a repository containing something like this: * -- * -- B -- O -- O -- O (33ab0ab) \ N -- N -- N refs/heads/feature/TopLevelItemSpliting (e955366) You should already have received notification emails for all of the O revisions, and so the following emails describe only the N revisions from the common base, B. Any revisions marked "omit" are not gone; other references still refer to them. Any revisions marked "discard" are gone forever. 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: Jenkinsfile | 6 +- NOTICE | 5 +- README | 64 + README.md | 64 - RELEASE_NOTES | 45 + examples/{iotree => azure}/pom.xml | 81 +- .../azure/iothub/S7PlcToAzureIoTHubSample.java | 91 + examples/dummy-driver/pom.xml | 11 +- .../dummydriver/connection/DummyConnection.java | 47 +- .../model/{DummyAddress.java => DummyField.java} | 6 +- .../examples/dummydriver/netty/DummyProtocol.java | 6 +- examples/google/README.md | 61 + examples/{iot-factory => google}/pom.xml | 127 +- .../google/iotcore/MqttExampleOptions.java | 166 ++ .../google/iotcore/S7PlcToGoogleIoTCoreSample.java | 288 ++++ .../src/main/resources/logback.xml | 8 +- examples/{plclogger => hello-plc4x}/pom.xml | 49 +- .../plc4x/java/examples/helloplc4x/HelloPlc4x.java | 122 ++ .../hello-plc4x/src/main}/resources/logback.xml | 2 +- examples/iot-factory/pom.xml | 9 +- .../iotfactory/IotElasticsearchFactory.java | 2 +- examples/iotree/pom.xml | 9 +- examples/kafka-bridge/pom.xml | 46 +- .../java/examples/kafkabridge/KafkaBridge.java | 60 +- .../java/examples/kafkabridge/model/PlcConfig.java | 10 +- .../model/{PlcAddress.java => PlcFieldConfig.java} | 2 +- examples/plclogger/pom.xml | 9 +- .../plc4x/java/examples/plclogger/PlcLogger.java | 2 +- examples/plclogger/src/main/resources/logback.xml | 2 +- examples/pom.xml | 8 +- integrations/apache-brooklyn/pom.xml | 5 +- integrations/apache-camel/pom.xml | 26 +- .../java/org/apache/plc4x/camel/Constants.java | 3 +- .../java/org/apache/plc4x/camel/Plc4XConsumer.java | 54 +- .../apache/plc4x/camel/Plc4XPollingConsumer.java | 32 +- .../java/org/apache/plc4x/camel/Plc4XProducer.java | 21 +- .../services/org/apache/camel/TypeConverter | 19 - .../java/org/apache/plc4x/camel/ManualTest.java | 2 +- .../java/org/apache/plc4x/camel/MockDriver.java | 66 +- .../org/apache/plc4x/camel/Plc4XComponentTest.java | 6 +- .../org/apache/plc4x/camel/Plc4XProducerTest.java | 8 +- integrations/apache-edgent/pom.xml | 26 +- .../apache/plc4x/edgent/PlcConnectionAdapter.java | 306 ++-- .../java/org/apache/plc4x/edgent/PlcFunctions.java | 360 ++-- .../plc4x/edgent/PlcConnectionAdapterTest.java | 272 ++- .../org/apache/plc4x/edgent/PlcFunctionsTest.java | 24 +- .../org/apache/plc4x/edgent/mock/MockAddress.java | 51 - .../apache/plc4x/edgent/mock/MockConnection.java | 100 +- .../org/apache/plc4x/edgent/mock/MockField.java | 50 +- .../apache/plc4x/edgent/mock/MockFieldHandler.java | 104 ++ .../apache/plc4x/edgent/mock/MockFieldItem.java | 34 + .../apache-kafka/README.md | 13 +- integrations/apache-kafka/config/sink.properties | 25 + integrations/apache-kafka/config/source.properties | 24 + .../{apache-edgent => apache-kafka}/pom.xml | 62 +- .../org/apache/plc4x/kafka/Plc4xSinkConnector.java | 74 + .../java/org/apache/plc4x/kafka/Plc4xSinkTask.java | 116 ++ .../apache/plc4x/kafka/Plc4xSourceConnector.java | 100 ++ .../org/apache/plc4x/kafka/Plc4xSourceTask.java | 239 +++ .../org/apache/plc4x/kafka/util/VersionUtil.java | 13 +- integrations/apache-mynewt/pom.xml | 5 +- integrations/pom.xml | 6 +- plc4c/pom.xml | 5 +- plc4j/api/pom.xml | 13 +- .../plc4x/java/api/connection/PlcConnection.java | 15 +- .../java/api/connection/PlcProprietarySender.java | 14 +- .../plc4x/java/api/connection/PlcReader.java | 20 +- .../plc4x/java/api/connection/PlcSubscriber.java | 103 +- .../plc4x/java/api/connection/PlcWriter.java | 20 +- .../api/exceptions/PlcInvalidFieldException.java} | 26 +- .../exceptions/PlcNotImplementedException.java} | 10 +- .../PlcUnsupportedDataTypeException.java} | 37 +- .../{PlcMessage.java => PlcFieldRequest.java} | 18 +- .../{PlcMessage.java => PlcFieldResponse.java} | 17 +- .../java/api/messages/PlcMessageBuilder.java} | 7 +- .../plc4x/java/api/messages/PlcNotification.java | 80 - .../java/api/messages/PlcProprietaryRequest.java | 59 +- .../java/api/messages/PlcProprietaryResponse.java | 58 +- .../{PlcMessage.java => PlcProtocolMessage.java} | 7 +- .../plc4x/java/api/messages/PlcReadRequest.java | 86 +- .../plc4x/java/api/messages/PlcReadResponse.java | 171 +- .../apache/plc4x/java/api/messages/PlcRequest.java | 101 +- .../plc4x/java/api/messages/PlcResponse.java | 87 +- .../{PlcMessage.java => PlcSubscriptionEvent.java} | 5 +- .../java/api/messages/PlcSubscriptionRequest.java | 59 + ...lcMessage.java => PlcSubscriptionResponse.java} | 13 +- ...cMessage.java => PlcUnsubscriptionRequest.java} | 23 +- ...nseItem.java => PlcUnsubscriptionResponse.java} | 17 +- .../plc4x/java/api/messages/PlcWriteRequest.java | 107 +- .../plc4x/java/api/messages/PlcWriteResponse.java | 21 +- .../plc4x/java/api/messages/ProtocolMessage.java | 24 - .../java/api/messages/items/ReadResponseItem.java | 71 - .../plc4x/java/api/messages/items/RequestItem.java | 72 - .../java/api/messages/items/ResponseItem.java | 72 - .../java/api/messages/items/WriteRequestItem.java | 66 - .../messages/specific/TypeSafePlcReadRequest.java | 112 -- .../messages/specific/TypeSafePlcReadResponse.java | 102 -- .../messages/specific/TypeSafePlcWriteRequest.java | 107 -- .../specific/TypeSafePlcWriteResponse.java | 78 - .../java/api/model/PlcConsumerRegistration.java} | 11 +- .../java/api/model/{Address.java => PlcField.java} | 10 +- .../PlcSubscriptionHandle.java} | 12 +- .../{ResponseCode.java => PlcClientDatatype.java} | 19 +- .../{ResponseCode.java => PlcResponseCode.java} | 6 +- ...{ResponseCode.java => PlcSubscriptionType.java} | 26 +- .../apache/plc4x/java/api/ImmutabilityTest.java | 98 ++ .../plc4x/java/api/connection/PlcReaderTest.java | 18 +- .../plc4x/java/api/connection/PlcWriterTest.java | 10 +- .../plc4x/java/api/messages/APIMessageTests.java | 176 +- .../api/messages/PlcProprietaryRequestTest.java} | 32 +- .../api/messages/PlcProprietaryResponseTest.java | 55 + .../java/api/messages/PlcReadRequestTest.java | 41 +- .../java/api/messages/PlcReadResponseTest.java | 16 +- .../plc4x/java/api/messages/PlcRequestTest.java | 14 +- .../plc4x/java/api/messages/PlcResponseTest.java | 39 +- .../api/messages/PlcSubscriptionEventTest.java | 59 + .../api/messages/PlcSubscriptionRequestTest.java} | 15 +- .../api/messages/PlcSubscriptionResponseTest.java | 34 +- ...Test.java => PlcUnsubscriptionRequestTest.java} | 63 +- .../messages/PlcUnsubscriptionResponseTest.java} | 15 +- .../java/api/messages/PlcWriteRequestTest.java | 40 +- .../java/api/messages/PlcWriteResponseTest.java | 19 +- .../mock/{MockAddress.java => MockField.java} | 23 +- .../specific/TypeSafePlcReadRequestTest.java | 13 +- .../specific/TypeSafePlcReadResponseTest.java | 26 +- .../specific/TypeSafePlcWriteRequestTest.java | 13 +- .../specific/TypeSafePlcWriteResponseTest.java | 25 +- plc4j/core/pom.xml | 13 +- .../org/apache/plc4x/java/mock/MockConnection.java | 7 +- plc4j/pom.xml | 5 +- plc4j/protocols/ads/pom.xml | 21 +- .../ads/connection/AdsAbstractPlcConnection.java | 111 +- .../ads/connection/AdsSerialPlcConnection.java | 2 +- .../java/ads/connection/AdsTcpPlcConnection.java | 235 ++- .../apache/plc4x/java/ads/model/AdsDataType.java | 536 ++++++ .../ByteBufSupplier.java => model/AdsField.java} | 10 +- .../plc4x/java/ads/model/AdsPlcFieldHandler.java | 945 +++++++++++ .../java/ads/model/AdsSubscriptionHandle.java} | 40 +- .../model/{AdsAddress.java => DirectAdsField.java} | 53 +- ...mbolicAdsAddress.java => SymbolicAdsField.java} | 47 +- .../plc4x/java/ads/protocol/Plc4x2AdsProtocol.java | 198 ++- .../ads/protocol/util/LittleEndianDecoder.java | 487 ++++-- .../ads/protocol/util/LittleEndianEncoder.java | 102 +- .../java/org/apache/plc4x/java/ads/AdsDumper.java | 2 +- .../apache/plc4x/java/ads/AdsPlcDriverTest.java | 20 +- .../apache/plc4x/java/ads/ManualPlc4XAdsTest.java | 40 +- .../apache/plc4x/java/ads/adslib/AmsRequest.java | 3 +- .../apache/plc4x/java/ads/adslib/AmsRouter.java | 30 +- .../commands/types/AdsNotificationSampleTest.java | 2 +- .../ads/api/commands/types/AdsStampHeaderTest.java | 2 +- .../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 +- .../connection/AdsAbstractPlcConnectionTest.java | 65 +- .../ads/connection/AdsConnectionFactoryTest.java | 2 +- .../ads/connection/AdsSerialPlcConnectionTest.java | 41 +- .../ads/connection/AdsTcpPlcConnectionTests.java | 113 +- .../plc4x/java/ads/model/AdsAddressTest.java | 63 - .../plc4x/java/ads/model/DirectAdsFieldTest.java | 71 + ...load2SerialProtocolExampleConversationTest.java | 2 +- .../java/ads/protocol/Plc4x2AdsProtocolTest.java | 144 +- .../java/ads/protocol/util/DigestUtilTest.java | 2 +- .../ads/protocol/util/LittleEndianDecoderTest.java | 107 +- .../ads/protocol/util/LittleEndianEncoderTest.java | 66 +- plc4j/protocols/benchmarks/pom.xml | 9 +- plc4j/protocols/driver-bases/base/pom.xml | 7 +- .../plc4x/java/base/PlcMessageToMessageCodec.java | 2 +- .../base/connection/AbstractPlcConnection.java | 34 +- .../base/connection/DefaultPlcFieldHandler.java | 97 ++ .../java/base/connection/PlcFieldHandler.java | 57 + .../plc4x/java/base/events/ConnectEvent.java | 2 +- .../plc4x/java/base/events/ConnectedEvent.java | 2 +- .../messages/DefaultPlcProprietaryRequest.java | 19 +- .../messages/DefaultPlcProprietaryResponse.java} | 23 +- .../java/base/messages/DefaultPlcReadRequest.java | 88 + .../java/base/messages/DefaultPlcReadResponse.java | 705 ++++++++ .../base/messages/DefaultPlcSubscriptionEvent.java | 431 +++++ .../messages/DefaultPlcSubscriptionRequest.java | 111 ++ .../messages/DefaultPlcSubscriptionResponse.java | 76 + .../messages/DefaultPlcUnsubscriptionRequest.java | 96 ++ .../DefaultPlcUnsubscriptionResponse.java} | 33 +- .../java/base/messages/DefaultPlcWriteRequest.java | 238 +++ .../base/messages/DefaultPlcWriteResponse.java | 57 + .../base/messages/InternalPlcFieldRequest.java} | 8 +- .../base/messages/InternalPlcFieldResponse.java} | 9 +- .../messages/InternalPlcProprietaryRequest.java} | 9 +- .../messages/InternalPlcProprietaryResponse.java} | 11 +- .../base/messages/InternalPlcReadRequest.java} | 9 +- .../base/messages/InternalPlcReadResponse.java} | 8 +- .../java/base/messages/InternalPlcRequest.java} | 7 +- .../java/base/messages/InternalPlcResponse.java} | 9 +- .../messages/InternalPlcSubscriptionEvent.java} | 8 +- .../messages/InternalPlcSubscriptionRequest.java} | 11 +- .../messages/InternalPlcSubscriptionResponse.java} | 8 +- .../InternalPlcUnsubscriptionRequest.java} | 21 +- .../InternalPlcUnsubscriptionResponse.java} | 8 +- .../base/messages/InternalPlcWriteRequest.java} | 21 +- .../base/messages/InternalPlcWriteResponse.java} | 8 +- .../{RawMessage.java => PlcRawMessage.java} | 12 +- .../java/base}/messages/PlcRequestContainer.java | 45 +- .../messages/items/DefaultBigDecimalFieldItem.java | 166 ++ .../messages/items/DefaultBigIntegerFieldItem.java | 169 ++ .../messages/items/DefaultBooleanFieldItem.java | 70 + .../messages/items/DefaultByteArrayFieldItem.java} | 26 +- .../base/messages/items/DefaultByteFieldItem.java | 152 ++ .../messages/items/DefaultDoubleFieldItem.java | 153 ++ .../base/messages/items/DefaultFloatFieldItem.java | 153 ++ .../messages/items/DefaultIntegerFieldItem.java | 152 ++ .../messages/items/DefaultLocalDateFieldItem.java} | 29 +- .../items/DefaultLocalDateTimeFieldItem.java | 76 + .../messages/items/DefaultLocalTimeFieldItem.java} | 29 +- .../base/messages/items/DefaultLongFieldItem.java | 152 ++ .../base/messages/items/DefaultShortFieldItem.java | 151 ++ .../messages/items/DefaultStringFieldItem.java} | 29 +- .../plc4x/java/base/messages/items/FieldItem.java | 188 ++ .../base/model/DefaultPlcConsumerRegistration.java | 73 + .../model/InternalPlcConsumerRegistration.java} | 21 +- .../base/model/InternalPlcSubscriptionHandle.java} | 9 +- .../base/messages/PlcRequestContainerTest.java | 83 + plc4j/protocols/driver-bases/pom.xml | 5 +- plc4j/protocols/driver-bases/raw-socket/pom.xml | 9 +- plc4j/protocols/driver-bases/serial/pom.xml | 9 +- plc4j/protocols/driver-bases/tcp/pom.xml | 9 +- plc4j/protocols/driver-bases/test/pom.xml | 42 +- .../plc4x/java/base/connection/MockConnection.java | 8 +- .../java/base/connection/TestChannelFactory.java | 9 +- .../java/base/connection/tcp}/TcpHexDumper.java | 16 +- .../base/protocol/Plc4XSupportedDataTypes.java | 245 +++ .../org/apache/plc4x/java/base}/util/Assert.java | 29 +- .../org/apache/plc4x/java/base/util/HexUtil.java} | 40 +- .../plc4x/java/base}/util/Junit5Backport.java | 9 +- plc4j/protocols/{modbus => ethernetip}/pom.xml | 80 +- .../java/ethernetip/EtherNetIpPlcDriver.java} | 44 +- .../connection/BaseEtherNetIpPlcConnection.java | 96 ++ .../connection/EtherNetIpTcpPlcConnection.java | 83 + .../java/ethernetip/model/EtherNetIpField.java | 102 ++ .../plc4x/java/ethernetip/netty/EnipCodec.java | 58 + .../ethernetip/netty/Plc4XEtherNetIpProtocol.java | 498 ++++++ .../netty/events/EtherNetIpConnectedEvent.java} | 4 +- .../ethernetip/netty/util/EnipPlcFieldHandler.java | 110 ++ .../services/org.apache.plc4x.java.api.PlcDriver | 2 +- .../ethernetip/src/site/asciidoc/index.adoc | 80 + .../src/site/resources/img/WAGO_enip_exporer.png | Bin 0 -> 293168 bytes .../org/apache/plc4x/java/ethernetip/EnipTest.java | 67 + .../ethernetip/ManualPlc4XEtherNetIpTest.java} | 42 +- .../src/test/resources/read-attribute.pcapng | Bin 0 -> 664 bytes plc4j/protocols/modbus/pom.xml | 38 +- .../apache/plc4x/java/modbus/ModbusPlcDriver.java | 34 +- .../modbus/connection/BaseModbusPlcConnection.java | 67 +- .../connection/ModbusConnectionFactory.java} | 32 +- .../connection/ModbusSerialPlcConnection.java | 7 +- .../modbus/connection/ModbusTcpPlcConnection.java | 14 +- ...tersModbusAddress.java => CoilModbusField.java} | 21 +- ...ress.java => MaskWriteRegisterModbusField.java} | 31 +- .../model/{ModbusAddress.java => ModbusField.java} | 26 +- ...ess.java => ReadDiscreteInputsModbusField.java} | 21 +- ...s.java => ReadHoldingRegistersModbusField.java} | 21 +- ...ess.java => ReadInputRegistersModbusField.java} | 21 +- .../plc4x/java/modbus/model/RegisterAddress.java | 43 - ...ModbusAddress.java => RegisterModbusField.java} | 22 +- .../java/modbus/netty/Plc4XModbusProtocol.java | 431 +++-- .../java/modbus/util/ModbusPlcFieldHandler.java | 114 ++ .../plc4x/java/modbus/ManualPlc4XModbusTest.java | 72 +- .../plc4x/java/modbus/ModbusPlcDriverTest.java | 125 ++ .../connection/BaseModbusPlcConnectionTest.java | 158 ++ .../connection/ModbusConnectionFactoryTest.java | 95 ++ .../connection/ModbusSerialPlcConnectionTest.java} | 102 +- .../connection/ModbusTcpPlcConnectionTests.java | 60 + .../java/modbus/netty/Plc4XModbusProtocolTest.java | 419 ++++- plc4j/protocols/pom.xml | 9 +- plc4j/protocols/s7/pom.xml | 21 +- .../java/isoontcp/netty/model/IsoOnTcpMessage.java | 4 +- .../isotp/netty/events/IsoTPConnectedEvent.java | 2 +- .../plc4x/java/isotp/netty/model/IsoTPMessage.java | 4 +- .../java/isotp/netty/model/tpdus/DataTpdu.java | 4 +- .../plc4x/java/isotp/netty/model/tpdus/Tpdu.java | 8 +- .../java/isotp/netty/model/types/DeviceGroup.java | 17 +- .../isotp/netty/model/types/DisconnectReason.java | 17 +- .../isotp/netty/model/types/ParameterCode.java | 17 +- .../isotp/netty/model/types/ProtocolClass.java | 17 +- .../java/isotp/netty/model/types/RejectCause.java | 17 +- .../java/isotp/netty/model/types/TpduCode.java | 17 +- .../java/isotp/netty/model/types/TpduSize.java | 17 +- .../plc4x/java/s7/connection/S7PlcConnection.java | 140 +- .../s7/messages/items/S7BigIntegerFieldItem.java} | 29 +- .../java/s7/messages/items/S7BooleanFieldItem.java | 52 + .../messages/items/S7FloatingPointFieldItem.java | 47 + .../messages/items/S7LocalDateTimeFieldItem.java | 49 + .../java/s7/messages/items/S7LongFieldItem.java | 53 + .../java/s7/messages/items/S7StringFieldItem.java | 47 + .../org/apache/plc4x/java/s7/model/S7Address.java | 42 - .../apache/plc4x/java/s7/model/S7BitAddress.java | 36 - .../plc4x/java/s7/model/S7DataBlockAddress.java | 36 - .../org/apache/plc4x/java/s7/model/S7Field.java | 131 ++ .../plc4x/java/s7/netty/Plc4XS7Protocol.java | 600 +++++-- .../org/apache/plc4x/java/s7/netty/S7Protocol.java | 362 +++- .../java/s7/netty/events/S7ConnectedEvent.java | 2 +- ...7ConnectedEvent.java => S7IdentifiedEvent.java} | 4 +- .../java/s7/netty/model/messages/S7Message.java | 18 +- .../s7/netty/model/messages/S7RequestMessage.java | 9 +- .../s7/netty/model/messages/S7ResponseMessage.java | 3 + .../messages/SetupCommunicationRequestMessage.java | 4 +- .../netty/model/params/CpuServicesParameter.java | 25 +- ...meter.java => CpuServicesRequestParameter.java} | 11 +- .../model/params/CpuServicesResponseParameter.java | 50 + .../java/s7/netty/model/params/VarParameter.java | 6 +- .../model/params/items/S7AnyVarParameterItem.java | 31 +- .../netty/model/payloads/CpuServicesPayload.java | 71 + .../java/s7/netty/model/payloads/VarPayload.java | 5 + .../netty/model/payloads/ssls/SslDataRecord.java} | 7 +- .../ssls/SslModuleIdentificationDataRecord.java | 66 + ...java => CpuServicesParameterFunctionGroup.java} | 36 +- ...a => CpuServicesParameterSubFunctionGroup.java} | 36 +- .../netty/model/types/DataTransportErrorCode.java | 18 +- .../s7/netty/model/types/DataTransportSize.java | 67 +- .../s7/netty/model/types/HeaderErrorClass.java | 17 +- .../java/s7/netty/model/types/MemoryArea.java | 62 +- .../java/s7/netty/model/types/MessageType.java | 17 +- .../java/s7/netty/model/types/ParameterError.java | 17 +- .../java/s7/netty/model/types/ParameterType.java | 17 +- .../s7/netty/model/types/SpecificationType.java | 17 +- .../plc4x/java/s7/netty/model/types/SslId.java | 98 ++ .../java/s7/netty/model/types/TransportSize.java | 234 ++- .../netty/model/types/VariableAddressingMode.java | 17 +- .../strategies/DefaultS7MessageProcessor.java | 22 +- .../s7/netty/strategies/S7MessageProcessor.java | 2 +- .../java/s7/netty/util/S7PlcFieldHandler.java | 488 ++++++ .../s7/netty/util/S7RequestSizeCalculator.java | 2 +- .../s7/netty/util/S7ResponseSizeEstimator.java | 11 +- .../plc4x/java/s7/netty/util/S7SizeHelper.java | 25 +- .../plc4x/java/s7/netty/util/S7TypeDecoder.java | 40 +- .../plc4x/java/s7/netty/util/S7TypeEncoder.java | 29 +- .../plc4x/java/s7/types/S7ControllerType.java} | 15 +- .../plc4x/java/s7/utils/S7TsapIdEncoder.java | 2 +- .../plc4x/java/isotp/netty/IsoTPProtocolTest.java | 2 +- .../isotp/netty/model/params/ParameterTests.java | 2 +- .../netty/model/params/TsapParameterTests.java | 4 +- .../isotp/netty/model/types/IsotpTypeTests.java | 2 +- .../org/apache/plc4x/java/s7/PcapGenerator.java | 2 +- .../apache/plc4x/java/s7/S7PlcReaderSample.java | 88 - .../org/apache/plc4x/java/s7/S7PlcScanner.java | 24 +- .../org/apache/plc4x/java/s7/S7PlcTestConsole.java | 13 +- .../apache/plc4x/java/s7/S7PlcWriterSample.java | 11 +- .../java/s7/connection/S7PlcConnectionIT.java | 17 +- .../java/s7/connection/S7PlcConnectionTests.java | 53 +- .../java/s7/connection/S7PlcTestConnection.java | 35 +- .../apache/plc4x/java/s7/issues/PLC4X47Test.java | 51 + .../apache/plc4x/java/s7/model/S7AddressTests.java | 63 - .../apache/plc4x/java/s7/model/S7FieldTests.java | 89 + .../plc4x/java/s7/netty/Plc4XS7ProtocolTest.java | 103 +- .../s7/netty/model/messages/S7MessageTests.java | 13 +- .../s7/netty/model/params/S7ParameterTests.java | 13 +- .../java/s7/netty/model/types/S7TypeTests.java | 4 +- .../strategies/DefaultS7MessageProcessorTest.java | 87 +- .../java/s7/netty/util/S7PlcFieldHandlerTest.java | 349 ++++ .../plc4x/java/s7/netty/util/S7SizeHelperTest.java | 10 +- .../types/S7DataTypeTest.java} | 43 +- .../s7/connection/s7-cpu-functions-response.pcap | Bin 0 -> 219 bytes plc4j/protocols/{driver-bases/tcp => test}/pom.xml | 33 +- .../org/apache/plc4x/java/test/TestConnection.java | 127 ++ .../org/apache/plc4x/java/test/TestDevice.java | 118 ++ .../java/org/apache/plc4x/java/test/TestField.java | 92 + .../apache/plc4x/java/test/TestFieldHandler.java | 174 ++ .../org/apache/plc4x/java/test/TestFieldItem.java} | 21 +- .../org/apache/plc4x/java/test/TestPlcDriver.java} | 25 +- .../java/org/apache/plc4x/java/test/TestType.java} | 16 +- .../services/org.apache.plc4x.java.api.PlcDriver | 2 +- .../org/apache/plc4x/java/test/TestDeviceTest.java | 58 + plc4j/utils/pom.xml | 5 +- plc4j/utils/raw-sockets/pom.xml | 5 +- plc4j/utils/test-utils/pom.xml | 5 +- plc4j/utils/wireshark-utils/pom.xml | 5 +- plc4s/pom.xml | 5 +- pom.xml | 293 +++- src/site/asciidoc/community/conferences.adoc | 24 +- src/site/asciidoc/community/getting-involved.adoc | 62 +- src/site/asciidoc/developers/release.adoc | 273 +++ src/site/asciidoc/developers/vpn.adoc | 5 + src/site/asciidoc/index.adoc | 59 +- .../ads/index.adoc} | 6 +- src/site/asciidoc/protocols/delta-v/index.adoc | 197 +++ .../protocols/delta-v/reverse-engineering.adoc | 245 +++ .../protocols/{ => ethernet-ip}/index.adoc | 15 +- src/site/asciidoc/protocols/features.adoc | 36 +- src/site/asciidoc/protocols/index.adoc | 11 +- .../resources/css/bootstrap-responsive.min.css | 4 +- src/site/resources/css/site.css | 13 +- src/site/resources/img/S7300.png | Bin 211110 -> 0 bytes src/site/resources/img/apache_kafka_logo.png | Bin 0 -> 78411 bytes src/site/resources/img/apache_nifi_logo.svg | 19 + .../resources/img/community-contribute-fork.png | Bin 0 -> 195211 bytes src/site/resources/img/iot-lab.jpg | Bin 0 -> 664977 bytes src/site/site.xml | 22 +- src/site/template/maven-site.vm | 1793 -------------------- tools/check_sigs.sh | 78 + tools/common.sh | 202 +++ tools/download_staged_release.sh | 138 ++ 402 files changed, 18926 insertions(+), 7672 deletions(-) create mode 100644 README delete mode 100644 README.md create mode 100644 RELEASE_NOTES copy examples/{iotree => azure}/pom.xml (61%) create mode 100644 examples/azure/src/main/java/org/apache/plc4x/java/examples/azure/iothub/S7PlcToAzureIoTHubSample.java rename examples/dummy-driver/src/main/java/org/apache/plc4x/java/examples/dummydriver/model/{DummyAddress.java => DummyField.java} (87%) create mode 100644 examples/google/README.md copy examples/{iot-factory => google}/pom.xml (50%) create mode 100644 examples/google/src/main/java/org/apache/plc4x/java/examples/google/iotcore/MqttExampleOptions.java create mode 100644 examples/google/src/main/java/org/apache/plc4x/java/examples/google/iotcore/S7PlcToGoogleIoTCoreSample.java copy examples/{iot-factory => google}/src/main/resources/logback.xml (89%) copy examples/{plclogger => hello-plc4x}/pom.xml (66%) create mode 100644 examples/hello-plc4x/src/main/java/org/apache/plc4x/java/examples/helloplc4x/HelloPlc4x.java copy {plc4j/protocols/s7/src/test => examples/hello-plc4x/src/main}/resources/logback.xml (97%) rename examples/kafka-bridge/src/main/java/org/apache/plc4x/java/examples/kafkabridge/model/{PlcAddress.java => PlcFieldConfig.java} (98%) delete mode 100644 integrations/apache-camel/src/main/resources/META-INF/services/org/apache/camel/TypeConverter delete mode 100644 integrations/apache-edgent/src/test/java/org/apache/plc4x/edgent/mock/MockAddress.java copy plc4j/protocols/modbus/src/main/java/org/apache/plc4x/java/modbus/model/ModbusAddress.java => integrations/apache-edgent/src/test/java/org/apache/plc4x/edgent/mock/MockField.java (57%) create mode 100644 integrations/apache-edgent/src/test/java/org/apache/plc4x/edgent/mock/MockFieldHandler.java create mode 100644 integrations/apache-edgent/src/test/java/org/apache/plc4x/edgent/mock/MockFieldItem.java copy plc4j/protocols/ads/LINKS.md => integrations/apache-kafka/README.md (73%) create mode 100644 integrations/apache-kafka/config/sink.properties create mode 100644 integrations/apache-kafka/config/source.properties copy integrations/{apache-edgent => apache-kafka}/pom.xml (53%) create mode 100644 integrations/apache-kafka/src/main/java/org/apache/plc4x/kafka/Plc4xSinkConnector.java create mode 100644 integrations/apache-kafka/src/main/java/org/apache/plc4x/kafka/Plc4xSinkTask.java create mode 100644 integrations/apache-kafka/src/main/java/org/apache/plc4x/kafka/Plc4xSourceConnector.java create mode 100644 integrations/apache-kafka/src/main/java/org/apache/plc4x/kafka/Plc4xSourceTask.java rename plc4j/api/src/main/java/org/apache/plc4x/java/api/connection/PlcLister.java => integrations/apache-kafka/src/main/java/org/apache/plc4x/kafka/util/VersionUtil.java (65%) copy plc4j/{protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/commands/AdsDeviceNotificationResponse.java => api/src/main/java/org/apache/plc4x/java/api/exceptions/PlcInvalidFieldException.java} (53%) copy plc4j/{protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/generic/types/package-info.java => api/src/main/java/org/apache/plc4x/java/api/exceptions/PlcNotImplementedException.java} (74%) copy plc4j/{protocols/ads/src/main/java/org/apache/plc4x/java/ads/protocol/exception/AdsException.java => api/src/main/java/org/apache/plc4x/java/api/exceptions/PlcUnsupportedDataTypeException.java} (50%) copy plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/{PlcMessage.java => PlcFieldRequest.java} (71%) copy plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/{PlcMessage.java => PlcFieldResponse.java} (60%) copy plc4j/{protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/events/ConnectEvent.java => api/src/main/java/org/apache/plc4x/java/api/messages/PlcMessageBuilder.java} (88%) delete mode 100644 plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/PlcNotification.java copy plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/{PlcMessage.java => PlcProtocolMessage.java} (87%) copy plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/{PlcMessage.java => PlcSubscriptionEvent.java} (87%) create mode 100644 plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/PlcSubscriptionRequest.java copy plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/{PlcMessage.java => PlcSubscriptionResponse.java} (72%) copy plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/{PlcMessage.java => PlcUnsubscriptionRequest.java} (52%) rename plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/{items/WriteResponseItem.java => PlcUnsubscriptionResponse.java} (60%) delete mode 100644 plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/ProtocolMessage.java delete mode 100644 plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/items/ReadResponseItem.java delete mode 100644 plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/items/RequestItem.java delete mode 100644 plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/items/ResponseItem.java delete mode 100644 plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/items/WriteRequestItem.java delete mode 100644 plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/specific/TypeSafePlcReadRequest.java delete mode 100644 plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/specific/TypeSafePlcReadResponse.java delete mode 100644 plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/specific/TypeSafePlcWriteRequest.java delete mode 100644 plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/specific/TypeSafePlcWriteResponse.java copy plc4j/{protocols/ads/src/main/java/org/apache/plc4x/java/ads/package-info.java => api/src/main/java/org/apache/plc4x/java/api/model/PlcConsumerRegistration.java} (83%) rename plc4j/api/src/main/java/org/apache/plc4x/java/api/model/{Address.java => PlcField.java} (80%) copy plc4j/api/src/main/java/org/apache/plc4x/java/api/{messages/PlcMessage.java => model/PlcSubscriptionHandle.java} (59%) copy plc4j/api/src/main/java/org/apache/plc4x/java/api/types/{ResponseCode.java => PlcClientDatatype.java} (83%) copy plc4j/api/src/main/java/org/apache/plc4x/java/api/types/{ResponseCode.java => PlcResponseCode.java} (90%) copy plc4j/api/src/main/java/org/apache/plc4x/java/api/types/{ResponseCode.java => PlcSubscriptionType.java} (59%) create mode 100644 plc4j/api/src/test/java/org/apache/plc4x/java/api/ImmutabilityTest.java copy plc4j/{protocols/ads/src/test/java/org/apache/plc4x/java/ads/api/commands/types/DeviceTest.java => api/src/test/java/org/apache/plc4x/java/api/messages/PlcProprietaryRequestTest.java} (54%) create mode 100644 plc4j/api/src/test/java/org/apache/plc4x/java/api/messages/PlcProprietaryResponseTest.java create mode 100644 plc4j/api/src/test/java/org/apache/plc4x/java/api/messages/PlcSubscriptionEventTest.java copy plc4j/{protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/util/ByteBufSupplier.java => api/src/test/java/org/apache/plc4x/java/api/messages/PlcSubscriptionRequestTest.java} (78%) copy integrations/apache-camel/src/test/java/org/apache/plc4x/camel/Plc4XConsumerTest.java => plc4j/api/src/test/java/org/apache/plc4x/java/api/messages/PlcSubscriptionResponseTest.java (65%) copy plc4j/api/src/test/java/org/apache/plc4x/java/api/messages/{PlcRequestTest.java => PlcUnsubscriptionRequestTest.java} (50%) copy plc4j/{protocols/ads/src/main/java/org/apache/plc4x/java/ads/api/util/ByteBufSupplier.java => api/src/test/java/org/apache/plc4x/java/api/messages/PlcUnsubscriptionResponseTest.java} (78%) rename plc4j/api/src/test/java/org/apache/plc4x/java/api/messages/mock/{MockAddress.java => MockField.java} (71%) create mode 100644 plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/model/AdsDataType.java copy plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/{api/util/ByteBufSupplier.java => model/AdsField.java} (82%) create mode 100644 plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/model/AdsPlcFieldHandler.java rename plc4j/{api/src/main/java/org/apache/plc4x/java/api/messages/items/ReadRequestItem.java => protocols/ads/src/main/java/org/apache/plc4x/java/ads/model/AdsSubscriptionHandle.java} (52%) rename plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/model/{AdsAddress.java => DirectAdsField.java} (62%) rename plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/model/{SymbolicAdsAddress.java => SymbolicAdsField.java} (54%) delete mode 100644 plc4j/protocols/ads/src/test/java/org/apache/plc4x/java/ads/model/AdsAddressTest.java create mode 100644 plc4j/protocols/ads/src/test/java/org/apache/plc4x/java/ads/model/DirectAdsFieldTest.java create mode 100644 plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/connection/DefaultPlcFieldHandler.java create mode 100644 plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/connection/PlcFieldHandler.java rename integrations/apache-camel/src/main/java/org/apache/plc4x/camel/ResponseItemTypeConverter.java => plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/DefaultPlcProprietaryRequest.java (65%) copy plc4j/protocols/{ads/src/test/java/org/apache/plc4x/java/ads/adslib/Output.java => driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/DefaultPlcProprietaryResponse.java} (52%) create mode 100644 plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/DefaultPlcReadRequest.java create mode 100644 plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/DefaultPlcReadResponse.java create mode 100644 plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/DefaultPlcSubscriptionEvent.java create mode 100644 plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/DefaultPlcSubscriptionRequest.java create mode 100644 plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/DefaultPlcSubscriptionResponse.java create mode 100644 plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/DefaultPlcUnsubscriptionRequest.java copy plc4j/protocols/{ads/src/test/java/org/apache/plc4x/java/ads/adslib/Output.java => driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/DefaultPlcUnsubscriptionResponse.java} (51%) create mode 100644 plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/DefaultPlcWriteRequest.java create mode 100644 plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/DefaultPlcWriteResponse.java copy plc4j/protocols/{ads/src/main/java/org/apache/plc4x/java/ads/api/util/ByteBufSupplier.java => driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/InternalPlcFieldRequest.java} (82%) copy plc4j/protocols/{ads/src/main/java/org/apache/plc4x/java/ads/api/util/ByteBufSupplier.java => driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/InternalPlcFieldResponse.java} (76%) copy plc4j/protocols/{ads/src/main/java/org/apache/plc4x/java/ads/api/util/ByteBufSupplier.java => driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/InternalPlcProprietaryRequest.java} (77%) copy plc4j/protocols/{ads/src/main/java/org/apache/plc4x/java/ads/api/util/ByteBufSupplier.java => driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/InternalPlcProprietaryResponse.java} (70%) copy plc4j/protocols/{ads/src/main/java/org/apache/plc4x/java/ads/api/util/ByteBufSupplier.java => driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/InternalPlcReadRequest.java} (80%) copy plc4j/protocols/{ads/src/main/java/org/apache/plc4x/java/ads/api/util/ByteBufSupplier.java => driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/InternalPlcReadResponse.java} (76%) copy plc4j/protocols/{ads/src/main/java/org/apache/plc4x/java/ads/api/util/LengthSupplier.java => driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/InternalPlcRequest.java} (83%) copy plc4j/protocols/{ads/src/main/java/org/apache/plc4x/java/ads/api/util/ByteBufSupplier.java => driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/InternalPlcResponse.java} (78%) copy plc4j/protocols/{ads/src/main/java/org/apache/plc4x/java/ads/api/util/ByteBufSupplier.java => driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/InternalPlcSubscriptionEvent.java} (80%) copy plc4j/protocols/{ads/src/main/java/org/apache/plc4x/java/ads/api/util/ByteBufSupplier.java => driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/InternalPlcSubscriptionRequest.java} (72%) copy plc4j/protocols/{ads/src/main/java/org/apache/plc4x/java/ads/api/util/ByteBufSupplier.java => driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/InternalPlcSubscriptionResponse.java} (80%) copy plc4j/protocols/{ads/src/test/java/org/apache/plc4x/java/ads/adslib/Output.java => driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/InternalPlcUnsubscriptionRequest.java} (66%) copy plc4j/protocols/{ads/src/main/java/org/apache/plc4x/java/ads/api/util/ByteBufSupplier.java => driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/InternalPlcUnsubscriptionResponse.java} (79%) copy plc4j/protocols/{ads/src/test/java/org/apache/plc4x/java/ads/adslib/Output.java => driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/InternalPlcWriteRequest.java} (68%) copy plc4j/protocols/{ads/src/main/java/org/apache/plc4x/java/ads/api/util/ByteBufSupplier.java => driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/InternalPlcWriteResponse.java} (76%) rename plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/{RawMessage.java => PlcRawMessage.java} (77%) rename plc4j/{api/src/main/java/org/apache/plc4x/java/api => protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base}/messages/PlcRequestContainer.java (54%) create mode 100644 plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/items/DefaultBigDecimalFieldItem.java create mode 100644 plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/items/DefaultBigIntegerFieldItem.java create mode 100644 plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/items/DefaultBooleanFieldItem.java copy plc4j/protocols/{s7/src/main/java/org/apache/plc4x/java/isotp/netty/model/params/ChecksumParameter.java => driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/items/DefaultByteArrayFieldItem.java} (62%) create mode 100644 plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/items/DefaultByteFieldItem.java create mode 100644 plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/items/DefaultDoubleFieldItem.java create mode 100644 plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/items/DefaultFloatFieldItem.java create mode 100644 plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/items/DefaultIntegerFieldItem.java copy plc4j/protocols/{s7/src/main/java/org/apache/plc4x/java/isotp/netty/model/params/DisconnectAdditionalInformationParameter.java => driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/items/DefaultLocalDateFieldItem.java} (58%) create mode 100644 plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/items/DefaultLocalDateTimeFieldItem.java copy plc4j/protocols/{s7/src/main/java/org/apache/plc4x/java/isotp/netty/model/params/DisconnectAdditionalInformationParameter.java => driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/items/DefaultLocalTimeFieldItem.java} (58%) create mode 100644 plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/items/DefaultLongFieldItem.java create mode 100644 plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/items/DefaultShortFieldItem.java copy plc4j/protocols/{s7/src/main/java/org/apache/plc4x/java/isotp/netty/model/params/DisconnectAdditionalInformationParameter.java => driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/items/DefaultStringFieldItem.java} (60%) create mode 100644 plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/items/FieldItem.java create mode 100644 plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/model/DefaultPlcConsumerRegistration.java copy plc4j/protocols/{ads/src/test/java/org/apache/plc4x/java/ads/adslib/Output.java => driver-bases/base/src/main/java/org/apache/plc4x/java/base/model/InternalPlcConsumerRegistration.java} (70%) copy plc4j/protocols/{ads/src/main/java/org/apache/plc4x/java/ads/api/util/ByteBufSupplier.java => driver-bases/base/src/main/java/org/apache/plc4x/java/base/model/InternalPlcSubscriptionHandle.java} (80%) create mode 100644 plc4j/protocols/driver-bases/base/src/test/java/org/apache/plc4x/java/base/messages/PlcRequestContainerTest.java rename plc4j/protocols/{ads/src/test/java/org/apache/plc4x/java/ads/util => driver-bases/test/src/main/java/org/apache/plc4x/java/base/connection/tcp}/TcpHexDumper.java (88%) create mode 100644 plc4j/protocols/driver-bases/test/src/main/java/org/apache/plc4x/java/base/protocol/Plc4XSupportedDataTypes.java rename plc4j/protocols/{ads/src/test/java/org/apache/plc4x/java/ads => driver-bases/test/src/main/java/org/apache/plc4x/java/base}/util/Assert.java (74%) copy plc4j/protocols/{ads/src/main/java/org/apache/plc4x/java/ads/api/util/ByteReadable.java => driver-bases/test/src/main/java/org/apache/plc4x/java/base/util/HexUtil.java} (51%) copy plc4j/protocols/{ads/src/test/java/org/apache/plc4x/java/ads => driver-bases/test/src/main/java/org/apache/plc4x/java/base}/util/Junit5Backport.java (87%) copy plc4j/protocols/{modbus => ethernetip}/pom.xml (66%) copy plc4j/protocols/{s7/src/main/java/org/apache/plc4x/java/s7/S7PlcDriver.java => ethernetip/src/main/java/org/apache/plc4x/java/ethernetip/EtherNetIpPlcDriver.java} (58%) create mode 100644 plc4j/protocols/ethernetip/src/main/java/org/apache/plc4x/java/ethernetip/connection/BaseEtherNetIpPlcConnection.java create mode 100644 plc4j/protocols/ethernetip/src/main/java/org/apache/plc4x/java/ethernetip/connection/EtherNetIpTcpPlcConnection.java create mode 100644 plc4j/protocols/ethernetip/src/main/java/org/apache/plc4x/java/ethernetip/model/EtherNetIpField.java create mode 100644 plc4j/protocols/ethernetip/src/main/java/org/apache/plc4x/java/ethernetip/netty/EnipCodec.java create mode 100644 plc4j/protocols/ethernetip/src/main/java/org/apache/plc4x/java/ethernetip/netty/Plc4XEtherNetIpProtocol.java copy plc4j/{api/src/main/java/org/apache/plc4x/java/api/authentication/PlcAuthentication.java => protocols/ethernetip/src/main/java/org/apache/plc4x/java/ethernetip/netty/events/EtherNetIpConnectedEvent.java} (88%) create mode 100644 plc4j/protocols/ethernetip/src/main/java/org/apache/plc4x/java/ethernetip/netty/util/EnipPlcFieldHandler.java copy plc4j/{core/src/test => protocols/ethernetip/src/main}/resources/META-INF/services/org.apache.plc4x.java.api.PlcDriver (93%) create mode 100644 plc4j/protocols/ethernetip/src/site/asciidoc/index.adoc create mode 100644 plc4j/protocols/ethernetip/src/site/resources/img/WAGO_enip_exporer.png create mode 100644 plc4j/protocols/ethernetip/src/test/java/org/apache/plc4x/java/ethernetip/EnipTest.java copy plc4j/protocols/{modbus/src/test/java/org/apache/plc4x/java/modbus/ManualPlc4XModbusTest.java => ethernetip/src/test/java/org/apache/plc4x/java/ethernetip/ManualPlc4XEtherNetIpTest.java} (51%) create mode 100644 plc4j/protocols/ethernetip/src/test/resources/read-attribute.pcapng rename plc4j/protocols/{ads/src/test/java/org/apache/plc4x/java/ads/util/Junit5Backport.java => modbus/src/main/java/org/apache/plc4x/java/modbus/connection/ModbusConnectionFactory.java} (53%) copy plc4j/protocols/modbus/src/main/java/org/apache/plc4x/java/modbus/model/{ReadInputRegistersModbusAddress.java => CoilModbusField.java} (60%) rename plc4j/protocols/modbus/src/main/java/org/apache/plc4x/java/modbus/model/{MaskWriteRegisterModbusAddress.java => MaskWriteRegisterModbusField.java} (62%) rename plc4j/protocols/modbus/src/main/java/org/apache/plc4x/java/modbus/model/{ModbusAddress.java => ModbusField.java} (68%) rename plc4j/protocols/modbus/src/main/java/org/apache/plc4x/java/modbus/model/{CoilAddress.java => ReadDiscreteInputsModbusField.java} (58%) rename plc4j/protocols/modbus/src/main/java/org/apache/plc4x/java/modbus/model/{ReadDiscreteInputsModbusAddress.java => ReadHoldingRegistersModbusField.java} (57%) rename plc4j/protocols/modbus/src/main/java/org/apache/plc4x/java/modbus/model/{ReadHoldingRegistersModbusAddress.java => ReadInputRegistersModbusField.java} (58%) delete mode 100644 plc4j/protocols/modbus/src/main/java/org/apache/plc4x/java/modbus/model/RegisterAddress.java rename plc4j/protocols/modbus/src/main/java/org/apache/plc4x/java/modbus/model/{ReadInputRegistersModbusAddress.java => RegisterModbusField.java} (57%) create mode 100644 plc4j/protocols/modbus/src/main/java/org/apache/plc4x/java/modbus/util/ModbusPlcFieldHandler.java create mode 100644 plc4j/protocols/modbus/src/test/java/org/apache/plc4x/java/modbus/ModbusPlcDriverTest.java create mode 100644 plc4j/protocols/modbus/src/test/java/org/apache/plc4x/java/modbus/connection/BaseModbusPlcConnectionTest.java create mode 100644 plc4j/protocols/modbus/src/test/java/org/apache/plc4x/java/modbus/connection/ModbusConnectionFactoryTest.java copy plc4j/protocols/{ads/src/test/java/org/apache/plc4x/java/ads/connection/AdsSerialPlcConnectionTest.java => modbus/src/test/java/org/apache/plc4x/java/modbus/connection/ModbusSerialPlcConnectionTest.java} (65%) create mode 100644 plc4j/protocols/modbus/src/test/java/org/apache/plc4x/java/modbus/connection/ModbusTcpPlcConnectionTests.java copy plc4j/protocols/{ads/src/test/java/org/apache/plc4x/java/ads/adslib/Output.java => s7/src/main/java/org/apache/plc4x/java/s7/messages/items/S7BigIntegerFieldItem.java} (53%) create mode 100644 plc4j/protocols/s7/src/main/java/org/apache/plc4x/java/s7/messages/items/S7BooleanFieldItem.java create mode 100644 plc4j/protocols/s7/src/main/java/org/apache/plc4x/java/s7/messages/items/S7FloatingPointFieldItem.java create mode 100644 plc4j/protocols/s7/src/main/java/org/apache/plc4x/java/s7/messages/items/S7LocalDateTimeFieldItem.java create mode 100644 plc4j/protocols/s7/src/main/java/org/apache/plc4x/java/s7/messages/items/S7LongFieldItem.java create mode 100644 plc4j/protocols/s7/src/main/java/org/apache/plc4x/java/s7/messages/items/S7StringFieldItem.java delete mode 100644 plc4j/protocols/s7/src/main/java/org/apache/plc4x/java/s7/model/S7Address.java delete mode 100644 plc4j/protocols/s7/src/main/java/org/apache/plc4x/java/s7/model/S7BitAddress.java delete mode 100644 plc4j/protocols/s7/src/main/java/org/apache/plc4x/java/s7/model/S7DataBlockAddress.java create mode 100644 plc4j/protocols/s7/src/main/java/org/apache/plc4x/java/s7/model/S7Field.java copy plc4j/protocols/s7/src/main/java/org/apache/plc4x/java/s7/netty/events/{S7ConnectedEvent.java => S7IdentifiedEvent.java} (96%) copy plc4j/protocols/s7/src/main/java/org/apache/plc4x/java/s7/netty/model/params/{CpuServicesParameter.java => CpuServicesRequestParameter.java} (63%) create mode 100644 plc4j/protocols/s7/src/main/java/org/apache/plc4x/java/s7/netty/model/params/CpuServicesResponseParameter.java create mode 100644 plc4j/protocols/s7/src/main/java/org/apache/plc4x/java/s7/netty/model/payloads/CpuServicesPayload.java copy plc4j/protocols/{driver-bases/base/src/main/java/org/apache/plc4x/java/base/events/ConnectedEvent.java => s7/src/main/java/org/apache/plc4x/java/s7/netty/model/payloads/ssls/SslDataRecord.java} (85%) create mode 100644 plc4j/protocols/s7/src/main/java/org/apache/plc4x/java/s7/netty/model/payloads/ssls/SslModuleIdentificationDataRecord.java copy plc4j/protocols/s7/src/main/java/org/apache/plc4x/java/s7/netty/model/types/{DataTransportErrorCode.java => CpuServicesParameterFunctionGroup.java} (59%) copy plc4j/protocols/s7/src/main/java/org/apache/plc4x/java/s7/netty/model/types/{DataTransportErrorCode.java => CpuServicesParameterSubFunctionGroup.java} (59%) create mode 100644 plc4j/protocols/s7/src/main/java/org/apache/plc4x/java/s7/netty/model/types/SslId.java create mode 100644 plc4j/protocols/s7/src/main/java/org/apache/plc4x/java/s7/netty/util/S7PlcFieldHandler.java rename plc4j/{api/src/main/java/org/apache/plc4x/java/api/types/ResponseCode.java => protocols/s7/src/main/java/org/apache/plc4x/java/s7/types/S7ControllerType.java} (85%) delete mode 100644 plc4j/protocols/s7/src/test/java/org/apache/plc4x/java/s7/S7PlcReaderSample.java create mode 100644 plc4j/protocols/s7/src/test/java/org/apache/plc4x/java/s7/issues/PLC4X47Test.java delete mode 100644 plc4j/protocols/s7/src/test/java/org/apache/plc4x/java/s7/model/S7AddressTests.java create mode 100644 plc4j/protocols/s7/src/test/java/org/apache/plc4x/java/s7/model/S7FieldTests.java create mode 100644 plc4j/protocols/s7/src/test/java/org/apache/plc4x/java/s7/netty/util/S7PlcFieldHandlerTest.java copy plc4j/protocols/s7/src/test/java/org/apache/plc4x/java/{isotp/netty/model/params/TsapParameterTests.java => s7/types/S7DataTypeTest.java} (51%) create mode 100644 plc4j/protocols/s7/src/test/resources/org/apache/plc4x/java/s7/connection/s7-cpu-functions-response.pcap copy plc4j/protocols/{driver-bases/tcp => test}/pom.xml (64%) create mode 100644 plc4j/protocols/test/src/main/java/org/apache/plc4x/java/test/TestConnection.java create mode 100644 plc4j/protocols/test/src/main/java/org/apache/plc4x/java/test/TestDevice.java create mode 100644 plc4j/protocols/test/src/main/java/org/apache/plc4x/java/test/TestField.java create mode 100644 plc4j/protocols/test/src/main/java/org/apache/plc4x/java/test/TestFieldHandler.java copy plc4j/protocols/{ads/src/test/java/org/apache/plc4x/java/ads/adslib/Output.java => test/src/main/java/org/apache/plc4x/java/test/TestFieldItem.java} (69%) copy plc4j/{core/src/test/java/org/apache/plc4x/java/mock/MockDriver.java => protocols/test/src/main/java/org/apache/plc4x/java/test/TestPlcDriver.java} (58%) copy plc4j/protocols/{ads/src/main/java/org/apache/plc4x/java/ads/api/tcp/types/package-info.java => test/src/main/java/org/apache/plc4x/java/test/TestType.java} (83%) copy plc4j/{core/src/test => protocols/test/src/main}/resources/META-INF/services/org.apache.plc4x.java.api.PlcDriver (95%) create mode 100644 plc4j/protocols/test/src/test/java/org/apache/plc4x/java/test/TestDeviceTest.java create mode 100644 src/site/asciidoc/developers/release.adoc copy src/site/asciidoc/{users/gettingstarted.adoc => protocols/ads/index.adoc} (95%) create mode 100644 src/site/asciidoc/protocols/delta-v/index.adoc create mode 100644 src/site/asciidoc/protocols/delta-v/reverse-engineering.adoc copy src/site/asciidoc/protocols/{ => ethernet-ip}/index.adoc (75%) copy plc4j/api/src/main/java/org/apache/plc4x/java/api/authentication/PlcAuthentication.java => src/site/resources/css/bootstrap-responsive.min.css (87%) delete mode 100644 src/site/resources/img/S7300.png create mode 100644 src/site/resources/img/apache_kafka_logo.png create mode 100644 src/site/resources/img/apache_nifi_logo.svg create mode 100644 src/site/resources/img/community-contribute-fork.png create mode 100644 src/site/resources/img/iot-lab.jpg delete mode 100644 src/site/template/maven-site.vm create mode 100755 tools/check_sigs.sh create mode 100755 tools/common.sh create mode 100755 tools/download_staged_release.sh