You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@cocoon.apache.org by re...@apache.org on 2008/04/16 19:22:48 UTC

svn commit: r648758 - /cocoon/whiteboard/corona/trunk/corona-servlet/src/main/java/org/apache/cocoon/corona/servlet/SitemapServlet.java

Author: reinhard
Date: Wed Apr 16 10:22:29 2008
New Revision: 648758

URL: http://svn.apache.org/viewvc?rev=648758&view=rev
Log:
lazy initialization for the Corona sitemap servlet

Modified:
    cocoon/whiteboard/corona/trunk/corona-servlet/src/main/java/org/apache/cocoon/corona/servlet/SitemapServlet.java

Modified: cocoon/whiteboard/corona/trunk/corona-servlet/src/main/java/org/apache/cocoon/corona/servlet/SitemapServlet.java
URL: http://svn.apache.org/viewvc/cocoon/whiteboard/corona/trunk/corona-servlet/src/main/java/org/apache/cocoon/corona/servlet/SitemapServlet.java?rev=648758&r1=648757&r2=648758&view=diff
==============================================================================
--- cocoon/whiteboard/corona/trunk/corona-servlet/src/main/java/org/apache/cocoon/corona/servlet/SitemapServlet.java (original)
+++ cocoon/whiteboard/corona/trunk/corona-servlet/src/main/java/org/apache/cocoon/corona/servlet/SitemapServlet.java Wed Apr 16 10:22:29 2008
@@ -49,17 +49,27 @@
 
     private BeanFactory beanFactory;
     private Sitemap sitemap;
+    private boolean initialized;
+
+    private ServletConfig servletConfig;
 
     @Override
     public void init(ServletConfig servletConfig) throws ServletException {
-        super.init(servletConfig);
+        this.servletConfig = servletConfig;
+        super.init(this.servletConfig);
+    }
 
-        try {
-            SitemapBuilder sitemapBuilder = (SitemapBuilder) this.beanFactory.getBean(SitemapBuilder.class.getName());
-            URL url = servletConfig.getServletContext().getResource("/sitemap.xmap");
-            this.sitemap = sitemapBuilder.build(url);
-        } catch (Exception e) {
-            throw new ServletException(e);
+    private void lazyInitialize(ServletConfig servletConfig) throws ServletException {
+        if (!this.initialized) {
+            try {
+                SitemapBuilder sitemapBuilder = (SitemapBuilder) this.beanFactory.getBean(SitemapBuilder.class
+                        .getName());
+                URL url = servletConfig.getServletContext().getResource("/sitemap.xmap");
+                this.sitemap = sitemapBuilder.build(url);
+            } catch (Exception e) {
+                throw new ServletException(e);
+            }
+            this.initialized = true;
         }
     }
 
@@ -80,6 +90,7 @@
 
     @Override
     protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
+        this.lazyInitialize(servletConfig);
         try {
             SitemapDelegator.setSitemapServlet(this);