View Javadoc

1   /*
2    * $Id: AbstractTilesInitializerServlet.java 1310865 2012-04-07 21:01:22Z nlebas $
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.http.HttpServlet;
25  
26  import org.apache.tiles.request.servlet.ServletApplicationContext;
27  import org.apache.tiles.startup.TilesInitializer;
28  import org.apache.tiles.web.util.ServletContextAdapter;
29  
30  /**
31   * Abstract Initialization Servlet. Uses a {@link TilesInitializer}, created by
32   * {@link #createTilesInitializer()} to initialize Tiles.
33   *
34   * @deprecated use {@link AbstractTilesListener} instead.
35   * @see org.apache.tiles.web.startup.TilesListener
36   * @version $Rev: 1310865 $ $Date: 2012-04-08 07:01:22 +1000 (Sun, 08 Apr 2012) $
37   * @since 2.2.0
38   */
39  @Deprecated
40  public abstract class AbstractTilesInitializerServlet extends HttpServlet {
41  
42      /**
43       * The private listener instance, that is used to initialize Tiles
44       * container.
45       */
46      private TilesInitializer initializer;
47  
48      /** {@inheritDoc} */
49      @Override
50      public void destroy() {
51          initializer.destroy();
52      }
53  
54      /** {@inheritDoc} */
55      @Override
56      public void init() {
57          initializer = createTilesInitializer();
58          ServletContext adaptedContext = new ServletContextAdapter(
59                  getServletConfig());
60          ServletApplicationContext preliminaryContext = new ServletApplicationContext(
61                  adaptedContext);
62          initializer.initialize(preliminaryContext);
63      }
64  
65      /**
66       * Creates a new instance of {@link TilesInitializer}. Implement it to use
67       * your custom initializer.
68       *
69       * @return The Tiles servlet-based initializer.
70       * @since 2.2.0
71       */
72      protected abstract TilesInitializer createTilesInitializer();
73  }