Package org.apache.tuscany.sca.binding.jms.context

Examples of org.apache.tuscany.sca.binding.jms.context.JMSBindingContext


   
    public Message invoke(Message msg) {
        Message responseMsg = invokeRequest(msg);
       
        // get the jms context
        JMSBindingContext context = msg.getBindingContext();
       
        if (context.getReplyToDestination() == null) {
            responseMsg.setBody(null);
        } else {
            responseMsg = invokeResponse(msg);
        }
       
View Full Code Here


    }
   
    public Message invokeRequest(Message msg) {
        try {       
            // get the jms context
            JMSBindingContext context = msg.getBindingContext();
            Session session = context.getJmsSession();
           
            MessageProducer producer = session.createProducer(context.getRequestDestination());
   
            // Set JMS header attributes in producer, not message.
            String opName = msg.getOperation().getName();
            if (jmsBinding.getOperationJMSTimeToLive(msg.getOperation().getName()) != null) {
                producer.setTimeToLive(jmsBinding.getOperationJMSTimeToLive(msg.getOperation().getName()));
View Full Code Here

            throw new JMSBindingException(e);
        }
    }
   
    public Message invokeResponse(Message msg) {
        JMSBindingContext context = msg.getBindingContext();
        try {
            Session session = context.getJmsResponseSession();
           
            javax.jms.Message requestMessage = (javax.jms.Message)msg.getBody();
                     
            String msgSelector = "JMSCorrelationID = '" +
                                 requestMessage.getJMSMessageID() +
                                 "'";
            MessageConsumer consumer = session.createConsumer(context.getReplyToDestination(), msgSelector)
           
            javax.jms.Message replyMsg;
            try {
                context.getJmsResourceFactory().startConnection();
                //jmsResourceFactory.startConnection();
                replyMsg = consumer.receive(context.getTimeToLive());
            } finally {
                consumer.close();
            }
            if (replyMsg == null) {
                throw new JMSBindingException("No reply message received on " +
                                              context.getReplyToDestination() +
                                              " for message id " +
                                              requestMessage.getJMSMessageID());
            }
           
            msg.setBody(replyMsg);
            return msg;
        } catch (JMSException e) {
            throw new JMSBindingException(e);
        } catch (NamingException e) {
            throw new JMSBindingException(e);
        } finally {
            try {
                context.closeJmsResponseSession();
                if (jmsResourceFactory.isConnectionClosedAfterUse())
                    jmsResourceFactory.closeResponseConnection();
            } catch (JMSException e) {
            }
        }
View Full Code Here

    }

    public Message invokeRequest(Message msg) {
        try {
            // get the jms context
            JMSBindingContext context = msg.getBindingContext();
            Session session = context.getJmsSession();

            javax.jms.Message requestMsg;

            if (((WireFormatJMSDefault) jmsBinding.getRequestWireFormat()).isUseBytesMessage()) {
                requestMsg = requestMessageProcessor.insertPayloadIntoJMSBytesMessage(session, msg.getBody(), this.inputWrapperMap.get(msg.getOperation().getName()));
            } else {
                requestMsg = requestMessageProcessor.insertPayloadIntoJMSTextMessage(session, msg.getBody(), this.inputWrapperMap.get(msg.getOperation().getName()));
            }

            msg.setBody(requestMsg);

            requestMsg.setJMSReplyTo(context.getReplyToDestination());

            return msg;
        } catch (JMSException e) {
            throw new JMSBindingException(e);
        }
View Full Code Here

        return next.invoke(invokeRequest(msg));
    }   
   
    public Message invokeRequest(Message msg) {
            // get the jms context
            JMSBindingContext context = msg.getBindingContext();
            javax.jms.Message jmsMsg = context.getJmsMsg();
           
            String operationName = requestMessageProcessor.getOperationName(jmsMsg);
            Operation operation = getTargetOperation(operationName, jmsMsg);
            msg.setOperation(operation);
View Full Code Here

        return msg;
    }

    public Message invokeRequest(Message msg) {
        // get the jms context
        JMSBindingContext context = msg.getBindingContext();
        javax.jms.Message jmsMsg = context.getJmsMsg();

        Operation op = msg.getOperation();
        List<DataType> inputDataTypes = op.getInputType().getLogical();

        Class<?> inputType = null;
        if (inputDataTypes.size() == 1) {
            inputType = inputDataTypes.get(0).getPhysical();
        }
        if (inputType != null && javax.jms.Message.class.isAssignableFrom(inputType)) {
            msg.setBody(new Object[] { jmsMsg });
           
            if (jmsMsg instanceof BytesMessage) {
                context.setUseBytesForWFJMSDefaultResponse(true);
            } else {
                context.setUseBytesForWFJMSDefaultResponse(false);
            }
        } else {

            // If there is only one arg we must add a wrapper if the operation is wrapper style
            OMElement wrapper = this.inputWrapperMap.get(msg.getOperation().getName());

            Object requestPayload;
            if (jmsMsg instanceof BytesMessage) {
                requestPayload = responseMessageProcessor.extractPayloadFromJMSBytesMessage(jmsMsg, wrapper);
                context.setUseBytesForWFJMSDefaultResponse(true);
            } else {
                requestPayload = responseMessageProcessor.extractPayloadFromJMSTextMessage(jmsMsg, wrapper );
                context.setUseBytesForWFJMSDefaultResponse(false);
            }

            msg.setBody(new Object[] { requestPayload });
        }
View Full Code Here

    }

    public Message invokeResponse(Message msg) {

        // get the jms context
        JMSBindingContext context = msg.getBindingContext();
        Session session = context.getJmsResponseSession();

        javax.jms.Message responseJMSMsg;
       
        boolean respondBytesMessage = context.isUseBytesForWFJMSDefaultResponse();
       
        if (msg.isFault()) {
            if (respondBytesMessage == true) {
                responseJMSMsg = requestMessageProcessor.createFaultJMSBytesMessage(session, (Throwable) msg.getBody());
            } else {
View Full Code Here

    }

    public org.apache.tuscany.sca.invocation.Message invoke(org.apache.tuscany.sca.invocation.Message tuscanyMsg) {
        try {
            // populate the message context with JMS binding information
            JMSBindingContext context = new JMSBindingContext();
            context.setJmsResourceFactory(jmsResourceFactory);
            tuscanyMsg.setBindingContext(context);
           
            // get a jms session to cover the creation and sending of the message
            Session session = context.getJmsSession();

            context.setRequestDestination(getRequestDestination(tuscanyMsg, session));
            context.setReplyToDestination(getReplyToDestination(session));
           
            try {
                tuscanyMsg = runtimeWire.getBindingInvocationChain().getHeadInvoker().invoke(tuscanyMsg);
            } catch (ServiceRuntimeException e) {
                if (e.getCause() instanceof InvocationTargetException) {
                    if ((e.getCause().getCause() instanceof RuntimeException)) {
                        tuscanyMsg.setFaultBody(e.getCause());
                    } else {
                        tuscanyMsg.setFaultBody(((InvocationTargetException)e.getCause()).getTargetException());
                    }
                } else if (e.getCause() instanceof FaultException) {
                    tuscanyMsg.setFaultBody(e.getCause());
                } else {
                    tuscanyMsg.setFaultBody(e);
                }
            } catch (IllegalStateException e) {
                tuscanyMsg.setFaultBody(e);
            } catch (Throwable e) {
                tuscanyMsg.setFaultBody(e);
            } finally {
                context.closeJmsSession();
                if (jmsResourceFactory.isConnectionClosedAfterUse()) {
                    jmsResourceFactory.closeConnection();
                }
            }
           
View Full Code Here

        }
    }

    public Message invoke(Message msg) {
            // get the jms context
            JMSBindingContext context = msg.getBindingContext();

            javax.jms.Message jmsMsg = msg.getBody();
   
            // JMS header attrs set on MessageProducer via interceptors.
                       
View Full Code Here

    }

    public Message invoke(Message msg) {
      try{
            // get the jms context
            JMSBindingContext context = msg.getBindingContext();
          javax.jms.Message jmsMsg = context.getJmsMsg();
         
          String token = jmsMsg.getStringProperty(policy.getTokenName().toString());
         
          Subject subject = SecurityUtil.getSubject(msg);
          TokenPrincipal principal = SecurityUtil.getPrincipal(subject, TokenPrincipal.class);
View Full Code Here

TOP

Related Classes of org.apache.tuscany.sca.binding.jms.context.JMSBindingContext

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.