Package org.apache.cxf.transport.jms.util

Examples of org.apache.cxf.transport.jms.util.ResourceCloser


       
        EndpointInfo endpointInfo = new EndpointInfo();
        endpointInfo.setAddress(JMSTestUtil.getFullAddress(address, broker.getBrokerURL()));
        JMSConfiguration jmsConfig = JMSConfigFactory.createFromEndpointInfo(staticBus, endpointInfo , null);
       
        ResourceCloser closer = new ResourceCloser();
        try {
            Connection connection = closer.register(JMSFactory.createConnection(jmsConfig));
            connection.start();
            Session session = closer.register(connection.createSession(false, Session.AUTO_ACKNOWLEDGE));
            Destination targetDest = jmsConfig.getTargetDestination(session);
            Destination replyToDestination = jmsConfig.getReplyToDestination(session, null);
            JMSSender sender = JMSFactory.createJmsSender(jmsConfig, null);
            Message jmsMessage = JMSTestUtil.buildJMSMessageFromTestCase(testcase, session, replyToDestination);
            sender.sendMessage(session, targetDest, jmsMessage);
            Message replyMessage = JMSUtil.receive(session, replyToDestination,
                                                   jmsMessage.getJMSMessageID(), 10000, true);
            checkReplyMessage(replyMessage, testcase);
        } catch (JMSException e) {
            throw JMSUtil.convertJmsException(e);
        } finally {
            closer.close();
        }
    }
View Full Code Here


        String testMsg = "Test Message";
        final byte[] testBytes = testMsg.getBytes(Charset.defaultCharset().name()); // TODO encoding
        JMSConfiguration jmsConfig = new JMSConfiguration();
        jmsConfig.setConnectionFactory(new ActiveMQConnectionFactory("vm://tesstMarshal?broker.persistent=false"));
       
        ResourceCloser closer = new ResourceCloser();
        try {
            Connection connection = JMSFactory.createConnection(jmsConfig);
            Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
            javax.jms.Message jmsMessage =
                JMSUtil.createAndSetPayload(testBytes, session, JMSConstants.BYTE_MESSAGE_TYPE);
            assertTrue("Message should have been of type BytesMessage ", jmsMessage instanceof BytesMessage);
        } finally {
            closer.close();
        }
       
    }
View Full Code Here

       
        JMSMessageHeadersType headers = getOrCreateJmsHeaders(outMessage);
        String userCID = headers.getJMSCorrelationID();
        assertIsNotAsyncSyncAndUserCID(exchange, userCID);

        ResourceCloser closer = new ResourceCloser();
        try {
            if (connection == null) {
                connection = JMSFactory.createConnection(jmsConfig);
            }
            Session session = closer.register(connection.createSession(jmsConfig.isSessionTransacted(),
                                                                       Session.AUTO_ACKNOWLEDGE));
            Destination targetDest = jmsConfig.getTargetDestination(session);
           
            Destination replyToDestination = null;
            if (!exchange.isOneWay()) {
                if (!exchange.isSynchronous() && staticReplyDestination == null) {
                    staticReplyDestination = jmsConfig.getReplyDestination(session);
                    getJMSListener(staticReplyDestination);
                }
                replyToDestination = jmsConfig.getReplyToDestination(session, headers.getJMSReplyTo());
            }
            connection.start();

            String messageType = jmsConfig.getMessageType();
            String correlationId = createCorrelationId(exchange, userCID);
            if (correlationId != null) {
                correlationMap.put(correlationId, exchange);
            }
           
            javax.jms.Message message = JMSMessageUtils.asJMSMessage(jmsConfig,
                                                                     outMessage,
                                                                     request,
                                                                     messageType,
                                                                     session, 
                                                                     correlationId,
                                                                     JMSConstants.JMS_CLIENT_REQUEST_HEADERS);
            if (replyToDestination != null) {
                message.setJMSReplyTo(replyToDestination);
            }

            JMSSender sender = JMSFactory.createJmsSender(jmsConfig, headers);

            synchronized (exchange) {
                sender.sendMessage(closer, session, targetDest, message);
                LOG.log(Level.INFO, "client sending request message "
                    + message.getJMSMessageID() + " to " + targetDest);
                headers.setJMSMessageID(message.getJMSMessageID());
                if (correlationId == null) {
                    // Warning: We might loose the reply if it already arrived at this point
                    correlationId = message.getJMSMessageID();
                    correlationMap.put(correlationId, exchange);
                }
            }
           
            /**
             * If the message is not oneWay we will expect to receive a reply on the listener.
             */
            if (!exchange.isOneWay() && (exchange.isSynchronous())) {
                Destination replyDestination = staticReplyDestination != null
                    ? staticReplyDestination : replyToDestination;
                javax.jms.Message replyMessage = JMSUtil.receive(session, replyDestination, correlationId,
                                                                 jmsConfig.getReceiveTimeout(),
                                                                 jmsConfig.isPubSubNoLocal());
                correlationMap.remove(correlationId);
                doReplyMessage(exchange, replyMessage);
            }
        } catch (JMSException e) {
            throw new RuntimeException(e.getMessage(), e);
        } finally {
            closer.close();
        }
    }
