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

ldywicki pushed a change to branch opcua-subscription-fixes
in repository https://gitbox.apache.org/repos/asf/plc4x.git


 discard bb3efcd32d fix(plc4j/opcua): Make sure UA subscription acknowledges 
are retained over publish cycles.
     add 1a8e0f35c4 chore: Disabled a flaky test in GO
     add d61da27505 docs: Updated the url for the opie tool
     add 9452f491f3 chore: Updated vendor ids
     add 0cc4997e54 docs: Added some information on the site plugin and the 
asciidoctor plugin.
     add a89d016d5a chore: Updated vendor ids
     add 645eeba472 build: Continued fine-tuning the reproducible build 
release-scripts.
     add dbb84b57a8 chore: Updated vendor ids
     add 210a348b16 feat: The S7 driver now returns supporting S7, if the 
connected device is an S7-300.
     add f9c2e8ccb9 fix: Fixed logging in the example.
     add 7203ad8121 refactor: Made the "protocol" accessible in the 
AbstractPlcConnection
     add ad92e6a801 refactor: Added S7-400 to the list of supported devices.
     add 13fcae7fde fix: Fixed the dependency usage error.
     add 5a1f768f1c Fix/s7async (#1451)
     add 4647f0b4a1 build(deps): bump 
com.google.googlejavaformat:google-java-format (#1449)
     add 65fc66e70f build(deps): bump logback.version from 1.5.1 to 1.5.3 
(#1448)
     add 795dd93cc7 build(deps): bump 
com.gradle:common-custom-user-data-maven-extension (#1434)
     add 608c9179b1 Update PlcRawByteArray.java (#1453)
     add d26955d296 chore: Disabled some OPC-UA tests, that were continuously 
failing the build.
     add 9ce5a2ff0a chore: Disabled some OPC-UA tests, that were continuously 
failing the build.
     add b26b686eee feat: Added a new flag allowing to disable tests on 
Jenkins. Added this to the flaky OPC-UA tests and re-enabled them.
     add a7d23bae53 build(deps-dev): bump org.apache.commons:commons-compress 
(#1456)
     add 00d32ec646 build(deps): bump org.awaitility:awaitility from 4.2.0 to 
4.2.1 (#1455)
     add ee0259e10e docs: Added "slave-id" to the description of the 
unit-identifier.
     add 6eb6d57191 chore: Disabled the OpcuaPlcDriverTest as it also seems to 
regularly fail on GitHub actions.
     add dae94095ba build(deps): bump 
org.springframework.boot:spring-boot-maven-plugin (#1460)
     add bd70de4aed build(deps): bump 
com.google.errorprone:error_prone_annotations (#1461)
     add 81957342b3 build(deps): bump 
org.springframework.boot:spring-boot-dependencies (#1462)
     add 099ca20d09 docs: Updated some documentation on the code-generation.
     add d05711ab38 refactor: Renamed the paddingField paddingCondition to 
timesPadding
     add ddbf5a06e4 chore: Removed some unneeded code.
     add 5d4d437caf chore: Updated vendor ids
     add 750f3d6f69 chore: Cleaned up in the sandbox
     add 610ff5a2f2 fix(plc4py): type extensions module added to setup.py
     add 5ce7d69a00 fix(plc4py): Move out of sandbox
     add 45ffc58d84 chore(sandbox): Remove the Sandbox Directory
     add 57a0f62353 chore(plc4px): Remove manual test
     add 135f0e1b48 fix(plc4j/opcua): Make sure UA subscription acknowledges 
are retained over publish cycles.

This update added new revisions after undoing existing revisions.
That is to say, some revisions that were in the old version of the
branch are not in the new version.  This situation occurs
when a user --force pushes a change and generates a repository
containing something like this:

 * -- * -- B -- O -- O -- O   (bb3efcd32d)
            \
             N -- N -- N   refs/heads/opcua-subscription-fixes (135f0e1b48)

You should already have received notification emails for all of the O
revisions, and so the following emails describe only the N revisions
from the common base, B.

Any revisions marked "omit" are not gone; other references still
refer to them.  Any revisions marked "discard" are gone forever.

No new revisions were added by this update.

Summary of changes:
 .dockerignore                                      |  12 +-
 .github/workflows/python-platform.yml              |  10 +-
 .gitignore                                         |   4 -
 .idea/sonarlint/issuestore/index.pb                |   2 -
 .idea/sonarlint/securityhotspotstore/index.pb      |   2 -
 .mvn/extensions.xml                                |   2 +-
 Jenkinsfile                                        |   8 +-
 README.md                                          |   6 +-
 build-reproducible.sh                              |   4 +-
 .../plugins/codegenerator/language/mspec/MSpec.g4  |  10 +-
 .../mspec/parser/MessageFormatListener.java        |   4 +-
 docker-compose.yaml                                |   2 +-
 plc4go/internal/cbus/Browser_test.go               |   2 +
 .../bacnetip/readwrite/model/BACnetVendorId.go     | 112 +++++++-
 .../knxnetip/readwrite/model/KnxManufacturer.go    |  88 ++++++-
 .../java/bacnetip/readwrite/BACnetVendorId.java    |   8 +-
 .../java/knxnetip/readwrite/KnxManufacturer.java   |  10 +-
 .../ascii/config/ModbusAsciiConfiguration.java     |   2 +-
 .../modbus/rtu/config/ModbusRtuConfiguration.java  |   2 +-
 .../modbus/tcp/config/ModbusTcpConfiguration.java  |   2 +-
 .../plc4x/java/opcua/OpcuaPlcDriverTest.java       |   3 +
 .../protocol/OpcuaSubscriptionHandleTest.java      |   2 +
 .../opcua/protocol/chunk/ChunkFactoryTest.java     |  18 +-
 .../apache/plc4x/java/s7/events/S7CyclicEvent.java | 282 +++++++++++++++------
 .../readwrite/protocol/S7HGeneratedDriverBase.java |   3 +-
 .../s7/readwrite/protocol/S7HPlcConnection.java    |  27 +-
 .../readwrite/protocol/S7ProtocolEventLogic.java   |  10 +
 .../s7/readwrite/protocol/S7ProtocolLogic.java     |  46 +++-
 .../java/s7/readwrite/tag/S7SubscriptionTag.java   |  37 ++-
 .../readwrite/utils/S7PlcSubscriptionRequest.java} | 152 ++++++++++-
 .../java/s7/readwrite/utils/StaticHelper.java      |   3 +-
 plc4j/examples/hello-docker/Dockerfile             |   4 +-
 plc4j/examples/hello-world-plc4x-subscribe/pom.xml |   7 +
 plc4j/integrations/apache-calcite/pom.xml          |   2 +-
 .../java/spi/connection/AbstractPlcConnection.java |   4 +
 .../org/apache/plc4x/java/spi/values/PlcBINT.java  |   5 +
 .../org/apache/plc4x/java/spi/values/PlcBOOL.java  |   5 +
 .../org/apache/plc4x/java/spi/values/PlcBREAL.java |   5 +
 .../org/apache/plc4x/java/spi/values/PlcBYTE.java  |   5 +
 .../org/apache/plc4x/java/spi/values/PlcCHAR.java  |   5 +
 .../org/apache/plc4x/java/spi/values/PlcDINT.java  |   5 +
 .../org/apache/plc4x/java/spi/values/PlcDWORD.java |   5 +
 .../org/apache/plc4x/java/spi/values/PlcINT.java   |   5 +
 .../org/apache/plc4x/java/spi/values/PlcLINT.java  |   5 +
 .../org/apache/plc4x/java/spi/values/PlcLREAL.java |   5 +
 .../org/apache/plc4x/java/spi/values/PlcLWORD.java |   5 +
 .../org/apache/plc4x/java/spi/values/PlcREAL.java  |   5 +
 .../plc4x/java/spi/values/PlcRawByteArray.java     |   2 +-
 .../org/apache/plc4x/java/spi/values/PlcSINT.java  |   5 +
 .../org/apache/plc4x/java/spi/values/PlcUBINT.java |   5 +
 .../org/apache/plc4x/java/spi/values/PlcUDINT.java |   5 +
 .../org/apache/plc4x/java/spi/values/PlcUINT.java  |   5 +
 .../org/apache/plc4x/java/spi/values/PlcULINT.java |   5 +
 .../org/apache/plc4x/java/spi/values/PlcUSINT.java |   5 +
 .../org/apache/plc4x/java/spi/values/PlcWCHAR.java |   5 +
 .../org/apache/plc4x/java/spi/values/PlcWORD.java  |   5 +
 plc4j/tools/ui/application/pom.xml                 |   2 +-
 .../src/generated/plc4j-tools-ui-frontend.ts       |   2 +-
 plc4j/tools/ui/pom.xml                             |   2 +-
 ...InDockerFlag.java => DisableOnJenkinsFlag.java} |   6 +-
 ...ion.java => DisableOnJenkinsFlagCondition.java} |  19 +-
 .../knxnetip/readwrite/model/KnxManufacturer.cs    |  48 +++-
 {sandbox/plc4py => plc4py}/.gitignore              |   0
 {sandbox/plc4py => plc4py}/.pre-commit-config.yaml |   0
 .../plc4py => plc4py}/plc4py/PlcDriverManager.py   |   0
 {sandbox/plc4py => plc4py}/plc4py/__init__.py      |   0
 .../plc4py => plc4py}/plc4py/api/PlcConnection.py  |   0
 {sandbox/plc4py => plc4py}/plc4py/api/PlcDriver.py |   0
 {sandbox/plc4py => plc4py}/plc4py/api/__init__.py  |   0
 .../plc4py/api/authentication/PlcAuthentication.py |   0
 .../plc4py/api/authentication/__init__.py          |   0
 .../plc4py/api/exceptions/__init__.py              |   0
 .../plc4py/api/exceptions/exceptions.py            |   0
 .../plc4py/api/listener/__init__.py                |   0
 .../plc4py/api/messages/PlcDiscovery.py            |   0
 .../plc4py/api/messages/PlcField.py                |   0
 .../plc4py/api/messages/PlcMessage.py              |   0
 .../plc4py/api/messages/PlcRequest.py              |   0
 .../plc4py/api/messages/PlcResponse.py             |   0
 .../plc4py/api/messages/__init__.py                |   0
 .../plc4py => plc4py}/plc4py/api/value/PlcValue.py |   0
 .../plc4py => plc4py}/plc4py/api/value/__init__.py |   0
 .../plc4py/drivers/PlcDriverLoader.py              |   0
 .../plc4py => plc4py}/plc4py/drivers/__init__.py   |   0
 .../plc4py/drivers/mock/MockConnection.py          |   0
 .../plc4py/drivers/mock/MockReadRequestBuilder.py  |   0
 .../plc4py/drivers/mock/MockTag.py                 |   0
 .../plc4py/drivers/mock/__init__.py                |   0
 .../plc4py/drivers/modbus/ModbusConfiguration.py   |   0
 .../plc4py/drivers/modbus/ModbusConnection.py      |   0
 .../plc4py/drivers/modbus/ModbusDevice.py          |   0
 .../plc4py/drivers/modbus/ModbusProtocol.py        |   0
 .../plc4py/drivers/modbus/ModbusTag.py             |   0
 .../plc4py/drivers/modbus/__init__.py              |   0
 .../plc4py/drivers/umas/UmasConfiguration.py       |   0
 .../plc4py/drivers/umas/UmasConnection.py          |   0
 .../plc4py/drivers/umas/UmasDevice.py              |   0
 .../plc4py/drivers/umas/UmasProtocol.py            |   0
 .../plc4py/drivers/umas/UmasTag.py                 |   0
 .../plc4py/drivers/umas/UmasVariables.py           |   0
 .../plc4py/drivers/umas/__init__.py                |   0
 .../plc4py => plc4py}/plc4py/protocols/__init__.py |   0
 .../plc4py/protocols/modbus/StaticHelper.py        |   0
 .../plc4py/protocols/modbus/__init__.py            |   0
 .../plc4py/protocols/modbus/readwrite/DataItem.py  |   0
 .../protocols/modbus/readwrite/DriverType.py       |   0
 .../plc4py/protocols/modbus/readwrite/ModbusADU.py |   0
 .../protocols/modbus/readwrite/ModbusAsciiADU.py   |   0
 .../protocols/modbus/readwrite/ModbusConstants.py  |   0
 .../protocols/modbus/readwrite/ModbusDataType.py   |   0
 .../ModbusDeviceInformationConformityLevel.py      |   0
 .../readwrite/ModbusDeviceInformationLevel.py      |   0
 .../ModbusDeviceInformationMoreFollows.py          |   0
 .../readwrite/ModbusDeviceInformationObject.py     |   0
 .../protocols/modbus/readwrite/ModbusErrorCode.py  |   0
 .../plc4py/protocols/modbus/readwrite/ModbusPDU.py |   0
 .../modbus/readwrite/ModbusPDUDiagnosticRequest.py |   0
 .../readwrite/ModbusPDUDiagnosticResponse.py       |   0
 .../protocols/modbus/readwrite/ModbusPDUError.py   |   0
 .../ModbusPDUGetComEventCounterRequest.py          |   0
 .../ModbusPDUGetComEventCounterResponse.py         |   0
 .../readwrite/ModbusPDUGetComEventLogRequest.py    |   0
 .../readwrite/ModbusPDUGetComEventLogResponse.py   |   0
 .../ModbusPDUMaskWriteHoldingRegisterRequest.py    |   0
 .../ModbusPDUMaskWriteHoldingRegisterResponse.py   |   0
 .../modbus/readwrite/ModbusPDUReadCoilsRequest.py  |   0
 .../modbus/readwrite/ModbusPDUReadCoilsResponse.py |   0
 .../ModbusPDUReadDeviceIdentificationRequest.py    |   0
 .../ModbusPDUReadDeviceIdentificationResponse.py   |   0
 .../ModbusPDUReadDiscreteInputsRequest.py          |   0
 .../ModbusPDUReadDiscreteInputsResponse.py         |   0
 .../ModbusPDUReadExceptionStatusRequest.py         |   0
 .../ModbusPDUReadExceptionStatusResponse.py        |   0
 .../readwrite/ModbusPDUReadFifoQueueRequest.py     |   0
 .../readwrite/ModbusPDUReadFifoQueueResponse.py    |   0
 .../readwrite/ModbusPDUReadFileRecordRequest.py    |   0
 .../ModbusPDUReadFileRecordRequestItem.py          |   0
 .../readwrite/ModbusPDUReadFileRecordResponse.py   |   0
 .../ModbusPDUReadFileRecordResponseItem.py         |   0
 .../ModbusPDUReadHoldingRegistersRequest.py        |   0
 .../ModbusPDUReadHoldingRegistersResponse.py       |   0
 .../ModbusPDUReadInputRegistersRequest.py          |   0
 .../ModbusPDUReadInputRegistersResponse.py         |   0
 ...sPDUReadWriteMultipleHoldingRegistersRequest.py |   0
 ...PDUReadWriteMultipleHoldingRegistersResponse.py |   0
 .../readwrite/ModbusPDUReportServerIdRequest.py    |   0
 .../readwrite/ModbusPDUReportServerIdResponse.py   |   0
 .../readwrite/ModbusPDUWriteFileRecordRequest.py   |   0
 .../ModbusPDUWriteFileRecordRequestItem.py         |   0
 .../readwrite/ModbusPDUWriteFileRecordResponse.py  |   0
 .../ModbusPDUWriteFileRecordResponseItem.py        |   0
 .../ModbusPDUWriteMultipleCoilsRequest.py          |   0
 .../ModbusPDUWriteMultipleCoilsResponse.py         |   0
 ...odbusPDUWriteMultipleHoldingRegistersRequest.py |   0
 ...dbusPDUWriteMultipleHoldingRegistersResponse.py |   0
 .../readwrite/ModbusPDUWriteSingleCoilRequest.py   |   0
 .../readwrite/ModbusPDUWriteSingleCoilResponse.py  |   0
 .../ModbusPDUWriteSingleRegisterRequest.py         |   0
 .../ModbusPDUWriteSingleRegisterResponse.py        |   0
 .../protocols/modbus/readwrite/ModbusRtuADU.py     |   0
 .../protocols/modbus/readwrite/ModbusTcpADU.py     |   0
 .../plc4py/protocols/modbus/readwrite/__init__.py  |   0
 .../protocols/simulated/readwrite/DataItem.py      |   0
 .../plc4py/protocols/simulated/readwrite/Dummy.py  |   0
 .../simulated/readwrite/SimulatedDataTypeSizes.py  |   0
 .../plc4py/protocols/umas/StaticHelper.py          |   0
 .../plc4py/protocols/umas/__init__.py              |   0
 .../plc4py/protocols/umas/readwrite/DataItem.py    |   0
 .../protocols/umas/readwrite/ModbusErrorCode.py    |   0
 .../plc4py/protocols/umas/readwrite/ModbusPDU.py   |   0
 .../protocols/umas/readwrite/ModbusPDUError.py     |   0
 .../protocols/umas/readwrite/ModbusTcpADU.py       |   0
 .../umas/readwrite/PlcMemoryBlockIdent.py          |   0
 .../protocols/umas/readwrite/UmasConstants.py      |   0
 .../protocols/umas/readwrite/UmasDataType.py       |   0
 .../umas/readwrite/UmasDatatypeReference.py        |   0
 .../UmasDeviceInformationConformityLevel.py        |   0
 .../umas/readwrite/UmasDeviceInformationLevel.py   |   0
 .../readwrite/UmasDeviceInformationMoreFollows.py  |   0
 .../umas/readwrite/UmasInitCommsRequest.py         |   0
 .../umas/readwrite/UmasInitCommsResponse.py        |   0
 .../protocols/umas/readwrite/UmasMemoryBlock.py    |   0
 .../umas/readwrite/UmasMemoryBlockBasicInfo.py     |   0
 .../plc4py/protocols/umas/readwrite/UmasPDU.py     |   0
 .../plc4py/protocols/umas/readwrite/UmasPDUItem.py |   0
 .../umas/readwrite/UmasPDUPlcIdentRequest.py       |   0
 .../umas/readwrite/UmasPDUPlcIdentResponse.py      |   0
 .../umas/readwrite/UmasPDUPlcStatusRequest.py      |   0
 .../umas/readwrite/UmasPDUPlcStatusResponse.py     |   0
 .../umas/readwrite/UmasPDUProjectInfoRequest.py    |   0
 .../readwrite/UmasPDUReadDatatypeNamesResponse.py  |   0
 .../readwrite/UmasPDUReadMemoryBlockRequest.py     |   0
 .../readwrite/UmasPDUReadMemoryBlockResponse.py    |   0
 .../UmasPDUReadUmasUDTDefinitionResponse.py        |   0
 .../readwrite/UmasPDUReadUnlocatedVariableNames.py |   0
 .../UmasPDUReadUnlocatedVariableNamesRequest.py    |   0
 .../UmasPDUReadUnlocatedVariableNamesResponse.py   |   0
 .../UmasPDUReadUnlocatedVariableResponse.py        |   0
 .../umas/readwrite/UmasPDUReadVariableRequest.py   |   0
 .../umas/readwrite/UmasPDUReadVariableResponse.py  |   0
 .../protocols/umas/readwrite/UmasUDTDefinition.py  |   0
 .../readwrite/UmasUnlocatedVariableReference.py    |   0
 .../protocols/umas/readwrite/UmasVariableBlock.py  |   0
 .../umas/readwrite/VariableRequestReference.py     |   0
 .../plc4py/protocols/umas/readwrite/__init__.py    |   0
 .../plc4py/spi/Plc4xBaseProtocol.py                |   0
 .../plc4py/spi/PlcDriverClassLoader.py             |   0
 {sandbox/plc4py => plc4py}/plc4py/spi/__init__.py  |   0
 .../plc4py/spi/configuration/PlcConfiguration.py   |   0
 .../plc4py/spi/configuration/__init__.py           |   0
 .../plc4py/spi/connection/ProtocolStack.py         |   0
 .../plc4py/spi/connection/__init__.py              |   0
 .../plc4py/spi/context/DriverContext.py            |   0
 .../plc4py/spi/context/__init__.py                 |   0
 .../plc4py/spi/generation/ReadBuffer.py            |   0
 .../plc4py/spi/generation/WriteBuffer.py           |   0
 .../plc4py/spi/generation/__init__.py              |   0
 .../plc4py/spi/messages/ChannelMessage.py          |   0
 .../plc4py/spi/messages/PlcReader.py               |   0
 .../plc4py/spi/messages/PlcRequest.py              |   0
 .../plc4py/spi/messages/PlcWriter.py               |   0
 .../plc4py/spi/messages/__init__.py                |   0
 .../plc4py/spi/messages/utils/ResponseItem.py      |   0
 .../plc4py/spi/messages/utils/__init__.py          |   0
 .../plc4py/spi/transport/Plc4xBaseTransport.py     |   0
 .../plc4py/spi/transport/TCPTransport.py           |   0
 .../plc4py/spi/transport/__init__.py               |   0
 .../plc4py => plc4py}/plc4py/spi/values/Common.py  |   0
 .../plc4py/spi/values/PlcValues.py                 |   0
 .../plc4py/spi/values/__init__.py                  |   0
 .../plc4py/utils/ConnectionStringHandling.py       |   0
 .../plc4py => plc4py}/plc4py/utils/GenericTypes.py |   0
 .../plc4py => plc4py}/plc4py/utils/__init__.py     |   0
 {sandbox/plc4py => plc4py}/pom.xml                 |   6 +-
 {sandbox/plc4py => plc4py}/pytest.ini              |   0
 {sandbox/plc4py => plc4py}/requirements.txt        |   0
 {sandbox/plc4py => plc4py}/setup.cfg               |   0
 {sandbox/plc4py => plc4py}/setup.py                |   1 +
 {sandbox/plc4py => plc4py}/tests/__init__.py       |   0
 {sandbox/plc4py => plc4py}/tests/test_plc4py.py    |   0
 {sandbox/plc4py => plc4py}/tests/unit/__init__.py  |   0
 .../tests/unit/plc4py/__init__.py                  |   0
 .../tests/unit/plc4py/api/__init__.py              |   0
 .../tests/unit/plc4py/api/test_PlcRequest.py       |   0
 .../tests/unit/plc4py/drivers/__init__.py          |   0
 .../tests/unit/plc4py/drivers/modbus/__init__.py   |   0
 .../plc4py/drivers/modbus/test_modbus_codegen.py   |   0
 .../drivers/modbus/test_modbus_connection.py       |   4 +-
 .../tests/unit/plc4py/drivers/umas/__init__.py     |   0
 .../plc4py/drivers/umas/test_umas_connection.py    |   0
 .../tests/unit/plc4py/spi/__init__.py              |   0
 .../unit/plc4py/spi/configuration/__init__.py      |   0
 .../plc4py/spi/configuration/test_configuration.py |   0
 .../tests/unit/plc4py/spi/tcp/__init__.py          |   0
 .../tests/unit/plc4py/spi/tcp/server.py            |   0
 .../tests/unit/plc4py/spi/test_protocol.py         |   0
 .../tests/unit/plc4py/spi/test_read_buffer.py      |   0
 .../tests/unit/plc4py/spi/test_transport.py        |   0
 .../tests/unit/plc4py/spi/test_write_buffer.py     |   0
 pom.xml                                            |  20 +-
 .../protocols/bacnetip/bacnet-vendorids.mspec      |   8 +-
 .../protocols/knxnetip/knx-master-data.mspec       |   8 +-
 reactors/all-drivers/pom.xml                       |   4 +-
 sandbox/.gitignore                                 |   1 -
 sandbox/discovery/pom.xml                          |  52 ----
 .../plc4x/java/discovery/DiscoveryConnection.java  | 186 --------------
 .../plc4x/java/discovery/DiscoveryDriver.java      |  52 ----
 .../plc4x/java/discovery/DiscoveryTagHandler.java  |  39 ---
 .../services/org.apache.plc4x.java.api.PlcDriver   |  19 --
 sandbox/pom.xml                                    |  78 ------
 sandbox/test-java-df1-driver/README.adoc           |  35 ---
 sandbox/test-java-df1-driver/pom.xml               | 180 -------------
 .../plc4x/java/df1/readwrite/DF1Command.java       | 181 -------------
 .../apache/plc4x/java/df1/readwrite/DF1Symbol.java | 182 -------------
 .../java/df1/readwrite/DF1SymbolMessageFrame.java  | 269 --------------------
 .../df1/readwrite/DF1SymbolMessageFrameACK.java    | 120 ---------
 .../df1/readwrite/DF1SymbolMessageFrameNAK.java    | 120 ---------
 .../df1/readwrite/DF1UnprotectedReadRequest.java   | 159 ------------
 .../df1/readwrite/DF1UnprotectedReadResponse.java  | 156 ------------
 .../org/apache/plc4x/java/df1/DF1PlcDriver.java    |  79 ------
 .../java/df1/configuration/Df1Configuration.java   |  48 ----
 .../org/apache/plc4x/java/df1/field/Df1Tag.java    |  82 ------
 .../apache/plc4x/java/df1/field/Df1TagHandler.java |  38 ---
 .../plc4x/java/df1/protocol/Df1Protocol.java       | 157 ------------
 .../plc4x/java/df1/protocol/Df1ProtocolLogic.java  |  43 ----
 .../plc4x/java/df1/protocol/Plc4XDf1Protocol.java  | 172 -------------
 .../java/df1/readwrite/utils/StaticHelper.java     |  95 -------
 .../org/apache/plc4x/java/df1/types/DataType.java  |  52 ----
 .../services/org.apache.plc4x.java.api.PlcDriver   |  19 --
 .../plc4x/protocol/df1/BenchmarkGeneratedDf1.java  |  75 ------
 .../plc4x/protocol/df1/BenchmarkManualDf1.java     | 238 -----------------
 .../protocol/df1/Df1ParserSerializerTest.java      |  31 ---
 .../apache/plc4x/protocol/df1/EndToEndTest.java    |  50 ----
 .../src/test/resources/logback-test.xml            |  36 ---
 src/main/script/prerequisiteCheck.groovy           |   3 -
 src/site/asciidoc/developers/building.adoc         |  11 +-
 src/site/asciidoc/developers/code-gen/index.adoc   | 111 +++++---
 .../developers/code-gen/protocol/mspec.adoc        | 263 +++++++++++++------
 .../asciidoc/developers/infrastructure/vm.adoc     |   2 +-
 src/site/asciidoc/developers/release/release.adoc  |  18 +-
 .../asciidoc/developers/release/validation.adoc    |   1 -
 .../asciidoc/users/getting-started/plc4py.adoc     |   2 +-
 .../tools/opm/src/site/site.xml => tools/NOTES.md  |  12 +-
 tools/docker-compose.yaml                          |   4 +-
 tools/release-0-update-generated-code.sh           |   5 +-
 tools/release-1-create-branch.sh                   |   2 +-
 tools/release-2-prepare-release.sh                 |   2 +-
 tools/release-3-perform-release.sh                 |   3 +-
 tools/release-abort.sh                             |   2 +-
 tools/validate-release.sh                          | 107 ++++++++
 310 files changed, 1285 insertions(+), 3431 deletions(-)
 copy 
