Search in sources :

Example 21 with ProtocolResponseMessage

use of com.alliander.osgp.shared.infra.jms.ProtocolResponseMessage in project Protocol-Adapter-OSLP by OSGP.

the class DeviceRequestMessageProcessor method handleScheduledEmptyDeviceResponse.

protected void handleScheduledEmptyDeviceResponse(final DeviceResponse deviceResponse, final ResponseMessageSender responseMessageSender, final String domain, final String domainVersion, final String messageType, final boolean isScheduled, final int retryCount) {
    ResponseMessageResultType result = ResponseMessageResultType.OK;
    TechnicalException ex = null;
    try {
        final EmptyDeviceResponse response = (EmptyDeviceResponse) deviceResponse;
        this.deviceResponseService.handleDeviceMessageStatus(response.getStatus());
    } catch (final TechnicalException e) {
        LOGGER.error("Device Response Exception", e);
        result = ResponseMessageResultType.NOT_OK;
        ex = e;
    }
    final DeviceMessageMetadata deviceMessageMetadata = new DeviceMessageMetadata(deviceResponse.getDeviceIdentification(), deviceResponse.getOrganisationIdentification(), deviceResponse.getCorrelationUid(), messageType, MessagePriorityEnum.DEFAULT.getPriority());
    final ProtocolResponseMessage responseMessage = ProtocolResponseMessage.newBuilder().domain(domain).domainVersion(domainVersion).deviceMessageMetadata(deviceMessageMetadata).result(result).osgpException(ex).scheduled(isScheduled).retryCount(retryCount).build();
    responseMessageSender.send(responseMessage);
}
Also used : TechnicalException(com.alliander.osgp.shared.exceptionhandling.TechnicalException) ProtocolResponseMessage(com.alliander.osgp.shared.infra.jms.ProtocolResponseMessage) DeviceMessageMetadata(com.alliander.osgp.shared.infra.jms.DeviceMessageMetadata) ResponseMessageResultType(com.alliander.osgp.shared.infra.jms.ResponseMessageResultType) EmptyDeviceResponse(com.alliander.osgp.adapter.protocol.oslp.elster.device.responses.EmptyDeviceResponse)

Example 22 with ProtocolResponseMessage

use of com.alliander.osgp.shared.infra.jms.ProtocolResponseMessage in project Protocol-Adapter-OSLP by OSGP.

the class DeviceRequestMessageProcessor method handleError.

protected void handleError(final Exception e, final String correlationUid, final String organisationIdentification, final String deviceIdentification, final String domain, final String domainVersion, final String messageType) {
    LOGGER.error("Error while processing message", e);
    final TechnicalException ex = new TechnicalException(ComponentType.PROTOCOL_OSLP, UNEXPECTED_EXCEPTION, e);
    final DeviceMessageMetadata deviceMessageMetadata = new DeviceMessageMetadata(deviceIdentification, organisationIdentification, correlationUid, messageType, MessagePriorityEnum.DEFAULT.getPriority());
    final ProtocolResponseMessage protocolResponseMessage = ProtocolResponseMessage.newBuilder().domain(domain).domainVersion(domainVersion).deviceMessageMetadata(deviceMessageMetadata).result(ResponseMessageResultType.NOT_OK).osgpException(ex).build();
    this.responseMessageSender.send(protocolResponseMessage);
}
Also used : TechnicalException(com.alliander.osgp.shared.exceptionhandling.TechnicalException) ProtocolResponseMessage(com.alliander.osgp.shared.infra.jms.ProtocolResponseMessage) DeviceMessageMetadata(com.alliander.osgp.shared.infra.jms.DeviceMessageMetadata)

Example 23 with ProtocolResponseMessage

use of com.alliander.osgp.shared.infra.jms.ProtocolResponseMessage in project Protocol-Adapter-OSLP by OSGP.

the class DeviceRequestMessageProcessor method handleEmptyDeviceResponse.

protected void handleEmptyDeviceResponse(final DeviceResponse deviceResponse, final ResponseMessageSender responseMessageSender, final String domain, final String domainVersion, final String messageType, final int retryCount) {
    ResponseMessageResultType result = ResponseMessageResultType.OK;
    TechnicalException ex = null;
    try {
        final EmptyDeviceResponse response = (EmptyDeviceResponse) deviceResponse;
        this.deviceResponseService.handleDeviceMessageStatus(response.getStatus());
    } catch (final TechnicalException e) {
        LOGGER.error("Device Response Exception", e);
        result = ResponseMessageResultType.NOT_OK;
        ex = e;
    }
    final DeviceMessageMetadata deviceMessageMetadata = new DeviceMessageMetadata(deviceResponse.getDeviceIdentification(), deviceResponse.getOrganisationIdentification(), deviceResponse.getCorrelationUid(), messageType, MessagePriorityEnum.DEFAULT.getPriority());
    final ProtocolResponseMessage responseMessage = ProtocolResponseMessage.newBuilder().domain(domain).domainVersion(domainVersion).deviceMessageMetadata(deviceMessageMetadata).result(result).osgpException(ex).retryCount(retryCount).build();
    responseMessageSender.send(responseMessage);
}
Also used : TechnicalException(com.alliander.osgp.shared.exceptionhandling.TechnicalException) ProtocolResponseMessage(com.alliander.osgp.shared.infra.jms.ProtocolResponseMessage) DeviceMessageMetadata(com.alliander.osgp.shared.infra.jms.DeviceMessageMetadata) ResponseMessageResultType(com.alliander.osgp.shared.infra.jms.ResponseMessageResultType) EmptyDeviceResponse(com.alliander.osgp.adapter.protocol.oslp.elster.device.responses.EmptyDeviceResponse)

