1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.kuali.rice.kns.web.servlet.dwr;
18
19 import org.directwebremoting.spring.SpringCreator;
20 import org.kuali.rice.core.api.config.property.ConfigContext;
21 import org.kuali.rice.core.api.resourceloader.GlobalResourceLoader;
22 import org.kuali.rice.kew.api.doctype.DocumentTypeService;
23 import org.springframework.beans.factory.BeanFactory;
24
25 import java.lang.reflect.InvocationHandler;
26 import java.lang.reflect.Method;
27 import java.lang.reflect.Proxy;
28
29
30
31
32
33
34
35
36
37 public class GlobalResourceDelegatingSpringCreator extends SpringCreator {
38
39 public static final String KEW_RUN_MODE_PROPERTY = "kew.mode";
40 public static final String DOCUMENT_TYPE_SERVICE = "enDocumentTypeService";
41
42 @Override
43 public Object getInstance() throws InstantiationException {
44
45
46 if(ConfigContext.getCurrentContextConfig().getProperty(KEW_RUN_MODE_PROPERTY).equals("REMOTE") &&
47 this.getBeanName().equals(DOCUMENT_TYPE_SERVICE))
48 {
49 return Proxy.newProxyInstance(getClass().getClassLoader(), new Class<?>[]{DocumentTypeService.class},
50
51 new InvocationHandler() {
52 @Override
53 public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
54 return null;
55 }
56 }
57 );
58 }
59
60 Object bean = GlobalResourceLoader.getService(this.getBeanName());
61
62 if (bean == null) {
63 throw new InstantiationException("Unable to find bean " + this.getBeanName() + " in Rice Global Resource Loader");
64 }
65
66 return bean;
67 }
68
69 }