You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tiles.apache.org by ap...@apache.org on 2009/07/24 17:42:01 UTC

svn commit: r797540 - in /tiles/framework/trunk: tiles-api/src/main/java/org/apache/tiles/ tiles-core/src/main/java/org/apache/tiles/awareness/ tiles-core/src/main/java/org/apache/tiles/context/ tiles-core/src/main/java/org/apache/tiles/context/enhance...

Author: apetrelli
Date: Fri Jul 24 15:42:00 2009
New Revision: 797540

URL: http://svn.apache.org/viewvc?rev=797540&view=rev
Log:
TILES-430
Deprecated Initializable interface, removed in new developments, suppressing deprecation in old ones.
Deprecated TilesContainerFactory.
Added new abstract objects to recover code that will be still useful for pure-Java configuration.

Added:
    tiles/framework/trunk/tiles-core/src/main/java/org/apache/tiles/startup/AbstractTilesInitializer.java   (with props)
    tiles/framework/trunk/tiles-core/src/main/java/org/apache/tiles/startup/DefaultTilesInitializer.java   (with props)
    tiles/framework/trunk/tiles-servlet/src/main/java/org/apache/tiles/web/startup/AbstractTilesInitializerServlet.java   (with props)
    tiles/framework/trunk/tiles-servlet/src/main/java/org/apache/tiles/web/startup/AbstractTilesListener.java   (with props)
    tiles/framework/trunk/tiles-servlet/src/main/java/org/apache/tiles/web/startup/simple/
    tiles/framework/trunk/tiles-servlet/src/main/java/org/apache/tiles/web/startup/simple/SimpleTilesInitializerServlet.java   (with props)
    tiles/framework/trunk/tiles-servlet/src/main/java/org/apache/tiles/web/startup/simple/SimpleTilesListener.java   (with props)
    tiles/framework/trunk/tiles-servlet/src/main/java/org/apache/tiles/web/startup/simple/package.html   (with props)
Modified:
    tiles/framework/trunk/tiles-api/src/main/java/org/apache/tiles/Initializable.java
    tiles/framework/trunk/tiles-core/src/main/java/org/apache/tiles/awareness/AbstractTilesApplicationContextFactoryAware.java
    tiles/framework/trunk/tiles-core/src/main/java/org/apache/tiles/context/AbstractTilesApplicationContextFactory.java
    tiles/framework/trunk/tiles-core/src/main/java/org/apache/tiles/context/ChainedTilesApplicationContextFactory.java
    tiles/framework/trunk/tiles-core/src/main/java/org/apache/tiles/context/TilesRequestContextFactory.java
    tiles/framework/trunk/tiles-core/src/main/java/org/apache/tiles/context/enhanced/EnhancedTilesApplicationContextFactory.java
    tiles/framework/trunk/tiles-core/src/main/java/org/apache/tiles/definition/LocaleDefinitionsFactory.java
    tiles/framework/trunk/tiles-core/src/main/java/org/apache/tiles/definition/dao/BaseLocaleUrlDefinitionDAO.java
    tiles/framework/trunk/tiles-core/src/main/java/org/apache/tiles/factory/AbstractTilesContainerFactory.java
    tiles/framework/trunk/tiles-core/src/main/java/org/apache/tiles/factory/KeyedDefinitionsFactoryTilesContainerFactory.java
    tiles/framework/trunk/tiles-core/src/main/java/org/apache/tiles/factory/TilesContainerFactory.java
    tiles/framework/trunk/tiles-core/src/main/java/org/apache/tiles/renderer/impl/BasicRendererFactory.java
    tiles/framework/trunk/tiles-core/src/main/java/org/apache/tiles/startup/BasicTilesInitializer.java
    tiles/framework/trunk/tiles-core/src/main/java/org/apache/tiles/startup/TilesInitializer.java
    tiles/framework/trunk/tiles-freemarker/src/main/java/org/apache/tiles/freemarker/renderer/FreeMarkerAttributeRenderer.java
    tiles/framework/trunk/tiles-portlet/src/main/java/org/apache/tiles/portlet/context/PortletTilesApplicationContextFactory.java
    tiles/framework/trunk/tiles-portlet/src/main/java/org/apache/tiles/portlet/context/wildcard/WildcardPortletTilesApplicationContextFactory.java
    tiles/framework/trunk/tiles-servlet/src/main/java/org/apache/tiles/servlet/context/ServletTilesApplicationContextFactory.java
    tiles/framework/trunk/tiles-servlet/src/main/java/org/apache/tiles/servlet/context/wildcard/WildcardServletTilesApplicationContextFactory.java
    tiles/framework/trunk/tiles-servlet/src/main/java/org/apache/tiles/web/startup/TilesListener.java
    tiles/framework/trunk/tiles-servlet/src/main/java/org/apache/tiles/web/startup/TilesServlet.java
    tiles/framework/trunk/tiles-test/src/main/java/org/apache/tiles/test/listener/TestAlternateTilesListener.java
    tiles/framework/trunk/tiles-test/src/main/java/org/apache/tiles/test/listener/TestDbTilesListener.java
    tiles/framework/trunk/tiles-test/src/main/java/org/apache/tiles/test/listener/TestTilesListener.java
    tiles/framework/trunk/tiles-velocity/src/main/java/org/apache/tiles/velocity/renderer/VelocityAttributeRenderer.java

Modified: tiles/framework/trunk/tiles-api/src/main/java/org/apache/tiles/Initializable.java
URL: http://svn.apache.org/viewvc/tiles/framework/trunk/tiles-api/src/main/java/org/apache/tiles/Initializable.java?rev=797540&r1=797539&r2=797540&view=diff
==============================================================================
--- tiles/framework/trunk/tiles-api/src/main/java/org/apache/tiles/Initializable.java (original)
+++ tiles/framework/trunk/tiles-api/src/main/java/org/apache/tiles/Initializable.java Fri Jul 24 15:42:00 2009
@@ -27,6 +27,8 @@
  *
  * @version $Rev$ $Date$
  * @since 2.1.0
+ * @deprecated Parameter-based initialization feature is deprecated and no
+ * longer supported.
  */
 public interface Initializable {
 
@@ -34,6 +36,7 @@
      * Initializes the object.
      *
      * @param params The map of parameters.
+     * @deprecated Do not use.
      */
     void init(Map<String, String> params);
 }

Modified: tiles/framework/trunk/tiles-core/src/main/java/org/apache/tiles/awareness/AbstractTilesApplicationContextFactoryAware.java
URL: http://svn.apache.org/viewvc/tiles/framework/trunk/tiles-core/src/main/java/org/apache/tiles/awareness/AbstractTilesApplicationContextFactoryAware.java?rev=797540&r1=797539&r2=797540&view=diff
==============================================================================
--- tiles/framework/trunk/tiles-core/src/main/java/org/apache/tiles/awareness/AbstractTilesApplicationContextFactoryAware.java (original)
+++ tiles/framework/trunk/tiles-core/src/main/java/org/apache/tiles/awareness/AbstractTilesApplicationContextFactoryAware.java Fri Jul 24 15:42:00 2009
@@ -28,6 +28,8 @@
  *
  * @version $Rev$ $Date$
  * @since 2.1.1
