, MessageBodyCreator {
public SendMessageServiceImpl(IMqttClient mqttClient) {
- super(mqttClient);
+ super(new PahoMqttClientWrapper(mqttClient));
+ }
+
+ public SendMessageServiceImpl(Mqtt3AsyncClient mqttClient) {
+ super(new HiveMqttClientWrapper(mqttClient));
}
/**
@@ -31,18 +35,14 @@ public SendMessageServiceImpl(IMqttClient mqttClient) {
*/
public void send(SendMessageParameters sendMessageParameters) {
sendMessageParameters.validate();
- try {
- var messageAsJson = this.createMessageBody(sendMessageParameters);
- var payload = messageAsJson.getBytes();
- this.getMqttClient()
- .publish(
- Objects.requireNonNull(sendMessageParameters.getOnboardingResponse())
- .getConnectionCriteria()
- .getMeasures(),
- new MqttMessage(payload));
- } catch (MqttException e) {
- throw new CouldNotSendMqttMessageException(e);
- }
+ var messageAsJson = this.createMessageBody(sendMessageParameters);
+ var payload = messageAsJson.getBytes();
+ this.getMqttClient()
+ .publish(
+ Objects.requireNonNull(sendMessageParameters.getOnboardingResponse())
+ .getConnectionCriteria()
+ .getMeasures(),
+ payload);
}
@Override
diff --git a/agrirouter-sdk-java-impl/src/main/java/com/dke/data/agrirouter/impl/messaging/mqtt/SetCapabilityServiceImpl.java b/agrirouter-sdk-java-impl/src/main/java/com/dke/data/agrirouter/impl/messaging/mqtt/SetCapabilityServiceImpl.java
index ec381a5e..647ab62f 100644
--- a/agrirouter-sdk-java-impl/src/main/java/com/dke/data/agrirouter/impl/messaging/mqtt/SetCapabilityServiceImpl.java
+++ b/agrirouter-sdk-java-impl/src/main/java/com/dke/data/agrirouter/impl/messaging/mqtt/SetCapabilityServiceImpl.java
@@ -1,7 +1,8 @@
package com.dke.data.agrirouter.impl.messaging.mqtt;
-import com.dke.data.agrirouter.api.exception.CouldNotSendMqttMessageException;
import com.dke.data.agrirouter.api.messaging.MqttAsyncMessageSendingResult;
+import com.dke.data.agrirouter.api.mqtt.HiveMqttClientWrapper;
+import com.dke.data.agrirouter.api.mqtt.PahoMqttClientWrapper;
import com.dke.data.agrirouter.api.service.messaging.encoding.EncodeMessageService;
import com.dke.data.agrirouter.api.service.messaging.mqtt.SetCapabilityService;
import com.dke.data.agrirouter.api.service.parameters.SendMessageParameters;
@@ -11,9 +12,8 @@
import com.dke.data.agrirouter.impl.messaging.encoding.EncodeMessageServiceImpl;
import com.dke.data.agrirouter.impl.messaging.rest.MessageSender;
import com.dke.data.agrirouter.impl.validation.ResponseValidator;
+import com.hivemq.client.mqtt.mqtt3.Mqtt3AsyncClient;
import org.eclipse.paho.client.mqttv3.IMqttClient;
-import org.eclipse.paho.client.mqttv3.MqttException;
-import org.eclipse.paho.client.mqttv3.MqttMessage;
import java.util.Collections;
import java.util.Objects;
@@ -26,31 +26,32 @@ public class SetCapabilityServiceImpl extends MqttService
private final EncodeMessageService encodeMessageService;
public SetCapabilityServiceImpl(IMqttClient mqttClient) {
- super(mqttClient);
+ super(new PahoMqttClientWrapper(mqttClient));
+ this.encodeMessageService = new EncodeMessageServiceImpl();
+ }
+
+ public SetCapabilityServiceImpl(Mqtt3AsyncClient mqttClient) {
+ super(new HiveMqttClientWrapper(mqttClient));
this.encodeMessageService = new EncodeMessageServiceImpl();
}
@Override
public String send(SetCapabilitiesParameters parameters) {
parameters.validate();
- try {
- var encodedMessage = this.encode(parameters);
- var sendMessageParameters = new SendMessageParameters();
- sendMessageParameters.setOnboardingResponse(parameters.getOnboardingResponse());
- sendMessageParameters.setEncodedMessages(
- Collections.singletonList(encodedMessage.getEncodedMessage()));
- var messageAsJson = this.createMessageBody(sendMessageParameters);
- var payload = messageAsJson.getBytes();
- this.getMqttClient()
- .publish(
- Objects.requireNonNull(parameters.getOnboardingResponse())
- .getConnectionCriteria()
- .getMeasures(),
- new MqttMessage(payload));
- return encodedMessage.getApplicationMessageID();
- } catch (MqttException e) {
- throw new CouldNotSendMqttMessageException(e);
- }
+ var encodedMessage = this.encode(parameters);
+ var sendMessageParameters = new SendMessageParameters();
+ sendMessageParameters.setOnboardingResponse(parameters.getOnboardingResponse());
+ sendMessageParameters.setEncodedMessages(
+ Collections.singletonList(encodedMessage.getEncodedMessage()));
+ var messageAsJson = this.createMessageBody(sendMessageParameters);
+ var payload = messageAsJson.getBytes();
+ this.getMqttClient()
+ .publish(
+ Objects.requireNonNull(parameters.getOnboardingResponse())
+ .getConnectionCriteria()
+ .getMeasures(),
+ payload);
+ return encodedMessage.getApplicationMessageID();
}
@Override
diff --git a/agrirouter-sdk-java-impl/src/main/java/com/dke/data/agrirouter/impl/messaging/mqtt/SetSubscriptionServiceImpl.java b/agrirouter-sdk-java-impl/src/main/java/com/dke/data/agrirouter/impl/messaging/mqtt/SetSubscriptionServiceImpl.java
index 6e882790..6ae91be7 100644
--- a/agrirouter-sdk-java-impl/src/main/java/com/dke/data/agrirouter/impl/messaging/mqtt/SetSubscriptionServiceImpl.java
+++ b/agrirouter-sdk-java-impl/src/main/java/com/dke/data/agrirouter/impl/messaging/mqtt/SetSubscriptionServiceImpl.java
@@ -1,7 +1,8 @@
package com.dke.data.agrirouter.impl.messaging.mqtt;
-import com.dke.data.agrirouter.api.exception.CouldNotSendMqttMessageException;
import com.dke.data.agrirouter.api.messaging.MqttAsyncMessageSendingResult;
+import com.dke.data.agrirouter.api.mqtt.HiveMqttClientWrapper;
+import com.dke.data.agrirouter.api.mqtt.PahoMqttClientWrapper;
import com.dke.data.agrirouter.api.service.messaging.encoding.EncodeMessageService;
import com.dke.data.agrirouter.api.service.messaging.mqtt.SetSubscriptionService;
import com.dke.data.agrirouter.api.service.parameters.SendMessageParameters;
@@ -11,9 +12,8 @@
import com.dke.data.agrirouter.impl.messaging.MqttService;
import com.dke.data.agrirouter.impl.messaging.encoding.EncodeMessageServiceImpl;
import com.dke.data.agrirouter.impl.validation.ResponseValidator;
+import com.hivemq.client.mqtt.mqtt3.Mqtt3AsyncClient;
import org.eclipse.paho.client.mqttv3.IMqttClient;
-import org.eclipse.paho.client.mqttv3.MqttException;
-import org.eclipse.paho.client.mqttv3.MqttMessage;
import java.util.Collections;
import java.util.Objects;
@@ -25,31 +25,32 @@ public class SetSubscriptionServiceImpl extends MqttService
private final EncodeMessageService encodeMessageService;
public SetSubscriptionServiceImpl(IMqttClient mqttClient) {
- super(mqttClient);
+ super(new PahoMqttClientWrapper(mqttClient));
+ this.encodeMessageService = new EncodeMessageServiceImpl();
+ }
+
+ public SetSubscriptionServiceImpl(Mqtt3AsyncClient mqttClient) {
+ super(new HiveMqttClientWrapper(mqttClient));
this.encodeMessageService = new EncodeMessageServiceImpl();
}
@Override
public String send(SetSubscriptionParameters parameters) {
parameters.validate();
- try {
- var encodedMessage = this.encode(parameters);
- var sendMessageParameters = new SendMessageParameters();
- sendMessageParameters.setOnboardingResponse(parameters.getOnboardingResponse());
- sendMessageParameters.setEncodedMessages(
- Collections.singletonList(encodedMessage.getEncodedMessage()));
- var messageAsJson = this.createMessageBody(sendMessageParameters);
- var payload = messageAsJson.getBytes();
- this.getMqttClient()
- .publish(
- Objects.requireNonNull(parameters.getOnboardingResponse())
- .getConnectionCriteria()
- .getMeasures(),
- new MqttMessage(payload));
- return encodedMessage.getApplicationMessageID();
- } catch (MqttException e) {
- throw new CouldNotSendMqttMessageException(e);
- }
+ var encodedMessage = this.encode(parameters);
+ var sendMessageParameters = new SendMessageParameters();
+ sendMessageParameters.setOnboardingResponse(parameters.getOnboardingResponse());
+ sendMessageParameters.setEncodedMessages(
+ Collections.singletonList(encodedMessage.getEncodedMessage()));
+ var messageAsJson = this.createMessageBody(sendMessageParameters);
+ var payload = messageAsJson.getBytes();
+ this.getMqttClient()
+ .publish(
+ Objects.requireNonNull(parameters.getOnboardingResponse())
+ .getConnectionCriteria()
+ .getMeasures(),
+ payload);
+ return encodedMessage.getApplicationMessageID();
}
@Override
diff --git a/agrirouter-sdk-java-tests/onboarding-responses/communication-unit.json b/agrirouter-sdk-java-tests/onboarding-responses/communication-unit.json
index 0f244781..0259bc54 100644
--- a/agrirouter-sdk-java-tests/onboarding-responses/communication-unit.json
+++ b/agrirouter-sdk-java-tests/onboarding-responses/communication-unit.json
@@ -1 +1 @@
-{"deviceAlternateId":"cdee8e0c-05b8-4252-9da3-977239e54adc","capabilityAlternateId":"3035ec70-dca1-4d71-a000-e79eb5891f81","sensorAlternateId":"f658fa1a-fef3-43bc-87e7-4499858ac609","connectionCriteria":{"gatewayId":"3","measures":"https://dke-qa.eu10.cp.iot.sap/iot/gateway/rest/measures/cdee8e0c-05b8-4252-9da3-977239e54adc","commands":"https://dke-qa.eu10.cp.iot.sap/iot/gateway/rest/commands/cdee8e0c-05b8-4252-9da3-977239e54adc"},"authentication":{"type":"P12","secret":"FNG3X?X4gJwZlut!ebZ3rigVfQCyOrOqhCj7","certificate":"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"}}
\ No newline at end of file
+{"deviceAlternateId":"5dade5c9-dcca-4bf1-be22-f7f61ed90ea7","capabilityAlternateId":"5dade5c9-dcca-4bf1-be22-f7f61ed90ea7","sensorAlternateId":"5dade5c9-dcca-4bf1-be22-f7f61ed90ea7","connectionCriteria":{"gatewayId":"3","measures":"https://gateway-service.qa.agrirouter.farm/inbox/5dade5c9-dcca-4bf1-be22-f7f61ed90ea7","commands":"https://gateway-service.qa.agrirouter.farm/outbox/5dade5c9-dcca-4bf1-be22-f7f61ed90ea7"},"authentication":{"type":"P12","secret":"Ga4OM1C4tgWGILrF","certificate":"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\u003d"}}
\ No newline at end of file
diff --git a/agrirouter-sdk-java-tests/onboarding-responses/farming-software-deactivated.json b/agrirouter-sdk-java-tests/onboarding-responses/farming-software-deactivated.json
deleted file mode 100644
index a6114a1b..00000000
--- a/agrirouter-sdk-java-tests/onboarding-responses/farming-software-deactivated.json
+++ /dev/null
@@ -1 +0,0 @@
-{"deviceAlternateId":"5c520765-33d6-49a8-bd16-e300375e56ec","capabilityAlternateId":"3035ec70-dca1-4d71-a000-e79eb5891f81","sensorAlternateId":"29a2f1a8-9f38-4375-b882-f9e1fe3c9dee","connectionCriteria":{"gatewayId":"3","measures":"https://dke-qa.eu10.cp.iot.sap/iot/gateway/rest/measures/5c520765-33d6-49a8-bd16-e300375e56ec","commands":"https://dke-qa.eu10.cp.iot.sap/iot/gateway/rest/commands/5c520765-33d6-49a8-bd16-e300375e56ec"},"authentication":{"type":"P12","secret":"NkCktQux#vyiRJF3ANHc2r9eTB2rqUK!XGdJ","certificate":"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"}}
\ No newline at end of file
diff --git a/agrirouter-sdk-java-tests/onboarding-responses/farming-software-removed.json b/agrirouter-sdk-java-tests/onboarding-responses/farming-software-removed.json
deleted file mode 100644
index 8bee64c0..00000000
--- a/agrirouter-sdk-java-tests/onboarding-responses/farming-software-removed.json
+++ /dev/null
@@ -1 +0,0 @@
-{"deviceAlternateId":"49ac8bb0-e545-4b44-a672-e4b9d8bd3e86","capabilityAlternateId":"3035ec70-dca1-4d71-a000-e79eb5891f81","sensorAlternateId":"5eb2a4d7-da77-4142-b19a-54d2dd97af65","connectionCriteria":{"gatewayId":"3","measures":"https://dke-qa.eu10.cp.iot.sap/iot/gateway/rest/measures/49ac8bb0-e545-4b44-a672-e4b9d8bd3e86","commands":"https://dke-qa.eu10.cp.iot.sap/iot/gateway/rest/commands/49ac8bb0-e545-4b44-a672-e4b9d8bd3e86"},"authentication":{"type":"P12","secret":"jwNmGqzNfRn#dO7DTGkVu?cZz2Ta86#HhnjH","certificate":"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"}}
\ No newline at end of file
diff --git a/agrirouter-sdk-java-tests/onboarding-responses/farming-software.json b/agrirouter-sdk-java-tests/onboarding-responses/farming-software.json
index 30653616..e1556b7e 100644
--- a/agrirouter-sdk-java-tests/onboarding-responses/farming-software.json
+++ b/agrirouter-sdk-java-tests/onboarding-responses/farming-software.json
@@ -1 +1 @@
-{"deviceAlternateId":"93e12d85-5cb1-4afc-aa53-db2fd9472437","capabilityAlternateId":"3035ec70-dca1-4d71-a000-e79eb5891f81","sensorAlternateId":"b617b956-4145-43db-916b-fada868cb389","connectionCriteria":{"gatewayId":"3","measures":"https://dke-qa.eu10.cp.iot.sap/iot/gateway/rest/measures/93e12d85-5cb1-4afc-aa53-db2fd9472437","commands":"https://dke-qa.eu10.cp.iot.sap/iot/gateway/rest/commands/93e12d85-5cb1-4afc-aa53-db2fd9472437"},"authentication":{"type":"P12","secret":"pT#uh2yNg#0iQqnC24c5cII5YWmJDc1hqTz5","certificate":"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"}}
\ No newline at end of file
+{"deviceAlternateId":"4e533dfc-89e3-4efd-a786-bec3612f9b96","capabilityAlternateId":"4e533dfc-89e3-4efd-a786-bec3612f9b96","sensorAlternateId":"4e533dfc-89e3-4efd-a786-bec3612f9b96","connectionCriteria":{"gatewayId":"3","measures":"https://gateway-service.qa.agrirouter.farm/inbox/4e533dfc-89e3-4efd-a786-bec3612f9b96","commands":"https://gateway-service.qa.agrirouter.farm/outbox/4e533dfc-89e3-4efd-a786-bec3612f9b96"},"authentication":{"type":"P12","secret":"9iPnjUlRZ8EXqAlW","certificate":"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\u003d"}}
\ No newline at end of file
diff --git a/agrirouter-sdk-java-tests/onboarding-responses/mqtt-communication-unit.json b/agrirouter-sdk-java-tests/onboarding-responses/mqtt-communication-unit.json
new file mode 100644
index 00000000..00cf94be
--- /dev/null
+++ b/agrirouter-sdk-java-tests/onboarding-responses/mqtt-communication-unit.json
@@ -0,0 +1 @@
+{"deviceAlternateId":"c2824851-4de8-4e27-a583-4d47fe314d5d","capabilityAlternateId":"c2824851-4de8-4e27-a583-4d47fe314d5d","sensorAlternateId":"c2824851-4de8-4e27-a583-4d47fe314d5d","connectionCriteria":{"gatewayId":"2","measures":"measures/c2824851-4de8-4e27-a583-4d47fe314d5d","commands":"commands/c2824851-4de8-4e27-a583-4d47fe314d5d","host":"mqtt.qa.agrirouter.farm","port":"8883","clientId":"c2824851-4de8-4e27-a583-4d47fe314d5d"},"authentication":{"type":"P12","secret":"ETuQsLEV2NyOwx0R","certificate":"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\u003d"}}
\ No newline at end of file
diff --git a/agrirouter-sdk-java-tests/onboarding-responses/telemetry-platform-deactivated.json b/agrirouter-sdk-java-tests/onboarding-responses/telemetry-platform-deactivated.json
deleted file mode 100644
index 97bb27f5..00000000
--- a/agrirouter-sdk-java-tests/onboarding-responses/telemetry-platform-deactivated.json
+++ /dev/null
@@ -1,15 +0,0 @@
-{
- "deviceAlternateId": "7b77dd4d-3782-4d14-8087-5f3026950427",
- "capabilityAlternateId": "3035ec70-dca1-4d71-a000-e79eb5891f81",
- "sensorAlternateId": "4c1041ec-787f-44bd-ac11-603746e1191d",
- "connectionCriteria": {
- "gatewayId": "3",
- "measures": "https://dke-qa.eu10.cp.iot.sap/iot/gateway/rest/measures/7b77dd4d-3782-4d14-8087-5f3026950427",
- "commands": "https://dke-qa.eu10.cp.iot.sap/iot/gateway/rest/commands/7b77dd4d-3782-4d14-8087-5f3026950427"
- },
- "authentication": {
- "type": "P12",
- "secret": "xxdGPP#a9Tx?a67R3GtuTMc6Z13JaWR#?5cO",
- "certificate": "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"
- }
-}
\ No newline at end of file
diff --git a/agrirouter-sdk-java-tests/onboarding-responses/telemetry-platform-removed.json b/agrirouter-sdk-java-tests/onboarding-responses/telemetry-platform-removed.json
deleted file mode 100644
index 07eed543..00000000
--- a/agrirouter-sdk-java-tests/onboarding-responses/telemetry-platform-removed.json
+++ /dev/null
@@ -1,15 +0,0 @@
-{
- "deviceAlternateId": "8fd61af3-3247-4abb-a9bd-e871a1cea4e7",
- "capabilityAlternateId": "3035ec70-dca1-4d71-a000-e79eb5891f81",
- "sensorAlternateId": "6a3220a9-daf6-4457-812c-7c90aae7b683",
- "connectionCriteria": {
- "gatewayId": "3",
- "measures": "https://dke-qa.eu10.cp.iot.sap/iot/gateway/rest/measures/8fd61af3-3247-4abb-a9bd-e871a1cea4e7",
- "commands": "https://dke-qa.eu10.cp.iot.sap/iot/gateway/rest/commands/8fd61af3-3247-4abb-a9bd-e871a1cea4e7"
- },
- "authentication": {
- "type": "P12",
- "secret": "e76r1WIMDPmm3Rx4#bMLS!YNRzTAR1nGX1lv",
- "certificate": "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"
- }
-}
\ No newline at end of file
diff --git a/agrirouter-sdk-java-tests/onboarding-responses/telemetry-platform.json b/agrirouter-sdk-java-tests/onboarding-responses/telemetry-platform.json
index 78066eb8..e49b32c3 100644
--- a/agrirouter-sdk-java-tests/onboarding-responses/telemetry-platform.json
+++ b/agrirouter-sdk-java-tests/onboarding-responses/telemetry-platform.json
@@ -1,15 +1 @@
-{
- "deviceAlternateId": "a783ce19-79c6-4e50-9a9a-4f54e376844b",
- "capabilityAlternateId": "3035ec70-dca1-4d71-a000-e79eb5891f81",
- "sensorAlternateId": "2a7828f4-7ad2-40df-a942-274b7a96c508",
- "connectionCriteria": {
- "gatewayId": "3",
- "measures": "https://dke-qa.eu10.cp.iot.sap/iot/gateway/rest/measures/a783ce19-79c6-4e50-9a9a-4f54e376844b",
- "commands": "https://dke-qa.eu10.cp.iot.sap/iot/gateway/rest/commands/a783ce19-79c6-4e50-9a9a-4f54e376844b"
- },
- "authentication": {
- "type": "P12",
- "secret": "DyPedBmnf!#DtierUhCwAX43JbWsbnKWD26M",
- "certificate": "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"
- }
-}
\ No newline at end of file
+{"deviceAlternateId":"a55f9e96-86bb-4246-be3c-f3f9eb7a08ce","capabilityAlternateId":"a55f9e96-86bb-4246-be3c-f3f9eb7a08ce","sensorAlternateId":"a55f9e96-86bb-4246-be3c-f3f9eb7a08ce","connectionCriteria":{"gatewayId":"3","measures":"https://gateway-service.qa.agrirouter.farm/inbox/a55f9e96-86bb-4246-be3c-f3f9eb7a08ce","commands":"https://gateway-service.qa.agrirouter.farm/outbox/a55f9e96-86bb-4246-be3c-f3f9eb7a08ce"},"authentication":{"type":"P12","secret":"xA35MNgYumGgyIHg","certificate":"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\u003d"}}
\ No newline at end of file
diff --git a/agrirouter-sdk-java-tests/pom.xml b/agrirouter-sdk-java-tests/pom.xml
index 3f952d3f..5bed6c13 100644
--- a/agrirouter-sdk-java-tests/pom.xml
+++ b/agrirouter-sdk-java-tests/pom.xml
@@ -5,7 +5,7 @@
agrirouter-sdk-java
com.agrirouter.api
- 3.2.2
+ 3.3.0
4.0.0
AGRIROUTER SDK JAVA - TESTS
diff --git a/agrirouter-sdk-java-tests/src/test/java/com/dke/data/agrirouter/test/AbstractIntegrationTest.java b/agrirouter-sdk-java-tests/src/test/java/com/dke/data/agrirouter/test/AbstractIntegrationTest.java
index 04f00bd5..173d541c 100644
--- a/agrirouter-sdk-java-tests/src/test/java/com/dke/data/agrirouter/test/AbstractIntegrationTest.java
+++ b/agrirouter-sdk-java-tests/src/test/java/com/dke/data/agrirouter/test/AbstractIntegrationTest.java
@@ -44,12 +44,12 @@ protected void waitForTheAgrirouterToProcessMultipleMessages() throws Interrupte
new Application() {
@Override
public String getApplicationId() {
- return "434989e2-b4be-4cfd-8e40-f5b89d83458d";
+ return "8af89642-5e30-11ef-a95b-d2e1bbd0b244";
}
@Override
public String getCertificationVersionId() {
- return "f491d487-f913-4732-8be4-c2eacff21816";
+ return "96c2c3e8-5e30-11ef-a95b-d2e1bbd0b244";
}
};
@@ -61,44 +61,44 @@ public String getCertificationVersionId() {
@Override
public String getApplicationId() {
- return "905152eb-c526-47a3-b871-aa46d065bb4c";
+ return "2bb59356-5e31-11ef-a95b-d2e1bbd0b244";
}
@Override
public String getCertificationVersionId() {
- return "c8ee0fc3-056c-4d81-8eba-fb4f8208c827";
+ return "4dc7a506-5e31-11ef-a95b-d2e1bbd0b244";
}
@Override
public String getPrivateKey() {
return """
-----BEGIN PRIVATE KEY-----
- MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDCiSNJmpAbrqF5
- wOe4kPtavH50OxfjevZjgFhoG/lO+nkJz366655pjKqkwmlxF3GhoXMppAR2K+Dh
- x3g46dJGA/dG5Ju5TpLnPn3AskHJMcagGE+0Lb29pXUX7ZAdO0MrqIVSh9UZ3j2v
- +MlF4GOwUkOLPu8IgtKK13vlTu3qYKmFzSss9M3r/t7hZemGyGUq/GVZ8wvYWFTc
- SdBhOZBzGDpQmRKiL5wcF1HyZfmT8mwbPITzf9Pd+9cDvQT74Ohmu920wwQavS+n
- hPaOFEW9io9gIsKY3y81Qt4OR+xQ20BdmsRscWwWaSoQpjol0+f3OnTFmLMGvjuw
- y8keLp+zAgMBAAECggEAGm87MdHEelaBD8PkWQKufTZ28oFjLiCz4XJ70O3YM2C6
- 2NfuzyScWphoSco3PMxkPwPq28IzbwFoZhXOYuF3FteMHwCKnqQsNysZOHmgkd/n
- LzMOhZvfmCknH7DC8A3xAzo7n6rgjMrT1Bk49HtY4IlVL1NGdQAd7wr4BYFzt/Dc
- 8qXnqXWqWcvgktDQBKEPXc8XAQom6fWFcnx+CALUIx3c4QXaCgdG/EuWeaqqM14j
- 2tM1PwVh3rxiDiwMJSDEQVSxkJtM9M+EEC6oCvBPE4txjaHBjQqsxZJ9po5Va00+
- Wm6DuPEfkKTxX1J0a/le8SA0JZ+Tlz/VXOySaeMKYQKBgQDpUoPOfpx/FfOIr4Tk
- 311zqcPfY+XiCwq56CTfVYERF8QSDQAMuuW3K53SFLTwjgUEq7BwFshhhcTdRxsh
- QtKAHg4NpownmGnmQCG681eFTB4IiiGNMlEt6hXh3MQK4QfjDFL/0Y1tXStsM7xB
- ouwPOZweWmlv7u7kVEDx4kHEUwKBgQDVcYp2pI/SjXtsFF/LRy/0xW/dgRQMortV
- IPYkYvSO/w2dMV2wX1Ly78wFs4uj4ODDfyeVG2xDjn6svQR67FtHPLyBS+SwNTbY
- jfzRV1EydHweZgdw9/1yA9zvSPVMvieSgeiR++2YmEEtJYSEoxuBkVSnLAXKFy3/
- 4RCHrhBLIQKBgB6im/XX//pbyn8u9JcMkPun1bUWK8/zPTRNu9GrK2gwI6lvFYuW
- WqUjT/SOjXdsXlJPrLn689KCOugG9xP17yetSpEWRh7Iz1bRItymKN6ysNrUMDWW
- 3rvVmYvvbboz89InAxrdy+EJM7NgU56WosIZAVum6WMuDyXhvilEWPhLAoGALwnd
- tPXhSEqr147J6befhvb4Bz3KGFrIpCMme7BfKyBkdK8LcbIgSq+0K9F8xbnqbssY
- AxFPE7hUjGb/lMN//jwRYwFBvd+MXb8050GyAEeRjvV3UFsmvLjDOOzAOpBxkiUV
- Bw8ZNpbfTj7FbKGxjyVjHZBjGj1vgsOr6+rdZmECgYEA5gBLtqvsebobo86J4LL7
- 6VaXtgbgShm8GYMfTDPxkmAv4a89Lpec2UQ6EaVt7xHSdk4hMidfZHGambOtd+Zh
- DTWnVSzxt91ZSEcDc3gTxK3hBltTga+9Y63S+/6vVykWKRtAvqkiEEgLNnNXOFNX
- lE8ylEsO1whZyzKceV8uaqA=
+ MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDRFJg/FMUntssw
+ Zy2/7KM3PM09DPbt7T4MFFM7/A6oUQPePm4EbBU2i2U7LRlVosE93F0zqo/ie7xt
+ yjkUmZZcaYP4+kRbzEJ2kANlZ44W0b0SRLx5VQ3aaQh7klo7VV/+NNToZ0p5Z+L7
+ kBiOlgLPlCmZMloa0bStQPiOzmKgiyPhJp326hQUJ6Cl9oExhT/w+oFjygrrXE4c
+ B27kD4tve3Ai8X9ZfV1fMihexpCcvwowHN3MB376bkI++CxK8P+WI4MS46qMSsY2
+ X4i/hGVevUF7tcykeYDFiVjaSDcWtBReG536gmB86Imhu+kCZPxz67hk6+z/EFKA
+ d0OQqGOBAgMBAAECggEAHlycQ0TT4JGF7jB9j0pg5UuaDkyMqz5xbTWiZKqUwlKJ
+ ekOcnF3JstMJT0+cRzhMUZxnmHIjVONdGKBuK5SmJiNYe9Z0CNSfrjH5nEcudhfd
+ GgMLT59PVLE9/xvgqI8cUoD/jgQ552lzp85kEoisPdKpO8r5FL3xO9ucfLhx0BhB
+ WdQZcnqAvMHrlMwuWCXzdqag3nAF7x+heNklVuhIrKGhy7r9ujmv2xf0ccpzfiSq
+ AC6p/BLgjdXRrZsGKZ/f5mL584RkhFhCfY8U7MURY4w1Qx73mAvY7DzPZ82cmjPf
+ D0HPGF9lNQNYeNP6LTZ6+wFLYhsJF00ciXAyeFs4RQKBgQDqJ6tLzQ3YRfk/wTAE
+ WLSxmtKsn7xWh9YhOiOs4vgGd4Ap0kcj4vzOgolNdqUDDTrVi/lyA3r26lzSsrbr
+ Tv/LzuhbTAEa+AlbfVaoimqRkz7oVSDVEeofLTiAm6KOVRCjcxSAKsZzCoZ0MWJl
+ Aq3U4XtjSq0gAzxiao5BrhwUuwKBgQDklhH55D8VHgb9KKznFw0yg2XK/+hAO+Lo
+ aTP+QdJRpbBEozmVWB8uPu116DALRYoQ16jPUU7xODf38UT/w1F8xpa8+UINXfO1
+ nXl2hjqqwcs0V/1YAYHutMFmlDaN8V8w0FIFdnggOLkkvWdlP3nRslV5/1yZixZ2
+ yDt7nbHC8wKBgFYkTeJPB57e7zlDKxUORTtph8O16CW1R1Nl/iXmQfSvFdlM4JsV
+ MIgQgc6brU0YGuLg4d3N5fjcc1WYJa8fmv8xmU2tAmMXiOm9jJnoghgYIXZ7it6X
+ /peFnVnC5+SQ6tQWzB3ynptH7frlCBu9BpJgeXIn0NUMG7ThGoCTOwVtAoGAHwLI
+ /4jakgfX1OJ+yn8TGEZBOhALtyMovnT/S8AsQ01iI32tYzhoSoLY/kT4t57Ag1Zu
+ nWmfdxQ0a5u8y6H43R+n9Y0vS9byKDJr9wtwzBesdLZ3NUhHE1ZMYpk66XjUfC/W
+ 4MzYsS5g174mV9MLuMoj1IAzVNVMv+KcR0H2iscCgYEA1uVd+razCxfq/4qRN5ke
+ BwPdbJx1m7V0dVHNJm6q+Ig7L3ovbJt88599T0Nf7WyEhbUaXVWKkH/OxCvesLX3
+ b0VMOte/UYuSoGiOuOmzFoQoR1IAjqlC0vHqfzMJRGvOT9k/ZHvI2HwlHax0wcTI
+ wy+YtX0o2eOcr4QVO+M/kOI=
-----END PRIVATE KEY-----
""";
}
@@ -107,13 +107,13 @@ public String getPrivateKey() {
public String getPublicKey() {
return """
-----BEGIN PUBLIC KEY-----
- MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAwokjSZqQG66hecDnuJD7
- Wrx+dDsX43r2Y4BYaBv5Tvp5Cc9+uuueaYyqpMJpcRdxoaFzKaQEdivg4cd4OOnS
- RgP3RuSbuU6S5z59wLJByTHGoBhPtC29vaV1F+2QHTtDK6iFUofVGd49r/jJReBj
- sFJDiz7vCILSitd75U7t6mCphc0rLPTN6/7e4WXphshlKvxlWfML2FhU3EnQYTmQ
- cxg6UJkSoi+cHBdR8mX5k/JsGzyE83/T3fvXA70E++DoZrvdtMMEGr0vp4T2jhRF
- vYqPYCLCmN8vNULeDkfsUNtAXZrEbHFsFmkqEKY6JdPn9zp0xZizBr47sMvJHi6f
- swIDAQAB
+ MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA0RSYPxTFJ7bLMGctv+yj
+ NzzNPQz27e0+DBRTO/wOqFED3j5uBGwVNotlOy0ZVaLBPdxdM6qP4nu8bco5FJmW
+ XGmD+PpEW8xCdpADZWeOFtG9EkS8eVUN2mkIe5JaO1Vf/jTU6GdKeWfi+5AYjpYC
+ z5QpmTJaGtG0rUD4js5ioIsj4Sad9uoUFCegpfaBMYU/8PqBY8oK61xOHAdu5A+L
+ b3twIvF/WX1dXzIoXsaQnL8KMBzdzAd++m5CPvgsSvD/liODEuOqjErGNl+Iv4Rl
+ Xr1Be7XMpHmAxYlY2kg3FrQUXhud+oJgfOiJobvpAmT8c+u4ZOvs/xBSgHdDkKhj
+ gQIDAQAB
-----END PUBLIC KEY-----
""";
}
@@ -127,45 +127,45 @@ public String getPublicKey() {
@Override
public String getApplicationId() {
- return "3c3559c9-7062-4628-a4f7-c9f5aa07265f";
+ return "e051056d-5e31-11ef-a95b-d2e1bbd0b244";
}
@Override
public String getCertificationVersionId() {
- return "5e488554-d6bb-400c-9632-b3b4b35b07ca";
+ return "e743930a-5e31-11ef-a95b-d2e1bbd0b244";
}
@Override
public String getPrivateKey() {
return """
- -----BEGIN PRIVATE KEY-----
- MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCkAWrcN0FmbWZ+
- 24qE6maNlf46EjH/BOI5f79wFRJAeG6RXrl8KwWdlfeZOlEYRyq+o4AVuP7Mce6R
- x5PR/AEtn1K4Twr5h1+uG+O5/D2jJ0O/+nFnNcX/WgJfEbriDK9ewV8mEnFgG3n5
- y6P9RCcu0zMFV9PrKTop419krg2Ij0/to5LLU0DaQXmgvSC7Crx0k9dIhDeZ4jc3
- rv4SWzOcZT5vPFtA/5G66ZeeTVX+3iJbasWOdatMc7/cGYxUlnzeNSoCAqmyuHzO
- PKHWcjyVwPXWG64TSzkb+QypynUIZaAy+P8uawD0BivsmFSf0k4pGl8wSHhE2pN8
- OIIyud/lAgMBAAECgf93UZCtJoYuPumS4aaljOOPntCW7yXwo1zy+D4PDUV6IiRP
- HttTuvka7UB1+jeFskEm8Uz+gNjfZQRsiwbAftdcmc1Uyizx3ct+oEvNw/YT/T0N
- LufSbwzd+l4/TGbqjtAH4CeZS1Gw2kyjr8RfPnZDWuSDvqIvNI9cak+8r+SotHEL
- i1yAZTDvZAqLhbDLbW9Ephxd5QkKfwegybSwxJJcOw+KLPsq0Ibb2YGbkPTL1P6o
- Ul3/tiyzEMRc2ufyDJgYCAUmvVBjkbHT7hQNkTL8EPAEXfL+vhte8A98aFPnWMhS
- yiJo3T643fjZ8fzPcv8GWmT+z6IxtlXguC/OmQECgYEAzUbQF5YqJ61n6sQiJ0VQ
- ZMDDVHzf/oNUCPee4tCVS0ShQ2JURUIbss+lUWbKDfFTXW9mte4VRk+WUh2gQqm6
- 49IdIpRGx6m6/ye2g6EmXRzeSN9GJu/wltS2uQ+8fmOkWiBUFg8bkLWTTxAY1w0n
- 31AYcE8wwLb2FXt6Q2u4OQECgYEAzIfrUejd7GS/eaUx2GFKsXaI3B3CmLQ8TQFu
- JOh3i2NgcDK5Uwhy5TWozEn4BpwX8UOMciZIGjMr0i5TzpSVca1sv1wyIyWr7+AU
- 2dmxPTXbkQQpEy7GDE1iCMvsi1lC6F+EUwdCKw6H5oa0oU1XMr/JWJSGh8iFRH5v
- H3ic4uUCgYEAycZYV0boqtWddrtRou5UBqUfmxWgC4nFeYcE64gBp9mO9jBaCzXf
- ChVnN6tk4u2adxZAjIW47cLfTFoIpF438SYgM1QyeqIQyCueEKa/kfkFWfX1++IP
- yALQlPmt20JQU7LBVGmHO+fvI2D8Oa6ZybzuOL7ueg+dtiIIXOsuSwECgYEAjqaZ
- 1PYymmamOWSjQESTQPTofYVwLOtAR4Eg3jMY9anpIDfwk94HrJ/hTCKnD40dEdPI
- B/F1Rni8LorLPwDYvoFzoH/gJC1pHxPN1yeC+6stqZYaQ9vSm8/4+SOppoMqLEI6
- W2JrnvYyiPEY2IvFroqfFt34eom7kUsRnASWf5UCgYEAxEMOQ0/+hz1APqCGVo3t
- uePUIdsokCusRpWsxUdwHBGqfDjULqVmDXIJuJekV4YUxzyzktRzVms0pgFbr47L
- f8IeyJnYFhPn1hgthGlgV7JvFq2TU+EgZYVpVGL6jrw8t78Y4IresceIkz4q/bGV
- j35jwp22eLOc0FdPo0KgO4s=
- -----END PRIVATE KEY-----
+ -----BEGIN PRIVATE KEY-----
+ MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQD38PmCfYHaoPRF
+ J47yIxCVmGAg94mnSV5C4XGSOXq1ha/GCjhsR+YDgKnBt+lenxGt4TExN1OOK/SS
+ uconfh61o1ouUPbaq3OImlSecYGIFzOQxWj9q97Yp+SNek9GDKj8VgUK33atL82W
+ YbY3QO/clh41zHDJ8fMObZ+2setfdYaQkxOFxqVLBu5TDg7CTOFfgdFXdgX7e2Qu
+ C4p8YiTYO73YoqX/Rcnsc6tNbWA5lwqSDoaVXn3BHcjN9VDPMjDSWyJKq9cCVDus
+ Xs4uB5Nqv1MFiZoZQHz8Cvva8JbXVmET3sbPl12RCLflYi21q9NvUgUI36rPSykO
+ bTwu0duhAgMBAAECggEAYivCz10cdlF2ho80NUGXBnRv033PvjH5paeYDVq+8HK/
+ dz2Cu7T4KPjfvjkwqOt4140rqh4K8mcLDrGLjnmMdUT5pw8dvtVWCId668VrkVQG
+ cdMIUDCmKsjHYRFFpCnNGySAGJ8EYWxlDZ8gw93tWz0BNzH8kqk/IL5dF7x4wrGB
+ kKdVybTjAJK6WEj7qcRriqER9HfFanhU9swQy8P8PbnHuFPVye0GqUfFEvBM0SSP
+ YRITNu+TkQX709We1ipycUhPfwdwPdK6RtBp1SNdXbp+fFjtkdihdwQ/950C7ZF7
+ 2S3JVAnOn5lGGiPZGd5554sJfO1xv890FkHW9lpiRQKBgQD/K9Xsh9UfWZmAgsbH
+ dBisPOxRTX+bv4qeJoVaxP8pPvl8Efwkcr792mBz+6kXQdHeWUGrLL2ajsJE8ofr
+ OrfibQztCgMHJY2Smuc757yTIqyJOEVSFdmbi+0s1L/Kd04DAuXwoswB1gx79+ER
+ K33TDtAGP713Nyz28hLoBl+cSwKBgQD4vyCr0hq27j5aAOb7WnnOP0vjSlt/gvwJ
+ Ih8L6oWPs9YWTrhIVNPmcCX1AaAj5hZmcR4ve4DUWmLi1YsGshdZZf+fIDZhGYw+
+ 639wC7MlcahqkliJN3XN1rNmRgpWVqgJWsJ+DtnpzK9dclgHdcCdb4YPPd9vW1/A
+ x1euwENcQwKBgQDmimlVsYdpMp+QTxdfHtIn00dDUXyIb+7CYlU7pB5Q2pe3c9xV
+ 5eIPIlzgjS/BVnNRq1y8VcjcOjzk5CbO7Rc0GIiEJPaFX3VgTlm6cu2aFcrCkzd2
+ KU2Yzjwzs+ev+kheSiELX1poEkbnPhZ3V87vgEOMUcxRSGV0m1NflFqPrwKBgQDs
+ TBxMPQZVutMOiwbhxhwp+mUr4Oo0ooisYHafykTgs1Tv0g4r4DGAGg9kxQuMrrme
+ zVyAfNFwaQDBPVyZmrqlmUiQsHgYG73n0603ElY3ftYfjzB+AWpuhMPdpzGQvTdZ
+ 05cpSxBlkqUQn1vSkmDM7jGq7vr/fQzkRDoebtROowKBgDYH0nUzMXj+1q7ZEojk
+ DEPfY22pcH6pNrg3RkCi19BVRyUtk/CAJiSNud/wR61Kbq1wFQkqn8dU0ydbsqiX
+ Tz0LofvoLK3cZc6IhmdgOiOs75LIoMOfxskGpFdiNxGId8EIXACAwomm2S4o8KfI
+ fagxljG8Ic5oHxnVengksyd5
+ -----END PRIVATE KEY-----
""";
}
@@ -173,13 +173,13 @@ public String getPrivateKey() {
public String getPublicKey() {
return """
-----BEGIN PUBLIC KEY-----
- MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEApAFq3DdBZm1mftuKhOpm
- jZX+OhIx/wTiOX+/cBUSQHhukV65fCsFnZX3mTpRGEcqvqOAFbj+zHHukceT0fwB
- LZ9SuE8K+Ydfrhvjufw9oydDv/pxZzXF/1oCXxG64gyvXsFfJhJxYBt5+cuj/UQn
- LtMzBVfT6yk6KeNfZK4NiI9P7aOSy1NA2kF5oL0guwq8dJPXSIQ3meI3N67+Elsz
- nGU+bzxbQP+RuumXnk1V/t4iW2rFjnWrTHO/3BmMVJZ83jUqAgKpsrh8zjyh1nI8
- lcD11huuE0s5G/kMqcp1CGWgMvj/LmsA9AYr7JhUn9JOKRpfMEh4RNqTfDiCMrnf
- 5QIDAQAB
+ MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA9/D5gn2B2qD0RSeO8iMQ
+ lZhgIPeJp0leQuFxkjl6tYWvxgo4bEfmA4CpwbfpXp8RreExMTdTjiv0krnKJ34e
+ taNaLlD22qtziJpUnnGBiBczkMVo/ave2KfkjXpPRgyo/FYFCt92rS/NlmG2N0Dv
+ 3JYeNcxwyfHzDm2ftrHrX3WGkJMThcalSwbuUw4OwkzhX4HRV3YF+3tkLguKfGIk
+ 2Du92KKl/0XJ7HOrTW1gOZcKkg6GlV59wR3IzfVQzzIw0lsiSqvXAlQ7rF7OLgeT
+ ar9TBYmaGUB8/Ar72vCW11ZhE97Gz5ddkQi35WIttavTb1IFCN+qz0spDm08LtHb
+ oQIDAQAB
-----END PUBLIC KEY-----
""";
}
diff --git a/agrirouter-sdk-java-tests/src/test/java/com/dke/data/agrirouter/test/OnboardingResponseRepository.java b/agrirouter-sdk-java-tests/src/test/java/com/dke/data/agrirouter/test/OnboardingResponseRepository.java
index d6c92be1..4e4d0fd5 100644
--- a/agrirouter-sdk-java-tests/src/test/java/com/dke/data/agrirouter/test/OnboardingResponseRepository.java
+++ b/agrirouter-sdk-java-tests/src/test/java/com/dke/data/agrirouter/test/OnboardingResponseRepository.java
@@ -48,12 +48,9 @@ public static void save(Identifier identifier, OnboardingResponse onboardingResp
*/
public enum Identifier {
FARMING_SOFTWARE("farming-software"),
- FARMING_SOFTWARE_REMOVED("farming-software-removed"),
- FARMING_SOFTWARE_DEACTIVATED("farming-software-deactivated"),
TELEMETRY_PLATFORM("telemetry-platform"),
- TELEMETRY_PLATFORM_REMOVED("telemetry-platform-removed"),
- TELEMETRY_PLATFORM_DEACTIVATED("telemetry-platform-deactivated"),
- COMMUNICATION_UNIT("communication-unit");
+ COMMUNICATION_UNIT("communication-unit"),
+ MQTT_COMMUNICATION_UNIT("mqtt-communication-unit");
private final String fileName;
diff --git a/agrirouter-sdk-java-tests/src/test/java/com/dke/data/agrirouter/test/fixture/CommunicationUnitFixture.java b/agrirouter-sdk-java-tests/src/test/java/com/dke/data/agrirouter/test/fixture/CommunicationUnitFixture.java
index 39492310..446f3b06 100644
--- a/agrirouter-sdk-java-tests/src/test/java/com/dke/data/agrirouter/test/fixture/CommunicationUnitFixture.java
+++ b/agrirouter-sdk-java-tests/src/test/java/com/dke/data/agrirouter/test/fixture/CommunicationUnitFixture.java
@@ -41,7 +41,7 @@ void onboardCommunicationUnitAndSaveToFile() throws IOException {
OnboardingService onboardingService = new OnboardingServiceImpl(new QA() {
});
OnboardingParameters onboardingParameters = new OnboardingParameters();
- onboardingParameters.setRegistrationCode("f50319dc13");
+ onboardingParameters.setRegistrationCode("8908462691");
onboardingParameters.setApplicationId(communicationUnit.getApplicationId());
onboardingParameters.setCertificationVersionId(communicationUnit.getCertificationVersionId());
onboardingParameters.setCertificationType(CertificationType.P12);
diff --git a/agrirouter-sdk-java-tests/src/test/java/com/dke/data/agrirouter/test/fixture/FarmingSoftwareFixture.java b/agrirouter-sdk-java-tests/src/test/java/com/dke/data/agrirouter/test/fixture/FarmingSoftwareFixture.java
index fd975c42..c04a6559 100644
--- a/agrirouter-sdk-java-tests/src/test/java/com/dke/data/agrirouter/test/fixture/FarmingSoftwareFixture.java
+++ b/agrirouter-sdk-java-tests/src/test/java/com/dke/data/agrirouter/test/fixture/FarmingSoftwareFixture.java
@@ -13,7 +13,6 @@
import org.junit.jupiter.api.Test;
import java.io.IOException;
-import java.util.UUID;
import static org.junit.jupiter.api.Assertions.assertNotNull;
@@ -38,7 +37,7 @@ void onboardFarmingSoftwareAndSaveToFile() throws IOException {
OnboardingService onboardingService = new OnboardingServiceImpl(new QA() {
});
SecuredOnboardingParameters onboardingParameters = new SecuredOnboardingParameters();
- onboardingParameters.setRegistrationCode("6a049384e3");
+ onboardingParameters.setRegistrationCode("2067663604");
onboardingParameters.setApplicationId(farmingSoftware.getApplicationId());
onboardingParameters.setCertificationVersionId(farmingSoftware.getCertificationVersionId());
onboardingParameters.setCertificationType(CertificationType.P12);
@@ -62,73 +61,4 @@ void onboardFarmingSoftwareAndSaveToFile() throws IOException {
OnboardingResponseRepository.Identifier.FARMING_SOFTWARE, onboardingResponse);
}
- /**
- * Create a new registration token by using the following link:
- *
- * https://agrirouter-qa.cfapps.eu10.hana.ondemand.com/application/905152eb-c526-47a3-b871-aa46d065bb4c/authorize?response_type=onboard&state=my-custom-state-to-identify-the-request&redirect_uri=
- */
- @Test
- @Disabled("Please replace the placeholder for the registration code to run the test case.")
- void onboardAndDeactivateFarmingSoftwareAndSaveToFile() throws IOException {
- OnboardingService onboardingService = new OnboardingServiceImpl(new QA() {
- });
- SecuredOnboardingParameters onboardingParameters = new SecuredOnboardingParameters();
- onboardingParameters.setRegistrationCode("4699be2f62");
- onboardingParameters.setApplicationId(farmingSoftware.getApplicationId());
- onboardingParameters.setCertificationVersionId(farmingSoftware.getCertificationVersionId());
- onboardingParameters.setCertificationType(CertificationType.P12);
- onboardingParameters.setGatewayId(Gateway.REST.getKey());
- onboardingParameters.setUuid(FARMING_SOFTWARE_DEACTIVATED_ENDPOINT_ID);
- onboardingParameters.setPrivateKey(farmingSoftware.getPrivateKey());
- onboardingParameters.setPublicKey(farmingSoftware.getPublicKey());
- final OnboardingResponse onboardingResponse = onboardingService.onboard(onboardingParameters);
- assertNotNull(onboardingResponse);
- assertNotNull(onboardingResponse.getCapabilityAlternateId());
- assertNotNull(onboardingResponse.getDeviceAlternateId());
- assertNotNull(onboardingResponse.getSensorAlternateId());
- assertNotNull(onboardingResponse.getAuthentication());
- assertNotNull(onboardingResponse.getAuthentication().getCertificate());
- assertNotNull(onboardingResponse.getAuthentication().getSecret());
- assertNotNull(onboardingResponse.getAuthentication().getType());
- assertNotNull(onboardingResponse.getConnectionCriteria());
- assertNotNull(onboardingResponse.getConnectionCriteria().getMeasures());
- assertNotNull(onboardingResponse.getConnectionCriteria().getCommands());
- OnboardingResponseRepository.save(
- OnboardingResponseRepository.Identifier.FARMING_SOFTWARE_DEACTIVATED, onboardingResponse);
- }
-
- /**
- * Create a new registration token by using the following link:
- *
- *
https://agrirouter-qa.cfapps.eu10.hana.ondemand.com/application/905152eb-c526-47a3-b871-aa46d065bb4c/authorize?response_type=onboard&state=my-custom-state-to-identify-the-request&redirect_uri=
- */
- @Test
- @Disabled("Please replace the placeholder for the registration code to run the test case.")
- void onboardAndRemoveFarmingSoftwareAndSaveToFile() throws IOException {
- OnboardingService onboardingService = new OnboardingServiceImpl(new QA() {
- });
- SecuredOnboardingParameters onboardingParameters = new SecuredOnboardingParameters();
- onboardingParameters.setRegistrationCode("bc4eba6065");
- onboardingParameters.setApplicationId(farmingSoftware.getApplicationId());
- onboardingParameters.setCertificationVersionId(farmingSoftware.getCertificationVersionId());
- onboardingParameters.setCertificationType(CertificationType.P12);
- onboardingParameters.setGatewayId(Gateway.REST.getKey());
- onboardingParameters.setUuid(UUID.randomUUID().toString());
- onboardingParameters.setPrivateKey(farmingSoftware.getPrivateKey());
- onboardingParameters.setPublicKey(farmingSoftware.getPublicKey());
- final OnboardingResponse onboardingResponse = onboardingService.onboard(onboardingParameters);
- assertNotNull(onboardingResponse);
- assertNotNull(onboardingResponse.getCapabilityAlternateId());
- assertNotNull(onboardingResponse.getDeviceAlternateId());
- assertNotNull(onboardingResponse.getSensorAlternateId());
- assertNotNull(onboardingResponse.getAuthentication());
- assertNotNull(onboardingResponse.getAuthentication().getCertificate());
- assertNotNull(onboardingResponse.getAuthentication().getSecret());
- assertNotNull(onboardingResponse.getAuthentication().getType());
- assertNotNull(onboardingResponse.getConnectionCriteria());
- assertNotNull(onboardingResponse.getConnectionCriteria().getMeasures());
- assertNotNull(onboardingResponse.getConnectionCriteria().getCommands());
- OnboardingResponseRepository.save(
- OnboardingResponseRepository.Identifier.FARMING_SOFTWARE_REMOVED, onboardingResponse);
- }
}
diff --git a/agrirouter-sdk-java-tests/src/test/java/com/dke/data/agrirouter/test/fixture/MqttCommunicationUnitFixture.java b/agrirouter-sdk-java-tests/src/test/java/com/dke/data/agrirouter/test/fixture/MqttCommunicationUnitFixture.java
new file mode 100644
index 00000000..428c8935
--- /dev/null
+++ b/agrirouter-sdk-java-tests/src/test/java/com/dke/data/agrirouter/test/fixture/MqttCommunicationUnitFixture.java
@@ -0,0 +1,129 @@
+package com.dke.data.agrirouter.test.fixture;
+
+import agrirouter.request.payload.endpoint.Capabilities;
+import com.dke.data.agrirouter.api.dto.onboard.OnboardingResponse;
+import com.dke.data.agrirouter.api.enums.ApplicationType;
+import com.dke.data.agrirouter.api.enums.CertificationType;
+import com.dke.data.agrirouter.api.enums.ContentMessageType;
+import com.dke.data.agrirouter.api.enums.Gateway;
+import com.dke.data.agrirouter.api.env.QA;
+import com.dke.data.agrirouter.api.service.onboard.OnboardingService;
+import com.dke.data.agrirouter.api.service.parameters.OnboardingParameters;
+import com.dke.data.agrirouter.api.service.parameters.SetCapabilitiesParameters;
+import com.dke.data.agrirouter.convenience.mqtt.client.MqttClientService;
+import com.dke.data.agrirouter.convenience.mqtt.client.MqttOptionService;
+import com.dke.data.agrirouter.impl.messaging.mqtt.SetCapabilityServiceImpl;
+import com.dke.data.agrirouter.impl.onboard.OnboardingServiceImpl;
+import com.dke.data.agrirouter.test.AbstractIntegrationTest;
+import com.dke.data.agrirouter.test.OnboardingResponseRepository;
+import org.eclipse.paho.client.mqttv3.IMqttClient;
+import org.eclipse.paho.client.mqttv3.IMqttDeliveryToken;
+import org.eclipse.paho.client.mqttv3.MqttCallback;
+import org.eclipse.paho.client.mqttv3.MqttMessage;
+import org.junit.jupiter.api.Assertions;
+import org.junit.jupiter.api.Test;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.util.Collections;
+import java.util.UUID;
+
+import static org.junit.jupiter.api.Assertions.assertNotNull;
+
+/**
+ * Class to onboard endpoints for different reasons.
+ */
+@SuppressWarnings("ALL")
+class MqttCommunicationUnitFixture extends AbstractIntegrationTest {
+
+ private static final Logger LOGGER = LoggerFactory.getLogger(MqttCommunicationUnitFixture.class);
+
+ private static boolean messageHasArrived = false;
+ private static boolean messageHasBeenDelivered = false;
+
+ /**
+ * Create a new registration token by using the agrirouter UI and select the integration test
+ * application for CUs.
+ */
+ @Test
+ //@Disabled("Please replace the placeholder for the registration code to run the test case.")
+ void onboardCommunicationUnitAndSaveToFile() throws Throwable {
+ OnboardingService onboardingService = new OnboardingServiceImpl(new QA() {
+ });
+ OnboardingParameters onboardingParameters = new OnboardingParameters();
+ onboardingParameters.setRegistrationCode("4822479417");
+ onboardingParameters.setApplicationId(communicationUnit.getApplicationId());
+ onboardingParameters.setCertificationVersionId(communicationUnit.getCertificationVersionId());
+ onboardingParameters.setCertificationType(CertificationType.P12);
+ onboardingParameters.setGatewayId(Gateway.MQTT.getKey());
+ onboardingParameters.setApplicationType(ApplicationType.APPLICATION);
+ onboardingParameters.setUuid(UUID.randomUUID().toString());
+ final OnboardingResponse onboardingResponse = onboardingService.onboard(onboardingParameters);
+ assertNotNull(onboardingResponse);
+ assertNotNull(onboardingResponse.getCapabilityAlternateId());
+ assertNotNull(onboardingResponse.getDeviceAlternateId());
+ assertNotNull(onboardingResponse.getSensorAlternateId());
+ assertNotNull(onboardingResponse.getAuthentication());
+ assertNotNull(onboardingResponse.getAuthentication().getCertificate());
+ assertNotNull(onboardingResponse.getAuthentication().getSecret());
+ assertNotNull(onboardingResponse.getAuthentication().getType());
+ assertNotNull(onboardingResponse.getConnectionCriteria());
+ assertNotNull(onboardingResponse.getConnectionCriteria().getMeasures());
+ assertNotNull(onboardingResponse.getConnectionCriteria().getCommands());
+ OnboardingResponseRepository.save(
+ OnboardingResponseRepository.Identifier.MQTT_COMMUNICATION_UNIT, onboardingResponse);
+
+ MqttClientService mqttClientService = new MqttClientService(new QA() {
+ });
+ IMqttClient mqttClient = mqttClientService.create(onboardingResponse);
+
+ MqttOptionService mqttOptionService = new MqttOptionService(new QA() {
+ });
+ mqttClient.setCallback(new InternalCallback());
+ mqttClient.connect(mqttOptionService.createMqttConnectOptions(onboardingResponse));
+ mqttClient.subscribe(onboardingResponse.getConnectionCriteria().getCommands());
+
+ final SetCapabilityServiceImpl setCapabilityService = new SetCapabilityServiceImpl(mqttClient);
+ final SetCapabilitiesParameters setCapabilitiesParameters = new SetCapabilitiesParameters();
+ setCapabilitiesParameters.setApplicationId(communicationUnit.getApplicationId());
+ setCapabilitiesParameters.setCertificationVersionId(
+ communicationUnit.getCertificationVersionId());
+ setCapabilitiesParameters.setOnboardingResponse(onboardingResponse);
+ final SetCapabilitiesParameters.CapabilityParameters capabilityParameters =
+ new SetCapabilitiesParameters.CapabilityParameters();
+ capabilityParameters.setDirection(Capabilities.CapabilitySpecification.Direction.SEND_RECEIVE);
+ capabilityParameters.setTechnicalMessageType(ContentMessageType.ISO_11783_TASKDATA_ZIP);
+ setCapabilitiesParameters.setCapabilitiesParameters(
+ Collections.singletonList(capabilityParameters));
+ setCapabilityService.send(setCapabilitiesParameters);
+
+ int nrOfRetries = 0;
+ while (!messageHasBeenDelivered && !messageHasArrived && nrOfRetries < 10) {
+ LOGGER.debug("Waiting for message to arrive, retrying in 1 second. This is the {} retry.", nrOfRetries);
+ Thread.sleep(1000);
+ nrOfRetries++;
+ }
+ mqttClient.disconnect();
+
+ Assertions.assertTrue(messageHasBeenDelivered, "Message has not delivered within the timeout configured. There were " + nrOfRetries + " retries.");
+ Assertions.assertTrue(messageHasArrived, "Message has not arrived within the timeout configured. There were " + nrOfRetries + " retries.");
+ }
+
+ class InternalCallback implements MqttCallback {
+
+
+ @Override
+ public void connectionLost(Throwable throwable) {
+ }
+
+ @Override
+ public void messageArrived(String s, MqttMessage mqttMessage) throws Exception {
+ messageHasArrived = true;
+ }
+
+ @Override
+ public void deliveryComplete(IMqttDeliveryToken iMqttDeliveryToken) {
+ messageHasBeenDelivered = true;
+ }
+ }
+}
diff --git a/agrirouter-sdk-java-tests/src/test/java/com/dke/data/agrirouter/test/fixture/TelemetryPlatformFixture.java b/agrirouter-sdk-java-tests/src/test/java/com/dke/data/agrirouter/test/fixture/TelemetryPlatformFixture.java
index bb3b46b0..6abd4639 100644
--- a/agrirouter-sdk-java-tests/src/test/java/com/dke/data/agrirouter/test/fixture/TelemetryPlatformFixture.java
+++ b/agrirouter-sdk-java-tests/src/test/java/com/dke/data/agrirouter/test/fixture/TelemetryPlatformFixture.java
@@ -34,7 +34,7 @@ void onboardTelemetryPlatformAndSaveToFile() throws IOException {
OnboardingService onboardingService = new OnboardingServiceImpl(new QA() {
});
SecuredOnboardingParameters onboardingParameters = new SecuredOnboardingParameters();
- onboardingParameters.setRegistrationCode("3e22929d3f");
+ onboardingParameters.setRegistrationCode("8530975704");
onboardingParameters.setApplicationId(telemetryPlatform.getApplicationId());
onboardingParameters.setCertificationVersionId(telemetryPlatform.getCertificationVersionId());
onboardingParameters.setCertificationType(CertificationType.P12);
@@ -58,73 +58,4 @@ void onboardTelemetryPlatformAndSaveToFile() throws IOException {
OnboardingResponseRepository.Identifier.TELEMETRY_PLATFORM, onboardingResponse);
}
- /**
- * Create a new registration token by using the following link:
- *
- *
https://agrirouter-qa.cfapps.eu10.hana.ondemand.com/application/3c3559c9-7062-4628-a4f7-c9f5aa07265f/authorize?response_type=onboard&state=my-custom-state-to-identify-the-request&redirect_uri=
- */
- @Test
- @Disabled("Please replace the placeholder for the registration code to run the test case.")
- void onboardAndDeactivateTelemetryPlatformAndSaveToFile() throws IOException {
- OnboardingService onboardingService = new OnboardingServiceImpl(new QA() {
- });
- SecuredOnboardingParameters onboardingParameters = new SecuredOnboardingParameters();
- onboardingParameters.setRegistrationCode("b8dbca89d8");
- onboardingParameters.setApplicationId(telemetryPlatform.getApplicationId());
- onboardingParameters.setCertificationVersionId(telemetryPlatform.getCertificationVersionId());
- onboardingParameters.setCertificationType(CertificationType.P12);
- onboardingParameters.setGatewayId(Gateway.REST.getKey());
- onboardingParameters.setUuid(UUID.randomUUID().toString());
- onboardingParameters.setPrivateKey(telemetryPlatform.getPrivateKey());
- onboardingParameters.setPublicKey(telemetryPlatform.getPublicKey());
- final OnboardingResponse onboardingResponse = onboardingService.onboard(onboardingParameters);
- assertNotNull(onboardingResponse);
- assertNotNull(onboardingResponse.getCapabilityAlternateId());
- assertNotNull(onboardingResponse.getDeviceAlternateId());
- assertNotNull(onboardingResponse.getSensorAlternateId());
- assertNotNull(onboardingResponse.getAuthentication());
- assertNotNull(onboardingResponse.getAuthentication().getCertificate());
- assertNotNull(onboardingResponse.getAuthentication().getSecret());
- assertNotNull(onboardingResponse.getAuthentication().getType());
- assertNotNull(onboardingResponse.getConnectionCriteria());
- assertNotNull(onboardingResponse.getConnectionCriteria().getMeasures());
- assertNotNull(onboardingResponse.getConnectionCriteria().getCommands());
- OnboardingResponseRepository.save(
- OnboardingResponseRepository.Identifier.TELEMETRY_PLATFORM_DEACTIVATED, onboardingResponse);
- }
-
- /**
- * Create a new registration token by using the following link:
- *
- *
https://agrirouter-qa.cfapps.eu10.hana.ondemand.com/application/3c3559c9-7062-4628-a4f7-c9f5aa07265f/authorize?response_type=onboard&state=my-custom-state-to-identify-the-request&redirect_uri=
- */
- @Test
- @Disabled("Please replace the placeholder for the registration code to run the test case.")
- void onboardAndRemoveTelemetryPlatformAndSaveToFile() throws IOException {
- OnboardingService onboardingService = new OnboardingServiceImpl(new QA() {
- });
- SecuredOnboardingParameters onboardingParameters = new SecuredOnboardingParameters();
- onboardingParameters.setRegistrationCode("bea75dff01");
- onboardingParameters.setApplicationId(telemetryPlatform.getApplicationId());
- onboardingParameters.setCertificationVersionId(telemetryPlatform.getCertificationVersionId());
- onboardingParameters.setCertificationType(CertificationType.P12);
- onboardingParameters.setGatewayId(Gateway.REST.getKey());
- onboardingParameters.setUuid(UUID.randomUUID().toString());
- onboardingParameters.setPrivateKey(telemetryPlatform.getPrivateKey());
- onboardingParameters.setPublicKey(telemetryPlatform.getPublicKey());
- final OnboardingResponse onboardingResponse = onboardingService.onboard(onboardingParameters);
- assertNotNull(onboardingResponse);
- assertNotNull(onboardingResponse.getCapabilityAlternateId());
- assertNotNull(onboardingResponse.getDeviceAlternateId());
- assertNotNull(onboardingResponse.getSensorAlternateId());
- assertNotNull(onboardingResponse.getAuthentication());
- assertNotNull(onboardingResponse.getAuthentication().getCertificate());
- assertNotNull(onboardingResponse.getAuthentication().getSecret());
- assertNotNull(onboardingResponse.getAuthentication().getType());
- assertNotNull(onboardingResponse.getConnectionCriteria());
- assertNotNull(onboardingResponse.getConnectionCriteria().getMeasures());
- assertNotNull(onboardingResponse.getConnectionCriteria().getCommands());
- OnboardingResponseRepository.save(
- OnboardingResponseRepository.Identifier.TELEMETRY_PLATFORM_REMOVED, onboardingResponse);
- }
}
diff --git a/agrirouter-sdk-java-tests/src/test/java/com/dke/data/agrirouter/test/messaging/mqtt/PingServiceTest.java b/agrirouter-sdk-java-tests/src/test/java/com/dke/data/agrirouter/test/messaging/mqtt/PingServiceTest.java
new file mode 100644
index 00000000..4ae56dfa
--- /dev/null
+++ b/agrirouter-sdk-java-tests/src/test/java/com/dke/data/agrirouter/test/messaging/mqtt/PingServiceTest.java
@@ -0,0 +1,97 @@
+package com.dke.data.agrirouter.test.messaging.mqtt;
+
+import agrirouter.response.Response;
+import com.dke.data.agrirouter.api.dto.messaging.FetchMessageResponse;
+import com.dke.data.agrirouter.api.env.QA;
+import com.dke.data.agrirouter.api.service.messaging.encoding.DecodeMessageService;
+import com.dke.data.agrirouter.api.service.messaging.mqtt.PingService;
+import com.dke.data.agrirouter.api.service.parameters.PingParameters;
+import com.dke.data.agrirouter.convenience.mqtt.client.MqttClientService;
+import com.dke.data.agrirouter.convenience.mqtt.client.MqttOptionService;
+import com.dke.data.agrirouter.impl.messaging.encoding.DecodeMessageServiceImpl;
+import com.dke.data.agrirouter.impl.messaging.mqtt.PingServiceImpl;
+import com.dke.data.agrirouter.test.AbstractIntegrationTest;
+import com.dke.data.agrirouter.test.OnboardingResponseRepository;
+import com.google.gson.Gson;
+import org.apache.commons.lang3.StringUtils;
+import org.eclipse.paho.client.mqttv3.IMqttDeliveryToken;
+import org.eclipse.paho.client.mqttv3.MqttCallback;
+import org.eclipse.paho.client.mqttv3.MqttMessage;
+import org.junit.jupiter.api.Assertions;
+import org.junit.jupiter.api.Test;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.nio.charset.StandardCharsets;
+
+class PingServiceTest extends AbstractIntegrationTest {
+
+ private static final Logger LOGGER = LoggerFactory.getLogger(PingServiceTest.class);
+
+ private boolean messageHasArrived = false;
+ private boolean messageHasBeenDelivered = false;
+ private static String healthMessageId = null;
+
+ private final DecodeMessageService decodeMessageService = new DecodeMessageServiceImpl();
+
+ @Test
+ void sendHealthMessageToPingEndpoint() throws Throwable {
+ var onboardingResponse = OnboardingResponseRepository.read(OnboardingResponseRepository.Identifier.MQTT_COMMUNICATION_UNIT);
+
+ var mqttClientService = new MqttClientService(new QA() {
+ });
+ var mqttClient = mqttClientService.create(onboardingResponse);
+
+ var mqttOptionService = new MqttOptionService(new QA() {
+ });
+ mqttClient.setCallback(new PingServiceTest.InternalCallback());
+ mqttClient.connect(mqttOptionService.createMqttConnectOptions(onboardingResponse));
+ mqttClient.subscribe(onboardingResponse.getConnectionCriteria().getCommands());
+
+ var pingParameters = new PingParameters();
+ pingParameters.setOnboardingResponse(onboardingResponse);
+
+ PingService pingService = new PingServiceImpl(mqttClient);
+ healthMessageId = pingService.send(pingParameters);
+
+ var nrOfRetries = 0;
+ while (!messageHasBeenDelivered && !messageHasArrived && nrOfRetries < 10) {
+ LOGGER.debug("Waiting for message to arrive, retrying in 1 second. This is the {} retry.", nrOfRetries);
+ //noinspection BusyWait
+ Thread.sleep(1000);
+ nrOfRetries++;
+ }
+ mqttClient.disconnect();
+
+ Assertions.assertTrue(messageHasBeenDelivered, "Message has not delivered within the timeout configured. There were " + nrOfRetries + " retries.");
+ Assertions.assertTrue(messageHasArrived, "Message has not arrived within the timeout configured. There were " + nrOfRetries + " retries.");
+ }
+
+ class InternalCallback implements MqttCallback {
+
+
+ @Override
+ public void connectionLost(Throwable throwable) {
+ }
+
+ @Override
+ public void messageArrived(String s, MqttMessage mqttMessage) {
+ var payload = StringUtils.toEncodedString(mqttMessage.getPayload(), StandardCharsets.UTF_8);
+ final var fetchMessageResponse = new Gson().fromJson(payload, FetchMessageResponse.class);
+ final var decodedMessageResponse = decodeMessageService.decode(fetchMessageResponse.getCommand().getMessage());
+ LOGGER.debug("Message arrived: {}", decodedMessageResponse);
+ if (decodedMessageResponse.getResponseEnvelope().getType() == Response.ResponseEnvelope.ResponseBodyType.ACK) {
+ messageHasArrived = StringUtils.equals(decodedMessageResponse.getResponseEnvelope().getApplicationMessageId(), healthMessageId);
+ } else {
+ LOGGER.warn("Message arrived, but this should not be the case {}.", decodedMessageResponse);
+ }
+ }
+
+ @Override
+ public void deliveryComplete(IMqttDeliveryToken iMqttDeliveryToken) {
+ messageHasBeenDelivered = true;
+ }
+ }
+
+
+}
diff --git a/agrirouter-sdk-java-tests/src/test/java/com/dke/data/agrirouter/test/messaging/rest/HealthCheckForEndpointsByPollingTest.java b/agrirouter-sdk-java-tests/src/test/java/com/dke/data/agrirouter/test/messaging/rest/HealthCheckForEndpointsByPollingTest.java
index 53e4196a..cb8ccca8 100644
--- a/agrirouter-sdk-java-tests/src/test/java/com/dke/data/agrirouter/test/messaging/rest/HealthCheckForEndpointsByPollingTest.java
+++ b/agrirouter-sdk-java-tests/src/test/java/com/dke/data/agrirouter/test/messaging/rest/HealthCheckForEndpointsByPollingTest.java
@@ -1,7 +1,6 @@
package com.dke.data.agrirouter.test.messaging.rest;
import com.dke.data.agrirouter.api.cancellation.DefaultCancellationToken;
-import com.dke.data.agrirouter.api.exception.UnauthorizedRequestException;
import com.dke.data.agrirouter.api.service.messaging.http.FetchMessageService;
import com.dke.data.agrirouter.impl.messaging.rest.FetchMessageServiceImpl;
import com.dke.data.agrirouter.impl.messaging.rest.MessageFetcher;
@@ -32,35 +31,4 @@ class HealthCheckForEndpointsByPollingTest extends AbstractIntegrationTest {
Assertions.assertFalse(optionalMessageResponses.isPresent());
}
- @Test
- void
- givenExistingAndDeactivatedEndpointWhenPollingTheOutboxThenTheAgrirouterShouldReturnAnEmptyResult()
- throws IOException {
- final var onboardingResponse =
- OnboardingResponseRepository.read(
- OnboardingResponseRepository.Identifier.FARMING_SOFTWARE_DEACTIVATED);
- FetchMessageService fetchMessageService = new FetchMessageServiceImpl();
- final var optionalMessageResponses =
- fetchMessageService.fetch(
- onboardingResponse,
- new DefaultCancellationToken(
- MessageFetcher.MAX_TRIES_BEFORE_FAILURE, MessageFetcher.DEFAULT_INTERVAL));
- Assertions.assertFalse(optionalMessageResponses.isPresent());
- }
-
- @Test
- void givenRemovedEndpointWhenPollingTheOutboxThenTheAgrirouterShouldDenyAccessToTheApi()
- throws IOException {
- final var onboardingResponse =
- OnboardingResponseRepository.read(
- OnboardingResponseRepository.Identifier.FARMING_SOFTWARE_REMOVED);
- FetchMessageService fetchMessageService = new FetchMessageServiceImpl();
- Assertions.assertThrows(
- UnauthorizedRequestException.class,
- () ->
- fetchMessageService.fetch(
- onboardingResponse,
- new DefaultCancellationToken(
- MessageFetcher.MAX_TRIES_BEFORE_FAILURE, MessageFetcher.DEFAULT_INTERVAL)));
- }
}
diff --git a/agrirouter-sdk-java-tests/src/test/java/com/dke/data/agrirouter/test/onboarding/AuthorizationRequestServiceTest.java b/agrirouter-sdk-java-tests/src/test/java/com/dke/data/agrirouter/test/onboarding/AuthorizationRequestServiceTest.java
index acb32f43..04fb32de 100644
--- a/agrirouter-sdk-java-tests/src/test/java/com/dke/data/agrirouter/test/onboarding/AuthorizationRequestServiceTest.java
+++ b/agrirouter-sdk-java-tests/src/test/java/com/dke/data/agrirouter/test/onboarding/AuthorizationRequestServiceTest.java
@@ -33,7 +33,7 @@ void givenValidParameterWhenCreatingTheUrlThenTheUrlShouldBeGeneratedForFarmingS
assertNotNull(authorizationRequestURL);
assertTrue(StringUtils.isNotBlank(authorizationRequestURL));
assertEquals(
- "https://agrirouter-qa.cfapps.eu10.hana.ondemand.com/application/905152eb-c526-47a3-b871-aa46d065bb4c/authorize?response_type=onboard&state=my-custom-state-to-identify-the-request&redirect_uri=",
+ "https://app.qa.agrirouter.farm/application/" + farmingSoftware.getApplicationId() + "/authorize?response_type=onboard&state=my-custom-state-to-identify-the-request&redirect_uri=",
authorizationRequestURL);
}
@@ -52,7 +52,7 @@ void givenValidParameterWhenCreatingTheUrlThenTheUrlShouldBeGeneratedForTelemetr
assertNotNull(authorizationRequestURL);
assertTrue(StringUtils.isNotBlank(authorizationRequestURL));
assertEquals(
- "https://agrirouter-qa.cfapps.eu10.hana.ondemand.com/application/3c3559c9-7062-4628-a4f7-c9f5aa07265f/authorize?response_type=onboard&state=my-custom-state-to-identify-the-request&redirect_uri=",
+ "https://app.qa.agrirouter.farm/application/" + telemetryPlatform.getApplicationId() + "/authorize?response_type=onboard&state=my-custom-state-to-identify-the-request&redirect_uri=",
authorizationRequestURL);
}
@@ -66,7 +66,6 @@ void givenInvalidParameterWhenCreatingTheUrlThenTheUrlShouldBeGenerated() {
authorizationRequestParameters.setResponseType(SecuredOnboardingResponseType.ONBOARD);
Assertions.assertThrows(
IllegalParameterDefinitionException.class,
- () ->
- authorizationRequestService.getAuthorizationRequestURL(authorizationRequestParameters));
+ () -> authorizationRequestService.getAuthorizationRequestURL(authorizationRequestParameters));
}
}
diff --git a/pom.xml b/pom.xml
index 7310dfc6..56af2e28 100644
--- a/pom.xml
+++ b/pom.xml
@@ -5,7 +5,7 @@
com.agrirouter.api
agrirouter-sdk-java
- 3.2.2
+ 3.3.0
pom
AGRIROUTER SDK JAVA
@@ -214,6 +214,11 @@
org.eclipse.paho.client.mqttv3
1.2.5
+
+ com.hivemq
+ hivemq-mqtt-client
+ 1.3.3
+