View Javadoc

1   package org.kuali.rice.ksb.api.bus;
2   
3   import java.io.Serializable;
4   import java.net.URL;
5   
6   import javax.xml.namespace.QName;
7   
8   import org.kuali.rice.core.api.security.credentials.CredentialsType;
9   
10  /**
11   * An interface which defines common configuration information for all services.
12   * Specific implementations might add additional configuration attributes which
13   * are appropriate for their given domain or service configuration method.
14   * 
15   * @author Kuali Rice Team (rice.collab@kuali.org)
16   *
17   */
18  public interface ServiceConfiguration extends Serializable {
19  
20  	/**
21  	 * Returns the qualified name for this service.
22  	 * 
23  	 * @return the qualified name for this service, should never be null
24  	 */
25  	QName getServiceName();
26  	
27  	/**
28  	 * Returns the URL of the endpoint which provides this service.
29  	 * 
30  	 * @return the endpoint URL of the service, should never be null
31  	 */
32  	URL getEndpointUrl();
33  	
34  	/**
35  	 * Returns the id of the application which owns this service.
36  	 * 
37  	 * @return the id of the application which owns this service, should never
38  	 * be null
39  	 */
40  	String getApplicationId();
41  	
42  	/**
43  	 * Returns the version of this service.
44  	 * 
45  	 * @return the version of this service, should never be null
46  	 */
47  	String getServiceVersion();
48  	
49  	/**
50  	 * Returns the type of this service.
51  	 * 
52  	 * @return the type of this service, should never be null
53  	 */
54  	String getType();
55  	
56  	/**
57  	 * Return true if this service uses queue-style messaging, false if it uses
58  	 * topic-style messaging.
59  	 * 
60  	 * @return true if this service uses queue-style messaging, false if it uses
61  	 * topic-style messaging
62  	 */
63  	boolean isQueue();
64  	
65  	/**
66  	 * Returns the processing priority for messages that are sent to this service.
67  	 * 
68  	 * @return the message processing priority for this service
69  	 */
70  	Integer getPriority();
71  	
72  	/**
73  	 * Returns the retry attempts to use when processing messages sent to this
74  	 * service.
75  	 * 
76  	 * @return the retry attempts for this service
77  	 */
78  	Integer getRetryAttempts();
79  	
80  	/**
81  	 * Returns the maximum amount of milliseconds a message to this service can
82  	 * live and attempt to be processed successfully by this service before it's
83  	 * forced into processing by it's exception handler.
84  	 *  
85  	 * @return the maximum lifetime for this message, if null then this message has
86  	 * an infinite lifetime
87  	 */
88  	Long getMillisToLive();
89  	
90  	/**
91  	 * Returns the name of the exception handler to invoke whenever messages to
92  	 * this service fail to be sent.  If null, the default message exception
93  	 * handler will be used.
94  	 * 
95  	 * @return the name of the message exception handler for this service, or
96  	 * null if the default handler should be used
97  	 */
98  	String getMessageExceptionHandler();
99  	
100 	/**
101 	 * Returns true if this service is secured by standard KSB security features.
102 	 * 
103 	 * @return true if this service is secured, false otherwise
104 	 */
105 	Boolean getBusSecurity();
106 	
107 	/**
108 	 * Returns the type of security credentials that should be used when
109 	 * attempting to authorize access to this service.
110 	 * 
111 	 * @return the type of security credentials to use when access this service
112 	 */
113 	CredentialsType getCredentialsType();
114 	
115 }