1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.kuali.rice.kim.service;
17
18 import org.apache.log4j.Logger;
19 import org.kuali.rice.core.api.config.module.RunMode;
20 import org.kuali.rice.core.api.config.property.ConfigContext;
21 import org.kuali.rice.core.api.resourceloader.GlobalResourceLoader;
22 import org.kuali.rice.kim.api.KimConstants;
23 import org.kuali.rice.kim.impl.group.GroupInternalService;
24
25 import javax.xml.namespace.QName;
26
27
28
29
30
31
32
33 public final class KIMServiceLocatorInternal {
34
35 private static final Logger LOG = Logger.getLogger(KIMServiceLocatorInternal.class);
36
37 public static final String KIM_RUN_MODE_PROPERTY = "kim.mode";
38
39 public static final String KIM_UI_DOCUMENT_SERVICE = "kimUiDocumentService";
40 public static final String GROUP_INTERNAL_SERVICE = "groupInternalService";
41
42 public static Object getService(String serviceName) {
43 return getBean(serviceName);
44 }
45
46 public static Object getBean(String serviceName) {
47 if ( LOG.isDebugEnabled() ) {
48 LOG.debug("Fetching service " + serviceName);
49 }
50 QName name = new QName(serviceName);
51 RunMode kimRunMode = RunMode.valueOf(ConfigContext.getCurrentContextConfig().getProperty(KIM_RUN_MODE_PROPERTY));
52 if (kimRunMode == RunMode.REMOTE || kimRunMode == RunMode.THIN) {
53 name = new QName(KimConstants.KIM_MODULE_NAMESPACE, serviceName);
54 }
55 return GlobalResourceLoader.getResourceLoader().getService(name);
56 }
57
58 public static UiDocumentService getUiDocumentService() {
59 return (UiDocumentService)getService(KIM_UI_DOCUMENT_SERVICE);
60 }
61
62 public static GroupInternalService getGroupInternalService() {
63 return (GroupInternalService)getService(GROUP_INTERNAL_SERVICE);
64 }
65
66 }