plc4j/{spi/src/main/java/org/apache/plc4x/java/spi/messages/DefaultPlcSubscriptionRequest.java
 => 
drivers/s7/src/main/java/org/apache/plc4x/java/s7/readwrite/utils/S7PlcSubscriptionRequest.java}
 (55%)
 copy 
plc4j/utils/test-utils/src/main/java/org/apache/plc4x/test/{DisableInDockerFlag.java
 => DisableOnJenkinsFlag.java} (89%)
 copy 
plc4j/utils/test-utils/src/main/java/org/apache/plc4x/test/{RequireNonCaptureAllDnsCondition.java
 => DisableOnJenkinsFlagCondition.java} (66%)
 rename {sandbox/plc4py => plc4py}/.gitignore (100%)
 rename {sandbox/plc4py => plc4py}/.pre-commit-config.yaml (100%)
 rename {sandbox/plc4py => plc4py}/plc4py/PlcDriverManager.py (100%)
 rename {sandbox/plc4py => plc4py}/plc4py/__init__.py (100%)
 rename {sandbox/plc4py => plc4py}/plc4py/api/PlcConnection.py (100%)
 rename {sandbox/plc4py => plc4py}/plc4py/api/PlcDriver.py (100%)
 rename {sandbox/plc4py => plc4py}/plc4py/api/__init__.py (100%)
 rename {sandbox/plc4py => 
plc4py}/plc4py/api/authentication/PlcAuthentication.py (100%)
 rename {sandbox/plc4py => plc4py}/plc4py/api/authentication/__init__.py (100%)
 rename {sandbox/plc4py => plc4py}/plc4py/api/exceptions/__init__.py (100%)
 rename {sandbox/plc4py => plc4py}/plc4py/api/exceptions/exceptions.py (100%)
 rename {sandbox/plc4py => plc4py}/plc4py/api/listener/__init__.py (100%)
 rename {sandbox/plc4py => plc4py}/plc4py/api/messages/PlcDiscovery.py (100%)
 rename {sandbox/plc4py => plc4py}/plc4py/api/messages/PlcField.py (100%)
 rename {sandbox/plc4py => plc4py}/plc4py/api/messages/PlcMessage.py (100%)
 rename {sandbox/plc4py => plc4py}/plc4py/api/messages/PlcRequest.py (100%)
 rename {sandbox/plc4py => plc4py}/plc4py/api/messages/PlcResponse.py (100%)
 rename {sandbox/plc4py => plc4py}/plc4py/api/messages/__init__.py (100%)
 rename {sandbox/plc4py => plc4py}/plc4py/api/value/PlcValue.py (100%)
 rename {sandbox/plc4py => plc4py}/plc4py/api/value/__init__.py (100%)
 rename {sandbox/plc4py => plc4py}/plc4py/drivers/PlcDriverLoader.py (100%)
 rename {sandbox/plc4py => plc4py}/plc4py/drivers/__init__.py (100%)
 rename {sandbox/plc4py => plc4py}/plc4py/drivers/mock/MockConnection.py (100%)
 rename {sandbox/plc4py => 
plc4py}/plc4py/drivers/mock/MockReadRequestBuilder.py (100%)
 rename {sandbox/plc4py => plc4py}/plc4py/drivers/mock/MockTag.py (100%)
 rename {sandbox/plc4py => plc4py}/plc4py/drivers/mock/__init__.py (100%)
 rename {sandbox/plc4py => plc4py}/plc4py/drivers/modbus/ModbusConfiguration.py 
