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;
018    
019    import java.net.URI;
020    
021    import javax.jms.JMSException;
022    import javax.jms.XAConnection;
023    import javax.jms.XAConnectionFactory;
024    import javax.jms.XAQueueConnection;
025    import javax.jms.XAQueueConnectionFactory;
026    import javax.jms.XATopicConnection;
027    import javax.jms.XATopicConnectionFactory;
028    
029    import org.apache.activemq.management.JMSStatsImpl;
030    import org.apache.activemq.transport.Transport;
031    
032    /**
033     * A factory of {@link XAConnection} instances
034     * 
035     * 
036     */
037    public class ActiveMQXAConnectionFactory extends ActiveMQConnectionFactory implements XAConnectionFactory, XAQueueConnectionFactory, XATopicConnectionFactory {
038    
039        public ActiveMQXAConnectionFactory() {
040        }
041    
042        public ActiveMQXAConnectionFactory(String userName, String password, String brokerURL) {
043            super(userName, password, brokerURL);
044        }
045    
046        public ActiveMQXAConnectionFactory(String userName, String password, URI brokerURL) {
047            super(userName, password, brokerURL);
048        }
049    
050        public ActiveMQXAConnectionFactory(String brokerURL) {
051            super(brokerURL);
052        }
053    
054        public ActiveMQXAConnectionFactory(URI brokerURL) {
055            super(brokerURL);
056        }
057    
058        public XAConnection createXAConnection() throws JMSException {
059            return (XAConnection) createActiveMQConnection();
060        }
061    
062        public XAConnection createXAConnection(String userName, String password) throws JMSException {
063            return (XAConnection) createActiveMQConnection(userName, password);
064        }
065    
066        public XAQueueConnection createXAQueueConnection() throws JMSException {
067            return (XAQueueConnection) createActiveMQConnection();
068        }
069    
070        public XAQueueConnection createXAQueueConnection(String userName, String password) throws JMSException {
071            return (XAQueueConnection) createActiveMQConnection(userName, password);
072        }
073    
074        public XATopicConnection createXATopicConnection() throws JMSException {
075            return (XATopicConnection) createActiveMQConnection();
076        }
077    
078        public XATopicConnection createXATopicConnection(String userName, String password) throws JMSException {
079            return (XATopicConnection) createActiveMQConnection(userName, password);
080        }
081    
082        protected ActiveMQConnection createActiveMQConnection(Transport transport, JMSStatsImpl stats) throws Exception {
083            ActiveMQXAConnection connection = new ActiveMQXAConnection(transport, getClientIdGenerator(), getConnectionIdGenerator(), stats);
084            return connection;
085        }
086    }