You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@plc4x.apache.org by cd...@apache.org on 2020/05/25 08:24:50 UTC

[plc4x] branch master updated (561845c -> 0c18c7c)

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

cdutz pushed a change to branch master
in repository https://gitbox.apache.org/repos/asf/plc4x.git.


    from 561845c  Resolved Merge commits
     add ae46fff  Merge branches 'PLC4X-157OPC-UADisablediscovery' and 'develop' of https://github.com/apache/plc4x into develop
     add b0c5263  [maven-release-plugin] prepare for next development iteration
     add 8321e91  - Removed all old protocol modules (at least from the build)
     add ff91b05  - Continued porting the S7 driver to fully generated drivers.
     add 0f668bb  Introduced Complex Types
     add 8d5dccf  Added getKeys Method
     add 563c418  [plc4j-api] change values to package private
     add 6aff309  Refactored License Header; Improved PlcValues
     add 5c56151  [plc4j-api] added basic test for plc values
     add dcd2108  Refactored Interface out of Plc4XProtocol
     add 9abbf6c  Further Refactoring
     add 3993a3e  - Extracted the static functions of the generated code to a StaticHelper class - Refactored the GeneratedDriverByteToMessageCodec to handle the size calculation in case of multiple packets being received - Fixed the size calculation for sub-byte payloads in S7
     add df0d7cb  - Made the example terminate after finishing the requests.
     add 67a86d4  Removed ChannelHandler
     add dab9308  fixed retrieval of lists
     add 90dc156  Created plc4j-spi and moved driver-protocol-base classes there.
     add fbd3c80  Fixed Dependency Issues
     add 4e01a2a  Moved Transports, added AB ETH
     add e1e7d6b  Refactored PLC4J-Transports (and TCP)
     add 42506b8  Imported all Transports
     add 0650584  Added Utils
     add e949204  readded ads after refactoring
     add 1f6c52f  readded opcua after refactoring
     add 1f3763f  Added Modbus
     add 3e1d215  readded ethernet-ip after refactoring
     add 4877747  readded benchmarks after refactoring
     add 51d8382  - Updated the build after the moving of packages
     add 5b11e35  - Updated the build after the moving of packages
     add 8dbed5c  - Updated the build after the moving of packages
     add f5d9ab9  added send context to conversation context
     add 726f3a4  - Enabled and fixed the integration modules
     add 596265a  implemented DefaultSendRequestContext
     add 1214920  implemented DefaultSendRequestContext test
     add c1f0571  Implement first Version with Automatic response
     add 164e9ab  Fixed tests
     add cfc21ba  Added Request Response pattern with new API for S7 Driver
     add 2257702  Improved Logging of Handler Regisgtrations
     add 877285f  cleanup
     add f82e263  cleanup 2
     add de8c857  migrated read var
     add e40563b  make decode optional as you can handle the response in the send now
     add e733915  Added only method
     add 9385756  - Made the examples work again.
     add 62ca452  use new unwrap convenient method
     add 481ca9d  make onTimeoutConsumer optional by falling back to a NOOP consumer
     add 852522e  Implemented Response time
     add 92fb5fb  - Made the examples work again.
     add f9c67e3  potential fix for mixed lists
     add 44ed0bd  Fixed PlcList implementation
     add d53a642  Minor Refactorings
     add 5ffb700  finetuned Plc4xProtocolBase.java
     add e1223ff  Added Experimental Annotation. - Implemented default methods for read, write, subscribe, ... - Direct communication from connection to protocol
     add d04359b  Introduced generic configuration
     add a55a9ec  Minor refactorings
     add d57f65f  - Continued working on the new S7 driver: -- Moved the manual encoding/decoding of elements into a second mspec generated parser - General refactoring: -- renamed "deserialization" into "parse" in the mspec context -- renamed "serialization" into "serialize" in the mspec context -- made the "manual" fields actually work - Fixed a broken SPI test
     add bc88ec7  - Continued working on the new S7 driver: -- Finished porting the code for reading and writing data via S7
     add f8ec041  - Cleaned up a bit in the new driver.
     add 4d34052  - Continued working on the drivers ...
     add e7064e7  - Fixed a bug in the floating point parsing.
     add 32e023b  Refactoring towards Generic Connections: - Merged "Generation" Classes from Module 'plc4j-utils-driver-base-java' to 'plc4j-spi' into 'org.apache.plc4x.java.spi.generation' (was 'org.apache.plc4x.java.utils' before) - Introduced new Class GenericNettyPlcConnection where new Drivers can be based on (contains ChannelHandler already and should be used in the Future, then NettyPlcConnection will be deprecated) - Removed module  'plc4j-utils-driver-base-java' everywhere - Cha [...]
     add 512e93b  Refactoring towards Generic Connections Part 2: - Added Another Method to ChannelFactory interface. Ported S7-NG and KNX to the new ChannelFactory Method. - Extended Connection Parser to read all Parts of the Connection String and use it in KNX and S7-NG.
     add 3b9bc91  Refactoring towards Generic Connections Part 3: - Moved Common Code from TCP and UDP to abstract NettyChannelFactory. - Removed unnecessary dependencies from both Transport Modules (they are more focused on their specifics of the Transport now)
     add 74ef223  Refactoring towards Generic Connections Part 4: - S7Driver is now subclassing the new Generic Driver which contains only getters for important Properties - Introduced new Stack Configurer to automatically generate the "xxxMessage" Classes (using Reflection) - Allowed Transport Layer to get Access to Connection String Properties - Removed the "PlcByteToMessageCodec" Interface and implemented ByteToMessageCodec directly on all classes to avoid confusion with interfaces (th [...]
     add 3a132d1  Refactoring towards Generic Connections Part 5: - Extended ConnectionParser to support most of the generic types (boolean, String, int, double). - Introduced InstanceFactory to instantiate Classes (and Auto Inject Configuration Classes from Query Parameters, if existing) - Migrated Everything to InstanceFactory, e.g. many Classes now take a Class Object and no Instance - Migrated all existing Stuff to keep compatibility
     add 00e948f  Minor fixes which came up with knx testing.
     add d6ec2e0  Minor fixes which came up with knx testing (2).
     add ab0d3df  Added Initialize Method for ChannelFactory and Implemented Datagram Unpacking for UDP.
     add e281828  Added Close Handling for Connections.
     add 3152f51  - Added support for "dataIo" types in MSpec - Made the code generator be a little more verbose - Added support for temporal fields - Added support for string fields
     add 08f29fb  - Extended the PlcValue types and added some missing ones for temporal types. - Minor cleanups - Added support for reading and writing string data into the Read and WriteBuffers
     add cd39911  - Merged the data-specs and the protocol specs - Updated the specs to use the new string type reference
     add 1b665db  - Bumped some dependency versions (initially to support Java 13 in some of them)
     add 2c7c80a  - Make additional count array data available (Helping making the padding in s7 more correct)
     add 4b8fa7d  - Cleanup in the knx driver
     add 4e3ea4d  - Cleaning up in the KNX ETS code
     add 250e860  - Continued implementing the new S7 driver
     add e214f5b  - Major refactoring FieldItems -> PlcValue
     add bc867e5  - Made sure super.eventTriggered is not executed in case of ConnectEvent and DisconnectEvent
     add f76e9e1  - Enabled the code for writing data
     add 60e8904  - Updated the modules activated by the "with-proxies" profile.next-gen-core - Generally renamed "fieldValue" with "plcValue"
     add d609ee1  - Addressing some SonarCloud bugs
     add 7649ccb  - Addressing some SonarCloud bugs
     add c088940  - Addressing some SonarCloud bugs
     add 8a3576b  Implemented Generic RequestTransactionManager and implemented it in S7 Protocol Logic.
     add 0cbf247  - Fixed an issue in the S7 protocol initializing the transaction manager with the initial values and not the negotiated ones. - Added some documentation to the driver.
     add 3838e0d  - Made the RequestTransactionManager handle changes of the numberOfConcurrentRequests.
     add af91066  Merge branches 'develop' and 'next-gen-core' of https://gitbox.apache.org/repos/asf/plc4x into next-gen-core
     add 54a4b90  - First steps in porting the S7MessageProcessor to the new generation S7 driver.
     add aa76159  - Continued working on the futures for handling the responses.
     add d58ffcb  Did a bit of refactoring of the read method to read and read0
     add 75ffd12  - renamed the read0 into readInternal
     add 2f98890  Merge branches 'develop' and 'next-gen-core' of https://gitbox.apache.org/repos/asf/plc4x into next-gen-core
     add e991c9c  Mostly formatting and replacing "paket" with "packet" ;-)
     add 94bba6c  PLC4X-163 - Netty OutOfDirectMemoryError - Fixed two bugs in the detection if more bytes are available and in the way the number of elements in primitive arrays are detected.
     add 17c3c12  Made the template generate a JSon annotation not only for abstract types.
     add 093337a  Huge refactoring and cleanup.
     add fbf5aed  - Make the S7 driver actually work ...
     add 478da6c  - Get UDP working
     add 4f78772  - Make the KNXnet/IP driver actually work ...
     add baf44d9  - Made the "endianess" configurable - Inverted the way "big-endian"/"little-endian" was treated in the ReadBuffer and WriteBuffer - Fixed things this inversion broke
     add 664bda1  - Migrated the Ab-Eth protocol to the new structure ...
     add 3c15b7c  - Woked on the pcap transport an the integration of that in the bacnetip protocol implementation.
     add 96912f4  - Split up utils into utils (Stuff used intenally) and tools (Stuff intended for both internal and external usage)
     add a22d52f  - Bumped the verions to 0.7.0-SNAPSHOT - Enhanced the build check script to detect Docker and if it's running - Fixed some pom-related issues after updating the versions and commenting out of a lot of modules (Old drivers were referenced all over the place)
     add 7e01b5d  - Renamed the s7ng back to s7
     add e96f5f9  Merge branches 'develop' and 'next-gen-core-2' of https://gitbox.apache.org/repos/asf/plc4x into develop
     add 1e6df75  Updated the prerequisiteCheck to only do the docker-check if the "with-docker" profile is enabled.
     add fe571cf  Changed the way the property is set
     add 1ca1c6c  Bumped the maven-scm artifactes to hopefully avoid problems on jenkins.
     add caea78c  - Downgraded to apache parent 21
     add 0d39e95  - Made the jenkins build only build the site of the parent module
     add b645a39  - Disabled the clean-site.sh execution as this would result in errors with disabled sub-modules.
     add 98f57ab  - Try to update on apache parent 22 again (With suggestions from the maven slack channel)
     add 65f634f  - Updated the jenkins.pom as this seems to be what's used to publish.
     add fc3f8e8  - Cleaned up the parent pom after fixing the site deployment issue.
     add 2240a97  - Updated the code generator to provide a local 'checksumRawData' field for checksum fields containing a byte[] with all the bytes of the current type read so far - Fixed a bug in the ReadBuffer getPos implementation - Moved the types for reading and writing into the plc4x package namespace
     add b208334  - Made the ProtocolTestsuiteRunner ignore differences in comments
     add e118be2  - Implemented an expectRequest functionality in the ConversationContext (Untested)
     add edd376b  - Fixed the expectRequest feature.
     add 7f9e201  - Prevent the discrimintator expressions from being automatically escaped.
     add 0cbe4f4  - Made it possible to define types without any fields.
     add 3842331  - Started implementing the Modbus protocol.
     add 55549dc  - Added a method ARRAY_SIZE_IN_BYTES to the Static helper, which can calculate the size in bytes for array fields with complex type content.develop - Fixed a naming typo in the serial transport modules artifactId - Adjusted the java language template to make it possible to address the discriminator fields directly. - Refactored the Modbus spec to correctly address the discriminator values directly instead of using one "discriminator" field. - Added the skeleton for the M [...]
     add 82a6300  - Extended the protocol testsuite to support static parser-arguments - Fixed a problem with correctly casting the numeric discriminator values when serializing
     add 5f823c4  - Extended the generated-driver to allow providing of additional static parser parameters.
     add 8264a83  - Extended the generated-driver to allow providing of additional static parser parameters.
     add 1d65162  - Extended the generated-driver to allow providing of additional static parser parameters.
     add e22a83c  - Continued working on the Modbus driver
     add 7761653  - Switched the KNX Driver to support real subscriptions.
     add 8811dbf  - Renamed and rearranged the output fields.
     add 5d72fe4  - Renamed and rearranged the output fields. - Cleaned up some obsolete packages in the sandbox.
     add a2e5921  - moved the plc4j pages from the plc4j module into the parent - removed the "modules" section from the website
     add bf560c4  - Moved the KNXnet/IP driver out of the sandbox
     add 9214a2e  - Fixed a bug in reading of unsigned ints in little-endian mode
     add a9ebc4c  - Added a toPlcValue to the Message interface - Made the code generation implement the additional method - Refactored the code generation to have the IO classes implement MessageIO or MessageInput - Renamed the static parse method staticParse and the static serialize staticSerialize - Updated the rest of the project to use the updated method names - Updated the GeneratedProtocolMessageCodec to use the now enhanced IO classes - Got rid of the ReflectionBasedIo as well as  [...]
     add d967e9f  - Updated the list of tests that seem to be occasionally a little flaky and causing the build to be marked unstable
     add 40a69be  - Switched to using the new plc4x site skin - Restructured a lot of content - Added a lot of empty place-holder pages
     add 05586c2  - Switched to PNG images
     add ccfaef9  - Changed the Apache links to https
     add e9f1cdf  - Thanks to Myrle translated things from a sad German English to a real English page
     add 98cab66  - Fixed even more things Myrle found ;-)
     add 046a557  - Added empty pages for the scraper and connection-pool components - Added more content linking to the protocols and tools from the "User" start-page.
     add 9c576fc  - Added the processing of the plc4x-doap.rdf file back again - Added missing versions to the plc4x-doap.rdf file
     add 9a40ab0  - Fixed the regular expression in the TcpTransport
     add ae0766c  description update for Eclipse Ditto
     add e8b7fa2  Update apache-calcite.adoc
     add 2135299  Update apache-kafka.adoc
     add c8c07bb  - Created a IEE 764 standard compliant float parsing code - Created a helper for KNX that uses KNX's special half-precision floating-point encoding - Fixed the GeneratedDriverByteToMessageCodec to only add a maximum of 16 messages to the out queue - Fixed the replay speed of the PcapSocketChannel - Changed the used type for fields referencing dataIo types to PlcValue - Added support for Abstract types
     add 88636d4  - Updated Dominik's design proposal for the start page.
     add 0f7ed02  Update index.adoc
     add c68a185  - Removed the "commercial" from the title (As support needs don't have to be commercial ones)
     add 11a62f2  - Fixed some typos.
     add f7da425  Improve carousel for small and medium screen sizes
     add 83a1d34  Fix some typos on main landing page
     add ee0ef6f  Fix some links on user index page
     add 49c96d9  Merge pull request #114 from dominikriemer/develop
     add b1a9b64  - Fixed a bug reading one bit too little, causing the entire stream to be offset by one bit.
     add fd256f3  - Fixing another little error in the text
     add f689ba8  - Continued working on the BACnet/IP driver (Enrichment of datastreams with data from EDE files)
     add 3d5ef14  Merge remote-tracking branch 'origin/develop' into develop
     add 208e1f4  - Added an example wiring data to InfluxDB using PLC4X' subscription API - Fine-tuned the BACnet driver
     add 6984ce1  - Created a README to explain how to use the Example
     add 3cd9d99  Merge remote-tracking branch 'origin/develop' into develop
     add e51558c  [fix] changed OPC UA to new structure of refactoring
     add 7257d14  [added] added first Milo ExampleServer inside of the manual tests
     add 7702f91  [added] added test case for reading a full set of variables
     add d45f748  [fix] changed write of opc variant and included cast from BigInteger
     add fccc191  [fix] exluded milo example server from test
     add e5443cd  [fix] exluded milo example server from test
     add 43ed841  Repair commit from Matthias merges
     add 2a8dccc  - Changed the way the nanosecond sleep is done to a less CPU intense way.
     add 7f8e033  - Implemented an import for directories of EDE files - Implemented imports for the EDE file type versions 2 and 4
     add 4010073  - Made the PoolKeyFactory compatible with the new S7 driver.
     add 34cb557  - Used the regular expression from the tcp transport instead of the original one.develop - Updated the test-case to match the changed url format
     add 2406877  - Added a timestamp to the messages of the kafka connect adapter - Added a example for using Kafka Connect PLC4X Source and a Kafka Connect Elasticsearch Sink - Bumped the IoTDB version of the iotdb example to 0.9.1 - Bumped the elasticsearch version to the latest 7.5.2
     add ff016cc  PLC4X-158 Add Warning if Scraper is not used with Pooled Driver Manager.
     add 0ca579c  [PLC4X-168] Shorter S7 Field Syntax
     add 9034cb7  Hardened "flanky" Test in Jenkins.
     add a22d0da  - Implemented the functionality to subscribe to individual group addresses and address ranges
     add 0bedb47  PLC4X-174 Adjust restrictive regular expression.
     add e9f2584  - Refactored the user section index.html - Split up the images into subdirectories
     add 638ec0f  - Added first protocol logos
     add dd26cb3  - Updated the RELEASE_NOTES
     add aad1829  - Fixed a display problem on the release-documentation pages. - Updated the build to now use the auto-included maven properties in the generated site.
     add 8856cc2  - Fixed the links to the tools components.
     add 6d4a4d7  [DOCU] Added missing release profile to release documentation.
     add c032ff1  [DOCU] Added missing release profile to release documentation.
     add 4958efd  - Introduced a new optional "slaveId" parameter to the modbus driver
     add 8a25247  Update license headers of StreamPipes integration modules after StreamPipes transition to ASF
     add bf7d038  - Removed an unneeded mention of Milo project
     add b15858b  - Added documentation on validating releases - Added an automatically calculated latest released version property - Fixed wrong data in our DOAP fle
     add 06d77df  - Got the variable replacement working in code blocks.
     add dd86714  - Continued cleaning up the structure of the develop section
     add b4e964c  - Working on some more documentation
     add 7c00206  - Re-Enabled the Interop as well as the plc4py module
     add 160d409  - Structural updates - Fixed incorrect information
     add 5703de1  - Split up the preparation guides into one guide per operating system.
     add 53b1d49  - Got the new Modbus driver to actually do something.
     add d85f8c8  - Minor page updates
     add 87682d4  HOW TO VERIFY DOWNLOADED FILES
     add a7b879b  - Implemented an optimizer component for the Modbus driver that automatically splits up multi-field requests into mutltiple sub-requests and merges them back together.
     add e03f8fd  Update validation.adoc
     add d06b1de  - Refactored the ModbusOptimizer into something more generic. --  Now the ModbusOptimizer is renamed to SingleFieldOptimizer and located in the SPI as this is probably a very generic optimizer and is probably needed in other protocols too.develop - Moved the RequestTransactionManager into a different package as it doesn't really belong into the optimizer package (not sure it belongs into a transaction package either ... I think we should rename the component itself as we [...]
     add eaca853  - Implemented the writing of coils and registers in modbus
     add de7ff28  - Added a tutorial on using PLC4X with a simulated Modbus device using ModbusPal
     add a811636  - Disabled the abortTransactionFromExternally test as this was continuously failing the build on Jenkins
     add 699e493  - Fixed a bug reported by SonarCloud
     add e1dc816  - Addressed some major SonarCloud issues.
     add 70ab779  [fix] ported to new base version
     add 5aa8469  - Moved the S7 and the Modbus drivers out of the sandbox and deleted the old versions
     add 685e746  - Added some checklists to the release and validation documentation
     add f94c231  - Removed tabs from the email templates
     add 7f94c58  Merge branch 'develop' into opcua-integration
     add 647d298  Merge pull request #120 from apache/opcua-integration
     add 069e910  - Removed tabs from the email templates
     add f6c8d1c  - Re-enabled the OPC-UA driver in the integrations and the examples
     add 740c975  - Restored the hello world example
     add f8e019f  - Implemented the automatic splitting of s7 requests (read and write)
     add 856085a  - Fixed the image path for the release documentation
     add 6e56f66  - SonarCloud suggested fixes
     add b14e06f  resolve issues round running on linux platforms
     add faf22ac  Merge pull request #121 from ottobackwards/tools-xplat
     add a2ccb8e  - Renamed the test utils and schemas in preparation for the new protocol test tools - Added some documentation on writing serializer and parser tests
     add 925937e  - Added support for S7MessageReplies without Data - Added first classes for the driver testsuite runners - Added to the Message interface a getMessageIO method (And updated the code generation) With this a pojo can provide direct access to the IO module to serialize it.
     add 29a956a  - Make the prerequisiteCheck.groovy work if an executed binary doesn't exist at all.
     add bf1249a  Fix typo he -> we
     add 0c699c5  Merge pull request #126 from nuclearpinguin/docs/typo-readme
     add dbad68f  Update link for PLC4J in README
     add c959a19  Merge pull request #125 from nuclearpinguin/docs/fix-plc4j-link
     add 288fc15  - Fixed a problem only occurring when trying to configure something that is not configurable
     add 954cca0  - Added an option to customize the pipeline on a per-driver base
     add ff98dce  - Implemented the writeString method in WriteBuffer
     add 4683249  - Added some more tests and important refactoring in the s7 type names (S7MessageResponse is now S7MessageResponseData and there is a new S7MessageResponse for responses without data such as errors)
     add f266f48  Use existing base image in Dockerfile
     add cf67ee9  Merge pull request #123 from nuclearpinguin/update-dockerfile
     add 1e7d143  - Added a check for the existence of cmake - Made sure Docker installs clang and cmake - Disabled the "with-cpp" profile in the Docker build
     add d04ee68  - Removed any reference to jqassistant
     add d1b1f88  - Added a .htaccess file to forward all traffic to https (hope this works)
     add 49c917e  Change (P)PMC to PMC on team page (#122)
     add 6bc939d  - Added missing header to htaccess file
     add bdf10cc  - Made the ConfigurationFactory check the generic type before injecting the configuration
     add db05160  - Made it possible to override the await-setup-complete setting by System proptery
     add e93cbc8  - Fixed a typo in the filename of the driver testsuite for s7
     add 4b65179  - Worked on getting the test-channel to actually work - Implemented a first somewhat working version of the driver-testsuite execution code
     add b822a45  - Fixed a wrong default endianess problem n the WriteBuffer
     add 3905652  - Continued working on the driver testsuite    - Got the PLC io side working    - Got the sending of requests side working    - TODO: Finish the processing and validation of responses
     add f821ccb  - Some further updates on the driver feature/driver-testsuite -- Renamed the xml constants (hopefully more intuitive) -- Streamlined the DriverTestsuiteRunner code
     add 7b556a1  Refactor PlcDriverManager as context manager
     add 44f0ebc  Merge pull request #124 from nuclearpinguin/feature/plc4py
     add 986fab3  - Implemented a tool to replay wireshark dumps
     add 5403b89  - Fixed the `loop` feature - Added site documentation - Fixed broken links and duplicates in the tools section of the site
     add b7b2967  - Ignored one missing dependency
     add 7db7c76  - Finished documenting using RAT for validating releases
     add 46b55f6  - Fixed a bug in the encoding of single item values
     add e90f590  - Made the KNX more robust against NPEs
     add d8285fb  - Refactored the pcap-replay and the raw-socket to use a shared base - Renamed the pcap-socket module to pcap-replay
     add 3c52aad  - Updated the NiFi version in the NiFi Integration - Made the KNXNetIP Driver a little more robust
     add 491435f  - Updated the KNX driver to be a passive mode driver
     add 3c9d732  - Fixed some dependency problems
     add 976d77d  Updated DOAP Site with Release 0.6.0.
     add 5d9fed7  Added Release 0.6.0 to the download page
     add 635cdc2  Fixed Download Page (0.5.0 / 0.6.0).
     add d726147  [fix] Transfer bug fixes from rel/0.6 to 0.7+ which includes correct OPC UA field address matching and connection string parameter recognition
     add 3f68dfa  Merge pull request #131 from apache/bugfix/OPCUA-transfer-from-0-6
     add 7d9a58a  - Removed main method from Ets5Parser
     add 799e594  - Fixed a typo
     add 8f96bcd  - Fixed a typo
     add c262f13  - Fixed some broken links
     add cb707c7  - Fixed some broken links
     add c612281  - Fixed a lot of broken links
     add 103b45b  - Added a new page listing up a lot of slides, videos and blog posts on plc4x
     add 5c32c9d  - Added a "getPlcValue" method to the PlcReadResponse
     add 9e6a786  - Added a config option to the pcap replay channel to allow looping of the replay.
     add 6ba8615  - Added documentation on writing and subscribing to the getting started section
     add 0e683ff  - Added missing names for the S7 connection string options
     add 59867a1  - Started adding documentation for transports, protocols and general concepts
     add c683afa  - Added a description of the connection string options part
     add 65fae08  Update general-concepts.adoc
     add 6f78958  - Added documentation for S7 resource address strings
     add 2e444b4  - Added the missing documentation for the other transports
     add 052b111  - Added information to which S7 device supports which datatypes
     add 0511f19  - Renamed the file for the serial transport documentation
     add 84696f3  - Fixed a broken link
     add a3b28b7  - Removed field types which are not explicitly specified in the modbus spec - Decreased the timeout back to one second
     add 7f988fd  - Added the documentation for the Modbus protocol
     add f0dd5f5  - Added a PacketSizeEstimator for the AbETH protocol.
     add c814282  added riot.community blog post
     add 8aae234  Update blogs-videos-and-slides.adoc
     add db74d11  - Changed the generated code to use getSizeInBits and keep getSizeInBytes as a convenience method (Needed if data types are not byte aligned)
     add 96da9fa  - Added the value range check also to single item requests
     add e73e7c3  - Made the serial chanel configurable (baud-rate, data-bits, stop-bits, parity)
     add 538011c  - First implementation of a Firmata protocol driver able to subscribe to digital values.
     add 9407622  - Fixed the digital input to allow reading of all digital pins up to pin 13 - Extended the digital field address syntax to allow specifying a port as "PULLUP" type
     add afbb0fe  - Added a documentation page for the firmata driver
     add e52774a  - Added the analog input subscription functionality
     add 0d9eb89  - Changed the GeneratedDriverByteToMessageCodec to also call the corrupt package consumer if something goes wrong in the packet size estimation.
     add cbe5e28  - Made the Firmata driver more robust against situation where we are connecting and the board is still sending data from a previous connection.
     add 196b4e5  - Completely converted the project to use JUnit5 - Fixed the JUnit5 integration in surefire and failsafe - Bumped the Camel version to 3.1.0
     add 1b22bc8  - Added the Junit5 dependencies to the build-tools and sandbox repo roots.
     add 86fe9b4  - Bumped Netty to version 4.1.47.Final - Testwise added generation of feature.xml and kar archive to the s7 driver
     add f2d8a7c  - Increased the default delay in the SerialPollingSelector as it was causing problems otherwise
     add 59795ad  - Made the SimpleValue allow using the getIndex method if the index is 0
     add 0828516  - Implemented the write operation
     add 9538bf5  - Moved the firmata driver out of the sandbox - Enabled the firmata driver documentation in the main navigation
     add f0b54e8  - Greatly refactoed the Webapp example to something pushing data actively from a plc into a web-client (The push part still isn't working well ... will fix that asap)
     add 2931cd8  - Updated the download links to the new preferred download url.
     add d2b39b2  - Bumped commons configuration due to [CVE-2020-1953]
     add b9f6a5b  - Removed some obsolete code.
     add 3118461  - Added some debug log configuration in the app - Added a dummy data generator to simulate a PLC
     add 55182e4  - Minor adjustments and SonarCube findings
     add aa5ed2e  - Made jacoco generate the jacoco.xml reports so hopefully SonarCloud will import them.
     add 5280150  - Prevent the server from publishing data before it's actually started.
     add 1a3c316  - Added jms to the dependencies.
     add bd90056  - Switched back to short polling (long-polling seems to have issues)
     add 66c538b  - Test-commit to see if jenkins kicks in ...
     add 3aa1de1  - Test-commit to see if jenkins kicks in ...
     add d181ec4  - Added the ability to handle vlan traffic.
     add ce0f022  - Made the code generation output the real type for discriminator constants.
     add b8387e1  - Worked on the firmata tests
     add 9eaa746  - Worked on the firmata tests
     add 825158a  - Renamed the test files so surefire and failsafe will pick them up
     add 0e3e593  - Fixed some typos
     add fcc5d8a  Merge branches 'develop' and 'feature/driver-testsuite' of https://gitbox.apache.org/repos/asf/plc4x into feature/driver-testsuite
     add db6ec88  - Updated due to changes on develop
     add 6b2b3ca  - Refactoring to the SPI and API to allow serializing and parsing the model classes with Jackson - Finished (sort of) a first S7 integration test using the new framework
     add f120d94  - Made the usage of real or fake device a config option in the application.properties
     add 75528a3  - Made getOutboundBytes try to get outbound messages for max 100ms
     add d362b37  - Changed the setting to not cause the application to fail on startup.
     add 4a74ff5  - Implmented parsing of strings (Thanks to Etienne) - Extended the code-generation to be able to pass in string types (which have 3 arguments)
     add 648b8b6  - Made the length-in-bits argument optional for string types simple-types.
     add 862dc69  - Added EIP protocol driver (Thanks to Etienne)
     add 3d6bdc9  -Updating Camel Component
     add 4d4efc5  - Updates and fixes from Etienne (Still a WIP ...)
     add 00efaea  Camel Component update
     add 1f78e2e  Small tweaks -added toString() for TagData
     add c22efbd  - Updated to the released version of the maven site skin.
     add 51b056e  - Updated to the released version of the plc4x-code-generation module
     add fc78576  Merge branch 'develop' of https://github.com/apache/plc4x into camel
     add 5502906  Corrected data size for ReadResponse
     add e365650  Driver and Camel parameter can now be used together in same URI
     add a166fc9  - Updated the used download-maven-plugin to 1.5.0
     add 893d4fe  - Fine tuned some execution names - Disabled the "proxy protocol" extraction
     add c370a0d  Merge branch 'develop' of https://github.com/apache/plc4x into camel
     add c4f6ffe  Parent pom.xml
     add 9edd0b0  Change repo URLs from incubator-plc4x to plc4x
     add bcabffa  Merge pull request #139 from apache/fix-git-urls
     add 3b673b2  remove Bnd-LastModified header that is not reproducible
     add 77b87f9  Merge pull request #137 from hboutemy/develop
     add 387a17d  added german webinars
     add a5267f2  Merge branch 'develop' of https://github.com/apache/plc4x into camel
     add 825701d  Added Dependency for development profile
     add 0bddcd2  - Streamlined some plugin versions
     add 604b2f2  - Adjusted the way cmake was configured
     add 144caf5  - Added an empty PLC4C module which uses CMake to build and uses Unity to unit-test
     add 6ed176b  - Added a check to the prerequisiteCheck.groovy that checks if your java version isn't above 11 if the logstash profile is enabled - Made the exec-maven-plugin forward the setting for the current JVM to the gradle process (Otherwise it would have just used the java executable on the PATH)
     add 86e7edb  - Fixed some remaining issues with building in Thrift-Related modules.
     add 38f5ce8  Generating feature.xml with dependencies using maven plugin
     add 852c16e  Generated features for EIP, S7 and Camel
     add dfe424f  Merge branch 'develop' of https://github.com/apache/plc4x into osgi
     add 37f8a8e  Merge branch 'osgi' of https://github.com/apache/plc4x into develop
     add c881fd9  - Added a line-separator setting in order to make PLC4X releases more reproducible.
     add e3bf6fa  - Added a dummy template for c (generates empty c and h files) - Enabled the modbus and s7 c-type driver library compilation (empty however)
     add a0acfde  - Enabled the "with-c" profile.
     add 6ead7eb  Merge remote-tracking branch 'origin/develop' into develop
     add 049e542  Added comparing method
     add e0559ca  Added comparing method
     add ab3d477  Added comparing method
     add 16737e8  Merge remote-tracking branch 'origin/develop' into develop
     add a2a99f8  Updating driver to correctly parse MultipleServiceResponse -manually use the parser after calcultating service length with offsets
     add 3548738  Added eip dependency for examples
     add f1f1756  Update EIP Driver -able to read elements from DataStruct (Counter, UserDefined) but not the Struct itself (to get all element) -Example : ACC Valuer of Counter C1 : %C1.ACC
     add 2ab41e2  - Made the DFDLUtilTest work on Windows machines
     add eb726f6  - Fixed an issue not correctly detecting the absence of libpcap (UnsattisfiedLinkError is not an Exception, but an Error ... throwable is the common denominator)
     add 511b95f  - Disabled some test that require explicits serial ports to exist
     add 24f3a7a  - Added two profiles to the prerequisiteCheck   - with-c: Checks that Gcc is installed   - apache-release: Just added a todo to add a check if libpcap is installed
     add 74fbdb4  - Enabled the "with-c" profile on jenkins
     add 136e405  - Fixed two wrong property names
     add 9507a9e  - Told Jenkins to use Java 11 instead of 1.8
     add e420c12  - Added checks to use at least Java 11 if cmake is enabled - Added some documentation on using libpcap on linux (root privileges issues)
     add 847710d  - Some changes I missed.
     add da8772b  Merge branches 'develop' and 'eip' of https://github.com/apache/plc4x into eip
     add e1a11a7  OSGi -added Activator for API(Drivers) and SPI(Transport) to properly register services
     add 7ad72eb  - No idea why I have to manually commit this ;-)
     add d40333d  - Moved the Plc4xBootstrap to the test-channel (renamed it to EmbeddedBootstrap) to avoid OSGI problems.
     add d71558f  Merge branches 'develop' and 'feature/osgi' of https://github.com/apache/plc4x into feature/osgi
     add c4ef7b6  OSGi -S7 and EIP Driver now correctly registered as services -Downgrade to Camel 2.24.2 to pass Bean(List<TagData>) to Endpoint
     add da77683  OSGi -Update to Camel 3.1.0 by using the new API to set parameters correctly -Inside a OSGi Blueprint, use tags=#TagDataList to set the tags for the component. TagDataList should be a java.util.List of TagData
     add 99998ef  Added Type Parsing to TagData -When using OSGi blueprints, the Objects are passed as String (Numbers, Boolean). Added a method to parse to the correct type (if applicable)
     add 9299b10  Removed unused import
     add 1a70894  Merge branch 'feature/osgi' of https://github.com/apache/plc4x into feature/osgi
     add fd3e9d5  - Added the RequirePcap annotation to the RawSocketChannelTest
     add f6256a7  - Added Apache headers to the remaining README files.
     add a2fbff8  - Added two variants of an initial plc4c api
     add 0cf4505  - Made the Hello-Webapp runable outside of IntelliJ (There were problems preventing the application from starting correclty when run from the commandline)
     add 3396cf6  - Included Otto's proposal for a plc4c api - Removed the other alternatives that are now sort of obsolete
     add cf534c7  PLC4X-192 Support for connection string parameter conversion.
     add b38b9c1  Merge pull request #140 from ConnectorIO/PLC4X-192
     add d232005  Update linux.adoc
     add d8cda50  Update opc-ua.adoc
     add f036168  Update opc-ua.adoc
     add ad27607  Update ads.adoc
     add a61aaed  Update ads.adoc
     add e35b725  Update bacnetip.adoc
     add 83497c5  - Added a missing dependency
     add a4e9643  - Made the constants actually 16 bit values (cosmetics)
     add 6f4e81e  - Disabled the hello-webapp example as the Apache Royale folks seem unable to release.
     add b448eae  - Updated the RELEASE_NOTES in preparation of the next release
     add a1fe24c  - Made the OKs appear alligned with the rest.
     add 195df3b  - Made the autoVersionSubmodules a default setting for the release plugin - Removed the autoVersionSubmodules property from the documentation
     add c8748c3  - Added some more facts to the RELEASE_NOTES
     add 80767dd  Merge branch 'develop' into feature/osgi
     add 169f53b  Update ethernet-ip.adoc
     add 2ba6b70  SCRAPER -used generic TRIGGER (previously S7) -prepareField now in the PlcDriver interface --> create PlcField without connecting to the PLC -Need to test with different PLCs type
     add 2ef6adf  SCRAPER -EipField -->  added getDefaultJavaType -Tested Scraper with EIP --> worked using  generic Trigger (but no real code difference)
     add 36bcc45   [WIP] Currently doesn't work  - Rafactored the API into multiple smaller parts  - Removed the callbacks again
     add b1608ce  move structure defs into private header
     add 060fec4  header
     add 414b0af  Merge pull request #142 from ottobackwards/c-api-l
     add e6b4e59   - Finished refactoring the structure  - Tweaked some settings
     add 1b7a37a  c and clion git ignore
     add 8d9e0a8  Merge pull request #144 from ottobackwards/c-api-git-ignore
     add f3d8d12  - Refactored the API to use a promise-like concept - Started writing a document with the design guidelines
     add 2b8a221  - Removed the "_types" part from the promise related functions
     add 62f8d1b  - Added some more comments
     add eee4130  - Introduced a plc4c directory layer in the includes
     add 87bc403  - Refactored the directory structure to eliminate a lot of the intermediate directories
     add 210810f  - Changed the structure again.
     add 3243cc7  - Added a "simulated" driver - Added a plc4c_system_add_driver to the "system" domain - Extended the hello_world.c to instantiate the "simulated" driver and register that at the "system".
     add 35e7047  flatten includes, remove addr sample, use <> includes
     add 220f1e8  Merge pull request #145 from ottobackwards/c-api-2
     add 46a526d  - Added some super rudimentary API support for reading and writing
     add c0da8ba  - Added some super rudimentary API support for reading and writing
     add 8449ef3  - Added the write-request functions - Added comments
     add d4dc98d  - Started implementing the core SPI logic - Implemented a connection string parser including testsuite - Implemented the functionality for searching for a matching driver
     add f897695  - Enabled the transport modules - Added some more initialization to the s7 and modbus drivers - removed the "const" from the connection string (Gotta add that back wherever it makes sense as soon as I understand it's implications)
     add 4e81b58  - Added a "dummy" transport - Finished the system logic for the creation of connections
     add 78d5bd0  - Implemented the "connect" logic for the simulated driver - Implemented the system_loop logic to execute system tasks and correctly clean up the task list
     add 32727cb  - Continued working on the read support ...
     add 7cd7ddf  - Continued working on the read support ... - Implemented connect and disconnect via system-task
     add aad001e  - Got a first working version of the read-functionality working.
     add 7c25fdf  - Added some more comments and TODOs
     add b59c354  since we have snazzy lists, we should not pass around count ,XXX *[]
     add 4b35a45  add note
     add 3d38da9  add in plumbing for deleting read response.  deliberately mixed the words free / destroy, so we can talk about terminology
     add ee7be49  Merge pull request #146 from ottobackwards/c-api-m4-feedback
     add 332f40c  add plc4c_data type
     add 265a311  - Implemented the write support
     add 1cf2b62  - renamed the type "return_code" to "plc4c_return_code" - Added the text-strings for the return_code to string conversion
     add e4eb2bc  - Made the read operations also have a response-code for every item.
     add 0f35c35  Merge branch 'feature/c-api' into plc4c_data
     add 26edc06  Merge pull request #147 from ottobackwards/plc4c_data
     add f6d84fb  integrate writes with plc_data
     add de8ad18  Merge pull request #149 from ottobackwards/c-api-m5-cleanup
     add fac22cf  - Fully applied the google clang-format formatting as a basis for discussions
     add 1249ad7  - Added rat exclusions to exclude the CLion working directories from the rat-check
     add f3abb7f  - Added pointers from system-task to connection - Added a num_running_system_tasks to the connection to keep track of the active system tasks - Made the system auto decrement the num_running_system_tasks of a connection
     add 8201450  - Made the drivers check the number of active system-tasks when disconnecting - Cleaned up the way the system-tasks are created - Ensured all properties of malloced structures are initialized
     add ab0b32d  complex object members should not leak to external entities, add apis to plc4_connection and plc4c_system to start
     add 096d542  Merge pull request #150 from ottobackwards/c-api-m6
     add ed057e6  - Reformatted the code according to the google c style
     add 8eb6d89  - Streamilned the order and naming of the functions defined in the API module
     add 0b30b98  - Renamed some getters and setters to follow the remaining
     add 2d8a6ca  add CODE_CONVENTIONS
     add 7d0f92d  Merge pull request #151 from ottobackwards/c-api-m7
     add 02dc095  - Added some more content to the CODE_CONVENTIONS.md
     add 7a6e0a1  more api _t access work
     add 7067860  Merge pull request #152 from ottobackwards/c-api-m10
     add 470d751  - First draft of a subscription API
     add e8603ae  - Refactored the API to a more "add_item" style API
     add d1f2d8c  - Some cleanup
     add 6789205  Merge pull request #153 from apache/feature/c-api-subscriptions
     add c2a58a0  - Continued working on the subscription API
     add 253abab  Merge branch 'develop' of https://github.com/apache/plc4x into feature/osgi
     add 238a249  OSGi Module -Generic Activators for Drivers and Transports -Add Bundle-Activator in Driver's/Transport's POM -Adapted EIP Feature generation
     add f2db740  OSGi Module -Adapted S7 Feature generation
     add 2fe9929  Update opc-ua.adoc
     add 5ee31f7  Merge branches 'develop' and 'feature/osgi' of https://github.com/apache/plc4x into feature/osgi
     add 7dc85ef  Added Example module back to pom
     add aca63e7  Added DriverActivator to POM
     add f3fb43c  Merge pull request #154 from apache/feature/osgi
     add fac24fe  added OSGi to Release Notes
     add 00c2ad8  Merge remote-tracking branch 'origin/develop' into develop
     add 6dd963f  (OSGi) Updated Transport to point BundleActivator in POM
     add fb60242  - Added some more facts to the RELEASE_NOTES
     add 2dbaa94  - Removed an obsolete import ....
     add 43b2ba1  Merge branches 'develop' and 'feature/c-api' of https://gitbox.apache.org/repos/asf/plc4x into feature/c-api
     add d87eeb8  - Added some missing Apache Headers
     add da1bbe0  [fix] removed author left overs
     add 9f5f64c  - Changed from arc4random to rand to avoid problems on ubuntu
     add 04d1e64  - Replaced strlcpy with strncpy
     add 4cafe61  Merge branches 'develop' and 'feature/scraper' of github.com:apache/plc4x into feature/scraper
     add 82efefb  - Moved the karaf-feature stuff into the driver modules themselves - Applied the "prepareField" API change to all drivers that were missing this - Applied the osgi refactoring to the drivers that were missing them - Added static "of" methods to the Field types that were missing them
     add c1b9dfe  do not stop the global timer, remove and cancel the Timeouts instead
     add b9d4979  Merge pull request #155 from ottobackwards/clear-timeouts
     add a88791e  - Disabled the building of the plc4cpp hello world example
     add f1838b0  Made the docker and opennssl detection safe against ioexeptions (if the tools are not installed at all)
     add 6032544  - Added some more documentation on installing prerequisites on windows - Fixed the python detection in the prerequisiteCheck.groovy script
     add 9a0ba2d  - Added a "using plc4x" page
     add 97ba102  - Fixed the parser - Made sure the spi module is linked to the drivers - Made the test a little more verbose
     add ab6b25d  - Worked on the prerequisiteCheck.groovy script - Worked on the setup instructions for Windows
     add 845f879  - Updated to the newest IoTDB version
     add 34e1177  - Moved the groovy code for generating the artificial version properties into a groovy-file - Added code to generate a pom.adoc file containinng all of maven's properties in an adoc format - Removed now obsolete pom stuff that was already commented out
     add 8d63206  [maven-release-plugin] prepare branch @{releaseLabel}
     add c11546a  - Updated the RELEASE_NOTES for the next release.
     add 44f09bf  - Updated the NOTICE file for 2020
     add f8d147d  - Fixed a typo in the serial transport artifact
     add 36b097d  - Made the JavaDoc plugin not break the build if somethings not perfect
     add 41dad85  - Disabled fixing the line separator as this was causing iussues with ANTLR4
     add 87ee493  - Updated the Antlr version
     add 3286679  [maven-release-plugin] rollback the release of release/0.7.0
     add 1496390  - Re-applied all changes after rolling back
     add 79b491f  - Re-applied all changes after rolling back
     add 4a64fe7  - Fixed some API changes in the serial configuration
     add 9146d0c  - Added some additional setup suggestions to the release documentation
     add 6cf7cf9  - Added a check to check the maven version for cmake
     add 41ebb4d  - Merged changes from the develop branch
     add 607a5c1  - Disabled the TriggeredScraperImplTest
     add 3277be5  - Disabled the TriggeredScraperImplTest
     add d00e452  - Applied a fix for some tests.
     add 3636f4d  - Applied a fix for some tests.
     add 63b31a9  - Applied a fix for some tests.
     add c06b734  [maven-release-plugin] prepare release release/0.7.0
     add ea6e889  [maven-release-plugin] prepare for next development iteration
     add 84f66b3  - Reset the version back to 0.7.0-SNAPSHOT - Cherry picked some changes from develop
     add 33788ed  - Fixed a snapshot dependency
     add a936a9f  [maven-release-plugin] prepare release release/0.7.0
     new 0c18c7c  Merge tag 'release/0.7.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                                         |    4 +
 Dockerfile                                         |   15 +-
 Jenkinsfile                                        |   16 +-
 README.md                                          |    4 +-
 RELEASE_NOTES                                      |   62 +-
 Sometimes-Failling-Tests.md                        |   11 +-
 build-utils/language-base-freemarker/pom.xml       |    2 +-
 .../freemarker/FreemarkerLanguageOutput.java       |   56 +-
 build-utils/language-c/pom.xml                     |   58 +
 .../apache/plc4x/language/c/CLanguageOutput.java   |   72 +
 .../plc4x/language/c/CLanguageTemplateHelper.java  |   39 +
 ...x.plugins.codegenerator.language.LanguageOutput |   19 +
 .../resources/templates/c/pojo-template-c.ftlh     |   38 +
 .../resources/templates/c/pojo-template-h.ftlh     |   38 +
 build-utils/language-java/pom.xml                  |    4 +-
 .../plc4x/language/java/JavaLanguageOutput.java    |   12 +-
 .../language/java/JavaLanguageTemplateHelper.java  |  338 +-
 .../resources/templates/java/data-io-template.ftlh |  277 ++
 .../resources/templates/java/enum-template.ftlh    |  115 +-
 .../main/resources/templates/java/io-template.ftlh |  184 +-
 .../resources/templates/java/pojo-template.ftlh    |  114 +-
 build-utils/pom.xml                                |   17 +-
 build-utils/protocol-base-mspec/pom.xml            |   22 +-
 .../plugins/codegenerator/language/mspec/MSpec.g4  |   32 +-
 .../definitions/DefaultDataIoTypeDefinition.java   |   38 +
 .../mspec/model/fields/DefaultAbstractField.java   |   52 +
 .../model/fields/DefaultManualArrayField.java      |   14 +-
 .../mspec/model/fields/DefaultManualField.java     |   14 +-
 .../references/DefaultStringTypeReference.java     |   38 +
 .../references/DefaultTemporalTypeReference.java   |   30 +
 .../mspec/parser/MessageFormatListener.java        |  100 +-
 .../src/test/resources/mspec.example               |    4 +-
 build-utils/protocol-test/pom.xml                  |    6 +-
 .../src/main/resources/protocols/test/test.mspec   |    2 +-
 jenkins.pom                                        |   18 +-
 plc4j/api/pom.xml                                  |   49 +-
 .../org/apache/plc4x/java/PlcDriverManager.java    |   52 +-
 .../org/apache/plc4x/java/api/Experimental.java    |   26 +
 .../org/apache/plc4x/java/api/PlcConnection.java   |   35 +-
 .../plc4x/java/api/PlcConnectionExtension.java     |   82 +
 .../java/org/apache/plc4x/java/api/PlcDriver.java  |   65 +
 .../java/api/authentication/PlcAuthentication.java |   34 +-
 .../PlcUsernamePasswordAuthentication.java         |   34 +-
 .../api/exceptions/PlcConnectionException.java     |   34 +-
 .../plc4x/java/api/exceptions/PlcException.java    |   34 +-
 .../api/exceptions/PlcFieldRangeException.java     |   32 +-
 .../PlcIncompatibleDatatypeException.java          |   39 +-
 .../api/exceptions/PlcInvalidFieldException.java   |   32 +-
 .../plc4x/java/api/exceptions/PlcIoException.java  |   34 +-
 .../api/exceptions/PlcNotImplementedException.java |   32 +-
 .../java/api/exceptions/PlcProtocolException.java  |   34 +-
 .../PlcProtocolPayloadTooBigException.java         |   34 +-
 .../exceptions/PlcProtocolTimeoutException.java    |   39 +
 .../java/api/exceptions/PlcRuntimeException.java   |   34 +-
 .../java/api/exceptions/PlcTimeoutException.java   |   32 +-
 .../PlcUnsupportedDataTypeException.java           |   32 +-
 .../PlcUnsupportedOperationException.java          |   34 +-
 .../PlcUnsupportedProtocolException.java           |   32 +-
 .../plc4x/java/api/messages/PlcFieldRequest.java   |   34 +-
 .../plc4x/java/api/messages/PlcFieldResponse.java  |   34 +-
 .../apache/plc4x/java/api/messages/PlcMessage.java |   34 +-
 .../plc4x/java/api/messages/PlcReadRequest.java    |   34 +-
 .../plc4x/java/api/messages/PlcReadResponse.java   |   52 +-
 .../apache/plc4x/java/api/messages/PlcRequest.java |   34 +-
 .../plc4x/java/api/messages/PlcRequestBuilder.java |   34 +-
 .../plc4x/java/api/messages/PlcResponse.java       |   34 +-
 .../java/api/messages/PlcSubscriptionEvent.java    |   34 +-
 .../java/api/messages/PlcSubscriptionRequest.java  |   34 +-
 .../java/api/messages/PlcSubscriptionResponse.java |   34 +-
 .../api/messages/PlcUnsubscriptionRequest.java     |   34 +-
 .../api/messages/PlcUnsubscriptionResponse.java    |   34 +-
 .../plc4x/java/api/messages/PlcWriteRequest.java   |   38 +-
 .../plc4x/java/api/messages/PlcWriteResponse.java  |   34 +-
 .../java/api/metadata/PlcConnectionMetadata.java   |   34 +-
 .../java/api/model/PlcConsumerRegistration.java    |   32 +-
 .../org/apache/plc4x/java/api/model/PlcField.java  |   37 +-
 .../java/api/model/PlcSubscriptionHandle.java      |   35 +-
 .../plc4x/java/api/types/PlcClientDatatype.java    |   34 +-
 .../plc4x/java/api/types/PlcResponseCode.java      |   34 +-
 .../plc4x/java/api/types/PlcSubscriptionType.java  |   34 +-
 .../apache/plc4x/java/api/value/PlcBigDecimal.java |  164 +
 .../apache/plc4x/java/api/value/PlcBigInteger.java |  164 +
 .../apache/plc4x/java/api/value/PlcBoolean.java    |  168 +
 .../org/apache/plc4x/java/api/value/PlcByte.java   |  184 +
 .../org/apache/plc4x/java/api/value/PlcDate.java   |   67 +
 .../apache/plc4x/java/api/value/PlcDateTime.java   |   93 +
 .../org/apache/plc4x/java/api/value/PlcDouble.java |  168 +
 .../org/apache/plc4x/java/api/value/PlcFloat.java  |  168 +
 .../apache/plc4x/java/api/value/PlcInteger.java    |  184 +
 .../org/apache/plc4x/java/api/value/PlcList.java   |   84 +
 .../org/apache/plc4x/java/api/value/PlcLong.java   |  168 +
 .../org/apache/plc4x/java/api/value/PlcShort.java  |  184 +
 .../plc4x/java/api/value/PlcSimpleValue.java       |   77 +
 .../org/apache/plc4x/java/api/value/PlcString.java |   89 +
 .../org/apache/plc4x/java/api/value/PlcStruct.java |   84 +
 .../org/apache/plc4x/java/api/value/PlcTime.java   |   67 +
 .../org/apache/plc4x/java/api/value/PlcValue.java  |  145 +
 .../plc4x/java/api/value/PlcValueAdapter.java      |  292 ++
 .../org/apache/plc4x/java/api/value/PlcValues.java |  382 ++
 .../java/org/apache/plc4x/java/spi/PlcDriver.java  |   61 -
 .../apache/plc4x/java/PlcDriverManagerTest.java    |   69 +-
 .../PlcUsernamePasswordAuthenticationTest.java     |   53 +-
 .../plc4x/java/api/connection/PlcReaderTest.java   |   35 +-
 .../plc4x/java/api/connection/PlcWriterTest.java   |   33 +-
 .../api/exceptions/PlcConnectionExceptionTest.java |   32 +-
 .../java/api/exceptions/PlcExceptionTest.java      |   32 +-
 .../api/exceptions/PlcFieldRangeExceptionTest.java |   32 +-
 .../PlcIncompatibleDatatypeExceptionTest.java      |   32 +-
 .../exceptions/PlcInvalidFieldExceptionTest.java   |   34 +-
 .../java/api/exceptions/PlcIoExceptionTest.java    |   32 +-
 .../exceptions/PlcNotImplementedExceptionTest.java |   32 +-
 .../api/exceptions/PlcProtocolExceptionTest.java   |   32 +-
 .../PlcProtocolPayloadTooBigExceptionTest.java     |   32 +-
 .../api/exceptions/PlcRuntimeExceptionTest.java    |   32 +-
 .../api/exceptions/PlcTimeoutExceptionTest.java    |   32 +-
 .../PlcUnsupportedDataTypeExceptionTest.java       |   32 +-
 .../PlcUnsupportedOperationExceptionTest.java      |   32 +-
 .../plc4x/java/api/messages/APIMessageTests.java   |   34 +-
 .../api/messages/PlcProprietaryRequestTest.java    |   38 +-
 .../api/messages/PlcProprietaryResponseTest.java   |   35 +-
 .../java/api/messages/PlcReadRequestTest.java      |   35 +-
 .../java/api/messages/PlcReadResponseTest.java     |   34 +-
 .../plc4x/java/api/messages/PlcRequestTest.java    |   38 +-
 .../plc4x/java/api/messages/PlcResponseTest.java   |   32 +-
 .../api/messages/PlcSubscriptionEventTest.java     |   35 +-
 .../api/messages/PlcSubscriptionRequestTest.java   |   34 +-
 .../api/messages/PlcSubscriptionResponseTest.java  |   34 +-
 .../api/messages/PlcUnsubscriptionRequestTest.java |   36 +-
 .../messages/PlcUnsubscriptionResponseTest.java    |   34 +-
 .../java/api/messages/PlcWriteRequestTest.java     |   35 +-
 .../java/api/messages/PlcWriteResponseTest.java    |   34 +-
 .../plc4x/java/api/messages/mock/MockField.java    |   34 +-
 .../specific/TypeSafePlcReadRequestTest.java       |   35 +-
 .../specific/TypeSafePlcReadResponseTest.java      |   32 +-
 .../specific/TypeSafePlcWriteRequestTest.java      |   35 +-
 .../specific/TypeSafePlcWriteResponseTest.java     |   32 +-
 .../java/api/types/PlcClientDatatypeTest.java      |   34 +-
 .../plc4x/java/api/types/PlcResponseCodeTest.java  |   34 +-
 .../java/api/types/PlcSubscriptionTypeTest.java    |   34 +-
 .../apache/plc4x/java/api/types/PlcValueTest.java  |   53 +
 .../apache/plc4x/java/api/value/PlcValuesTest.java |   51 +
 .../org/apache/plc4x/java/mock/ApiMockDriver.java  |   55 +
 .../plc4x/java/mock/DuplicateMockDriver.java       |   34 +-
 .../org/apache/plc4x/java/mock/MockDriver.java     |   55 -
 .../apache/plc4x/java/mock/MockPlcConnection.java  |   32 +-
 .../services/org.apache.plc4x.java.api.PlcDriver   |   38 +
 .../services/org.apache.plc4x.java.api.PlcDriver   |   38 +
 .../services/org.apache.plc4x.java.spi.PlcDriver   |   19 -
 plc4j/drivers/ab-eth/pom.xml                       |   74 +-
 .../org/apache/plc4x/java/abeth/AbEthDriver.java   |   81 +-
 .../abeth/configuration/AbEthConfiguration.java    |   44 +
 .../java/abeth/connection/AbEthFieldHandler.java   |   36 -
 .../java/abeth/connection/AbEthPlcConnection.java  |  159 -
 .../apache/plc4x/java/abeth/field/AbEthField.java  |  105 +
 .../plc4x/java/abeth/field/AbEthFieldHandler.java  |   35 +
 .../apache/plc4x/java/abeth/model/AbEthField.java  |  105 -
 .../plc4x/java/abeth/model/types/FileType.java     |   65 -
 .../plc4x/java/abeth/protocol/AbEthProtocol.java   |   61 -
 .../java/abeth/protocol/AbEthProtocolLogic.java    |  220 +
 .../java/abeth/protocol/Plc4xAbEthProtocol.java    |   54 +-
 .../apache/plc4x/java/abeth/types/FileType.java    |   65 +
 ...cDriver => org.apache.plc4x.java.api.PlcDriver} |    0
 .../org/apache/plc4x/protocol/abeth/AbEthTest.java |    4 +-
 .../test/resources/testsuite/AbEthTestsuite.xml    |    4 +-
 plc4j/drivers/ads/pom.xml                          |   31 +-
 .../org/apache/plc4x/java/ads/AdsPlcDriver.java    |    4 +-
 .../ads/connection/AdsAbstractPlcConnection.java   |   39 +-
 .../ads/connection/AdsSerialPlcConnection.java     |    4 +-
 .../java/ads/connection/AdsTcpPlcConnection.java   |   23 +-
 ...cDriver => org.apache.plc4x.java.api.PlcDriver} |    0
 .../apache/plc4x/java/ads/adslib/AmsRequest.java   |    4 +-
 .../apache/plc4x/java/ads/adslib/AmsRouter.java    |    4 +-
 .../connection/AdsAbstractPlcConnectionTest.java   |   16 +-
 .../ads/connection/AdsConnectionFactoryTest.java   |    6 +-
 .../ads/connection/AdsSerialPlcConnectionTest.java |    6 +-
 .../ads/connection/AdsTcpPlcConnectionTests.java   |    6 +-
 plc4j/drivers/eip/pom.xml                          |  168 +
 .../apache/plc4x/java/eip/readwrite/EIPDriver.java |  111 +
 .../readwrite/configuration/EIPConfiguration.java  |   53 +
 .../plc4x/java/eip/readwrite/field/EipField.java   |  133 +
 .../java/eip/readwrite/field/EipFieldHandler.java  |  434 ++
 .../eip/readwrite/protocol/EipProtocolLogic.java   |  558 +++
 .../services/org.apache.plc4x.java.api.PlcDriver   |   19 +
 .../java/eip/readwrite/EIPDriverTestsuite.java     |   29 +
 .../readwrite/EIPParserSerializerTestsuite.java    |   29 +
 .../resources/testsuite/EIPDriverTestsuite.xml     |  152 +
 .../testsuite/EIPParserSerializerTestsuite.xml     |  183 +
 plc4j/drivers/ethernet-ip/pom.xml                  |  119 -
 .../plc4x/java/ethernetip/EtherNetIpPlcDriver.java |   83 -
 .../connection/BaseEtherNetIpPlcConnection.java    |  107 -
 .../connection/EtherNetIpTcpPlcConnection.java     |   84 -
 .../services/org.apache.plc4x.java.spi.PlcDriver   |   19 -
 .../org/apache/plc4x/java/ethernetip/EnipTest.java |   65 -
 .../java/ethernetip/ManualPlc4XEtherNetIpTest.java |   55 -
 .../src/test/resources/read-attribute.pcap         |  Bin 258 -> 0 bytes
 plc4j/drivers/firmata/README.adoc                  |   31 +
 plc4j/drivers/firmata/pom.xml                      |  170 +
 .../java/firmata/readwrite/FirmataDriver.java      |  171 +
 .../configuration/FirmataConfiguration.java        |   35 +
 .../readwrite/context/FirmataDriverContext.java    |  158 +
 .../java/firmata/readwrite/field/FirmataField.java |   90 +
 .../readwrite/field/FirmataFieldAnalog.java        |   46 +
 .../readwrite/field/FirmataFieldDigital.java       |   69 +
 .../readwrite/field/FirmataFieldHandler.java       |  149 +
 .../readwrite/model/FirmataSubscriptionHandle.java |   79 +
 .../readwrite/protocol/FirmataProtocolLogic.java   |  301 ++
 .../java/firmata/readwrite/utils/FirmataUtils.java |   54 +
 .../services/org.apache.plc4x.java.api.PlcDriver   |   19 +
 .../readwrite/FirmataParserSerializerTest.java     |   29 +
 .../testsuite/FirmataParserSerializerTest.xml      |  286 ++
 .../src/test/resources/testsuite/recording.txt     | 4239 ++++++++++++++++++++
 .../drivers/knxnetip}/README.adoc                  |    0
 plc4j/drivers/knxnetip/pom.xml                     |  212 +
 .../apache/plc4x/java/knxnetip/KnxNetIpDriver.java |  103 +
 .../configuration/KnxNetIpConfiguration.java       |   79 +
 .../plc4x/java/knxnetip/ets5/Ets5Parser.java       |  161 +
 .../java/knxnetip/ets5/model/AddressType.java      |    0
 .../plc4x/java/knxnetip/ets5/model/Ets5Model.java  |  114 +
 .../plc4x/java/knxnetip/ets5/model/Function.java   |    0
 .../java/knxnetip/ets5/model/GroupAddress.java     |   96 +
 .../plc4x/java/knxnetip/field/KnxNetIpField.java   |  113 +
 .../java/knxnetip/field/KnxNetIpFieldHandler.java  |   35 +
 .../knxnetip/model/KnxNetIpSubscriptionHandle.java |   78 +
 .../knxnetip/protocol/KnxNetIpProtocolLogic.java   |  410 ++
 .../plc4x/java/knxnetip/utils/KnxHelper.java       |   65 +
 .../services/org.apache.plc4x.java.api.PlcDriver   |    0
 .../org/apache/plc4x/java/knxnetip/IOTest.java     |  102 +
 .../apache/plc4x/java/knxnetip/KNXNetIpTest.java   |   30 +
 .../apache/plc4x/java/knxnetip/ManualKnxNetIp.java |   73 +
 .../knxnetip/src/test}/resources/logback.xml       |    0
 .../test/resources/testsuite/KNXNetIPTestsuite.xml |  402 ++
 plc4j/drivers/mock/pom.xml                         |   80 +
 .../org/apache/plc4x/java/mock/MockDriver.java     |   69 +
 .../plc4x/java/mock/connection/MockConnection.java |  207 +
 .../plc4x/java/mock/connection/MockDevice.java     |   52 +
 .../java/mock/connection/tcp/TcpHexDumper.java     |  145 +
 .../apache/plc4x/java/mock/field/MockField.java    |   99 +
 .../plc4x/java/mock/field/MockFieldHandler.java    |   98 +
 .../apache/plc4x/java/mock/field/MockPlcValue.java |   36 +
 .../org/apache/plc4x/java/mock/field/MockType.java |   25 +
 .../mock/protocol/Plc4XSupportedDataTypes.java     |  257 ++
 .../org/apache/plc4x/java/mock/util/Assert.java    |   86 +
 .../org/apache/plc4x/java/mock/util/HexUtil.java   |    0
 .../services/org.apache.plc4x.java.api.PlcDriver}  |    0
 plc4j/drivers/modbus/pom.xml                       |  139 +-
 .../org/apache/plc4x/java/modbus/ModbusDriver.java |  114 +
 .../apache/plc4x/java/modbus/ModbusPlcDriver.java  |   95 -
 .../java/modbus/config/ModbusConfiguration.java    |   64 +
 .../modbus/connection/BaseModbusPlcConnection.java |  117 -
 .../modbus/connection/ModbusConnectionFactory.java |   40 -
 .../connection/ModbusSerialPlcConnection.java      |   47 -
 .../modbus/connection/ModbusTcpPlcConnection.java  |   81 -
 .../plc4x/java/modbus/field/ModbusField.java       |   97 +
 .../plc4x/java/modbus/field/ModbusFieldCoil.java   |   46 +
 .../modbus/field/ModbusFieldDiscreteInput.java     |   46 +
 .../java/modbus/field/ModbusFieldHandler.java      |  150 +
 .../modbus/field/ModbusFieldHoldingRegister.java   |   46 +
 .../modbus/field/ModbusFieldInputRegister.java     |   45 +
 .../java/modbus/protocol/ModbusProtocolLogic.java  |  314 ++
 .../services/org.apache.plc4x.java.api.PlcDriver   |   19 +
 .../services/org.apache.plc4x.java.spi.PlcDriver   |   19 -
 .../org/apache/plc4x/java/modbus/ModbusIOTest.java |   29 +
 .../plc4x/java/modbus/ModbusPlcDriverTest.java     |  134 -
 .../connection/BaseModbusPlcConnectionTest.java    |  156 -
 .../connection/ModbusConnectionFactoryTest.java    |   95 -
 .../connection/ModbusSerialPlcConnectionTest.java  |  217 -
 .../connection/ModbusTcpPlcConnectionTests.java    |   60 -
 .../test/resources/testsuite/ModbusTestsuite.xml   |   64 +
 plc4j/drivers/opcua/pom.xml                        |   91 +-
 .../apache/plc4x/java/opcua/OpcuaPlcDriver.java    |   23 +-
 .../opcua/connection/BaseOpcuaPlcConnection.java   |    5 +-
 .../opcua/connection/OpcuaConnectionFactory.java   |    1 -
 .../opcua/connection/OpcuaTcpPlcConnection.java    |  136 +-
 .../plc4x/java/opcua/protocol/OpcuaField.java      |    3 +-
 .../java/opcua/protocol/OpcuaPlcFieldHandler.java  |  111 +-
 .../opcua/protocol/OpcuaSubsriptionHandle.java     |   16 +-
 .../java/opcua/protocol/model/OpcuaDataTypes.java  |    1 -
 .../opcua/protocol/model/OpcuaIdentifierType.java  |    1 -
 ...cDriver => org.apache.plc4x.java.api.PlcDriver} |    0
 .../apache/plc4x/java/opcua/ManualPLC4XOpcua.java  |   58 +-
 .../plc4x/java/opcua/OpcuaPlcDriverTest.java       |  104 +-
 .../org/apache/plc4x/java/opcua/UtilsTest.java     |    4 +-
 .../connection/OpcuaTcpPlcConnectionTest.java      |    7 +-
 .../plc4x/java/opcua/protocol/OpcuaFieldTest.java  |    8 +-
 .../opcua/protocol/OpcuaPlcFieldHandlerTest.java   |    1 -
 .../protocol/OpcuaSubscriptionHandleTest.java      |    1 -
 plc4j/drivers/pom.xml                              |   12 +-
 plc4j/drivers/s7/README.md                         |   33 -
 plc4j/drivers/s7/pom.xml                           |  184 +-
 .../java/org/apache/plc4x/java/s7/S7PlcDriver.java |   83 -
 .../plc4x/java/s7/connection/S7PlcConnection.java  |  319 --
 .../apache/plc4x/java/s7/readwrite/S7Driver.java   |  119 +
 .../readwrite/configuration/S7Configuration.java   |  148 +
 .../java/s7/readwrite/context/S7DriverContext.java |  135 +
 .../plc4x/java/s7/readwrite/field/S7Field.java     |  301 ++
 .../java/s7/readwrite/field/S7PlcFieldHandler.java |  584 +++
 .../optimizer/DefaultS7MessageProcessor.java       |  288 ++
 .../s7/readwrite/optimizer/S7MessageProcessor.java |   40 +
 .../java/s7/readwrite/optimizer/S7Optimizer.java   |  174 +
 .../s7/readwrite/protocol/S7ProtocolLogic.java     |  524 +++
 .../java/s7/readwrite/types/S7ControllerType.java  |   30 +
 .../java/s7/readwrite/utils/S7TsapIdEncoder.java   |   48 +
 .../apache/plc4x/java/s7/utils/StaticHelper.java   |  155 +
 .../services/org.apache.plc4x.java.api.PlcDriver   |   19 +
 .../services/org.apache.plc4x.java.spi.PlcDriver   |   19 -
 .../s7/src/main}/resources/logback.xml             |    0
 .../s7/src/test/java/BenchmarkGeneratedS7.java     |   71 +
 .../java/org/apache/plc4x/java/s7/BenchmarkS7.java |   90 -
 .../org/apache/plc4x/java/s7/S7PlcDriverTest.java  |   81 -
 .../java/s7/connection/S7PlcConnectionIT.java      |  137 -
 .../java/s7/connection/S7PlcConnectionTests.java   |   93 -
 .../java/s7/connection/S7PlcTestConnection.java    |  204 -
 .../java/s7/connection/issues/PLC4X47Test.java     |   51 -
 .../java/s7/readwrite/ManualS7DriverTest.java      |   33 +
 .../apache/plc4x/java/s7/readwrite/S7DriverIT.java |   29 +
 .../java/s7/readwrite/S7ParserSerializerTest.java  |   29 +
 .../s7/connection/iso-tp-connect-response.pcap     |  Bin 116 -> 0 bytes
 .../s7/connection/s7-cpu-functions-response.pcap   |  Bin 219 -> 0 bytes
 .../java/s7/connection/s7-read-large-response.pcap |  Bin 652 -> 0 bytes
 .../java/s7/connection/s7-read-var-request.pcap    |  Bin 125 -> 0 bytes
 .../java/s7/connection/s7-read-var-response.pcap   |  Bin 120 -> 0 bytes
 .../s7-setup-communication-response.pcap           |  Bin 121 -> 0 bytes
 .../java/s7/connection/s7-write-var-request.pcap   |  Bin 130 -> 0 bytes
 .../java/s7/connection/s7-write-var-response.pcap  |  Bin 116 -> 0 bytes
 .../s7/src/test/resources/testsuite/S7DriverIT.xml |  311 ++
 .../resources/testsuite/S7ParserSerializerTest.xml |  509 +++
 plc4j/drivers/simulated/pom.xml                    |   66 +-
 .../plc4x/java/simulated/SimulatedDriver.java      |   69 +
 .../plc4x/java/simulated/SimulatedPlcDriver.java   |   65 -
 .../simulated/connection/SimulatedConnection.java  |  254 ++
 .../java/simulated/connection/SimulatedDevice.java |  194 +
 .../connection/SimulatedPlcConnection.java         |  219 -
 .../java/simulated/connection/TestDevice.java      |  199 -
 .../plc4x/java/simulated/connection/TestField.java |  128 -
 .../simulated/connection/TestFieldHandler.java     |  174 -
 .../java/simulated/connection/TestFieldItem.java   |   35 -
 .../plc4x/java/simulated/connection/TestType.java  |   28 -
 .../plc4x/java/simulated/field/SimulatedField.java |  129 +
 .../simulated/field/SimulatedFieldHandler.java     |  214 +
 .../java/simulated/types/SimulatedFieldType.java   |   28 +
 .../services/org.apache.plc4x.java.api.PlcDriver   |   19 +
 .../services/org.apache.plc4x.java.spi.PlcDriver   |   38 -
 .../plc4x/java/simulated/SimulatedDriverTest.java  |   58 +
 .../java/simulated/SimulatedPlcDriverTest.java     |   57 -
 .../connection/SimulatedConnectionTest.java        |  245 ++
 .../simulated/connection/SimulatedDeviceTest.java  |   57 +
 .../connection/SimulatedPlcConnectionTest.java     |  245 --
 .../java/simulated/connection/TestDeviceTest.java  |   56 -
 .../simulated/connection/TestFieldHandlerTest.java |  133 -
 .../simulated/connection/TestFieldItemTest.java    |   31 -
 .../java/simulated/connection/TestFieldTest.java   |   61 -
 .../simulated/field/SimularedFieldHandlerTest.java |  128 +
 .../java/simulated/field/SimulatedFieldTest.java   |   62 +
 plc4j/examples/dummy-driver/pom.xml                |   14 +-
 .../java/examples/dummydriver/DummyDriver.java     |    2 +-
 .../dummydriver/connection/DummyConnection.java    |   14 +-
 .../examples/dummydriver/netty/DummyProtocol.java  |    2 +-
 ...cDriver => org.apache.plc4x.java.api.PlcDriver} |    0
 plc4j/examples/hello-cloud-azure/pom.xml           |   61 +-
 plc4j/examples/hello-cloud-google/pom.xml          |   48 +-
 plc4j/examples/hello-connectivity-kafka/pom.xml    |   63 +-
 plc4j/examples/hello-connectivity-mqtt/pom.xml     |   62 +-
 plc4j/examples/hello-integration-edgent/pom.xml    |   61 +-
 plc4j/examples/hello-integration-iotdb/pom.xml     |   63 +-
 .../examples/integration/iotdb/CliOptions.java     |    7 +-
 .../java/examples/integration/iotdb/PlcLogger.java |   38 +-
 .../hello-kafka-connect-elasticsearch/README.md    |   61 +
 .../elasticsearch-sink.properties                  |   25 +
 .../elasticsearch-worker.properties                |   30 +
 .../kafka-connect-config/plc4x-source.properties   |   53 +
 .../kafka-connect-config/plc4x-worker.properties   |   30 +
 plc4j/examples/hello-opm/pom.xml                   |   50 +-
 plc4j/examples/hello-storage-elasticsearch/pom.xml |   51 +-
 .../elasticsearch/ElasticsearchStorage.java        |    5 +-
 plc4j/examples/hello-webapp/client/asconfig.json   |   20 +
 plc4j/examples/hello-webapp/client/pom.xml         |   35 +-
 .../src/main/resources/plc4x-index-template.html   |   28 +
 .../hello-webapp/client/src/main/royale/App.mxml   |  161 +
 .../client/src/main/royale/HelloPLC4X.mxml         |  104 -
 .../client/src/main/royale/service/RobotService.as |   92 -
 plc4j/examples/hello-webapp/pom.xml                |   19 +-
 plc4j/examples/hello-webapp/service/pom.xml        |  112 -
 .../robot/controllers/RobotController.java         |  105 -
 plc4j/examples/hello-webapp/webapp/README.adoc     |   41 +
 plc4j/examples/hello-webapp/webapp/pom.xml         |  143 +-
 .../apache/plc4x/examples/robot/Application.java   |   32 -
 .../plc4x/examples/watertank/Application.java      |   32 +
 .../watertank/service/WaterTankService.java        |  194 +
 .../java/org/springframework/core/JdkVersion.java  |   36 +
 .../resources/META-INF/flex/services-config.xml    |   98 +
 .../src/main/resources/application.properties      |   10 +-
 .../webapp/src/main/webapp/WEB-INF/web.xml         |   79 +
 .../webapp/src/main/webapp/favicon.ico             |  Bin 0 -> 1150 bytes
 plc4j/examples/hello-world-plc4x/pom.xml           |   55 +-
 .../plc4x/java/examples/helloplc4x/HelloPlc4x.java |   13 +-
 .../src/main/resources/logback.xml                 |    2 +-
 plc4j/examples/pom.xml                             |   92 +-
 plc4j/integrations/apache-calcite/pom.xml          |    9 +-
 .../java/org/apache/plc4x/DriverManagerTest.java   |    1 -
 .../java/org/apache/plc4x/Plc4XBaseTableTest.java  |    2 +-
 .../apache-calcite/src/test/resources/example.yml  |    4 +-
 plc4j/integrations/apache-camel/pom.xml            |  215 +-
 .../apache-camel/src/main/docs/PLC4X.adoc          |   50 +-
 .../java/org/apache/plc4x/camel/Constants.java     |    3 +-
 .../org/apache/plc4x/camel/Plc4XComponent.java     |   39 +-
 .../java/org/apache/plc4x/camel/Plc4XConsumer.java |  160 +-
 .../java/org/apache/plc4x/camel/Plc4XEndpoint.java |  144 +-
 .../apache/plc4x/camel/Plc4XPollingConsumer.java   |  130 +-
 .../java/org/apache/plc4x/camel/Plc4XProducer.java |   37 +-
 .../main/java/org/apache/plc4x/camel/TagData.java  |  129 +
 .../services/org/apache/camel/component/plc4x      |   36 +-
 .../java/org/apache/plc4x/camel/ConstantsTest.java |   25 +-
 .../java/org/apache/plc4x/camel/ManualTest.java    |   10 +-
 .../java/org/apache/plc4x/camel/MockDriver.java    |   15 +-
 .../org/apache/plc4x/camel/Plc4XComponentTest.java |   25 +-
 .../org/apache/plc4x/camel/Plc4XConsumerTest.java  |   20 +-
 .../org/apache/plc4x/camel/Plc4XEndpointTest.java  |    8 +-
 .../plc4x/camel/Plc4XPollingConsumerTest.java      |    2 +-
 .../org/apache/plc4x/camel/Plc4XProducerTest.java  |   42 +-
 ...cDriver => org.apache.plc4x.java.api.PlcDriver} |    0
 plc4j/integrations/apache-edgent/pom.xml           |   29 +-
 .../apache/plc4x/edgent/PlcConnectionAdapter.java  |    4 +-
 .../plc4x/edgent/PlcConnectionAdapterTest.java     |  548 +++
 .../org/apache/plc4x/edgent/PlcFunctionsTest.java  |  144 +
 .../plc4x/edgent/PlcConnectionAdapterTest.java     |  552 ---
 .../org/apache/plc4x/edgent/PlcFunctionsTest.java  |  144 -
 .../apache/plc4x/edgent/mock/MockConnection.java   |  155 -
 .../org/apache/plc4x/edgent/mock/MockDriver.java   |   48 -
 .../org/apache/plc4x/edgent/mock/MockField.java    |   62 -
 .../apache/plc4x/edgent/mock/MockFieldHandler.java |  104 -
 .../apache/plc4x/edgent/mock/MockFieldItem.java    |   34 -
 .../services/org.apache.plc4x.java.spi.PlcDriver   |   19 -
 plc4j/integrations/apache-kafka/README.md          |    2 +-
 .../apache-kafka/config/plc4x-source.properties    |   11 +-
 plc4j/integrations/apache-kafka/pom.xml            |   38 +-
 .../org/apache/plc4x/kafka/Plc4xSourceTask.java    |   18 +-
 .../apache-nifi/nifi-plc4x-nar/pom.xml             |   73 +-
 .../apache-nifi/nifi-plc4x-processors/pom.xml      |    4 +-
 .../apache/plc4x/nifi/Plc4xSourceProcessor.java    |    7 +-
 .../plc4x4nifi/Plc4xSinkProcessorTest.java         |    6 +-
 .../plc4x4nifi/Plc4xSourceProcessorTest.java       |    6 +-
 plc4j/integrations/apache-nifi/pom.xml             |   13 +-
 plc4j/integrations/logstash-plugin/pom.xml         |   48 +-
 .../main/java/org/apache/plc4x/logstash/Plc4x.java |    1 +
 plc4j/integrations/pom.xml                         |    2 +-
 plc4j/karaf-features/camel/pom.xml                 |   67 +
 plc4j/karaf-features/eip/pom.xml                   |   72 +
 plc4j/karaf-features/karaf-itest/pom.xml           |   31 +-
 .../java/org/apache/plc4x/karaf/FeatureIT.java     |    4 +-
 plc4j/karaf-features/pom.xml                       |   21 +-
 plc4j/karaf-features/s7/pom.xml                    |   79 +-
 .../karaf-features/s7/src/main/feature/feature.xml |   48 -
 plc4j/osgi/pom.xml                                 |   52 +
 .../apache/plc4x/java/osgi/DriverActivator.java    |   53 +
 .../apache/plc4x/java/osgi/TransportActivator.java |   54 +
 plc4j/pom.xml                                      |   44 +-
 plc4j/protocols/ads/pom.xml                        |   16 +-
 .../plc4x/java/ads/api/serial/AmsSerialFrame.java  |    2 +-
 .../plc4x/java/ads/model/AdsPlcFieldHandler.java   |  168 +-
 .../java/ads/model/AdsSubscriptionHandle.java      |    4 +-
 .../plc4x/java/ads/protocol/Plc4x2AdsProtocol.java |   29 +-
 .../ads/protocol/util/LittleEndianDecoder.java     |  206 +-
 .../protocol/util/SingleMessageRateLimiter.java    |    2 +-
 .../protocol/util/LittleEndianDecoderSpec.groovy   |   99 -
 .../util/LittleEndianDecoderSpecHurz.groovy        |   99 +
 .../protocol/util/LittleEndianEncoderSpec.groovy   |   53 -
 .../util/LittleEndianEncoderSpecHurz.groovy        |   53 +
 .../java/ads/model/AdsPlcFieldHandlerTest.java     |    5 +-
 ...load2SerialProtocolExampleConversationTest.java |    8 +-
 .../java/ads/protocol/Plc4x2AdsProtocolTest.java   |    4 +-
 .../java/ads/protocol/util/DigestUtilTest.java     |    5 +-
 plc4j/protocols/benchmarks/pom.xml                 |    4 +-
 plc4j/protocols/delta-v/pom.xml                    |    4 +-
 plc4j/protocols/driver-bases/base/pom.xml          |  101 -
 .../base/GeneratedDriverByteToMessageCodec.java    |   79 -
 .../plc4x/java/base/PlcByteToMessageCodec.java     |   59 -
 .../plc4x/java/base/PlcMessageToMessageCodec.java  |   60 -
 .../base/connection/AbstractPlcConnection.java     |  105 -
 .../plc4x/java/base/connection/ChannelFactory.java |   33 -
 .../base/connection/DefaultPlcFieldHandler.java    |  101 -
 .../java/base/connection/NettyPlcConnection.java   |  132 -
 .../java/base/connection/PlcFieldHandler.java      |   60 -
 .../plc4x/java/base/events/ConnectEvent.java       |   22 -
 .../plc4x/java/base/events/ConnectedEvent.java     |   22 -
 .../plc4x/java/base/events/DisconnectEvent.java    |   39 -
 .../plc4x/java/base/events/DisconnectedEvent.java  |   22 -
 .../messages/DefaultPlcProprietaryRequest.java     |   43 -
 .../messages/DefaultPlcProprietaryResponse.java    |   42 -
 .../java/base/messages/DefaultPlcReadRequest.java  |  113 -
 .../java/base/messages/DefaultPlcReadResponse.java |  583 ---
 .../base/messages/DefaultPlcSubscriptionEvent.java |   55 -
 .../messages/DefaultPlcSubscriptionRequest.java    |  168 -
 .../messages/DefaultPlcSubscriptionResponse.java   |   90 -
 .../messages/DefaultPlcUnsubscriptionRequest.java  |   90 -
 .../messages/DefaultPlcUnsubscriptionResponse.java |   36 -
 .../java/base/messages/DefaultPlcWriteRequest.java |  275 --
 .../base/messages/DefaultPlcWriteResponse.java     |   62 -
 .../base/messages/InternalPlcFieldRequest.java     |   31 -
 .../base/messages/InternalPlcFieldResponse.java    |   26 -
 .../java/base/messages/InternalPlcMessage.java     |   23 -
 .../messages/InternalPlcProprietaryRequest.java    |   22 -
 .../messages/InternalPlcProprietaryResponse.java   |   22 -
 .../java/base/messages/InternalPlcReadRequest.java |   26 -
 .../base/messages/InternalPlcReadResponse.java     |   31 -
 .../java/base/messages/InternalPlcRequest.java     |   24 -
 .../java/base/messages/InternalPlcResponse.java    |   25 -
 .../messages/InternalPlcSubscriptionEvent.java     |   25 -
 .../messages/InternalPlcSubscriptionRequest.java   |   36 -
 .../messages/InternalPlcSubscriptionResponse.java  |   30 -
 .../messages/InternalPlcUnsubscriptionRequest.java |   29 -
 .../InternalPlcUnsubscriptionResponse.java         |   25 -
 .../base/messages/InternalPlcWriteRequest.java     |   36 -
 .../base/messages/InternalPlcWriteResponse.java    |   28 -
 .../java/base/messages/PlcProprietaryRequest.java  |   25 -
 .../java/base/messages/PlcProprietaryResponse.java |   25 -
 .../java/base/messages/PlcProprietarySender.java   |   25 -
 .../java/base/messages/PlcProtocolMessage.java     |   25 -
 .../plc4x/java/base/messages/PlcRawMessage.java    |   46 -
 .../apache/plc4x/java/base/messages/PlcReader.java |   40 -
 .../java/base/messages/PlcRequestContainer.java    |   85 -
 .../plc4x/java/base/messages/PlcSubscriber.java    |   63 -
 .../apache/plc4x/java/base/messages/PlcWriter.java |   40 -
 .../base/messages/items/BaseDefaultFieldItem.java  |  193 -
 .../messages/items/DefaultBigDecimalFieldItem.java |  171 -
 .../messages/items/DefaultBigIntegerFieldItem.java |  171 -
 .../messages/items/DefaultBooleanFieldItem.java    |  184 -
 .../messages/items/DefaultByteArrayFieldItem.java  |   58 -
 .../base/messages/items/DefaultByteFieldItem.java  |  151 -
 .../messages/items/DefaultDoubleFieldItem.java     |  158 -
 .../base/messages/items/DefaultFloatFieldItem.java |  156 -
 .../messages/items/DefaultIntegerFieldItem.java    |  153 -
 .../messages/items/DefaultLocalDateFieldItem.java  |   50 -
 .../items/DefaultLocalDateTimeFieldItem.java       |   78 -
 .../messages/items/DefaultLocalTimeFieldItem.java  |   50 -
 .../base/messages/items/DefaultLongFieldItem.java  |  154 -
 .../base/messages/items/DefaultShortFieldItem.java |  151 -
 .../messages/items/DefaultStringFieldItem.java     |   48 -
 .../base/model/DefaultPlcConsumerRegistration.java |   85 -
 .../base/model/DefaultPlcSubscriptionHandle.java   |   62 -
 .../model/InternalPlcConsumerRegistration.java     |   32 -
 .../base/model/InternalPlcSubscriptionHandle.java  |   25 -
 .../java/base/model/SubscriptionPlcField.java      |   55 -
 .../SingleItemToSingleRequestProtocol.java         |  647 ---
 .../messages/DefaultPlcReadResponseSpec.groovy     |   86 -
 .../base/messages/items/DefaultItemsSpec.groovy    |  217 -
 .../base/connection/AbstractPlcConnectionTest.java |  101 -
 .../base/connection/NettyPlcConnectionTest.java    |   92 -
 .../messages/DefaultPlcProprietaryRequestTest.java |   48 -
 .../DefaultPlcProprietaryResponseTest.java         |   50 -
 .../base/messages/DefaultPlcReadRequestTest.java   |  116 -
 .../base/messages/DefaultPlcReadResponseTest.java  |  120 -
 .../messages/DefaultPlcSubscriptionEventTest.java  |   68 -
 .../DefaultPlcSubscriptionRequestTest.java         |  157 -
 .../DefaultPlcSubscriptionResponseTest.java        |  124 -
 .../DefaultPlcUnsubscriptionRequestTest.java       |   91 -
 .../DefaultPlcUnsubscriptionResponseTest.java      |   48 -
 .../base/messages/DefaultPlcWriteRequestTest.java  |   70 -
 .../base/messages/DefaultPlcWriteResponseTest.java |   91 -
 .../java/base/messages/PlcRawMessageTest.java      |   57 -
 .../base/messages/PlcRequestContainerTest.java     |   82 -
 .../messages/items/DefaultLongFieldItemTest.java   |  114 -
 .../model/DefaultPlcConsumerRegistrationTest.java  |   88 -
 .../model/DefaultPlcSubscriptionHandleTest.java    |   73 -
 .../java/base/model/SubscriptionPlcFieldTest.java  |   68 -
 .../SingleItemToSingleRequestProtocolTest.java     |  729 ----
 ...spockframework.report.IReportCreator.properties |   66 -
 plc4j/protocols/driver-bases/pcap-socket/pom.xml   |   67 -
 .../java/base/connection/PcapChannelFactory.java   |  101 -
 plc4j/protocols/driver-bases/pom.xml               |   46 -
 plc4j/protocols/driver-bases/raw-socket/pom.xml    |   67 -
 .../base/connection/RawSocketChannelFactory.java   |  110 -
 plc4j/protocols/driver-bases/serial/pom.xml        |   81 -
 .../connection/connection/SerialChannel.java       |  635 ---
 .../connection/SerialChannelFactory.java           |   83 -
 .../connection/SerialChannelHandler.java           |  172 -
 .../connection/SerialPollingSelector.java          |  176 -
 .../connection/connection/SerialSelectionKey.java  |   80 -
 .../connection/SerialSelectorProvider.java         |   68 -
 .../connection/connection/SerialSocketAddress.java |   47 -
 .../connection/connection/SerialSocketChannel.java |  158 -
 .../base/connection/SerialChannelFactoryTest.java  |  111 -
 plc4j/protocols/driver-bases/tcp/pom.xml           |   62 -
 .../tcp/connection/TcpSocketChannelFactory.java    |  115 -
 plc4j/protocols/driver-bases/test/pom.xml          |   97 -
 .../org/apache/plc4x/java/mock/MockDevice.java     |   50 -
 .../java/org/apache/plc4x/java/mock/MockField.java |   49 -
 .../apache/plc4x/java/mock/MockFieldHandler.java   |  103 -
 .../org/apache/plc4x/java/mock/MockFieldItem.java  |   34 -
 .../apache/plc4x/java/mock/PlcMockConnection.java  |  193 -
 .../org/apache/plc4x/java/mock/PlcMockDriver.java  |   62 -
 .../plc4x/java/mock/connection/MockConnection.java |   41 -
 .../java/mock/connection/TestChannelFactory.java   |   45 -
 .../java/mock/connection/tcp/TcpHexDumper.java     |  148 -
 .../mock/protocol/Plc4XSupportedDataTypes.java     |  257 --
 .../org/apache/plc4x/java/mock/util/Assert.java    |   86 -
 ...spockframework.report.IReportCreator.properties |   66 -
 .../services/org.apache.plc4x.java.spi.PlcDriver   |   19 -
 .../plc4x/java/mock/MockFieldHandlerTest.java      |  111 -
 .../apache/plc4x/java/mock/MockFieldItemTest.java  |   31 -
 .../org/apache/plc4x/java/mock/MockFieldTest.java  |   48 -
 .../plc4x/java/mock/PlcMockConnectionTest.java     |  164 -
 .../apache/plc4x/java/mock/PlcMockDriverTest.java  |   96 -
 plc4j/protocols/driver-bases/udp/pom.xml           |   70 -
 .../base/connection/UdpSocketChannelFactory.java   |  110 -
 .../protocol/DatagramUnpackingHandler.java         |   39 -
 plc4j/protocols/ethernet-ip/pom.xml                |  124 -
 .../java/ethernetip/model/EtherNetIpField.java     |  102 -
 .../plc4x/java/ethernetip/netty/EnipCodec.java     |   58 -
 .../ethernetip/netty/Plc4XEtherNetIpProtocol.java  |  497 ---
 .../netty/events/EtherNetIpConnectedEvent.java     |   22 -
 .../ethernetip/netty/util/EnipPlcFieldHandler.java |  110 -
 .../ethernet-ip/src/site/asciidoc/index.adoc       |   80 -
 .../site/resources/images/WAGO_enip_exporer.png    |  Bin 293168 -> 0 bytes
 plc4j/protocols/iso-on-tcp/pom.xml                 |   75 -
 .../java/isoontcp/protocol/IsoOnTcpProtocol.java   |  119 -
 .../isoontcp/protocol/model/IsoOnTcpMessage.java   |   30 -
 .../isoontcp/protocol/IsoOnTcpProtocolTest.java    |  169 -
 plc4j/protocols/iso-tp/pom.xml                     |   78 -
 .../plc4x/java/isotp/protocol/IsoTPProtocol.java   |  452 ---
 .../isotp/protocol/events/IsoTPConnectedEvent.java |   22 -
 .../java/isotp/protocol/model/IsoTPMessage.java    |   38 -
 .../protocol/model/params/CalledTsapParameter.java |   34 -
 .../model/params/CallingTsapParameter.java         |   34 -
 .../protocol/model/params/ChecksumParameter.java   |   40 -
 .../DisconnectAdditionalInformationParameter.java  |   41 -
 .../isotp/protocol/model/params/Parameter.java     |   27 -
 .../protocol/model/params/TpduSizeParameter.java   |   41 -
 .../isotp/protocol/model/params/TsapParameter.java |   36 -
 .../model/tpdus/ConnectionConfirmTpdu.java         |   34 -
 .../model/tpdus/ConnectionRequestTpdu.java         |   34 -
 .../isotp/protocol/model/tpdus/ConnectionTpdu.java |   53 -
 .../isotp/protocol/model/tpdus/CustomTpdu.java     |   33 -
 .../java/isotp/protocol/model/tpdus/DataTpdu.java  |   51 -
 .../model/tpdus/DisconnectConfirmTpdu.java         |   33 -
 .../model/tpdus/DisconnectRequestTpdu.java         |   41 -
 .../isotp/protocol/model/tpdus/DisconnectTpdu.java |   46 -
 .../java/isotp/protocol/model/tpdus/ErrorTpdu.java |   47 -
 .../java/isotp/protocol/model/tpdus/Tpdu.java      |   64 -
 .../isotp/protocol/model/types/DeviceGroup.java    |   51 -
 .../protocol/model/types/DisconnectReason.java     |   64 -
 .../isotp/protocol/model/types/ParameterCode.java  |   75 -
 .../isotp/protocol/model/types/ProtocolClass.java  |   53 -
 .../isotp/protocol/model/types/RejectCause.java    |   52 -
 .../java/isotp/protocol/model/types/TpduCode.java  |   62 -
 .../java/isotp/protocol/model/types/TpduSize.java  |   78 -
 .../java/isotp/protocol/IsoTPProtocolTest.java     |  635 ---
 .../isotp/protocol/model/IsoTPMessageTests.java    |   61 -
 .../protocol/model/params/ParameterTests.java      |   62 -
 .../protocol/model/params/TsapParameterTests.java  |   60 -
 .../protocol/model/tpdus/IsotpModelTests.java      |  185 -
 .../isotp/protocol/model/types/IsotpTypeTests.java |  216 -
 plc4j/protocols/modbus/pom.xml                     |  129 -
 .../items/DefaultModbusByteArrayFieldItem.java     |  258 --
 .../plc4x/java/modbus/model/CoilModbusField.java   |   45 -
 .../modbus/model/MaskWriteRegisterModbusField.java |   91 -
 .../plc4x/java/modbus/model/ModbusField.java       |   74 -
 .../model/ReadDiscreteInputsModbusField.java       |   45 -
 .../model/ReadHoldingRegistersModbusField.java     |   45 -
 .../model/ReadInputRegistersModbusField.java       |   45 -
 .../java/modbus/model/RegisterModbusField.java     |   46 -
 .../java/modbus/netty/Plc4XModbusProtocol.java     |  528 ---
 .../java/modbus/util/ModbusPlcFieldHandler.java    |  114 -
 .../plc4x/java/modbus/ManualPlc4XModbusTest.java   |  138 -
 .../items/DefaultModbusByteArrayFieldItemTest.java |  170 -
 .../java/modbus/netty/Plc4XModbusProtocolTest.java |  410 --
 .../modbus/src/test/resources/logback.xml          |   38 -
 plc4j/protocols/pom.xml                            |   12 +-
 plc4j/protocols/s7/LINKS.md                        |   25 -
 plc4j/protocols/s7/pom.xml                         |  103 -
 .../org/apache/plc4x/java/s7/model/S7Field.java    |  275 --
 .../plc4x/java/s7/netty/Plc4XNettyException.java   |   37 -
 .../plc4x/java/s7/netty/Plc4XS7Protocol.java       |  844 ----
 .../org/apache/plc4x/java/s7/netty/S7Protocol.java |  885 ----
 .../java/s7/netty/events/S7ConnectedEvent.java     |   22 -
 .../java/s7/netty/model/messages/S7Message.java    |   99 -
 .../s7/netty/model/messages/S7RequestMessage.java  |   51 -
 .../s7/netty/model/messages/S7ResponseMessage.java |   50 -
 .../messages/SetupCommunicationRequestMessage.java |   35 -
 .../netty/model/params/CpuServicesParameter.java   |   54 -
 .../model/params/CpuServicesRequestParameter.java  |   30 -
 .../model/params/CpuServicesResponseParameter.java |   50 -
 .../java/s7/netty/model/params/S7Parameter.java    |   27 -
 .../model/params/SetupCommunicationParameter.java  |   52 -
 .../java/s7/netty/model/params/VarParameter.java   |   54 -
 .../model/params/items/S7AnyVarParameterItem.java  |   94 -
 .../netty/model/params/items/VarParameterItem.java |   27 -
 .../netty/model/payloads/CpuServicesPayload.java   |   71 -
 .../java/s7/netty/model/payloads/S7Payload.java    |   27 -
 .../java/s7/netty/model/payloads/VarPayload.java   |   60 -
 .../netty/model/payloads/items/VarPayloadItem.java |   48 -
 .../netty/model/payloads/ssls/SslDataRecord.java   |   25 -
 .../ssls/SslModuleIdentificationDataRecord.java    |   66 -
 .../types/CpuServicesParameterFunctionGroup.java   |   58 -
 .../CpuServicesParameterSubFunctionGroup.java      |   58 -
 .../netty/model/types/DataTransportErrorCode.java  |   62 -
 .../s7/netty/model/types/DataTransportSize.java    |   64 -
 .../s7/netty/model/types/HeaderErrorClass.java     |   55 -
 .../java/s7/netty/model/types/MemoryArea.java      |   83 -
 .../java/s7/netty/model/types/MessageType.java     |   55 -
 .../java/s7/netty/model/types/ParameterError.java  |   70 -
 .../java/s7/netty/model/types/ParameterType.java   |   71 -
 .../s7/netty/model/types/SpecificationType.java    |   52 -
 .../plc4x/java/s7/netty/model/types/SslId.java     |   97 -
 .../java/s7/netty/model/types/TransportSize.java   |  196 -
 .../netty/model/types/VariableAddressingMode.java  |   63 -
 .../strategies/DefaultS7MessageProcessor.java      |  496 ---
 .../s7/netty/strategies/S7MessageProcessor.java    |   38 -
 .../java/s7/netty/util/S7PlcFieldHandler.java      |  570 ---
 .../s7/netty/util/S7RequestSizeCalculator.java     |  158 -
 .../s7/netty/util/S7ResponseSizeEstimator.java     |  171 -
 .../plc4x/java/s7/netty/util/S7SizeHelper.java     |  143 -
 .../plc4x/java/s7/types/S7ControllerType.java      |   30 -
 .../plc4x/java/s7/utils/S7TsapIdEncoder.java       |   48 -
 plc4j/protocols/s7/src/site/asciidoc/index.adoc    |  101 -
 .../plc4x/java/s7/netty/Plc4XS7ProtocolSpec.groovy |  278 --
 .../java/org/apache/plc4x/java/issues/PLC4X56.java |   81 -
 .../org/apache/plc4x/java/s7/PcapGenerator.java    |  318 --
 .../apache/plc4x/java/s7/model/S7FieldTests.java   |  108 -
 .../plc4x/java/s7/netty/Plc4XS7ProtocolTest.java   |  184 -
 .../apache/plc4x/java/s7/netty/S7ProtocolTest.java |  424 --
 .../s7/netty/model/messages/S7MessageTests.java    |  191 -
 .../s7/netty/model/params/S7ParameterTests.java    |   80 -
 .../s7/netty/model/payloads/S7PayloadTests.java    |  132 -
 .../java/s7/netty/model/types/S7TypeTests.java     |  150 -
 .../strategies/DefaultS7MessageProcessorTest.java  |  931 -----
 .../java/s7/netty/util/S7PlcFieldHandlerTest.java  |  367 --
 .../s7/netty/util/S7RequestSizeCalculatorTest.java |  141 -
 .../s7/netty/util/S7ResponseSizeEstimatorTest.java |  122 -
 .../plc4x/java/s7/netty/util/S7SizeHelperTest.java |  119 -
 .../apache/plc4x/java/s7/types/S7DataTypeTest.java |   57 -
 .../plc4x/java/s7/utils/S7TsapIdEncoderTest.java   |   68 -
 plc4j/spi/pom.xml                                  |  102 +
 .../apache/plc4x/java/spi/ConversationContext.java |  102 +
 .../spi/GeneratedDriverByteToMessageCodec.java     |  101 +
 .../apache/plc4x/java/spi/Plc4xNettyWrapper.java   |  224 ++
 .../apache/plc4x/java/spi/Plc4xProtocolBase.java   |   91 +
 .../plc4x/java/spi/PlcMessageToMessageCodec.java   |   60 +
 .../java/spi/configuration/Configuration.java      |   23 +
 .../spi/configuration/ConfigurationFactory.java    |  263 ++
 .../ConfigurationParameterConverter.java           |   44 +
 .../java/spi/configuration/HasConfiguration.java   |   36 +
 .../annotations/ConfigurationParameter.java        |   33 +
 .../annotations/ParameterConverter.java            |   42 +
 .../spi/configuration/annotations/Required.java    |   30 +
 .../annotations/defaults/BooleanDefaultValue.java  |   33 +
 .../annotations/defaults/DoubleDefaultValue.java   |   33 +
 .../annotations/defaults/IntDefaultValue.java      |   33 +
 .../annotations/defaults/LongDefaultValue.java     |   33 +
 .../annotations/defaults/StringDefaultValue.java   |   33 +
 .../java/spi/connection/AbstractPlcConnection.java |  209 +
 .../spi/connection/ChannelExposingConnection.java  |   27 +
 .../plc4x/java/spi/connection/ChannelFactory.java  |   37 +
 .../spi/connection/DefaultNettyPlcConnection.java  |  189 +
 .../spi/connection/DefaultPlcFieldHandler.java     |   97 +
 .../java/spi/connection/GeneratedDriverBase.java   |  154 +
 .../connection/GeneratedProtocolMessageCodec.java  |   62 +
 .../java/spi/connection/NettyChannelFactory.java   |  175 +
 .../plc4x/java/spi/connection/PlcFieldHandler.java |   58 +
 .../spi/connection/ProtocolStackConfigurer.java    |   31 +
 .../connection/SingleProtocolStackConfigurer.java  |  173 +
 .../plc4x/java/spi/context/DriverContext.java      |   22 +
 .../java/spi/events/CloseConnectionEvent.java      |   23 +
 .../apache/plc4x/java/spi/events/ConnectEvent.java |   22 +
 .../plc4x/java/spi/events/ConnectedEvent.java      |   22 +
 .../plc4x/java/spi/events/DisconnectEvent.java     |   39 +
 .../plc4x/java/spi/events/DisconnectedEvent.java   |   22 +
 .../exceptions/InternalPlcRuntimeException.java    |   41 +
 .../java/spi/generation/EvaluationHelper.java      |   58 +
 .../apache/plc4x/java/spi/generation/Message.java  |   34 +
 .../plc4x/java/spi/generation/MessageIO.java       |   23 +
 .../plc4x/java/spi/generation/MessageInput.java    |   25 +
 .../plc4x/java/spi/generation/MessageOutput.java   |   25 +
 .../plc4x/java/spi/generation/ParseException.java  |   32 +
 .../plc4x/java/spi/generation/ReadBuffer.java      |  287 ++
 .../plc4x/java/spi/generation/StaticHelper.java    |  139 +
 .../plc4x/java/spi/generation/WriteBuffer.java     |  230 ++
 .../java/spi/generation/io/MyDefaultBitInput.java  |   38 +
 .../java/spi/generation/io/MyDefaultBitOutput.java |   37 +
 .../spi/internal/DefaultExpectRequestContext.java  |  128 +
 .../spi/internal/DefaultSendRequestContext.java    |  138 +
 .../java/spi/internal/HandlerRegistration.java     |   86 +
 .../spi/messages/DefaultPlcProprietaryRequest.java |   50 +
 .../messages/DefaultPlcProprietaryResponse.java    |   49 +
 .../java/spi/messages/DefaultPlcReadRequest.java   |  139 +
 .../java/spi/messages/DefaultPlcReadResponse.java  |  711 ++++
 .../spi/messages/DefaultPlcSubscriptionEvent.java  |   65 +
 .../messages/DefaultPlcSubscriptionRequest.java    |  183 +
 .../messages/DefaultPlcSubscriptionResponse.java   |  102 +
 .../messages/DefaultPlcUnsubscriptionRequest.java  |  101 +
 .../messages/DefaultPlcUnsubscriptionResponse.java |   41 +
 .../java/spi/messages/DefaultPlcWriteRequest.java  |  298 ++
 .../java/spi/messages/DefaultPlcWriteResponse.java |   72 +
 .../java/spi/messages/InternalPlcFieldRequest.java |   33 +
 .../spi/messages/InternalPlcFieldResponse.java     |   28 +
 .../java/spi/messages/InternalPlcMessage.java      |   26 +
 .../messages/InternalPlcProprietaryRequest.java    |   25 +
 .../messages/InternalPlcProprietaryResponse.java   |   25 +
 .../java/spi/messages/InternalPlcReadRequest.java  |   28 +
 .../java/spi/messages/InternalPlcReadResponse.java |   33 +
 .../java/spi/messages/InternalPlcRequest.java      |   26 +
 .../java/spi/messages/InternalPlcResponse.java     |   27 +
 .../spi/messages/InternalPlcSubscriptionEvent.java |   27 +
 .../messages/InternalPlcSubscriptionRequest.java   |   38 +
 .../messages/InternalPlcSubscriptionResponse.java  |   31 +
 .../messages/InternalPlcUnsubscriptionRequest.java |   31 +
 .../InternalPlcUnsubscriptionResponse.java         |   27 +
 .../java/spi/messages/InternalPlcWriteRequest.java |   38 +
 .../spi/messages/InternalPlcWriteResponse.java     |   30 +
 .../java/spi/messages/PlcProprietaryRequest.java   |   27 +
 .../java/spi/messages/PlcProprietaryResponse.java  |   27 +
 .../java/spi/messages/PlcProprietarySender.java    |   28 +
 .../java/spi/messages/PlcProtocolMessage.java      |   28 +
 .../plc4x/java/spi/messages/PlcRawMessage.java     |   48 +
 .../apache/plc4x/java/spi/messages/PlcReader.java  |   39 +
 .../java/spi/messages/PlcRequestContainer.java     |   85 +
 .../plc4x/java/spi/messages/PlcSubscriber.java     |   63 +
 .../apache/plc4x/java/spi/messages/PlcWriter.java  |   39 +
 .../java/spi/messages/utils/FieldValueItem.java    |   42 +
 .../java/spi/messages/utils/ResponseItem.java      |   41 +
 .../spi/model/DefaultPlcConsumerRegistration.java  |   85 +
 .../spi/model/DefaultPlcSubscriptionHandle.java    |   62 +
 .../spi/model/InternalPlcConsumerRegistration.java |   32 +
 .../spi/model/InternalPlcSubscriptionHandle.java   |   25 +
 .../plc4x/java/spi/model/SubscriptionPlcField.java |   55 +
 .../plc4x/java/spi/optimizer/BaseOptimizer.java    |  180 +
 .../java/spi/optimizer/SingleFieldOptimizer.java   |   71 +
 .../SingleItemToSingleRequestProtocol.java         |  672 ++++
 .../apache/plc4x/java/spi/request/PlcRequest.java  |   28 +
 .../spi/transaction/RequestTransactionManager.java |  194 +
 .../apache/plc4x/java/spi/transport/Transport.java |   32 +
 .../java/spi/transport/TransportConfiguration.java |   25 +
 .../org/apache/plc4x/java/spi/types/FieldType.java |   47 +
 .../internal/DefaultSendRequestContextTest.java    |  116 +
 .../optimizer/RequestTransactionManagerTest.java   |  176 +
 .../java/spi/parser/ConnectionParserTest.java      |   72 +
 plc4j/src/site/asciidoc/index.adoc                 |  100 -
 plc4j/src/site/asciidoc/users/gettingstarted.adoc  |  178 -
 plc4j/tools/capture-replay/README.adoc             |   38 +
 plc4j/tools/capture-replay/pom.xml                 |   99 +
 .../java/utils/capturereplay/CaptureReplay.java    |  114 +
 .../plc4x/java/utils/capturereplay/CliOptions.java |  119 +
 .../capture-replay}/src/main/resources/logback.xml |    0
 plc4j/tools/connection-pool/pom.xml                |   52 +
 .../plc4x/java/utils/connectionpool/PoolKey.java   |    0
 .../java/utils/connectionpool/PoolKeyFactory.java  |  104 +
 .../connectionpool/PooledPlcConnectionFactory.java |    0
 .../connectionpool/PooledPlcDriverManager.java     |    0
 .../utils/connectionpool/PoolKeyFactoryTest.java   |   93 +
 .../utils/connectionpool/PooledDummyDriver.java    |   52 +
 .../connectionpool/PooledPlcDriverManagerTest.java |  367 ++
 .../services/org.apache.plc4x.java.api.PlcDriver}  |    0
 .../connection-pool/src/test/resources/logback.xml |    0
 plc4j/tools/interop/pom.xml                        |  218 +
 .../interop/src/assembly/assembly.xml              |    0
 .../java/org/apache/plc4x/interop/impl/Client.java |    0
 .../org/apache/plc4x/interop/impl/Handler.java     |  163 +
 .../java/org/apache/plc4x/interop/impl/Server.java |   98 +
 plc4j/tools/opm/pom.xml                            |   89 +
 .../org/apache/plc4x/java/opm/AliasRegistry.java   |    0
 .../org/apache/plc4x/java/opm/OPMException.java    |    0
 .../java/org/apache/plc4x/java/opm/OpmUtils.java   |    0
 .../java/org/apache/plc4x/java/opm/PlcEntity.java  |    0
 .../plc4x/java/opm/PlcEntityInterceptor.java       |  565 +++
 .../apache/plc4x/java/opm/PlcEntityManager.java    |    0
 .../java/org/apache/plc4x/java/opm/PlcField.java   |    0
 .../apache/plc4x/java/opm/SimpleAliasRegistry.java |    0
 .../opm/src/site/asciidoc/opm/using-opm.adoc       |    0
 plc4j/{utils => tools}/opm/src/site/site.xml       |    0
 .../apache/plc4x/java/opm/ConnectedEntityTest.java |  119 +
 .../apache/plc4x/java/opm/OPMExceptionTest.java    |    0
 .../org/apache/plc4x/java/opm/OpmUtilsTest.java    |   66 +
 .../plc4x/java/opm/PlcEntityInterceptorTest.java   |  234 ++
 .../java/opm/PlcEntityManagerComplexTest.java      |  467 +++
 .../plc4x/java/opm/PlcEntityManagerTest.java       |  319 ++
 .../plc4x/java/opm/SimpleAliasRegistryTest.java    |   79 +
 .../opm/src/test/resources/logback.xml             |    0
 plc4j/tools/pom.xml                                |   52 +
 plc4j/{utils => tools}/scraper/README.md           |    0
 plc4j/tools/scraper/pom.xml                        |  106 +
 .../apache/plc4x/java/scraper/ResultHandler.java   |    0
 .../org/apache/plc4x/java/scraper/ScrapeJob.java   |    0
 .../apache/plc4x/java/scraper/ScrapeJobImpl.java   |    0
 .../org/apache/plc4x/java/scraper/Scraper.java     |    0
 .../org/apache/plc4x/java/scraper/ScraperImpl.java |    0
 .../org/apache/plc4x/java/scraper/ScraperTask.java |    0
 .../apache/plc4x/java/scraper/ScraperTaskImpl.java |    0
 .../java/scraper/config/JobConfiguration.java      |    0
 .../config/JobConfigurationClassicImpl.java        |    0
 .../config/JobConfigurationClassicImplBuilder.java |    0
 .../java/scraper/config/JobConfigurationImpl.java  |    0
 .../java/scraper/config/ScraperConfiguration.java  |    0
 .../config/ScraperConfigurationClassicImpl.java    |    0
 .../ScraperConfigurationClassicImplBuilder.java    |    0
 .../JobConfigurationTriggeredImpl.java             |    0
 .../JobConfigurationTriggeredImplBuilder.java      |    0
 .../ScraperConfigurationTriggeredImpl.java         |    0
 .../ScraperConfigurationTriggeredImplBuilder.java  |    0
 .../exception/ScraperConfigurationException.java   |    0
 .../java/scraper/exception/ScraperException.java   |    0
 .../triggeredscraper/TriggeredScrapeJobImpl.java   |    0
 .../triggeredscraper/TriggeredScraperImpl.java     |  369 ++
 .../triggeredscraper/TriggeredScraperMBean.java    |    0
 .../triggeredscraper/TriggeredScraperTask.java     |    0
 .../TriggeredScraperTaskMBean.java                 |    0
 .../triggerhandler/TriggerConfiguration.java       |  735 ++++
 .../triggerhandler/TriggerHandler.java             |    0
 .../triggerhandler/TriggerHandlerImpl.java         |  149 +
 .../triggerhandler/collector/TriggerCollector.java |    0
 .../collector/TriggerCollectorImpl.java            |    0
 .../scraper/util/PercentageAboveThreshold.java     |    0
 .../apache/plc4x/java/s7/ManualS7PlcDriverMT.java  |    0
 .../java/scraper/ScraperConfigurationTest.java     |    0
 .../apache/plc4x/java/scraper/ScraperRunner.java   |    0
 .../apache/plc4x/java/scraper/ScraperTaskTest.java |  113 +
 .../org/apache/plc4x/java/scraper/ScraperTest.java |  175 +
 .../plc4x/java/scraper/TriggeredScraperRunner.java |    0
 .../java/scraper/TriggeredScraperRunnerModbus.java |   62 +
 .../config/ScraperConfigurationBuilderTest.java    |    0
 .../triggeredscraper/TriggeredScraperImplTest.java |  116 +
 .../triggerhandler/TriggerConfigurationTest.java   |  147 +
 .../scraper/src/test/resources/config.json         |    0
 .../scraper/src/test/resources/config.yml          |    0
 .../scraper/src/test/resources/example.yml         |    0
 .../test/resources/example_triggered_scraper.yml   |   74 +
 .../resources/example_triggered_scraper_modbus.yml |    0
 .../src/test/resources/example_with_strings.yml    |    0
 .../scraper/src/test/resources/logback-test.xml    |    0
 .../scraper/src/test/resources/logback.xml         |    0
 .../src/test/resources/mock-scraper-config.yml     |   57 +
 plc4j/transports/pcap-replay/pom.xml               |   91 +
 .../pcapreplay/PcapReplayChannelFactory.java       |   72 +
 .../transport/pcapreplay/PcapReplayTransport.java  |   50 +
 .../PcapReplayTransportConfiguration.java          |   33 +
 .../org.apache.plc4x.java.spi.transport.Transport  |   20 +
 plc4j/transports/pcap-shared/pom.xml               |   48 +
 .../transport/pcap/PcapTransportConfiguration.java |   41 +
 plc4j/transports/pom.xml                           |   46 +
 plc4j/transports/raw-socket/pom.xml                |   87 +
 .../rawsocket/RawSocketChannelFactory.java         |   72 +
 .../transport/rawsocket/RawSocketTransport.java    |   43 +
 .../rawsocket/RawSocketTransportConfiguration.java |   25 +
 .../org.apache.plc4x.java.spi.transport.Transport  |   20 +
 plc4j/transports/serial/pom.xml                    |  101 +
 .../plc4x/java/transport/serial/SerialChannel.java |  635 +++
 .../java/transport/serial/SerialChannelConfig.java |  109 +
 .../transport/serial/SerialChannelFactory.java     |   69 +
 .../transport/serial/SerialChannelHandler.java     |  185 +
 .../transport/serial/SerialChannelOptions.java     |   49 +
 .../transport/serial/SerialPollingSelector.java    |  170 +
 .../java/transport/serial/SerialSelectionKey.java  |   86 +
 .../transport/serial/SerialSelectorProvider.java   |   68 +
 .../java/transport/serial/SerialSocketAddress.java |   50 +
 .../java/transport/serial/SerialSocketChannel.java |  158 +
 .../java/transport/serial/SerialTransport.java     |   42 +
 .../serial/SerialTransportConfiguration.java       |   40 +
 .../org.apache.plc4x.java.spi.transport.Transport  |   20 +
 .../base/connection/SerialChannelFactoryTest.java  |  118 +
 plc4j/transports/tcp/pom.xml                       |   77 +
 .../java/transport/tcp/TcpChannelFactory.java      |   62 +
 .../plc4x/java/transport/tcp/TcpTransport.java     |   81 +
 .../transport/tcp/TcpTransportConfiguration.java   |   49 +
 .../org.apache.plc4x.java.spi.transport.Transport  |   20 +
 plc4j/transports/test/pom.xml                      |   82 +
 .../java/io/netty/bootstrap/EmbeddedBootstrap.java |   45 +
 .../java/io/netty/bootstrap/EventLoopProvider.java |   27 +
 .../channel/embedded/Plc4xEmbeddedChannel.java     |  892 ++++
 .../channel/embedded/Plc4xEmbeddedEventLoop.java   |  147 +
 .../java/transport/test/TestChannelFactory.java    |   71 +
 .../java/transport/test/TestSocketAddress.java     |   29 +
 .../plc4x/java/transport/test/TestTransport.java   |   42 +
 .../transport/test/TestTransportConfiguration.java |   25 +
 ...spockframework.report.IReportCreator.properties |    0
 .../org.apache.plc4x.java.spi.transport.Transport  |   20 +
 plc4j/transports/udp/pom.xml                       |   86 +
 .../java/transport/udp/UdpChannelFactory.java      |   65 +
 .../plc4x/java/transport/udp/UdpTransport.java     |   81 +
 .../transport/udp/UdpTransportConfiguration.java   |   31 +
 .../udp/protocol/DatagramUnpackingHandler.java     |   39 +
 .../org.apache.plc4x.java.spi.transport.Transport  |   20 +
 plc4j/utils/connection-pool/pom.xml                |   51 -
 .../java/utils/connectionpool/PoolKeyFactory.java  |  104 -
 .../utils/connectionpool/PoolKeyFactoryTest.java   |   93 -
 .../utils/connectionpool/PooledDummyDriver.java    |   52 -
 .../connectionpool/PooledPlcDriverManagerTest.java |  367 --
 plc4j/utils/driver-base-java/pom.xml               |   42 -
 .../github/jinahya/bit/io/MyDefaultBitInput.java   |   35 -
 .../apache/plc4x/java/utils/EvaluationHelper.java  |   58 -
 .../java/org/apache/plc4x/java/utils/Message.java  |   26 -
 .../org/apache/plc4x/java/utils/MessageIO.java     |   23 -
 .../org/apache/plc4x/java/utils/MessageInput.java  |   25 -
 .../org/apache/plc4x/java/utils/MessageOutput.java |   25 -
 .../apache/plc4x/java/utils/ParseException.java    |   32 -
 .../org/apache/plc4x/java/utils/ReadBuffer.java    |  254 --
 .../org/apache/plc4x/java/utils/WriteBuffer.java   |  208 -
 plc4j/utils/interop/pom.xml                        |  216 -
 .../org/apache/plc4x/interop/impl/Handler.java     |  160 -
 .../java/org/apache/plc4x/interop/impl/Server.java |   91 -
 plc4j/utils/opm/pom.xml                            |  103 -
 .../plc4x/java/opm/PlcEntityInterceptor.java       |  569 ---
 .../apache/plc4x/java/opm/ConnectedEntityTest.java |  119 -
 .../org/apache/plc4x/java/opm/OpmUtilsTest.java    |   66 -
 .../plc4x/java/opm/PlcEntityInterceptorTest.java   |  214 -
 .../java/opm/PlcEntityManagerComplexTest.java      |  460 ---
 .../plc4x/java/opm/PlcEntityManagerTest.java       |  318 --
 .../plc4x/java/opm/SimpleAliasRegistryTest.java    |   79 -
 plc4j/utils/pcap-replay/pom.xml                    |   96 +
 .../utils/pcapreplay/netty/PcapReplayChannel.java  |  283 ++
 .../netty/address/PcapReplayAddress.java           |   39 +
 .../netty/config/PcapReplayChannelConfig.java      |   81 +
 .../netty/config/PcapReplayChannelOption.java      |   40 +
 plc4j/utils/pcap-shared/pom.xml                    |   81 +
 .../pcap/netty/address/PcapSocketAddress.java      |   25 +
 .../utils/pcap/netty/config/PcapChannelConfig.java |  152 +
 .../utils/pcap/netty/config/PcapChannelOption.java |   51 +
 .../utils/pcap/netty/exception/PcapException.java  |   34 +
 .../utils/pcap/netty/handlers/PacketHandler.java   |   27 +
 .../pcap/netty/handlers/TcpIpPacketHandler.java    |   41 +
 .../pcap/netty/handlers/UdpIpPacketHandler.java    |   41 +
 plc4j/utils/pcap-sockets/pom.xml                   |   90 -
 .../utils/pcapsockets/PcapSocketException.java     |   34 -
 .../utils/pcapsockets/netty/PacketHandler.java     |   27 -
 .../utils/pcapsockets/netty/PcapSocketAddress.java |   60 -
 .../utils/pcapsockets/netty/PcapSocketChannel.java |  301 --
 .../pcapsockets/netty/PcapSocketChannelConfig.java |   92 -
 .../pcapsockets/netty/PcapSocketChannelOption.java |   39 -
 .../pcapsockets/netty/TcpIpPacketHandler.java      |   41 -
 .../pcapsockets/netty/UdpIpPacketHandler.java      |   41 -
 plc4j/utils/pom.xml                                |   25 +-
 plc4j/utils/protocol-test-utils/pom.xml            |   72 -
 .../protocol/test/ProtocolTestsuiteRunner.java     |  175 -
 .../exceptions/ProtocolTestsuiteException.java     |   32 -
 .../protocol/test/model/ProtocolTestsuite.java     |   48 -
 .../apache/plc4x/protocol/test/model/Testcase.java |   61 -
 .../src/main/resources/schemas/testsuite.xsd       |   55 -
 plc4j/utils/raw-sockets/pom.xml                    |   10 +-
 .../java/utils/rawsockets/RawSocketException.java  |   34 -
 .../utils/rawsockets/attic/RawEthernetSocket.java  |   20 +-
 .../java/utils/rawsockets/attic/RawIpSocket.java   |   52 +-
 .../java/utils/rawsockets/netty/PacketHandler.java |   27 -
 .../utils/rawsockets/netty/RawSocketAddress.java   |   45 -
 .../utils/rawsockets/netty/RawSocketChannel.java   |   34 +-
 .../rawsockets/netty/RawSocketChannelConfig.java   |   66 -
 .../rawsockets/netty/RawSocketChannelOption.java   |   32 -
 .../utils/rawsockets/netty/RawSocketIpAddress.java |   46 -
 .../utils/rawsockets/netty/TcpIpPacketHandler.java |   41 -
 .../utils/rawsockets/netty/UdpIpPacketHandler.java |   41 -
 .../rawsockets/netty/address/RawSocketAddress.java |   37 +
 .../netty/config/RawSocketChannelConfig.java       |   30 +
 .../utils/rawsockets/attic/RawIpSocketTest.java    |   14 +-
 .../rawsockets/netty/RawSocketChannelTest.java     |   14 +-
 plc4j/utils/scraper/pom.xml                        |  145 -
 .../triggeredscraper/TriggeredScraperImpl.java     |  370 --
 .../triggerhandler/TriggerConfiguration.java       |  722 ----
 .../triggerhandler/TriggerHandlerImpl.java         |  113 -
 .../apache/plc4x/java/scraper/ScraperTaskTest.java |  113 -
 .../org/apache/plc4x/java/scraper/ScraperTest.java |  175 -
 .../java/scraper/TriggeredScraperRunnerModbus.java |   69 -
 .../triggeredscraper/TriggeredScraperImplTest.java |  118 -
 .../triggerhandler/TriggerConfigurationTest.java   |  151 -
 .../test/resources/example_triggered_scraper.yml   |   74 -
 .../src/test/resources/mock-scraper-config.yml     |   57 -
 plc4j/utils/test-utils/pom.xml                     |   76 +-
 .../apache/plc4x/test/RequirePcapCondition.java    |    4 +-
 .../apache/plc4x/test/RequirePcapNgCondition.java  |    4 +-
 .../plc4x/test/driver/DriverTestsuiteRunner.java   |  409 ++
 .../java/org/apache/plc4x/test/driver/Lalala.java  |   44 +
 .../exceptions/DriverTestsuiteException.java       |   32 +
 .../plc4x/test/driver/model/DriverTestsuite.java   |   69 +
 .../apache/plc4x/test/driver/model/StepType.java   |   42 +
 .../apache/plc4x/test/driver/model/TestStep.java   |   47 +
 .../apache/plc4x/test/driver/model/Testcase.java   |   49 +
 .../plc4x/test/driver/model/api/TestField.java     |   45 +
 .../test/driver/model/api/TestFieldRequest.java    |   35 +
 .../test/driver/model/api/TestReadRequest.java     |   33 +
 .../plc4x/test/driver/model/api/TestRequest.java   |   25 +
 .../test/driver/model/api/TestWriteRequest.java    |   33 +
 .../ParserSerializerTestsuiteRunner.java           |  237 ++
 .../ParserSerializerTestsuiteException.java        |   32 +
 .../model/ParserSerializerTestsuite.java           |   48 +
 .../test/parserserializer/model/Testcase.java      |   68 +
 .../main/resources/schemas/driver-testsuite.xsd    |  132 +
 .../schemas/parser-serializer-testsuite.xsd        |   63 +
 pom.xml                                            |  480 +--
 protocols/ab-eth/pom.xml                           |    4 +-
 protocols/amsads/pom.xml                           |    4 +-
 .../main/resources/protocols/amsads/amsads.mspec   |   24 +-
 protocols/bacnetip/pom.xml                         |    4 +-
 .../resources/protocols/bacnetip/bacnetip.mspec    |   14 +-
 protocols/df1/pom.xml                              |    4 +-
 protocols/eip/pom.xml                              |   43 +
 .../org/apache/plc4x/protocol/eip/EipProtocol.java |   46 +
 ...e.plc4x.plugins.codegenerator.protocol.Protocol |   19 +
 .../eip/src/main/resources/protocols/eip/eip.mspec |  133 +
 protocols/firmata/pom.xml                          |   43 +
 .../plc4x/protocol/firmata/FirmataProtocol.java    |   46 +
 ...e.plc4x.plugins.codegenerator.protocol.Protocol |   19 +
 .../main/resources/protocols/firmata/firmata.mspec |  142 +
 protocols/knxnetip/pom.xml                         |    4 +-
 .../apache/plc4x/protocol/knxnetip/Ets5Types.java  |   46 -
 ...e.plc4x.plugins.codegenerator.protocol.Protocol |    1 -
 .../main/resources/protocols/knxnetip/ets5.mspec   |  172 -
 .../resources/protocols/knxnetip/knxnetip.mspec    |  158 +-
 protocols/modbus/pom.xml                           |   43 +
 .../plc4x/protocol/modbus/ModbusProtocol.java      |   46 +
 ...e.plc4x.plugins.codegenerator.protocol.Protocol |   19 +
 .../main/resources/protocols/modbus/modbus.mspec   |  288 ++
 protocols/pom.xml                                  |   28 +-
 protocols/proxy/pom.xml                            |    2 +-
 protocols/s7/pom.xml                               |    4 +-
 ...e.plc4x.plugins.codegenerator.protocol.Protocol |    2 +-
 .../s7/src/main/resources/protocols/s7/s7.mspec    |  229 +-
 sandbox/code-gen/pom.xml                           |   40 +-
 .../plc4x/codegen/ast/AssignementExpression.java   |    6 +-
 .../apache/plc4x/codegen/ast/BinaryExpression.java |    6 +-
 .../java/org/apache/plc4x/codegen/ast/Block.java   |    6 +-
 .../apache/plc4x/codegen/ast/CallExpression.java   |    6 +-
 .../apache/plc4x/codegen/ast/ClassDeclaration.java |    6 +-
 .../plc4x/codegen/ast/ConstantExpression.java      |    6 +-
 .../plc4x/codegen/ast/ConstructorDeclaration.java  |    6 +-
 .../plc4x/codegen/ast/DeclarationStatement.java    |    6 +-
 .../apache/plc4x/codegen/ast/FieldDeclaration.java |    6 +-
 .../apache/plc4x/codegen/ast/FieldReference.java   |    6 +-
 .../org/apache/plc4x/codegen/ast/FileNode.java     |    6 +-
 .../org/apache/plc4x/codegen/ast/IfStatement.java  |    6 +-
 .../apache/plc4x/codegen/ast/JavaGenerator.java    |   69 +-
 .../org/apache/plc4x/codegen/ast/LineComment.java  |    6 +-
 .../java/org/apache/plc4x/codegen/ast/Method.java  |    6 +-
 .../apache/plc4x/codegen/ast/MethodDefinition.java |    6 +-
 .../apache/plc4x/codegen/ast/NewExpression.java    |    6 +-
 .../plc4x/codegen/ast/ParameterExpression.java     |    6 +-
 .../org/apache/plc4x/codegen/ast/Primitive.java    |    6 +-
 .../apache/plc4x/codegen/ast/PythonGenerator.java  |   69 +-
 .../apache/plc4x/codegen/ast/ReturnStatement.java  |    6 +-
 .../apache/plc4x/codegen/ast/TypeDefinition.java   |    6 +-
 .../plc4x/codegen/python/AbstractNodeVisitor.java  |   96 +-
 .../org/apache/plc4x/codegen/python/AddNode.java   |    3 +-
 .../org/apache/plc4x/codegen/python/AliasNode.java |    3 +-
 .../plc4x/codegen/python/AnnAssignerNode.java      |    3 +-
 .../org/apache/plc4x/codegen/python/ArgNode.java   |    3 +-
 .../apache/plc4x/codegen/python/ArgumentsNode.java |    3 +-
 .../apache/plc4x/codegen/python/AssignNode.java    |    3 +-
 .../apache/plc4x/codegen/python/AttributeNode.java |    3 +-
 .../apache/plc4x/codegen/python/AugAssignNode.java |    3 +-
 .../org/apache/plc4x/codegen/python/BinOpNode.java |    3 +-
 .../org/apache/plc4x/codegen/python/CallNode.java  |    3 +-
 .../apache/plc4x/codegen/python/ClassDefNode.java  |    3 +-
 .../apache/plc4x/codegen/python/CompareNode.java   |    3 +-
 .../org/apache/plc4x/codegen/python/EqNode.java    |    3 +-
 .../org/apache/plc4x/codegen/python/ExprNode.java  |    3 +-
 .../plc4x/codegen/python/FunctionDefNode.java      |    3 +-
 .../org/apache/plc4x/codegen/python/IfNode.java    |    3 +-
 .../plc4x/codegen/python/ImportFromNode.java       |    3 +-
 .../apache/plc4x/codegen/python/KeywordNode.java   |    3 +-
 .../org/apache/plc4x/codegen/python/ListNode.java  |    3 +-
 .../org/apache/plc4x/codegen/python/LoadNode.java  |    3 +-
 .../apache/plc4x/codegen/python/ModuleNode.java    |    3 +-
 .../org/apache/plc4x/codegen/python/MultNode.java  |    3 +-
 .../plc4x/codegen/python/NameConstantNode.java     |    3 +-
 .../org/apache/plc4x/codegen/python/NameNode.java  |    3 +-
 .../org/apache/plc4x/codegen/python/NotEqNode.java |    3 +-
 .../org/apache/plc4x/codegen/python/NumNode.java   |    3 +-
 .../org/apache/plc4x/codegen/python/PassNode.java  |    3 +-
 .../apache/plc4x/codegen/python/ReturnNode.java    |    3 +-
 .../org/apache/plc4x/codegen/python/StoreNode.java |    3 +-
 .../org/apache/plc4x/codegen/python/StrNode.java   |    3 +-
 .../org/apache/plc4x/codegen/python/TupleNode.java |    3 +-
 .../org/apache/plc4x/codegen/python/WhileNode.java |    3 +-
 .../org/apache/plc4x/codegen/DFDLUtilTest.java     |   13 +-
 .../org/apache/plc4x/codegen/ModuleNodeTest.java   |   35 +-
 .../plc4x/codegen/ast/JavaGeneratorTest.java       |   10 +-
 .../plc4x/codegen/ast/PythonGeneratorTest.java     |   10 +-
 .../apache/plc4x/codegen/util/EnumFactoryTest.java |    3 +-
 .../apache/plc4x/codegen/util/PojoFactoryTest.java |    3 +-
 sandbox/hello-influx-data-collection/README.adoc   |   36 +
 .../example.properties                             |   32 +
 sandbox/hello-influx-data-collection/pom.xml       |  117 +
 .../java/examples/helloinflux/HelloInflux.java     |  145 +
 .../src/main/resources/logback.xml                 |   34 +
 sandbox/plc-simulator/pom.xml                      |   23 +-
 .../apache/plc4x/java/s7/utils/StaticHelper.java   |  155 +
 .../server/s7/protocol/S7Step7Protocol.java        |   20 +-
 .../server/s7/protocol/S7Step7ServerProtocol.java  |    9 +-
 .../watertank/WaterTankSimulationModule.java       |    1 +
 sandbox/plc4c/.clang-format                        |  186 +
 sandbox/plc4c/.gitignore                           |  145 +
 sandbox/plc4c/CMakeLists.txt                       |   78 +
 sandbox/plc4c/CODE_CONVENTIONS.md                  |   43 +
 sandbox/plc4c/README.md                            |   41 +
 sandbox/plc4c/api/CMakeLists.txt                   |   36 +
 sandbox/plc4c/api/include/plc4c/connection.h       |  313 ++
 sandbox/plc4c/api/include/plc4c/data.h             |  154 +
 sandbox/plc4c/api/include/plc4c/plc4c.h            |   39 +
 sandbox/plc4c/api/include/plc4c/read.h             |  114 +
 sandbox/plc4c/api/include/plc4c/subscribe.h        |  259 ++
 sandbox/plc4c/api/include/plc4c/system.h           |  278 ++
 sandbox/plc4c/api/include/plc4c/types.h            |  197 +
 sandbox/plc4c/api/include/plc4c/utils/list.h       |   81 +
 sandbox/plc4c/api/include/plc4c/utils/queue.h      |   60 +
 sandbox/plc4c/api/include/plc4c/write.h            |  115 +
 sandbox/plc4c/design-guidelines.adoc               |   61 +
 sandbox/plc4c/drivers/CMakeLists.txt               |   22 +
 sandbox/plc4c/drivers/modbus/CMakeLists.txt        |   30 +
 .../drivers/modbus/include/plc4c/driver_modbus.h   |   32 +
 sandbox/plc4c/drivers/modbus/src/driver_modbus.c   |   41 +
 sandbox/plc4c/drivers/s7/CMakeLists.txt            |   30 +
 sandbox/plc4c/drivers/s7/include/plc4c/driver_s7.h |   32 +
 sandbox/plc4c/drivers/s7/src/driver_s7.c           |   41 +
 sandbox/plc4c/drivers/simulated/CMakeLists.txt     |   27 +
 .../simulated/include/plc4c/driver_simulated.h     |   32 +
 .../plc4c/drivers/simulated/src/driver_simulated.c |  424 ++
 sandbox/plc4c/examples/CMakeLists.txt              |   21 +
 .../examples/hello-subsciptions/CMakeLists.txt     |   27 +
 .../hello-subsciptions/src/hello_subscriptions.c   |  285 ++
 sandbox/plc4c/examples/hello-world/CMakeLists.txt  |   27 +
 .../plc4c/examples/hello-world/src/hello_world.c   |  337 ++
 sandbox/plc4c/integrations/CMakeLists.txt          |   20 +
 .../integrations/apache-mynewt/CMakeLists.txt      |   23 +
 sandbox/plc4c/pom.xml                              |  331 ++
 sandbox/plc4c/spi/CMakeLists.txt                   |   34 +
 .../plc4c/spi/include/plc4c/spi/system_private.h   |   28 +
 .../plc4c/spi/include/plc4c/spi/types_private.h    |  301 ++
 sandbox/plc4c/spi/src/connection.c                 |  277 ++
 sandbox/plc4c/spi/src/data.c                       |  183 +
 sandbox/plc4c/spi/src/read.c                       |  108 +
 sandbox/plc4c/spi/src/subscribe.c                  |  344 ++
 sandbox/plc4c/spi/src/system.c                     |  488 +++
 sandbox/plc4c/spi/src/types.c                      |  147 +
 sandbox/plc4c/spi/src/utils/list.c                 |  189 +
 sandbox/plc4c/spi/src/utils/queue.c                |   73 +
 sandbox/plc4c/spi/src/write.c                      |  116 +
 sandbox/plc4c/spi/test/system_test.c               |   97 +
 sandbox/plc4c/transports/CMakeLists.txt            |   22 +
 sandbox/plc4c/transports/dummy/CMakeLists.txt      |   27 +
 .../dummy/include/plc4c/transport_dummy.h          |   32 +
 .../plc4c/transports/dummy/src/transport_dummy.c   |   29 +
 sandbox/plc4c/transports/serial/CMakeLists.txt     |   27 +
 .../serial/include/plc4c/transport_serial.h        |   32 +
 .../plc4c/transports/serial/src/transport_serial.c |   29 +
 sandbox/plc4c/transports/tcp/CMakeLists.txt        |   27 +
 .../transports/tcp/include/plc4c/transport_tcp.h   |   32 +
 sandbox/plc4c/transports/tcp/src/transport_tcp.c   |   29 +
 sandbox/plc4cpp/examples/CMakeLists.txt            |    2 +-
 sandbox/plc4cpp/pom.xml                            |   39 +-
 sandbox/plc4net/api/pom.xml                        |    3 +-
 sandbox/plc4net/plc4net.driver/pom.xml             |    3 +-
 sandbox/plc4net/pom.xml                            |    2 +-
 sandbox/plc4py/README.md                           |   23 +-
 sandbox/plc4py/pom.xml                             |    9 +-
 .../python/org/apache/plc4x/PlcDriverManager.py    |   74 +-
 sandbox/pom.xml                                    |   37 +-
 sandbox/test-java-amsads-driver/pom.xml            |   54 +-
 .../apache/plc4x/java/amsads/AMSADSPlcDriver.java  |   85 +-
 .../amsads/configuration/AdsConfiguration.java     |  105 +
 .../connection/AdsAbstractPlcConnection.java       |   21 +-
 .../amsads/connection/AdsConnectionFactory.java    |    1 +
 .../amsads/connection/AdsSerialPlcConnection.java  |   45 +-
 .../amsads/connection/AdsTcpPlcConnection.java     |   78 +-
 .../apache/plc4x/java/amsads/field/AdsField.java   |   27 +
 .../plc4x/java/amsads/field/AdsFieldHandler.java   | 1047 +++++
 .../plc4x/java/amsads/field/DirectAdsField.java    |  142 +
 .../plc4x/java/amsads/field/SymbolicAdsField.java  |  106 +
 .../plc4x/java/amsads/model/AdsDataType.java       |  577 ---
 .../apache/plc4x/java/amsads/model/AdsField.java   |   26 -
 .../java/amsads/model/AdsPlcFieldHandler.java      | 1015 -----
 .../java/amsads/model/AdsSubscriptionHandle.java   |    5 +-
 .../plc4x/java/amsads/model/DirectAdsField.java    |  141 -
 .../plc4x/java/amsads/model/SymbolicAdsField.java  |  105 -
 .../plc4x/java/amsads/model/package-info.java      |   22 -
 .../java/amsads/protocol/Ads2PayloadProtocol.java  |   11 +-
 .../java/amsads/protocol/AdsProtocolLogic.java     |   41 +
 .../amsads/protocol/Payload2SerialProtocol.java    |   23 +-
 .../java/amsads/protocol/Payload2TcpProtocol.java  |   15 +-
 .../java/amsads/protocol/Plc4x2AdsProtocol.java    |   36 +-
 .../amsads/protocol/util/LittleEndianDecoder.java  |  204 +-
 .../amsads/protocol/util/LittleEndianEncoder.java  |    2 +-
 .../protocol/util/SingleMessageRateLimiter.java    |    2 +-
 .../plc4x/java/amsads/types/AdsDataType.java       |  577 +++
 ...cDriver => org.apache.plc4x.java.api.PlcDriver} |    0
 .../amsads/AmsAdsSerializerParserTest.java         |   29 +
 .../protocol/amsads/BenchmarkGeneratedDf1.java     |    4 -
 .../org/apache/plc4x/protocol/amsads/Df1Test.java  |   30 -
 .../apache/plc4x/protocol/amsads/EndToEndTest.java |    5 +-
 .../org/apache/plc4x/protocol/amsads/IOTest.java   |    6 -
 .../src/test/resources/testsuite/Df1Testsuite.xml  |    2 +-
 sandbox/test-java-bacnetip-driver/pom.xml          |   42 +-
 .../plc4x/java/bacnetip/PassiveBacNetIpDriver.java |  105 +-
 .../PassiveBacNetIpConfiguration.java              |  111 +
 .../bacnetip/connection/BacNetIpFieldHandler.java  |   36 -
 .../connection/PassiveBacNetIpPlcConnection.java   |  118 -
 .../apache/plc4x/java/bacnetip/ede/EdeParser.java  |  207 +
 .../plc4x/java/bacnetip/ede/layouts/EdeLayout.java |   57 +
 .../bacnetip/ede/layouts/EdeLayoutFactory.java     |   37 +
 .../bacnetip/ede/layouts/EdeVersion2Layout.java    |  105 +
 .../bacnetip/ede/layouts/EdeVersion3Layout.java    |   23 +
 .../bacnetip/ede/layouts/EdeVersion4Layout.java    |   28 +
 .../plc4x/java/bacnetip/ede/model/Datapoint.java   |  142 +
 .../plc4x/java/bacnetip/ede/model/EdeModel.java    |   37 +
 .../plc4x/java/bacnetip/field/BacNetIpField.java   |  121 +
 .../java/bacnetip/field/BacNetIpFieldHandler.java  |   35 +
 .../plc4x/java/bacnetip/model/BacNetIpField.java   |   47 -
 .../java/bacnetip/protocol/BacNetIpProtocol.java   |   62 -
 .../java/bacnetip/protocol/HelloWorldProtocol.java |   72 -
 .../protocol/PassiveBacNetIpProtocolLogic.java     |  240 ++
 ...cDriver => org.apache.plc4x.java.api.PlcDriver} |    0
 .../plc4x/java/bacnetip/ManualBacNetDecoder.java   |    4 +-
 .../java/bacnetip/PassiveBacNetIpDriverManual.java |   28 +-
 .../src/test}/resources/logback.xml                |    0
 sandbox/test-java-df1-driver/pom.xml               |   55 +-
 .../org/apache/plc4x/java/df1/DF1PlcDriver.java    |   60 +-
 .../java/org/apache/plc4x/java/df1/Df1Field.java   |   62 -
 .../java/df1/configuration/Df1Configuration.java   |   38 +
 .../java/df1/connection/BaseDf1Connection.java     |   34 -
 .../java/df1/connection/SerialDf1Connection.java   |  148 -
 .../org/apache/plc4x/java/df1/field/Df1Field.java  |   61 +
 .../plc4x/java/df1/field/Df1FieldHandler.java      |   39 +
 .../org/apache/plc4x/java/df1/fields/DataType.java |   44 -
 .../plc4x/java/df1/protocol/Df1Protocol.java       |   14 +-
 .../plc4x/java/df1/protocol/Df1ProtocolLogic.java  |   43 +
 .../plc4x/java/df1/protocol/Plc4XDf1Protocol.java  |   28 +-
 .../org/apache/plc4x/java/df1/types/DataType.java  |   44 +
 .../org/apache/plc4x/java/df1/util/DF1Utils.java   |   14 +-
 .../plc4x/java/df1/util/Df1FieldHandler.java       |   39 -
 ...cDriver => org.apache.plc4x.java.api.PlcDriver} |    0
 .../apache/plc4x/java/df1/DF1PlcDriverTest.java    |   44 -
 .../plc4x/protocol/df1/BenchmarkGeneratedDf1.java  |    5 -
 .../protocol/df1/Df1ParserSerializerTest.java      |   30 +
 .../org/apache/plc4x/protocol/df1/Df1Test.java     |   30 -
 .../apache/plc4x/protocol/df1/EndToEndTest.java    |    3 +-
 .../java/org/apache/plc4x/protocol/df1/IOTest.java |    2 +-
 .../src/test/resources/testsuite/Df1Testsuite.xml  |   10 +-
 sandbox/test-java-knxnetip-driver-passive/pom.xml  |  117 -
 .../passive/knxnetip/PassiveKnxNetIpDriver.java    |   76 -
 .../knxnetip/connection/KnxNetIpFieldHandler.java  |   36 -
 .../connection/PassiveKnxNetIpPlcConnection.java   |  116 -
 .../java/passive/knxnetip/model/KnxNetIpField.java |   47 -
 .../knxnetip/protocol/HelloWorldProtocol.java      |   72 -
 .../knxnetip/protocol/KnxNetIpProtocol.java        |   59 -
 .../services/org.apache.plc4x.java.spi.PlcDriver   |   19 -
 .../org/apache/plc4x/java/knxnetip/IOTest.java     |   79 -
 .../apache/plc4x/java/knxnetip/KNXNetIpTest.java   |   30 -
 .../apache/plc4x/java/knxnetip/ManualKnxNetIp.java |   27 -
 .../test/resources/testsuite/KNXNetIPTestsuite.xml |  544 ---
 sandbox/test-java-knxnetip-driver/pom.xml          |  130 -
 .../apache/plc4x/java/knxnetip/KnxNetIpDriver.java |   79 -
 .../knxnetip/connection/KnxNetIpConnection.java    |  137 -
 .../knxnetip/connection/KnxNetIpFieldHandler.java  |   36 -
 .../java/knxnetip/events/KnxGatewayFoundEvent.java |   22 -
 .../plc4x/java/knxnetip/model/KnxNetIpField.java   |   44 -
 .../knxnetip/protocol/KnxNetIpPlc4xProtocol.java   |   61 -
 .../knxnetip/protocol/KnxNetIpProtocolLogic.java   |  173 -
 .../knxnetip/protocol/KnxNetIpProtocolPackets.java |   59 -
 .../org/apache/plc4x/java/knxnetip/IOTest.java     |  102 -
 .../apache/plc4x/java/knxnetip/KNXNetIpTest.java   |   30 -
 .../apache/plc4x/java/knxnetip/ManualKnxNetIp.java |   34 -
 .../java/knxnetip/ManualKnxNetIpWithEts5.java      |  161 -
 .../test/resources/testsuite/KNXNetIPTestsuite.xml |  544 ---
 sandbox/test-java-knxnetip-shared/pom.xml          |   90 -
 .../plc4x/java/knxnetip/ets5/Ets5Parser.java       |  180 -
 .../plc4x/java/knxnetip/ets5/model/Ets5Model.java  |   81 -
 .../java/knxnetip/ets5/model/GroupAddress.java     |   97 -
 sandbox/test-java-s7-driver-passive/pom.xml        |  100 -
 .../plc4x/javapassive/s7/PassiveS7PlcDriver.java   |   90 -
 .../s7/connection/PassiveS7PlcConnection.java      |   99 -
 .../s7/protocol/HelloWorldProtocol.java            |   48 -
 .../javapassive/s7/protocol/PassiveS7Protocol.java |   62 -
 .../services/org.apache.plc4x.java.spi.PlcDriver   |   19 -
 .../src/test/java/BenchmarkGeneratedPassiveS7.java |   45 -
 sandbox/test-java-s7-driver/pom.xml                |   90 -
 .../src/test/java/BenchmarkGeneratedS7.java        |   71 -
 sandbox/test-streampipes-plc4x-adapters/pom.xml    |   37 +-
 .../adapters/source/bacnetip/BacNetIpAdapter.java  |   29 +-
 .../adapters/source/knxnetip/KnxNetIpAdapter.java  |   20 +-
 sandbox/test-streampipes-plc4x-processors/pom.xml  |   23 +-
 .../enrich/knxnetip/ets5/Ets5DataEnrichment.java   |   38 +-
 .../ets5/Ets5DataEnrichmentController.java         |    3 +-
 sandbox/test-streampipes-plc4x-shared/pom.xml      |    2 +-
 src/main/script/preSiteGeneration.groovy           |   71 +
 src/main/script/prerequisiteCheck.groovy           |  358 +-
 src/site/asciidoc/apache/index.adoc                |   20 +
 src/site/asciidoc/developers/building.adoc         |   63 +-
 .../developers/code-gen/protocol/mspec.adoc        |    2 +
 src/site/asciidoc/developers/index.adoc            |   59 +
 .../developers/{ => infrastructure}/ci.adoc        |    0
 .../asciidoc/developers/infrastructure/index.adoc  |   22 +
 .../asciidoc/developers/infrastructure/issues.adoc |   24 +
 .../asciidoc/developers/infrastructure/sonar.adoc  |   24 +
 .../asciidoc/developers/infrastructure/vm.adoc     |   96 +
 .../asciidoc/developers/infrastructure/vpn.adoc    |  189 +
 .../developers/infrastructure/website.adoc         |  177 +
 .../asciidoc/developers/infrastructure/wiki.adoc   |   24 +
 src/site/asciidoc/developers/issues.adoc           |   20 -
 src/site/asciidoc/developers/maturity.adoc         |   10 +-
 src/site/asciidoc/developers/preparing.adoc        |  394 --
 src/site/asciidoc/developers/preparing/index.adoc  |   59 +
 src/site/asciidoc/developers/preparing/linux.adoc  |  155 +
 src/site/asciidoc/developers/preparing/macos.adoc  |  107 +
 .../asciidoc/developers/preparing/windows.adoc     |  162 +
 .../asciidoc/developers/release-build-tools.adoc   |  461 ---
 src/site/asciidoc/developers/release.adoc          |  519 ---
 .../asciidoc/developers/release/build-tools.adoc   |  457 +++
 src/site/asciidoc/developers/release/index.adoc    |   20 +
 src/site/asciidoc/developers/release/release.adoc  |  576 +++
 .../asciidoc/developers/release/validation.adoc    |  105 +
 src/site/asciidoc/developers/sonar.adoc            |   20 -
 src/site/asciidoc/developers/team.adoc             |    4 +-
 src/site/asciidoc/developers/tutorials/index.adoc  |   20 +
 .../tutorials/testing-serializers-and-parsers.adoc |  146 +
 .../developers/tutorials/writing-driver.adoc       |   57 +
 src/site/asciidoc/developers/vm.adoc               |   95 -
 src/site/asciidoc/developers/vpn.adoc              |  189 -
 src/site/asciidoc/developers/website.adoc          |  198 -
 src/site/asciidoc/developers/wiki.adoc             |   20 -
 .../developers/writing-driver/writing-driver.adoc  |   57 -
 src/site/asciidoc/index.adoc                       |  318 +-
 src/site/asciidoc/plc4j/index.adoc                 |  100 +
 .../asciidoc/users/blogs-videos-and-slides.adoc    |   42 +
 src/site/asciidoc/users/download.adoc              |   36 +-
 src/site/asciidoc/users/gettingstarted.adoc        |    2 +-
 src/site/asciidoc/users/index.adoc                 |  355 ++
 .../users/integrations/apache-calcite.adoc         |   24 +
 .../asciidoc/users/integrations/apache-camel.adoc  |   20 +
 .../asciidoc/users/integrations/apache-edgent.adoc |   20 +
 .../asciidoc/users/integrations/apache-iotdb.adoc  |   20 +
 .../asciidoc/users/integrations/apache-kafka.adoc  |   24 +
 .../asciidoc/users/integrations/apache-nifi.adoc   |   20 +
 .../users/integrations/apache-streampipes.adoc     |   20 +
 .../asciidoc/users/integrations/eclipse-ditto.adoc |   25 +
 .../users/integrations/elastic-logstash.adoc       |   20 +
 src/site/asciidoc/users/integrations/index.adoc    |   20 +
 .../asciidoc/users/plc4j/general-concepts.adoc     |  106 +
 src/site/asciidoc/users/plc4j/gettingstarted.adoc  |  294 ++
 src/site/asciidoc/users/plc4j/virtual-modbus.adoc  |  364 ++
 src/site/asciidoc/users/protocols/ab-eth.adoc      |   20 +
 src/site/asciidoc/users/protocols/ads.adoc         |   56 +
 src/site/asciidoc/users/protocols/bacnetip.adoc    |   64 +
 src/site/asciidoc/users/protocols/deltav.adoc      |   20 +
 src/site/asciidoc/users/protocols/df1.adoc         |   20 +
 src/site/asciidoc/users/protocols/ethernet-ip.adoc |   98 +
 src/site/asciidoc/users/protocols/firmata.adoc     |  120 +
 src/site/asciidoc/users/protocols/index.adoc       |   20 +
 src/site/asciidoc/users/protocols/knxnetip.adoc    |   20 +
 src/site/asciidoc/users/protocols/modbus.adoc      |  111 +
 src/site/asciidoc/users/protocols/opc-ua.adoc      |  169 +
 src/site/asciidoc/users/protocols/s7.adoc          |  278 ++
 src/site/asciidoc/users/protocols/simulated.adoc   |   20 +
 src/site/asciidoc/users/testing.adoc               |  165 -
 src/site/asciidoc/users/tools/capture-replay.adoc  |   59 +
 src/site/asciidoc/users/tools/connection-pool.adoc |   20 +
 src/site/asciidoc/users/tools/index.adoc           |   20 +
 src/site/asciidoc/users/{ => tools}/opm.adoc       |    0
 src/site/asciidoc/users/tools/scraper.adoc         |   20 +
 src/site/asciidoc/users/tools/testing.adoc         |  165 +
 src/site/asciidoc/users/transports/index.adoc      |   26 +
 .../asciidoc/users/transports/pcap-replay.adoc     |   67 +
 src/site/asciidoc/users/transports/raw-socket.adoc |   51 +
 src/site/asciidoc/users/transports/serial.adoc     |   54 +
 src/site/asciidoc/users/transports/tcp.adoc        |   51 +
 src/site/asciidoc/users/transports/udp.adoc        |   51 +
 src/site/asciidoc/users/users.adoc                 |   43 +
 src/site/resources-filtered/plc4x-doap.rdf         |   24 +-
 src/site/resources/.htaccess                       |   20 +
 src/site/resources/images/apache_logo_small.png    |  Bin 0 -> 7763 bytes
 .../resources/images/apache_plc4x_logo_small.png   |  Bin 0 -> 10460 bytes
 src/site/resources/images/background-index-3.png   |  Bin 0 -> 1258500 bytes
 .../images/integrations/apache_calcite_logo.svg    |  346 ++
 .../{ => integrations}/apache_camel_logo.png       |  Bin
 .../{ => integrations}/apache_edgent_logo.png      |  Bin
 .../images/integrations/apache_iotdb_logo.png      |  Bin 0 -> 22055 bytes
 .../{ => integrations}/apache_kafka_logo.png       |  Bin
 .../images/{ => integrations}/apache_nifi_logo.svg |    0
 .../integrations/apache_streampipes_logo.png       |  Bin 0 -> 16928 bytes
 .../images/integrations/eclipse_ditto_logo.png     |  Bin 0 -> 3371 bytes
 .../images/integrations/elastic_logstash_logo.png  |  Bin 0 -> 9241 bytes
 .../{ => plcs}/plc4x-vpn-beckhoff-route-1.png      |  Bin
 .../{ => plcs}/plc4x-vpn-beckhoff-route-2.png      |  Bin
 .../{ => plcs}/plc4x-vpn-beckhoff-route-3.png      |  Bin
 .../images/{ => plcs}/plc4x-vpn-beckhoff.jpg       |  Bin
 .../{ => plcs}/plc4x-vpn-client-download.png       |  Bin
 .../images/{ => plcs}/plc4x-vpn-fatek.jpg          |  Bin
 .../images/{ => plcs}/plc4x-vpn-siemens-hmi.jpg    |  Bin
 .../images/{ => plcs}/plc4x-vpn-siemens-s7.jpg     |  Bin
 .../resources/images/{ => plcs}/plc4x-vpn-wago.jpg |  Bin
 src/site/resources/images/protocols/ads-ams.png    |  Bin 0 -> 13600 bytes
 src/site/resources/images/protocols/bacnet-ip.gif  |  Bin 0 -> 32674 bytes
 .../images/tutorials/modbus/ModbusPal-1.png        |  Bin 0 -> 133977 bytes
 .../images/tutorials/modbus/ModbusPal-2.png        |  Bin 0 -> 267000 bytes
 .../images/tutorials/modbus/ModbusPal-3.png        |  Bin 0 -> 148179 bytes
 .../images/tutorials/modbus/ModbusPal-4.png        |  Bin 0 -> 167981 bytes
 .../images/tutorials/modbus/ModbusPal-5.png        |  Bin 0 -> 76694 bytes
 .../images/tutorials/modbus/ModbusPal-6.png        |  Bin 0 -> 99660 bytes
 .../images/tutorials/modbus/ModbusPal-7.png        |  Bin 0 -> 228335 bytes
 .../images/tutorials/modbus/ModbusPal-8.png        |  Bin 0 -> 122029 bytes
 .../images/tutorials/modbus/ModbusPal-9.png        |  Bin 0 -> 99947 bytes
 .../users/protocols/s7-tia-device-settings.png     |  Bin 0 -> 391398 bytes
 .../images/users/protocols/s7-tia-io-settings.png  |  Bin 0 -> 42175 bytes
 src/site/site.xml                                  |  171 +-
 tools/boost/pom.xml                                |    6 +-
 tools/check_sigs.sh                                |   14 +-
 tools/common.sh                                    |   75 +-
 tools/download_staged_release.sh                   |   48 +-
 tools/logstash/pom.xml                             |   12 +-
 tools/pom.xml                                      |    2 +-
 tools/thrift/pom.xml                               |  104 +-
 1503 files changed, 69960 insertions(+), 57300 deletions(-)
 create mode 100644 build-utils/language-c/pom.xml
 create mode 100644 build-utils/language-c/src/main/java/org/apache/plc4x/language/c/CLanguageOutput.java
 create mode 100644 build-utils/language-c/src/main/java/org/apache/plc4x/language/c/CLanguageTemplateHelper.java
 create mode 100644 build-utils/language-c/src/main/resources/META-INF/services/org.apache.plc4x.plugins.codegenerator.language.LanguageOutput
 create mode 100644 build-utils/language-c/src/main/resources/templates/c/pojo-template-c.ftlh
 create mode 100644 build-utils/language-c/src/main/resources/templates/c/pojo-template-h.ftlh
 create mode 100644 build-utils/language-java/src/main/resources/templates/java/data-io-template.ftlh
 create mode 100644 build-utils/protocol-base-mspec/src/main/java/org/apache/plc4x/plugins/codegenerator/language/mspec/model/definitions/DefaultDataIoTypeDefinition.java
 create mode 100644 build-utils/protocol-base-mspec/src/main/java/org/apache/plc4x/plugins/codegenerator/language/mspec/model/fields/DefaultAbstractField.java
 create mode 100644 build-utils/protocol-base-mspec/src/main/java/org/apache/plc4x/plugins/codegenerator/language/mspec/model/references/DefaultStringTypeReference.java
 create mode 100644 build-utils/protocol-base-mspec/src/main/java/org/apache/plc4x/plugins/codegenerator/language/mspec/model/references/DefaultTemporalTypeReference.java
 create mode 100644 plc4j/api/src/main/java/org/apache/plc4x/java/api/Experimental.java
 create mode 100644 plc4j/api/src/main/java/org/apache/plc4x/java/api/PlcConnectionExtension.java
 create mode 100644 plc4j/api/src/main/java/org/apache/plc4x/java/api/PlcDriver.java
 create mode 100644 plc4j/api/src/main/java/org/apache/plc4x/java/api/exceptions/PlcProtocolTimeoutException.java
 create mode 100644 plc4j/api/src/main/java/org/apache/plc4x/java/api/value/PlcBigDecimal.java
 create mode 100644 plc4j/api/src/main/java/org/apache/plc4x/java/api/value/PlcBigInteger.java
 create mode 100644 plc4j/api/src/main/java/org/apache/plc4x/java/api/value/PlcBoolean.java
 create mode 100644 plc4j/api/src/main/java/org/apache/plc4x/java/api/value/PlcByte.java
 create mode 100644 plc4j/api/src/main/java/org/apache/plc4x/java/api/value/PlcDate.java
 create mode 100644 plc4j/api/src/main/java/org/apache/plc4x/java/api/value/PlcDateTime.java
 create mode 100644 plc4j/api/src/main/java/org/apache/plc4x/java/api/value/PlcDouble.java
 create mode 100644 plc4j/api/src/main/java/org/apache/plc4x/java/api/value/PlcFloat.java
 create mode 100644 plc4j/api/src/main/java/org/apache/plc4x/java/api/value/PlcInteger.java
 create mode 100644 plc4j/api/src/main/java/org/apache/plc4x/java/api/value/PlcList.java
 create mode 100644 plc4j/api/src/main/java/org/apache/plc4x/java/api/value/PlcLong.java
 create mode 100644 plc4j/api/src/main/java/org/apache/plc4x/java/api/value/PlcShort.java
 create mode 100644 plc4j/api/src/main/java/org/apache/plc4x/java/api/value/PlcSimpleValue.java
 create mode 100644 plc4j/api/src/main/java/org/apache/plc4x/java/api/value/PlcString.java
 create mode 100644 plc4j/api/src/main/java/org/apache/plc4x/java/api/value/PlcStruct.java
 create mode 100644 plc4j/api/src/main/java/org/apache/plc4x/java/api/value/PlcTime.java
 create mode 100644 plc4j/api/src/main/java/org/apache/plc4x/java/api/value/PlcValue.java
 create mode 100644 plc4j/api/src/main/java/org/apache/plc4x/java/api/value/PlcValueAdapter.java
 create mode 100644 plc4j/api/src/main/java/org/apache/plc4x/java/api/value/PlcValues.java
 delete mode 100644 plc4j/api/src/main/java/org/apache/plc4x/java/spi/PlcDriver.java
 create mode 100644 plc4j/api/src/test/java/org/apache/plc4x/java/api/types/PlcValueTest.java
 create mode 100644 plc4j/api/src/test/java/org/apache/plc4x/java/api/value/PlcValuesTest.java
 create mode 100644 plc4j/api/src/test/java/org/apache/plc4x/java/mock/ApiMockDriver.java
 delete mode 100644 plc4j/api/src/test/java/org/apache/plc4x/java/mock/MockDriver.java
 create mode 100644 plc4j/api/src/test/resources/META-INF/services/org.apache.plc4x.java.api.PlcDriver
 create mode 100644 plc4j/api/src/test/resources/test/META-INF/services/org.apache.plc4x.java.api.PlcDriver
 delete mode 100644 plc4j/api/src/test/resources/test/META-INF/services/org.apache.plc4x.java.spi.PlcDriver
 create mode 100644 plc4j/drivers/ab-eth/src/main/java/org/apache/plc4x/java/abeth/configuration/AbEthConfiguration.java
 delete mode 100644 plc4j/drivers/ab-eth/src/main/java/org/apache/plc4x/java/abeth/connection/AbEthFieldHandler.java
 delete mode 100644 plc4j/drivers/ab-eth/src/main/java/org/apache/plc4x/java/abeth/connection/AbEthPlcConnection.java
 create mode 100644 plc4j/drivers/ab-eth/src/main/java/org/apache/plc4x/java/abeth/field/AbEthField.java
 create mode 100644 plc4j/drivers/ab-eth/src/main/java/org/apache/plc4x/java/abeth/field/AbEthFieldHandler.java
 delete mode 100644 plc4j/drivers/ab-eth/src/main/java/org/apache/plc4x/java/abeth/model/AbEthField.java
 delete mode 100644 plc4j/drivers/ab-eth/src/main/java/org/apache/plc4x/java/abeth/model/types/FileType.java
 delete mode 100644 plc4j/drivers/ab-eth/src/main/java/org/apache/plc4x/java/abeth/protocol/AbEthProtocol.java
 create mode 100644 plc4j/drivers/ab-eth/src/main/java/org/apache/plc4x/java/abeth/protocol/AbEthProtocolLogic.java
 create mode 100644 plc4j/drivers/ab-eth/src/main/java/org/apache/plc4x/java/abeth/types/FileType.java
 rename plc4j/drivers/ab-eth/src/main/resources/META-INF/services/{org.apache.plc4x.java.spi.PlcDriver => org.apache.plc4x.java.api.PlcDriver} (100%)
 rename plc4j/drivers/ads/src/main/resources/META-INF/services/{org.apache.plc4x.java.spi.PlcDriver => org.apache.plc4x.java.api.PlcDriver} (100%)
 create mode 100644 plc4j/drivers/eip/pom.xml
 create mode 100644 plc4j/drivers/eip/src/main/java/org/apache/plc4x/java/eip/readwrite/EIPDriver.java
 create mode 100644 plc4j/drivers/eip/src/main/java/org/apache/plc4x/java/eip/readwrite/configuration/EIPConfiguration.java
 create mode 100644 plc4j/drivers/eip/src/main/java/org/apache/plc4x/java/eip/readwrite/field/EipField.java
 create mode 100644 plc4j/drivers/eip/src/main/java/org/apache/plc4x/java/eip/readwrite/field/EipFieldHandler.java
 create mode 100644 plc4j/drivers/eip/src/main/java/org/apache/plc4x/java/eip/readwrite/protocol/EipProtocolLogic.java
 create mode 100644 plc4j/drivers/eip/src/main/resources/META-INF/services/org.apache.plc4x.java.api.PlcDriver
 create mode 100644 plc4j/drivers/eip/src/test/java/org/apache/plc4x/java/eip/readwrite/EIPDriverTestsuite.java
 create mode 100644 plc4j/drivers/eip/src/test/java/org/apache/plc4x/java/eip/readwrite/EIPParserSerializerTestsuite.java
 create mode 100644 plc4j/drivers/eip/src/test/resources/testsuite/EIPDriverTestsuite.xml
 create mode 100644 plc4j/drivers/eip/src/test/resources/testsuite/EIPParserSerializerTestsuite.xml
 delete mode 100644 plc4j/drivers/ethernet-ip/pom.xml
 delete mode 100644 plc4j/drivers/ethernet-ip/src/main/java/org/apache/plc4x/java/ethernetip/EtherNetIpPlcDriver.java
 delete mode 100644 plc4j/drivers/ethernet-ip/src/main/java/org/apache/plc4x/java/ethernetip/connection/BaseEtherNetIpPlcConnection.java
 delete mode 100644 plc4j/drivers/ethernet-ip/src/main/java/org/apache/plc4x/java/ethernetip/connection/EtherNetIpTcpPlcConnection.java
 delete mode 100644 plc4j/drivers/ethernet-ip/src/main/resources/META-INF/services/org.apache.plc4x.java.spi.PlcDriver
 delete mode 100644 plc4j/drivers/ethernet-ip/src/test/java/org/apache/plc4x/java/ethernetip/EnipTest.java
 delete mode 100644 plc4j/drivers/ethernet-ip/src/test/java/org/apache/plc4x/java/ethernetip/ManualPlc4XEtherNetIpTest.java
 delete mode 100644 plc4j/drivers/ethernet-ip/src/test/resources/read-attribute.pcap
 create mode 100644 plc4j/drivers/firmata/README.adoc
 create mode 100644 plc4j/drivers/firmata/pom.xml
 create mode 100644 plc4j/drivers/firmata/src/main/java/org/apache/plc4x/java/firmata/readwrite/FirmataDriver.java
 create mode 100644 plc4j/drivers/firmata/src/main/java/org/apache/plc4x/java/firmata/readwrite/configuration/FirmataConfiguration.java
 create mode 100644 plc4j/drivers/firmata/src/main/java/org/apache/plc4x/java/firmata/readwrite/context/FirmataDriverContext.java
 create mode 100644 plc4j/drivers/firmata/src/main/java/org/apache/plc4x/java/firmata/readwrite/field/FirmataField.java
 create mode 100644 plc4j/drivers/firmata/src/main/java/org/apache/plc4x/java/firmata/readwrite/field/FirmataFieldAnalog.java
 create mode 100644 plc4j/drivers/firmata/src/main/java/org/apache/plc4x/java/firmata/readwrite/field/FirmataFieldDigital.java
 create mode 100644 plc4j/drivers/firmata/src/main/java/org/apache/plc4x/java/firmata/readwrite/field/FirmataFieldHandler.java
 create mode 100644 plc4j/drivers/firmata/src/main/java/org/apache/plc4x/java/firmata/readwrite/model/FirmataSubscriptionHandle.java
 create mode 100644 plc4j/drivers/firmata/src/main/java/org/apache/plc4x/java/firmata/readwrite/protocol/FirmataProtocolLogic.java
 create mode 100644 plc4j/drivers/firmata/src/main/java/org/apache/plc4x/java/firmata/readwrite/utils/FirmataUtils.java
 create mode 100644 plc4j/drivers/firmata/src/main/resources/META-INF/services/org.apache.plc4x.java.api.PlcDriver
 create mode 100644 plc4j/drivers/firmata/src/test/java/org/apache/plc4x/java/firmata/readwrite/FirmataParserSerializerTest.java
 create mode 100644 plc4j/drivers/firmata/src/test/resources/testsuite/FirmataParserSerializerTest.xml
 create mode 100644 plc4j/drivers/firmata/src/test/resources/testsuite/recording.txt
 rename {sandbox/test-java-knxnetip-driver => plc4j/drivers/knxnetip}/README.adoc (100%)
 create mode 100644 plc4j/drivers/knxnetip/pom.xml
 create mode 100644 plc4j/drivers/knxnetip/src/main/java/org/apache/plc4x/java/knxnetip/KnxNetIpDriver.java
 create mode 100644 plc4j/drivers/knxnetip/src/main/java/org/apache/plc4x/java/knxnetip/configuration/KnxNetIpConfiguration.java
 create mode 100644 plc4j/drivers/knxnetip/src/main/java/org/apache/plc4x/java/knxnetip/ets5/Ets5Parser.java
 rename {sandbox/test-java-knxnetip-shared => plc4j/drivers/knxnetip}/src/main/java/org/apache/plc4x/java/knxnetip/ets5/model/AddressType.java (100%)
 create mode 100644 plc4j/drivers/knxnetip/src/main/java/org/apache/plc4x/java/knxnetip/ets5/model/Ets5Model.java
 rename {sandbox/test-java-knxnetip-shared => plc4j/drivers/knxnetip}/src/main/java/org/apache/plc4x/java/knxnetip/ets5/model/Function.java (100%)
 create mode 100644 plc4j/drivers/knxnetip/src/main/java/org/apache/plc4x/java/knxnetip/ets5/model/GroupAddress.java
 create mode 100644 plc4j/drivers/knxnetip/src/main/java/org/apache/plc4x/java/knxnetip/field/KnxNetIpField.java
 create mode 100644 plc4j/drivers/knxnetip/src/main/java/org/apache/plc4x/java/knxnetip/field/KnxNetIpFieldHandler.java
 create mode 100644 plc4j/drivers/knxnetip/src/main/java/org/apache/plc4x/java/knxnetip/model/KnxNetIpSubscriptionHandle.java
 create mode 100644 plc4j/drivers/knxnetip/src/main/java/org/apache/plc4x/java/knxnetip/protocol/KnxNetIpProtocolLogic.java
 create mode 100644 plc4j/drivers/knxnetip/src/main/java/org/apache/plc4x/java/knxnetip/utils/KnxHelper.java
 rename sandbox/test-java-knxnetip-driver/src/main/resources/META-INF/services/org.apache.plc4x.java.spi.PlcDriver => plc4j/drivers/knxnetip/src/main/resources/META-INF/services/org.apache.plc4x.java.api.PlcDriver (100%)
 create mode 100644 plc4j/drivers/knxnetip/src/test/java/org/apache/plc4x/java/knxnetip/IOTest.java
 create mode 100644 plc4j/drivers/knxnetip/src/test/java/org/apache/plc4x/java/knxnetip/KNXNetIpTest.java
 create mode 100644 plc4j/drivers/knxnetip/src/test/java/org/apache/plc4x/java/knxnetip/ManualKnxNetIp.java
 copy {sandbox/plc-simulator/src/main => plc4j/drivers/knxnetip/src/test}/resources/logback.xml (100%)
 create mode 100644 plc4j/drivers/knxnetip/src/test/resources/testsuite/KNXNetIPTestsuite.xml
 create mode 100644 plc4j/drivers/mock/pom.xml
 create mode 100644 plc4j/drivers/mock/src/main/java/org/apache/plc4x/java/mock/MockDriver.java
 create mode 100644 plc4j/drivers/mock/src/main/java/org/apache/plc4x/java/mock/connection/MockConnection.java
 create mode 100644 plc4j/drivers/mock/src/main/java/org/apache/plc4x/java/mock/connection/MockDevice.java
 create mode 100644 plc4j/drivers/mock/src/main/java/org/apache/plc4x/java/mock/connection/tcp/TcpHexDumper.java
 create mode 100644 plc4j/drivers/mock/src/main/java/org/apache/plc4x/java/mock/field/MockField.java
 create mode 100644 plc4j/drivers/mock/src/main/java/org/apache/plc4x/java/mock/field/MockFieldHandler.java
 create mode 100644 plc4j/drivers/mock/src/main/java/org/apache/plc4x/java/mock/field/MockPlcValue.java
 create mode 100644 plc4j/drivers/mock/src/main/java/org/apache/plc4x/java/mock/field/MockType.java
 create mode 100644 plc4j/drivers/mock/src/main/java/org/apache/plc4x/java/mock/protocol/Plc4XSupportedDataTypes.java
 create mode 100644 plc4j/drivers/mock/src/main/java/org/apache/plc4x/java/mock/util/Assert.java
 rename plc4j/{protocols/driver-bases/test => drivers/mock}/src/main/java/org/apache/plc4x/java/mock/util/HexUtil.java (100%)
 rename plc4j/{api/src/test/resources/META-INF/services/org.apache.plc4x.java.spi.PlcDriver => drivers/mock/src/main/resources/META-INF/services/org.apache.plc4x.java.api.PlcDriver} (100%)
 create mode 100644 plc4j/drivers/modbus/src/main/java/org/apache/plc4x/java/modbus/ModbusDriver.java
 delete mode 100644 plc4j/drivers/modbus/src/main/java/org/apache/plc4x/java/modbus/ModbusPlcDriver.java
 create mode 100644 plc4j/drivers/modbus/src/main/java/org/apache/plc4x/java/modbus/config/ModbusConfiguration.java
 delete mode 100644 plc4j/drivers/modbus/src/main/java/org/apache/plc4x/java/modbus/connection/BaseModbusPlcConnection.java
 delete mode 100644 plc4j/drivers/modbus/src/main/java/org/apache/plc4x/java/modbus/connection/ModbusConnectionFactory.java
 delete mode 100644 plc4j/drivers/modbus/src/main/java/org/apache/plc4x/java/modbus/connection/ModbusSerialPlcConnection.java
 delete mode 100644 plc4j/drivers/modbus/src/main/java/org/apache/plc4x/java/modbus/connection/ModbusTcpPlcConnection.java
 create mode 100644 plc4j/drivers/modbus/src/main/java/org/apache/plc4x/java/modbus/field/ModbusField.java
 create mode 100644 plc4j/drivers/modbus/src/main/java/org/apache/plc4x/java/modbus/field/ModbusFieldCoil.java
 create mode 100644 plc4j/drivers/modbus/src/main/java/org/apache/plc4x/java/modbus/field/ModbusFieldDiscreteInput.java
 create mode 100644 plc4j/drivers/modbus/src/main/java/org/apache/plc4x/java/modbus/field/ModbusFieldHandler.java
 create mode 100644 plc4j/drivers/modbus/src/main/java/org/apache/plc4x/java/modbus/field/ModbusFieldHoldingRegister.java
 create mode 100644 plc4j/drivers/modbus/src/main/java/org/apache/plc4x/java/modbus/field/ModbusFieldInputRegister.java
 create mode 100644 plc4j/drivers/modbus/src/main/java/org/apache/plc4x/java/modbus/protocol/ModbusProtocolLogic.java
 create mode 100644 plc4j/drivers/modbus/src/main/resources/META-INF/services/org.apache.plc4x.java.api.PlcDriver
 delete mode 100644 plc4j/drivers/modbus/src/main/resources/META-INF/services/org.apache.plc4x.java.spi.PlcDriver
 create mode 100644 plc4j/drivers/modbus/src/test/java/org/apache/plc4x/java/modbus/ModbusIOTest.java
 delete mode 100644 plc4j/drivers/modbus/src/test/java/org/apache/plc4x/java/modbus/ModbusPlcDriverTest.java
 delete mode 100644 plc4j/drivers/modbus/src/test/java/org/apache/plc4x/java/modbus/connection/BaseModbusPlcConnectionTest.java
 delete mode 100644 plc4j/drivers/modbus/src/test/java/org/apache/plc4x/java/modbus/connection/ModbusConnectionFactoryTest.java
 delete mode 100644 plc4j/drivers/modbus/src/test/java/org/apache/plc4x/java/modbus/connection/ModbusSerialPlcConnectionTest.java
 delete mode 100644 plc4j/drivers/modbus/src/test/java/org/apache/plc4x/java/modbus/connection/ModbusTcpPlcConnectionTests.java
 create mode 100644 plc4j/drivers/modbus/src/test/resources/testsuite/ModbusTestsuite.xml
 rename plc4j/drivers/opcua/src/main/resources/META-INF/services/{org.apache.plc4x.java.spi.PlcDriver => org.apache.plc4x.java.api.PlcDriver} (100%)
 delete mode 100644 plc4j/drivers/s7/README.md
 delete mode 100644 plc4j/drivers/s7/src/main/java/org/apache/plc4x/java/s7/S7PlcDriver.java
 delete mode 100644 plc4j/drivers/s7/src/main/java/org/apache/plc4x/java/s7/connection/S7PlcConnection.java
 create mode 100644 plc4j/drivers/s7/src/main/java/org/apache/plc4x/java/s7/readwrite/S7Driver.java
 create mode 100644 plc4j/drivers/s7/src/main/java/org/apache/plc4x/java/s7/readwrite/configuration/S7Configuration.java
 create mode 100644 plc4j/drivers/s7/src/main/java/org/apache/plc4x/java/s7/readwrite/context/S7DriverContext.java
 create mode 100644 plc4j/drivers/s7/src/main/java/org/apache/plc4x/java/s7/readwrite/field/S7Field.java
 create mode 100644 plc4j/drivers/s7/src/main/java/org/apache/plc4x/java/s7/readwrite/field/S7PlcFieldHandler.java
 create mode 100644 plc4j/drivers/s7/src/main/java/org/apache/plc4x/java/s7/readwrite/optimizer/DefaultS7MessageProcessor.java
 create mode 100644 plc4j/drivers/s7/src/main/java/org/apache/plc4x/java/s7/readwrite/optimizer/S7MessageProcessor.java
 create mode 100644 plc4j/drivers/s7/src/main/java/org/apache/plc4x/java/s7/readwrite/optimizer/S7Optimizer.java
 create mode 100644 plc4j/drivers/s7/src/main/java/org/apache/plc4x/java/s7/readwrite/protocol/S7ProtocolLogic.java
 create mode 100644 plc4j/drivers/s7/src/main/java/org/apache/plc4x/java/s7/readwrite/types/S7ControllerType.java
 create mode 100644 plc4j/drivers/s7/src/main/java/org/apache/plc4x/java/s7/readwrite/utils/S7TsapIdEncoder.java
 create mode 100644 plc4j/drivers/s7/src/main/java/org/apache/plc4x/java/s7/utils/StaticHelper.java
 create mode 100644 plc4j/drivers/s7/src/main/resources/META-INF/services/org.apache.plc4x.java.api.PlcDriver
 delete mode 100644 plc4j/drivers/s7/src/main/resources/META-INF/services/org.apache.plc4x.java.spi.PlcDriver
 rename plc4j/{protocols/s7/src/test => drivers/s7/src/main}/resources/logback.xml (100%)
 create mode 100644 plc4j/drivers/s7/src/test/java/BenchmarkGeneratedS7.java
 delete mode 100644 plc4j/drivers/s7/src/test/java/org/apache/plc4x/java/s7/BenchmarkS7.java
 delete mode 100644 plc4j/drivers/s7/src/test/java/org/apache/plc4x/java/s7/S7PlcDriverTest.java
 delete mode 100644 plc4j/drivers/s7/src/test/java/org/apache/plc4x/java/s7/connection/S7PlcConnectionIT.java
 delete mode 100644 plc4j/drivers/s7/src/test/java/org/apache/plc4x/java/s7/connection/S7PlcConnectionTests.java
 delete mode 100644 plc4j/drivers/s7/src/test/java/org/apache/plc4x/java/s7/connection/S7PlcTestConnection.java
 delete mode 100644 plc4j/drivers/s7/src/test/java/org/apache/plc4x/java/s7/connection/issues/PLC4X47Test.java
 create mode 100644 plc4j/drivers/s7/src/test/java/org/apache/plc4x/java/s7/readwrite/ManualS7DriverTest.java
 create mode 100644 plc4j/drivers/s7/src/test/java/org/apache/plc4x/java/s7/readwrite/S7DriverIT.java
 create mode 100644 plc4j/drivers/s7/src/test/java/org/apache/plc4x/java/s7/readwrite/S7ParserSerializerTest.java
 delete mode 100644 plc4j/drivers/s7/src/test/resources/org/apache/plc4x/java/s7/connection/iso-tp-connect-response.pcap
 delete mode 100644 plc4j/drivers/s7/src/test/resources/org/apache/plc4x/java/s7/connection/s7-cpu-functions-response.pcap
 delete mode 100644 plc4j/drivers/s7/src/test/resources/org/apache/plc4x/java/s7/connection/s7-read-large-response.pcap
 delete mode 100644 plc4j/drivers/s7/src/test/resources/org/apache/plc4x/java/s7/connection/s7-read-var-request.pcap
 delete mode 100644 plc4j/drivers/s7/src/test/resources/org/apache/plc4x/java/s7/connection/s7-read-var-response.pcap
 delete mode 100644 plc4j/drivers/s7/src/test/resources/org/apache/plc4x/java/s7/connection/s7-setup-communication-response.pcap
 delete mode 100644 plc4j/drivers/s7/src/test/resources/org/apache/plc4x/java/s7/connection/s7-write-var-request.pcap
 delete mode 100644 plc4j/drivers/s7/src/test/resources/org/apache/plc4x/java/s7/connection/s7-write-var-response.pcap
 create mode 100644 plc4j/drivers/s7/src/test/resources/testsuite/S7DriverIT.xml
 create mode 100644 plc4j/drivers/s7/src/test/resources/testsuite/S7ParserSerializerTest.xml
 create mode 100644 plc4j/drivers/simulated/src/main/java/org/apache/plc4x/java/simulated/SimulatedDriver.java
 delete mode 100644 plc4j/drivers/simulated/src/main/java/org/apache/plc4x/java/simulated/SimulatedPlcDriver.java
 create mode 100644 plc4j/drivers/simulated/src/main/java/org/apache/plc4x/java/simulated/connection/SimulatedConnection.java
 create mode 100644 plc4j/drivers/simulated/src/main/java/org/apache/plc4x/java/simulated/connection/SimulatedDevice.java
 delete mode 100644 plc4j/drivers/simulated/src/main/java/org/apache/plc4x/java/simulated/connection/SimulatedPlcConnection.java
 delete mode 100644 plc4j/drivers/simulated/src/main/java/org/apache/plc4x/java/simulated/connection/TestDevice.java
 delete mode 100644 plc4j/drivers/simulated/src/main/java/org/apache/plc4x/java/simulated/connection/TestField.java
 delete mode 100644 plc4j/drivers/simulated/src/main/java/org/apache/plc4x/java/simulated/connection/TestFieldHandler.java
 delete mode 100644 plc4j/drivers/simulated/src/main/java/org/apache/plc4x/java/simulated/connection/TestFieldItem.java
 delete mode 100644 plc4j/drivers/simulated/src/main/java/org/apache/plc4x/java/simulated/connection/TestType.java
 create mode 100644 plc4j/drivers/simulated/src/main/java/org/apache/plc4x/java/simulated/field/SimulatedField.java
 create mode 100644 plc4j/drivers/simulated/src/main/java/org/apache/plc4x/java/simulated/field/SimulatedFieldHandler.java
 create mode 100644 plc4j/drivers/simulated/src/main/java/org/apache/plc4x/java/simulated/types/SimulatedFieldType.java
 create mode 100644 plc4j/drivers/simulated/src/main/resources/META-INF/services/org.apache.plc4x.java.api.PlcDriver
 delete 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/SimulatedDriverTest.java
 delete 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/SimulatedConnectionTest.java
 create mode 100644 plc4j/drivers/simulated/src/test/java/org/apache/plc4x/java/simulated/connection/SimulatedDeviceTest.java
 delete mode 100644 plc4j/drivers/simulated/src/test/java/org/apache/plc4x/java/simulated/connection/SimulatedPlcConnectionTest.java
 delete mode 100644 plc4j/drivers/simulated/src/test/java/org/apache/plc4x/java/simulated/connection/TestDeviceTest.java
 delete mode 100644 plc4j/drivers/simulated/src/test/java/org/apache/plc4x/java/simulated/connection/TestFieldHandlerTest.java
 delete mode 100644 plc4j/drivers/simulated/src/test/java/org/apache/plc4x/java/simulated/connection/TestFieldItemTest.java
 delete mode 100644 plc4j/drivers/simulated/src/test/java/org/apache/plc4x/java/simulated/connection/TestFieldTest.java
 create mode 100644 plc4j/drivers/simulated/src/test/java/org/apache/plc4x/java/simulated/field/SimularedFieldHandlerTest.java
 create mode 100644 plc4j/drivers/simulated/src/test/java/org/apache/plc4x/java/simulated/field/SimulatedFieldTest.java
 rename plc4j/examples/dummy-driver/src/main/resources/META-INF/services/{org.apache.plc4x.java.spi.PlcDriver => org.apache.plc4x.java.api.PlcDriver} (100%)
 create mode 100644 plc4j/examples/hello-kafka-connect-elasticsearch/README.md
 create mode 100644 plc4j/examples/hello-kafka-connect-elasticsearch/kafka-connect-config/elasticsearch-sink.properties
 create mode 100644 plc4j/examples/hello-kafka-connect-elasticsearch/kafka-connect-config/elasticsearch-worker.properties
 create mode 100644 plc4j/examples/hello-kafka-connect-elasticsearch/kafka-connect-config/plc4x-source.properties
 create mode 100644 plc4j/examples/hello-kafka-connect-elasticsearch/kafka-connect-config/plc4x-worker.properties
 create mode 100644 plc4j/examples/hello-webapp/client/asconfig.json
 create mode 100644 plc4j/examples/hello-webapp/client/src/main/resources/plc4x-index-template.html
 create mode 100644 plc4j/examples/hello-webapp/client/src/main/royale/App.mxml
 delete mode 100644 plc4j/examples/hello-webapp/client/src/main/royale/HelloPLC4X.mxml
 delete mode 100644 plc4j/examples/hello-webapp/client/src/main/royale/service/RobotService.as
 delete mode 100644 plc4j/examples/hello-webapp/service/pom.xml
 delete mode 100644 plc4j/examples/hello-webapp/service/src/main/java/org/apache/plc4x/examples/robot/controllers/RobotController.java
 create mode 100644 plc4j/examples/hello-webapp/webapp/README.adoc
 delete mode 100644 plc4j/examples/hello-webapp/webapp/src/main/java/org/apache/plc4x/examples/robot/Application.java
 create mode 100644 plc4j/examples/hello-webapp/webapp/src/main/java/org/apache/plc4x/examples/watertank/Application.java
 create mode 100644 plc4j/examples/hello-webapp/webapp/src/main/java/org/apache/plc4x/examples/watertank/service/WaterTankService.java
 create mode 100644 plc4j/examples/hello-webapp/webapp/src/main/java/org/springframework/core/JdkVersion.java
 create mode 100644 plc4j/examples/hello-webapp/webapp/src/main/resources/META-INF/flex/services-config.xml
 create mode 100644 plc4j/examples/hello-webapp/webapp/src/main/webapp/WEB-INF/web.xml
 create mode 100644 plc4j/examples/hello-webapp/webapp/src/main/webapp/favicon.ico
 create mode 100644 plc4j/integrations/apache-camel/src/main/java/org/apache/plc4x/camel/TagData.java
 rename plc4j/integrations/apache-camel/src/test/resources/META-INF/services/{org.apache.plc4x.java.spi.PlcDriver => org.apache.plc4x.java.api.PlcDriver} (100%)
 create mode 100644 plc4j/integrations/apache-edgent/src/test/java.sav/org/apache/plc4x/edgent/PlcConnectionAdapterTest.java
 create mode 100644 plc4j/integrations/apache-edgent/src/test/java.sav/org/apache/plc4x/edgent/PlcFunctionsTest.java
 delete mode 100644 plc4j/integrations/apache-edgent/src/test/java/org/apache/plc4x/edgent/PlcConnectionAdapterTest.java
 delete mode 100644 plc4j/integrations/apache-edgent/src/test/java/org/apache/plc4x/edgent/PlcFunctionsTest.java
 delete mode 100644 plc4j/integrations/apache-edgent/src/test/java/org/apache/plc4x/edgent/mock/MockConnection.java
 delete mode 100644 plc4j/integrations/apache-edgent/src/test/java/org/apache/plc4x/edgent/mock/MockDriver.java
 delete mode 100644 plc4j/integrations/apache-edgent/src/test/java/org/apache/plc4x/edgent/mock/MockField.java
 delete mode 100644 plc4j/integrations/apache-edgent/src/test/java/org/apache/plc4x/edgent/mock/MockFieldHandler.java
 delete mode 100644 plc4j/integrations/apache-edgent/src/test/java/org/apache/plc4x/edgent/mock/MockFieldItem.java
 delete mode 100644 plc4j/integrations/apache-edgent/src/test/resources/META-INF/services/org.apache.plc4x.java.spi.PlcDriver
 create mode 100644 plc4j/karaf-features/camel/pom.xml
 create mode 100644 plc4j/karaf-features/eip/pom.xml
 delete mode 100644 plc4j/karaf-features/s7/src/main/feature/feature.xml
 create mode 100644 plc4j/osgi/pom.xml
 create mode 100644 plc4j/osgi/src/main/java/org/apache/plc4x/java/osgi/DriverActivator.java
 create mode 100644 plc4j/osgi/src/main/java/org/apache/plc4x/java/osgi/TransportActivator.java
 delete mode 100644 plc4j/protocols/ads/src/test/groovy/org/apache/plc4x/java/ads/protocol/util/LittleEndianDecoderSpec.groovy
 create mode 100644 plc4j/protocols/ads/src/test/groovy/org/apache/plc4x/java/ads/protocol/util/LittleEndianDecoderSpecHurz.groovy
 delete mode 100644 plc4j/protocols/ads/src/test/groovy/org/apache/plc4x/java/ads/protocol/util/LittleEndianEncoderSpec.groovy
 create mode 100644 plc4j/protocols/ads/src/test/groovy/org/apache/plc4x/java/ads/protocol/util/LittleEndianEncoderSpecHurz.groovy
 delete mode 100644 plc4j/protocols/driver-bases/base/pom.xml
 delete mode 100644 plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/GeneratedDriverByteToMessageCodec.java
 delete mode 100644 plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/PlcByteToMessageCodec.java
 delete mode 100644 plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/PlcMessageToMessageCodec.java
 delete mode 100644 plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/connection/AbstractPlcConnection.java
 delete mode 100644 plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/connection/ChannelFactory.java
 delete mode 100644 plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/connection/DefaultPlcFieldHandler.java
 delete mode 100644 plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/connection/NettyPlcConnection.java
 delete mode 100644 plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/connection/PlcFieldHandler.java
 delete mode 100644 plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/events/ConnectEvent.java
 delete mode 100644 plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/events/ConnectedEvent.java
 delete mode 100644 plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/events/DisconnectEvent.java
 delete mode 100644 plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/events/DisconnectedEvent.java
 delete mode 100644 plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/DefaultPlcProprietaryRequest.java
 delete mode 100644 plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/DefaultPlcProprietaryResponse.java
 delete mode 100644 plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/DefaultPlcReadRequest.java
 delete mode 100644 plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/DefaultPlcReadResponse.java
 delete mode 100644 plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/DefaultPlcSubscriptionEvent.java
 delete mode 100644 plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/DefaultPlcSubscriptionRequest.java
 delete mode 100644 plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/DefaultPlcSubscriptionResponse.java
 delete mode 100644 plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/DefaultPlcUnsubscriptionRequest.java
 delete mode 100644 plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/DefaultPlcUnsubscriptionResponse.java
 delete mode 100644 plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/DefaultPlcWriteRequest.java
 delete mode 100644 plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/DefaultPlcWriteResponse.java
 delete mode 100644 plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/InternalPlcFieldRequest.java
 delete mode 100644 plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/InternalPlcFieldResponse.java
 delete mode 100644 plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/InternalPlcMessage.java
 delete mode 100644 plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/InternalPlcProprietaryRequest.java
 delete mode 100644 plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/InternalPlcProprietaryResponse.java
 delete mode 100644 plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/InternalPlcReadRequest.java
 delete mode 100644 plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/InternalPlcReadResponse.java
 delete mode 100644 plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/InternalPlcRequest.java
 delete mode 100644 plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/InternalPlcResponse.java
 delete mode 100644 plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/InternalPlcSubscriptionEvent.java
 delete mode 100644 plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/InternalPlcSubscriptionRequest.java
 delete mode 100644 plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/InternalPlcSubscriptionResponse.java
 delete mode 100644 plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/InternalPlcUnsubscriptionRequest.java
 delete mode 100644 plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/InternalPlcUnsubscriptionResponse.java
 delete mode 100644 plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/InternalPlcWriteRequest.java
 delete mode 100644 plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/InternalPlcWriteResponse.java
 delete mode 100644 plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/PlcProprietaryRequest.java
 delete mode 100644 plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/PlcProprietaryResponse.java
 delete mode 100644 plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/PlcProprietarySender.java
 delete mode 100644 plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/PlcProtocolMessage.java
 delete mode 100644 plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/PlcRawMessage.java
 delete mode 100644 plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/PlcReader.java
 delete mode 100644 plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/PlcRequestContainer.java
 delete mode 100644 plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/PlcSubscriber.java
 delete mode 100644 plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/PlcWriter.java
 delete mode 100644 plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/items/BaseDefaultFieldItem.java
 delete mode 100644 plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/items/DefaultBigDecimalFieldItem.java
 delete mode 100644 plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/items/DefaultBigIntegerFieldItem.java
 delete mode 100644 plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/items/DefaultBooleanFieldItem.java
 delete mode 100644 plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/items/DefaultByteArrayFieldItem.java
 delete mode 100644 plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/items/DefaultByteFieldItem.java
 delete mode 100644 plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/items/DefaultDoubleFieldItem.java
 delete mode 100644 plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/items/DefaultFloatFieldItem.java
 delete mode 100644 plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/items/DefaultIntegerFieldItem.java
 delete mode 100644 plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/items/DefaultLocalDateFieldItem.java
 delete mode 100644 plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/items/DefaultLocalDateTimeFieldItem.java
 delete mode 100644 plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/items/DefaultLocalTimeFieldItem.java
 delete mode 100644 plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/items/DefaultLongFieldItem.java
 delete mode 100644 plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/items/DefaultShortFieldItem.java
 delete mode 100644 plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/items/DefaultStringFieldItem.java
 delete mode 100644 plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/model/DefaultPlcConsumerRegistration.java
 delete mode 100644 plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/model/DefaultPlcSubscriptionHandle.java
 delete mode 100644 plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/model/InternalPlcConsumerRegistration.java
 delete mode 100644 plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/model/InternalPlcSubscriptionHandle.java
 delete mode 100644 plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/model/SubscriptionPlcField.java
 delete mode 100644 plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/protocol/SingleItemToSingleRequestProtocol.java
 delete mode 100644 plc4j/protocols/driver-bases/base/src/test/groovy/org/apache/plc4x/java/base/messages/DefaultPlcReadResponseSpec.groovy
 delete mode 100644 plc4j/protocols/driver-bases/base/src/test/groovy/org/apache/plc4x/java/base/messages/items/DefaultItemsSpec.groovy
 delete mode 100644 plc4j/protocols/driver-bases/base/src/test/java/org/apache/plc4x/java/base/connection/AbstractPlcConnectionTest.java
 delete 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/base/src/test/java/org/apache/plc4x/java/base/messages/DefaultPlcProprietaryRequestTest.java
 delete mode 100644 plc4j/protocols/driver-bases/base/src/test/java/org/apache/plc4x/java/base/messages/DefaultPlcProprietaryResponseTest.java
 delete mode 100644 plc4j/protocols/driver-bases/base/src/test/java/org/apache/plc4x/java/base/messages/DefaultPlcReadRequestTest.java
 delete mode 100644 plc4j/protocols/driver-bases/base/src/test/java/org/apache/plc4x/java/base/messages/DefaultPlcReadResponseTest.java
 delete mode 100644 plc4j/protocols/driver-bases/base/src/test/java/org/apache/plc4x/java/base/messages/DefaultPlcSubscriptionEventTest.java
 delete mode 100644 plc4j/protocols/driver-bases/base/src/test/java/org/apache/plc4x/java/base/messages/DefaultPlcSubscriptionRequestTest.java
 delete mode 100644 plc4j/protocols/driver-bases/base/src/test/java/org/apache/plc4x/java/base/messages/DefaultPlcSubscriptionResponseTest.java
 delete mode 100644 plc4j/protocols/driver-bases/base/src/test/java/org/apache/plc4x/java/base/messages/DefaultPlcUnsubscriptionRequestTest.java
 delete mode 100644 plc4j/protocols/driver-bases/base/src/test/java/org/apache/plc4x/java/base/messages/DefaultPlcUnsubscriptionResponseTest.java
 delete mode 100644 plc4j/protocols/driver-bases/base/src/test/java/org/apache/plc4x/java/base/messages/DefaultPlcWriteRequestTest.java
 delete mode 100644 plc4j/protocols/driver-bases/base/src/test/java/org/apache/plc4x/java/base/messages/DefaultPlcWriteResponseTest.java
 delete mode 100644 plc4j/protocols/driver-bases/base/src/test/java/org/apache/plc4x/java/base/messages/PlcRawMessageTest.java
 delete mode 100644 plc4j/protocols/driver-bases/base/src/test/java/org/apache/plc4x/java/base/messages/PlcRequestContainerTest.java
 delete mode 100644 plc4j/protocols/driver-bases/base/src/test/java/org/apache/plc4x/java/base/messages/items/DefaultLongFieldItemTest.java
 delete mode 100644 plc4j/protocols/driver-bases/base/src/test/java/org/apache/plc4x/java/base/model/DefaultPlcConsumerRegistrationTest.java
 delete mode 100644 plc4j/protocols/driver-bases/base/src/test/java/org/apache/plc4x/java/base/model/DefaultPlcSubscriptionHandleTest.java
 delete mode 100644 plc4j/protocols/driver-bases/base/src/test/java/org/apache/plc4x/java/base/model/SubscriptionPlcFieldTest.java
 delete mode 100644 plc4j/protocols/driver-bases/base/src/test/java/org/apache/plc4x/java/base/protocol/SingleItemToSingleRequestProtocolTest.java
 delete mode 100644 plc4j/protocols/driver-bases/base/src/test/resources/META-INF/services/com.athaydes.spockframework.report.IReportCreator.properties
 delete mode 100644 plc4j/protocols/driver-bases/pcap-socket/pom.xml
 delete mode 100644 plc4j/protocols/driver-bases/pcap-socket/src/main/java/org/apache/plc4x/java/base/connection/PcapChannelFactory.java
 delete mode 100644 plc4j/protocols/driver-bases/pom.xml
 delete mode 100644 plc4j/protocols/driver-bases/raw-socket/pom.xml
 delete mode 100644 plc4j/protocols/driver-bases/raw-socket/src/main/java/org/apache/plc4x/java/base/connection/RawSocketChannelFactory.java
 delete mode 100644 plc4j/protocols/driver-bases/serial/pom.xml
 delete mode 100644 plc4j/protocols/driver-bases/serial/src/main/java/org/apache/plc4x/java/serial/connection/connection/SerialChannel.java
 delete mode 100644 plc4j/protocols/driver-bases/serial/src/main/java/org/apache/plc4x/java/serial/connection/connection/SerialChannelFactory.java
 delete mode 100644 plc4j/protocols/driver-bases/serial/src/main/java/org/apache/plc4x/java/serial/connection/connection/SerialChannelHandler.java
 delete mode 100644 plc4j/protocols/driver-bases/serial/src/main/java/org/apache/plc4x/java/serial/connection/connection/SerialPollingSelector.java
 delete mode 100644 plc4j/protocols/driver-bases/serial/src/main/java/org/apache/plc4x/java/serial/connection/connection/SerialSelectionKey.java
 delete mode 100644 plc4j/protocols/driver-bases/serial/src/main/java/org/apache/plc4x/java/serial/connection/connection/SerialSelectorProvider.java
 delete mode 100644 plc4j/protocols/driver-bases/serial/src/main/java/org/apache/plc4x/java/serial/connection/connection/SerialSocketAddress.java
 delete mode 100644 plc4j/protocols/driver-bases/serial/src/main/java/org/apache/plc4x/java/serial/connection/connection/SerialSocketChannel.java
 delete mode 100644 plc4j/protocols/driver-bases/serial/src/test/java/org/apache/plc4x/java/base/connection/SerialChannelFactoryTest.java
 delete mode 100644 plc4j/protocols/driver-bases/tcp/pom.xml
 delete mode 100644 plc4j/protocols/driver-bases/tcp/src/main/java/org/apache/plc4x/java/tcp/connection/TcpSocketChannelFactory.java
 delete mode 100644 plc4j/protocols/driver-bases/test/pom.xml
 delete mode 100644 plc4j/protocols/driver-bases/test/src/main/java/org/apache/plc4x/java/mock/MockDevice.java
 delete mode 100644 plc4j/protocols/driver-bases/test/src/main/java/org/apache/plc4x/java/mock/MockField.java
 delete mode 100644 plc4j/protocols/driver-bases/test/src/main/java/org/apache/plc4x/java/mock/MockFieldHandler.java
 delete mode 100644 plc4j/protocols/driver-bases/test/src/main/java/org/apache/plc4x/java/mock/MockFieldItem.java
 delete mode 100644 plc4j/protocols/driver-bases/test/src/main/java/org/apache/plc4x/java/mock/PlcMockConnection.java
 delete mode 100644 plc4j/protocols/driver-bases/test/src/main/java/org/apache/plc4x/java/mock/PlcMockDriver.java
 delete mode 100644 plc4j/protocols/driver-bases/test/src/main/java/org/apache/plc4x/java/mock/connection/MockConnection.java
 delete mode 100644 plc4j/protocols/driver-bases/test/src/main/java/org/apache/plc4x/java/mock/connection/TestChannelFactory.java
 delete mode 100644 plc4j/protocols/driver-bases/test/src/main/java/org/apache/plc4x/java/mock/connection/tcp/TcpHexDumper.java
 delete mode 100644 plc4j/protocols/driver-bases/test/src/main/java/org/apache/plc4x/java/mock/protocol/Plc4XSupportedDataTypes.java
 delete mode 100644 plc4j/protocols/driver-bases/test/src/main/java/org/apache/plc4x/java/mock/util/Assert.java
 delete mode 100644 plc4j/protocols/driver-bases/test/src/main/resources/META-INF/services/com.athaydes.spockframework.report.IReportCreator.properties
 delete mode 100644 plc4j/protocols/driver-bases/test/src/main/resources/META-INF/services/org.apache.plc4x.java.spi.PlcDriver
 delete mode 100644 plc4j/protocols/driver-bases/test/src/test/java/org/apache/plc4x/java/mock/MockFieldHandlerTest.java
 delete mode 100644 plc4j/protocols/driver-bases/test/src/test/java/org/apache/plc4x/java/mock/MockFieldItemTest.java
 delete mode 100644 plc4j/protocols/driver-bases/test/src/test/java/org/apache/plc4x/java/mock/MockFieldTest.java
 delete mode 100644 plc4j/protocols/driver-bases/test/src/test/java/org/apache/plc4x/java/mock/PlcMockConnectionTest.java
 delete mode 100644 plc4j/protocols/driver-bases/test/src/test/java/org/apache/plc4x/java/mock/PlcMockDriverTest.java
 delete mode 100644 plc4j/protocols/driver-bases/udp/pom.xml
 delete mode 100644 plc4j/protocols/driver-bases/udp/src/main/java/org/apache/plc4x/java/base/connection/UdpSocketChannelFactory.java
 delete mode 100644 plc4j/protocols/driver-bases/udp/src/main/java/org/apache/plc4x/java/base/connection/protocol/DatagramUnpackingHandler.java
 delete mode 100644 plc4j/protocols/ethernet-ip/pom.xml
 delete mode 100644 plc4j/protocols/ethernet-ip/src/main/java/org/apache/plc4x/java/ethernetip/model/EtherNetIpField.java
 delete mode 100644 plc4j/protocols/ethernet-ip/src/main/java/org/apache/plc4x/java/ethernetip/netty/EnipCodec.java
 delete mode 100644 plc4j/protocols/ethernet-ip/src/main/java/org/apache/plc4x/java/ethernetip/netty/Plc4XEtherNetIpProtocol.java
 delete mode 100644 plc4j/protocols/ethernet-ip/src/main/java/org/apache/plc4x/java/ethernetip/netty/events/EtherNetIpConnectedEvent.java
 delete mode 100644 plc4j/protocols/ethernet-ip/src/main/java/org/apache/plc4x/java/ethernetip/netty/util/EnipPlcFieldHandler.java
 delete mode 100644 plc4j/protocols/ethernet-ip/src/site/asciidoc/index.adoc
 delete mode 100644 plc4j/protocols/ethernet-ip/src/site/resources/images/WAGO_enip_exporer.png
 delete mode 100644 plc4j/protocols/iso-on-tcp/pom.xml
 delete mode 100644 plc4j/protocols/iso-on-tcp/src/main/java/org/apache/plc4x/java/isoontcp/protocol/IsoOnTcpProtocol.java
 delete mode 100644 plc4j/protocols/iso-on-tcp/src/main/java/org/apache/plc4x/java/isoontcp/protocol/model/IsoOnTcpMessage.java
 delete mode 100644 plc4j/protocols/iso-on-tcp/src/test/java/org/apache/plc4x/java/isoontcp/protocol/IsoOnTcpProtocolTest.java
 delete mode 100644 plc4j/protocols/iso-tp/pom.xml
 delete mode 100644 plc4j/protocols/iso-tp/src/main/java/org/apache/plc4x/java/isotp/protocol/IsoTPProtocol.java
 delete mode 100644 plc4j/protocols/iso-tp/src/main/java/org/apache/plc4x/java/isotp/protocol/events/IsoTPConnectedEvent.java
 delete mode 100644 plc4j/protocols/iso-tp/src/main/java/org/apache/plc4x/java/isotp/protocol/model/IsoTPMessage.java
 delete mode 100644 plc4j/protocols/iso-tp/src/main/java/org/apache/plc4x/java/isotp/protocol/model/params/CalledTsapParameter.java
 delete mode 100644 plc4j/protocols/iso-tp/src/main/java/org/apache/plc4x/java/isotp/protocol/model/params/CallingTsapParameter.java
 delete mode 100644 plc4j/protocols/iso-tp/src/main/java/org/apache/plc4x/java/isotp/protocol/model/params/ChecksumParameter.java
 delete mode 100644 plc4j/protocols/iso-tp/src/main/java/org/apache/plc4x/java/isotp/protocol/model/params/DisconnectAdditionalInformationParameter.java
 delete mode 100644 plc4j/protocols/iso-tp/src/main/java/org/apache/plc4x/java/isotp/protocol/model/params/Parameter.java
 delete mode 100644 plc4j/protocols/iso-tp/src/main/java/org/apache/plc4x/java/isotp/protocol/model/params/TpduSizeParameter.java
 delete mode 100644 plc4j/protocols/iso-tp/src/main/java/org/apache/plc4x/java/isotp/protocol/model/params/TsapParameter.java
 delete mode 100644 plc4j/protocols/iso-tp/src/main/java/org/apache/plc4x/java/isotp/protocol/model/tpdus/ConnectionConfirmTpdu.java
 delete mode 100644 plc4j/protocols/iso-tp/src/main/java/org/apache/plc4x/java/isotp/protocol/model/tpdus/ConnectionRequestTpdu.java
 delete mode 100644 plc4j/protocols/iso-tp/src/main/java/org/apache/plc4x/java/isotp/protocol/model/tpdus/ConnectionTpdu.java
 delete mode 100644 plc4j/protocols/iso-tp/src/main/java/org/apache/plc4x/java/isotp/protocol/model/tpdus/CustomTpdu.java
 delete mode 100644 plc4j/protocols/iso-tp/src/main/java/org/apache/plc4x/java/isotp/protocol/model/tpdus/DataTpdu.java
 delete mode 100644 plc4j/protocols/iso-tp/src/main/java/org/apache/plc4x/java/isotp/protocol/model/tpdus/DisconnectConfirmTpdu.java
 delete mode 100644 plc4j/protocols/iso-tp/src/main/java/org/apache/plc4x/java/isotp/protocol/model/tpdus/DisconnectRequestTpdu.java
 delete mode 100644 plc4j/protocols/iso-tp/src/main/java/org/apache/plc4x/java/isotp/protocol/model/tpdus/DisconnectTpdu.java
 delete mode 100644 plc4j/protocols/iso-tp/src/main/java/org/apache/plc4x/java/isotp/protocol/model/tpdus/ErrorTpdu.java
 delete mode 100644 plc4j/protocols/iso-tp/src/main/java/org/apache/plc4x/java/isotp/protocol/model/tpdus/Tpdu.java
 delete mode 100644 plc4j/protocols/iso-tp/src/main/java/org/apache/plc4x/java/isotp/protocol/model/types/DeviceGroup.java
 delete mode 100644 plc4j/protocols/iso-tp/src/main/java/org/apache/plc4x/java/isotp/protocol/model/types/DisconnectReason.java
 delete mode 100644 plc4j/protocols/iso-tp/src/main/java/org/apache/plc4x/java/isotp/protocol/model/types/ParameterCode.java
 delete mode 100644 plc4j/protocols/iso-tp/src/main/java/org/apache/plc4x/java/isotp/protocol/model/types/ProtocolClass.java
 delete mode 100644 plc4j/protocols/iso-tp/src/main/java/org/apache/plc4x/java/isotp/protocol/model/types/RejectCause.java
 delete mode 100644 plc4j/protocols/iso-tp/src/main/java/org/apache/plc4x/java/isotp/protocol/model/types/TpduCode.java
 delete mode 100644 plc4j/protocols/iso-tp/src/main/java/org/apache/plc4x/java/isotp/protocol/model/types/TpduSize.java
 delete mode 100644 plc4j/protocols/iso-tp/src/test/java/org/apache/plc4x/java/isotp/protocol/IsoTPProtocolTest.java
 delete mode 100644 plc4j/protocols/iso-tp/src/test/java/org/apache/plc4x/java/isotp/protocol/model/IsoTPMessageTests.java
 delete mode 100644 plc4j/protocols/iso-tp/src/test/java/org/apache/plc4x/java/isotp/protocol/model/params/ParameterTests.java
 delete mode 100644 plc4j/protocols/iso-tp/src/test/java/org/apache/plc4x/java/isotp/protocol/model/params/TsapParameterTests.java
 delete mode 100644 plc4j/protocols/iso-tp/src/test/java/org/apache/plc4x/java/isotp/protocol/model/tpdus/IsotpModelTests.java
 delete mode 100644 plc4j/protocols/iso-tp/src/test/java/org/apache/plc4x/java/isotp/protocol/model/types/IsotpTypeTests.java
 delete mode 100644 plc4j/protocols/modbus/pom.xml
 delete mode 100644 plc4j/protocols/modbus/src/main/java/org/apache/plc4x/java/modbus/messages/items/DefaultModbusByteArrayFieldItem.java
 delete mode 100644 plc4j/protocols/modbus/src/main/java/org/apache/plc4x/java/modbus/model/CoilModbusField.java
 delete mode 100644 plc4j/protocols/modbus/src/main/java/org/apache/plc4x/java/modbus/model/MaskWriteRegisterModbusField.java
 delete mode 100644 plc4j/protocols/modbus/src/main/java/org/apache/plc4x/java/modbus/model/ModbusField.java
 delete mode 100644 plc4j/protocols/modbus/src/main/java/org/apache/plc4x/java/modbus/model/ReadDiscreteInputsModbusField.java
 delete mode 100644 plc4j/protocols/modbus/src/main/java/org/apache/plc4x/java/modbus/model/ReadHoldingRegistersModbusField.java
 delete mode 100644 plc4j/protocols/modbus/src/main/java/org/apache/plc4x/java/modbus/model/ReadInputRegistersModbusField.java
 delete mode 100644 plc4j/protocols/modbus/src/main/java/org/apache/plc4x/java/modbus/model/RegisterModbusField.java
 delete mode 100644 plc4j/protocols/modbus/src/main/java/org/apache/plc4x/java/modbus/netty/Plc4XModbusProtocol.java
 delete mode 100644 plc4j/protocols/modbus/src/main/java/org/apache/plc4x/java/modbus/util/ModbusPlcFieldHandler.java
 delete mode 100644 plc4j/protocols/modbus/src/test/java/org/apache/plc4x/java/modbus/ManualPlc4XModbusTest.java
 delete mode 100644 plc4j/protocols/modbus/src/test/java/org/apache/plc4x/java/modbus/messages/items/DefaultModbusByteArrayFieldItemTest.java
 delete mode 100644 plc4j/protocols/modbus/src/test/java/org/apache/plc4x/java/modbus/netty/Plc4XModbusProtocolTest.java
 delete mode 100644 plc4j/protocols/modbus/src/test/resources/logback.xml
 delete mode 100644 plc4j/protocols/s7/LINKS.md
 delete mode 100644 plc4j/protocols/s7/pom.xml
 delete mode 100644 plc4j/protocols/s7/src/main/java/org/apache/plc4x/java/s7/model/S7Field.java
 delete mode 100644 plc4j/protocols/s7/src/main/java/org/apache/plc4x/java/s7/netty/Plc4XNettyException.java
 delete mode 100644 plc4j/protocols/s7/src/main/java/org/apache/plc4x/java/s7/netty/Plc4XS7Protocol.java
 delete mode 100644 plc4j/protocols/s7/src/main/java/org/apache/plc4x/java/s7/netty/S7Protocol.java
 delete mode 100644 plc4j/protocols/s7/src/main/java/org/apache/plc4x/java/s7/netty/events/S7ConnectedEvent.java
 delete mode 100644 plc4j/protocols/s7/src/main/java/org/apache/plc4x/java/s7/netty/model/messages/S7Message.java
 delete mode 100644 plc4j/protocols/s7/src/main/java/org/apache/plc4x/java/s7/netty/model/messages/S7RequestMessage.java
 delete mode 100644 plc4j/protocols/s7/src/main/java/org/apache/plc4x/java/s7/netty/model/messages/S7ResponseMessage.java
 delete mode 100644 plc4j/protocols/s7/src/main/java/org/apache/plc4x/java/s7/netty/model/messages/SetupCommunicationRequestMessage.java
 delete mode 100644 plc4j/protocols/s7/src/main/java/org/apache/plc4x/java/s7/netty/model/params/CpuServicesParameter.java
 delete mode 100644 plc4j/protocols/s7/src/main/java/org/apache/plc4x/java/s7/netty/model/params/CpuServicesRequestParameter.java
 delete mode 100644 plc4j/protocols/s7/src/main/java/org/apache/plc4x/java/s7/netty/model/params/CpuServicesResponseParameter.java
 delete mode 100644 plc4j/protocols/s7/src/main/java/org/apache/plc4x/java/s7/netty/model/params/S7Parameter.java
 delete mode 100644 plc4j/protocols/s7/src/main/java/org/apache/plc4x/java/s7/netty/model/params/SetupCommunicationParameter.java
 delete mode 100644 plc4j/protocols/s7/src/main/java/org/apache/plc4x/java/s7/netty/model/params/VarParameter.java
 delete mode 100644 plc4j/protocols/s7/src/main/java/org/apache/plc4x/java/s7/netty/model/params/items/S7AnyVarParameterItem.java
 delete mode 100644 plc4j/protocols/s7/src/main/java/org/apache/plc4x/java/s7/netty/model/params/items/VarParameterItem.java
 delete mode 100644 plc4j/protocols/s7/src/main/java/org/apache/plc4x/java/s7/netty/model/payloads/CpuServicesPayload.java
 delete mode 100644 plc4j/protocols/s7/src/main/java/org/apache/plc4x/java/s7/netty/model/payloads/S7Payload.java
 delete mode 100644 plc4j/protocols/s7/src/main/java/org/apache/plc4x/java/s7/netty/model/payloads/VarPayload.java
 delete mode 100644 plc4j/protocols/s7/src/main/java/org/apache/plc4x/java/s7/netty/model/payloads/items/VarPayloadItem.java
 delete mode 100644 plc4j/protocols/s7/src/main/java/org/apache/plc4x/java/s7/netty/model/payloads/ssls/SslDataRecord.java
 delete mode 100644 plc4j/protocols/s7/src/main/java/org/apache/plc4x/java/s7/netty/model/payloads/ssls/SslModuleIdentificationDataRecord.java
 delete mode 100644 plc4j/protocols/s7/src/main/java/org/apache/plc4x/java/s7/netty/model/types/CpuServicesParameterFunctionGroup.java
 delete mode 100644 plc4j/protocols/s7/src/main/java/org/apache/plc4x/java/s7/netty/model/types/CpuServicesParameterSubFunctionGroup.java
 delete mode 100644 plc4j/protocols/s7/src/main/java/org/apache/plc4x/java/s7/netty/model/types/DataTransportErrorCode.java
 delete mode 100644 plc4j/protocols/s7/src/main/java/org/apache/plc4x/java/s7/netty/model/types/DataTransportSize.java
 delete mode 100644 plc4j/protocols/s7/src/main/java/org/apache/plc4x/java/s7/netty/model/types/HeaderErrorClass.java
 delete mode 100644 plc4j/protocols/s7/src/main/java/org/apache/plc4x/java/s7/netty/model/types/MemoryArea.java
 delete mode 100644 plc4j/protocols/s7/src/main/java/org/apache/plc4x/java/s7/netty/model/types/MessageType.java
 delete mode 100644 plc4j/protocols/s7/src/main/java/org/apache/plc4x/java/s7/netty/model/types/ParameterError.java
 delete mode 100644 plc4j/protocols/s7/src/main/java/org/apache/plc4x/java/s7/netty/model/types/ParameterType.java
 delete mode 100644 plc4j/protocols/s7/src/main/java/org/apache/plc4x/java/s7/netty/model/types/SpecificationType.java
 delete mode 100644 plc4j/protocols/s7/src/main/java/org/apache/plc4x/java/s7/netty/model/types/SslId.java
 delete mode 100644 plc4j/protocols/s7/src/main/java/org/apache/plc4x/java/s7/netty/model/types/TransportSize.java
 delete mode 100644 plc4j/protocols/s7/src/main/java/org/apache/plc4x/java/s7/netty/model/types/VariableAddressingMode.java
 delete mode 100644 plc4j/protocols/s7/src/main/java/org/apache/plc4x/java/s7/netty/strategies/DefaultS7MessageProcessor.java
 delete mode 100644 plc4j/protocols/s7/src/main/java/org/apache/plc4x/java/s7/netty/strategies/S7MessageProcessor.java
 delete mode 100644 plc4j/protocols/s7/src/main/java/org/apache/plc4x/java/s7/netty/util/S7PlcFieldHandler.java
 delete mode 100644 plc4j/protocols/s7/src/main/java/org/apache/plc4x/java/s7/netty/util/S7RequestSizeCalculator.java
 delete mode 100644 plc4j/protocols/s7/src/main/java/org/apache/plc4x/java/s7/netty/util/S7ResponseSizeEstimator.java
 delete mode 100644 plc4j/protocols/s7/src/main/java/org/apache/plc4x/java/s7/netty/util/S7SizeHelper.java
 delete mode 100644 plc4j/protocols/s7/src/main/java/org/apache/plc4x/java/s7/types/S7ControllerType.java
 delete mode 100644 plc4j/protocols/s7/src/main/java/org/apache/plc4x/java/s7/utils/S7TsapIdEncoder.java
 delete mode 100644 plc4j/protocols/s7/src/site/asciidoc/index.adoc
 delete mode 100644 plc4j/protocols/s7/src/test/groovy/org/apache/plc4x/java/s7/netty/Plc4XS7ProtocolSpec.groovy
 delete mode 100644 plc4j/protocols/s7/src/test/java/org/apache/plc4x/java/issues/PLC4X56.java
 delete mode 100644 plc4j/protocols/s7/src/test/java/org/apache/plc4x/java/s7/PcapGenerator.java
 delete mode 100644 plc4j/protocols/s7/src/test/java/org/apache/plc4x/java/s7/model/S7FieldTests.java
 delete mode 100644 plc4j/protocols/s7/src/test/java/org/apache/plc4x/java/s7/netty/Plc4XS7ProtocolTest.java
 delete mode 100644 plc4j/protocols/s7/src/test/java/org/apache/plc4x/java/s7/netty/S7ProtocolTest.java
 delete mode 100644 plc4j/protocols/s7/src/test/java/org/apache/plc4x/java/s7/netty/model/messages/S7MessageTests.java
 delete mode 100644 plc4j/protocols/s7/src/test/java/org/apache/plc4x/java/s7/netty/model/params/S7ParameterTests.java
 delete mode 100644 plc4j/protocols/s7/src/test/java/org/apache/plc4x/java/s7/netty/model/payloads/S7PayloadTests.java
 delete mode 100644 plc4j/protocols/s7/src/test/java/org/apache/plc4x/java/s7/netty/model/types/S7TypeTests.java
 delete mode 100644 plc4j/protocols/s7/src/test/java/org/apache/plc4x/java/s7/netty/strategies/DefaultS7MessageProcessorTest.java
 delete mode 100644 plc4j/protocols/s7/src/test/java/org/apache/plc4x/java/s7/netty/util/S7PlcFieldHandlerTest.java
 delete mode 100644 plc4j/protocols/s7/src/test/java/org/apache/plc4x/java/s7/netty/util/S7RequestSizeCalculatorTest.java
 delete mode 100644 plc4j/protocols/s7/src/test/java/org/apache/plc4x/java/s7/netty/util/S7ResponseSizeEstimatorTest.java
 delete mode 100644 plc4j/protocols/s7/src/test/java/org/apache/plc4x/java/s7/netty/util/S7SizeHelperTest.java
 delete mode 100644 plc4j/protocols/s7/src/test/java/org/apache/plc4x/java/s7/types/S7DataTypeTest.java
 delete mode 100644 plc4j/protocols/s7/src/test/java/org/apache/plc4x/java/s7/utils/S7TsapIdEncoderTest.java
 create mode 100644 plc4j/spi/pom.xml
 create mode 100644 plc4j/spi/src/main/java/org/apache/plc4x/java/spi/ConversationContext.java
 create mode 100644 plc4j/spi/src/main/java/org/apache/plc4x/java/spi/GeneratedDriverByteToMessageCodec.java
 create mode 100644 plc4j/spi/src/main/java/org/apache/plc4x/java/spi/Plc4xNettyWrapper.java
 create mode 100644 plc4j/spi/src/main/java/org/apache/plc4x/java/spi/Plc4xProtocolBase.java
 create mode 100644 plc4j/spi/src/main/java/org/apache/plc4x/java/spi/PlcMessageToMessageCodec.java
 create mode 100644 plc4j/spi/src/main/java/org/apache/plc4x/java/spi/configuration/Configuration.java
 create mode 100644 plc4j/spi/src/main/java/org/apache/plc4x/java/spi/configuration/ConfigurationFactory.java
 create mode 100644 plc4j/spi/src/main/java/org/apache/plc4x/java/spi/configuration/ConfigurationParameterConverter.java
 create mode 100644 plc4j/spi/src/main/java/org/apache/plc4x/java/spi/configuration/HasConfiguration.java
 create mode 100644 plc4j/spi/src/main/java/org/apache/plc4x/java/spi/configuration/annotations/ConfigurationParameter.java
 create mode 100644 plc4j/spi/src/main/java/org/apache/plc4x/java/spi/configuration/annotations/ParameterConverter.java
 create mode 100644 plc4j/spi/src/main/java/org/apache/plc4x/java/spi/configuration/annotations/Required.java
 create mode 100644 plc4j/spi/src/main/java/org/apache/plc4x/java/spi/configuration/annotations/defaults/BooleanDefaultValue.java
 create mode 100644 plc4j/spi/src/main/java/org/apache/plc4x/java/spi/configuration/annotations/defaults/DoubleDefaultValue.java
 create mode 100644 plc4j/spi/src/main/java/org/apache/plc4x/java/spi/configuration/annotations/defaults/IntDefaultValue.java
 create mode 100644 plc4j/spi/src/main/java/org/apache/plc4x/java/spi/configuration/annotations/defaults/LongDefaultValue.java
 create mode 100644 plc4j/spi/src/main/java/org/apache/plc4x/java/spi/configuration/annotations/defaults/StringDefaultValue.java
 create mode 100644 plc4j/spi/src/main/java/org/apache/plc4x/java/spi/connection/AbstractPlcConnection.java
 create mode 100644 plc4j/spi/src/main/java/org/apache/plc4x/java/spi/connection/ChannelExposingConnection.java
 create mode 100644 plc4j/spi/src/main/java/org/apache/plc4x/java/spi/connection/ChannelFactory.java
 create mode 100644 plc4j/spi/src/main/java/org/apache/plc4x/java/spi/connection/DefaultNettyPlcConnection.java
 create mode 100644 plc4j/spi/src/main/java/org/apache/plc4x/java/spi/connection/DefaultPlcFieldHandler.java
 create mode 100644 plc4j/spi/src/main/java/org/apache/plc4x/java/spi/connection/GeneratedDriverBase.java
 create mode 100644 plc4j/spi/src/main/java/org/apache/plc4x/java/spi/connection/GeneratedProtocolMessageCodec.java
 create mode 100644 plc4j/spi/src/main/java/org/apache/plc4x/java/spi/connection/NettyChannelFactory.java
 create mode 100644 plc4j/spi/src/main/java/org/apache/plc4x/java/spi/connection/PlcFieldHandler.java
 create mode 100644 plc4j/spi/src/main/java/org/apache/plc4x/java/spi/connection/ProtocolStackConfigurer.java
 create mode 100644 plc4j/spi/src/main/java/org/apache/plc4x/java/spi/connection/SingleProtocolStackConfigurer.java
 create mode 100644 plc4j/spi/src/main/java/org/apache/plc4x/java/spi/context/DriverContext.java
 create mode 100644 plc4j/spi/src/main/java/org/apache/plc4x/java/spi/events/CloseConnectionEvent.java
 create mode 100644 plc4j/spi/src/main/java/org/apache/plc4x/java/spi/events/ConnectEvent.java
 create mode 100644 plc4j/spi/src/main/java/org/apache/plc4x/java/spi/events/ConnectedEvent.java
 create mode 100644 plc4j/spi/src/main/java/org/apache/plc4x/java/spi/events/DisconnectEvent.java
 create mode 100644 plc4j/spi/src/main/java/org/apache/plc4x/java/spi/events/DisconnectedEvent.java
 create mode 100644 plc4j/spi/src/main/java/org/apache/plc4x/java/spi/exceptions/InternalPlcRuntimeException.java
 create mode 100644 plc4j/spi/src/main/java/org/apache/plc4x/java/spi/generation/EvaluationHelper.java
 create mode 100644 plc4j/spi/src/main/java/org/apache/plc4x/java/spi/generation/Message.java
 create mode 100644 plc4j/spi/src/main/java/org/apache/plc4x/java/spi/generation/MessageIO.java
 create mode 100644 plc4j/spi/src/main/java/org/apache/plc4x/java/spi/generation/MessageInput.java
 create mode 100644 plc4j/spi/src/main/java/org/apache/plc4x/java/spi/generation/MessageOutput.java
 create mode 100644 plc4j/spi/src/main/java/org/apache/plc4x/java/spi/generation/ParseException.java
 create mode 100644 plc4j/spi/src/main/java/org/apache/plc4x/java/spi/generation/ReadBuffer.java
 create mode 100644 plc4j/spi/src/main/java/org/apache/plc4x/java/spi/generation/StaticHelper.java
 create mode 100644 plc4j/spi/src/main/java/org/apache/plc4x/java/spi/generation/WriteBuffer.java
 create mode 100644 plc4j/spi/src/main/java/org/apache/plc4x/java/spi/generation/io/MyDefaultBitInput.java
 create mode 100644 plc4j/spi/src/main/java/org/apache/plc4x/java/spi/generation/io/MyDefaultBitOutput.java
 create mode 100644 plc4j/spi/src/main/java/org/apache/plc4x/java/spi/internal/DefaultExpectRequestContext.java
 create mode 100644 plc4j/spi/src/main/java/org/apache/plc4x/java/spi/internal/DefaultSendRequestContext.java
 create mode 100644 plc4j/spi/src/main/java/org/apache/plc4x/java/spi/internal/HandlerRegistration.java
 create mode 100644 plc4j/spi/src/main/java/org/apache/plc4x/java/spi/messages/DefaultPlcProprietaryRequest.java
 create mode 100644 plc4j/spi/src/main/java/org/apache/plc4x/java/spi/messages/DefaultPlcProprietaryResponse.java
 create mode 100644 plc4j/spi/src/main/java/org/apache/plc4x/java/spi/messages/DefaultPlcReadRequest.java
 create mode 100644 plc4j/spi/src/main/java/org/apache/plc4x/java/spi/messages/DefaultPlcReadResponse.java
 create mode 100644 plc4j/spi/src/main/java/org/apache/plc4x/java/spi/messages/DefaultPlcSubscriptionEvent.java
 create mode 100644 plc4j/spi/src/main/java/org/apache/plc4x/java/spi/messages/DefaultPlcSubscriptionRequest.java
 create mode 100644 plc4j/spi/src/main/java/org/apache/plc4x/java/spi/messages/DefaultPlcSubscriptionResponse.java
 create mode 100644 plc4j/spi/src/main/java/org/apache/plc4x/java/spi/messages/DefaultPlcUnsubscriptionRequest.java
 create mode 100644 plc4j/spi/src/main/java/org/apache/plc4x/java/spi/messages/DefaultPlcUnsubscriptionResponse.java
 create mode 100644 plc4j/spi/src/main/java/org/apache/plc4x/java/spi/messages/DefaultPlcWriteRequest.java
 create mode 100644 plc4j/spi/src/main/java/org/apache/plc4x/java/spi/messages/DefaultPlcWriteResponse.java
 create mode 100644 plc4j/spi/src/main/java/org/apache/plc4x/java/spi/messages/InternalPlcFieldRequest.java
 create mode 100644 plc4j/spi/src/main/java/org/apache/plc4x/java/spi/messages/InternalPlcFieldResponse.java
 create mode 100644 plc4j/spi/src/main/java/org/apache/plc4x/java/spi/messages/InternalPlcMessage.java
 create mode 100644 plc4j/spi/src/main/java/org/apache/plc4x/java/spi/messages/InternalPlcProprietaryRequest.java
 create mode 100644 plc4j/spi/src/main/java/org/apache/plc4x/java/spi/messages/InternalPlcProprietaryResponse.java
 create mode 100644 plc4j/spi/src/main/java/org/apache/plc4x/java/spi/messages/InternalPlcReadRequest.java
 create mode 100644 plc4j/spi/src/main/java/org/apache/plc4x/java/spi/messages/InternalPlcReadResponse.java
 create mode 100644 plc4j/spi/src/main/java/org/apache/plc4x/java/spi/messages/InternalPlcRequest.java
 create mode 100644 plc4j/spi/src/main/java/org/apache/plc4x/java/spi/messages/InternalPlcResponse.java
 create mode 100644 plc4j/spi/src/main/java/org/apache/plc4x/java/spi/messages/InternalPlcSubscriptionEvent.java
 create mode 100644 plc4j/spi/src/main/java/org/apache/plc4x/java/spi/messages/InternalPlcSubscriptionRequest.java
 create mode 100644 plc4j/spi/src/main/java/org/apache/plc4x/java/spi/messages/InternalPlcSubscriptionResponse.java
 create mode 100644 plc4j/spi/src/main/java/org/apache/plc4x/java/spi/messages/InternalPlcUnsubscriptionRequest.java
 create mode 100644 plc4j/spi/src/main/java/org/apache/plc4x/java/spi/messages/InternalPlcUnsubscriptionResponse.java
 create mode 100644 plc4j/spi/src/main/java/org/apache/plc4x/java/spi/messages/InternalPlcWriteRequest.java
 create mode 100644 plc4j/spi/src/main/java/org/apache/plc4x/java/spi/messages/InternalPlcWriteResponse.java
 create mode 100644 plc4j/spi/src/main/java/org/apache/plc4x/java/spi/messages/PlcProprietaryRequest.java
 create mode 100644 plc4j/spi/src/main/java/org/apache/plc4x/java/spi/messages/PlcProprietaryResponse.java
 create mode 100644 plc4j/spi/src/main/java/org/apache/plc4x/java/spi/messages/PlcProprietarySender.java
 create mode 100644 plc4j/spi/src/main/java/org/apache/plc4x/java/spi/messages/PlcProtocolMessage.java
 create mode 100644 plc4j/spi/src/main/java/org/apache/plc4x/java/spi/messages/PlcRawMessage.java
 create mode 100644 plc4j/spi/src/main/java/org/apache/plc4x/java/spi/messages/PlcReader.java
 create mode 100644 plc4j/spi/src/main/java/org/apache/plc4x/java/spi/messages/PlcRequestContainer.java
 create mode 100644 plc4j/spi/src/main/java/org/apache/plc4x/java/spi/messages/PlcSubscriber.java
 create mode 100644 plc4j/spi/src/main/java/org/apache/plc4x/java/spi/messages/PlcWriter.java
 create mode 100644 plc4j/spi/src/main/java/org/apache/plc4x/java/spi/messages/utils/FieldValueItem.java
 create mode 100644 plc4j/spi/src/main/java/org/apache/plc4x/java/spi/messages/utils/ResponseItem.java
 create mode 100644 plc4j/spi/src/main/java/org/apache/plc4x/java/spi/model/DefaultPlcConsumerRegistration.java
 create mode 100644 plc4j/spi/src/main/java/org/apache/plc4x/java/spi/model/DefaultPlcSubscriptionHandle.java
 create mode 100644 plc4j/spi/src/main/java/org/apache/plc4x/java/spi/model/InternalPlcConsumerRegistration.java
 create mode 100644 plc4j/spi/src/main/java/org/apache/plc4x/java/spi/model/InternalPlcSubscriptionHandle.java
 create mode 100644 plc4j/spi/src/main/java/org/apache/plc4x/java/spi/model/SubscriptionPlcField.java
 create mode 100644 plc4j/spi/src/main/java/org/apache/plc4x/java/spi/optimizer/BaseOptimizer.java
 create mode 100644 plc4j/spi/src/main/java/org/apache/plc4x/java/spi/optimizer/SingleFieldOptimizer.java
 create mode 100644 plc4j/spi/src/main/java/org/apache/plc4x/java/spi/protocol/SingleItemToSingleRequestProtocol.java
 create mode 100644 plc4j/spi/src/main/java/org/apache/plc4x/java/spi/request/PlcRequest.java
 create mode 100644 plc4j/spi/src/main/java/org/apache/plc4x/java/spi/transaction/RequestTransactionManager.java
 create mode 100644 plc4j/spi/src/main/java/org/apache/plc4x/java/spi/transport/Transport.java
 create mode 100644 plc4j/spi/src/main/java/org/apache/plc4x/java/spi/transport/TransportConfiguration.java
 create mode 100644 plc4j/spi/src/main/java/org/apache/plc4x/java/spi/types/FieldType.java
 create mode 100644 plc4j/spi/src/test/java/org/apache/plc4x/java/spi/internal/DefaultSendRequestContextTest.java
 create mode 100644 plc4j/spi/src/test/java/org/apache/plc4x/java/spi/optimizer/RequestTransactionManagerTest.java
 create mode 100644 plc4j/spi/src/test/java/org/apache/plc4x/java/spi/parser/ConnectionParserTest.java
 delete mode 100644 plc4j/src/site/asciidoc/index.adoc
 delete mode 100644 plc4j/src/site/asciidoc/users/gettingstarted.adoc
 create mode 100644 plc4j/tools/capture-replay/README.adoc
 create mode 100644 plc4j/tools/capture-replay/pom.xml
 create mode 100644 plc4j/tools/capture-replay/src/main/java/org/apache/plc4x/java/utils/capturereplay/CaptureReplay.java
 create mode 100644 plc4j/tools/capture-replay/src/main/java/org/apache/plc4x/java/utils/capturereplay/CliOptions.java
 copy plc4j/{utils/test-utils => tools/capture-replay}/src/main/resources/logback.xml (100%)
 create mode 100644 plc4j/tools/connection-pool/pom.xml
 rename plc4j/{utils => tools}/connection-pool/src/main/java/org/apache/plc4x/java/utils/connectionpool/PoolKey.java (100%)
 create mode 100644 plc4j/tools/connection-pool/src/main/java/org/apache/plc4x/java/utils/connectionpool/PoolKeyFactory.java
 rename plc4j/{utils => tools}/connection-pool/src/main/java/org/apache/plc4x/java/utils/connectionpool/PooledPlcConnectionFactory.java (100%)
 rename plc4j/{utils => tools}/connection-pool/src/main/java/org/apache/plc4x/java/utils/connectionpool/PooledPlcDriverManager.java (100%)
 create mode 100644 plc4j/tools/connection-pool/src/test/java/org/apache/plc4x/java/utils/connectionpool/PoolKeyFactoryTest.java
 create mode 100644 plc4j/tools/connection-pool/src/test/java/org/apache/plc4x/java/utils/connectionpool/PooledDummyDriver.java
 create mode 100644 plc4j/tools/connection-pool/src/test/java/org/apache/plc4x/java/utils/connectionpool/PooledPlcDriverManagerTest.java
 rename plc4j/{utils/connection-pool/src/test/resources/META-INF/services/org.apache.plc4x.java.spi.PlcDriver => tools/connection-pool/src/test/resources/META-INF/services/org.apache.plc4x.java.api.PlcDriver} (100%)
 rename plc4j/{utils => tools}/connection-pool/src/test/resources/logback.xml (100%)
 create mode 100644 plc4j/tools/interop/pom.xml
 rename plc4j/{utils => tools}/interop/src/assembly/assembly.xml (100%)
 rename plc4j/{utils => tools}/interop/src/main/java/org/apache/plc4x/interop/impl/Client.java (100%)
 create mode 100644 plc4j/tools/interop/src/main/java/org/apache/plc4x/interop/impl/Handler.java
 create mode 100644 plc4j/tools/interop/src/main/java/org/apache/plc4x/interop/impl/Server.java
 create mode 100644 plc4j/tools/opm/pom.xml
 rename plc4j/{utils => tools}/opm/src/main/java/org/apache/plc4x/java/opm/AliasRegistry.java (100%)
 rename plc4j/{utils => tools}/opm/src/main/java/org/apache/plc4x/java/opm/OPMException.java (100%)
 rename plc4j/{utils => tools}/opm/src/main/java/org/apache/plc4x/java/opm/OpmUtils.java (100%)
 rename plc4j/{utils => tools}/opm/src/main/java/org/apache/plc4x/java/opm/PlcEntity.java (100%)
 create mode 100644 plc4j/tools/opm/src/main/java/org/apache/plc4x/java/opm/PlcEntityInterceptor.java
 rename plc4j/{utils => tools}/opm/src/main/java/org/apache/plc4x/java/opm/PlcEntityManager.java (100%)
 rename plc4j/{utils => tools}/opm/src/main/java/org/apache/plc4x/java/opm/PlcField.java (100%)
 rename plc4j/{utils => tools}/opm/src/main/java/org/apache/plc4x/java/opm/SimpleAliasRegistry.java (100%)
 rename plc4j/{utils => tools}/opm/src/site/asciidoc/opm/using-opm.adoc (100%)
 rename plc4j/{utils => tools}/opm/src/site/site.xml (100%)
 create mode 100644 plc4j/tools/opm/src/test/java/org/apache/plc4x/java/opm/ConnectedEntityTest.java
 rename plc4j/{utils => tools}/opm/src/test/java/org/apache/plc4x/java/opm/OPMExceptionTest.java (100%)
 create mode 100644 plc4j/tools/opm/src/test/java/org/apache/plc4x/java/opm/OpmUtilsTest.java
 create mode 100644 plc4j/tools/opm/src/test/java/org/apache/plc4x/java/opm/PlcEntityInterceptorTest.java
 create mode 100644 plc4j/tools/opm/src/test/java/org/apache/plc4x/java/opm/PlcEntityManagerComplexTest.java
 create mode 100644 plc4j/tools/opm/src/test/java/org/apache/plc4x/java/opm/PlcEntityManagerTest.java
 create mode 100644 plc4j/tools/opm/src/test/java/org/apache/plc4x/java/opm/SimpleAliasRegistryTest.java
 rename plc4j/{utils => tools}/opm/src/test/resources/logback.xml (100%)
 create mode 100644 plc4j/tools/pom.xml
 rename plc4j/{utils => tools}/scraper/README.md (100%)
 create mode 100644 plc4j/tools/scraper/pom.xml
 rename plc4j/{utils => tools}/scraper/src/main/java/org/apache/plc4x/java/scraper/ResultHandler.java (100%)
 rename plc4j/{utils => tools}/scraper/src/main/java/org/apache/plc4x/java/scraper/ScrapeJob.java (100%)
 rename plc4j/{utils => tools}/scraper/src/main/java/org/apache/plc4x/java/scraper/ScrapeJobImpl.java (100%)
 rename plc4j/{utils => tools}/scraper/src/main/java/org/apache/plc4x/java/scraper/Scraper.java (100%)
 rename plc4j/{utils => tools}/scraper/src/main/java/org/apache/plc4x/java/scraper/ScraperImpl.java (100%)
 rename plc4j/{utils => tools}/scraper/src/main/java/org/apache/plc4x/java/scraper/ScraperTask.java (100%)
 rename plc4j/{utils => tools}/scraper/src/main/java/org/apache/plc4x/java/scraper/ScraperTaskImpl.java (100%)
 rename plc4j/{utils => tools}/scraper/src/main/java/org/apache/plc4x/java/scraper/config/JobConfiguration.java (100%)
 rename plc4j/{utils => tools}/scraper/src/main/java/org/apache/plc4x/java/scraper/config/JobConfigurationClassicImpl.java (100%)
 rename plc4j/{utils => tools}/scraper/src/main/java/org/apache/plc4x/java/scraper/config/JobConfigurationClassicImplBuilder.java (100%)
 rename plc4j/{utils => tools}/scraper/src/main/java/org/apache/plc4x/java/scraper/config/JobConfigurationImpl.java (100%)
 rename plc4j/{utils => tools}/scraper/src/main/java/org/apache/plc4x/java/scraper/config/ScraperConfiguration.java (100%)
 rename plc4j/{utils => tools}/scraper/src/main/java/org/apache/plc4x/java/scraper/config/ScraperConfigurationClassicImpl.java (100%)
 rename plc4j/{utils => tools}/scraper/src/main/java/org/apache/plc4x/java/scraper/config/ScraperConfigurationClassicImplBuilder.java (100%)
 rename plc4j/{utils => tools}/scraper/src/main/java/org/apache/plc4x/java/scraper/config/triggeredscraper/JobConfigurationTriggeredImpl.java (100%)
 rename plc4j/{utils => tools}/scraper/src/main/java/org/apache/plc4x/java/scraper/config/triggeredscraper/JobConfigurationTriggeredImplBuilder.java (100%)
 rename plc4j/{utils => tools}/scraper/src/main/java/org/apache/plc4x/java/scraper/config/triggeredscraper/ScraperConfigurationTriggeredImpl.java (100%)
 rename plc4j/{utils => tools}/scraper/src/main/java/org/apache/plc4x/java/scraper/config/triggeredscraper/ScraperConfigurationTriggeredImplBuilder.java (100%)
 rename plc4j/{utils => tools}/scraper/src/main/java/org/apache/plc4x/java/scraper/exception/ScraperConfigurationException.java (100%)
 rename plc4j/{utils => tools}/scraper/src/main/java/org/apache/plc4x/java/scraper/exception/ScraperException.java (100%)
 rename plc4j/{utils => tools}/scraper/src/main/java/org/apache/plc4x/java/scraper/triggeredscraper/TriggeredScrapeJobImpl.java (100%)
 create mode 100644 plc4j/tools/scraper/src/main/java/org/apache/plc4x/java/scraper/triggeredscraper/TriggeredScraperImpl.java
 rename plc4j/{utils => tools}/scraper/src/main/java/org/apache/plc4x/java/scraper/triggeredscraper/TriggeredScraperMBean.java (100%)
 rename plc4j/{utils => tools}/scraper/src/main/java/org/apache/plc4x/java/scraper/triggeredscraper/TriggeredScraperTask.java (100%)
 rename plc4j/{utils => tools}/scraper/src/main/java/org/apache/plc4x/java/scraper/triggeredscraper/TriggeredScraperTaskMBean.java (100%)
 create mode 100644 plc4j/tools/scraper/src/main/java/org/apache/plc4x/java/scraper/triggeredscraper/triggerhandler/TriggerConfiguration.java
 rename plc4j/{utils => tools}/scraper/src/main/java/org/apache/plc4x/java/scraper/triggeredscraper/triggerhandler/TriggerHandler.java (100%)
 create mode 100644 plc4j/tools/scraper/src/main/java/org/apache/plc4x/java/scraper/triggeredscraper/triggerhandler/TriggerHandlerImpl.java
 rename plc4j/{utils => tools}/scraper/src/main/java/org/apache/plc4x/java/scraper/triggeredscraper/triggerhandler/collector/TriggerCollector.java (100%)
 rename plc4j/{utils => tools}/scraper/src/main/java/org/apache/plc4x/java/scraper/triggeredscraper/triggerhandler/collector/TriggerCollectorImpl.java (100%)
 rename plc4j/{utils => tools}/scraper/src/main/java/org/apache/plc4x/java/scraper/util/PercentageAboveThreshold.java (100%)
 rename plc4j/{utils => tools}/scraper/src/test/java/org/apache/plc4x/java/s7/ManualS7PlcDriverMT.java (100%)
 rename plc4j/{utils => tools}/scraper/src/test/java/org/apache/plc4x/java/scraper/ScraperConfigurationTest.java (100%)
 rename plc4j/{utils => tools}/scraper/src/test/java/org/apache/plc4x/java/scraper/ScraperRunner.java (100%)
 create mode 100644 plc4j/tools/scraper/src/test/java/org/apache/plc4x/java/scraper/ScraperTaskTest.java
 create mode 100644 plc4j/tools/scraper/src/test/java/org/apache/plc4x/java/scraper/ScraperTest.java
 rename plc4j/{utils => tools}/scraper/src/test/java/org/apache/plc4x/java/scraper/TriggeredScraperRunner.java (100%)
 create mode 100644 plc4j/tools/scraper/src/test/java/org/apache/plc4x/java/scraper/TriggeredScraperRunnerModbus.java
 rename plc4j/{utils => tools}/scraper/src/test/java/org/apache/plc4x/java/scraper/config/ScraperConfigurationBuilderTest.java (100%)
 create mode 100644 plc4j/tools/scraper/src/test/java/org/apache/plc4x/java/scraper/triggeredscraper/TriggeredScraperImplTest.java
 create mode 100644 plc4j/tools/scraper/src/test/java/org/apache/plc4x/java/scraper/triggeredscraper/triggerhandler/TriggerConfigurationTest.java
 rename plc4j/{utils => tools}/scraper/src/test/resources/config.json (100%)
 rename plc4j/{utils => tools}/scraper/src/test/resources/config.yml (100%)
 rename plc4j/{utils => tools}/scraper/src/test/resources/example.yml (100%)
 create mode 100644 plc4j/tools/scraper/src/test/resources/example_triggered_scraper.yml
 rename plc4j/{utils => tools}/scraper/src/test/resources/example_triggered_scraper_modbus.yml (100%)
 rename plc4j/{utils => tools}/scraper/src/test/resources/example_with_strings.yml (100%)
 rename plc4j/{utils => tools}/scraper/src/test/resources/logback-test.xml (100%)
 rename plc4j/{utils => tools}/scraper/src/test/resources/logback.xml (100%)
 create mode 100644 plc4j/tools/scraper/src/test/resources/mock-scraper-config.yml
 create mode 100644 plc4j/transports/pcap-replay/pom.xml
 create mode 100644 plc4j/transports/pcap-replay/src/main/java/org/apache/plc4x/java/transport/pcapreplay/PcapReplayChannelFactory.java
 create mode 100644 plc4j/transports/pcap-replay/src/main/java/org/apache/plc4x/java/transport/pcapreplay/PcapReplayTransport.java
 create mode 100644 plc4j/transports/pcap-replay/src/main/java/org/apache/plc4x/java/transport/pcapreplay/PcapReplayTransportConfiguration.java
 create mode 100644 plc4j/transports/pcap-replay/src/main/resources/META-INF/services/org.apache.plc4x.java.spi.transport.Transport
 create mode 100644 plc4j/transports/pcap-shared/pom.xml
 create mode 100644 plc4j/transports/pcap-shared/src/main/java/org/apache/plc4x/java/transport/pcap/PcapTransportConfiguration.java
 create mode 100644 plc4j/transports/pom.xml
 create mode 100644 plc4j/transports/raw-socket/pom.xml
 create mode 100644 plc4j/transports/raw-socket/src/main/java/org/apache/plc4x/java/transport/rawsocket/RawSocketChannelFactory.java
 create mode 100644 plc4j/transports/raw-socket/src/main/java/org/apache/plc4x/java/transport/rawsocket/RawSocketTransport.java
 create mode 100644 plc4j/transports/raw-socket/src/main/java/org/apache/plc4x/java/transport/rawsocket/RawSocketTransportConfiguration.java
 create mode 100644 plc4j/transports/raw-socket/src/main/resources/META-INF/services/org.apache.plc4x.java.spi.transport.Transport
 create mode 100644 plc4j/transports/serial/pom.xml
 create mode 100644 plc4j/transports/serial/src/main/java/org/apache/plc4x/java/transport/serial/SerialChannel.java
 create mode 100644 plc4j/transports/serial/src/main/java/org/apache/plc4x/java/transport/serial/SerialChannelConfig.java
 create mode 100644 plc4j/transports/serial/src/main/java/org/apache/plc4x/java/transport/serial/SerialChannelFactory.java
 create mode 100644 plc4j/transports/serial/src/main/java/org/apache/plc4x/java/transport/serial/SerialChannelHandler.java
 create mode 100644 plc4j/transports/serial/src/main/java/org/apache/plc4x/java/transport/serial/SerialChannelOptions.java
 create mode 100644 plc4j/transports/serial/src/main/java/org/apache/plc4x/java/transport/serial/SerialPollingSelector.java
 create mode 100644 plc4j/transports/serial/src/main/java/org/apache/plc4x/java/transport/serial/SerialSelectionKey.java
 create mode 100644 plc4j/transports/serial/src/main/java/org/apache/plc4x/java/transport/serial/SerialSelectorProvider.java
 create mode 100644 plc4j/transports/serial/src/main/java/org/apache/plc4x/java/transport/serial/SerialSocketAddress.java
 create mode 100644 plc4j/transports/serial/src/main/java/org/apache/plc4x/java/transport/serial/SerialSocketChannel.java
 create mode 100644 plc4j/transports/serial/src/main/java/org/apache/plc4x/java/transport/serial/SerialTransport.java
 create mode 100644 plc4j/transports/serial/src/main/java/org/apache/plc4x/java/transport/serial/SerialTransportConfiguration.java
 create mode 100644 plc4j/transports/serial/src/main/resources/META-INF/services/org.apache.plc4x.java.spi.transport.Transport
 create mode 100644 plc4j/transports/serial/src/test/java/org/apache/plc4x/java/base/connection/SerialChannelFactoryTest.java
 create mode 100644 plc4j/transports/tcp/pom.xml
 create mode 100644 plc4j/transports/tcp/src/main/java/org/apache/plc4x/java/transport/tcp/TcpChannelFactory.java
 create mode 100644 plc4j/transports/tcp/src/main/java/org/apache/plc4x/java/transport/tcp/TcpTransport.java
 create mode 100644 plc4j/transports/tcp/src/main/java/org/apache/plc4x/java/transport/tcp/TcpTransportConfiguration.java
 create mode 100644 plc4j/transports/tcp/src/main/resources/META-INF/services/org.apache.plc4x.java.spi.transport.Transport
 create mode 100644 plc4j/transports/test/pom.xml
 create mode 100644 plc4j/transports/test/src/main/java/io/netty/bootstrap/EmbeddedBootstrap.java
 create mode 100644 plc4j/transports/test/src/main/java/io/netty/bootstrap/EventLoopProvider.java
 create mode 100644 plc4j/transports/test/src/main/java/io/netty/channel/embedded/Plc4xEmbeddedChannel.java
 create mode 100644 plc4j/transports/test/src/main/java/io/netty/channel/embedded/Plc4xEmbeddedEventLoop.java
 create mode 100644 plc4j/transports/test/src/main/java/org/apache/plc4x/java/transport/test/TestChannelFactory.java
 create mode 100644 plc4j/transports/test/src/main/java/org/apache/plc4x/java/transport/test/TestSocketAddress.java
 create mode 100644 plc4j/transports/test/src/main/java/org/apache/plc4x/java/transport/test/TestTransport.java
 create mode 100644 plc4j/transports/test/src/main/java/org/apache/plc4x/java/transport/test/TestTransportConfiguration.java
 rename plc4j/{protocols/s7/src/test => transports/test/src/main}/resources/META-INF/services/com.athaydes.spockframework.report.IReportCreator.properties (100%)
 create mode 100644 plc4j/transports/test/src/main/resources/META-INF/services/org.apache.plc4x.java.spi.transport.Transport
 create mode 100644 plc4j/transports/udp/pom.xml
 create mode 100644 plc4j/transports/udp/src/main/java/org/apache/plc4x/java/transport/udp/UdpChannelFactory.java
 create mode 100644 plc4j/transports/udp/src/main/java/org/apache/plc4x/java/transport/udp/UdpTransport.java
 create mode 100644 plc4j/transports/udp/src/main/java/org/apache/plc4x/java/transport/udp/UdpTransportConfiguration.java
 create mode 100644 plc4j/transports/udp/src/main/java/org/apache/plc4x/java/transport/udp/protocol/DatagramUnpackingHandler.java
 create mode 100644 plc4j/transports/udp/src/main/resources/META-INF/services/org.apache.plc4x.java.spi.transport.Transport
 delete mode 100644 plc4j/utils/connection-pool/pom.xml
 delete mode 100644 plc4j/utils/connection-pool/src/main/java/org/apache/plc4x/java/utils/connectionpool/PoolKeyFactory.java
 delete mode 100644 plc4j/utils/connection-pool/src/test/java/org/apache/plc4x/java/utils/connectionpool/PoolKeyFactoryTest.java
 delete mode 100644 plc4j/utils/connection-pool/src/test/java/org/apache/plc4x/java/utils/connectionpool/PooledDummyDriver.java
 delete mode 100644 plc4j/utils/connection-pool/src/test/java/org/apache/plc4x/java/utils/connectionpool/PooledPlcDriverManagerTest.java
 delete mode 100644 plc4j/utils/driver-base-java/pom.xml
 delete mode 100644 plc4j/utils/driver-base-java/src/main/java/com/github/jinahya/bit/io/MyDefaultBitInput.java
 delete mode 100644 plc4j/utils/driver-base-java/src/main/java/org/apache/plc4x/java/utils/EvaluationHelper.java
 delete mode 100644 plc4j/utils/driver-base-java/src/main/java/org/apache/plc4x/java/utils/Message.java
 delete mode 100644 plc4j/utils/driver-base-java/src/main/java/org/apache/plc4x/java/utils/MessageIO.java
 delete mode 100644 plc4j/utils/driver-base-java/src/main/java/org/apache/plc4x/java/utils/MessageInput.java
 delete mode 100644 plc4j/utils/driver-base-java/src/main/java/org/apache/plc4x/java/utils/MessageOutput.java
 delete mode 100644 plc4j/utils/driver-base-java/src/main/java/org/apache/plc4x/java/utils/ParseException.java
 delete mode 100644 plc4j/utils/driver-base-java/src/main/java/org/apache/plc4x/java/utils/ReadBuffer.java
 delete mode 100644 plc4j/utils/driver-base-java/src/main/java/org/apache/plc4x/java/utils/WriteBuffer.java
 delete mode 100644 plc4j/utils/interop/pom.xml
 delete mode 100644 plc4j/utils/interop/src/main/java/org/apache/plc4x/interop/impl/Handler.java
 delete mode 100644 plc4j/utils/interop/src/main/java/org/apache/plc4x/interop/impl/Server.java
 delete mode 100644 plc4j/utils/opm/pom.xml
 delete mode 100644 plc4j/utils/opm/src/main/java/org/apache/plc4x/java/opm/PlcEntityInterceptor.java
 delete mode 100644 plc4j/utils/opm/src/test/java/org/apache/plc4x/java/opm/ConnectedEntityTest.java
 delete mode 100644 plc4j/utils/opm/src/test/java/org/apache/plc4x/java/opm/OpmUtilsTest.java
 delete mode 100644 plc4j/utils/opm/src/test/java/org/apache/plc4x/java/opm/PlcEntityInterceptorTest.java
 delete mode 100644 plc4j/utils/opm/src/test/java/org/apache/plc4x/java/opm/PlcEntityManagerComplexTest.java
 delete mode 100644 plc4j/utils/opm/src/test/java/org/apache/plc4x/java/opm/PlcEntityManagerTest.java
 delete mode 100644 plc4j/utils/opm/src/test/java/org/apache/plc4x/java/opm/SimpleAliasRegistryTest.java
 create mode 100644 plc4j/utils/pcap-replay/pom.xml
 create mode 100644 plc4j/utils/pcap-replay/src/main/java/org/apache/plc4x/java/utils/pcapreplay/netty/PcapReplayChannel.java
 create mode 100644 plc4j/utils/pcap-replay/src/main/java/org/apache/plc4x/java/utils/pcapreplay/netty/address/PcapReplayAddress.java
 create mode 100644 plc4j/utils/pcap-replay/src/main/java/org/apache/plc4x/java/utils/pcapreplay/netty/config/PcapReplayChannelConfig.java
 create mode 100644 plc4j/utils/pcap-replay/src/main/java/org/apache/plc4x/java/utils/pcapreplay/netty/config/PcapReplayChannelOption.java
 create mode 100644 plc4j/utils/pcap-shared/pom.xml
 create mode 100644 plc4j/utils/pcap-shared/src/main/java/org/apache/plc4x/java/utils/pcap/netty/address/PcapSocketAddress.java
 create mode 100644 plc4j/utils/pcap-shared/src/main/java/org/apache/plc4x/java/utils/pcap/netty/config/PcapChannelConfig.java
 create mode 100644 plc4j/utils/pcap-shared/src/main/java/org/apache/plc4x/java/utils/pcap/netty/config/PcapChannelOption.java
 create mode 100644 plc4j/utils/pcap-shared/src/main/java/org/apache/plc4x/java/utils/pcap/netty/exception/PcapException.java
 create mode 100644 plc4j/utils/pcap-shared/src/main/java/org/apache/plc4x/java/utils/pcap/netty/handlers/PacketHandler.java
 create mode 100644 plc4j/utils/pcap-shared/src/main/java/org/apache/plc4x/java/utils/pcap/netty/handlers/TcpIpPacketHandler.java
 create mode 100644 plc4j/utils/pcap-shared/src/main/java/org/apache/plc4x/java/utils/pcap/netty/handlers/UdpIpPacketHandler.java
 delete mode 100644 plc4j/utils/pcap-sockets/pom.xml
 delete mode 100644 plc4j/utils/pcap-sockets/src/main/java/org/apache/plc4x/java/utils/pcapsockets/PcapSocketException.java
 delete mode 100644 plc4j/utils/pcap-sockets/src/main/java/org/apache/plc4x/java/utils/pcapsockets/netty/PacketHandler.java
 delete mode 100644 plc4j/utils/pcap-sockets/src/main/java/org/apache/plc4x/java/utils/pcapsockets/netty/PcapSocketAddress.java
 delete mode 100644 plc4j/utils/pcap-sockets/src/main/java/org/apache/plc4x/java/utils/pcapsockets/netty/PcapSocketChannel.java
 delete mode 100644 plc4j/utils/pcap-sockets/src/main/java/org/apache/plc4x/java/utils/pcapsockets/netty/PcapSocketChannelConfig.java
 delete mode 100644 plc4j/utils/pcap-sockets/src/main/java/org/apache/plc4x/java/utils/pcapsockets/netty/PcapSocketChannelOption.java
 delete mode 100644 plc4j/utils/pcap-sockets/src/main/java/org/apache/plc4x/java/utils/pcapsockets/netty/TcpIpPacketHandler.java
 delete mode 100644 plc4j/utils/pcap-sockets/src/main/java/org/apache/plc4x/java/utils/pcapsockets/netty/UdpIpPacketHandler.java
 delete mode 100644 plc4j/utils/protocol-test-utils/pom.xml
 delete mode 100644 plc4j/utils/protocol-test-utils/src/main/java/org/apache/plc4x/protocol/test/ProtocolTestsuiteRunner.java
 delete mode 100644 plc4j/utils/protocol-test-utils/src/main/java/org/apache/plc4x/protocol/test/exceptions/ProtocolTestsuiteException.java
 delete mode 100644 plc4j/utils/protocol-test-utils/src/main/java/org/apache/plc4x/protocol/test/model/ProtocolTestsuite.java
 delete mode 100644 plc4j/utils/protocol-test-utils/src/main/java/org/apache/plc4x/protocol/test/model/Testcase.java
 delete mode 100644 plc4j/utils/protocol-test-utils/src/main/resources/schemas/testsuite.xsd
 delete mode 100644 plc4j/utils/raw-sockets/src/main/java/org/apache/plc4x/java/utils/rawsockets/RawSocketException.java
 delete mode 100644 plc4j/utils/raw-sockets/src/main/java/org/apache/plc4x/java/utils/rawsockets/netty/PacketHandler.java
 delete mode 100644 plc4j/utils/raw-sockets/src/main/java/org/apache/plc4x/java/utils/rawsockets/netty/RawSocketAddress.java
 delete mode 100644 plc4j/utils/raw-sockets/src/main/java/org/apache/plc4x/java/utils/rawsockets/netty/RawSocketChannelConfig.java
 delete mode 100644 plc4j/utils/raw-sockets/src/main/java/org/apache/plc4x/java/utils/rawsockets/netty/RawSocketChannelOption.java
 delete mode 100644 plc4j/utils/raw-sockets/src/main/java/org/apache/plc4x/java/utils/rawsockets/netty/RawSocketIpAddress.java
 delete mode 100644 plc4j/utils/raw-sockets/src/main/java/org/apache/plc4x/java/utils/rawsockets/netty/TcpIpPacketHandler.java
 delete mode 100644 plc4j/utils/raw-sockets/src/main/java/org/apache/plc4x/java/utils/rawsockets/netty/UdpIpPacketHandler.java
 create mode 100644 plc4j/utils/raw-sockets/src/main/java/org/apache/plc4x/java/utils/rawsockets/netty/address/RawSocketAddress.java
 create mode 100644 plc4j/utils/raw-sockets/src/main/java/org/apache/plc4x/java/utils/rawsockets/netty/config/RawSocketChannelConfig.java
 delete mode 100644 plc4j/utils/scraper/pom.xml
 delete mode 100644 plc4j/utils/scraper/src/main/java/org/apache/plc4x/java/scraper/triggeredscraper/TriggeredScraperImpl.java
 delete mode 100644 plc4j/utils/scraper/src/main/java/org/apache/plc4x/java/scraper/triggeredscraper/triggerhandler/TriggerConfiguration.java
 delete mode 100644 plc4j/utils/scraper/src/main/java/org/apache/plc4x/java/scraper/triggeredscraper/triggerhandler/TriggerHandlerImpl.java
 delete mode 100644 plc4j/utils/scraper/src/test/java/org/apache/plc4x/java/scraper/ScraperTaskTest.java
 delete mode 100644 plc4j/utils/scraper/src/test/java/org/apache/plc4x/java/scraper/ScraperTest.java
 delete mode 100644 plc4j/utils/scraper/src/test/java/org/apache/plc4x/java/scraper/TriggeredScraperRunnerModbus.java
 delete mode 100644 plc4j/utils/scraper/src/test/java/org/apache/plc4x/java/scraper/triggeredscraper/TriggeredScraperImplTest.java
 delete mode 100644 plc4j/utils/scraper/src/test/java/org/apache/plc4x/java/scraper/triggeredscraper/triggerhandler/TriggerConfigurationTest.java
 delete mode 100644 plc4j/utils/scraper/src/test/resources/example_triggered_scraper.yml
 delete mode 100644 plc4j/utils/scraper/src/test/resources/mock-scraper-config.yml
 create mode 100644 plc4j/utils/test-utils/src/main/java/org/apache/plc4x/test/driver/DriverTestsuiteRunner.java
 create mode 100644 plc4j/utils/test-utils/src/main/java/org/apache/plc4x/test/driver/Lalala.java
 create mode 100644 plc4j/utils/test-utils/src/main/java/org/apache/plc4x/test/driver/exceptions/DriverTestsuiteException.java
 create mode 100644 plc4j/utils/test-utils/src/main/java/org/apache/plc4x/test/driver/model/DriverTestsuite.java
 create mode 100644 plc4j/utils/test-utils/src/main/java/org/apache/plc4x/test/driver/model/StepType.java
 create mode 100644 plc4j/utils/test-utils/src/main/java/org/apache/plc4x/test/driver/model/TestStep.java
 create mode 100644 plc4j/utils/test-utils/src/main/java/org/apache/plc4x/test/driver/model/Testcase.java
 create mode 100644 plc4j/utils/test-utils/src/main/java/org/apache/plc4x/test/driver/model/api/TestField.java
 create mode 100644 plc4j/utils/test-utils/src/main/java/org/apache/plc4x/test/driver/model/api/TestFieldRequest.java
 create mode 100644 plc4j/utils/test-utils/src/main/java/org/apache/plc4x/test/driver/model/api/TestReadRequest.java
 create mode 100644 plc4j/utils/test-utils/src/main/java/org/apache/plc4x/test/driver/model/api/TestRequest.java
 create mode 100644 plc4j/utils/test-utils/src/main/java/org/apache/plc4x/test/driver/model/api/TestWriteRequest.java
 create mode 100644 plc4j/utils/test-utils/src/main/java/org/apache/plc4x/test/parserserializer/ParserSerializerTestsuiteRunner.java
 create mode 100644 plc4j/utils/test-utils/src/main/java/org/apache/plc4x/test/parserserializer/exceptions/ParserSerializerTestsuiteException.java
 create mode 100644 plc4j/utils/test-utils/src/main/java/org/apache/plc4x/test/parserserializer/model/ParserSerializerTestsuite.java
 create mode 100644 plc4j/utils/test-utils/src/main/java/org/apache/plc4x/test/parserserializer/model/Testcase.java
 create mode 100644 plc4j/utils/test-utils/src/main/resources/schemas/driver-testsuite.xsd
 create mode 100644 plc4j/utils/test-utils/src/main/resources/schemas/parser-serializer-testsuite.xsd
 create mode 100644 protocols/eip/pom.xml
 create mode 100644 protocols/eip/src/main/java/org/apache/plc4x/protocol/eip/EipProtocol.java
 create mode 100644 protocols/eip/src/main/resources/META-INF/services/org.apache.plc4x.plugins.codegenerator.protocol.Protocol
 create mode 100644 protocols/eip/src/main/resources/protocols/eip/eip.mspec
 create mode 100644 protocols/firmata/pom.xml
 create mode 100644 protocols/firmata/src/main/java/org/apache/plc4x/protocol/firmata/FirmataProtocol.java
 create mode 100644 protocols/firmata/src/main/resources/META-INF/services/org.apache.plc4x.plugins.codegenerator.protocol.Protocol
 create mode 100644 protocols/firmata/src/main/resources/protocols/firmata/firmata.mspec
 delete mode 100644 protocols/knxnetip/src/main/java/org/apache/plc4x/protocol/knxnetip/Ets5Types.java
 delete mode 100644 protocols/knxnetip/src/main/resources/protocols/knxnetip/ets5.mspec
 create mode 100644 protocols/modbus/pom.xml
 create mode 100644 protocols/modbus/src/main/java/org/apache/plc4x/protocol/modbus/ModbusProtocol.java
 create mode 100644 protocols/modbus/src/main/resources/META-INF/services/org.apache.plc4x.plugins.codegenerator.protocol.Protocol
 create mode 100644 protocols/modbus/src/main/resources/protocols/modbus/modbus.mspec
 create mode 100644 sandbox/hello-influx-data-collection/README.adoc
 create mode 100644 sandbox/hello-influx-data-collection/example.properties
 create mode 100644 sandbox/hello-influx-data-collection/pom.xml
 create mode 100644 sandbox/hello-influx-data-collection/src/main/java/org/apache/plc4x/java/examples/helloinflux/HelloInflux.java
 create mode 100644 sandbox/hello-influx-data-collection/src/main/resources/logback.xml
 create mode 100644 sandbox/plc-simulator/src/main/java/org/apache/plc4x/java/s7/utils/StaticHelper.java
 create mode 100644 sandbox/plc4c/.clang-format
 create mode 100644 sandbox/plc4c/.gitignore
 create mode 100644 sandbox/plc4c/CMakeLists.txt
 create mode 100644 sandbox/plc4c/CODE_CONVENTIONS.md
 create mode 100644 sandbox/plc4c/README.md
 create mode 100644 sandbox/plc4c/api/CMakeLists.txt
 create mode 100644 sandbox/plc4c/api/include/plc4c/connection.h
 create mode 100644 sandbox/plc4c/api/include/plc4c/data.h
 create mode 100644 sandbox/plc4c/api/include/plc4c/plc4c.h
 create mode 100644 sandbox/plc4c/api/include/plc4c/read.h
 create mode 100644 sandbox/plc4c/api/include/plc4c/subscribe.h
 create mode 100644 sandbox/plc4c/api/include/plc4c/system.h
 create mode 100644 sandbox/plc4c/api/include/plc4c/types.h
 create mode 100644 sandbox/plc4c/api/include/plc4c/utils/list.h
 create mode 100644 sandbox/plc4c/api/include/plc4c/utils/queue.h
 create mode 100644 sandbox/plc4c/api/include/plc4c/write.h
 create mode 100644 sandbox/plc4c/design-guidelines.adoc
 create mode 100644 sandbox/plc4c/drivers/CMakeLists.txt
 create mode 100644 sandbox/plc4c/drivers/modbus/CMakeLists.txt
 create mode 100644 sandbox/plc4c/drivers/modbus/include/plc4c/driver_modbus.h
 create mode 100644 sandbox/plc4c/drivers/modbus/src/driver_modbus.c
 create mode 100644 sandbox/plc4c/drivers/s7/CMakeLists.txt
 create mode 100644 sandbox/plc4c/drivers/s7/include/plc4c/driver_s7.h
 create mode 100644 sandbox/plc4c/drivers/s7/src/driver_s7.c
 create mode 100644 sandbox/plc4c/drivers/simulated/CMakeLists.txt
 create mode 100644 sandbox/plc4c/drivers/simulated/include/plc4c/driver_simulated.h
 create mode 100644 sandbox/plc4c/drivers/simulated/src/driver_simulated.c
 create mode 100644 sandbox/plc4c/examples/CMakeLists.txt
 create mode 100644 sandbox/plc4c/examples/hello-subsciptions/CMakeLists.txt
 create mode 100644 sandbox/plc4c/examples/hello-subsciptions/src/hello_subscriptions.c
 create mode 100644 sandbox/plc4c/examples/hello-world/CMakeLists.txt
 create mode 100644 sandbox/plc4c/examples/hello-world/src/hello_world.c
 create mode 100644 sandbox/plc4c/integrations/CMakeLists.txt
 create mode 100644 sandbox/plc4c/integrations/apache-mynewt/CMakeLists.txt
 create mode 100644 sandbox/plc4c/pom.xml
 create mode 100644 sandbox/plc4c/spi/CMakeLists.txt
 create mode 100644 sandbox/plc4c/spi/include/plc4c/spi/system_private.h
 create mode 100644 sandbox/plc4c/spi/include/plc4c/spi/types_private.h
 create mode 100644 sandbox/plc4c/spi/src/connection.c
 create mode 100644 sandbox/plc4c/spi/src/data.c
 create mode 100644 sandbox/plc4c/spi/src/read.c
 create mode 100644 sandbox/plc4c/spi/src/subscribe.c
 create mode 100644 sandbox/plc4c/spi/src/system.c
 create mode 100644 sandbox/plc4c/spi/src/types.c
 create mode 100644 sandbox/plc4c/spi/src/utils/list.c
 create mode 100644 sandbox/plc4c/spi/src/utils/queue.c
 create mode 100644 sandbox/plc4c/spi/src/write.c
 create mode 100644 sandbox/plc4c/spi/test/system_test.c
 create mode 100644 sandbox/plc4c/transports/CMakeLists.txt
 create mode 100644 sandbox/plc4c/transports/dummy/CMakeLists.txt
 create mode 100644 sandbox/plc4c/transports/dummy/include/plc4c/transport_dummy.h
 create mode 100644 sandbox/plc4c/transports/dummy/src/transport_dummy.c
 create mode 100644 sandbox/plc4c/transports/serial/CMakeLists.txt
 create mode 100644 sandbox/plc4c/transports/serial/include/plc4c/transport_serial.h
 create mode 100644 sandbox/plc4c/transports/serial/src/transport_serial.c
 create mode 100644 sandbox/plc4c/transports/tcp/CMakeLists.txt
 create mode 100644 sandbox/plc4c/transports/tcp/include/plc4c/transport_tcp.h
 create mode 100644 sandbox/plc4c/transports/tcp/src/transport_tcp.c
 create mode 100644 sandbox/test-java-amsads-driver/src/main/java/org/apache/plc4x/java/amsads/configuration/AdsConfiguration.java
 create mode 100644 sandbox/test-java-amsads-driver/src/main/java/org/apache/plc4x/java/amsads/field/AdsField.java
 create mode 100644 sandbox/test-java-amsads-driver/src/main/java/org/apache/plc4x/java/amsads/field/AdsFieldHandler.java
 create mode 100644 sandbox/test-java-amsads-driver/src/main/java/org/apache/plc4x/java/amsads/field/DirectAdsField.java
 create mode 100644 sandbox/test-java-amsads-driver/src/main/java/org/apache/plc4x/java/amsads/field/SymbolicAdsField.java
 delete mode 100644 sandbox/test-java-amsads-driver/src/main/java/org/apache/plc4x/java/amsads/model/AdsDataType.java
 delete mode 100644 sandbox/test-java-amsads-driver/src/main/java/org/apache/plc4x/java/amsads/model/AdsField.java
 delete mode 100644 sandbox/test-java-amsads-driver/src/main/java/org/apache/plc4x/java/amsads/model/AdsPlcFieldHandler.java
 delete mode 100644 sandbox/test-java-amsads-driver/src/main/java/org/apache/plc4x/java/amsads/model/DirectAdsField.java
 delete mode 100644 sandbox/test-java-amsads-driver/src/main/java/org/apache/plc4x/java/amsads/model/SymbolicAdsField.java
 delete mode 100644 sandbox/test-java-amsads-driver/src/main/java/org/apache/plc4x/java/amsads/model/package-info.java
 create mode 100644 sandbox/test-java-amsads-driver/src/main/java/org/apache/plc4x/java/amsads/protocol/AdsProtocolLogic.java
 create mode 100644 sandbox/test-java-amsads-driver/src/main/java/org/apache/plc4x/java/amsads/types/AdsDataType.java
 rename sandbox/test-java-amsads-driver/src/main/resources/META-INF/services/{org.apache.plc4x.java.spi.PlcDriver => org.apache.plc4x.java.api.PlcDriver} (100%)
 create mode 100644 sandbox/test-java-amsads-driver/src/test/java/org/apache/plc4x/protocol/amsads/AmsAdsSerializerParserTest.java
 delete mode 100644 sandbox/test-java-amsads-driver/src/test/java/org/apache/plc4x/protocol/amsads/Df1Test.java
 create mode 100644 sandbox/test-java-bacnetip-driver/src/main/java/org/apache/plc4x/java/bacnetip/configuration/PassiveBacNetIpConfiguration.java
 delete mode 100644 sandbox/test-java-bacnetip-driver/src/main/java/org/apache/plc4x/java/bacnetip/connection/BacNetIpFieldHandler.java
 delete mode 100644 sandbox/test-java-bacnetip-driver/src/main/java/org/apache/plc4x/java/bacnetip/connection/PassiveBacNetIpPlcConnection.java
 create mode 100644 sandbox/test-java-bacnetip-driver/src/main/java/org/apache/plc4x/java/bacnetip/ede/EdeParser.java
 create mode 100644 sandbox/test-java-bacnetip-driver/src/main/java/org/apache/plc4x/java/bacnetip/ede/layouts/EdeLayout.java
 create mode 100644 sandbox/test-java-bacnetip-driver/src/main/java/org/apache/plc4x/java/bacnetip/ede/layouts/EdeLayoutFactory.java
 create mode 100644 sandbox/test-java-bacnetip-driver/src/main/java/org/apache/plc4x/java/bacnetip/ede/layouts/EdeVersion2Layout.java
 create mode 100644 sandbox/test-java-bacnetip-driver/src/main/java/org/apache/plc4x/java/bacnetip/ede/layouts/EdeVersion3Layout.java
 create mode 100644 sandbox/test-java-bacnetip-driver/src/main/java/org/apache/plc4x/java/bacnetip/ede/layouts/EdeVersion4Layout.java
 create mode 100644 sandbox/test-java-bacnetip-driver/src/main/java/org/apache/plc4x/java/bacnetip/ede/model/Datapoint.java
 create mode 100644 sandbox/test-java-bacnetip-driver/src/main/java/org/apache/plc4x/java/bacnetip/ede/model/EdeModel.java
 create mode 100644 sandbox/test-java-bacnetip-driver/src/main/java/org/apache/plc4x/java/bacnetip/field/BacNetIpField.java
 create mode 100644 sandbox/test-java-bacnetip-driver/src/main/java/org/apache/plc4x/java/bacnetip/field/BacNetIpFieldHandler.java
 delete mode 100644 sandbox/test-java-bacnetip-driver/src/main/java/org/apache/plc4x/java/bacnetip/model/BacNetIpField.java
 delete mode 100644 sandbox/test-java-bacnetip-driver/src/main/java/org/apache/plc4x/java/bacnetip/protocol/BacNetIpProtocol.java
 delete mode 100644 sandbox/test-java-bacnetip-driver/src/main/java/org/apache/plc4x/java/bacnetip/protocol/HelloWorldProtocol.java
 create mode 100644 sandbox/test-java-bacnetip-driver/src/main/java/org/apache/plc4x/java/bacnetip/protocol/PassiveBacNetIpProtocolLogic.java
 rename sandbox/test-java-bacnetip-driver/src/main/resources/META-INF/services/{org.apache.plc4x.java.spi.PlcDriver => org.apache.plc4x.java.api.PlcDriver} (100%)
 copy sandbox/{plc-simulator/src/main => test-java-bacnetip-driver/src/test}/resources/logback.xml (100%)
 delete mode 100644 sandbox/test-java-df1-driver/src/main/java/org/apache/plc4x/java/df1/Df1Field.java
 create mode 100644 sandbox/test-java-df1-driver/src/main/java/org/apache/plc4x/java/df1/configuration/Df1Configuration.java
 delete mode 100644 sandbox/test-java-df1-driver/src/main/java/org/apache/plc4x/java/df1/connection/BaseDf1Connection.java
 delete mode 100644 sandbox/test-java-df1-driver/src/main/java/org/apache/plc4x/java/df1/connection/SerialDf1Connection.java
 create mode 100644 sandbox/test-java-df1-driver/src/main/java/org/apache/plc4x/java/df1/field/Df1Field.java
 create mode 100644 sandbox/test-java-df1-driver/src/main/java/org/apache/plc4x/java/df1/field/Df1FieldHandler.java
 delete mode 100644 sandbox/test-java-df1-driver/src/main/java/org/apache/plc4x/java/df1/fields/DataType.java
 create mode 100644 sandbox/test-java-df1-driver/src/main/java/org/apache/plc4x/java/df1/protocol/Df1ProtocolLogic.java
 create mode 100644 sandbox/test-java-df1-driver/src/main/java/org/apache/plc4x/java/df1/types/DataType.java
 delete mode 100644 sandbox/test-java-df1-driver/src/main/java/org/apache/plc4x/java/df1/util/Df1FieldHandler.java
 rename sandbox/test-java-df1-driver/src/main/resources/META-INF/services/{org.apache.plc4x.java.spi.PlcDriver => org.apache.plc4x.java.api.PlcDriver} (100%)
 delete mode 100644 sandbox/test-java-df1-driver/src/test/java/org/apache/plc4x/java/df1/DF1PlcDriverTest.java
 create mode 100644 sandbox/test-java-df1-driver/src/test/java/org/apache/plc4x/protocol/df1/Df1ParserSerializerTest.java
 delete mode 100644 sandbox/test-java-df1-driver/src/test/java/org/apache/plc4x/protocol/df1/Df1Test.java
 delete mode 100644 sandbox/test-java-knxnetip-driver-passive/pom.xml
 delete mode 100644 sandbox/test-java-knxnetip-driver-passive/src/main/java/org/apache/plc4x/java/passive/knxnetip/PassiveKnxNetIpDriver.java
 delete mode 100644 sandbox/test-java-knxnetip-driver-passive/src/main/java/org/apache/plc4x/java/passive/knxnetip/connection/KnxNetIpFieldHandler.java
 delete mode 100644 sandbox/test-java-knxnetip-driver-passive/src/main/java/org/apache/plc4x/java/passive/knxnetip/connection/PassiveKnxNetIpPlcConnection.java
 delete mode 100644 sandbox/test-java-knxnetip-driver-passive/src/main/java/org/apache/plc4x/java/passive/knxnetip/model/KnxNetIpField.java
 delete mode 100644 sandbox/test-java-knxnetip-driver-passive/src/main/java/org/apache/plc4x/java/passive/knxnetip/protocol/HelloWorldProtocol.java
 delete mode 100644 sandbox/test-java-knxnetip-driver-passive/src/main/java/org/apache/plc4x/java/passive/knxnetip/protocol/KnxNetIpProtocol.java
 delete mode 100644 sandbox/test-java-knxnetip-driver-passive/src/main/resources/META-INF/services/org.apache.plc4x.java.spi.PlcDriver
 delete mode 100644 sandbox/test-java-knxnetip-driver-passive/src/test/java/org/apache/plc4x/java/knxnetip/IOTest.java
 delete mode 100644 sandbox/test-java-knxnetip-driver-passive/src/test/java/org/apache/plc4x/java/knxnetip/KNXNetIpTest.java
 delete mode 100644 sandbox/test-java-knxnetip-driver-passive/src/test/java/org/apache/plc4x/java/knxnetip/ManualKnxNetIp.java
 delete mode 100644 sandbox/test-java-knxnetip-driver-passive/src/test/resources/testsuite/KNXNetIPTestsuite.xml
 delete mode 100644 sandbox/test-java-knxnetip-driver/pom.xml
 delete mode 100644 sandbox/test-java-knxnetip-driver/src/main/java/org/apache/plc4x/java/knxnetip/KnxNetIpDriver.java
 delete mode 100644 sandbox/test-java-knxnetip-driver/src/main/java/org/apache/plc4x/java/knxnetip/connection/KnxNetIpConnection.java
 delete mode 100644 sandbox/test-java-knxnetip-driver/src/main/java/org/apache/plc4x/java/knxnetip/connection/KnxNetIpFieldHandler.java
 delete mode 100644 sandbox/test-java-knxnetip-driver/src/main/java/org/apache/plc4x/java/knxnetip/events/KnxGatewayFoundEvent.java
 delete mode 100644 sandbox/test-java-knxnetip-driver/src/main/java/org/apache/plc4x/java/knxnetip/model/KnxNetIpField.java
 delete mode 100644 sandbox/test-java-knxnetip-driver/src/main/java/org/apache/plc4x/java/knxnetip/protocol/KnxNetIpPlc4xProtocol.java
 delete mode 100644 sandbox/test-java-knxnetip-driver/src/main/java/org/apache/plc4x/java/knxnetip/protocol/KnxNetIpProtocolLogic.java
 delete mode 100644 sandbox/test-java-knxnetip-driver/src/main/java/org/apache/plc4x/java/knxnetip/protocol/KnxNetIpProtocolPackets.java
 delete mode 100644 sandbox/test-java-knxnetip-driver/src/test/java/org/apache/plc4x/java/knxnetip/IOTest.java
 delete mode 100644 sandbox/test-java-knxnetip-driver/src/test/java/org/apache/plc4x/java/knxnetip/KNXNetIpTest.java
 delete mode 100644 sandbox/test-java-knxnetip-driver/src/test/java/org/apache/plc4x/java/knxnetip/ManualKnxNetIp.java
 delete mode 100644 sandbox/test-java-knxnetip-driver/src/test/java/org/apache/plc4x/java/knxnetip/ManualKnxNetIpWithEts5.java
 delete mode 100644 sandbox/test-java-knxnetip-driver/src/test/resources/testsuite/KNXNetIPTestsuite.xml
 delete mode 100644 sandbox/test-java-knxnetip-shared/pom.xml
 delete mode 100644 sandbox/test-java-knxnetip-shared/src/main/java/org/apache/plc4x/java/knxnetip/ets5/Ets5Parser.java
 delete mode 100644 sandbox/test-java-knxnetip-shared/src/main/java/org/apache/plc4x/java/knxnetip/ets5/model/Ets5Model.java
 delete mode 100644 sandbox/test-java-knxnetip-shared/src/main/java/org/apache/plc4x/java/knxnetip/ets5/model/GroupAddress.java
 delete mode 100644 sandbox/test-java-s7-driver-passive/pom.xml
 delete mode 100644 sandbox/test-java-s7-driver-passive/src/main/java/org/apache/plc4x/javapassive/s7/PassiveS7PlcDriver.java
 delete mode 100644 sandbox/test-java-s7-driver-passive/src/main/java/org/apache/plc4x/javapassive/s7/connection/PassiveS7PlcConnection.java
 delete mode 100644 sandbox/test-java-s7-driver-passive/src/main/java/org/apache/plc4x/javapassive/s7/protocol/HelloWorldProtocol.java
 delete mode 100644 sandbox/test-java-s7-driver-passive/src/main/java/org/apache/plc4x/javapassive/s7/protocol/PassiveS7Protocol.java
 delete mode 100644 sandbox/test-java-s7-driver-passive/src/main/resources/META-INF/services/org.apache.plc4x.java.spi.PlcDriver
 delete mode 100644 sandbox/test-java-s7-driver-passive/src/test/java/BenchmarkGeneratedPassiveS7.java
 delete mode 100644 sandbox/test-java-s7-driver/pom.xml
 delete mode 100644 sandbox/test-java-s7-driver/src/test/java/BenchmarkGeneratedS7.java
 create mode 100644 src/main/script/preSiteGeneration.groovy
 create mode 100644 src/site/asciidoc/apache/index.adoc
 create mode 100644 src/site/asciidoc/developers/index.adoc
 rename src/site/asciidoc/developers/{ => infrastructure}/ci.adoc (100%)
 create mode 100644 src/site/asciidoc/developers/infrastructure/index.adoc
 create mode 100644 src/site/asciidoc/developers/infrastructure/issues.adoc
 create mode 100644 src/site/asciidoc/developers/infrastructure/sonar.adoc
 create mode 100644 src/site/asciidoc/developers/infrastructure/vm.adoc
 create mode 100644 src/site/asciidoc/developers/infrastructure/vpn.adoc
 create mode 100644 src/site/asciidoc/developers/infrastructure/website.adoc
 create mode 100644 src/site/asciidoc/developers/infrastructure/wiki.adoc
 delete mode 100644 src/site/asciidoc/developers/issues.adoc
 delete mode 100644 src/site/asciidoc/developers/preparing.adoc
 create mode 100644 src/site/asciidoc/developers/preparing/index.adoc
 create mode 100644 src/site/asciidoc/developers/preparing/linux.adoc
 create mode 100644 src/site/asciidoc/developers/preparing/macos.adoc
 create mode 100644 src/site/asciidoc/developers/preparing/windows.adoc
 delete mode 100644 src/site/asciidoc/developers/release-build-tools.adoc
 delete mode 100644 src/site/asciidoc/developers/release.adoc
 create mode 100644 src/site/asciidoc/developers/release/build-tools.adoc
 create mode 100644 src/site/asciidoc/developers/release/index.adoc
 create mode 100644 src/site/asciidoc/developers/release/release.adoc
 create mode 100644 src/site/asciidoc/developers/release/validation.adoc
 delete mode 100644 src/site/asciidoc/developers/sonar.adoc
 create mode 100644 src/site/asciidoc/developers/tutorials/index.adoc
 create mode 100644 src/site/asciidoc/developers/tutorials/testing-serializers-and-parsers.adoc
 create mode 100644 src/site/asciidoc/developers/tutorials/writing-driver.adoc
 delete mode 100644 src/site/asciidoc/developers/vm.adoc
 delete mode 100644 src/site/asciidoc/developers/vpn.adoc
 delete mode 100644 src/site/asciidoc/developers/website.adoc
 delete mode 100644 src/site/asciidoc/developers/wiki.adoc
 delete mode 100644 src/site/asciidoc/developers/writing-driver/writing-driver.adoc
 create mode 100644 src/site/asciidoc/plc4j/index.adoc
 create mode 100644 src/site/asciidoc/users/blogs-videos-and-slides.adoc
 create mode 100644 src/site/asciidoc/users/index.adoc
 create mode 100644 src/site/asciidoc/users/integrations/apache-calcite.adoc
 create mode 100644 src/site/asciidoc/users/integrations/apache-camel.adoc
 create mode 100644 src/site/asciidoc/users/integrations/apache-edgent.adoc
 create mode 100644 src/site/asciidoc/users/integrations/apache-iotdb.adoc
 create mode 100644 src/site/asciidoc/users/integrations/apache-kafka.adoc
 create mode 100644 src/site/asciidoc/users/integrations/apache-nifi.adoc
 create mode 100644 src/site/asciidoc/users/integrations/apache-streampipes.adoc
 create mode 100644 src/site/asciidoc/users/integrations/eclipse-ditto.adoc
 create mode 100644 src/site/asciidoc/users/integrations/elastic-logstash.adoc
 create mode 100644 src/site/asciidoc/users/integrations/index.adoc
 create mode 100644 src/site/asciidoc/users/plc4j/general-concepts.adoc
 create mode 100644 src/site/asciidoc/users/plc4j/gettingstarted.adoc
 create mode 100644 src/site/asciidoc/users/plc4j/virtual-modbus.adoc
 create mode 100644 src/site/asciidoc/users/protocols/ab-eth.adoc
 create mode 100644 src/site/asciidoc/users/protocols/ads.adoc
 create mode 100644 src/site/asciidoc/users/protocols/bacnetip.adoc
 create mode 100644 src/site/asciidoc/users/protocols/deltav.adoc
 create mode 100644 src/site/asciidoc/users/protocols/df1.adoc
 create mode 100644 src/site/asciidoc/users/protocols/ethernet-ip.adoc
 create mode 100644 src/site/asciidoc/users/protocols/firmata.adoc
 create mode 100644 src/site/asciidoc/users/protocols/index.adoc
 create mode 100644 src/site/asciidoc/users/protocols/knxnetip.adoc
 create mode 100644 src/site/asciidoc/users/protocols/modbus.adoc
 create mode 100644 src/site/asciidoc/users/protocols/opc-ua.adoc
 create mode 100644 src/site/asciidoc/users/protocols/s7.adoc
 create mode 100644 src/site/asciidoc/users/protocols/simulated.adoc
 delete mode 100644 src/site/asciidoc/users/testing.adoc
 create mode 100644 src/site/asciidoc/users/tools/capture-replay.adoc
 create mode 100644 src/site/asciidoc/users/tools/connection-pool.adoc
 create mode 100644 src/site/asciidoc/users/tools/index.adoc
 rename src/site/asciidoc/users/{ => tools}/opm.adoc (100%)
 create mode 100644 src/site/asciidoc/users/tools/scraper.adoc
 create mode 100644 src/site/asciidoc/users/tools/testing.adoc
 create mode 100644 src/site/asciidoc/users/transports/index.adoc
 create mode 100644 src/site/asciidoc/users/transports/pcap-replay.adoc
 create mode 100644 src/site/asciidoc/users/transports/raw-socket.adoc
 create mode 100644 src/site/asciidoc/users/transports/serial.adoc
 create mode 100644 src/site/asciidoc/users/transports/tcp.adoc
 create mode 100644 src/site/asciidoc/users/transports/udp.adoc
 create mode 100644 src/site/asciidoc/users/users.adoc
 create mode 100644 src/site/resources/.htaccess
 create mode 100644 src/site/resources/images/apache_logo_small.png
 create mode 100644 src/site/resources/images/apache_plc4x_logo_small.png
 create mode 100644 src/site/resources/images/background-index-3.png
 create mode 100644 src/site/resources/images/integrations/apache_calcite_logo.svg
 rename src/site/resources/images/{ => integrations}/apache_camel_logo.png (100%)
 rename src/site/resources/images/{ => integrations}/apache_edgent_logo.png (100%)
 create mode 100644 src/site/resources/images/integrations/apache_iotdb_logo.png
 rename src/site/resources/images/{ => integrations}/apache_kafka_logo.png (100%)
 rename src/site/resources/images/{ => integrations}/apache_nifi_logo.svg (100%)
 create mode 100644 src/site/resources/images/integrations/apache_streampipes_logo.png
 create mode 100644 src/site/resources/images/integrations/eclipse_ditto_logo.png
 create mode 100644 src/site/resources/images/integrations/elastic_logstash_logo.png
 rename src/site/resources/images/{ => plcs}/plc4x-vpn-beckhoff-route-1.png (100%)
 rename src/site/resources/images/{ => plcs}/plc4x-vpn-beckhoff-route-2.png (100%)
 rename src/site/resources/images/{ => plcs}/plc4x-vpn-beckhoff-route-3.png (100%)
 rename src/site/resources/images/{ => plcs}/plc4x-vpn-beckhoff.jpg (100%)
 rename src/site/resources/images/{ => plcs}/plc4x-vpn-client-download.png (100%)
 rename src/site/resources/images/{ => plcs}/plc4x-vpn-fatek.jpg (100%)
 rename src/site/resources/images/{ => plcs}/plc4x-vpn-siemens-hmi.jpg (100%)
 rename src/site/resources/images/{ => plcs}/plc4x-vpn-siemens-s7.jpg (100%)
 rename src/site/resources/images/{ => plcs}/plc4x-vpn-wago.jpg (100%)
 create mode 100644 src/site/resources/images/protocols/ads-ams.png
 create mode 100644 src/site/resources/images/protocols/bacnet-ip.gif
 create mode 100644 src/site/resources/images/tutorials/modbus/ModbusPal-1.png
 create mode 100644 src/site/resources/images/tutorials/modbus/ModbusPal-2.png
 create mode 100644 src/site/resources/images/tutorials/modbus/ModbusPal-3.png
 create mode 100644 src/site/resources/images/tutorials/modbus/ModbusPal-4.png
 create mode 100644 src/site/resources/images/tutorials/modbus/ModbusPal-5.png
 create mode 100644 src/site/resources/images/tutorials/modbus/ModbusPal-6.png
 create mode 100644 src/site/resources/images/tutorials/modbus/ModbusPal-7.png
 create mode 100644 src/site/resources/images/tutorials/modbus/ModbusPal-8.png
 create mode 100644 src/site/resources/images/tutorials/modbus/ModbusPal-9.png
 create mode 100644 src/site/resources/images/users/protocols/s7-tia-device-settings.png
 create mode 100644 src/site/resources/images/users/protocols/s7-tia-io-settings.png


[plc4x] 01/01: Merge tag 'release/0.7.0'

Posted by cd...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

cdutz pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/plc4x.git

commit 0c18c7c7a0f985b6d03e9bba35a8952b3417a390
Merge: 561845c a936a9f
Author: Christofer Dutz <ch...@c-ware.de>
AuthorDate: Mon May 25 10:24:36 2020 +0200

    Merge tag 'release/0.7.0'
    
    Release of Apache PLC4X 0.7.0

 .gitignore                                         |    4 +
 Dockerfile                                         |   15 +-
 Jenkinsfile                                        |   16 +-
 README.md                                          |    4 +-
 RELEASE_NOTES                                      |   62 +-
 Sometimes-Failling-Tests.md                        |   11 +-
 build-utils/language-base-freemarker/pom.xml       |    2 +-
 .../freemarker/FreemarkerLanguageOutput.java       |   56 +-
 build-utils/language-c/pom.xml                     |   58 +
 .../apache/plc4x/language/c/CLanguageOutput.java   |   72 +
 .../plc4x/language/c/CLanguageTemplateHelper.java  |   39 +
 ...x.plugins.codegenerator.language.LanguageOutput |   19 +
 .../resources/templates/c/pojo-template-c.ftlh     |   38 +
 .../resources/templates/c/pojo-template-h.ftlh     |   38 +
 build-utils/language-java/pom.xml                  |    4 +-
 .../plc4x/language/java/JavaLanguageOutput.java    |   12 +-
 .../language/java/JavaLanguageTemplateHelper.java  |  338 +-
 .../resources/templates/java/data-io-template.ftlh |  277 ++
 .../resources/templates/java/enum-template.ftlh    |  115 +-
 .../main/resources/templates/java/io-template.ftlh |  184 +-
 .../resources/templates/java/pojo-template.ftlh    |  114 +-
 build-utils/pom.xml                                |   17 +-
 build-utils/protocol-base-mspec/pom.xml            |   22 +-
 .../plugins/codegenerator/language/mspec/MSpec.g4  |   32 +-
 .../definitions/DefaultDataIoTypeDefinition.java   |   38 +
 .../mspec/model/fields/DefaultAbstractField.java   |   52 +
 .../model/fields/DefaultManualArrayField.java      |   14 +-
 .../mspec/model/fields/DefaultManualField.java     |   14 +-
 .../references/DefaultStringTypeReference.java     |   38 +
 .../references/DefaultTemporalTypeReference.java   |   30 +
 .../mspec/parser/MessageFormatListener.java        |  100 +-
 .../src/test/resources/mspec.example               |    4 +-
 build-utils/protocol-test/pom.xml                  |    6 +-
 .../src/main/resources/protocols/test/test.mspec   |    2 +-
 jenkins.pom                                        |   18 +-
 plc4j/api/pom.xml                                  |   49 +-
 .../org/apache/plc4x/java/PlcDriverManager.java    |   52 +-
 .../org/apache/plc4x/java/api/Experimental.java    |   26 +
 .../org/apache/plc4x/java/api/PlcConnection.java   |   35 +-
 .../plc4x/java/api/PlcConnectionExtension.java     |   82 +
 .../java/org/apache/plc4x/java/api/PlcDriver.java  |   65 +
 .../java/api/authentication/PlcAuthentication.java |   34 +-
 .../PlcUsernamePasswordAuthentication.java         |   34 +-
 .../api/exceptions/PlcConnectionException.java     |   34 +-
 .../plc4x/java/api/exceptions/PlcException.java    |   34 +-
 .../api/exceptions/PlcFieldRangeException.java     |   32 +-
 .../PlcIncompatibleDatatypeException.java          |   39 +-
 .../api/exceptions/PlcInvalidFieldException.java   |   32 +-
 .../plc4x/java/api/exceptions/PlcIoException.java  |   34 +-
 .../api/exceptions/PlcNotImplementedException.java |   32 +-
 .../java/api/exceptions/PlcProtocolException.java  |   34 +-
 .../PlcProtocolPayloadTooBigException.java         |   34 +-
 .../exceptions/PlcProtocolTimeoutException.java    |   39 +
 .../java/api/exceptions/PlcRuntimeException.java   |   34 +-
 .../java/api/exceptions/PlcTimeoutException.java   |   32 +-
 .../PlcUnsupportedDataTypeException.java           |   32 +-
 .../PlcUnsupportedOperationException.java          |   34 +-
 .../PlcUnsupportedProtocolException.java           |   32 +-
 .../plc4x/java/api/messages/PlcFieldRequest.java   |   34 +-
 .../plc4x/java/api/messages/PlcFieldResponse.java  |   34 +-
 .../apache/plc4x/java/api/messages/PlcMessage.java |   34 +-
 .../plc4x/java/api/messages/PlcReadRequest.java    |   34 +-
 .../plc4x/java/api/messages/PlcReadResponse.java   |   52 +-
 .../apache/plc4x/java/api/messages/PlcRequest.java |   34 +-
 .../plc4x/java/api/messages/PlcRequestBuilder.java |   34 +-
 .../plc4x/java/api/messages/PlcResponse.java       |   34 +-
 .../java/api/messages/PlcSubscriptionEvent.java    |   34 +-
 .../java/api/messages/PlcSubscriptionRequest.java  |   34 +-
 .../java/api/messages/PlcSubscriptionResponse.java |   34 +-
 .../api/messages/PlcUnsubscriptionRequest.java     |   34 +-
 .../api/messages/PlcUnsubscriptionResponse.java    |   34 +-
 .../plc4x/java/api/messages/PlcWriteRequest.java   |   38 +-
 .../plc4x/java/api/messages/PlcWriteResponse.java  |   34 +-
 .../java/api/metadata/PlcConnectionMetadata.java   |   34 +-
 .../java/api/model/PlcConsumerRegistration.java    |   32 +-
 .../org/apache/plc4x/java/api/model/PlcField.java  |   37 +-
 .../java/api/model/PlcSubscriptionHandle.java      |   35 +-
 .../plc4x/java/api/types/PlcClientDatatype.java    |   34 +-
 .../plc4x/java/api/types/PlcResponseCode.java      |   34 +-
 .../plc4x/java/api/types/PlcSubscriptionType.java  |   34 +-
 .../apache/plc4x/java/api/value/PlcBigDecimal.java |  164 +
 .../apache/plc4x/java/api/value/PlcBigInteger.java |  164 +
 .../apache/plc4x/java/api/value/PlcBoolean.java    |  168 +
 .../org/apache/plc4x/java/api/value/PlcByte.java   |  184 +
 .../org/apache/plc4x/java/api/value/PlcDate.java   |   67 +
 .../apache/plc4x/java/api/value/PlcDateTime.java   |   93 +
 .../org/apache/plc4x/java/api/value/PlcDouble.java |  168 +
 .../org/apache/plc4x/java/api/value/PlcFloat.java  |  168 +
 .../apache/plc4x/java/api/value/PlcInteger.java    |  184 +
 .../org/apache/plc4x/java/api/value/PlcList.java   |   84 +
 .../org/apache/plc4x/java/api/value/PlcLong.java   |  168 +
 .../org/apache/plc4x/java/api/value/PlcShort.java  |  184 +
 .../plc4x/java/api/value/PlcSimpleValue.java       |   77 +
 .../org/apache/plc4x/java/api/value/PlcString.java |   89 +
 .../org/apache/plc4x/java/api/value/PlcStruct.java |   84 +
 .../org/apache/plc4x/java/api/value/PlcTime.java   |   67 +
 .../org/apache/plc4x/java/api/value/PlcValue.java  |  145 +
 .../plc4x/java/api/value/PlcValueAdapter.java      |  292 ++
 .../org/apache/plc4x/java/api/value/PlcValues.java |  382 ++
 .../java/org/apache/plc4x/java/spi/PlcDriver.java  |   61 -
 .../apache/plc4x/java/PlcDriverManagerTest.java    |   69 +-
 .../PlcUsernamePasswordAuthenticationTest.java     |   53 +-
 .../plc4x/java/api/connection/PlcReaderTest.java   |   35 +-
 .../plc4x/java/api/connection/PlcWriterTest.java   |   33 +-
 .../api/exceptions/PlcConnectionExceptionTest.java |   32 +-
 .../java/api/exceptions/PlcExceptionTest.java      |   32 +-
 .../api/exceptions/PlcFieldRangeExceptionTest.java |   32 +-
 .../PlcIncompatibleDatatypeExceptionTest.java      |   32 +-
 .../exceptions/PlcInvalidFieldExceptionTest.java   |   34 +-
 .../java/api/exceptions/PlcIoExceptionTest.java    |   32 +-
 .../exceptions/PlcNotImplementedExceptionTest.java |   32 +-
 .../api/exceptions/PlcProtocolExceptionTest.java   |   32 +-
 .../PlcProtocolPayloadTooBigExceptionTest.java     |   32 +-
 .../api/exceptions/PlcRuntimeExceptionTest.java    |   32 +-
 .../api/exceptions/PlcTimeoutExceptionTest.java    |   32 +-
 .../PlcUnsupportedDataTypeExceptionTest.java       |   32 +-
 .../PlcUnsupportedOperationExceptionTest.java      |   32 +-
 .../plc4x/java/api/messages/APIMessageTests.java   |   34 +-
 .../api/messages/PlcProprietaryRequestTest.java    |   38 +-
 .../api/messages/PlcProprietaryResponseTest.java   |   35 +-
 .../java/api/messages/PlcReadRequestTest.java      |   35 +-
 .../java/api/messages/PlcReadResponseTest.java     |   34 +-
 .../plc4x/java/api/messages/PlcRequestTest.java    |   38 +-
 .../plc4x/java/api/messages/PlcResponseTest.java   |   32 +-
 .../api/messages/PlcSubscriptionEventTest.java     |   35 +-
 .../api/messages/PlcSubscriptionRequestTest.java   |   34 +-
 .../api/messages/PlcSubscriptionResponseTest.java  |   34 +-
 .../api/messages/PlcUnsubscriptionRequestTest.java |   36 +-
 .../messages/PlcUnsubscriptionResponseTest.java    |   34 +-
 .../java/api/messages/PlcWriteRequestTest.java     |   35 +-
 .../java/api/messages/PlcWriteResponseTest.java    |   34 +-
 .../plc4x/java/api/messages/mock/MockField.java    |   34 +-
 .../specific/TypeSafePlcReadRequestTest.java       |   35 +-
 .../specific/TypeSafePlcReadResponseTest.java      |   32 +-
 .../specific/TypeSafePlcWriteRequestTest.java      |   35 +-
 .../specific/TypeSafePlcWriteResponseTest.java     |   32 +-
 .../java/api/types/PlcClientDatatypeTest.java      |   34 +-
 .../plc4x/java/api/types/PlcResponseCodeTest.java  |   34 +-
 .../java/api/types/PlcSubscriptionTypeTest.java    |   34 +-
 .../apache/plc4x/java/api/types/PlcValueTest.java  |   53 +
 .../apache/plc4x/java/api/value/PlcValuesTest.java |   51 +
 .../org/apache/plc4x/java/mock/ApiMockDriver.java  |   55 +
 .../plc4x/java/mock/DuplicateMockDriver.java       |   34 +-
 .../org/apache/plc4x/java/mock/MockDriver.java     |   55 -
 .../apache/plc4x/java/mock/MockPlcConnection.java  |   32 +-
 .../services/org.apache.plc4x.java.api.PlcDriver   |   38 +
 .../services/org.apache.plc4x.java.api.PlcDriver   |   38 +
 .../services/org.apache.plc4x.java.spi.PlcDriver   |   19 -
 plc4j/drivers/ab-eth/pom.xml                       |   74 +-
 .../org/apache/plc4x/java/abeth/AbEthDriver.java   |   81 +-
 .../abeth/configuration/AbEthConfiguration.java    |   44 +
 .../java/abeth/connection/AbEthFieldHandler.java   |   36 -
 .../java/abeth/connection/AbEthPlcConnection.java  |  159 -
 .../apache/plc4x/java/abeth/field/AbEthField.java  |  105 +
 .../plc4x/java/abeth/field/AbEthFieldHandler.java  |   35 +
 .../apache/plc4x/java/abeth/model/AbEthField.java  |  105 -
 .../plc4x/java/abeth/model/types/FileType.java     |   65 -
 .../plc4x/java/abeth/protocol/AbEthProtocol.java   |   61 -
 .../java/abeth/protocol/AbEthProtocolLogic.java    |  220 +
 .../java/abeth/protocol/Plc4xAbEthProtocol.java    |   54 +-
 .../apache/plc4x/java/abeth/types/FileType.java    |   65 +
 ...cDriver => org.apache.plc4x.java.api.PlcDriver} |    0
 .../org/apache/plc4x/protocol/abeth/AbEthTest.java |    4 +-
 .../test/resources/testsuite/AbEthTestsuite.xml    |    4 +-
 plc4j/drivers/ads/pom.xml                          |   31 +-
 .../org/apache/plc4x/java/ads/AdsPlcDriver.java    |    4 +-
 .../ads/connection/AdsAbstractPlcConnection.java   |   39 +-
 .../ads/connection/AdsSerialPlcConnection.java     |    4 +-
 .../java/ads/connection/AdsTcpPlcConnection.java   |   23 +-
 ...cDriver => org.apache.plc4x.java.api.PlcDriver} |    0
 .../apache/plc4x/java/ads/adslib/AmsRequest.java   |    4 +-
 .../apache/plc4x/java/ads/adslib/AmsRouter.java    |    4 +-
 .../connection/AdsAbstractPlcConnectionTest.java   |   16 +-
 .../ads/connection/AdsConnectionFactoryTest.java   |    6 +-
 .../ads/connection/AdsSerialPlcConnectionTest.java |    6 +-
 .../ads/connection/AdsTcpPlcConnectionTests.java   |    6 +-
 plc4j/drivers/eip/pom.xml                          |  168 +
 .../apache/plc4x/java/eip/readwrite/EIPDriver.java |  111 +
 .../readwrite/configuration/EIPConfiguration.java  |   53 +
 .../plc4x/java/eip/readwrite/field/EipField.java   |  133 +
 .../java/eip/readwrite/field/EipFieldHandler.java  |  434 ++
 .../eip/readwrite/protocol/EipProtocolLogic.java   |  558 +++
 .../services/org.apache.plc4x.java.api.PlcDriver   |   19 +
 .../java/eip/readwrite/EIPDriverTestsuite.java     |   29 +
 .../readwrite/EIPParserSerializerTestsuite.java    |   29 +
 .../resources/testsuite/EIPDriverTestsuite.xml     |  152 +
 .../testsuite/EIPParserSerializerTestsuite.xml     |  183 +
 plc4j/drivers/ethernet-ip/pom.xml                  |  119 -
 .../plc4x/java/ethernetip/EtherNetIpPlcDriver.java |   83 -
 .../connection/BaseEtherNetIpPlcConnection.java    |  107 -
 .../connection/EtherNetIpTcpPlcConnection.java     |   84 -
 .../services/org.apache.plc4x.java.spi.PlcDriver   |   19 -
 .../org/apache/plc4x/java/ethernetip/EnipTest.java |   65 -
 .../java/ethernetip/ManualPlc4XEtherNetIpTest.java |   55 -
 .../src/test/resources/read-attribute.pcap         |  Bin 258 -> 0 bytes
 plc4j/drivers/firmata/README.adoc                  |   31 +
 plc4j/drivers/firmata/pom.xml                      |  170 +
 .../java/firmata/readwrite/FirmataDriver.java      |  171 +
 .../configuration/FirmataConfiguration.java        |   35 +
 .../readwrite/context/FirmataDriverContext.java    |  158 +
 .../java/firmata/readwrite/field/FirmataField.java |   90 +
 .../readwrite/field/FirmataFieldAnalog.java        |   46 +
 .../readwrite/field/FirmataFieldDigital.java       |   69 +
 .../readwrite/field/FirmataFieldHandler.java       |  149 +
 .../readwrite/model/FirmataSubscriptionHandle.java |   79 +
 .../readwrite/protocol/FirmataProtocolLogic.java   |  301 ++
 .../java/firmata/readwrite/utils/FirmataUtils.java |   54 +
 .../services/org.apache.plc4x.java.api.PlcDriver   |   19 +
 .../readwrite/FirmataParserSerializerTest.java     |   29 +
 .../testsuite/FirmataParserSerializerTest.xml      |  286 ++
 .../src/test/resources/testsuite/recording.txt     | 4239 ++++++++++++++++++++
 .../drivers/knxnetip}/README.adoc                  |    0
 plc4j/drivers/knxnetip/pom.xml                     |  212 +
 .../apache/plc4x/java/knxnetip/KnxNetIpDriver.java |  103 +
 .../configuration/KnxNetIpConfiguration.java       |   79 +
 .../plc4x/java/knxnetip/ets5/Ets5Parser.java       |  161 +
 .../java/knxnetip/ets5/model/AddressType.java      |    0
 .../plc4x/java/knxnetip/ets5/model/Ets5Model.java  |  114 +
 .../plc4x/java/knxnetip/ets5/model/Function.java   |    0
 .../java/knxnetip/ets5/model/GroupAddress.java     |   96 +
 .../plc4x/java/knxnetip/field/KnxNetIpField.java   |  113 +
 .../java/knxnetip/field/KnxNetIpFieldHandler.java  |   35 +
 .../knxnetip/model/KnxNetIpSubscriptionHandle.java |   78 +
 .../knxnetip/protocol/KnxNetIpProtocolLogic.java   |  410 ++
 .../plc4x/java/knxnetip/utils/KnxHelper.java       |   65 +
 .../services/org.apache.plc4x.java.api.PlcDriver   |    0
 .../org/apache/plc4x/java/knxnetip/IOTest.java     |  102 +
 .../apache/plc4x/java/knxnetip/KNXNetIpTest.java   |   30 +
 .../apache/plc4x/java/knxnetip/ManualKnxNetIp.java |   73 +
 .../knxnetip/src/test}/resources/logback.xml       |    0
 .../test/resources/testsuite/KNXNetIPTestsuite.xml |  402 ++
 plc4j/drivers/mock/pom.xml                         |   80 +
 .../org/apache/plc4x/java/mock/MockDriver.java     |   69 +
 .../plc4x/java/mock/connection/MockConnection.java |  207 +
 .../plc4x/java/mock/connection/MockDevice.java     |   52 +
 .../java/mock/connection/tcp/TcpHexDumper.java     |  145 +
 .../apache/plc4x/java/mock/field/MockField.java    |   99 +
 .../plc4x/java/mock/field/MockFieldHandler.java    |   98 +
 .../apache/plc4x/java/mock/field/MockPlcValue.java |   36 +
 .../org/apache/plc4x/java/mock/field/MockType.java |   25 +
 .../mock/protocol/Plc4XSupportedDataTypes.java     |  257 ++
 .../org/apache/plc4x/java/mock/util/Assert.java    |   86 +
 .../org/apache/plc4x/java/mock/util/HexUtil.java   |    0
 .../services/org.apache.plc4x.java.api.PlcDriver}  |    0
 plc4j/drivers/modbus/pom.xml                       |  139 +-
 .../org/apache/plc4x/java/modbus/ModbusDriver.java |  114 +
 .../apache/plc4x/java/modbus/ModbusPlcDriver.java  |   95 -
 .../java/modbus/config/ModbusConfiguration.java    |   64 +
 .../modbus/connection/BaseModbusPlcConnection.java |  117 -
 .../modbus/connection/ModbusConnectionFactory.java |   40 -
 .../connection/ModbusSerialPlcConnection.java      |   47 -
 .../modbus/connection/ModbusTcpPlcConnection.java  |   81 -
 .../plc4x/java/modbus/field/ModbusField.java       |   97 +
 .../plc4x/java/modbus/field/ModbusFieldCoil.java   |   46 +
 .../modbus/field/ModbusFieldDiscreteInput.java     |   46 +
 .../java/modbus/field/ModbusFieldHandler.java      |  150 +
 .../modbus/field/ModbusFieldHoldingRegister.java   |   46 +
 .../modbus/field/ModbusFieldInputRegister.java     |   45 +
 .../java/modbus/protocol/ModbusProtocolLogic.java  |  314 ++
 .../services/org.apache.plc4x.java.api.PlcDriver   |   19 +
 .../services/org.apache.plc4x.java.spi.PlcDriver   |   19 -
 .../org/apache/plc4x/java/modbus/ModbusIOTest.java |   29 +
 .../plc4x/java/modbus/ModbusPlcDriverTest.java     |  134 -
 .../connection/BaseModbusPlcConnectionTest.java    |  156 -
 .../connection/ModbusConnectionFactoryTest.java    |   95 -
 .../connection/ModbusSerialPlcConnectionTest.java  |  217 -
 .../connection/ModbusTcpPlcConnectionTests.java    |   60 -
 .../test/resources/testsuite/ModbusTestsuite.xml   |   64 +
 plc4j/drivers/opcua/pom.xml                        |   91 +-
 .../apache/plc4x/java/opcua/OpcuaPlcDriver.java    |   23 +-
 .../opcua/connection/BaseOpcuaPlcConnection.java   |    5 +-
 .../opcua/connection/OpcuaConnectionFactory.java   |    1 -
 .../opcua/connection/OpcuaTcpPlcConnection.java    |  136 +-
 .../plc4x/java/opcua/protocol/OpcuaField.java      |    3 +-
 .../java/opcua/protocol/OpcuaPlcFieldHandler.java  |  111 +-
 .../opcua/protocol/OpcuaSubsriptionHandle.java     |   16 +-
 .../java/opcua/protocol/model/OpcuaDataTypes.java  |    1 -
 .../opcua/protocol/model/OpcuaIdentifierType.java  |    1 -
 ...cDriver => org.apache.plc4x.java.api.PlcDriver} |    0
 .../apache/plc4x/java/opcua/ManualPLC4XOpcua.java  |   58 +-
 .../plc4x/java/opcua/OpcuaPlcDriverTest.java       |  104 +-
 .../org/apache/plc4x/java/opcua/UtilsTest.java     |    4 +-
 .../connection/OpcuaTcpPlcConnectionTest.java      |    7 +-
 .../plc4x/java/opcua/protocol/OpcuaFieldTest.java  |    8 +-
 .../opcua/protocol/OpcuaPlcFieldHandlerTest.java   |    1 -
 .../protocol/OpcuaSubscriptionHandleTest.java      |    1 -
 plc4j/drivers/pom.xml                              |   12 +-
 plc4j/drivers/s7/README.md                         |   33 -
 plc4j/drivers/s7/pom.xml                           |  184 +-
 .../java/org/apache/plc4x/java/s7/S7PlcDriver.java |   83 -
 .../plc4x/java/s7/connection/S7PlcConnection.java  |  319 --
 .../apache/plc4x/java/s7/readwrite/S7Driver.java   |  119 +
 .../readwrite/configuration/S7Configuration.java   |  148 +
 .../java/s7/readwrite/context/S7DriverContext.java |  135 +
 .../plc4x/java/s7/readwrite/field/S7Field.java     |  301 ++
 .../java/s7/readwrite/field/S7PlcFieldHandler.java |  584 +++
 .../optimizer/DefaultS7MessageProcessor.java       |  288 ++
 .../s7/readwrite/optimizer/S7MessageProcessor.java |   40 +
 .../java/s7/readwrite/optimizer/S7Optimizer.java   |  174 +
 .../s7/readwrite/protocol/S7ProtocolLogic.java     |  524 +++
 .../java/s7/readwrite/types/S7ControllerType.java  |   30 +
 .../java/s7/readwrite/utils/S7TsapIdEncoder.java   |   48 +
 .../apache/plc4x/java/s7/utils/StaticHelper.java   |  155 +
 .../services/org.apache.plc4x.java.api.PlcDriver   |   19 +
 .../services/org.apache.plc4x.java.spi.PlcDriver   |   19 -
 .../s7/src/main}/resources/logback.xml             |    0
 .../s7/src/test/java/BenchmarkGeneratedS7.java     |   71 +
 .../java/org/apache/plc4x/java/s7/BenchmarkS7.java |   90 -
 .../org/apache/plc4x/java/s7/S7PlcDriverTest.java  |   81 -
 .../java/s7/connection/S7PlcConnectionIT.java      |  137 -
 .../java/s7/connection/S7PlcConnectionTests.java   |   93 -
 .../java/s7/connection/S7PlcTestConnection.java    |  204 -
 .../java/s7/connection/issues/PLC4X47Test.java     |   51 -
 .../java/s7/readwrite/ManualS7DriverTest.java      |   33 +
 .../apache/plc4x/java/s7/readwrite/S7DriverIT.java |   29 +
 .../java/s7/readwrite/S7ParserSerializerTest.java  |   29 +
 .../s7/connection/iso-tp-connect-response.pcap     |  Bin 116 -> 0 bytes
 .../s7/connection/s7-cpu-functions-response.pcap   |  Bin 219 -> 0 bytes
 .../java/s7/connection/s7-read-large-response.pcap |  Bin 652 -> 0 bytes
 .../java/s7/connection/s7-read-var-request.pcap    |  Bin 125 -> 0 bytes
 .../java/s7/connection/s7-read-var-response.pcap   |  Bin 120 -> 0 bytes
 .../s7-setup-communication-response.pcap           |  Bin 121 -> 0 bytes
 .../java/s7/connection/s7-write-var-request.pcap   |  Bin 130 -> 0 bytes
 .../java/s7/connection/s7-write-var-response.pcap  |  Bin 116 -> 0 bytes
 .../s7/src/test/resources/testsuite/S7DriverIT.xml |  311 ++
 .../resources/testsuite/S7ParserSerializerTest.xml |  509 +++
 plc4j/drivers/simulated/pom.xml                    |   66 +-
 .../plc4x/java/simulated/SimulatedDriver.java      |   69 +
 .../plc4x/java/simulated/SimulatedPlcDriver.java   |   65 -
 .../simulated/connection/SimulatedConnection.java  |  254 ++
 .../java/simulated/connection/SimulatedDevice.java |  194 +
 .../connection/SimulatedPlcConnection.java         |  219 -
 .../java/simulated/connection/TestDevice.java      |  199 -
 .../plc4x/java/simulated/connection/TestField.java |  128 -
 .../simulated/connection/TestFieldHandler.java     |  174 -
 .../java/simulated/connection/TestFieldItem.java   |   35 -
 .../plc4x/java/simulated/connection/TestType.java  |   28 -
 .../plc4x/java/simulated/field/SimulatedField.java |  129 +
 .../simulated/field/SimulatedFieldHandler.java     |  214 +
 .../java/simulated/types/SimulatedFieldType.java   |   28 +
 .../services/org.apache.plc4x.java.api.PlcDriver   |   19 +
 .../services/org.apache.plc4x.java.spi.PlcDriver   |   38 -
 .../plc4x/java/simulated/SimulatedDriverTest.java  |   58 +
 .../java/simulated/SimulatedPlcDriverTest.java     |   57 -
 .../connection/SimulatedConnectionTest.java        |  245 ++
 .../simulated/connection/SimulatedDeviceTest.java  |   57 +
 .../connection/SimulatedPlcConnectionTest.java     |  245 --
 .../java/simulated/connection/TestDeviceTest.java  |   56 -
 .../simulated/connection/TestFieldHandlerTest.java |  133 -
 .../simulated/connection/TestFieldItemTest.java    |   31 -
 .../java/simulated/connection/TestFieldTest.java   |   61 -
 .../simulated/field/SimularedFieldHandlerTest.java |  128 +
 .../java/simulated/field/SimulatedFieldTest.java   |   62 +
 plc4j/examples/dummy-driver/pom.xml                |   14 +-
 .../java/examples/dummydriver/DummyDriver.java     |    2 +-
 .../dummydriver/connection/DummyConnection.java    |   14 +-
 .../examples/dummydriver/netty/DummyProtocol.java  |    2 +-
 ...cDriver => org.apache.plc4x.java.api.PlcDriver} |    0
 plc4j/examples/hello-cloud-azure/pom.xml           |   61 +-
 plc4j/examples/hello-cloud-google/pom.xml          |   48 +-
 plc4j/examples/hello-connectivity-kafka/pom.xml    |   63 +-
 plc4j/examples/hello-connectivity-mqtt/pom.xml     |   62 +-
 plc4j/examples/hello-integration-edgent/pom.xml    |   61 +-
 plc4j/examples/hello-integration-iotdb/pom.xml     |   63 +-
 .../examples/integration/iotdb/CliOptions.java     |    7 +-
 .../java/examples/integration/iotdb/PlcLogger.java |   38 +-
 .../hello-kafka-connect-elasticsearch/README.md    |   61 +
 .../elasticsearch-sink.properties                  |   25 +
 .../elasticsearch-worker.properties                |   30 +
 .../kafka-connect-config/plc4x-source.properties   |   53 +
 .../kafka-connect-config/plc4x-worker.properties   |   30 +
 plc4j/examples/hello-opm/pom.xml                   |   50 +-
 plc4j/examples/hello-storage-elasticsearch/pom.xml |   51 +-
 .../elasticsearch/ElasticsearchStorage.java        |    5 +-
 plc4j/examples/hello-webapp/client/asconfig.json   |   20 +
 plc4j/examples/hello-webapp/client/pom.xml         |   35 +-
 .../src/main/resources/plc4x-index-template.html   |   28 +
 .../hello-webapp/client/src/main/royale/App.mxml   |  161 +
 .../client/src/main/royale/HelloPLC4X.mxml         |  104 -
 .../client/src/main/royale/service/RobotService.as |   92 -
 plc4j/examples/hello-webapp/pom.xml                |   19 +-
 plc4j/examples/hello-webapp/service/pom.xml        |  112 -
 .../robot/controllers/RobotController.java         |  105 -
 plc4j/examples/hello-webapp/webapp/README.adoc     |   41 +
 plc4j/examples/hello-webapp/webapp/pom.xml         |  143 +-
 .../apache/plc4x/examples/robot/Application.java   |   32 -
 .../plc4x/examples/watertank/Application.java      |   32 +
 .../watertank/service/WaterTankService.java        |  194 +
 .../java/org/springframework/core/JdkVersion.java  |   36 +
 .../resources/META-INF/flex/services-config.xml    |   98 +
 .../src/main/resources/application.properties      |   10 +-
 .../webapp/src/main/webapp/WEB-INF/web.xml         |   79 +
 .../webapp/src/main/webapp/favicon.ico             |  Bin 0 -> 1150 bytes
 plc4j/examples/hello-world-plc4x/pom.xml           |   55 +-
 .../plc4x/java/examples/helloplc4x/HelloPlc4x.java |   13 +-
 .../src/main/resources/logback.xml                 |    2 +-
 plc4j/examples/pom.xml                             |   92 +-
 plc4j/integrations/apache-calcite/pom.xml          |    9 +-
 .../java/org/apache/plc4x/DriverManagerTest.java   |    1 -
 .../java/org/apache/plc4x/Plc4XBaseTableTest.java  |    2 +-
 .../apache-calcite/src/test/resources/example.yml  |    4 +-
 plc4j/integrations/apache-camel/pom.xml            |  215 +-
 .../apache-camel/src/main/docs/PLC4X.adoc          |   50 +-
 .../java/org/apache/plc4x/camel/Constants.java     |    3 +-
 .../org/apache/plc4x/camel/Plc4XComponent.java     |   39 +-
 .../java/org/apache/plc4x/camel/Plc4XConsumer.java |  160 +-
 .../java/org/apache/plc4x/camel/Plc4XEndpoint.java |  144 +-
 .../apache/plc4x/camel/Plc4XPollingConsumer.java   |  130 +-
 .../java/org/apache/plc4x/camel/Plc4XProducer.java |   37 +-
 .../main/java/org/apache/plc4x/camel/TagData.java  |  129 +
 .../services/org/apache/camel/component/plc4x      |   36 +-
 .../java/org/apache/plc4x/camel/ConstantsTest.java |   25 +-
 .../java/org/apache/plc4x/camel/ManualTest.java    |   10 +-
 .../java/org/apache/plc4x/camel/MockDriver.java    |   15 +-
 .../org/apache/plc4x/camel/Plc4XComponentTest.java |   25 +-
 .../org/apache/plc4x/camel/Plc4XConsumerTest.java  |   20 +-
 .../org/apache/plc4x/camel/Plc4XEndpointTest.java  |    8 +-
 .../plc4x/camel/Plc4XPollingConsumerTest.java      |    2 +-
 .../org/apache/plc4x/camel/Plc4XProducerTest.java  |   42 +-
 ...cDriver => org.apache.plc4x.java.api.PlcDriver} |    0
 plc4j/integrations/apache-edgent/pom.xml           |   29 +-
 .../apache/plc4x/edgent/PlcConnectionAdapter.java  |    4 +-
 .../plc4x/edgent/PlcConnectionAdapterTest.java     |  548 +++
 .../org/apache/plc4x/edgent/PlcFunctionsTest.java  |  144 +
 .../plc4x/edgent/PlcConnectionAdapterTest.java     |  552 ---
 .../org/apache/plc4x/edgent/PlcFunctionsTest.java  |  144 -
 .../apache/plc4x/edgent/mock/MockConnection.java   |  155 -
 .../org/apache/plc4x/edgent/mock/MockDriver.java   |   48 -
 .../org/apache/plc4x/edgent/mock/MockField.java    |   62 -
 .../apache/plc4x/edgent/mock/MockFieldHandler.java |  104 -
 .../apache/plc4x/edgent/mock/MockFieldItem.java    |   34 -
 .../services/org.apache.plc4x.java.spi.PlcDriver   |   19 -
 plc4j/integrations/apache-kafka/README.md          |    2 +-
 .../apache-kafka/config/plc4x-source.properties    |   11 +-
 plc4j/integrations/apache-kafka/pom.xml            |   38 +-
 .../org/apache/plc4x/kafka/Plc4xSourceTask.java    |   18 +-
 .../apache-nifi/nifi-plc4x-nar/pom.xml             |   73 +-
 .../apache-nifi/nifi-plc4x-processors/pom.xml      |    4 +-
 .../apache/plc4x/nifi/Plc4xSourceProcessor.java    |    7 +-
 .../plc4x4nifi/Plc4xSinkProcessorTest.java         |    6 +-
 .../plc4x4nifi/Plc4xSourceProcessorTest.java       |    6 +-
 plc4j/integrations/apache-nifi/pom.xml             |   13 +-
 plc4j/integrations/logstash-plugin/pom.xml         |   48 +-
 .../main/java/org/apache/plc4x/logstash/Plc4x.java |    1 +
 plc4j/integrations/pom.xml                         |    2 +-
 plc4j/karaf-features/camel/pom.xml                 |   67 +
 plc4j/karaf-features/eip/pom.xml                   |   72 +
 plc4j/karaf-features/karaf-itest/pom.xml           |   31 +-
 .../java/org/apache/plc4x/karaf/FeatureIT.java     |    4 +-
 plc4j/karaf-features/pom.xml                       |   21 +-
 plc4j/karaf-features/s7/pom.xml                    |   79 +-
 .../karaf-features/s7/src/main/feature/feature.xml |   48 -
 plc4j/osgi/pom.xml                                 |   52 +
 .../apache/plc4x/java/osgi/DriverActivator.java    |   53 +
 .../apache/plc4x/java/osgi/TransportActivator.java |   54 +
 plc4j/pom.xml                                      |   44 +-
 plc4j/protocols/ads/pom.xml                        |   16 +-
 .../plc4x/java/ads/api/serial/AmsSerialFrame.java  |    2 +-
 .../plc4x/java/ads/model/AdsPlcFieldHandler.java   |  168 +-
 .../java/ads/model/AdsSubscriptionHandle.java      |    4 +-
 .../plc4x/java/ads/protocol/Plc4x2AdsProtocol.java |   29 +-
 .../ads/protocol/util/LittleEndianDecoder.java     |  206 +-
 .../protocol/util/SingleMessageRateLimiter.java    |    2 +-
 .../protocol/util/LittleEndianDecoderSpec.groovy   |   99 -
 .../util/LittleEndianDecoderSpecHurz.groovy        |   99 +
 .../protocol/util/LittleEndianEncoderSpec.groovy   |   53 -
 .../util/LittleEndianEncoderSpecHurz.groovy        |   53 +
 .../java/ads/model/AdsPlcFieldHandlerTest.java     |    5 +-
 ...load2SerialProtocolExampleConversationTest.java |    8 +-
 .../java/ads/protocol/Plc4x2AdsProtocolTest.java   |    4 +-
 .../java/ads/protocol/util/DigestUtilTest.java     |    5 +-
 plc4j/protocols/benchmarks/pom.xml                 |    4 +-
 plc4j/protocols/delta-v/pom.xml                    |    4 +-
 plc4j/protocols/driver-bases/base/pom.xml          |  101 -
 .../base/GeneratedDriverByteToMessageCodec.java    |   79 -
 .../plc4x/java/base/PlcByteToMessageCodec.java     |   59 -
 .../plc4x/java/base/PlcMessageToMessageCodec.java  |   60 -
 .../base/connection/AbstractPlcConnection.java     |  105 -
 .../plc4x/java/base/connection/ChannelFactory.java |   33 -
 .../base/connection/DefaultPlcFieldHandler.java    |  101 -
 .../java/base/connection/NettyPlcConnection.java   |  132 -
 .../java/base/connection/PlcFieldHandler.java      |   60 -
 .../plc4x/java/base/events/ConnectEvent.java       |   22 -
 .../plc4x/java/base/events/ConnectedEvent.java     |   22 -
 .../plc4x/java/base/events/DisconnectEvent.java    |   39 -
 .../plc4x/java/base/events/DisconnectedEvent.java  |   22 -
 .../messages/DefaultPlcProprietaryRequest.java     |   43 -
 .../messages/DefaultPlcProprietaryResponse.java    |   42 -
 .../java/base/messages/DefaultPlcReadRequest.java  |  113 -
 .../java/base/messages/DefaultPlcReadResponse.java |  583 ---
 .../base/messages/DefaultPlcSubscriptionEvent.java |   55 -
 .../messages/DefaultPlcSubscriptionRequest.java    |  168 -
 .../messages/DefaultPlcSubscriptionResponse.java   |   90 -
 .../messages/DefaultPlcUnsubscriptionRequest.java  |   90 -
 .../messages/DefaultPlcUnsubscriptionResponse.java |   36 -
 .../java/base/messages/DefaultPlcWriteRequest.java |  275 --
 .../base/messages/DefaultPlcWriteResponse.java     |   62 -
 .../base/messages/InternalPlcFieldRequest.java     |   31 -
 .../base/messages/InternalPlcFieldResponse.java    |   26 -
 .../java/base/messages/InternalPlcMessage.java     |   23 -
 .../messages/InternalPlcProprietaryRequest.java    |   22 -
 .../messages/InternalPlcProprietaryResponse.java   |   22 -
 .../java/base/messages/InternalPlcReadRequest.java |   26 -
 .../base/messages/InternalPlcReadResponse.java     |   31 -
 .../java/base/messages/InternalPlcRequest.java     |   24 -
 .../java/base/messages/InternalPlcResponse.java    |   25 -
 .../messages/InternalPlcSubscriptionEvent.java     |   25 -
 .../messages/InternalPlcSubscriptionRequest.java   |   36 -
 .../messages/InternalPlcSubscriptionResponse.java  |   30 -
 .../messages/InternalPlcUnsubscriptionRequest.java |   29 -
 .../InternalPlcUnsubscriptionResponse.java         |   25 -
 .../base/messages/InternalPlcWriteRequest.java     |   36 -
 .../base/messages/InternalPlcWriteResponse.java    |   28 -
 .../java/base/messages/PlcProprietaryRequest.java  |   25 -
 .../java/base/messages/PlcProprietaryResponse.java |   25 -
 .../java/base/messages/PlcProprietarySender.java   |   25 -
 .../java/base/messages/PlcProtocolMessage.java     |   25 -
 .../plc4x/java/base/messages/PlcRawMessage.java    |   46 -
 .../apache/plc4x/java/base/messages/PlcReader.java |   40 -
 .../java/base/messages/PlcRequestContainer.java    |   85 -
 .../plc4x/java/base/messages/PlcSubscriber.java    |   63 -
 .../apache/plc4x/java/base/messages/PlcWriter.java |   40 -
 .../base/messages/items/BaseDefaultFieldItem.java  |  193 -
 .../messages/items/DefaultBigDecimalFieldItem.java |  171 -
 .../messages/items/DefaultBigIntegerFieldItem.java |  171 -
 .../messages/items/DefaultBooleanFieldItem.java    |  184 -
 .../messages/items/DefaultByteArrayFieldItem.java  |   58 -
 .../base/messages/items/DefaultByteFieldItem.java  |  151 -
 .../messages/items/DefaultDoubleFieldItem.java     |  158 -
 .../base/messages/items/DefaultFloatFieldItem.java |  156 -
 .../messages/items/DefaultIntegerFieldItem.java    |  153 -
 .../messages/items/DefaultLocalDateFieldItem.java  |   50 -
 .../items/DefaultLocalDateTimeFieldItem.java       |   78 -
 .../messages/items/DefaultLocalTimeFieldItem.java  |   50 -
 .../base/messages/items/DefaultLongFieldItem.java  |  154 -
 .../base/messages/items/DefaultShortFieldItem.java |  151 -
 .../messages/items/DefaultStringFieldItem.java     |   48 -
 .../base/model/DefaultPlcConsumerRegistration.java |   85 -
 .../base/model/DefaultPlcSubscriptionHandle.java   |   62 -
 .../model/InternalPlcConsumerRegistration.java     |   32 -
 .../base/model/InternalPlcSubscriptionHandle.java  |   25 -
 .../java/base/model/SubscriptionPlcField.java      |   55 -
 .../SingleItemToSingleRequestProtocol.java         |  647 ---
 .../messages/DefaultPlcReadResponseSpec.groovy     |   86 -
 .../base/messages/items/DefaultItemsSpec.groovy    |  217 -
 .../base/connection/AbstractPlcConnectionTest.java |  101 -
 .../base/connection/NettyPlcConnectionTest.java    |   92 -
 .../messages/DefaultPlcProprietaryRequestTest.java |   48 -
 .../DefaultPlcProprietaryResponseTest.java         |   50 -
 .../base/messages/DefaultPlcReadRequestTest.java   |  116 -
 .../base/messages/DefaultPlcReadResponseTest.java  |  120 -
 .../messages/DefaultPlcSubscriptionEventTest.java  |   68 -
 .../DefaultPlcSubscriptionRequestTest.java         |  157 -
 .../DefaultPlcSubscriptionResponseTest.java        |  124 -
 .../DefaultPlcUnsubscriptionRequestTest.java       |   91 -
 .../DefaultPlcUnsubscriptionResponseTest.java      |   48 -
 .../base/messages/DefaultPlcWriteRequestTest.java  |   70 -
 .../base/messages/DefaultPlcWriteResponseTest.java |   91 -
 .../java/base/messages/PlcRawMessageTest.java      |   57 -
 .../base/messages/PlcRequestContainerTest.java     |   82 -
 .../messages/items/DefaultLongFieldItemTest.java   |  114 -
 .../model/DefaultPlcConsumerRegistrationTest.java  |   88 -
 .../model/DefaultPlcSubscriptionHandleTest.java    |   73 -
 .../java/base/model/SubscriptionPlcFieldTest.java  |   68 -
 .../SingleItemToSingleRequestProtocolTest.java     |  729 ----
 ...spockframework.report.IReportCreator.properties |   66 -
 plc4j/protocols/driver-bases/pcap-socket/pom.xml   |   67 -
 .../java/base/connection/PcapChannelFactory.java   |  101 -
 plc4j/protocols/driver-bases/pom.xml               |   46 -
 plc4j/protocols/driver-bases/raw-socket/pom.xml    |   67 -
 .../base/connection/RawSocketChannelFactory.java   |  110 -
 plc4j/protocols/driver-bases/serial/pom.xml        |   81 -
 .../connection/connection/SerialChannel.java       |  635 ---
 .../connection/SerialChannelFactory.java           |   83 -
 .../connection/SerialChannelHandler.java           |  172 -
 .../connection/SerialPollingSelector.java          |  176 -
 .../connection/connection/SerialSelectionKey.java  |   80 -
 .../connection/SerialSelectorProvider.java         |   68 -
 .../connection/connection/SerialSocketAddress.java |   47 -
 .../connection/connection/SerialSocketChannel.java |  158 -
 .../base/connection/SerialChannelFactoryTest.java  |  111 -
 plc4j/protocols/driver-bases/tcp/pom.xml           |   62 -
 .../tcp/connection/TcpSocketChannelFactory.java    |  115 -
 plc4j/protocols/driver-bases/test/pom.xml          |   97 -
 .../org/apache/plc4x/java/mock/MockDevice.java     |   50 -
 .../java/org/apache/plc4x/java/mock/MockField.java |   49 -
 .../apache/plc4x/java/mock/MockFieldHandler.java   |  103 -
 .../org/apache/plc4x/java/mock/MockFieldItem.java  |   34 -
 .../apache/plc4x/java/mock/PlcMockConnection.java  |  193 -
 .../org/apache/plc4x/java/mock/PlcMockDriver.java  |   62 -
 .../plc4x/java/mock/connection/MockConnection.java |   41 -
 .../java/mock/connection/TestChannelFactory.java   |   45 -
 .../java/mock/connection/tcp/TcpHexDumper.java     |  148 -
 .../mock/protocol/Plc4XSupportedDataTypes.java     |  257 --
 .../org/apache/plc4x/java/mock/util/Assert.java    |   86 -
 ...spockframework.report.IReportCreator.properties |   66 -
 .../services/org.apache.plc4x.java.spi.PlcDriver   |   19 -
 .../plc4x/java/mock/MockFieldHandlerTest.java      |  111 -
 .../apache/plc4x/java/mock/MockFieldItemTest.java  |   31 -
 .../org/apache/plc4x/java/mock/MockFieldTest.java  |   48 -
 .../plc4x/java/mock/PlcMockConnectionTest.java     |  164 -
 .../apache/plc4x/java/mock/PlcMockDriverTest.java  |   96 -
 plc4j/protocols/driver-bases/udp/pom.xml           |   70 -
 .../base/connection/UdpSocketChannelFactory.java   |  110 -
 .../protocol/DatagramUnpackingHandler.java         |   39 -
 plc4j/protocols/ethernet-ip/pom.xml                |  124 -
 .../java/ethernetip/model/EtherNetIpField.java     |  102 -
 .../plc4x/java/ethernetip/netty/EnipCodec.java     |   58 -
 .../ethernetip/netty/Plc4XEtherNetIpProtocol.java  |  497 ---
 .../netty/events/EtherNetIpConnectedEvent.java     |   22 -
 .../ethernetip/netty/util/EnipPlcFieldHandler.java |  110 -
 .../ethernet-ip/src/site/asciidoc/index.adoc       |   80 -
 .../site/resources/images/WAGO_enip_exporer.png    |  Bin 293168 -> 0 bytes
 plc4j/protocols/iso-on-tcp/pom.xml                 |   75 -
 .../java/isoontcp/protocol/IsoOnTcpProtocol.java   |  119 -
 .../isoontcp/protocol/model/IsoOnTcpMessage.java   |   30 -
 .../isoontcp/protocol/IsoOnTcpProtocolTest.java    |  169 -
 plc4j/protocols/iso-tp/pom.xml                     |   78 -
 .../plc4x/java/isotp/protocol/IsoTPProtocol.java   |  452 ---
 .../isotp/protocol/events/IsoTPConnectedEvent.java |   22 -
 .../java/isotp/protocol/model/IsoTPMessage.java    |   38 -
 .../protocol/model/params/CalledTsapParameter.java |   34 -
 .../model/params/CallingTsapParameter.java         |   34 -
 .../protocol/model/params/ChecksumParameter.java   |   40 -
 .../DisconnectAdditionalInformationParameter.java  |   41 -
 .../isotp/protocol/model/params/Parameter.java     |   27 -
 .../protocol/model/params/TpduSizeParameter.java   |   41 -
 .../isotp/protocol/model/params/TsapParameter.java |   36 -
 .../model/tpdus/ConnectionConfirmTpdu.java         |   34 -
 .../model/tpdus/ConnectionRequestTpdu.java         |   34 -
 .../isotp/protocol/model/tpdus/ConnectionTpdu.java |   53 -
 .../isotp/protocol/model/tpdus/CustomTpdu.java     |   33 -
 .../java/isotp/protocol/model/tpdus/DataTpdu.java  |   51 -
 .../model/tpdus/DisconnectConfirmTpdu.java         |   33 -
 .../model/tpdus/DisconnectRequestTpdu.java         |   41 -
 .../isotp/protocol/model/tpdus/DisconnectTpdu.java |   46 -
 .../java/isotp/protocol/model/tpdus/ErrorTpdu.java |   47 -
 .../java/isotp/protocol/model/tpdus/Tpdu.java      |   64 -
 .../isotp/protocol/model/types/DeviceGroup.java    |   51 -
 .../protocol/model/types/DisconnectReason.java     |   64 -
 .../isotp/protocol/model/types/ParameterCode.java  |   75 -
 .../isotp/protocol/model/types/ProtocolClass.java  |   53 -
 .../isotp/protocol/model/types/RejectCause.java    |   52 -
 .../java/isotp/protocol/model/types/TpduCode.java  |   62 -
 .../java/isotp/protocol/model/types/TpduSize.java  |   78 -
 .../java/isotp/protocol/IsoTPProtocolTest.java     |  635 ---
 .../isotp/protocol/model/IsoTPMessageTests.java    |   61 -
 .../protocol/model/params/ParameterTests.java      |   62 -
 .../protocol/model/params/TsapParameterTests.java  |   60 -
 .../protocol/model/tpdus/IsotpModelTests.java      |  185 -
 .../isotp/protocol/model/types/IsotpTypeTests.java |  216 -
 plc4j/protocols/modbus/pom.xml                     |  129 -
 .../items/DefaultModbusByteArrayFieldItem.java     |  258 --
 .../plc4x/java/modbus/model/CoilModbusField.java   |   45 -
 .../modbus/model/MaskWriteRegisterModbusField.java |   91 -
 .../plc4x/java/modbus/model/ModbusField.java       |   74 -
 .../model/ReadDiscreteInputsModbusField.java       |   45 -
 .../model/ReadHoldingRegistersModbusField.java     |   45 -
 .../model/ReadInputRegistersModbusField.java       |   45 -
 .../java/modbus/model/RegisterModbusField.java     |   46 -
 .../java/modbus/netty/Plc4XModbusProtocol.java     |  528 ---
 .../java/modbus/util/ModbusPlcFieldHandler.java    |  114 -
 .../plc4x/java/modbus/ManualPlc4XModbusTest.java   |  138 -
 .../items/DefaultModbusByteArrayFieldItemTest.java |  170 -
 .../java/modbus/netty/Plc4XModbusProtocolTest.java |  410 --
 .../modbus/src/test/resources/logback.xml          |   38 -
 plc4j/protocols/pom.xml                            |   12 +-
 plc4j/protocols/s7/LINKS.md                        |   25 -
 plc4j/protocols/s7/pom.xml                         |  103 -
 .../org/apache/plc4x/java/s7/model/S7Field.java    |  275 --
 .../plc4x/java/s7/netty/Plc4XNettyException.java   |   37 -
 .../plc4x/java/s7/netty/Plc4XS7Protocol.java       |  844 ----
 .../org/apache/plc4x/java/s7/netty/S7Protocol.java |  885 ----
 .../java/s7/netty/events/S7ConnectedEvent.java     |   22 -
 .../java/s7/netty/model/messages/S7Message.java    |   99 -
 .../s7/netty/model/messages/S7RequestMessage.java  |   51 -
 .../s7/netty/model/messages/S7ResponseMessage.java |   50 -
 .../messages/SetupCommunicationRequestMessage.java |   35 -
 .../netty/model/params/CpuServicesParameter.java   |   54 -
 .../model/params/CpuServicesRequestParameter.java  |   30 -
 .../model/params/CpuServicesResponseParameter.java |   50 -
 .../java/s7/netty/model/params/S7Parameter.java    |   27 -
 .../model/params/SetupCommunicationParameter.java  |   52 -
 .../java/s7/netty/model/params/VarParameter.java   |   54 -
 .../model/params/items/S7AnyVarParameterItem.java  |   94 -
 .../netty/model/params/items/VarParameterItem.java |   27 -
 .../netty/model/payloads/CpuServicesPayload.java   |   71 -
 .../java/s7/netty/model/payloads/S7Payload.java    |   27 -
 .../java/s7/netty/model/payloads/VarPayload.java   |   60 -
 .../netty/model/payloads/items/VarPayloadItem.java |   48 -
 .../netty/model/payloads/ssls/SslDataRecord.java   |   25 -
 .../ssls/SslModuleIdentificationDataRecord.java    |   66 -
 .../types/CpuServicesParameterFunctionGroup.java   |   58 -
 .../CpuServicesParameterSubFunctionGroup.java      |   58 -
 .../netty/model/types/DataTransportErrorCode.java  |   62 -
 .../s7/netty/model/types/DataTransportSize.java    |   64 -
 .../s7/netty/model/types/HeaderErrorClass.java     |   55 -
 .../java/s7/netty/model/types/MemoryArea.java      |   83 -
 .../java/s7/netty/model/types/MessageType.java     |   55 -
 .../java/s7/netty/model/types/ParameterError.java  |   70 -
 .../java/s7/netty/model/types/ParameterType.java   |   71 -
 .../s7/netty/model/types/SpecificationType.java    |   52 -
 .../plc4x/java/s7/netty/model/types/SslId.java     |   97 -
 .../java/s7/netty/model/types/TransportSize.java   |  196 -
 .../netty/model/types/VariableAddressingMode.java  |   63 -
 .../strategies/DefaultS7MessageProcessor.java      |  496 ---
 .../s7/netty/strategies/S7MessageProcessor.java    |   38 -
 .../java/s7/netty/util/S7PlcFieldHandler.java      |  570 ---
 .../s7/netty/util/S7RequestSizeCalculator.java     |  158 -
 .../s7/netty/util/S7ResponseSizeEstimator.java     |  171 -
 .../plc4x/java/s7/netty/util/S7SizeHelper.java     |  143 -
 .../plc4x/java/s7/types/S7ControllerType.java      |   30 -
 .../plc4x/java/s7/utils/S7TsapIdEncoder.java       |   48 -
 plc4j/protocols/s7/src/site/asciidoc/index.adoc    |  101 -
 .../plc4x/java/s7/netty/Plc4XS7ProtocolSpec.groovy |  278 --
 .../java/org/apache/plc4x/java/issues/PLC4X56.java |   81 -
 .../org/apache/plc4x/java/s7/PcapGenerator.java    |  318 --
 .../apache/plc4x/java/s7/model/S7FieldTests.java   |  108 -
 .../plc4x/java/s7/netty/Plc4XS7ProtocolTest.java   |  184 -
 .../apache/plc4x/java/s7/netty/S7ProtocolTest.java |  424 --
 .../s7/netty/model/messages/S7MessageTests.java    |  191 -
 .../s7/netty/model/params/S7ParameterTests.java    |   80 -
 .../s7/netty/model/payloads/S7PayloadTests.java    |  132 -
 .../java/s7/netty/model/types/S7TypeTests.java     |  150 -
 .../strategies/DefaultS7MessageProcessorTest.java  |  931 -----
 .../java/s7/netty/util/S7PlcFieldHandlerTest.java  |  367 --
 .../s7/netty/util/S7RequestSizeCalculatorTest.java |  141 -
 .../s7/netty/util/S7ResponseSizeEstimatorTest.java |  122 -
 .../plc4x/java/s7/netty/util/S7SizeHelperTest.java |  119 -
 .../apache/plc4x/java/s7/types/S7DataTypeTest.java |   57 -
 .../plc4x/java/s7/utils/S7TsapIdEncoderTest.java   |   68 -
 plc4j/spi/pom.xml                                  |  102 +
 .../apache/plc4x/java/spi/ConversationContext.java |  102 +
 .../spi/GeneratedDriverByteToMessageCodec.java     |  101 +
 .../apache/plc4x/java/spi/Plc4xNettyWrapper.java   |  224 ++
 .../apache/plc4x/java/spi/Plc4xProtocolBase.java   |   91 +
 .../plc4x/java/spi/PlcMessageToMessageCodec.java   |   60 +
 .../java/spi/configuration/Configuration.java      |   23 +
 .../spi/configuration/ConfigurationFactory.java    |  263 ++
 .../ConfigurationParameterConverter.java           |   44 +
 .../java/spi/configuration/HasConfiguration.java   |   36 +
 .../annotations/ConfigurationParameter.java        |   33 +
 .../annotations/ParameterConverter.java            |   42 +
 .../spi/configuration/annotations/Required.java    |   30 +
 .../annotations/defaults/BooleanDefaultValue.java  |   33 +
 .../annotations/defaults/DoubleDefaultValue.java   |   33 +
 .../annotations/defaults/IntDefaultValue.java      |   33 +
 .../annotations/defaults/LongDefaultValue.java     |   33 +
 .../annotations/defaults/StringDefaultValue.java   |   33 +
 .../java/spi/connection/AbstractPlcConnection.java |  209 +
 .../spi/connection/ChannelExposingConnection.java  |   27 +
 .../plc4x/java/spi/connection/ChannelFactory.java  |   37 +
 .../spi/connection/DefaultNettyPlcConnection.java  |  189 +
 .../spi/connection/DefaultPlcFieldHandler.java     |   97 +
 .../java/spi/connection/GeneratedDriverBase.java   |  154 +
 .../connection/GeneratedProtocolMessageCodec.java  |   62 +
 .../java/spi/connection/NettyChannelFactory.java   |  175 +
 .../plc4x/java/spi/connection/PlcFieldHandler.java |   58 +
 .../spi/connection/ProtocolStackConfigurer.java    |   31 +
 .../connection/SingleProtocolStackConfigurer.java  |  173 +
 .../plc4x/java/spi/context/DriverContext.java      |   22 +
 .../java/spi/events/CloseConnectionEvent.java      |   23 +
 .../apache/plc4x/java/spi/events/ConnectEvent.java |   22 +
 .../plc4x/java/spi/events/ConnectedEvent.java      |   22 +
 .../plc4x/java/spi/events/DisconnectEvent.java     |   39 +
 .../plc4x/java/spi/events/DisconnectedEvent.java   |   22 +
 .../exceptions/InternalPlcRuntimeException.java    |   41 +
 .../java/spi/generation/EvaluationHelper.java      |   58 +
 .../apache/plc4x/java/spi/generation/Message.java  |   34 +
 .../plc4x/java/spi/generation/MessageIO.java       |   23 +
 .../plc4x/java/spi/generation/MessageInput.java    |   25 +
 .../plc4x/java/spi/generation/MessageOutput.java   |   25 +
 .../plc4x/java/spi/generation/ParseException.java  |   32 +
 .../plc4x/java/spi/generation/ReadBuffer.java      |  287 ++
 .../plc4x/java/spi/generation/StaticHelper.java    |  139 +
 .../plc4x/java/spi/generation/WriteBuffer.java     |  230 ++
 .../java/spi/generation/io/MyDefaultBitInput.java  |   38 +
 .../java/spi/generation/io/MyDefaultBitOutput.java |   37 +
 .../spi/internal/DefaultExpectRequestContext.java  |  128 +
 .../spi/internal/DefaultSendRequestContext.java    |  138 +
 .../java/spi/internal/HandlerRegistration.java     |   86 +
 .../spi/messages/DefaultPlcProprietaryRequest.java |   50 +
 .../messages/DefaultPlcProprietaryResponse.java    |   49 +
 .../java/spi/messages/DefaultPlcReadRequest.java   |  139 +
 .../java/spi/messages/DefaultPlcReadResponse.java  |  711 ++++
 .../spi/messages/DefaultPlcSubscriptionEvent.java  |   65 +
 .../messages/DefaultPlcSubscriptionRequest.java    |  183 +
 .../messages/DefaultPlcSubscriptionResponse.java   |  102 +
 .../messages/DefaultPlcUnsubscriptionRequest.java  |  101 +
 .../messages/DefaultPlcUnsubscriptionResponse.java |   41 +
 .../java/spi/messages/DefaultPlcWriteRequest.java  |  298 ++
 .../java/spi/messages/DefaultPlcWriteResponse.java |   72 +
 .../java/spi/messages/InternalPlcFieldRequest.java |   33 +
 .../spi/messages/InternalPlcFieldResponse.java     |   28 +
 .../java/spi/messages/InternalPlcMessage.java      |   26 +
 .../messages/InternalPlcProprietaryRequest.java    |   25 +
 .../messages/InternalPlcProprietaryResponse.java   |   25 +
 .../java/spi/messages/InternalPlcReadRequest.java  |   28 +
 .../java/spi/messages/InternalPlcReadResponse.java |   33 +
 .../java/spi/messages/InternalPlcRequest.java      |   26 +
 .../java/spi/messages/InternalPlcResponse.java     |   27 +
 .../spi/messages/InternalPlcSubscriptionEvent.java |   27 +
 .../messages/InternalPlcSubscriptionRequest.java   |   38 +
 .../messages/InternalPlcSubscriptionResponse.java  |   31 +
 .../messages/InternalPlcUnsubscriptionRequest.java |   31 +
 .../InternalPlcUnsubscriptionResponse.java         |   27 +
 .../java/spi/messages/InternalPlcWriteRequest.java |   38 +
 .../spi/messages/InternalPlcWriteResponse.java     |   30 +
 .../java/spi/messages/PlcProprietaryRequest.java   |   27 +
 .../java/spi/messages/PlcProprietaryResponse.java  |   27 +
 .../java/spi/messages/PlcProprietarySender.java    |   28 +
 .../java/spi/messages/PlcProtocolMessage.java      |   28 +
 .../plc4x/java/spi/messages/PlcRawMessage.java     |   48 +
 .../apache/plc4x/java/spi/messages/PlcReader.java  |   39 +
 .../java/spi/messages/PlcRequestContainer.java     |   85 +
 .../plc4x/java/spi/messages/PlcSubscriber.java     |   63 +
 .../apache/plc4x/java/spi/messages/PlcWriter.java  |   39 +
 .../java/spi/messages/utils/FieldValueItem.java    |   42 +
 .../java/spi/messages/utils/ResponseItem.java      |   41 +
 .../spi/model/DefaultPlcConsumerRegistration.java  |   85 +
 .../spi/model/DefaultPlcSubscriptionHandle.java    |   62 +
 .../spi/model/InternalPlcConsumerRegistration.java |   32 +
 .../spi/model/InternalPlcSubscriptionHandle.java   |   25 +
 .../plc4x/java/spi/model/SubscriptionPlcField.java |   55 +
 .../plc4x/java/spi/optimizer/BaseOptimizer.java    |  180 +
 .../java/spi/optimizer/SingleFieldOptimizer.java   |   71 +
 .../SingleItemToSingleRequestProtocol.java         |  672 ++++
 .../apache/plc4x/java/spi/request/PlcRequest.java  |   28 +
 .../spi/transaction/RequestTransactionManager.java |  194 +
 .../apache/plc4x/java/spi/transport/Transport.java |   32 +
 .../java/spi/transport/TransportConfiguration.java |   25 +
 .../org/apache/plc4x/java/spi/types/FieldType.java |   47 +
 .../internal/DefaultSendRequestContextTest.java    |  116 +
 .../optimizer/RequestTransactionManagerTest.java   |  176 +
 .../java/spi/parser/ConnectionParserTest.java      |   72 +
 plc4j/src/site/asciidoc/index.adoc                 |  100 -
 plc4j/src/site/asciidoc/users/gettingstarted.adoc  |  178 -
 plc4j/tools/capture-replay/README.adoc             |   38 +
 plc4j/tools/capture-replay/pom.xml                 |   99 +
 .../java/utils/capturereplay/CaptureReplay.java    |  114 +
 .../plc4x/java/utils/capturereplay/CliOptions.java |  119 +
 .../capture-replay/src/main}/resources/logback.xml |    0
 plc4j/tools/connection-pool/pom.xml                |   52 +
 .../plc4x/java/utils/connectionpool/PoolKey.java   |    0
 .../java/utils/connectionpool/PoolKeyFactory.java  |  104 +
 .../connectionpool/PooledPlcConnectionFactory.java |    0
 .../connectionpool/PooledPlcDriverManager.java     |    0
 .../utils/connectionpool/PoolKeyFactoryTest.java   |   93 +
 .../utils/connectionpool/PooledDummyDriver.java    |   52 +
 .../connectionpool/PooledPlcDriverManagerTest.java |  367 ++
 .../services/org.apache.plc4x.java.api.PlcDriver}  |    0
 .../connection-pool/src/test/resources/logback.xml |    0
 plc4j/tools/interop/pom.xml                        |  218 +
 .../interop/src/assembly/assembly.xml              |    0
 .../java/org/apache/plc4x/interop/impl/Client.java |    0
 .../org/apache/plc4x/interop/impl/Handler.java     |  163 +
 .../java/org/apache/plc4x/interop/impl/Server.java |   98 +
 plc4j/tools/opm/pom.xml                            |   89 +
 .../org/apache/plc4x/java/opm/AliasRegistry.java   |    0
 .../org/apache/plc4x/java/opm/OPMException.java    |    0
 .../java/org/apache/plc4x/java/opm/OpmUtils.java   |    0
 .../java/org/apache/plc4x/java/opm/PlcEntity.java  |    0
 .../plc4x/java/opm/PlcEntityInterceptor.java       |  565 +++
 .../apache/plc4x/java/opm/PlcEntityManager.java    |    0
 .../java/org/apache/plc4x/java/opm/PlcField.java   |    0
 .../apache/plc4x/java/opm/SimpleAliasRegistry.java |    0
 .../opm/src/site/asciidoc/opm/using-opm.adoc       |    0
 plc4j/{utils => tools}/opm/src/site/site.xml       |    0
 .../apache/plc4x/java/opm/ConnectedEntityTest.java |  119 +
 .../apache/plc4x/java/opm/OPMExceptionTest.java    |    0
 .../org/apache/plc4x/java/opm/OpmUtilsTest.java    |   66 +
 .../plc4x/java/opm/PlcEntityInterceptorTest.java   |  234 ++
 .../java/opm/PlcEntityManagerComplexTest.java      |  467 +++
 .../plc4x/java/opm/PlcEntityManagerTest.java       |  319 ++
 .../plc4x/java/opm/SimpleAliasRegistryTest.java    |   79 +
 .../opm/src/test/resources/logback.xml             |    0
 plc4j/tools/pom.xml                                |   52 +
 plc4j/{utils => tools}/scraper/README.md           |    0
 plc4j/tools/scraper/pom.xml                        |  106 +
 .../apache/plc4x/java/scraper/ResultHandler.java   |    0
 .../org/apache/plc4x/java/scraper/ScrapeJob.java   |    0
 .../apache/plc4x/java/scraper/ScrapeJobImpl.java   |    0
 .../org/apache/plc4x/java/scraper/Scraper.java     |    0
 .../org/apache/plc4x/java/scraper/ScraperImpl.java |    0
 .../org/apache/plc4x/java/scraper/ScraperTask.java |    0
 .../apache/plc4x/java/scraper/ScraperTaskImpl.java |    0
 .../java/scraper/config/JobConfiguration.java      |    0
 .../config/JobConfigurationClassicImpl.java        |    0
 .../config/JobConfigurationClassicImplBuilder.java |    0
 .../java/scraper/config/JobConfigurationImpl.java  |    0
 .../java/scraper/config/ScraperConfiguration.java  |    0
 .../config/ScraperConfigurationClassicImpl.java    |    0
 .../ScraperConfigurationClassicImplBuilder.java    |    0
 .../JobConfigurationTriggeredImpl.java             |    0
 .../JobConfigurationTriggeredImplBuilder.java      |    0
 .../ScraperConfigurationTriggeredImpl.java         |    0
 .../ScraperConfigurationTriggeredImplBuilder.java  |    0
 .../exception/ScraperConfigurationException.java   |    0
 .../java/scraper/exception/ScraperException.java   |    0
 .../triggeredscraper/TriggeredScrapeJobImpl.java   |    0
 .../triggeredscraper/TriggeredScraperImpl.java     |  369 ++
 .../triggeredscraper/TriggeredScraperMBean.java    |    0
 .../triggeredscraper/TriggeredScraperTask.java     |    0
 .../TriggeredScraperTaskMBean.java                 |    0
 .../triggerhandler/TriggerConfiguration.java       |  735 ++++
 .../triggerhandler/TriggerHandler.java             |    0
 .../triggerhandler/TriggerHandlerImpl.java         |  149 +
 .../triggerhandler/collector/TriggerCollector.java |    0
 .../collector/TriggerCollectorImpl.java            |    0
 .../scraper/util/PercentageAboveThreshold.java     |    0
 .../apache/plc4x/java/s7/ManualS7PlcDriverMT.java  |    0
 .../java/scraper/ScraperConfigurationTest.java     |    0
 .../apache/plc4x/java/scraper/ScraperRunner.java   |    0
 .../apache/plc4x/java/scraper/ScraperTaskTest.java |  113 +
 .../org/apache/plc4x/java/scraper/ScraperTest.java |  175 +
 .../plc4x/java/scraper/TriggeredScraperRunner.java |    0
 .../java/scraper/TriggeredScraperRunnerModbus.java |   62 +
 .../config/ScraperConfigurationBuilderTest.java    |    0
 .../triggeredscraper/TriggeredScraperImplTest.java |  116 +
 .../triggerhandler/TriggerConfigurationTest.java   |  147 +
 .../scraper/src/test/resources/config.json         |    0
 .../scraper/src/test/resources/config.yml          |    0
 .../scraper/src/test/resources/example.yml         |    0
 .../test/resources/example_triggered_scraper.yml   |   74 +
 .../resources/example_triggered_scraper_modbus.yml |    0
 .../src/test/resources/example_with_strings.yml    |    0
 .../scraper/src/test/resources/logback-test.xml    |    0
 .../scraper/src/test/resources/logback.xml         |    0
 .../src/test/resources/mock-scraper-config.yml     |   57 +
 plc4j/transports/pcap-replay/pom.xml               |   91 +
 .../pcapreplay/PcapReplayChannelFactory.java       |   72 +
 .../transport/pcapreplay/PcapReplayTransport.java  |   50 +
 .../PcapReplayTransportConfiguration.java          |   33 +
 .../org.apache.plc4x.java.spi.transport.Transport  |   20 +
 plc4j/transports/pcap-shared/pom.xml               |   48 +
 .../transport/pcap/PcapTransportConfiguration.java |   41 +
 plc4j/transports/pom.xml                           |   46 +
 plc4j/transports/raw-socket/pom.xml                |   87 +
 .../rawsocket/RawSocketChannelFactory.java         |   72 +
 .../transport/rawsocket/RawSocketTransport.java    |   43 +
 .../rawsocket/RawSocketTransportConfiguration.java |   25 +
 .../org.apache.plc4x.java.spi.transport.Transport  |   20 +
 plc4j/transports/serial/pom.xml                    |  101 +
 .../plc4x/java/transport/serial/SerialChannel.java |  635 +++
 .../java/transport/serial/SerialChannelConfig.java |  109 +
 .../transport/serial/SerialChannelFactory.java     |   69 +
 .../transport/serial/SerialChannelHandler.java     |  185 +
 .../transport/serial/SerialChannelOptions.java     |   49 +
 .../transport/serial/SerialPollingSelector.java    |  170 +
 .../java/transport/serial/SerialSelectionKey.java  |   86 +
 .../transport/serial/SerialSelectorProvider.java   |   68 +
 .../java/transport/serial/SerialSocketAddress.java |   50 +
 .../java/transport/serial/SerialSocketChannel.java |  158 +
 .../java/transport/serial/SerialTransport.java     |   42 +
 .../serial/SerialTransportConfiguration.java       |   40 +
 .../org.apache.plc4x.java.spi.transport.Transport  |   20 +
 .../base/connection/SerialChannelFactoryTest.java  |  118 +
 plc4j/transports/tcp/pom.xml                       |   77 +
 .../java/transport/tcp/TcpChannelFactory.java      |   62 +
 .../plc4x/java/transport/tcp/TcpTransport.java     |   81 +
 .../transport/tcp/TcpTransportConfiguration.java   |   49 +
 .../org.apache.plc4x.java.spi.transport.Transport  |   20 +
 plc4j/transports/test/pom.xml                      |   82 +
 .../java/io/netty/bootstrap/EmbeddedBootstrap.java |   45 +
 .../java/io/netty/bootstrap/EventLoopProvider.java |   27 +
 .../channel/embedded/Plc4xEmbeddedChannel.java     |  892 ++++
 .../channel/embedded/Plc4xEmbeddedEventLoop.java   |  147 +
 .../java/transport/test/TestChannelFactory.java    |   71 +
 .../java/transport/test/TestSocketAddress.java     |   29 +
 .../plc4x/java/transport/test/TestTransport.java   |   42 +
 .../transport/test/TestTransportConfiguration.java |   25 +
 ...spockframework.report.IReportCreator.properties |    0
 .../org.apache.plc4x.java.spi.transport.Transport  |   20 +
 plc4j/transports/udp/pom.xml                       |   86 +
 .../java/transport/udp/UdpChannelFactory.java      |   65 +
 .../plc4x/java/transport/udp/UdpTransport.java     |   81 +
 .../transport/udp/UdpTransportConfiguration.java   |   31 +
 .../udp/protocol/DatagramUnpackingHandler.java     |   39 +
 .../org.apache.plc4x.java.spi.transport.Transport  |   20 +
 plc4j/utils/connection-pool/pom.xml                |   51 -
 .../java/utils/connectionpool/PoolKeyFactory.java  |  104 -
 .../utils/connectionpool/PoolKeyFactoryTest.java   |   93 -
 .../utils/connectionpool/PooledDummyDriver.java    |   52 -
 .../connectionpool/PooledPlcDriverManagerTest.java |  367 --
 plc4j/utils/driver-base-java/pom.xml               |   42 -
 .../github/jinahya/bit/io/MyDefaultBitInput.java   |   35 -
 .../apache/plc4x/java/utils/EvaluationHelper.java  |   58 -
 .../java/org/apache/plc4x/java/utils/Message.java  |   26 -
 .../org/apache/plc4x/java/utils/MessageIO.java     |   23 -
 .../org/apache/plc4x/java/utils/MessageInput.java  |   25 -
 .../org/apache/plc4x/java/utils/MessageOutput.java |   25 -
 .../apache/plc4x/java/utils/ParseException.java    |   32 -
 .../org/apache/plc4x/java/utils/ReadBuffer.java    |  254 --
 .../org/apache/plc4x/java/utils/WriteBuffer.java   |  208 -
 plc4j/utils/interop/pom.xml                        |  216 -
 .../org/apache/plc4x/interop/impl/Handler.java     |  160 -
 .../java/org/apache/plc4x/interop/impl/Server.java |   91 -
 plc4j/utils/opm/pom.xml                            |  103 -
 .../plc4x/java/opm/PlcEntityInterceptor.java       |  569 ---
 .../apache/plc4x/java/opm/ConnectedEntityTest.java |  119 -
 .../org/apache/plc4x/java/opm/OpmUtilsTest.java    |   66 -
 .../plc4x/java/opm/PlcEntityInterceptorTest.java   |  214 -
 .../java/opm/PlcEntityManagerComplexTest.java      |  460 ---
 .../plc4x/java/opm/PlcEntityManagerTest.java       |  318 --
 .../plc4x/java/opm/SimpleAliasRegistryTest.java    |   79 -
 plc4j/utils/pcap-replay/pom.xml                    |   96 +
 .../utils/pcapreplay/netty/PcapReplayChannel.java  |  283 ++
 .../netty/address/PcapReplayAddress.java           |   39 +
 .../netty/config/PcapReplayChannelConfig.java      |   81 +
 .../netty/config/PcapReplayChannelOption.java      |   40 +
 plc4j/utils/pcap-shared/pom.xml                    |   81 +
 .../pcap/netty/address/PcapSocketAddress.java      |   25 +
 .../utils/pcap/netty/config/PcapChannelConfig.java |  152 +
 .../utils/pcap/netty/config/PcapChannelOption.java |   51 +
 .../utils/pcap/netty/exception/PcapException.java  |   34 +
 .../utils/pcap/netty/handlers/PacketHandler.java   |   27 +
 .../pcap/netty/handlers/TcpIpPacketHandler.java    |   41 +
 .../pcap/netty/handlers/UdpIpPacketHandler.java    |   41 +
 plc4j/utils/pcap-sockets/pom.xml                   |   90 -
 .../utils/pcapsockets/PcapSocketException.java     |   34 -
 .../utils/pcapsockets/netty/PacketHandler.java     |   27 -
 .../utils/pcapsockets/netty/PcapSocketAddress.java |   60 -
 .../utils/pcapsockets/netty/PcapSocketChannel.java |  301 --
 .../pcapsockets/netty/PcapSocketChannelConfig.java |   92 -
 .../pcapsockets/netty/PcapSocketChannelOption.java |   39 -
 .../pcapsockets/netty/TcpIpPacketHandler.java      |   41 -
 .../pcapsockets/netty/UdpIpPacketHandler.java      |   41 -
 plc4j/utils/pom.xml                                |   25 +-
 plc4j/utils/protocol-test-utils/pom.xml            |   72 -
 .../protocol/test/ProtocolTestsuiteRunner.java     |  175 -
 .../exceptions/ProtocolTestsuiteException.java     |   32 -
 .../protocol/test/model/ProtocolTestsuite.java     |   48 -
 .../apache/plc4x/protocol/test/model/Testcase.java |   61 -
 .../src/main/resources/schemas/testsuite.xsd       |   55 -
 plc4j/utils/raw-sockets/pom.xml                    |   10 +-
 .../java/utils/rawsockets/RawSocketException.java  |   34 -
 .../utils/rawsockets/attic/RawEthernetSocket.java  |   20 +-
 .../java/utils/rawsockets/attic/RawIpSocket.java   |   52 +-
 .../java/utils/rawsockets/netty/PacketHandler.java |   27 -
 .../utils/rawsockets/netty/RawSocketAddress.java   |   45 -
 .../utils/rawsockets/netty/RawSocketChannel.java   |   34 +-
 .../rawsockets/netty/RawSocketChannelConfig.java   |   66 -
 .../rawsockets/netty/RawSocketChannelOption.java   |   32 -
 .../utils/rawsockets/netty/RawSocketIpAddress.java |   46 -
 .../utils/rawsockets/netty/TcpIpPacketHandler.java |   41 -
 .../utils/rawsockets/netty/UdpIpPacketHandler.java |   41 -
 .../rawsockets/netty/address/RawSocketAddress.java |   37 +
 .../netty/config/RawSocketChannelConfig.java       |   30 +
 .../utils/rawsockets/attic/RawIpSocketTest.java    |   14 +-
 .../rawsockets/netty/RawSocketChannelTest.java     |   14 +-
 plc4j/utils/scraper/pom.xml                        |  145 -
 .../triggeredscraper/TriggeredScraperImpl.java     |  370 --
 .../triggerhandler/TriggerConfiguration.java       |  722 ----
 .../triggerhandler/TriggerHandlerImpl.java         |  113 -
 .../apache/plc4x/java/scraper/ScraperTaskTest.java |  113 -
 .../org/apache/plc4x/java/scraper/ScraperTest.java |  175 -
 .../java/scraper/TriggeredScraperRunnerModbus.java |   69 -
 .../triggeredscraper/TriggeredScraperImplTest.java |  118 -
 .../triggerhandler/TriggerConfigurationTest.java   |  151 -
 .../test/resources/example_triggered_scraper.yml   |   74 -
 .../src/test/resources/mock-scraper-config.yml     |   57 -
 plc4j/utils/test-utils/pom.xml                     |   76 +-
 .../apache/plc4x/test/RequirePcapCondition.java    |    4 +-
 .../apache/plc4x/test/RequirePcapNgCondition.java  |    4 +-
 .../plc4x/test/driver/DriverTestsuiteRunner.java   |  409 ++
 .../java/org/apache/plc4x/test/driver/Lalala.java  |   44 +
 .../exceptions/DriverTestsuiteException.java       |   32 +
 .../plc4x/test/driver/model/DriverTestsuite.java   |   69 +
 .../apache/plc4x/test/driver/model/StepType.java   |   42 +
 .../apache/plc4x/test/driver/model/TestStep.java   |   47 +
 .../apache/plc4x/test/driver/model/Testcase.java   |   49 +
 .../plc4x/test/driver/model/api/TestField.java     |   45 +
 .../test/driver/model/api/TestFieldRequest.java    |   35 +
 .../test/driver/model/api/TestReadRequest.java     |   33 +
 .../plc4x/test/driver/model/api/TestRequest.java   |   25 +
 .../test/driver/model/api/TestWriteRequest.java    |   33 +
 .../ParserSerializerTestsuiteRunner.java           |  237 ++
 .../ParserSerializerTestsuiteException.java        |   32 +
 .../model/ParserSerializerTestsuite.java           |   48 +
 .../test/parserserializer/model/Testcase.java      |   68 +
 .../main/resources/schemas/driver-testsuite.xsd    |  132 +
 .../schemas/parser-serializer-testsuite.xsd        |   63 +
 pom.xml                                            |  480 +--
 protocols/ab-eth/pom.xml                           |    4 +-
 protocols/amsads/pom.xml                           |    4 +-
 .../main/resources/protocols/amsads/amsads.mspec   |   24 +-
 protocols/bacnetip/pom.xml                         |    4 +-
 .../resources/protocols/bacnetip/bacnetip.mspec    |   14 +-
 protocols/df1/pom.xml                              |    4 +-
 protocols/eip/pom.xml                              |   43 +
 .../org/apache/plc4x/protocol/eip/EipProtocol.java |   46 +
 ...e.plc4x.plugins.codegenerator.protocol.Protocol |   19 +
 .../eip/src/main/resources/protocols/eip/eip.mspec |  133 +
 protocols/firmata/pom.xml                          |   43 +
 .../plc4x/protocol/firmata/FirmataProtocol.java    |   46 +
 ...e.plc4x.plugins.codegenerator.protocol.Protocol |   19 +
 .../main/resources/protocols/firmata/firmata.mspec |  142 +
 protocols/knxnetip/pom.xml                         |    4 +-
 .../apache/plc4x/protocol/knxnetip/Ets5Types.java  |   46 -
 ...e.plc4x.plugins.codegenerator.protocol.Protocol |    1 -
 .../main/resources/protocols/knxnetip/ets5.mspec   |  172 -
 .../resources/protocols/knxnetip/knxnetip.mspec    |  158 +-
 protocols/modbus/pom.xml                           |   43 +
 .../plc4x/protocol/modbus/ModbusProtocol.java      |   46 +
 ...e.plc4x.plugins.codegenerator.protocol.Protocol |   19 +
 .../main/resources/protocols/modbus/modbus.mspec   |  288 ++
 protocols/pom.xml                                  |   28 +-
 protocols/proxy/pom.xml                            |    2 +-
 protocols/s7/pom.xml                               |    4 +-
 ...e.plc4x.plugins.codegenerator.protocol.Protocol |    2 +-
 .../s7/src/main/resources/protocols/s7/s7.mspec    |  229 +-
 sandbox/code-gen/pom.xml                           |   40 +-
 .../plc4x/codegen/ast/AssignementExpression.java   |    6 +-
 .../apache/plc4x/codegen/ast/BinaryExpression.java |    6 +-
 .../java/org/apache/plc4x/codegen/ast/Block.java   |    6 +-
 .../apache/plc4x/codegen/ast/CallExpression.java   |    6 +-
 .../apache/plc4x/codegen/ast/ClassDeclaration.java |    6 +-
 .../plc4x/codegen/ast/ConstantExpression.java      |    6 +-
 .../plc4x/codegen/ast/ConstructorDeclaration.java  |    6 +-
 .../plc4x/codegen/ast/DeclarationStatement.java    |    6 +-
 .../apache/plc4x/codegen/ast/FieldDeclaration.java |    6 +-
 .../apache/plc4x/codegen/ast/FieldReference.java   |    6 +-
 .../org/apache/plc4x/codegen/ast/FileNode.java     |    6 +-
 .../org/apache/plc4x/codegen/ast/IfStatement.java  |    6 +-
 .../apache/plc4x/codegen/ast/JavaGenerator.java    |   69 +-
 .../org/apache/plc4x/codegen/ast/LineComment.java  |    6 +-
 .../java/org/apache/plc4x/codegen/ast/Method.java  |    6 +-
 .../apache/plc4x/codegen/ast/MethodDefinition.java |    6 +-
 .../apache/plc4x/codegen/ast/NewExpression.java    |    6 +-
 .../plc4x/codegen/ast/ParameterExpression.java     |    6 +-
 .../org/apache/plc4x/codegen/ast/Primitive.java    |    6 +-
 .../apache/plc4x/codegen/ast/PythonGenerator.java  |   69 +-
 .../apache/plc4x/codegen/ast/ReturnStatement.java  |    6 +-
 .../apache/plc4x/codegen/ast/TypeDefinition.java   |    6 +-
 .../plc4x/codegen/python/AbstractNodeVisitor.java  |   96 +-
 .../org/apache/plc4x/codegen/python/AddNode.java   |    3 +-
 .../org/apache/plc4x/codegen/python/AliasNode.java |    3 +-
 .../plc4x/codegen/python/AnnAssignerNode.java      |    3 +-
 .../org/apache/plc4x/codegen/python/ArgNode.java   |    3 +-
 .../apache/plc4x/codegen/python/ArgumentsNode.java |    3 +-
 .../apache/plc4x/codegen/python/AssignNode.java    |    3 +-
 .../apache/plc4x/codegen/python/AttributeNode.java |    3 +-
 .../apache/plc4x/codegen/python/AugAssignNode.java |    3 +-
 .../org/apache/plc4x/codegen/python/BinOpNode.java |    3 +-
 .../org/apache/plc4x/codegen/python/CallNode.java  |    3 +-
 .../apache/plc4x/codegen/python/ClassDefNode.java  |    3 +-
 .../apache/plc4x/codegen/python/CompareNode.java   |    3 +-
 .../org/apache/plc4x/codegen/python/EqNode.java    |    3 +-
 .../org/apache/plc4x/codegen/python/ExprNode.java  |    3 +-
 .../plc4x/codegen/python/FunctionDefNode.java      |    3 +-
 .../org/apache/plc4x/codegen/python/IfNode.java    |    3 +-
 .../plc4x/codegen/python/ImportFromNode.java       |    3 +-
 .../apache/plc4x/codegen/python/KeywordNode.java   |    3 +-
 .../org/apache/plc4x/codegen/python/ListNode.java  |    3 +-
 .../org/apache/plc4x/codegen/python/LoadNode.java  |    3 +-
 .../apache/plc4x/codegen/python/ModuleNode.java    |    3 +-
 .../org/apache/plc4x/codegen/python/MultNode.java  |    3 +-
 .../plc4x/codegen/python/NameConstantNode.java     |    3 +-
 .../org/apache/plc4x/codegen/python/NameNode.java  |    3 +-
 .../org/apache/plc4x/codegen/python/NotEqNode.java |    3 +-
 .../org/apache/plc4x/codegen/python/NumNode.java   |    3 +-
 .../org/apache/plc4x/codegen/python/PassNode.java  |    3 +-
 .../apache/plc4x/codegen/python/ReturnNode.java    |    3 +-
 .../org/apache/plc4x/codegen/python/StoreNode.java |    3 +-
 .../org/apache/plc4x/codegen/python/StrNode.java   |    3 +-
 .../org/apache/plc4x/codegen/python/TupleNode.java |    3 +-
 .../org/apache/plc4x/codegen/python/WhileNode.java |    3 +-
 .../org/apache/plc4x/codegen/DFDLUtilTest.java     |   13 +-
 .../org/apache/plc4x/codegen/ModuleNodeTest.java   |   35 +-
 .../plc4x/codegen/ast/JavaGeneratorTest.java       |   10 +-
 .../plc4x/codegen/ast/PythonGeneratorTest.java     |   10 +-
 .../apache/plc4x/codegen/util/EnumFactoryTest.java |    3 +-
 .../apache/plc4x/codegen/util/PojoFactoryTest.java |    3 +-
 sandbox/hello-influx-data-collection/README.adoc   |   36 +
 .../example.properties                             |   32 +
 sandbox/hello-influx-data-collection/pom.xml       |  117 +
 .../java/examples/helloinflux/HelloInflux.java     |  145 +
 .../src/main/resources/logback.xml                 |   34 +
 sandbox/plc-simulator/pom.xml                      |   23 +-
 .../apache/plc4x/java/s7/utils/StaticHelper.java   |  155 +
 .../server/s7/protocol/S7Step7Protocol.java        |   20 +-
 .../server/s7/protocol/S7Step7ServerProtocol.java  |    9 +-
 .../watertank/WaterTankSimulationModule.java       |    1 +
 sandbox/plc4c/.clang-format                        |  186 +
 sandbox/plc4c/.gitignore                           |  145 +
 sandbox/plc4c/CMakeLists.txt                       |   78 +
 sandbox/plc4c/CODE_CONVENTIONS.md                  |   43 +
 sandbox/plc4c/README.md                            |   41 +
 sandbox/plc4c/api/CMakeLists.txt                   |   36 +
 sandbox/plc4c/api/include/plc4c/connection.h       |  313 ++
 sandbox/plc4c/api/include/plc4c/data.h             |  154 +
 sandbox/plc4c/api/include/plc4c/plc4c.h            |   39 +
 sandbox/plc4c/api/include/plc4c/read.h             |  114 +
 sandbox/plc4c/api/include/plc4c/subscribe.h        |  259 ++
 sandbox/plc4c/api/include/plc4c/system.h           |  278 ++
 sandbox/plc4c/api/include/plc4c/types.h            |  197 +
 sandbox/plc4c/api/include/plc4c/utils/list.h       |   81 +
 sandbox/plc4c/api/include/plc4c/utils/queue.h      |   60 +
 sandbox/plc4c/api/include/plc4c/write.h            |  115 +
 sandbox/plc4c/design-guidelines.adoc               |   61 +
 sandbox/plc4c/drivers/CMakeLists.txt               |   22 +
 sandbox/plc4c/drivers/modbus/CMakeLists.txt        |   30 +
 .../drivers/modbus/include/plc4c/driver_modbus.h   |   32 +
 sandbox/plc4c/drivers/modbus/src/driver_modbus.c   |   41 +
 sandbox/plc4c/drivers/s7/CMakeLists.txt            |   30 +
 sandbox/plc4c/drivers/s7/include/plc4c/driver_s7.h |   32 +
 sandbox/plc4c/drivers/s7/src/driver_s7.c           |   41 +
 sandbox/plc4c/drivers/simulated/CMakeLists.txt     |   27 +
 .../simulated/include/plc4c/driver_simulated.h     |   32 +
 .../plc4c/drivers/simulated/src/driver_simulated.c |  424 ++
 sandbox/plc4c/examples/CMakeLists.txt              |   21 +
 .../examples/hello-subsciptions/CMakeLists.txt     |   27 +
 .../hello-subsciptions/src/hello_subscriptions.c   |  285 ++
 sandbox/plc4c/examples/hello-world/CMakeLists.txt  |   27 +
 .../plc4c/examples/hello-world/src/hello_world.c   |  337 ++
 sandbox/plc4c/integrations/CMakeLists.txt          |   20 +
 .../integrations/apache-mynewt/CMakeLists.txt      |   23 +
 sandbox/plc4c/pom.xml                              |  331 ++
 sandbox/plc4c/spi/CMakeLists.txt                   |   34 +
 .../plc4c/spi/include/plc4c/spi/system_private.h   |   28 +
 .../plc4c/spi/include/plc4c/spi/types_private.h    |  301 ++
 sandbox/plc4c/spi/src/connection.c                 |  277 ++
 sandbox/plc4c/spi/src/data.c                       |  183 +
 sandbox/plc4c/spi/src/read.c                       |  108 +
 sandbox/plc4c/spi/src/subscribe.c                  |  344 ++
 sandbox/plc4c/spi/src/system.c                     |  488 +++
 sandbox/plc4c/spi/src/types.c                      |  147 +
 sandbox/plc4c/spi/src/utils/list.c                 |  189 +
 sandbox/plc4c/spi/src/utils/queue.c                |   73 +
 sandbox/plc4c/spi/src/write.c                      |  116 +
 sandbox/plc4c/spi/test/system_test.c               |   97 +
 sandbox/plc4c/transports/CMakeLists.txt            |   22 +
 sandbox/plc4c/transports/dummy/CMakeLists.txt      |   27 +
 .../dummy/include/plc4c/transport_dummy.h          |   32 +
 .../plc4c/transports/dummy/src/transport_dummy.c   |   29 +
 sandbox/plc4c/transports/serial/CMakeLists.txt     |   27 +
 .../serial/include/plc4c/transport_serial.h        |   32 +
 .../plc4c/transports/serial/src/transport_serial.c |   29 +
 sandbox/plc4c/transports/tcp/CMakeLists.txt        |   27 +
 .../transports/tcp/include/plc4c/transport_tcp.h   |   32 +
 sandbox/plc4c/transports/tcp/src/transport_tcp.c   |   29 +
 sandbox/plc4cpp/examples/CMakeLists.txt            |    2 +-
 sandbox/plc4cpp/pom.xml                            |   39 +-
 sandbox/plc4net/api/pom.xml                        |    3 +-
 sandbox/plc4net/plc4net.driver/pom.xml             |    3 +-
 sandbox/plc4net/pom.xml                            |    2 +-
 sandbox/plc4py/README.md                           |   23 +-
 sandbox/plc4py/pom.xml                             |    9 +-
 .../python/org/apache/plc4x/PlcDriverManager.py    |   74 +-
 sandbox/pom.xml                                    |   37 +-
 sandbox/test-java-amsads-driver/pom.xml            |   54 +-
 .../apache/plc4x/java/amsads/AMSADSPlcDriver.java  |   85 +-
 .../amsads/configuration/AdsConfiguration.java     |  105 +
 .../connection/AdsAbstractPlcConnection.java       |   21 +-
 .../amsads/connection/AdsConnectionFactory.java    |    1 +
 .../amsads/connection/AdsSerialPlcConnection.java  |   45 +-
 .../amsads/connection/AdsTcpPlcConnection.java     |   78 +-
 .../apache/plc4x/java/amsads/field/AdsField.java   |   27 +
 .../plc4x/java/amsads/field/AdsFieldHandler.java   | 1047 +++++
 .../plc4x/java/amsads/field/DirectAdsField.java    |  142 +
 .../plc4x/java/amsads/field/SymbolicAdsField.java  |  106 +
 .../plc4x/java/amsads/model/AdsDataType.java       |  577 ---
 .../apache/plc4x/java/amsads/model/AdsField.java   |   26 -
 .../java/amsads/model/AdsPlcFieldHandler.java      | 1015 -----
 .../java/amsads/model/AdsSubscriptionHandle.java   |    5 +-
 .../plc4x/java/amsads/model/DirectAdsField.java    |  141 -
 .../plc4x/java/amsads/model/SymbolicAdsField.java  |  105 -
 .../plc4x/java/amsads/model/package-info.java      |   22 -
 .../java/amsads/protocol/Ads2PayloadProtocol.java  |   11 +-
 .../java/amsads/protocol/AdsProtocolLogic.java     |   41 +
 .../amsads/protocol/Payload2SerialProtocol.java    |   23 +-
 .../java/amsads/protocol/Payload2TcpProtocol.java  |   15 +-
 .../java/amsads/protocol/Plc4x2AdsProtocol.java    |   36 +-
 .../amsads/protocol/util/LittleEndianDecoder.java  |  204 +-
 .../amsads/protocol/util/LittleEndianEncoder.java  |    2 +-
 .../protocol/util/SingleMessageRateLimiter.java    |    2 +-
 .../plc4x/java/amsads/types/AdsDataType.java       |  577 +++
 ...cDriver => org.apache.plc4x.java.api.PlcDriver} |    0
 .../amsads/AmsAdsSerializerParserTest.java         |   29 +
 .../protocol/amsads/BenchmarkGeneratedDf1.java     |    4 -
 .../org/apache/plc4x/protocol/amsads/Df1Test.java  |   30 -
 .../apache/plc4x/protocol/amsads/EndToEndTest.java |    5 +-
 .../org/apache/plc4x/protocol/amsads/IOTest.java   |    6 -
 .../src/test/resources/testsuite/Df1Testsuite.xml  |    2 +-
 sandbox/test-java-bacnetip-driver/pom.xml          |   42 +-
 .../plc4x/java/bacnetip/PassiveBacNetIpDriver.java |  105 +-
 .../PassiveBacNetIpConfiguration.java              |  111 +
 .../bacnetip/connection/BacNetIpFieldHandler.java  |   36 -
 .../connection/PassiveBacNetIpPlcConnection.java   |  118 -
 .../apache/plc4x/java/bacnetip/ede/EdeParser.java  |  207 +
 .../plc4x/java/bacnetip/ede/layouts/EdeLayout.java |   57 +
 .../bacnetip/ede/layouts/EdeLayoutFactory.java     |   37 +
 .../bacnetip/ede/layouts/EdeVersion2Layout.java    |  105 +
 .../bacnetip/ede/layouts/EdeVersion3Layout.java    |   23 +
 .../bacnetip/ede/layouts/EdeVersion4Layout.java    |   28 +
 .../plc4x/java/bacnetip/ede/model/Datapoint.java   |  142 +
 .../plc4x/java/bacnetip/ede/model/EdeModel.java    |   37 +
 .../plc4x/java/bacnetip/field/BacNetIpField.java   |  121 +
 .../java/bacnetip/field/BacNetIpFieldHandler.java  |   35 +
 .../plc4x/java/bacnetip/model/BacNetIpField.java   |   47 -
 .../java/bacnetip/protocol/BacNetIpProtocol.java   |   62 -
 .../java/bacnetip/protocol/HelloWorldProtocol.java |   72 -
 .../protocol/PassiveBacNetIpProtocolLogic.java     |  240 ++
 ...cDriver => org.apache.plc4x.java.api.PlcDriver} |    0
 .../plc4x/java/bacnetip/ManualBacNetDecoder.java   |    4 +-
 .../java/bacnetip/PassiveBacNetIpDriverManual.java |   28 +-
 .../src/test}/resources/logback.xml                |    0
 sandbox/test-java-df1-driver/pom.xml               |   55 +-
 .../org/apache/plc4x/java/df1/DF1PlcDriver.java    |   60 +-
 .../java/org/apache/plc4x/java/df1/Df1Field.java   |   62 -
 .../java/df1/configuration/Df1Configuration.java   |   38 +
 .../java/df1/connection/BaseDf1Connection.java     |   34 -
 .../java/df1/connection/SerialDf1Connection.java   |  148 -
 .../org/apache/plc4x/java/df1/field/Df1Field.java  |   61 +
 .../plc4x/java/df1/field/Df1FieldHandler.java      |   39 +
 .../org/apache/plc4x/java/df1/fields/DataType.java |   44 -
 .../plc4x/java/df1/protocol/Df1Protocol.java       |   14 +-
 .../plc4x/java/df1/protocol/Df1ProtocolLogic.java  |   43 +
 .../plc4x/java/df1/protocol/Plc4XDf1Protocol.java  |   28 +-
 .../org/apache/plc4x/java/df1/types/DataType.java  |   44 +
 .../org/apache/plc4x/java/df1/util/DF1Utils.java   |   14 +-
 .../plc4x/java/df1/util/Df1FieldHandler.java       |   39 -
 ...cDriver => org.apache.plc4x.java.api.PlcDriver} |    0
 .../apache/plc4x/java/df1/DF1PlcDriverTest.java    |   44 -
 .../plc4x/protocol/df1/BenchmarkGeneratedDf1.java  |    5 -
 .../protocol/df1/Df1ParserSerializerTest.java      |   30 +
 .../org/apache/plc4x/protocol/df1/Df1Test.java     |   30 -
 .../apache/plc4x/protocol/df1/EndToEndTest.java    |    3 +-
 .../java/org/apache/plc4x/protocol/df1/IOTest.java |    2 +-
 .../src/test/resources/testsuite/Df1Testsuite.xml  |   10 +-
 sandbox/test-java-knxnetip-driver-passive/pom.xml  |  117 -
 .../passive/knxnetip/PassiveKnxNetIpDriver.java    |   76 -
 .../knxnetip/connection/KnxNetIpFieldHandler.java  |   36 -
 .../connection/PassiveKnxNetIpPlcConnection.java   |  116 -
 .../java/passive/knxnetip/model/KnxNetIpField.java |   47 -
 .../knxnetip/protocol/HelloWorldProtocol.java      |   72 -
 .../knxnetip/protocol/KnxNetIpProtocol.java        |   59 -
 .../services/org.apache.plc4x.java.spi.PlcDriver   |   19 -
 .../org/apache/plc4x/java/knxnetip/IOTest.java     |   79 -
 .../apache/plc4x/java/knxnetip/KNXNetIpTest.java   |   30 -
 .../apache/plc4x/java/knxnetip/ManualKnxNetIp.java |   27 -
 .../test/resources/testsuite/KNXNetIPTestsuite.xml |  544 ---
 sandbox/test-java-knxnetip-driver/pom.xml          |  130 -
 .../apache/plc4x/java/knxnetip/KnxNetIpDriver.java |   79 -
 .../knxnetip/connection/KnxNetIpConnection.java    |  137 -
 .../knxnetip/connection/KnxNetIpFieldHandler.java  |   36 -
 .../java/knxnetip/events/KnxGatewayFoundEvent.java |   22 -
 .../plc4x/java/knxnetip/model/KnxNetIpField.java   |   44 -
 .../knxnetip/protocol/KnxNetIpPlc4xProtocol.java   |   61 -
 .../knxnetip/protocol/KnxNetIpProtocolLogic.java   |  173 -
 .../knxnetip/protocol/KnxNetIpProtocolPackets.java |   59 -
 .../org/apache/plc4x/java/knxnetip/IOTest.java     |  102 -
 .../apache/plc4x/java/knxnetip/KNXNetIpTest.java   |   30 -
 .../apache/plc4x/java/knxnetip/ManualKnxNetIp.java |   34 -
 .../java/knxnetip/ManualKnxNetIpWithEts5.java      |  161 -
 .../test/resources/testsuite/KNXNetIPTestsuite.xml |  544 ---
 sandbox/test-java-knxnetip-shared/pom.xml          |   90 -
 .../plc4x/java/knxnetip/ets5/Ets5Parser.java       |  180 -
 .../plc4x/java/knxnetip/ets5/model/Ets5Model.java  |   81 -
 .../java/knxnetip/ets5/model/GroupAddress.java     |   97 -
 sandbox/test-java-s7-driver-passive/pom.xml        |  100 -
 .../plc4x/javapassive/s7/PassiveS7PlcDriver.java   |   90 -
 .../s7/connection/PassiveS7PlcConnection.java      |   99 -
 .../s7/protocol/HelloWorldProtocol.java            |   48 -
 .../javapassive/s7/protocol/PassiveS7Protocol.java |   62 -
 .../services/org.apache.plc4x.java.spi.PlcDriver   |   19 -
 .../src/test/java/BenchmarkGeneratedPassiveS7.java |   45 -
 sandbox/test-java-s7-driver/pom.xml                |   90 -
 .../src/test/java/BenchmarkGeneratedS7.java        |   71 -
 sandbox/test-streampipes-plc4x-adapters/pom.xml    |   37 +-
 .../adapters/source/bacnetip/BacNetIpAdapter.java  |   29 +-
 .../adapters/source/knxnetip/KnxNetIpAdapter.java  |   20 +-
 sandbox/test-streampipes-plc4x-processors/pom.xml  |   23 +-
 .../enrich/knxnetip/ets5/Ets5DataEnrichment.java   |   38 +-
 .../ets5/Ets5DataEnrichmentController.java         |    3 +-
 sandbox/test-streampipes-plc4x-shared/pom.xml      |    2 +-
 src/main/script/preSiteGeneration.groovy           |   71 +
 src/main/script/prerequisiteCheck.groovy           |  358 +-
 src/site/asciidoc/apache/index.adoc                |   20 +
 src/site/asciidoc/developers/building.adoc         |   63 +-
 .../developers/code-gen/protocol/mspec.adoc        |    2 +
 src/site/asciidoc/developers/index.adoc            |   59 +
 .../developers/{ => infrastructure}/ci.adoc        |    0
 .../asciidoc/developers/infrastructure/index.adoc  |   22 +
 .../asciidoc/developers/infrastructure/issues.adoc |   24 +
 .../asciidoc/developers/infrastructure/sonar.adoc  |   24 +
 .../asciidoc/developers/infrastructure/vm.adoc     |   96 +
 .../asciidoc/developers/infrastructure/vpn.adoc    |  189 +
 .../developers/infrastructure/website.adoc         |  177 +
 .../asciidoc/developers/infrastructure/wiki.adoc   |   24 +
 src/site/asciidoc/developers/issues.adoc           |   20 -
 src/site/asciidoc/developers/maturity.adoc         |   10 +-
 src/site/asciidoc/developers/preparing.adoc        |  394 --
 src/site/asciidoc/developers/preparing/index.adoc  |   59 +
 src/site/asciidoc/developers/preparing/linux.adoc  |  155 +
 src/site/asciidoc/developers/preparing/macos.adoc  |  107 +
 .../asciidoc/developers/preparing/windows.adoc     |  162 +
 .../asciidoc/developers/release-build-tools.adoc   |  461 ---
 src/site/asciidoc/developers/release.adoc          |  519 ---
 .../asciidoc/developers/release/build-tools.adoc   |  457 +++
 src/site/asciidoc/developers/release/index.adoc    |   20 +
 src/site/asciidoc/developers/release/release.adoc  |  576 +++
 .../asciidoc/developers/release/validation.adoc    |  105 +
 src/site/asciidoc/developers/sonar.adoc            |   20 -
 src/site/asciidoc/developers/team.adoc             |    4 +-
 src/site/asciidoc/developers/tutorials/index.adoc  |   20 +
 .../tutorials/testing-serializers-and-parsers.adoc |  146 +
 .../developers/tutorials/writing-driver.adoc       |   57 +
 src/site/asciidoc/developers/vm.adoc               |   95 -
 src/site/asciidoc/developers/vpn.adoc              |  189 -
 src/site/asciidoc/developers/website.adoc          |  198 -
 src/site/asciidoc/developers/wiki.adoc             |   20 -
 .../developers/writing-driver/writing-driver.adoc  |   57 -
 src/site/asciidoc/index.adoc                       |  318 +-
 src/site/asciidoc/plc4j/index.adoc                 |  100 +
 .../asciidoc/users/blogs-videos-and-slides.adoc    |   42 +
 src/site/asciidoc/users/download.adoc              |   36 +-
 src/site/asciidoc/users/gettingstarted.adoc        |    2 +-
 src/site/asciidoc/users/index.adoc                 |  355 ++
 .../users/integrations/apache-calcite.adoc         |   24 +
 .../asciidoc/users/integrations/apache-camel.adoc  |   20 +
 .../asciidoc/users/integrations/apache-edgent.adoc |   20 +
 .../asciidoc/users/integrations/apache-iotdb.adoc  |   20 +
 .../asciidoc/users/integrations/apache-kafka.adoc  |   24 +
 .../asciidoc/users/integrations/apache-nifi.adoc   |   20 +
 .../users/integrations/apache-streampipes.adoc     |   20 +
 .../asciidoc/users/integrations/eclipse-ditto.adoc |   25 +
 .../users/integrations/elastic-logstash.adoc       |   20 +
 src/site/asciidoc/users/integrations/index.adoc    |   20 +
 .../asciidoc/users/plc4j/general-concepts.adoc     |  106 +
 src/site/asciidoc/users/plc4j/gettingstarted.adoc  |  294 ++
 src/site/asciidoc/users/plc4j/virtual-modbus.adoc  |  364 ++
 src/site/asciidoc/users/protocols/ab-eth.adoc      |   20 +
 src/site/asciidoc/users/protocols/ads.adoc         |   56 +
 src/site/asciidoc/users/protocols/bacnetip.adoc    |   64 +
 src/site/asciidoc/users/protocols/deltav.adoc      |   20 +
 src/site/asciidoc/users/protocols/df1.adoc         |   20 +
 src/site/asciidoc/users/protocols/ethernet-ip.adoc |   98 +
 src/site/asciidoc/users/protocols/firmata.adoc     |  120 +
 src/site/asciidoc/users/protocols/index.adoc       |   20 +
 src/site/asciidoc/users/protocols/knxnetip.adoc    |   20 +
 src/site/asciidoc/users/protocols/modbus.adoc      |  111 +
 src/site/asciidoc/users/protocols/opc-ua.adoc      |  169 +
 src/site/asciidoc/users/protocols/s7.adoc          |  278 ++
 src/site/asciidoc/users/protocols/simulated.adoc   |   20 +
 src/site/asciidoc/users/testing.adoc               |  165 -
 src/site/asciidoc/users/tools/capture-replay.adoc  |   59 +
 src/site/asciidoc/users/tools/connection-pool.adoc |   20 +
 src/site/asciidoc/users/tools/index.adoc           |   20 +
 src/site/asciidoc/users/{ => tools}/opm.adoc       |    0
 src/site/asciidoc/users/tools/scraper.adoc         |   20 +
 src/site/asciidoc/users/tools/testing.adoc         |  165 +
 src/site/asciidoc/users/transports/index.adoc      |   26 +
 .../asciidoc/users/transports/pcap-replay.adoc     |   67 +
 src/site/asciidoc/users/transports/raw-socket.adoc |   51 +
 src/site/asciidoc/users/transports/serial.adoc     |   54 +
 src/site/asciidoc/users/transports/tcp.adoc        |   51 +
 src/site/asciidoc/users/transports/udp.adoc        |   51 +
 src/site/asciidoc/users/users.adoc                 |   43 +
 src/site/resources-filtered/plc4x-doap.rdf         |   24 +-
 src/site/resources/.htaccess                       |   20 +
 src/site/resources/images/apache_logo_small.png    |  Bin 0 -> 7763 bytes
 .../resources/images/apache_plc4x_logo_small.png   |  Bin 0 -> 10460 bytes
 src/site/resources/images/background-index-3.png   |  Bin 0 -> 1258500 bytes
 .../images/integrations/apache_calcite_logo.svg    |  346 ++
 .../{ => integrations}/apache_camel_logo.png       |  Bin
 .../{ => integrations}/apache_edgent_logo.png      |  Bin
 .../images/integrations/apache_iotdb_logo.png      |  Bin 0 -> 22055 bytes
 .../{ => integrations}/apache_kafka_logo.png       |  Bin
 .../images/{ => integrations}/apache_nifi_logo.svg |    0
 .../integrations/apache_streampipes_logo.png       |  Bin 0 -> 16928 bytes
 .../images/integrations/eclipse_ditto_logo.png     |  Bin 0 -> 3371 bytes
 .../images/integrations/elastic_logstash_logo.png  |  Bin 0 -> 9241 bytes
 .../{ => plcs}/plc4x-vpn-beckhoff-route-1.png      |  Bin
 .../{ => plcs}/plc4x-vpn-beckhoff-route-2.png      |  Bin
 .../{ => plcs}/plc4x-vpn-beckhoff-route-3.png      |  Bin
 .../images/{ => plcs}/plc4x-vpn-beckhoff.jpg       |  Bin
 .../{ => plcs}/plc4x-vpn-client-download.png       |  Bin
 .../images/{ => plcs}/plc4x-vpn-fatek.jpg          |  Bin
 .../images/{ => plcs}/plc4x-vpn-siemens-hmi.jpg    |  Bin
 .../images/{ => plcs}/plc4x-vpn-siemens-s7.jpg     |  Bin
 .../resources/images/{ => plcs}/plc4x-vpn-wago.jpg |  Bin
 src/site/resources/images/protocols/ads-ams.png    |  Bin 0 -> 13600 bytes
 src/site/resources/images/protocols/bacnet-ip.gif  |  Bin 0 -> 32674 bytes
 .../images/tutorials/modbus/ModbusPal-1.png        |  Bin 0 -> 133977 bytes
 .../images/tutorials/modbus/ModbusPal-2.png        |  Bin 0 -> 267000 bytes
 .../images/tutorials/modbus/ModbusPal-3.png        |  Bin 0 -> 148179 bytes
 .../images/tutorials/modbus/ModbusPal-4.png        |  Bin 0 -> 167981 bytes
 .../images/tutorials/modbus/ModbusPal-5.png        |  Bin 0 -> 76694 bytes
 .../images/tutorials/modbus/ModbusPal-6.png        |  Bin 0 -> 99660 bytes
 .../images/tutorials/modbus/ModbusPal-7.png        |  Bin 0 -> 228335 bytes
 .../images/tutorials/modbus/ModbusPal-8.png        |  Bin 0 -> 122029 bytes
 .../images/tutorials/modbus/ModbusPal-9.png        |  Bin 0 -> 99947 bytes
 .../users/protocols/s7-tia-device-settings.png     |  Bin 0 -> 391398 bytes
 .../images/users/protocols/s7-tia-io-settings.png  |  Bin 0 -> 42175 bytes
 src/site/site.xml                                  |  171 +-
 tools/boost/pom.xml                                |    6 +-
 tools/check_sigs.sh                                |   14 +-
 tools/common.sh                                    |   75 +-
 tools/download_staged_release.sh                   |   48 +-
 tools/logstash/pom.xml                             |   12 +-
 tools/pom.xml                                      |    2 +-
 tools/thrift/pom.xml                               |  104 +-
 1503 files changed, 69960 insertions(+), 57300 deletions(-)