1 15 16 package com.jdon.controller; 17 18 import javax.servlet.ServletContext ; 19 import javax.servlet.http.HttpServletRequest ; 20 21 import org.aopalliance.intercept.MethodInterceptor; 22 23 import com.jdon.aop.interceptor.InterceptorsChain; 24 import com.jdon.aop.joinpoint.Pointcut; 25 import com.jdon.bussinessproxy.TargetMetaDef; 26 import com.jdon.bussinessproxy.meta.MethodMetaArgs; 27 import com.jdon.container.ContainerWrapper; 28 import com.jdon.container.builder.ContainerBuilder; 29 import com.jdon.container.finder.ComponentKeys; 30 import com.jdon.container.finder.ServletContainerFinder; 31 import com.jdon.controller.events.EventModel; 32 import com.jdon.controller.model.ModelIF; 33 import com.jdon.controller.service.Service; 34 import com.jdon.controller.service.ServiceFacade; 35 import com.jdon.controller.service.ServiceFactory; 36 import com.jdon.model.handler.HandlerMethodMetaArgsFactory; 37 import com.jdon.util.Debug; 38 39 48 public class WebAppUtil { 49 private final static String module = WebAppUtil.class.getName(); 50 51 private final static ServletContainerFinder scf = new ServletContainerFinder(); 52 53 75 public static Object getService(String name, HttpServletRequest request) { 76 ServiceFacade serviceFacade = new ServiceFacade(); 77 ServiceFactory serviceFactory = serviceFacade.getServiceFactory(request); 78 return serviceFactory.getService(name, request); 79 } 80 81 public static Object getService(TargetMetaDef targetMetaDef, HttpServletRequest request) { 82 ServiceFacade serviceFacade = new ServiceFacade(); 83 ServiceFactory serviceFactory = serviceFacade.getServiceFactory(request); 84 return serviceFactory.getService(targetMetaDef, request); 85 } 86 87 94 public static Object getComponentInstance(String name, HttpServletRequest request) { 95 ContainerWrapper containerWrapper = scf.findContainer(request); 96 return containerWrapper.lookup(name); 97 } 98 99 public static Object getComponentInstance(String name, ServletContext sc) { 100 ContainerWrapper containerWrapper = scf.findContainer(sc); 101 return containerWrapper.lookup(name); 102 } 103 104 112 public static Object getEJBService(String name, HttpServletRequest request) throws Exception { 113 return getService(name, request); 114 } 115 116 137 public static Object callService(String serviceName, String methodName, Object [] methodParams, HttpServletRequest request) throws Exception { 138 Debug.logVerbose("[JdonFramework] call the method: " + methodName + " for the service: " + serviceName, module); 139 Object result = null; 140 try { 141 HandlerMethodMetaArgsFactory maFactory = new HandlerMethodMetaArgsFactory(); 142 MethodMetaArgs methodMetaArgs = maFactory.createDirectMethod(methodName, methodParams); 143 144 ServiceFacade serviceFacade = new ServiceFacade(); 145 Service service = serviceFacade.getService(request); 146 result = service.execute(serviceName, methodMetaArgs, request); 147 } catch (Exception ex) { 148 Debug.logError("[JdonFramework] serviceAction Error: " + ex, module); 149 throw new Exception (" serviceAction Error:" + ex); 150 } 151 return result; 152 } 153 154 155 161 public static String getContainerKey() { 162 return ContainerBuilder.APPLICATION_CONTEXT_ATTRIBUTE_NAME; 163 } 164 165 171 public static String getInterceptorKey() { 172 return InterceptorsChain.NAME; 173 } 174 175 182 public static ContainerWrapper getContainer(HttpServletRequest request) throws Exception { 183 ServletContainerFinder scf = new ServletContainerFinder(); 184 return scf.findContainer(request); 185 } 186 187 192 public static void addInterceptor(MethodInterceptor interceptor, HttpServletRequest request) throws Exception { 193 addInterceptor(Pointcut.TARGET_PROPS_SERVICES, interceptor, request); 194 } 195 196 204 public static void addInterceptor(String pointcut, MethodInterceptor interceptor, HttpServletRequest request) throws Exception { 205 ContainerWrapper cw = getContainer(request); 206 if (cw == null) { 207 throw new Exception ("Please at first init the JdonFramework!"); 208 } 209 InterceptorsChain interceptorsChain = (InterceptorsChain) cw.lookup(ComponentKeys.INTERCEPTOR_CHAIN); 210 interceptorsChain.addInterceptor(pointcut, interceptor); 211 } 212 213 } 214 | Popular Tags |