01: /*
02: * Licensed to the Apache Software Foundation (ASF) under one or more
03: * contributor license agreements. See the NOTICE file distributed with
04: * this work for additional information regarding copyright ownership.
05: * The ASF licenses this file to You under the Apache License, Version 2.0
06: * (the "License"); you may not use this file except in compliance with
07: * the License. You may obtain a copy of the License at
08: *
09: * http://www.apache.org/licenses/LICENSE-2.0
10: *
11: * Unless required by applicable law or agreed to in writing, software
12: * distributed under the License is distributed on an "AS IS" BASIS,
13: * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14: * See the License for the specific language governing permissions and
15: * limitations under the License.
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: * Init Parameter: default spring configuration property
36: */
37: private static final String INITPARAM_SPRING_CONFIG = "spring-configuration";
38: private static Object semaphore = new Object();
39:
40: /**
41: * Spring Factory
42: */
43: private static XmlBeanFactory springFactory = null;
44:
45: /**
46: * Intialize Servlet.
47: */
48: public final void init(ServletConfig config)
49: throws ServletException {
50: super .init(config);
51: String springConfig = getInitParameter(INITPARAM_SPRING_CONFIG);
52: if (springConfig == null) {
53: throw new ServletException(
54: "Spring Configuration file not specified");
55: }
56:
57: // load Spring
58: try {
59: synchronized (semaphore) {
60: if (null == springFactory) {
61: ServletContextResourceLoader resourceLoader = new ServletContextResourceLoader(
62: this .getServletContext());
63: springFactory = new XmlBeanFactory(resourceLoader
64: .getResource(springConfig));
65: }
66: }
67: } catch (Exception e) {
68: throw new ServletException(
69: "Failed to load spring configuration.", e);
70: }
71:
72: }
73:
74: public static final BeanFactory getSpringFactory() {
75: return springFactory;
76: }
77:
78: }
|