(100%)
 rename {sandbox/plc4py => plc4py}/plc4py/drivers/modbus/ModbusConnection.py 
(100%)
 rename {sandbox/plc4py => plc4py}/plc4py/drivers/modbus/ModbusDevice.py (100%)
 rename {sandbox/plc4py => plc4py}/plc4py/drivers/modbus/ModbusProtocol.py 
(100%)
 rename {sandbox/plc4py => plc4py}/plc4py/drivers/modbus/ModbusTag.py (100%)
 rename {sandbox/plc4py => plc4py}/plc4py/drivers/modbus/__init__.py (100%)
 rename {sandbox/plc4py => plc4py}/plc4py/drivers/umas/UmasConfiguration.py 
(100%)
 rename {sandbox/plc4py => plc4py}/plc4py/drivers/umas/UmasConnection.py (100%)
 rename {sandbox/plc4py => plc4py}/plc4py/drivers/umas/UmasDevice.py (100%)
 rename {sandbox/plc4py => plc4py}/plc4py/drivers/umas/UmasProtocol.py (100%)
 rename {sandbox/plc4py => plc4py}/plc4py/drivers/umas/UmasTag.py (100%)
 rename {sandbox/plc4py => plc4py}/plc4py/drivers/umas/UmasVariables.py (100%)
 rename {sandbox/plc4py => plc4py}/plc4py/drivers/umas/__init__.py (100%)
 rename {sandbox/plc4py => plc4py}/plc4py/protocols/__init__.py (100%)
 rename {sandbox/plc4py => plc4py}/plc4py/protocols/modbus/StaticHelper.py 