+ * @deprecated Since {@link AbstractTilesApplicationContextFactory} is
+ * deprecated, this dependency injection interface is deprecated.
  */
 public interface AbstractTilesApplicationContextFactoryAware {
 

Modified: tiles/framework/trunk/tiles-core/src/main/java/org/apache/tiles/context/AbstractTilesApplicationContextFactory.java
URL: http://svn.apache.org/viewvc/tiles/framework/trunk/tiles-core/src/main/java/org/apache/tiles/context/AbstractTilesApplicationContextFactory.java?rev=797540&r1=797539&r2=797540&view=diff
==============================================================================
--- tiles/framework/trunk/tiles-core/src/main/java/org/apache/tiles/context/AbstractTilesApplicationContextFactory.java (original)
+++ tiles/framework/trunk/tiles-core/src/main/java/org/apache/tiles/context/AbstractTilesApplicationContextFactory.java Fri Jul 24 15:42:00 2009
@@ -33,6 +33,10 @@
  *
  * @version $Rev$ $Date$
  * @since 2.1.1
+ * @deprecated Create an instance of {@link TilesApplicationContext} yourself,
+ * by implementing {@link org.apache.tiles.startup.TilesInitializer} or
+ * extending {@link org.apache.tiles.startup.AbstractTilesInitializer} and
+ * overriding <code>createTilesApplicationContext</code> method.
  */
 public abstract class AbstractTilesApplicationContextFactory  {
 

Modified: tiles/framework/trunk/tiles-core/src/main/java/org/apache/tiles/context/ChainedTilesApplicationContextFactory.java
URL: http://svn.apache.org/viewvc/tiles/framework/trunk/tiles-core/src/main/java/org/apache/tiles/context/ChainedTilesApplicationContextFactory.java?rev=797540&r1=797539&r2=797540&view=diff
==============================================================================
--- tiles/framework/trunk/tiles-core/src/main/java/org/apache/tiles/context/ChainedTilesApplicationContextFactory.java (original)
+++ tiles/framework/trunk/tiles-core/src/main/java/org/apache/tiles/context/ChainedTilesApplicationContextFactory.java Fri Jul 24 15:42:00 2009
@@ -39,6 +39,12 @@
  *
  * @version $Rev$ $Date$
  * @since 2.1.1
+ * @deprecated Create an instance of {@link TilesApplicationContext} yourself,
+ * by implementing {@link org.apache.tiles.startup.TilesInitializer} or
+ * extending {@link org.apache.tiles.startup.AbstractTilesInitializer} and
+ * overriding <code>createTilesApplicationContext</code> method.<br>
+ * Moreover, it does not make sense to "try" if your application is
+ * servlet-based, portlet-based, etc. You know it, right?
  */
 public class ChainedTilesApplicationContextFactory extends
         AbstractTilesApplicationContextFactory implements Initializable {

Modified: tiles/framework/trunk/tiles-core/src/main/java/org/apache/tiles/context/TilesRequestContextFactory.java
URL: http://svn.apache.org/viewvc/tiles/framework/trunk/tiles-core/src/main/java/org/apache/tiles/context/TilesRequestContextFactory.java?rev=797540&r1=797539&r2=797540&view=diff
==============================================================================
--- tiles/framework/trunk/tiles-core/src/main/java/org/apache/tiles/context/TilesRequestContextFactory.java (original)
+++ tiles/framework/trunk/tiles-core/src/main/java/org/apache/tiles/context/TilesRequestContextFactory.java Fri Jul 24 15:42:00 2009
@@ -30,6 +30,7 @@
  * @version $Rev$ $Date$
  * @since 2.1.1
  */
+@SuppressWarnings("deprecation")
 public interface TilesRequestContextFactory extends Initializable {
 
     /**

Modified: tiles/framework/trunk/tiles-core/src/main/java/org/apache/tiles/context/enhanced/EnhancedTilesApplicationContextFactory.java
URL: http://svn.apache.org/viewvc/tiles/framework/trunk/tiles-core/src/main/java/org/apache/tiles/context/enhanced/EnhancedTilesApplicationContextFactory.java?rev=797540&r1=797539&r2=797540&view=diff
==============================================================================
--- tiles/framework/trunk/tiles-core/src/main/java/org/apache/tiles/context/enhanced/EnhancedTilesApplicationContextFactory.java (original)
+++ tiles/framework/trunk/tiles-core/src/main/java/org/apache/tiles/context/enhanced/EnhancedTilesApplicationContextFactory.java Fri Jul 24 15:42:00 2009
@@ -28,6 +28,10 @@
  * {@link EnhancedTilesApplicationContext}.
  *
  * @version $Rev$ $Date$
+ * @deprecated Create an instance of {@link EnhancedTilesApplicationContext}
+ * yourself, by implementing {@link org.apache.tiles.startup.TilesInitializer}
+ * or extending {@link org.apache.tiles.startup.AbstractTilesInitializer} and
+ * overriding <code>createTilesApplicationContext</code> method.<br>
  */
 public class EnhancedTilesApplicationContextFactory extends
         ChainedTilesApplicationContextFactory {

Modified: tiles/framework/trunk/tiles-core/src/main/java/org/apache/tiles/definition/LocaleDefinitionsFactory.java
URL: http://svn.apache.org/viewvc/tiles/framework/trunk/tiles-core/src/main/java/org/apache/tiles/definition/LocaleDefinitionsFactory.java?rev=797540&r1=797539&r2=797540&view=diff
==============================================================================
--- tiles/framework/trunk/tiles-core/src/main/java/org/apache/tiles/definition/LocaleDefinitionsFactory.java (original)
+++ tiles/framework/trunk/tiles-core/src/main/java/org/apache/tiles/definition/LocaleDefinitionsFactory.java Fri Jul 24 15:42:00 2009
@@ -48,6 +48,7 @@
  * @version $Rev$ $Date$
  * @since 2.1.0
  */
+@SuppressWarnings("deprecation")
 public class LocaleDefinitionsFactory implements DefinitionsFactory,
         TilesApplicationContextAware, Initializable {
 

Modified: tiles/framework/trunk/tiles-core/src/main/java/org/apache/tiles/definition/dao/BaseLocaleUrlDefinitionDAO.java
URL: http://svn.apache.org/viewvc/tiles/framework/trunk/tiles-core/src/main/java/org/apache/tiles/definition/dao/BaseLocaleUrlDefinitionDAO.java?rev=797540&r1=797539&r2=797540&view=diff
==============================================================================
--- tiles/framework/trunk/tiles-core/src/main/java/org/apache/tiles/definition/dao/BaseLocaleUrlDefinitionDAO.java (original)
+++ tiles/framework/trunk/tiles-core/src/main/java/org/apache/tiles/definition/dao/BaseLocaleUrlDefinitionDAO.java Fri Jul 24 15:42:00 2009
@@ -53,6 +53,7 @@
  * @version $Rev$ $Date$
  * @since 2.1.0
  */
+@SuppressWarnings("deprecation")
 public abstract class BaseLocaleUrlDefinitionDAO implements
         DefinitionDAO<Locale>, Initializable, TilesApplicationContextAware,
         RefreshMonitor, URLReader {
@@ -231,7 +232,6 @@
      * @param parms The initialization parameters.
      * @return resource string to be parsed.
      */
-    @SuppressWarnings("deprecation")
     protected String getResourceString(Map<String, String> parms) {
         String resourceStr = parms.get(DefinitionsFactory.DEFINITIONS_CONFIG);
         if (resourceStr == null) {

Modified: tiles/framework/trunk/tiles-core/src/main/java/org/apache/tiles/factory/AbstractTilesContainerFactory.java
URL: http://svn.apache.org/viewvc/tiles/framework/trunk/tiles-core/src/main/java/org/apache/tiles/factory/AbstractTilesContainerFactory.java?rev=797540&r1=797539&r2=797540&view=diff
==============================================================================
--- tiles/framework/trunk/tiles-core/src/main/java/org/apache/tiles/factory/AbstractTilesContainerFactory.java (original)
+++ tiles/framework/trunk/tiles-core/src/main/java/org/apache/tiles/factory/AbstractTilesContainerFactory.java Fri Jul 24 15:42:00 2009
@@ -20,9 +20,6 @@
  */
 package org.apache.tiles.factory;
 
-import java.util.HashMap;
-import java.util.Map;
-
 import org.apache.tiles.TilesApplicationContext;
 import org.apache.tiles.TilesContainer;
 import org.apache.tiles.reflect.ClassUtil;
@@ -45,16 +42,6 @@
         "org.apache.tiles.factory.AbstractTilesContainerFactory";
 
     /**
-     * Default configuration parameters.
-     */
-    private static final Map<String, String> DEFAULTS =
-        new HashMap<String, String>();
-
-    static {
-        DEFAULTS.put(CONTAINER_FACTORY_INIT_PARAM, TilesContainerFactory.class.getName());
-    }
-
-    /**
      * Creates a factory instance.
      *
      * @param context The application context object.
@@ -62,8 +49,8 @@
      * @throws TilesContainerFactoryException If something goes wrong during
      * creation.
      * @since 2.1.1
+     * @deprecated Create directly a new instance of this class.
      */
-    @SuppressWarnings("deprecation")
     public static AbstractTilesContainerFactory getTilesContainerFactory(
             TilesApplicationContext context) {
         AbstractTilesContainerFactory retValue;

Modified: tiles/framework/trunk/tiles-core/src/main/java/org/apache/tiles/factory/KeyedDefinitionsFactoryTilesContainerFactory.java
URL: http://svn.apache.org/viewvc/tiles/framework/trunk/tiles-core/src/main/java/org/apache/tiles/factory/KeyedDefinitionsFactoryTilesContainerFactory.java?rev=797540&r1=797539&r2=797540&view=diff
==============================================================================
--- tiles/framework/trunk/tiles-core/src/main/java/org/apache/tiles/factory/KeyedDefinitionsFactoryTilesContainerFactory.java (original)
+++ tiles/framework/trunk/tiles-core/src/main/java/org/apache/tiles/factory/KeyedDefinitionsFactoryTilesContainerFactory.java Fri Jul 24 15:42:00 2009
@@ -42,6 +42,10 @@
  * {@link KeyedDefinitionsFactoryTilesContainer} class.
  *
  * @version $Rev$ $Date$
+ * @deprecated This class can be replaced by registering different
+ * {@link TilesContainer} with different keys, by overriding
+ * {@link org.apache.tiles.startup.AbstractTilesInitializer}
+ * <code>getContainerKey</code> method.
  */
 public class KeyedDefinitionsFactoryTilesContainerFactory extends
         TilesContainerFactory {

Modified: tiles/framework/trunk/tiles-core/src/main/java/org/apache/tiles/factory/TilesContainerFactory.java
URL: http://svn.apache.org/viewvc/tiles/framework/trunk/tiles-core/src/main/java/org/apache/tiles/factory/TilesContainerFactory.java?rev=797540&r1=797539&r2=797540&view=diff
==============================================================================
--- tiles/framework/trunk/tiles-core/src/main/java/org/apache/tiles/factory/TilesContainerFactory.java (original)
+++ tiles/framework/trunk/tiles-core/src/main/java/org/apache/tiles/factory/TilesContainerFactory.java Fri Jul 24 15:42:00 2009
@@ -54,12 +54,15 @@
 import org.slf4j.LoggerFactory;
 
 /**
- * Factory provided for convenience.
- * This factory creates a default implementation of
- * the container, initializes, and puts it into service.
+ * Factory provided for convenience. This factory creates a default
+ * implementation of the container, initializes, and puts it into service. Uses
+ * initialization parameters to configure all the objects created in this phase.
  *
  * @version $Rev$ $Date$
  * @since 2.0
+ * @deprecated Please extend {@link AbstractTilesContainerFactory} or use an
+ * already extended class. Parameter-based initialization is no longer
+ * supported.
  */
 public class TilesContainerFactory extends AbstractTilesContainerFactory {
 
@@ -359,6 +362,10 @@
      */
     protected void initializeContainer(TilesApplicationContext context,
             BasicTilesContainer container) {
+        log.warn("DEPRECATION WARNING! You are using parameter-based initialization, "
+                + "that is no longer supported! Please see docs: "
+                + "http://tiles.apache.org/framework/tutorial/configuration.html");
+
         Map <String, String> initParameterMap;
 
         if (log.isInfoEnabled()) {

Modified: tiles/framework/trunk/tiles-core/src/main/java/org/apache/tiles/renderer/impl/BasicRendererFactory.java
URL: http://svn.apache.org/viewvc/tiles/framework/trunk/tiles-core/src/main/java/org/apache/tiles/renderer/impl/BasicRendererFactory.java?rev=797540&r1=797539&r2=797540&view=diff
==============================================================================
--- tiles/framework/trunk/tiles-core/src/main/java/org/apache/tiles/renderer/impl/BasicRendererFactory.java (original)
+++ tiles/framework/trunk/tiles-core/src/main/java/org/apache/tiles/renderer/impl/BasicRendererFactory.java Fri Jul 24 15:42:00 2009
@@ -23,7 +23,6 @@
 import java.util.HashMap;
 import java.util.Map;
 
-import org.apache.tiles.Initializable;
 import org.apache.tiles.TilesApplicationContext;
 import org.apache.tiles.TilesContainer;
 import org.apache.tiles.awareness.TilesApplicationContextAware;
@@ -114,11 +113,6 @@
     protected Map<String, AttributeRenderer> renderers;
 
     /**
-     * Initialization parameters, as passed by the constructor.
-     */
-    private Map<String, String> initParameters;
-
-    /**
      * The default renderer.
      *
      * @since 2.1.0
@@ -146,7 +140,6 @@
 
     /** {@inheritDoc} */
     public void init(Map<String, String> parameters) {
-        this.initParameters = parameters;
         String defaultRendererParam = parameters.get(DEFAULT_RENDERER_INIT_PARAM);
         if (defaultRendererParam == null) {
             defaultRendererParam = DEFAULT_RENDERER_CLASS_NAME;
@@ -258,8 +251,5 @@
             ((AttributeEvaluatorFactoryAware) renderer)
                     .setAttributeEvaluatorFactory(attributeEvaluatorFactory);
         }
-        if (renderer instanceof Initializable && initParameters != null) {
-            ((Initializable) renderer).init(initParameters);
-        }
     }
 }

Added: tiles/framework/trunk/tiles-core/src/main/java/org/apache/tiles/startup/AbstractTilesInitializer.java
URL: http://svn.apache.org/viewvc/tiles/framework/trunk/tiles-core/src/main/java/org/apache/tiles/startup/AbstractTilesInitializer.java?rev=797540&view=auto
==============================================================================
--- tiles/framework/trunk/tiles-core/src/main/java/org/apache/tiles/startup/AbstractTilesInitializer.java (added)
+++ tiles/framework/trunk/tiles-core/src/main/java/org/apache/tiles/startup/AbstractTilesInitializer.java Fri Jul 24 15:42:00 2009
@@ -0,0 +1,137 @@
+/*
+ * $Id$
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.tiles.startup;
+
+import org.apache.tiles.TilesApplicationContext;
+import org.apache.tiles.TilesContainer;
+import org.apache.tiles.TilesException;
+import org.apache.tiles.access.TilesAccess;
+import org.apache.tiles.factory.AbstractTilesContainerFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * Default Tiles initialization delegate implementation under a servlet
+ * environment. It uses init parameters to create the
+ * {@link TilesApplicationContext} and the {@link TilesContainer}.
+ *
+ * @version $Rev$ $Date$
+ * @since 2.2.0
+ */
+public abstract class AbstractTilesInitializer implements TilesInitializer {
+
+    /**
+     * The logging object.
+     */
+    private Logger log = LoggerFactory.getLogger(getClass());
+
+    /**
+     * Init parameter to define the key under which the container will be
+     * stored.
+     *
+     * @since 2.1.2
+     */
+    public static final String CONTAINER_KEY_INIT_PARAMETER =
+        "org.apache.tiles.startup.AbstractTilesInitializer.CONTAINER_KEY";
+
+    /**
+     * The initialized application context.
+     */
+    private TilesApplicationContext applicationContext;
+
+    /**
+     * The initialized container.
+     */
+    private TilesContainer container;
+
+    /** {@inheritDoc} */
+    public void initialize(TilesApplicationContext applicationContext) {
+        this.applicationContext = createTilesApplicationContext(applicationContext);
+        String key = getContainerKey(this.applicationContext);
+        container = createContainer(this.applicationContext);
+        TilesAccess.setContainer(this.applicationContext, container, key);
+    }
+
+    /** {@inheritDoc} */
+    public void destroy() {
+        try {
+            TilesAccess.setContainer(applicationContext, null,
+                    getContainerKey(applicationContext));
+        } catch (TilesException e) {
+            log.warn("Unable to remove tiles container from service.", e);
+        }
+    }
+
+    /**
+     * Creates the Tiles application context, to be used across all the
+     * Tiles-based application. If you override this class, please override this
+     * method or
+     * {@link #createAndInitializeTilesApplicationContextFactory(TilesApplicationContext)}
+     * .<br>
+     * This implementation returns the preliminary context passed as a parameter
+     *
+     * @param preliminaryContext The preliminary application context to use.
+     * @return The Tiles application context.
+     * @since 2.2.0
+     */
+    protected TilesApplicationContext createTilesApplicationContext(
+            TilesApplicationContext preliminaryContext) {
+        return preliminaryContext;
+    }
+
+    /**
+     * Returns the container key under which the container will be stored.
+     * This implementation returns <code>null</code> so that the container will
+     * be the default one.
+     *
+     * @param applicationContext The Tiles application context to use.
+     * @return The container key.
+     * @since 2.2.0
+     */
+    protected String getContainerKey(TilesApplicationContext applicationContext) {
+        return null;
+    }
+
+    /**
+     * Creates a Tiles container. If you override this class, please override
+     * this method or {@link #createContainerFactory(TilesApplicationContext)}.
+     *
+     * @param context The servlet context to use.
+     * @return The created container.
+     * @since 2.2.0
+     */
+    protected TilesContainer createContainer(TilesApplicationContext context) {
+        AbstractTilesContainerFactory factory = createContainerFactory(context);
+        return factory.createContainer(context);
+    }
+
+    /**
+     * Creates a Tiles container factory. If you override this class, please
+     * override this method or {@link #createContainer(TilesApplicationContext)}.
+     *
+     * @param context The servlet context to use.
+     * @return The created container factory.
+     * @since 2.2.0
+     */
+    protected abstract AbstractTilesContainerFactory createContainerFactory(
+            TilesApplicationContext context);
+}

Propchange: tiles/framework/trunk/tiles-core/src/main/java/org/apache/tiles/startup/AbstractTilesInitializer.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: tiles/framework/trunk/tiles-core/src/main/java/org/apache/tiles/startup/AbstractTilesInitializer.java
------------------------------------------------------------------------------
    svn:keywords = Date Author Id Revision HeadURL

Modified: tiles/framework/trunk/tiles-core/src/main/java/org/apache/tiles/startup/BasicTilesInitializer.java
URL: http://svn.apache.org/viewvc/tiles/framework/trunk/tiles-core/src/main/java/org/apache/tiles/startup/BasicTilesInitializer.java?rev=797540&r1=797539&r2=797540&view=diff
==============================================================================
--- tiles/framework/trunk/tiles-core/src/main/java/org/apache/tiles/startup/BasicTilesInitializer.java (original)
+++ tiles/framework/trunk/tiles-core/src/main/java/org/apache/tiles/startup/BasicTilesInitializer.java Fri Jul 24 15:42:00 2009
@@ -22,20 +22,19 @@
 
 import org.apache.tiles.Initializable;
 import org.apache.tiles.TilesApplicationContext;
-import org.apache.tiles.TilesContainer;
-import org.apache.tiles.access.TilesAccess;
 import org.apache.tiles.context.AbstractTilesApplicationContextFactory;
 import org.apache.tiles.factory.AbstractTilesContainerFactory;
 
 /**
  * Default Tiles initialization delegate implementation under a servlet
  * environment. It uses init parameters to create the
- * {@link TilesApplicationContext} and the {@link TilesContainer}.
+ * {@link TilesApplicationContext} and the {@link org.apache.tiles.TilesContainer}.
  *
  * @version $Rev$ $Date$
  * @since 2.1.2
+ * @deprecated Don't use it, please extend {@link AbstractTilesInitializer}.
  */
-public class BasicTilesInitializer implements TilesInitializer {
+public class BasicTilesInitializer extends AbstractTilesInitializer {
 
     /**
      * Init parameter to define the key under which the container will be
@@ -46,14 +45,6 @@
     public static final String CONTAINER_KEY_INIT_PARAMETER =
         "org.apache.tiles.startup.BasicTilesInitializer.CONTAINER_KEY";
 
-    /** {@inheritDoc} */
-    public void initialize(TilesApplicationContext applicationContext) {
-        applicationContext = createTilesApplicationContext(applicationContext);
-        String key = getContainerKey(applicationContext);
-        TilesContainer container = createContainer(applicationContext);
-        TilesAccess.setContainer(applicationContext, container, key);
-    }
-
     /**
      * Creates the Tiles application context, to be used across all the
      * Tiles-based application. If you override this class, please override this
@@ -105,19 +96,6 @@
     }
 
     /**
-     * Creates a Tiles container. If you override this class, please override
-     * this method or {@link #createContainerFactory(TilesApplicationContext)}.
-     *
-     * @param context The servlet context to use.
-     * @return The created container.
-     * @since 2.1.2
-     */
-    protected TilesContainer createContainer(TilesApplicationContext context) {
-        AbstractTilesContainerFactory factory = createContainerFactory(context);
-        return factory.createContainer(context);
-    }
-
-    /**
      * Creates a Tiles container factory. If you override this class, please
      * override this method or {@link #createContainer(TilesApplicationContext)}.
      *

Added: tiles/framework/trunk/tiles-core/src/main/java/org/apache/tiles/startup/DefaultTilesInitializer.java
URL: http://svn.apache.org/viewvc/tiles/framework/trunk/tiles-core/src/main/java/org/apache/tiles/startup/DefaultTilesInitializer.java?rev=797540&view=auto
==============================================================================
--- tiles/framework/trunk/tiles-core/src/main/java/org/apache/tiles/startup/DefaultTilesInitializer.java (added)
+++ tiles/framework/trunk/tiles-core/src/main/java/org/apache/tiles/startup/DefaultTilesInitializer.java Fri Jul 24 15:42:00 2009
@@ -0,0 +1,42 @@
+/*
+ * $Id$
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.tiles.startup;
+
+import org.apache.tiles.TilesApplicationContext;
+import org.apache.tiles.factory.AbstractTilesContainerFactory;
+import org.apache.tiles.factory.BasicTilesContainerFactory;
+
+/**
+ * Loads Tiles with the default settings.
+ *
+ * @version $Rev$ $Date$
+ * @since 2.2.0
+ */
+public class DefaultTilesInitializer extends AbstractTilesInitializer {
+
+    /** {@inheritDoc} */
+    @Override
+    protected AbstractTilesContainerFactory createContainerFactory(
+            TilesApplicationContext context) {
+        return new BasicTilesContainerFactory();
+    }
+}

Propchange: tiles/framework/trunk/tiles-core/src/main/java/org/apache/tiles/startup/DefaultTilesInitializer.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: tiles/framework/trunk/tiles-core/src/main/java/org/apache/tiles/startup/DefaultTilesInitializer.java
------------------------------------------------------------------------------
    svn:keywords = Date Author Id Revision HeadURL

Modified: tiles/framework/trunk/tiles-core/src/main/java/org/apache/tiles/startup/TilesInitializer.java
URL: http://svn.apache.org/viewvc/tiles/framework/trunk/tiles-core/src/main/java/org/apache/tiles/startup/TilesInitializer.java?rev=797540&r1=797539&r2=797540&view=diff
==============================================================================
--- tiles/framework/trunk/tiles-core/src/main/java/org/apache/tiles/startup/TilesInitializer.java (original)
+++ tiles/framework/trunk/tiles-core/src/main/java/org/apache/tiles/startup/TilesInitializer.java Fri Jul 24 15:42:00 2009
@@ -39,4 +39,11 @@
      * PortletTilesApplicationContext.
      */
     void initialize(TilesApplicationContext preliminaryContext);
+
+    /**
+     * Destroys the Tiles container.
+     *
+     * @since 2.2.0
+     */
+    void destroy();
 }

Modified: tiles/framework/trunk/tiles-freemarker/src/main/java/org/apache/tiles/freemarker/renderer/FreeMarkerAttributeRenderer.java
URL: http://svn.apache.org/viewvc/tiles/framework/trunk/tiles-freemarker/src/main/java/org/apache/tiles/freemarker/renderer/FreeMarkerAttributeRenderer.java?rev=797540&r1=797539&r2=797540&view=diff
==============================================================================
--- tiles/framework/trunk/tiles-freemarker/src/main/java/org/apache/tiles/freemarker/renderer/FreeMarkerAttributeRenderer.java (original)
+++ tiles/framework/trunk/tiles-freemarker/src/main/java/org/apache/tiles/freemarker/renderer/FreeMarkerAttributeRenderer.java Fri Jul 24 15:42:00 2009
@@ -34,7 +34,6 @@
 
 import org.apache.commons.collections.iterators.IteratorEnumeration;
 import org.apache.tiles.Attribute;
-import org.apache.tiles.Initializable;
 import org.apache.tiles.context.TilesRequestContext;
 import org.apache.tiles.freemarker.FreeMarkerTilesException;
 import org.apache.tiles.freemarker.servlet.TilesFreemarkerServlet;
@@ -54,7 +53,7 @@
  * @version $Rev$ $Date$
  * @since 2.2.0
  */
-public class FreeMarkerAttributeRenderer extends AbstractBaseAttributeRenderer implements Initializable {
+public class FreeMarkerAttributeRenderer extends AbstractBaseAttributeRenderer {
 
     /**
      * The servlet that is used to forward the request to.
@@ -66,12 +65,6 @@
      */
     private Map<String, String> params = new HashMap<String, String>();
 
-    /** {@inheritDoc} */
-    public void init(Map<String, String> params) {
-        this.params.putAll(params);
-        commit();
-    }
-
     /**
      * Sets a parameter for the internal servlet.
      *

Modified: tiles/framework/trunk/tiles-portlet/src/main/java/org/apache/tiles/portlet/context/PortletTilesApplicationContextFactory.java
URL: http://svn.apache.org/viewvc/tiles/framework/trunk/tiles-portlet/src/main/java/org/apache/tiles/portlet/context/PortletTilesApplicationContextFactory.java?rev=797540&r1=797539&r2=797540&view=diff
==============================================================================
--- tiles/framework/trunk/tiles-portlet/src/main/java/org/apache/tiles/portlet/context/PortletTilesApplicationContextFactory.java (original)
+++ tiles/framework/trunk/tiles-portlet/src/main/java/org/apache/tiles/portlet/context/PortletTilesApplicationContextFactory.java Fri Jul 24 15:42:00 2009
@@ -35,6 +35,10 @@
  *
  * @version $Rev$ $Date$
  * @since 2.1.1
+ * @deprecated Create an instance of {@link PortletTilesApplicationContext}
+ * yourself, by implementing {@link org.apache.tiles.startup.TilesInitializer}
+ * or extending {@link org.apache.tiles.startup.AbstractTilesInitializer} and
+ * overriding <code>createTilesApplicationContext</code> method.<br>
  */
 public class PortletTilesApplicationContextFactory extends
         AbstractTilesApplicationContextFactory implements Initializable {

Modified: tiles/framework/trunk/tiles-portlet/src/main/java/org/apache/tiles/portlet/context/wildcard/WildcardPortletTilesApplicationContextFactory.java
URL: http://svn.apache.org/viewvc/tiles/framework/trunk/tiles-portlet/src/main/java/org/apache/tiles/portlet/context/wildcard/WildcardPortletTilesApplicationContextFactory.java?rev=797540&r1=797539&r2=797540&view=diff
==============================================================================
--- tiles/framework/trunk/tiles-portlet/src/main/java/org/apache/tiles/portlet/context/wildcard/WildcardPortletTilesApplicationContextFactory.java (original)
+++ tiles/framework/trunk/tiles-portlet/src/main/java/org/apache/tiles/portlet/context/wildcard/WildcardPortletTilesApplicationContextFactory.java Fri Jul 24 15:42:00 2009
@@ -32,6 +32,10 @@
  *
  * @version $Rev$ $Date$
  * @since 2.1.1
+ * @deprecated Create an instance of {@link WildcardPortletTilesApplicationContext}
+ * yourself, by implementing {@link org.apache.tiles.startup.TilesInitializer}
+ * or extending {@link org.apache.tiles.startup.AbstractTilesInitializer} and
+ * overriding <code>createTilesApplicationContext</code> method.<br>
  */
 public class WildcardPortletTilesApplicationContextFactory extends
         PortletTilesApplicationContextFactory {

Modified: tiles/framework/trunk/tiles-servlet/src/main/java/org/apache/tiles/servlet/context/ServletTilesApplicationContextFactory.java
URL: http://svn.apache.org/viewvc/tiles/framework/trunk/tiles-servlet/src/main/java/org/apache/tiles/servlet/context/ServletTilesApplicationContextFactory.java?rev=797540&r1=797539&r2=797540&view=diff
==============================================================================
--- tiles/framework/trunk/tiles-servlet/src/main/java/org/apache/tiles/servlet/context/ServletTilesApplicationContextFactory.java (original)
+++ tiles/framework/trunk/tiles-servlet/src/main/java/org/apache/tiles/servlet/context/ServletTilesApplicationContextFactory.java Fri Jul 24 15:42:00 2009
@@ -34,6 +34,10 @@
  *
  * @version $Rev$ $Date$
  * @since 2.1.1
+ * @deprecated Create an instance of {@link ServletTilesApplicationContext}
+ * yourself, by implementing {@link org.apache.tiles.startup.TilesInitializer}
+ * or extending {@link org.apache.tiles.startup.AbstractTilesInitializer} and
+ * overriding <code>createTilesApplicationContext</code> method.<br>
  */
 public class ServletTilesApplicationContextFactory extends
         AbstractTilesApplicationContextFactory implements Initializable {

Modified: tiles/framework/trunk/tiles-servlet/src/main/java/org/apache/tiles/servlet/context/wildcard/WildcardServletTilesApplicationContextFactory.java
URL: http://svn.apache.org/viewvc/tiles/framework/trunk/tiles-servlet/src/main/java/org/apache/tiles/servlet/context/wildcard/WildcardServletTilesApplicationContextFactory.java?rev=797540&r1=797539&r2=797540&view=diff
==============================================================================
--- tiles/framework/trunk/tiles-servlet/src/main/java/org/apache/tiles/servlet/context/wildcard/WildcardServletTilesApplicationContextFactory.java (original)
+++ tiles/framework/trunk/tiles-servlet/src/main/java/org/apache/tiles/servlet/context/wildcard/WildcardServletTilesApplicationContextFactory.java Fri Jul 24 15:42:00 2009
@@ -35,6 +35,8 @@
  *
  * @version $Rev$ $Date$
  * @since 2.1.1
+ * @deprecated Create an instance of
+ * {@link WildcardServletTilesApplicationContext} directly.
  */
 public class WildcardServletTilesApplicationContextFactory extends
         AbstractTilesApplicationContextFactory implements Initializable {

Added: tiles/framework/trunk/tiles-servlet/src/main/java/org/apache/tiles/web/startup/AbstractTilesInitializerServlet.java
URL: http://svn.apache.org/viewvc/tiles/framework/trunk/tiles-servlet/src/main/java/org/apache/tiles/web/startup/AbstractTilesInitializerServlet.java?rev=797540&view=auto
==============================================================================
--- tiles/framework/trunk/tiles-servlet/src/main/java/org/apache/tiles/web/startup/AbstractTilesInitializerServlet.java (added)
+++ tiles/framework/trunk/tiles-servlet/src/main/java/org/apache/tiles/web/startup/AbstractTilesInitializerServlet.java Fri Jul 24 15:42:00 2009
@@ -0,0 +1,72 @@
+/*
+ * $Id$
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.tiles.web.startup;
+
+import javax.servlet.ServletContext;
+import javax.servlet.ServletException;
+import javax.servlet.http.HttpServlet;
+
+import org.apache.tiles.servlet.context.ServletTilesApplicationContext;
+import org.apache.tiles.startup.TilesInitializer;
+import org.apache.tiles.web.util.ServletContextAdapter;
+
+/**
+ * Abstract Initialization Servlet. Uses a {@link TilesInitializer}, created by
+ * {@link #createTilesInitializer()} to initialize Tiles.
+ *
+ * @see org.apache.tiles.web.startup.TilesListener
+ * @version $Rev$ $Date$
+ * @since 2.2.0
+ */
+public abstract class AbstractTilesInitializerServlet extends HttpServlet {
+
+    /**
+     * The private listener instance, that is used to initialize Tiles
+     * container.
+     */
+    private TilesInitializer initializer;
+
+    /** {@inheritDoc} */
+    @Override
+    public void destroy() {
+        initializer.destroy();
+    }
+
+    /** {@inheritDoc} */
+    @Override
+    public void init() throws ServletException {
+        initializer = createTilesInitializer();
+        ServletContext adaptedContext = new ServletContextAdapter(
+                getServletConfig());
+        ServletTilesApplicationContext preliminaryContext = new ServletTilesApplicationContext(
+                adaptedContext);
+        initializer.initialize(preliminaryContext);
+    }
+
+    /**
+     * Creates a new instance of {@link TilesInitializer}. Implement it to use
+     * your custom initializer.
+     *
+     * @return The Tiles servlet-based initializer.
+     * @since 2.2.0
+     */
+    protected abstract TilesInitializer createTilesInitializer();
+}

Propchange: tiles/framework/trunk/tiles-servlet/src/main/java/org/apache/tiles/web/startup/AbstractTilesInitializerServlet.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: tiles/framework/trunk/tiles-servlet/src/main/java/org/apache/tiles/web/startup/AbstractTilesInitializerServlet.java
------------------------------------------------------------------------------
    svn:keywords = Date Author Id Revision HeadURL

Added: tiles/framework/trunk/tiles-servlet/src/main/java/org/apache/tiles/web/startup/AbstractTilesListener.java
URL: http://svn.apache.org/viewvc/tiles/framework/trunk/tiles-servlet/src/main/java/org/apache/tiles/web/startup/AbstractTilesListener.java?rev=797540&view=auto
==============================================================================
--- tiles/framework/trunk/tiles-servlet/src/main/java/org/apache/tiles/web/startup/AbstractTilesListener.java (added)
+++ tiles/framework/trunk/tiles-servlet/src/main/java/org/apache/tiles/web/startup/AbstractTilesListener.java Fri Jul 24 15:42:00 2009
@@ -0,0 +1,88 @@
+/*
+ * $Id$
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.tiles.web.startup;
+
+import javax.servlet.ServletContext;
+import javax.servlet.ServletContextEvent;
+import javax.servlet.ServletContextListener;
+
+import org.apache.tiles.TilesException;
+import org.apache.tiles.servlet.context.ServletTilesApplicationContext;
+import org.apache.tiles.servlet.context.ServletUtil;
+import org.apache.tiles.startup.TilesInitializer;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * Listener for the initialization of the Tiles container.
+ *
+ * @version $Rev$ $Date$
+ */
+public abstract class AbstractTilesListener implements ServletContextListener {
+
+    /**
+     * Log instance.
+     */
+    private Logger log = LoggerFactory.getLogger(AbstractTilesListener.class);
+
+    /**
+     * The initializer object.
+     *
+     * @since 2.1.2
+     */
+    protected TilesInitializer initializer;
+
+    /**
+     * Initialize the TilesContainer and place it
+     * into service.
+     *
+     * @param event The intercepted event.
+     */
+    public void contextInitialized(ServletContextEvent event) {
+        ServletContext servletContext = event.getServletContext();
+        initializer = createTilesInitializer();
+        initializer.initialize(new ServletTilesApplicationContext(
+                servletContext));
+    }
+
+    /**
+     * Remove the tiles container from service.
+     *
+     * @param event The intercepted event.
+     */
+    public void contextDestroyed(ServletContextEvent event) {
+        ServletContext servletContext = event.getServletContext();
+        try {
+            ServletUtil.setContainer(servletContext, null);
+        } catch (TilesException e) {
+            log.warn("Unable to remove tiles container from service.", e);
+        }
+    }
+
+    /**
+     * Creates a new instance of {@link TilesInitializer}. Implement it to use a
+     * different initializer.
+     *
+     * @return The Tiles servlet-based initializer.
+     * @since 2.2.0
+     */
+    protected abstract TilesInitializer createTilesInitializer();
+}

Propchange: tiles/framework/trunk/tiles-servlet/src/main/java/org/apache/tiles/web/startup/AbstractTilesListener.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: tiles/framework/trunk/tiles-servlet/src/main/java/org/apache/tiles/web/startup/AbstractTilesListener.java
------------------------------------------------------------------------------
    svn:keywords = Date Author Id Revision HeadURL

Modified: tiles/framework/trunk/tiles-servlet/src/main/java/org/apache/tiles/web/startup/TilesListener.java
URL: http://svn.apache.org/viewvc/tiles/framework/trunk/tiles-servlet/src/main/java/org/apache/tiles/web/startup/TilesListener.java?rev=797540&r1=797539&r2=797540&view=diff
==============================================================================
--- tiles/framework/trunk/tiles-servlet/src/main/java/org/apache/tiles/web/startup/TilesListener.java (original)
+++ tiles/framework/trunk/tiles-servlet/src/main/java/org/apache/tiles/web/startup/TilesListener.java Fri Jul 24 15:42:00 2009
@@ -21,74 +21,21 @@
 package org.apache.tiles.web.startup;
 
 import javax.servlet.ServletContext;
-import javax.servlet.ServletContextEvent;
-import javax.servlet.ServletContextListener;
 
 import org.apache.tiles.TilesApplicationContext;
 import org.apache.tiles.TilesContainer;
-import org.apache.tiles.TilesException;
 import org.apache.tiles.factory.AbstractTilesContainerFactory;
 import org.apache.tiles.servlet.context.ServletTilesApplicationContext;
-import org.apache.tiles.servlet.context.ServletUtil;
 import org.apache.tiles.startup.BasicTilesInitializer;
 import org.apache.tiles.startup.TilesInitializer;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
 
 /**
  * Listener for the initialization of the Tiles container.
  *
  * @version $Rev$ $Date$
+ * @deprecated Please extend {@link AbstractTilesListener}.
  */
-public class TilesListener
-    implements ServletContextListener {
-
-    /**
-     * Log instance.
-     */
-    private Logger log = LoggerFactory.getLogger(TilesListener.class);
-
-    /**
-     * The initializer object.
-     *
-     * @since 2.1.2
-     */
-    protected TilesInitializer initializer;
-
-    /**
-     * Constructor.
-     *
-     * @since 2.1.2
-     */
-    public TilesListener() {
-        initializer = createTilesInitializer();
-    }
-
-    /**
-     * Initialize the TilesContainer and place it
-     * into service.
-     *
-     * @param event The intercepted event.
-     */
-    public void contextInitialized(ServletContextEvent event) {
-        ServletContext servletContext = event.getServletContext();
-        initializer.initialize(new ServletTilesApplicationContext(
-                servletContext));
-    }
-
-    /**
-     * Remove the tiles container from service.
-     *
-     * @param event The intercepted event.
-     */
-    public void contextDestroyed(ServletContextEvent event) {
-        ServletContext servletContext = event.getServletContext();
-        try {
-            ServletUtil.setContainer(servletContext, null);
-        } catch (TilesException e) {
-            log.warn("Unable to remove tiles container from service.", e);
-        }
-    }
+public class TilesListener extends AbstractTilesListener {
 
     /**
      * Creates a new instance of {@link BasicTilesInitializer}. Override it to use a different initializer.

Modified: tiles/framework/trunk/tiles-servlet/src/main/java/org/apache/tiles/web/startup/TilesServlet.java
URL: http://svn.apache.org/viewvc/tiles/framework/trunk/tiles-servlet/src/main/java/org/apache/tiles/web/startup/TilesServlet.java?rev=797540&r1=797539&r2=797540&view=diff
==============================================================================
--- tiles/framework/trunk/tiles-servlet/src/main/java/org/apache/tiles/web/startup/TilesServlet.java (original)
+++ tiles/framework/trunk/tiles-servlet/src/main/java/org/apache/tiles/web/startup/TilesServlet.java Fri Jul 24 15:42:00 2009
@@ -20,66 +20,17 @@
  */
 package org.apache.tiles.web.startup;
 
-import javax.servlet.ServletContext;
-import javax.servlet.ServletException;
-import javax.servlet.http.HttpServlet;
-
-import org.apache.tiles.TilesException;
-import org.apache.tiles.servlet.context.ServletTilesApplicationContext;
-import org.apache.tiles.servlet.context.ServletUtil;
 import org.apache.tiles.startup.BasicTilesInitializer;
 import org.apache.tiles.startup.TilesInitializer;
-import org.apache.tiles.web.util.ServletContextAdapter;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
 
 /**
  * Initialization Servlet.
  *
  * @see org.apache.tiles.web.startup.TilesListener
  * @version $Rev$ $Date$
+ * @deprecated Please extend {@link AbstractTilesInitializerServlet}.
  */
-public class TilesServlet extends HttpServlet {
-
-    /**
-     * Log instance.
-     */
-    private Logger log = LoggerFactory.getLogger(TilesServlet.class);
-
-    /**
-     * The private listener instance, that is used to initialize Tiles
-     * container.
-     */
-    private TilesInitializer initializer;
-
-    /**
-     * Constructor.
-     *
-     * @since 2.1.2
-     */
-    public TilesServlet() {
-        initializer = createTilesInitializer();
-    }
-
-    /** {@inheritDoc} */
-    @Override
-    public void destroy() {
-        try {
-            ServletUtil.setContainer(getServletContext(), null);
-        } catch (TilesException e) {
-            log.warn("Unable to remove tiles container from service.", e);
-        }
-    }
-
-    /** {@inheritDoc} */
-    @Override
-    public void init() throws ServletException {
-        ServletContext adaptedContext = new ServletContextAdapter(
-                getServletConfig());
-        ServletTilesApplicationContext preliminaryContext = new ServletTilesApplicationContext(
-                adaptedContext);
-        initializer.initialize(preliminaryContext);
-    }
+public class TilesServlet extends AbstractTilesInitializerServlet {
 
     /**
      * Creates a new instance of {@link BasicTilesInitializer}. Override it to use a different initializer.

Added: tiles/framework/trunk/tiles-servlet/src/main/java/org/apache/tiles/web/startup/simple/SimpleTilesInitializerServlet.java
URL: http://svn.apache.org/viewvc/tiles/framework/trunk/tiles-servlet/src/main/java/org/apache/tiles/web/startup/simple/SimpleTilesInitializerServlet.java?rev=797540&view=auto
==============================================================================
--- tiles/framework/trunk/tiles-servlet/src/main/java/org/apache/tiles/web/startup/simple/SimpleTilesInitializerServlet.java (added)
+++ tiles/framework/trunk/tiles-servlet/src/main/java/org/apache/tiles/web/startup/simple/SimpleTilesInitializerServlet.java Fri Jul 24 15:42:00 2009
@@ -0,0 +1,41 @@
+/*
+ * $Id$
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.tiles.web.startup.simple;
+
+import org.apache.tiles.startup.DefaultTilesInitializer;
+import org.apache.tiles.startup.TilesInitializer;
+import org.apache.tiles.web.startup.AbstractTilesInitializerServlet;
+
+/**
+ * A Tiles listener that loads Tiles in the default way.
+ *
+ * @version $Rev$ $Date$
+ * @since 2.2.0
+ */
+public class SimpleTilesInitializerServlet extends AbstractTilesInitializerServlet {
+
+    /** {@inheritDoc} */
+    @Override
+    protected TilesInitializer createTilesInitializer() {
+        return new DefaultTilesInitializer();
+    }
+}

Propchange: tiles/framework/trunk/tiles-servlet/src/main/java/org/apache/tiles/web/startup/simple/SimpleTilesInitializerServlet.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: tiles/framework/trunk/tiles-servlet/src/main/java/org/apache/tiles/web/startup/simple/SimpleTilesInitializerServlet.java
------------------------------------------------------------------------------
    svn:keywords = Date Author Id Revision HeadURL

Added: tiles/framework/trunk/tiles-servlet/src/main/java/org/apache/tiles/web/startup/simple/SimpleTilesListener.java
URL: http://svn.apache.org/viewvc/tiles/framework/trunk/tiles-servlet/src/main/java/org/apache/tiles/web/startup/simple/SimpleTilesListener.java?rev=797540&view=auto
==============================================================================
--- tiles/framework/trunk/tiles-servlet/src/main/java/org/apache/tiles/web/startup/simple/SimpleTilesListener.java (added)
+++ tiles/framework/trunk/tiles-servlet/src/main/java/org/apache/tiles/web/startup/simple/SimpleTilesListener.java Fri Jul 24 15:42:00 2009
@@ -0,0 +1,41 @@
+/*
+ * $Id$
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.tiles.web.startup.simple;
+
+import org.apache.tiles.startup.DefaultTilesInitializer;
+import org.apache.tiles.startup.TilesInitializer;
+import org.apache.tiles.web.startup.AbstractTilesListener;
+
+/**
+ * A Tiles listener that loads Tiles in the default way.
+ *
+ * @version $Rev$ $Date$ù
+ * @since 2.2.0
+ */
+public class SimpleTilesListener extends AbstractTilesListener {
+
+    /** {@inheritDoc} */
+    @Override
+    protected TilesInitializer createTilesInitializer() {
+        return new DefaultTilesInitializer();
+    }
+}

Propchange: tiles/framework/trunk/tiles-servlet/src/main/java/org/apache/tiles/web/startup/simple/SimpleTilesListener.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: tiles/framework/trunk/tiles-servlet/src/main/java/org/apache/tiles/web/startup/simple/SimpleTilesListener.java
------------------------------------------------------------------------------
    svn:keywords = Date Author Id Revision HeadURL

Added: tiles/framework/trunk/tiles-servlet/src/main/java/org/apache/tiles/web/startup/simple/package.html
URL: http://svn.apache.org/viewvc/tiles/framework/trunk/tiles-servlet/src/main/java/org/apache/tiles/web/startup/simple/package.html?rev=797540&view=auto
==============================================================================
--- tiles/framework/trunk/tiles-servlet/src/main/java/org/apache/tiles/web/startup/simple/package.html (added)
+++ tiles/framework/trunk/tiles-servlet/src/main/java/org/apache/tiles/web/startup/simple/package.html Fri Jul 24 15:42:00 2009
@@ -0,0 +1,30 @@
+<!--
+/*
+ * $Id$
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+-->
+<html>
+<head>
+    <title>Start-up classes in a web application environment with default settings</title>
+</head>
+<body>
+Classes to start the Tiles engine up in a web environment using the default settings.
+</body>
+</html>
\ No newline at end of file

Propchange: tiles/framework/trunk/tiles-servlet/src/main/java/org/apache/tiles/web/startup/simple/package.html
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: tiles/framework/trunk/tiles-servlet/src/main/java/org/apache/tiles/web/startup/simple/package.html
------------------------------------------------------------------------------
    svn:keywords = Date Author Id Revision HeadURL

Modified: tiles/framework/trunk/tiles-test/src/main/java/org/apache/tiles/test/listener/TestAlternateTilesListener.java
URL: http://svn.apache.org/viewvc/tiles/framework/trunk/tiles-test/src/main/java/org/apache/tiles/test/listener/TestAlternateTilesListener.java?rev=797540&r1=797539&r2=797540&view=diff
==============================================================================
--- tiles/framework/trunk/tiles-test/src/main/java/org/apache/tiles/test/listener/TestAlternateTilesListener.java (original)
+++ tiles/framework/trunk/tiles-test/src/main/java/org/apache/tiles/test/listener/TestAlternateTilesListener.java Fri Jul 24 15:42:00 2009
@@ -22,17 +22,17 @@
 
 import org.apache.tiles.TilesApplicationContext;
 import org.apache.tiles.factory.AbstractTilesContainerFactory;
-import org.apache.tiles.startup.BasicTilesInitializer;
+import org.apache.tiles.startup.AbstractTilesInitializer;
 import org.apache.tiles.startup.TilesInitializer;
 import org.apache.tiles.test.factory.TestAlternateTilesContainerFactory;
-import org.apache.tiles.web.startup.TilesListener;
+import org.apache.tiles.web.startup.AbstractTilesListener;
 
 /**
  * Test Tiles listener for Tiles initialization of the alternate container.
  *
  * @version $Rev$ $Date$
  */
-public class TestAlternateTilesListener extends TilesListener {
+public class TestAlternateTilesListener extends AbstractTilesListener {
 
     /** {@inheritDoc} */
     @Override
@@ -43,7 +43,7 @@
     /**
      * Test Tiles initializer for Tiles initialization of the alternate container.
      */
-    private static class TestAlternateTilesInitializer extends BasicTilesInitializer {
+    private static class TestAlternateTilesInitializer extends AbstractTilesInitializer {
 
         /** {@inheritDoc} */
         @Override

Modified: tiles/framework/trunk/tiles-test/src/main/java/org/apache/tiles/test/listener/TestDbTilesListener.java
URL: http://svn.apache.org/viewvc/tiles/framework/trunk/tiles-test/src/main/java/org/apache/tiles/test/listener/TestDbTilesListener.java?rev=797540&r1=797539&r2=797540&view=diff
==============================================================================
--- tiles/framework/trunk/tiles-test/src/main/java/org/apache/tiles/test/listener/TestDbTilesListener.java (original)
+++ tiles/framework/trunk/tiles-test/src/main/java/org/apache/tiles/test/listener/TestDbTilesListener.java Fri Jul 24 15:42:00 2009
@@ -22,17 +22,17 @@
 
 import org.apache.tiles.TilesApplicationContext;
 import org.apache.tiles.factory.AbstractTilesContainerFactory;
-import org.apache.tiles.startup.BasicTilesInitializer;
+import org.apache.tiles.startup.AbstractTilesInitializer;
 import org.apache.tiles.startup.TilesInitializer;
 import org.apache.tiles.test.factory.TestDbTilesContainerFactory;
-import org.apache.tiles.web.startup.TilesListener;
+import org.apache.tiles.web.startup.AbstractTilesListener;
 
 /**
  * Test Tiles listener for Tiles initialization of the db-based container.
  *
  * @version $Rev$ $Date$
  */
-public class TestDbTilesListener extends TilesListener {
+public class TestDbTilesListener extends AbstractTilesListener {
 
     /** {@inheritDoc} */
     @Override
@@ -43,7 +43,7 @@
     /**
      * Test Tiles initializer for Tiles initialization of the db-based container.
      */
-    private static class TestDbTilesInitializer extends BasicTilesInitializer {
+    private static class TestDbTilesInitializer extends AbstractTilesInitializer {
 
         /** {@inheritDoc} */
         @Override

Modified: tiles/framework/trunk/tiles-test/src/main/java/org/apache/tiles/test/listener/TestTilesListener.java
URL: http://svn.apache.org/viewvc/tiles/framework/trunk/tiles-test/src/main/java/org/apache/tiles/test/listener/TestTilesListener.java?rev=797540&r1=797539&r2=797540&view=diff
==============================================================================
--- tiles/framework/trunk/tiles-test/src/main/java/org/apache/tiles/test/listener/TestTilesListener.java (original)
+++ tiles/framework/trunk/tiles-test/src/main/java/org/apache/tiles/test/listener/TestTilesListener.java Fri Jul 24 15:42:00 2009
@@ -25,17 +25,17 @@
 import org.apache.tiles.TilesApplicationContext;
 import org.apache.tiles.factory.AbstractTilesContainerFactory;
 import org.apache.tiles.servlet.context.wildcard.WildcardServletTilesApplicationContext;
-import org.apache.tiles.startup.BasicTilesInitializer;
+import org.apache.tiles.startup.AbstractTilesInitializer;
 import org.apache.tiles.startup.TilesInitializer;
 import org.apache.tiles.test.factory.TestTilesContainerFactory;
-import org.apache.tiles.web.startup.TilesListener;
+import org.apache.tiles.web.startup.AbstractTilesListener;
 
 /**
  * Test Tiles listener for Tiles initialization of the default container.
  *
  * @version $Rev$ $Date$
  */
-public class TestTilesListener extends TilesListener {
+public class TestTilesListener extends AbstractTilesListener {
 
     /** {@inheritDoc} */
     @Override
@@ -46,7 +46,7 @@
     /**
      * Test Tiles initializer for Tiles initialization of the default container.
      */
-    private static class TestTilesListenerInitializer extends BasicTilesInitializer {
+    private static class TestTilesListenerInitializer extends AbstractTilesInitializer {
 
         /** {@inheritDoc} */
         @Override

Modified: tiles/framework/trunk/tiles-velocity/src/main/java/org/apache/tiles/velocity/renderer/VelocityAttributeRenderer.java
URL: http://svn.apache.org/viewvc/tiles/framework/trunk/tiles-velocity/src/main/java/org/apache/tiles/velocity/renderer/VelocityAttributeRenderer.java?rev=797540&r1=797539&r2=797540&view=diff
==============================================================================
--- tiles/framework/trunk/tiles-velocity/src/main/java/org/apache/tiles/velocity/renderer/VelocityAttributeRenderer.java (original)
+++ tiles/framework/trunk/tiles-velocity/src/main/java/org/apache/tiles/velocity/renderer/VelocityAttributeRenderer.java Fri Jul 24 15:42:00 2009
@@ -30,7 +30,6 @@
 
 import org.apache.commons.collections.iterators.IteratorEnumeration;
 import org.apache.tiles.Attribute;
-import org.apache.tiles.Initializable;
 import org.apache.tiles.context.TilesRequestContext;
 import org.apache.tiles.impl.InvalidTemplateException;
 import org.apache.tiles.renderer.impl.AbstractBaseAttributeRenderer;
@@ -51,8 +50,7 @@
  * @version $Rev$ $Date$
  * @since 2.2.0
  */
-public class VelocityAttributeRenderer extends AbstractBaseAttributeRenderer
-        implements Initializable {
+public class VelocityAttributeRenderer extends AbstractBaseAttributeRenderer {
 
     /**
      * The VelocityView object to use.
@@ -64,12 +62,6 @@
      */
     private Map<String, String> params = new HashMap<String, String>();
 
-    /** {@inheritDoc} */
-    public void init(Map<String, String> params) {
-        this.params.putAll(params);
-        commit();
-    }
-
     /**
      * Sets a parameter for the internal servlet.
      *