001 /** 002 * 003 * Copyright 2004 Protique Ltd 004 * 005 * Licensed under the Apache License, Version 2.0 (the "License"); 006 * you may not use this file except in compliance with the License. 007 * 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 **/ 018 package org.activemq.tool; 019 020 import org.activemq.ActiveMQConnection; 021 import org.activemq.ActiveMQConnectionFactory; 022 import org.activemq.util.IndentPrinter; 023 024 import javax.jms.Connection; 025 import javax.jms.Destination; 026 import javax.jms.JMSException; 027 import javax.jms.Session; 028 029 /** 030 * Abstract base class useful for implementation inheritence 031 * 032 * @version $Revision$ 033 */ 034 public class ToolSupport { 035 036 037 protected Destination destination; 038 protected String subject = "TOOL.DEFAULT"; 039 protected boolean topic = true; 040 protected String user = ActiveMQConnection.DEFAULT_USER; 041 protected String pwd = ActiveMQConnection.DEFAULT_PASSWORD; 042 protected String url = ActiveMQConnection.DEFAULT_URL; 043 protected boolean transacted = false; 044 protected boolean durable = false; 045 protected String clientID = getClass().getName(); 046 protected int ackMode = Session.AUTO_ACKNOWLEDGE; 047 protected String consumerName = "James"; 048 049 050 protected Session createSession(Connection connection) throws Exception { 051 if (durable) { 052 connection.setClientID(clientID); 053 } 054 Session session = connection.createSession(transacted, ackMode); 055 if (topic) { 056 destination = session.createTopic(subject); 057 } 058 else { 059 destination = session.createQueue(subject); 060 } 061 return session; 062 } 063 064 protected Connection createConnection() throws JMSException, Exception { 065 ActiveMQConnectionFactory connectionFactory = new ActiveMQConnectionFactory(user, pwd, url); 066 return connectionFactory.createConnection(); 067 } 068 069 protected void close(Connection connection, Session session) throws JMSException { 070 // lets dump the stats 071 dumpStats(connection); 072 073 if (session != null) { 074 session.close(); 075 } 076 if (connection != null) { 077 connection.close(); 078 } 079 } 080 081 protected void dumpStats(Connection connection) { 082 ActiveMQConnection c = (ActiveMQConnection) connection; 083 c.getConnectionStats().dump(new IndentPrinter()); 084 } 085 }