001: /*
002: * The contents of this file are subject to the terms
003: * of the Common Development and Distribution License
004: * (the License). You may not use this file except in
005: * compliance with the License.
006: *
007: * You can obtain a copy of the license at
008: * https://glassfish.dev.java.net/public/CDDLv1.0.html or
009: * glassfish/bootstrap/legal/CDDLv1.0.txt.
010: * See the License for the specific language governing
011: * permissions and limitations under the License.
012: *
013: * When distributing Covered Code, include this CDDL
014: * Header Notice in each file and include the License file
015: * at glassfish/bootstrap/legal/CDDLv1.0.txt.
016: * If applicable, add the following below the CDDL Header,
017: * with the fields enclosed by brackets [] replaced by
018: * you own identifying information:
019: * "Portions Copyrighted [year] [name of copyright owner]"
020: *
021: * Copyright 2006 Sun Microsystems, Inc. All rights reserved.
022: */
023:
024: package javax.jms;
025:
026: /**
027: * A <CODE>Destination</CODE> object encapsulates a provider-specific address.
028: * The JMS API does not define a standard address syntax. Although a standard
029: * address syntax was considered, it was decided that the differences in address
030: * semantics between existing message-oriented middleware (MOM) products were
031: * too wide to bridge with a single syntax.
032: *
033: * <P>
034: * Since <CODE>Destination</CODE> is an administered object, it may contain
035: * provider-specific configuration information in addition to its address.
036: *
037: * <P>
038: * The JMS API also supports a client's use of provider-specific address names.
039: *
040: * <P>
041: * <CODE>Destination</CODE> objects support concurrent use.
042: *
043: * <P>
044: * A <CODE>Destination</CODE> object is a JMS administered object.
045: *
046: * <P>
047: * JMS administered objects are objects containing configuration information
048: * that are created by an administrator and later used by JMS clients. They make
049: * it practical to administer the JMS API in the enterprise.
050: *
051: * <P>
052: * Although the interfaces for administered objects do not explicitly depend on
053: * the Java Naming and Directory Interface (JNDI) API, the JMS API establishes
054: * the convention that JMS clients find administered objects by looking them up
055: * in a JNDI namespace.
056: *
057: * <P>
058: * An administrator can place an administered object anywhere in a namespace.
059: * The JMS API does not define a naming policy.
060: *
061: * <P>
062: * It is expected that JMS providers will provide the tools an administrator
063: * needs to create and configure administered objects in a JNDI namespace. JMS
064: * provider implementations of administered objects should implement the <CODE>javax.naming.Referenceable</CODE>
065: * and <CODE>java.io.Serializable</CODE> interfaces so that they can be stored
066: * in all JNDI naming contexts. In addition, it is recommended that these
067: * implementations follow the JavaBeans<SUP><FONT SIZE="-2">TM</FONT></SUP>
068: * design patterns.
069: *
070: * <P>
071: * This strategy provides several benefits:
072: *
073: * <UL>
074: * <LI>It hides provider-specific details from JMS clients.
075: * <LI>It abstracts JMS administrative information into objects in the Java
076: * programming language ("Java objects") that are easily organized and
077: * administered from a common management console.
078: * <LI>Since there will be JNDI providers for all popular naming services, JMS
079: * providers can deliver one implementation of administered objects that will
080: * run everywhere.
081: * </UL>
082: *
083: * <P>
084: * An administered object should not hold on to any remote resources. Its lookup
085: * should not use remote resources other than those used by the JNDI API itself.
086: *
087: * <P>
088: * Clients should think of administered objects as local Java objects. Looking
089: * them up should not have any hidden side effects or use surprising amounts of
090: * local resources.
091: *
092: * @version 1.0 - 3 August 1998
093: * @author Mark Hapner
094: * @author Rich Burridge
095: *
096: * @see javax.jms.Queue
097: * @see javax.jms.Topic
098: */
099:
100: public interface Destination {
101: }
|