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/11/22 14:57:14 UTC

svn commit: r883078 [1/5] - in /tiles/sandbox/trunk/tiles3: tiles-api/src/main/java/org/apache/tiles/access/ tiles-api/src/test/java/org/apache/tiles/access/ tiles-core/src/main/java/org/apache/tiles/startup/ tiles-core/src/test/java/org/apache/tiles/s...

Author: apetrelli
Date: Sun Nov 22 13:57:09 2009
New Revision: 883078

URL: http://svn.apache.org/viewvc?rev=883078&view=rev
Log:
TILESSB-14
Concentrated TilesContainer getting in tiles-template.

Added:
    tiles/sandbox/trunk/tiles3/tiles-template/src/main/java/org/apache/tiles/template/SetCurrentContainerModel.java   (with props)
    tiles/sandbox/trunk/tiles3/tiles-template/src/test/java/org/apache/tiles/template/SetCurrentContainerModelTest.java   (with props)
Modified:
    tiles/sandbox/trunk/tiles3/tiles-api/src/main/java/org/apache/tiles/access/TilesAccess.java
    tiles/sandbox/trunk/tiles3/tiles-api/src/test/java/org/apache/tiles/access/TilesAccessTest.java
    tiles/sandbox/trunk/tiles3/tiles-core/src/main/java/org/apache/tiles/startup/AbstractTilesInitializer.java
    tiles/sandbox/trunk/tiles3/tiles-core/src/test/java/org/apache/tiles/startup/AbstractTilesInitializerTest.java
    tiles/sandbox/trunk/tiles3/tiles-freemarker/src/main/java/org/apache/tiles/freemarker/context/FreeMarkerUtil.java
    tiles/sandbox/trunk/tiles3/tiles-freemarker/src/main/java/org/apache/tiles/freemarker/template/AddAttributeFMModel.java
    tiles/sandbox/trunk/tiles3/tiles-freemarker/src/main/java/org/apache/tiles/freemarker/template/AddListAttributeFMModel.java
    tiles/sandbox/trunk/tiles3/tiles-freemarker/src/main/java/org/apache/tiles/freemarker/template/DefinitionFMModel.java
    tiles/sandbox/trunk/tiles3/tiles-freemarker/src/main/java/org/apache/tiles/freemarker/template/GetAsStringFMModel.java
    tiles/sandbox/trunk/tiles3/tiles-freemarker/src/main/java/org/apache/tiles/freemarker/template/ImportAttributeFMModel.java
    tiles/sandbox/trunk/tiles3/tiles-freemarker/src/main/java/org/apache/tiles/freemarker/template/InsertAttributeFMModel.java
    tiles/sandbox/trunk/tiles3/tiles-freemarker/src/main/java/org/apache/tiles/freemarker/template/InsertDefinitionFMModel.java
    tiles/sandbox/trunk/tiles3/tiles-freemarker/src/main/java/org/apache/tiles/freemarker/template/InsertTemplateFMModel.java
    tiles/sandbox/trunk/tiles3/tiles-freemarker/src/main/java/org/apache/tiles/freemarker/template/PutAttributeFMModel.java
    tiles/sandbox/trunk/tiles3/tiles-freemarker/src/main/java/org/apache/tiles/freemarker/template/PutListAttributeFMModel.java
    tiles/sandbox/trunk/tiles3/tiles-freemarker/src/main/java/org/apache/tiles/freemarker/template/SetCurrentContainerFMModel.java
    tiles/sandbox/trunk/tiles3/tiles-freemarker/src/main/java/org/apache/tiles/freemarker/template/TilesFMModelRepository.java
    tiles/sandbox/trunk/tiles3/tiles-freemarker/src/test/java/org/apache/tiles/freemarker/context/FreeMarkerUtilTest.java
    tiles/sandbox/trunk/tiles3/tiles-freemarker/src/test/java/org/apache/tiles/freemarker/template/AddAttributeFMModelTest.java
    tiles/sandbox/trunk/tiles3/tiles-freemarker/src/test/java/org/apache/tiles/freemarker/template/AddListAttributeFMModelTest.java
    tiles/sandbox/trunk/tiles3/tiles-freemarker/src/test/java/org/apache/tiles/freemarker/template/DefinitionFMModelTest.java
    tiles/sandbox/trunk/tiles3/tiles-freemarker/src/test/java/org/apache/tiles/freemarker/template/GetAsStringFMModelTest.java
    tiles/sandbox/trunk/tiles3/tiles-freemarker/src/test/java/org/apache/tiles/freemarker/template/ImportAttributeFMModelTest.java
    tiles/sandbox/trunk/tiles3/tiles-freemarker/src/test/java/org/apache/tiles/freemarker/template/InsertAttributeFMModelTest.java
    tiles/sandbox/trunk/tiles3/tiles-freemarker/src/test/java/org/apache/tiles/freemarker/template/InsertDefinitionFMModelTest.java
    tiles/sandbox/trunk/tiles3/tiles-freemarker/src/test/java/org/apache/tiles/freemarker/template/InsertTemplateFMModelTest.java
    tiles/sandbox/trunk/tiles3/tiles-freemarker/src/test/java/org/apache/tiles/freemarker/template/PutAttributeFMModelTest.java
    tiles/sandbox/trunk/tiles3/tiles-freemarker/src/test/java/org/apache/tiles/freemarker/template/PutListAttributeFMModelTest.java
    tiles/sandbox/trunk/tiles3/tiles-freemarker/src/test/java/org/apache/tiles/freemarker/template/SetCurrentContainerFMModelTest.java
    tiles/sandbox/trunk/tiles3/tiles-jsp/src/main/java/org/apache/tiles/jsp/JspUtil.java
    tiles/sandbox/trunk/tiles3/tiles-jsp/src/main/java/org/apache/tiles/jsp/taglib/AddAttributeTag.java
    tiles/sandbox/trunk/tiles3/tiles-jsp/src/main/java/org/apache/tiles/jsp/taglib/AddListAttributeTag.java
    tiles/sandbox/trunk/tiles3/tiles-jsp/src/main/java/org/apache/tiles/jsp/taglib/GetAsStringTag.java
    tiles/sandbox/trunk/tiles3/tiles-jsp/src/main/java/org/apache/tiles/jsp/taglib/ImportAttributeTag.java
    tiles/sandbox/trunk/tiles3/tiles-jsp/src/main/java/org/apache/tiles/jsp/taglib/InsertAttributeTag.java
    tiles/sandbox/trunk/tiles3/tiles-jsp/src/main/java/org/apache/tiles/jsp/taglib/InsertDefinitionTag.java
    tiles/sandbox/trunk/tiles3/tiles-jsp/src/main/java/org/apache/tiles/jsp/taglib/InsertTemplateTag.java
    tiles/sandbox/trunk/tiles3/tiles-jsp/src/main/java/org/apache/tiles/jsp/taglib/PutAttributeTag.java
    tiles/sandbox/trunk/tiles3/tiles-jsp/src/main/java/org/apache/tiles/jsp/taglib/PutListAttributeTag.java
    tiles/sandbox/trunk/tiles3/tiles-jsp/src/main/java/org/apache/tiles/jsp/taglib/UseAttributeTag.java
    tiles/sandbox/trunk/tiles3/tiles-jsp/src/main/java/org/apache/tiles/jsp/taglib/definition/DefinitionTag.java
    tiles/sandbox/trunk/tiles3/tiles-jsp/src/main/java/org/apache/tiles/jsp/taglib/definition/SetCurrentContainerTag.java
    tiles/sandbox/trunk/tiles3/tiles-jsp/src/test/java/org/apache/tiles/jsp/JspUtilTest.java
    tiles/sandbox/trunk/tiles3/tiles-servlet/src/main/java/org/apache/tiles/servlet/context/ServletUtil.java
    tiles/sandbox/trunk/tiles3/tiles-servlet/src/main/java/org/apache/tiles/web/startup/AbstractTilesListener.java
    tiles/sandbox/trunk/tiles3/tiles-servlet/src/main/java/org/apache/tiles/web/util/TilesDecorationFilter.java
    tiles/sandbox/trunk/tiles3/tiles-servlet/src/main/java/org/apache/tiles/web/util/TilesDispatchServlet.java
    tiles/sandbox/trunk/tiles3/tiles-servlet/src/test/java/org/apache/tiles/servlet/context/ServletUtilTest.java
    tiles/sandbox/trunk/tiles3/tiles-template/src/main/java/org/apache/tiles/template/DefinitionModel.java
    tiles/sandbox/trunk/tiles3/tiles-template/src/main/java/org/apache/tiles/template/GetAsStringModel.java
    tiles/sandbox/trunk/tiles3/tiles-template/src/main/java/org/apache/tiles/template/ImportAttributeModel.java
    tiles/sandbox/trunk/tiles3/tiles-template/src/main/java/org/apache/tiles/template/InsertAttributeModel.java
    tiles/sandbox/trunk/tiles3/tiles-template/src/main/java/org/apache/tiles/template/InsertDefinitionModel.java
    tiles/sandbox/trunk/tiles3/tiles-template/src/main/java/org/apache/tiles/template/InsertTemplateModel.java
    tiles/sandbox/trunk/tiles3/tiles-template/src/main/java/org/apache/tiles/template/PutAttributeModel.java
    tiles/sandbox/trunk/tiles3/tiles-template/src/main/java/org/apache/tiles/template/PutListAttributeModel.java
    tiles/sandbox/trunk/tiles3/tiles-template/src/test/java/org/apache/tiles/template/DefinitionModelTest.java
    tiles/sandbox/trunk/tiles3/tiles-template/src/test/java/org/apache/tiles/template/GetAsStringModelTest.java
    tiles/sandbox/trunk/tiles3/tiles-template/src/test/java/org/apache/tiles/template/ImportAttributeModelTest.java
    tiles/sandbox/trunk/tiles3/tiles-template/src/test/java/org/apache/tiles/template/InsertAttributeModelTest.java
    tiles/sandbox/trunk/tiles3/tiles-template/src/test/java/org/apache/tiles/template/InsertDefinitionModelTest.java
    tiles/sandbox/trunk/tiles3/tiles-template/src/test/java/org/apache/tiles/template/InsertTemplateModelTest.java
    tiles/sandbox/trunk/tiles3/tiles-template/src/test/java/org/apache/tiles/template/PutAttributeModelTest.java
    tiles/sandbox/trunk/tiles3/tiles-template/src/test/java/org/apache/tiles/template/PutListAttributeModelTest.java
    tiles/sandbox/trunk/tiles3/tiles-test-pom/tiles-test/src/main/java/org/apache/tiles/test/servlet/SelectLocaleServlet.java
    tiles/sandbox/trunk/tiles3/tiles-velocity/src/main/java/org/apache/tiles/velocity/template/AddAttributeVModel.java
    tiles/sandbox/trunk/tiles3/tiles-velocity/src/main/java/org/apache/tiles/velocity/template/AddListAttributeVModel.java
    tiles/sandbox/trunk/tiles3/tiles-velocity/src/main/java/org/apache/tiles/velocity/template/DefinitionVModel.java
    tiles/sandbox/trunk/tiles3/tiles-velocity/src/main/java/org/apache/tiles/velocity/template/GetAsStringVModel.java
    tiles/sandbox/trunk/tiles3/tiles-velocity/src/main/java/org/apache/tiles/velocity/template/ImportAttributeVModel.java
    tiles/sandbox/trunk/tiles3/tiles-velocity/src/main/java/org/apache/tiles/velocity/template/InsertAttributeVModel.java
    tiles/sandbox/trunk/tiles3/tiles-velocity/src/main/java/org/apache/tiles/velocity/template/InsertDefinitionVModel.java
    tiles/sandbox/trunk/tiles3/tiles-velocity/src/main/java/org/apache/tiles/velocity/template/InsertTemplateVModel.java
    tiles/sandbox/trunk/tiles3/tiles-velocity/src/main/java/org/apache/tiles/velocity/template/PutAttributeVModel.java
    tiles/sandbox/trunk/tiles3/tiles-velocity/src/main/java/org/apache/tiles/velocity/template/PutListAttributeVModel.java
    tiles/sandbox/trunk/tiles3/tiles-velocity/src/main/java/org/apache/tiles/velocity/template/VelocityStyleTilesTool.java
    tiles/sandbox/trunk/tiles3/tiles-velocity/src/test/java/org/apache/tiles/velocity/template/AddAttributeVModelTest.java
    tiles/sandbox/trunk/tiles3/tiles-velocity/src/test/java/org/apache/tiles/velocity/template/AddListAttributeVModelTest.java
    tiles/sandbox/trunk/tiles3/tiles-velocity/src/test/java/org/apache/tiles/velocity/template/DefinitionVModelTest.java
    tiles/sandbox/trunk/tiles3/tiles-velocity/src/test/java/org/apache/tiles/velocity/template/GetAsStringVModelTest.java
    tiles/sandbox/trunk/tiles3/tiles-velocity/src/test/java/org/apache/tiles/velocity/template/ImportAttributeVModelTest.java
    tiles/sandbox/trunk/tiles3/tiles-velocity/src/test/java/org/apache/tiles/velocity/template/InsertAttributeVModelTest.java
    tiles/sandbox/trunk/tiles3/tiles-velocity/src/test/java/org/apache/tiles/velocity/template/InsertDefinitionVModelTest.java
    tiles/sandbox/trunk/tiles3/tiles-velocity/src/test/java/org/apache/tiles/velocity/template/InsertTemplateVModelTest.java
    tiles/sandbox/trunk/tiles3/tiles-velocity/src/test/java/org/apache/tiles/velocity/template/PutAttributeVModelTest.java
    tiles/sandbox/trunk/tiles3/tiles-velocity/src/test/java/org/apache/tiles/velocity/template/PutListAttributeVModelTest.java
    tiles/sandbox/trunk/tiles3/tiles-velocity/src/test/java/org/apache/tiles/velocity/template/Tiles2ToolTest.java
    tiles/sandbox/trunk/tiles3/tiles-velocity/src/test/java/org/apache/tiles/velocity/template/VelocityStyleTilesToolTest.java

