@Override public MALMessageHeader getMessageHeader() { return msg.getHeader(); }
/** * 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); } }
/** * 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); }
/** * 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); }
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()); } } }
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()))); } }
@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()); } } }
@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()); } } }
static GENMessageHeader createReturnHeader(MALMessage sourceMessage, boolean isError) { return createReturnHeader(sourceMessage, isError, (short) (sourceMessage.getHeader().getInteractionStage().getValue() + 1)); }
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 MALMessage initiateOnewayInteraction(final MessageDetails details, MALMessage msg) throws MALInteractionException, MALException { try { msg = securityManager.check(msg); details.endpoint.sendMessage(msg); } catch (IllegalArgumentException ex) { throw new MALException("ERROR: Error with one way send : IllegalArgumentException : ", ex); } catch (MALException ex) { MALContextFactoryImpl.LOGGER.log(Level.WARNING, "Error with one way send : {0}", msg.getHeader().getURITo()); throw ex; } return msg; }
private MALMessage initiateAsynchronousInteraction(final MessageDetails details, MALMessage msg) throws MALInteractionException, MALException { try { msg = securityManager.check(msg); details.endpoint.sendMessage(msg); } catch (IllegalArgumentException ex) { throw new MALException("IllegalArgumentException", ex); } catch (MALException ex) { MALContextFactoryImpl.LOGGER.log(Level.WARNING, "Error with consumer : {0}", msg.getHeader().getURITo()); throw ex; } return msg; }
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); } }
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); } }
final MALBrokerBindingImpl brokerHandler = brokerBindingMap.get(msg.getHeader().getURITo().getValue()); QoSLevel lvl = brokerHandler.getBrokerImpl().getProviderQoSLevel(msg.getHeader()); if (null == lvl) lvl = msg.getHeader().getQoSlevel(); msg.getHeader(), lvl, MALPubSubOperation.PUBLISH_DEREGISTER_ACK_STAGE, msg.getHeader(), MALPubSubOperation.PUBLISH_DEREGISTER_ACK_STAGE, new MALStandardError(MALHelper.DESTINATION_UNKNOWN_ERROR_NUMBER,
@Override public synchronized MessageHandlerDetails handleStage(final MALMessage msg) throws MALInteractionException { if (!receivedInitialStage) { if ((interactionType == msg.getHeader().getInteractionType().getOrdinal()) && checkStage(msg.getHeader().getInteractionStage().getValue())) { receivedInitialStage = true; return new MessageHandlerDetails(true, msg); } else { logUnexpectedTransitionError(msg.getHeader().getInteractionType().getOrdinal(), msg.getHeader().getInteractionStage().getValue()); return new MessageHandlerDetails(false, msg, MALHelper.INCORRECT_STATE_ERROR_NUMBER); } } else { logUnexpectedTransitionError(interactionType, interactionStage); return new MessageHandlerDetails(false, msg, MALHelper.INCORRECT_STATE_ERROR_NUMBER); } }
private void internalHandleInvoke(final MALMessage msg, final Address address) throws MALInteractionException { InvokeInteractionImpl interaction = new InvokeInteractionImpl(sender, address, msg); try { try { MALContextFactoryImpl.LOGGER.log(Level.FINE, "internalHandleInvoke for {0} type {1}", new Object[] { msg.getHeader().getTransactionId(), address.handler }); address.handler.handleInvoke(interaction, msg.getBody()); } catch (MALInteractionException ex) { interaction.sendError(ex.getStandardError()); } } catch (MALException ex) { try { interaction.sendError(new MALStandardError(MALHelper.INTERNAL_ERROR_NUMBER, new Union(ex.getLocalizedMessage()))); } catch (MALException noex) { // this exception cannot actually be thrown in this implmentation, therefore we can safely ignore it } } }
@Override public MALMessage asyncRegister(final EntityKeyList entityKeys, final MALPublishInteractionListener listener) throws IllegalArgumentException, MALInteractionException, MALException { final MessageDetails details = new MessageDetails(parent.getEndpoint(), parent.getURI(), null, parent.getBrokerURI(), operation.getService(), parent.getAuthenticationId(), domain, networkZone, sessionType, sessionName, remotePublisherQos, remotePublisherQosProps, remotePublisherPriority); final MALMessage msg = handler.publishRegisterAsync(details, operation, entityKeys, listener); setTransId(parent.getBrokerURI(), domain, networkZone.getValue(), sessionType, sessionName.getValue(), msg.getHeader().getTransactionId()); return msg; }
static GENMessageHeader createReturnHeader(MALMessage sourceMessage, boolean isError, short stage) { GENMessageHeader hdr = new GENMessageHeader(); MALMessageHeader srcHdr = sourceMessage.getHeader(); hdr.setURIFrom(srcHdr.getURITo()); hdr.setURITo(srcHdr.getURIFrom()); hdr.setAuthenticationId(new Blob(JMSTransport.authId)); hdr.setTimestamp(new Time(new java.util.Date().getTime())); hdr.setQoSlevel(srcHdr.getQoSlevel()); hdr.setPriority(srcHdr.getPriority()); hdr.setDomain(srcHdr.getDomain()); hdr.setNetworkZone(srcHdr.getNetworkZone()); hdr.setSession(srcHdr.getSession()); hdr.setSessionName(srcHdr.getSessionName()); hdr.setInteractionType(srcHdr.getInteractionType()); hdr.setInteractionStage(new UOctet(stage)); hdr.setTransactionId(srcHdr.getTransactionId()); hdr.setServiceArea(srcHdr.getServiceArea()); hdr.setService(srcHdr.getService()); hdr.setOperation(srcHdr.getOperation()); hdr.setAreaVersion(srcHdr.getAreaVersion()); hdr.setIsErrorMessage(isError); return hdr; }