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 <christofer.d...@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(-)