1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.apache.portals.applications.rss.servlets;
18
19 import javax.servlet.ServletConfig;
20 import javax.servlet.ServletException;
21 import javax.servlet.http.HttpServlet;
22
23 import org.springframework.beans.factory.BeanFactory;
24 import org.springframework.beans.factory.xml.XmlBeanFactory;
25 import org.springframework.web.context.support.ServletContextResourceLoader;
26
27 /***
28 * SpringInitServlet
29 *
30 * @author <a href="mailto:taylor@apache.org">David Sean Taylor</a>
31 * @version $Id: SpringInitServlet.java 517121 2007-03-12 07:45:49Z ate $
32 */
33 public class SpringInitServlet extends HttpServlet
34 {
35 /***
36 * Init Parameter: default spring configuration property
37 */
38 private static final String INITPARAM_SPRING_CONFIG = "spring-configuration";
39 private static Object semaphore = new Object();
40
41 /***
42 * Spring Factory
43 */
44 private static XmlBeanFactory springFactory = null;
45
46
47 /***
48 * Intialize Servlet.
49 */
50 public final void init( ServletConfig config ) throws ServletException
51 {
52 super.init(config);
53 String springConfig = getInitParameter(INITPARAM_SPRING_CONFIG);
54 if (springConfig == null) { throw new ServletException("Spring Configuration file not specified"); }
55
56
57 try
58 {
59 synchronized (semaphore)
60 {
61 if (null == springFactory)
62 {
63 ServletContextResourceLoader resourceLoader = new ServletContextResourceLoader(this.getServletContext());
64 springFactory = new XmlBeanFactory(resourceLoader.getResource(springConfig));
65 }
66 }
67 }
68 catch (Exception e)
69 {
70 throw new ServletException("Failed to load spring configuration.", e);
71 }
72
73 }
74
75 public static final BeanFactory getSpringFactory()
76 {
77 return springFactory;
78 }
79
80 }