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 [2/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...

Modified: tiles/sandbox/trunk/tiles3/tiles-freemarker/src/test/java/org/apache/tiles/freemarker/template/ImportAttributeFMModelTest.java
URL: http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles3/tiles-freemarker/src/test/java/org/apache/tiles/freemarker/template/ImportAttributeFMModelTest.java?rev=883078&r1=883077&r2=883078&view=diff
==============================================================================
--- tiles/sandbox/trunk/tiles3/tiles-freemarker/src/test/java/org/apache/tiles/freemarker/template/ImportAttributeFMModelTest.java (original)
+++ tiles/sandbox/trunk/tiles3/tiles-freemarker/src/test/java/org/apache/tiles/freemarker/template/ImportAttributeFMModelTest.java Sun Nov 22 13:57:09 2009
@@ -25,7 +25,6 @@
 import static org.easymock.classextension.EasyMock.*;
 import static org.junit.Assert.*;
 
-import java.io.IOException;
 import java.io.StringWriter;
 import java.util.HashMap;
 import java.util.Locale;
@@ -37,10 +36,9 @@
 import javax.servlet.http.HttpSession;
 
 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.request.ApplicationContext;
+import org.apache.tiles.request.util.ApplicationContextUtil;
 import org.apache.tiles.template.ImportAttributeModel;
 import org.junit.Before;
 import org.junit.Test;
@@ -95,10 +93,10 @@
     private ObjectWrapper objectWrapper;
 
     /**
-     * @throws java.lang.Exception If something goes wrong.
+     * Sets up the model.
      */
     @Before
-    public void setUp() throws Exception {
+    public void setUp() {
         template = createMock(Template.class);
         model = createMock(TemplateHashModel.class);
         expect(template.getMacros()).andReturn(new HashMap<Object, Object>());
@@ -110,27 +108,23 @@
      * Test method for {@link org.apache.tiles.freemarker.template.ImportAttributeFMModel
      * #execute(freemarker.core.Environment, java.util.Map, freemarker.template.TemplateModel[],
      * freemarker.template.TemplateDirectiveBody)}.
-     * @throws IOException If something goes wrong.
      * @throws TemplateException If something goes wrong.
      */
     @Test
-    public void testExecute() throws TemplateException, IOException {
+    public void testExecute() throws TemplateException {
         ImportAttributeModel tModel = createMock(ImportAttributeModel.class);
         ImportAttributeFMModel fmModel = new ImportAttributeFMModel(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();
@@ -148,35 +142,30 @@
         Map<String, Object> attributes = new HashMap<String, Object>();
         attributes.put("one", "value1");
         attributes.put("two", "value2");
-        expect(tModel.getImportedAttributes(eq(container), eq("myName"), eq("myToName"),
-                eq(false), isA(FreeMarkerTilesRequestContext.class))).andReturn(attributes);
+        expect(tModel.getImportedAttributes(eq("myName"), eq("myToName"), eq(false),
+                isA(FreeMarkerTilesRequestContext.class))).andReturn(attributes);
 
-        replay(tModel, body, container, attribute, applicationContext);
+        replay(tModel, body, attribute, applicationContext);
         fmModel.execute(env, params, null, body);
         assertEquals("value1", DeepUnwrap.unwrap(env.getCurrentNamespace().get("one")));
         assertEquals("value2", DeepUnwrap.unwrap(env.getCurrentNamespace().get("two")));
-        verify(template, model, request, tModel, body, container, servlet,
-                servletContext, attribute, applicationContext);
+        verify(template, model, request, tModel, body, servlet, servletContext,
+                attribute, applicationContext);
     }
 
     /**
      * Test method for {@link org.apache.tiles.freemarker.template.ImportAttributeFMModel
      * #execute(freemarker.core.Environment, java.util.Map, freemarker.template.TemplateModel[],
      * freemarker.template.TemplateDirectiveBody)}.
-     * @throws IOException If something goes wrong.
      * @throws TemplateException If something goes wrong.
      */
     @Test
-    public void testExecuteRequest() throws TemplateException, IOException {
+    public void testExecuteRequest() throws TemplateException {
         ImportAttributeModel tModel = createMock(ImportAttributeModel.class);
         ImportAttributeFMModel fmModel = new ImportAttributeFMModel(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);
         request.setAttribute("one", "value1");
         request.setAttribute("two", "value2");
         replay(request);
@@ -184,8 +173,9 @@
 
         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();
@@ -203,35 +193,30 @@
         Map<String, Object> attributes = new HashMap<String, Object>();
         attributes.put("one", "value1");
         attributes.put("two", "value2");
-        expect(tModel.getImportedAttributes(eq(container), eq("myName"), eq("myToName"),
-                eq(false), isA(FreeMarkerTilesRequestContext.class))).andReturn(attributes);
+        expect(tModel.getImportedAttributes(eq("myName"), eq("myToName"), eq(false),
+                isA(FreeMarkerTilesRequestContext.class))).andReturn(attributes);
 
-        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);
     }
 
     /**
      * Test method for {@link org.apache.tiles.freemarker.template.ImportAttributeFMModel
      * #execute(freemarker.core.Environment, java.util.Map, freemarker.template.TemplateModel[],
      * freemarker.template.TemplateDirectiveBody)}.
-     * @throws IOException If something goes wrong.
      * @throws TemplateException If something goes wrong.
      */
     @Test
-    public void testExecuteSession() throws TemplateException, IOException {
+    public void testExecuteSession() throws TemplateException {
         ImportAttributeModel tModel = createMock(ImportAttributeModel.class);
         ImportAttributeFMModel fmModel = new ImportAttributeFMModel(tModel);
-        TilesContainer container = createMock(TilesContainer.class);
         ApplicationContext applicationContext = createMock(ApplicationContext.class);
 
-        expect(container.getApplicationContext()).andReturn(applicationContext);
         HttpServletRequest request = createMock(HttpServletRequest.class);
         HttpSession session = createMock(HttpSession.class);
         expect(request.getSession()).andReturn(session).times(2);
-        expect(request.getAttribute(TilesAccess.CURRENT_CONTAINER_ATTRIBUTE_NAME)).andReturn(null);
-        request.setAttribute(TilesAccess.CURRENT_CONTAINER_ATTRIBUTE_NAME, container);
         session.setAttribute("one", "value1");
         session.setAttribute("two", "value2");
         replay(request, session);
@@ -239,8 +224,9 @@
 
         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();
@@ -258,40 +244,36 @@
         Map<String, Object> attributes = new HashMap<String, Object>();
         attributes.put("one", "value1");
         attributes.put("two", "value2");
-        expect(tModel.getImportedAttributes(eq(container), eq("myName"), eq("myToName"),
-                eq(false), isA(FreeMarkerTilesRequestContext.class))).andReturn(attributes);
+        expect(tModel.getImportedAttributes(eq("myName"), eq("myToName"), eq(false),
+                isA(FreeMarkerTilesRequestContext.class))).andReturn(attributes);
 
-        replay(tModel, body, container, attribute, applicationContext);
+        replay(tModel, body, attribute, applicationContext);
         fmModel.execute(env, params, null, body);
-        verify(template, model, request, session, tModel, body, container,
-                servlet, servletContext, attribute, applicationContext);
+        verify(template, model, request, session, tModel, body, servlet,
+                servletContext, attribute, applicationContext);
     }
 
     /**
      * Test method for {@link org.apache.tiles.freemarker.template.ImportAttributeFMModel
      * #execute(freemarker.core.Environment, java.util.Map, freemarker.template.TemplateModel[],
      * freemarker.template.TemplateDirectiveBody)}.
-     * @throws IOException If something goes wrong.
      * @throws TemplateException If something goes wrong.
      */
     @Test
-    public void testExecuteApplication() throws TemplateException, IOException {
+    public void testExecuteApplication() throws TemplateException {
         ImportAttributeModel tModel = createMock(ImportAttributeModel.class);
         ImportAttributeFMModel fmModel = new ImportAttributeFMModel(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(servlet.getServletContext()).andReturn(servletContext).anyTimes();
-        expect(servletContext.getAttribute(TilesAccess.CONTAINER_ATTRIBUTE)).andReturn(container);
+        expect(servletContext.getAttribute(ApplicationContextUtil.APPLICATION_CONTEXT_ATTRIBUTE))
+                .andReturn(applicationContext);
         servletContext.setAttribute("one", "value1");
         servletContext.setAttribute("two", "value2");
         replay(servlet, servletContext);
@@ -311,13 +293,13 @@
         Map<String, Object> attributes = new HashMap<String, Object>();
         attributes.put("one", "value1");
         attributes.put("two", "value2");
-        expect(tModel.getImportedAttributes(eq(container), eq("myName"), eq("myToName"),
-                eq(false), isA(FreeMarkerTilesRequestContext.class))).andReturn(attributes);
+        expect(tModel.getImportedAttributes(eq("myName"), eq("myToName"), eq(false),
+                isA(FreeMarkerTilesRequestContext.class))).andReturn(attributes);
 
-        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);
     }
 
     /**

Modified: tiles/sandbox/trunk/tiles3/tiles-freemarker/src/test/java/org/apache/tiles/freemarker/template/InsertAttributeFMModelTest.java
URL: http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles3/tiles-freemarker/src/test/java/org/apache/tiles/freemarker/template/InsertAttributeFMModelTest.java?rev=883078&r1=883077&r2=883078&view=diff
==============================================================================
--- tiles/sandbox/trunk/tiles3/tiles-freemarker/src/test/java/org/apache/tiles/freemarker/template/InsertAttributeFMModelTest.java (original)
+++ tiles/sandbox/trunk/tiles3/tiles-freemarker/src/test/java/org/apache/tiles/freemarker/template/InsertAttributeFMModelTest.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.InsertAttributeModel;
 import org.junit.Before;
 import org.junit.Test;
@@ -115,20 +114,17 @@
     public void testExecute() throws TemplateException, IOException {
         InsertAttributeModel tModel = createMock(InsertAttributeModel.class);
         InsertAttributeFMModel fmModel = new InsertAttributeFMModel(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(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);
     }
 
     /**

Modified: tiles/sandbox/trunk/tiles3/tiles-freemarker/src/test/java/org/apache/tiles/freemarker/template/InsertDefinitionFMModelTest.java
URL: http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles3/tiles-freemarker/src/test/java/org/apache/tiles/freemarker/template/InsertDefinitionFMModelTest.java?rev=883078&r1=883077&r2=883078&view=diff
==============================================================================
--- tiles/sandbox/trunk/tiles3/tiles-freemarker/src/test/java/org/apache/tiles/freemarker/template/InsertDefinitionFMModelTest.java (original)
+++ tiles/sandbox/trunk/tiles3/tiles-freemarker/src/test/java/org/apache/tiles/freemarker/template/InsertDefinitionFMModelTest.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.InsertDefinitionModel;
 import org.junit.Before;
 import org.junit.Test;
@@ -93,10 +92,10 @@
     private ObjectWrapper objectWrapper;
 
     /**
-     * @throws java.lang.Exception If something goes wrong.
+     * Sets up the model.
      */
     @Before
-    public void setUp() throws Exception {
+    public void setUp() {
         template = createMock(Template.class);
         model = createMock(TemplateHashModel.class);
         expect(template.getMacros()).andReturn(new HashMap<Object, Object>());
@@ -115,23 +114,20 @@
     public void testExecute() throws TemplateException, IOException {
         InsertDefinitionModel tModel = createMock(InsertDefinitionModel.class);
         InsertDefinitionFMModel fmModel = new InsertDefinitionFMModel(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).times(2);
+        expect(model.get(FreemarkerServlet.KEY_REQUEST)).andReturn(requestModel);
         expect(model.get(FreemarkerServlet.KEY_APPLICATION)).andReturn(servletContextModel);
         initEnvironment();
 
@@ -145,16 +141,16 @@
         params.put("role", objectWrapper.wrap("myRole"));
         params.put("preparer", objectWrapper.wrap("myPreparer"));
 
-        tModel.start(eq(container), isA(FreeMarkerTilesRequestContext.class));
-        tModel.end(eq(container), eq("myName"), eq("myTemplate"),
-                eq("myTemplateType"), eq("myTemplateExpression"), eq("myRole"),
-                eq("myPreparer"), isA(FreeMarkerTilesRequestContext.class));
+        tModel.start(isA(FreeMarkerTilesRequestContext.class));
+        tModel.end(eq("myName"), eq("myTemplate"), eq("myTemplateType"),
+                eq("myTemplateExpression"), eq("myRole"), eq("myPreparer"),
+                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);
     }
 
     /**

Modified: tiles/sandbox/trunk/tiles3/tiles-freemarker/src/test/java/org/apache/tiles/freemarker/template/InsertTemplateFMModelTest.java
URL: http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles3/tiles-freemarker/src/test/java/org/apache/tiles/freemarker/template/InsertTemplateFMModelTest.java?rev=883078&r1=883077&r2=883078&view=diff
==============================================================================
--- tiles/sandbox/trunk/tiles3/tiles-freemarker/src/test/java/org/apache/tiles/freemarker/template/InsertTemplateFMModelTest.java (original)
+++ tiles/sandbox/trunk/tiles3/tiles-freemarker/src/test/java/org/apache/tiles/freemarker/template/InsertTemplateFMModelTest.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.InsertTemplateModel;
 import org.junit.Before;
 import org.junit.Test;
@@ -63,11 +62,6 @@
 public class InsertTemplateFMModelTest {
 
     /**
-     * The number of times the method is called.
-     */
-    private static final int CALL_COUNT = 3;
-
-    /**
      * The FreeMarker environment.
      */
     private Environment env;
@@ -98,10 +92,10 @@
     private ObjectWrapper objectWrapper;
 
     /**
-     * @throws java.lang.Exception If something goes wrong.
+     * Sets up the model.
      */
     @Before
-    public void setUp() throws Exception {
+    public void setUp() {
         template = createMock(Template.class);
         model = createMock(TemplateHashModel.class);
         expect(template.getMacros()).andReturn(new HashMap<Object, Object>());
@@ -120,27 +114,22 @@
     public void testExecute() throws TemplateException, IOException {
         InsertTemplateModel tModel = createMock(InsertTemplateModel.class);
         InsertTemplateFMModel fmModel = new InsertTemplateFMModel(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);
-        request
-                .setAttribute(
-                        org.apache.tiles.request.servlet.ServletUtil.FORCE_INCLUDE_ATTRIBUTE_NAME,
-                        true);
+        request.setAttribute(org.apache.tiles.request.servlet.ServletUtil
+                .FORCE_INCLUDE_ATTRIBUTE_NAME, true);
         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).times(CALL_COUNT);
+        expect(model.get(FreemarkerServlet.KEY_REQUEST)).andReturn(requestModel).anyTimes();
         expect(model.get(FreemarkerServlet.KEY_APPLICATION)).andReturn(servletContextModel);
         initEnvironment();
 
@@ -153,16 +142,16 @@
         params.put("role", objectWrapper.wrap("myRole"));
         params.put("preparer", objectWrapper.wrap("myPreparer"));
 
-        tModel.start(eq(container), isA(FreeMarkerTilesRequestContext.class));
-        tModel.end(eq(container), eq("myTemplate"), eq("myTemplateType"),
-                eq("myTemplateExpression"), eq("myRole"),
-                eq("myPreparer"), isA(FreeMarkerTilesRequestContext.class));
+        tModel.start(isA(FreeMarkerTilesRequestContext.class));
+        tModel.end(eq("myTemplate"), eq("myTemplateType"), eq("myTemplateExpression"),
+                eq("myRole"), eq("myPreparer"),
+                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);
     }
 
     /**

Modified: tiles/sandbox/trunk/tiles3/tiles-freemarker/src/test/java/org/apache/tiles/freemarker/template/PutAttributeFMModelTest.java
URL: http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles3/tiles-freemarker/src/test/java/org/apache/tiles/freemarker/template/PutAttributeFMModelTest.java?rev=883078&r1=883077&r2=883078&view=diff
==============================================================================
--- tiles/sandbox/trunk/tiles3/tiles-freemarker/src/test/java/org/apache/tiles/freemarker/template/PutAttributeFMModelTest.java (original)
+++ tiles/sandbox/trunk/tiles3/tiles-freemarker/src/test/java/org/apache/tiles/freemarker/template/PutAttributeFMModelTest.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.PutAttributeModel;
 import org.junit.Before;
 import org.junit.Test;
@@ -111,22 +110,19 @@
      */
     @Test
     public void testExecute() throws TemplateException, IOException {
-        TilesContainer container = createMock(TilesContainer.class);
         PutAttributeModel tModel = createMock(PutAttributeModel.class);
         PutAttributeFMModel fmModel = new PutAttributeFMModel(tModel);
         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();
@@ -144,15 +140,13 @@
         params.put("cascade", objectWrapper.wrap(false));
 
         tModel.start(isA(FreeMarkerTilesRequestContext.class));
-        tModel.end(eq(container), eq("myName"), eq(value), eq("myExpression"),
-                eq(""), eq("myRole"), eq("myType"), eq(false),
-                isA(FreeMarkerTilesRequestContext.class));
+        tModel.end(eq("myName"), eq(value), eq("myExpression"), eq(""),
+                eq("myRole"), eq("myType"), eq(false), isA(FreeMarkerTilesRequestContext.class));
         body.render(isA(StringWriter.class));
 
-        replay(tModel, body, container, applicationContext);
+        replay(tModel, body, applicationContext);
         fmModel.execute(env, params, null, body);
-        verify(template, model, request, tModel, body, container,
-                applicationContext);
+        verify(template, model, request, tModel, body, applicationContext);
     }
 
     /**

Modified: tiles/sandbox/trunk/tiles3/tiles-freemarker/src/test/java/org/apache/tiles/freemarker/template/PutListAttributeFMModelTest.java
URL: http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles3/tiles-freemarker/src/test/java/org/apache/tiles/freemarker/template/PutListAttributeFMModelTest.java?rev=883078&r1=883077&r2=883078&view=diff
==============================================================================
--- tiles/sandbox/trunk/tiles3/tiles-freemarker/src/test/java/org/apache/tiles/freemarker/template/PutListAttributeFMModelTest.java (original)
+++ tiles/sandbox/trunk/tiles3/tiles-freemarker/src/test/java/org/apache/tiles/freemarker/template/PutListAttributeFMModelTest.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.PutListAttributeModel;
 import org.junit.Before;
 import org.junit.Test;
@@ -112,22 +111,19 @@
      */
     @Test
     public void testExecute() throws TemplateException, IOException {
-        TilesContainer container = createMock(TilesContainer.class);
         PutListAttributeModel tModel = createMock(PutListAttributeModel.class);
         PutListAttributeFMModel fmModel = new PutListAttributeFMModel(tModel);
         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();
@@ -142,13 +138,12 @@
         params.put("cascade", objectWrapper.wrap(false));
 
         tModel.start(eq("myRole"), eq(false), isA(FreeMarkerTilesRequestContext.class));
-        tModel.end(eq(container), eq("myName"), eq(false), isA(FreeMarkerTilesRequestContext.class));
+        tModel.end(eq("myName"), eq(false), 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,
-                applicationContext);
+        verify(template, model, request, tModel, body, applicationContext);
     }
 
     /**

Modified: tiles/sandbox/trunk/tiles3/tiles-freemarker/src/test/java/org/apache/tiles/freemarker/template/SetCurrentContainerFMModelTest.java
URL: http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles3/tiles-freemarker/src/test/java/org/apache/tiles/freemarker/template/SetCurrentContainerFMModelTest.java?rev=883078&r1=883077&r2=883078&view=diff
==============================================================================
--- tiles/sandbox/trunk/tiles3/tiles-freemarker/src/test/java/org/apache/tiles/freemarker/template/SetCurrentContainerFMModelTest.java (original)
+++ tiles/sandbox/trunk/tiles3/tiles-freemarker/src/test/java/org/apache/tiles/freemarker/template/SetCurrentContainerFMModelTest.java Sun Nov 22 13:57:09 2009
@@ -21,6 +21,7 @@
 
 package org.apache.tiles.freemarker.template;
 
+import static org.easymock.EasyMock.*;
 import static org.easymock.classextension.EasyMock.*;
 
 import java.io.IOException;
@@ -34,8 +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.request.ApplicationContext;
+import org.apache.tiles.request.util.ApplicationContextUtil;
+import org.apache.tiles.template.SetCurrentContainerModel;
 import org.junit.Before;
 import org.junit.Test;
 
@@ -88,10 +91,10 @@
     private ObjectWrapper objectWrapper;
 
     /**
-     * @throws java.lang.Exception If something goes wrong.
+     * Sets up the model.
      */
     @Before
-    public void setUp() throws Exception {
+    public void setUp() {
         template = createMock(Template.class);
         model = createMock(TemplateHashModel.class);
         expect(template.getMacros()).andReturn(new HashMap<Object, Object>());
@@ -107,19 +110,21 @@
      * @throws TemplateException If something goes wrong.
      */
     @Test
-    public void testExecute() throws TemplateException, IOException {
-        SetCurrentContainerFMModel fmModel = new SetCurrentContainerFMModel();
-        TilesContainer container = createMock(TilesContainer.class);
+    public void testExecute() throws TemplateException {
+        SetCurrentContainerModel sccModel = createMock(SetCurrentContainerModel.class);
+        SetCurrentContainerFMModel fmModel = new SetCurrentContainerFMModel(sccModel);
+        ApplicationContext applicationContext = createMock(ApplicationContext.class);
 
         HttpServletRequest request = createMock(HttpServletRequest.class);
-        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(servlet.getServletContext()).andReturn(servletContext).times(2);
-        expect(servletContext.getAttribute("myContainerKey")).andReturn(container);
+        expect(servletContext.getAttribute(ApplicationContextUtil.APPLICATION_CONTEXT_ATTRIBUTE))
+                .andReturn(applicationContext);
+        sccModel.execute(eq("myContainerKey"), isA(FreeMarkerTilesRequestContext.class));
         replay(servlet, servletContext);
         ServletContextHashModel servletContextModel = new ServletContextHashModel(servlet, objectWrapper);
         expect(model.get(FreemarkerServlet.KEY_REQUEST)).andReturn(requestModel);
@@ -131,9 +136,10 @@
         Attribute attribute = createMock(Attribute.class);
         params.put("containerKey", objectWrapper.wrap("myContainerKey"));
 
-        replay(body, container, attribute);
+        replay(body, attribute, sccModel, applicationContext);
         fmModel.execute(env, params, null, body);
-        verify(template, model, request, body, container, servlet, servletContext, attribute);
+        verify(template, model, request, body, servlet, servletContext,
+                attribute, sccModel, applicationContext);
     }
 
     /**

Modified: tiles/sandbox/trunk/tiles3/tiles-jsp/src/main/java/org/apache/tiles/jsp/JspUtil.java
URL: http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles3/tiles-jsp/src/main/java/org/apache/tiles/jsp/JspUtil.java?rev=883078&r1=883077&r2=883078&view=diff
==============================================================================
--- tiles/sandbox/trunk/tiles3/tiles-jsp/src/main/java/org/apache/tiles/jsp/JspUtil.java (original)
+++ tiles/sandbox/trunk/tiles3/tiles-jsp/src/main/java/org/apache/tiles/jsp/JspUtil.java Sun Nov 22 13:57:09 2009
@@ -26,19 +26,11 @@
 import java.util.HashMap;
 import java.util.Map;
 
-import javax.servlet.jsp.JspContext;
 import javax.servlet.jsp.JspException;
 import javax.servlet.jsp.PageContext;
 import javax.servlet.jsp.tagext.JspFragment;
 
-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.jsp.taglib.TilesJspException;
-import org.apache.tiles.servlet.context.ServletUtil;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
 
 /**
  * Utility class for working within a Jsp environment.
@@ -72,148 +64,6 @@
     }
 
     /**
-     * Returns the default Tiles container.
-     *
-     * @param context The page context to use.
-     * @return The default Tiles container.
-     * @since 2.1.2
-     */
-    public static TilesContainer getContainer(JspContext context) {
-        return getContainer(context, TilesAccess.CONTAINER_ATTRIBUTE);
-    }
-
-    /**
-     * Returns a specific Tiles container.
-     *
-     * @param context The page context to use.
-     * @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.1.2
-     */
-    public static TilesContainer getContainer(JspContext context, String key) {
-        if (key == null) {
-            key = TilesAccess.CONTAINER_ATTRIBUTE;
-        }
-        return (TilesContainer) context.getAttribute(key,
-                PageContext.APPLICATION_SCOPE);
-    }
-
-    /**
-     * Configures the default container to be used in the application.
-     *
-     * @param context The page context object to use.
-     * @param container The container object to set.
-     * @since 2.1.2
-     */
-    public static void setContainer(JspContext context,
-            TilesContainer container) {
-        setContainer(context, container, TilesAccess.CONTAINER_ATTRIBUTE);
-    }
-
-    /**
-     * Configures the container to be used in the application.
-     *
-     * @param context The page context object to use.
-     * @param container The container object to set.
-     * @param key The key under which the container will be stored.
-     * @since 2.1.2
-     */
-    public static void setContainer(JspContext context,
-            TilesContainer container, String key) {
-        Logger log = LoggerFactory.getLogger(ServletUtil.class);
-        if (key == null) {
-            key = TilesAccess.CONTAINER_ATTRIBUTE;
-        }
-
-        if (container == null) {
-            if (log.isInfoEnabled()) {
-                log.info("Removing TilesContext for context: " + context.getClass().getName());
-            }
-            context.removeAttribute(key, PageContext.APPLICATION_SCOPE);
-        }
-        if (container != null && log.isInfoEnabled()) {
-            log.info("Publishing TilesContext for context: " + context.getClass().getName());
-        }
-        context.setAttribute(key, container, PageContext.APPLICATION_SCOPE);
-    }
-
-    /**
-     * Sets the current container to use in web pages.
-     *
-     * @param context The page context to use.
-     * @param key The key under which the container is stored.
-     * @since 2.1.0
-     */
-    public static void setCurrentContainer(JspContext context, String key) {
-        TilesContainer container = getContainer(context, key);
-        if (container != null) {
-            context.setAttribute(TilesAccess.CURRENT_CONTAINER_ATTRIBUTE_NAME,
-                    container, PageContext.REQUEST_SCOPE);
-        } else {
-            throw new NoSuchContainerException("The container with the key '"
-                    + key + "' cannot be found");
-        }
-    }
-
-    /**
-     * Sets the current container to use in web pages.
-     *
-     * @param context The page context to use.
-     * @param container The container to use as the current container.
-     * @since 2.1.0
-     */
-    public static void setCurrentContainer(JspContext context,
-            TilesContainer container) {
-        if (container != null) {
-            context.setAttribute(TilesAccess.CURRENT_CONTAINER_ATTRIBUTE_NAME,
-                    container, PageContext.REQUEST_SCOPE);
-        } else {
-            throw new NoSuchContainerException("The container cannot be null");
-        }
-    }
-
-    /**
-     * Returns the current container that has been set, or the default one.
-     *
-     * @param context The page context to use.
-     * @return The current Tiles container to use in web pages.
-     * @since 2.1.0
-     */
-    public static TilesContainer getCurrentContainer(JspContext context) {
-        TilesContainer container = (TilesContainer) context.getAttribute(
-                TilesAccess.CURRENT_CONTAINER_ATTRIBUTE_NAME,
-                PageContext.REQUEST_SCOPE);
-        if (container == null) {
-            container = getContainer(context);
-            context.setAttribute(TilesAccess.CURRENT_CONTAINER_ATTRIBUTE_NAME,
-                    container, PageContext.REQUEST_SCOPE);
-        }
-
-        return container;
-    }
-
-    /**
-     * Returns the compose stack, that is used by the tags to compose
-     * definitions, attributes, etc.
-     *
-     * @param context The page context.
-     * @return The compose stack.
-     * @since 2.2.0
-     */
-    @SuppressWarnings("unchecked")
-    public static ArrayStack<Object> getComposeStack(JspContext context) {
-        ArrayStack<Object> composeStack = (ArrayStack<Object>) context.getAttribute(
-                COMPOSE_STACK_ATTRIBUTE_NAME, PageContext.REQUEST_SCOPE);
-        if (composeStack == null) {
-            composeStack = new ArrayStack<Object>();
-            context.setAttribute(COMPOSE_STACK_ATTRIBUTE_NAME, composeStack,
-                    PageContext.REQUEST_SCOPE);
-        }
-        return composeStack;
-    }
-
-    /**
      * Converts the scope name into its corresponding PageContext constant value.
      *
      * @param scopeName Can be "page", "request", "session", or "application" in any

Modified: tiles/sandbox/trunk/tiles3/tiles-jsp/src/main/java/org/apache/tiles/jsp/taglib/AddAttributeTag.java
URL: http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles3/tiles-jsp/src/main/java/org/apache/tiles/jsp/taglib/AddAttributeTag.java?rev=883078&r1=883077&r2=883078&view=diff
==============================================================================
--- tiles/sandbox/trunk/tiles3/tiles-jsp/src/main/java/org/apache/tiles/jsp/taglib/AddAttributeTag.java (original)
+++ tiles/sandbox/trunk/tiles3/tiles-jsp/src/main/java/org/apache/tiles/jsp/taglib/AddAttributeTag.java Sun Nov 22 13:57:09 2009
@@ -28,7 +28,6 @@
 import javax.servlet.jsp.PageContext;
 import javax.servlet.jsp.tagext.SimpleTagSupport;
 
-import org.apache.tiles.TilesContainer;
 import org.apache.tiles.jsp.JspUtil;
 import org.apache.tiles.jsp.context.JspTilesRequestContext;
 import org.apache.tiles.request.Request;
@@ -202,10 +201,9 @@
     @Override
     public void doTag() throws JspException, IOException {
         JspContext pageContext = getJspContext();
-        TilesContainer currentContainer = JspUtil
-                .getCurrentContainer(pageContext);
         Request request = JspTilesRequestContext.createServletJspRequest(
-                currentContainer.getApplicationContext(),
+                org.apache.tiles.request.jsp.JspUtil
+                        .getApplicationContext(pageContext),
                 (PageContext) pageContext);
         model.start(request);
         String body = JspUtil.evaluateFragmentAsString(getJspBody());

Modified: tiles/sandbox/trunk/tiles3/tiles-jsp/src/main/java/org/apache/tiles/jsp/taglib/AddListAttributeTag.java
URL: http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles3/tiles-jsp/src/main/java/org/apache/tiles/jsp/taglib/AddListAttributeTag.java?rev=883078&r1=883077&r2=883078&view=diff
==============================================================================
--- tiles/sandbox/trunk/tiles3/tiles-jsp/src/main/java/org/apache/tiles/jsp/taglib/AddListAttributeTag.java (original)
+++ tiles/sandbox/trunk/tiles3/tiles-jsp/src/main/java/org/apache/tiles/jsp/taglib/AddListAttributeTag.java Sun Nov 22 13:57:09 2009
@@ -28,7 +28,6 @@
 import javax.servlet.jsp.PageContext;
 import javax.servlet.jsp.tagext.SimpleTagSupport;
 
-import org.apache.tiles.TilesContainer;
 import org.apache.tiles.jsp.JspUtil;
 import org.apache.tiles.jsp.context.JspTilesRequestContext;
 import org.apache.tiles.request.Request;
@@ -122,10 +121,9 @@
     @Override
     public void doTag() throws JspException, IOException {
         JspContext jspContext = getJspContext();
-        TilesContainer currentContainer = JspUtil
-                .getCurrentContainer(jspContext);
         Request request = JspTilesRequestContext.createServletJspRequest(
-                currentContainer.getApplicationContext(),
+                org.apache.tiles.request.jsp.JspUtil
+                        .getApplicationContext(jspContext),
                 (PageContext) jspContext);
         model.start(role, request);
         JspUtil.evaluateFragment(getJspBody());

Modified: tiles/sandbox/trunk/tiles3/tiles-jsp/src/main/java/org/apache/tiles/jsp/taglib/GetAsStringTag.java
URL: http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles3/tiles-jsp/src/main/java/org/apache/tiles/jsp/taglib/GetAsStringTag.java?rev=883078&r1=883077&r2=883078&view=diff
==============================================================================
--- tiles/sandbox/trunk/tiles3/tiles-jsp/src/main/java/org/apache/tiles/jsp/taglib/GetAsStringTag.java (original)
+++ tiles/sandbox/trunk/tiles3/tiles-jsp/src/main/java/org/apache/tiles/jsp/taglib/GetAsStringTag.java Sun Nov 22 13:57:09 2009
@@ -24,12 +24,10 @@
 
 import javax.servlet.jsp.JspContext;
 import javax.servlet.jsp.JspException;
-import javax.servlet.jsp.JspWriter;
 import javax.servlet.jsp.PageContext;
 import javax.servlet.jsp.tagext.SimpleTagSupport;
 
 import org.apache.tiles.Attribute;
-import org.apache.tiles.TilesContainer;
 import org.apache.tiles.jsp.JspUtil;
 import org.apache.tiles.jsp.context.JspTilesRequestContext;
 import org.apache.tiles.request.Request;
@@ -307,17 +305,13 @@
     @Override
     public void doTag() throws JspException, IOException {
         JspContext jspContext = getJspContext();
-        TilesContainer currentContainer = JspUtil
-                .getCurrentContainer(jspContext);
         Request request = JspTilesRequestContext.createServletJspRequest(
-                currentContainer.getApplicationContext(),
+                org.apache.tiles.request.jsp.JspUtil
+                        .getApplicationContext(jspContext),
                 (PageContext) jspContext);
-        model.start(currentContainer, ignore, preparer, role, defaultValue,
-                defaultValueRole, defaultValueType, name, (Attribute) value,
-                request);
-        JspWriter writer = jspContext.getOut();
+        model.start(ignore, preparer, role, defaultValue, defaultValueRole,
+                defaultValueType, name, (Attribute) value, request);
         JspUtil.evaluateFragment(getJspBody());
-        model.end(JspUtil
-                .getContainer(jspContext), writer, ignore, request);
+        model.end(ignore, request);
     }
 }

Modified: tiles/sandbox/trunk/tiles3/tiles-jsp/src/main/java/org/apache/tiles/jsp/taglib/ImportAttributeTag.java
URL: http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles3/tiles-jsp/src/main/java/org/apache/tiles/jsp/taglib/ImportAttributeTag.java?rev=883078&r1=883077&r2=883078&view=diff
==============================================================================
--- tiles/sandbox/trunk/tiles3/tiles-jsp/src/main/java/org/apache/tiles/jsp/taglib/ImportAttributeTag.java (original)
+++ tiles/sandbox/trunk/tiles3/tiles-jsp/src/main/java/org/apache/tiles/jsp/taglib/ImportAttributeTag.java Sun Nov 22 13:57:09 2009
@@ -27,7 +27,6 @@
 import javax.servlet.jsp.PageContext;
 import javax.servlet.jsp.tagext.SimpleTagSupport;
 
-import org.apache.tiles.TilesContainer;
 import org.apache.tiles.jsp.JspUtil;
 import org.apache.tiles.jsp.context.JspTilesRequestContext;
 import org.apache.tiles.request.Request;
@@ -160,13 +159,12 @@
     @Override
     public void doTag() throws JspException {
         JspContext jspContext = getJspContext();
-        TilesContainer currentContainer = JspUtil
-                .getCurrentContainer(jspContext);
         Request request = JspTilesRequestContext.createServletJspRequest(
-                currentContainer.getApplicationContext(),
+                org.apache.tiles.request.jsp.JspUtil
+                        .getApplicationContext(jspContext),
                 (PageContext) jspContext);
         Map<String, Object> attributes = model.getImportedAttributes(
-                currentContainer, name, toName, ignore, request);
+                name, toName, ignore, request);
         int scopeId = JspUtil.getScope(scopeName);
         for (Map.Entry<String, Object> entry : attributes.entrySet()) {
             jspContext.setAttribute(entry.getKey(), entry.getValue(), scopeId);

Modified: tiles/sandbox/trunk/tiles3/tiles-jsp/src/main/java/org/apache/tiles/jsp/taglib/InsertAttributeTag.java
URL: http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles3/tiles-jsp/src/main/java/org/apache/tiles/jsp/taglib/InsertAttributeTag.java?rev=883078&r1=883077&r2=883078&view=diff
==============================================================================
--- tiles/sandbox/trunk/tiles3/tiles-jsp/src/main/java/org/apache/tiles/jsp/taglib/InsertAttributeTag.java (original)
+++ tiles/sandbox/trunk/tiles3/tiles-jsp/src/main/java/org/apache/tiles/jsp/taglib/InsertAttributeTag.java Sun Nov 22 13:57:09 2009
@@ -29,7 +29,6 @@
 import javax.servlet.jsp.tagext.SimpleTagSupport;
 
 import org.apache.tiles.Attribute;
-import org.apache.tiles.TilesContainer;
 import org.apache.tiles.jsp.JspUtil;
 import org.apache.tiles.jsp.context.JspTilesRequestContext;
 import org.apache.tiles.request.Request;
@@ -316,16 +315,14 @@
     @Override
     public void doTag() throws JspException, IOException {
         JspContext jspContext = getJspContext();
-        TilesContainer currentContainer = JspUtil
-                .getCurrentContainer(jspContext);
         Request request = JspTilesRequestContext.createServletJspRequest(
-                currentContainer.getApplicationContext(),
+                org.apache.tiles.request.jsp.JspUtil
+                        .getApplicationContext(jspContext),
                 (PageContext) jspContext);
-        model.start(currentContainer, ignore,
-                preparer, role, defaultValue, defaultValueRole, defaultValueType,
-                name, (Attribute) value, request);
+        model.start(ignore, preparer,
+                role, defaultValue, defaultValueRole, defaultValueType, name,
+                (Attribute) value, request);
         JspUtil.evaluateFragment(getJspBody());
-        model.end(currentContainer, ignore,
-                request);
+        model.end(ignore, request);
     }
 }

Modified: tiles/sandbox/trunk/tiles3/tiles-jsp/src/main/java/org/apache/tiles/jsp/taglib/InsertDefinitionTag.java
URL: http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles3/tiles-jsp/src/main/java/org/apache/tiles/jsp/taglib/InsertDefinitionTag.java?rev=883078&r1=883077&r2=883078&view=diff
==============================================================================
--- tiles/sandbox/trunk/tiles3/tiles-jsp/src/main/java/org/apache/tiles/jsp/taglib/InsertDefinitionTag.java (original)
+++ tiles/sandbox/trunk/tiles3/tiles-jsp/src/main/java/org/apache/tiles/jsp/taglib/InsertDefinitionTag.java Sun Nov 22 13:57:09 2009
@@ -28,7 +28,6 @@
 import javax.servlet.jsp.PageContext;
 import javax.servlet.jsp.tagext.SimpleTagSupport;
 
-import org.apache.tiles.TilesContainer;
 import org.apache.tiles.jsp.JspUtil;
 import org.apache.tiles.jsp.context.JspTilesRequestContext;
 import org.apache.tiles.request.Request;
@@ -285,14 +284,13 @@
     @Override
     public void doTag() throws JspException, IOException {
         JspContext jspContext = getJspContext();
-        TilesContainer currentContainer = JspUtil
-                .getCurrentContainer(jspContext);
         Request request = JspTilesRequestContext.createServletJspRequest(
-                currentContainer.getApplicationContext(),
+                org.apache.tiles.request.jsp.JspUtil
+                        .getApplicationContext(jspContext),
                 (PageContext) jspContext);
-        model.start(currentContainer, request);
+        model.start(request);
         JspUtil.evaluateFragment(getJspBody());
-        model.end(currentContainer, name, template,
-                templateType, templateExpression, role, preparer, request);
+        model.end(name, template, templateType,
+                templateExpression, role, preparer, request);
     }
 }

Modified: tiles/sandbox/trunk/tiles3/tiles-jsp/src/main/java/org/apache/tiles/jsp/taglib/InsertTemplateTag.java
URL: http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles3/tiles-jsp/src/main/java/org/apache/tiles/jsp/taglib/InsertTemplateTag.java?rev=883078&r1=883077&r2=883078&view=diff
==============================================================================
--- tiles/sandbox/trunk/tiles3/tiles-jsp/src/main/java/org/apache/tiles/jsp/taglib/InsertTemplateTag.java (original)
+++ tiles/sandbox/trunk/tiles3/tiles-jsp/src/main/java/org/apache/tiles/jsp/taglib/InsertTemplateTag.java Sun Nov 22 13:57:09 2009
@@ -28,7 +28,6 @@
 import javax.servlet.jsp.PageContext;
 import javax.servlet.jsp.tagext.SimpleTagSupport;
 
-import org.apache.tiles.TilesContainer;
 import org.apache.tiles.jsp.JspUtil;
 import org.apache.tiles.jsp.context.JspTilesRequestContext;
 import org.apache.tiles.request.Request;
@@ -261,14 +260,13 @@
     @Override
     public void doTag() throws JspException, IOException {
         JspContext jspContext = getJspContext();
-        TilesContainer currentContainer = JspUtil
-                .getCurrentContainer(jspContext);
         Request request = JspTilesRequestContext.createServletJspRequest(
-                currentContainer.getApplicationContext(),
+                org.apache.tiles.request.jsp.JspUtil
+                        .getApplicationContext(jspContext),
                 (PageContext) jspContext);
-        model.start(currentContainer, request);
+        model.start(request);
         JspUtil.evaluateFragment(getJspBody());
-        model.end(currentContainer, template, templateType, templateExpression,
-                role, preparer, request);
+        model.end(template, templateType, templateExpression, role,
+                preparer, request);
     }
 }

Modified: tiles/sandbox/trunk/tiles3/tiles-jsp/src/main/java/org/apache/tiles/jsp/taglib/PutAttributeTag.java
URL: http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles3/tiles-jsp/src/main/java/org/apache/tiles/jsp/taglib/PutAttributeTag.java?rev=883078&r1=883077&r2=883078&view=diff
==============================================================================
--- tiles/sandbox/trunk/tiles3/tiles-jsp/src/main/java/org/apache/tiles/jsp/taglib/PutAttributeTag.java (original)
+++ tiles/sandbox/trunk/tiles3/tiles-jsp/src/main/java/org/apache/tiles/jsp/taglib/PutAttributeTag.java Sun Nov 22 13:57:09 2009
@@ -28,7 +28,6 @@
 import javax.servlet.jsp.PageContext;
 import javax.servlet.jsp.tagext.SimpleTagSupport;
 
-import org.apache.tiles.TilesContainer;
 import org.apache.tiles.jsp.JspUtil;
 import org.apache.tiles.jsp.context.JspTilesRequestContext;
 import org.apache.tiles.request.Request;
@@ -269,14 +268,13 @@
     @Override
     public void doTag() throws JspException, IOException {
         JspContext jspContext = getJspContext();
-        TilesContainer currentContainer = JspUtil
-                .getCurrentContainer(jspContext);
         Request request = JspTilesRequestContext.createServletJspRequest(
-                currentContainer.getApplicationContext(),
+                org.apache.tiles.request.jsp.JspUtil
+                        .getApplicationContext(jspContext),
                 (PageContext) jspContext);
         model.start(request);
         String body = JspUtil.evaluateFragmentAsString(getJspBody());
-        model.end(currentContainer, name, value,
-                expression, body, role, type, cascade, request);
+        model.end(name, value, expression,
+                body, role, type, cascade, request);
     }
 }

Modified: tiles/sandbox/trunk/tiles3/tiles-jsp/src/main/java/org/apache/tiles/jsp/taglib/PutListAttributeTag.java
URL: http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles3/tiles-jsp/src/main/java/org/apache/tiles/jsp/taglib/PutListAttributeTag.java?rev=883078&r1=883077&r2=883078&view=diff
==============================================================================
--- tiles/sandbox/trunk/tiles3/tiles-jsp/src/main/java/org/apache/tiles/jsp/taglib/PutListAttributeTag.java (original)
+++ tiles/sandbox/trunk/tiles3/tiles-jsp/src/main/java/org/apache/tiles/jsp/taglib/PutListAttributeTag.java Sun Nov 22 13:57:09 2009
@@ -28,7 +28,6 @@
 import javax.servlet.jsp.PageContext;
 import javax.servlet.jsp.tagext.SimpleTagSupport;
 
-import org.apache.tiles.TilesContainer;
 import org.apache.tiles.jsp.JspUtil;
 import org.apache.tiles.jsp.context.JspTilesRequestContext;
 import org.apache.tiles.request.Request;
@@ -208,14 +207,12 @@
     @Override
     public void doTag() throws JspException, IOException {
         JspContext jspContext = getJspContext();
-        TilesContainer currentContainer = JspUtil
-                .getCurrentContainer(jspContext);
         Request request = JspTilesRequestContext.createServletJspRequest(
-                currentContainer.getApplicationContext(),
+                org.apache.tiles.request.jsp.JspUtil
+                        .getApplicationContext(jspContext),
                 (PageContext) jspContext);
         model.start(role, inherit, request);
         JspUtil.evaluateFragment(getJspBody());
-        model.end(currentContainer, name, cascade,
-                request);
+        model.end(name, cascade, request);
     }
 }

Modified: tiles/sandbox/trunk/tiles3/tiles-jsp/src/main/java/org/apache/tiles/jsp/taglib/UseAttributeTag.java
URL: http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles3/tiles-jsp/src/main/java/org/apache/tiles/jsp/taglib/UseAttributeTag.java?rev=883078&r1=883077&r2=883078&view=diff
==============================================================================
--- tiles/sandbox/trunk/tiles3/tiles-jsp/src/main/java/org/apache/tiles/jsp/taglib/UseAttributeTag.java (original)
+++ tiles/sandbox/trunk/tiles3/tiles-jsp/src/main/java/org/apache/tiles/jsp/taglib/UseAttributeTag.java Sun Nov 22 13:57:09 2009
@@ -31,7 +31,6 @@
 import javax.servlet.jsp.tagext.TagExtraInfo;
 import javax.servlet.jsp.tagext.VariableInfo;
 
-import org.apache.tiles.TilesContainer;
 import org.apache.tiles.jsp.JspUtil;
 import org.apache.tiles.jsp.context.JspTilesRequestContext;
 import org.apache.tiles.request.Request;
@@ -183,13 +182,12 @@
     @Override
     public void doTag() throws JspException {
         JspContext jspContext = getJspContext();
-        TilesContainer currentContainer = JspUtil
-                .getCurrentContainer(jspContext);
         Request request = JspTilesRequestContext.createServletJspRequest(
-                currentContainer.getApplicationContext(),
+                org.apache.tiles.request.jsp.JspUtil
+                        .getApplicationContext(jspContext),
                 (PageContext) jspContext);
         Map<String, Object> attributes = model.getImportedAttributes(
-                currentContainer, name, id, ignore, request);
+                name, id, ignore, request);
         if (!attributes.isEmpty()) {
             int scopeId = JspUtil.getScope(scopeName);
             jspContext.setAttribute(getScriptingVariable(), attributes

Modified: tiles/sandbox/trunk/tiles3/tiles-jsp/src/main/java/org/apache/tiles/jsp/taglib/definition/DefinitionTag.java
URL: http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles3/tiles-jsp/src/main/java/org/apache/tiles/jsp/taglib/definition/DefinitionTag.java?rev=883078&r1=883077&r2=883078&view=diff
==============================================================================
--- tiles/sandbox/trunk/tiles3/tiles-jsp/src/main/java/org/apache/tiles/jsp/taglib/definition/DefinitionTag.java (original)
+++ tiles/sandbox/trunk/tiles3/tiles-jsp/src/main/java/org/apache/tiles/jsp/taglib/definition/DefinitionTag.java Sun Nov 22 13:57:09 2009
@@ -27,10 +27,8 @@
 import javax.servlet.jsp.PageContext;
 import javax.servlet.jsp.tagext.SimpleTagSupport;
 
-import org.apache.tiles.TilesContainer;
 import org.apache.tiles.jsp.JspUtil;
 import org.apache.tiles.jsp.context.JspTilesRequestContext;
-import org.apache.tiles.jsp.taglib.TilesJspException;
 import org.apache.tiles.mgmt.MutableTilesContainer;
 import org.apache.tiles.request.Request;
 import org.apache.tiles.template.DefinitionModel;
@@ -168,19 +166,11 @@
     @Override
     public void doTag() throws JspException, IOException {
         JspContext jspContext = getJspContext();
-        TilesContainer currentContainer = JspUtil
-                .getCurrentContainer(jspContext);
         Request request = JspTilesRequestContext.createServletJspRequest(
-                currentContainer.getApplicationContext(),
+                org.apache.tiles.request.jsp.JspUtil.getApplicationContext(jspContext),
                 (PageContext) jspContext);
-        model.start(name, template, role, extend,
-                preparer, request);
+        model.start(name, template, role, extend, preparer, request);
         JspUtil.evaluateFragment(getJspBody());
-        TilesContainer container = JspUtil.getCurrentContainer(jspContext);
-        if (container instanceof MutableTilesContainer) {
-            model.end((MutableTilesContainer) container, request);
-        } else {
-            throw new TilesJspException("The current container is not mutable");
-        }
+        model.end(request);
     }
 }

Modified: tiles/sandbox/trunk/tiles3/tiles-jsp/src/main/java/org/apache/tiles/jsp/taglib/definition/SetCurrentContainerTag.java
URL: http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles3/tiles-jsp/src/main/java/org/apache/tiles/jsp/taglib/definition/SetCurrentContainerTag.java?rev=883078&r1=883077&r2=883078&view=diff
==============================================================================
--- tiles/sandbox/trunk/tiles3/tiles-jsp/src/main/java/org/apache/tiles/jsp/taglib/definition/SetCurrentContainerTag.java (original)
+++ tiles/sandbox/trunk/tiles3/tiles-jsp/src/main/java/org/apache/tiles/jsp/taglib/definition/SetCurrentContainerTag.java Sun Nov 22 13:57:09 2009
@@ -21,10 +21,14 @@
 
 package org.apache.tiles.jsp.taglib.definition;
 
-import javax.servlet.jsp.JspException;
+import javax.servlet.jsp.JspContext;
+import javax.servlet.jsp.PageContext;
 import javax.servlet.jsp.tagext.SimpleTagSupport;
 
-import org.apache.tiles.jsp.JspUtil;
+import org.apache.tiles.jsp.context.JspTilesRequestContext;
+import org.apache.tiles.request.Request;
+import org.apache.tiles.request.jsp.JspUtil;
+import org.apache.tiles.template.SetCurrentContainerModel;
 
 /**
  * Sets the current container, to be used by Tiles tags.
@@ -34,6 +38,8 @@
  */
 public class SetCurrentContainerTag extends SimpleTagSupport {
 
+    private SetCurrentContainerModel model = new SetCurrentContainerModel();
+
     /**
      * The key under which the container is stored.
      */
@@ -61,7 +67,11 @@
 
     /** {@inheritDoc} */
     @Override
-    public void doTag() throws JspException {
-        JspUtil.setCurrentContainer(getJspContext(), containerKey);
+    public void doTag() {
+        JspContext jspContext = getJspContext();
+        Request request = JspTilesRequestContext.createServletJspRequest(
+                JspUtil.getApplicationContext(jspContext),
+                (PageContext) jspContext);
+        model.execute(containerKey, request);
     }
 }

Modified: tiles/sandbox/trunk/tiles3/tiles-jsp/src/test/java/org/apache/tiles/jsp/JspUtilTest.java
URL: http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles3/tiles-jsp/src/test/java/org/apache/tiles/jsp/JspUtilTest.java?rev=883078&r1=883077&r2=883078&view=diff
==============================================================================
--- tiles/sandbox/trunk/tiles3/tiles-jsp/src/test/java/org/apache/tiles/jsp/JspUtilTest.java (original)
+++ tiles/sandbox/trunk/tiles3/tiles-jsp/src/test/java/org/apache/tiles/jsp/JspUtilTest.java Sun Nov 22 13:57:09 2009
@@ -21,17 +21,11 @@
 
 package org.apache.tiles.jsp;
 
-import javax.servlet.ServletContext;
 import javax.servlet.jsp.PageContext;
 
 import junit.framework.TestCase;
 
-import org.apache.tiles.ArrayStack;
-import org.apache.tiles.TilesContainer;
-import org.apache.tiles.access.TilesAccess;
 import org.apache.tiles.jsp.taglib.TilesJspException;
-import org.apache.tiles.servlet.context.ServletUtil;
-import org.easymock.classextension.EasyMock;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -48,163 +42,6 @@
     private final Logger log = LoggerFactory.getLogger(getClass());
 
     /**
-     * Tests {@link ServletUtil#getContainer(ServletContext)}.
-     */
-    public void testGetContainer() {
-        PageContext context = EasyMock.createMock(PageContext.class);
-        TilesContainer container = EasyMock.createMock(TilesContainer.class);
-        EasyMock.expect(
-                context.getAttribute(TilesAccess.CONTAINER_ATTRIBUTE,
-                        PageContext.APPLICATION_SCOPE)).andReturn(container);
-        EasyMock.replay(context, container);
-        assertEquals(container, JspUtil.getContainer(context));
-        EasyMock.verify(context, container);
-    }
-
-    /**
-     * Tests {@link ServletUtil#getContainer(ServletContext, String)}.
-     */
-    public void testGetContainerWithKey() {
-        PageContext context = EasyMock.createMock(PageContext.class);
-        TilesContainer container = EasyMock.createMock(TilesContainer.class);
-        EasyMock.expect(
-                context.getAttribute("myKey", PageContext.APPLICATION_SCOPE))
-                .andReturn(container);
-        EasyMock.replay(context, container);
-        assertEquals(container, JspUtil.getContainer(context, "myKey"));
-        EasyMock.verify(context, container);
-    }
-
-    /**
-     * Tests {@link ServletUtil#setContainer(ServletContext, TilesContainer)}.
-     */
-    public void testSetContainer() {
-        PageContext context = EasyMock.createMock(PageContext.class);
-        TilesContainer container = EasyMock.createMock(TilesContainer.class);
-        context.setAttribute(TilesAccess.CONTAINER_ATTRIBUTE, container,
-                PageContext.APPLICATION_SCOPE);
-        EasyMock.replay(context, container);
-        JspUtil.setContainer(context, container);
-        EasyMock.verify(context, container);
-    }
-
-    /**
-     * Tests
-     * {@link ServletUtil#setContainer(ServletContext, TilesContainer, String)}.
-     */
-    public void testSetContainerWithKey() {
-        PageContext context = EasyMock.createMock(PageContext.class);
-        TilesContainer container = EasyMock.createMock(TilesContainer.class);
-        context.setAttribute("myKey", container, PageContext.APPLICATION_SCOPE);
-        EasyMock.replay(context, container);
-        JspUtil.setContainer(context, container, "myKey");
-        EasyMock.verify(context, container);
-    }
-
-    /**
-     * Tests
-     * {@link JspUtil#setCurrentContainer(javax.servlet.jsp.JspContext, String)}.
-     */
-    public void testSetCurrentContainer() {
-        PageContext pageContext = EasyMock.createMock(PageContext.class);
-        TilesContainer container = EasyMock.createMock(TilesContainer.class);
-        EasyMock.expect(
-                pageContext
-                        .getAttribute("myKey", PageContext.APPLICATION_SCOPE))
-                .andReturn(container);
-        pageContext.setAttribute(TilesAccess.CURRENT_CONTAINER_ATTRIBUTE_NAME,
-                container, PageContext.REQUEST_SCOPE);
-        EasyMock.expect(pageContext.getAttribute(TilesAccess
-                .CURRENT_CONTAINER_ATTRIBUTE_NAME, PageContext.REQUEST_SCOPE))
-                .andReturn(container);
-        EasyMock.replay(pageContext, container);
-        JspUtil.setCurrentContainer(pageContext, "myKey");
-        assertTrue("The containers are not the same", JspUtil
-                .getCurrentContainer(pageContext) == container);
-        EasyMock.verify(pageContext, container);
-    }
-
-    /**
-     * Tests
-     * {@link JspUtil#setCurrentContainer(javax.servlet.jsp.JspContext, TilesContainer)}.
-     */
-    public void testSetCurrentContainerWithContainer() {
-        PageContext pageContext = EasyMock.createMock(PageContext.class);
-        ServletContext context = EasyMock.createMock(ServletContext.class);
-        TilesContainer container = EasyMock.createMock(TilesContainer.class);
-        pageContext.setAttribute(TilesAccess.CURRENT_CONTAINER_ATTRIBUTE_NAME,
-                container, PageContext.REQUEST_SCOPE);
-        EasyMock.expect(pageContext.getAttribute(TilesAccess
-                .CURRENT_CONTAINER_ATTRIBUTE_NAME, PageContext.REQUEST_SCOPE))
-                .andReturn(container);
-        EasyMock.replay(pageContext, context, container);
-        JspUtil.setCurrentContainer(pageContext, container);
-        assertTrue("The containers are not the same", JspUtil
-                .getCurrentContainer(pageContext) == container);
-        EasyMock.verify(pageContext, context, container);
-    }
-
-    /**
-     * Tests {@link JspUtil#getCurrentContainer(javax.servlet.jsp.JspContext)}.
-     */
-    public void testGetCurrentContainer() {
-        PageContext pageContext = EasyMock.createMock(PageContext.class);
-        TilesContainer defaultContainer = EasyMock.createMock(
-                TilesContainer.class);
-        TilesContainer alternateContainer = EasyMock.createMock(
-                TilesContainer.class);
-        EasyMock.expect(pageContext.getAttribute(TilesAccess
-                .CURRENT_CONTAINER_ATTRIBUTE_NAME, PageContext.REQUEST_SCOPE))
-                .andReturn(null);
-        EasyMock.expect(
-                pageContext.getAttribute(TilesAccess.CONTAINER_ATTRIBUTE,
-                        PageContext.APPLICATION_SCOPE)).andReturn(
-                defaultContainer);
-        pageContext.setAttribute(TilesAccess.CURRENT_CONTAINER_ATTRIBUTE_NAME,
-                defaultContainer, PageContext.REQUEST_SCOPE);
-        pageContext.setAttribute(TilesAccess.CURRENT_CONTAINER_ATTRIBUTE_NAME,
-                alternateContainer, PageContext.REQUEST_SCOPE);
-        EasyMock.expect(pageContext.getAttribute(TilesAccess
-                .CURRENT_CONTAINER_ATTRIBUTE_NAME, PageContext.REQUEST_SCOPE))
-                .andReturn(alternateContainer);
-        EasyMock.replay(pageContext, defaultContainer, alternateContainer);
-        TilesContainer currentContainer = JspUtil.getCurrentContainer(pageContext);
-        assertTrue("The containers are not the same",
-                currentContainer == defaultContainer);
-        JspUtil.setCurrentContainer(pageContext, alternateContainer);
-        currentContainer = JspUtil.getCurrentContainer(pageContext);
-        EasyMock.verify(pageContext, defaultContainer, alternateContainer);
-        assertTrue("The containers are not the same",
-                currentContainer == alternateContainer);
-    }
-
-    /**
-     * Tests {@link JspUtil#getComposeStack(javax.servlet.jsp.JspContext)}.
-     */
-    public void testGetComposeStack() {
-        PageContext pageContext = EasyMock.createMock(PageContext.class);
-
-        ArrayStack<Object> stack = new ArrayStack<Object>();
-
-        EasyMock.expect(
-                pageContext.getAttribute(
-                        "org.apache.tiles.template.COMPOSE_STACK",
-                        PageContext.REQUEST_SCOPE)).andReturn(null);
-        EasyMock.expect(
-                pageContext.getAttribute(
-                        "org.apache.tiles.template.COMPOSE_STACK",
-                        PageContext.REQUEST_SCOPE)).andReturn(stack);
-        pageContext.setAttribute(EasyMock
-                .eq("org.apache.tiles.template.COMPOSE_STACK"), EasyMock
-                .isA(ArrayStack.class), EasyMock.eq(PageContext.REQUEST_SCOPE));
-
-        EasyMock.replay(pageContext);
-        assertTrue(JspUtil.getComposeStack(pageContext).isEmpty());
-        assertEquals(stack, JspUtil.getComposeStack(pageContext));
-        EasyMock.verify(pageContext);
-    }
-
-    /**
      * Tests {@link JspUtil#getScope(String)}.
      * @throws TilesJspException If something goes wrong.
      */

Modified: tiles/sandbox/trunk/tiles3/tiles-servlet/src/main/java/org/apache/tiles/servlet/context/ServletUtil.java
URL: http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles3/tiles-servlet/src/main/java/org/apache/tiles/servlet/context/ServletUtil.java?rev=883078&r1=883077&r2=883078&view=diff
==============================================================================
--- tiles/sandbox/trunk/tiles3/tiles-servlet/src/main/java/org/apache/tiles/servlet/context/ServletUtil.java (original)
+++ tiles/sandbox/trunk/tiles3/tiles-servlet/src/main/java/org/apache/tiles/servlet/context/ServletUtil.java Sun Nov 22 13:57:09 2009
@@ -23,19 +23,13 @@
 
 
 import javax.servlet.ServletContext;
-import javax.servlet.ServletRequest;
 
-import org.apache.tiles.NoSuchContainerException;
-import org.apache.tiles.TilesContainer;
-import org.apache.tiles.access.TilesAccess;
 import org.apache.tiles.request.ApplicationContext;
 import org.apache.tiles.request.Request;
 import org.apache.tiles.request.servlet.NotAServletEnvironmentException;
 import org.apache.tiles.request.servlet.ServletTilesApplicationContext;
 import org.apache.tiles.request.servlet.ServletTilesRequestContext;
 import org.apache.tiles.request.util.TilesRequestContextWrapper;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
 
 
 /**
@@ -53,127 +47,6 @@
     }
 
     /**
-     * Returns the default Tiles container.
-     *
-     * @param context The servlet context to use.
-     * @return The default Tiles container.
-     * @since 2.1.2
-     */
-    public static TilesContainer getContainer(ServletContext context) {
-        return getContainer(context, TilesAccess.CONTAINER_ATTRIBUTE);
-    }
-
-    /**
-     * Returns a specific Tiles container.
-     *
-     * @param context The servlet context to use.
-     * @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.1.2
-     */
-    public static TilesContainer getContainer(ServletContext context, String key) {
-        if (key == null) {
-            key = TilesAccess.CONTAINER_ATTRIBUTE;
-        }
-        return (TilesContainer) context.getAttribute(key);
-    }
-
-    /**
-     * Configures the default container to be used in the application.
-     *
-     * @param context The servlet context object to use.
-     * @param container The container object to set.
-     * @since 2.1.2
-     */
-    public static void setContainer(ServletContext context,
-            TilesContainer container) {
-        setContainer(context, container, TilesAccess.CONTAINER_ATTRIBUTE);
-    }
-
-    /**
-     * Configures the container to be used in the application.
-     *
-     * @param context The servlet context object to use.
-     * @param container The container object to set.
-     * @param key The key under which the container will be stored.
-     * @since 2.1.2
-     */
-    public static void setContainer(ServletContext context,
-            TilesContainer container, String key) {
-        Logger log = LoggerFactory.getLogger(ServletUtil.class);
-        if (key == null) {
-            key = TilesAccess.CONTAINER_ATTRIBUTE;
-        }
-
-        if (container == null) {
-            if (log.isInfoEnabled()) {
-                log.info("Removing TilesContext for context: " + context.getClass().getName());
-            }
-            context.removeAttribute(key);
-        }
-        if (container != null && log.isInfoEnabled()) {
-            log.info("Publishing TilesContext for context: " + context.getClass().getName());
-        }
-        context.setAttribute(key, container);
-    }
-
-    /**
-     * 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.
-     * @since 2.1.0
-     */
-    public static void setCurrentContainer(ServletRequest request,
-            ServletContext context, String key) {
-        TilesContainer container = getContainer(context, key);
-        if (container != null) {
-            request.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 request The request to use.
-     * @param container The container to use as the current container.
-     * @since 2.1.0
-     */
-    public static void setCurrentContainer(ServletRequest request,
-            TilesContainer container) {
-        if (container != null) {
-            request.setAttribute(TilesAccess.CURRENT_CONTAINER_ATTRIBUTE_NAME, container);
-        } else {
-            throw new NoSuchContainerException("The container cannot be null");
-        }
-    }
-
-    /**
-     * Returns the current container that has been set, or the default one.
-     *
-     * @param request The request to use.
-     * @param context The servlet context to use.
-     * @return The current Tiles container to use in web pages.
-     * @since 2.1.0
-     */
-    public static TilesContainer getCurrentContainer(ServletRequest request,
-            ServletContext context) {
-        TilesContainer container = (TilesContainer) request
-                .getAttribute(TilesAccess.CURRENT_CONTAINER_ATTRIBUTE_NAME);
-        if (container == null) {
-            container = getContainer(context);
-            request.setAttribute(TilesAccess.CURRENT_CONTAINER_ATTRIBUTE_NAME, container);
-        }
-
-        return container;
-    }
-
-    /**
      * Opens a TilesRequestContext until it finds a ServletTilesRequestContext.
      *
      * @param request The request to open.

Modified: tiles/sandbox/trunk/tiles3/tiles-servlet/src/main/java/org/apache/tiles/web/startup/AbstractTilesListener.java
URL: http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles3/tiles-servlet/src/main/java/org/apache/tiles/web/startup/AbstractTilesListener.java?rev=883078&r1=883077&r2=883078&view=diff
==============================================================================
--- tiles/sandbox/trunk/tiles3/tiles-servlet/src/main/java/org/apache/tiles/web/startup/AbstractTilesListener.java (original)
+++ tiles/sandbox/trunk/tiles3/tiles-servlet/src/main/java/org/apache/tiles/web/startup/AbstractTilesListener.java Sun Nov 22 13:57:09 2009
@@ -25,8 +25,9 @@
 import javax.servlet.ServletContextListener;
 
 import org.apache.tiles.TilesException;
+import org.apache.tiles.access.TilesAccess;
+import org.apache.tiles.request.ApplicationContext;
 import org.apache.tiles.request.servlet.ServletTilesApplicationContext;
-import org.apache.tiles.servlet.context.ServletUtil;
 import org.apache.tiles.startup.TilesInitializer;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -70,8 +71,10 @@
      */
     public void contextDestroyed(ServletContextEvent event) {
         ServletContext servletContext = event.getServletContext();
+        ApplicationContext applicationContext = org.apache.tiles.request.servlet.ServletUtil
+                .getApplicationContext(servletContext);
         try {
-            ServletUtil.setContainer(servletContext, null);
+            TilesAccess.setContainer(applicationContext, null);
         } catch (TilesException e) {
             log.warn("Unable to remove tiles container from service.", e);
         }

Modified: tiles/sandbox/trunk/tiles3/tiles-servlet/src/main/java/org/apache/tiles/web/util/TilesDecorationFilter.java
URL: http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles3/tiles-servlet/src/main/java/org/apache/tiles/web/util/TilesDecorationFilter.java?rev=883078&r1=883077&r2=883078&view=diff
==============================================================================
--- tiles/sandbox/trunk/tiles3/tiles-servlet/src/main/java/org/apache/tiles/web/util/TilesDecorationFilter.java (original)
+++ tiles/sandbox/trunk/tiles3/tiles-servlet/src/main/java/org/apache/tiles/web/util/TilesDecorationFilter.java Sun Nov 22 13:57:09 2009
@@ -38,10 +38,11 @@
 import org.apache.tiles.Attribute;
 import org.apache.tiles.AttributeContext;
 import org.apache.tiles.TilesContainer;
+import org.apache.tiles.access.TilesAccess;
 import org.apache.tiles.reflect.ClassUtil;
+import org.apache.tiles.request.ApplicationContext;
 import org.apache.tiles.request.Request;
 import org.apache.tiles.request.servlet.ServletTilesRequestContext;
-import org.apache.tiles.servlet.context.ServletUtil;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -231,11 +232,12 @@
             return;
         }
 
-        TilesContainer container = ServletUtil.getContainer(
-                getServletContext(), containerKey);
-        Request request = new ServletTilesRequestContext(container
-                .getApplicationContext(), (HttpServletRequest) req,
-                (HttpServletResponse) res);
+        ApplicationContext applicationContext = org.apache.tiles.request.servlet.ServletUtil
+                .getApplicationContext(getServletContext());
+        Request request = new ServletTilesRequestContext(applicationContext,
+                (HttpServletRequest) req, (HttpServletResponse) res);
+        TilesContainer container = TilesAccess.getContainer(applicationContext,
+                containerKey);
         mutator.mutate(container.getAttributeContext(request), req);
         if (preventDecorationToken != null) {
             req.setAttribute(preventDecorationToken, Boolean.TRUE);