1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package com.fatwire.gst.foundation.controller.action;
18
19 import javax.servlet.ServletContext;
20
21 import org.apache.commons.logging.Log;
22 import org.apache.commons.logging.LogFactory;
23 import org.springframework.beans.factory.NoSuchBeanDefinitionException;
24 import org.springframework.web.context.WebApplicationContext;
25 import org.springframework.web.context.support.WebApplicationContextUtils;
26
27 import com.fatwire.gst.foundation.controller.action.support.NullActionNameResolver;
28 import com.fatwire.gst.foundation.controller.support.WebContextUtil;
29
30
31
32
33
34 public final class ActionNameResolverUtils {
35 private static final Log LOG = LogFactory.getLog(ActionNameResolverUtils.class.getPackage().getName());
36 public static final String ACTION_NAME_RESOLVER_BEAN = "gsfActionNameResolver";
37
38 private static final ActionNameResolver nullActionNameResolver = new NullActionNameResolver();
39
40
41
42
43 private ActionNameResolverUtils() {
44 }
45
46
47
48
49
50
51
52
53 public static ActionNameResolver getActionNameResolver(final ServletContext servletContext) {
54 return getActionNameResolver(servletContext, ACTION_NAME_RESOLVER_BEAN);
55 }
56
57 private static ActionNameResolver getActionNameResolver(ServletContext servletContext, String actionNameResolverBean) {
58 return WebContextUtil.getWebAppContext(servletContext)
59 .getBean(actionNameResolverBean, ActionNameResolver.class);
60 }
61
62
63
64
65
66
67
68
69
70 public static ActionNameResolver getActionNameResolverX(final ServletContext servletContext, String beanName) {
71
72
73 final WebApplicationContext wac = WebApplicationContextUtils.getRequiredWebApplicationContext(servletContext);
74
75
76
77 ActionNameResolver resolver;
78 try {
79 resolver = (ActionNameResolver) wac.getBean(beanName, ActionNameResolver.class);
80 if (LOG.isTraceEnabled()) {
81 LOG.trace("Using ActionNameResolver as configured: " + resolver.getClass().getName());
82 }
83 } catch (NoSuchBeanDefinitionException e) {
84 return nullActionNameResolver;
85 }
86
87 return resolver;
88 }
89
90 }