(100%)
 rename {sandbox/plc4py => plc4py}/plc4py/protocols/modbus/__init__.py (100%)
 rename {sandbox/plc4py => 
plc4py}/plc4py/protocols/modbus/readwrite/DataItem.py (100%)
 rename {sandbox/plc4py => 
plc4py}/plc4py/protocols/modbus/readwrite/DriverType.py (100%)
 rename {sandbox/plc4py => 
plc4py}/plc4py/protocols/modbus/readwrite/ModbusADU.py (100%)
 rename {sandbox/plc4py => 
plc4py}/plc4py/protocols/modbus/readwrite/ModbusAsciiADU.py (100%)
 rename {sandbox/plc4py => 
plc4py}/plc4py/protocols/modbus/readwrite/ModbusConstants.py (100%)
 rename {sandbox/plc4py => 
plc4py}/plc4py/protocols/modbus/readwrite/ModbusDataType.py (100%)
 rename {sandbox/plc4py => 
plc4py}/plc4py/protocols/modbus/readwrite/ModbusDeviceInformationConformityLevel.py
 (100%)
 rename {sandbox/plc4py => 
plc4py}/plc4py/protocols/modbus/readwrite/ModbusDeviceInformationLevel.py (100%)
 rename {sandbox/plc4py => 
plc4py}/plc4py/protocols/modbus/readwrite/ModbusDeviceInformationMoreFollows.py 
(100%)
 rename {sandbox/plc4py => 
plc4py}/plc4py/protocols/modbus/readwrite/ModbusDeviceInformationObject.py 
(100%)
 rename {sandbox/plc4py => 
plc4py}/plc4py/protocols/modbus/readwrite/ModbusErrorCode.py (100%)
 rename {sandbox/plc4py => 
plc4py}/plc4py/protocols/modbus/readwrite/ModbusPDU.py (100%)
 rename {sandbox/plc4py => 
plc4py}/plc4py/protocols/modbus/readwrite/ModbusPDUDiagnosticRequest.py (100%)
 rename {sandbox/plc4py => 
plc4py}/plc4py/protocols/modbus/readwrite/ModbusPDUDiagnosticResponse.py (100%)
 rename {sandbox/plc4py => 
plc4py}/plc4py/protocols/modbus/readwrite/ModbusPDUError.py (100%)
 rename {sandbox/plc4py => 
plc4py}/plc4py/protocols/modbus/readwrite/ModbusPDUGetComEventCounterRequest.py 
(100%)
 rename {sandbox/plc4py => 
plc4py}/plc4py/protocols/modbus/readwrite/ModbusPDUGetComEventCounterResponse.py
 (100%)
 rename {sandbox/plc4py => 
plc4py}/plc4py/protocols/modbus/readwrite/ModbusPDUGetComEventLogRequest.py 
(100%)
 rename {sandbox/plc4py => 
plc4py}/plc4py/protocols/modbus/readwrite/ModbusPDUGetComEventLogResponse.py 
(100%)
 rename {sandbox/plc4py => 
plc4py}/plc4py/protocols/modbus/readwrite/ModbusPDUMaskWriteHoldingRegisterRequest.py
 (100%)
 rename {sandbox/plc4py => 
plc4py}/plc4py/protocols/modbus/readwrite/ModbusPDUMaskWriteHoldingRegisterResponse.py
 (100%)
 rename {sandbox/plc4py => 
plc4py}/plc4py/protocols/modbus/readwrite/ModbusPDUReadCoilsRequest.py (100%)
 rename {sandbox/plc4py => 
plc4py}/plc4py/protocols/modbus/readwrite/ModbusPDUReadCoilsResponse.py (100%)
 rename {sandbox/plc4py => 
plc4py}/plc4py/protocols/modbus/readwrite/ModbusPDUReadDeviceIdentificationRequest.py
 (100%)
 rename {sandbox/plc4py => 
plc4py}/plc4py/protocols/modbus/readwrite/ModbusPDUReadDeviceIdentificationResponse.py
 (100%)
 rename {sandbox/plc4py => 
plc4py}/plc4py/protocols/modbus/readwrite/ModbusPDUReadDiscreteInputsRequest.py 
(100%)
 rename {sandbox/plc4py => 
plc4py}/plc4py/protocols/modbus/readwrite/ModbusPDUReadDiscreteInputsResponse.py
 (100%)
 rename {sandbox/plc4py => 
plc4py}/plc4py/protocols/modbus/readwrite/ModbusPDUReadExceptionStatusRequest.py
 (100%)
 rename {sandbox/plc4py => 
plc4py}/plc4py/protocols/modbus/readwrite/ModbusPDUReadExceptionStatusResponse.py
 (100%)
 rename {sandbox/plc4py => 
plc4py}/plc4py/protocols/modbus/readwrite/ModbusPDUReadFifoQueueRequest.py 
(100%)
 rename {sandbox/plc4py => 
plc4py}/plc4py/protocols/modbus/readwrite/ModbusPDUReadFifoQueueResponse.py 
(100%)
 rename {sandbox/plc4py => 
plc4py}/plc4py/protocols/modbus/readwrite/ModbusPDUReadFileRecordRequest.py 
(100%)
 rename {sandbox/plc4py => 
plc4py}/plc4py/protocols/modbus/readwrite/ModbusPDUReadFileRecordRequestItem.py 
(100%)
 rename {sandbox/plc4py => 
plc4py}/plc4py/protocols/modbus/readwrite/ModbusPDUReadFileRecordResponse.py 
(100%)
 rename {sandbox/plc4py => 
plc4py}/plc4py/protocols/modbus/readwrite/ModbusPDUReadFileRecordResponseItem.py
 (100%)
 rename {sandbox/plc4py => 
plc4py}/plc4py/protocols/modbus/readwrite/ModbusPDUReadHoldingRegistersRequest.py
 (100%)
 rename {sandbox/plc4py => 
plc4py}/plc4py/protocols/modbus/readwrite/ModbusPDUReadHoldingRegistersResponse.py
 (100%)
 rename {sandbox/plc4py => 
plc4py}/plc4py/protocols/modbus/readwrite/ModbusPDUReadInputRegistersRequest.py 
(100%)
 rename {sandbox/plc4py => 
plc4py}/plc4py/protocols/modbus/readwrite/ModbusPDUReadInputRegistersResponse.py
 (100%)
 rename {sandbox/plc4py => 
plc4py}/plc4py/protocols/modbus/readwrite/ModbusPDUReadWriteMultipleHoldingRegistersRequest.py
 (100%)
 rename {sandbox/plc4py => 
plc4py}/plc4py/protocols/modbus/readwrite/ModbusPDUReadWriteMultipleHoldingRegistersResponse.py
 (100%)
 rename {sandbox/plc4py => 
plc4py}/plc4py/protocols/modbus/readwrite/ModbusPDUReportServerIdRequest.py 
(100%)
 rename {sandbox/plc4py => 
plc4py}/plc4py/protocols/modbus/readwrite/ModbusPDUReportServerIdResponse.py 
(100%)
 rename {sandbox/plc4py => 
plc4py}/plc4py/protocols/modbus/readwrite/ModbusPDUWriteFileRecordRequest.py 
(100%)
 rename {sandbox/plc4py => 
plc4py}/plc4py/protocols/modbus/readwrite/ModbusPDUWriteFileRecordRequestItem.py
 (100%)
 rename {sandbox/plc4py => 
plc4py}/plc4py/protocols/modbus/readwrite/ModbusPDUWriteFileRecordResponse.py 
(100%)
 rename {sandbox/plc4py => 
plc4py}/plc4py/protocols/modbus/readwrite/ModbusPDUWriteFileRecordResponseItem.py
 (100%)
 rename {sandbox/plc4py => 
plc4py}/plc4py/protocols/modbus/readwrite/ModbusPDUWriteMultipleCoilsRequest.py 
(100%)
 rename {sandbox/plc4py => 
plc4py}/plc4py/protocols/modbus/readwrite/ModbusPDUWriteMultipleCoilsResponse.py
 (100%)
 rename {sandbox/plc4py => 
plc4py}/plc4py/protocols/modbus/readwrite/ModbusPDUWriteMultipleHoldingRegistersRequest.py
 (100%)
 rename {sandbox/plc4py => 
plc4py}/plc4py/protocols/modbus/readwrite/ModbusPDUWriteMultipleHoldingRegistersResponse.py
 (100%)
 rename {sandbox/plc4py => 
plc4py}/plc4py/protocols/modbus/readwrite/ModbusPDUWriteSingleCoilRequest.py 
(100%)
 rename {sandbox/plc4py => 
plc4py}/plc4py/protocols/modbus/readwrite/ModbusPDUWriteSingleCoilResponse.py 
(100%)
 rename {sandbox/plc4py => 
plc4py}/plc4py/protocols/modbus/readwrite/ModbusPDUWriteSingleRegisterRequest.py
 (100%)
 rename {sandbox/plc4py => 
plc4py}/plc4py/protocols/modbus/readwrite/ModbusPDUWriteSingleRegisterResponse.py
 (100%)
 rename {sandbox/plc4py => 
plc4py}/plc4py/protocols/modbus/readwrite/ModbusRtuADU.py (100%)
 rename {sandbox/plc4py => 
plc4py}/plc4py/protocols/modbus/readwrite/ModbusTcpADU.py (100%)
 rename {sandbox/plc4py => 
plc4py}/plc4py/protocols/modbus/readwrite/__init__.py (100%)
 rename {sandbox/plc4py => 
plc4py}/plc4py/protocols/simulated/readwrite/DataItem.py (100%)
 rename {sandbox/plc4py => 
plc4py}/plc4py/protocols/simulated/readwrite/Dummy.py (100%)
 rename {sandbox/plc4py => 
plc4py}/plc4py/protocols/simulated/readwrite/SimulatedDataTypeSizes.py (100%)
 rename {sandbox/plc4py => plc4py}/plc4py/protocols/umas/StaticHelper.py (100%)
 rename {sandbox/plc4py => plc4py}/plc4py/protocols/umas/__init__.py (100%)
 rename {sandbox/plc4py => plc4py}/plc4py/protocols/umas/readwrite/DataItem.py 
