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.mail.Session;
22 import javax.sql.DataSource;
23
24 import org.huihoo.jfox.soaf.exception.ServiceLocatorException;
25
26 /***
27 * <p>
28 * This class is an implementation of the Service Locator pattern. It is used to
29 * looukup resources such as EJBHomes, JMS Destinations, etc. This
30 * implementation uses the "singleton instance" strategy and also the "caching"
31 * strategy.
32 * </p>
33 *
34 * @author <a href="mailto:founder_chen@yahoo.com.cn">Peter Cheng </a>
35 * @version $Revision: 1.4 $ $Date: 2004/11/02 04:15:25 $
36 * @version Revision: 1.0
37 */
38
39 public interface ServiceLocator {
40
41 /***
42 * will get the ejb Local home factory. If this ejb home factory has already
43 * been clients need to cast to the type of EJBHome they desire
44 *
45 * @return the EJB Home corresponding to the homeName
46 */
47 public EJBLocalHome getLocalHome(String jndiHomeName)
48 throws ServiceLocatorException;
49
50 /***
51 * will get the ejb Remote home factory. If this ejb home factory has
52 * already been clients need to cast to the type of EJBHome they desire
53 *
54 * @return the EJB Home corresponding to the homeName
55 */
56 public EJBHome getRemoteHome(String jndiHomeName, Class className)
57 throws ServiceLocatorException;
58
59 /***
60 * @return the factory for the factory to get queue connections from
61 */
62 public QueueConnectionFactory getQueueConnectionFactory(
63 String qConnFactoryName) throws ServiceLocatorException;
64
65 /***
66 * @return the Queue Destination to send messages to
67 */
68 public Queue getQueue(String queueName) throws ServiceLocatorException;
69
70 /***
71 * This method helps in obtaining the topic factory
72 *
73 * @return the factory for the factory to get topic connections from
74 */
75 public TopicConnectionFactory getTopicConnectionFactory(
76 String topicConnFactoryName) throws ServiceLocatorException;
77
78 /***
79 * This method obtains the topc itself for a caller
80 *
81 * @return the Topic Destination to send messages to
82 */
83 public Topic getTopic(String topicName) throws ServiceLocatorException;
84
85 /***
86 * This method obtains the datasource itself for a caller
87 *
88 * @return the DataSource corresponding to the name parameter
89 */
90 public DataSource getDataSource(String dataSourceName)
91 throws ServiceLocatorException;
92
93 /***
94 * This method obtains the mail seesion itself for a caller
95 *
96 * @return the Session corresponding to the name parameter
97 */
98 public Session getMailSession(String mailSessionName)
99 throws ServiceLocatorException;
100
101 /***
102 * @return the URL value corresponding to the env entry name.
103 */
104 public URL getUrl(String envName) throws ServiceLocatorException;
105
106 /***
107 * @return the boolean value corresponding to the env entry such as
108 * SEND_CONFIRMATION_MAIL property.
109 */
110 public boolean getBoolean(String envName) throws ServiceLocatorException;
111
112 /***
113 * @return the String value corresponding to the env entry name.
114 */
115 public String getString(String envName) throws ServiceLocatorException;
116
117 }