package org.apache.storm.jms;
import java.io.Serializable;
import javax.jms.ConnectionFactory;
import javax.jms.Destination;
/**
* A <code>JmsProvider</code> object encapsulates the <code>ConnectionFactory</code>
* and <code>Destination</code> JMS objects the <code>JmsSpout</code> needs to manage
* a topic/queue connection over the course of it's lifecycle.
*
* @author P. Taylor Goetz
*
*/
public interface JmsProvider extends Serializable{
/**
* Provides the JMS <code>ConnectionFactory</code>
* @return the connection factory
* @throws Exception
*/
public ConnectionFactory connectionFactory() throws Exception;
/**
* Provides the <code>Destination</code> (topic or queue) from which the
* <code>JmsSpout</code> will receive messages.
* @return
* @throws Exception
*/
public Destination destination() throws Exception;
}