(100%)
 rename {sandbox/plc4py => 
plc4py}/plc4py/protocols/umas/readwrite/ModbusErrorCode.py (100%)
 rename {sandbox/plc4py => plc4py}/plc4py/protocols/umas/readwrite/ModbusPDU.py 
(100%)
 rename {sandbox/plc4py => 
plc4py}/plc4py/protocols/umas/readwrite/ModbusPDUError.py (100%)
 rename {sandbox/plc4py => 
plc4py}/plc4py/protocols/umas/readwrite/ModbusTcpADU.py (100%)
 rename {sandbox/plc4py => 
plc4py}/plc4py/protocols/umas/readwrite/PlcMemoryBlockIdent.py (100%)
 rename {sandbox/plc4py => 
plc4py}/plc4py/protocols/umas/readwrite/UmasConstants.py (100%)
 rename {sandbox/plc4py => 
plc4py}/plc4py/protocols/umas/readwrite/UmasDataType.py (100%)
 rename {sandbox/plc4py => 
plc4py}/plc4py/protocols/umas/readwrite/UmasDatatypeReference.py (100%)
 rename {sandbox/plc4py => 
plc4py}/plc4py/protocols/umas/readwrite/UmasDeviceInformationConformityLevel.py 
(100%)
 rename {sandbox/plc4py => 
plc4py}/plc4py/protocols/umas/readwrite/UmasDeviceInformationLevel.py (100%)
 rename {sandbox/plc4py => 
plc4py}/plc4py/protocols/umas/readwrite/UmasDeviceInformationMoreFollows.py 
(100%)
 rename {sandbox/plc4py => 
plc4py}/plc4py/protocols/umas/readwrite/UmasInitCommsRequest.py (100%)
 rename {sandbox/plc4py => 
plc4py}/plc4py/protocols/umas/readwrite/UmasInitCommsResponse.py (100%)
 rename {sandbox/plc4py => 
plc4py}/plc4py/protocols/umas/readwrite/UmasMemoryBlock.py (100%)
 rename {sandbox/plc4py => 
plc4py}/plc4py/protocols/umas/readwrite/UmasMemoryBlockBasicInfo.py (100%)
 rename {sandbox/plc4py => plc4py}/plc4py/protocols/umas/readwrite/UmasPDU.py 
