1. /*
  2. * Copyright 2002 Sun Microsystems, Inc. All rights reserved.
  3. * SUN PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
  4. */
  5. package javax.jms;
  6. /** A <CODE>ConnectionFactory</CODE> object encapsulates a set of connection
  7. * configuration
  8. * parameters that has been defined by an administrator. A client uses
  9. * it to create a connection with a JMS provider.
  10. *
  11. * <P><CODE>ConnectionFactory</CODE> objects support concurrent use.
  12. *
  13. * <P>A <CODE>ConnectionFactory</CODE> object is a JMS administered object.
  14. *
  15. * <P>JMS administered objects are objects containing configuration
  16. * information that are created by an administrator and later used by
  17. * JMS clients. They make it practical to administer the JMS API in the
  18. * enterprise.
  19. *
  20. * <P>Although the interfaces for administered objects do not explicitly
  21. * depend on the Java Naming and Directory Interface (JNDI) API, the JMS API
  22. * establishes the convention that JMS clients find administered objects by
  23. * looking them up in a JNDI namespace.
  24. *
  25. * <P>An administrator can place an administered object anywhere in a
  26. * namespace. The JMS API does not define a naming policy.
  27. *
  28. * <P>It is expected that JMS providers will provide the tools an
  29. * administrator needs to create and configure administered objects in a
  30. * JNDI namespace. JMS provider implementations of administered objects
  31. * should be both <CODE>javax.jndi.Referenceable</CODE> and
  32. * <CODE>java.io.Serializable</CODE> so that they can be stored in all
  33. * JNDI naming contexts. In addition, it is recommended that these
  34. * implementations follow the JavaBeans<SUP><FONT SIZE="-2">TM</FONT></SUP>
  35. * design patterns.
  36. *
  37. * <P>This strategy provides several benefits:
  38. *
  39. * <UL>
  40. * <LI>It hides provider-specific details from JMS clients.
  41. * <LI>It abstracts administrative information into objects in the Java
  42. * programming language ("Java objects")
  43. * that are easily organized and administered from a common
  44. * management console.
  45. * <LI>Since there will be JNDI providers for all popular naming
  46. * services, this means that JMS providers can deliver one implementation
  47. * of administered objects that will run everywhere.
  48. * </UL>
  49. *
  50. * <P>An administered object should not hold on to any remote resources.
  51. * Its lookup should not use remote resources other than those used by the
  52. * JNDI API itself.
  53. *
  54. * <P>Clients should think of administered objects as local Java objects.
  55. * Looking them up should not have any hidden side effects or use surprising
  56. * amounts of local resources.
  57. *
  58. * @version 1.0 - 3 August 1998
  59. * @author Mark Hapner
  60. * @author Rich Burridge
  61. *
  62. * @see javax.jms.QueueConnectionFactory
  63. * @see javax.jms.TopicConnectionFactory
  64. */
  65. public interface ConnectionFactory {
  66. }