Skip to content

Commit 2cbaba5

Browse files
committed
Missing json-schema header
1 parent 4d97406 commit 2cbaba5

File tree

2 files changed

+21
-13
lines changed

2 files changed

+21
-13
lines changed

modules/hivemq-edge-module-opcua/src/main/java/com/hivemq/edge/adapters/opcua/mqtt2opcua/BuiltinJsonSchema.java

Lines changed: 19 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -116,10 +116,6 @@ public BuiltinJsonSchema() {
116116
return classToJsonSchema.get(builtinDataType);
117117
}
118118

119-
public @NotNull JsonNode getJsonSchemaForArray(final @NotNull BuiltinDataType builtinDataType) {
120-
return classToJsonSchema.get(builtinDataType);
121-
}
122-
123119
private @NotNull JsonNode createJsonSchemaForBuiltinType(
124120
final @NotNull String title, final @NotNull BuiltinDataType builtinDataType) {
125121
final ObjectNode rootNode = OBJECT_MAPPER.createObjectNode();
@@ -139,6 +135,25 @@ public BuiltinJsonSchema() {
139135
return rootNode;
140136
}
141137

138+
public @NotNull JsonNode getJsonSchema(final @NotNull BuiltinDataType builtinDataType,
139+
final @NotNull UInteger[] dimensions) {
140+
141+
final ObjectNode rootNode = OBJECT_MAPPER.createObjectNode();
142+
final ObjectNode propertiesNode = OBJECT_MAPPER.createObjectNode();
143+
final ObjectNode valueNode = OBJECT_MAPPER.createObjectNode();
144+
rootNode.set("$schema", new TextNode("https://json-schema.org/draft/2019-09/schema"));
145+
rootNode.set("title", new TextNode("Array of " + builtinDataType.name() + " JsonSchema"));
146+
rootNode.set("type", new TextNode("object"));
147+
rootNode.set("properties", propertiesNode);
148+
propertiesNode.set("value", valueNode);
149+
populatePropertiesForArray(valueNode, builtinDataType, OBJECT_MAPPER, dimensions);
150+
151+
final ArrayNode requiredAttributes = OBJECT_MAPPER.createArrayNode();
152+
requiredAttributes.add("value");
153+
rootNode.set("required", requiredAttributes);
154+
return rootNode;
155+
}
156+
142157
public static void populatePropertiesForArray(final @NotNull ObjectNode propertiesNode,
143158
final @NotNull BuiltinDataType builtinDataType,
144159
final @NotNull ObjectMapper objectMapper,

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

Lines changed: 2 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -79,15 +79,8 @@ public void createJsonSchema(
7979
final BuiltinDataType builtinType = tree.getBuiltinType(dataType.getNodeId());
8080
if (builtinType != BuiltinDataType.ExtensionObject) {
8181
if(dimensions != null && dimensions.length > 0) {
82-
final ObjectNode node = objectMapper.createObjectNode();
83-
BuiltinJsonSchema.populatePropertiesForArray(
84-
node,
85-
builtinType,
86-
objectMapper,
87-
dimensions);
88-
89-
System.out.println("HMM " + node);
90-
output.finish(node);
82+
System.out.println("HMM " + builtinJsonSchema.getJsonSchema(builtinType, dimensions));
83+
output.finish(builtinJsonSchema.getJsonSchema(builtinType, dimensions));
9184
} else {
9285
output.finish(builtinJsonSchema.getJsonSchema(builtinType));
9386
}

0 commit comments

Comments
 (0)