(100%)
 rename {sandbox/plc4py => 
plc4py}/plc4py/protocols/umas/readwrite/UmasPDUItem.py (100%)
 rename {sandbox/plc4py => 
plc4py}/plc4py/protocols/umas/readwrite/UmasPDUPlcIdentRequest.py (100%)
 rename {sandbox/plc4py => 
plc4py}/plc4py/protocols/umas/readwrite/UmasPDUPlcIdentResponse.py (100%)
 rename {sandbox/plc4py => 
plc4py}/plc4py/protocols/umas/readwrite/UmasPDUPlcStatusRequest.py (100%)
 rename {sandbox/plc4py => 
plc4py}/plc4py/protocols/umas/readwrite/UmasPDUPlcStatusResponse.py (100%)
 rename {sandbox/plc4py => 
plc4py}/plc4py/protocols/umas/readwrite/UmasPDUProjectInfoRequest.py (100%)
 rename {sandbox/plc4py => 
plc4py}/plc4py/protocols/umas/readwrite/UmasPDUReadDatatypeNamesResponse.py 
(100%)
 rename {sandbox/plc4py => 
plc4py}/plc4py/protocols/umas/readwrite/UmasPDUReadMemoryBlockRequest.py (100%)
 rename {sandbox/plc4py => 
plc4py}/plc4py/protocols/umas/readwrite/UmasPDUReadMemoryBlockResponse.py (100%)
 rename {sandbox/plc4py => 
plc4py}/plc4py/protocols/umas/readwrite/UmasPDUReadUmasUDTDefinitionResponse.py 
(100%)
 rename {sandbox/plc4py => 
plc4py}/plc4py/protocols/umas/readwrite/UmasPDUReadUnlocatedVariableNames.py 
(100%)
 rename {sandbox/plc4py => 
plc4py}/plc4py/protocols/umas/readwrite/UmasPDUReadUnlocatedVariableNamesRequest.py
 (100%)
 rename {sandbox/plc4py => 
plc4py}/plc4py/protocols/umas/readwrite/UmasPDUReadUnlocatedVariableNamesResponse.py
 (100%)
 rename {sandbox/plc4py => 
plc4py}/plc4py/protocols/umas/readwrite/UmasPDUReadUnlocatedVariableResponse.py 
(100%)
 rename {sandbox/plc4py => 
plc4py}/plc4py/protocols/umas/readwrite/UmasPDUReadVariableRequest.py (100%)
 rename {sandbox/plc4py => 
plc4py}/plc4py/protocols/umas/readwrite/UmasPDUReadVariableResponse.py (100%)
 rename {sandbox/plc4py => 
plc4py}/plc4py/protocols/umas/readwrite/UmasUDTDefinition.py (100%)
 rename {sandbox/plc4py => 
plc4py}/plc4py/protocols/umas/readwrite/UmasUnlocatedVariableReference.py (100%)
 rename {sandbox/plc4py => 
plc4py}/plc4py/protocols/umas/readwrite/UmasVariableBlock.py (100%)
 rename {sandbox/plc4py => 
plc4py}/plc4py/protocols/umas/readwrite/VariableRequestReference.py (100%)
 rename {sandbox/plc4py => plc4py}/plc4py/protocols/umas/readwrite/__init__.py 
