This project has retired. For details please refer to its Attic page.
AbstractTilesInitializerServlet xref
View Javadoc

1   /*
2    * $Id: AbstractTilesInitializerServlet.java 797540 2009-07-24 15:42:00Z apetrelli $
3    *
4    * Licensed to the Apache Software Foundation (ASF) under one
5    * or more contributor license agreements.  See the NOTICE file
6    * distributed with this work for additional information
7    * regarding copyright ownership.  The ASF licenses this file
8    * to you under the Apache License, Version 2.0 (the
9    * "License"); you may not use this file except in compliance
10   * with the License.  You may obtain a copy of the License at
11   *
12   * http://www.apache.org/licenses/LICENSE-2.0
13   *
14   * Unless required by applicable law or agreed to in writing,
15   * software distributed under the License is distributed on an
16   * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
17   * KIND, either express or implied.  See the License for the
18   * specific language governing permissions and limitations
19   * under the License.
20   */
21  package org.apache.tiles.web.startup;
22  
23  import javax.servlet.ServletContext;
24  import javax.servlet.ServletException;
25  import javax.servlet.http.HttpServlet;
26  
27  import org.apache.tiles.servlet.context.ServletTilesApplicationContext;
28  import org.apache.tiles.startup.TilesInitializer;
29  import org.apache.tiles.web.util.ServletContextAdapter;
30  
31  /***
32   * Abstract Initialization Servlet. Uses a {@link TilesInitializer}, created by
33   * {@link #createTilesInitializer()} to initialize Tiles.
34   *
35   * @see org.apache.tiles.web.startup.TilesListener
36   * @version $Rev: 797540 $ $Date: 2009-07-24 17:42:00 +0200 (ven, 24 lug 2009) $
37   * @since 2.2.0
38   */
39  public abstract class AbstractTilesInitializerServlet extends HttpServlet {
40  
41      /***
42       * The private listener instance, that is used to initialize Tiles
43       * container.
44       */
45      private TilesInitializer initializer;
46  
47      /*** {@inheritDoc} */
48      @Override
49      public void destroy() {
50          initializer.destroy();
51      }
52  
53      /*** {@inheritDoc} */
54      @Override
55      public void init() throws ServletException {
56          initializer = createTilesInitializer();
57          ServletContext adaptedContext = new ServletContextAdapter(
58                  getServletConfig());
59          ServletTilesApplicationContext preliminaryContext = new ServletTilesApplicationContext(
60                  adaptedContext);
61          initializer.initialize(preliminaryContext);
62      }
63  
64      /***
65       * Creates a new instance of {@link TilesInitializer}. Implement it to use
66       * your custom initializer.
67       *
68       * @return The Tiles servlet-based initializer.
69       * @since 2.2.0
70       */
71      protected abstract TilesInitializer createTilesInitializer();
72  }