Author: apetrelli
Date: Thu Nov 25 20:07:17 2010
New Revision: 1039162

URL: http://svn.apache.org/viewvc?rev=1039162&view=rev
Log:
TILESSB-11
Completed tests for tiles-autotag-freemarker (and runtime too).

Added:
    
tiles/sandbox/trunk/tiles-autotag/tiles-autotag-freemarker-runtime/src/main/java/org/apache/tiles/autotag/freemarker/runtime/FreemarkerUtil.java
      - copied, changed from r982374, 
tiles/sandbox/trunk/tiles-autotag/tiles-autotag-freemarker-runtime/src/main/java/org/apache/tiles/autotag/freemarker/runtime/FreeMarkerUtil.java
    
tiles/sandbox/trunk/tiles-autotag/tiles-autotag-freemarker-runtime/src/test/java/org/
    
tiles/sandbox/trunk/tiles-autotag/tiles-autotag-freemarker-runtime/src/test/java/org/apache/
    
tiles/sandbox/trunk/tiles-autotag/tiles-autotag-freemarker-runtime/src/test/java/org/apache/tiles/
    
tiles/sandbox/trunk/tiles-autotag/tiles-autotag-freemarker-runtime/src/test/java/org/apache/tiles/autotag/
    
tiles/sandbox/trunk/tiles-autotag/tiles-autotag-freemarker-runtime/src/test/java/org/apache/tiles/autotag/freemarker/
    
tiles/sandbox/trunk/tiles-autotag/tiles-autotag-freemarker-runtime/src/test/java/org/apache/tiles/autotag/freemarker/runtime/
    
tiles/sandbox/trunk/tiles-autotag/tiles-autotag-freemarker-runtime/src/test/java/org/apache/tiles/autotag/freemarker/runtime/BodyFMModelTest.java
   (with props)
    
tiles/sandbox/trunk/tiles-autotag/tiles-autotag-freemarker-runtime/src/test/java/org/apache/tiles/autotag/freemarker/runtime/BodylessFMModelTest.java
   (with props)
    
tiles/sandbox/trunk/tiles-autotag/tiles-autotag-freemarker-runtime/src/test/java/org/apache/tiles/autotag/freemarker/runtime/FreemarkerAutotagExceptionTest.java
   (with props)
    
tiles/sandbox/trunk/tiles-autotag/tiles-autotag-freemarker-runtime/src/test/java/org/apache/tiles/autotag/freemarker/runtime/FreemarkerModelBodyTest.java
   (with props)
    
tiles/sandbox/trunk/tiles-autotag/tiles-autotag-freemarker-runtime/src/test/java/org/apache/tiles/autotag/freemarker/runtime/FreemarkerUtilTest.java
   (with props)
Removed:
    
tiles/sandbox/trunk/tiles-autotag/tiles-autotag-freemarker-runtime/src/main/java/org/apache/tiles/autotag/freemarker/runtime/FreeMarkerUtil.java
Modified:
    
tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/model/TemplateClass.java
    
tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/test/java/org/apache/tiles/autotag/model/TemplateClassTest.java
    tiles/sandbox/trunk/tiles-autotag/tiles-autotag-freemarker-runtime/pom.xml
    
tiles/sandbox/trunk/tiles-autotag/tiles-autotag-freemarker-runtime/src/main/java/org/apache/tiles/autotag/freemarker/runtime/BodyFMModel.java
    
tiles/sandbox/trunk/tiles-autotag/tiles-autotag-freemarker-runtime/src/main/java/org/apache/tiles/autotag/freemarker/runtime/BodylessFMModel.java
    
tiles/sandbox/trunk/tiles-autotag/tiles-autotag-freemarker/src/main/resources/org/apache/tiles/autotag/freemarker/fmModel.vm
    
tiles/sandbox/trunk/tiles-autotag/tiles-autotag-freemarker/src/main/resources/org/apache/tiles/autotag/freemarker/repository.vm
    
tiles/sandbox/trunk/tiles-autotag/tiles-autotag-freemarker/src/test/resources/org/apache/tiles/autotag/freemarker/test/DoStuffFMModel.javat
    
tiles/sandbox/trunk/tiles-autotag/tiles-autotag-freemarker/src/test/resources/org/apache/tiles/autotag/freemarker/test/DoStuffNoBodyFMModel.javat
    
tiles/sandbox/trunk/tiles-autotag/tiles-autotag-freemarker/src/test/resources/org/apache/tiles/autotag/freemarker/test/TldtestFMModelRepository.javat
    tiles/sandbox/trunk/tiles3/src/site/apt/tutorial/extension/template.apt

Modified: 
tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/model/TemplateClass.java
URL: 
http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/model/TemplateClass.java?rev=1039162&r1=1039161&r2=1039162&view=diff
==============================================================================
--- 
tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/model/TemplateClass.java
 (original)
+++ 
tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/model/TemplateClass.java
 Thu Nov 25 20:07:17 2010
@@ -32,6 +32,14 @@ public class TemplateClass {
         return name;
     }
 
+    public String getSimpleName() {
+        int pos = name.lastIndexOf('.');
+        if (pos >= 0) {
+            return name.substring(pos + 1);
+        }
+        return name;
+    }
+
     public String getTagName() {
         return tagName;
     }

Modified: 
tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/test/java/org/apache/tiles/autotag/model/TemplateClassTest.java
URL: 
http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/test/java/org/apache/tiles/autotag/model/TemplateClassTest.java?rev=1039162&r1=1039161&r2=1039162&view=diff
==============================================================================
--- 
tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/test/java/org/apache/tiles/autotag/model/TemplateClassTest.java
 (original)
+++ 
tiles/sandbox/trunk/tiles-autotag/tiles-autotag-core/src/test/java/org/apache/tiles/autotag/model/TemplateClassTest.java
 Thu Nov 25 20:07:17 2010
