diff --git a/agrirouter-api-java-api/src/main/java/com/dke/data/agrirouter/api/service/messaging/MessagingService.java b/agrirouter-api-java-api/src/main/java/com/dke/data/agrirouter/api/service/messaging/MessagingService.java deleted file mode 100644 index ee0680a6..00000000 --- a/agrirouter-api-java-api/src/main/java/com/dke/data/agrirouter/api/service/messaging/MessagingService.java +++ /dev/null @@ -1,6 +0,0 @@ -package com.dke.data.agrirouter.api.service.messaging; - -public interface MessagingService { - - String send(T parameters); -} diff --git a/agrirouter-api-java-api/src/main/java/com/dke/data/agrirouter/api/service/messaging/SendMessageService.java b/agrirouter-api-java-api/src/main/java/com/dke/data/agrirouter/api/service/messaging/SendMessageService.java index c46ebed5..51f2b717 100644 --- a/agrirouter-api-java-api/src/main/java/com/dke/data/agrirouter/api/service/messaging/SendMessageService.java +++ b/agrirouter-api-java-api/src/main/java/com/dke/data/agrirouter/api/service/messaging/SendMessageService.java @@ -1,9 +1,10 @@ package com.dke.data.agrirouter.api.service.messaging; import com.dke.data.agrirouter.api.service.parameters.SendMessageParameters; +import java.util.concurrent.CompletableFuture; /** Service for sending a message */ -public interface SendMessageService { +public interface SendMessageService { /** * Sending a message @@ -11,4 +12,12 @@ public interface SendMessageService { * @param sendMessageParameters - */ void send(SendMessageParameters sendMessageParameters); + + /** + * Sending a message + * + * @param sendMessageParameters - + * @return - + */ + CompletableFuture sendAsync(SendMessageParameters sendMessageParameters); } diff --git a/agrirouter-api-java-api/src/main/java/com/dke/data/agrirouter/api/service/messaging/CloudOffboardingService.java b/agrirouter-api-java-api/src/main/java/com/dke/data/agrirouter/api/service/messaging/http/CloudOffboardingService.java similarity index 75% rename from agrirouter-api-java-api/src/main/java/com/dke/data/agrirouter/api/service/messaging/CloudOffboardingService.java rename to agrirouter-api-java-api/src/main/java/com/dke/data/agrirouter/api/service/messaging/http/CloudOffboardingService.java index 185d7f13..392e7c8c 100644 --- a/agrirouter-api-java-api/src/main/java/com/dke/data/agrirouter/api/service/messaging/CloudOffboardingService.java +++ b/agrirouter-api-java-api/src/main/java/com/dke/data/agrirouter/api/service/messaging/http/CloudOffboardingService.java @@ -1,4 +1,4 @@ -package com.dke.data.agrirouter.api.service.messaging; +package com.dke.data.agrirouter.api.service.messaging.http; import com.dke.data.agrirouter.api.service.parameters.CloudOffboardingParameters; diff --git a/agrirouter-api-java-api/src/main/java/com/dke/data/agrirouter/api/service/messaging/CloudOnboardingService.java b/agrirouter-api-java-api/src/main/java/com/dke/data/agrirouter/api/service/messaging/http/CloudOnboardingService.java similarity index 74% rename from agrirouter-api-java-api/src/main/java/com/dke/data/agrirouter/api/service/messaging/CloudOnboardingService.java rename to agrirouter-api-java-api/src/main/java/com/dke/data/agrirouter/api/service/messaging/http/CloudOnboardingService.java index f2773ac8..829d79de 100644 --- a/agrirouter-api-java-api/src/main/java/com/dke/data/agrirouter/api/service/messaging/CloudOnboardingService.java +++ b/agrirouter-api-java-api/src/main/java/com/dke/data/agrirouter/api/service/messaging/http/CloudOnboardingService.java @@ -1,4 +1,4 @@ -package com.dke.data.agrirouter.api.service.messaging; +package com.dke.data.agrirouter.api.service.messaging.http; import com.dke.data.agrirouter.api.service.parameters.CloudOnboardingParameters; diff --git a/agrirouter-api-java-api/src/main/java/com/dke/data/agrirouter/api/service/messaging/DeleteMessageService.java b/agrirouter-api-java-api/src/main/java/com/dke/data/agrirouter/api/service/messaging/http/DeleteMessageService.java similarity index 74% rename from agrirouter-api-java-api/src/main/java/com/dke/data/agrirouter/api/service/messaging/DeleteMessageService.java rename to agrirouter-api-java-api/src/main/java/com/dke/data/agrirouter/api/service/messaging/http/DeleteMessageService.java index 5004ffda..5d825078 100644 --- a/agrirouter-api-java-api/src/main/java/com/dke/data/agrirouter/api/service/messaging/DeleteMessageService.java +++ b/agrirouter-api-java-api/src/main/java/com/dke/data/agrirouter/api/service/messaging/http/DeleteMessageService.java @@ -1,4 +1,4 @@ -package com.dke.data.agrirouter.api.service.messaging; +package com.dke.data.agrirouter.api.service.messaging.http; import com.dke.data.agrirouter.api.service.parameters.DeleteMessageParameters; diff --git a/agrirouter-api-java-api/src/main/java/com/dke/data/agrirouter/api/service/messaging/FetchMessageService.java b/agrirouter-api-java-api/src/main/java/com/dke/data/agrirouter/api/service/messaging/http/FetchMessageService.java similarity index 96% rename from agrirouter-api-java-api/src/main/java/com/dke/data/agrirouter/api/service/messaging/FetchMessageService.java rename to agrirouter-api-java-api/src/main/java/com/dke/data/agrirouter/api/service/messaging/http/FetchMessageService.java index 25fad28d..2220bea8 100644 --- a/agrirouter-api-java-api/src/main/java/com/dke/data/agrirouter/api/service/messaging/FetchMessageService.java +++ b/agrirouter-api-java-api/src/main/java/com/dke/data/agrirouter/api/service/messaging/http/FetchMessageService.java @@ -1,4 +1,4 @@ -package com.dke.data.agrirouter.api.service.messaging; +package com.dke.data.agrirouter.api.service.messaging.http; import com.dke.data.agrirouter.api.cancellation.CancellationToken; import com.dke.data.agrirouter.api.dto.messaging.FetchMessageResponse; diff --git a/agrirouter-api-java-api/src/main/java/com/dke/data/agrirouter/api/service/messaging/ListEndpointsService.java b/agrirouter-api-java-api/src/main/java/com/dke/data/agrirouter/api/service/messaging/http/ListEndpointsService.java similarity index 74% rename from agrirouter-api-java-api/src/main/java/com/dke/data/agrirouter/api/service/messaging/ListEndpointsService.java rename to agrirouter-api-java-api/src/main/java/com/dke/data/agrirouter/api/service/messaging/http/ListEndpointsService.java index 5b4ce4cb..845baebf 100644 --- a/agrirouter-api-java-api/src/main/java/com/dke/data/agrirouter/api/service/messaging/ListEndpointsService.java +++ b/agrirouter-api-java-api/src/main/java/com/dke/data/agrirouter/api/service/messaging/http/ListEndpointsService.java @@ -1,4 +1,4 @@ -package com.dke.data.agrirouter.api.service.messaging; +package com.dke.data.agrirouter.api.service.messaging.http; import com.dke.data.agrirouter.api.service.parameters.ListEndpointsParameters; diff --git a/agrirouter-api-java-api/src/main/java/com/dke/data/agrirouter/api/service/messaging/MessageConfirmationService.java b/agrirouter-api-java-api/src/main/java/com/dke/data/agrirouter/api/service/messaging/http/MessageConfirmationService.java similarity index 76% rename from agrirouter-api-java-api/src/main/java/com/dke/data/agrirouter/api/service/messaging/MessageConfirmationService.java rename to agrirouter-api-java-api/src/main/java/com/dke/data/agrirouter/api/service/messaging/http/MessageConfirmationService.java index 70fad4f2..88104c1a 100644 --- a/agrirouter-api-java-api/src/main/java/com/dke/data/agrirouter/api/service/messaging/MessageConfirmationService.java +++ b/agrirouter-api-java-api/src/main/java/com/dke/data/agrirouter/api/service/messaging/http/MessageConfirmationService.java @@ -1,4 +1,4 @@ -package com.dke.data.agrirouter.api.service.messaging; +package com.dke.data.agrirouter.api.service.messaging.http; import com.dke.data.agrirouter.api.service.parameters.MessageConfirmationParameters; diff --git a/agrirouter-api-java-api/src/main/java/com/dke/data/agrirouter/api/service/messaging/MessageHeaderQueryService.java b/agrirouter-api-java-api/src/main/java/com/dke/data/agrirouter/api/service/messaging/http/MessageHeaderQueryService.java similarity index 85% rename from agrirouter-api-java-api/src/main/java/com/dke/data/agrirouter/api/service/messaging/MessageHeaderQueryService.java rename to agrirouter-api-java-api/src/main/java/com/dke/data/agrirouter/api/service/messaging/http/MessageHeaderQueryService.java index 9f3c2fc2..1c1ffbdf 100644 --- a/agrirouter-api-java-api/src/main/java/com/dke/data/agrirouter/api/service/messaging/MessageHeaderQueryService.java +++ b/agrirouter-api-java-api/src/main/java/com/dke/data/agrirouter/api/service/messaging/http/MessageHeaderQueryService.java @@ -1,4 +1,4 @@ -package com.dke.data.agrirouter.api.service.messaging; +package com.dke.data.agrirouter.api.service.messaging.http; import agrirouter.feed.response.FeedResponse; import com.dke.data.agrirouter.api.service.messaging.encoding.MessageDecoder; diff --git a/agrirouter-api-java-api/src/main/java/com/dke/data/agrirouter/api/service/messaging/MessageQueryService.java b/agrirouter-api-java-api/src/main/java/com/dke/data/agrirouter/api/service/messaging/http/MessageQueryService.java similarity index 85% rename from agrirouter-api-java-api/src/main/java/com/dke/data/agrirouter/api/service/messaging/MessageQueryService.java rename to agrirouter-api-java-api/src/main/java/com/dke/data/agrirouter/api/service/messaging/http/MessageQueryService.java index b208473e..276a8fb6 100644 --- a/agrirouter-api-java-api/src/main/java/com/dke/data/agrirouter/api/service/messaging/MessageQueryService.java +++ b/agrirouter-api-java-api/src/main/java/com/dke/data/agrirouter/api/service/messaging/http/MessageQueryService.java @@ -1,4 +1,4 @@ -package com.dke.data.agrirouter.api.service.messaging; +package com.dke.data.agrirouter.api.service.messaging.http; import agrirouter.feed.response.FeedResponse; import com.dke.data.agrirouter.api.service.messaging.encoding.MessageDecoder; diff --git a/agrirouter-api-java-api/src/main/java/com/dke/data/agrirouter/api/service/messaging/http/MessagingService.java b/agrirouter-api-java-api/src/main/java/com/dke/data/agrirouter/api/service/messaging/http/MessagingService.java new file mode 100644 index 00000000..8411554d --- /dev/null +++ b/agrirouter-api-java-api/src/main/java/com/dke/data/agrirouter/api/service/messaging/http/MessagingService.java @@ -0,0 +1,27 @@ +package com.dke.data.agrirouter.api.service.messaging.http; + +import com.dke.data.agrirouter.api.messaging.HttpAsyncMessageSendingResult; + +/** + * Centralized service interface. + * + * @param The type of parameters needed to send messages. + */ +public interface MessagingService { + + /** + * Send a synchronous message. + * + * @param parameters - + * @return The ID of the message. + */ + String send(T parameters); + + /** + * Send an asynchronous message. + * + * @param parameters - + * @return The completable future containing the possible result. + */ + HttpAsyncMessageSendingResult sendAsync(T parameters); +} diff --git a/agrirouter-api-java-api/src/main/java/com/dke/data/agrirouter/api/service/messaging/SetCapabilityService.java b/agrirouter-api-java-api/src/main/java/com/dke/data/agrirouter/api/service/messaging/http/SetCapabilityService.java similarity index 63% rename from agrirouter-api-java-api/src/main/java/com/dke/data/agrirouter/api/service/messaging/SetCapabilityService.java rename to agrirouter-api-java-api/src/main/java/com/dke/data/agrirouter/api/service/messaging/http/SetCapabilityService.java index 4f47322a..a68ba1cb 100644 --- a/agrirouter-api-java-api/src/main/java/com/dke/data/agrirouter/api/service/messaging/SetCapabilityService.java +++ b/agrirouter-api-java-api/src/main/java/com/dke/data/agrirouter/api/service/messaging/http/SetCapabilityService.java @@ -1,5 +1,6 @@ -package com.dke.data.agrirouter.api.service.messaging; +package com.dke.data.agrirouter.api.service.messaging.http; import com.dke.data.agrirouter.api.service.parameters.SetCapabilitiesParameters; +/** Service interface set capabilities. */ public interface SetCapabilityService extends MessagingService {} diff --git a/agrirouter-api-java-api/src/main/java/com/dke/data/agrirouter/api/service/messaging/SetSubscriptionService.java b/agrirouter-api-java-api/src/main/java/com/dke/data/agrirouter/api/service/messaging/http/SetSubscriptionService.java similarity index 79% rename from agrirouter-api-java-api/src/main/java/com/dke/data/agrirouter/api/service/messaging/SetSubscriptionService.java rename to agrirouter-api-java-api/src/main/java/com/dke/data/agrirouter/api/service/messaging/http/SetSubscriptionService.java index c16e1ec3..c3fc1122 100644 --- a/agrirouter-api-java-api/src/main/java/com/dke/data/agrirouter/api/service/messaging/SetSubscriptionService.java +++ b/agrirouter-api-java-api/src/main/java/com/dke/data/agrirouter/api/service/messaging/http/SetSubscriptionService.java @@ -1,4 +1,4 @@ -package com.dke.data.agrirouter.api.service.messaging; +package com.dke.data.agrirouter.api.service.messaging.http; import com.dke.data.agrirouter.api.service.parameters.SetSubscriptionParameters; diff --git a/agrirouter-api-java-api/src/main/java/com/dke/data/agrirouter/api/service/messaging/mqtt/CloudOffboardingService.java b/agrirouter-api-java-api/src/main/java/com/dke/data/agrirouter/api/service/messaging/mqtt/CloudOffboardingService.java new file mode 100644 index 00000000..ca816643 --- /dev/null +++ b/agrirouter-api-java-api/src/main/java/com/dke/data/agrirouter/api/service/messaging/mqtt/CloudOffboardingService.java @@ -0,0 +1,5 @@ +package com.dke.data.agrirouter.api.service.messaging.mqtt; + +import com.dke.data.agrirouter.api.service.parameters.CloudOffboardingParameters; + +public interface CloudOffboardingService extends MessagingService {} diff --git a/agrirouter-api-java-api/src/main/java/com/dke/data/agrirouter/api/service/messaging/mqtt/CloudOnboardingService.java b/agrirouter-api-java-api/src/main/java/com/dke/data/agrirouter/api/service/messaging/mqtt/CloudOnboardingService.java new file mode 100644 index 00000000..85217000 --- /dev/null +++ b/agrirouter-api-java-api/src/main/java/com/dke/data/agrirouter/api/service/messaging/mqtt/CloudOnboardingService.java @@ -0,0 +1,5 @@ +package com.dke.data.agrirouter.api.service.messaging.mqtt; + +import com.dke.data.agrirouter.api.service.parameters.CloudOnboardingParameters; + +public interface CloudOnboardingService extends MessagingService {} diff --git a/agrirouter-api-java-api/src/main/java/com/dke/data/agrirouter/api/service/messaging/mqtt/DeleteMessageService.java b/agrirouter-api-java-api/src/main/java/com/dke/data/agrirouter/api/service/messaging/mqtt/DeleteMessageService.java new file mode 100644 index 00000000..43583dab --- /dev/null +++ b/agrirouter-api-java-api/src/main/java/com/dke/data/agrirouter/api/service/messaging/mqtt/DeleteMessageService.java @@ -0,0 +1,5 @@ +package com.dke.data.agrirouter.api.service.messaging.mqtt; + +import com.dke.data.agrirouter.api.service.parameters.DeleteMessageParameters; + +public interface DeleteMessageService extends MessagingService {} diff --git a/agrirouter-api-java-api/src/main/java/com/dke/data/agrirouter/api/service/messaging/mqtt/ListEndpointsService.java b/agrirouter-api-java-api/src/main/java/com/dke/data/agrirouter/api/service/messaging/mqtt/ListEndpointsService.java new file mode 100644 index 00000000..bfdf5cf6 --- /dev/null +++ b/agrirouter-api-java-api/src/main/java/com/dke/data/agrirouter/api/service/messaging/mqtt/ListEndpointsService.java @@ -0,0 +1,5 @@ +package com.dke.data.agrirouter.api.service.messaging.mqtt; + +import com.dke.data.agrirouter.api.service.parameters.ListEndpointsParameters; + +public interface ListEndpointsService extends MessagingService {} diff --git a/agrirouter-api-java-api/src/main/java/com/dke/data/agrirouter/api/service/messaging/mqtt/MessageConfirmationService.java b/agrirouter-api-java-api/src/main/java/com/dke/data/agrirouter/api/service/messaging/mqtt/MessageConfirmationService.java new file mode 100644 index 00000000..3c04238b --- /dev/null +++ b/agrirouter-api-java-api/src/main/java/com/dke/data/agrirouter/api/service/messaging/mqtt/MessageConfirmationService.java @@ -0,0 +1,6 @@ +package com.dke.data.agrirouter.api.service.messaging.mqtt; + +import com.dke.data.agrirouter.api.service.parameters.MessageConfirmationParameters; + +public interface MessageConfirmationService + extends MessagingService {} diff --git a/agrirouter-api-java-api/src/main/java/com/dke/data/agrirouter/api/service/messaging/mqtt/MessageHeaderQueryService.java b/agrirouter-api-java-api/src/main/java/com/dke/data/agrirouter/api/service/messaging/mqtt/MessageHeaderQueryService.java new file mode 100644 index 00000000..da50148e --- /dev/null +++ b/agrirouter-api-java-api/src/main/java/com/dke/data/agrirouter/api/service/messaging/mqtt/MessageHeaderQueryService.java @@ -0,0 +1,9 @@ +package com.dke.data.agrirouter.api.service.messaging.mqtt; + +import agrirouter.feed.response.FeedResponse; +import com.dke.data.agrirouter.api.service.messaging.encoding.MessageDecoder; +import com.dke.data.agrirouter.api.service.parameters.MessageQueryParameters; + +public interface MessageHeaderQueryService + extends MessagingService, + MessageDecoder {} diff --git a/agrirouter-api-java-api/src/main/java/com/dke/data/agrirouter/api/service/messaging/mqtt/MessageQueryService.java b/agrirouter-api-java-api/src/main/java/com/dke/data/agrirouter/api/service/messaging/mqtt/MessageQueryService.java new file mode 100644 index 00000000..e5875d33 --- /dev/null +++ b/agrirouter-api-java-api/src/main/java/com/dke/data/agrirouter/api/service/messaging/mqtt/MessageQueryService.java @@ -0,0 +1,9 @@ +package com.dke.data.agrirouter.api.service.messaging.mqtt; + +import agrirouter.feed.response.FeedResponse; +import com.dke.data.agrirouter.api.service.messaging.encoding.MessageDecoder; +import com.dke.data.agrirouter.api.service.parameters.MessageQueryParameters; + +public interface MessageQueryService + extends MessagingService, + MessageDecoder {} diff --git a/agrirouter-api-java-api/src/main/java/com/dke/data/agrirouter/api/service/messaging/mqtt/MessagingService.java b/agrirouter-api-java-api/src/main/java/com/dke/data/agrirouter/api/service/messaging/mqtt/MessagingService.java new file mode 100644 index 00000000..36300e66 --- /dev/null +++ b/agrirouter-api-java-api/src/main/java/com/dke/data/agrirouter/api/service/messaging/mqtt/MessagingService.java @@ -0,0 +1,27 @@ +package com.dke.data.agrirouter.api.service.messaging.mqtt; + +import com.dke.data.agrirouter.api.messaging.MqttAsyncMessageSendingResult; + +/** + * Centralized service interface. + * + * @param The type of parameters needed to send messages. + */ +public interface MessagingService { + + /** + * Send a synchronous message. + * + * @param parameters - + * @return The ID of the message. + */ + String send(T parameters); + + /** + * Send an asynchronous message. + * + * @param parameters - + * @return The completable future containing the possible result. + */ + MqttAsyncMessageSendingResult sendAsync(T parameters); +} diff --git a/agrirouter-api-java-api/src/main/java/com/dke/data/agrirouter/api/service/messaging/mqtt/SetCapabilityService.java b/agrirouter-api-java-api/src/main/java/com/dke/data/agrirouter/api/service/messaging/mqtt/SetCapabilityService.java new file mode 100644 index 00000000..2a1010c7 --- /dev/null +++ b/agrirouter-api-java-api/src/main/java/com/dke/data/agrirouter/api/service/messaging/mqtt/SetCapabilityService.java @@ -0,0 +1,6 @@ +package com.dke.data.agrirouter.api.service.messaging.mqtt; + +import com.dke.data.agrirouter.api.service.parameters.SetCapabilitiesParameters; + +/** Service interface set capabilities. */ +public interface SetCapabilityService extends MessagingService {} diff --git a/agrirouter-api-java-api/src/main/java/com/dke/data/agrirouter/api/service/messaging/mqtt/SetSubscriptionService.java b/agrirouter-api-java-api/src/main/java/com/dke/data/agrirouter/api/service/messaging/mqtt/SetSubscriptionService.java new file mode 100644 index 00000000..e01c5698 --- /dev/null +++ b/agrirouter-api-java-api/src/main/java/com/dke/data/agrirouter/api/service/messaging/mqtt/SetSubscriptionService.java @@ -0,0 +1,6 @@ +package com.dke.data.agrirouter.api.service.messaging.mqtt; + +import com.dke.data.agrirouter.api.service.parameters.SetSubscriptionParameters; + +/** Service to set the subscriptions for an endpoint. */ +public interface SetSubscriptionService extends MessagingService {} diff --git a/agrirouter-api-java-api/src/main/kotlin/com/dke/data/agrirouter/api/messaging/AsyncMessageSendingResult.kt b/agrirouter-api-java-api/src/main/kotlin/com/dke/data/agrirouter/api/messaging/AsyncMessageSendingResult.kt new file mode 100644 index 00000000..8825b22a --- /dev/null +++ b/agrirouter-api-java-api/src/main/kotlin/com/dke/data/agrirouter/api/messaging/AsyncMessageSendingResult.kt @@ -0,0 +1,12 @@ +package com.dke.data.agrirouter.api.messaging + +import java.util.concurrent.CompletableFuture + +/** + * Marker interface. + */ +interface AsyncMessageSendingResult { + + fun accessResult(): CompletableFuture + +} diff --git a/agrirouter-api-java-api/src/main/kotlin/com/dke/data/agrirouter/api/messaging/HttpAsyncMessageSendingResult.kt b/agrirouter-api-java-api/src/main/kotlin/com/dke/data/agrirouter/api/messaging/HttpAsyncMessageSendingResult.kt new file mode 100644 index 00000000..5e759f1e --- /dev/null +++ b/agrirouter-api-java-api/src/main/kotlin/com/dke/data/agrirouter/api/messaging/HttpAsyncMessageSendingResult.kt @@ -0,0 +1,13 @@ +package com.dke.data.agrirouter.api.messaging + +import java.util.concurrent.CompletableFuture + +class HttpAsyncMessageSendingResult( + val response: CompletableFuture, + val messageId: String +) : AsyncMessageSendingResult { + override fun accessResult(): CompletableFuture { + return response + } + +} \ No newline at end of file diff --git a/agrirouter-api-java-api/src/main/kotlin/com/dke/data/agrirouter/api/messaging/MessageSendingResponse.kt b/agrirouter-api-java-api/src/main/kotlin/com/dke/data/agrirouter/api/messaging/MessageSendingResponse.kt new file mode 100644 index 00000000..98ebb187 --- /dev/null +++ b/agrirouter-api-java-api/src/main/kotlin/com/dke/data/agrirouter/api/messaging/MessageSendingResponse.kt @@ -0,0 +1,8 @@ +package com.dke.data.agrirouter.api.messaging + +import javax.ws.rs.core.Response + +/** + * Wrapper for the response from the server. + */ +class MessageSendingResponse(val nativeResponse: Response) \ No newline at end of file diff --git a/agrirouter-api-java-api/src/main/kotlin/com/dke/data/agrirouter/api/messaging/MessageSendingResult.kt b/agrirouter-api-java-api/src/main/kotlin/com/dke/data/agrirouter/api/messaging/MessageSendingResult.kt new file mode 100644 index 00000000..0f08ce91 --- /dev/null +++ b/agrirouter-api-java-api/src/main/kotlin/com/dke/data/agrirouter/api/messaging/MessageSendingResult.kt @@ -0,0 +1,3 @@ +package com.dke.data.agrirouter.api.messaging + +class MessageSendingResult(val messageSendingResponse: MessageSendingResponse, val messageId : String) \ No newline at end of file diff --git a/agrirouter-api-java-api/src/main/kotlin/com/dke/data/agrirouter/api/messaging/MqttAsyncMessageSendingResult.kt b/agrirouter-api-java-api/src/main/kotlin/com/dke/data/agrirouter/api/messaging/MqttAsyncMessageSendingResult.kt new file mode 100644 index 00000000..05a1ab02 --- /dev/null +++ b/agrirouter-api-java-api/src/main/kotlin/com/dke/data/agrirouter/api/messaging/MqttAsyncMessageSendingResult.kt @@ -0,0 +1,10 @@ +package com.dke.data.agrirouter.api.messaging + +import java.util.concurrent.CompletableFuture + +class MqttAsyncMessageSendingResult(private val result: CompletableFuture) : AsyncMessageSendingResult { + override fun accessResult(): CompletableFuture { + return result + } + +} \ No newline at end of file diff --git a/agrirouter-api-java-convenience/src/main/java/com/dke/data/agrirouter/convenience/mqtt/service/messaging/ListEndpointsFunctionsService.java b/agrirouter-api-java-convenience/src/main/java/com/dke/data/agrirouter/convenience/mqtt/service/messaging/ListEndpointsFunctionsService.java index e19146fb..3d01b99a 100644 --- a/agrirouter-api-java-convenience/src/main/java/com/dke/data/agrirouter/convenience/mqtt/service/messaging/ListEndpointsFunctionsService.java +++ b/agrirouter-api-java-convenience/src/main/java/com/dke/data/agrirouter/convenience/mqtt/service/messaging/ListEndpointsFunctionsService.java @@ -3,7 +3,7 @@ import agrirouter.request.payload.account.Endpoints; import com.dke.data.agrirouter.api.dto.onboard.OnboardingResponse; import com.dke.data.agrirouter.api.enums.TechnicalMessageType; -import com.dke.data.agrirouter.api.service.messaging.ListEndpointsService; +import com.dke.data.agrirouter.api.service.messaging.mqtt.ListEndpointsService; import com.dke.data.agrirouter.api.service.parameters.ListEndpointsParameters; import com.dke.data.agrirouter.impl.messaging.mqtt.ListEndpointsServiceImpl; import org.eclipse.paho.client.mqttv3.IMqttClient; diff --git a/agrirouter-api-java-convenience/src/main/java/com/dke/data/agrirouter/convenience/rest/service/messaging/ListEndpointsFunctionsService.java b/agrirouter-api-java-convenience/src/main/java/com/dke/data/agrirouter/convenience/rest/service/messaging/ListEndpointsFunctionsService.java index e3417178..8b267ab5 100644 --- a/agrirouter-api-java-convenience/src/main/java/com/dke/data/agrirouter/convenience/rest/service/messaging/ListEndpointsFunctionsService.java +++ b/agrirouter-api-java-convenience/src/main/java/com/dke/data/agrirouter/convenience/rest/service/messaging/ListEndpointsFunctionsService.java @@ -4,7 +4,7 @@ import com.dke.data.agrirouter.api.dto.onboard.OnboardingResponse; import com.dke.data.agrirouter.api.enums.TechnicalMessageType; import com.dke.data.agrirouter.api.env.Environment; -import com.dke.data.agrirouter.api.service.messaging.ListEndpointsService; +import com.dke.data.agrirouter.api.service.messaging.http.ListEndpointsService; import com.dke.data.agrirouter.api.service.parameters.ListEndpointsParameters; import com.dke.data.agrirouter.impl.messaging.rest.ListEndpointsServiceImpl; diff --git a/agrirouter-api-java-convenience/src/main/java/com/dke/data/agrirouter/convenience/rest/service/messaging/MessageConfirmationFunctionsService.java b/agrirouter-api-java-convenience/src/main/java/com/dke/data/agrirouter/convenience/rest/service/messaging/MessageConfirmationFunctionsService.java index fc1a8b68..8ecf8422 100644 --- a/agrirouter-api-java-convenience/src/main/java/com/dke/data/agrirouter/convenience/rest/service/messaging/MessageConfirmationFunctionsService.java +++ b/agrirouter-api-java-convenience/src/main/java/com/dke/data/agrirouter/convenience/rest/service/messaging/MessageConfirmationFunctionsService.java @@ -10,10 +10,10 @@ import com.dke.data.agrirouter.api.dto.encoding.DecodeMessageResponse; import com.dke.data.agrirouter.api.dto.messaging.FetchMessageResponse; import com.dke.data.agrirouter.api.env.Environment; -import com.dke.data.agrirouter.api.service.messaging.FetchMessageService; -import com.dke.data.agrirouter.api.service.messaging.MessageConfirmationService; -import com.dke.data.agrirouter.api.service.messaging.MessageQueryService; import com.dke.data.agrirouter.api.service.messaging.encoding.DecodeMessageService; +import com.dke.data.agrirouter.api.service.messaging.http.FetchMessageService; +import com.dke.data.agrirouter.api.service.messaging.http.MessageConfirmationService; +import com.dke.data.agrirouter.api.service.messaging.http.MessageQueryService; import com.dke.data.agrirouter.api.service.parameters.MessageConfirmationForAllPendingMessagesParameters; import com.dke.data.agrirouter.api.service.parameters.MessageConfirmationParameters; import com.dke.data.agrirouter.api.service.parameters.MessageQueryParameters; diff --git a/agrirouter-api-java-impl/src/main/java/com/dke/data/agrirouter/impl/messaging/helper/MessageQueryHelperService.java b/agrirouter-api-java-impl/src/main/java/com/dke/data/agrirouter/impl/messaging/helper/MessageQueryHelperService.java index 191a1507..9195c065 100644 --- a/agrirouter-api-java-impl/src/main/java/com/dke/data/agrirouter/impl/messaging/helper/MessageQueryHelperService.java +++ b/agrirouter-api-java-impl/src/main/java/com/dke/data/agrirouter/impl/messaging/helper/MessageQueryHelperService.java @@ -2,6 +2,8 @@ import com.dke.data.agrirouter.api.dto.encoding.EncodedMessage; import com.dke.data.agrirouter.api.enums.TechnicalMessageType; +import com.dke.data.agrirouter.api.messaging.HttpAsyncMessageSendingResult; +import com.dke.data.agrirouter.api.messaging.MessageSendingResponse; import com.dke.data.agrirouter.api.service.messaging.encoding.EncodeMessageService; import com.dke.data.agrirouter.api.service.parameters.MessageQueryParameters; import com.dke.data.agrirouter.api.service.parameters.SendMessageParameters; @@ -10,6 +12,7 @@ import com.dke.data.agrirouter.impl.messaging.rest.MessageSender; import com.dke.data.agrirouter.impl.validation.ResponseValidator; import java.util.Collections; +import java.util.concurrent.CompletableFuture; public class MessageQueryHelperService extends NonEnvironmentalService implements MessageSender, MessageEncoder, ResponseValidator { @@ -41,7 +44,7 @@ public String send(MessageQueryParameters parameters) { Collections.singletonList(encodedMessageResponse.getEncodedMessage())); this.getNativeLogger().trace("Send and fetch message response."); - MessageSender.MessageSenderResponse response = this.sendMessage(sendMessageParameters); + MessageSendingResponse response = this.sendMessage(sendMessageParameters); this.getNativeLogger().trace("Validate message response."); this.assertStatusCodeIsOk(response.getNativeResponse().getStatus()); @@ -50,6 +53,30 @@ public String send(MessageQueryParameters parameters) { return encodedMessageResponse.getApplicationMessageID(); } + public HttpAsyncMessageSendingResult sendAsync(MessageQueryParameters parameters) { + this.logMethodBegin(parameters); + + this.getNativeLogger().trace("Validate parameters."); + parameters.validate(); + + this.getNativeLogger().trace("Encode message."); + EncodedMessage encodedMessageResponse = this.encode(this.technicalMessageType, parameters); + + this.getNativeLogger().trace("Build message parameters."); + SendMessageParameters sendMessageParameters = new SendMessageParameters(); + sendMessageParameters.setOnboardingResponse(parameters.getOnboardingResponse()); + sendMessageParameters.setEncodedMessages( + Collections.singletonList(encodedMessageResponse.getEncodedMessage())); + + this.getNativeLogger().trace("Send and fetch message response."); + CompletableFuture response = + this.sendMessageAsync(sendMessageParameters); + + this.logMethodEnd(); + return new HttpAsyncMessageSendingResult( + response, encodedMessageResponse.getApplicationMessageID()); + } + @Override public EncodeMessageService getEncodeMessageService() { return this.encodeMessageService; diff --git a/agrirouter-api-java-impl/src/main/java/com/dke/data/agrirouter/impl/messaging/mqtt/CloudOffboardingServiceImpl.java b/agrirouter-api-java-impl/src/main/java/com/dke/data/agrirouter/impl/messaging/mqtt/CloudOffboardingServiceImpl.java index a28f716e..7f500258 100644 --- a/agrirouter-api-java-impl/src/main/java/com/dke/data/agrirouter/impl/messaging/mqtt/CloudOffboardingServiceImpl.java +++ b/agrirouter-api-java-impl/src/main/java/com/dke/data/agrirouter/impl/messaging/mqtt/CloudOffboardingServiceImpl.java @@ -2,8 +2,9 @@ import com.dke.data.agrirouter.api.dto.encoding.EncodedMessage; import com.dke.data.agrirouter.api.exception.CouldNotSendMqttMessageException; -import com.dke.data.agrirouter.api.service.messaging.CloudOffboardingService; +import com.dke.data.agrirouter.api.messaging.MqttAsyncMessageSendingResult; import com.dke.data.agrirouter.api.service.messaging.encoding.EncodeMessageService; +import com.dke.data.agrirouter.api.service.messaging.mqtt.CloudOffboardingService; import com.dke.data.agrirouter.api.service.parameters.CloudOffboardingParameters; import com.dke.data.agrirouter.api.service.parameters.SendMessageParameters; import com.dke.data.agrirouter.impl.messaging.MessageBodyCreator; @@ -11,6 +12,8 @@ import com.dke.data.agrirouter.impl.messaging.MqttService; import com.dke.data.agrirouter.impl.messaging.encoding.EncodeMessageServiceImpl; import java.util.Collections; +import java.util.Objects; +import java.util.concurrent.CompletableFuture; import org.eclipse.paho.client.mqttv3.IMqttClient; import org.eclipse.paho.client.mqttv3.MqttException; import org.eclipse.paho.client.mqttv3.MqttMessage; @@ -44,7 +47,9 @@ public String send(CloudOffboardingParameters parameters) { byte[] payload = messageAsJson.getBytes(); this.getMqttClient() .publish( - parameters.getOnboardingResponse().getConnectionCriteria().getMeasures(), + Objects.requireNonNull(parameters.getOnboardingResponse()) + .getConnectionCriteria() + .getMeasures(), new MqttMessage(payload)); return encodedMessage.getApplicationMessageID(); } catch (MqttException e) { @@ -52,6 +57,12 @@ public String send(CloudOffboardingParameters parameters) { } } + @Override + public MqttAsyncMessageSendingResult sendAsync(CloudOffboardingParameters parameters) { + return new MqttAsyncMessageSendingResult( + CompletableFuture.supplyAsync(() -> this.send(parameters))); + } + @Override public EncodeMessageService getEncodeMessageService() { return this.encodeMessageService; diff --git a/agrirouter-api-java-impl/src/main/java/com/dke/data/agrirouter/impl/messaging/mqtt/CloudOnboardingServiceImpl.java b/agrirouter-api-java-impl/src/main/java/com/dke/data/agrirouter/impl/messaging/mqtt/CloudOnboardingServiceImpl.java index d3436b0a..5fc93219 100644 --- a/agrirouter-api-java-impl/src/main/java/com/dke/data/agrirouter/impl/messaging/mqtt/CloudOnboardingServiceImpl.java +++ b/agrirouter-api-java-impl/src/main/java/com/dke/data/agrirouter/impl/messaging/mqtt/CloudOnboardingServiceImpl.java @@ -2,8 +2,9 @@ import com.dke.data.agrirouter.api.dto.encoding.EncodedMessage; import com.dke.data.agrirouter.api.exception.CouldNotSendMqttMessageException; -import com.dke.data.agrirouter.api.service.messaging.CloudOnboardingService; +import com.dke.data.agrirouter.api.messaging.MqttAsyncMessageSendingResult; import com.dke.data.agrirouter.api.service.messaging.encoding.EncodeMessageService; +import com.dke.data.agrirouter.api.service.messaging.mqtt.CloudOnboardingService; import com.dke.data.agrirouter.api.service.parameters.CloudOnboardingParameters; import com.dke.data.agrirouter.api.service.parameters.SendMessageParameters; import com.dke.data.agrirouter.impl.messaging.MessageBodyCreator; @@ -11,6 +12,8 @@ import com.dke.data.agrirouter.impl.messaging.MqttService; import com.dke.data.agrirouter.impl.messaging.encoding.EncodeMessageServiceImpl; import java.util.Collections; +import java.util.Objects; +import java.util.concurrent.CompletableFuture; import org.eclipse.paho.client.mqttv3.IMqttClient; import org.eclipse.paho.client.mqttv3.MqttException; import org.eclipse.paho.client.mqttv3.MqttMessage; @@ -43,7 +46,9 @@ public String send(CloudOnboardingParameters parameters) { byte[] payload = messageAsJson.getBytes(); this.getMqttClient() .publish( - parameters.getOnboardingResponse().getConnectionCriteria().getMeasures(), + Objects.requireNonNull(parameters.getOnboardingResponse()) + .getConnectionCriteria() + .getMeasures(), new MqttMessage(payload)); return encodedMessage.getApplicationMessageID(); } catch (MqttException e) { @@ -51,6 +56,12 @@ public String send(CloudOnboardingParameters parameters) { } } + @Override + public MqttAsyncMessageSendingResult sendAsync(CloudOnboardingParameters parameters) { + return new MqttAsyncMessageSendingResult( + CompletableFuture.supplyAsync(() -> this.send(parameters))); + } + @Override public EncodeMessageService getEncodeMessageService() { return this.encodeMessageService; diff --git a/agrirouter-api-java-impl/src/main/java/com/dke/data/agrirouter/impl/messaging/mqtt/DeleteMessageServiceImpl.java b/agrirouter-api-java-impl/src/main/java/com/dke/data/agrirouter/impl/messaging/mqtt/DeleteMessageServiceImpl.java index c53c4c29..5b46e182 100644 --- a/agrirouter-api-java-impl/src/main/java/com/dke/data/agrirouter/impl/messaging/mqtt/DeleteMessageServiceImpl.java +++ b/agrirouter-api-java-impl/src/main/java/com/dke/data/agrirouter/impl/messaging/mqtt/DeleteMessageServiceImpl.java @@ -2,8 +2,9 @@ import com.dke.data.agrirouter.api.dto.encoding.EncodedMessage; import com.dke.data.agrirouter.api.exception.CouldNotSendMqttMessageException; -import com.dke.data.agrirouter.api.service.messaging.DeleteMessageService; +import com.dke.data.agrirouter.api.messaging.MqttAsyncMessageSendingResult; import com.dke.data.agrirouter.api.service.messaging.encoding.EncodeMessageService; +import com.dke.data.agrirouter.api.service.messaging.mqtt.DeleteMessageService; import com.dke.data.agrirouter.api.service.parameters.DeleteMessageParameters; import com.dke.data.agrirouter.api.service.parameters.SendMessageParameters; import com.dke.data.agrirouter.impl.messaging.MessageBodyCreator; @@ -11,6 +12,8 @@ import com.dke.data.agrirouter.impl.messaging.MqttService; import com.dke.data.agrirouter.impl.messaging.encoding.EncodeMessageServiceImpl; import java.util.Collections; +import java.util.Objects; +import java.util.concurrent.CompletableFuture; import org.eclipse.paho.client.mqttv3.IMqttClient; import org.eclipse.paho.client.mqttv3.MqttException; import org.eclipse.paho.client.mqttv3.MqttMessage; @@ -37,7 +40,9 @@ public String send(DeleteMessageParameters parameters) { byte[] payload = messageAsJson.getBytes(); this.getMqttClient() .publish( - parameters.getOnboardingResponse().getConnectionCriteria().getMeasures(), + Objects.requireNonNull(parameters.getOnboardingResponse()) + .getConnectionCriteria() + .getMeasures(), new MqttMessage(payload)); return encodedMessage.getApplicationMessageID(); } catch (MqttException e) { @@ -45,6 +50,12 @@ public String send(DeleteMessageParameters parameters) { } } + @Override + public MqttAsyncMessageSendingResult sendAsync(DeleteMessageParameters parameters) { + return new MqttAsyncMessageSendingResult( + CompletableFuture.supplyAsync(() -> this.send(parameters))); + } + public EncodeMessageService getEncodeMessageService() { return encodeMessageService; } diff --git a/agrirouter-api-java-impl/src/main/java/com/dke/data/agrirouter/impl/messaging/mqtt/ListEndpointsServiceImpl.java b/agrirouter-api-java-impl/src/main/java/com/dke/data/agrirouter/impl/messaging/mqtt/ListEndpointsServiceImpl.java index 8b59adb1..427ce628 100644 --- a/agrirouter-api-java-impl/src/main/java/com/dke/data/agrirouter/impl/messaging/mqtt/ListEndpointsServiceImpl.java +++ b/agrirouter-api-java-impl/src/main/java/com/dke/data/agrirouter/impl/messaging/mqtt/ListEndpointsServiceImpl.java @@ -2,8 +2,9 @@ import com.dke.data.agrirouter.api.dto.encoding.EncodedMessage; import com.dke.data.agrirouter.api.exception.CouldNotSendMqttMessageException; -import com.dke.data.agrirouter.api.service.messaging.ListEndpointsService; +import com.dke.data.agrirouter.api.messaging.MqttAsyncMessageSendingResult; import com.dke.data.agrirouter.api.service.messaging.encoding.EncodeMessageService; +import com.dke.data.agrirouter.api.service.messaging.mqtt.ListEndpointsService; import com.dke.data.agrirouter.api.service.parameters.ListEndpointsParameters; import com.dke.data.agrirouter.api.service.parameters.SendMessageParameters; import com.dke.data.agrirouter.impl.messaging.MessageBodyCreator; @@ -11,6 +12,8 @@ import com.dke.data.agrirouter.impl.messaging.MqttService; import com.dke.data.agrirouter.impl.messaging.encoding.EncodeMessageServiceImpl; import java.util.Collections; +import java.util.Objects; +import java.util.concurrent.CompletableFuture; import org.eclipse.paho.client.mqttv3.IMqttClient; import org.eclipse.paho.client.mqttv3.MqttException; import org.eclipse.paho.client.mqttv3.MqttMessage; @@ -18,7 +21,7 @@ public class ListEndpointsServiceImpl extends MqttService implements ListEndpointsService, MessageBodyCreator, MessageEncoder { - private EncodeMessageService encodeMessageService; + private final EncodeMessageService encodeMessageService; public ListEndpointsServiceImpl(IMqttClient mqttClient) { super(mqttClient); @@ -38,7 +41,9 @@ public String send(ListEndpointsParameters parameters) { byte[] payload = messageAsJson.getBytes(); this.getMqttClient() .publish( - parameters.getOnboardingResponse().getConnectionCriteria().getMeasures(), + Objects.requireNonNull(parameters.getOnboardingResponse()) + .getConnectionCriteria() + .getMeasures(), new MqttMessage(payload)); return encodedMessage.getApplicationMessageID(); } catch (MqttException e) { @@ -46,6 +51,12 @@ public String send(ListEndpointsParameters parameters) { } } + @Override + public MqttAsyncMessageSendingResult sendAsync(ListEndpointsParameters parameters) { + return new MqttAsyncMessageSendingResult( + CompletableFuture.supplyAsync(() -> this.send(parameters))); + } + @Override public EncodeMessageService getEncodeMessageService() { return this.encodeMessageService; diff --git a/agrirouter-api-java-impl/src/main/java/com/dke/data/agrirouter/impl/messaging/mqtt/MessageConfirmationServiceImpl.java b/agrirouter-api-java-impl/src/main/java/com/dke/data/agrirouter/impl/messaging/mqtt/MessageConfirmationServiceImpl.java index 0b6882c3..bbaff0dd 100644 --- a/agrirouter-api-java-impl/src/main/java/com/dke/data/agrirouter/impl/messaging/mqtt/MessageConfirmationServiceImpl.java +++ b/agrirouter-api-java-impl/src/main/java/com/dke/data/agrirouter/impl/messaging/mqtt/MessageConfirmationServiceImpl.java @@ -2,8 +2,9 @@ import com.dke.data.agrirouter.api.dto.encoding.EncodedMessage; import com.dke.data.agrirouter.api.exception.CouldNotSendMqttMessageException; -import com.dke.data.agrirouter.api.service.messaging.MessageConfirmationService; +import com.dke.data.agrirouter.api.messaging.MqttAsyncMessageSendingResult; import com.dke.data.agrirouter.api.service.messaging.encoding.EncodeMessageService; +import com.dke.data.agrirouter.api.service.messaging.mqtt.MessageConfirmationService; import com.dke.data.agrirouter.api.service.parameters.MessageConfirmationParameters; import com.dke.data.agrirouter.api.service.parameters.SendMessageParameters; import com.dke.data.agrirouter.impl.messaging.MessageEncoder; @@ -11,6 +12,8 @@ import com.dke.data.agrirouter.impl.messaging.encoding.EncodeMessageServiceImpl; import com.dke.data.agrirouter.impl.messaging.rest.MessageSender; import java.util.Collections; +import java.util.Objects; +import java.util.concurrent.CompletableFuture; import org.eclipse.paho.client.mqttv3.IMqttClient; import org.eclipse.paho.client.mqttv3.MqttException; import org.eclipse.paho.client.mqttv3.MqttMessage; @@ -38,7 +41,9 @@ public String send(MessageConfirmationParameters parameters) { byte[] payload = messageAsJson.getBytes(); this.getMqttClient() .publish( - parameters.getOnboardingResponse().getConnectionCriteria().getMeasures(), + Objects.requireNonNull(parameters.getOnboardingResponse()) + .getConnectionCriteria() + .getMeasures(), new MqttMessage(payload)); return encodedMessage.getApplicationMessageID(); } catch (MqttException e) { @@ -46,6 +51,12 @@ public String send(MessageConfirmationParameters parameters) { } } + @Override + public MqttAsyncMessageSendingResult sendAsync(MessageConfirmationParameters parameters) { + return new MqttAsyncMessageSendingResult( + CompletableFuture.supplyAsync(() -> this.send(parameters))); + } + @Override public EncodeMessageService getEncodeMessageService() { return this.encodeMessageService; diff --git a/agrirouter-api-java-impl/src/main/java/com/dke/data/agrirouter/impl/messaging/mqtt/MessageHeaderQueryServiceImpl.java b/agrirouter-api-java-impl/src/main/java/com/dke/data/agrirouter/impl/messaging/mqtt/MessageHeaderQueryServiceImpl.java index 182c96d4..a796514b 100644 --- a/agrirouter-api-java-impl/src/main/java/com/dke/data/agrirouter/impl/messaging/mqtt/MessageHeaderQueryServiceImpl.java +++ b/agrirouter-api-java-impl/src/main/java/com/dke/data/agrirouter/impl/messaging/mqtt/MessageHeaderQueryServiceImpl.java @@ -2,7 +2,8 @@ import agrirouter.feed.response.FeedResponse; import com.dke.data.agrirouter.api.enums.TechnicalMessageType; -import com.dke.data.agrirouter.api.service.messaging.MessageHeaderQueryService; +import com.dke.data.agrirouter.api.messaging.MqttAsyncMessageSendingResult; +import com.dke.data.agrirouter.api.service.messaging.mqtt.MessageHeaderQueryService; import com.dke.data.agrirouter.api.service.parameters.MessageQueryParameters; import com.dke.data.agrirouter.impl.messaging.MqttService; import com.dke.data.agrirouter.impl.messaging.encoding.EncodeMessageServiceImpl; @@ -10,6 +11,7 @@ import com.dke.data.agrirouter.impl.messaging.rest.MessageSender; import com.google.protobuf.ByteString; import com.google.protobuf.InvalidProtocolBufferException; +import java.util.concurrent.CompletableFuture; import org.eclipse.paho.client.mqttv3.IMqttClient; public class MessageHeaderQueryServiceImpl extends MqttService @@ -29,6 +31,12 @@ public String send(MessageQueryParameters parameters) { return this.messageQueryHelperService.send(parameters); } + @Override + public MqttAsyncMessageSendingResult sendAsync(MessageQueryParameters parameters) { + return new MqttAsyncMessageSendingResult( + CompletableFuture.supplyAsync(() -> this.send(parameters))); + } + @Override public FeedResponse.HeaderQueryResponse unsafeDecode(ByteString message) throws InvalidProtocolBufferException { diff --git a/agrirouter-api-java-impl/src/main/java/com/dke/data/agrirouter/impl/messaging/mqtt/MessageQueryServiceImpl.java b/agrirouter-api-java-impl/src/main/java/com/dke/data/agrirouter/impl/messaging/mqtt/MessageQueryServiceImpl.java index da0b9dd5..ced90136 100644 --- a/agrirouter-api-java-impl/src/main/java/com/dke/data/agrirouter/impl/messaging/mqtt/MessageQueryServiceImpl.java +++ b/agrirouter-api-java-impl/src/main/java/com/dke/data/agrirouter/impl/messaging/mqtt/MessageQueryServiceImpl.java @@ -2,7 +2,9 @@ import agrirouter.feed.response.FeedResponse; import com.dke.data.agrirouter.api.enums.TechnicalMessageType; +import com.dke.data.agrirouter.api.messaging.MqttAsyncMessageSendingResult; import com.dke.data.agrirouter.api.service.messaging.encoding.MessageDecoder; +import com.dke.data.agrirouter.api.service.messaging.mqtt.MessageQueryService; import com.dke.data.agrirouter.api.service.parameters.MessageQueryParameters; import com.dke.data.agrirouter.impl.messaging.MqttService; import com.dke.data.agrirouter.impl.messaging.encoding.EncodeMessageServiceImpl; @@ -10,10 +12,11 @@ import com.dke.data.agrirouter.impl.messaging.rest.MessageSender; import com.google.protobuf.ByteString; import com.google.protobuf.InvalidProtocolBufferException; +import java.util.concurrent.CompletableFuture; import org.eclipse.paho.client.mqttv3.IMqttClient; public class MessageQueryServiceImpl extends MqttService - implements com.dke.data.agrirouter.api.service.messaging.MessageQueryService, + implements MessageQueryService, MessageSender, MessageDecoder { @@ -33,6 +36,12 @@ public String send(MessageQueryParameters parameters) { return this.messageQueryHelperService.send(parameters); } + @Override + public MqttAsyncMessageSendingResult sendAsync(MessageQueryParameters parameters) { + return new MqttAsyncMessageSendingResult( + CompletableFuture.supplyAsync(() -> this.send(parameters))); + } + @Override public FeedResponse.MessageQueryResponse unsafeDecode(ByteString message) throws InvalidProtocolBufferException { diff --git a/agrirouter-api-java-impl/src/main/java/com/dke/data/agrirouter/impl/messaging/mqtt/SendMessageServiceImpl.java b/agrirouter-api-java-impl/src/main/java/com/dke/data/agrirouter/impl/messaging/mqtt/SendMessageServiceImpl.java index acaecde3..c5db783a 100644 --- a/agrirouter-api-java-impl/src/main/java/com/dke/data/agrirouter/impl/messaging/mqtt/SendMessageServiceImpl.java +++ b/agrirouter-api-java-impl/src/main/java/com/dke/data/agrirouter/impl/messaging/mqtt/SendMessageServiceImpl.java @@ -3,8 +3,10 @@ import com.dke.data.agrirouter.api.exception.CouldNotSendMqttMessageException; import com.dke.data.agrirouter.api.service.messaging.SendMessageService; import com.dke.data.agrirouter.api.service.parameters.SendMessageParameters; +import com.dke.data.agrirouter.impl.messaging.MessageBodyCreator; import com.dke.data.agrirouter.impl.messaging.MqttService; -import com.dke.data.agrirouter.impl.messaging.rest.MessageSender; +import java.util.Objects; +import java.util.concurrent.CompletableFuture; import org.eclipse.paho.client.mqttv3.IMqttClient; import org.eclipse.paho.client.mqttv3.MqttException; import org.eclipse.paho.client.mqttv3.MqttMessage; @@ -14,23 +16,35 @@ * queue because connection handling should not be part of the API. */ public class SendMessageServiceImpl extends MqttService - implements SendMessageService, MessageSender { + implements SendMessageService, MessageBodyCreator { public SendMessageServiceImpl(IMqttClient mqttClient) { super(mqttClient); } - public void send(SendMessageParameters parameters) { - parameters.validate(); + /** + * Send message synchronous. + * + * @param sendMessageParameters Parameters to send the message. + */ + public void send(SendMessageParameters sendMessageParameters) { + sendMessageParameters.validate(); try { - String messageAsJson = this.createMessageBody(parameters); + String messageAsJson = this.createMessageBody(sendMessageParameters); byte[] payload = messageAsJson.getBytes(); this.getMqttClient() .publish( - parameters.getOnboardingResponse().getConnectionCriteria().getMeasures(), + Objects.requireNonNull(sendMessageParameters.getOnboardingResponse()) + .getConnectionCriteria() + .getMeasures(), new MqttMessage(payload)); } catch (MqttException e) { throw new CouldNotSendMqttMessageException(e); } } + + @Override + public CompletableFuture sendAsync(SendMessageParameters sendMessageParameters) { + return CompletableFuture.runAsync(() -> this.send(sendMessageParameters)); + } } diff --git a/agrirouter-api-java-impl/src/main/java/com/dke/data/agrirouter/impl/messaging/mqtt/SetCapabilityServiceImpl.java b/agrirouter-api-java-impl/src/main/java/com/dke/data/agrirouter/impl/messaging/mqtt/SetCapabilityServiceImpl.java index 24f334b9..0c438038 100644 --- a/agrirouter-api-java-impl/src/main/java/com/dke/data/agrirouter/impl/messaging/mqtt/SetCapabilityServiceImpl.java +++ b/agrirouter-api-java-impl/src/main/java/com/dke/data/agrirouter/impl/messaging/mqtt/SetCapabilityServiceImpl.java @@ -2,8 +2,9 @@ import com.dke.data.agrirouter.api.dto.encoding.EncodedMessage; import com.dke.data.agrirouter.api.exception.CouldNotSendMqttMessageException; -import com.dke.data.agrirouter.api.service.messaging.SetCapabilityService; +import com.dke.data.agrirouter.api.messaging.MqttAsyncMessageSendingResult; 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; import com.dke.data.agrirouter.api.service.parameters.SetCapabilitiesParameters; import com.dke.data.agrirouter.impl.messaging.MessageEncoder; @@ -12,6 +13,8 @@ import com.dke.data.agrirouter.impl.messaging.rest.MessageSender; import com.dke.data.agrirouter.impl.validation.ResponseValidator; import java.util.Collections; +import java.util.Objects; +import java.util.concurrent.CompletableFuture; import org.eclipse.paho.client.mqttv3.IMqttClient; import org.eclipse.paho.client.mqttv3.MqttException; import org.eclipse.paho.client.mqttv3.MqttMessage; @@ -39,7 +42,9 @@ public String send(SetCapabilitiesParameters parameters) { byte[] payload = messageAsJson.getBytes(); this.getMqttClient() .publish( - parameters.getOnboardingResponse().getConnectionCriteria().getMeasures(), + Objects.requireNonNull(parameters.getOnboardingResponse()) + .getConnectionCriteria() + .getMeasures(), new MqttMessage(payload)); return encodedMessage.getApplicationMessageID(); } catch (MqttException e) { @@ -47,6 +52,12 @@ public String send(SetCapabilitiesParameters parameters) { } } + @Override + public MqttAsyncMessageSendingResult sendAsync(SetCapabilitiesParameters parameters) { + return new MqttAsyncMessageSendingResult( + CompletableFuture.supplyAsync(() -> this.send(parameters))); + } + @Override public EncodeMessageService getEncodeMessageService() { return encodeMessageService; diff --git a/agrirouter-api-java-impl/src/main/java/com/dke/data/agrirouter/impl/messaging/mqtt/SetSubscriptionServiceImpl.java b/agrirouter-api-java-impl/src/main/java/com/dke/data/agrirouter/impl/messaging/mqtt/SetSubscriptionServiceImpl.java index d7aa268d..4f739a48 100644 --- a/agrirouter-api-java-impl/src/main/java/com/dke/data/agrirouter/impl/messaging/mqtt/SetSubscriptionServiceImpl.java +++ b/agrirouter-api-java-impl/src/main/java/com/dke/data/agrirouter/impl/messaging/mqtt/SetSubscriptionServiceImpl.java @@ -2,22 +2,25 @@ import com.dke.data.agrirouter.api.dto.encoding.EncodedMessage; import com.dke.data.agrirouter.api.exception.CouldNotSendMqttMessageException; -import com.dke.data.agrirouter.api.service.messaging.SetSubscriptionService; +import com.dke.data.agrirouter.api.messaging.MqttAsyncMessageSendingResult; 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; import com.dke.data.agrirouter.api.service.parameters.SetSubscriptionParameters; +import com.dke.data.agrirouter.impl.messaging.MessageBodyCreator; import com.dke.data.agrirouter.impl.messaging.MessageEncoder; import com.dke.data.agrirouter.impl.messaging.MqttService; 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 java.util.Collections; +import java.util.Objects; +import java.util.concurrent.CompletableFuture; import org.eclipse.paho.client.mqttv3.IMqttClient; import org.eclipse.paho.client.mqttv3.MqttException; import org.eclipse.paho.client.mqttv3.MqttMessage; public class SetSubscriptionServiceImpl extends MqttService - implements SetSubscriptionService, MessageSender, MessageEncoder, ResponseValidator { + implements SetSubscriptionService, MessageBodyCreator, MessageEncoder, ResponseValidator { private final EncodeMessageService encodeMessageService; public SetSubscriptionServiceImpl(IMqttClient mqttClient) { @@ -38,7 +41,9 @@ public String send(SetSubscriptionParameters parameters) { byte[] payload = messageAsJson.getBytes(); this.getMqttClient() .publish( - parameters.getOnboardingResponse().getConnectionCriteria().getMeasures(), + Objects.requireNonNull(parameters.getOnboardingResponse()) + .getConnectionCriteria() + .getMeasures(), new MqttMessage(payload)); return encodedMessage.getApplicationMessageID(); } catch (MqttException e) { @@ -46,6 +51,12 @@ public String send(SetSubscriptionParameters parameters) { } } + @Override + public MqttAsyncMessageSendingResult sendAsync(SetSubscriptionParameters parameters) { + return new MqttAsyncMessageSendingResult( + CompletableFuture.supplyAsync(() -> this.send(parameters))); + } + @Override public EncodeMessageService getEncodeMessageService() { return encodeMessageService; diff --git a/agrirouter-api-java-impl/src/main/java/com/dke/data/agrirouter/impl/messaging/rest/CloudOffboardingServiceImpl.java b/agrirouter-api-java-impl/src/main/java/com/dke/data/agrirouter/impl/messaging/rest/CloudOffboardingServiceImpl.java index 1150b03e..73fa594f 100644 --- a/agrirouter-api-java-impl/src/main/java/com/dke/data/agrirouter/impl/messaging/rest/CloudOffboardingServiceImpl.java +++ b/agrirouter-api-java-impl/src/main/java/com/dke/data/agrirouter/impl/messaging/rest/CloudOffboardingServiceImpl.java @@ -1,14 +1,17 @@ package com.dke.data.agrirouter.impl.messaging.rest; import com.dke.data.agrirouter.api.dto.encoding.EncodedMessage; -import com.dke.data.agrirouter.api.service.messaging.CloudOffboardingService; +import com.dke.data.agrirouter.api.messaging.HttpAsyncMessageSendingResult; +import com.dke.data.agrirouter.api.messaging.MessageSendingResponse; import com.dke.data.agrirouter.api.service.messaging.encoding.EncodeMessageService; +import com.dke.data.agrirouter.api.service.messaging.http.CloudOffboardingService; import com.dke.data.agrirouter.api.service.parameters.CloudOffboardingParameters; import com.dke.data.agrirouter.api.service.parameters.SendMessageParameters; import com.dke.data.agrirouter.impl.messaging.MessageEncoder; import com.dke.data.agrirouter.impl.messaging.encoding.EncodeMessageServiceImpl; import com.dke.data.agrirouter.impl.validation.ResponseValidator; import java.util.Collections; +import java.util.concurrent.CompletableFuture; /** Service implementation. */ public class CloudOffboardingServiceImpl @@ -20,12 +23,6 @@ public CloudOffboardingServiceImpl() { this.encodeMessageService = new EncodeMessageServiceImpl(); } - /** - * Offboarding a virtual CU. Will deliver no result if the action was successful, if there's any - * error an exception will be thrown. - * - * @param parameters Parameters for offboarding. - */ @Override public String send(CloudOffboardingParameters parameters) { parameters.validate(); @@ -34,11 +31,24 @@ public String send(CloudOffboardingParameters parameters) { sendMessageParameters.setOnboardingResponse(parameters.getOnboardingResponse()); sendMessageParameters.setEncodedMessages( Collections.singletonList(encodedMessage.getEncodedMessage())); - MessageSenderResponse response = this.sendMessage(sendMessageParameters); + MessageSendingResponse response = this.sendMessage(sendMessageParameters); this.assertStatusCodeIsValid(response.getNativeResponse().getStatus()); return encodedMessage.getApplicationMessageID(); } + @Override + public HttpAsyncMessageSendingResult sendAsync(CloudOffboardingParameters parameters) { + parameters.validate(); + EncodedMessage encodedMessage = this.encode(parameters); + SendMessageParameters sendMessageParameters = new SendMessageParameters(); + sendMessageParameters.setOnboardingResponse(parameters.getOnboardingResponse()); + sendMessageParameters.setEncodedMessages( + Collections.singletonList(encodedMessage.getEncodedMessage())); + CompletableFuture response = + this.sendMessageAsync(sendMessageParameters); + return new HttpAsyncMessageSendingResult(response, encodedMessage.getApplicationMessageID()); + } + @Override public EncodeMessageService getEncodeMessageService() { return this.encodeMessageService; diff --git a/agrirouter-api-java-impl/src/main/java/com/dke/data/agrirouter/impl/messaging/rest/CloudOnboardingServiceImpl.java b/agrirouter-api-java-impl/src/main/java/com/dke/data/agrirouter/impl/messaging/rest/CloudOnboardingServiceImpl.java index 54c4a8bb..7fe38a2a 100644 --- a/agrirouter-api-java-impl/src/main/java/com/dke/data/agrirouter/impl/messaging/rest/CloudOnboardingServiceImpl.java +++ b/agrirouter-api-java-impl/src/main/java/com/dke/data/agrirouter/impl/messaging/rest/CloudOnboardingServiceImpl.java @@ -1,14 +1,17 @@ package com.dke.data.agrirouter.impl.messaging.rest; import com.dke.data.agrirouter.api.dto.encoding.EncodedMessage; -import com.dke.data.agrirouter.api.service.messaging.CloudOnboardingService; +import com.dke.data.agrirouter.api.messaging.HttpAsyncMessageSendingResult; +import com.dke.data.agrirouter.api.messaging.MessageSendingResponse; import com.dke.data.agrirouter.api.service.messaging.encoding.EncodeMessageService; +import com.dke.data.agrirouter.api.service.messaging.http.CloudOnboardingService; import com.dke.data.agrirouter.api.service.parameters.CloudOnboardingParameters; import com.dke.data.agrirouter.api.service.parameters.SendMessageParameters; import com.dke.data.agrirouter.impl.messaging.MessageEncoder; import com.dke.data.agrirouter.impl.messaging.encoding.EncodeMessageServiceImpl; import com.dke.data.agrirouter.impl.validation.ResponseValidator; import java.util.Collections; +import java.util.concurrent.CompletableFuture; public class CloudOnboardingServiceImpl implements CloudOnboardingService, MessageSender, ResponseValidator, MessageEncoder { @@ -19,12 +22,6 @@ public CloudOnboardingServiceImpl() { this.encodeMessageService = new EncodeMessageServiceImpl(); } - /** - * Onboarding a virtual CU for an existing cloud application (incl. several checks). - * - * @param parameters Parameters for the onboarding. - * @return - - */ @Override public String send(CloudOnboardingParameters parameters) { parameters.validate(); @@ -33,11 +30,24 @@ public String send(CloudOnboardingParameters parameters) { sendMessageParameters.setOnboardingResponse(parameters.getOnboardingResponse()); sendMessageParameters.setEncodedMessages( Collections.singletonList(encodedMessage.getEncodedMessage())); - MessageSenderResponse response = this.sendMessage(sendMessageParameters); + MessageSendingResponse response = this.sendMessage(sendMessageParameters); this.assertStatusCodeIsValid(response.getNativeResponse().getStatus()); return encodedMessage.getApplicationMessageID(); } + @Override + public HttpAsyncMessageSendingResult sendAsync(CloudOnboardingParameters parameters) { + parameters.validate(); + EncodedMessage encodedMessage = this.encode(parameters); + SendMessageParameters sendMessageParameters = new SendMessageParameters(); + sendMessageParameters.setOnboardingResponse(parameters.getOnboardingResponse()); + sendMessageParameters.setEncodedMessages( + Collections.singletonList(encodedMessage.getEncodedMessage())); + CompletableFuture response = + this.sendMessageAsync(sendMessageParameters); + return new HttpAsyncMessageSendingResult(response, encodedMessage.getApplicationMessageID()); + } + @Override public EncodeMessageService getEncodeMessageService() { return this.encodeMessageService; diff --git a/agrirouter-api-java-impl/src/main/java/com/dke/data/agrirouter/impl/messaging/rest/DeleteMessageServiceImpl.java b/agrirouter-api-java-impl/src/main/java/com/dke/data/agrirouter/impl/messaging/rest/DeleteMessageServiceImpl.java index 9882fe87..1b7b909b 100644 --- a/agrirouter-api-java-impl/src/main/java/com/dke/data/agrirouter/impl/messaging/rest/DeleteMessageServiceImpl.java +++ b/agrirouter-api-java-impl/src/main/java/com/dke/data/agrirouter/impl/messaging/rest/DeleteMessageServiceImpl.java @@ -1,14 +1,17 @@ package com.dke.data.agrirouter.impl.messaging.rest; import com.dke.data.agrirouter.api.dto.encoding.EncodedMessage; -import com.dke.data.agrirouter.api.service.messaging.DeleteMessageService; +import com.dke.data.agrirouter.api.messaging.HttpAsyncMessageSendingResult; +import com.dke.data.agrirouter.api.messaging.MessageSendingResponse; import com.dke.data.agrirouter.api.service.messaging.encoding.EncodeMessageService; +import com.dke.data.agrirouter.api.service.messaging.http.DeleteMessageService; import com.dke.data.agrirouter.api.service.parameters.DeleteMessageParameters; import com.dke.data.agrirouter.api.service.parameters.SendMessageParameters; import com.dke.data.agrirouter.impl.messaging.MessageEncoder; import com.dke.data.agrirouter.impl.messaging.encoding.EncodeMessageServiceImpl; import com.dke.data.agrirouter.impl.validation.ResponseValidator; import java.util.Collections; +import java.util.concurrent.CompletableFuture; public class DeleteMessageServiceImpl implements DeleteMessageService, MessageSender, ResponseValidator, MessageEncoder { @@ -27,11 +30,24 @@ public String send(DeleteMessageParameters parameters) { sendMessageParameters.setOnboardingResponse(parameters.getOnboardingResponse()); sendMessageParameters.setEncodedMessages( Collections.singletonList(encodedMessage.getEncodedMessage())); - MessageSenderResponse response = this.sendMessage(sendMessageParameters); + MessageSendingResponse response = this.sendMessage(sendMessageParameters); this.assertStatusCodeIsOk(response.getNativeResponse().getStatus()); return encodedMessage.getApplicationMessageID(); } + @Override + public HttpAsyncMessageSendingResult sendAsync(DeleteMessageParameters parameters) { + parameters.validate(); + EncodedMessage encodedMessage = this.encode(parameters); + SendMessageParameters sendMessageParameters = new SendMessageParameters(); + sendMessageParameters.setOnboardingResponse(parameters.getOnboardingResponse()); + sendMessageParameters.setEncodedMessages( + Collections.singletonList(encodedMessage.getEncodedMessage())); + CompletableFuture response = + this.sendMessageAsync(sendMessageParameters); + return new HttpAsyncMessageSendingResult(response, encodedMessage.getApplicationMessageID()); + } + @Override public EncodeMessageService getEncodeMessageService() { return this.encodeMessageService; diff --git a/agrirouter-api-java-impl/src/main/java/com/dke/data/agrirouter/impl/messaging/rest/FetchMessageServiceImpl.java b/agrirouter-api-java-impl/src/main/java/com/dke/data/agrirouter/impl/messaging/rest/FetchMessageServiceImpl.java index e583905a..52779670 100644 --- a/agrirouter-api-java-impl/src/main/java/com/dke/data/agrirouter/impl/messaging/rest/FetchMessageServiceImpl.java +++ b/agrirouter-api-java-impl/src/main/java/com/dke/data/agrirouter/impl/messaging/rest/FetchMessageServiceImpl.java @@ -4,7 +4,7 @@ import com.dke.data.agrirouter.api.cancellation.DefaultCancellationToken; import com.dke.data.agrirouter.api.dto.messaging.FetchMessageResponse; import com.dke.data.agrirouter.api.dto.onboard.OnboardingResponse; -import com.dke.data.agrirouter.api.service.messaging.FetchMessageService; +import com.dke.data.agrirouter.api.service.messaging.http.FetchMessageService; import com.dke.data.agrirouter.api.service.parameters.FetchMessageParameters; import com.google.gson.Gson; import com.google.gson.reflect.TypeToken; diff --git a/agrirouter-api-java-impl/src/main/java/com/dke/data/agrirouter/impl/messaging/rest/ListEndpointsServiceImpl.java b/agrirouter-api-java-impl/src/main/java/com/dke/data/agrirouter/impl/messaging/rest/ListEndpointsServiceImpl.java index 5417832e..fd42659c 100644 --- a/agrirouter-api-java-impl/src/main/java/com/dke/data/agrirouter/impl/messaging/rest/ListEndpointsServiceImpl.java +++ b/agrirouter-api-java-impl/src/main/java/com/dke/data/agrirouter/impl/messaging/rest/ListEndpointsServiceImpl.java @@ -2,8 +2,10 @@ import com.dke.data.agrirouter.api.dto.encoding.EncodedMessage; import com.dke.data.agrirouter.api.env.Environment; -import com.dke.data.agrirouter.api.service.messaging.ListEndpointsService; +import com.dke.data.agrirouter.api.messaging.HttpAsyncMessageSendingResult; +import com.dke.data.agrirouter.api.messaging.MessageSendingResponse; import com.dke.data.agrirouter.api.service.messaging.encoding.EncodeMessageService; +import com.dke.data.agrirouter.api.service.messaging.http.ListEndpointsService; import com.dke.data.agrirouter.api.service.parameters.ListEndpointsParameters; import com.dke.data.agrirouter.api.service.parameters.SendMessageParameters; import com.dke.data.agrirouter.impl.EnvironmentalService; @@ -11,11 +13,12 @@ import com.dke.data.agrirouter.impl.messaging.encoding.EncodeMessageServiceImpl; import com.dke.data.agrirouter.impl.validation.ResponseValidator; import java.util.Collections; +import java.util.concurrent.CompletableFuture; public class ListEndpointsServiceImpl extends EnvironmentalService implements ListEndpointsService, MessageSender, MessageEncoder, ResponseValidator { - private EncodeMessageService encodeMessageService; + private final EncodeMessageService encodeMessageService; public ListEndpointsServiceImpl(Environment environment) { super(environment); @@ -34,6 +37,19 @@ public String send(ListEndpointsParameters parameters) { return encodedMessage.getApplicationMessageID(); } + @Override + public HttpAsyncMessageSendingResult sendAsync(ListEndpointsParameters parameters) { + parameters.validate(); + EncodedMessage encodedMessage = this.encode(parameters); + SendMessageParameters sendMessageParameters = new SendMessageParameters(); + sendMessageParameters.setOnboardingResponse(parameters.getOnboardingResponse()); + sendMessageParameters.setEncodedMessages( + Collections.singletonList(encodedMessage.getEncodedMessage())); + final CompletableFuture response = + this.sendMessageAsync(sendMessageParameters); + return new HttpAsyncMessageSendingResult(response, encodedMessage.getApplicationMessageID()); + } + @Override public EncodeMessageService getEncodeMessageService() { return this.encodeMessageService; diff --git a/agrirouter-api-java-impl/src/main/java/com/dke/data/agrirouter/impl/messaging/rest/MessageConfirmationServiceImpl.java b/agrirouter-api-java-impl/src/main/java/com/dke/data/agrirouter/impl/messaging/rest/MessageConfirmationServiceImpl.java index 05123216..4f0a4112 100644 --- a/agrirouter-api-java-impl/src/main/java/com/dke/data/agrirouter/impl/messaging/rest/MessageConfirmationServiceImpl.java +++ b/agrirouter-api-java-impl/src/main/java/com/dke/data/agrirouter/impl/messaging/rest/MessageConfirmationServiceImpl.java @@ -2,8 +2,10 @@ import com.dke.data.agrirouter.api.dto.encoding.EncodedMessage; import com.dke.data.agrirouter.api.env.Environment; -import com.dke.data.agrirouter.api.service.messaging.MessageConfirmationService; +import com.dke.data.agrirouter.api.messaging.HttpAsyncMessageSendingResult; +import com.dke.data.agrirouter.api.messaging.MessageSendingResponse; import com.dke.data.agrirouter.api.service.messaging.encoding.EncodeMessageService; +import com.dke.data.agrirouter.api.service.messaging.http.MessageConfirmationService; import com.dke.data.agrirouter.api.service.parameters.MessageConfirmationParameters; import com.dke.data.agrirouter.api.service.parameters.SendMessageParameters; import com.dke.data.agrirouter.impl.EnvironmentalService; @@ -11,6 +13,7 @@ import com.dke.data.agrirouter.impl.messaging.encoding.EncodeMessageServiceImpl; import com.dke.data.agrirouter.impl.validation.ResponseValidator; import java.util.Collections; +import java.util.concurrent.CompletableFuture; public class MessageConfirmationServiceImpl extends EnvironmentalService implements MessageConfirmationService, MessageSender, MessageEncoder, ResponseValidator { @@ -30,11 +33,24 @@ public String send(MessageConfirmationParameters parameters) { sendMessageParameters.setOnboardingResponse(parameters.getOnboardingResponse()); sendMessageParameters.setEncodedMessages( Collections.singletonList(encodedMessage.getEncodedMessage())); - MessageSenderResponse response = this.sendMessage(sendMessageParameters); + MessageSendingResponse response = this.sendMessage(sendMessageParameters); this.assertStatusCodeIsOk(response.getNativeResponse().getStatus()); return encodedMessage.getApplicationMessageID(); } + @Override + public HttpAsyncMessageSendingResult sendAsync(MessageConfirmationParameters parameters) { + parameters.validate(); + EncodedMessage encodedMessage = this.encode(parameters); + SendMessageParameters sendMessageParameters = new SendMessageParameters(); + sendMessageParameters.setOnboardingResponse(parameters.getOnboardingResponse()); + sendMessageParameters.setEncodedMessages( + Collections.singletonList(encodedMessage.getEncodedMessage())); + CompletableFuture response = + this.sendMessageAsync(sendMessageParameters); + return new HttpAsyncMessageSendingResult(response, encodedMessage.getApplicationMessageID()); + } + @Override public EncodeMessageService getEncodeMessageService() { return this.encodeMessageService; diff --git a/agrirouter-api-java-impl/src/main/java/com/dke/data/agrirouter/impl/messaging/rest/MessageHeaderQueryServiceImpl.java b/agrirouter-api-java-impl/src/main/java/com/dke/data/agrirouter/impl/messaging/rest/MessageHeaderQueryServiceImpl.java index 275ffb47..9a18d59f 100644 --- a/agrirouter-api-java-impl/src/main/java/com/dke/data/agrirouter/impl/messaging/rest/MessageHeaderQueryServiceImpl.java +++ b/agrirouter-api-java-impl/src/main/java/com/dke/data/agrirouter/impl/messaging/rest/MessageHeaderQueryServiceImpl.java @@ -3,7 +3,8 @@ import agrirouter.feed.response.FeedResponse; import com.dke.data.agrirouter.api.enums.TechnicalMessageType; import com.dke.data.agrirouter.api.env.Environment; -import com.dke.data.agrirouter.api.service.messaging.MessageHeaderQueryService; +import com.dke.data.agrirouter.api.messaging.HttpAsyncMessageSendingResult; +import com.dke.data.agrirouter.api.service.messaging.http.MessageHeaderQueryService; import com.dke.data.agrirouter.api.service.parameters.MessageQueryParameters; import com.dke.data.agrirouter.impl.EnvironmentalService; import com.dke.data.agrirouter.impl.messaging.encoding.EncodeMessageServiceImpl; @@ -28,6 +29,11 @@ public String send(MessageQueryParameters parameters) { return this.messageQueryHelperService.send(parameters); } + @Override + public HttpAsyncMessageSendingResult sendAsync(MessageQueryParameters parameters) { + return messageQueryHelperService.sendAsync(parameters); + } + @Override public FeedResponse.HeaderQueryResponse unsafeDecode(ByteString message) throws InvalidProtocolBufferException { diff --git a/agrirouter-api-java-impl/src/main/java/com/dke/data/agrirouter/impl/messaging/rest/MessageQueryServiceImpl.java b/agrirouter-api-java-impl/src/main/java/com/dke/data/agrirouter/impl/messaging/rest/MessageQueryServiceImpl.java index de754b3e..6f89cbc1 100644 --- a/agrirouter-api-java-impl/src/main/java/com/dke/data/agrirouter/impl/messaging/rest/MessageQueryServiceImpl.java +++ b/agrirouter-api-java-impl/src/main/java/com/dke/data/agrirouter/impl/messaging/rest/MessageQueryServiceImpl.java @@ -3,7 +3,9 @@ import agrirouter.feed.response.FeedResponse; import com.dke.data.agrirouter.api.enums.TechnicalMessageType; import com.dke.data.agrirouter.api.env.Environment; +import com.dke.data.agrirouter.api.messaging.HttpAsyncMessageSendingResult; import com.dke.data.agrirouter.api.service.messaging.encoding.MessageDecoder; +import com.dke.data.agrirouter.api.service.messaging.http.MessageQueryService; import com.dke.data.agrirouter.api.service.parameters.MessageQueryParameters; import com.dke.data.agrirouter.impl.EnvironmentalService; import com.dke.data.agrirouter.impl.messaging.encoding.EncodeMessageServiceImpl; @@ -12,7 +14,7 @@ import com.google.protobuf.InvalidProtocolBufferException; public class MessageQueryServiceImpl extends EnvironmentalService - implements com.dke.data.agrirouter.api.service.messaging.MessageQueryService, + implements MessageQueryService, MessageSender, MessageDecoder { @@ -20,14 +22,19 @@ public class MessageQueryServiceImpl extends EnvironmentalService public MessageQueryServiceImpl(Environment environment) { super(environment); - this.messageQueryHelperService = + messageQueryHelperService = new MessageQueryHelperService( new EncodeMessageServiceImpl(), TechnicalMessageType.DKE_FEED_MESSAGE_QUERY); } @Override public String send(MessageQueryParameters parameters) { - return this.messageQueryHelperService.send(parameters); + return messageQueryHelperService.send(parameters); + } + + @Override + public HttpAsyncMessageSendingResult sendAsync(MessageQueryParameters parameters) { + return messageQueryHelperService.sendAsync(parameters); } @Override diff --git a/agrirouter-api-java-impl/src/main/java/com/dke/data/agrirouter/impl/messaging/rest/MessageSender.java b/agrirouter-api-java-impl/src/main/java/com/dke/data/agrirouter/impl/messaging/rest/MessageSender.java index 531df8d9..3b340f02 100644 --- a/agrirouter-api-java-impl/src/main/java/com/dke/data/agrirouter/impl/messaging/rest/MessageSender.java +++ b/agrirouter-api-java-impl/src/main/java/com/dke/data/agrirouter/impl/messaging/rest/MessageSender.java @@ -1,24 +1,29 @@ package com.dke.data.agrirouter.impl.messaging.rest; import com.dke.data.agrirouter.api.enums.CertificationType; +import com.dke.data.agrirouter.api.messaging.MessageSendingResponse; import com.dke.data.agrirouter.api.service.parameters.SendMessageParameters; import com.dke.data.agrirouter.impl.RequestFactory; import com.dke.data.agrirouter.impl.messaging.MessageBodyCreator; import java.util.Objects; +import java.util.concurrent.CompletableFuture; import javax.ws.rs.client.Entity; import javax.ws.rs.core.Response; -/** Interface with default implementations for sending messages. */ +/** + * Default message sending interface. Used by all REST implementations to send messages to the AR. + * Provides methods to send messages synchronous and asynchronous. + */ public interface MessageSender extends MessageBodyCreator { /** - * Send message to the AR using the given parameters. + * Synchronous messages sending. * - * @param parameters - + * @param parameters Parameters to send messages. * @return The actual HTTP response from the AR for this request. This is not the ACK that can be * fetched afterwards. */ - default MessageSenderResponse sendMessage(SendMessageParameters parameters) { + default MessageSendingResponse sendMessage(SendMessageParameters parameters) { Response response = RequestFactory.securedRequest( Objects.requireNonNull(parameters.getOnboardingResponse()) @@ -29,21 +34,17 @@ default MessageSenderResponse sendMessage(SendMessageParameters parameters) { CertificationType.valueOf( parameters.getOnboardingResponse().getAuthentication().getType())) .post(Entity.json(this.createSendMessageRequest(parameters))); - return new MessageSenderResponse(response); + return new MessageSendingResponse(response); } - /** Message response. */ - class MessageSenderResponse { - - /** Wrapped HTTP response for the request. */ - private final Response nativeResponse; - - private MessageSenderResponse(Response nativeResponse) { - this.nativeResponse = nativeResponse; - } - - public Response getNativeResponse() { - return nativeResponse; - } + /** + * Asynchronous messages sending. + * + * @param parameters Parameters to send messages. + * @return Response of the server, wrapped within a completable future. + */ + default CompletableFuture sendMessageAsync( + SendMessageParameters parameters) { + return CompletableFuture.supplyAsync(() -> this.sendMessage(parameters)); } } diff --git a/agrirouter-api-java-impl/src/main/java/com/dke/data/agrirouter/impl/messaging/rest/SendMessageServiceImpl.java b/agrirouter-api-java-impl/src/main/java/com/dke/data/agrirouter/impl/messaging/rest/SendMessageServiceImpl.java index 52a9a286..f96a5a05 100644 --- a/agrirouter-api-java-impl/src/main/java/com/dke/data/agrirouter/impl/messaging/rest/SendMessageServiceImpl.java +++ b/agrirouter-api-java-impl/src/main/java/com/dke/data/agrirouter/impl/messaging/rest/SendMessageServiceImpl.java @@ -1,16 +1,26 @@ package com.dke.data.agrirouter.impl.messaging.rest; +import com.dke.data.agrirouter.api.messaging.MessageSendingResponse; import com.dke.data.agrirouter.api.service.messaging.SendMessageService; import com.dke.data.agrirouter.api.service.parameters.SendMessageParameters; import com.dke.data.agrirouter.impl.validation.ResponseValidator; +import java.util.concurrent.CompletableFuture; +/** Base class to send messages. */ public class SendMessageServiceImpl - implements SendMessageService, ResponseValidator, MessageSender { + implements SendMessageService, ResponseValidator, MessageSender { @Override - public void send(SendMessageParameters parameters) { - parameters.validate(); - MessageSenderResponse response = this.sendMessage(parameters); + public void send(SendMessageParameters sendMessageParameters) { + sendMessageParameters.validate(); + MessageSendingResponse response = this.sendMessage(sendMessageParameters); this.assertStatusCodeIsOk(response.getNativeResponse().getStatus()); } + + @Override + public CompletableFuture sendAsync( + SendMessageParameters sendMessageParameters) { + sendMessageParameters.validate(); + return this.sendMessageAsync(sendMessageParameters); + } } diff --git a/agrirouter-api-java-impl/src/main/java/com/dke/data/agrirouter/impl/messaging/rest/SetCapabilityServiceImpl.java b/agrirouter-api-java-impl/src/main/java/com/dke/data/agrirouter/impl/messaging/rest/SetCapabilityServiceImpl.java index 05ad97b6..0f0124c9 100644 --- a/agrirouter-api-java-impl/src/main/java/com/dke/data/agrirouter/impl/messaging/rest/SetCapabilityServiceImpl.java +++ b/agrirouter-api-java-impl/src/main/java/com/dke/data/agrirouter/impl/messaging/rest/SetCapabilityServiceImpl.java @@ -2,8 +2,10 @@ import com.dke.data.agrirouter.api.dto.encoding.EncodedMessage; import com.dke.data.agrirouter.api.env.Environment; -import com.dke.data.agrirouter.api.service.messaging.SetCapabilityService; +import com.dke.data.agrirouter.api.messaging.HttpAsyncMessageSendingResult; +import com.dke.data.agrirouter.api.messaging.MessageSendingResponse; import com.dke.data.agrirouter.api.service.messaging.encoding.EncodeMessageService; +import com.dke.data.agrirouter.api.service.messaging.http.SetCapabilityService; import com.dke.data.agrirouter.api.service.parameters.SendMessageParameters; import com.dke.data.agrirouter.api.service.parameters.SetCapabilitiesParameters; import com.dke.data.agrirouter.impl.EnvironmentalService; @@ -30,11 +32,23 @@ public String send(SetCapabilitiesParameters parameters) { sendMessageParameters.setOnboardingResponse(parameters.getOnboardingResponse()); sendMessageParameters.setEncodedMessages( Collections.singletonList(encodedMessage.getEncodedMessage())); - MessageSenderResponse response = this.sendMessage(sendMessageParameters); + MessageSendingResponse response = this.sendMessage(sendMessageParameters); this.assertStatusCodeIsOk(response.getNativeResponse().getStatus()); return encodedMessage.getApplicationMessageID(); } + @Override + public HttpAsyncMessageSendingResult sendAsync(SetCapabilitiesParameters parameters) { + parameters.validate(); + EncodedMessage encodedMessage = this.encode(parameters); + SendMessageParameters sendMessageParameters = new SendMessageParameters(); + sendMessageParameters.setOnboardingResponse(parameters.getOnboardingResponse()); + sendMessageParameters.setEncodedMessages( + Collections.singletonList(encodedMessage.getEncodedMessage())); + return new HttpAsyncMessageSendingResult( + this.sendMessageAsync(sendMessageParameters), encodedMessage.getApplicationMessageID()); + } + @Override public EncodeMessageService getEncodeMessageService() { return encodeMessageService; diff --git a/agrirouter-api-java-impl/src/main/java/com/dke/data/agrirouter/impl/messaging/rest/SetSubscriptionServiceImpl.java b/agrirouter-api-java-impl/src/main/java/com/dke/data/agrirouter/impl/messaging/rest/SetSubscriptionServiceImpl.java index 932d0770..59dcc298 100644 --- a/agrirouter-api-java-impl/src/main/java/com/dke/data/agrirouter/impl/messaging/rest/SetSubscriptionServiceImpl.java +++ b/agrirouter-api-java-impl/src/main/java/com/dke/data/agrirouter/impl/messaging/rest/SetSubscriptionServiceImpl.java @@ -2,8 +2,10 @@ import com.dke.data.agrirouter.api.dto.encoding.EncodedMessage; import com.dke.data.agrirouter.api.env.Environment; -import com.dke.data.agrirouter.api.service.messaging.SetSubscriptionService; +import com.dke.data.agrirouter.api.messaging.HttpAsyncMessageSendingResult; +import com.dke.data.agrirouter.api.messaging.MessageSendingResponse; import com.dke.data.agrirouter.api.service.messaging.encoding.EncodeMessageService; +import com.dke.data.agrirouter.api.service.messaging.http.SetSubscriptionService; import com.dke.data.agrirouter.api.service.parameters.SendMessageParameters; import com.dke.data.agrirouter.api.service.parameters.SetSubscriptionParameters; import com.dke.data.agrirouter.impl.EnvironmentalService; @@ -30,11 +32,23 @@ public String send(SetSubscriptionParameters parameters) { sendMessageParameters.setOnboardingResponse(parameters.getOnboardingResponse()); sendMessageParameters.setEncodedMessages( Collections.singletonList(encodedMessage.getEncodedMessage())); - MessageSenderResponse response = this.sendMessage(sendMessageParameters); + MessageSendingResponse response = this.sendMessage(sendMessageParameters); this.assertStatusCodeIsOk(response.getNativeResponse().getStatus()); return encodedMessage.getApplicationMessageID(); } + @Override + public HttpAsyncMessageSendingResult sendAsync(SetSubscriptionParameters parameters) { + parameters.validate(); + EncodedMessage encodedMessage = this.encodeMessage(parameters); + SendMessageParameters sendMessageParameters = new SendMessageParameters(); + sendMessageParameters.setOnboardingResponse(parameters.getOnboardingResponse()); + sendMessageParameters.setEncodedMessages( + Collections.singletonList(encodedMessage.getEncodedMessage())); + return new HttpAsyncMessageSendingResult( + this.sendMessageAsync(sendMessageParameters), encodedMessage.getApplicationMessageID()); + } + @Override public EncodeMessageService getEncodeMessageService() { return encodeMessageService; diff --git a/agrirouter-api-tests/src/test/java/com/dke/data/agrirouter/test/messaging/rest/CancellationTokenPollingTest.java b/agrirouter-api-tests/src/test/java/com/dke/data/agrirouter/test/messaging/rest/CancellationTokenPollingTest.java index 4706c042..96a1da89 100644 --- a/agrirouter-api-tests/src/test/java/com/dke/data/agrirouter/test/messaging/rest/CancellationTokenPollingTest.java +++ b/agrirouter-api-tests/src/test/java/com/dke/data/agrirouter/test/messaging/rest/CancellationTokenPollingTest.java @@ -6,7 +6,7 @@ import com.dke.data.agrirouter.api.cancellation.CancellationToken; import com.dke.data.agrirouter.api.cancellation.DefaultCancellationToken; import com.dke.data.agrirouter.api.dto.messaging.FetchMessageResponse; -import com.dke.data.agrirouter.api.service.messaging.FetchMessageService; +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; import com.dke.data.agrirouter.test.AbstractIntegrationTest; diff --git a/agrirouter-api-tests/src/test/java/com/dke/data/agrirouter/test/messaging/rest/CloudOffboardingServiceTest.java b/agrirouter-api-tests/src/test/java/com/dke/data/agrirouter/test/messaging/rest/CloudOffboardingServiceTest.java index c4d0d6c3..b44b0db4 100644 --- a/agrirouter-api-tests/src/test/java/com/dke/data/agrirouter/test/messaging/rest/CloudOffboardingServiceTest.java +++ b/agrirouter-api-tests/src/test/java/com/dke/data/agrirouter/test/messaging/rest/CloudOffboardingServiceTest.java @@ -2,17 +2,18 @@ import static com.dke.data.agrirouter.impl.messaging.rest.MessageFetcher.DEFAULT_INTERVAL; import static com.dke.data.agrirouter.impl.messaging.rest.MessageFetcher.MAX_TRIES_BEFORE_FAILURE; -import static com.dke.data.agrirouter.test.OnboardingResponseRepository.*; +import static com.dke.data.agrirouter.test.OnboardingResponseRepository.Identifier; +import static com.dke.data.agrirouter.test.OnboardingResponseRepository.read; import com.dke.data.agrirouter.api.cancellation.DefaultCancellationToken; import com.dke.data.agrirouter.api.dto.encoding.DecodeMessageResponse; import com.dke.data.agrirouter.api.dto.messaging.FetchMessageResponse; import com.dke.data.agrirouter.api.dto.messaging.inner.Message; import com.dke.data.agrirouter.api.dto.onboard.OnboardingResponse; -import com.dke.data.agrirouter.api.service.messaging.CloudOffboardingService; -import com.dke.data.agrirouter.api.service.messaging.CloudOnboardingService; -import com.dke.data.agrirouter.api.service.messaging.FetchMessageService; import com.dke.data.agrirouter.api.service.messaging.encoding.DecodeMessageService; +import com.dke.data.agrirouter.api.service.messaging.http.CloudOffboardingService; +import com.dke.data.agrirouter.api.service.messaging.http.CloudOnboardingService; +import com.dke.data.agrirouter.api.service.messaging.http.FetchMessageService; import com.dke.data.agrirouter.api.service.parameters.CloudOffboardingParameters; import com.dke.data.agrirouter.api.service.parameters.CloudOnboardingParameters; import com.dke.data.agrirouter.convenience.decode.DecodeCloudOnboardingResponsesService; diff --git a/agrirouter-api-tests/src/test/java/com/dke/data/agrirouter/test/messaging/rest/CloudOnboardingServiceTest.java b/agrirouter-api-tests/src/test/java/com/dke/data/agrirouter/test/messaging/rest/CloudOnboardingServiceTest.java index 984f69ce..01c70cca 100644 --- a/agrirouter-api-tests/src/test/java/com/dke/data/agrirouter/test/messaging/rest/CloudOnboardingServiceTest.java +++ b/agrirouter-api-tests/src/test/java/com/dke/data/agrirouter/test/messaging/rest/CloudOnboardingServiceTest.java @@ -2,17 +2,18 @@ import static com.dke.data.agrirouter.impl.messaging.rest.MessageFetcher.DEFAULT_INTERVAL; import static com.dke.data.agrirouter.impl.messaging.rest.MessageFetcher.MAX_TRIES_BEFORE_FAILURE; -import static com.dke.data.agrirouter.test.OnboardingResponseRepository.*; +import static com.dke.data.agrirouter.test.OnboardingResponseRepository.Identifier; +import static com.dke.data.agrirouter.test.OnboardingResponseRepository.read; import com.dke.data.agrirouter.api.cancellation.DefaultCancellationToken; import com.dke.data.agrirouter.api.dto.encoding.DecodeMessageResponse; import com.dke.data.agrirouter.api.dto.messaging.FetchMessageResponse; import com.dke.data.agrirouter.api.dto.messaging.inner.Message; import com.dke.data.agrirouter.api.dto.onboard.OnboardingResponse; -import com.dke.data.agrirouter.api.service.messaging.CloudOffboardingService; -import com.dke.data.agrirouter.api.service.messaging.CloudOnboardingService; -import com.dke.data.agrirouter.api.service.messaging.FetchMessageService; import com.dke.data.agrirouter.api.service.messaging.encoding.DecodeMessageService; +import com.dke.data.agrirouter.api.service.messaging.http.CloudOffboardingService; +import com.dke.data.agrirouter.api.service.messaging.http.CloudOnboardingService; +import com.dke.data.agrirouter.api.service.messaging.http.FetchMessageService; import com.dke.data.agrirouter.api.service.parameters.CloudOffboardingParameters; import com.dke.data.agrirouter.api.service.parameters.CloudOnboardingParameters; import com.dke.data.agrirouter.convenience.decode.DecodeCloudOnboardingResponsesService; diff --git a/agrirouter-api-tests/src/test/java/com/dke/data/agrirouter/test/messaging/rest/HealthCheckForEndpointsByPollingTest.java b/agrirouter-api-tests/src/test/java/com/dke/data/agrirouter/test/messaging/rest/HealthCheckForEndpointsByPollingTest.java index 27befb90..1dad42fb 100644 --- a/agrirouter-api-tests/src/test/java/com/dke/data/agrirouter/test/messaging/rest/HealthCheckForEndpointsByPollingTest.java +++ b/agrirouter-api-tests/src/test/java/com/dke/data/agrirouter/test/messaging/rest/HealthCheckForEndpointsByPollingTest.java @@ -4,7 +4,7 @@ import com.dke.data.agrirouter.api.dto.messaging.FetchMessageResponse; import com.dke.data.agrirouter.api.dto.onboard.OnboardingResponse; import com.dke.data.agrirouter.api.exception.UnauthorizedRequestException; -import com.dke.data.agrirouter.api.service.messaging.FetchMessageService; +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; import com.dke.data.agrirouter.test.AbstractIntegrationTest; diff --git a/agrirouter-api-tests/src/test/java/com/dke/data/agrirouter/test/messaging/rest/SetCapabilityServiceTest.java b/agrirouter-api-tests/src/test/java/com/dke/data/agrirouter/test/messaging/rest/SetCapabilityServiceTest.java index a597c47d..f94d72d9 100644 --- a/agrirouter-api-tests/src/test/java/com/dke/data/agrirouter/test/messaging/rest/SetCapabilityServiceTest.java +++ b/agrirouter-api-tests/src/test/java/com/dke/data/agrirouter/test/messaging/rest/SetCapabilityServiceTest.java @@ -2,7 +2,8 @@ import static com.dke.data.agrirouter.impl.messaging.rest.MessageFetcher.DEFAULT_INTERVAL; import static com.dke.data.agrirouter.impl.messaging.rest.MessageFetcher.MAX_TRIES_BEFORE_FAILURE; -import static com.dke.data.agrirouter.test.OnboardingResponseRepository.*; +import static com.dke.data.agrirouter.test.OnboardingResponseRepository.Identifier; +import static com.dke.data.agrirouter.test.OnboardingResponseRepository.read; import agrirouter.commons.MessageOuterClass; import agrirouter.request.payload.endpoint.Capabilities; @@ -12,9 +13,9 @@ import com.dke.data.agrirouter.api.dto.messaging.inner.Message; import com.dke.data.agrirouter.api.enums.TechnicalMessageType; import com.dke.data.agrirouter.api.env.QA; -import com.dke.data.agrirouter.api.service.messaging.FetchMessageService; -import com.dke.data.agrirouter.api.service.messaging.SetCapabilityService; import com.dke.data.agrirouter.api.service.messaging.encoding.DecodeMessageService; +import com.dke.data.agrirouter.api.service.messaging.http.FetchMessageService; +import com.dke.data.agrirouter.api.service.messaging.http.SetCapabilityService; import com.dke.data.agrirouter.api.service.parameters.SetCapabilitiesParameters; import com.dke.data.agrirouter.impl.messaging.encoding.DecodeMessageServiceImpl; import com.dke.data.agrirouter.impl.messaging.rest.FetchMessageServiceImpl; diff --git a/agrirouter-api-tests/src/test/java/com/dke/data/agrirouter/test/messaging/rest/SetSubscriptionServiceTest.java b/agrirouter-api-tests/src/test/java/com/dke/data/agrirouter/test/messaging/rest/SetSubscriptionServiceTest.java index c8487a99..f5308273 100644 --- a/agrirouter-api-tests/src/test/java/com/dke/data/agrirouter/test/messaging/rest/SetSubscriptionServiceTest.java +++ b/agrirouter-api-tests/src/test/java/com/dke/data/agrirouter/test/messaging/rest/SetSubscriptionServiceTest.java @@ -2,7 +2,8 @@ import static com.dke.data.agrirouter.impl.messaging.rest.MessageFetcher.DEFAULT_INTERVAL; import static com.dke.data.agrirouter.impl.messaging.rest.MessageFetcher.MAX_TRIES_BEFORE_FAILURE; -import static com.dke.data.agrirouter.test.OnboardingResponseRepository.*; +import static com.dke.data.agrirouter.test.OnboardingResponseRepository.Identifier; +import static com.dke.data.agrirouter.test.OnboardingResponseRepository.read; import agrirouter.commons.MessageOuterClass; import com.dke.data.agrirouter.api.cancellation.DefaultCancellationToken; @@ -11,9 +12,9 @@ import com.dke.data.agrirouter.api.dto.messaging.inner.Message; import com.dke.data.agrirouter.api.enums.TechnicalMessageType; import com.dke.data.agrirouter.api.env.QA; -import com.dke.data.agrirouter.api.service.messaging.FetchMessageService; -import com.dke.data.agrirouter.api.service.messaging.SetSubscriptionService; import com.dke.data.agrirouter.api.service.messaging.encoding.DecodeMessageService; +import com.dke.data.agrirouter.api.service.messaging.http.FetchMessageService; +import com.dke.data.agrirouter.api.service.messaging.http.SetSubscriptionService; import com.dke.data.agrirouter.api.service.parameters.SetSubscriptionParameters; import com.dke.data.agrirouter.impl.messaging.encoding.DecodeMessageServiceImpl; import com.dke.data.agrirouter.impl.messaging.rest.FetchMessageServiceImpl;