This is an automated email from the ASF dual-hosted git repository. cdutz pushed a change to branch master in repository https://gitbox.apache.org/repos/asf/incubator-plc4x.git.
from 42ddef9 Merge branches 'feature/apache-kafka' and 'master' of https://gitbox.apache.org/repos/asf/incubator-plc4x add fc70e60 API Refactoring according to proposal: https://cwiki.apache.org/confluence/display/PLC4X/Chris%27+Proposal+2 add 61c9e68 API Redesign add 14bed12 Some further fine-tuning after porting the examples and the edgent-integration add abbf96c - Adjusted the camel integration - Continued work on the Edgent integration - Started implementing the api changes in driver base add a3baa0e - Commented out stuff that was preventing compilation - Added optional JUnit 5 support - Fine-tuned the S7 field parsing - Added tests for S7 field parsing add c3d3b5a - Finished porting the S7 driver (At least the tests are green again) add 003924a - Started implementing the payload handling add 8f9e9d8 - Finished refactoring the reading of values in s7 add 483a486 - Updated several examples and integration modules to be more aligned with the latest refactorings. - Moved the PlcFieldHandler to a separate class. - Disabled all drivers except s7 for now (will re-enable them one by one) add a0a1237 - Continued refactoring ... add 5228d63 - Fine tuned the subscription api add a4afc99 - Fixed the camel test-suite and build add 8fe6f82 added internal layer to add functionality needed for driver internals and keep them separated from the user api add 88a3df1 some (little) progress on ADS api refactoring add 98e6336 [AZURE-Example] fixed compile issue in sample add eb3db9a [ALL] cleanup API and remove the generic extensions again add 6ed4be8 [edgent] fixed broken test add ba34efd fix some issues with generics and build add 4be6686 - Continued work on the edgent integration testsuite - Cleaned up unneeded dependencies in the hello-plc4x project - Fixed JavaDoc comments to no longer break the site generation add a396de4 Refactored the recent additions to master - Google IoT Example - Kakfka-Connect integration - Test driver add fd95ee9 Refactored the recent additions to master - Google IoT Example - Kakfka-Connect integration - Test driver add df806f8 - Finished refactoring the read part of the S7 driver (Still todo's in the write part) - Optimized the example - Added a getObject() method to the FieldItem class - Added a set of S7FieldItems that return the nearest matching type to the one in the address in getObject() add 220d8d8 - Added the prefix "Default" to the FieldItems in base-driver add 464b883 - Implemented most of the encoding of values for write requests in S7 add 924e75e - Refactored the EtherNet/IP driver add 032acf1 - Some minor updates fixing stuff that wasn't updated as the modules were commented out. add d6d13cc adjusted kafka source connector to new api add 1b0ca49 implemented throttling add 28a70be refactoring add d74d905 removed unnecessary code add 334a4eb added further connect schemas add 5ee9fa9 implemented kafka sink connector add 955ad74 implemented kafka sink connector add 1319e0b Merge pull request #16 from skorikov/feature/api-redesign-chris-c add dcf68dc Some further work on the modbus protocol add 398f4b9 - Implemented getByte for booleanfield - Fixed tbe IotElasticsearchFactory example add aff5bb3 Merge branch 'feature/api-redesign-chris-c' of https://github.com/skorikov/incubator-plc4x into skorikov-feature/api-redesign-chris-c new 4250310 added support for multiple queries in kafka source connector new 130fa97 Merge branch 'skorikov-skorikov-feature/api-redesign-chris-c' into skorikov-feature/api-redesign-chris-c new 549e4ee Merge branch 'skorikov-feature/api-redesign-chris-c' into feature/api-redesign-chris-c new adf6b67 implemented support for multiple workers in kafka sink connector new af6d47a Merge branch 'skorikov-feature/api-redesign-chris-c' into feature/api-redesign-chris-c new fb55138 added url to source key schema new ee60bed removed unused import new be3f365 added convenience methods for easily building of requests new 140b01c added possibility to add types only known at runtime to plc write requests new f16b671 adjusted subscription api to new API requirements new 910d379 progress on subscription support new f7bd1c4 make ads compile again new 26cba52 added support for BigInteger on field handler new 19716f8 make ads test run again (still failing though) new 16fc039 fixed remaining tests in ADS. Still needs a lot of refactoring and todo tests new 5c3a127 fixed missing methods for BigInteger Support new 9d5f2e2 some work on ADS tests new cb27228 fixed ethernetip field handler new 8e655f3 ADS guard against bufferoverflow when writing to ADS new 88d1776 - Disabled the ADS module till the site problems are fixed - Fixed some problems in decoding split up requests - Fixed a problem in the parsing of S7 addresses - It seems bit-stream datatypes all need an extra byte at the end new 2587167 fixed issues with site generation new 660f212 cleanup AdsPlcFieldHandler. Still needs fixing. new 4bd85c7 fixed compare to messup in AdsPlcFieldHandler new dc20326 renamce shortcut numValues to numberOfValues new 6b25a0e some refactoring on the ADS decoder/encoder new d0e2261 [ADS] fixed small endianness problem in decoder new 4e750d6 - Added some of the correct codes for some of the new datatypes. new 022d7f5 - Updated the getConnectionUnknownHost test to run even if internet providers use a default host for unknown host-names. new 01373d9 - Replaced the old TransportSize with the originally named S7DataType class The 29 revisions listed above as "new" are entirely new to this repository and will be described in separate emails. The revisions listed as "add" were already present in the repository and have only been added to this reference. Summary of changes: .../azure/iothub/S7PlcToAzureIoTHubSample.java | 34 +- .../dummydriver/connection/DummyConnection.java | 37 +- .../model/{DummyAddress.java => DummyField.java} | 6 +- .../google/iotcore/S7PlcToGoogleIoTCoreSample.java | 16 +- examples/{plclogger => hello-plc4x}/pom.xml | 40 +- .../plc4x/java/examples/helloplc4x/HelloPlc4x.java | 122 +++ .../src/main/resources/logback.xml | 0 .../iotfactory/IotElasticsearchFactory.java | 2 +- .../java/examples/kafkabridge/KafkaBridge.java | 60 +- .../java/examples/kafkabridge/model/PlcConfig.java | 10 +- .../model/{PlcAddress.java => PlcFieldConfig.java} | 2 +- examples/pom.xml | 5 +- integrations/apache-camel/pom.xml | 15 +- .../java/org/apache/plc4x/camel/Constants.java | 3 +- .../java/org/apache/plc4x/camel/Plc4XConsumer.java | 60 +- .../apache/plc4x/camel/Plc4XPollingConsumer.java | 32 +- .../java/org/apache/plc4x/camel/Plc4XProducer.java | 21 +- .../plc4x/camel/ResponseItemTypeConverter.java | 34 - .../services/org/apache/camel/TypeConverter | 19 - .../java/org/apache/plc4x/camel/MockDriver.java | 37 +- .../org/apache/plc4x/camel/Plc4XComponentTest.java | 6 +- .../org/apache/plc4x/camel/Plc4XProducerTest.java | 8 +- integrations/apache-edgent/pom.xml | 11 + .../apache/plc4x/edgent/PlcConnectionAdapter.java | 306 ++++--- .../java/org/apache/plc4x/edgent/PlcFunctions.java | 360 +++++--- .../plc4x/edgent/PlcConnectionAdapterTest.java | 272 +++--- .../org/apache/plc4x/edgent/PlcFunctionsTest.java | 24 +- .../org/apache/plc4x/edgent/mock/MockAddress.java | 51 -- .../apache/plc4x/edgent/mock/MockConnection.java | 100 +-- .../org/apache/plc4x/edgent/mock/MockField.java | 50 +- .../apache/plc4x/edgent/mock/MockFieldHandler.java | 94 ++ .../apache/plc4x/edgent/mock/MockFieldItem.java | 34 + .../org/apache/plc4x/kafka/Plc4xSinkConnector.java | 36 +- .../java/org/apache/plc4x/kafka/Plc4xSinkTask.java | 116 +++ .../apache/plc4x/kafka/Plc4xSourceConnector.java | 60 +- .../org/apache/plc4x/kafka/Plc4xSourceTask.java | 242 ++++++ .../org/apache/plc4x/kafka/common/Plc4xConfig.java | 92 -- .../apache/plc4x/kafka/sink/Plc4xSinkConfig.java | 49 -- .../org/apache/plc4x/kafka/sink/Plc4xSinkTask.java | 129 --- .../plc4x/kafka/source/Plc4xSourceConfig.java | 49 -- .../apache/plc4x/kafka/source/Plc4xSourceTask.java | 140 --- .../org/apache/plc4x/kafka/util/VersionUtil.java | 2 +- .../apache/plc4x/kafka/Plc4XSinkConfigTest.java | 31 - .../apache/plc4x/kafka/Plc4XSourceConfigTest.java | 31 - .../plc4x/java/api/connection/PlcConnection.java | 15 +- .../plc4x/java/api/connection/PlcLister.java | 25 - .../java/api/connection/PlcProprietarySender.java | 14 +- .../plc4x/java/api/connection/PlcReader.java | 20 +- .../plc4x/java/api/connection/PlcSubscriber.java | 85 +- .../plc4x/java/api/connection/PlcWriter.java | 20 +- ...xception.java => PlcInvalidFieldException.java} | 17 +- .../{PlcMessage.java => PlcFieldRequest.java} | 18 +- .../{PlcMessage.java => PlcFieldResponse.java} | 17 +- .../java/api/messages/PlcMessageBuilder.java} | 7 +- .../java/api/messages/PlcProprietaryRequest.java | 59 +- .../java/api/messages/PlcProprietaryResponse.java | 58 +- .../{PlcMessage.java => PlcProtocolMessage.java} | 7 +- .../plc4x/java/api/messages/PlcReadRequest.java | 97 +-- .../plc4x/java/api/messages/PlcReadResponse.java | 161 +++- .../apache/plc4x/java/api/messages/PlcRequest.java | 101 +-- .../plc4x/java/api/messages/PlcResponse.java | 87 +- .../java/api/messages/PlcSubscriptionEvent.java | 42 +- .../java/api/messages/PlcSubscriptionRequest.java | 93 +- .../java/api/messages/PlcSubscriptionResponse.java | 19 +- .../api/messages/PlcUnsubscriptionRequest.java | 119 +-- .../api/messages/PlcUnsubscriptionResponse.java | 18 +- .../plc4x/java/api/messages/PlcWriteRequest.java | 103 +-- .../plc4x/java/api/messages/PlcWriteResponse.java | 26 +- .../plc4x/java/api/messages/ProtocolMessage.java | 24 - .../java/api/messages/items/ReadRequestItem.java | 82 -- .../java/api/messages/items/ReadResponseItem.java | 84 -- .../plc4x/java/api/messages/items/RequestItem.java | 77 -- .../java/api/messages/items/ResponseItem.java | 72 -- .../api/messages/items/SubscriptionEventItem.java | 76 -- .../SubscriptionRequestChangeOfStateItem.java | 36 - .../items/SubscriptionRequestCyclicItem.java | 75 -- .../items/SubscriptionRequestEventItem.java | 36 - .../messages/items/SubscriptionRequestItem.java | 74 -- .../messages/items/SubscriptionResponseItem.java | 65 -- .../messages/items/UnsubscriptionRequestItem.java | 62 -- .../java/api/messages/items/WriteRequestItem.java | 73 -- .../messages/specific/TypeSafePlcReadRequest.java | 127 --- .../messages/specific/TypeSafePlcReadResponse.java | 107 --- .../messages/specific/TypeSafePlcWriteRequest.java | 114 --- .../specific/TypeSafePlcWriteResponse.java | 83 -- .../java/api/model/PlcConsumerRegistration.java} | 11 +- .../java/api/model/{Address.java => PlcField.java} | 10 +- ...ptionHandle.java => PlcSubscriptionHandle.java} | 8 +- .../{ResponseCode.java => PlcClientDatatype.java} | 19 +- .../{ResponseCode.java => PlcResponseCode.java} | 6 +- .../PlcSubscriptionType.java} | 6 +- .../apache/plc4x/java/api/ImmutabilityTest.java | 21 +- .../plc4x/java/api/connection/PlcReaderTest.java | 16 +- .../plc4x/java/api/connection/PlcWriterTest.java | 10 +- .../plc4x/java/api/messages/APIMessageTests.java | 163 ++-- .../api/messages/PlcProprietaryRequestTest.java | 5 +- .../api/messages/PlcProprietaryResponseTest.java | 6 +- .../java/api/messages/PlcReadRequestTest.java | 39 +- .../java/api/messages/PlcReadResponseTest.java | 14 +- .../plc4x/java/api/messages/PlcRequestTest.java | 6 +- .../plc4x/java/api/messages/PlcResponseTest.java | 25 +- .../api/messages/PlcSubscriptionEventTest.java | 6 +- .../api/messages/PlcSubscriptionRequestTest.java | 5 +- .../api/messages/PlcSubscriptionResponseTest.java | 5 +- .../api/messages/PlcUnsubscriptionRequestTest.java | 6 +- .../messages/PlcUnsubscriptionResponseTest.java | 6 +- .../java/api/messages/PlcWriteRequestTest.java | 38 +- .../java/api/messages/PlcWriteResponseTest.java | 17 +- .../mock/{MockAddress.java => MockField.java} | 23 +- .../specific/TypeSafePlcReadRequestTest.java | 13 +- .../specific/TypeSafePlcReadResponseTest.java | 26 +- .../specific/TypeSafePlcWriteRequestTest.java | 13 +- .../specific/TypeSafePlcWriteResponseTest.java | 25 +- .../org/apache/plc4x/java/mock/MockConnection.java | 7 +- .../ads/connection/AdsAbstractPlcConnection.java | 108 ++- .../ads/connection/AdsSerialPlcConnection.java | 2 +- .../java/ads/connection/AdsTcpPlcConnection.java | 210 +++-- .../apache/plc4x/java/ads/model/AdsDataType.java | 532 ++++++++++++ .../ByteBufSupplier.java => model/AdsField.java} | 10 +- .../plc4x/java/ads/model/AdsPlcFieldHandler.java | 945 +++++++++++++++++++++ .../java/ads/model/AdsSubscriptionHandle.java | 4 +- .../model/{AdsAddress.java => DirectAdsField.java} | 53 +- ...mbolicAdsAddress.java => SymbolicAdsField.java} | 47 +- .../plc4x/java/ads/protocol/Plc4x2AdsProtocol.java | 205 ++--- .../ads/protocol/util/LittleEndianDecoder.java | 510 +++++++---- .../ads/protocol/util/LittleEndianEncoder.java | 76 +- .../apache/plc4x/java/ads/AdsPlcDriverTest.java | 18 +- .../apache/plc4x/java/ads/ManualPlc4XAdsTest.java | 38 +- .../apache/plc4x/java/ads/adslib/AmsRequest.java | 3 +- .../apache/plc4x/java/ads/adslib/AmsRouter.java | 24 +- .../connection/AdsAbstractPlcConnectionTest.java | 64 +- .../ads/connection/AdsSerialPlcConnectionTest.java | 39 +- .../ads/connection/AdsTcpPlcConnectionTests.java | 131 +-- .../plc4x/java/ads/model/AdsAddressTest.java | 64 -- .../plc4x/java/ads/model/DirectAdsFieldTest.java | 71 ++ .../java/ads/protocol/Plc4x2AdsProtocolTest.java | 85 +- .../ads/protocol/util/LittleEndianDecoderTest.java | 105 ++- .../ads/protocol/util/LittleEndianEncoderTest.java | 62 +- .../plc4x/java/base/PlcMessageToMessageCodec.java | 2 +- .../base/connection/AbstractPlcConnection.java | 32 +- .../java/base/connection/PlcFieldHandler.java | 53 ++ .../plc4x/java/base/events/ConnectEvent.java | 2 +- .../plc4x/java/base/events/ConnectedEvent.java | 2 +- .../messages/DefaultPlcProprietaryRequest.java} | 16 +- .../messages/DefaultPlcProprietaryResponse.java} | 23 +- .../java/base/messages/DefaultPlcReadRequest.java | 88 ++ .../java/base/messages/DefaultPlcReadResponse.java | 626 ++++++++++++++ .../base/messages/DefaultPlcSubscriptionEvent.java | 385 +++++++++ .../messages/DefaultPlcSubscriptionRequest.java | 111 +++ .../messages/DefaultPlcSubscriptionResponse.java | 76 ++ .../messages/DefaultPlcUnsubscriptionRequest.java | 96 +++ .../DefaultPlcUnsubscriptionResponse.java} | 33 +- .../java/base/messages/DefaultPlcWriteRequest.java | 219 +++++ .../base/messages/DefaultPlcWriteResponse.java | 57 ++ .../base/messages/InternalPlcFieldRequest.java} | 8 +- .../base/messages/InternalPlcFieldResponse.java} | 9 +- .../messages/InternalPlcProprietaryRequest.java} | 9 +- .../messages/InternalPlcProprietaryResponse.java} | 10 +- .../base/messages/InternalPlcReadRequest.java} | 9 +- .../base/messages/InternalPlcReadResponse.java} | 8 +- .../java/base/messages/InternalPlcRequest.java} | 7 +- .../java/base/messages/InternalPlcResponse.java} | 9 +- .../messages/InternalPlcSubscriptionEvent.java} | 8 +- .../messages/InternalPlcSubscriptionRequest.java} | 11 +- .../messages/InternalPlcSubscriptionResponse.java} | 8 +- .../InternalPlcUnsubscriptionRequest.java} | 21 +- .../InternalPlcUnsubscriptionResponse.java} | 8 +- .../base/messages/InternalPlcWriteRequest.java} | 21 +- .../base/messages/InternalPlcWriteResponse.java} | 8 +- .../{RawMessage.java => PlcRawMessage.java} | 12 +- .../java/base/messages/PlcRequestContainer.java | 9 +- .../messages/items/DefaultBigIntegerFieldItem.java | 161 ++++ .../messages/items/DefaultBooleanFieldItem.java | 69 ++ .../items/DefaultFloatingPointFieldItem.java | 144 ++++ .../messages/items/DefaultIntegerFieldItem.java | 143 ++++ .../messages/items/DefaultStringFieldItem.java} | 29 +- .../base/messages/items/DefaultTimeFieldItem.java | 76 ++ .../plc4x/java/base/messages/items/FieldItem.java | 171 ++++ .../base/model/DefaultPlcConsumerRegistration.java | 73 ++ .../model/InternalPlcConsumerRegistration.java} | 21 +- .../base/model/InternalPlcSubscriptionHandle.java} | 9 +- .../base/messages/PlcRequestContainerTest.java | 21 +- .../plc4x/java/base/connection/MockConnection.java | 7 +- .../java/base/connection/TestChannelFactory.java | 9 +- .../base/protocol/Plc4XSupportedDataTypes.java | 11 +- .../plc4x/java/base/util/Junit5Backport.java | 1 + plc4j/protocols/ethernetip/pom.xml | 4 + .../connection/BaseEtherNetIpPlcConnection.java | 54 +- ...EtherNetIpAddress.java => EtherNetIpField.java} | 22 +- .../ethernetip/netty/Plc4XEtherNetIpProtocol.java | 138 +-- .../netty/events/EtherNetIpConnectedEvent.java | 2 +- .../ethernetip/netty/util/EnipPlcFieldHandler.java | 110 +++ .../ethernetip/src/site/asciidoc/index.adoc | 2 +- .../java/ethernetip/ManualPlc4XEtherNetIpTest.java | 23 +- .../modbus/connection/BaseModbusPlcConnection.java | 64 +- ...CoilModbusAddress.java => CoilModbusField.java} | 14 +- ...ress.java => MaskWriteRegisterModbusField.java} | 20 +- .../model/{ModbusAddress.java => ModbusField.java} | 12 +- ...ess.java => ReadDiscreteInputsModbusField.java} | 14 +- ...s.java => ReadHoldingRegistersModbusField.java} | 14 +- ...ess.java => ReadInputRegistersModbusField.java} | 14 +- .../java/modbus/model/RegisterModbusAddress.java | 43 - ...ModbusAddress.java => RegisterModbusField.java} | 15 +- .../java/modbus/netty/Plc4XModbusProtocol.java | 244 ++++-- .../java/modbus/util/ModbusPlcFieldHandler.java | 114 +++ .../plc4x/java/modbus/ManualPlc4XModbusTest.java | 20 +- .../connection/ModbusSerialPlcConnectionTest.java | 44 +- .../connection/ModbusTcpPlcConnectionTests.java | 48 +- .../java/modbus/netty/Plc4XModbusProtocolTest.java | 78 +- plc4j/protocols/pom.xml | 4 +- .../java/isoontcp/netty/model/IsoOnTcpMessage.java | 4 +- .../isotp/netty/events/IsoTPConnectedEvent.java | 2 +- .../plc4x/java/isotp/netty/model/IsoTPMessage.java | 4 +- .../java/isotp/netty/model/tpdus/DataTpdu.java | 4 +- .../plc4x/java/isotp/netty/model/tpdus/Tpdu.java | 8 +- .../plc4x/java/s7/connection/S7PlcConnection.java | 56 +- .../s7/messages/items/S7BigIntegerFieldItem.java} | 29 +- .../java/s7/messages/items/S7BooleanFieldItem.java | 52 ++ .../messages/items/S7FloatingPointFieldItem.java | 47 + .../java/s7/messages/items/S7IntegerFieldItem.java | 53 ++ .../java/s7/messages/items/S7StringFieldItem.java | 47 + .../java/s7/messages/items/S7TimeFieldItem.java | 49 ++ .../org/apache/plc4x/java/s7/model/S7Address.java | 63 -- .../apache/plc4x/java/s7/model/S7BitAddress.java | 58 -- .../plc4x/java/s7/model/S7DataBlockAddress.java | 57 -- .../org/apache/plc4x/java/s7/model/S7Field.java | 131 +++ .../plc4x/java/s7/netty/Plc4XS7Protocol.java | 591 +++++++++---- .../org/apache/plc4x/java/s7/netty/S7Protocol.java | 16 +- .../java/s7/netty/events/S7ConnectedEvent.java | 2 +- .../java/s7/netty/events/S7IdentifiedEvent.java | 2 +- .../java/s7/netty/model/messages/S7Message.java | 8 +- .../s7/netty/model/messages/S7RequestMessage.java | 4 +- .../messages/SetupCommunicationRequestMessage.java | 4 +- .../model/params/items/S7AnyVarParameterItem.java | 16 +- .../netty/model/types/DataTransportErrorCode.java | 1 + .../s7/netty/model/types/DataTransportSize.java | 52 +- .../java/s7/netty/model/types/MemoryArea.java | 47 +- .../plc4x/java/s7/netty/model/types/SslId.java | 1 - .../java/s7/netty/model/types/TransportSize.java | 223 +++-- .../strategies/DefaultS7MessageProcessor.java | 22 +- .../s7/netty/strategies/S7MessageProcessor.java | 2 +- .../java/s7/netty/util/S7PlcFieldHandler.java | 488 +++++++++++ .../s7/netty/util/S7RequestSizeCalculator.java | 2 +- .../s7/netty/util/S7ResponseSizeEstimator.java | 11 +- .../plc4x/java/s7/netty/util/S7SizeHelper.java | 5 +- .../org/apache/plc4x/java/s7/types/S7DataType.java | 155 ---- .../plc4x/java/s7/utils/S7TsapIdEncoder.java | 2 +- .../plc4x/java/isotp/netty/IsoTPProtocolTest.java | 2 +- .../isotp/netty/model/params/ParameterTests.java | 2 +- .../netty/model/params/TsapParameterTests.java | 4 +- .../isotp/netty/model/types/IsotpTypeTests.java | 2 +- .../org/apache/plc4x/java/s7/PcapGenerator.java | 2 +- .../apache/plc4x/java/s7/S7PlcReaderSample.java | 88 -- .../org/apache/plc4x/java/s7/S7PlcScanner.java | 24 +- .../org/apache/plc4x/java/s7/S7PlcTestConsole.java | 13 +- .../apache/plc4x/java/s7/S7PlcWriterSample.java | 11 +- .../java/s7/connection/S7PlcConnectionTests.java | 51 +- .../apache/plc4x/java/s7/issues/PLC4X47Test.java | 51 ++ .../apache/plc4x/java/s7/model/S7AddressTests.java | 63 -- .../apache/plc4x/java/s7/model/S7FieldTests.java | 89 ++ .../plc4x/java/s7/netty/Plc4XS7ProtocolTest.java | 70 +- .../s7/netty/model/messages/S7MessageTests.java | 13 +- .../s7/netty/model/params/S7ParameterTests.java | 7 +- .../java/s7/netty/model/types/S7TypeTests.java | 4 +- .../strategies/DefaultS7MessageProcessorTest.java | 87 +- .../java/s7/netty/util/S7PlcFieldHandlerTest.java | 349 ++++++++ .../plc4x/java/s7/netty/util/S7SizeHelperTest.java | 5 +- .../apache/plc4x/java/s7/types/S7DataTypeTest.java | 4 +- plc4j/protocols/test/pom.xml | 14 + .../org/apache/plc4x/java/test/TestAddress.java | 72 -- .../org/apache/plc4x/java/test/TestConnection.java | 108 +-- .../org/apache/plc4x/java/test/TestDevice.java | 82 +- .../java/org/apache/plc4x/java/test/TestField.java | 92 ++ .../apache/plc4x/java/test/TestFieldHandler.java | 152 ++++ .../org/apache/plc4x/java/test/TestFieldItem.java} | 21 +- .../java/org/apache/plc4x/java/test/TestType.java} | 16 +- .../org/apache/plc4x/java/test/TestDeviceTest.java | 17 +- pom.xml | 48 ++ 278 files changed, 10768 insertions(+), 6475 deletions(-) rename examples/dummy-driver/src/main/java/org/apache/plc4x/java/examples/dummydriver/model/{DummyAddress.java => DummyField.java} (87%) copy examples/{plclogger => hello-plc4x}/pom.xml (75%) create mode 100644 examples/hello-plc4x/src/main/java/org/apache/plc4x/java/examples/helloplc4x/HelloPlc4x.java copy examples/{plclogger => hello-plc4x}/src/main/resources/logback.xml (100%) rename examples/kafka-bridge/src/main/java/org/apache/plc4x/java/examples/kafkabridge/model/{PlcAddress.java => PlcFieldConfig.java} (98%) delete mode 100644 integrations/apache-camel/src/main/java/org/apache/plc4x/camel/ResponseItemTypeConverter.java delete mode 100644 integrations/apache-camel/src/main/resources/META-INF/services/org/apache/camel/TypeConverter delete mode 100644 integrations/apache-edgent/src/test/java/org/apache/plc4x/edgent/mock/MockAddress.java copy plc4j/protocols/modbus/src/main/java/org/apache/plc4x/java/modbus/model/ModbusAddress.java => integrations/apache-edgent/src/test/java/org/apache/plc4x/edgent/mock/MockField.java (57%) create mode 100644 integrations/apache-edgent/src/test/java/org/apache/plc4x/edgent/mock/MockFieldHandler.java create mode 100644 integrations/apache-edgent/src/test/java/org/apache/plc4x/edgent/mock/MockFieldItem.java create mode 100644 integrations/apache-kafka/src/main/java/org/apache/plc4x/kafka/Plc4xSinkTask.java create mode 100644 integrations/apache-kafka/src/main/java/org/apache/plc4x/kafka/Plc4xSourceTask.java delete mode 100644 integrations/apache-kafka/src/main/java/org/apache/plc4x/kafka/common/Plc4xConfig.java delete mode 100644 integrations/apache-kafka/src/main/java/org/apache/plc4x/kafka/sink/Plc4xSinkConfig.java delete mode 100644 integrations/apache-kafka/src/main/java/org/apache/plc4x/kafka/sink/Plc4xSinkTask.java delete mode 100644 integrations/apache-kafka/src/main/java/org/apache/plc4x/kafka/source/Plc4xSourceConfig.java delete mode 100644 integrations/apache-kafka/src/main/java/org/apache/plc4x/kafka/source/Plc4xSourceTask.java delete mode 100644 integrations/apache-kafka/src/test/java/org/apache/plc4x/kafka/Plc4XSinkConfigTest.java delete mode 100644 integrations/apache-kafka/src/test/java/org/apache/plc4x/kafka/Plc4XSourceConfigTest.java delete mode 100644 plc4j/api/src/main/java/org/apache/plc4x/java/api/connection/PlcLister.java rename plc4j/api/src/main/java/org/apache/plc4x/java/api/exceptions/{PlcInvalidAddressException.java => PlcInvalidFieldException.java} (62%) copy plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/{PlcMessage.java => PlcFieldRequest.java} (71%) copy plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/{PlcMessage.java => PlcFieldResponse.java} (60%) copy plc4j/{protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/events/ConnectedEvent.java => api/src/main/java/org/apache/plc4x/java/api/messages/PlcMessageBuilder.java} (88%) copy plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/{PlcMessage.java => PlcProtocolMessage.java} (87%) delete mode 100644 plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/ProtocolMessage.java delete mode 100644 plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/items/ReadRequestItem.java delete mode 100644 plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/items/ReadResponseItem.java delete mode 100644 plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/items/RequestItem.java delete mode 100644 plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/items/ResponseItem.java delete mode 100644 plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/items/SubscriptionEventItem.java delete mode 100644 plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/items/SubscriptionRequestChangeOfStateItem.java delete mode 100644 plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/items/SubscriptionRequestCyclicItem.java delete mode 100644 plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/items/SubscriptionRequestEventItem.java delete mode 100644 plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/items/SubscriptionRequestItem.java delete mode 100644 plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/items/SubscriptionResponseItem.java delete mode 100644 plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/items/UnsubscriptionRequestItem.java delete mode 100644 plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/items/WriteRequestItem.java delete mode 100644 plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/specific/TypeSafePlcReadRequest.java delete mode 100644 plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/specific/TypeSafePlcReadResponse.java delete mode 100644 plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/specific/TypeSafePlcWriteRequest.java delete mode 100644 plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/specific/TypeSafePlcWriteResponse.java copy plc4j/{protocols/ads/src/main/java/org/apache/plc4x/java/ads/package-info.java => api/src/main/java/org/apache/plc4x/java/api/model/PlcConsumerRegistration.java} (83%) rename plc4j/api/src/main/java/org/apache/plc4x/java/api/model/{Address.java => PlcField.java} (80%) rename plc4j/api/src/main/java/org/apache/plc4x/java/api/model/{SubscriptionHandle.java => PlcSubscriptionHandle.java} (90%) copy plc4j/api/src/main/java/org/apache/plc4x/java/api/types/{ResponseCode.java => PlcClientDatatype.java} (83%) rename plc4j/api/src/main/java/org/apache/plc4x/java/api/types/{ResponseCode.java => PlcResponseCode.java} (90%) rename plc4j/api/src/main/java/org/apache/plc4x/java/api/{model/SubscriptionType.java => types/PlcSubscriptionType.java} (88%) rename plc4j/api/src/test/java/org/apache/plc4x/java/api/messages/mock/{MockAddress.java => MockField.java} (71%) create mode 100644 plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/model/AdsDataType.java copy plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/{api/util/ByteBufSupplier.java => model/AdsField.java} (82%) create mode 100644 plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/model/AdsPlcFieldHandler.java rename plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/model/{AdsAddress.java => DirectAdsField.java} (62%) rename plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/model/{SymbolicAdsAddress.java => SymbolicAdsField.java} (54%) delete mode 100644 plc4j/protocols/ads/src/test/java/org/apache/plc4x/java/ads/model/AdsAddressTest.java create mode 100644 plc4j/protocols/ads/src/test/java/org/apache/plc4x/java/ads/model/DirectAdsFieldTest.java create mode 100644 plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/connection/PlcFieldHandler.java rename plc4j/{api/src/main/java/org/apache/plc4x/java/api/messages/items/WriteResponseItem.java => protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/DefaultPlcProprietaryRequest.java} (66%) copy plc4j/protocols/{ads/src/test/java/org/apache/plc4x/java/ads/adslib/Output.java => driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/DefaultPlcProprietaryResponse.java} (52%) create mode 100644 plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/DefaultPlcReadRequest.java create mode 100644 plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/DefaultPlcReadResponse.java create mode 100644 plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/DefaultPlcSubscriptionEvent.java create mode 100644 plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/DefaultPlcSubscriptionRequest.java create mode 100644 plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/DefaultPlcSubscriptionResponse.java create mode 100644 plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/DefaultPlcUnsubscriptionRequest.java copy plc4j/protocols/{ads/src/test/java/org/apache/plc4x/java/ads/adslib/Output.java => driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/DefaultPlcUnsubscriptionResponse.java} (51%) create mode 100644 plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/DefaultPlcWriteRequest.java create mode 100644 plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/DefaultPlcWriteResponse.java copy plc4j/protocols/{ads/src/main/java/org/apache/plc4x/java/ads/api/util/ByteBufSupplier.java => driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/InternalPlcFieldRequest.java} (82%) copy plc4j/protocols/{ads/src/main/java/org/apache/plc4x/java/ads/api/util/ByteBufSupplier.java => driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/InternalPlcFieldResponse.java} (76%) copy plc4j/protocols/{ads/src/main/java/org/apache/plc4x/java/ads/api/util/ByteBufSupplier.java => driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/InternalPlcProprietaryRequest.java} (77%) copy plc4j/{api/src/test/java/org/apache/plc4x/java/api/messages/PlcUnsubscriptionResponseTest.java => protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/InternalPlcProprietaryResponse.java} (70%) copy plc4j/protocols/{ads/src/main/java/org/apache/plc4x/java/ads/api/util/ByteBufSupplier.java => driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/InternalPlcReadRequest.java} (80%) copy plc4j/protocols/{ads/src/main/java/org/apache/plc4x/java/ads/api/util/ByteBufSupplier.java => driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/InternalPlcReadResponse.java} (76%) copy plc4j/protocols/{ads/src/main/java/org/apache/plc4x/java/ads/api/util/LengthSupplier.java => driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/InternalPlcRequest.java} (83%) copy plc4j/protocols/{ads/src/main/java/org/apache/plc4x/java/ads/api/util/ByteBufSupplier.java => driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/InternalPlcResponse.java} (78%) copy plc4j/protocols/{ads/src/main/java/org/apache/plc4x/java/ads/api/util/ByteBufSupplier.java => driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/InternalPlcSubscriptionEvent.java} (80%) copy plc4j/protocols/{ads/src/main/java/org/apache/plc4x/java/ads/api/util/ByteBufSupplier.java => driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/InternalPlcSubscriptionRequest.java} (72%) copy plc4j/protocols/{ads/src/main/java/org/apache/plc4x/java/ads/api/util/ByteBufSupplier.java => driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/InternalPlcSubscriptionResponse.java} (80%) copy plc4j/protocols/{ads/src/test/java/org/apache/plc4x/java/ads/adslib/Output.java => driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/InternalPlcUnsubscriptionRequest.java} (66%) copy plc4j/protocols/{ads/src/main/java/org/apache/plc4x/java/ads/api/util/ByteBufSupplier.java => driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/InternalPlcUnsubscriptionResponse.java} (79%) copy plc4j/protocols/{ads/src/test/java/org/apache/plc4x/java/ads/adslib/Output.java => driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/InternalPlcWriteRequest.java} (68%) copy plc4j/protocols/{ads/src/main/java/org/apache/plc4x/java/ads/api/util/ByteBufSupplier.java => driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/InternalPlcWriteResponse.java} (76%) rename plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/{RawMessage.java => PlcRawMessage.java} (77%) create mode 100644 plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/items/DefaultBigIntegerFieldItem.java create mode 100644 plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/items/DefaultBooleanFieldItem.java create mode 100644 plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/items/DefaultFloatingPointFieldItem.java create mode 100644 plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/items/DefaultIntegerFieldItem.java copy plc4j/protocols/{s7/src/main/java/org/apache/plc4x/java/isotp/netty/model/params/DisconnectAdditionalInformationParameter.java => driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/items/DefaultStringFieldItem.java} (60%) create mode 100644 plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/items/DefaultTimeFieldItem.java create mode 100644 plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/items/FieldItem.java create mode 100644 plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/model/DefaultPlcConsumerRegistration.java copy plc4j/protocols/{ads/src/test/java/org/apache/plc4x/java/ads/adslib/Output.java => driver-bases/base/src/main/java/org/apache/plc4x/java/base/model/InternalPlcConsumerRegistration.java} (70%) copy plc4j/protocols/{ads/src/main/java/org/apache/plc4x/java/ads/api/util/ByteBufSupplier.java => driver-bases/base/src/main/java/org/apache/plc4x/java/base/model/InternalPlcSubscriptionHandle.java} (80%) rename plc4j/protocols/ethernetip/src/main/java/org/apache/plc4x/java/ethernetip/model/{EtherNetIpAddress.java => EtherNetIpField.java} (76%) create mode 100644 plc4j/protocols/ethernetip/src/main/java/org/apache/plc4x/java/ethernetip/netty/util/EnipPlcFieldHandler.java copy plc4j/protocols/modbus/src/main/java/org/apache/plc4x/java/modbus/model/{CoilModbusAddress.java => CoilModbusField.java} (72%) rename plc4j/protocols/modbus/src/main/java/org/apache/plc4x/java/modbus/model/{MaskWriteRegisterModbusAddress.java => MaskWriteRegisterModbusField.java} (73%) rename plc4j/protocols/modbus/src/main/java/org/apache/plc4x/java/modbus/model/{ModbusAddress.java => ModbusField.java} (84%) rename plc4j/protocols/modbus/src/main/java/org/apache/plc4x/java/modbus/model/{ReadInputRegistersModbusAddress.java => ReadDiscreteInputsModbusField.java} (69%) rename plc4j/protocols/modbus/src/main/java/org/apache/plc4x/java/modbus/model/{ReadDiscreteInputsModbusAddress.java => ReadHoldingRegistersModbusField.java} (69%) rename plc4j/protocols/modbus/src/main/java/org/apache/plc4x/java/modbus/model/{ReadHoldingRegistersModbusAddress.java => ReadInputRegistersModbusField.java} (69%) delete mode 100644 plc4j/protocols/modbus/src/main/java/org/apache/plc4x/java/modbus/model/RegisterModbusAddress.java rename plc4j/protocols/modbus/src/main/java/org/apache/plc4x/java/modbus/model/{CoilModbusAddress.java => RegisterModbusField.java} (69%) create mode 100644 plc4j/protocols/modbus/src/main/java/org/apache/plc4x/java/modbus/util/ModbusPlcFieldHandler.java copy plc4j/protocols/{ads/src/test/java/org/apache/plc4x/java/ads/adslib/Output.java => s7/src/main/java/org/apache/plc4x/java/s7/messages/items/S7BigIntegerFieldItem.java} (53%) create mode 100644 plc4j/protocols/s7/src/main/java/org/apache/plc4x/java/s7/messages/items/S7BooleanFieldItem.java create mode 100644 plc4j/protocols/s7/src/main/java/org/apache/plc4x/java/s7/messages/items/S7FloatingPointFieldItem.java create mode 100644 plc4j/protocols/s7/src/main/java/org/apache/plc4x/java/s7/messages/items/S7IntegerFieldItem.java create mode 100644 plc4j/protocols/s7/src/main/java/org/apache/plc4x/java/s7/messages/items/S7StringFieldItem.java create mode 100644 plc4j/protocols/s7/src/main/java/org/apache/plc4x/java/s7/messages/items/S7TimeFieldItem.java delete mode 100644 plc4j/protocols/s7/src/main/java/org/apache/plc4x/java/s7/model/S7Address.java delete mode 100644 plc4j/protocols/s7/src/main/java/org/apache/plc4x/java/s7/model/S7BitAddress.java delete mode 100644 plc4j/protocols/s7/src/main/java/org/apache/plc4x/java/s7/model/S7DataBlockAddress.java create mode 100644 plc4j/protocols/s7/src/main/java/org/apache/plc4x/java/s7/model/S7Field.java create mode 100644 plc4j/protocols/s7/src/main/java/org/apache/plc4x/java/s7/netty/util/S7PlcFieldHandler.java delete mode 100644 plc4j/protocols/s7/src/main/java/org/apache/plc4x/java/s7/types/S7DataType.java delete mode 100644 plc4j/protocols/s7/src/test/java/org/apache/plc4x/java/s7/S7PlcReaderSample.java create mode 100644 plc4j/protocols/s7/src/test/java/org/apache/plc4x/java/s7/issues/PLC4X47Test.java delete mode 100644 plc4j/protocols/s7/src/test/java/org/apache/plc4x/java/s7/model/S7AddressTests.java create mode 100644 plc4j/protocols/s7/src/test/java/org/apache/plc4x/java/s7/model/S7FieldTests.java create mode 100644 plc4j/protocols/s7/src/test/java/org/apache/plc4x/java/s7/netty/util/S7PlcFieldHandlerTest.java delete mode 100644 plc4j/protocols/test/src/main/java/org/apache/plc4x/java/test/TestAddress.java create mode 100644 plc4j/protocols/test/src/main/java/org/apache/plc4x/java/test/TestField.java create mode 100644 plc4j/protocols/test/src/main/java/org/apache/plc4x/java/test/TestFieldHandler.java copy plc4j/protocols/{ads/src/test/java/org/apache/plc4x/java/ads/adslib/Output.java => test/src/main/java/org/apache/plc4x/java/test/TestFieldItem.java} (69%) copy plc4j/protocols/{ads/src/main/java/org/apache/plc4x/java/ads/api/tcp/types/package-info.java => test/src/main/java/org/apache/plc4x/java/test/TestType.java} (83%)