View Full Code Here

            return;
        }

        final Message outMessage = exchange.getOutMessage();

        ResourceCloser closer = new ResourceCloser();
        try {
            ConnectionFactory cf = jmsConfig.getConnectionFactory();
            Connection connection = closer.register(cf.createConnection());
            Session session = closer
                .register(connection.createSession(jmsConfig.isSessionTransacted(), Session.AUTO_ACKNOWLEDGE));

            final JMSMessageHeadersType messageProperties = (JMSMessageHeadersType)outMessage
                .get(JMSConstants.JMS_SERVER_RESPONSE_HEADERS);
            JMSMessageHeadersType inMessageProperties = (JMSMessageHeadersType)inMessage
                .get(JMSConstants.JMS_SERVER_REQUEST_HEADERS);
            initResponseMessageProperties(messageProperties, inMessageProperties);

            // setup the reply message
            final javax.jms.Message request = (javax.jms.Message)inMessage
                .get(JMSConstants.JMS_REQUEST_MESSAGE);
            final String msgType = JMSMessageUtils.isMtomEnabled(outMessage)
                ? JMSConstants.BINARY_MESSAGE_TYPE : JMSMessageUtils.getMessageType(request);
            if (isTimedOut(request)) {
                return;
            }

            Destination replyTo = getReplyToDestination(session, inMessage);
            if (replyTo == null) {
                throw new RuntimeException("No replyTo destination set");
            }

            getLogger().log(Level.FINE, "send out the message!");

            String correlationId = determineCorrelationID(request);
            javax.jms.Message reply = JMSMessageUtils.asJMSMessage(jmsConfig,
                                      outMessage,
                                      replyObj,
                                      msgType,
                                      session,
                                      correlationId, JMSConstants.JMS_SERVER_RESPONSE_HEADERS);
            JMSSender sender = JMSFactory.createJmsSender(jmsConfig, messageProperties);
            LOG.log(Level.FINE, "server sending reply: ", reply);
            sender.sendMessage(closer, session, replyTo, reply);
        } catch (JMSException ex) {
            throw JMSUtil.convertJmsException(ex);
        } finally {
            closer.close();
        }
    }
View Full Code Here

        endpointInfo.setAddress(address);
        JMSOldConfigHolder oldConfig = new JMSOldConfigHolder();
        JMSConfiguration jmsConfig = oldConfig
            .createJMSConfigurationFromEndpointInfo(staticBus, endpointInfo , null, true);
       
        ResourceCloser closer = new ResourceCloser();
        try {
            Connection connection = closer.register(JMSFactory.createConnection(jmsConfig));
            connection.start();
            Session session = closer.register(connection.createSession(false, Session.AUTO_ACKNOWLEDGE));
            Destination targetDest = jmsConfig.getTargetDestination(session);
            Destination replyToDestination = jmsConfig.getReplyToDestination(session, null);
            JMSSender sender = JMSFactory.createJmsSender(jmsConfig, null);
            Message jmsMessage = JMSTestUtil.buildJMSMessageFromTestCase(testcase, session, replyToDestination);
            sender.sendMessage(closer, session, targetDest, jmsMessage);
            Message replyMessage = JMSUtil.receive(session, replyToDestination,
                                                   jmsMessage.getJMSMessageID(), 10000, true);
            checkReplyMessage(replyMessage, testcase);
        } catch (JMSException e) {
            throw JMSUtil.convertJmsException(e);
        } finally {
            closer.close();
        }
    }