(100%)
 rename {sandbox/plc4py => plc4py}/plc4py/spi/Plc4xBaseProtocol.py (100%)
 rename {sandbox/plc4py => plc4py}/plc4py/spi/PlcDriverClassLoader.py (100%)
 rename {sandbox/plc4py => plc4py}/plc4py/spi/__init__.py (100%)
 rename {sandbox/plc4py => plc4py}/plc4py/spi/configuration/PlcConfiguration.py 
(100%)
 rename {sandbox/plc4py => plc4py}/plc4py/spi/configuration/__init__.py (100%)
 rename {sandbox/plc4py => plc4py}/plc4py/spi/connection/ProtocolStack.py (100%)
 rename {sandbox/plc4py => plc4py}/plc4py/spi/connection/__init__.py (100%)
 rename {sandbox/plc4py => plc4py}/plc4py/spi/context/DriverContext.py (100%)
 rename {sandbox/plc4py => plc4py}/plc4py/spi/context/__init__.py (100%)
 rename {sandbox/plc4py => plc4py}/plc4py/spi/generation/ReadBuffer.py (100%)
 rename {sandbox/plc4py => plc4py}/plc4py/spi/generation/WriteBuffer.py (100%)
 rename {sandbox/plc4py => plc4py}/plc4py/spi/generation/__init__.py (100%)
 rename {sandbox/plc4py => plc4py}/plc4py/spi/messages/ChannelMessage.py (100%)
 rename {sandbox/plc4py => plc4py}/plc4py/spi/messages/PlcReader.py (100%)
 rename {sandbox/plc4py => plc4py}/plc4py/spi/messages/PlcRequest.py (100%)
 rename {sandbox/plc4py => plc4py}/plc4py/spi/messages/PlcWriter.py (100%)
 rename {sandbox/plc4py => plc4py}/plc4py/spi/messages/__init__.py (100%)
 rename {sandbox/plc4py => plc4py}/plc4py/spi/messages/utils/ResponseItem.py 
(100%)
 rename {sandbox/plc4py => plc4py}/plc4py/spi/messages/utils/__init__.py (100%)
 rename {sandbox/plc4py => plc4py}/plc4py/spi/transport/Plc4xBaseTransport.py 