@@ -51,6 +51,17 @@ public class TemplateClassTest {
     }
 
     /**
+     * Test method for {...@link 
org.apache.tiles.autotag.model.TemplateClass#getSimpleName()}.
+     */
+    @Test
+    public void testGetSimpleName() {
+        TemplateClass templateClass = new TemplateClass("name");
+        assertEquals("name", templateClass.getSimpleName());
+        templateClass = new TemplateClass("org.whatever.Hello");
+        assertEquals("Hello", templateClass.getSimpleName());
+    }
+
+    /**
      * Test method for {...@link 
org.apache.tiles.autotag.model.TemplateClass#setDocumentation(java.lang.String)}.
      */
     @Test

Modified: 
tiles/sandbox/trunk/tiles-autotag/tiles-autotag-freemarker-runtime/pom.xml
URL: 
http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles-autotag/tiles-autotag-freemarker-runtime/pom.xml?rev=1039162&r1=1039161&r2=1039162&view=diff
==============================================================================
--- tiles/sandbox/trunk/tiles-autotag/tiles-autotag-freemarker-runtime/pom.xml 
(original)
+++ tiles/sandbox/trunk/tiles-autotag/tiles-autotag-freemarker-runtime/pom.xml 
Thu Nov 25 20:07:17 2010
@@ -26,5 +26,23 @@
                <artifactId>tiles-request-freemarker</artifactId>
                <version>1.0-SNAPSHOT</version>
        </dependency>
+       <dependency>
+               <groupId>junit</groupId>
+               <artifactId>junit</artifactId>
+               <version>4.8.2</version>
+               <scope>test</scope>
+       </dependency>
+       <dependency>
+               <groupId>org.easymock</groupId>
+               <artifactId>easymock</artifactId>
+               <version>3.0</version>
+               <scope>test</scope>
+       </dependency>
+       <dependency>
+               <groupId>javax.servlet</groupId>
+               <artifactId>servlet-api</artifactId>
+               <version>2.5</version>
+               <scope>test</scope>
+       </dependency>
   </dependencies>
 </project>
\ No newline at end of file

Modified: 
tiles/sandbox/trunk/tiles-autotag/tiles-autotag-freemarker-runtime/src/main/java/org/apache/tiles/autotag/freemarker/runtime/BodyFMModel.java
URL: 
http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles-autotag/tiles-autotag-freemarker-runtime/src/main/java/org/apache/tiles/autotag/freemarker/runtime/BodyFMModel.java?rev=1039162&r1=1039161&r2=1039162&view=diff
==============================================================================
--- 
tiles/sandbox/trunk/tiles-autotag/tiles-autotag-freemarker-runtime/src/main/java/org/apache/tiles/autotag/freemarker/runtime/BodyFMModel.java
 (original)
+++ 
tiles/sandbox/trunk/tiles-autotag/tiles-autotag-freemarker-runtime/src/main/java/org/apache/tiles/autotag/freemarker/runtime/BodyFMModel.java
 Thu Nov 25 20:07:17 2010
@@ -17,7 +17,7 @@ public abstract class BodyFMModel implem
 
     @SuppressWarnings("unchecked")
     @Override
