All Downloads are FREE. Search and download functionalities are using the official Maven repository.
Please wait. This can take some minutes ...
Many resources are needed to download a project. Please understand that we have to compensate our server costs. Thank you in advance.
Project price only 1 $
You can buy this project and download/modify it how often you want.
org.javalite.async.PooledSession Maven / Gradle / Ivy
package org.javalite.async;
import org.javalite.common.Util;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import javax.jms.*;
import java.io.Serializable;
/**
* Not a public class!
*
* @author igor on 11/2/17.
*/
class PooledSession implements Session {
private static Logger LOGGER = LoggerFactory.getLogger(PooledSession.class);
private Session session;
private SessionPool sessionPool;
private long lastUsed;
protected PooledSession(Session session, SessionPool sessionPool) {
this.session = session;
this.sessionPool = sessionPool;
LOGGER.debug("Created session: " + this);
}
// This is where real work happens
@Override
public void close() throws JMSException {
LOGGER.debug("Closing session: " + this);
sessionPool.reclaim(this);
}
/**
* Marks the last used time of this connection.
*/
protected void markLastUsedTime(){
lastUsed = System.currentTimeMillis();
}
public long getLastUsed() {
return lastUsed;
}
/**
* Close the underlying JMS connection.
*/
protected void reallyClose(){
Util.closeQuietly(session);
}
//********* Below methods are pass-through to real session **********
@Override
public BytesMessage createBytesMessage() throws JMSException {
return session.createBytesMessage();
}
@Override
public MapMessage createMapMessage() throws JMSException {
return session.createMapMessage();
}
@Override
public Message createMessage() throws JMSException {
return session.createMessage();
}
@Override
public ObjectMessage createObjectMessage() throws JMSException {
return session.createObjectMessage();
}
@Override
public ObjectMessage createObjectMessage(Serializable object) throws JMSException {
return null;
}
@Override
public StreamMessage createStreamMessage() throws JMSException {
return session.createStreamMessage();
}
@Override
public TextMessage createTextMessage() throws JMSException {
return session.createTextMessage();
}
@Override
public TextMessage createTextMessage(String text) throws JMSException {
return session.createTextMessage(text);
}
@Override
public boolean getTransacted() throws JMSException {
return session.getTransacted();
}
@Override
public int getAcknowledgeMode() throws JMSException {
return session.getAcknowledgeMode();
}
@Override
public void commit() throws JMSException {
session.commit();
}
@Override
public void rollback() throws JMSException {
session.rollback();
}
@Override
public void recover() throws JMSException {
session.recover();
}
@Override
public MessageListener getMessageListener() throws JMSException {
return session.getMessageListener();
}
@Override
public void setMessageListener(MessageListener listener) throws JMSException {
session.setMessageListener(listener);
}
@Override
public void run() {
session.run();
}
@Override
public MessageProducer createProducer(Destination destination) throws JMSException {
return session.createProducer(destination);
}
@Override
public MessageConsumer createConsumer(Destination destination) throws JMSException {
return session.createConsumer(destination);
}
@Override
public MessageConsumer createConsumer(Destination destination, String messageSelector) throws JMSException {
return session.createConsumer(destination, messageSelector);
}
@Override
public MessageConsumer createConsumer(Destination destination, String messageSelector, boolean noLocal) throws JMSException {
return session.createConsumer(destination, messageSelector, noLocal);
}
@Override
public Queue createQueue(String queueName) throws JMSException {
return session.createQueue(queueName);
}
@Override
public Topic createTopic(String topicName) throws JMSException {
return session.createTopic(topicName);
}
@Override
public TopicSubscriber createDurableSubscriber(Topic topic, String name) throws JMSException {
return session.createDurableSubscriber(topic, name);
}
@Override
public TopicSubscriber createDurableSubscriber(Topic topic, String name, String messageSelector, boolean noLocal) throws JMSException {
return session.createDurableSubscriber(topic, name, messageSelector, noLocal);
}
@Override
public QueueBrowser createBrowser(Queue queue) throws JMSException {
return session.createBrowser(queue);
}
@Override
public QueueBrowser createBrowser(Queue queue, String messageSelector) throws JMSException {
return session.createBrowser(queue, messageSelector);
}
@Override
public TemporaryQueue createTemporaryQueue() throws JMSException {
return session.createTemporaryQueue();
}
@Override
public TemporaryTopic createTemporaryTopic() throws JMSException {
return session.createTemporaryTopic();
}
@Override
public void unsubscribe(String name) throws JMSException {
session.unsubscribe(name);
}
@Override
public MessageConsumer createSharedConsumer(Topic topic, String sharedSubscriptionName) throws JMSException {
return session.createSharedConsumer(topic, sharedSubscriptionName);
}
@Override
public MessageConsumer createSharedConsumer(Topic topic, String sharedSubscriptionName, String messageSelector) throws JMSException {
return session.createSharedConsumer(topic, sharedSubscriptionName, messageSelector);
}
@Override
public MessageConsumer createDurableConsumer(Topic topic, String name) throws JMSException {
return session.createDurableConsumer(topic, name);
}
@Override
public MessageConsumer createDurableConsumer(Topic topic, String name, String messageSelector, boolean noLocal) throws JMSException {
return session.createDurableConsumer(topic, name, messageSelector, noLocal);
}
@Override
public MessageConsumer createSharedDurableConsumer(Topic topic, String name) throws JMSException {
return session.createSharedDurableConsumer(topic, name);
}
@Override
public MessageConsumer createSharedDurableConsumer(Topic topic, String name, String messageSelector) throws JMSException {
return session.createSharedDurableConsumer(topic, name, messageSelector);
}
}