View Javadoc

    1   /***
    2    * JFoxSOAF, Service-Oriented Application Framework
    3    *
    4    * Copyright (C) www.huihoo.org
    5    *
    6    * Distributable under GNU LGPL
    7    *
    8    * For more information, please visit: http://www.huihoo.org/jfox/jfoxsoaf
    9    */
    10
    11  package org.huihoo.jfox.soaf.services.ejb;
    12
    13  import java.net.URL;
    14
    15  import javax.ejb.EJBHome;
    16  import javax.ejb.EJBLocalHome;
    17  import javax.jms.Queue;
    18  import javax.jms.QueueConnectionFactory;
    19  import javax.jms.Topic;
    20  import javax.jms.TopicConnectionFactory;
    21  import javax.sql.DataSource;
    22
    23  import org.huihoo.jfox.soaf.exception.ServiceLocatorException;
    24
    25  /***
    26   * <p>
    27   * This class is an implementation of the Service Locator pattern. It is used to
    28   * looukup resources such as EJBHomes, JMS Destinations, etc. This
    29   * implementation uses the "singleton instance" strategy and also the "caching"
    30   * strategy.
    31   * </p>
    32   *
    33   * @author <a href="mailto:founder_chen@yahoo.com.cn">Peter Cheng </a>
    34   * @version $Revision: 1.3 $ $Date: 2004/10/13 10:59:46 $
    35   * @version Revision: 1.0
    36   */
    37
    38  public interface ServiceLocator {
    39
    40      /***
    41       * will get the ejb Local home factory. If this ejb home factory has already
    42       * been clients need to cast to the type of EJBHome they desire
    43       *
    44       * @return the EJB Home corresponding to the homeName
    45       */
    46      public EJBLocalHome getLocalHome(String jndiHomeName)
    47              throws ServiceLocatorException;
    48
    49      /***
    50       * will get the ejb Remote home factory. If this ejb home factory has
    51       * already been clients need to cast to the type of EJBHome they desire
    52       *
    53       * @return the EJB Home corresponding to the homeName
    54       */
    55      public EJBHome getRemoteHome(String jndiHomeName, Class className)
    56              throws ServiceLocatorException;
    57
    58      /***
    59       * @return the factory for the factory to get queue connections from
    60       */
    61      public QueueConnectionFactory getQueueConnectionFactory(
    62              String qConnFactoryName) throws ServiceLocatorException;
    63
    64      /***
    65       * @return the Queue Destination to send messages to
    66       */
    67      public Queue getQueue(String queueName) throws ServiceLocatorException;
    68
    69      /***
    70       * This method helps in obtaining the topic factory
    71       *
    72       * @return the factory for the factory to get topic connections from
    73       */
    74      public TopicConnectionFactory getTopicConnectionFactory(
    75              String topicConnFactoryName) throws ServiceLocatorException;
    76
    77      /***
    78       * This method obtains the topc itself for a caller
    79       *
    80       * @return the Topic Destination to send messages to
    81       */
    82      public Topic getTopic(String topicName) throws ServiceLocatorException;
    83
    84      /***
    85       * This method obtains the datasource itself for a caller
    86       *
    87       * @return the DataSource corresponding to the name parameter
    88       */
    89      public DataSource getDataSource(String dataSourceName)
    90              throws ServiceLocatorException;
    91
    92      /***
    93       * @return the URL value corresponding to the env entry name.
    94       */
    95      public URL getUrl(String envName) throws ServiceLocatorException;
    96
    97      /***
    98       * @return the boolean value corresponding to the env entry such as
    99       *         SEND_CONFIRMATION_MAIL property.
    100      */
    101     public boolean getBoolean(String envName) throws ServiceLocatorException;
    102
    103     /***
    104      * @return the String value corresponding to the env entry name.
    105      */
    106     public String getString(String envName) throws ServiceLocatorException;
    107
    108 }