Skip to content

Commit ecdea06

Browse files
Remove messageHandlingOptions which were accidentally added back to the API (#1172)
* Remove messageHandlingOptions which were accidentally added back to the API --------- Co-authored-by: marregui <[email protected]>
1 parent aed0a5a commit ecdea06

File tree

24 files changed

+156
-329
lines changed

24 files changed

+156
-329
lines changed

ext/35771.md

Whitespace-only changes.

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

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5837,12 +5837,6 @@ components:
58375837
format: int64
58385838
description: The message expiry interval.
58395839
default: 9007199254740991L
5840-
messageHandlingOptions:
5841-
type: string
5842-
description: How collected tags should or shouldn't be aggregated.
5843-
enum:
5844-
- MQTTMessagePerTag
5845-
- MQTTMessagePerSubscription
58465840
tagName:
58475841
type: string
58485842
format: mqtt-tag

hivemq-edge-openapi/openapi/components/schemas/NorthboundMapping.yaml

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -16,12 +16,6 @@ properties:
1616
format: int64
1717
description: The message expiry interval.
1818
default: 9007199254740991L
19-
messageHandlingOptions:
20-
type: string
21-
description: How collected tags should or shouldn't be aggregated.
22-
enum:
23-
- MQTTMessagePerTag
24-
- MQTTMessagePerSubscription
2519
tagName:
2620
type: string
2721
format: mqtt-tag

hivemq-edge/src/main/java/com/hivemq/api/model/mappings/northbound/NorthboundMappingModel.java

Lines changed: 0 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@
1717

1818
import com.fasterxml.jackson.annotation.JsonCreator;
1919
import com.fasterxml.jackson.annotation.JsonProperty;
20-
import com.hivemq.adapter.sdk.api.config.MessageHandlingOptions;
2120
import com.hivemq.adapter.sdk.api.config.MqttUserProperty;
2221
import com.hivemq.api.model.QoSModel;
2322
import com.hivemq.configuration.entity.adapter.MqttUserPropertyEntity;
@@ -43,10 +42,6 @@ public class NorthboundMappingModel {
4342
@Schema(description = "The target mqtt topic where received tags should be sent to.")
4443
private final @NotNull String topic;
4544

46-
@JsonProperty(value = "messageHandlingOptions", required = true)
47-
@Schema(description = "How collected tags should or shouldn't be aggregated.")
48-
private final @NotNull MessageHandlingOptions messageHandlingOptions;
49-
5045
@JsonProperty(value = "includeTagNames", required = true)
5146
@Schema(description = "Should tag names be included when sent out.")
5247
private final boolean includeTagNames;
@@ -71,16 +66,13 @@ public class NorthboundMappingModel {
7166
public NorthboundMappingModel(
7267
@JsonProperty(value = "tagName", required = true) final @NotNull String tagName,
7368
@JsonProperty(value = "topic", required = true) final @NotNull String topic,
74-
@JsonProperty(value = "messageHandlingOptions") final @Nullable MessageHandlingOptions messageHandlingOptions,
7569
@JsonProperty(value = "includeTagNames") final @Nullable Boolean includeTagNames,
7670
@JsonProperty(value = "includeTimestamp") final @Nullable Boolean includeTimestamp,
7771
@JsonProperty(value = "userProperties") final @Nullable List<MqttUserPropertyModel> userProperties,
7872
@JsonProperty(value = "maxQoS") final @Nullable QoSModel maxQoS,
7973
@JsonProperty(value = "messageExpiryInterval") final @Nullable Long messageExpiryInterval) {
8074
this.tagName = tagName;
8175
this.topic = topic;
82-
this.messageHandlingOptions =
83-
requireNonNullElse(messageHandlingOptions, MessageHandlingOptions.MQTTMessagePerTag);
8476
this.includeTagNames = requireNonNullElse(includeTagNames, false);
8577
this.includeTimestamp = requireNonNullElse(includeTimestamp, false);
8678
this.userProperties = requireNonNullElse(userProperties, List.of());
@@ -94,7 +86,6 @@ public NorthboundMappingModel(
9486
public static NorthboundMappingModel fromPersistence(final @NotNull NorthboundMapping mapping) {
9587
return new NorthboundMappingModel(mapping.getTagName(),
9688
mapping.getMqttTopic(),
97-
mapping.getMessageHandlingOptions(),
9889
mapping.getIncludeTagNames(),
9990
mapping.getIncludeTimestamp(),
10091
mapping.getUserProperties().stream().map(NorthboundMappingModel::userProp).toList(),
@@ -105,7 +96,6 @@ public static NorthboundMappingModel fromPersistence(final @NotNull NorthboundMa
10596
public static NorthboundMappingModel fromEntity(final @NotNull NorthboundMappingEntity northboundMapping) {
10697
return new NorthboundMappingModel(northboundMapping.getTagName(),
10798
northboundMapping.getTopic(),
108-
northboundMapping.getMessageHandlingOptions(),
10999
northboundMapping.isIncludeTagNames(),
110100
northboundMapping.isIncludeTimestamp(),
111101
northboundMapping.getUserProperties().stream().map(NorthboundMappingModel::userProp).toList(),
@@ -131,7 +121,6 @@ public static NorthboundMappingModel fromEntity(final @NotNull NorthboundMapping
131121
return new NorthboundMapping(tagName,
132122
topic,
133123
maxQoS.getQosNumber(),
134-
messageHandlingOptions,
135124
includeTagNames,
136125
includeTimestamp,
137126
userProperties.stream().map(NorthboundMappingModel::userProp).toList(),
@@ -146,10 +135,6 @@ public static NorthboundMappingModel fromEntity(final @NotNull NorthboundMapping
146135
return topic;
147136
}
148137

149-
public @NotNull MessageHandlingOptions getMessageHandlingOptions() {
150-
return messageHandlingOptions;
151-
}
152-
153138
public boolean isIncludeTagNames() {
154139
return includeTagNames;
155140
}

hivemq-edge/src/main/java/com/hivemq/configuration/entity/adapter/NorthboundMappingEntity.java

Lines changed: 1 addition & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -41,9 +41,6 @@ public class NorthboundMappingEntity implements EntityValidatable {
4141
@XmlElement(name = "maxQos", required = true)
4242
private final int maxQoS;
4343

44-
@XmlElement(name = "messageHandlingOptions", required = true)
45-
private final @NotNull MessageHandlingOptions messageHandlingOptions;
46-
4744
@XmlElement(name = "includeTagNames", required = true)
4845
private final @Nullable Boolean includeTagNames;
4946

@@ -62,7 +59,6 @@ public NorthboundMappingEntity() {
6259
tagName = "";
6360
topic = "";
6461
maxQoS = QoS.AT_LEAST_ONCE.getQosNumber();
65-
messageHandlingOptions = MessageHandlingOptions.MQTTMessagePerTag;
6662
includeTagNames = false;
6763
includeTimestamp = true;
6864
userProperties = new ArrayList<>();
@@ -73,15 +69,13 @@ public NorthboundMappingEntity(
7369
final @NotNull String tagName,
7470
final @NotNull String topic,
7571
final int maxQoS,
76-
final @NotNull MessageHandlingOptions messageHandlingOptions,
7772
final boolean includeTagNames,
7873
final boolean includeTimestamp,
7974
final @NotNull List<MqttUserPropertyEntity> userProperties,
8075
final @Nullable Long messageExpiryInterval) {
8176
this.tagName = tagName;
8277
this.topic = topic;
8378
this.maxQoS = maxQoS;
84-
this.messageHandlingOptions = messageHandlingOptions;
8579
this.includeTagNames = includeTagNames;
8680
this.includeTimestamp = includeTimestamp;
8781
this.userProperties = userProperties;
@@ -92,7 +86,6 @@ public NorthboundMappingEntity(
9286
return new NorthboundMappingEntity(mapping.getTagName(),
9387
mapping.getMqttTopic(),
9488
mapping.getMqttQos(),
95-
mapping.getMessageHandlingOptions(),
9689
mapping.getIncludeTagNames(),
9790
mapping.getIncludeTimestamp(),
9891
mapping.getUserProperties().stream().map(NorthboundMappingEntity::userProp).toList(),
@@ -115,7 +108,6 @@ public NorthboundMappingEntity(
115108
case AT_LEAST_ONCE -> 1;
116109
case EXACTLY_ONCE -> 2;
117110
},
118-
MessageHandlingOptions.MQTTMessagePerTag,
119111
mapping.getIncludeTagNames(),
120112
mapping.getIncludeTimestamp(),
121113
mapping.getUserProperties().stream().map(NorthboundMappingEntity::userProp).toList(),
@@ -131,7 +123,7 @@ public NorthboundMappingEntity(
131123
}
132124

133125
public @NotNull MessageHandlingOptions getMessageHandlingOptions() {
134-
return messageHandlingOptions;
126+
return MessageHandlingOptions.MQTTMessagePerTag;
135127
}
136128

137129
public boolean isIncludeTagNames() {
@@ -161,7 +153,6 @@ public void validate(final @NotNull List<ValidationEvent> validationEvents) {
161153
EntityValidatable.notMatch(validationEvents,
162154
() -> QoS.valueOf(maxQoS) != null,
163155
() -> "maxQos" + ' ' + maxQoS + " is invalid");
164-
EntityValidatable.notNull(validationEvents, messageHandlingOptions, "messageHandlingOptions");
165156
EntityValidatable.notNull(validationEvents, includeTagNames, "includeTagNames");
166157
EntityValidatable.notNull(validationEvents, includeTimestamp, "includeTimestamp");
167158
if (EntityValidatable.notNull(validationEvents, messageExpiryInterval, "messageExpiryInterval")) {
@@ -175,7 +166,6 @@ public void validate(final @NotNull List<ValidationEvent> validationEvents) {
175166
return new NorthboundMapping(tagName,
176167
topic,
177168
maxQoS,
178-
messageHandlingOptions,
179169
includeTagNames,
180170
includeTimestamp,
181171
userProperties.stream().map(p -> new MqttUserProperty(p.getName(), p.getValue())).toList(),
@@ -193,8 +183,6 @@ public void validate(final @NotNull List<ValidationEvent> validationEvents) {
193183
'\'' +
194184
", maxQoS=" +
195185
maxQoS +
196-
", messageHandlingOptions=" +
197-
messageHandlingOptions +
198186
", includeTagNames=" +
199187
includeTagNames +
200188
", includeTimestamp=" +
@@ -212,7 +200,6 @@ public boolean equals(final @Nullable Object o) {
212200
return Objects.equals(tagName, that.tagName) &&
213201
Objects.equals(topic, that.topic) &&
214202
maxQoS == that.maxQoS &&
215-
messageHandlingOptions == that.messageHandlingOptions &&
216203
includeTagNames == that.includeTagNames &&
217204
includeTimestamp == that.includeTimestamp &&
218205
Objects.equals(userProperties, that.userProperties) &&
@@ -226,7 +213,6 @@ public int hashCode() {
226213
return Objects.hash(tagName,
227214
topic,
228215
maxQoS,
229-
messageHandlingOptions,
230216
includeTagNames,
231217
includeTimestamp,
232218
userProperties,

hivemq-edge/src/main/java/com/hivemq/persistence/mappings/NorthboundMapping.java

Lines changed: 2 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,6 @@ public class NorthboundMapping implements PollingContext {
3535
private final @NotNull String topic;
3636
private final @NotNull String tagName;
3737
private final int maxQoS;
38-
private final @NotNull MessageHandlingOptions messageHandlingOptions;
3938
private final @NotNull Boolean includeTagNames;
4039
private final @NotNull Boolean includeTimestamp;
4140
private final @NotNull List<MqttUserProperty> userProperties;
@@ -45,16 +44,13 @@ public NorthboundMapping(
4544
final @NotNull String tagName,
4645
final @NotNull String topic,
4746
final int maxQoS,
48-
final @Nullable MessageHandlingOptions messageHandlingOptions,
4947
final @Nullable Boolean includeTagNames,
5048
final @Nullable Boolean includeTimestamp,
5149
final @Nullable List<MqttUserProperty> userProperties,
5250
final @Nullable Long messageExpiryInterval) {
5351
this.tagName = tagName;
5452
this.topic = topic;
5553
this.maxQoS = maxQoS;
56-
this.messageHandlingOptions =
57-
messageHandlingOptions != null ? messageHandlingOptions : MessageHandlingOptions.MQTTMessagePerTag;
5854
this.includeTagNames = includeTagNames != null && includeTagNames;
5955
this.includeTimestamp = includeTimestamp == null || includeTimestamp; // default is true
6056
this.userProperties = userProperties != null ? userProperties : new ArrayList<>();
@@ -69,7 +65,6 @@ public NorthboundMapping(
6965
return new NorthboundMapping(model.getTagName(),
7066
model.getTopic(),
7167
model.getMaxQoS() == null ? DEFAULT_QOS : model.getMaxQoS().ordinal(),
72-
MessageHandlingOptions.MQTTMessagePerTag,
7368
model.getIncludeTagNames() != null && model.getIncludeTagNames(),
7469
model.getIncludeTimestamp() == null || model.getIncludeTimestamp(),
7570
model.getUserProperties() != null ?
@@ -95,7 +90,7 @@ public int getMqttQos() {
9590

9691
@Override
9792
public @NotNull MessageHandlingOptions getMessageHandlingOptions() {
98-
return messageHandlingOptions;
93+
return MessageHandlingOptions.MQTTMessagePerTag;
9994
}
10095

10196
@Override
@@ -124,7 +119,6 @@ public boolean equals(final @Nullable Object o) {
124119
return Objects.equals(tagName, that.tagName) &&
125120
Objects.equals(topic, that.topic) &&
126121
maxQoS == that.maxQoS &&
127-
messageHandlingOptions == that.messageHandlingOptions &&
128122
Objects.equals(includeTagNames, that.includeTagNames) &&
129123
Objects.equals(includeTimestamp, that.includeTimestamp) &&
130124
Objects.equals(userProperties, that.userProperties) &&
@@ -139,7 +133,6 @@ public int hashCode() {
139133
return Objects.hash(tagName,
140134
topic,
141135
maxQoS,
142-
messageHandlingOptions,
143136
includeTagNames,
144137
includeTimestamp,
145138
userProperties,
@@ -154,10 +147,7 @@ public int hashCode() {
154147
'\'' +
155148
", tagName='" +
156149
tagName +
157-
'\'' +
158-
", messageHandlingOptions=" +
159-
messageHandlingOptions +
160-
", includeTagNames=" +
150+
"', includeTagNames=" +
161151
includeTagNames +
162152
", includeTimestamp=" +
163153
includeTimestamp +

hivemq-edge/src/test/java/com/hivemq/api/model/mappings/northbound/NorthboundMappingModelTest.java

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

18-
import com.hivemq.adapter.sdk.api.config.MessageHandlingOptions;
1918
import com.hivemq.api.model.JavaScriptConstants;
2019
import com.hivemq.api.model.QoSModel;
2120
import com.hivemq.persistence.mappings.NorthboundMapping;
@@ -33,7 +32,6 @@ void test_constructor_whenInputExpiryIsMaxLong_thenStoredExpiryIsMaxSafeJSValue(
3332
assertEquals(JavaScriptConstants.JS_MAX_SAFE_INTEGER,
3433
new NorthboundMappingModel("tag",
3534
"topic",
36-
MessageHandlingOptions.MQTTMessagePerSubscription,
3735
false,
3836
false,
3937
List.of(),
@@ -45,7 +43,6 @@ void test_constructor_whenInputExpiryIsMaxLong_thenStoredExpiryIsMaxSafeJSValue(
4543
void test_to_whenMessageExpiryMaxSafeValue_thenParsedValueIsMaxLong() {
4644
final NorthboundMappingModel northboundMappingModel = new NorthboundMappingModel("tag",
4745
"topic",
48-
MessageHandlingOptions.MQTTMessagePerSubscription,
4946
false,
5047
false,
5148
List.of(),

hivemq-edge/src/test/java/com/hivemq/configuration/reader/ProtocolAdapterExtractorTest.java

Lines changed: 6 additions & 68 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@
1515
*/
1616
package com.hivemq.configuration.reader;
1717

18-
import com.hivemq.adapter.sdk.api.config.MessageHandlingOptions;
1918
import com.hivemq.configuration.entity.HiveMQConfigEntity;
2019
import com.hivemq.configuration.entity.adapter.NorthboundMappingEntity;
2120
import com.hivemq.configuration.entity.adapter.ProtocolAdapterEntity;
@@ -114,49 +113,6 @@ public void whenNorthboundMappingQoSIsProvided_thenApplyConfigShouldWorkAsExpect
114113
}
115114
}
116115

117-
@ParameterizedTest
118-
@CsvSource({"true,MQTTMessagePerTag", "true,MQTTMessagePerSubscription", "false,abc"})
119-
public void whenNorthboundMappingMessageHandlingOptionsIsProvided_thenApplyConfigShouldWorkAsExpected(
120-
final boolean valid,
121-
final @NotNull String messageHandlingOptions)
122-
throws IOException {
123-
final ConfigFileReaderWriter configFileReader = getConfigFileReaderWriter("""
124-
<hivemq>
125-
<protocol-adapters>
126-
<protocol-adapter>
127-
<adapterId>simInvalid</adapterId>
128-
<protocolId>simulation</protocolId>
129-
<configVersion>1</configVersion>
130-
<config>
131-
<pollingIntervalMillis>123</pollingIntervalMillis>
132-
<timeout>10000</timeout>
133-
<minDelay>0</minDelay>
134-
<maxDelay>0</maxDelay>
135-
</config>
136-
<northboundMappings>
137-
<northboundMapping>
138-
<topic>MTConnect/my-steams</topic>
139-
<tagName>tag1</tagName>
140-
<messageHandlingOptions>${messageHandlingOptions}</messageHandlingOptions>
141-
</northboundMapping>
142-
</northboundMappings>
143-
<tags>
144-
<tag>
145-
<name>tag1</name>
146-
<description>description1</description>
147-
</tag>
148-
</tags>
149-
</protocol-adapter>
150-
</protocol-adapters>
151-
</hivemq>
152-
""".replace("${messageHandlingOptions}", messageHandlingOptions));
153-
if (valid) {
154-
assertThat(configFileReader.applyConfig()).isNotNull();
155-
} else {
156-
assertThatThrownBy(configFileReader::applyConfig).isInstanceOf(UnrecoverableException.class);
157-
}
158-
}
159-
160116
@ParameterizedTest
161117
@CsvSource({"true,true", "true,false", "false,abc"})
162118
public void whenNorthboundMappingIncludeTagNamesIsProvided_thenApplyConfigShouldWorkAsExpected(
@@ -414,14 +370,8 @@ public void whenNoTags_setConfigurationShouldReturnFalse() throws IOException {
414370
final ConfigFileReaderWriter configFileReader = getConfigFileReaderWriter();
415371
final HiveMQConfigEntity entity = configFileReader.applyConfig();
416372
assertThat(entity).isNotNull();
417-
final NorthboundMappingEntity northboundMappingEntity = new NorthboundMappingEntity("tagName",
418-
"topic",
419-
1,
420-
MessageHandlingOptions.MQTTMessagePerTag,
421-
false,
422-
true,
423-
List.of(),
424-
100L);
373+
final NorthboundMappingEntity northboundMappingEntity =
374+
new NorthboundMappingEntity("tagName", "topic", 1, false, true, List.of(), 100L);
425375
final ProtocolAdapterEntity protocolAdapterEntity = new ProtocolAdapterEntity("adapterId",
426376
"protocolId",
427377
1,
@@ -438,14 +388,8 @@ public void whenNorthboundMappingTagNameAreNotFound_setConfigurationShouldReturn
438388
final ConfigFileReaderWriter configFileReader = getConfigFileReaderWriter();
439389
final HiveMQConfigEntity entity = configFileReader.applyConfig();
440390
assertThat(entity).isNotNull();
441-
final NorthboundMappingEntity northboundMappingEntity = new NorthboundMappingEntity("tagName",
442-
"topic",
443-
1,
444-
MessageHandlingOptions.MQTTMessagePerTag,
445-
false,
446-
true,
447-
List.of(),
448-
100L);
391+
final NorthboundMappingEntity northboundMappingEntity =
392+
new NorthboundMappingEntity("tagName", "topic", 1, false, true, List.of(), 100L);
449393
final ProtocolAdapterEntity protocolAdapterEntity = new ProtocolAdapterEntity("adapterId",
450394
"protocolId",
451395
1,
@@ -466,14 +410,8 @@ public void whenNorthboundMappingTagNameOrTopicIsEmpty_setConfigurationShouldRet
466410
final ConfigFileReaderWriter configFileReader = getConfigFileReaderWriter();
467411
final HiveMQConfigEntity entity = configFileReader.applyConfig();
468412
assertThat(entity).isNotNull();
469-
final NorthboundMappingEntity northboundMappingEntity = new NorthboundMappingEntity(tagName,
470-
topic,
471-
1,
472-
MessageHandlingOptions.MQTTMessagePerTag,
473-
false,
474-
true,
475-
List.of(),
476-
100L);
413+
final NorthboundMappingEntity northboundMappingEntity =
414+
new NorthboundMappingEntity(tagName, topic, 1, false, true, List.of(), 100L);
477415
final ProtocolAdapterEntity protocolAdapterEntity = new ProtocolAdapterEntity("adapterId",
478416
"protocolId",
479417
1,

0 commit comments

Comments
 (0)