Example 24 with ProtocolResponseMessage

use of com.alliander.osgp.shared.infra.jms.ProtocolResponseMessage in project Protocol-Adapter-OSLP by OSGP.

the class DeviceRequestMessageProcessor method handleExpectedError.

protected void handleExpectedError(final Exception e, final String correlationUid, final String organisationIdentification, final String deviceIdentification, final String domain, final String domainVersion, final String messageType) {
    LOGGER.error("Expected error while processing message", e);
    final FunctionalException ex = new FunctionalException(FunctionalExceptionType.VALIDATION_ERROR, ComponentType.PROTOCOL_OSLP, e);
    final DeviceMessageMetadata deviceMessageMetadata = new DeviceMessageMetadata(deviceIdentification, organisationIdentification, correlationUid, messageType, MessagePriorityEnum.DEFAULT.getPriority());
    final ProtocolResponseMessage protocolResponseMessage = ProtocolResponseMessage.newBuilder().domain(domain).domainVersion(domainVersion).deviceMessageMetadata(deviceMessageMetadata).result(ResponseMessageResultType.NOT_OK).osgpException(ex).build();
    this.responseMessageSender.send(protocolResponseMessage);
}
Also used : ProtocolResponseMessage(com.alliander.osgp.shared.infra.jms.ProtocolResponseMessage) FunctionalException(com.alliander.osgp.shared.exceptionhandling.FunctionalException) DeviceMessageMetadata(com.alliander.osgp.shared.infra.jms.DeviceMessageMetadata)

Example 25 with ProtocolResponseMessage

use of com.alliander.osgp.shared.infra.jms.ProtocolResponseMessage in project Protocol-Adapter-OSLP by OSGP.

the class DeviceResponseMessageSender method send.

@Override
public void send(final ResponseMessage responseMessage) {
    if (!(responseMessage instanceof ProtocolResponseMessage)) {
        LOGGER.error("Only ProtocolResponseMessage type is expected for DeviceResponseMessageSender");
        return;
    }
    final ProtocolResponseMessage msg = (ProtocolResponseMessage) responseMessage;
    if (!this.checkMessage(msg)) {
        return;
    }
    this.sendMessage(msg);
}
Also used : ProtocolResponseMessage(com.alliander.osgp.shared.infra.jms.ProtocolResponseMessage)

Aggregations

ProtocolResponseMessage (com.alliander.osgp.shared.infra.jms.ProtocolResponseMessage)28 DeviceMessageMetadata (com.alliander.osgp.shared.infra.jms.DeviceMessageMetadata)26 ResponseMessageResultType (com.alliander.osgp.shared.infra.jms.ResponseMessageResultType)17 OsgpException (com.alliander.osgp.shared.exceptionhandling.OsgpException)15 TechnicalException (com.alliander.osgp.shared.exceptionhandling.TechnicalException)15 JMSException (javax.jms.JMSException)12 IOException (java.io.IOException)6 DeviceStatusDto (com.alliander.osgp.dto.valueobjects.DeviceStatusDto)4 Serializable (java.io.Serializable)4 GetStatusDeviceResponse (com.alliander.osgp.adapter.protocol.oslp.elster.device.responses.GetStatusDeviceResponse)3 EmptyDeviceResponse (com.alliander.osgp.adapter.protocol.oslp.elster.device.responses.EmptyDeviceResponse)2 ConfigurationDto (com.alliander.osgp.dto.valueobjects.ConfigurationDto)2 FirmwareVersionDto (com.alliander.osgp.dto.valueobjects.FirmwareVersionDto)2 PowerUsageHistoryResponseMessageDataContainerDto (com.alliander.osgp.dto.valueobjects.PowerUsageHistoryResponseMessageDataContainerDto)2 FunctionalException (com.alliander.osgp.shared.exceptionhandling.FunctionalException)2 NotSupportedException (com.alliander.osgp.shared.exceptionhandling.NotSupportedException)2 DaDeviceResponse (com.alliander.osgp.adapter.protocol.iec61850.device.da.rtu.DaDeviceResponse)1 EmptyDeviceResponse (com.alliander.osgp.adapter.protocol.iec61850.device.ssld.responses.EmptyDeviceResponse)1 GetConfigurationDeviceResponse (com.alliander.osgp.adapter.protocol.iec61850.device.ssld.responses.GetConfigurationDeviceResponse)1 GetDataDeviceResponse (com.alliander.osgp.adapter.protocol.iec61850.device.ssld.responses.GetDataDeviceResponse)1