001    /**
002     * Licensed to the Apache Software Foundation (ASF) under one or more
003     * contributor license agreements.  See the NOTICE file distributed with
004     * this work for additional information regarding copyright ownership.
005     * The ASF licenses this file to You under the Apache License, Version 2.0
006     * (the "License"); you may not use this file except in compliance with
007     * the License.  You may obtain a copy of the License at
008     *
009     *      http://www.apache.org/licenses/LICENSE-2.0
010     *
011     * Unless required by applicable law or agreed to in writing, software
012     * distributed under the License is distributed on an "AS IS" BASIS,
013     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
014     * See the License for the specific language governing permissions and
015     * limitations under the License.
016     */
017    package org.apache.activemq.camel;
018    
019    import javax.jms.JMSException;
020    import javax.jms.Message;
021    import javax.jms.Queue;
022    import javax.jms.QueueSender;
023    
024    import org.apache.activemq.ActiveMQSession;
025    import org.apache.camel.Endpoint;
026    
027    /**
028     * A JMS {@link javax.jms.QueueSender} which sends message exchanges to a Camel
029     * {@link org.apache.camel.Endpoint}
030     * 
031     * 
032     */
033    public class CamelQueueSender extends CamelMessageProducer implements QueueSender {
034    
035        public CamelQueueSender(CamelQueue destination, Endpoint endpoint, ActiveMQSession session) throws JMSException {
036            super(destination, endpoint, session);
037        }
038    
039        /**
040         * Gets the queue associated with this <CODE>QueueSender</CODE>.
041         * 
042         * @return this sender's queue
043         * @throws JMSException if the JMS provider fails to get the queue for this
044         *                 <CODE>QueueSender</CODE> due to some internal error.
045         */
046    
047        public Queue getQueue() throws JMSException {
048            return (Queue)super.getDestination();
049        }
050    
051        /**
052         * Sends a message to a queue for an unidentified message producer. Uses the
053         * <CODE>QueueSender</CODE>'s default delivery mode, priority, and time
054         * to live. <p/> <p/> Typically, a message producer is assigned a queue at
055         * creation time; however, the JMS API also supports unidentified message
056         * producers, which require that the queue be supplied every time a message
057         * is sent.
058         * 
059         * @param queue the queue to send this message to
060         * @param message the message to send
061         * @throws JMSException if the JMS provider fails to send the message due to
062         *                 some internal error.
063         * @see javax.jms.MessageProducer#getDeliveryMode()
064         * @see javax.jms.MessageProducer#getTimeToLive()
065         * @see javax.jms.MessageProducer#getPriority()
066         */
067    
068        public void send(Queue queue, Message message) throws JMSException {
069            super.send(queue, message);
070        }
071    
072        /**
073         * Sends a message to a queue for an unidentified message producer,
074         * specifying delivery mode, priority and time to live. <p/> <p/> Typically,
075         * a message producer is assigned a queue at creation time; however, the JMS
076         * API also supports unidentified message producers, which require that the
077         * queue be supplied every time a message is sent.
078         * 
079         * @param queue the queue to send this message to
080         * @param message the message to send
081         * @param deliveryMode the delivery mode to use
082         * @param priority the priority for this message
083         * @param timeToLive the message's lifetime (in milliseconds)
084         * @throws JMSException if the JMS provider fails to send the message due to
085         *                 some internal error.
086         */
087    
088        public void send(Queue queue, Message message, int deliveryMode, int priority, long timeToLive) throws JMSException {
089            super.send(queue, message, deliveryMode, priority, timeToLive);
090        }
091    }