org.directwebremoting.jms.DwrSession Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of dwr Show documentation
Show all versions of dwr Show documentation
DWR is easy Ajax for Java. It makes it simple to call Java code directly from Javascript.
It gets rid of almost all the boiler plate code between the web browser and your Java code.
The newest version!
/*
* Copyright 2005 Joe Walker
*
* Licensed 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.directwebremoting.jms;
import java.io.Serializable;
import javax.jms.BytesMessage;
import javax.jms.Destination;
import javax.jms.JMSException;
import javax.jms.MessageListener;
import javax.jms.Queue;
import javax.jms.QueueBrowser;
import javax.jms.Session;
import javax.jms.StreamMessage;
import javax.jms.TemporaryQueue;
import javax.jms.TemporaryTopic;
import javax.jms.Topic;
import javax.jms.TopicSubscriber;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
/**
* An implementation of {@link Session} for DWR
* @author Joe Walker [joe at getahead dot ltd dot uk]
*/
public class DwrSession implements Session
{
/**
* @see javax.jms.Connection#createSession(boolean, int)
* @param transacted See {@link Session#getTransacted()}
* @param acknowledgeMode See {@link Session#getAcknowledgeMode()}
* @param connection
*/
public DwrSession(DwrConnection connection, boolean transacted, int acknowledgeMode)
{
if (transacted)
{
throw Unsupported.noTransactions();
}
if (acknowledgeMode != AUTO_ACKNOWLEDGE)
{
throw Unsupported.noManualAcknowledgment();
}
this.transacted = transacted;
this.acknowledgeMode = acknowledgeMode;
this.connection = connection;
}
/* (non-Javadoc)
* @see javax.jms.Session#createMessage()
*/
public DwrMessage createMessage() throws JMSException
{
return new DwrMessage();
}
/* (non-Javadoc)
* @see javax.jms.Session#createMapMessage()
*/
public DwrMessage createMapMessage() throws JMSException
{
return new DwrMessage();
}
/* (non-Javadoc)
* @see javax.jms.Session#createTextMessage()
*/
public DwrMessage createTextMessage() throws JMSException
{
return new DwrMessage();
}
/* (non-Javadoc)
* @see javax.jms.Session#createTextMessage(java.lang.String)
*/
public DwrMessage createTextMessage(String text) throws JMSException
{
return new DwrMessage(text);
}
/* (non-Javadoc)
* @see javax.jms.Session#createStreamMessage()
*/
public StreamMessage createStreamMessage() throws JMSException
{
throw Unsupported.noBinaryMessages();
}
/* (non-Javadoc)
* @see javax.jms.Session#createBytesMessage()
*/
public BytesMessage createBytesMessage() throws JMSException
{
throw Unsupported.noBinaryMessages();
}
/* (non-Javadoc)
* @see javax.jms.Session#createObjectMessage()
*/
public DwrMessage createObjectMessage() throws JMSException
{
return new DwrMessage();
}
/* (non-Javadoc)
* @see javax.jms.Session#createObjectMessage(java.io.Serializable)
*/
public DwrMessage createObjectMessage(Serializable object) throws JMSException
{
return new DwrMessage(object);
}
/* (non-Javadoc)
* @see javax.jms.Session#createBrowser(javax.jms.Queue)
*/
public QueueBrowser createBrowser(Queue queue) throws JMSException
{
throw Unsupported.noPointToPoint();
}
/* (non-Javadoc)
* @see javax.jms.Session#createBrowser(javax.jms.Queue, java.lang.String)
*/
public QueueBrowser createBrowser(Queue queue, String messageSelector) throws JMSException
{
throw Unsupported.noPointToPoint();
}
/* (non-Javadoc)
* @see javax.jms.Session#createConsumer(javax.jms.Destination)
*/
public DwrMessageConsumer createConsumer(Destination destination) throws JMSException
{
return new DwrMessageConsumer(connection, destination);
}
/* (non-Javadoc)
* @see javax.jms.Session#createConsumer(javax.jms.Destination, java.lang.String)
*/
public DwrMessageConsumer createConsumer(Destination destination, String messageSelector) throws JMSException
{
return new DwrMessageConsumer(connection, destination, messageSelector);
}
/* (non-Javadoc)
* @see javax.jms.Session#createConsumer(javax.jms.Destination, java.lang.String, boolean)
*/
public DwrMessageConsumer createConsumer(Destination destination, String messageSelector, boolean noLocal) throws JMSException
{
return new DwrMessageConsumer(connection, destination, messageSelector, noLocal);
}
/* (non-Javadoc)
* @see javax.jms.Session#createDurableSubscriber(javax.jms.Topic, java.lang.String)
*/
public TopicSubscriber createDurableSubscriber(Topic topic, String name) throws JMSException
{
throw Unsupported.noDurableSubscriptions();
}
/* (non-Javadoc)
* @see javax.jms.Session#createDurableSubscriber(javax.jms.Topic, java.lang.String, java.lang.String, boolean)
*/
public TopicSubscriber createDurableSubscriber(Topic topic, String name, String messageSelector, boolean noLocal) throws JMSException
{
throw Unsupported.noDurableSubscriptions();
}
/* (non-Javadoc)
* @see javax.jms.Session#createProducer(javax.jms.Destination)
*/
public DwrMessageProducer createProducer(Destination destination) throws JMSException
{
return new DwrMessageProducer(destination, connection);
}
/* (non-Javadoc)
* @see javax.jms.Session#createQueue(java.lang.String)
*/
public Queue createQueue(String queueName) throws JMSException
{
throw Unsupported.noPointToPoint();
}
/* (non-Javadoc)
* @see javax.jms.Session#createTemporaryQueue()
*/
public TemporaryQueue createTemporaryQueue() throws JMSException
{
throw Unsupported.noPointToPoint();
}
/* (non-Javadoc)
* @see javax.jms.Session#createTopic(java.lang.String)
*/
public DwrTopic createTopic(String topicName) throws JMSException
{
return new DwrTopic(topicName);
}
/* (non-Javadoc)
* @see javax.jms.Session#createTemporaryTopic()
*/
public TemporaryTopic createTemporaryTopic() throws JMSException
{
throw Unsupported.noTemporaryTopic();
}
/* (non-Javadoc)
* @see javax.jms.Session#getAcknowledgeMode()
*/
public int getAcknowledgeMode() throws JMSException
{
return acknowledgeMode;
}
/* (non-Javadoc)
* @see javax.jms.Session#setMessageListener(javax.jms.MessageListener)
*/
public void setMessageListener(MessageListener messageListener) throws JMSException
{
this.messageListener = messageListener;
}
/* (non-Javadoc)
* @see javax.jms.Session#getMessageListener()
*/
public MessageListener getMessageListener() throws JMSException
{
return messageListener;
}
/* (non-Javadoc)
* @see javax.jms.Session#getTransacted()
*/
public boolean getTransacted() throws JMSException
{
return transacted;
}
/* (non-Javadoc)
* @see javax.jms.Session#commit()
*/
public void commit() throws JMSException
{
if (!shownTransactionWarning)
{
log.warn("DWR's JMS support is not transactional");
shownTransactionWarning = true;
}
}
/* (non-Javadoc)
* @see javax.jms.Session#recover()
*/
public void recover() throws JMSException
{
throw Unsupported.noManualAcknowledgment();
}
/* (non-Javadoc)
* @see javax.jms.Session#rollback()
*/
public void rollback() throws JMSException
{
if (!shownTransactionWarning)
{
log.warn("DWR's JMS support is not transactional");
shownTransactionWarning = true;
}
}
/* (non-Javadoc)
* @see javax.jms.Session#run()
*/
public void run()
{
}
/* (non-Javadoc)
* @see javax.jms.Session#close()
*/
public void close() throws JMSException
{
}
/* (non-Javadoc)
* @see javax.jms.Session#unsubscribe(java.lang.String)
*/
public void unsubscribe(String name) throws JMSException
{
throw Unsupported.noDurableSubscriptions();
}
/**
* @see Unsupported#noManualAcknowledgment()
*/
private int acknowledgeMode;
/**
* @see Unsupported#noTransactions()
*/
private boolean transacted;
/**
* The current message destination
*/
private MessageListener messageListener;
/**
* The connection through which this session was created
*/
private DwrConnection connection;
/**
* We only want to show the not-transactional warning once.
*/
private boolean shownTransactionWarning = false;
/**
* The log stream
*/
private static final Log log = LogFactory.getLog(DwrSession.class);
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy