You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@plc4x.apache.org by sr...@apache.org on 2021/07/02 15:09:32 UTC
[plc4x] branch develop updated: plc4j: removed the XmlSerializable
interface
This is an automated email from the ASF dual-hosted git repository.
sruehl pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/plc4x.git
The following commit(s) were added to refs/heads/develop by this push:
new 114db2d plc4j: removed the XmlSerializable interface
114db2d is described below
commit 114db2d46cc92d49ba8252267e676a84c9ae3d46
Author: Sebastian Rühl <sr...@apache.org>
AuthorDate: Fri Jul 2 17:08:04 2021 +0200
plc4j: removed the XmlSerializable interface
---
.../org/apache/plc4x/java/ads/field/AdsField.java | 4 +-
.../plc4x/java/ads/field/DirectAdsField.java | 22 ------
.../plc4x/java/ads/field/DirectAdsStringField.java | 22 ------
.../plc4x/java/ads/field/SymbolicAdsField.java | 19 -----
.../java/ads/field/SymbolicAdsStringField.java | 9 ---
.../plc4x/java/canopen/field/CANOpenField.java | 4 +-
.../java/canopen/field/CANOpenHeartbeatField.java | 15 ----
.../plc4x/java/canopen/field/CANOpenNMTField.java | 15 ----
.../plc4x/java/canopen/field/CANOpenPDOField.java | 19 -----
.../plc4x/java/canopen/field/CANOpenSDOField.java | 23 ------
.../plc4x/java/eip/readwrite/field/EipField.java | 30 +-------
.../apache/plc4x/java/mock/field/MockPlcValue.java | 5 --
.../plc4x/java/modbus/field/ModbusField.java | 22 +-----
.../plc4x/java/s7/readwrite/field/S7Field.java | 37 +---------
.../java/s7/readwrite/field/S7StringField.java | 10 ---
.../java/spi/generation/WriteBufferXmlBased.java | 2 +-
.../java/spi/messages/DefaultPlcReadRequest.java | 25 +------
.../java/spi/messages/DefaultPlcReadResponse.java | 26 +------
.../messages/DefaultPlcSubscriptionRequest.java | 10 +--
.../messages/DefaultPlcSubscriptionResponse.java | 9 +--
.../messages/DefaultPlcUnsubscriptionRequest.java | 10 +--
.../messages/DefaultPlcUnsubscriptionResponse.java | 9 +--
.../java/spi/messages/DefaultPlcWriteRequest.java | 39 +---------
.../java/spi/messages/DefaultPlcWriteResponse.java | 28 +------
.../java/spi/messages/utils/ResponseItem.java | 15 +---
.../plc4x/java/spi/utils/XmlSerializable.java | 32 --------
.../plc4x/java/spi/values/PlcBigDecimal.java | 5 --
.../plc4x/java/spi/values/PlcBigInteger.java | 5 --
.../org/apache/plc4x/java/spi/values/PlcDATE.java | 5 --
.../plc4x/java/spi/values/PlcDATE_AND_TIME.java | 5 --
.../apache/plc4x/java/spi/values/PlcIECValue.java | 8 --
.../org/apache/plc4x/java/spi/values/PlcLTIME.java | 5 --
.../org/apache/plc4x/java/spi/values/PlcList.java | 16 ----
.../apache/plc4x/java/spi/values/PlcSTRING.java | 5 --
.../apache/plc4x/java/spi/values/PlcStruct.java | 20 -----
.../org/apache/plc4x/java/spi/values/PlcTIME.java | 5 --
.../plc4x/java/spi/values/PlcTIME_OF_DAY.java | 5 --
.../plc4x/java/spi/values/PlcValueAdapter.java | 4 +-
.../internal/handlers/ApiResponseHandler.java | 43 +++--------
.../resources/protocols/ads/DriverTestsuite.xml | 86 +++++++++++++---------
.../resources/protocols/modbus/DriverTestsuite.xml | 80 +++++++++++---------
.../resources/protocols/s7/DriverTestsuite.xml | 37 ++++++----
42 files changed, 155 insertions(+), 640 deletions(-)
diff --git a/plc4j/drivers/ads/src/main/java/org/apache/plc4x/java/ads/field/AdsField.java b/plc4j/drivers/ads/src/main/java/org/apache/plc4x/java/ads/field/AdsField.java
index a5b2c25..ef3460e 100644
--- a/plc4j/drivers/ads/src/main/java/org/apache/plc4x/java/ads/field/AdsField.java
+++ b/plc4j/drivers/ads/src/main/java/org/apache/plc4x/java/ads/field/AdsField.java
@@ -20,9 +20,9 @@ package org.apache.plc4x.java.ads.field;
import org.apache.plc4x.java.ads.readwrite.types.AdsDataType;
import org.apache.plc4x.java.api.model.PlcField;
-import org.apache.plc4x.java.spi.utils.XmlSerializable;
+import org.apache.plc4x.java.spi.utils.Serializable;
-public interface AdsField extends PlcField, XmlSerializable {
+public interface AdsField extends PlcField, Serializable {
AdsDataType getAdsDataType();
diff --git a/plc4j/drivers/ads/src/main/java/org/apache/plc4x/java/ads/field/DirectAdsField.java b/plc4j/drivers/ads/src/main/java/org/apache/plc4x/java/ads/field/DirectAdsField.java
index c084f92..dd30aec 100644
--- a/plc4j/drivers/ads/src/main/java/org/apache/plc4x/java/ads/field/DirectAdsField.java
+++ b/plc4j/drivers/ads/src/main/java/org/apache/plc4x/java/ads/field/DirectAdsField.java
@@ -163,26 +163,4 @@ public class DirectAdsField implements AdsField {
writeBuffer.popContext(getClass().getSimpleName());
}
- @Override
- public void xmlSerialize(Element parent) {
- Document doc = parent.getOwnerDocument();
- Element messageElement = doc.createElement(getClass().getSimpleName());
- parent.appendChild(messageElement);
- Element indexGroupElement = doc.createElement("indexGroup");
- indexGroupElement.appendChild(doc.createTextNode(Long.toString(getIndexGroup())));
- messageElement.appendChild(indexGroupElement);
-
- Element indexOffsetElement = doc.createElement("indexOffset");
- indexOffsetElement.appendChild(doc.createTextNode(Long.toString(getIndexOffset())));
- messageElement.appendChild(indexOffsetElement);
-
- Element numberOfElementsElement = doc.createElement("numberOfElements");
- numberOfElementsElement.appendChild(doc.createTextNode(Integer.toString(getNumberOfElements())));
- messageElement.appendChild(numberOfElementsElement);
-
- Element datatypeElement = doc.createElement("dataType");
- datatypeElement.appendChild(doc.createTextNode(getPlcDataType()));
- messageElement.appendChild(datatypeElement);
- }
-
}
diff --git a/plc4j/drivers/ads/src/main/java/org/apache/plc4x/java/ads/field/DirectAdsStringField.java b/plc4j/drivers/ads/src/main/java/org/apache/plc4x/java/ads/field/DirectAdsStringField.java
index 9d80ca4..720fc7c 100644
--- a/plc4j/drivers/ads/src/main/java/org/apache/plc4x/java/ads/field/DirectAdsStringField.java
+++ b/plc4j/drivers/ads/src/main/java/org/apache/plc4x/java/ads/field/DirectAdsStringField.java
@@ -117,26 +117,4 @@ public class DirectAdsStringField extends DirectAdsField implements AdsStringFie
writeBuffer.popContext(getClass().getSimpleName());
}
- @Override
- public void xmlSerialize(Element parent) {
- Document doc = parent.getOwnerDocument();
- Element messageElement = doc.createElement(getClass().getSimpleName());
- parent.appendChild(messageElement);
- Element indexGroupElement = doc.createElement("indexGroup");
- indexGroupElement.appendChild(doc.createTextNode(Long.toString(getIndexGroup())));
- messageElement.appendChild(indexGroupElement);
-
- Element indexOffsetElement = doc.createElement("indexOffset");
- indexOffsetElement.appendChild(doc.createTextNode(Long.toString(getIndexOffset())));
- messageElement.appendChild(indexOffsetElement);
-
- Element numberOfElementsElement = doc.createElement("numberOfElements");
- numberOfElementsElement.appendChild(doc.createTextNode(Integer.toString(getNumberOfElements())));
- messageElement.appendChild(numberOfElementsElement);
-
- Element datatypeElement = doc.createElement("dataType");
- datatypeElement.appendChild(doc.createTextNode(getPlcDataType()));
- messageElement.appendChild(datatypeElement);
- }
-
}
diff --git a/plc4j/drivers/ads/src/main/java/org/apache/plc4x/java/ads/field/SymbolicAdsField.java b/plc4j/drivers/ads/src/main/java/org/apache/plc4x/java/ads/field/SymbolicAdsField.java
index 12a4ced..5e12ebc 100644
--- a/plc4j/drivers/ads/src/main/java/org/apache/plc4x/java/ads/field/SymbolicAdsField.java
+++ b/plc4j/drivers/ads/src/main/java/org/apache/plc4x/java/ads/field/SymbolicAdsField.java
@@ -129,23 +129,4 @@ public class SymbolicAdsField implements AdsField {
writeBuffer.writeString("dataType", dataType.getBytes(StandardCharsets.UTF_8).length * 8, StandardCharsets.UTF_8.name(), dataType);
writeBuffer.popContext(getClass().getSimpleName());
}
-
- @Override
- public void xmlSerialize(Element parent) {
- Document doc = parent.getOwnerDocument();
- Element messageElement = doc.createElement(getClass().getSimpleName());
- parent.appendChild(messageElement);
-
- Element symbolicAddressElement = doc.createElement("symbolicAddress");
- symbolicAddressElement.appendChild(doc.createTextNode(getSymbolicAddress()));
- messageElement.appendChild(symbolicAddressElement);
-
- Element numberOfElementsElement = doc.createElement("numberOfElements");
- numberOfElementsElement.appendChild(doc.createTextNode(Integer.toString(getNumberOfElements())));
- messageElement.appendChild(numberOfElementsElement);
-
- Element datatypeElement = doc.createElement("dataType");
- datatypeElement.appendChild(doc.createTextNode(getPlcDataType()));
- messageElement.appendChild(datatypeElement);
- }
}
diff --git a/plc4j/drivers/ads/src/main/java/org/apache/plc4x/java/ads/field/SymbolicAdsStringField.java b/plc4j/drivers/ads/src/main/java/org/apache/plc4x/java/ads/field/SymbolicAdsStringField.java
index bceacf9..776b51d 100644
--- a/plc4j/drivers/ads/src/main/java/org/apache/plc4x/java/ads/field/SymbolicAdsStringField.java
+++ b/plc4j/drivers/ads/src/main/java/org/apache/plc4x/java/ads/field/SymbolicAdsStringField.java
@@ -95,13 +95,4 @@ public class SymbolicAdsStringField extends SymbolicAdsField implements AdsStrin
writeBuffer.writeInt("stringLength", 64, getStringLength());
writeBuffer.popContext(getClass().getSimpleName());
}
-
- @Override
- public void xmlSerialize(Element parent) {
- super.xmlSerialize(parent);
- Document doc = parent.getOwnerDocument();
- Element byteOffsetElement = doc.createElement("stringLength");
- byteOffsetElement.appendChild(doc.createTextNode(Integer.toString(getStringLength())));
- parent.getFirstChild().appendChild(byteOffsetElement);
- }
}
diff --git a/plc4j/drivers/canopen/src/main/java/org/apache/plc4x/java/canopen/field/CANOpenField.java b/plc4j/drivers/canopen/src/main/java/org/apache/plc4x/java/canopen/field/CANOpenField.java
index 443e327..09849a1 100644
--- a/plc4j/drivers/canopen/src/main/java/org/apache/plc4x/java/canopen/field/CANOpenField.java
+++ b/plc4j/drivers/canopen/src/main/java/org/apache/plc4x/java/canopen/field/CANOpenField.java
@@ -20,14 +20,14 @@ package org.apache.plc4x.java.canopen.field;
import org.apache.plc4x.java.api.exceptions.PlcInvalidFieldException;
import org.apache.plc4x.java.api.model.PlcField;
-import org.apache.plc4x.java.spi.utils.XmlSerializable;
+import org.apache.plc4x.java.spi.utils.Serializable;
import java.util.regex.Pattern;
/**
* Generic field type which defines node address and address pattern (index/subindex).
*/
-public abstract class CANOpenField implements PlcField, XmlSerializable {
+public abstract class CANOpenField implements PlcField, Serializable {
public static final Pattern ADDRESS_PATTERN = Pattern.compile("(?:(0[xX](?<indexHex>[0-9a-fA-F]+))|(?<index>\\d+))/(?:(0[xX](?<subIndexHex>[0-9a-fA-F]+))|(?<subIndex>\\d+)):(?<canDataType>\\w+)(\\[(?<numberOfElements>\\d)])?");
public static final Pattern NODE_PATTERN = Pattern.compile("(?<nodeId>\\d+)");
diff --git a/plc4j/drivers/canopen/src/main/java/org/apache/plc4x/java/canopen/field/CANOpenHeartbeatField.java b/plc4j/drivers/canopen/src/main/java/org/apache/plc4x/java/canopen/field/CANOpenHeartbeatField.java
index 501150f..180cd1c 100644
--- a/plc4j/drivers/canopen/src/main/java/org/apache/plc4x/java/canopen/field/CANOpenHeartbeatField.java
+++ b/plc4j/drivers/canopen/src/main/java/org/apache/plc4x/java/canopen/field/CANOpenHeartbeatField.java
@@ -76,19 +76,4 @@ public class CANOpenHeartbeatField extends CANOpenField implements CANOpenSubscr
writeBuffer.popContext(getClass().getSimpleName());
}
-
- @Override
- public void xmlSerialize(Element parent) {
- Document doc = parent.getOwnerDocument();
- Element messageElement = doc.createElement(getClass().getSimpleName());
- parent.appendChild(messageElement);
-
- Element serviceElement = doc.createElement("service");
- serviceElement.appendChild(doc.createTextNode(getService().name()));
- messageElement.appendChild(serviceElement);
-
- Element nodeElement = doc.createElement("node");
- nodeElement.appendChild(doc.createTextNode(Integer.toString(getNodeId())));
- messageElement.appendChild(nodeElement);
- }
}
diff --git a/plc4j/drivers/canopen/src/main/java/org/apache/plc4x/java/canopen/field/CANOpenNMTField.java b/plc4j/drivers/canopen/src/main/java/org/apache/plc4x/java/canopen/field/CANOpenNMTField.java
index 9bff00d..abbbd11 100644
--- a/plc4j/drivers/canopen/src/main/java/org/apache/plc4x/java/canopen/field/CANOpenNMTField.java
+++ b/plc4j/drivers/canopen/src/main/java/org/apache/plc4x/java/canopen/field/CANOpenNMTField.java
@@ -77,19 +77,4 @@ public class CANOpenNMTField extends CANOpenField implements CANOpenSubscription
writeBuffer.popContext(getClass().getSimpleName());
}
-
- @Override
- public void xmlSerialize(Element parent) {
- Document doc = parent.getOwnerDocument();
- Element messageElement = doc.createElement(getClass().getSimpleName());
- parent.appendChild(messageElement);
-
- Element serviceElement = doc.createElement("service");
- serviceElement.appendChild(doc.createTextNode(getService().name()));
- messageElement.appendChild(serviceElement);
-
- Element nodeElement = doc.createElement("node");
- nodeElement.appendChild(doc.createTextNode(Integer.toString(getNodeId())));
- messageElement.appendChild(nodeElement);
- }
}
diff --git a/plc4j/drivers/canopen/src/main/java/org/apache/plc4x/java/canopen/field/CANOpenPDOField.java b/plc4j/drivers/canopen/src/main/java/org/apache/plc4x/java/canopen/field/CANOpenPDOField.java
index d15d155..b24bb10 100644
--- a/plc4j/drivers/canopen/src/main/java/org/apache/plc4x/java/canopen/field/CANOpenPDOField.java
+++ b/plc4j/drivers/canopen/src/main/java/org/apache/plc4x/java/canopen/field/CANOpenPDOField.java
@@ -96,23 +96,4 @@ public class CANOpenPDOField extends CANOpenField implements CANOpenSubscription
writeBuffer.popContext(getClass().getSimpleName());
}
-
- @Override
- public void xmlSerialize(Element parent) {
- Document doc = parent.getOwnerDocument();
- Element messageElement = doc.createElement(getClass().getSimpleName());
- parent.appendChild(messageElement);
-
- Element serviceElement = doc.createElement("service");
- serviceElement.appendChild(doc.createTextNode(service.name()));
- messageElement.appendChild(serviceElement);
-
- Element nodeElement = doc.createElement("node");
- nodeElement.appendChild(doc.createTextNode(Integer.toString(getNodeId())));
- messageElement.appendChild(nodeElement);
-
- Element dataType = doc.createElement("dataType");
- dataType.appendChild(doc.createTextNode(getCanOpenDataType().name()));
- messageElement.appendChild(dataType);
- }
}
diff --git a/plc4j/drivers/canopen/src/main/java/org/apache/plc4x/java/canopen/field/CANOpenSDOField.java b/plc4j/drivers/canopen/src/main/java/org/apache/plc4x/java/canopen/field/CANOpenSDOField.java
index 8745977..85ffbeb 100644
--- a/plc4j/drivers/canopen/src/main/java/org/apache/plc4x/java/canopen/field/CANOpenSDOField.java
+++ b/plc4j/drivers/canopen/src/main/java/org/apache/plc4x/java/canopen/field/CANOpenSDOField.java
@@ -120,27 +120,4 @@ public class CANOpenSDOField extends CANOpenField {
writeBuffer.popContext(getClass().getSimpleName());
}
- @Override
- public void xmlSerialize(Element parent) {
- Document doc = parent.getOwnerDocument();
- Element messageElement = doc.createElement(getClass().getSimpleName());
- parent.appendChild(messageElement);
-
- Element blockNumberElement = doc.createElement("node");
- blockNumberElement.appendChild(doc.createTextNode(Integer.toString(getNodeId())));
- messageElement.appendChild(blockNumberElement);
-
- Element indexElement = doc.createElement("index");
- indexElement.appendChild(doc.createTextNode(Integer.toString(getIndex())));
- messageElement.appendChild(indexElement);
-
- Element subIndexElement = doc.createElement("subIndex");
- subIndexElement.appendChild(doc.createTextNode(Integer.toString(getSubIndex())));
- messageElement.appendChild(subIndexElement);
-
- Element dataType = doc.createElement("dataType");
- dataType.appendChild(doc.createTextNode(getCanOpenDataType().name()));
- messageElement.appendChild(dataType);
- }
-
}
diff --git a/plc4j/drivers/eip/src/main/java/org/apache/plc4x/java/eip/readwrite/field/EipField.java b/plc4j/drivers/eip/src/main/java/org/apache/plc4x/java/eip/readwrite/field/EipField.java
index 5479a53..6c87ce7 100644
--- a/plc4j/drivers/eip/src/main/java/org/apache/plc4x/java/eip/readwrite/field/EipField.java
+++ b/plc4j/drivers/eip/src/main/java/org/apache/plc4x/java/eip/readwrite/field/EipField.java
@@ -22,15 +22,13 @@ import org.apache.plc4x.java.api.model.PlcField;
import org.apache.plc4x.java.eip.readwrite.types.CIPDataTypeCode;
import org.apache.plc4x.java.spi.generation.ParseException;
import org.apache.plc4x.java.spi.generation.WriteBuffer;
-import org.apache.plc4x.java.spi.utils.XmlSerializable;
-import org.w3c.dom.Document;
-import org.w3c.dom.Element;
+import org.apache.plc4x.java.spi.utils.Serializable;
import java.nio.charset.StandardCharsets;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
-public class EipField implements PlcField, XmlSerializable {
+public class EipField implements PlcField, Serializable {
private static final Pattern ADDRESS_PATTERN =
Pattern.compile("^%(?<tag>[a-zA-Z_.0-9]+\\[?[0-9]*\\]?):?(?<dataType>[A-Z]*):?(?<elementNb>[0-9]*)");
@@ -149,32 +147,10 @@ public class EipField implements PlcField, XmlSerializable {
writeBuffer.writeString("type", type.name().getBytes(StandardCharsets.UTF_8).length * 8, StandardCharsets.UTF_8.name(), type.name());
writeBuffer.writeInt("elementNb", 64, elementNb);
// TODO: remove this (not language agnostic)
- String defaultJavaType= (type == null ? Object.class : getDefaultJavaType()).getName();
+ String defaultJavaType = (type == null ? Object.class : getDefaultJavaType()).getName();
writeBuffer.writeString("defaultJavaType", defaultJavaType.getBytes(StandardCharsets.UTF_8).length * 8, StandardCharsets.UTF_8.name(), defaultJavaType);
writeBuffer.popContext(getClass().getSimpleName());
}
- @Override
- public void xmlSerialize(Element parent) {
- Document doc = parent.getOwnerDocument();
- Element messageElement = doc.createElement(getClass().getSimpleName());
- parent.appendChild(messageElement);
-
- Element blockNumberElement = doc.createElement("node");
- blockNumberElement.appendChild(doc.createTextNode(tag));
- messageElement.appendChild(blockNumberElement);
-
- Element indexElement = doc.createElement("type");
- indexElement.appendChild(doc.createTextNode(type == null ? "" : type.name()));
- messageElement.appendChild(indexElement);
-
- Element subIndexElement = doc.createElement("elementNb");
- subIndexElement.appendChild(doc.createTextNode(Integer.toString(elementNb)));
- messageElement.appendChild(subIndexElement);
-
- Element dataType = doc.createElement("defaultJavaType");
- dataType.appendChild(doc.createTextNode((type == null ? Object.class : getDefaultJavaType()).getName()));
- messageElement.appendChild(dataType);
- }
}
diff --git a/plc4j/drivers/mock/src/main/java/org/apache/plc4x/java/mock/field/MockPlcValue.java b/plc4j/drivers/mock/src/main/java/org/apache/plc4x/java/mock/field/MockPlcValue.java
index 43d450e..fed09de 100644
--- a/plc4j/drivers/mock/src/main/java/org/apache/plc4x/java/mock/field/MockPlcValue.java
+++ b/plc4j/drivers/mock/src/main/java/org/apache/plc4x/java/mock/field/MockPlcValue.java
@@ -42,9 +42,4 @@ public class MockPlcValue extends PlcValueAdapter {
throw new PlcNotImplementedException("Not implemented");
}
- @Override
- public void xmlSerialize(Element parent) {
- throw new PlcNotImplementedException("Not implemented");
- }
-
}
diff --git a/plc4j/drivers/modbus/src/main/java/org/apache/plc4x/java/modbus/field/ModbusField.java b/plc4j/drivers/modbus/src/main/java/org/apache/plc4x/java/modbus/field/ModbusField.java
index e822aa5..896a8fa 100644
--- a/plc4j/drivers/modbus/src/main/java/org/apache/plc4x/java/modbus/field/ModbusField.java
+++ b/plc4j/drivers/modbus/src/main/java/org/apache/plc4x/java/modbus/field/ModbusField.java
@@ -24,7 +24,7 @@ import org.apache.plc4x.java.api.model.PlcField;
import org.apache.plc4x.java.modbus.readwrite.types.*;
import org.apache.plc4x.java.spi.generation.ParseException;
import org.apache.plc4x.java.spi.generation.WriteBuffer;
-import org.apache.plc4x.java.spi.utils.XmlSerializable;
+import org.apache.plc4x.java.spi.utils.Serializable;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
@@ -32,7 +32,7 @@ import java.nio.charset.StandardCharsets;
import java.util.Objects;
import java.util.regex.Pattern;
-public abstract class ModbusField implements PlcField, XmlSerializable {
+public abstract class ModbusField implements PlcField, Serializable {
public static final Pattern ADDRESS_PATTERN = Pattern.compile("(?<address>\\d+)(:(?<datatype>[a-zA-Z_]+))?(\\[(?<quantity>\\d+)])?");
public static final Pattern FIXED_DIGIT_MODBUS_PATTERN = Pattern.compile("(?<address>\\d{4,5})?(:(?<datatype>[a-zA-Z_]+))?(\\[(?<quantity>\\d+)])?");
@@ -140,22 +140,4 @@ public abstract class ModbusField implements PlcField, XmlSerializable {
writeBuffer.popContext(getClass().getSimpleName());
}
- @Override
- public void xmlSerialize(Element parent) {
- Document doc = parent.getOwnerDocument();
- Element messageElement = doc.createElement(getClass().getSimpleName());
- parent.appendChild(messageElement);
- Element addressElement = doc.createElement("address");
- addressElement.appendChild(doc.createTextNode(Integer.toString(getAddress())));
- messageElement.appendChild(addressElement);
-
- Element quantityElement = doc.createElement("numberOfElements");
- quantityElement.appendChild(doc.createTextNode(Integer.toString(getNumberOfElements())));
- messageElement.appendChild(quantityElement);
-
- Element datatypeElement = doc.createElement("dataType");
- datatypeElement.appendChild(doc.createTextNode(getPlcDataType()));
- messageElement.appendChild(datatypeElement);
- }
-
}
diff --git a/plc4j/drivers/s7/src/main/java/org/apache/plc4x/java/s7/readwrite/field/S7Field.java b/plc4j/drivers/s7/src/main/java/org/apache/plc4x/java/s7/readwrite/field/S7Field.java
index 68ff4f2..53ba02a 100644
--- a/plc4j/drivers/s7/src/main/java/org/apache/plc4x/java/s7/readwrite/field/S7Field.java
+++ b/plc4j/drivers/s7/src/main/java/org/apache/plc4x/java/s7/readwrite/field/S7Field.java
@@ -35,9 +35,7 @@ import org.apache.plc4x.java.spi.generation.ParseException;
import org.apache.plc4x.java.spi.generation.ReadBuffer;
import org.apache.plc4x.java.spi.generation.ReadBufferByteBased;
import org.apache.plc4x.java.spi.generation.WriteBuffer;
-import org.apache.plc4x.java.spi.utils.XmlSerializable;
-import org.w3c.dom.Document;
-import org.w3c.dom.Element;
+import org.apache.plc4x.java.spi.utils.Serializable;
import java.nio.charset.StandardCharsets;
import java.time.LocalDate;
@@ -47,7 +45,7 @@ import java.util.regex.Matcher;
import java.util.regex.Pattern;
@JsonTypeInfo(use = JsonTypeInfo.Id.CLASS, property = "className")
-public class S7Field implements PlcField, XmlSerializable {
+public class S7Field implements PlcField, Serializable {
//byteOffset theoretically can reach up to 2097151 ... see checkByteOffset() below --> 7digits
private static final Pattern ADDRESS_PATTERN =
@@ -377,35 +375,4 @@ public class S7Field implements PlcField, XmlSerializable {
writeBuffer.popContext(getClass().getSimpleName());
}
- @Override
- public void xmlSerialize(Element parent) {
- Document doc = parent.getOwnerDocument();
- Element messageElement = doc.createElement(getClass().getSimpleName());
- parent.appendChild(messageElement);
-
- Element memoryAreaElement = doc.createElement("memoryArea");
- memoryAreaElement.appendChild(doc.createTextNode(getMemoryArea().name()));
- messageElement.appendChild(memoryAreaElement);
-
- Element blockNumberElement = doc.createElement("blockNumber");
- blockNumberElement.appendChild(doc.createTextNode(Integer.toString(getBlockNumber())));
- messageElement.appendChild(blockNumberElement);
-
- Element byteOffsetElement = doc.createElement("byteOffset");
- byteOffsetElement.appendChild(doc.createTextNode(Integer.toString(getByteOffset())));
- messageElement.appendChild(byteOffsetElement);
-
- Element bitOffsetElement = doc.createElement("bitOffset");
- bitOffsetElement.appendChild(doc.createTextNode(Integer.toString(getBitOffset())));
- messageElement.appendChild(bitOffsetElement);
-
- Element numElementsElement = doc.createElement("numElements");
- numElementsElement.appendChild(doc.createTextNode(Integer.toString(getNumberOfElements())));
- messageElement.appendChild(numElementsElement);
-
- Element dataTypeElement = doc.createElement("dataType");
- dataTypeElement.appendChild(doc.createTextNode(getDataType().name()));
- messageElement.appendChild(dataTypeElement);
- }
-
}
diff --git a/plc4j/drivers/s7/src/main/java/org/apache/plc4x/java/s7/readwrite/field/S7StringField.java b/plc4j/drivers/s7/src/main/java/org/apache/plc4x/java/s7/readwrite/field/S7StringField.java
index de9276e..d74cc31 100644
--- a/plc4j/drivers/s7/src/main/java/org/apache/plc4x/java/s7/readwrite/field/S7StringField.java
+++ b/plc4j/drivers/s7/src/main/java/org/apache/plc4x/java/s7/readwrite/field/S7StringField.java
@@ -65,14 +65,4 @@ public class S7StringField extends S7Field {
writeBuffer.popContext(getClass().getSimpleName());
}
- @Override
- public void xmlSerialize(Element parent) {
- super.xmlSerialize(parent);
-
- Document doc = parent.getOwnerDocument();
- Element byteOffsetElement = doc.createElement("stringLength");
- byteOffsetElement.appendChild(doc.createTextNode(Integer.toString(getStringLength())));
- parent.getFirstChild().appendChild(byteOffsetElement);
- }
-
}
diff --git a/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/generation/WriteBufferXmlBased.java b/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/generation/WriteBufferXmlBased.java
index 14436e1..2379298 100644
--- a/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/generation/WriteBufferXmlBased.java
+++ b/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/generation/WriteBufferXmlBased.java
@@ -215,7 +215,7 @@ public class WriteBufferXmlBased implements WriteBuffer, BufferCommons {
String context = stack.pop();
if (!context.equals(logicalName)) {
- throw new PlcRuntimeException("Unexpected pop context '" + context + '\'');
+ throw new PlcRuntimeException("Unexpected pop context '" + context + '\''+ ". Expected '"+logicalName+ '\'');
}
if (stack.isEmpty()) {
try {
diff --git a/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/messages/DefaultPlcReadRequest.java b/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/messages/DefaultPlcReadRequest.java
index 715d5e1..f0317af 100644
--- a/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/messages/DefaultPlcReadRequest.java
+++ b/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/messages/DefaultPlcReadRequest.java
@@ -29,22 +29,18 @@ import org.apache.plc4x.java.spi.connection.PlcFieldHandler;
import org.apache.plc4x.java.spi.generation.ParseException;
import org.apache.plc4x.java.spi.generation.WriteBuffer;
import org.apache.plc4x.java.spi.utils.Serializable;
-import org.apache.plc4x.java.spi.utils.XmlSerializable;
-import org.w3c.dom.Document;
-import org.w3c.dom.Element;
import java.util.LinkedHashMap;
import java.util.LinkedHashSet;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
-import java.util.TreeMap;
import java.util.concurrent.CompletableFuture;
import java.util.function.Supplier;
import java.util.stream.Collectors;
@JsonTypeInfo(use = JsonTypeInfo.Id.CLASS, property = "className")
-public class DefaultPlcReadRequest implements PlcReadRequest, PlcFieldRequest, XmlSerializable {
+public class DefaultPlcReadRequest implements PlcReadRequest, PlcFieldRequest, Serializable {
private final PlcReader reader;
// This is intentionally a linked hash map in order to keep the order of how elements were added.
@@ -131,25 +127,6 @@ public class DefaultPlcReadRequest implements PlcReadRequest, PlcFieldRequest, X
writeBuffer.popContext("PlcReadRequest");
}
- @Override
- public void xmlSerialize(Element parent) {
- Document doc = parent.getOwnerDocument();
- Element messageElement = doc.createElement("PlcReadRequest");
- Element fieldsElement = doc.createElement("fields");
- messageElement.appendChild(fieldsElement);
- for (Map.Entry<String, PlcField> fieldEntry : fields.entrySet()) {
- String fieldName = fieldEntry.getKey();
- Element fieldNameElement = doc.createElement(fieldName);
- fieldsElement.appendChild(fieldNameElement);
- PlcField field = fieldEntry.getValue();
- if(!(field instanceof XmlSerializable)) {
- throw new RuntimeException("Error serializing. Field doesn't implement XmlSerializable");
- }
- ((XmlSerializable) field).xmlSerialize(fieldNameElement);
- }
- parent.appendChild(messageElement);
- }
-
public static class Builder implements PlcReadRequest.Builder {
private final PlcReader reader;
diff --git a/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/messages/DefaultPlcReadResponse.java b/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/messages/DefaultPlcReadResponse.java
index e81dd1f..4173e56 100644
--- a/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/messages/DefaultPlcReadResponse.java
+++ b/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/messages/DefaultPlcReadResponse.java
@@ -28,13 +28,10 @@ import org.apache.plc4x.java.api.types.PlcResponseCode;
import org.apache.plc4x.java.spi.generation.ParseException;
import org.apache.plc4x.java.spi.generation.WriteBuffer;
import org.apache.plc4x.java.spi.utils.Serializable;
-import org.apache.plc4x.java.spi.utils.XmlSerializable;
import org.apache.plc4x.java.spi.values.PlcList;
import org.apache.plc4x.java.api.value.PlcValue;
import org.apache.plc4x.java.spi.values.PlcStruct;
import org.apache.plc4x.java.spi.messages.utils.ResponseItem;
-import org.w3c.dom.Document;
-import org.w3c.dom.Element;
import java.math.BigDecimal;
import java.math.BigInteger;
@@ -44,7 +41,7 @@ import java.time.LocalTime;
import java.util.*;
@JsonTypeInfo(use = JsonTypeInfo.Id.CLASS, property = "className")
-public class DefaultPlcReadResponse implements PlcReadResponse, XmlSerializable {
+public class DefaultPlcReadResponse implements PlcReadResponse, Serializable {
private final PlcReadRequest request;
private final Map<String, ResponseItem<PlcValue>> values;
@@ -735,30 +732,11 @@ public class DefaultPlcReadResponse implements PlcReadResponse, XmlSerializable
writeBuffer.pushContext(fieldName);
ResponseItem<PlcValue> valueResponse = valueEntry.getValue();
valueResponse.serialize(writeBuffer);
- writeBuffer.pushContext(fieldName);
+ writeBuffer.popContext(fieldName);
}
writeBuffer.popContext("values");
writeBuffer.popContext("PlcReadResponse");
}
- @Override
- public void xmlSerialize(Element parent) {
- Document doc = parent.getOwnerDocument();
- Element messageElement = doc.createElement("PlcReadResponse");
- if(request instanceof XmlSerializable) {
- ((XmlSerializable) request).xmlSerialize(messageElement);
- }
- Element valuesElement = doc.createElement("values");
- messageElement.appendChild(valuesElement);
- for (Map.Entry<String, ResponseItem<PlcValue>> valueEntry : values.entrySet()) {
- String fieldName = valueEntry.getKey();
- Element fieldNameElement = doc.createElement(fieldName);
- valuesElement.appendChild(fieldNameElement);
- ResponseItem<PlcValue> valueResponse = valueEntry.getValue();
- valueResponse.xmlSerialize(fieldNameElement);
- }
- parent.appendChild(messageElement);
- }
-
}
diff --git a/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/messages/DefaultPlcSubscriptionRequest.java b/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/messages/DefaultPlcSubscriptionRequest.java
index 0dece02..a4ebd18 100644
--- a/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/messages/DefaultPlcSubscriptionRequest.java
+++ b/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/messages/DefaultPlcSubscriptionRequest.java
@@ -29,14 +29,11 @@ import org.apache.plc4x.java.api.messages.PlcSubscriptionResponse;
import org.apache.plc4x.java.api.model.PlcField;
import org.apache.plc4x.java.api.model.PlcSubscriptionField;
import org.apache.plc4x.java.api.types.PlcSubscriptionType;
-import org.apache.plc4x.java.api.value.PlcValue;
import org.apache.plc4x.java.spi.connection.PlcFieldHandler;
import org.apache.plc4x.java.spi.generation.ParseException;
import org.apache.plc4x.java.spi.generation.WriteBuffer;
-import org.apache.plc4x.java.spi.messages.utils.ResponseItem;
import org.apache.plc4x.java.spi.model.DefaultPlcSubscriptionField;
import org.apache.plc4x.java.spi.utils.Serializable;
-import org.apache.plc4x.java.spi.utils.XmlSerializable;
import org.w3c.dom.Element;
import java.time.Duration;
@@ -45,7 +42,7 @@ import java.util.concurrent.CompletableFuture;
import java.util.stream.Collectors;
@JsonTypeInfo(use = JsonTypeInfo.Id.CLASS, property = "className")
-public class DefaultPlcSubscriptionRequest implements PlcSubscriptionRequest, XmlSerializable {
+public class DefaultPlcSubscriptionRequest implements PlcSubscriptionRequest, Serializable {
private final PlcSubscriber subscriber;
@@ -120,11 +117,6 @@ public class DefaultPlcSubscriptionRequest implements PlcSubscriptionRequest, Xm
writeBuffer.popContext("PlcSubscriptionRequest");
}
- @Override
- public void xmlSerialize(Element parent) {
- // TODO: Implement
- }
-
public static class Builder implements PlcSubscriptionRequest.Builder {
private final PlcSubscriber subscriber;
diff --git a/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/messages/DefaultPlcSubscriptionResponse.java b/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/messages/DefaultPlcSubscriptionResponse.java
index f56cd47..be4b938 100644
--- a/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/messages/DefaultPlcSubscriptionResponse.java
+++ b/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/messages/DefaultPlcSubscriptionResponse.java
@@ -30,12 +30,10 @@ import org.apache.plc4x.java.api.messages.PlcSubscriptionResponse;
import org.apache.plc4x.java.api.model.PlcSubscriptionField;
import org.apache.plc4x.java.api.model.PlcSubscriptionHandle;
import org.apache.plc4x.java.api.types.PlcResponseCode;
-import org.apache.plc4x.java.api.value.PlcValue;
import org.apache.plc4x.java.spi.generation.ParseException;
import org.apache.plc4x.java.spi.generation.WriteBuffer;
import org.apache.plc4x.java.spi.messages.utils.ResponseItem;
import org.apache.plc4x.java.spi.utils.Serializable;
-import org.apache.plc4x.java.spi.utils.XmlSerializable;
import org.w3c.dom.Element;
import java.util.Collection;
@@ -43,7 +41,7 @@ import java.util.Map;
import java.util.stream.Collectors;
@JsonTypeInfo(use = JsonTypeInfo.Id.CLASS, property = "className")
-public class DefaultPlcSubscriptionResponse implements PlcSubscriptionResponse, PlcResponse, XmlSerializable {
+public class DefaultPlcSubscriptionResponse implements PlcSubscriptionResponse, PlcResponse, Serializable {
private final PlcSubscriptionRequest request;
@@ -126,9 +124,4 @@ public class DefaultPlcSubscriptionResponse implements PlcSubscriptionResponse,
writeBuffer.popContext("PlcSubscriptionResponse");
}
- @Override
- public void xmlSerialize(Element parent) {
- // TODO: Implement
- }
-
}
diff --git a/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/messages/DefaultPlcUnsubscriptionRequest.java b/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/messages/DefaultPlcUnsubscriptionRequest.java
index a85e5a4..c4ac023 100644
--- a/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/messages/DefaultPlcUnsubscriptionRequest.java
+++ b/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/messages/DefaultPlcUnsubscriptionRequest.java
@@ -28,17 +28,14 @@ import org.apache.plc4x.java.api.messages.PlcUnsubscriptionResponse;
import org.apache.plc4x.java.api.model.PlcSubscriptionHandle;
import org.apache.plc4x.java.spi.generation.ParseException;
import org.apache.plc4x.java.spi.generation.WriteBuffer;
-import org.apache.plc4x.java.spi.messages.utils.ResponseItem;
import org.apache.plc4x.java.spi.utils.Serializable;
-import org.apache.plc4x.java.spi.utils.XmlSerializable;
-import org.w3c.dom.Element;
import java.util.*;
import java.util.concurrent.CompletableFuture;
import java.util.stream.Collectors;
@JsonTypeInfo(use = JsonTypeInfo.Id.CLASS, property = "className")
-public class DefaultPlcUnsubscriptionRequest implements PlcUnsubscriptionRequest, PlcRequest, XmlSerializable {
+public class DefaultPlcUnsubscriptionRequest implements PlcUnsubscriptionRequest, PlcRequest, Serializable {
private final PlcSubscriber subscriber;
@@ -75,11 +72,6 @@ public class DefaultPlcUnsubscriptionRequest implements PlcUnsubscriptionRequest
// TODO: Implement
}
- @Override
- public void xmlSerialize(Element parent) {
- // TODO: Implement
- }
-
public static class Builder implements PlcUnsubscriptionRequest.Builder {
private final PlcSubscriber subscriber;
diff --git a/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/messages/DefaultPlcUnsubscriptionResponse.java b/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/messages/DefaultPlcUnsubscriptionResponse.java
index 053784b..eb24945 100644
--- a/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/messages/DefaultPlcUnsubscriptionResponse.java
+++ b/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/messages/DefaultPlcUnsubscriptionResponse.java
@@ -26,11 +26,11 @@ import org.apache.plc4x.java.api.messages.PlcUnsubscriptionRequest;
import org.apache.plc4x.java.api.messages.PlcUnsubscriptionResponse;
import org.apache.plc4x.java.spi.generation.ParseException;
import org.apache.plc4x.java.spi.generation.WriteBuffer;
-import org.apache.plc4x.java.spi.utils.XmlSerializable;
+import org.apache.plc4x.java.spi.utils.Serializable;
import org.w3c.dom.Element;
@JsonTypeInfo(use = JsonTypeInfo.Id.CLASS, property = "className")
-public class DefaultPlcUnsubscriptionResponse implements PlcUnsubscriptionResponse, PlcResponse, XmlSerializable {
+public class DefaultPlcUnsubscriptionResponse implements PlcUnsubscriptionResponse, PlcResponse, Serializable {
private final PlcUnsubscriptionRequest request;
@@ -49,9 +49,4 @@ public class DefaultPlcUnsubscriptionResponse implements PlcUnsubscriptionRespon
// TODO: Implement
}
- @Override
- public void xmlSerialize(Element parent) {
- // TODO: Implement
- }
-
}
diff --git a/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/messages/DefaultPlcWriteRequest.java b/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/messages/DefaultPlcWriteRequest.java
index e3df40c..028fc7d 100644
--- a/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/messages/DefaultPlcWriteRequest.java
+++ b/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/messages/DefaultPlcWriteRequest.java
@@ -24,21 +24,17 @@ import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.annotation.JsonTypeInfo;
import org.apache.commons.lang3.tuple.Pair;
import org.apache.commons.lang3.tuple.Triple;
-import org.apache.plc4x.java.api.messages.PlcFieldRequest;
import org.apache.plc4x.java.api.messages.PlcWriteRequest;
import org.apache.plc4x.java.api.messages.PlcWriteResponse;
import org.apache.plc4x.java.api.model.PlcField;
import org.apache.plc4x.java.spi.generation.ParseException;
import org.apache.plc4x.java.spi.generation.WriteBuffer;
import org.apache.plc4x.java.spi.utils.Serializable;
-import org.apache.plc4x.java.spi.utils.XmlSerializable;
import org.apache.plc4x.java.spi.values.PlcList;
import org.apache.plc4x.java.api.value.PlcValue;
import org.apache.plc4x.java.api.value.PlcValueHandler;
import org.apache.plc4x.java.spi.connection.PlcFieldHandler;
import org.apache.plc4x.java.spi.messages.utils.FieldValueItem;
-import org.w3c.dom.Document;
-import org.w3c.dom.Element;
import java.nio.charset.StandardCharsets;
import java.util.LinkedHashMap;
@@ -51,7 +47,7 @@ import java.util.concurrent.CompletableFuture;
import java.util.stream.Collectors;
@JsonTypeInfo(use = JsonTypeInfo.Id.CLASS, property = "className")
-public class DefaultPlcWriteRequest implements PlcWriteRequest, XmlSerializable {
+public class DefaultPlcWriteRequest implements PlcWriteRequest, Serializable {
private final PlcWriter writer;
private final LinkedHashMap<String, FieldValueItem> fields;
@@ -177,39 +173,6 @@ public class DefaultPlcWriteRequest implements PlcWriteRequest, XmlSerializable
writeBuffer.popContext("PlcWriteRequest");
}
- @Override
- public void xmlSerialize(Element parent) {
- Document doc = parent.getOwnerDocument();
- Element messageElement = doc.createElement("PlcWriteRequest");
- Element fieldsElement = doc.createElement("fields");
- messageElement.appendChild(fieldsElement);
- for (Map.Entry<String, FieldValueItem> fieldEntry : fields.entrySet()) {
- FieldValueItem fieldValueItem = fieldEntry.getValue();
- String fieldName = fieldEntry.getKey();
- Element fieldNameElement = doc.createElement(fieldName);
- fieldsElement.appendChild(fieldNameElement);
- PlcField field = fieldValueItem.getField();
- if (!(field instanceof XmlSerializable)) {
- throw new RuntimeException("Error serializing. Field doesn't implement XmlSerializable");
- }
- ((XmlSerializable) field).xmlSerialize(fieldNameElement);
- final PlcValue value = fieldValueItem.getValue();
- if (value instanceof PlcList) {
- PlcList list = (PlcList) value;
- for (PlcValue plcValue : list.getList()) {
- Element fieldValueElement = doc.createElement("value");
- fieldValueElement.setTextContent(plcValue.getString());
- fieldNameElement.appendChild(fieldValueElement);
- }
- } else {
- Element fieldValueElement = doc.createElement("value");
- fieldValueElement.setTextContent(value.getString());
- fieldNameElement.appendChild(fieldValueElement);
- }
- }
- parent.appendChild(messageElement);
- }
-
public static class Builder implements PlcWriteRequest.Builder {
private final PlcWriter writer;
diff --git a/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/messages/DefaultPlcWriteResponse.java b/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/messages/DefaultPlcWriteResponse.java
index 11e8610..76ac676 100644
--- a/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/messages/DefaultPlcWriteResponse.java
+++ b/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/messages/DefaultPlcWriteResponse.java
@@ -26,21 +26,16 @@ import org.apache.plc4x.java.api.messages.PlcWriteRequest;
import org.apache.plc4x.java.api.messages.PlcWriteResponse;
import org.apache.plc4x.java.api.model.PlcField;
import org.apache.plc4x.java.api.types.PlcResponseCode;
-import org.apache.plc4x.java.api.value.PlcValue;
import org.apache.plc4x.java.spi.generation.ParseException;
import org.apache.plc4x.java.spi.generation.WriteBuffer;
-import org.apache.plc4x.java.spi.messages.utils.ResponseItem;
import org.apache.plc4x.java.spi.utils.Serializable;
-import org.apache.plc4x.java.spi.utils.XmlSerializable;
-import org.w3c.dom.Document;
-import org.w3c.dom.Element;
import java.nio.charset.StandardCharsets;
import java.util.Collection;
import java.util.Map;
@JsonTypeInfo(use = JsonTypeInfo.Id.CLASS, property = "className")
-public class DefaultPlcWriteResponse implements PlcWriteResponse, XmlSerializable {
+public class DefaultPlcWriteResponse implements PlcWriteResponse, Serializable {
private final PlcWriteRequest request;
private final Map<String, PlcResponseCode> values;
@@ -79,7 +74,7 @@ public class DefaultPlcWriteResponse implements PlcWriteResponse, XmlSerializabl
public void serialize(WriteBuffer writeBuffer) throws ParseException {
writeBuffer.pushContext("PlcWriteResponse");
- if(request instanceof Serializable) {
+ if (request instanceof Serializable) {
((Serializable) request).serialize(writeBuffer);
}
writeBuffer.pushContext("fields");
@@ -94,23 +89,4 @@ public class DefaultPlcWriteResponse implements PlcWriteResponse, XmlSerializabl
writeBuffer.popContext("PlcWriteResponse");
}
- @Override
- public void xmlSerialize(Element parent) {
- Document doc = parent.getOwnerDocument();
- Element messageElement = doc.createElement("PlcWriteResponse");
- if(request instanceof XmlSerializable) {
- ((XmlSerializable) request).xmlSerialize(messageElement);
- }
- Element fieldsElement = doc.createElement("fields");
- messageElement.appendChild(fieldsElement);
- for (Map.Entry<String, PlcResponseCode> fieldEntry : values.entrySet()) {
- String fieldName = fieldEntry.getKey();
- final PlcResponseCode fieldResponseCode = fieldEntry.getValue();
- Element fieldNameElement = doc.createElement(fieldName);
- fieldNameElement.setAttribute("result", fieldResponseCode.name());
- fieldsElement.appendChild(fieldNameElement);
- }
- parent.appendChild(messageElement);
- }
-
}
diff --git a/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/messages/utils/ResponseItem.java b/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/messages/utils/ResponseItem.java
index 7063985..0c2e374 100644
--- a/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/messages/utils/ResponseItem.java
+++ b/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/messages/utils/ResponseItem.java
@@ -22,12 +22,10 @@ import org.apache.plc4x.java.api.types.PlcResponseCode;
import org.apache.plc4x.java.spi.generation.ParseException;
import org.apache.plc4x.java.spi.generation.WriteBuffer;
import org.apache.plc4x.java.spi.utils.Serializable;
-import org.apache.plc4x.java.spi.utils.XmlSerializable;
-import org.w3c.dom.Element;
import java.nio.charset.StandardCharsets;
-public class ResponseItem<T> implements XmlSerializable {
+public class ResponseItem<T> implements Serializable {
private final PlcResponseCode code;
private final T value;
@@ -59,15 +57,4 @@ public class ResponseItem<T> implements XmlSerializable {
writeBuffer.popContext("ResponseItem");
}
- @Override
- public void xmlSerialize(Element parent) {
- parent.setAttribute("result", code.name());
- if (value != null) {
- if (!(value instanceof XmlSerializable)) {
- throw new RuntimeException("Error serializing. Field value doesn't implement XmlSerializable");
- }
- ((XmlSerializable) value).xmlSerialize(parent);
- }
- }
-
}
diff --git a/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/utils/XmlSerializable.java b/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/utils/XmlSerializable.java
deleted file mode 100644
index f124fde..0000000
--- a/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/utils/XmlSerializable.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements. See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership. The ASF licenses this file
-to you under the Apache License, Version 2.0 (the
-"License"); you may not use this file except in compliance
-with the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing,
-software distributed under the License is distributed on an
-"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-KIND, either express or implied. See the License for the
-specific language governing permissions and limitations
-under the License.
-*/
-package org.apache.plc4x.java.spi.utils;
-
-import org.w3c.dom.Element;
-
-/**
- * @deprecated use the {@link Serializable} interface in combination with the {@link org.apache.plc4x.java.spi.generation.WriteBufferXmlBased} to produce xml.
- */
-@Deprecated
-public interface XmlSerializable extends Serializable {
-
- @Deprecated
- void xmlSerialize(Element parent);
-
-}
diff --git a/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcBigDecimal.java b/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcBigDecimal.java
index a6fa577..b8d2f28 100644
--- a/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcBigDecimal.java
+++ b/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcBigDecimal.java
@@ -169,9 +169,4 @@ public class PlcBigDecimal extends PlcSimpleValue<BigDecimal> {
// TODO: Implement
}
- @Override
- public void xmlSerialize(Element parent) {
- // TODO: Implement
- }
-
}
diff --git a/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcBigInteger.java b/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcBigInteger.java
index c37d05f..b43a9ad 100644
--- a/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcBigInteger.java
+++ b/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcBigInteger.java
@@ -169,9 +169,4 @@ public class PlcBigInteger extends PlcSimpleValue<BigInteger> {
// TODO: Implement
}
- @Override
- public void xmlSerialize(Element parent) {
- // TODO: Implement
- }
-
}
diff --git a/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcDATE.java b/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcDATE.java
index 96fe580..29479f8 100644
--- a/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcDATE.java
+++ b/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcDATE.java
@@ -100,9 +100,4 @@ public class PlcDATE extends PlcSimpleValue<LocalDate> {
// TODO: Implement
}
- @Override
- public void xmlSerialize(Element parent) {
- // TODO: Implement
- }
-
}
diff --git a/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcDATE_AND_TIME.java b/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcDATE_AND_TIME.java
index 8f671e3..a4e98b1 100644
--- a/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcDATE_AND_TIME.java
+++ b/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcDATE_AND_TIME.java
@@ -113,9 +113,4 @@ public class PlcDATE_AND_TIME extends PlcSimpleValue<LocalDateTime> {
// TODO: Implement
}
- @Override
- public void xmlSerialize(Element parent) {
- // TODO: Implement
- }
-
}
diff --git a/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcIECValue.java b/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcIECValue.java
index 0a36bbc..7c66c49 100644
--- a/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcIECValue.java
+++ b/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcIECValue.java
@@ -88,12 +88,4 @@ public abstract class PlcIECValue<T> extends PlcValueAdapter {
writeBuffer.writeString(getClass().getSimpleName(), valueString.getBytes(StandardCharsets.UTF_8).length*8,StandardCharsets.UTF_8.name(),valueString);
}
- @Override
- public void xmlSerialize(Element parent) {
- Document doc = parent.getOwnerDocument();
- Element plcValueElement = doc.createElement(getClass().getSimpleName());
- plcValueElement.appendChild(doc.createTextNode(this.value.toString()));
- parent.appendChild(plcValueElement);
- }
-
}
diff --git a/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcLTIME.java b/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcLTIME.java
index 6f06a04..6a90af5 100644
--- a/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcLTIME.java
+++ b/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcLTIME.java
@@ -95,9 +95,4 @@ public class PlcLTIME extends PlcSimpleValue<Duration> {
// TODO: Implement
}
- @Override
- public void xmlSerialize(Element parent) {
- // TODO: Implement
- }
-
}
diff --git a/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcList.java b/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcList.java
index 625dfe3..67b22fb 100644
--- a/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcList.java
+++ b/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcList.java
@@ -25,9 +25,6 @@ import org.apache.plc4x.java.api.value.PlcValue;
import org.apache.plc4x.java.spi.generation.ParseException;
import org.apache.plc4x.java.spi.generation.WriteBuffer;
import org.apache.plc4x.java.spi.utils.Serializable;
-import org.apache.plc4x.java.spi.utils.XmlSerializable;
-import org.w3c.dom.Document;
-import org.w3c.dom.Element;
import java.util.Collections;
import java.util.List;
@@ -104,17 +101,4 @@ public class PlcList extends PlcValueAdapter {
writeBuffer.popContext("PlcList");
}
- @Override
- public void xmlSerialize(Element parent) {
- Document doc = parent.getOwnerDocument();
- Element plcValueElement = doc.createElement("PlcList");
- parent.appendChild(plcValueElement);
- for (PlcValue listItem : listItems) {
- if (!(listItem instanceof XmlSerializable)) {
- throw new PlcRuntimeException("Error serializing. List item doesn't implement XmlSerializable");
- }
- ((XmlSerializable) listItem).xmlSerialize(plcValueElement);
- }
- }
-
}
diff --git a/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcSTRING.java b/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcSTRING.java
index 67d5d07..96c9847 100644
--- a/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcSTRING.java
+++ b/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcSTRING.java
@@ -236,9 +236,4 @@ public class PlcSTRING extends PlcSimpleValue<String> {
// TODO: Implement
}
- @Override
- public void xmlSerialize(Element parent) {
- // TODO: Implement
- }
-
}
diff --git a/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcStruct.java b/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcStruct.java
index c262eb2..a2f66a5 100644
--- a/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcStruct.java
+++ b/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcStruct.java
@@ -28,9 +28,6 @@ import org.apache.plc4x.java.api.value.PlcValue;
import org.apache.plc4x.java.spi.generation.ParseException;
import org.apache.plc4x.java.spi.generation.WriteBuffer;
import org.apache.plc4x.java.spi.utils.Serializable;
-import org.apache.plc4x.java.spi.utils.XmlSerializable;
-import org.w3c.dom.Document;
-import org.w3c.dom.Element;
import java.util.Collections;
import java.util.Map;
@@ -105,21 +102,4 @@ public class PlcStruct extends PlcValueAdapter {
writeBuffer.popContext("PlcStruct");
}
- @Override
- public void xmlSerialize(Element parent) {
- Document doc = parent.getOwnerDocument();
- Element plcValueElement = doc.createElement("PlcStruct");
- parent.appendChild(plcValueElement);
- for (Map.Entry<String, PlcValue> entry : map.entrySet()) {
- String fieldName = entry.getKey();
- Element fieldElement = doc.createElement(fieldName);
- plcValueElement.appendChild(fieldElement);
- PlcValue fieldValue = entry.getValue();
- if (!(fieldValue instanceof XmlSerializable)) {
- throw new PlcRuntimeException("Error serializing. List item doesn't implement XmlSerializable");
- }
- ((XmlSerializable) fieldValue).xmlSerialize(fieldElement);
- }
- }
-
}
diff --git a/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcTIME.java b/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcTIME.java
index 76f83da..28e4681 100644
--- a/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcTIME.java
+++ b/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcTIME.java
@@ -90,9 +90,4 @@ public class PlcTIME extends PlcSimpleValue<Duration> {
// TODO: Implement
}
- @Override
- public void xmlSerialize(Element parent) {
- // TODO: Implement
- }
-
}
diff --git a/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcTIME_OF_DAY.java b/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcTIME_OF_DAY.java
index 3ff2da4..f9225a2 100644
--- a/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcTIME_OF_DAY.java
+++ b/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcTIME_OF_DAY.java
@@ -87,9 +87,4 @@ public class PlcTIME_OF_DAY extends PlcSimpleValue<LocalTime> {
// TODO: Implement
}
- @Override
- public void xmlSerialize(Element parent) {
- // TODO: Implement
- }
-
}
diff --git a/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcValueAdapter.java b/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcValueAdapter.java
index 1995c20..cf785ee 100644
--- a/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcValueAdapter.java
+++ b/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcValueAdapter.java
@@ -21,7 +21,7 @@ package org.apache.plc4x.java.spi.values;
import com.fasterxml.jackson.annotation.JsonIgnore;
import org.apache.plc4x.java.api.exceptions.PlcIncompatibleDatatypeException;
import org.apache.plc4x.java.api.value.PlcValue;
-import org.apache.plc4x.java.spi.utils.XmlSerializable;
+import org.apache.plc4x.java.spi.utils.Serializable;
import java.math.BigDecimal;
import java.math.BigInteger;
@@ -33,7 +33,7 @@ import java.util.List;
import java.util.Map;
import java.util.Set;
-public abstract class PlcValueAdapter implements PlcValue, XmlSerializable {
+public abstract class PlcValueAdapter implements PlcValue, Serializable {
@Override
public Object getObject() {
diff --git a/plc4j/utils/test-utils/src/main/java/org/apache/plc4x/test/driver/internal/handlers/ApiResponseHandler.java b/plc4j/utils/test-utils/src/main/java/org/apache/plc4x/test/driver/internal/handlers/ApiResponseHandler.java
index c657150..8035d35 100644
--- a/plc4j/utils/test-utils/src/main/java/org/apache/plc4x/test/driver/internal/handlers/ApiResponseHandler.java
+++ b/plc4j/utils/test-utils/src/main/java/org/apache/plc4x/test/driver/internal/handlers/ApiResponseHandler.java
@@ -20,23 +20,14 @@ package org.apache.plc4x.test.driver.internal.handlers;
import org.apache.plc4x.java.api.exceptions.PlcRuntimeException;
import org.apache.plc4x.java.api.messages.PlcResponse;
-import org.apache.plc4x.java.spi.utils.XmlSerializable;
+import org.apache.plc4x.java.spi.generation.ParseException;
+import org.apache.plc4x.java.spi.generation.WriteBufferXmlBased;
+import org.apache.plc4x.java.spi.utils.Serializable;
import org.apache.plc4x.test.driver.exceptions.DriverTestsuiteException;
import org.apache.plc4x.test.driver.internal.utils.Synchronizer;
import org.apache.plc4x.test.driver.internal.validator.ApiValidator;
import org.dom4j.Element;
-import javax.xml.XMLConstants;
-import javax.xml.parsers.DocumentBuilder;
-import javax.xml.parsers.DocumentBuilderFactory;
-import javax.xml.parsers.ParserConfigurationException;
-import javax.xml.transform.OutputKeys;
-import javax.xml.transform.Transformer;
-import javax.xml.transform.TransformerException;
-import javax.xml.transform.TransformerFactory;
-import javax.xml.transform.dom.DOMSource;
-import javax.xml.transform.stream.StreamResult;
-import java.io.StringWriter;
import java.util.concurrent.TimeUnit;
public class ApiResponseHandler {
@@ -67,34 +58,18 @@ public class ApiResponseHandler {
// Reset the future.
synchronizer.responseFuture = null;
- final String serializedResponse = serializeToXmlString((XmlSerializable) plcResponse);
+ final String serializedResponse = serializeToXmlString((Serializable) plcResponse);
ApiValidator.validateApiMessage(payload, serializedResponse);
}
- private String serializeToXmlString(XmlSerializable value) {
+ private String serializeToXmlString(Serializable value) {
+ WriteBufferXmlBased writeBuffer = new WriteBufferXmlBased();
try {
- // TODO: replace with language agnostic lookup
- DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
- DocumentBuilder builder = dbf.newDocumentBuilder();
- org.w3c.dom.Document doc = builder.newDocument();
- org.w3c.dom.Element root = doc.createElement("root");
- doc.appendChild(root);
- value.xmlSerialize(root);
- DOMSource domSource = new DOMSource(doc.getDocumentElement().getFirstChild());
- StringWriter writer = new StringWriter();
- StreamResult result = new StreamResult(writer);
- TransformerFactory tf = TransformerFactory.newInstance();
- tf.setAttribute(XMLConstants.ACCESS_EXTERNAL_DTD, ""); // Compliant
- tf.setAttribute(XMLConstants.ACCESS_EXTERNAL_STYLESHEET, ""); // Compliant
- Transformer transformer = tf.newTransformer();
- transformer.setOutputProperty(OutputKeys.INDENT, "yes");
- transformer.setOutputProperty("{http://xml.apache.org/xslt}indent-amount", "2");
- transformer.setOutputProperty("omit-xml-declaration", "yes");
- transformer.transform(domSource, result);
- return writer.toString();
- } catch (ParserConfigurationException | TransformerException e) {
+ value.serialize(writeBuffer);
+ } catch (ParseException e) {
throw new PlcRuntimeException(e);
}
+ return writeBuffer.getXmlString();
}
}
diff --git a/protocols/ads/src/test/resources/protocols/ads/DriverTestsuite.xml b/protocols/ads/src/test/resources/protocols/ads/DriverTestsuite.xml
index c44d823..eb7689a 100644
--- a/protocols/ads/src/test/resources/protocols/ads/DriverTestsuite.xml
+++ b/protocols/ads/src/test/resources/protocols/ads/DriverTestsuite.xml
@@ -194,17 +194,20 @@
<fields>
<hurz>
<DirectAdsField>
- <indexGroup>4040</indexGroup>
- <indexOffset>8</indexOffset>
- <numberOfElements>1</numberOfElements>
- <dataType>BOOL</dataType>
+ <indexGroup dataType="int" bitLength="64">4040</indexGroup>
+ <indexOffset dataType="int" bitLength="64">8</indexOffset>
+ <numberOfElements dataType="int" bitLength="64">1</numberOfElements>
+ <dataType dataType="string" bitLength="32">BOOL</dataType>
</DirectAdsField>
</hurz>
</fields>
</PlcReadRequest>
<values>
- <hurz result="OK">
- <PlcBOOL>true</PlcBOOL>
+ <hurz>
+ <ResponseItem>
+ <result dataType="string" bitLength="16">OK</result>
+ <PlcBOOL dataType="string" bitLength="32">true</PlcBOOL>
+ </ResponseItem>
</hurz>
</values>
</PlcReadResponse>
@@ -395,28 +398,34 @@
<fields>
<hurz1>
<DirectAdsField>
- <indexGroup>4040</indexGroup>
- <indexOffset>8</indexOffset>
- <numberOfElements>1</numberOfElements>
- <dataType>BOOL</dataType>
+ <indexGroup dataType="int" bitLength="64">4040</indexGroup>
+ <indexOffset dataType="int" bitLength="64">8</indexOffset>
+ <numberOfElements dataType="int" bitLength="64">1</numberOfElements>
+ <dataType dataType="string" bitLength="32">BOOL</dataType>
</DirectAdsField>
</hurz1>
<hurz2>
<DirectAdsField>
- <indexGroup>4040</indexGroup>
- <indexOffset>12</indexOffset>
- <numberOfElements>1</numberOfElements>
- <dataType>BOOL</dataType>
+ <indexGroup dataType="int" bitLength="64">4040</indexGroup>
+ <indexOffset dataType="int" bitLength="64">12</indexOffset>
+ <numberOfElements dataType="int" bitLength="64">1</numberOfElements>
+ <dataType dataType="string" bitLength="32">BOOL</dataType>
</DirectAdsField>
</hurz2>
</fields>
</PlcReadRequest>
<values>
- <hurz1 result="OK">
- <PlcBOOL>true</PlcBOOL>
+ <hurz1>
+ <ResponseItem>
+ <result dataType="string" bitLength="16">OK</result>
+ <PlcBOOL dataType="string" bitLength="32">true</PlcBOOL>
+ </ResponseItem>
</hurz1>
- <hurz2 result="OK">
- <PlcBOOL>true</PlcBOOL>
+ <hurz2>
+ <ResponseItem>
+ <result dataType="string" bitLength="16">OK</result>
+ <PlcBOOL dataType="string" bitLength="32">true</PlcBOOL>
+ </ResponseItem>
</hurz2>
</values>
</PlcReadResponse>
@@ -744,16 +753,19 @@
<fields>
<hurz1>
<SymbolicAdsField>
- <symbolicAddress>main.f_trigDateiGelesen.M</symbolicAddress>
- <numberOfElements>1</numberOfElements>
- <dataType>BOOL</dataType>
+ <symbolicAddress dataType="string" bitLength="200">main.f_trigDateiGelesen.M</symbolicAddress>
+ <numberOfElements dataType="int" bitLength="64">1</numberOfElements>
+ <dataType dataType="string" bitLength="32">BOOL</dataType>
</SymbolicAdsField>
</hurz1>
</fields>
</PlcReadRequest>
<values>
- <hurz1 result="OK">
- <PlcBOOL>false</PlcBOOL>
+ <hurz1>
+ <ResponseItem>
+ <result dataType="string" bitLength="16">OK</result>
+ <PlcBOOL dataType="string" bitLength="40">false</PlcBOOL>
+ </ResponseItem>
</hurz1>
</values>
</PlcReadResponse>
@@ -999,7 +1011,7 @@
</AmsPacket>
</userdata>
</AmsTCPPacket>
-
+
</outgoing-plc-message>
<incoming-plc-message name="Receive Ads Read Response">
<AmsTCPPacket>
@@ -1082,16 +1094,19 @@
<fields>
<hurz1>
<SymbolicAdsField>
- <symbolicAddress>main.f_trigDateiGelesen.M</symbolicAddress>
- <numberOfElements>1</numberOfElements>
- <dataType>BOOL</dataType>
+ <symbolicAddress dataType="string" bitLength="200">main.f_trigDateiGelesen.M</symbolicAddress>
+ <numberOfElements dataType="int" bitLength="64">1</numberOfElements>
+ <dataType dataType="string" bitLength="32">BOOL</dataType>
</SymbolicAdsField>
</hurz1>
</fields>
</PlcReadRequest>
<values>
- <hurz1 result="OK">
- <PlcBOOL>false</PlcBOOL>
+ <hurz1>
+ <ResponseItem>
+ <result dataType="string" bitLength="16">OK</result>
+ <PlcBOOL dataType="string" bitLength="40">false</PlcBOOL>
+ </ResponseItem>
</hurz1>
</values>
</PlcReadResponse>
@@ -1248,16 +1263,19 @@
<fields>
<hurz1>
<SymbolicAdsField>
- <symbolicAddress>main.f_trigDateiGelesen.M</symbolicAddress>
- <numberOfElements>1</numberOfElements>
- <dataType>BOOL</dataType>
+ <symbolicAddress dataType="string" bitLength="200">main.f_trigDateiGelesen.M</symbolicAddress>
+ <numberOfElements dataType="int" bitLength="64">1</numberOfElements>
+ <dataType dataType="string" bitLength="32">BOOL</dataType>
</SymbolicAdsField>
</hurz1>
</fields>
</PlcReadRequest>
<values>
- <hurz1 result="OK">
- <PlcBOOL>false</PlcBOOL>
+ <hurz1>
+ <ResponseItem>
+ <result dataType="string" bitLength="16">OK</result>
+ <PlcBOOL dataType="string" bitLength="40">false</PlcBOOL>
+ </ResponseItem>
</hurz1>
</values>
</PlcReadResponse>
diff --git a/protocols/modbus/src/test/resources/protocols/modbus/DriverTestsuite.xml b/protocols/modbus/src/test/resources/protocols/modbus/DriverTestsuite.xml
index 2724c2d..2998551 100644
--- a/protocols/modbus/src/test/resources/protocols/modbus/DriverTestsuite.xml
+++ b/protocols/modbus/src/test/resources/protocols/modbus/DriverTestsuite.xml
@@ -95,16 +95,19 @@
<fields>
<hurz>
<ModbusFieldHoldingRegister>
- <address>0</address>
- <numberOfElements>1</numberOfElements>
- <dataType>REAL</dataType>
+ <address dataType="int" bitLength="64">0</address>
+ <numberOfElements dataType="int" bitLength="64">1</numberOfElements>
+ <dataType dataType="string" bitLength="32">REAL</dataType>
</ModbusFieldHoldingRegister>
</hurz>
</fields>
</PlcReadRequest>
<values>
- <hurz result="OK">
- <PlcREAL>3.1415927</PlcREAL>
+ <hurz>
+ <ResponseItem>
+ <result dataType="string" bitLength="16">OK</result>
+ <PlcREAL dataType="string" bitLength="72">3.1415927</PlcREAL>
+ </ResponseItem>
</hurz>
</values>
</PlcReadResponse>
@@ -182,19 +185,22 @@
<fields>
<hurz>
<ModbusFieldHoldingRegister>
- <address>0</address>
- <numberOfElements>2</numberOfElements>
- <dataType>REAL</dataType>
+ <address dataType="int" bitLength="64">0</address>
+ <numberOfElements dataType="int" bitLength="64">2</numberOfElements>
+ <dataType dataType="string" bitLength="32">REAL</dataType>
</ModbusFieldHoldingRegister>
</hurz>
</fields>
</PlcReadRequest>
<values>
- <hurz result="OK">
- <PlcList>
- <PlcREAL>3.1415927</PlcREAL>
- <PlcREAL>3.1415927</PlcREAL>
- </PlcList>
+ <hurz>
+ <ResponseItem>
+ <result dataType="string" bitLength="16">OK</result>
+ <PlcList>
+ <PlcREAL dataType="string" bitLength="72">3.1415927</PlcREAL>
+ <PlcREAL dataType="string" bitLength="72">3.1415927</PlcREAL>
+ </PlcList>
+ </ResponseItem>
</hurz>
</values>
</PlcReadResponse>
@@ -319,26 +325,32 @@
<fields>
<hurz1>
<ModbusFieldHoldingRegister>
- <address>0</address>
- <numberOfElements>1</numberOfElements>
- <dataType>REAL</dataType>
+ <address dataType="int" bitLength="64">0</address>
+ <numberOfElements dataType="int" bitLength="64">1</numberOfElements>
+ <dataType dataType="string" bitLength="32">REAL</dataType>
</ModbusFieldHoldingRegister>
</hurz1>
<hurz2>
<ModbusFieldHoldingRegister>
- <address>2</address>
- <numberOfElements>1</numberOfElements>
- <dataType>REAL</dataType>
+ <address dataType="int" bitLength="64">2</address>
+ <numberOfElements dataType="int" bitLength="64">1</numberOfElements>
+ <dataType dataType="string" bitLength="32">REAL</dataType>
</ModbusFieldHoldingRegister>
</hurz2>
</fields>
</PlcReadRequest>
<values>
- <hurz1 result="OK">
- <PlcREAL>3.1415927</PlcREAL>
+ <hurz1>
+ <ResponseItem>
+ <result dataType="string" bitLength="16">OK</result>
+ <PlcREAL dataType="string" bitLength="72">3.1415927</PlcREAL>
+ </ResponseItem>
</hurz1>
- <hurz2 result="OK">
- <PlcREAL>3.1415927</PlcREAL>
+ <hurz2>
+ <ResponseItem>
+ <result dataType="string" bitLength="16">OK</result>
+ <PlcREAL dataType="string" bitLength="72">3.1415927</PlcREAL>
+ </ResponseItem>
</hurz2>
</values>
</PlcReadResponse>
@@ -415,16 +427,16 @@
<fields>
<hurz>
<ModbusFieldHoldingRegister>
- <address>0</address>
- <numberOfElements>1</numberOfElements>
- <dataType>REAL</dataType>
+ <address dataType="int" bitLength="64">0</address>
+ <numberOfElements dataType="int" bitLength="64">1</numberOfElements>
+ <dataType dataType="string" bitLength="32">REAL</dataType>
</ModbusFieldHoldingRegister>
- <value>3.1415927</value>
+ <value dataType="string" bitLength="72">3.1415927</value>
</hurz>
</fields>
</PlcWriteRequest>
<fields>
- <hurz result="OK"/>
+ <hurz dataType="string" bitLength="16">OK</hurz>
</fields>
</PlcWriteResponse>
</api-response>
@@ -505,17 +517,17 @@
<fields>
<hurz>
<ModbusFieldHoldingRegister>
- <address>0</address>
- <numberOfElements>2</numberOfElements>
- <dataType>REAL</dataType>
+ <address dataType="int" bitLength="64">0</address>
+ <numberOfElements dataType="int" bitLength="64">2</numberOfElements>
+ <dataType dataType="string" bitLength="32">REAL</dataType>
</ModbusFieldHoldingRegister>
- <value>3.1415927</value>
- <value>3.1415927</value>
+ <value dataType="string" bitLength="72">3.1415927</value>
+ <value dataType="string" bitLength="72">3.1415927</value>
</hurz>
</fields>
</PlcWriteRequest>
<fields>
- <hurz result="OK"/>
+ <hurz dataType="string" bitLength="16">OK</hurz>
</fields>
</PlcWriteResponse>
</api-response>
diff --git a/protocols/s7/src/test/resources/protocols/s7/DriverTestsuite.xml b/protocols/s7/src/test/resources/protocols/s7/DriverTestsuite.xml
index 7f188b6..6b5e78c 100644
--- a/protocols/s7/src/test/resources/protocols/s7/DriverTestsuite.xml
+++ b/protocols/s7/src/test/resources/protocols/s7/DriverTestsuite.xml
@@ -535,19 +535,22 @@
<fields>
<hurz>
<S7Field>
- <memoryArea>OUTPUTS</memoryArea>
- <blockNumber>0</blockNumber>
- <byteOffset>0</byteOffset>
- <bitOffset>0</bitOffset>
- <numElements>1</numElements>
- <dataType>BOOL</dataType>
+ <memoryArea dataType="string" bitLength="56">OUTPUTS</memoryArea>
+ <blockNumber dataType="int" bitLength="64">0</blockNumber>
+ <byteOffset dataType="int" bitLength="64">0</byteOffset>
+ <bitOffset dataType="int" bitLength="64">0</bitOffset>
+ <numElements dataType="int" bitLength="64">1</numElements>
+ <dataType dataType="string" bitLength="32">BOOL</dataType>
</S7Field>
</hurz>
</fields>
</PlcReadRequest>
<values>
- <hurz result="OK">
- <PlcBOOL>true</PlcBOOL>
+ <hurz>
+ <ResponseItem>
+ <result dataType="string" bitLength="16">OK</result>
+ <PlcBOOL dataType="string" bitLength="32">true</PlcBOOL>
+ </ResponseItem>
</hurz>
</values>
</PlcReadResponse>
@@ -668,18 +671,22 @@
<fields>
<hurz>
<S7Field>
- <memoryArea>OUTPUTS</memoryArea>
- <blockNumber>0</blockNumber>
- <byteOffset>0</byteOffset>
- <bitOffset>0</bitOffset>
- <numElements>1</numElements>
- <dataType>BOOL</dataType>
+ <memoryArea dataType="string" bitLength="56">OUTPUTS</memoryArea>
+ <blockNumber dataType="int" bitLength="64">0</blockNumber>
+ <byteOffset dataType="int" bitLength="64">0</byteOffset>
+ <bitOffset dataType="int" bitLength="64">0</bitOffset>
+ <numElements dataType="int" bitLength="64">1</numElements>
+ <dataType dataType="string" bitLength="32">BOOL</dataType>
</S7Field>
</hurz>
</fields>
</PlcReadRequest>
<values>
- <hurz result="ACCESS_DENIED"/>
+ <hurz>
+ <ResponseItem>
+ <result dataType="string" bitLength="104">ACCESS_DENIED</result>
+ </ResponseItem>
+ </hurz>
</values>
</PlcReadResponse>
</api-response>