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 }