-    public void execute(Environment env, Map params, TemplateModel[] loopVars,
+    public void execute(Environment env, @SuppressWarnings("rawtypes") Map 
params, TemplateModel[] loopVars,
             TemplateDirectiveBody body) throws IOException {
         Request request = FreemarkerRequest.createServletFreemarkerRequest(
                 FreemarkerRequestUtil.getApplicationContext(env), env);

Modified: 
tiles/sandbox/trunk/tiles-autotag/tiles-autotag-freemarker-runtime/src/main/java/org/apache/tiles/autotag/freemarker/runtime/BodylessFMModel.java
URL: 
http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles-autotag/tiles-autotag-freemarker-runtime/src/main/java/org/apache/tiles/autotag/freemarker/runtime/BodylessFMModel.java?rev=1039162&r1=1039161&r2=1039162&view=diff
==============================================================================
--- 
tiles/sandbox/trunk/tiles-autotag/tiles-autotag-freemarker-runtime/src/main/java/org/apache/tiles/autotag/freemarker/runtime/BodylessFMModel.java
 (original)
+++ 
tiles/sandbox/trunk/tiles-autotag/tiles-autotag-freemarker-runtime/src/main/java/org/apache/tiles/autotag/freemarker/runtime/BodylessFMModel.java
 Thu Nov 25 20:07:17 2010
@@ -16,7 +16,7 @@ public abstract class BodylessFMModel im
 
     @SuppressWarnings("unchecked")
     @Override
-    public void execute(Environment env, Map params, TemplateModel[] loopVars,
+    public void execute(Environment env, @SuppressWarnings("rawtypes") Map 
params, TemplateModel[] loopVars,
             TemplateDirectiveBody body) throws IOException {
         Request request = FreemarkerRequest.createServletFreemarkerRequest(
                 FreemarkerRequestUtil.getApplicationContext(env), env);

Copied: 
tiles/sandbox/trunk/tiles-autotag/tiles-autotag-freemarker-runtime/src/main/java/org/apache/tiles/autotag/freemarker/runtime/FreemarkerUtil.java
 (from r982374, 
tiles/sandbox/trunk/tiles-autotag/tiles-autotag-freemarker-runtime/src/main/java/org/apache/tiles/autotag/freemarker/runtime/FreeMarkerUtil.java)
URL: 
http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles-autotag/tiles-autotag-freemarker-runtime/src/main/java/org/apache/tiles/autotag/freemarker/runtime/FreemarkerUtil.java?p2=tiles/sandbox/trunk/tiles-autotag/tiles-autotag-freemarker-runtime/src/main/java/org/apache/tiles/autotag/freemarker/runtime/FreemarkerUtil.java&p1=tiles/sandbox/trunk/tiles-autotag/tiles-autotag-freemarker-runtime/src/main/java/org/apache/tiles/autotag/freemarker/runtime/FreeMarkerUtil.java&r1=982374&r2=1039162&rev=1039162&view=diff
==============================================================================
--- 
tiles/sandbox/trunk/tiles-autotag/tiles-autotag-freemarker-runtime/src/main/java/org/apache/tiles/autotag/freemarker/runtime/FreeMarkerUtil.java
 (original)
+++ 
tiles/sandbox/trunk/tiles-autotag/tiles-autotag-freemarker-runtime/src/main/java/org/apache/tiles/autotag/freemarker/runtime/FreemarkerUtil.java
 Thu Nov 25 20:07:17 2010
@@ -29,14 +29,14 @@ import freemarker.template.utility.DeepU
  * Utilities for FreeMarker usage in Tiles.
  *
  * @version $Rev$ $Date$
- * @since 2.2.0
+ * @since 3.0.0
  */
-public final class FreeMarkerUtil {
+public final class FreemarkerUtil {
 
     /**
      * Private constructor to avoid instantiation.
      */
-    private FreeMarkerUtil() {
+    private FreemarkerUtil() {
     }
 
     /**

Added: 
tiles/sandbox/trunk/tiles-autotag/tiles-autotag-freemarker-runtime/src/test/java/org/apache/tiles/autotag/freemarker/runtime/BodyFMModelTest.java
URL: 
http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles-autotag/tiles-autotag-freemarker-runtime/src/test/java/org/apache/tiles/autotag/freemarker/runtime/BodyFMModelTest.java?rev=1039162&view=auto
==============================================================================
--- 
tiles/sandbox/trunk/tiles-autotag/tiles-autotag-freemarker-runtime/src/test/java/org/apache/tiles/autotag/freemarker/runtime/BodyFMModelTest.java
 (added)
+++ 
tiles/sandbox/trunk/tiles-autotag/tiles-autotag-freemarker-runtime/src/test/java/org/apache/tiles/autotag/freemarker/runtime/BodyFMModelTest.java
 Thu Nov 25 20:07:17 2010
@@ -0,0 +1,99 @@
+/**
+ *
+ */
+package org.apache.tiles.autotag.freemarker.runtime;
+
+import static org.easymock.EasyMock.*;
+
+import java.io.IOException;
+import java.io.Writer;
+import java.util.HashMap;
+import java.util.Map;
+
+import javax.servlet.GenericServlet;
+import javax.servlet.ServletContext;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import org.apache.tiles.request.ApplicationContext;
+import org.apache.tiles.request.freemarker.FreemarkerRequest;
+import org.apache.tiles.request.util.ApplicationAccess;
+import org.junit.Test;
+
+import freemarker.core.Environment;
+import freemarker.core.Macro;
+import freemarker.ext.servlet.FreemarkerServlet;
+import freemarker.ext.servlet.HttpRequestHashModel;
+import freemarker.ext.servlet.ServletContextHashModel;
+import freemarker.template.ObjectWrapper;
+import freemarker.template.Template;
+import freemarker.template.TemplateDirectiveBody;
+import freemarker.template.TemplateHashModel;
+import freemarker.template.TemplateModel;
+import freemarker.template.TemplateModelException;
+
+/**
+ * Tests {...@link BodyFMModel}.
+ *
+ * @version $Rev$ $Date$
+ */
+public class BodyFMModelTest {
+
+    /**
+     * Test method for
+     * {...@link 
org.apache.tiles.autotag.freemarker.runtime.BodyFMModel#execute(freemarker.core.Environment,
 java.util.Map, freemarker.template.TemplateModel[], 
freemarker.template.TemplateDirectiveBody)}
+     * .
+     *
+     * @throws IOException If something goes wrong.
+     * @throws TemplateModelException If something goes wrong.
+     */
+    @Test
+    public void testExecute() throws IOException, TemplateModelException {
+        BodyFMModel model = createMockBuilder(BodyFMModel.class).createMock();
+        @SuppressWarnings("unchecked")
+        Map<String, TemplateModel> params = createMock(Map.class);
+        Template template = createMock(Template.class);
+        TemplateHashModel rootDataModel = createMock(TemplateHashModel.class);
+        Writer out = createMock(Writer.class);
+        TemplateDirectiveBody body = createMock(TemplateDirectiveBody.class);
+        GenericServlet servlet = createMock(GenericServlet.class);
+        ObjectWrapper wrapper = createMock(ObjectWrapper.class);
+        ServletContext servletContext = createMock(ServletContext.class);
+        ApplicationContext applicationContext = 
createMock(ApplicationContext.class);
+        HttpServletRequest httpServletRequest = 
createMock(HttpServletRequest.class);
+        HttpServletResponse httpServletResponse = 
createMock(HttpServletResponse.class);
+
+        expect(template.getMacros()).andReturn(new HashMap<String, Macro>());
+        expect(servlet.getServletContext()).andReturn(servletContext)
+                .anyTimes();
+        expect(
+                servletContext
+                        
.getAttribute(ApplicationAccess.APPLICATION_CONTEXT_ATTRIBUTE))
+                .andReturn(applicationContext);
+
+        replay(servlet, wrapper, servletContext, applicationContext,
+                httpServletRequest, httpServletResponse);
+        ServletContextHashModel servletContextHashModel = new 
ServletContextHashModel(
+                servlet, wrapper);
+        HttpRequestHashModel httpRequestHashModel = new HttpRequestHashModel(
+                httpServletRequest, httpServletResponse, wrapper);
+
+        expect(rootDataModel.get(FreemarkerServlet.KEY_APPLICATION)).andReturn(
+                servletContextHashModel);
+        expect(rootDataModel.get(FreemarkerServlet.KEY_REQUEST)).andReturn(
+                httpRequestHashModel);
+
+        replay(template, rootDataModel, out);
+        Environment env = new Environment(template, rootDataModel, out);
+
+        model.execute(eq(params), isA(FreemarkerRequest.class),
+                isA(FreemarkerModelBody.class));
+
+        replay(model, params, body);
+        model.execute(env, params, new TemplateModel[0], body);
+        verify(model, params, template, rootDataModel, out, servlet, wrapper,
+                servletContext, httpServletRequest, httpServletResponse, body,
+                applicationContext);
+    }
+
+}

Propchange: 
tiles/sandbox/trunk/tiles-autotag/tiles-autotag-freemarker-runtime/src/test/java/org/apache/tiles/autotag/freemarker/runtime/BodyFMModelTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: 
tiles/sandbox/trunk/tiles-autotag/tiles-autotag-freemarker-runtime/src/test/java/org/apache/tiles/autotag/freemarker/runtime/BodyFMModelTest.java
------------------------------------------------------------------------------
    svn:keywords = Date Author Id Revision HeadURL

Added: 
tiles/sandbox/trunk/tiles-autotag/tiles-autotag-freemarker-runtime/src/test/java/org/apache/tiles/autotag/freemarker/runtime/BodylessFMModelTest.java
URL: 
http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles-autotag/tiles-autotag-freemarker-runtime/src/test/java/org/apache/tiles/autotag/freemarker/runtime/BodylessFMModelTest.java?rev=1039162&view=auto
==============================================================================
--- 
tiles/sandbox/trunk/tiles-autotag/tiles-autotag-freemarker-runtime/src/test/java/org/apache/tiles/autotag/freemarker/runtime/BodylessFMModelTest.java
 (added)
+++ 
tiles/sandbox/trunk/tiles-autotag/tiles-autotag-freemarker-runtime/src/test/java/org/apache/tiles/autotag/freemarker/runtime/BodylessFMModelTest.java
 Thu Nov 25 20:07:17 2010
@@ -0,0 +1,96 @@
+/**
+ *
+ */
+package org.apache.tiles.autotag.freemarker.runtime;
+
+import static org.easymock.EasyMock.*;
+
+import java.io.IOException;
+import java.io.Writer;
+import java.util.HashMap;
+import java.util.Map;
+
+import javax.servlet.GenericServlet;
+import javax.servlet.ServletContext;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import org.apache.tiles.request.ApplicationContext;
+import org.apache.tiles.request.freemarker.FreemarkerRequest;
+import org.apache.tiles.request.util.ApplicationAccess;
+import org.junit.Test;
+
+import freemarker.core.Environment;
+import freemarker.core.Macro;
+import freemarker.ext.servlet.FreemarkerServlet;
+import freemarker.ext.servlet.HttpRequestHashModel;
+import freemarker.ext.servlet.ServletContextHashModel;
+import freemarker.template.ObjectWrapper;
+import freemarker.template.Template;
+import freemarker.template.TemplateHashModel;
+import freemarker.template.TemplateModel;
+import freemarker.template.TemplateModelException;
+
+/**
+ * Tests {...@link BodyFMModel}.
+ *
+ * @version $Rev$ $Date$
+ */
+public class BodylessFMModelTest {
+
+    /**
+     * Test method for
+     * {...@link 
org.apache.tiles.autotag.freemarker.runtime.BodylessFMModel#execute(freemarker.core.Environment,
 java.util.Map, freemarker.template.TemplateModel[], 
freemarker.template.TemplateDirectiveBody)}
+     * .
+     *
+     * @throws IOException If something goes wrong.
+     * @throws TemplateModelException If something goes wrong.
+     */
+    @Test
+    public void testExecute() throws IOException, TemplateModelException {
+        BodylessFMModel model = 
createMockBuilder(BodylessFMModel.class).createMock();
+        @SuppressWarnings("unchecked")
+        Map<String, TemplateModel> params = createMock(Map.class);
+        Template template = createMock(Template.class);
+        TemplateHashModel rootDataModel = createMock(TemplateHashModel.class);
+        Writer out = createMock(Writer.class);
+        GenericServlet servlet = createMock(GenericServlet.class);
+        ObjectWrapper wrapper = createMock(ObjectWrapper.class);
+        ServletContext servletContext = createMock(ServletContext.class);
+        ApplicationContext applicationContext = 
createMock(ApplicationContext.class);
+        HttpServletRequest httpServletRequest = 
createMock(HttpServletRequest.class);
+        HttpServletResponse httpServletResponse = 
createMock(HttpServletResponse.class);
+
+        expect(template.getMacros()).andReturn(new HashMap<String, Macro>());
+        expect(servlet.getServletContext()).andReturn(servletContext)
+                .anyTimes();
+        expect(
+                servletContext
+                        
.getAttribute(ApplicationAccess.APPLICATION_CONTEXT_ATTRIBUTE))
+                .andReturn(applicationContext);
+
+        replay(servlet, wrapper, servletContext, applicationContext,
+                httpServletRequest, httpServletResponse);
+        ServletContextHashModel servletContextHashModel = new 
ServletContextHashModel(
+                servlet, wrapper);
+        HttpRequestHashModel httpRequestHashModel = new HttpRequestHashModel(
+                httpServletRequest, httpServletResponse, wrapper);
+
+        expect(rootDataModel.get(FreemarkerServlet.KEY_APPLICATION)).andReturn(
+                servletContextHashModel);
+        expect(rootDataModel.get(FreemarkerServlet.KEY_REQUEST)).andReturn(
+                httpRequestHashModel);
+
+        replay(template, rootDataModel, out);
+        Environment env = new Environment(template, rootDataModel, out);
+
+        model.execute(eq(params), isA(FreemarkerRequest.class));
+
+        replay(model, params);
+        model.execute(env, params, new TemplateModel[0], null);
+        verify(model, params, template, rootDataModel, out, servlet, wrapper,
+                servletContext, httpServletRequest, httpServletResponse,
+                applicationContext);
+    }
+
+}

Propchange: 
tiles/sandbox/trunk/tiles-autotag/tiles-autotag-freemarker-runtime/src/test/java/org/apache/tiles/autotag/freemarker/runtime/BodylessFMModelTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: 
tiles/sandbox/trunk/tiles-autotag/tiles-autotag-freemarker-runtime/src/test/java/org/apache/tiles/autotag/freemarker/runtime/BodylessFMModelTest.java
------------------------------------------------------------------------------
    svn:keywords = Date Author Id Revision HeadURL

Added: 
tiles/sandbox/trunk/tiles-autotag/tiles-autotag-freemarker-runtime/src/test/java/org/apache/tiles/autotag/freemarker/runtime/FreemarkerAutotagExceptionTest.java
URL: 
http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles-autotag/tiles-autotag-freemarker-runtime/src/test/java/org/apache/tiles/autotag/freemarker/runtime/FreemarkerAutotagExceptionTest.java?rev=1039162&view=auto
==============================================================================
--- 
tiles/sandbox/trunk/tiles-autotag/tiles-autotag-freemarker-runtime/src/test/java/org/apache/tiles/autotag/freemarker/runtime/FreemarkerAutotagExceptionTest.java
 (added)
+++ 
tiles/sandbox/trunk/tiles-autotag/tiles-autotag-freemarker-runtime/src/test/java/org/apache/tiles/autotag/freemarker/runtime/FreemarkerAutotagExceptionTest.java
 Thu Nov 25 20:07:17 2010
@@ -0,0 +1,77 @@
+/*
+ * $Id$
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.tiles.autotag.freemarker.runtime;
+
+import static org.junit.Assert.*;
+
+import org.junit.Test;
+
+/**
+ * Tests {...@link FreemarkerAutotagException}.
+ *
+ * @version $Rev$ $Date$
+ */
+public class FreemarkerAutotagExceptionTest {
+
+    /**
+     * Test method for {...@link 
FreemarkerAutotagException#FreemarkerAutotagException()}.
+     */
+    @Test
+    public void testFreemarkerAutotagException() {
+        FreemarkerAutotagException exception = new 
FreemarkerAutotagException();
+        assertNull(exception.getMessage());
+        assertNull(exception.getCause());
+    }
+
+    /**
+     * Test method for {...@link 
FreemarkerAutotagException#FreemarkerAutotagException(java.lang.String)}.
+     */
+    @Test
+    public void testFreemarkerAutotagExceptionString() {
+        FreemarkerAutotagException exception = new 
FreemarkerAutotagException("my message");
+        assertEquals("my message", exception.getMessage());
+        assertNull(exception.getCause());
+    }
+
+    /**
+     * Test method for {...@link 
FreemarkerAutotagException#FreemarkerAutotagException(java.lang.Throwable)}.
+     */
+    @Test
+    public void testFreemarkerAutotagExceptionThrowable() {
+        Throwable cause = new Throwable();
+        FreemarkerAutotagException exception = new 
FreemarkerAutotagException(cause);
+        assertEquals(cause.toString(), exception.getMessage());
+        assertEquals(cause, exception.getCause());
+    }
+
+    /**
+     * Test method for {...@link 
FreemarkerAutotagException#FreemarkerAutotagException(java.lang.String, 
java.lang.Throwable)}.
+     */
+    @Test
+    public void testFreemarkerAutotagExceptionStringThrowable() {
+        Throwable cause = new Throwable();
+        FreemarkerAutotagException exception = new 
FreemarkerAutotagException("my message", cause);
+        assertEquals("my message", exception.getMessage());
+        assertEquals(cause, exception.getCause());
+    }
+
+}

Propchange: 
tiles/sandbox/trunk/tiles-autotag/tiles-autotag-freemarker-runtime/src/test/java/org/apache/tiles/autotag/freemarker/runtime/FreemarkerAutotagExceptionTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: 
tiles/sandbox/trunk/tiles-autotag/tiles-autotag-freemarker-runtime/src/test/java/org/apache/tiles/autotag/freemarker/runtime/FreemarkerAutotagExceptionTest.java
------------------------------------------------------------------------------
    svn:keywords = Date Author Id Revision HeadURL

Added: 
tiles/sandbox/trunk/tiles-autotag/tiles-autotag-freemarker-runtime/src/test/java/org/apache/tiles/autotag/freemarker/runtime/FreemarkerModelBodyTest.java
URL: 
http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles-autotag/tiles-autotag-freemarker-runtime/src/test/java/org/apache/tiles/autotag/freemarker/runtime/FreemarkerModelBodyTest.java?rev=1039162&view=auto
==============================================================================
--- 
tiles/sandbox/trunk/tiles-autotag/tiles-autotag-freemarker-runtime/src/test/java/org/apache/tiles/autotag/freemarker/runtime/FreemarkerModelBodyTest.java
 (added)
+++ 
tiles/sandbox/trunk/tiles-autotag/tiles-autotag-freemarker-runtime/src/test/java/org/apache/tiles/autotag/freemarker/runtime/FreemarkerModelBodyTest.java
 Thu Nov 25 20:07:17 2010
@@ -0,0 +1,77 @@
+/**
+ *
+ */
+package org.apache.tiles.autotag.freemarker.runtime;
+
+import static org.easymock.EasyMock.*;
+
+import java.io.IOException;
+import java.io.Writer;
+
+import org.junit.Test;
+
+import freemarker.template.TemplateDirectiveBody;
+import freemarker.template.TemplateException;
+
+/**
+ * Tests {...@link FreemarkerModelBody}.
+ *
+ * @version $Rev$ $Date$
+ */
+public class FreemarkerModelBodyTest {
+
+    /**
+     * Test method for {...@link 
org.apache.tiles.autotag.freemarker.runtime.FreemarkerModelBody#evaluate(java.io.Writer)}.
+     * @throws IOException If something goes wrong.
+     * @throws TemplateException If something goes wrong.
+     */
+    @Test
+    public void testEvaluateWriter() throws TemplateException, IOException {
+        TemplateDirectiveBody body = createMock(TemplateDirectiveBody.class);
+        Writer writer = createMock(Writer.class);
+
+        body.render(writer);
+
+        replay(body, writer);
+        FreemarkerModelBody modelBody = new FreemarkerModelBody(null, body);
+        modelBody.evaluate(writer);
+        verify(body, writer);
+    }
+
+    /**
+     * Test method for {...@link 
org.apache.tiles.autotag.freemarker.runtime.FreemarkerModelBody#evaluate(java.io.Writer)}.
+     * @throws IOException If something goes wrong.
+     * @throws TemplateException If something goes wrong.
+     */
+    @Test
+    public void testEvaluateWriterNull() throws TemplateException, IOException 
{
+        Writer writer = createMock(Writer.class);
+
+        replay(writer);
+        FreemarkerModelBody modelBody = new FreemarkerModelBody(null, null);
+        modelBody.evaluate(writer);
+        verify(writer);
+    }
+
+    /**
+     * Test method for {...@link 
org.apache.tiles.autotag.freemarker.runtime.FreemarkerModelBody#evaluate(java.io.Writer)}.
+     * @throws IOException If something goes wrong.
+     * @throws TemplateException If something goes wrong.
+     */
+    @Test(expected=IOException.class)
+    public void testEvaluateWriterException() throws TemplateException, 
IOException {
+        TemplateDirectiveBody body = createMock(TemplateDirectiveBody.class);
+        Writer writer = createMock(Writer.class);
+
+        body.render(writer);
+        expectLastCall().andThrow(new TemplateException(null));
+
+        replay(body, writer);
+        try {
+            FreemarkerModelBody modelBody = new FreemarkerModelBody(null, 
body);
+            modelBody.evaluate(writer);
+        } finally {
+            verify(body, writer);
+        }
+    }
+}

Propchange: 
tiles/sandbox/trunk/tiles-autotag/tiles-autotag-freemarker-runtime/src/test/java/org/apache/tiles/autotag/freemarker/runtime/FreemarkerModelBodyTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: 
tiles/sandbox/trunk/tiles-autotag/tiles-autotag-freemarker-runtime/src/test/java/org/apache/tiles/autotag/freemarker/runtime/FreemarkerModelBodyTest.java
------------------------------------------------------------------------------
    svn:keywords = Date Author Id Revision HeadURL

Added: 
tiles/sandbox/trunk/tiles-autotag/tiles-autotag-freemarker-runtime/src/test/java/org/apache/tiles/autotag/freemarker/runtime/FreemarkerUtilTest.java
URL: 
http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles-autotag/tiles-autotag-freemarker-runtime/src/test/java/org/apache/tiles/autotag/freemarker/runtime/FreemarkerUtilTest.java?rev=1039162&view=auto
==============================================================================
--- 
tiles/sandbox/trunk/tiles-autotag/tiles-autotag-freemarker-runtime/src/test/java/org/apache/tiles/autotag/freemarker/runtime/FreemarkerUtilTest.java
 (added)
+++ 
tiles/sandbox/trunk/tiles-autotag/tiles-autotag-freemarker-runtime/src/test/java/org/apache/tiles/autotag/freemarker/runtime/FreemarkerUtilTest.java
 Thu Nov 25 20:07:17 2010
@@ -0,0 +1,94 @@
+/**
+ *
+ */
+package org.apache.tiles.autotag.freemarker.runtime;
+
+import static org.easymock.EasyMock.*;
+import static org.junit.Assert.*;
+
+import java.io.Writer;
+import java.util.HashMap;
+
+import org.junit.Test;
+
+import freemarker.core.Environment;
+import freemarker.core.Macro;
+import freemarker.template.Template;
+import freemarker.template.TemplateHashModel;
+import freemarker.template.TemplateModelException;
+import freemarker.template.TemplateNumberModel;
+
+/**
+ * Tests {...@link FreemarkerUtil}.
+ *
+ * @version $Rev$ $Date$
+ */
+public class FreemarkerUtilTest {
+
+    /**
+     * Test method for {...@link 
org.apache.tiles.autotag.freemarker.runtime.FreemarkerUtil#getAsObject(freemarker.template.TemplateModel,
 java.lang.Object)}.
+     * @throws TemplateModelException If something goes wrong.
+     */
+    @Test
+    public void testGetAsObject() throws TemplateModelException {
+        TemplateNumberModel model = createMock(TemplateNumberModel.class);
+        Template template = createMock(Template.class);
+        TemplateHashModel rootDataModel = createMock(TemplateHashModel.class);
+        Writer out = createMock(Writer.class);
+
+        expect(model.getAsNumber()).andReturn(new Integer(42));
+        expect(template.getMacros()).andReturn(new HashMap<String, Macro>());
+
+        replay(template, rootDataModel, out);
+        new Environment(template, rootDataModel, out);
+
+        replay(model);
+        assertEquals(new Integer(42), FreemarkerUtil.getAsObject(model, new 
Integer(1)));
+        verify(template, rootDataModel, out, model);
+    }
+
+    /**
+     * Test method for {...@link 
org.apache.tiles.autotag.freemarker.runtime.FreemarkerUtil#getAsObject(freemarker.template.TemplateModel,
 java.lang.Object)}.
+     * @throws TemplateModelException If something goes wrong.
+     */
+    @Test
+    public void testGetAsObjectDefault() throws TemplateModelException {
+        Template template = createMock(Template.class);
+        TemplateHashModel rootDataModel = createMock(TemplateHashModel.class);
+        Writer out = createMock(Writer.class);
+
+        expect(template.getMacros()).andReturn(new HashMap<String, Macro>());
+
+        replay(template, rootDataModel, out);
+        new Environment(template, rootDataModel, out);
+
+        assertEquals(new Integer(1), FreemarkerUtil.getAsObject(null, new 
Integer(1)));
+        verify(template, rootDataModel, out);
+    }
+
+    /**
+     * Test method for {...@link 
org.apache.tiles.autotag.freemarker.runtime.FreemarkerUtil#getAsObject(freemarker.template.TemplateModel,
 java.lang.Object)}.
+     * @throws TemplateModelException If something goes wrong.
+     */
+    @Test(expected=FreemarkerAutotagException.class)
+    public void testGetAsObjectException() throws TemplateModelException {
+        TemplateNumberModel model = createMock(TemplateNumberModel.class);
+        Template template = createMock(Template.class);
+        TemplateHashModel rootDataModel = createMock(TemplateHashModel.class);
+        Writer out = createMock(Writer.class);
+
+        expect(model.getAsNumber()).andThrow(new TemplateModelException());
+        expect(template.getMacros()).andReturn(new HashMap<String, Macro>());
+
+        replay(template, rootDataModel, out);
+        new Environment(template, rootDataModel, out);
+
+        replay(model);
+        try {
+            assertEquals(new Integer(42), FreemarkerUtil.getAsObject(model, 
new Integer(1)));
+        } finally {
+            verify(template, rootDataModel, out, model);
+        }
+    }
+
+}

Propchange: 
tiles/sandbox/trunk/tiles-autotag/tiles-autotag-freemarker-runtime/src/test/java/org/apache/tiles/autotag/freemarker/runtime/FreemarkerUtilTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: 
tiles/sandbox/trunk/tiles-autotag/tiles-autotag-freemarker-runtime/src/test/java/org/apache/tiles/autotag/freemarker/runtime/FreemarkerUtilTest.java
------------------------------------------------------------------------------
    svn:keywords = Date Author Id Revision HeadURL

Modified: 
tiles/sandbox/trunk/tiles-autotag/tiles-autotag-freemarker/src/main/resources/org/apache/tiles/autotag/freemarker/fmModel.vm
URL: 
http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles-autotag/tiles-autotag-freemarker/src/main/resources/org/apache/tiles/autotag/freemarker/fmModel.vm?rev=1039162&r1=1039161&r2=1039162&view=diff
==============================================================================
--- 
tiles/sandbox/trunk/tiles-autotag/tiles-autotag-freemarker/src/main/resources/org/apache/tiles/autotag/freemarker/fmModel.vm
 (original)
+++ 
tiles/sandbox/trunk/tiles-autotag/tiles-autotag-freemarker/src/main/resources/org/apache/tiles/autotag/freemarker/fmModel.vm
 Thu Nov 25 20:07:17 2010
@@ -26,7 +26,7 @@ import java.util.Map;
 import org.apache.tiles.autotag.core.runtime.ModelBody;
 #end
 import 
org.apache.tiles.autotag.freemarker.runtime.Body#if(!${clazz.hasBody()})less#{end}FMModel;
-import org.apache.tiles.autotag.freemarker.runtime.FreeMarkerUtil;
+import org.apache.tiles.autotag.freemarker.runtime.FreemarkerUtil;
 import org.apache.tiles.request.Request;
 
 import freemarker.template.TemplateModel;
@@ -58,7 +58,7 @@ public class ${clazz.tagClassPrefix}FMMo
     public void execute(Map<String, TemplateModel> parms, Request 
request#if(${clazz.hasBody()}), ModelBody modelBody#end) throws IOException {
         model.execute(
 #foreach($parameter in ${clazz.parameters})
-            ($stringTool.getClassToCast(${parameter.type})) 
FreeMarkerUtil.getAsObject(parms.get("${parameter.exportedName}"), 
$stringTool.getDefaultValue(${parameter.type}, ${parameter.defaultValue})),
+            ($stringTool.getClassToCast(${parameter.type})) 
FreemarkerUtil.getAsObject(parms.get("${parameter.exportedName}"), 
$stringTool.getDefaultValue(${parameter.type}, ${parameter.defaultValue})),
 #end
                 request#if(${clazz.hasBody()}), modelBody#end
 

Modified: 
tiles/sandbox/trunk/tiles-autotag/tiles-autotag-freemarker/src/main/resources/org/apache/tiles/autotag/freemarker/repository.vm
URL: 
http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles-autotag/tiles-autotag-freemarker/src/main/resources/org/apache/tiles/autotag/freemarker/repository.vm?rev=1039162&r1=1039161&r2=1039162&view=diff
==============================================================================
--- 
tiles/sandbox/trunk/tiles-autotag/tiles-autotag-freemarker/src/main/resources/org/apache/tiles/autotag/freemarker/repository.vm
 (original)
+++ 
tiles/sandbox/trunk/tiles-autotag/tiles-autotag-freemarker/src/main/resources/org/apache/tiles/autotag/freemarker/repository.vm
 Thu Nov 25 20:07:17 2010
@@ -19,10 +19,6 @@ package ${packageName};
  * specific language governing permissions and limitations
  * under the License.
  *#
-#foreach($clazz in ${suite.getTemplateClasses()})
-import ${clazz.name};
-#end
-
 /**
 #foreach($line in $stringTool.splitOnNewlines(${suite.documentation}))
  * $line

Modified: 
tiles/sandbox/trunk/tiles-autotag/tiles-autotag-freemarker/src/test/resources/org/apache/tiles/autotag/freemarker/test/DoStuffFMModel.javat
URL: 
http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles-autotag/tiles-autotag-freemarker/src/test/resources/org/apache/tiles/autotag/freemarker/test/DoStuffFMModel.javat?rev=1039162&r1=1039161&r2=1039162&view=diff
==============================================================================
--- 
tiles/sandbox/trunk/tiles-autotag/tiles-autotag-freemarker/src/test/resources/org/apache/tiles/autotag/freemarker/test/DoStuffFMModel.javat
 (original)
+++ 
tiles/sandbox/trunk/tiles-autotag/tiles-autotag-freemarker/src/test/resources/org/apache/tiles/autotag/freemarker/test/DoStuffFMModel.javat
 Thu Nov 25 20:07:17 2010
@@ -5,7 +5,7 @@ import java.util.Map;
 
 import org.apache.tiles.autotag.core.runtime.ModelBody;
 import org.apache.tiles.autotag.freemarker.runtime.BodyFMModel;
-import org.apache.tiles.autotag.freemarker.runtime.FreeMarkerUtil;
+import org.apache.tiles.autotag.freemarker.runtime.FreemarkerUtil;
 import org.apache.tiles.request.Request;
 
 import freemarker.template.TemplateModel;
@@ -34,9 +34,9 @@ public class DoStuffFMModel extends Body
     @Override
     public void execute(Map<String, TemplateModel> parms, Request request, 
ModelBody modelBody) throws IOException {
         model.execute(
-            (java.lang.String) FreeMarkerUtil.getAsObject(parms.get("one"), 
null),
-            (java.lang.Integer) FreeMarkerUtil.getAsObject(parms.get("two"), 
0),
-            (java.lang.Boolean) FreeMarkerUtil.getAsObject(parms.get("three"), 
false),
+            (java.lang.String) FreemarkerUtil.getAsObject(parms.get("one"), 
null),
+            (java.lang.Integer) FreemarkerUtil.getAsObject(parms.get("two"), 
0),
+            (java.lang.Boolean) FreemarkerUtil.getAsObject(parms.get("three"), 
false),
                 request, modelBody
         );
     }

Modified: 
tiles/sandbox/trunk/tiles-autotag/tiles-autotag-freemarker/src/test/resources/org/apache/tiles/autotag/freemarker/test/DoStuffNoBodyFMModel.javat
URL: 
http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles-autotag/tiles-autotag-freemarker/src/test/resources/org/apache/tiles/autotag/freemarker/test/DoStuffNoBodyFMModel.javat?rev=1039162&r1=1039161&r2=1039162&view=diff
==============================================================================
--- 
tiles/sandbox/trunk/tiles-autotag/tiles-autotag-freemarker/src/test/resources/org/apache/tiles/autotag/freemarker/test/DoStuffNoBodyFMModel.javat
 (original)
+++ 
tiles/sandbox/trunk/tiles-autotag/tiles-autotag-freemarker/src/test/resources/org/apache/tiles/autotag/freemarker/test/DoStuffNoBodyFMModel.javat
 Thu Nov 25 20:07:17 2010
@@ -4,7 +4,7 @@ import java.io.IOException;
 import java.util.Map;
 
 import org.apache.tiles.autotag.freemarker.runtime.BodylessFMModel;
-import org.apache.tiles.autotag.freemarker.runtime.FreeMarkerUtil;
+import org.apache.tiles.autotag.freemarker.runtime.FreemarkerUtil;
 import org.apache.tiles.request.Request;
 
 import freemarker.template.TemplateModel;
@@ -33,9 +33,9 @@ public class DoStuffNoBodyFMModel extend
     @Override
     public void execute(Map<String, TemplateModel> parms, Request request) 
throws IOException {
         model.execute(
-            (java.lang.Double) FreeMarkerUtil.getAsObject(parms.get("one"), 
null),
-            (java.lang.Float) FreeMarkerUtil.getAsObject(parms.get("two"), 
0.0f),
-            (java.util.Date) FreeMarkerUtil.getAsObject(parms.get("three"), 
null),
+            (java.lang.Double) FreemarkerUtil.getAsObject(parms.get("one"), 
null),
+            (java.lang.Float) FreemarkerUtil.getAsObject(parms.get("two"), 
0.0f),
+            (java.util.Date) FreemarkerUtil.getAsObject(parms.get("three"), 
null),
                 request
         );
     }

Modified: 
tiles/sandbox/trunk/tiles-autotag/tiles-autotag-freemarker/src/test/resources/org/apache/tiles/autotag/freemarker/test/TldtestFMModelRepository.javat
URL: 
http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles-autotag/tiles-autotag-freemarker/src/test/resources/org/apache/tiles/autotag/freemarker/test/TldtestFMModelRepository.javat?rev=1039162&r1=1039161&r2=1039162&view=diff
==============================================================================
--- 
tiles/sandbox/trunk/tiles-autotag/tiles-autotag-freemarker/src/test/resources/org/apache/tiles/autotag/freemarker/test/TldtestFMModelRepository.javat
 (original)
+++ 
tiles/sandbox/trunk/tiles-autotag/tiles-autotag-freemarker/src/test/resources/org/apache/tiles/autotag/freemarker/test/TldtestFMModelRepository.javat
 Thu Nov 25 20:07:17 2010
@@ -1,8 +1,5 @@
 package org.apache.tiles.autotag.freemarker.test;
 
-import org.apache.tiles.autotag.template.DoStuffTemplate;
-import org.apache.tiles.autotag.template.DoStuffNoBodyTemplate;
-
 /**
  * Test for TLD docs.
  */

Modified: 
tiles/sandbox/trunk/tiles3/src/site/apt/tutorial/extension/template.apt
URL: 
http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles3/src/site/apt/tutorial/extension/template.apt?rev=1039162&r1=1039161&r2=1039162&view=diff
==============================================================================
--- tiles/sandbox/trunk/tiles3/src/site/apt/tutorial/extension/template.apt 
(original)
+++ tiles/sandbox/trunk/tiles3/src/site/apt/tutorial/extension/template.apt Thu 
Nov 25 20:07:17 2010
@@ -58,30 +58,30 @@ Supporting a template language
 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);
+    TilesContainer container = FreemarkerUtil.getCurrentContainer(env);
     model.start(
-            FreeMarkerUtil.getComposeStack(env),
+            FreemarkerUtil.getComposeStack(env),
             container,
-            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
+            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")),
-            (Attribute) FreeMarkerUtil.getAsObject(parms
+            FreemarkerUtil.getAsString(parms.get("name")),
+            (Attribute) FreemarkerUtil.getAsObject(parms
                     .get("value")), env);
-    FreeMarkerUtil.evaluateBody(body);
-    model.end(FreeMarkerUtil.getComposeStack(env), container,
-            FreeMarkerUtil.getAsBoolean(parms.get("ignore"), false), env);
+    FreemarkerUtil.evaluateBody(body);
+    model.end(FreemarkerUtil.getComposeStack(env), container,
+            FreemarkerUtil.getAsBoolean(parms.get("ignore"), false), env);
 }
 ------------------------
 
   As you can see, the map of parameters at the call of the tag are converted 
into
   parameters of the template model. In JSP, private fields would have become 
such
   parameters.
-  The <<<FreeMarkerUtil.evaluateBody(body)>>> is used to evaluate the body, 
and all
+  The <<<FreemarkerUtil.evaluateBody(body)>>> is used to evaluate the body, 
and all
   of its tags, so the model can start and end correctly.
 
 ** The role of the compose stack


Reply via email to