(100%)
 rename {sandbox/plc4py => plc4py}/plc4py/spi/transport/TCPTransport.py (100%)
 rename {sandbox/plc4py => plc4py}/plc4py/spi/transport/__init__.py (100%)
 rename {sandbox/plc4py => plc4py}/plc4py/spi/values/Common.py (100%)
 rename {sandbox/plc4py => plc4py}/plc4py/spi/values/PlcValues.py (100%)
 rename {sandbox/plc4py => plc4py}/plc4py/spi/values/__init__.py (100%)
 rename {sandbox/plc4py => plc4py}/plc4py/utils/ConnectionStringHandling.py 
(100%)
 rename {sandbox/plc4py => plc4py}/plc4py/utils/GenericTypes.py (100%)
 rename {sandbox/plc4py => plc4py}/plc4py/utils/__init__.py (100%)
 rename {sandbox/plc4py => plc4py}/pom.xml (98%)
 rename {sandbox/plc4py => plc4py}/pytest.ini (100%)
 rename {sandbox/plc4py => plc4py}/requirements.txt (100%)
 rename {sandbox/plc4py => plc4py}/setup.cfg (100%)
 rename {sandbox/plc4py => plc4py}/setup.py (98%)
 rename {sandbox/plc4py => plc4py}/tests/__init__.py (100%)
 rename {sandbox/plc4py => plc4py}/tests/test_plc4py.py (100%)
 rename {sandbox/plc4py => plc4py}/tests/unit/__init__.py (100%)
 rename {sandbox/plc4py => plc4py}/tests/unit/plc4py/__init__.py (100%)
 rename {sandbox/plc4py => plc4py}/tests/unit/plc4py/api/__init__.py (100%)
 rename {sandbox/plc4py => plc4py}/tests/unit/plc4py/api/test_PlcRequest.py 
(100%)
 rename {sandbox/plc4py => plc4py}/tests/unit/plc4py/drivers/__init__.py (100%)
 rename {sandbox/plc4py => plc4py}/tests/unit/plc4py/drivers/modbus/__init__.py 
(100%)
 rename {sandbox/plc4py => 
plc4py}/tests/unit/plc4py/drivers/modbus/test_modbus_codegen.py (100%)
 rename {sandbox/plc4py => 
plc4py}/tests/unit/plc4py/drivers/modbus/test_modbus_connection.py (94%)
 rename {sandbox/plc4py => plc4py}/tests/unit/plc4py/drivers/umas/__init__.py 
(100%)
 rename {sandbox/plc4py => 
plc4py}/tests/unit/plc4py/drivers/umas/test_umas_connection.py (100%)
 rename {sandbox/plc4py => plc4py}/tests/unit/plc4py/spi/__init__.py (100%)
 rename {sandbox/plc4py => 
plc4py}/tests/unit/plc4py/spi/configuration/__init__.py (100%)
 rename {sandbox/plc4py => 
plc4py}/tests/unit/plc4py/spi/configuration/test_configuration.py (100%)
 rename {sandbox/plc4py => plc4py}/tests/unit/plc4py/spi/tcp/__init__.py (100%)
 rename {sandbox/plc4py => plc4py}/tests/unit/plc4py/spi/tcp/server.py (100%)
 rename {sandbox/plc4py => plc4py}/tests/unit/plc4py/spi/test_protocol.py (100%)
 rename {sandbox/plc4py => plc4py}/tests/unit/plc4py/spi/test_read_buffer.py 
(100%)
 rename {sandbox/plc4py => plc4py}/tests/unit/plc4py/spi/test_transport.py 
(100%)
 rename {sandbox/plc4py => plc4py}/tests/unit/plc4py/spi/test_write_buffer.py 
(100%)
 delete mode 100644 sandbox/.gitignore
 delete mode 100644 sandbox/discovery/pom.xml
 delete mode 100644 
sandbox/discovery/src/main/java/org/apache/plc4x/java/discovery/DiscoveryConnection.java
 delete mode 100644 
sandbox/discovery/src/main/java/org/apache/plc4x/java/discovery/DiscoveryDriver.java
 delete mode 100644 
sandbox/discovery/src/main/java/org/apache/plc4x/java/discovery/DiscoveryTagHandler.java
 delete mode 100644 
sandbox/discovery/src/main/resources/META-INF/services/org.apache.plc4x.java.api.PlcDriver
 delete mode 100644 sandbox/pom.xml
 delete mode 100644 sandbox/test-java-df1-driver/README.adoc
 delete mode 100644 sandbox/test-java-df1-driver/pom.xml
 delete mode 100644 
sandbox/test-java-df1-driver/src/main/generated/org/apache/plc4x/java/df1/readwrite/DF1Command.java
 delete mode 100644 
sandbox/test-java-df1-driver/src/main/generated/org/apache/plc4x/java/df1/readwrite/DF1Symbol.java
 delete mode 100644 
sandbox/test-java-df1-driver/src/main/generated/org/apache/plc4x/java/df1/readwrite/DF1SymbolMessageFrame.java
 delete mode 100644 
sandbox/test-java-df1-driver/src/main/generated/org/apache/plc4x/java/df1/readwrite/DF1SymbolMessageFrameACK.java
 delete mode 100644 
sandbox/test-java-df1-driver/src/main/generated/org/apache/plc4x/java/df1/readwrite/DF1SymbolMessageFrameNAK.java
 delete mode 100644 
sandbox/test-java-df1-driver/src/main/generated/org/apache/plc4x/java/df1/readwrite/DF1UnprotectedReadRequest.java
 delete mode 100644 
sandbox/test-java-df1-driver/src/main/generated/org/apache/plc4x/java/df1/readwrite/DF1UnprotectedReadResponse.java
 delete mode 100644 
sandbox/test-java-df1-driver/src/main/java/org/apache/plc4x/java/df1/DF1PlcDriver.java
 delete 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/field/Df1Tag.java
 delete mode 100644 
sandbox/test-java-df1-driver/src/main/java/org/apache/plc4x/java/df1/field/Df1TagHandler.java
 delete mode 100644 
sandbox/test-java-df1-driver/src/main/java/org/apache/plc4x/java/df1/protocol/Df1Protocol.java
 delete mode 100644 
sandbox/test-java-df1-driver/src/main/java/org/apache/plc4x/java/df1/protocol/Df1ProtocolLogic.java
 delete mode 100644 
sandbox/test-java-df1-driver/src/main/java/org/apache/plc4x/java/df1/protocol/Plc4XDf1Protocol.java
 delete mode 100644 
sandbox/test-java-df1-driver/src/main/java/org/apache/plc4x/java/df1/readwrite/utils/StaticHelper.java
 delete 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/resources/META-INF/services/org.apache.plc4x.java.api.PlcDriver
 delete mode 100644 
sandbox/test-java-df1-driver/src/test/java/org/apache/plc4x/protocol/df1/BenchmarkGeneratedDf1.java
 delete mode 100644 
sandbox/test-java-df1-driver/src/test/java/org/apache/plc4x/protocol/df1/BenchmarkManualDf1.java
 delete 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/EndToEndTest.java
 delete mode 100644 
sandbox/test-java-df1-driver/src/test/resources/logback-test.xml
 copy plc4j/tools/opm/src/site/site.xml => tools/NOTES.md (76%)
 create mode 100755 tools/validate-release.sh


Reply via email to