Modified: tiles/sandbox/trunk/tiles3/tiles-api/src/main/java/org/apache/tiles/access/TilesAccess.java
URL: http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles3/tiles-api/src/main/java/org/apache/tiles/access/TilesAccess.java?rev=883078&r1=883077&r2=883078&view=diff
==============================================================================
--- tiles/sandbox/trunk/tiles3/tiles-api/src/main/java/org/apache/tiles/access/TilesAccess.java (original)
+++ tiles/sandbox/trunk/tiles3/tiles-api/src/main/java/org/apache/tiles/access/TilesAccess.java Sun Nov 22 13:57:09 2009
@@ -128,12 +128,13 @@
      * Sets the current container to use in web pages.
      *
      * @param request The request to use.
-     * @param context The servlet context to use.
      * @param key The key under which the container is stored.
+     * @param context The servlet context to use.
      * @since 2.1.0
      */
     public static void setCurrentContainer(Request request,
-            ApplicationContext applicationContext, String key) {
+            String key) {
+        ApplicationContext applicationContext = request.getApplicationContext();
         TilesContainer container = getContainer(applicationContext, key);
         if (container != null) {
             request.getRequestScope().put(CURRENT_CONTAINER_ATTRIBUTE_NAME, container);
@@ -167,8 +168,8 @@
      * @return The current Tiles container to use in web pages.
      * @since 2.1.0
      */
-    public static TilesContainer getCurrentContainer(Request request,
-            ApplicationContext context) {
+    public static TilesContainer getCurrentContainer(Request request) {
+        ApplicationContext context = request.getApplicationContext();
         Map<String, Object> requestScope = request.getRequestScope();
         TilesContainer container = (TilesContainer) requestScope.get(CURRENT_CONTAINER_ATTRIBUTE_NAME);
         if (container == null) {

Modified: tiles/sandbox/trunk/tiles3/tiles-api/src/test/java/org/apache/tiles/access/TilesAccessTest.java
URL: http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles3/tiles-api/src/test/java/org/apache/tiles/access/TilesAccessTest.java?rev=883078&r1=883077&r2=883078&view=diff
==============================================================================
--- tiles/sandbox/trunk/tiles3/tiles-api/src/test/java/org/apache/tiles/access/TilesAccessTest.java (original)
+++ tiles/sandbox/trunk/tiles3/tiles-api/src/test/java/org/apache/tiles/access/TilesAccessTest.java Sun Nov 22 13:57:09 2009
@@ -114,7 +114,7 @@
 
     /**
      * Tests
-     * {@link ServletUtil#setCurrentContainer(ServletRequest, ServletContext, String)}.
+     * {@link ServletUtil#setCurrentContainer(ServletRequest, String)}.
      */
     @Test
     public void testSetCurrentContainer() {
@@ -127,15 +127,16 @@
 
         expect(context.getApplicationScope()).andReturn(attribs).anyTimes();
         expect(request.getRequestScope()).andReturn(requestScope);
+        expect(request.getApplicationContext()).andReturn(context);
         replay(request, context, container);
-        TilesAccess.setCurrentContainer(request, context, "myKey");
+        TilesAccess.setCurrentContainer(request, "myKey");
         assertEquals(container, requestScope.get(TilesAccess.CURRENT_CONTAINER_ATTRIBUTE_NAME));
         verify(request, context, container);
     }
 
     /**
      * Tests
-     * {@link ServletUtil#setCurrentContainer(ServletRequest, ServletContext, String)}.
+     * {@link ServletUtil#setCurrentContainer(ServletRequest, String)}.
      */
     @Test(expected=NoSuchContainerException.class)
     public void testSetCurrentContainerException() {
@@ -143,10 +144,11 @@
         ApplicationContext context = createMock(ApplicationContext.class);
         Map<String, Object> attribs = new HashMap<String, Object>();
 
+        expect(request.getApplicationContext()).andReturn(context);
         expect(context.getApplicationScope()).andReturn(attribs).anyTimes();
         replay(request, context);
         try {
-            TilesAccess.setCurrentContainer(request, context, "myKey");
+            TilesAccess.setCurrentContainer(request, "myKey");
         } finally {
             verify(request, context);
         }
@@ -188,14 +190,14 @@
 
         replay(request, context);
         try {
-            TilesAccess.setCurrentContainer(request, null);
+            TilesAccess.setCurrentContainer(request, (TilesContainer) null);
         } finally {
             verify(request, context);
         }
     }
 
     /**
-     * Tests {@link ServletUtil#getCurrentContainer(ServletRequest, ServletContext)}.
+     * Tests {@link ServletUtil#getCurrentContainer(ServletRequest)}.
      */
     @Test
     public void testGetCurrentContainer() {
@@ -207,16 +209,17 @@
         Map<String, Object> requestScope = new HashMap<String, Object>();
         requestScope.put(TilesAccess.CURRENT_CONTAINER_ATTRIBUTE_NAME, container);
 
+        expect(request.getApplicationContext()).andReturn(context);
         expect(context.getApplicationScope()).andReturn(attribs).anyTimes();
         expect(request.getRequestScope()).andReturn(requestScope);
 
         replay(request, context, container);
-        assertEquals(container, TilesAccess.getCurrentContainer(request, context));
+        assertEquals(container, TilesAccess.getCurrentContainer(request));
         verify(request, context, container);
     }
 
     /**
-     * Tests {@link ServletUtil#getCurrentContainer(ServletRequest, ServletContext)}.
+     * Tests {@link ServletUtil#getCurrentContainer(ServletRequest)}.
      */
     @Test
     public void testGetCurrentContainerDefault() {
@@ -227,11 +230,12 @@
         attribs.put(TilesAccess.CONTAINER_ATTRIBUTE, container);
         Map<String, Object> requestScope = new HashMap<String, Object>();
 
+        expect(request.getApplicationContext()).andReturn(context);
         expect(context.getApplicationScope()).andReturn(attribs).anyTimes();
         expect(request.getRequestScope()).andReturn(requestScope);
 
         replay(request, context, container);
-        assertEquals(container, TilesAccess.getCurrentContainer(request, context));
+        assertEquals(container, TilesAccess.getCurrentContainer(request));
         verify(request, context, container);
     }
 }

Modified: tiles/sandbox/trunk/tiles3/tiles-core/src/main/java/org/apache/tiles/startup/AbstractTilesInitializer.java
URL: http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles3/tiles-core/src/main/java/org/apache/tiles/startup/AbstractTilesInitializer.java?rev=883078&r1=883077&r2=883078&view=diff
==============================================================================
--- tiles/sandbox/trunk/tiles3/tiles-core/src/main/java/org/apache/tiles/startup/AbstractTilesInitializer.java (original)
+++ tiles/sandbox/trunk/tiles3/tiles-core/src/main/java/org/apache/tiles/startup/AbstractTilesInitializer.java Sun Nov 22 13:57:09 2009
@@ -26,6 +26,7 @@
 import org.apache.tiles.access.TilesAccess;
 import org.apache.tiles.factory.AbstractTilesContainerFactory;
 import org.apache.tiles.request.ApplicationContext;
+import org.apache.tiles.request.util.ApplicationContextUtil;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -66,6 +67,7 @@
     /** {@inheritDoc} */
     public void initialize(ApplicationContext applicationContext) {
         this.applicationContext = createTilesApplicationContext(applicationContext);
+        ApplicationContextUtil.register(applicationContext);
         String key = getContainerKey(this.applicationContext);
         container = createContainer(this.applicationContext);
         TilesAccess.setContainer(this.applicationContext, container, key);

Modified: tiles/sandbox/trunk/tiles3/tiles-core/src/test/java/org/apache/tiles/startup/AbstractTilesInitializerTest.java
URL: http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles3/tiles-core/src/test/java/org/apache/tiles/startup/AbstractTilesInitializerTest.java?rev=883078&r1=883077&r2=883078&view=diff
==============================================================================
--- tiles/sandbox/trunk/tiles3/tiles-core/src/test/java/org/apache/tiles/startup/AbstractTilesInitializerTest.java (original)
+++ tiles/sandbox/trunk/tiles3/tiles-core/src/test/java/org/apache/tiles/startup/AbstractTilesInitializerTest.java Sun Nov 22 13:57:09 2009
@@ -28,8 +28,10 @@
 
 import org.apache.tiles.TilesContainer;
 import org.apache.tiles.access.TilesAccess;
+import org.apache.tiles.access.TilesAccessTest;
 import org.apache.tiles.factory.AbstractTilesContainerFactory;
 import org.apache.tiles.request.ApplicationContext;
+import org.apache.tiles.request.util.ApplicationContextUtil;
 import org.junit.Before;
 import org.junit.Test;
 
@@ -77,7 +79,9 @@
         Map<String, Object> scope = createMock(Map.class);
 
         expect(containerFactory.createContainer(context)).andReturn(container);
-        expect(context.getApplicationScope()).andReturn(scope).times(2);
+        expect(context.getApplicationScope()).andReturn(scope).anyTimes();
+        expect(scope.put(ApplicationContextUtil.APPLICATION_CONTEXT_ATTRIBUTE,
+                context)).andReturn(null);
         expect(scope.put(TilesAccess.CONTAINER_ATTRIBUTE, container)).andReturn(null);
         expect(scope.remove(TilesAccess.CONTAINER_ATTRIBUTE)).andReturn(container);
 

Modified: tiles/sandbox/trunk/tiles3/tiles-freemarker/src/main/java/org/apache/tiles/freemarker/context/FreeMarkerUtil.java
URL: http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles3/tiles-freemarker/src/main/java/org/apache/tiles/freemarker/context/FreeMarkerUtil.java?rev=883078&r1=883077&r2=883078&view=diff
==============================================================================
--- tiles/sandbox/trunk/tiles3/tiles-freemarker/src/main/java/org/apache/tiles/freemarker/context/FreeMarkerUtil.java (original)
+++ tiles/sandbox/trunk/tiles3/tiles-freemarker/src/main/java/org/apache/tiles/freemarker/context/FreeMarkerUtil.java Sun Nov 22 13:57:09 2009
@@ -24,15 +24,8 @@
 import java.io.IOException;
 import java.io.StringWriter;
 
-import javax.servlet.http.HttpServletRequest;
-
-import org.apache.tiles.ArrayStack;
-import org.apache.tiles.NoSuchContainerException;
-import org.apache.tiles.TilesContainer;
-import org.apache.tiles.access.TilesAccess;
 import org.apache.tiles.freemarker.FreeMarkerTilesException;
 import org.apache.tiles.freemarker.io.NullWriter;
-import org.apache.tiles.servlet.context.ServletUtil;
 
 import freemarker.core.Environment;
 import freemarker.template.TemplateDirectiveBody;
@@ -86,67 +79,6 @@
     }
 
     /**
-     * Returns a specific Tiles container.
-     *
-     * @param env The current FreeMarker environment.
-     * @param key The key under which the container is stored. If null, the
-     * default container will be returned.
-     * @return The requested Tiles container.
-     * @since 2.2.0
-     */
-    public static TilesContainer getContainer(Environment env, String key) {
-        if (key == null) {
-            key = TilesAccess.CONTAINER_ATTRIBUTE;
-        }
-        return (TilesContainer) FreeMarkerRequestUtil.getServletContextHashModel(env).getServlet()
-                .getServletContext().getAttribute(key);
-    }
-
-    /**
-     * Sets the current container to use in web pages.
-     *
-     * @param env The current FreeMarker environment.
-     * @param key The key under which the container is stored.
-     * @since 2.2.0
-     */
-    public static void setCurrentContainer(Environment env, String key) {
-        TilesContainer container = getContainer(env, key);
-        if (container != null) {
-            FreeMarkerRequestUtil.getRequestHashModel(env).getRequest().setAttribute(
-                    TilesAccess.CURRENT_CONTAINER_ATTRIBUTE_NAME, container);
-        } else {
-            throw new NoSuchContainerException("The container with the key '"
-                    + key + "' cannot be found");
-        }
-    }
-
-    /**
-     * Sets the current container to use in web pages.
-     *
-     * @param env The current FreeMarker environment.
-     * @param container The container to use as the current container.
-     * @since 2.2.0
-     */
-    public static void setCurrentContainer(Environment env,
-            TilesContainer container) {
-        ServletUtil.setCurrentContainer(FreeMarkerRequestUtil.getRequestHashModel(env).getRequest(),
-                container);
-    }
-
-    /**
-     * Returns the current container that has been set, or the default one.
-     *
-     * @param env The current FreeMarker environment.
-     * @return The current Tiles container to use in web pages.
-     * @since 2.2.0
-     */
-    public static TilesContainer getCurrentContainer(Environment env) {
-        return ServletUtil.getCurrentContainer(FreeMarkerRequestUtil.getRequestHashModel(env)
-                .getRequest(), FreeMarkerRequestUtil.getServletContextHashModel(env).getServlet()
-                .getServletContext());
-    }
-
-    /**
      * Unwraps a TemplateModel to extract a string.
      *
      * @param model The TemplateModel to unwrap.
@@ -228,25 +160,6 @@
     }
 
     /**
-     * Returns the current compose stack, or creates a new one if not present.
-     *
-     * @param env The current FreeMarker environment.
-     * @return The compose stack.
-     * @since 2.2.0
-     */
-    @SuppressWarnings("unchecked")
-    public static ArrayStack<Object> getComposeStack(Environment env) {
-        HttpServletRequest request = FreeMarkerRequestUtil.getRequestHashModel(env).getRequest();
-        ArrayStack<Object> composeStack = (ArrayStack<Object>) request
-                .getAttribute(COMPOSE_STACK_ATTRIBUTE_NAME);
-        if (composeStack == null) {
-            composeStack = new ArrayStack<Object>();
-            request.setAttribute(COMPOSE_STACK_ATTRIBUTE_NAME, composeStack);
-        }
-        return composeStack;
-    }
-
-    /**
      * Evaluates the body without rendering it.
      *
      * @param body The body to evaluate.

Modified: tiles/sandbox/trunk/tiles3/tiles-freemarker/src/main/java/org/apache/tiles/freemarker/template/AddAttributeFMModel.java
URL: http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles3/tiles-freemarker/src/main/java/org/apache/tiles/freemarker/template/AddAttributeFMModel.java?rev=883078&r1=883077&r2=883078&view=diff
==============================================================================
--- tiles/sandbox/trunk/tiles3/tiles-freemarker/src/main/java/org/apache/tiles/freemarker/template/AddAttributeFMModel.java (original)
+++ tiles/sandbox/trunk/tiles3/tiles-freemarker/src/main/java/org/apache/tiles/freemarker/template/AddAttributeFMModel.java Sun Nov 22 13:57:09 2009
@@ -24,7 +24,7 @@
 import java.io.IOException;
 import java.util.Map;
 
-import org.apache.tiles.TilesContainer;
+import org.apache.tiles.freemarker.context.FreeMarkerRequestUtil;
 import org.apache.tiles.freemarker.context.FreeMarkerTilesRequestContext;
 import org.apache.tiles.freemarker.context.FreeMarkerUtil;
 import org.apache.tiles.request.Request;
@@ -65,10 +65,9 @@
     @SuppressWarnings("unchecked")
     public void execute(Environment env, Map params, TemplateModel[] loopVars,
             TemplateDirectiveBody body) throws TemplateException, IOException {
-        TilesContainer container = FreeMarkerUtil.getCurrentContainer(env);
         Request request = FreeMarkerTilesRequestContext
-                .createServletFreemarkerRequest(container
-                        .getApplicationContext(), env);
+                .createServletFreemarkerRequest(FreeMarkerRequestUtil
+                        .getApplicationContext(env), env);
         model.start(request);
         String bodyString = FreeMarkerUtil.renderAsString(body);
         Map<String, TemplateModel> parms = params;

Modified: tiles/sandbox/trunk/tiles3/tiles-freemarker/src/main/java/org/apache/tiles/freemarker/template/AddListAttributeFMModel.java
URL: http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles3/tiles-freemarker/src/main/java/org/apache/tiles/freemarker/template/AddListAttributeFMModel.java?rev=883078&r1=883077&r2=883078&view=diff
==============================================================================
--- tiles/sandbox/trunk/tiles3/tiles-freemarker/src/main/java/org/apache/tiles/freemarker/template/AddListAttributeFMModel.java (original)
+++ tiles/sandbox/trunk/tiles3/tiles-freemarker/src/main/java/org/apache/tiles/freemarker/template/AddListAttributeFMModel.java Sun Nov 22 13:57:09 2009
@@ -24,7 +24,7 @@
 import java.io.IOException;
 import java.util.Map;
 
-import org.apache.tiles.TilesContainer;
+import org.apache.tiles.freemarker.context.FreeMarkerRequestUtil;
 import org.apache.tiles.freemarker.context.FreeMarkerTilesRequestContext;
 import org.apache.tiles.freemarker.context.FreeMarkerUtil;
 import org.apache.tiles.request.Request;
@@ -65,10 +65,9 @@
     @SuppressWarnings("unchecked")
     public void execute(Environment env, Map params, TemplateModel[] loopVars,
             TemplateDirectiveBody body) throws TemplateException, IOException {
-        TilesContainer container = FreeMarkerUtil.getCurrentContainer(env);
         Request request = FreeMarkerTilesRequestContext
-                .createServletFreemarkerRequest(container
-                        .getApplicationContext(), env);
+                .createServletFreemarkerRequest(FreeMarkerRequestUtil
+                        .getApplicationContext(env), env);
         Map<String, TemplateModel> parms = params;
         model.start(FreeMarkerUtil.getAsString(parms.get("role")), request);
         FreeMarkerUtil.evaluateBody(body);

Modified: tiles/sandbox/trunk/tiles3/tiles-freemarker/src/main/java/org/apache/tiles/freemarker/template/DefinitionFMModel.java
URL: http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles3/tiles-freemarker/src/main/java/org/apache/tiles/freemarker/template/DefinitionFMModel.java?rev=883078&r1=883077&r2=883078&view=diff
==============================================================================
--- tiles/sandbox/trunk/tiles3/tiles-freemarker/src/main/java/org/apache/tiles/freemarker/template/DefinitionFMModel.java (original)
+++ tiles/sandbox/trunk/tiles3/tiles-freemarker/src/main/java/org/apache/tiles/freemarker/template/DefinitionFMModel.java Sun Nov 22 13:57:09 2009
@@ -24,10 +24,9 @@
 import java.io.IOException;
 import java.util.Map;
 
-import org.apache.tiles.TilesContainer;
+import org.apache.tiles.freemarker.context.FreeMarkerRequestUtil;
 import org.apache.tiles.freemarker.context.FreeMarkerTilesRequestContext;
 import org.apache.tiles.freemarker.context.FreeMarkerUtil;
-import org.apache.tiles.mgmt.MutableTilesContainer;
 import org.apache.tiles.request.Request;
 import org.apache.tiles.template.DefinitionModel;
 
@@ -40,7 +39,7 @@
 /**
  * Wraps {@link DefinitionModel} to be used in FreeMarker. For the list of
  * parameters, see {@link DefinitionModel#start(String, String, String, String, String, Request)} and
- * {@link DefinitionModel#end(MutableTilesContainer, Request)}.
+ * {@link DefinitionModel#end(Request)}.
  *
  * @version $Rev$ $Date$
  * @since 2.2.0
@@ -67,10 +66,9 @@
     public void execute(Environment env, Map params, TemplateModel[] loopVars,
             TemplateDirectiveBody body) throws TemplateException, IOException {
         Map<String, TemplateModel> parms = params;
-        TilesContainer container = FreeMarkerUtil.getCurrentContainer(env);
         Request request = FreeMarkerTilesRequestContext
-                .createServletFreemarkerRequest(container
-                        .getApplicationContext(), env);
+                .createServletFreemarkerRequest(FreeMarkerRequestUtil
+                        .getApplicationContext(env), env);
         model.start(FreeMarkerUtil.getAsString(parms.get("name")),
                 FreeMarkerUtil.getAsString(parms.get("template")),
                 FreeMarkerUtil.getAsString(parms.get("role")),
@@ -78,7 +76,7 @@
                 FreeMarkerUtil.getAsString(parms.get("preparer")),
                 request);
         FreeMarkerUtil.evaluateBody(body);
-        model.end((MutableTilesContainer) container, request);
+        model.end(request);
     }
 
 }

Modified: tiles/sandbox/trunk/tiles3/tiles-freemarker/src/main/java/org/apache/tiles/freemarker/template/GetAsStringFMModel.java
URL: http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles3/tiles-freemarker/src/main/java/org/apache/tiles/freemarker/template/GetAsStringFMModel.java?rev=883078&r1=883077&r2=883078&view=diff
==============================================================================
--- tiles/sandbox/trunk/tiles3/tiles-freemarker/src/main/java/org/apache/tiles/freemarker/template/GetAsStringFMModel.java (original)
+++ tiles/sandbox/trunk/tiles3/tiles-freemarker/src/main/java/org/apache/tiles/freemarker/template/GetAsStringFMModel.java Sun Nov 22 13:57:09 2009
@@ -25,7 +25,7 @@
 import java.util.Map;
 
 import org.apache.tiles.Attribute;
-import org.apache.tiles.TilesContainer;
+import org.apache.tiles.freemarker.context.FreeMarkerRequestUtil;
 import org.apache.tiles.freemarker.context.FreeMarkerTilesRequestContext;
 import org.apache.tiles.freemarker.context.FreeMarkerUtil;
 import org.apache.tiles.request.Request;
@@ -41,10 +41,9 @@
  * Wraps {@link GetAsStringModel} to be used in FreeMarker. For the list of
  * parameters, see
  * {@link GetAsStringModel
- * #start(TilesContainer, boolean, String, String, Object, String, String, String, Attribute,
- * Request)}
+ * #start(boolean, String, String, Object, String, String, String, Attribute, Request)}
  * and
- * {@link GetAsStringModel#end(TilesContainer, java.io.Writer, boolean, Request)}
+ * {@link GetAsStringModel#end(boolean, Request)}
  * .
  *
  * @version $Rev$ $Date$
@@ -71,13 +70,11 @@
     @SuppressWarnings("unchecked")
     public void execute(Environment env, Map params, TemplateModel[] loopVars,
             TemplateDirectiveBody body) throws TemplateException, IOException {
-        Map<String, TemplateModel> parms = (Map<String, TemplateModel>) params;
-        TilesContainer container = FreeMarkerUtil.getCurrentContainer(env);
+        Map<String, TemplateModel> parms = params;
         Request request = FreeMarkerTilesRequestContext
-                .createServletFreemarkerRequest(container
-                        .getApplicationContext(), env);
+                .createServletFreemarkerRequest(FreeMarkerRequestUtil
+                        .getApplicationContext(env), env);
         model.start(
-                container,
                 FreeMarkerUtil.getAsBoolean(parms.get("ignore"), false),
                 FreeMarkerUtil.getAsString(parms.get("preparer")),
                 FreeMarkerUtil.getAsString(parms.get("role")),
@@ -85,13 +82,12 @@
                 FreeMarkerUtil.getAsString(parms
                         .get("defaultValueRole")),
                 FreeMarkerUtil
-                .getAsString(parms.get("defaultValueType")), FreeMarkerUtil.getAsString(parms.get("name")),
-                (Attribute) FreeMarkerUtil.getAsObject(parms
+                .getAsString(parms.get("defaultValueType")),
+                FreeMarkerUtil.getAsString(parms.get("name")), (Attribute) FreeMarkerUtil.getAsObject(parms
                         .get("value")),
                 request);
         FreeMarkerUtil.evaluateBody(body);
-        model.end(container, env.getOut(), FreeMarkerUtil.getAsBoolean(parms.get("ignore"), false),
-                request);
+        model.end(FreeMarkerUtil.getAsBoolean(parms.get("ignore"), false), request);
     }
 
 }

Modified: tiles/sandbox/trunk/tiles3/tiles-freemarker/src/main/java/org/apache/tiles/freemarker/template/ImportAttributeFMModel.java
URL: http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles3/tiles-freemarker/src/main/java/org/apache/tiles/freemarker/template/ImportAttributeFMModel.java?rev=883078&r1=883077&r2=883078&view=diff
==============================================================================
--- tiles/sandbox/trunk/tiles3/tiles-freemarker/src/main/java/org/apache/tiles/freemarker/template/ImportAttributeFMModel.java (original)
+++ tiles/sandbox/trunk/tiles3/tiles-freemarker/src/main/java/org/apache/tiles/freemarker/template/ImportAttributeFMModel.java Sun Nov 22 13:57:09 2009
@@ -21,10 +21,9 @@
 
 package org.apache.tiles.freemarker.template;
 
-import java.io.IOException;
 import java.util.Map;
 
-import org.apache.tiles.TilesContainer;
+import org.apache.tiles.freemarker.context.FreeMarkerRequestUtil;
 import org.apache.tiles.freemarker.context.FreeMarkerTilesRequestContext;
 import org.apache.tiles.freemarker.context.FreeMarkerUtil;
 import org.apache.tiles.request.Request;
@@ -33,13 +32,12 @@
 import freemarker.core.Environment;
 import freemarker.template.TemplateDirectiveBody;
 import freemarker.template.TemplateDirectiveModel;
-import freemarker.template.TemplateException;
 import freemarker.template.TemplateModel;
 
 /**
  * Wraps {@link ImportAttributeModel} to be used in FreeMarker. For the list of
  * parameters, see
- * {@link ImportAttributeModel#getImportedAttributes(TilesContainer, String, String, boolean, Request)}
+ * {@link ImportAttributeModel#getImportedAttributes(String, String, boolean, Request)}
  * .
  *
  * @version $Rev$ $Date$
@@ -66,16 +64,15 @@
     /** {@inheritDoc} */
     @SuppressWarnings("unchecked")
     public void execute(Environment env, Map params, TemplateModel[] loopVars,
-            TemplateDirectiveBody body) throws TemplateException, IOException {
-        Map<String, TemplateModel> parms = (Map<String, TemplateModel>) params;
-        TilesContainer container = FreeMarkerUtil.getCurrentContainer(env);
+            TemplateDirectiveBody body) {
+        Map<String, TemplateModel> parms = params;
         Request request = FreeMarkerTilesRequestContext
-                .createServletFreemarkerRequest(container
-                        .getApplicationContext(), env);
-        Map<String, Object> attributes = model.getImportedAttributes(container,
-                FreeMarkerUtil.getAsString(parms.get("name")), FreeMarkerUtil
+                .createServletFreemarkerRequest(FreeMarkerRequestUtil
+                        .getApplicationContext(env), env);
+        Map<String, Object> attributes = model.getImportedAttributes(FreeMarkerUtil.getAsString(parms.get("name")),
+                FreeMarkerUtil
                         .getAsString(parms.get("toName")), FreeMarkerUtil
-                        .getAsBoolean(parms.get("ignore"), false), request);
+                .getAsBoolean(parms.get("ignore"), false), request);
         String scope = FreeMarkerUtil.getAsString(parms.get("scope"));
         for (Map.Entry<String, Object> entry : attributes.entrySet()) {
             FreeMarkerUtil.setAttribute(env, entry.getKey(), entry.getValue(),

Modified: tiles/sandbox/trunk/tiles3/tiles-freemarker/src/main/java/org/apache/tiles/freemarker/template/InsertAttributeFMModel.java
URL: http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles3/tiles-freemarker/src/main/java/org/apache/tiles/freemarker/template/InsertAttributeFMModel.java?rev=883078&r1=883077&r2=883078&view=diff
==============================================================================
--- tiles/sandbox/trunk/tiles3/tiles-freemarker/src/main/java/org/apache/tiles/freemarker/template/InsertAttributeFMModel.java (original)
+++ tiles/sandbox/trunk/tiles3/tiles-freemarker/src/main/java/org/apache/tiles/freemarker/template/InsertAttributeFMModel.java Sun Nov 22 13:57:09 2009
@@ -25,7 +25,7 @@
 import java.util.Map;
 
 import org.apache.tiles.Attribute;
-import org.apache.tiles.TilesContainer;
+import org.apache.tiles.freemarker.context.FreeMarkerRequestUtil;
 import org.apache.tiles.freemarker.context.FreeMarkerTilesRequestContext;
 import org.apache.tiles.freemarker.context.FreeMarkerUtil;
 import org.apache.tiles.request.Request;
@@ -40,9 +40,9 @@
 /**
  * Wraps {@link InsertAttributeModel} to be used in FreeMarker. For the list of
  * parameters, see
- * {@link InsertAttributeModel #start(TilesContainer, boolean, String, String, Object, String, String, String, Attribute, Request)}
+ * {@link InsertAttributeModel #start(boolean, String, String, Object, String, String, String, Attribute, Request)}
  * and
- * {@link InsertAttributeModel #end(TilesContainer, boolean, Request)}
+ * {@link InsertAttributeModel #end(boolean, Request)}
  * .
  *
  * @version $Rev$ $Date$
@@ -70,23 +70,20 @@
     @SuppressWarnings("unchecked")
     public void execute(Environment env, Map params, TemplateModel[] loopVars,
             TemplateDirectiveBody body) throws TemplateException, IOException {
-        Map<String, TemplateModel> parms = (Map<String, TemplateModel>) params;
-        TilesContainer container = FreeMarkerUtil.getCurrentContainer(env);
+        Map<String, TemplateModel> parms = params;
         Request request = FreeMarkerTilesRequestContext
-                .createServletFreemarkerRequest(container
-                        .getApplicationContext(), env);
-        model.start(container, FreeMarkerUtil.getAsBoolean(parms.get("ignore"), false),
-                FreeMarkerUtil.getAsString(parms.get("preparer")),
+                .createServletFreemarkerRequest(FreeMarkerRequestUtil
+                        .getApplicationContext(env), env);
+        model.start(FreeMarkerUtil.getAsBoolean(parms.get("ignore"), false), FreeMarkerUtil.getAsString(parms.get("preparer")),
                 FreeMarkerUtil.getAsString(parms.get("role")),
                 FreeMarkerUtil
-                        .getAsObject(parms.get("defaultValue")), FreeMarkerUtil
-                .getAsString(parms.get("defaultValueRole")), FreeMarkerUtil.getAsString(parms.get("defaultValueType")),
-                FreeMarkerUtil.getAsString(parms.get("name")),
+                        .getAsObject(parms.get("defaultValue")),
+                FreeMarkerUtil
+            .getAsString(parms.get("defaultValueRole")), FreeMarkerUtil.getAsString(parms.get("defaultValueType")), FreeMarkerUtil.getAsString(parms.get("name")),
                 (Attribute) FreeMarkerUtil.getAsObject(parms.get("value")),
                 request);
         FreeMarkerUtil.evaluateBody(body);
-        model.end(container, FreeMarkerUtil.getAsBoolean(parms.get("ignore"), false),
-                request);
+        model.end(FreeMarkerUtil.getAsBoolean(parms.get("ignore"), false), request);
     }
 
 }

Modified: tiles/sandbox/trunk/tiles3/tiles-freemarker/src/main/java/org/apache/tiles/freemarker/template/InsertDefinitionFMModel.java
URL: http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles3/tiles-freemarker/src/main/java/org/apache/tiles/freemarker/template/InsertDefinitionFMModel.java?rev=883078&r1=883077&r2=883078&view=diff
==============================================================================
--- tiles/sandbox/trunk/tiles3/tiles-freemarker/src/main/java/org/apache/tiles/freemarker/template/InsertDefinitionFMModel.java (original)
+++ tiles/sandbox/trunk/tiles3/tiles-freemarker/src/main/java/org/apache/tiles/freemarker/template/InsertDefinitionFMModel.java Sun Nov 22 13:57:09 2009
@@ -24,7 +24,7 @@
 import java.io.IOException;
 import java.util.Map;
 
-import org.apache.tiles.TilesContainer;
+import org.apache.tiles.freemarker.context.FreeMarkerRequestUtil;
 import org.apache.tiles.freemarker.context.FreeMarkerTilesRequestContext;
 import org.apache.tiles.freemarker.context.FreeMarkerUtil;
 import org.apache.tiles.request.Request;
@@ -39,9 +39,9 @@
 /**
  * Wraps {@link InsertDefinitionModel} to be used in FreeMarker. For the list of
  * parameters, see
- * {@link InsertDefinitionModel#start(org.apache.tiles.TilesContainer, Request)}
+ * {@link InsertDefinitionModel#start(Request)}
  * and
- * {@link InsertDefinitionModel#end(org.apache.tiles.TilesContainer, String, String, String, String, String, String, Request)}
+ * {@link InsertDefinitionModel#end(String, String, String, String, String, String, Request)}
  * .
  *
  * @version $Rev$ $Date$
@@ -69,18 +69,17 @@
     @SuppressWarnings("unchecked")
     public void execute(Environment env, Map params, TemplateModel[] loopVars,
             TemplateDirectiveBody body) throws TemplateException, IOException {
-        Map<String, TemplateModel> parms = (Map<String, TemplateModel>) params;
-        TilesContainer container = FreeMarkerUtil.getCurrentContainer(env);
+        Map<String, TemplateModel> parms = params;
         Request request = FreeMarkerTilesRequestContext
-                .createServletFreemarkerRequest(container
-                        .getApplicationContext(), env);
-        model.start(container, request);
+                .createServletFreemarkerRequest(FreeMarkerRequestUtil
+                        .getApplicationContext(env), env);
+        model.start(request);
         FreeMarkerUtil.evaluateBody(body);
-        model.end(container, FreeMarkerUtil.getAsString(parms.get("name")),
-                FreeMarkerUtil.getAsString(parms.get("template")),
+        model.end(FreeMarkerUtil.getAsString(parms.get("name")), FreeMarkerUtil.getAsString(parms.get("template")),
                 FreeMarkerUtil.getAsString(parms.get("templateType")),
                 FreeMarkerUtil.getAsString(parms.get("templateExpression")),
-                FreeMarkerUtil.getAsString(parms.get("role")), FreeMarkerUtil
+                FreeMarkerUtil.getAsString(parms.get("role")),
+                FreeMarkerUtil
                         .getAsString(parms.get("preparer")), request);
     }
 

Modified: tiles/sandbox/trunk/tiles3/tiles-freemarker/src/main/java/org/apache/tiles/freemarker/template/InsertTemplateFMModel.java
URL: http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles3/tiles-freemarker/src/main/java/org/apache/tiles/freemarker/template/InsertTemplateFMModel.java?rev=883078&r1=883077&r2=883078&view=diff
==============================================================================
--- tiles/sandbox/trunk/tiles3/tiles-freemarker/src/main/java/org/apache/tiles/freemarker/template/InsertTemplateFMModel.java (original)
+++ tiles/sandbox/trunk/tiles3/tiles-freemarker/src/main/java/org/apache/tiles/freemarker/template/InsertTemplateFMModel.java Sun Nov 22 13:57:09 2009
@@ -24,7 +24,7 @@
 import java.io.IOException;
 import java.util.Map;
 
-import org.apache.tiles.TilesContainer;
+import org.apache.tiles.freemarker.context.FreeMarkerRequestUtil;
 import org.apache.tiles.freemarker.context.FreeMarkerTilesRequestContext;
 import org.apache.tiles.freemarker.context.FreeMarkerUtil;
 import org.apache.tiles.request.Request;
@@ -39,9 +39,9 @@
 /**
  * Wraps {@link InsertTemplateModel} to be used in FreeMarker. For the list of
  * parameters, see
- * {@link InsertTemplateModel#start(org.apache.tiles.TilesContainer, Request)}
+ * {@link InsertTemplateModel#start(Request)}
  * and
- * {@link InsertTemplateModel#end(org.apache.tiles.TilesContainer, String, String, String, String, String, Request)}
+ * {@link InsertTemplateModel#end(String, String, String, String, String, Request)}
  * .
  *
  * @version $Rev$ $Date$
@@ -69,18 +69,17 @@
     @SuppressWarnings("unchecked")
     public void execute(Environment env, Map params, TemplateModel[] loopVars,
             TemplateDirectiveBody body) throws TemplateException, IOException {
-        Map<String, TemplateModel> parms = (Map<String, TemplateModel>) params;
-        TilesContainer container = FreeMarkerUtil.getCurrentContainer(env);
+        Map<String, TemplateModel> parms = params;
         Request request = FreeMarkerTilesRequestContext
-                .createServletFreemarkerRequest(container
-                        .getApplicationContext(), env);
-        model.start(container, request);
+                .createServletFreemarkerRequest(FreeMarkerRequestUtil
+                        .getApplicationContext(env), env);
+        model.start(request);
         FreeMarkerUtil.evaluateBody(body);
         FreeMarkerUtil.setForceInclude(env, true);
-        model.end(container, FreeMarkerUtil.getAsString(parms.get("template")),
-                FreeMarkerUtil.getAsString(parms.get("templateType")),
+        model.end(FreeMarkerUtil.getAsString(parms.get("template")), FreeMarkerUtil.getAsString(parms.get("templateType")),
                 FreeMarkerUtil.getAsString(parms.get("templateExpression")),
-                FreeMarkerUtil.getAsString(parms.get("role")), FreeMarkerUtil
+                FreeMarkerUtil.getAsString(parms.get("role")),
+                FreeMarkerUtil
                         .getAsString(parms.get("preparer")), request);
     }
 

Modified: tiles/sandbox/trunk/tiles3/tiles-freemarker/src/main/java/org/apache/tiles/freemarker/template/PutAttributeFMModel.java
URL: http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles3/tiles-freemarker/src/main/java/org/apache/tiles/freemarker/template/PutAttributeFMModel.java?rev=883078&r1=883077&r2=883078&view=diff
==============================================================================
--- tiles/sandbox/trunk/tiles3/tiles-freemarker/src/main/java/org/apache/tiles/freemarker/template/PutAttributeFMModel.java (original)
+++ tiles/sandbox/trunk/tiles3/tiles-freemarker/src/main/java/org/apache/tiles/freemarker/template/PutAttributeFMModel.java Sun Nov 22 13:57:09 2009
@@ -24,7 +24,7 @@
 import java.io.IOException;
 import java.util.Map;
 
-import org.apache.tiles.TilesContainer;
+import org.apache.tiles.freemarker.context.FreeMarkerRequestUtil;
 import org.apache.tiles.freemarker.context.FreeMarkerTilesRequestContext;
 import org.apache.tiles.freemarker.context.FreeMarkerUtil;
 import org.apache.tiles.request.Request;
@@ -39,7 +39,7 @@
 /**
  * Wraps {@link PutAttributeModel} to be used in FreeMarker. For the list of
  * parameters, see {@link PutAttributeModel#start(Request)} and
- * {@link PutAttributeModel #end(org.apache.tiles.TilesContainer, String, Object, String, String, String, String, boolean, Request)}
+ * {@link PutAttributeModel #end(String, Object, String, String, String, String, boolean, Request)}
  * .
  *
  * @version $Rev$ $Date$
@@ -67,19 +67,18 @@
     @SuppressWarnings("unchecked")
     public void execute(Environment env, Map params, TemplateModel[] loopVars,
             TemplateDirectiveBody body) throws TemplateException, IOException {
-        TilesContainer container = FreeMarkerUtil.getCurrentContainer(env);
         Request request = FreeMarkerTilesRequestContext
-                .createServletFreemarkerRequest(container
-                        .getApplicationContext(), env);
+                .createServletFreemarkerRequest(FreeMarkerRequestUtil
+                        .getApplicationContext(env), env);
         model.start(request);
         String bodyString = FreeMarkerUtil.renderAsString(body);
         Map<String, TemplateModel> parms = params;
-        model.end(container, FreeMarkerUtil.getAsString(parms
-                .get("name")), FreeMarkerUtil.getAsObject(parms.get("value")), FreeMarkerUtil.getAsString(parms.get("expression")),
-                bodyString,
-                FreeMarkerUtil.getAsString(parms.get("role")), FreeMarkerUtil.getAsString(parms.get("type")),
-                FreeMarkerUtil
-                        .getAsBoolean(parms.get("cascade"), false), request);
+        model.end(FreeMarkerUtil.getAsString(parms
+                .get("name")), FreeMarkerUtil.getAsObject(parms.get("value")), FreeMarkerUtil.getAsString(parms.get("expression")), bodyString,
+                FreeMarkerUtil.getAsString(parms.get("role")),
+                FreeMarkerUtil.getAsString(parms.get("type")), FreeMarkerUtil
+                        .getAsBoolean(parms.get("cascade"), false),
+                request);
     }
 
 }

Modified: tiles/sandbox/trunk/tiles3/tiles-freemarker/src/main/java/org/apache/tiles/freemarker/template/PutListAttributeFMModel.java
URL: http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles3/tiles-freemarker/src/main/java/org/apache/tiles/freemarker/template/PutListAttributeFMModel.java?rev=883078&r1=883077&r2=883078&view=diff
==============================================================================
--- tiles/sandbox/trunk/tiles3/tiles-freemarker/src/main/java/org/apache/tiles/freemarker/template/PutListAttributeFMModel.java (original)
+++ tiles/sandbox/trunk/tiles3/tiles-freemarker/src/main/java/org/apache/tiles/freemarker/template/PutListAttributeFMModel.java Sun Nov 22 13:57:09 2009
@@ -24,7 +24,7 @@
 import java.io.IOException;
 import java.util.Map;
 
-import org.apache.tiles.TilesContainer;
+import org.apache.tiles.freemarker.context.FreeMarkerRequestUtil;
 import org.apache.tiles.freemarker.context.FreeMarkerTilesRequestContext;
 import org.apache.tiles.freemarker.context.FreeMarkerUtil;
 import org.apache.tiles.request.Request;
@@ -40,7 +40,7 @@
  * Wraps {@link PutListAttributeModel} to be used in FreeMarker. For the list of
  * parameters, see
  * {@link PutListAttributeModel#start(String, boolean, Request)} and
- * {@link PutListAttributeModel#end(org.apache.tiles.TilesContainer, String, boolean, Request)}
+ * {@link PutListAttributeModel#end(String, boolean, Request)}
  * .
  *
  * @version $Rev$ $Date$
@@ -69,16 +69,15 @@
     public void execute(Environment env, Map params, TemplateModel[] loopVars,
             TemplateDirectiveBody body) throws TemplateException, IOException {
         Map<String, TemplateModel> parms = params;
-        TilesContainer container = FreeMarkerUtil.getCurrentContainer(env);
         Request request = FreeMarkerTilesRequestContext
-                .createServletFreemarkerRequest(container
-                        .getApplicationContext(), env);
+                .createServletFreemarkerRequest(FreeMarkerRequestUtil
+                        .getApplicationContext(env), env);
         model.start(FreeMarkerUtil.getAsString(parms.get("role")),
                 FreeMarkerUtil
                         .getAsBoolean(parms.get("inherit"), false), request);
         FreeMarkerUtil.evaluateBody(body);
-        model.end(container, FreeMarkerUtil.getAsString(parms
+        model.end(FreeMarkerUtil.getAsString(parms
                 .get("name")), FreeMarkerUtil.getAsBoolean(
-        parms.get("cascade"), false), request);
+      parms.get("cascade"), false), request);
     }
 }

Modified: tiles/sandbox/trunk/tiles3/tiles-freemarker/src/main/java/org/apache/tiles/freemarker/template/SetCurrentContainerFMModel.java
URL: http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles3/tiles-freemarker/src/main/java/org/apache/tiles/freemarker/template/SetCurrentContainerFMModel.java?rev=883078&r1=883077&r2=883078&view=diff
==============================================================================
--- tiles/sandbox/trunk/tiles3/tiles-freemarker/src/main/java/org/apache/tiles/freemarker/template/SetCurrentContainerFMModel.java (original)
+++ tiles/sandbox/trunk/tiles3/tiles-freemarker/src/main/java/org/apache/tiles/freemarker/template/SetCurrentContainerFMModel.java Sun Nov 22 13:57:09 2009
@@ -21,15 +21,17 @@
 
 package org.apache.tiles.freemarker.template;
 
-import java.io.IOException;
 import java.util.Map;
 
+import org.apache.tiles.freemarker.context.FreeMarkerRequestUtil;
+import org.apache.tiles.freemarker.context.FreeMarkerTilesRequestContext;
 import org.apache.tiles.freemarker.context.FreeMarkerUtil;
+import org.apache.tiles.request.Request;
+import org.apache.tiles.template.SetCurrentContainerModel;
 
 import freemarker.core.Environment;
 import freemarker.template.TemplateDirectiveBody;
 import freemarker.template.TemplateDirectiveModel;
-import freemarker.template.TemplateException;
 import freemarker.template.TemplateModel;
 
 /**
@@ -41,12 +43,21 @@
  */
 public class SetCurrentContainerFMModel implements TemplateDirectiveModel {
 
+    private SetCurrentContainerModel model;
+
+    public SetCurrentContainerFMModel(SetCurrentContainerModel model) {
+        this.model = model;
+    }
+
     /** {@inheritDoc} */
     @SuppressWarnings("unchecked")
     public void execute(Environment env, Map params, TemplateModel[] loopVars,
-            TemplateDirectiveBody body) throws TemplateException, IOException {
-        Map<String, TemplateModel> parms = (Map<String, TemplateModel>) params;
-        FreeMarkerUtil.setCurrentContainer(env, FreeMarkerUtil
-                .getAsString(parms.get("containerKey")));
+            TemplateDirectiveBody body) {
+        Map<String, TemplateModel> parms = params;
+        Request request = FreeMarkerTilesRequestContext
+                .createServletFreemarkerRequest(FreeMarkerRequestUtil
+                        .getApplicationContext(env), env);
+        model.execute(FreeMarkerUtil.getAsString(parms.get("containerKey")),
+                request);
     }
 }

Modified: tiles/sandbox/trunk/tiles3/tiles-freemarker/src/main/java/org/apache/tiles/freemarker/template/TilesFMModelRepository.java
URL: http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles3/tiles-freemarker/src/main/java/org/apache/tiles/freemarker/template/TilesFMModelRepository.java?rev=883078&r1=883077&r2=883078&view=diff
==============================================================================
--- tiles/sandbox/trunk/tiles3/tiles-freemarker/src/main/java/org/apache/tiles/freemarker/template/TilesFMModelRepository.java (original)
+++ tiles/sandbox/trunk/tiles3/tiles-freemarker/src/main/java/org/apache/tiles/freemarker/template/TilesFMModelRepository.java Sun Nov 22 13:57:09 2009
@@ -33,6 +33,7 @@
 import org.apache.tiles.template.InsertTemplateModel;
 import org.apache.tiles.template.PutAttributeModel;
 import org.apache.tiles.template.PutListAttributeModel;
+import org.apache.tiles.template.SetCurrentContainerModel;
 
 /**
  * Collects all Tiles FreeMarker directives to be used in an application.
@@ -119,7 +120,8 @@
         putAttribute = new PutAttributeFMModel(new PutAttributeModel());
         putListAttribute = new PutListAttributeFMModel(
                 new PutListAttributeModel());
-        setCurrentContainer = new SetCurrentContainerFMModel();
+        setCurrentContainer = new SetCurrentContainerFMModel(
+                new SetCurrentContainerModel());
     }
     /**
      * Returns the "addAttribute" directive.

Modified: tiles/sandbox/trunk/tiles3/tiles-freemarker/src/test/java/org/apache/tiles/freemarker/context/FreeMarkerUtilTest.java
URL: http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles3/tiles-freemarker/src/test/java/org/apache/tiles/freemarker/context/FreeMarkerUtilTest.java?rev=883078&r1=883077&r2=883078&view=diff
==============================================================================
--- tiles/sandbox/trunk/tiles3/tiles-freemarker/src/test/java/org/apache/tiles/freemarker/context/FreeMarkerUtilTest.java (original)
+++ tiles/sandbox/trunk/tiles3/tiles-freemarker/src/test/java/org/apache/tiles/freemarker/context/FreeMarkerUtilTest.java Sun Nov 22 13:57:09 2009
@@ -36,10 +36,6 @@
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpSession;
 
-import org.apache.tiles.ArrayStack;
-import org.apache.tiles.NoSuchContainerException;
-import org.apache.tiles.TilesContainer;
-import org.apache.tiles.access.TilesAccess;
 import org.apache.tiles.freemarker.io.NullWriter;
 import org.junit.Before;
 import org.junit.Test;
@@ -155,148 +151,6 @@
 
     /**
      * Test method for {@link org.apache.tiles.freemarker.context.FreeMarkerUtil
-     * #getContainer(freemarker.core.Environment, java.lang.String)}.
-     * @throws TemplateModelException If something goes wrong.
-     */
-    @Test
-    public void testGetContainer() throws TemplateModelException {
-        GenericServlet servlet = createMock(GenericServlet.class);
-        ServletContext servletContext = createMock(ServletContext.class);
-        ObjectWrapper objectWrapper = createMock(ObjectWrapper.class);
-        TilesContainer container = createMock(TilesContainer.class);
-        expect(servlet.getServletContext()).andReturn(servletContext).times(2);
-        replay(servlet, objectWrapper);
-        ServletContextHashModel servletContextModel = new ServletContextHashModel(servlet, objectWrapper);
-
-        expect(model.get("Application")).andReturn(servletContextModel);
-        expect(servletContext.getAttribute("myKey")).andReturn(container);
-
-        replay(template, model, servletContext, container);
-        env = new Environment(template, model, writer);
-        locale = Locale.ITALY;
-        env.setLocale(locale);
-        assertEquals(container, getContainer(env, "myKey"));
-        verify(template, model, servlet, servletContext, objectWrapper, container);
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.freemarker.context.FreeMarkerUtil
-     * #setCurrentContainer(freemarker.core.Environment, java.lang.String)}.
-     * @throws TemplateModelException If something goes wrong.
-     */
-    @Test
-    public void testSetCurrentContainerEnvironmentString() throws TemplateModelException {
-        HttpServletRequest request = createMock(HttpServletRequest.class);
-        ObjectWrapper objectWrapper = createMock(ObjectWrapper.class);
-        HttpRequestHashModel requestModel = new HttpRequestHashModel(request, objectWrapper);
-        GenericServlet servlet = createMock(GenericServlet.class);
-        ServletContext servletContext = createMock(ServletContext.class);
-        TilesContainer container = createMock(TilesContainer.class);
-        expect(servlet.getServletContext()).andReturn(servletContext).times(2);
-        replay(servlet, objectWrapper);
-        ServletContextHashModel servletContextModel = new ServletContextHashModel(servlet, objectWrapper);
-
-        expect(model.get("Request")).andReturn(requestModel);
-        request.setAttribute(TilesAccess.CURRENT_CONTAINER_ATTRIBUTE_NAME, container);
-        expect(model.get("Application")).andReturn(servletContextModel);
-        expect(servletContext.getAttribute("myKey")).andReturn(container);
-
-        replay(template, model, servletContext, container, request);
-        env = new Environment(template, model, writer);
-        locale = Locale.ITALY;
-        env.setLocale(locale);
-        setCurrentContainer(env, "myKey");
-        verify(template, model, servlet, servletContext, objectWrapper, container, request);
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.freemarker.context.FreeMarkerUtil
-     * #setCurrentContainer(freemarker.core.Environment, java.lang.String)}.
-     * @throws TemplateModelException If something goes wrong.
-     */
-    @Test(expected = NoSuchContainerException.class)
-    public void testSetCurrentContainerEnvironmentStringException() throws TemplateModelException {
-        HttpServletRequest request = createMock(HttpServletRequest.class);
-        ObjectWrapper objectWrapper = createMock(ObjectWrapper.class);
-        HttpRequestHashModel requestModel = new HttpRequestHashModel(request, objectWrapper);
-        GenericServlet servlet = createMock(GenericServlet.class);
-        ServletContext servletContext = createMock(ServletContext.class);
-        expect(servlet.getServletContext()).andReturn(servletContext).times(2);
-        replay(servlet, objectWrapper);
-        ServletContextHashModel servletContextModel = new ServletContextHashModel(servlet, objectWrapper);
-
-        expect(model.get("Request")).andReturn(requestModel);
-        expect(model.get("Application")).andReturn(servletContextModel);
-        expect(servletContext.getAttribute("myKey")).andReturn(null);
-
-        replay(template, model, servletContext, request);
-        env = new Environment(template, model, writer);
-        locale = Locale.ITALY;
-        env.setLocale(locale);
-        setCurrentContainer(env, "myKey");
-        verify(template, model, servlet, servletContext, objectWrapper, request);
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.freemarker.context.FreeMarkerUtil
-     * #setCurrentContainer(freemarker.core.Environment, org.apache.tiles.TilesContainer)}.
-     * @throws TemplateModelException If something goes wrong.
-     */
-    @Test
-    public void testSetCurrentContainerEnvironmentTilesContainer() throws TemplateModelException {
-        HttpServletRequest request = createMock(HttpServletRequest.class);
-        ObjectWrapper objectWrapper = createMock(ObjectWrapper.class);
-        HttpRequestHashModel requestModel = new HttpRequestHashModel(request, objectWrapper);
-        GenericServlet servlet = createMock(GenericServlet.class);
-        ServletContext servletContext = createMock(ServletContext.class);
-        TilesContainer container = createMock(TilesContainer.class);
-        expect(servlet.getServletContext()).andReturn(servletContext).times(2);
-        replay(servlet, objectWrapper);
-        ServletContextHashModel servletContextModel = new ServletContextHashModel(servlet, objectWrapper);
-
-        expect(model.get("Request")).andReturn(requestModel);
-        request.setAttribute(TilesAccess.CURRENT_CONTAINER_ATTRIBUTE_NAME, container);
-        expect(model.get("Application")).andReturn(servletContextModel);
-
-        replay(template, model, servletContext, container, request);
-        env = new Environment(template, model, writer);
-        locale = Locale.ITALY;
-        env.setLocale(locale);
-        setCurrentContainer(env, container);
-        verify(template, model, servlet, servletContext, objectWrapper, container, request);
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.freemarker.context.FreeMarkerUtil
-     * #getCurrentContainer(freemarker.core.Environment)}.
-     * @throws TemplateModelException If something goes wrong.
-     */
-    @Test
-    public void testGetCurrentContainer() throws TemplateModelException {
-        HttpServletRequest request = createMock(HttpServletRequest.class);
-        ObjectWrapper objectWrapper = createMock(ObjectWrapper.class);
-        HttpRequestHashModel requestModel = new HttpRequestHashModel(request, objectWrapper);
-        GenericServlet servlet = createMock(GenericServlet.class);
-        ServletContext servletContext = createMock(ServletContext.class);
-        TilesContainer container = createMock(TilesContainer.class);
-        expect(servlet.getServletContext()).andReturn(servletContext).times(2);
-        replay(servlet, objectWrapper);
-        ServletContextHashModel servletContextModel = new ServletContextHashModel(servlet, objectWrapper);
-
-        expect(model.get("Request")).andReturn(requestModel);
-        expect(request.getAttribute(TilesAccess.CURRENT_CONTAINER_ATTRIBUTE_NAME)).andReturn(container);
-        expect(model.get("Application")).andReturn(servletContextModel);
-
-        replay(template, model, servletContext, container, request);
-        env = new Environment(template, model, writer);
-        locale = Locale.ITALY;
-        env.setLocale(locale);
-        assertEquals(container, getCurrentContainer(env));
-        verify(template, model, servlet, servletContext, objectWrapper, container, request);
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.freemarker.context.FreeMarkerUtil
      * #setAttribute(freemarker.core.Environment, java.lang.String, java.lang.Object, java.lang.String)}.
      * @throws TemplateModelException If something goes wrong.
      */
@@ -402,36 +256,6 @@
 
     /**
      * Test method for {@link org.apache.tiles.freemarker.context.FreeMarkerUtil
-     * #getComposeStack(freemarker.core.Environment)}.
-     * @throws TemplateModelException If something goes wrong.
-     */
-    @Test
-    public void testGetComposeStack() throws TemplateModelException {
-        HttpServletRequest request = createMock(HttpServletRequest.class);
-        ObjectWrapper objectWrapper = createMock(ObjectWrapper.class);
-        HttpRequestHashModel requestModel = new HttpRequestHashModel(request, objectWrapper);
-        GenericServlet servlet = createMock(GenericServlet.class);
-        TemplateModel wrappedObj = createMock(TemplateModel.class);
-        replay(servlet, objectWrapper);
-
-        expect(model.get("Request")).andReturn(requestModel).times(2);
-        expect(request.getAttribute(COMPOSE_STACK_ATTRIBUTE_NAME)).andReturn(null);
-        request.setAttribute(eq(COMPOSE_STACK_ATTRIBUTE_NAME),
-                isA(ArrayStack.class));
-        ArrayStack<Object> myStack = new ArrayStack<Object>();
-        expect(request.getAttribute(COMPOSE_STACK_ATTRIBUTE_NAME)).andReturn(myStack);
-
-        replay(template, model, wrappedObj, request);
-        env = new Environment(template, model, writer);
-        locale = Locale.ITALY;
-        env.setLocale(locale);
-        assertNotNull(getComposeStack(env));
-        assertEquals(myStack, getComposeStack(env));
-        verify(template, model, servlet, objectWrapper, wrappedObj, request);
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.freemarker.context.FreeMarkerUtil
      * #evaluateBody(freemarker.template.TemplateDirectiveBody)}.
      * @throws IOException If something goes wrong.
      * @throws TemplateException If something goes wrong.

Modified: tiles/sandbox/trunk/tiles3/tiles-freemarker/src/test/java/org/apache/tiles/freemarker/template/AddAttributeFMModelTest.java
URL: http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles3/tiles-freemarker/src/test/java/org/apache/tiles/freemarker/template/AddAttributeFMModelTest.java?rev=883078&r1=883077&r2=883078&view=diff
==============================================================================
--- tiles/sandbox/trunk/tiles3/tiles-freemarker/src/test/java/org/apache/tiles/freemarker/template/AddAttributeFMModelTest.java (original)
+++ tiles/sandbox/trunk/tiles3/tiles-freemarker/src/test/java/org/apache/tiles/freemarker/template/AddAttributeFMModelTest.java Sun Nov 22 13:57:09 2009
@@ -34,10 +34,9 @@
 import javax.servlet.ServletContext;
 import javax.servlet.http.HttpServletRequest;
 
-import org.apache.tiles.TilesContainer;
-import org.apache.tiles.access.TilesAccess;
 import org.apache.tiles.freemarker.context.FreeMarkerTilesRequestContext;
 import org.apache.tiles.request.ApplicationContext;
+import org.apache.tiles.request.util.ApplicationContextUtil;
 import org.apache.tiles.template.AddAttributeModel;
 import org.junit.Before;
 import org.junit.Test;
@@ -114,23 +113,20 @@
         AddAttributeModel tModel = createMock(AddAttributeModel.class);
         AddAttributeFMModel fmModel = new AddAttributeFMModel(tModel);
         HttpServletRequest request = createMock(HttpServletRequest.class);
-        TilesContainer container = createMock(TilesContainer.class);
 
         HttpRequestHashModel requestModel = new HttpRequestHashModel(request, objectWrapper);
         GenericServlet servlet = createMock(GenericServlet.class);
         ServletContext servletContext = createMock(ServletContext.class);
         ApplicationContext applicationContext = createMock(ApplicationContext.class);
 
-        expect(container.getApplicationContext()).andReturn(applicationContext);
+        expect(servletContext.getAttribute(ApplicationContextUtil.APPLICATION_CONTEXT_ATTRIBUTE))
+                .andReturn(applicationContext);
         expect(servlet.getServletContext()).andReturn(servletContext).anyTimes();
-        expect(servletContext.getAttribute(TilesAccess.CONTAINER_ATTRIBUTE)).andReturn(container);
         replay(servlet, servletContext);
         ServletContextHashModel servletContextModel = new ServletContextHashModel(servlet, objectWrapper);
         expect(model.get(FreemarkerServlet.KEY_REQUEST)).andReturn(requestModel).anyTimes();
         expect(model.get(FreemarkerServlet.KEY_APPLICATION)).andReturn(servletContextModel).anyTimes();
         initEnvironment();
-        expect(request.getAttribute(TilesAccess.CURRENT_CONTAINER_ATTRIBUTE_NAME)).andReturn(null);
-        request.setAttribute(TilesAccess.CURRENT_CONTAINER_ATTRIBUTE_NAME, container);
 
         TemplateDirectiveBody body = createMock(TemplateDirectiveBody.class);
         Map<String, Object> params = new HashMap<String, Object>();
@@ -145,10 +141,10 @@
                 eq("myType"), isA(FreeMarkerTilesRequestContext.class));
         body.render(isA(StringWriter.class));
 
-        replay(request, tModel, body, container, applicationContext);
+        replay(request, tModel, body, applicationContext);
         fmModel.execute(env, params, null, body);
         verify(servlet, servletContext, template, model, request, tModel, body,
-                container, applicationContext);
+                applicationContext);
     }
 
     /**

Modified: tiles/sandbox/trunk/tiles3/tiles-freemarker/src/test/java/org/apache/tiles/freemarker/template/AddListAttributeFMModelTest.java
URL: http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles3/tiles-freemarker/src/test/java/org/apache/tiles/freemarker/template/AddListAttributeFMModelTest.java?rev=883078&r1=883077&r2=883078&view=diff
==============================================================================
--- tiles/sandbox/trunk/tiles3/tiles-freemarker/src/test/java/org/apache/tiles/freemarker/template/AddListAttributeFMModelTest.java (original)
+++ tiles/sandbox/trunk/tiles3/tiles-freemarker/src/test/java/org/apache/tiles/freemarker/template/AddListAttributeFMModelTest.java Sun Nov 22 13:57:09 2009
@@ -34,11 +34,10 @@
 import javax.servlet.ServletContext;
 import javax.servlet.http.HttpServletRequest;
 
-import org.apache.tiles.TilesContainer;
-import org.apache.tiles.access.TilesAccess;
 import org.apache.tiles.freemarker.context.FreeMarkerTilesRequestContext;
 import org.apache.tiles.freemarker.io.NullWriter;
 import org.apache.tiles.request.ApplicationContext;
+import org.apache.tiles.request.util.ApplicationContextUtil;
 import org.apache.tiles.template.AddListAttributeModel;
 import org.junit.Before;
 import org.junit.Test;
@@ -118,19 +117,16 @@
         GenericServlet servlet = createMock(GenericServlet.class);
         ServletContext servletContext = createMock(ServletContext.class);
         ApplicationContext applicationContext = createMock(ApplicationContext.class);
-        TilesContainer container = createMock(TilesContainer.class);
 
+        expect(servletContext.getAttribute(ApplicationContextUtil.APPLICATION_CONTEXT_ATTRIBUTE))
+                .andReturn(applicationContext);
         HttpRequestHashModel requestModel = new HttpRequestHashModel(request, objectWrapper);
         expect(model.get(FreemarkerServlet.KEY_REQUEST)).andReturn(requestModel).anyTimes();
-        expect(container.getApplicationContext()).andReturn(applicationContext);
         expect(servlet.getServletContext()).andReturn(servletContext).anyTimes();
-        expect(servletContext.getAttribute(TilesAccess.CONTAINER_ATTRIBUTE)).andReturn(container);
         replay(servlet, servletContext);
         ServletContextHashModel servletContextModel = new ServletContextHashModel(servlet, objectWrapper);
         expect(model.get(FreemarkerServlet.KEY_APPLICATION)).andReturn(servletContextModel).anyTimes();
         initEnvironment();
-        expect(request.getAttribute(TilesAccess.CURRENT_CONTAINER_ATTRIBUTE_NAME)).andReturn(null);
-        request.setAttribute(TilesAccess.CURRENT_CONTAINER_ATTRIBUTE_NAME, container);
 
         TemplateDirectiveBody body = createMock(TemplateDirectiveBody.class);
         Map<String, Object> params = new HashMap<String, Object>();
@@ -140,9 +136,9 @@
         tModel.end(isA(FreeMarkerTilesRequestContext.class));
         body.render(isA(NullWriter.class));
 
-        replay(request, tModel, body, container, applicationContext);
+        replay(request, tModel, body, applicationContext);
         fmModel.execute(env, params, null, body);
-        verify(template, model, request, tModel, body, container, applicationContext);
+        verify(template, model, request, tModel, body, applicationContext, servletContext);
     }
 
     /**

Modified: tiles/sandbox/trunk/tiles3/tiles-freemarker/src/test/java/org/apache/tiles/freemarker/template/DefinitionFMModelTest.java
URL: http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles3/tiles-freemarker/src/test/java/org/apache/tiles/freemarker/template/DefinitionFMModelTest.java?rev=883078&r1=883077&r2=883078&view=diff
==============================================================================
--- tiles/sandbox/trunk/tiles3/tiles-freemarker/src/test/java/org/apache/tiles/freemarker/template/DefinitionFMModelTest.java (original)
+++ tiles/sandbox/trunk/tiles3/tiles-freemarker/src/test/java/org/apache/tiles/freemarker/template/DefinitionFMModelTest.java Sun Nov 22 13:57:09 2009
@@ -34,11 +34,10 @@
 import javax.servlet.ServletContext;
 import javax.servlet.http.HttpServletRequest;
 
-import org.apache.tiles.access.TilesAccess;
 import org.apache.tiles.freemarker.context.FreeMarkerTilesRequestContext;
 import org.apache.tiles.freemarker.io.NullWriter;
-import org.apache.tiles.mgmt.MutableTilesContainer;
 import org.apache.tiles.request.ApplicationContext;
+import org.apache.tiles.request.util.ApplicationContextUtil;
 import org.apache.tiles.template.DefinitionModel;
 import org.junit.Before;
 import org.junit.Test;
@@ -114,20 +113,17 @@
     public void testExecute() throws TemplateException, IOException {
         DefinitionModel tModel = createMock(DefinitionModel.class);
         DefinitionFMModel fmModel = new DefinitionFMModel(tModel);
-        MutableTilesContainer container = createMock(MutableTilesContainer.class);
         ApplicationContext applicationContext = createMock(ApplicationContext.class);
 
-        expect(container.getApplicationContext()).andReturn(applicationContext);
         HttpServletRequest request = createMock(HttpServletRequest.class);
-        expect(request.getAttribute(TilesAccess.CURRENT_CONTAINER_ATTRIBUTE_NAME)).andReturn(null);
-        request.setAttribute(TilesAccess.CURRENT_CONTAINER_ATTRIBUTE_NAME, container);
         replay(request);
         HttpRequestHashModel requestModel = new HttpRequestHashModel(request, objectWrapper);
 
         GenericServlet servlet = createMock(GenericServlet.class);
         ServletContext servletContext = createMock(ServletContext.class);
+        expect(servletContext.getAttribute(ApplicationContextUtil.APPLICATION_CONTEXT_ATTRIBUTE))
+                .andReturn(applicationContext);
         expect(servlet.getServletContext()).andReturn(servletContext).anyTimes();
-        expect(servletContext.getAttribute(TilesAccess.CONTAINER_ATTRIBUTE)).andReturn(container);
         replay(servlet, servletContext);
         ServletContextHashModel servletContextModel = new ServletContextHashModel(servlet, objectWrapper);
         expect(model.get(FreemarkerServlet.KEY_REQUEST)).andReturn(requestModel).anyTimes();
@@ -145,12 +141,13 @@
         tModel.start(eq("myName"), eq("myTemplate"), eq("myRole"),
                 eq("myExtends"), eq("myPreparer"),
                 isA(FreeMarkerTilesRequestContext.class));
-        tModel.end(eq(container), isA(FreeMarkerTilesRequestContext.class));
+        tModel.end(isA(FreeMarkerTilesRequestContext.class));
         body.render(isA(NullWriter.class));
 
-        replay(tModel, body, container, applicationContext);
+        replay(tModel, body, applicationContext);
         fmModel.execute(env, params, null, body);
-        verify(template, model, request, tModel, body, container, servlet, servletContext, applicationContext);
+        verify(template, model, request, tModel, body, servlet, servletContext,
+                applicationContext);
     }
 
     /**

Modified: tiles/sandbox/trunk/tiles3/tiles-freemarker/src/test/java/org/apache/tiles/freemarker/template/GetAsStringFMModelTest.java
URL: http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles3/tiles-freemarker/src/test/java/org/apache/tiles/freemarker/template/GetAsStringFMModelTest.java?rev=883078&r1=883077&r2=883078&view=diff
==============================================================================
--- tiles/sandbox/trunk/tiles3/tiles-freemarker/src/test/java/org/apache/tiles/freemarker/template/GetAsStringFMModelTest.java (original)
+++ tiles/sandbox/trunk/tiles3/tiles-freemarker/src/test/java/org/apache/tiles/freemarker/template/GetAsStringFMModelTest.java Sun Nov 22 13:57:09 2009
@@ -35,11 +35,10 @@
 import javax.servlet.http.HttpServletRequest;
 
 import org.apache.tiles.Attribute;
-import org.apache.tiles.TilesContainer;
-import org.apache.tiles.access.TilesAccess;
 import org.apache.tiles.freemarker.context.FreeMarkerTilesRequestContext;
 import org.apache.tiles.freemarker.io.NullWriter;
 import org.apache.tiles.request.ApplicationContext;
+import org.apache.tiles.request.util.ApplicationContextUtil;
 import org.apache.tiles.template.GetAsStringModel;
 import org.junit.Before;
 import org.junit.Test;
@@ -115,20 +114,17 @@
     public void testExecute() throws TemplateException, IOException {
         GetAsStringModel tModel = createMock(GetAsStringModel.class);
         GetAsStringFMModel fmModel = new GetAsStringFMModel(tModel);
-        TilesContainer container = createMock(TilesContainer.class);
         ApplicationContext applicationContext = createMock(ApplicationContext.class);
 
-        expect(container.getApplicationContext()).andReturn(applicationContext);
         HttpServletRequest request = createMock(HttpServletRequest.class);
-        expect(request.getAttribute(TilesAccess.CURRENT_CONTAINER_ATTRIBUTE_NAME)).andReturn(null);
-        request.setAttribute(TilesAccess.CURRENT_CONTAINER_ATTRIBUTE_NAME, container);
         replay(request);
         HttpRequestHashModel requestModel = new HttpRequestHashModel(request, objectWrapper);
 
         GenericServlet servlet = createMock(GenericServlet.class);
         ServletContext servletContext = createMock(ServletContext.class);
+        expect(servletContext.getAttribute(ApplicationContextUtil.APPLICATION_CONTEXT_ATTRIBUTE))
+                .andReturn(applicationContext);
         expect(servlet.getServletContext()).andReturn(servletContext).times(2);
-        expect(servletContext.getAttribute(TilesAccess.CONTAINER_ATTRIBUTE)).andReturn(container);
         replay(servlet, servletContext);
         ServletContextHashModel servletContextModel = new ServletContextHashModel(servlet, objectWrapper);
         expect(model.get(FreemarkerServlet.KEY_REQUEST)).andReturn(requestModel).anyTimes();
@@ -146,17 +142,17 @@
         params.put("name", objectWrapper.wrap("myName"));
         params.put("value", objectWrapper.wrap(attribute));
 
-        tModel.start(eq(container), eq(false), eq("myPreparer"),
-                eq("myRole"), eq("myDefaultValue"), eq("myDefaultValueRole"),
-                eq("myDefaultValueType"), eq("myName"),
-                eq(attribute), isA(FreeMarkerTilesRequestContext.class));
-        tModel.end(eq(container), eq(writer), eq(false), isA(FreeMarkerTilesRequestContext.class));
+        tModel.start(eq(false), eq("myPreparer"), eq("myRole"),
+                eq("myDefaultValue"), eq("myDefaultValueRole"), eq("myDefaultValueType"),
+                eq("myName"), eq(attribute),
+                isA(FreeMarkerTilesRequestContext.class));
+        tModel.end(eq(false), isA(FreeMarkerTilesRequestContext.class));
         body.render(isA(NullWriter.class));
 
-        replay(tModel, body, container, attribute, applicationContext);
+        replay(tModel, body, attribute, applicationContext);
         fmModel.execute(env, params, null, body);
-        verify(template, model, request, tModel, body, container, servlet,
-                servletContext, attribute, applicationContext);
+        verify(template, model, request, tModel, body, servlet, servletContext,
+                attribute, applicationContext);
     }
 
     /**