1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.kuali.rice.kew.service;
18
19 import org.apache.log4j.Logger;
20 import org.kuali.rice.core.api.config.module.RunMode;
21 import org.kuali.rice.core.api.config.property.ConfigContext;
22 import org.kuali.rice.core.api.encryption.EncryptionService;
23 import org.kuali.rice.core.mail.Mailer;
24 import org.kuali.rice.core.api.resourceloader.GlobalResourceLoader;
25 import org.kuali.rice.edl.framework.extract.ExtractService;
26 import org.kuali.rice.kew.actionlist.service.ActionListService;
27 import org.kuali.rice.kew.actionrequest.service.ActionRequestService;
28 import org.kuali.rice.kew.actions.ActionRegistry;
29 import org.kuali.rice.kew.actiontaken.service.ActionTakenService;
30 import org.kuali.rice.kew.batch.XmlPollerService;
31 import org.kuali.rice.kew.docsearch.service.DocumentSearchService;
32 import org.kuali.rice.kew.doctype.service.DocumentSecurityService;
33 import org.kuali.rice.kew.doctype.service.DocumentTypePermissionService;
34 import org.kuali.rice.kew.doctype.service.DocumentTypeService;
35 import org.kuali.rice.kew.documentlink.service.DocumentLinkService;
36 import org.kuali.rice.kew.engine.BlanketApproveEngineFactory;
37 import org.kuali.rice.kew.engine.WorkflowEngine;
38 import org.kuali.rice.kew.engine.node.service.BranchService;
39 import org.kuali.rice.kew.engine.node.service.RouteNodeService;
40 import org.kuali.rice.kew.engine.simulation.SimulationWorkflowEngine;
41 import org.kuali.rice.kew.exception.WorkflowDocumentExceptionRoutingService;
42 import org.kuali.rice.kew.help.service.HelpService;
43 import org.kuali.rice.kew.identity.service.IdentityHelperService;
44 import org.kuali.rice.kew.impl.document.WorkflowDocumentPrototype;
45 import org.kuali.rice.kew.mail.service.ActionListEmailService;
46 import org.kuali.rice.kew.mail.service.EmailContentService;
47 import org.kuali.rice.kew.notes.service.NoteService;
48 import org.kuali.rice.kew.notification.service.NotificationService;
49 import org.kuali.rice.kew.preferences.service.PreferencesService;
50 import org.kuali.rice.kew.responsibility.service.ResponsibilityIdService;
51 import org.kuali.rice.kew.role.service.RoleService;
52 import org.kuali.rice.kew.routeheader.service.RouteHeaderService;
53 import org.kuali.rice.kew.routeheader.service.WorkflowDocumentService;
54 import org.kuali.rice.kew.routemodule.service.RouteModuleService;
55 import org.kuali.rice.kew.routemodule.service.RoutingReportService;
56 import org.kuali.rice.kew.rule.service.RuleAttributeService;
57 import org.kuali.rice.kew.rule.service.RuleDelegationService;
58 import org.kuali.rice.kew.rule.service.RuleService;
59 import org.kuali.rice.kew.rule.service.RuleTemplateService;
60 import org.kuali.rice.kew.useroptions.UserOptionsService;
61 import org.kuali.rice.kew.util.KEWConstants;
62 import org.springframework.transaction.PlatformTransactionManager;
63
64 import javax.persistence.EntityManagerFactory;
65 import javax.sql.DataSource;
66 import javax.transaction.TransactionManager;
67 import javax.transaction.UserTransaction;
68 import javax.xml.namespace.QName;
69
70
71
72
73
74
75
76
77
78
79
80 public final class KEWServiceLocator {
81
82 private static final Logger LOG = Logger.getLogger(KEWServiceLocator.class);
83
84 public static final String KEW_RUN_MODE_PROPERTY = "kew.mode";
85
86 public static final String DATASOURCE = "enWorkflowDataSource";
87
88 public static final String QUICK_LINKS_SERVICE = "enQuickLinksService";
89
90 public static final String DOCUMENT_SEARCH_SERVICE = "enDocumentSearchService";
91
92 public static final String ACTION_TAKEN_SRV = "enActionTakenService";
93
94 public static final String ACTION_REQUEST_SRV = "enActionRequestService";
95
96 public static final String ACTION_LIST_SRV = "enActionListService";
97
98 public static final String DOC_ROUTE_HEADER_SRV = "enDocumentRouteHeaderService";
99
100 public static final String DOCUMENT_TYPE_GROUP_SERVICE = "enDocumentTypeGroupService";
101
102 public static final String DOCUMENT_TYPE_SERVICE = "enDocumentTypeService";
103
104 public static final String DOCUMENT_TYPE_PERMISSION_SERVICE = "enDocumentTypePermissionService";
105
106 public static final String DOCUMENT_SECURITY_SERVICE = "enDocumentSecurityService";
107
108 public static final String USER_OPTIONS_SRV = "enUserOptionsService";
109
110 public static final String DOCUMENT_CHANGE_HISTORY_SRV = "enDocumentChangeHistoryService";
111
112 public static final String DOCUMENT_VALUE_INDEX_SRV = "enDocumentValueIndexService";
113
114 public static final String ROUTE_LEVEL_SERVICE = "enRouteLevelService";
115
116 public static final String CONSTANTS_SERVICE = "enApplicationConstantsService";
117
118 public static final String PREFERENCES_SERVICE = "enPreferencesService";
119
120 public static final String ROUTE_LOG_SERVICE = "enRouteLogService";
121
122 public static final String RULE_TEMPLATE_SERVICE = "enRuleTemplateService";
123
124 public static final String RULE_SERVICE = "enRuleService";
125
126 public static final String RULE_ATTRIBUTE_SERVICE = "enRuleAttributeService";
127
128 public static final String RULE_TEMPLATE_ATTRIBUTE_SERVICE = "enRuleTemplateAttributeService";
129
130 public static final String ROLE_SERVICE = "enRoleService";
131
132 public static final String RESPONSIBILITY_ID_SERVICE = "enResponsibilityIdService";
133
134 public static final String STATS_SERVICE = "enStatsService";
135
136 public static final String ROUTE_MANAGER_QUEUE_SERVICE = "enRouteManagerQueueService";
137
138 public static final String ROUTE_MANAGER_CONTROLLER = "enRouteManagerController";
139
140 public static final String RULE_DELEGATION_SERVICE = "enRuleDelegationService";
141
142 public static final String ROUTE_MANAGER_DRIVER = "enRouteManagerDriver";
143
144 public static final String OPTIMISTIC_LOCK_FAILURE_SERVICE = "enOptimisticLockFailureService";
145
146 public static final String NOTE_SERVICE = "enNoteService";
147
148 public static final String ROUTING_REPORT_SERVICE = "enRoutingReportService";
149
150 public static final String ROUTE_MODULE_SERVICE = "enRouteModuleService";
151
152 public static final String EXCEPTION_ROUTING_SERVICE = "enExceptionRoutingService";
153
154 public static final String ACTION_REGISTRY = "enActionRegistry";
155
156 public static final String BRANCH_SERVICE = "enBranchService";
157
158 public static final String WORKFLOW_MBEAN = "workflowMBean";
159
160 public static final String APPLICATION_CONSTANTS_CACHE = "applicationConstantsCache";
161
162 public static final String JTA_TRANSACTION_MANAGER = "jtaTransactionManager";
163
164 public static final String USER_TRANSACTION = "userTransaction";
165
166 public static final String SCHEDULER = "enScheduler";
167
168 public static final String DOCUMENT_LINK_SERVICE = "enDocumentLinkService";
169
170
171
172
173 public static final String XML_POLLER_SERVICE = "enXmlPollerService";
174
175 public static final String DB_TABLES_LOADER = "enDbTablesLoader";
176
177 public static final String ROUTE_NODE_SERVICE = "enRouteNodeService";
178
179 public static final String WORKFLOW_ENGINE = "workflowEngine";
180
181 public static final String SIMULATION_ENGINE = "simulationEngine";
182
183 public static final String BLANKET_APPROVE_ENGINE_FACTORY = "blanketApproveEngineFactory";
184
185 public static final String ACTION_LIST_EMAIL_SERVICE = "enActionListEmailService";
186
187 public static final String IMMEDIATE_EMAIL_REMINDER_SERVICE = "enImmediateEmailReminderService";
188
189 public static final String EMAIL_CONTENT_SERVICE = "enEmailContentService";
190
191 public static final String NOTIFICATION_SERVICE = "enNotificationService";
192
193 public static final String TRANSACTION_MANAGER = "transactionManager";
194
195 public static final String TRANSACTION_TEMPLATE = "transactionTemplate";
196
197 public static final String HELP_SERVICE = "enHelpService";
198
199 public static final String WORKFLOW_DOCUMENT_SERVICE = "enWorkflowDocumentService";
200
201 public static final String EXTENSION_SERVICE = "enExtensionService";
202
203 public static final String TRANSFORMATION_SERVICE = "enTransformationService";
204
205 public static final String ENCRYPTION_SERVICE = "enEncryptionService";
206
207 public static final String REMOVE_REPLACE_DOCUMENT_SERVICE = "enRemoveReplaceDocumentService";
208
209 public static final String EXTRACT_SERVICE = "enExtractService";
210
211 public static final String IDENTITY_HELPER_SERVICE = "kewIdentityHelperService";
212
213 public static final String ENTITY_MANAGER_FACTORY = "kewEntityManagerFactory";
214
215 public static final String MAILER = "mailer";
216
217 public static final String WORKFLOW_DOCUMENT_PROTOTYPE = "rice.kew.workflowDocumentPrototype";
218
219
220 public static EntityManagerFactory getEntityManagerFactory() {
221 return (EntityManagerFactory) getService(ENTITY_MANAGER_FACTORY);
222 }
223
224
225
226
227
228
229 public static <T> T getService(String serviceName) {
230 return KEWServiceLocator.<T>getBean(serviceName);
231 }
232
233 public static <T> T getBean(String serviceName) {
234 if ( LOG.isDebugEnabled() ) {
235 LOG.debug("Fetching service " + serviceName);
236 }
237 return GlobalResourceLoader.getResourceLoader().<T>getService(
238 (RunMode.REMOTE.equals(RunMode.valueOf(ConfigContext.getCurrentContextConfig().getProperty(KEW_RUN_MODE_PROPERTY)))) ?
239 new QName(KEWConstants.KEW_MODULE_NAMESPACE, serviceName) : new QName(serviceName));
240 }
241
242 public static WorkflowUtility getWorkflowUtilityService() {
243 if ( LOG.isDebugEnabled() ) {
244 LOG.debug("Fetching service " + KEWConstants.WORKFLOW_UTILITY_SERVICE);
245 }
246 return (WorkflowUtility) GlobalResourceLoader.getResourceLoader().getService(new QName(KEWConstants.WORKFLOW_UTILITY_SERVICE));
247 }
248
249 public static DocumentTypeService getDocumentTypeService() {
250 return (DocumentTypeService) getBean(DOCUMENT_TYPE_SERVICE);
251 }
252
253 public static DocumentTypePermissionService getDocumentTypePermissionService() {
254 return (DocumentTypePermissionService) getBean(DOCUMENT_TYPE_PERMISSION_SERVICE);
255 }
256
257 public static DocumentSecurityService getDocumentSecurityService() {
258 return (DocumentSecurityService) getBean(DOCUMENT_SECURITY_SERVICE);
259 }
260
261
262 public static ActionRequestService getActionRequestService() {
263 return (ActionRequestService) getBean(ACTION_REQUEST_SRV);
264 }
265
266 public static ActionTakenService getActionTakenService() {
267 return (ActionTakenService) getBean(ACTION_TAKEN_SRV);
268 }
269
270 public static ResponsibilityIdService getResponsibilityIdService() {
271 return (ResponsibilityIdService) getBean(RESPONSIBILITY_ID_SERVICE);
272 }
273
274 public static RouteHeaderService getRouteHeaderService() {
275 return (RouteHeaderService) getBean(DOC_ROUTE_HEADER_SRV);
276 }
277
278 public static RuleTemplateService getRuleTemplateService() {
279 return (RuleTemplateService) getBean(RULE_TEMPLATE_SERVICE);
280 }
281
282 public static RuleAttributeService getRuleAttributeService() {
283 return (RuleAttributeService) getBean(RULE_ATTRIBUTE_SERVICE);
284 }
285
286 public static WorkflowDocumentService getWorkflowDocumentService() {
287 return (WorkflowDocumentService) getBean(WORKFLOW_DOCUMENT_SERVICE);
288 }
289
290 public static RouteModuleService getRouteModuleService() {
291 return (RouteModuleService) getBean(ROUTE_MODULE_SERVICE);
292 }
293
294 public static RoleService getRoleService() {
295 return (RoleService) getBean(ROLE_SERVICE);
296 }
297
298 public static RuleService getRuleService() {
299 return (RuleService) getBean(RULE_SERVICE);
300 }
301
302 public static RuleDelegationService getRuleDelegationService() {
303 return (RuleDelegationService) getBean(RULE_DELEGATION_SERVICE);
304 }
305
306 public static HelpService getHelpService() {
307 return (HelpService) getBean(HELP_SERVICE);
308 }
309
310 public static RoutingReportService getRoutingReportService() {
311 return (RoutingReportService) getBean(ROUTING_REPORT_SERVICE);
312 }
313
314 public static PreferencesService getPreferencesService() {
315 return (PreferencesService) getBean(PREFERENCES_SERVICE);
316 }
317
318 public static XmlPollerService getXmlPollerService() {
319 return (XmlPollerService) getBean(XML_POLLER_SERVICE);
320 }
321
322 public static UserOptionsService getUserOptionsService() {
323 return (UserOptionsService) getBean(USER_OPTIONS_SRV);
324 }
325
326 public static ActionListService getActionListService() {
327 return (ActionListService) getBean(ACTION_LIST_SRV);
328 }
329
330 public static RouteNodeService getRouteNodeService() {
331 return (RouteNodeService) getBean(ROUTE_NODE_SERVICE);
332 }
333
334 public static WorkflowEngine getWorkflowEngine() {
335 return (WorkflowEngine) getBean(WORKFLOW_ENGINE);
336 }
337
338 public static SimulationWorkflowEngine getSimulationEngine() {
339 return (SimulationWorkflowEngine) getBean(SIMULATION_ENGINE);
340 }
341
342 public static BlanketApproveEngineFactory getBlanketApproveEngineFactory() {
343 return (BlanketApproveEngineFactory) getBean(BLANKET_APPROVE_ENGINE_FACTORY);
344 }
345
346 public static WorkflowDocumentExceptionRoutingService getExceptionRoutingService() {
347 return (WorkflowDocumentExceptionRoutingService) getBean(EXCEPTION_ROUTING_SERVICE);
348 }
349
350 public static ActionListEmailService getActionListEmailService() {
351 return (ActionListEmailService) getBean(KEWServiceLocator.ACTION_LIST_EMAIL_SERVICE);
352 }
353
354 public static EmailContentService getEmailContentService() {
355 return (EmailContentService) getBean(KEWServiceLocator.EMAIL_CONTENT_SERVICE);
356 }
357
358 public static NotificationService getNotificationService() {
359 return (NotificationService) getBean(KEWServiceLocator.NOTIFICATION_SERVICE);
360 }
361
362 public static TransactionManager getTransactionManager() {
363 return (TransactionManager) getBean(JTA_TRANSACTION_MANAGER);
364 }
365
366 public static UserTransaction getUserTransaction() {
367 return (UserTransaction) getBean(USER_TRANSACTION);
368 }
369
370 public static NoteService getNoteService() {
371 return (NoteService) getBean(NOTE_SERVICE);
372 }
373
374 public static ActionRegistry getActionRegistry() {
375 return (ActionRegistry) getBean(ACTION_REGISTRY);
376 }
377
378 public static EncryptionService getEncryptionService() {
379 return (EncryptionService) getBean(ENCRYPTION_SERVICE);
380 }
381
382 public static BranchService getBranchService() {
383 return (BranchService) getBean(BRANCH_SERVICE);
384 }
385
386 public static DocumentSearchService getDocumentSearchService() {
387 return (DocumentSearchService) getBean(DOCUMENT_SEARCH_SERVICE);
388 }
389
390 public static ExtractService getExtractService() {
391 return (ExtractService) getBean(EXTRACT_SERVICE);
392 }
393
394 public static IdentityHelperService getIdentityHelperService() {
395 return (IdentityHelperService) getBean(IDENTITY_HELPER_SERVICE);
396 }
397
398 public static DocumentLinkService getDocumentLinkService(){
399 return (DocumentLinkService) getBean(DOCUMENT_LINK_SERVICE);
400 }
401
402 public static Mailer getMailer(){
403 return (Mailer) getBean(MAILER);
404 }
405
406
407
408
409
410
411 public static DataSource getDataSource() {
412 return (DataSource) getBean(DATASOURCE);
413 }
414
415 public static PlatformTransactionManager getPlatformTransactionManager() {
416 return (PlatformTransactionManager) getBean(TRANSACTION_MANAGER);
417 }
418
419 public static WorkflowDocumentPrototype getWorkflowDocumentPrototype() {
420 return getBean(WORKFLOW_DOCUMENT_PROTOTYPE);
421 }
422 }