Skip to content

Commit 1626be9

Browse files
replace map with json node (#622)
1 parent 041331b commit 1626be9

File tree

3 files changed

+15
-13
lines changed

3 files changed

+15
-13
lines changed

ext/hivemq-edge-openapi-2024.8-SNAPSHOT.yaml

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4240,11 +4240,7 @@ components:
42404240
type: object
42414241
properties:
42424242
config:
4243-
type: object
4244-
additionalProperties:
4245-
type: object
4246-
description: The adapter configuration associated with this instance
4247-
description: The adapter configuration associated with this instance
4243+
$ref: '#/components/schemas/JsonNode'
42484244
id:
42494245
type: string
42504246
format: string

hivemq-edge/src/main/java/com/hivemq/api/model/adapters/Adapter.java

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -17,14 +17,13 @@
1717

1818
import com.fasterxml.jackson.annotation.JsonCreator;
1919
import com.fasterxml.jackson.annotation.JsonProperty;
20+
import com.fasterxml.jackson.databind.JsonNode;
2021
import com.hivemq.api.model.status.Status;
2122
import com.hivemq.edge.HiveMQEdgeConstants;
2223
import com.hivemq.extension.sdk.api.annotations.NotNull;
2324
import com.hivemq.extension.sdk.api.annotations.Nullable;
2425
import io.swagger.v3.oas.annotations.media.Schema;
2526

26-
import java.util.Map;
27-
2827
public class Adapter {
2928

3029
@JsonProperty("id")
@@ -45,7 +44,7 @@ public class Adapter {
4544
@JsonProperty("config")
4645
@Schema(name = "config",
4746
description = "The adapter configuration associated with this instance")
48-
private final @NotNull Map<String, Object> config;
47+
private final @NotNull JsonNode config;
4948

5049
@JsonProperty("status")
5150
@Schema(name = "status",
@@ -56,7 +55,7 @@ public class Adapter {
5655
public Adapter(
5756
@JsonProperty("id") final @NotNull String id,
5857
@JsonProperty("type") final @NotNull String protocolAdapterType,
59-
@JsonProperty("config") final @NotNull Map<String, Object> config,
58+
@JsonProperty("config") final @NotNull JsonNode config,
6059
@JsonProperty("status") final @Nullable Status status) {
6160
this.id = id;
6261
this.protocolAdapterType = protocolAdapterType;
@@ -76,7 +75,7 @@ public Adapter(
7675
return protocolAdapterType;
7776
}
7877

79-
public @NotNull Map<String, Object> getConfig() {
78+
public @NotNull JsonNode getConfig() {
8079
return config;
8180
}
8281
}

hivemq-edge/src/main/java/com/hivemq/api/resources/impl/ProtocolAdaptersResourceImpl.java

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
*/
1616
package com.hivemq.api.resources.impl;
1717

18+
import com.fasterxml.jackson.core.type.TypeReference;
1819
import com.fasterxml.jackson.databind.JsonNode;
1920
import com.fasterxml.jackson.databind.ObjectMapper;
2021
import com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException;
@@ -190,7 +191,7 @@ public ProtocolAdaptersResourceImpl(
190191
}
191192
return new Adapter(value.getId(),
192193
value.getAdapterInformation().getProtocolId(),
193-
configObject,
194+
objectMapper.valueToTree(configObject),
194195
getStatusInternal(value.getId()));
195196
}
196197

@@ -265,7 +266,10 @@ public int getDepth() {
265266
return ApiErrorUtils.badRequest(errorMessages);
266267
}
267268
try {
268-
protocolAdapterManager.addAdapter(adapterType, adapter.getId(), adapter.getConfig());
269+
final Map<String, Object> config =
270+
objectMapper.convertValue(adapter.getConfig(), new TypeReference<Map<String, Object>>() {
271+
});
272+
protocolAdapterManager.addAdapter(adapterType, adapter.getId(), config);
269273
} catch (final IllegalArgumentException e) {
270274
if (e.getCause() instanceof UnrecognizedPropertyException) {
271275
ApiErrorUtils.addValidationError(errorMessages,
@@ -295,7 +299,10 @@ public int getDepth() {
295299
if (logger.isDebugEnabled()) {
296300
logger.debug("Updating adapter \"{}\".", adapterId);
297301
}
298-
protocolAdapterManager.updateAdapter(adapterId, adapter.getConfig());
302+
final Map<String, Object> config =
303+
objectMapper.convertValue(adapter.getConfig(), new TypeReference<>() {
304+
});
305+
protocolAdapterManager.updateAdapter(adapterId, config);
299306
return Response.ok().build();
300307
}
301308

0 commit comments

Comments
 (0)