@Override protected void informListener(final MALMessage msg) throws MALException { if (msg.getHeader().getIsErrorMessage()) { responseHolder.getListener().requestErrorReceived(msg.getHeader(), (MALErrorBody) msg.getBody(), msg.getQoSProperties()); } else { responseHolder.getListener().requestResponseReceived(msg.getHeader(), msg.getBody(), msg.getQoSProperties()); } } }
protected MessageHandlerDetails(boolean isAckStage, MALMessage src, UInteger errNum) { this.ackStage = isAckStage; src.getHeader().setIsErrorMessage(true); this.message = new DummyMessage(src.getHeader(), new DummyErrorBody(new MALStandardError(errNum, null)), src.getQoSProperties()); this.needToReturnAnException = true; }
private void internalHandleSubmit(final MALMessage msg, final Address address) throws MALInteractionException { SubmitInteractionImpl interaction = new SubmitInteractionImpl(sender, address, msg); try { try { MALContextFactoryImpl.LOGGER.log(Level.FINE, "internalHandleSubmit for {0} type {1}", new Object[] { msg.getHeader().getTransactionId(), address.handler }); address.handler.handleSubmit(interaction, msg.getBody()); } catch (MALInteractionException ex) { interaction.sendError(ex.getStandardError()); } } catch (MALException ex) { sender.returnError(address, msg.getHeader(), MALSubmitOperation.SUBMIT_ACK_STAGE, ex); } }
@Override public MALMessageHeader getMessageHeader() { return msg.getHeader(); }
private void internalHandleSend(final MALMessage msg, final Address address) throws MALInteractionException { try { MALContextFactoryImpl.LOGGER.log(Level.FINE, "internalHandleSend for type {0}", address.handler); address.handler.handleSend(new SendInteractionImpl(sender, msg), msg.getBody()); } catch (MALException ex) { MALContextFactoryImpl.LOGGER.log(Level.WARNING, "Error generated during reception of SEND pattern, dropping: {0}", ex); } }
private void internalHandleRequest(final MALMessage msg, final Address address) throws MALInteractionException { RequestInteractionImpl interaction = new RequestInteractionImpl(sender, address, msg); try { try { MALContextFactoryImpl.LOGGER.log(Level.FINE, "internalHandleRequest for {0} type {1}", new Object[] { msg.getHeader().getTransactionId(), address.handler }); address.handler.handleRequest(interaction, msg.getBody()); } catch (MALInteractionException ex) { interaction.sendError(ex.getStandardError()); } } catch (MALException ex) { sender.returnError(address, msg.getHeader(), MALRequestOperation.REQUEST_RESPONSE_STAGE, ex); } }
/** * Returns an error to the consumer. * * @param stage The stage to use. * @param error The error to send. * @return the sent message. * @throws MALException On error. */ protected MALMessage returnError(final UOctet stage, final MALStandardError error) throws MALException { return sender.returnError(address, msg.getHeader(), stage, error); } }
public MALMessage getResult() throws MALInteractionException, MALException { if (inError) { throw new MALInteractionException(((MALErrorBody) result.getBody()).getError()); } return result; }
protected void informListener(final MALMessage msg) throws MALException { if (msg.getHeader().getIsErrorMessage()) { responseHolder.getListener().submitErrorReceived(msg.getHeader(), (MALErrorBody) msg.getBody(), msg.getQoSProperties()); } else { responseHolder.getListener().submitAckReceived(msg.getHeader(), msg.getQoSProperties()); } } }
private void internalHandleDeregister(final MALMessage msg, final Address address) throws MALInteractionException final MALBrokerBindingImpl brokerHandler = brokerBindingMap.get(msg.getHeader().getURITo().getValue()); brokerHandler.getBrokerImpl().getHandler().handleDeregister(interaction, (MALDeregisterBody) msg.getBody()); brokerHandler.removeSubscriber(msg.getHeader().getURIFrom().getValue()); msg.getHeader(), msg.getHeader().getQoSlevel(), MALPubSubOperation.DEREGISTER_ACK_STAGE, interaction.getOperation(), msg.getHeader(), MALPubSubOperation.DEREGISTER_ACK_STAGE, ex); msg.getHeader(), MALPubSubOperation.DEREGISTER_ACK_STAGE, new MALStandardError(MALHelper.DESTINATION_UNKNOWN_ERROR_NUMBER,
/** * Returns a response to the consumer. * * @param stage Stage to use. * @param result Message body. * @return the sent message. * @throws MALException On error. */ protected MALMessage returnResponse(final UOctet stage, final Object... result) throws MALException { return sender.returnResponse(address, msg.getHeader(), msg.getHeader().getQoSlevel(), stage, operation, qosProperties, result); }
@Override protected void informListener(final MALMessage msg) throws MALException { if (msg.getHeader().getIsErrorMessage()) { responseHolder.getListener().registerErrorReceived(msg.getHeader(), (MALErrorBody) msg.getBody(), msg.getQoSProperties()); } else if ((MALPubSubOperation._PUBLISH_REGISTER_ACK_STAGE == msg.getHeader().getInteractionStage().getValue()) || (MALPubSubOperation._REGISTER_ACK_STAGE == msg.getHeader().getInteractionStage().getValue())) { responseHolder.getListener().registerAckReceived(msg.getHeader(), msg.getQoSProperties()); } else { responseHolder.getListener().deregisterAckReceived(msg.getHeader(), msg.getQoSProperties()); } } }
final MALBrokerBindingImpl brokerHandler = brokerBindingMap.get(msg.getHeader().getURITo().getValue()); if (msg.getBody() instanceof MALRegisterBody) brokerHandler.addSubscriber(msg.getHeader().getURIFrom().getValue()); brokerHandler.getBrokerImpl().getHandler().handleRegister(interaction, (MALRegisterBody) msg.getBody()); msg.getHeader(), msg.getHeader().getQoSlevel(), MALPubSubOperation.REGISTER_ACK_STAGE, interaction.getOperation(), msg.getHeader(), MALPubSubOperation.REGISTER_ACK_STAGE, new MALStandardError(MALHelper.BAD_ENCODING_ERROR_NUMBER, msg.getHeader(), MALPubSubOperation.REGISTER_ACK_STAGE, new MALStandardError(MALHelper.DESTINATION_UNKNOWN_ERROR_NUMBER,
/** * Returns an encoded response to the consumer. * * @param stage Stage to use. * @param body Encoded message body. * @return the sent message. * @throws MALException On error. */ protected MALMessage returnResponse(final UOctet stage, final MALEncodedBody body) throws MALException { return sender.returnResponse(address, msg.getHeader(), msg.getHeader().getQoSlevel(), stage, operation, qosProperties, body); }
private void internalHandleNotify(final MALMessage msg) throws MALInteractionException, MALException final MALMessageHeader hdr = msg.getHeader(); final MALErrorBody err = (MALErrorBody) msg.getBody(); for (Map.Entry<String, MALInteractionListener> e : lists.entrySet()) e.getValue().notifyErrorReceived(hdr, err, msg.getQoSProperties()); final MALNotifyBody notifyBody = (MALNotifyBody) msg.getBody(); final MALInteractionListener rcv = ipsmap.getNotifyListener(hdr.getURITo(), notifyBody.getSubscriptionId()); rcv.notifyReceived(hdr, notifyBody, msg.getQoSProperties());
final MALBrokerBindingImpl brokerHandler = brokerBindingMap.get(msg.getHeader().getURITo().getValue()); if (msg.getBody() instanceof MALPublishRegisterBody) brokerHandler.getBrokerImpl().getHandler().handlePublishRegister(interaction, (MALPublishRegisterBody) msg.getBody()); final QoSLevel lvl = brokerHandler.getBrokerImpl().getProviderQoSLevel(msg.getHeader()); msg.getHeader(), lvl, MALPubSubOperation.PUBLISH_REGISTER_ACK_STAGE, msg.getHeader(), MALPubSubOperation.PUBLISH_REGISTER_ACK_STAGE, new MALStandardError(MALHelper.BAD_ENCODING_ERROR_NUMBER, msg.getHeader(), MALPubSubOperation.PUBLISH_REGISTER_ACK_STAGE, new MALStandardError(MALHelper.DESTINATION_UNKNOWN_ERROR_NUMBER,
if (msg.getHeader().getIsErrorMessage()) if (msg.getBody() instanceof MALErrorBody) final MALPublishInteractionListener list = ipsmap.getPublishListener(msg.getHeader().getURITo(), msg.getHeader()); list.publishErrorReceived(msg.getHeader(), (MALErrorBody) msg.getBody(), msg.getQoSProperties()); "Unknown publisher for PUBLISH error: {0}", msg.getHeader().getURITo()); ipsmap.listPublishListeners(); final MALBrokerBindingImpl brokerHandler = brokerBindingMap.get(msg.getHeader().getURITo().getValue()); if (msg.getBody() instanceof MALPublishBody) brokerHandler.getBrokerImpl().getHandler().handlePublish(interaction, (MALPublishBody) msg.getBody()); msg.getHeader(), MALPubSubOperation.PUBLISH_STAGE, ex.getStandardError()); msg.getHeader(), MALPubSubOperation.PUBLISH_STAGE, ex); "Unexpected body type for PUBLISH: {0}", msg.getHeader().getURITo()); sender.returnError(address, msg.getHeader(),
BaseInteractionImpl(final MessageSend sender, final Address address, final MALMessage msg) throws MALInteractionException { this.sender = sender; this.address = address; this.msg = msg; this.operation = MALContextFactory.lookupArea(msg.getHeader().getServiceArea(), msg.getHeader().getAreaVersion()) .getServiceByNumber(msg.getHeader().getService()) .getOperationByNumber(msg.getHeader().getOperation()); if (null == this.operation) { throw new MALInteractionException(new MALStandardError(MALHelper.UNSUPPORTED_OPERATION_ERROR_NUMBER, new Union(msg.getHeader().getServiceArea() + "::" + msg.getHeader().getService() + "::" + msg.getHeader().getOperation()))); } }