use of eu.europa.ec.fisheries.schema.exchange.service.v1.ServiceResponseType in project UVMS-ExchangeModule-APP by UnionVMS.
the class ExchangeEventIncomingServiceBean method processMovement.
@Override
public void processMovement(@Observes @SetMovementEvent ExchangeMessageEvent message) {
try {
final TextMessage jmsMessage = message.getJmsMessage();
final String jmsMessageID = jmsMessage.getJMSMessageID();
SetMovementReportRequest request = JAXBMarshaller.unmarshallTextMessage(jmsMessage, SetMovementReportRequest.class);
log.info("[INFO] Processing Movement : {}", request);
String username;
SetReportMovementType setRepMovType = request.getRequest();
if (MovementSourceType.MANUAL.equals(setRepMovType.getMovement().getSource())) {
// A person has created a position
username = request.getUsername();
// Send some response to Movement, if it originated from there (manual movement)
ProcessedMovementAck response = MovementModuleResponseMapper.mapProcessedMovementAck(eu.europa.ec.fisheries.schema.movement.common.v1.AcknowledgeTypeType.OK, jmsMessageID, "Movement successfully processed");
producer.sendModuleAckMessage(jmsMessageID, MessageQueue.MOVEMENT_RESPONSE, JAXBMarshaller.marshallJaxBObjectToString(response));
} else {
// A plugin has reported a position
username = setRepMovType.getPluginType().name();
}
String pluginName = setRepMovType.getPluginName();
ServiceResponseType service = exchangeService.getService(pluginName);
PluginType pluginType = setRepMovType.getPluginType();
if (validate(setRepMovType, service, jmsMessage)) {
MovementBaseType baseMovement = setRepMovType.getMovement();
RawMovementType rawMovement = MovementMapper.getInstance().getMapper().map(baseMovement, RawMovementType.class);
final AssetId assetId = rawMovement.getAssetId();
if (assetId != null && assetId.getAssetIdList() != null) {
assetId.getAssetIdList().addAll(MovementMapper.mapAssetIdList(baseMovement.getAssetId().getAssetIdList()));
}
if (baseMovement.getMobileTerminalId() != null && baseMovement.getMobileTerminalId().getMobileTerminalIdList() != null) {
rawMovement.getMobileTerminal().getMobileTerminalIdList().addAll(MovementMapper.mapMobileTerminalIdList(baseMovement.getMobileTerminalId().getMobileTerminalIdList()));
}
rawMovement.setPluginType(pluginType.value());
rawMovement.setPluginName(pluginName);
rawMovement.setDateRecieved(setRepMovType.getTimestamp());
// TODO : Temporary - probably better to change corr id to have the same though the entire flow;
// TODO : then we can use this to send response to original caller from anywhere needed
rawMovement.setAckResponseMessageID(jmsMessageID);
log.info("[INFO] Logging received movement.");
exchangeLog.log(request, LogType.RECEIVE_MOVEMENT, ExchangeLogStatusTypeType.ISSUED, TypeRefType.MOVEMENT, JAXBMarshaller.marshallJaxBObjectToString(request), true);
forwardToRules(RulesModuleRequestMapper.createSetMovementReportRequest(PluginTypeMapper.map(pluginType), rawMovement, username), message, service);
log.info("[INFO] Finished forwarding received movement to rules module.");
} else {
log.debug("[ERROR] Validation error. Event sent to plugin {}", message);
}
} catch (ExchangeServiceException e) {
log.error("[ERROR] Couldn't get the Service type for the received message : {} {}", message, e);
} catch (ExchangeModelMarshallException e) {
log.error("[ERROR] Couldn't map to SetMovementReportRequest when processing movement from plugin:{} {}", message, e);
} catch (JMSException e) {
log.error("[ERROR] Failed to get response queue:{} {}", message, e);
} catch (RulesModelMapperException e) {
log.error("[ERROR] Failed to build Rules momvent request:{} {}", message, e);
} catch (ExchangeLogException e) {
log.error("[ERROR] Failed to log momvent request : {} {}", message, e);
}
}
use of eu.europa.ec.fisheries.schema.exchange.service.v1.ServiceResponseType in project UVMS-ExchangeModule-APP by UnionVMS.
the class ExchangeServiceBean method upsertSettings.
@Override
public ServiceResponseType upsertSettings(String serviceClassName, SettingListType settingListType, String username) throws ExchangeServiceException {
LOG.info("Upsert settings in service layer: {} {} {}", serviceClassName, settingListType, username);
try {
ServiceResponseType updatedSettings = serviceRegistryModel.updatePluginSettings(serviceClassName, settingListType, username);
sendAuditLogMessageForUpdateService(compressServiceClassName(serviceClassName), username);
return updatedSettings;
} catch (ExchangeModelException e) {
throw new ExchangeServiceException(e.getMessage());
}
}
use of eu.europa.ec.fisheries.schema.exchange.service.v1.ServiceResponseType in project UVMS-ExchangeModule-APP by UnionVMS.
the class ExchangeServiceBean method unregisterService.
/**
* {@inheritDoc}
*
* @param data
* @throws ExchangeServiceException
*/
@Override
public ServiceResponseType unregisterService(ServiceType data, String username) throws ExchangeServiceException {
LOG.info("Unregister service invoked in service layer: {} {}", data, username);
try {
ServiceResponseType serviceResponseType = serviceRegistryModel.unregisterService(data, username);
sendAuditLogMessageForUnregisterService(compressServiceClassName(serviceResponseType.getServiceClassName()), username);
return serviceResponseType;
} catch (ExchangeModelException ex) {
throw new ExchangeServiceException(ex.getMessage());
}
}
use of eu.europa.ec.fisheries.schema.exchange.service.v1.ServiceResponseType in project UVMS-ExchangeModule-APP by UnionVMS.
the class ExchangeServiceBean method updateServiceStatus.
@Override
public ServiceResponseType updateServiceStatus(String serviceClassName, StatusType status, String username) throws ExchangeServiceException {
LOG.info("Update service status invoked in service layer: {} {} {}", serviceClassName, status, username);
try {
ServiceResponseType updatedServiceStatus = serviceRegistryModel.updatePluginStatus(serviceClassName, status, username);
sendAuditLogMessageForUpdateServiceStatus(serviceClassName, status, username);
return updatedServiceStatus;
} catch (ExchangeModelException e) {
throw new ExchangeServiceException(e.getMessage());
}
}
use of eu.europa.ec.fisheries.schema.exchange.service.v1.ServiceResponseType in project UVMS-ExchangeModule-APP by UnionVMS.
the class PluginServiceBean method setServiceStatusOnRegister.
private void setServiceStatusOnRegister(String serviceClassName) throws ExchangeModelMapperException, ExchangeMessageException, ExchangeServiceException {
ServiceResponseType service = exchangeService.getService(serviceClassName);
if (service != null) {
StatusType status = service.getStatus();
if (StatusType.STARTED.equals(status)) {
LOG.info("Starting service {}", serviceClassName);
start(serviceClassName);
} else if (StatusType.STOPPED.equals(status)) {
LOG.info("Stopping service {}", serviceClassName);
stop(serviceClassName);
} else {
LOG.error("[ Status was null for service {} ]", serviceClassName);
}
}
}
Aggregations