View Javadoc

1   /*
2    * Licensed to the Apache Software Foundation (ASF) under one or more
3    * contributor license agreements.  See the NOTICE file distributed with
4    * this work for additional information regarding copyright ownership.
5    * The ASF licenses this file to You under the Apache License, Version 2.0
6    * (the "License"); you may not use this file except in compliance with
7    * the License.  You may obtain a copy of the License at
8    * 
9    *      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      /***
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          // load Spring
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  }