1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.kuali.rice.ksb.messaging.resourceloader;
17
18 import javax.xml.namespace.QName;
19
20 import org.kuali.rice.core.api.config.CoreConfigHelper;
21 import org.kuali.rice.core.api.config.property.ConfigContext;
22 import org.kuali.rice.core.api.resourceloader.GlobalResourceLoader;
23 import org.kuali.rice.core.api.resourceloader.ResourceLoader;
24 import org.kuali.rice.core.framework.resourceloader.BaseResourceLoader;
25 import org.kuali.rice.core.impl.resourceloader.SpringResourceLoader;
26 import org.kuali.rice.ksb.api.KsbApiServiceLocator;
27 import org.kuali.rice.ksb.api.bus.ServiceBus;
28
29
30
31
32
33
34
35
36
37
38
39
40
41 public class KSBResourceLoaderFactory {
42
43 private static final String KSB_ROOT_RESOURCE_LOACER_NAME = "KSB_ROOT_RESOURCE_LOADER";
44 private static final String KSB_REMOTE_RESOURCE_LOADER_LOCAL_NAME = "KSB_REMOTE_RESOURCE_LOADER";
45
46 private static void initialize() {
47 String applicationId = CoreConfigHelper.getApplicationId();
48 if (getRootResourceLoaderName() == null) {
49 setRootResourceLoaderName(new QName(applicationId, KSB_ROOT_RESOURCE_LOACER_NAME));
50 }
51 if (getRemoteResourceLoaderName() == null) {
52 setRemoteResourceLoaderName(new QName(applicationId, KSB_REMOTE_RESOURCE_LOADER_LOCAL_NAME));
53 }
54 }
55
56 public static ResourceLoader createRootKSBRemoteResourceLoader() {
57 initialize();
58 ResourceLoader rootResourceLoader = new BaseResourceLoader(getRootResourceLoaderName());
59 ServiceBus serviceBus = KsbApiServiceLocator.getServiceBus();
60 if (serviceBus == null) {
61 throw new IllegalStateException("Failed to locate the ServiceBus");
62 }
63 rootResourceLoader.addResourceLoader(new ServiceBusResourceLoader(getRemoteResourceLoaderName(), serviceBus));
64 return rootResourceLoader;
65 }
66
67 public static ResourceLoader createThinClientKSBResourceLoader() {
68 ResourceLoader resourceLoader = new SpringResourceLoader(new QName("", "KSB_THIN_CLIENT_RESOURCE_LOADER"), "classpath:org/kuali/rice/ksb/config/KSBThinClientSpringBeans.xml", null);
69 GlobalResourceLoader.addResourceLoader(resourceLoader);
70 return resourceLoader;
71 }
72
73 public static BaseResourceLoader getRootResourceLoader() {
74 return (BaseResourceLoader)GlobalResourceLoader.getResourceLoader(getRootResourceLoaderName());
75 }
76
77 public static QName getRootResourceLoaderName() {
78 return (QName)ConfigContext.getCurrentContextConfig().getObject(KSB_ROOT_RESOURCE_LOACER_NAME);
79 }
80
81 public static void setRootResourceLoaderName(QName name) {
82 ConfigContext.getCurrentContextConfig().putObject(KSB_ROOT_RESOURCE_LOACER_NAME, name);
83 }
84
85 public static QName getRemoteResourceLoaderName() {
86 return (QName)ConfigContext.getCurrentContextConfig().getObject(KSB_REMOTE_RESOURCE_LOADER_LOCAL_NAME);
87 }
88
89 public static void setRemoteResourceLoaderName(QName remoteResourceLoaderName) {
90 ConfigContext.getCurrentContextConfig().putObject(KSB_REMOTE_RESOURCE_LOADER_LOCAL_NAME, remoteResourceLoaderName);
91 }
92
93 }