From 2dc55992ab5d0464dc4e4a35ac3c645dedd44012 Mon Sep 17 00:00:00 2001 From: Sascha Doemer Date: Thu, 9 Mar 2023 09:29:11 +0100 Subject: [PATCH 1/2] Remove assertions. Extract method. Define 0 as default value for the sequence number. Refactor encoding methods. Declare former method as deprecated since the name was not matching. --- .../parameters/base/AbstractParameterBase.kt | 2 +- .../impl/messaging/MessageEncoder.java | 828 +++++++++--------- .../mqtt/SetSubscriptionServiceImpl.java | 2 +- .../rest/SetSubscriptionServiceImpl.java | 4 +- 4 files changed, 408 insertions(+), 428 deletions(-) diff --git a/agrirouter-sdk-java-api/src/main/kotlin/com/dke/data/agrirouter/api/service/parameters/base/AbstractParameterBase.kt b/agrirouter-sdk-java-api/src/main/kotlin/com/dke/data/agrirouter/api/service/parameters/base/AbstractParameterBase.kt index ec100702..77ebfa94 100644 --- a/agrirouter-sdk-java-api/src/main/kotlin/com/dke/data/agrirouter/api/service/parameters/base/AbstractParameterBase.kt +++ b/agrirouter-sdk-java-api/src/main/kotlin/com/dke/data/agrirouter/api/service/parameters/base/AbstractParameterBase.kt @@ -6,6 +6,6 @@ abstract class AbstractParameterBase : DynamicAttributesStorage() { var teamsetContextId: String? = null - var sequenceNumber: Int = 1 + var sequenceNumber: Int = 0 } \ No newline at end of file diff --git a/agrirouter-sdk-java-impl/src/main/java/com/dke/data/agrirouter/impl/messaging/MessageEncoder.java b/agrirouter-sdk-java-impl/src/main/java/com/dke/data/agrirouter/impl/messaging/MessageEncoder.java index 1ad3db3a..4b8f86bc 100644 --- a/agrirouter-sdk-java-impl/src/main/java/com/dke/data/agrirouter/impl/messaging/MessageEncoder.java +++ b/agrirouter-sdk-java-impl/src/main/java/com/dke/data/agrirouter/impl/messaging/MessageEncoder.java @@ -8,6 +8,7 @@ import agrirouter.request.payload.endpoint.Capabilities; import agrirouter.request.payload.endpoint.SubscriptionOuterClass; import com.dke.data.agrirouter.api.dto.encoding.EncodedMessage; +import com.dke.data.agrirouter.api.dto.onboard.OnboardingResponse; import com.dke.data.agrirouter.api.enums.SystemMessageType; import com.dke.data.agrirouter.api.enums.TechnicalMessageType; import com.dke.data.agrirouter.api.service.HasLogger; @@ -15,441 +16,420 @@ import com.dke.data.agrirouter.api.service.parameters.*; import com.dke.data.agrirouter.api.util.TimestampUtil; import com.dke.data.agrirouter.impl.common.MessageIdService; + import java.util.Objects; public interface MessageEncoder extends HasLogger { - /** - * Encode a message to delete messages. - * - * @param parameters - - * @return - - */ - default EncodedMessage encode(DeleteMessageParameters parameters) { - assert parameters.getOnboardingResponse() != null; - - MessageHeaderParameters messageHeaderParameters = new MessageHeaderParameters(); - - final String applicationMessageID = - parameters.getApplicationMessageId() == null - ? MessageIdService.generateMessageId() - : parameters.getApplicationMessageId(); - messageHeaderParameters.setApplicationMessageId(Objects.requireNonNull(applicationMessageID)); - - final String teamsetContextId = - parameters.getTeamsetContextId() == null ? "" : parameters.getTeamsetContextId(); - messageHeaderParameters.setTeamSetContextId(Objects.requireNonNull(teamsetContextId)); - - messageHeaderParameters.setApplicationMessageSeqNo( - parameters.getSequenceNumber() != 0 - ? parameters.getSequenceNumber() - : SequenceNumberService.generateSequenceNumberForEndpoint( - parameters.getOnboardingResponse())); - messageHeaderParameters.setMetadata(MessageOuterClass.Metadata.newBuilder().build()); - - messageHeaderParameters.setTechnicalMessageType(SystemMessageType.DKE_FEED_DELETE); - messageHeaderParameters.setMode(Request.RequestEnvelope.Mode.DIRECT); - - FeedRequests.MessageDelete.Builder messageContent = FeedRequests.MessageDelete.newBuilder(); - if (parameters.getMessageIds() != null) { - messageContent.addAllMessageIds(parameters.getMessageIds()); + /** + * Encode a message to delete messages. + * + * @param parameters - + * @return - + */ + default EncodedMessage encode(DeleteMessageParameters parameters) { + MessageHeaderParameters messageHeaderParameters = new MessageHeaderParameters(); + + final String applicationMessageID = + parameters.getApplicationMessageId() == null + ? MessageIdService.generateMessageId() + : parameters.getApplicationMessageId(); + messageHeaderParameters.setApplicationMessageId(Objects.requireNonNull(applicationMessageID)); + + final String teamsetContextId = + parameters.getTeamsetContextId() == null ? "" : parameters.getTeamsetContextId(); + messageHeaderParameters.setTeamSetContextId(Objects.requireNonNull(teamsetContextId)); + + + setSequenceNumber(messageHeaderParameters, parameters.getSequenceNumber(), parameters.getOnboardingResponse()); + messageHeaderParameters.setMetadata(MessageOuterClass.Metadata.newBuilder().build()); + + messageHeaderParameters.setTechnicalMessageType(SystemMessageType.DKE_FEED_DELETE); + messageHeaderParameters.setMode(Request.RequestEnvelope.Mode.DIRECT); + + FeedRequests.MessageDelete.Builder messageContent = FeedRequests.MessageDelete.newBuilder(); + if (parameters.getMessageIds() != null) { + messageContent.addAllMessageIds(parameters.getMessageIds()); + } + if (parameters.getSenderIds() != null) { + messageContent.addAllSenders(parameters.getSenderIds()); + } + if (null != parameters.getSentFromInSeconds() || null != parameters.getSentToInSeconds()) { + FeedRequests.ValidityPeriod.Builder validityPeriod = FeedRequests.ValidityPeriod.newBuilder(); + if (null != parameters.getSentFromInSeconds()) { + validityPeriod.setSentFrom(new TimestampUtil().seconds(parameters.getSentFromInSeconds())); + } + if (null != parameters.getSentToInSeconds()) { + validityPeriod.setSentTo(new TimestampUtil().seconds(parameters.getSentToInSeconds())); + } + messageContent.setValidityPeriod(validityPeriod); + } + + PayloadParameters payloadParameters = new PayloadParameters(); + payloadParameters.setTypeUrl(SystemMessageType.DKE_FEED_DELETE.getTypeUrl()); + payloadParameters.setValue(messageContent.build().toByteString()); + + String encodedMessage = + this.getEncodeMessageService().encode(messageHeaderParameters, payloadParameters); + return new EncodedMessage(applicationMessageID, encodedMessage); } - if (parameters.getSenderIds() != null) { - messageContent.addAllSenders(parameters.getSenderIds()); + + /** + * Encode a message to list endpoints. + * + * @param parameters - + * @return - + */ + default EncodedMessage encode(ListEndpointsParameters parameters) { + MessageHeaderParameters messageHeaderParameters = new MessageHeaderParameters(); + + final String applicationMessageID = + parameters.getApplicationMessageId() == null + ? MessageIdService.generateMessageId() + : parameters.getApplicationMessageId(); + messageHeaderParameters.setApplicationMessageId(Objects.requireNonNull(applicationMessageID)); + messageHeaderParameters.setMetadata(MessageOuterClass.Metadata.newBuilder().build()); + + final String teamsetContextId = + parameters.getTeamsetContextId() == null ? "" : parameters.getTeamsetContextId(); + messageHeaderParameters.setTeamSetContextId(Objects.requireNonNull(teamsetContextId)); + + + setSequenceNumber(messageHeaderParameters, parameters.getSequenceNumber(), parameters.getOnboardingResponse()); + if (parameters.getUnfilteredList()) { + messageHeaderParameters.setTechnicalMessageType( + SystemMessageType.DKE_LIST_ENDPOINTS_UNFILTERED); + } else { + messageHeaderParameters.setTechnicalMessageType(SystemMessageType.DKE_LIST_ENDPOINTS); + } + messageHeaderParameters.setMode(Request.RequestEnvelope.Mode.DIRECT); + + Endpoints.ListEndpointsQuery.Builder messageContent = Endpoints.ListEndpointsQuery.newBuilder(); + messageContent.setDirection(Objects.requireNonNull(parameters.getDirection())); + messageContent.setTechnicalMessageType( + Objects.requireNonNull(parameters.getTechnicalMessageType()).getKey()); + + PayloadParameters payloadParameters = new PayloadParameters(); + payloadParameters.setTypeUrl(SystemMessageType.DKE_LIST_ENDPOINTS.getTypeUrl()); + payloadParameters.setValue(messageContent.build().toByteString()); + + String encodedMessage = + this.getEncodeMessageService().encode(messageHeaderParameters, payloadParameters); + + return new EncodedMessage(applicationMessageID, encodedMessage); } - if (null != parameters.getSentFromInSeconds() || null != parameters.getSentToInSeconds()) { - FeedRequests.ValidityPeriod.Builder validityPeriod = FeedRequests.ValidityPeriod.newBuilder(); - if (null != parameters.getSentFromInSeconds()) { - validityPeriod.setSentFrom(new TimestampUtil().seconds(parameters.getSentFromInSeconds())); - } - if (null != parameters.getSentToInSeconds()) { - validityPeriod.setSentTo(new TimestampUtil().seconds(parameters.getSentToInSeconds())); - } - messageContent.setValidityPeriod(validityPeriod); + + /** + * Encode a message to send a message confirmation. + * + * @param parameters - + * @return - + */ + default EncodedMessage encode(MessageConfirmationParameters parameters) { + MessageHeaderParameters messageHeaderParameters = new MessageHeaderParameters(); + + final String applicationMessageID = + parameters.getApplicationMessageId() == null + ? MessageIdService.generateMessageId() + : parameters.getApplicationMessageId(); + + messageHeaderParameters.setApplicationMessageId(Objects.requireNonNull(applicationMessageID)); + messageHeaderParameters.setMetadata(MessageOuterClass.Metadata.newBuilder().build()); + + final String teamsetContextId = + parameters.getTeamsetContextId() == null ? "" : parameters.getTeamsetContextId(); + messageHeaderParameters.setTeamSetContextId(Objects.requireNonNull(teamsetContextId)); + + setSequenceNumber(messageHeaderParameters, parameters.getSequenceNumber(), parameters.getOnboardingResponse()); + messageHeaderParameters.setTechnicalMessageType(SystemMessageType.DKE_FEED_CONFIRM); + messageHeaderParameters.setMode(Request.RequestEnvelope.Mode.DIRECT); + + FeedRequests.MessageConfirm.Builder messageContent = FeedRequests.MessageConfirm.newBuilder(); + messageContent.addAllMessageIds(Objects.requireNonNull(parameters.getMessageIds())); + + PayloadParameters payloadParameters = new PayloadParameters(); + payloadParameters.setTypeUrl(SystemMessageType.DKE_FEED_CONFIRM.getTypeUrl()); + payloadParameters.setValue(messageContent.build().toByteString()); + + String encodedMessage = + this.getEncodeMessageService().encode(messageHeaderParameters, payloadParameters); + return new EncodedMessage(applicationMessageID, encodedMessage); } - PayloadParameters payloadParameters = new PayloadParameters(); - payloadParameters.setTypeUrl(SystemMessageType.DKE_FEED_DELETE.getTypeUrl()); - payloadParameters.setValue(messageContent.build().toByteString()); - - String encodedMessage = - this.getEncodeMessageService().encode(messageHeaderParameters, payloadParameters); - return new EncodedMessage(applicationMessageID, encodedMessage); - } - - /** - * Encode a message to list endpoints. - * - * @param parameters - - * @return - - */ - default EncodedMessage encode(ListEndpointsParameters parameters) { - assert parameters.getOnboardingResponse() != null; - - MessageHeaderParameters messageHeaderParameters = new MessageHeaderParameters(); - - final String applicationMessageID = - parameters.getApplicationMessageId() == null - ? MessageIdService.generateMessageId() - : parameters.getApplicationMessageId(); - messageHeaderParameters.setApplicationMessageId(Objects.requireNonNull(applicationMessageID)); - messageHeaderParameters.setMetadata(MessageOuterClass.Metadata.newBuilder().build()); - - final String teamsetContextId = - parameters.getTeamsetContextId() == null ? "" : parameters.getTeamsetContextId(); - messageHeaderParameters.setTeamSetContextId(Objects.requireNonNull(teamsetContextId)); - - messageHeaderParameters.setApplicationMessageSeqNo( - parameters.getSequenceNumber() != 0 - ? parameters.getSequenceNumber() - : SequenceNumberService.generateSequenceNumberForEndpoint( - parameters.getOnboardingResponse())); - - if (parameters.getUnfilteredList()) { - messageHeaderParameters.setTechnicalMessageType( - SystemMessageType.DKE_LIST_ENDPOINTS_UNFILTERED); - } else { - messageHeaderParameters.setTechnicalMessageType(SystemMessageType.DKE_LIST_ENDPOINTS); + /** + * Encode a message to set capabilities. + * + * @param parameters - + * @return - + */ + default EncodedMessage encode(SetCapabilitiesParameters parameters) { + MessageHeaderParameters messageHeaderParameters = new MessageHeaderParameters(); + + final String applicationMessageID = + parameters.getApplicationMessageId() == null + ? MessageIdService.generateMessageId() + : parameters.getApplicationMessageId(); + + messageHeaderParameters.setApplicationMessageId(Objects.requireNonNull(applicationMessageID)); + messageHeaderParameters.setMetadata(MessageOuterClass.Metadata.newBuilder().build()); + + final String teamsetContextId = + parameters.getTeamsetContextId() == null ? "" : parameters.getTeamsetContextId(); + messageHeaderParameters.setTeamSetContextId(Objects.requireNonNull(teamsetContextId)); + + setSequenceNumber(messageHeaderParameters, parameters.getSequenceNumber(), parameters.getOnboardingResponse()); + messageHeaderParameters.setTechnicalMessageType(SystemMessageType.DKE_CAPABILITIES); + messageHeaderParameters.setMode(Request.RequestEnvelope.Mode.DIRECT); + + Capabilities.CapabilitySpecification.Builder builder = + Capabilities.CapabilitySpecification.newBuilder(); + builder.setAppCertificationId(Objects.requireNonNull(parameters.getApplicationId())); + builder.setAppCertificationVersionId( + Objects.requireNonNull(parameters.getCertificationVersionId())); + builder.setEnablePushNotifications(parameters.getEnablePushNotifications()); + + parameters.getCapabilitiesParameters(); + Objects.requireNonNull(parameters.getCapabilitiesParameters()) + .forEach( + p -> { + Capabilities.CapabilitySpecification.Capability.Builder capabilityBuilder = + Capabilities.CapabilitySpecification.Capability.newBuilder(); + capabilityBuilder.setTechnicalMessageType( + Objects.requireNonNull(p.getTechnicalMessageType()).getKey()); + capabilityBuilder.setDirection(Objects.requireNonNull(p.getDirection())); + Capabilities.CapabilitySpecification.Capability capability = + capabilityBuilder.build(); + builder.addCapabilities(capability); + }); + + PayloadParameters payloadParameters = new PayloadParameters(); + payloadParameters.setTypeUrl(SystemMessageType.DKE_CAPABILITIES.getTypeUrl()); + payloadParameters.setValue(builder.build().toByteString()); + + String encodedMessage = + this.getEncodeMessageService().encode(messageHeaderParameters, payloadParameters); + return new EncodedMessage(applicationMessageID, encodedMessage); } - messageHeaderParameters.setMode(Request.RequestEnvelope.Mode.DIRECT); - - Endpoints.ListEndpointsQuery.Builder messageContent = Endpoints.ListEndpointsQuery.newBuilder(); - messageContent.setDirection(Objects.requireNonNull(parameters.getDirection())); - messageContent.setTechnicalMessageType( - Objects.requireNonNull(parameters.getTechnicalMessageType()).getKey()); - - PayloadParameters payloadParameters = new PayloadParameters(); - payloadParameters.setTypeUrl(SystemMessageType.DKE_LIST_ENDPOINTS.getTypeUrl()); - payloadParameters.setValue(messageContent.build().toByteString()); - - String encodedMessage = - this.getEncodeMessageService().encode(messageHeaderParameters, payloadParameters); - - return new EncodedMessage(applicationMessageID, encodedMessage); - } - - /** - * Encode a message to send a message confirmation. - * - * @param parameters - - * @return - - */ - default EncodedMessage encode(MessageConfirmationParameters parameters) { - assert parameters.getOnboardingResponse() != null; - - MessageHeaderParameters messageHeaderParameters = new MessageHeaderParameters(); - - final String applicationMessageID = - parameters.getApplicationMessageId() == null - ? MessageIdService.generateMessageId() - : parameters.getApplicationMessageId(); - - messageHeaderParameters.setApplicationMessageId(Objects.requireNonNull(applicationMessageID)); - messageHeaderParameters.setMetadata(MessageOuterClass.Metadata.newBuilder().build()); - - final String teamsetContextId = - parameters.getTeamsetContextId() == null ? "" : parameters.getTeamsetContextId(); - messageHeaderParameters.setTeamSetContextId(Objects.requireNonNull(teamsetContextId)); - - messageHeaderParameters.setApplicationMessageSeqNo( - parameters.getSequenceNumber() != 0 - ? parameters.getSequenceNumber() - : SequenceNumberService.generateSequenceNumberForEndpoint( - parameters.getOnboardingResponse())); - messageHeaderParameters.setTechnicalMessageType(SystemMessageType.DKE_FEED_CONFIRM); - messageHeaderParameters.setMode(Request.RequestEnvelope.Mode.DIRECT); - - FeedRequests.MessageConfirm.Builder messageContent = FeedRequests.MessageConfirm.newBuilder(); - messageContent.addAllMessageIds(Objects.requireNonNull(parameters.getMessageIds())); - - PayloadParameters payloadParameters = new PayloadParameters(); - payloadParameters.setTypeUrl(SystemMessageType.DKE_FEED_CONFIRM.getTypeUrl()); - payloadParameters.setValue(messageContent.build().toByteString()); - - String encodedMessage = - this.getEncodeMessageService().encode(messageHeaderParameters, payloadParameters); - return new EncodedMessage(applicationMessageID, encodedMessage); - } - - /** - * Encode a message to set capabilities. - * - * @param parameters - - * @return - - */ - default EncodedMessage encode(SetCapabilitiesParameters parameters) { - assert parameters.getOnboardingResponse() != null; - - MessageHeaderParameters messageHeaderParameters = new MessageHeaderParameters(); - - final String applicationMessageID = - parameters.getApplicationMessageId() == null - ? MessageIdService.generateMessageId() - : parameters.getApplicationMessageId(); - - messageHeaderParameters.setApplicationMessageId(Objects.requireNonNull(applicationMessageID)); - messageHeaderParameters.setMetadata(MessageOuterClass.Metadata.newBuilder().build()); - - final String teamsetContextId = - parameters.getTeamsetContextId() == null ? "" : parameters.getTeamsetContextId(); - messageHeaderParameters.setTeamSetContextId(Objects.requireNonNull(teamsetContextId)); - - messageHeaderParameters.setApplicationMessageSeqNo( - parameters.getSequenceNumber() != 0 - ? parameters.getSequenceNumber() - : SequenceNumberService.generateSequenceNumberForEndpoint( - parameters.getOnboardingResponse())); - messageHeaderParameters.setTechnicalMessageType(SystemMessageType.DKE_CAPABILITIES); - messageHeaderParameters.setMode(Request.RequestEnvelope.Mode.DIRECT); - - Capabilities.CapabilitySpecification.Builder builder = - Capabilities.CapabilitySpecification.newBuilder(); - builder.setAppCertificationId(Objects.requireNonNull(parameters.getApplicationId())); - builder.setAppCertificationVersionId( - Objects.requireNonNull(parameters.getCertificationVersionId())); - builder.setEnablePushNotifications(parameters.getEnablePushNotifications()); - - parameters.getCapabilitiesParameters(); - Objects.requireNonNull(parameters.getCapabilitiesParameters()) - .forEach( - p -> { - Capabilities.CapabilitySpecification.Capability.Builder capabilityBuilder = - Capabilities.CapabilitySpecification.Capability.newBuilder(); - capabilityBuilder.setTechnicalMessageType( - Objects.requireNonNull(p.getTechnicalMessageType()).getKey()); - capabilityBuilder.setDirection(Objects.requireNonNull(p.getDirection())); - Capabilities.CapabilitySpecification.Capability capability = - capabilityBuilder.build(); - builder.addCapabilities(capability); - }); - - PayloadParameters payloadParameters = new PayloadParameters(); - payloadParameters.setTypeUrl(SystemMessageType.DKE_CAPABILITIES.getTypeUrl()); - payloadParameters.setValue(builder.build().toByteString()); - - String encodedMessage = - this.getEncodeMessageService().encode(messageHeaderParameters, payloadParameters); - return new EncodedMessage(applicationMessageID, encodedMessage); - } - - /** - * Encode a message to set a subscription. - * - * @param parameters - - * @return - - */ - default EncodedMessage encodeMessage(SetSubscriptionParameters parameters) { - assert parameters.getOnboardingResponse() != null; - - MessageHeaderParameters messageHeaderParameters = new MessageHeaderParameters(); - - final String applicationMessageID = - parameters.getApplicationMessageId() == null - ? MessageIdService.generateMessageId() - : parameters.getApplicationMessageId(); - - messageHeaderParameters.setApplicationMessageId(Objects.requireNonNull(applicationMessageID)); - messageHeaderParameters.setMetadata(MessageOuterClass.Metadata.newBuilder().build()); - - final String teamsetContextId = - parameters.getTeamsetContextId() == null ? "" : parameters.getTeamsetContextId(); - messageHeaderParameters.setTeamSetContextId(Objects.requireNonNull(teamsetContextId)); - - messageHeaderParameters.setApplicationMessageSeqNo( - parameters.getSequenceNumber() != 0 - ? parameters.getSequenceNumber() - : SequenceNumberService.generateSequenceNumberForEndpoint( - parameters.getOnboardingResponse())); - messageHeaderParameters.setTechnicalMessageType(SystemMessageType.DKE_SUBSCRIPTION); - messageHeaderParameters.setMode(Request.RequestEnvelope.Mode.DIRECT); - - SubscriptionOuterClass.Subscription.Builder messageContent = - SubscriptionOuterClass.Subscription.newBuilder(); - parameters - .getSubscriptions() - .forEach( - parameter -> { - SubscriptionOuterClass.Subscription.MessageTypeSubscriptionItem.Builder - technicalMessageType = - SubscriptionOuterClass.Subscription.MessageTypeSubscriptionItem.newBuilder(); - technicalMessageType.setTechnicalMessageType( - Objects.requireNonNull(parameter.getTechnicalMessageType()).getKey()); - technicalMessageType.addAllDdis(parameter.getDdis()); - technicalMessageType.setPosition(parameter.getPosition()); - messageContent.addTechnicalMessageTypes(technicalMessageType); - }); - - PayloadParameters payloadParameters = new PayloadParameters(); - payloadParameters.setTypeUrl(SystemMessageType.DKE_SUBSCRIPTION.getTypeUrl()); - payloadParameters.setValue(messageContent.build().toByteString()); - - String encodedMessage = - this.getEncodeMessageService().encode(messageHeaderParameters, payloadParameters); - return new EncodedMessage(applicationMessageID, encodedMessage); - } - - /** - * Encode a message to query messages. - * - * @param parameters - - * @return - - */ - default EncodedMessage encode( - TechnicalMessageType technicalMessageType, MessageQueryParameters parameters) { - assert parameters.getOnboardingResponse() != null; - - this.logMethodBegin(parameters); - - this.getNativeLogger().trace("Build message header parameters."); - MessageHeaderParameters messageHeaderParameters = new MessageHeaderParameters(); - - final String applicationMessageID = - parameters.getApplicationMessageId() == null - ? MessageIdService.generateMessageId() - : parameters.getApplicationMessageId(); - - messageHeaderParameters.setApplicationMessageId(Objects.requireNonNull(applicationMessageID)); - messageHeaderParameters.setMetadata(MessageOuterClass.Metadata.newBuilder().build()); - - final String teamsetContextId = - parameters.getTeamsetContextId() == null ? "" : parameters.getTeamsetContextId(); - messageHeaderParameters.setTeamSetContextId(Objects.requireNonNull(teamsetContextId)); - messageHeaderParameters.setApplicationMessageSeqNo( - parameters.getSequenceNumber() != 0 - ? parameters.getSequenceNumber() - : SequenceNumberService.generateSequenceNumberForEndpoint( - parameters.getOnboardingResponse())); - - messageHeaderParameters.setTechnicalMessageType(technicalMessageType); - messageHeaderParameters.setMode(Request.RequestEnvelope.Mode.DIRECT); - - this.getNativeLogger().trace("Build message query parameters."); - FeedRequests.MessageQuery.Builder messageContent = FeedRequests.MessageQuery.newBuilder(); - if (parameters.getMessageIds() != null) { - messageContent.addAllMessageIds(parameters.getMessageIds()); + + static void setSequenceNumber(MessageHeaderParameters messageHeaderParameters, long sequenceNumber, OnboardingResponse onboardingResponse) { + if (sequenceNumber == 0 && onboardingResponse == null) { + throw new IllegalArgumentException("Either sequence number or onboarding response must be set."); + } + + messageHeaderParameters.setApplicationMessageSeqNo( + sequenceNumber != 0 + ? sequenceNumber + : SequenceNumberService.generateSequenceNumberForEndpoint( + onboardingResponse)); } - if (parameters.getSenderIds() != null) { - messageContent.addAllSenders(parameters.getSenderIds()); + + /** + * Encode a message to set a subscription. + * + * @param parameters - + * @return - + */ + @Deprecated + default EncodedMessage encodeMessage(SetSubscriptionParameters parameters) { + return encode(parameters); } - if (null != parameters.getSentFromInSeconds() || null != parameters.getSentToInSeconds()) { - FeedRequests.ValidityPeriod.Builder validityPeriod = FeedRequests.ValidityPeriod.newBuilder(); - if (null != parameters.getSentFromInSeconds()) { - validityPeriod.setSentFrom(new TimestampUtil().seconds(parameters.getSentFromInSeconds())); - } - if (null != parameters.getSentToInSeconds()) { - validityPeriod.setSentTo(new TimestampUtil().seconds(parameters.getSentToInSeconds())); - } - messageContent.setValidityPeriod(validityPeriod); + + /** + * Encode a message to set a subscription. + * + * @param parameters - + * @return - + */ + default EncodedMessage encode(SetSubscriptionParameters parameters) { + assert parameters.getOnboardingResponse() != null; + MessageHeaderParameters messageHeaderParameters = new MessageHeaderParameters(); + + final String applicationMessageID = + parameters.getApplicationMessageId() == null + ? MessageIdService.generateMessageId() + : parameters.getApplicationMessageId(); + + messageHeaderParameters.setApplicationMessageId(Objects.requireNonNull(applicationMessageID)); + messageHeaderParameters.setMetadata(MessageOuterClass.Metadata.newBuilder().build()); + + final String teamsetContextId = + parameters.getTeamsetContextId() == null ? "" : parameters.getTeamsetContextId(); + messageHeaderParameters.setTeamSetContextId(Objects.requireNonNull(teamsetContextId)); + + + setSequenceNumber(messageHeaderParameters, parameters.getSequenceNumber(), parameters.getOnboardingResponse()); + messageHeaderParameters.setTechnicalMessageType(SystemMessageType.DKE_SUBSCRIPTION); + messageHeaderParameters.setMode(Request.RequestEnvelope.Mode.DIRECT); + + SubscriptionOuterClass.Subscription.Builder messageContent = + SubscriptionOuterClass.Subscription.newBuilder(); + parameters + .getSubscriptions() + .forEach( + parameter -> { + SubscriptionOuterClass.Subscription.MessageTypeSubscriptionItem.Builder + technicalMessageType = + SubscriptionOuterClass.Subscription.MessageTypeSubscriptionItem.newBuilder(); + technicalMessageType.setTechnicalMessageType( + Objects.requireNonNull(parameter.getTechnicalMessageType()).getKey()); + technicalMessageType.addAllDdis(parameter.getDdis()); + technicalMessageType.setPosition(parameter.getPosition()); + messageContent.addTechnicalMessageTypes(technicalMessageType); + }); + + PayloadParameters payloadParameters = new PayloadParameters(); + payloadParameters.setTypeUrl(SystemMessageType.DKE_SUBSCRIPTION.getTypeUrl()); + payloadParameters.setValue(messageContent.build().toByteString()); + + String encodedMessage = + this.getEncodeMessageService().encode(messageHeaderParameters, payloadParameters); + return new EncodedMessage(applicationMessageID, encodedMessage); + } + + /** + * Encode a message to query messages. + * + * @param parameters - + * @return - + */ + default EncodedMessage encode( + TechnicalMessageType technicalMessageType, MessageQueryParameters parameters) { + this.logMethodBegin(parameters); + this.getNativeLogger().trace("Build message header parameters."); + MessageHeaderParameters messageHeaderParameters = new MessageHeaderParameters(); + + final String applicationMessageID = + parameters.getApplicationMessageId() == null + ? MessageIdService.generateMessageId() + : parameters.getApplicationMessageId(); + + messageHeaderParameters.setApplicationMessageId(Objects.requireNonNull(applicationMessageID)); + messageHeaderParameters.setMetadata(MessageOuterClass.Metadata.newBuilder().build()); + + final String teamsetContextId = + parameters.getTeamsetContextId() == null ? "" : parameters.getTeamsetContextId(); + messageHeaderParameters.setTeamSetContextId(Objects.requireNonNull(teamsetContextId)); + + setSequenceNumber(messageHeaderParameters, parameters.getSequenceNumber(), parameters.getOnboardingResponse()); + messageHeaderParameters.setTechnicalMessageType(technicalMessageType); + messageHeaderParameters.setMode(Request.RequestEnvelope.Mode.DIRECT); + + this.getNativeLogger().trace("Build message query parameters."); + FeedRequests.MessageQuery.Builder messageContent = FeedRequests.MessageQuery.newBuilder(); + if (parameters.getMessageIds() != null) { + messageContent.addAllMessageIds(parameters.getMessageIds()); + } + if (parameters.getSenderIds() != null) { + messageContent.addAllSenders(parameters.getSenderIds()); + } + if (null != parameters.getSentFromInSeconds() || null != parameters.getSentToInSeconds()) { + FeedRequests.ValidityPeriod.Builder validityPeriod = FeedRequests.ValidityPeriod.newBuilder(); + if (null != parameters.getSentFromInSeconds()) { + validityPeriod.setSentFrom(new TimestampUtil().seconds(parameters.getSentFromInSeconds())); + } + if (null != parameters.getSentToInSeconds()) { + validityPeriod.setSentTo(new TimestampUtil().seconds(parameters.getSentToInSeconds())); + } + messageContent.setValidityPeriod(validityPeriod); + } + + this.getNativeLogger().trace("Build message payload parameters."); + PayloadParameters payloadParameters = new PayloadParameters(); + payloadParameters.setTypeUrl(technicalMessageType.getTypeUrl()); + payloadParameters.setValue(messageContent.build().toByteString()); + + this.getNativeLogger().trace("Encode message."); + String encodedMessage = + this.getEncodeMessageService().encode(messageHeaderParameters, payloadParameters); + + this.logMethodEnd(encodedMessage); + return new EncodedMessage(applicationMessageID, encodedMessage); + } + + /** + * Encode message for cloud onboarding of virtual CUs. + * + * @param parameters - + * @return - + */ + default EncodedMessage encode(CloudOnboardingParameters parameters) { + final String applicationMessageID = + parameters.getApplicationMessageId() == null + ? MessageIdService.generateMessageId() + : parameters.getApplicationMessageId(); + + final String teamsetContextId = + parameters.getTeamsetContextId() == null ? "" : parameters.getTeamsetContextId(); + + MessageHeaderParameters messageHeaderParameters = new MessageHeaderParameters(); + messageHeaderParameters.setApplicationMessageId(applicationMessageID); + messageHeaderParameters.setTeamSetContextId(teamsetContextId); + + setSequenceNumber(messageHeaderParameters, parameters.getSequenceNumber(), parameters.getOnboardingResponse()); + messageHeaderParameters.setMetadata(MessageOuterClass.Metadata.newBuilder().build()); + messageHeaderParameters.setTechnicalMessageType(SystemMessageType.DKE_CLOUD_ONBOARD_ENDPOINTS); + messageHeaderParameters.setMode(Request.RequestEnvelope.Mode.DIRECT); + + CloudVirtualizedAppRegistration.OnboardingRequest.Builder messageContent = + CloudVirtualizedAppRegistration.OnboardingRequest.newBuilder(); + Objects.requireNonNull(parameters.getEndpointDetails()) + .forEach( + p -> { + CloudVirtualizedAppRegistration.OnboardingRequest.EndpointRegistrationDetails.Builder + builder = + CloudVirtualizedAppRegistration.OnboardingRequest.EndpointRegistrationDetails + .newBuilder(); + builder.setId(Objects.requireNonNull(p.getEndpointId())); + builder.setName(Objects.requireNonNull(p.getEndpointName())); + messageContent.addOnboardingRequests(builder.build()); + }); + + PayloadParameters payloadParameters = new PayloadParameters(); + payloadParameters.setTypeUrl(SystemMessageType.DKE_CLOUD_ONBOARD_ENDPOINTS.getTypeUrl()); + payloadParameters.setValue(messageContent.build().toByteString()); + + String encodedMessage = + this.getEncodeMessageService().encode(messageHeaderParameters, payloadParameters); + return new EncodedMessage(applicationMessageID, encodedMessage); + } + + /** + * Encode cloud offboarding message. + * + * @param parameters - + * @return - + */ + default EncodedMessage encode(CloudOffboardingParameters parameters) { + final String applicationMessageID = + parameters.getApplicationMessageId() == null + ? MessageIdService.generateMessageId() + : parameters.getApplicationMessageId(); + + CloudVirtualizedAppRegistration.OffboardingRequest.Builder messageContent = + CloudVirtualizedAppRegistration.OffboardingRequest.newBuilder(); + messageContent.addAllEndpoints(Objects.requireNonNull(parameters.getEndpointIds())); + + MessageHeaderParameters messageHeaderParameters = new MessageHeaderParameters(); + messageHeaderParameters.setApplicationMessageId(applicationMessageID); + messageHeaderParameters.setTechnicalMessageType(SystemMessageType.DKE_CLOUD_OFFBOARD_ENDPOINTS); + messageHeaderParameters.setMode(Request.RequestEnvelope.Mode.DIRECT); + messageHeaderParameters.setMetadata(MessageOuterClass.Metadata.newBuilder().build()); + + setSequenceNumber(messageHeaderParameters, parameters.getSequenceNumber(), parameters.getOnboardingResponse()); + PayloadParameters payloadParameters = new PayloadParameters(); + payloadParameters.setTypeUrl(SystemMessageType.DKE_CLOUD_OFFBOARD_ENDPOINTS.getTypeUrl()); + + payloadParameters.setValue(messageContent.build().toByteString()); + + String encodedMessage = + this.getEncodeMessageService().encode(messageHeaderParameters, payloadParameters); + return new EncodedMessage(applicationMessageID, encodedMessage); } - this.getNativeLogger().trace("Build message payload parameters."); - PayloadParameters payloadParameters = new PayloadParameters(); - payloadParameters.setTypeUrl(technicalMessageType.getTypeUrl()); - payloadParameters.setValue(messageContent.build().toByteString()); - - this.getNativeLogger().trace("Encode message."); - String encodedMessage = - this.getEncodeMessageService().encode(messageHeaderParameters, payloadParameters); - - this.logMethodEnd(encodedMessage); - return new EncodedMessage(applicationMessageID, encodedMessage); - } - - /** - * Encode message for cloud onboarding of virtual CUs. - * - * @param parameters - - * @return - - */ - default EncodedMessage encode(CloudOnboardingParameters parameters) { - assert parameters.getOnboardingResponse() != null; - - final String applicationMessageID = - parameters.getApplicationMessageId() == null - ? MessageIdService.generateMessageId() - : parameters.getApplicationMessageId(); - - final String teamsetContextId = - parameters.getTeamsetContextId() == null ? "" : parameters.getTeamsetContextId(); - - MessageHeaderParameters messageHeaderParameters = new MessageHeaderParameters(); - messageHeaderParameters.setApplicationMessageId(applicationMessageID); - messageHeaderParameters.setTeamSetContextId(teamsetContextId); - messageHeaderParameters.setApplicationMessageSeqNo( - parameters.getSequenceNumber() != 0 - ? parameters.getSequenceNumber() - : SequenceNumberService.generateSequenceNumberForEndpoint( - parameters.getOnboardingResponse())); - messageHeaderParameters.setMetadata(MessageOuterClass.Metadata.newBuilder().build()); - messageHeaderParameters.setTechnicalMessageType(SystemMessageType.DKE_CLOUD_ONBOARD_ENDPOINTS); - messageHeaderParameters.setMode(Request.RequestEnvelope.Mode.DIRECT); - - CloudVirtualizedAppRegistration.OnboardingRequest.Builder messageContent = - CloudVirtualizedAppRegistration.OnboardingRequest.newBuilder(); - Objects.requireNonNull(parameters.getEndpointDetails()) - .forEach( - p -> { - CloudVirtualizedAppRegistration.OnboardingRequest.EndpointRegistrationDetails.Builder - builder = - CloudVirtualizedAppRegistration.OnboardingRequest.EndpointRegistrationDetails - .newBuilder(); - builder.setId(Objects.requireNonNull(p.getEndpointId())); - builder.setName(Objects.requireNonNull(p.getEndpointName())); - messageContent.addOnboardingRequests(builder.build()); - }); - - PayloadParameters payloadParameters = new PayloadParameters(); - payloadParameters.setTypeUrl(SystemMessageType.DKE_CLOUD_ONBOARD_ENDPOINTS.getTypeUrl()); - payloadParameters.setValue(messageContent.build().toByteString()); - - String encodedMessage = - this.getEncodeMessageService().encode(messageHeaderParameters, payloadParameters); - return new EncodedMessage(applicationMessageID, encodedMessage); - } - - /** - * Encode cloud offboarding message. - * - * @param parameters - - * @return - - */ - default EncodedMessage encode(CloudOffboardingParameters parameters) { - assert parameters.getOnboardingResponse() != null; - - final String applicationMessageID = - parameters.getApplicationMessageId() == null - ? MessageIdService.generateMessageId() - : parameters.getApplicationMessageId(); - - CloudVirtualizedAppRegistration.OffboardingRequest.Builder messageContent = - CloudVirtualizedAppRegistration.OffboardingRequest.newBuilder(); - messageContent.addAllEndpoints(Objects.requireNonNull(parameters.getEndpointIds())); - - MessageHeaderParameters messageHeaderParameters = new MessageHeaderParameters(); - messageHeaderParameters.setApplicationMessageId(applicationMessageID); - messageHeaderParameters.setTechnicalMessageType(SystemMessageType.DKE_CLOUD_OFFBOARD_ENDPOINTS); - messageHeaderParameters.setMode(Request.RequestEnvelope.Mode.DIRECT); - messageHeaderParameters.setMetadata(MessageOuterClass.Metadata.newBuilder().build()); - messageHeaderParameters.setApplicationMessageSeqNo( - parameters.getSequenceNumber() != 0 - ? parameters.getSequenceNumber() - : SequenceNumberService.generateSequenceNumberForEndpoint( - parameters.getOnboardingResponse())); - - PayloadParameters payloadParameters = new PayloadParameters(); - payloadParameters.setTypeUrl(SystemMessageType.DKE_CLOUD_OFFBOARD_ENDPOINTS.getTypeUrl()); - - payloadParameters.setValue(messageContent.build().toByteString()); - - String encodedMessage = - this.getEncodeMessageService().encode(messageHeaderParameters, payloadParameters); - return new EncodedMessage(applicationMessageID, encodedMessage); - } - - /** - * Get the service to encode messages. - * - * @return - - */ - EncodeMessageService getEncodeMessageService(); + /** + * Get the service to encode messages. + * + * @return - + */ + EncodeMessageService getEncodeMessageService(); } diff --git a/agrirouter-sdk-java-impl/src/main/java/com/dke/data/agrirouter/impl/messaging/mqtt/SetSubscriptionServiceImpl.java b/agrirouter-sdk-java-impl/src/main/java/com/dke/data/agrirouter/impl/messaging/mqtt/SetSubscriptionServiceImpl.java index 4f739a48..7cffa395 100644 --- a/agrirouter-sdk-java-impl/src/main/java/com/dke/data/agrirouter/impl/messaging/mqtt/SetSubscriptionServiceImpl.java +++ b/agrirouter-sdk-java-impl/src/main/java/com/dke/data/agrirouter/impl/messaging/mqtt/SetSubscriptionServiceImpl.java @@ -32,7 +32,7 @@ public SetSubscriptionServiceImpl(IMqttClient mqttClient) { public String send(SetSubscriptionParameters parameters) { parameters.validate(); try { - EncodedMessage encodedMessage = this.encodeMessage(parameters); + EncodedMessage encodedMessage = this.encode(parameters); SendMessageParameters sendMessageParameters = new SendMessageParameters(); sendMessageParameters.setOnboardingResponse(parameters.getOnboardingResponse()); sendMessageParameters.setEncodedMessages( diff --git a/agrirouter-sdk-java-impl/src/main/java/com/dke/data/agrirouter/impl/messaging/rest/SetSubscriptionServiceImpl.java b/agrirouter-sdk-java-impl/src/main/java/com/dke/data/agrirouter/impl/messaging/rest/SetSubscriptionServiceImpl.java index 59dcc298..3aae0fb1 100644 --- a/agrirouter-sdk-java-impl/src/main/java/com/dke/data/agrirouter/impl/messaging/rest/SetSubscriptionServiceImpl.java +++ b/agrirouter-sdk-java-impl/src/main/java/com/dke/data/agrirouter/impl/messaging/rest/SetSubscriptionServiceImpl.java @@ -27,7 +27,7 @@ public SetSubscriptionServiceImpl(Environment environment) { @Override public String send(SetSubscriptionParameters parameters) { parameters.validate(); - EncodedMessage encodedMessage = this.encodeMessage(parameters); + EncodedMessage encodedMessage = this.encode(parameters); SendMessageParameters sendMessageParameters = new SendMessageParameters(); sendMessageParameters.setOnboardingResponse(parameters.getOnboardingResponse()); sendMessageParameters.setEncodedMessages( @@ -40,7 +40,7 @@ public String send(SetSubscriptionParameters parameters) { @Override public HttpAsyncMessageSendingResult sendAsync(SetSubscriptionParameters parameters) { parameters.validate(); - EncodedMessage encodedMessage = this.encodeMessage(parameters); + EncodedMessage encodedMessage = this.encode(parameters); SendMessageParameters sendMessageParameters = new SendMessageParameters(); sendMessageParameters.setOnboardingResponse(parameters.getOnboardingResponse()); sendMessageParameters.setEncodedMessages( From c97d0cceb3a8417f7245a50a116772d5e659b7fb Mon Sep 17 00:00:00 2001 From: Sascha Doemer Date: Thu, 9 Mar 2023 10:10:14 +0100 Subject: [PATCH 2/2] Format files after refactoring. Re-create onboarding responses for endpoints. Update fixture to use static endpoint IDs. --- .../impl/messaging/MessageEncoder.java | 825 +++++++++--------- .../encoding/EncodeMessageServiceImpl.java | 5 +- .../farming-software-deactivated.json | 2 +- .../farming-software.json | 2 +- .../fixture/CommunicationUnitFixture.java | 1 - .../test/fixture/FarmingSoftwareFixture.java | 12 +- 6 files changed, 438 insertions(+), 409 deletions(-) diff --git a/agrirouter-sdk-java-impl/src/main/java/com/dke/data/agrirouter/impl/messaging/MessageEncoder.java b/agrirouter-sdk-java-impl/src/main/java/com/dke/data/agrirouter/impl/messaging/MessageEncoder.java index 4b8f86bc..c7fad4f3 100644 --- a/agrirouter-sdk-java-impl/src/main/java/com/dke/data/agrirouter/impl/messaging/MessageEncoder.java +++ b/agrirouter-sdk-java-impl/src/main/java/com/dke/data/agrirouter/impl/messaging/MessageEncoder.java @@ -16,420 +16,443 @@ import com.dke.data.agrirouter.api.service.parameters.*; import com.dke.data.agrirouter.api.util.TimestampUtil; import com.dke.data.agrirouter.impl.common.MessageIdService; - import java.util.Objects; public interface MessageEncoder extends HasLogger { - /** - * Encode a message to delete messages. - * - * @param parameters - - * @return - - */ - default EncodedMessage encode(DeleteMessageParameters parameters) { - MessageHeaderParameters messageHeaderParameters = new MessageHeaderParameters(); - - final String applicationMessageID = - parameters.getApplicationMessageId() == null - ? MessageIdService.generateMessageId() - : parameters.getApplicationMessageId(); - messageHeaderParameters.setApplicationMessageId(Objects.requireNonNull(applicationMessageID)); - - final String teamsetContextId = - parameters.getTeamsetContextId() == null ? "" : parameters.getTeamsetContextId(); - messageHeaderParameters.setTeamSetContextId(Objects.requireNonNull(teamsetContextId)); - - - setSequenceNumber(messageHeaderParameters, parameters.getSequenceNumber(), parameters.getOnboardingResponse()); - messageHeaderParameters.setMetadata(MessageOuterClass.Metadata.newBuilder().build()); - - messageHeaderParameters.setTechnicalMessageType(SystemMessageType.DKE_FEED_DELETE); - messageHeaderParameters.setMode(Request.RequestEnvelope.Mode.DIRECT); - - FeedRequests.MessageDelete.Builder messageContent = FeedRequests.MessageDelete.newBuilder(); - if (parameters.getMessageIds() != null) { - messageContent.addAllMessageIds(parameters.getMessageIds()); - } - if (parameters.getSenderIds() != null) { - messageContent.addAllSenders(parameters.getSenderIds()); - } - if (null != parameters.getSentFromInSeconds() || null != parameters.getSentToInSeconds()) { - FeedRequests.ValidityPeriod.Builder validityPeriod = FeedRequests.ValidityPeriod.newBuilder(); - if (null != parameters.getSentFromInSeconds()) { - validityPeriod.setSentFrom(new TimestampUtil().seconds(parameters.getSentFromInSeconds())); - } - if (null != parameters.getSentToInSeconds()) { - validityPeriod.setSentTo(new TimestampUtil().seconds(parameters.getSentToInSeconds())); - } - messageContent.setValidityPeriod(validityPeriod); - } - - PayloadParameters payloadParameters = new PayloadParameters(); - payloadParameters.setTypeUrl(SystemMessageType.DKE_FEED_DELETE.getTypeUrl()); - payloadParameters.setValue(messageContent.build().toByteString()); - - String encodedMessage = - this.getEncodeMessageService().encode(messageHeaderParameters, payloadParameters); - return new EncodedMessage(applicationMessageID, encodedMessage); + /** + * Encode a message to delete messages. + * + * @param parameters - + * @return - + */ + default EncodedMessage encode(DeleteMessageParameters parameters) { + MessageHeaderParameters messageHeaderParameters = new MessageHeaderParameters(); + + final String applicationMessageID = + parameters.getApplicationMessageId() == null + ? MessageIdService.generateMessageId() + : parameters.getApplicationMessageId(); + messageHeaderParameters.setApplicationMessageId(Objects.requireNonNull(applicationMessageID)); + + final String teamsetContextId = + parameters.getTeamsetContextId() == null ? "" : parameters.getTeamsetContextId(); + messageHeaderParameters.setTeamSetContextId(Objects.requireNonNull(teamsetContextId)); + + setSequenceNumber( + messageHeaderParameters, + parameters.getSequenceNumber(), + parameters.getOnboardingResponse()); + messageHeaderParameters.setMetadata(MessageOuterClass.Metadata.newBuilder().build()); + + messageHeaderParameters.setTechnicalMessageType(SystemMessageType.DKE_FEED_DELETE); + messageHeaderParameters.setMode(Request.RequestEnvelope.Mode.DIRECT); + + FeedRequests.MessageDelete.Builder messageContent = FeedRequests.MessageDelete.newBuilder(); + if (parameters.getMessageIds() != null) { + messageContent.addAllMessageIds(parameters.getMessageIds()); } - - /** - * Encode a message to list endpoints. - * - * @param parameters - - * @return - - */ - default EncodedMessage encode(ListEndpointsParameters parameters) { - MessageHeaderParameters messageHeaderParameters = new MessageHeaderParameters(); - - final String applicationMessageID = - parameters.getApplicationMessageId() == null - ? MessageIdService.generateMessageId() - : parameters.getApplicationMessageId(); - messageHeaderParameters.setApplicationMessageId(Objects.requireNonNull(applicationMessageID)); - messageHeaderParameters.setMetadata(MessageOuterClass.Metadata.newBuilder().build()); - - final String teamsetContextId = - parameters.getTeamsetContextId() == null ? "" : parameters.getTeamsetContextId(); - messageHeaderParameters.setTeamSetContextId(Objects.requireNonNull(teamsetContextId)); - - - setSequenceNumber(messageHeaderParameters, parameters.getSequenceNumber(), parameters.getOnboardingResponse()); - if (parameters.getUnfilteredList()) { - messageHeaderParameters.setTechnicalMessageType( - SystemMessageType.DKE_LIST_ENDPOINTS_UNFILTERED); - } else { - messageHeaderParameters.setTechnicalMessageType(SystemMessageType.DKE_LIST_ENDPOINTS); - } - messageHeaderParameters.setMode(Request.RequestEnvelope.Mode.DIRECT); - - Endpoints.ListEndpointsQuery.Builder messageContent = Endpoints.ListEndpointsQuery.newBuilder(); - messageContent.setDirection(Objects.requireNonNull(parameters.getDirection())); - messageContent.setTechnicalMessageType( - Objects.requireNonNull(parameters.getTechnicalMessageType()).getKey()); - - PayloadParameters payloadParameters = new PayloadParameters(); - payloadParameters.setTypeUrl(SystemMessageType.DKE_LIST_ENDPOINTS.getTypeUrl()); - payloadParameters.setValue(messageContent.build().toByteString()); - - String encodedMessage = - this.getEncodeMessageService().encode(messageHeaderParameters, payloadParameters); - - return new EncodedMessage(applicationMessageID, encodedMessage); + if (parameters.getSenderIds() != null) { + messageContent.addAllSenders(parameters.getSenderIds()); } - - /** - * Encode a message to send a message confirmation. - * - * @param parameters - - * @return - - */ - default EncodedMessage encode(MessageConfirmationParameters parameters) { - MessageHeaderParameters messageHeaderParameters = new MessageHeaderParameters(); - - final String applicationMessageID = - parameters.getApplicationMessageId() == null - ? MessageIdService.generateMessageId() - : parameters.getApplicationMessageId(); - - messageHeaderParameters.setApplicationMessageId(Objects.requireNonNull(applicationMessageID)); - messageHeaderParameters.setMetadata(MessageOuterClass.Metadata.newBuilder().build()); - - final String teamsetContextId = - parameters.getTeamsetContextId() == null ? "" : parameters.getTeamsetContextId(); - messageHeaderParameters.setTeamSetContextId(Objects.requireNonNull(teamsetContextId)); - - setSequenceNumber(messageHeaderParameters, parameters.getSequenceNumber(), parameters.getOnboardingResponse()); - messageHeaderParameters.setTechnicalMessageType(SystemMessageType.DKE_FEED_CONFIRM); - messageHeaderParameters.setMode(Request.RequestEnvelope.Mode.DIRECT); - - FeedRequests.MessageConfirm.Builder messageContent = FeedRequests.MessageConfirm.newBuilder(); - messageContent.addAllMessageIds(Objects.requireNonNull(parameters.getMessageIds())); - - PayloadParameters payloadParameters = new PayloadParameters(); - payloadParameters.setTypeUrl(SystemMessageType.DKE_FEED_CONFIRM.getTypeUrl()); - payloadParameters.setValue(messageContent.build().toByteString()); - - String encodedMessage = - this.getEncodeMessageService().encode(messageHeaderParameters, payloadParameters); - return new EncodedMessage(applicationMessageID, encodedMessage); + if (null != parameters.getSentFromInSeconds() || null != parameters.getSentToInSeconds()) { + FeedRequests.ValidityPeriod.Builder validityPeriod = FeedRequests.ValidityPeriod.newBuilder(); + if (null != parameters.getSentFromInSeconds()) { + validityPeriod.setSentFrom(new TimestampUtil().seconds(parameters.getSentFromInSeconds())); + } + if (null != parameters.getSentToInSeconds()) { + validityPeriod.setSentTo(new TimestampUtil().seconds(parameters.getSentToInSeconds())); + } + messageContent.setValidityPeriod(validityPeriod); } - /** - * Encode a message to set capabilities. - * - * @param parameters - - * @return - - */ - default EncodedMessage encode(SetCapabilitiesParameters parameters) { - MessageHeaderParameters messageHeaderParameters = new MessageHeaderParameters(); - - final String applicationMessageID = - parameters.getApplicationMessageId() == null - ? MessageIdService.generateMessageId() - : parameters.getApplicationMessageId(); - - messageHeaderParameters.setApplicationMessageId(Objects.requireNonNull(applicationMessageID)); - messageHeaderParameters.setMetadata(MessageOuterClass.Metadata.newBuilder().build()); - - final String teamsetContextId = - parameters.getTeamsetContextId() == null ? "" : parameters.getTeamsetContextId(); - messageHeaderParameters.setTeamSetContextId(Objects.requireNonNull(teamsetContextId)); - - setSequenceNumber(messageHeaderParameters, parameters.getSequenceNumber(), parameters.getOnboardingResponse()); - messageHeaderParameters.setTechnicalMessageType(SystemMessageType.DKE_CAPABILITIES); - messageHeaderParameters.setMode(Request.RequestEnvelope.Mode.DIRECT); - - Capabilities.CapabilitySpecification.Builder builder = - Capabilities.CapabilitySpecification.newBuilder(); - builder.setAppCertificationId(Objects.requireNonNull(parameters.getApplicationId())); - builder.setAppCertificationVersionId( - Objects.requireNonNull(parameters.getCertificationVersionId())); - builder.setEnablePushNotifications(parameters.getEnablePushNotifications()); - - parameters.getCapabilitiesParameters(); - Objects.requireNonNull(parameters.getCapabilitiesParameters()) - .forEach( - p -> { - Capabilities.CapabilitySpecification.Capability.Builder capabilityBuilder = - Capabilities.CapabilitySpecification.Capability.newBuilder(); - capabilityBuilder.setTechnicalMessageType( - Objects.requireNonNull(p.getTechnicalMessageType()).getKey()); - capabilityBuilder.setDirection(Objects.requireNonNull(p.getDirection())); - Capabilities.CapabilitySpecification.Capability capability = - capabilityBuilder.build(); - builder.addCapabilities(capability); - }); - - PayloadParameters payloadParameters = new PayloadParameters(); - payloadParameters.setTypeUrl(SystemMessageType.DKE_CAPABILITIES.getTypeUrl()); - payloadParameters.setValue(builder.build().toByteString()); - - String encodedMessage = - this.getEncodeMessageService().encode(messageHeaderParameters, payloadParameters); - return new EncodedMessage(applicationMessageID, encodedMessage); + PayloadParameters payloadParameters = new PayloadParameters(); + payloadParameters.setTypeUrl(SystemMessageType.DKE_FEED_DELETE.getTypeUrl()); + payloadParameters.setValue(messageContent.build().toByteString()); + + String encodedMessage = + this.getEncodeMessageService().encode(messageHeaderParameters, payloadParameters); + return new EncodedMessage(applicationMessageID, encodedMessage); + } + + /** + * Encode a message to list endpoints. + * + * @param parameters - + * @return - + */ + default EncodedMessage encode(ListEndpointsParameters parameters) { + MessageHeaderParameters messageHeaderParameters = new MessageHeaderParameters(); + + final String applicationMessageID = + parameters.getApplicationMessageId() == null + ? MessageIdService.generateMessageId() + : parameters.getApplicationMessageId(); + messageHeaderParameters.setApplicationMessageId(Objects.requireNonNull(applicationMessageID)); + messageHeaderParameters.setMetadata(MessageOuterClass.Metadata.newBuilder().build()); + + final String teamsetContextId = + parameters.getTeamsetContextId() == null ? "" : parameters.getTeamsetContextId(); + messageHeaderParameters.setTeamSetContextId(Objects.requireNonNull(teamsetContextId)); + + setSequenceNumber( + messageHeaderParameters, + parameters.getSequenceNumber(), + parameters.getOnboardingResponse()); + if (parameters.getUnfilteredList()) { + messageHeaderParameters.setTechnicalMessageType( + SystemMessageType.DKE_LIST_ENDPOINTS_UNFILTERED); + } else { + messageHeaderParameters.setTechnicalMessageType(SystemMessageType.DKE_LIST_ENDPOINTS); } - - static void setSequenceNumber(MessageHeaderParameters messageHeaderParameters, long sequenceNumber, OnboardingResponse onboardingResponse) { - if (sequenceNumber == 0 && onboardingResponse == null) { - throw new IllegalArgumentException("Either sequence number or onboarding response must be set."); - } - - messageHeaderParameters.setApplicationMessageSeqNo( - sequenceNumber != 0 - ? sequenceNumber - : SequenceNumberService.generateSequenceNumberForEndpoint( - onboardingResponse)); + messageHeaderParameters.setMode(Request.RequestEnvelope.Mode.DIRECT); + + Endpoints.ListEndpointsQuery.Builder messageContent = Endpoints.ListEndpointsQuery.newBuilder(); + messageContent.setDirection(Objects.requireNonNull(parameters.getDirection())); + messageContent.setTechnicalMessageType( + Objects.requireNonNull(parameters.getTechnicalMessageType()).getKey()); + + PayloadParameters payloadParameters = new PayloadParameters(); + payloadParameters.setTypeUrl(SystemMessageType.DKE_LIST_ENDPOINTS.getTypeUrl()); + payloadParameters.setValue(messageContent.build().toByteString()); + + String encodedMessage = + this.getEncodeMessageService().encode(messageHeaderParameters, payloadParameters); + + return new EncodedMessage(applicationMessageID, encodedMessage); + } + + /** + * Encode a message to send a message confirmation. + * + * @param parameters - + * @return - + */ + default EncodedMessage encode(MessageConfirmationParameters parameters) { + MessageHeaderParameters messageHeaderParameters = new MessageHeaderParameters(); + + final String applicationMessageID = + parameters.getApplicationMessageId() == null + ? MessageIdService.generateMessageId() + : parameters.getApplicationMessageId(); + + messageHeaderParameters.setApplicationMessageId(Objects.requireNonNull(applicationMessageID)); + messageHeaderParameters.setMetadata(MessageOuterClass.Metadata.newBuilder().build()); + + final String teamsetContextId = + parameters.getTeamsetContextId() == null ? "" : parameters.getTeamsetContextId(); + messageHeaderParameters.setTeamSetContextId(Objects.requireNonNull(teamsetContextId)); + + setSequenceNumber( + messageHeaderParameters, + parameters.getSequenceNumber(), + parameters.getOnboardingResponse()); + messageHeaderParameters.setTechnicalMessageType(SystemMessageType.DKE_FEED_CONFIRM); + messageHeaderParameters.setMode(Request.RequestEnvelope.Mode.DIRECT); + + FeedRequests.MessageConfirm.Builder messageContent = FeedRequests.MessageConfirm.newBuilder(); + messageContent.addAllMessageIds(Objects.requireNonNull(parameters.getMessageIds())); + + PayloadParameters payloadParameters = new PayloadParameters(); + payloadParameters.setTypeUrl(SystemMessageType.DKE_FEED_CONFIRM.getTypeUrl()); + payloadParameters.setValue(messageContent.build().toByteString()); + + String encodedMessage = + this.getEncodeMessageService().encode(messageHeaderParameters, payloadParameters); + return new EncodedMessage(applicationMessageID, encodedMessage); + } + + /** + * Encode a message to set capabilities. + * + * @param parameters - + * @return - + */ + default EncodedMessage encode(SetCapabilitiesParameters parameters) { + MessageHeaderParameters messageHeaderParameters = new MessageHeaderParameters(); + + final String applicationMessageID = + parameters.getApplicationMessageId() == null + ? MessageIdService.generateMessageId() + : parameters.getApplicationMessageId(); + + messageHeaderParameters.setApplicationMessageId(Objects.requireNonNull(applicationMessageID)); + messageHeaderParameters.setMetadata(MessageOuterClass.Metadata.newBuilder().build()); + + final String teamsetContextId = + parameters.getTeamsetContextId() == null ? "" : parameters.getTeamsetContextId(); + messageHeaderParameters.setTeamSetContextId(Objects.requireNonNull(teamsetContextId)); + + setSequenceNumber( + messageHeaderParameters, + parameters.getSequenceNumber(), + parameters.getOnboardingResponse()); + messageHeaderParameters.setTechnicalMessageType(SystemMessageType.DKE_CAPABILITIES); + messageHeaderParameters.setMode(Request.RequestEnvelope.Mode.DIRECT); + + Capabilities.CapabilitySpecification.Builder builder = + Capabilities.CapabilitySpecification.newBuilder(); + builder.setAppCertificationId(Objects.requireNonNull(parameters.getApplicationId())); + builder.setAppCertificationVersionId( + Objects.requireNonNull(parameters.getCertificationVersionId())); + builder.setEnablePushNotifications(parameters.getEnablePushNotifications()); + + parameters.getCapabilitiesParameters(); + Objects.requireNonNull(parameters.getCapabilitiesParameters()) + .forEach( + p -> { + Capabilities.CapabilitySpecification.Capability.Builder capabilityBuilder = + Capabilities.CapabilitySpecification.Capability.newBuilder(); + capabilityBuilder.setTechnicalMessageType( + Objects.requireNonNull(p.getTechnicalMessageType()).getKey()); + capabilityBuilder.setDirection(Objects.requireNonNull(p.getDirection())); + Capabilities.CapabilitySpecification.Capability capability = + capabilityBuilder.build(); + builder.addCapabilities(capability); + }); + + PayloadParameters payloadParameters = new PayloadParameters(); + payloadParameters.setTypeUrl(SystemMessageType.DKE_CAPABILITIES.getTypeUrl()); + payloadParameters.setValue(builder.build().toByteString()); + + String encodedMessage = + this.getEncodeMessageService().encode(messageHeaderParameters, payloadParameters); + return new EncodedMessage(applicationMessageID, encodedMessage); + } + + static void setSequenceNumber( + MessageHeaderParameters messageHeaderParameters, + long sequenceNumber, + OnboardingResponse onboardingResponse) { + if (sequenceNumber == 0 && onboardingResponse == null) { + throw new IllegalArgumentException( + "Either sequence number or onboarding response must be set."); } - /** - * Encode a message to set a subscription. - * - * @param parameters - - * @return - - */ - @Deprecated - default EncodedMessage encodeMessage(SetSubscriptionParameters parameters) { - return encode(parameters); + messageHeaderParameters.setApplicationMessageSeqNo( + sequenceNumber != 0 + ? sequenceNumber + : SequenceNumberService.generateSequenceNumberForEndpoint(onboardingResponse)); + } + + /** + * Encode a message to set a subscription. + * + * @param parameters - + * @return - + */ + @Deprecated + default EncodedMessage encodeMessage(SetSubscriptionParameters parameters) { + return encode(parameters); + } + + /** + * Encode a message to set a subscription. + * + * @param parameters - + * @return - + */ + default EncodedMessage encode(SetSubscriptionParameters parameters) { + assert parameters.getOnboardingResponse() != null; + MessageHeaderParameters messageHeaderParameters = new MessageHeaderParameters(); + + final String applicationMessageID = + parameters.getApplicationMessageId() == null + ? MessageIdService.generateMessageId() + : parameters.getApplicationMessageId(); + + messageHeaderParameters.setApplicationMessageId(Objects.requireNonNull(applicationMessageID)); + messageHeaderParameters.setMetadata(MessageOuterClass.Metadata.newBuilder().build()); + + final String teamsetContextId = + parameters.getTeamsetContextId() == null ? "" : parameters.getTeamsetContextId(); + messageHeaderParameters.setTeamSetContextId(Objects.requireNonNull(teamsetContextId)); + + setSequenceNumber( + messageHeaderParameters, + parameters.getSequenceNumber(), + parameters.getOnboardingResponse()); + messageHeaderParameters.setTechnicalMessageType(SystemMessageType.DKE_SUBSCRIPTION); + messageHeaderParameters.setMode(Request.RequestEnvelope.Mode.DIRECT); + + SubscriptionOuterClass.Subscription.Builder messageContent = + SubscriptionOuterClass.Subscription.newBuilder(); + parameters + .getSubscriptions() + .forEach( + parameter -> { + SubscriptionOuterClass.Subscription.MessageTypeSubscriptionItem.Builder + technicalMessageType = + SubscriptionOuterClass.Subscription.MessageTypeSubscriptionItem.newBuilder(); + technicalMessageType.setTechnicalMessageType( + Objects.requireNonNull(parameter.getTechnicalMessageType()).getKey()); + technicalMessageType.addAllDdis(parameter.getDdis()); + technicalMessageType.setPosition(parameter.getPosition()); + messageContent.addTechnicalMessageTypes(technicalMessageType); + }); + + PayloadParameters payloadParameters = new PayloadParameters(); + payloadParameters.setTypeUrl(SystemMessageType.DKE_SUBSCRIPTION.getTypeUrl()); + payloadParameters.setValue(messageContent.build().toByteString()); + + String encodedMessage = + this.getEncodeMessageService().encode(messageHeaderParameters, payloadParameters); + return new EncodedMessage(applicationMessageID, encodedMessage); + } + + /** + * Encode a message to query messages. + * + * @param parameters - + * @return - + */ + default EncodedMessage encode( + TechnicalMessageType technicalMessageType, MessageQueryParameters parameters) { + this.logMethodBegin(parameters); + this.getNativeLogger().trace("Build message header parameters."); + MessageHeaderParameters messageHeaderParameters = new MessageHeaderParameters(); + + final String applicationMessageID = + parameters.getApplicationMessageId() == null + ? MessageIdService.generateMessageId() + : parameters.getApplicationMessageId(); + + messageHeaderParameters.setApplicationMessageId(Objects.requireNonNull(applicationMessageID)); + messageHeaderParameters.setMetadata(MessageOuterClass.Metadata.newBuilder().build()); + + final String teamsetContextId = + parameters.getTeamsetContextId() == null ? "" : parameters.getTeamsetContextId(); + messageHeaderParameters.setTeamSetContextId(Objects.requireNonNull(teamsetContextId)); + + setSequenceNumber( + messageHeaderParameters, + parameters.getSequenceNumber(), + parameters.getOnboardingResponse()); + messageHeaderParameters.setTechnicalMessageType(technicalMessageType); + messageHeaderParameters.setMode(Request.RequestEnvelope.Mode.DIRECT); + + this.getNativeLogger().trace("Build message query parameters."); + FeedRequests.MessageQuery.Builder messageContent = FeedRequests.MessageQuery.newBuilder(); + if (parameters.getMessageIds() != null) { + messageContent.addAllMessageIds(parameters.getMessageIds()); } - - /** - * Encode a message to set a subscription. - * - * @param parameters - - * @return - - */ - default EncodedMessage encode(SetSubscriptionParameters parameters) { - assert parameters.getOnboardingResponse() != null; - MessageHeaderParameters messageHeaderParameters = new MessageHeaderParameters(); - - final String applicationMessageID = - parameters.getApplicationMessageId() == null - ? MessageIdService.generateMessageId() - : parameters.getApplicationMessageId(); - - messageHeaderParameters.setApplicationMessageId(Objects.requireNonNull(applicationMessageID)); - messageHeaderParameters.setMetadata(MessageOuterClass.Metadata.newBuilder().build()); - - final String teamsetContextId = - parameters.getTeamsetContextId() == null ? "" : parameters.getTeamsetContextId(); - messageHeaderParameters.setTeamSetContextId(Objects.requireNonNull(teamsetContextId)); - - - setSequenceNumber(messageHeaderParameters, parameters.getSequenceNumber(), parameters.getOnboardingResponse()); - messageHeaderParameters.setTechnicalMessageType(SystemMessageType.DKE_SUBSCRIPTION); - messageHeaderParameters.setMode(Request.RequestEnvelope.Mode.DIRECT); - - SubscriptionOuterClass.Subscription.Builder messageContent = - SubscriptionOuterClass.Subscription.newBuilder(); - parameters - .getSubscriptions() - .forEach( - parameter -> { - SubscriptionOuterClass.Subscription.MessageTypeSubscriptionItem.Builder - technicalMessageType = - SubscriptionOuterClass.Subscription.MessageTypeSubscriptionItem.newBuilder(); - technicalMessageType.setTechnicalMessageType( - Objects.requireNonNull(parameter.getTechnicalMessageType()).getKey()); - technicalMessageType.addAllDdis(parameter.getDdis()); - technicalMessageType.setPosition(parameter.getPosition()); - messageContent.addTechnicalMessageTypes(technicalMessageType); - }); - - PayloadParameters payloadParameters = new PayloadParameters(); - payloadParameters.setTypeUrl(SystemMessageType.DKE_SUBSCRIPTION.getTypeUrl()); - payloadParameters.setValue(messageContent.build().toByteString()); - - String encodedMessage = - this.getEncodeMessageService().encode(messageHeaderParameters, payloadParameters); - return new EncodedMessage(applicationMessageID, encodedMessage); + if (parameters.getSenderIds() != null) { + messageContent.addAllSenders(parameters.getSenderIds()); } - - /** - * Encode a message to query messages. - * - * @param parameters - - * @return - - */ - default EncodedMessage encode( - TechnicalMessageType technicalMessageType, MessageQueryParameters parameters) { - this.logMethodBegin(parameters); - this.getNativeLogger().trace("Build message header parameters."); - MessageHeaderParameters messageHeaderParameters = new MessageHeaderParameters(); - - final String applicationMessageID = - parameters.getApplicationMessageId() == null - ? MessageIdService.generateMessageId() - : parameters.getApplicationMessageId(); - - messageHeaderParameters.setApplicationMessageId(Objects.requireNonNull(applicationMessageID)); - messageHeaderParameters.setMetadata(MessageOuterClass.Metadata.newBuilder().build()); - - final String teamsetContextId = - parameters.getTeamsetContextId() == null ? "" : parameters.getTeamsetContextId(); - messageHeaderParameters.setTeamSetContextId(Objects.requireNonNull(teamsetContextId)); - - setSequenceNumber(messageHeaderParameters, parameters.getSequenceNumber(), parameters.getOnboardingResponse()); - messageHeaderParameters.setTechnicalMessageType(technicalMessageType); - messageHeaderParameters.setMode(Request.RequestEnvelope.Mode.DIRECT); - - this.getNativeLogger().trace("Build message query parameters."); - FeedRequests.MessageQuery.Builder messageContent = FeedRequests.MessageQuery.newBuilder(); - if (parameters.getMessageIds() != null) { - messageContent.addAllMessageIds(parameters.getMessageIds()); - } - if (parameters.getSenderIds() != null) { - messageContent.addAllSenders(parameters.getSenderIds()); - } - if (null != parameters.getSentFromInSeconds() || null != parameters.getSentToInSeconds()) { - FeedRequests.ValidityPeriod.Builder validityPeriod = FeedRequests.ValidityPeriod.newBuilder(); - if (null != parameters.getSentFromInSeconds()) { - validityPeriod.setSentFrom(new TimestampUtil().seconds(parameters.getSentFromInSeconds())); - } - if (null != parameters.getSentToInSeconds()) { - validityPeriod.setSentTo(new TimestampUtil().seconds(parameters.getSentToInSeconds())); - } - messageContent.setValidityPeriod(validityPeriod); - } - - this.getNativeLogger().trace("Build message payload parameters."); - PayloadParameters payloadParameters = new PayloadParameters(); - payloadParameters.setTypeUrl(technicalMessageType.getTypeUrl()); - payloadParameters.setValue(messageContent.build().toByteString()); - - this.getNativeLogger().trace("Encode message."); - String encodedMessage = - this.getEncodeMessageService().encode(messageHeaderParameters, payloadParameters); - - this.logMethodEnd(encodedMessage); - return new EncodedMessage(applicationMessageID, encodedMessage); - } - - /** - * Encode message for cloud onboarding of virtual CUs. - * - * @param parameters - - * @return - - */ - default EncodedMessage encode(CloudOnboardingParameters parameters) { - final String applicationMessageID = - parameters.getApplicationMessageId() == null - ? MessageIdService.generateMessageId() - : parameters.getApplicationMessageId(); - - final String teamsetContextId = - parameters.getTeamsetContextId() == null ? "" : parameters.getTeamsetContextId(); - - MessageHeaderParameters messageHeaderParameters = new MessageHeaderParameters(); - messageHeaderParameters.setApplicationMessageId(applicationMessageID); - messageHeaderParameters.setTeamSetContextId(teamsetContextId); - - setSequenceNumber(messageHeaderParameters, parameters.getSequenceNumber(), parameters.getOnboardingResponse()); - messageHeaderParameters.setMetadata(MessageOuterClass.Metadata.newBuilder().build()); - messageHeaderParameters.setTechnicalMessageType(SystemMessageType.DKE_CLOUD_ONBOARD_ENDPOINTS); - messageHeaderParameters.setMode(Request.RequestEnvelope.Mode.DIRECT); - - CloudVirtualizedAppRegistration.OnboardingRequest.Builder messageContent = - CloudVirtualizedAppRegistration.OnboardingRequest.newBuilder(); - Objects.requireNonNull(parameters.getEndpointDetails()) - .forEach( - p -> { - CloudVirtualizedAppRegistration.OnboardingRequest.EndpointRegistrationDetails.Builder - builder = - CloudVirtualizedAppRegistration.OnboardingRequest.EndpointRegistrationDetails - .newBuilder(); - builder.setId(Objects.requireNonNull(p.getEndpointId())); - builder.setName(Objects.requireNonNull(p.getEndpointName())); - messageContent.addOnboardingRequests(builder.build()); - }); - - PayloadParameters payloadParameters = new PayloadParameters(); - payloadParameters.setTypeUrl(SystemMessageType.DKE_CLOUD_ONBOARD_ENDPOINTS.getTypeUrl()); - payloadParameters.setValue(messageContent.build().toByteString()); - - String encodedMessage = - this.getEncodeMessageService().encode(messageHeaderParameters, payloadParameters); - return new EncodedMessage(applicationMessageID, encodedMessage); - } - - /** - * Encode cloud offboarding message. - * - * @param parameters - - * @return - - */ - default EncodedMessage encode(CloudOffboardingParameters parameters) { - final String applicationMessageID = - parameters.getApplicationMessageId() == null - ? MessageIdService.generateMessageId() - : parameters.getApplicationMessageId(); - - CloudVirtualizedAppRegistration.OffboardingRequest.Builder messageContent = - CloudVirtualizedAppRegistration.OffboardingRequest.newBuilder(); - messageContent.addAllEndpoints(Objects.requireNonNull(parameters.getEndpointIds())); - - MessageHeaderParameters messageHeaderParameters = new MessageHeaderParameters(); - messageHeaderParameters.setApplicationMessageId(applicationMessageID); - messageHeaderParameters.setTechnicalMessageType(SystemMessageType.DKE_CLOUD_OFFBOARD_ENDPOINTS); - messageHeaderParameters.setMode(Request.RequestEnvelope.Mode.DIRECT); - messageHeaderParameters.setMetadata(MessageOuterClass.Metadata.newBuilder().build()); - - setSequenceNumber(messageHeaderParameters, parameters.getSequenceNumber(), parameters.getOnboardingResponse()); - PayloadParameters payloadParameters = new PayloadParameters(); - payloadParameters.setTypeUrl(SystemMessageType.DKE_CLOUD_OFFBOARD_ENDPOINTS.getTypeUrl()); - - payloadParameters.setValue(messageContent.build().toByteString()); - - String encodedMessage = - this.getEncodeMessageService().encode(messageHeaderParameters, payloadParameters); - return new EncodedMessage(applicationMessageID, encodedMessage); + if (null != parameters.getSentFromInSeconds() || null != parameters.getSentToInSeconds()) { + FeedRequests.ValidityPeriod.Builder validityPeriod = FeedRequests.ValidityPeriod.newBuilder(); + if (null != parameters.getSentFromInSeconds()) { + validityPeriod.setSentFrom(new TimestampUtil().seconds(parameters.getSentFromInSeconds())); + } + if (null != parameters.getSentToInSeconds()) { + validityPeriod.setSentTo(new TimestampUtil().seconds(parameters.getSentToInSeconds())); + } + messageContent.setValidityPeriod(validityPeriod); } - /** - * Get the service to encode messages. - * - * @return - - */ - EncodeMessageService getEncodeMessageService(); + this.getNativeLogger().trace("Build message payload parameters."); + PayloadParameters payloadParameters = new PayloadParameters(); + payloadParameters.setTypeUrl(technicalMessageType.getTypeUrl()); + payloadParameters.setValue(messageContent.build().toByteString()); + + this.getNativeLogger().trace("Encode message."); + String encodedMessage = + this.getEncodeMessageService().encode(messageHeaderParameters, payloadParameters); + + this.logMethodEnd(encodedMessage); + return new EncodedMessage(applicationMessageID, encodedMessage); + } + + /** + * Encode message for cloud onboarding of virtual CUs. + * + * @param parameters - + * @return - + */ + default EncodedMessage encode(CloudOnboardingParameters parameters) { + final String applicationMessageID = + parameters.getApplicationMessageId() == null + ? MessageIdService.generateMessageId() + : parameters.getApplicationMessageId(); + + final String teamsetContextId = + parameters.getTeamsetContextId() == null ? "" : parameters.getTeamsetContextId(); + + MessageHeaderParameters messageHeaderParameters = new MessageHeaderParameters(); + messageHeaderParameters.setApplicationMessageId(applicationMessageID); + messageHeaderParameters.setTeamSetContextId(teamsetContextId); + + setSequenceNumber( + messageHeaderParameters, + parameters.getSequenceNumber(), + parameters.getOnboardingResponse()); + messageHeaderParameters.setMetadata(MessageOuterClass.Metadata.newBuilder().build()); + messageHeaderParameters.setTechnicalMessageType(SystemMessageType.DKE_CLOUD_ONBOARD_ENDPOINTS); + messageHeaderParameters.setMode(Request.RequestEnvelope.Mode.DIRECT); + + CloudVirtualizedAppRegistration.OnboardingRequest.Builder messageContent = + CloudVirtualizedAppRegistration.OnboardingRequest.newBuilder(); + Objects.requireNonNull(parameters.getEndpointDetails()) + .forEach( + p -> { + CloudVirtualizedAppRegistration.OnboardingRequest.EndpointRegistrationDetails.Builder + builder = + CloudVirtualizedAppRegistration.OnboardingRequest.EndpointRegistrationDetails + .newBuilder(); + builder.setId(Objects.requireNonNull(p.getEndpointId())); + builder.setName(Objects.requireNonNull(p.getEndpointName())); + messageContent.addOnboardingRequests(builder.build()); + }); + + PayloadParameters payloadParameters = new PayloadParameters(); + payloadParameters.setTypeUrl(SystemMessageType.DKE_CLOUD_ONBOARD_ENDPOINTS.getTypeUrl()); + payloadParameters.setValue(messageContent.build().toByteString()); + + String encodedMessage = + this.getEncodeMessageService().encode(messageHeaderParameters, payloadParameters); + return new EncodedMessage(applicationMessageID, encodedMessage); + } + + /** + * Encode cloud offboarding message. + * + * @param parameters - + * @return - + */ + default EncodedMessage encode(CloudOffboardingParameters parameters) { + final String applicationMessageID = + parameters.getApplicationMessageId() == null + ? MessageIdService.generateMessageId() + : parameters.getApplicationMessageId(); + + CloudVirtualizedAppRegistration.OffboardingRequest.Builder messageContent = + CloudVirtualizedAppRegistration.OffboardingRequest.newBuilder(); + messageContent.addAllEndpoints(Objects.requireNonNull(parameters.getEndpointIds())); + + MessageHeaderParameters messageHeaderParameters = new MessageHeaderParameters(); + messageHeaderParameters.setApplicationMessageId(applicationMessageID); + messageHeaderParameters.setTechnicalMessageType(SystemMessageType.DKE_CLOUD_OFFBOARD_ENDPOINTS); + messageHeaderParameters.setMode(Request.RequestEnvelope.Mode.DIRECT); + messageHeaderParameters.setMetadata(MessageOuterClass.Metadata.newBuilder().build()); + + setSequenceNumber( + messageHeaderParameters, + parameters.getSequenceNumber(), + parameters.getOnboardingResponse()); + PayloadParameters payloadParameters = new PayloadParameters(); + payloadParameters.setTypeUrl(SystemMessageType.DKE_CLOUD_OFFBOARD_ENDPOINTS.getTypeUrl()); + + payloadParameters.setValue(messageContent.build().toByteString()); + + String encodedMessage = + this.getEncodeMessageService().encode(messageHeaderParameters, payloadParameters); + return new EncodedMessage(applicationMessageID, encodedMessage); + } + + /** + * Get the service to encode messages. + * + * @return - + */ + EncodeMessageService getEncodeMessageService(); } diff --git a/agrirouter-sdk-java-impl/src/main/java/com/dke/data/agrirouter/impl/messaging/encoding/EncodeMessageServiceImpl.java b/agrirouter-sdk-java-impl/src/main/java/com/dke/data/agrirouter/impl/messaging/encoding/EncodeMessageServiceImpl.java index 2be90635..d52e18ff 100644 --- a/agrirouter-sdk-java-impl/src/main/java/com/dke/data/agrirouter/impl/messaging/encoding/EncodeMessageServiceImpl.java +++ b/agrirouter-sdk-java-impl/src/main/java/com/dke/data/agrirouter/impl/messaging/encoding/EncodeMessageServiceImpl.java @@ -153,7 +153,10 @@ public List chunkAndBase64EncodeEachChunk( payload.copyFrom(payloadParameters); payload.setValue( ByteString.copyFromUtf8( - Base64.getEncoder().encodeToString(payloadParameters.getValue() + Base64.getEncoder() + .encodeToString( + payloadParameters + .getValue() .toStringUtf8() .getBytes(StandardCharsets.UTF_8)))); return Collections.singletonList( diff --git a/agrirouter-sdk-java-tests/onboarding-responses/farming-software-deactivated.json b/agrirouter-sdk-java-tests/onboarding-responses/farming-software-deactivated.json index 43165023..102ad6b4 100644 --- a/agrirouter-sdk-java-tests/onboarding-responses/farming-software-deactivated.json +++ b/agrirouter-sdk-java-tests/onboarding-responses/farming-software-deactivated.json @@ -1 +1 @@ -{"deviceAlternateId":"fef03c60-a068-4185-a157-f932afe25480","capabilityAlternateId":"3035ec70-dca1-4d71-a000-e79eb5891f81","sensorAlternateId":"50e0b616-a084-4402-8bf4-cb64f1e59a98","connectionCriteria":{"gatewayId":"3","measures":"https://dke-qa.eu10.cp.iot.sap/iot/gateway/rest/measures/fef03c60-a068-4185-a157-f932afe25480","commands":"https://dke-qa.eu10.cp.iot.sap/iot/gateway/rest/commands/fef03c60-a068-4185-a157-f932afe25480"},"authentication":{"type":"P12","secret":"y556#bzwJv8FZrmw4#TCyw#zBHHjkVwtJlVV","certificate":"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"}} \ No newline at end of file +{"deviceAlternateId":"7a8bf10c-627a-4f5f-aec5-65933f63c5f9","capabilityAlternateId":"3035ec70-dca1-4d71-a000-e79eb5891f81","sensorAlternateId":"5e6986a1-0dd7-4e64-b32c-76eef8b20390","connectionCriteria":{"gatewayId":"3","measures":"https://dke-qa.eu10.cp.iot.sap/iot/gateway/rest/measures/7a8bf10c-627a-4f5f-aec5-65933f63c5f9","commands":"https://dke-qa.eu10.cp.iot.sap/iot/gateway/rest/commands/7a8bf10c-627a-4f5f-aec5-65933f63c5f9"},"authentication":{"type":"P12","secret":"fcZQrLiM7406OxsHQf#YjJ5zOagTZml9iTNZ","certificate":"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"}} \ No newline at end of file diff --git a/agrirouter-sdk-java-tests/onboarding-responses/farming-software.json b/agrirouter-sdk-java-tests/onboarding-responses/farming-software.json index b46bf48e..1fdb8f5e 100644 --- a/agrirouter-sdk-java-tests/onboarding-responses/farming-software.json +++ b/agrirouter-sdk-java-tests/onboarding-responses/farming-software.json @@ -1 +1 @@ -{"deviceAlternateId":"036f7900-bdb6-4428-8e77-b3f8ffa78870","capabilityAlternateId":"3035ec70-dca1-4d71-a000-e79eb5891f81","sensorAlternateId":"385948f8-c157-458a-a5b3-fd3623442967","connectionCriteria":{"gatewayId":"3","measures":"https://dke-qa.eu10.cp.iot.sap/iot/gateway/rest/measures/036f7900-bdb6-4428-8e77-b3f8ffa78870","commands":"https://dke-qa.eu10.cp.iot.sap/iot/gateway/rest/commands/036f7900-bdb6-4428-8e77-b3f8ffa78870"},"authentication":{"type":"P12","secret":"t#ztUFZFwGbbXE23VoUZ6vEP?mPTCiE!c?5s","certificate":"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"}} \ No newline at end of file +{"deviceAlternateId":"14522ae1-4296-43de-9bba-fe3d99bc2669","capabilityAlternateId":"3035ec70-dca1-4d71-a000-e79eb5891f81","sensorAlternateId":"e306d63b-8b57-4956-bde7-43600e78dae4","connectionCriteria":{"gatewayId":"3","measures":"https://dke-qa.eu10.cp.iot.sap/iot/gateway/rest/measures/14522ae1-4296-43de-9bba-fe3d99bc2669","commands":"https://dke-qa.eu10.cp.iot.sap/iot/gateway/rest/commands/14522ae1-4296-43de-9bba-fe3d99bc2669"},"authentication":{"type":"P12","secret":"er7w24UOjW?FFABScSJmDkXHj98d7UqtU?zk","certificate":"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"}} \ No newline at end of file diff --git a/agrirouter-sdk-java-tests/src/test/java/com/dke/data/agrirouter/test/fixture/CommunicationUnitFixture.java b/agrirouter-sdk-java-tests/src/test/java/com/dke/data/agrirouter/test/fixture/CommunicationUnitFixture.java index 4f4a4771..6312d346 100644 --- a/agrirouter-sdk-java-tests/src/test/java/com/dke/data/agrirouter/test/fixture/CommunicationUnitFixture.java +++ b/agrirouter-sdk-java-tests/src/test/java/com/dke/data/agrirouter/test/fixture/CommunicationUnitFixture.java @@ -21,7 +21,6 @@ import java.io.IOException; import java.util.Collections; import java.util.UUID; - import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; diff --git a/agrirouter-sdk-java-tests/src/test/java/com/dke/data/agrirouter/test/fixture/FarmingSoftwareFixture.java b/agrirouter-sdk-java-tests/src/test/java/com/dke/data/agrirouter/test/fixture/FarmingSoftwareFixture.java index 6c663e81..481cce56 100644 --- a/agrirouter-sdk-java-tests/src/test/java/com/dke/data/agrirouter/test/fixture/FarmingSoftwareFixture.java +++ b/agrirouter-sdk-java-tests/src/test/java/com/dke/data/agrirouter/test/fixture/FarmingSoftwareFixture.java @@ -20,6 +20,10 @@ @SuppressWarnings("ALL") class FarmingSoftwareFixture extends AbstractIntegrationTest { + public static final String FARMING_SOFTWARE_ENDPOINT_ID = "e306d63b-8b57-4956-bde7-43600e78dae4"; + public static final String FARMING_SOFTWARE_DEACTIVATED_ENDPOINT_ID = + "50e0b616-a084-4402-8bf4-cb64f1e59a98"; + /** * Create a new registration token by using the following link: * @@ -30,12 +34,12 @@ class FarmingSoftwareFixture extends AbstractIntegrationTest { void onboardFarmingSoftwareAndSaveToFile() throws IOException { OnboardingService onboardingService = new OnboardingServiceImpl(new QA() {}); SecuredOnboardingParameters onboardingParameters = new SecuredOnboardingParameters(); - onboardingParameters.setRegistrationCode("ef1c0c59ba"); + onboardingParameters.setRegistrationCode("cf3a08a02f"); onboardingParameters.setApplicationId(farmingSoftware.getApplicationId()); onboardingParameters.setCertificationVersionId(farmingSoftware.getCertificationVersionId()); onboardingParameters.setCertificationType(CertificationType.P12); onboardingParameters.setGatewayId(Gateway.REST.getKey()); - onboardingParameters.setUuid(UUID.randomUUID().toString()); + onboardingParameters.setUuid(FARMING_SOFTWARE_ENDPOINT_ID); onboardingParameters.setPrivateKey(farmingSoftware.getPrivateKey()); onboardingParameters.setPublicKey(farmingSoftware.getPublicKey()); final OnboardingResponse onboardingResponse = onboardingService.onboard(onboardingParameters); @@ -64,12 +68,12 @@ void onboardFarmingSoftwareAndSaveToFile() throws IOException { void onboardAndDeactivateFarmingSoftwareAndSaveToFile() throws IOException { OnboardingService onboardingService = new OnboardingServiceImpl(new QA() {}); SecuredOnboardingParameters onboardingParameters = new SecuredOnboardingParameters(); - onboardingParameters.setRegistrationCode("a496822032"); + onboardingParameters.setRegistrationCode("528bdeab8a"); onboardingParameters.setApplicationId(farmingSoftware.getApplicationId()); onboardingParameters.setCertificationVersionId(farmingSoftware.getCertificationVersionId()); onboardingParameters.setCertificationType(CertificationType.P12); onboardingParameters.setGatewayId(Gateway.REST.getKey()); - onboardingParameters.setUuid(UUID.randomUUID().toString()); + onboardingParameters.setUuid(FARMING_SOFTWARE_DEACTIVATED_ENDPOINT_ID); onboardingParameters.setPrivateKey(farmingSoftware.getPrivateKey()); onboardingParameters.setPublicKey(farmingSoftware.getPublicKey()); final OnboardingResponse onboardingResponse = onboardingService.onboard(onboardingParameters);