|
ActiveMQ example source code file (AbstractJmsClient.java)
The ActiveMQ AbstractJmsClient.java source code/** * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You under the Apache License, Version 2.0 * (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.apache.activemq.tool; import javax.jms.Connection; import javax.jms.ConnectionFactory; import javax.jms.Destination; import javax.jms.JMSException; import javax.jms.Session; import org.apache.activemq.tool.properties.JmsClientProperties; import org.slf4j.Logger; import org.slf4j.LoggerFactory; public abstract class AbstractJmsClient { private static final Logger LOG = LoggerFactory.getLogger(AbstractJmsClient.class); protected ConnectionFactory factory; protected Connection jmsConnection; protected Session jmsSession; protected int destCount = 1; protected int destIndex; protected String clientName = ""; public AbstractJmsClient(ConnectionFactory factory) { this.factory = factory; } public abstract JmsClientProperties getClient(); public abstract void setClient(JmsClientProperties client); public ConnectionFactory getFactory() { return factory; } public void setFactory(ConnectionFactory factory) { this.factory = factory; } public int getDestCount() { return destCount; } public void setDestCount(int destCount) { this.destCount = destCount; } public int getDestIndex() { return destIndex; } public void setDestIndex(int destIndex) { this.destIndex = destIndex; } public String getClientName() { return clientName; } public void setClientName(String clientName) { this.clientName = clientName; } public Connection getConnection() throws JMSException { if (jmsConnection == null) { jmsConnection = factory.createConnection(); jmsConnection.setClientID(getClientName()); LOG.info("Creating JMS Connection: Provider=" + getClient().getJmsProvider() + ", JMS Spec=" + getClient().getJmsVersion()); } return jmsConnection; } public Session getSession() throws JMSException { if (jmsSession == null) { int ackMode; if (getClient().getSessAckMode().equalsIgnoreCase(JmsClientProperties.SESSION_AUTO_ACKNOWLEDGE)) { ackMode = Session.AUTO_ACKNOWLEDGE; } else if (getClient().getSessAckMode().equalsIgnoreCase(JmsClientProperties.SESSION_CLIENT_ACKNOWLEDGE)) { ackMode = Session.CLIENT_ACKNOWLEDGE; } else if (getClient().getSessAckMode().equalsIgnoreCase(JmsClientProperties.SESSION_DUPS_OK_ACKNOWLEDGE)) { ackMode = Session.DUPS_OK_ACKNOWLEDGE; } else if (getClient().getSessAckMode().equalsIgnoreCase(JmsClientProperties.SESSION_TRANSACTED)) { ackMode = Session.SESSION_TRANSACTED; } else { ackMode = Session.AUTO_ACKNOWLEDGE; } jmsSession = getConnection().createSession(getClient().isSessTransacted(), ackMode); } return jmsSession; } public Destination[] createDestination(int destIndex, int destCount) throws JMSException { if (getClient().isDestComposite()) { return new Destination[] { createCompositeDestination(getClient().getDestName(), destIndex, destCount) }; } else { Destination[] dest = new Destination[destCount]; for (int i = 0; i < destCount; i++) { dest[i] = createDestination(getClient().getDestName() + "." + (destIndex + i)); } return dest; } } public Destination createCompositeDestination(int destIndex, int destCount) throws JMSException { return createCompositeDestination(getClient().getDestName(), destIndex, destCount); } protected Destination createCompositeDestination(String name, int destIndex, int destCount) throws JMSException { String compDestName; String simpleName; if (name.startsWith("queue://")) { simpleName = name.substring("queue://".length()); } else if (name.startsWith("topic://")) { simpleName = name.substring("topic://".length()); } else { simpleName = name; } int i; compDestName = name + "." + destIndex + ","; // First destination for (i = 1; i < destCount - 1; i++) { compDestName += simpleName + "." + (destIndex + i) + ","; } // Last destination (minus the comma) compDestName += simpleName + "." + (destIndex + i); return createDestination(compDestName); } protected Destination createDestination(String name) throws JMSException { if (name.startsWith("queue://")) { return getSession().createQueue(name.substring("queue://".length())); } else if (name.startsWith("topic://")) { return getSession().createTopic(name.substring("topic://".length())); } else { return getSession().createTopic(name); } } } Other ActiveMQ examples (source code examples)Here is a short list of links related to this ActiveMQ AbstractJmsClient.java source code file: |
... this post is sponsored by my books ... | |
#1 New Release! |
FP Best Seller |
Copyright 1998-2021 Alvin Alexander, alvinalexander.com
All Rights Reserved.
A percentage of advertising revenue from
pages under the /java/jwarehouse
URI on this website is
paid back to open source projects.