From: Adrian B. <ej...@us...> - 2003-08-28 19:51:16
|
User: ejort Date: 03/08/28 12:51:11 Modified: src/main/org/jboss/jms ConnectionFactoryHelper.java Log: Port the JMS1.1 interfaces from old head. Implement the new interfaces in jbossmq and jmsra We need some tests for the new JMS1.1 API Revision Changes Path 1.7 +99 -26 jboss/src/main/org/jboss/jms/ConnectionFactoryHelper.java Index: ConnectionFactoryHelper.java =================================================================== RCS file: /cvsroot/jboss/jboss/src/main/org/jboss/jms/ConnectionFactoryHelper.java,v retrieving revision 1.6 retrieving revision 1.7 diff -u -r1.6 -r1.7 --- ConnectionFactoryHelper.java 12 Jan 2002 21:14:28 -0000 1.6 +++ ConnectionFactoryHelper.java 28 Aug 2003 19:51:11 -0000 1.7 @@ -8,11 +8,13 @@ import javax.jms.JMSException; import javax.jms.Connection; +import javax.jms.ConnectionFactory; import javax.jms.QueueConnection; import javax.jms.QueueConnectionFactory; -import javax.jms.XAQueueConnectionFactory; import javax.jms.TopicConnection; import javax.jms.TopicConnectionFactory; +import javax.jms.XAConnectionFactory; +import javax.jms.XAQueueConnectionFactory; import javax.jms.XATopicConnectionFactory; import org.jboss.logging.Logger; @@ -21,7 +23,7 @@ * A helper for creating connections from jms connection factories. * * @author <a href="mailto:ja...@pl...">Jason Dillon</a> - * @version $Revision: 1.6 $ + * @version $Revision: 1.7 $ */ public class ConnectionFactoryHelper { @@ -29,6 +31,83 @@ private static Logger log = Logger.getLogger(ConnectionFactoryHelper.class); /** + * Create a connection from the given factory. An XA connection will + * be created if possible. + * + * @param factory An object that implements ConnectionFactory, + * XAQConnectionFactory + * @param username The username to use or null for no user. + * @param password The password for the given username or null if no + * username was specified. + * @return A queue connection. + * + * @throws JMSException Failed to create connection. + * @throws IllegalArgumentException Factory is null or invalid. + */ + public static Connection createConnection(final Object factory, + final String username, + final String password) + throws JMSException + { + if (factory == null) + throw new IllegalArgumentException("factory is null"); + + boolean debug = log.isDebugEnabled(); + if (debug) + { + log.debug("using connection factory: " + factory); + log.debug("using username/password: " + + String.valueOf(username) + "/" + + String.valueOf(password)); + } + + Connection connection; + + if (factory instanceof XAConnectionFactory) + { + XAConnectionFactory qFactory = (XAConnectionFactory)factory; + if (username != null) + connection = qFactory.createXAConnection(username, password); + else + connection = qFactory.createXAConnection(); + if (debug) + log.debug("created XAConnection: " + connection); + } + else if (factory instanceof ConnectionFactory) + { + ConnectionFactory qFactory = (ConnectionFactory)factory; + if (username != null) + connection = qFactory.createConnection(username, password); + else + connection = qFactory.createConnection(); + if (debug) + log.debug("created Connection: " + connection); + } + else { + throw new IllegalArgumentException("factory is invalid"); + } + + return connection; + } + + /** + * Create a connection from the given factory. An XA connection will + * be created if possible. + * + * @param factory An object that implements QueueConnectionFactory, + * XAQueueConnectionFactory + * @return A queue connection. + * + * @throws JMSException Failed to create connection. + * @throws IllegalArgumentException Factory is null or invalid. + */ + public static Connection createConnection(final Object factory) + throws JMSException + { + return createConnection(factory, null, null); + } + + /** * Create a queue connection from the given factory. An XA connection will * be created if possible. * @@ -61,31 +140,28 @@ QueueConnection connection; - if (factory instanceof XAQueueConnectionFactory) { + if (factory instanceof XAQueueConnectionFactory) + { XAQueueConnectionFactory qFactory = (XAQueueConnectionFactory)factory; - if (username != null) { + if (username != null) connection = qFactory.createXAQueueConnection(username, password); - } - else { + else connection = qFactory.createXAQueueConnection(); - } if (debug) log.debug("created XAQueueConnection: " + connection); } - else if (factory instanceof QueueConnectionFactory) { + else if (factory instanceof QueueConnectionFactory) + { QueueConnectionFactory qFactory = (QueueConnectionFactory)factory; - if (username != null) { + if (username != null) connection = qFactory.createQueueConnection(username, password); - } - else { + else connection = qFactory.createQueueConnection(); - } if (debug) log.debug("created QueueConnection: " + connection); } - else { + else throw new IllegalArgumentException("factory is invalid"); - } return connection; } @@ -140,31 +216,28 @@ TopicConnection connection; - if (factory instanceof XATopicConnectionFactory) { + if (factory instanceof XATopicConnectionFactory) + { XATopicConnectionFactory tFactory = (XATopicConnectionFactory)factory; - if (username != null) { + if (username != null) connection = tFactory.createXATopicConnection(username, password); - } - else { + else connection = tFactory.createXATopicConnection(); - } if (debug) log.debug("created XATopicConnection: " + connection); } - else if (factory instanceof TopicConnectionFactory) { + else if (factory instanceof TopicConnectionFactory) + { TopicConnectionFactory tFactory = (TopicConnectionFactory)factory; - if (username != null) { + if (username != null) connection = tFactory.createTopicConnection(username, password); - } - else { + else connection = tFactory.createTopicConnection(); - } if (debug) log.debug("created TopicConnection: " + connection); } - else { + else throw new IllegalArgumentException("factory is invalid"); - } return connection; } |