diff options
author | Sirisha_Manchikanti <sirisha.manchikanti@est.tech> | 2021-08-03 17:49:00 +0100 |
---|---|---|
committer | Sirisha_Manchikanti <sirisha.manchikanti@est.tech> | 2021-08-04 14:35:55 +0100 |
commit | 2c094b95c86f3315e359d971fbfa0ad60d173053 (patch) | |
tree | bd4b33f1e28ad3fad8769b3a36a51e4f89a63dea /participant/participant-intermediary/src/main/java | |
parent | 055fa4ad38a11bb5890b6e0ea280e9b96a1b2a39 (diff) |
Update controlloop messages
Updated controlloop messages according to
https://wiki.onap.org/display/DW/The+CLAMP+Control+Loop+Participant+Protocol
Issue-ID: POLICY-3417
Signed-off-by: Sirisha_Manchikanti <sirisha.manchikanti@est.tech>
Change-Id: Ied32ea5bb63a6b69286d03f1a7b2b86e3acad7a7
Diffstat (limited to 'participant/participant-intermediary/src/main/java')
6 files changed, 107 insertions, 92 deletions
diff --git a/participant/participant-intermediary/src/main/java/org/onap/policy/clamp/controlloop/participant/intermediary/comm/MessageSender.java b/participant/participant-intermediary/src/main/java/org/onap/policy/clamp/controlloop/participant/intermediary/comm/MessageSender.java index 1741d9514..3ff420ffa 100644 --- a/participant/participant-intermediary/src/main/java/org/onap/policy/clamp/controlloop/participant/intermediary/comm/MessageSender.java +++ b/participant/participant-intermediary/src/main/java/org/onap/policy/clamp/controlloop/participant/intermediary/comm/MessageSender.java @@ -22,7 +22,10 @@ package org.onap.policy.clamp.controlloop.participant.intermediary.comm; import java.io.Closeable; import java.time.Instant; +import java.util.LinkedHashMap; +import java.util.Map; import java.util.TimerTask; +import java.util.UUID; import java.util.concurrent.Executors; import java.util.concurrent.ScheduledExecutorService; import java.util.concurrent.TimeUnit; @@ -30,9 +33,9 @@ import org.onap.policy.clamp.controlloop.models.controlloop.concepts.ControlLoop import org.onap.policy.clamp.controlloop.models.controlloop.concepts.ControlLoopElement; import org.onap.policy.clamp.controlloop.models.controlloop.concepts.ControlLoops; import org.onap.policy.clamp.controlloop.models.controlloop.concepts.ParticipantStatistics; +import org.onap.policy.clamp.controlloop.models.messages.dmaap.participant.ControlLoopAck; import org.onap.policy.clamp.controlloop.models.messages.dmaap.participant.ParticipantDeregister; import org.onap.policy.clamp.controlloop.models.messages.dmaap.participant.ParticipantRegister; -import org.onap.policy.clamp.controlloop.models.messages.dmaap.participant.ParticipantResponseDetails; import org.onap.policy.clamp.controlloop.models.messages.dmaap.participant.ParticipantResponseStatus; import org.onap.policy.clamp.controlloop.models.messages.dmaap.participant.ParticipantStatus; import org.onap.policy.clamp.controlloop.models.messages.dmaap.participant.ParticipantUpdateAck; @@ -84,48 +87,23 @@ public class MessageSender extends TimerTask implements Closeable { /** * Send a response message for this participant. * - * @param response the details to include in the response message + * @param ackMessage the details to include in the response message */ - public void sendResponse(ParticipantResponseDetails response) { - sendResponse(null, response); + public void sendAckResponse(ControlLoopAck ackMessage) { + sendAckResponse(null, ackMessage); } /** * Dispatch a response message for this participant. * * @param controlLoopId the control loop to which this message is a response - * @param response the details to include in the response message + * @param ackMessage the details to include in the response message */ - public void sendResponse(ToscaConceptIdentifier controlLoopId, ParticipantResponseDetails response) { - var status = new ParticipantStatus(); - + public void sendAckResponse(ToscaConceptIdentifier controlLoopId, ControlLoopAck ackMessage) { // Participant related fields - status.setParticipantType(participantHandler.getParticipantType()); - status.setParticipantId(participantHandler.getParticipantId()); - status.setState(participantHandler.getState()); - status.setHealthStatus(participantHandler.getHealthStatus()); - - // Control loop related fields - var controlLoops = participantHandler.getControlLoopHandler().getControlLoops(); - status.setControlLoopId(controlLoopId); - status.setControlLoops(controlLoops); - status.setResponse(response); - - var participantStatistics = new ParticipantStatistics(); - participantStatistics.setTimeStamp(Instant.now()); - participantStatistics.setParticipantId(participantHandler.getParticipantId()); - participantStatistics.setHealthStatus(participantHandler.getHealthStatus()); - participantStatistics.setState(participantHandler.getState()); - status.setParticipantStatistics(participantStatistics); - - for (ControlLoopElementListener clElementListener : - participantHandler.getControlLoopHandler().getListeners()) { - updateClElementStatistics(controlLoops, clElementListener); - } - - status.setControlLoops(controlLoops); - - publisher.sendParticipantStatus(status); + ackMessage.setParticipantType(participantHandler.getParticipantType()); + ackMessage.setParticipantId(participantHandler.getParticipantId()); + publisher.sendControlLoopAck(ackMessage); } /** @@ -156,6 +134,21 @@ public class MessageSender extends TimerTask implements Closeable { } /** + * Send a ParticipantStatus message for this participant. + * + * @param participantStatus the ParticipantStatus message + */ + public void sendParticipantStatus(ParticipantStatus participantStatus) { + var controlLoops = participantHandler.getControlLoopHandler().getControlLoops(); + for (ControlLoopElementListener clElementListener : + participantHandler.getControlLoopHandler().getListeners()) { + updateClElementStatistics(controlLoops, clElementListener); + } + + publisher.sendParticipantStatus(participantStatus); + } + + /** * Dispatch a heartbeat for this participant. */ public void sendHeartbeat() { diff --git a/participant/participant-intermediary/src/main/java/org/onap/policy/clamp/controlloop/participant/intermediary/comm/ParticipantMessagePublisher.java b/participant/participant-intermediary/src/main/java/org/onap/policy/clamp/controlloop/participant/intermediary/comm/ParticipantMessagePublisher.java index 051f00095..d8cc9eb6b 100644 --- a/participant/participant-intermediary/src/main/java/org/onap/policy/clamp/controlloop/participant/intermediary/comm/ParticipantMessagePublisher.java +++ b/participant/participant-intermediary/src/main/java/org/onap/policy/clamp/controlloop/participant/intermediary/comm/ParticipantMessagePublisher.java @@ -21,6 +21,7 @@ package org.onap.policy.clamp.controlloop.participant.intermediary.comm; import java.util.List; +import org.onap.policy.clamp.controlloop.models.messages.dmaap.participant.ControlLoopAck; import org.onap.policy.clamp.controlloop.models.messages.dmaap.participant.ParticipantDeregister; import org.onap.policy.clamp.controlloop.models.messages.dmaap.participant.ParticipantRegister; import org.onap.policy.clamp.controlloop.models.messages.dmaap.participant.ParticipantStatus; @@ -92,6 +93,16 @@ public class ParticipantMessagePublisher { } /** + * Method to send ControlLoop Update/StateChange Ack message to runtime. + * + * @param controlLoopAck ControlLoop Update/StateChange Ack + */ + public void sendControlLoopAck(final ControlLoopAck controlLoopAck) { + topicSinkClient.send(controlLoopAck); + LOGGER.debug("Sent ControlLoop Update/StateChange Ack to runtime - {}", controlLoopAck); + } + + /** * Method to send Participant heartbeat to clamp on demand. * * @param participantStatus the Participant Status diff --git a/participant/participant-intermediary/src/main/java/org/onap/policy/clamp/controlloop/participant/intermediary/comm/ParticipantHealthCheckListener.java b/participant/participant-intermediary/src/main/java/org/onap/policy/clamp/controlloop/participant/intermediary/comm/ParticipantStatusReqListener.java index 15f5140eb..0881edb19 100644 --- a/participant/participant-intermediary/src/main/java/org/onap/policy/clamp/controlloop/participant/intermediary/comm/ParticipantHealthCheckListener.java +++ b/participant/participant-intermediary/src/main/java/org/onap/policy/clamp/controlloop/participant/intermediary/comm/ParticipantStatusReqListener.java @@ -20,22 +20,22 @@ package org.onap.policy.clamp.controlloop.participant.intermediary.comm; -import org.onap.policy.clamp.controlloop.models.messages.dmaap.participant.ParticipantHealthCheck; +import org.onap.policy.clamp.controlloop.models.messages.dmaap.participant.ParticipantStatusReq; import org.onap.policy.clamp.controlloop.participant.intermediary.handler.ParticipantHandler; import org.springframework.stereotype.Component; /** - * Listener for Participant health status messages sent by CLAMP. + * Listener for Participant status request messages sent by runtime to all/one participant. */ @Component -public class ParticipantHealthCheckListener extends ParticipantListener<ParticipantHealthCheck> { +public class ParticipantStatusReqListener extends ParticipantListener<ParticipantStatusReq> { /** * Constructs the object. * * @param participantHandler the handler for managing the state and health of the participant */ - public ParticipantHealthCheckListener(final ParticipantHandler participantHandler) { - super(ParticipantHealthCheck.class, participantHandler, participantHandler::handleParticipantHealthCheck); + public ParticipantStatusReqListener(final ParticipantHandler participantHandler) { + super(ParticipantStatusReq.class, participantHandler, participantHandler::handleParticipantStatusReq); } } diff --git a/participant/participant-intermediary/src/main/java/org/onap/policy/clamp/controlloop/participant/intermediary/handler/ControlLoopHandler.java b/participant/participant-intermediary/src/main/java/org/onap/policy/clamp/controlloop/participant/intermediary/handler/ControlLoopHandler.java index c9da1279d..876a4cc52 100644 --- a/participant/participant-intermediary/src/main/java/org/onap/policy/clamp/controlloop/participant/intermediary/handler/ControlLoopHandler.java +++ b/participant/participant-intermediary/src/main/java/org/onap/policy/clamp/controlloop/participant/intermediary/handler/ControlLoopHandler.java @@ -28,6 +28,7 @@ import java.util.UUID; import lombok.Getter; import lombok.NoArgsConstructor; import org.apache.commons.collections4.CollectionUtils; +import org.apache.commons.lang3.tuple.Pair; import org.onap.policy.clamp.controlloop.models.controlloop.concepts.ClElementStatistics; import org.onap.policy.clamp.controlloop.models.controlloop.concepts.ControlLoop; import org.onap.policy.clamp.controlloop.models.controlloop.concepts.ControlLoopElement; @@ -35,10 +36,10 @@ import org.onap.policy.clamp.controlloop.models.controlloop.concepts.ControlLoop import org.onap.policy.clamp.controlloop.models.controlloop.concepts.ControlLoopOrderedState; import org.onap.policy.clamp.controlloop.models.controlloop.concepts.ControlLoopState; import org.onap.policy.clamp.controlloop.models.controlloop.concepts.ControlLoops; +import org.onap.policy.clamp.controlloop.models.messages.dmaap.participant.ControlLoopAck; import org.onap.policy.clamp.controlloop.models.messages.dmaap.participant.ControlLoopStateChange; import org.onap.policy.clamp.controlloop.models.messages.dmaap.participant.ControlLoopUpdate; -import org.onap.policy.clamp.controlloop.models.messages.dmaap.participant.ParticipantResponseDetails; -import org.onap.policy.clamp.controlloop.models.messages.dmaap.participant.ParticipantResponseStatus; +import org.onap.policy.clamp.controlloop.models.messages.dmaap.participant.ParticipantMessageType; import org.onap.policy.clamp.controlloop.participant.intermediary.api.ControlLoopElementListener; import org.onap.policy.clamp.controlloop.participant.intermediary.comm.MessageSender; import org.onap.policy.clamp.controlloop.participant.intermediary.parameters.ParticipantIntermediaryParameters; @@ -60,6 +61,7 @@ public class ControlLoopHandler { private final Map<ToscaConceptIdentifier, ControlLoop> controlLoopMap = new LinkedHashMap<>(); + @Getter private final Map<UUID, ControlLoopElement> elementsOnThisParticipant = new LinkedHashMap<>(); @Getter @@ -93,21 +95,23 @@ public class ControlLoopHandler { ControlLoopState newState) { if (id == null) { - return null; + LOGGER.warn("Cannot update Control loop element state, id is null"); } + ControlLoopAck controlLoopStateChangeAck = + new ControlLoopAck(ParticipantMessageType.CONTROLLOOP_STATECHANGE_ACK); ControlLoopElement clElement = elementsOnThisParticipant.get(id); if (clElement != null) { clElement.setOrderedState(orderedState); clElement.setState(newState); + controlLoopStateChangeAck.getControlLoopResultMap().put(clElement.getId(), + Pair.of(true, "Control loop element {} state changed to {}\", id, newState)")); LOGGER.debug("Control loop element {} state changed to {}", id, newState); - var response = new ParticipantResponseDetails(); - response.setResponseStatus(ParticipantResponseStatus.SUCCESS); - response.setResponseMessage("ControlLoopElement state changed to {} " + newState); - messageSender.sendResponse(response); + controlLoopStateChangeAck.setMessage("ControlLoopElement state changed to {} " + newState); + controlLoopStateChangeAck.setResult(true); + messageSender.sendAckResponse(controlLoopStateChangeAck); return clElement; } - return null; } @@ -143,9 +147,11 @@ public class ControlLoopHandler { return; } - var response = new ParticipantResponseDetails(stateChangeMsg); - handleState(controlLoop, response, stateChangeMsg.getOrderedState()); - messageSender.sendResponse(response); + var controlLoopStateChangeAck = new ControlLoopAck(ParticipantMessageType.CONTROLLOOP_STATECHANGE_ACK); + controlLoopStateChangeAck.setResponseTo(stateChangeMsg.getMessageId()); + controlLoopStateChangeAck.setControlLoopId(stateChangeMsg.getControlLoopId()); + handleState(controlLoop, controlLoopStateChangeAck, stateChangeMsg.getOrderedState()); + messageSender.sendAckResponse(controlLoopStateChangeAck); } /** @@ -155,7 +161,7 @@ public class ControlLoopHandler { * @param response participant response * @param orderedState controlloop ordered state */ - private void handleState(final ControlLoop controlLoop, final ParticipantResponseDetails response, + private void handleState(final ControlLoop controlLoop, final ControlLoopAck response, ControlLoopOrderedState orderedState) { switch (orderedState) { case UNINITIALISED: @@ -187,16 +193,17 @@ public class ControlLoopHandler { var controlLoop = controlLoopMap.get(updateMsg.getControlLoopId()); - var response = new ParticipantResponseDetails(updateMsg); + var controlLoopUpdateAck = new ControlLoopAck(ParticipantMessageType.CONTROLLOOP_UPDATE_ACK); // TODO: Updates to existing ControlLoops are not supported yet (Addition/Removal of ControlLoop // elements to existing ControlLoop has to be supported). if (controlLoop != null) { - response.setResponseStatus(ParticipantResponseStatus.FAIL); - response.setResponseMessage("Control loop " + updateMsg.getControlLoopId() - + " already defined on participant " + participantId); - - messageSender.sendResponse(response); + controlLoopUpdateAck.setResponseTo(updateMsg.getMessageId()); + controlLoopUpdateAck.setControlLoopId(updateMsg.getControlLoopId()); + controlLoopUpdateAck.setMessage("Control loop " + updateMsg.getControlLoopId() + + " already defined on participant " + participantId); + controlLoopUpdateAck.setResult(false); + messageSender.sendAckResponse(controlLoopUpdateAck); return; } @@ -221,11 +228,12 @@ public class ControlLoopHandler { } } - response.setResponseStatus(ParticipantResponseStatus.SUCCESS); - response.setResponseMessage( - "Control loop " + updateMsg.getControlLoopId() + " defined on participant " + participantId); - - messageSender.sendResponse(response); + controlLoopUpdateAck.setResponseTo(updateMsg.getMessageId()); + controlLoopUpdateAck.setControlLoopId(updateMsg.getControlLoopId()); + controlLoopUpdateAck.setMessage("Control loop " + updateMsg.getControlLoopId() + + " defined on participant " + participantId); + controlLoopUpdateAck.setResult(true); + messageSender.sendAckResponse(controlLoopUpdateAck); } /** @@ -236,7 +244,7 @@ public class ControlLoopHandler { * @param response participant response */ private void handleUninitialisedState(final ControlLoop controlLoop, final ControlLoopOrderedState orderedState, - final ParticipantResponseDetails response) { + final ControlLoopAck response) { handleStateChange(controlLoop, orderedState, ControlLoopState.UNINITIALISED, response); controlLoopMap.remove(controlLoop.getKey().asIdentifier()); @@ -259,7 +267,7 @@ public class ControlLoopHandler { * @param response participant response */ private void handlePassiveState(final ControlLoop controlLoop, final ControlLoopOrderedState orderedState, - final ParticipantResponseDetails response) { + final ControlLoopAck response) { handleStateChange(controlLoop, orderedState, ControlLoopState.PASSIVE, response); } @@ -271,7 +279,7 @@ public class ControlLoopHandler { * @param response participant response */ private void handleRunningState(final ControlLoop controlLoop, final ControlLoopOrderedState orderedState, - final ParticipantResponseDetails response) { + final ControlLoopAck response) { handleStateChange(controlLoop, orderedState, ControlLoopState.RUNNING, response); } @@ -284,11 +292,11 @@ public class ControlLoopHandler { * @param response the response to the state change request */ private void handleStateChange(ControlLoop controlLoop, final ControlLoopOrderedState orderedState, - ControlLoopState newState, ParticipantResponseDetails response) { + ControlLoopState newState, ControlLoopAck response) { if (orderedState.equals(controlLoop.getOrderedState())) { - response.setResponseStatus(ParticipantResponseStatus.SUCCESS); - response.setResponseMessage("Control loop is already in state " + orderedState); + response.setMessage("Control loop is already in state " + orderedState); + response.setResult(false); return; } @@ -299,9 +307,8 @@ public class ControlLoopHandler { }); } - response.setResponseStatus(ParticipantResponseStatus.SUCCESS); - response.setResponseMessage( - "ControlLoop state changed from " + controlLoop.getOrderedState() + " to " + orderedState); + response.setMessage("ControlLoop state changed from " + controlLoop.getOrderedState() + " to " + orderedState); + response.setResult(true); controlLoop.setOrderedState(orderedState); } diff --git a/participant/participant-intermediary/src/main/java/org/onap/policy/clamp/controlloop/participant/intermediary/handler/IntermediaryActivator.java b/participant/participant-intermediary/src/main/java/org/onap/policy/clamp/controlloop/participant/intermediary/handler/IntermediaryActivator.java index f846b2d75..4fc0ae1b1 100644 --- a/participant/participant-intermediary/src/main/java/org/onap/policy/clamp/controlloop/participant/intermediary/handler/IntermediaryActivator.java +++ b/participant/participant-intermediary/src/main/java/org/onap/policy/clamp/controlloop/participant/intermediary/handler/IntermediaryActivator.java @@ -28,8 +28,8 @@ import org.onap.policy.clamp.controlloop.participant.intermediary.api.Participan import org.onap.policy.clamp.controlloop.participant.intermediary.comm.ControlLoopStateChangeListener; import org.onap.policy.clamp.controlloop.participant.intermediary.comm.ControlLoopUpdateListener; import org.onap.policy.clamp.controlloop.participant.intermediary.comm.ParticipantDeregisterAckListener; -import org.onap.policy.clamp.controlloop.participant.intermediary.comm.ParticipantHealthCheckListener; import org.onap.policy.clamp.controlloop.participant.intermediary.comm.ParticipantRegisterAckListener; +import org.onap.policy.clamp.controlloop.participant.intermediary.comm.ParticipantStatusReqListener; import org.onap.policy.clamp.controlloop.participant.intermediary.comm.ParticipantUpdateListener; import org.onap.policy.clamp.controlloop.participant.intermediary.parameters.ParticipantParameters; import org.onap.policy.common.endpoints.event.comm.TopicEndpointManager; @@ -119,8 +119,8 @@ public class IntermediaryActivator extends ServiceManagerContainer implements Cl private void registerMsgDispatcher() { MessageTypeDispatcher msgDispatcher = applicationContext.getBean(MessageTypeDispatcher.class); - msgDispatcher.register(ParticipantMessageType.PARTICIPANT_HEALTH_CHECK.name(), - applicationContext.getBean(ParticipantHealthCheckListener.class)); + msgDispatcher.register(ParticipantMessageType.PARTICIPANT_STATUS_REQ.name(), + applicationContext.getBean(ParticipantStatusReqListener.class)); msgDispatcher.register(ParticipantMessageType.CONTROL_LOOP_STATE_CHANGE.name(), applicationContext.getBean(ControlLoopStateChangeListener.class)); diff --git a/participant/participant-intermediary/src/main/java/org/onap/policy/clamp/controlloop/participant/intermediary/handler/ParticipantHandler.java b/participant/participant-intermediary/src/main/java/org/onap/policy/clamp/controlloop/participant/intermediary/handler/ParticipantHandler.java index 9daff7239..6a0e758dd 100644 --- a/participant/participant-intermediary/src/main/java/org/onap/policy/clamp/controlloop/participant/intermediary/handler/ParticipantHandler.java +++ b/participant/participant-intermediary/src/main/java/org/onap/policy/clamp/controlloop/participant/intermediary/handler/ParticipantHandler.java @@ -32,17 +32,18 @@ import org.onap.policy.clamp.controlloop.models.controlloop.concepts.Participant import org.onap.policy.clamp.controlloop.models.controlloop.concepts.ParticipantHealthStatus; import org.onap.policy.clamp.controlloop.models.controlloop.concepts.ParticipantState; import org.onap.policy.clamp.controlloop.models.controlloop.concepts.ParticipantStatistics; +import org.onap.policy.clamp.controlloop.models.messages.dmaap.participant.ControlLoopAck; import org.onap.policy.clamp.controlloop.models.messages.dmaap.participant.ControlLoopStateChange; import org.onap.policy.clamp.controlloop.models.messages.dmaap.participant.ControlLoopUpdate; import org.onap.policy.clamp.controlloop.models.messages.dmaap.participant.ParticipantDeregister; import org.onap.policy.clamp.controlloop.models.messages.dmaap.participant.ParticipantDeregisterAck; -import org.onap.policy.clamp.controlloop.models.messages.dmaap.participant.ParticipantHealthCheck; import org.onap.policy.clamp.controlloop.models.messages.dmaap.participant.ParticipantMessage; +import org.onap.policy.clamp.controlloop.models.messages.dmaap.participant.ParticipantMessageType; import org.onap.policy.clamp.controlloop.models.messages.dmaap.participant.ParticipantRegister; import org.onap.policy.clamp.controlloop.models.messages.dmaap.participant.ParticipantRegisterAck; -import org.onap.policy.clamp.controlloop.models.messages.dmaap.participant.ParticipantResponseDetails; import org.onap.policy.clamp.controlloop.models.messages.dmaap.participant.ParticipantResponseStatus; import org.onap.policy.clamp.controlloop.models.messages.dmaap.participant.ParticipantStatus; +import org.onap.policy.clamp.controlloop.models.messages.dmaap.participant.ParticipantStatusReq; import org.onap.policy.clamp.controlloop.models.messages.dmaap.participant.ParticipantUpdate; import org.onap.policy.clamp.controlloop.models.messages.dmaap.participant.ParticipantUpdateAck; import org.onap.policy.clamp.controlloop.participant.intermediary.comm.MessageSender; @@ -99,14 +100,15 @@ public class ParticipantHandler implements Closeable { /** * Method which handles a participant health check event from clamp. * - * @param healthCheckMsg participant health check message + * @param participantStatusReqMsg participant participantStatusReq message */ - public void handleParticipantHealthCheck(final ParticipantHealthCheck healthCheckMsg) { - var response = new ParticipantResponseDetails(healthCheckMsg); - response.setResponseStatus(ParticipantResponseStatus.SUCCESS); - response.setResponseMessage(healthStatus.toString()); - - sender.sendResponse(response); + public void handleParticipantStatusReq(final ParticipantStatusReq participantStatusReqMsg) { + ParticipantStatus participantStatus = new ParticipantStatus(); + participantStatus.setParticipantId(participantId); + participantStatus.setParticipantStatistics(participantStatistics); + participantStatus.setParticipantType(participantType); + participantStatus.setHealthStatus(healthStatus); + sender.sendParticipantStatus(participantStatus); } /** @@ -127,13 +129,13 @@ public class ParticipantHandler implements Closeable { controlLoopHandler.handleControlLoopStateChange(stateChangeMsg); } - private void handleStateChange(ParticipantState newParticipantState, ParticipantResponseDetails response) { + private void handleStateChange(ParticipantState newParticipantState, ParticipantUpdateAck response) { if (state.equals(newParticipantState)) { - response.setResponseStatus(ParticipantResponseStatus.SUCCESS); - response.setResponseMessage("Participant already in state " + newParticipantState); + response.setResult(false); + response.setMessage("Participant already in state " + newParticipantState); } else { - response.setResponseStatus(ParticipantResponseStatus.SUCCESS); - response.setResponseMessage("Participant state changed from " + state + " to " + newParticipantState); + response.setResult(true); + response.setMessage("Participant state changed from " + state + " to " + newParticipantState); state = newParticipantState; } } @@ -150,9 +152,10 @@ public class ParticipantHandler implements Closeable { LOGGER.debug("No participant with this ID {}", definition.getName()); return null; } - var response = new ParticipantResponseDetails(); - handleStateChange(participantState, response); - sender.sendResponse(response); + + var participantUpdateAck = new ParticipantUpdateAck(); + handleStateChange(participantState, participantUpdateAck); + sender.sendParticipantUpdateAck(participantUpdateAck); return getParticipant(definition.getName(), definition.getVersion()); } @@ -257,6 +260,8 @@ public class ParticipantHandler implements Closeable { participantUpdateAck.setResponseTo(messageId); participantUpdateAck.setMessage("Participant Update Ack message"); participantUpdateAck.setResult(true); + participantUpdateAck.setParticipantId(participantId); + participantUpdateAck.setParticipantType(participantType); sender.sendParticipantUpdateAck(participantUpdateAck); } @@ -270,7 +275,6 @@ public class ParticipantHandler implements Closeable { heartbeat.setParticipantStatistics(participantStatistics); heartbeat.setParticipantType(participantType); heartbeat.setHealthStatus(healthStatus); - heartbeat.setMessage("Participant heartbeat message sent from -> " + participantId.getName()); return heartbeat; } } |