View Full Code Here

        }

        jmsConfig.ensureProperlyConfigured();       
        assertIsNotTextMessageAndMtom(outMessage);

        ResourceCloser closer = new ResourceCloser();
        try {
            Connection c = getConnection();
            Session session = closer.register(c.createSession(false,
                                                              Session.AUTO_ACKNOWLEDGE));
           
            if (exchange.isOneWay()) {
                sendMessage(request, outMessage, null, null, closer, session);
            } else {
                sendAndReceiveMessage(exchange, request, outMessage, closer, session);
            }
        } catch (JMSException e) {
            // Close connection so it will be refreshed on next try
            ResourceCloser.close(connection);
            this.connection = null;
            this.staticReplyDestination = null;
            if (this.jmsListener != null) {
                this.jmsListener.shutdown();
            }
            this.jmsListener = null;
            try {
                Thread.sleep(1000);
            } catch (InterruptedException e1) {
                // Ignore
            }
            throw JMSUtil.convertJmsException(e);
        } finally {
            closer.close();
        }
    }
View Full Code Here

            return;
        }

        final Message outMessage = exchange.getOutMessage();

        ResourceCloser closer = new ResourceCloser();
        try {
            Session session = closer
                .register(connection.createSession(false, Session.AUTO_ACKNOWLEDGE));

            final JMSMessageHeadersType messageProperties = (JMSMessageHeadersType)outMessage
                .get(JMSConstants.JMS_SERVER_RESPONSE_HEADERS);
            JMSMessageHeadersType inMessageProperties = (JMSMessageHeadersType)inMessage
                .get(JMSConstants.JMS_SERVER_REQUEST_HEADERS);
            initResponseMessageProperties(messageProperties, inMessageProperties);

            // setup the reply message
            final javax.jms.Message request = (javax.jms.Message)inMessage
                .get(JMSConstants.JMS_REQUEST_MESSAGE);
            final String msgType;
            if (JMSMessageUtils.isMtomEnabled(outMessage)
                && !jmsConfig.getMessageType().equals(JMSConstants.TEXT_MESSAGE_TYPE)) {
                //get chance to set messageType from JMSConfiguration with MTOM enabled
                msgType = jmsConfig.getMessageType();
            } else {
                msgType = JMSMessageUtils.getMessageType(request);
            }
            if (JMSConstants.TEXT_MESSAGE_TYPE.equals(msgType)
                && JMSMessageUtils.isMtomEnabled(outMessage)) {
                org.apache.cxf.common.i18n.Message msg =
                    new org.apache.cxf.common.i18n.Message("INVALID_MESSAGE_TYPE", LOG);
                throw new ConfigurationException(msg);
            }
           
            if (isTimedOut(request)) {
                return;
            }

            Destination replyTo = getReplyToDestination(session, inMessage);
            if (replyTo == null) {
                throw new RuntimeException("No replyTo destination set");
            }

            getLogger().log(Level.FINE, "send out the message!");

            String correlationId = determineCorrelationID(request);
            javax.jms.Message reply = JMSMessageUtils.asJMSMessage(jmsConfig,
                                      outMessage,
                                      replyObj,
                                      msgType,
                                      session,
                                      correlationId, JMSConstants.JMS_SERVER_RESPONSE_HEADERS);
            JMSSender sender = JMSFactory.createJmsSender(jmsConfig, messageProperties);
            LOG.log(Level.FINE, "server sending reply: ", reply);
            sender.sendMessage(session, replyTo, reply);
        } catch (JMSException ex) {
            throw JMSUtil.convertJmsException(ex);
        } finally {
            closer.close();
        }
    }
View Full Code Here

TOP

Related Classes of org.apache.cxf.transport.jms.util.ResourceCloser

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.