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;
019    
020    import javax.jms.JMSException;
021    
022    /**
023     * Provides a uniform interface that can be used to close all the JMS obejcts
024     * that provide a close() method.  Useful for when you want to collect
025     * a heterogeous set of JMS object in a collection to be closed at a later time.
026     *
027     * @version $Revision: 1.1.1.1 $
028     */
029    public interface Closeable {
030            
031            /**
032             * Closes a JMS object.
033             * <P>
034             * Many JMS objects are closeable such as Connections, Sessions, Consumers and Producers.
035             *
036             * @throws JMSException if the JMS provider fails to close the object due to
037             *                      some internal error.
038             */
039            public void close() throws JMSException;
040    }