1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
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 }