Skip to content

Commit ace1c30

Browse files
committed
Fix schema generation to be backwards compatible
1 parent 3b5c2c5 commit ace1c30

File tree

1 file changed

+5
-7
lines changed

1 file changed

+5
-7
lines changed

modules/hivemq-edge-module-opcua/src/main/java/com/hivemq/edge/adapters/opcua/southbound/JsonSchemaGenerator.java

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -257,18 +257,12 @@ private void verifyDataTypeForField(final @NotNull FieldInformation fieldType) {
257257
fieldInformation.customDataType().getNodeId().toParseableString())));
258258
rootNode.set(TYPE, new TextNode(OBJECT_DATA_TYPE));
259259

260-
// Create the root properties node that contains "value" and metadata
261-
final ObjectNode rootPropertiesNode = MAPPER.createObjectNode();
262-
rootNode.set("properties", rootPropertiesNode);
263-
264260
final ObjectNode valueNode = MAPPER.createObjectNode();
265-
rootPropertiesNode.set("value", valueNode);
266261
valueNode.set(TYPE, new TextNode(OBJECT_DATA_TYPE));
267262

268263
final ObjectNode propertiesNode = MAPPER.createObjectNode();
269264
valueNode.set("properties", propertiesNode);
270265

271-
272266
final ArrayNode requiredAttributesArray = MAPPER.createArrayNode();
273267
fieldInformation.nestedFields().forEach(fieldInfo -> {
274268
if (fieldInfo.required()) {
@@ -279,9 +273,13 @@ private void verifyDataTypeForField(final @NotNull FieldInformation fieldType) {
279273

280274
valueNode.set("required", requiredAttributesArray);
281275

282-
// Add metadata properties if enabled
283276
if (includeMetadata) {
277+
final ObjectNode rootPropertiesNode = MAPPER.createObjectNode();
278+
rootNode.set("properties", rootPropertiesNode);
279+
rootPropertiesNode.set("value", valueNode);
284280
BuiltinJsonSchema.addReadOnlyMetadataProperties(rootPropertiesNode, MAPPER);
281+
} else {
282+
rootNode.set("value", valueNode);
285283
}
286284

287285
final ArrayNode requiredProperties = MAPPER.createArrayNode();

0 commit comments

Comments
 (0)