You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@freemarker.apache.org by dd...@apache.org on 2019/08/04 20:23:49 UTC

[freemarker] branch 3 updated (b829ada -> 763fab1)

This is an automated email from the ASF dual-hosted git repository.

ddekany pushed a change to branch 3
in repository https://gitbox.apache.org/repos/asf/freemarker.git.


    from b829ada  Forward ported from 2.3-gae: BeansWrapper.clearClassIntrospecitonCache was renamed to clearClassIntrospectionCache (note the typo)
     new f5ecf6c  (Organized imports so that they won't cause changes for later commits.)
     new be9c38d  Forward ported from 2.3-gae: ?min and ?max will now immediately stop with error when applied on a right unbounded numerical range (like 1..), as that would run forever anyway.
     new 763fab1  (Small README fix)

The 3 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 README.md                                                |  2 +-
 .../org/freemarker/converter/GenericConverterTest.java   |  4 ++--
 .../impl/Java8DefaultObjectWrapperBridgeMethodsTest.java |  2 +-
 .../org/apache/freemarker/core/AttemptLoggingTest.java   |  4 ++--
 .../apache/freemarker/core/CallerTemplateNameTest.java   |  1 -
 .../org/apache/freemarker/core/ConfigurationTest.java    |  2 +-
 .../org/apache/freemarker/core/CustomSettingTest.java    |  4 ++--
 .../core/EnvironmentGetTemplateVariantsTest.java         |  1 -
 .../core/InterpretAndEvalTemplateNameTest.java           |  1 -
 .../apache/freemarker/core/ListBreakContinueTest.java    |  3 ---
 .../java/org/apache/freemarker/core/MinMaxBITest.java    | 11 +++++++++--
 .../apache/freemarker/core/MiscErrorMessagesTest.java    |  1 -
 .../core/NewBiObjectWrapperRestrictionTest.java          |  3 +--
 .../freemarker/core/StringLiteralInterpolationTest.java  |  1 -
 .../core/TemplateNameSpecialVariablesTest.java           |  1 -
 .../org/apache/freemarker/core/VersionEditorTest.java    |  3 +--
 .../core/templatesuite/CoreTemplateTestSuite.java        |  2 +-
 .../core/templatesuite/models/MultiModel2.java           |  2 +-
 .../core/userpkg/NamedVarargsOnlyDirective.java          |  2 +-
 .../core/userpkg/PositionalVarargsOnlyDirective.java     |  2 +-
 .../freemarker/core/userpkg/TwoNamedParamsDirective.java |  2 +-
 .../core/userpkg/TwoNestedContentParamsDirective.java    |  2 +-
 .../core/userpkg/TwoPositionalParamsDirective.java       |  2 +-
 .../freemarker/core/userpkg/UpperCaseDirective.java      |  2 +-
 .../freemarker/core/util/StringToIndexMapTest.java       | 11 +++--------
 .../org/apache/freemarker/core/util/StringUtilsTest.java |  2 +-
 .../freemarker/core/util/TemplateLanguageUtilsTest.java  |  2 +-
 .../core/valueformat/impl/ExtendedDecimalFormatTest.java |  1 -
 .../java/org/apache/freemarker/core/ASTDirRecurse.java   |  2 +-
 .../java/org/apache/freemarker/core/ASTDirVisit.java     |  2 +-
 .../org/apache/freemarker/core/ASTExpDynamicKeyName.java |  2 +-
 .../org/apache/freemarker/core/BuiltInsForSequences.java | 16 +++++++++++-----
 .../org/apache/freemarker/core/ParsingConfiguration.java |  1 -
 .../freemarker/core/UnsupportedFM2TemplateLanguage.java  |  1 -
 .../apache/freemarker/core/debug/RmiDebugModelImpl.java  |  4 ++--
 .../core/outputformat/impl/XHTMLOutputFormat.java        |  1 -
 .../core/valueformat/TemplateDateFormatFactory.java      |  4 ++--
 .../core/valueformat/TemplateNumberFormatFactory.java    |  4 ++--
 freemarker-manual/src/main/docgen/en_US/book.xml         |  7 +------
 .../manual/examples/AbsoluteTemplateNameBIExample.java   |  3 ---
 .../freemarker/manual/examples/AutoEscapingExample.java  |  2 --
 .../apache/freemarker/servlet/jsp/TLDParsingTest.java    |  2 --
 .../apache/freemarker/spring/VersionPropertyTest.java    |  2 +-
 .../freemarker/spring/model/BindDirectiveTest.java       |  8 +++-----
 .../freemarker/spring/model/BindErrorsDirectiveTest.java | 10 ++++------
 .../apache/freemarker/spring/model/EvalFunctionTest.java | 10 ++++------
 .../freemarker/spring/model/MessageFunctionTest.java     |  8 +++-----
 .../freemarker/spring/model/NestedPathDirectiveTest.java |  8 +++-----
 .../freemarker/spring/model/ThemeFunctionTest.java       |  8 +++-----
 .../freemarker/spring/model/TransformFunctionTest.java   |  6 +++---
 .../apache/freemarker/spring/model/UrlFunctionTest.java  | 10 ++++------
 .../model/form/ButtonTemplateDirectiveModelTest.java     | 10 ++++------
 .../model/form/CheckboxTemplateDirectiveModelTest.java   | 10 ++++------
 .../model/form/CheckboxesTemplateDirectiveModelTest.java | 10 ++++------
 .../model/form/ErrorsTemplateDirectiveModelTest.java     | 10 ++++------
 .../model/form/FormTemplateDirectiveModelTest.java       | 10 ++++------
 .../form/HiddenInputTemplateDirectiveModelTest.java      | 10 ++++------
 .../model/form/InputTemplateDirectiveModelTest.java      | 10 ++++------
 .../model/form/LabelTemplateDirectiveModelTest.java      | 10 ++++------
 .../form/PasswordInputTemplateDirectiveModelTest.java    | 10 ++++------
 .../form/RadioButtonTemplateDirectiveModelTest.java      | 10 ++++------
 .../form/RadioButtonsTemplateDirectiveModelTest.java     | 10 ++++------
 .../model/form/SelectTemplateDirectiveModelTest.java     | 10 ++++------
 .../model/form/TextareaTemplateDirectiveModelTest.java   | 10 ++++------
 .../spring/example/mvc/users/users-mvc-context.xml       |  4 +---
 .../freemarker/test/templateutil/NoOutputDirective.java  |  2 +-
 66 files changed, 136 insertions(+), 197 deletions(-)


[freemarker] 03/03: (Small README fix)

Posted by dd...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

ddekany pushed a commit to branch 3
in repository https://gitbox.apache.org/repos/asf/freemarker.git

commit 763fab14a692ed0b8a916aac188bf8c1bd30ec20
Author: ddekany <dd...@apache.org>
AuthorDate: Sun Aug 4 22:22:56 2019 +0200

    (Small README fix)
---
 README.md | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/README.md b/README.md
index 1433aa1..17d727e 100644
--- a/README.md
+++ b/README.md
@@ -239,7 +239,7 @@ Last tested on IntelliJ IDEA Community 2017.1.5.
   - You may do "Build"/"Build project" (Ctrl+F9) to see if everything compiles now.
   - You may run the `test` task of the root project with Gradle to see that everything works as
     expected. To do that from IntelliJ, create a run configuration:
-    "Run" \ "Run Configurations..." \ "+" \ "Gradle" then:
+    "Run" \ "Edit Configurations..." \ "+" \ "Gradle" then:
     - Set "Name" to `All tests` for example
     - Set "Gradle project" to the root project (`freemarker`)
     - Set "Tasks" to `test`


[freemarker] 02/03: Forward ported from 2.3-gae: ?min and ?max will now immediately stop with error when applied on a right unbounded numerical range (like 1..), as that would run forever anyway.

Posted by dd...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

ddekany pushed a commit to branch 3
in repository https://gitbox.apache.org/repos/asf/freemarker.git

commit be9c38dfb172eeeb197541322460ebda11908859
Author: ddekany <dd...@apache.org>
AuthorDate: Sun Aug 4 22:22:17 2019 +0200

    Forward ported from 2.3-gae: ?min and ?max will now immediately stop with error when applied on a right unbounded numerical range (like 1..), as that would run forever anyway.
---
 .../java/org/apache/freemarker/core/MinMaxBITest.java    | 10 +++++++++-
 .../org/apache/freemarker/core/BuiltInsForSequences.java | 16 +++++++++++-----
 2 files changed, 20 insertions(+), 6 deletions(-)

diff --git a/freemarker-core-test/src/test/java/org/apache/freemarker/core/MinMaxBITest.java b/freemarker-core-test/src/test/java/org/apache/freemarker/core/MinMaxBITest.java
index ef948e2..f62eead 100644
--- a/freemarker-core-test/src/test/java/org/apache/freemarker/core/MinMaxBITest.java
+++ b/freemarker-core-test/src/test/java/org/apache/freemarker/core/MinMaxBITest.java
@@ -66,7 +66,15 @@ public class MinMaxBITest extends TemplateTest {
             }
         }
     }
-    
+
+    @Test
+    public void rightUnboundedNumericalRangeTest() throws Exception {
+        assertErrorContains("${(1..)?min}", "right-unbounded", "infinite");
+        assertErrorContains("${(1..)?max}", "right-unbounded", "infinite");
+        assertOutput("${(1..2)?min}", "1");
+        assertOutput("${(1..2)?max}", "2");
+    }
+
     private class InputMinMax {
         private final List<?> input;
         private final String minExpected;
diff --git a/freemarker-core/src/main/java/org/apache/freemarker/core/BuiltInsForSequences.java b/freemarker-core/src/main/java/org/apache/freemarker/core/BuiltInsForSequences.java
index 5df62f1..e22d2e1 100644
--- a/freemarker-core/src/main/java/org/apache/freemarker/core/BuiltInsForSequences.java
+++ b/freemarker-core/src/main/java/org/apache/freemarker/core/BuiltInsForSequences.java
@@ -238,10 +238,7 @@ class BuiltInsForSequences {
 
         @Override
         TemplateModel calculateResult(TemplateIterableModel model, Environment env) throws TemplateException {
-            if (model instanceof RightUnboundedRangeModel) {
-                throw new TemplateException(
-                        "The sequence to join was right-unbounded numerical range, thus it's infinitely long.");
-            }
+            checkNotRightUnboundedNumericalRange(model);
             return new BIMethodForIterable(model);
         }
    
@@ -798,6 +795,14 @@ class BuiltInsForSequences {
         
     }
 
+    private static void checkNotRightUnboundedNumericalRange(TemplateModel model) throws TemplateException {
+        if (model instanceof RightUnboundedRangeModel) {
+            throw new TemplateException(
+                    "The input sequence is a right-unbounded numerical range, thus, it's infinitely long, and can't " +
+                    "processed with this built-in.");
+        }
+    }
+
     private static boolean modelsEqual(
             int seqItemIndex, TemplateModel seqItem, TemplateModel searchedItem, Environment env)
             throws TemplateException {
@@ -845,7 +850,8 @@ class BuiltInsForSequences {
 
         @Override
         TemplateModel calculateResult(TemplateIterableModel model, Environment env) throws TemplateException {
-            // TODO Auto-generated method stub
+            checkNotRightUnboundedNumericalRange(model);
+
             TemplateModel best = null;
             TemplateModelIterator iter = model.iterator();
             while (iter.hasNext()) {


[freemarker] 01/03: (Organized imports so that they won't cause changes for later commits.)

Posted by dd...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

ddekany pushed a commit to branch 3
in repository https://gitbox.apache.org/repos/asf/freemarker.git

commit f5ecf6ca98bc6951527f438ac6f027b1897b6272
Author: ddekany <dd...@apache.org>
AuthorDate: Sun Aug 4 22:13:02 2019 +0200

    (Organized imports so that they won't cause changes for later commits.)
---
 .../java/org/freemarker/converter/GenericConverterTest.java   |  4 ++--
 .../impl/Java8DefaultObjectWrapperBridgeMethodsTest.java      |  2 +-
 .../java/org/apache/freemarker/core/AttemptLoggingTest.java   |  4 ++--
 .../org/apache/freemarker/core/CallerTemplateNameTest.java    |  1 -
 .../java/org/apache/freemarker/core/ConfigurationTest.java    |  2 +-
 .../java/org/apache/freemarker/core/CustomSettingTest.java    |  4 ++--
 .../freemarker/core/EnvironmentGetTemplateVariantsTest.java   |  1 -
 .../freemarker/core/InterpretAndEvalTemplateNameTest.java     |  1 -
 .../org/apache/freemarker/core/ListBreakContinueTest.java     |  3 ---
 .../test/java/org/apache/freemarker/core/MinMaxBITest.java    |  1 -
 .../org/apache/freemarker/core/MiscErrorMessagesTest.java     |  1 -
 .../freemarker/core/NewBiObjectWrapperRestrictionTest.java    |  3 +--
 .../freemarker/core/StringLiteralInterpolationTest.java       |  1 -
 .../freemarker/core/TemplateNameSpecialVariablesTest.java     |  1 -
 .../java/org/apache/freemarker/core/VersionEditorTest.java    |  3 +--
 .../freemarker/core/templatesuite/CoreTemplateTestSuite.java  |  2 +-
 .../freemarker/core/templatesuite/models/MultiModel2.java     |  2 +-
 .../freemarker/core/userpkg/NamedVarargsOnlyDirective.java    |  2 +-
 .../core/userpkg/PositionalVarargsOnlyDirective.java          |  2 +-
 .../freemarker/core/userpkg/TwoNamedParamsDirective.java      |  2 +-
 .../core/userpkg/TwoNestedContentParamsDirective.java         |  2 +-
 .../freemarker/core/userpkg/TwoPositionalParamsDirective.java |  2 +-
 .../apache/freemarker/core/userpkg/UpperCaseDirective.java    |  2 +-
 .../org/apache/freemarker/core/util/StringToIndexMapTest.java | 11 +++--------
 .../java/org/apache/freemarker/core/util/StringUtilsTest.java |  2 +-
 .../freemarker/core/util/TemplateLanguageUtilsTest.java       |  2 +-
 .../core/valueformat/impl/ExtendedDecimalFormatTest.java      |  1 -
 .../main/java/org/apache/freemarker/core/ASTDirRecurse.java   |  2 +-
 .../src/main/java/org/apache/freemarker/core/ASTDirVisit.java |  2 +-
 .../java/org/apache/freemarker/core/ASTExpDynamicKeyName.java |  2 +-
 .../java/org/apache/freemarker/core/ParsingConfiguration.java |  1 -
 .../freemarker/core/UnsupportedFM2TemplateLanguage.java       |  1 -
 .../org/apache/freemarker/core/debug/RmiDebugModelImpl.java   |  4 ++--
 .../freemarker/core/outputformat/impl/XHTMLOutputFormat.java  |  1 -
 .../core/valueformat/TemplateDateFormatFactory.java           |  4 ++--
 .../core/valueformat/TemplateNumberFormatFactory.java         |  4 ++--
 freemarker-manual/src/main/docgen/en_US/book.xml              |  7 +------
 .../manual/examples/AbsoluteTemplateNameBIExample.java        |  3 ---
 .../freemarker/manual/examples/AutoEscapingExample.java       |  2 --
 .../org/apache/freemarker/servlet/jsp/TLDParsingTest.java     |  2 --
 .../org/apache/freemarker/spring/VersionPropertyTest.java     |  2 +-
 .../org/apache/freemarker/spring/model/BindDirectiveTest.java |  8 +++-----
 .../freemarker/spring/model/BindErrorsDirectiveTest.java      | 10 ++++------
 .../org/apache/freemarker/spring/model/EvalFunctionTest.java  | 10 ++++------
 .../apache/freemarker/spring/model/MessageFunctionTest.java   |  8 +++-----
 .../freemarker/spring/model/NestedPathDirectiveTest.java      |  8 +++-----
 .../org/apache/freemarker/spring/model/ThemeFunctionTest.java |  8 +++-----
 .../apache/freemarker/spring/model/TransformFunctionTest.java |  6 +++---
 .../org/apache/freemarker/spring/model/UrlFunctionTest.java   | 10 ++++------
 .../spring/model/form/ButtonTemplateDirectiveModelTest.java   | 10 ++++------
 .../spring/model/form/CheckboxTemplateDirectiveModelTest.java | 10 ++++------
 .../model/form/CheckboxesTemplateDirectiveModelTest.java      | 10 ++++------
 .../spring/model/form/ErrorsTemplateDirectiveModelTest.java   | 10 ++++------
 .../spring/model/form/FormTemplateDirectiveModelTest.java     | 10 ++++------
 .../model/form/HiddenInputTemplateDirectiveModelTest.java     | 10 ++++------
 .../spring/model/form/InputTemplateDirectiveModelTest.java    | 10 ++++------
 .../spring/model/form/LabelTemplateDirectiveModelTest.java    | 10 ++++------
 .../model/form/PasswordInputTemplateDirectiveModelTest.java   | 10 ++++------
 .../model/form/RadioButtonTemplateDirectiveModelTest.java     | 10 ++++------
 .../model/form/RadioButtonsTemplateDirectiveModelTest.java    | 10 ++++------
 .../spring/model/form/SelectTemplateDirectiveModelTest.java   | 10 ++++------
 .../spring/model/form/TextareaTemplateDirectiveModelTest.java | 10 ++++------
 .../freemarker/spring/example/mvc/users/users-mvc-context.xml |  4 +---
 .../freemarker/test/templateutil/NoOutputDirective.java       |  2 +-
 64 files changed, 115 insertions(+), 190 deletions(-)

diff --git a/freemarker-converter/src/test/java/org/freemarker/converter/GenericConverterTest.java b/freemarker-converter/src/test/java/org/freemarker/converter/GenericConverterTest.java
index 0873133..ff0cc36 100644
--- a/freemarker-converter/src/test/java/org/freemarker/converter/GenericConverterTest.java
+++ b/freemarker-converter/src/test/java/org/freemarker/converter/GenericConverterTest.java
@@ -31,10 +31,10 @@ import java.util.regex.Pattern;
 
 import org.apache.commons.io.IOUtils;
 import org.apache.freemarker.converter.ConversionMarkers;
-import org.apache.freemarker.converter.MissingRequiredPropertyException;
-import org.apache.freemarker.converter.PropertyValidationException;
 import org.apache.freemarker.converter.Converter;
 import org.apache.freemarker.converter.ConverterException;
+import org.apache.freemarker.converter.MissingRequiredPropertyException;
+import org.apache.freemarker.converter.PropertyValidationException;
 import org.freemarker.converter.test.ConverterTest;
 import org.junit.Test;
 
diff --git a/freemarker-core-test-java8/src/test/java/org/apache/freemarker/core/model/impl/Java8DefaultObjectWrapperBridgeMethodsTest.java b/freemarker-core-test-java8/src/test/java/org/apache/freemarker/core/model/impl/Java8DefaultObjectWrapperBridgeMethodsTest.java
index 9c87b53..a37584b 100644
--- a/freemarker-core-test-java8/src/test/java/org/apache/freemarker/core/model/impl/Java8DefaultObjectWrapperBridgeMethodsTest.java
+++ b/freemarker-core-test-java8/src/test/java/org/apache/freemarker/core/model/impl/Java8DefaultObjectWrapperBridgeMethodsTest.java
@@ -23,8 +23,8 @@ import static org.junit.Assert.*;
 import org.apache.freemarker.core.Configuration;
 import org.apache.freemarker.core.NonTemplateCallPlace;
 import org.apache.freemarker.core.TemplateException;
-import org.apache.freemarker.core.util.CallableUtils;
 import org.apache.freemarker.core.model.TemplateHashModel;
+import org.apache.freemarker.core.util.CallableUtils;
 import org.junit.Test;
 
 public class Java8DefaultObjectWrapperBridgeMethodsTest {
diff --git a/freemarker-core-test/src/test/java/org/apache/freemarker/core/AttemptLoggingTest.java b/freemarker-core-test/src/test/java/org/apache/freemarker/core/AttemptLoggingTest.java
index 9743eff..bfaef48 100644
--- a/freemarker-core-test/src/test/java/org/apache/freemarker/core/AttemptLoggingTest.java
+++ b/freemarker-core-test/src/test/java/org/apache/freemarker/core/AttemptLoggingTest.java
@@ -19,9 +19,9 @@
 
 package org.apache.freemarker.core;
 
-import static org.hamcrest.CoreMatchers.containsString;
+import static org.hamcrest.CoreMatchers.*;
 import static org.hamcrest.MatcherAssert.assertThat;
-import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.*;
 
 import java.io.IOException;
 import java.io.Writer;
diff --git a/freemarker-core-test/src/test/java/org/apache/freemarker/core/CallerTemplateNameTest.java b/freemarker-core-test/src/test/java/org/apache/freemarker/core/CallerTemplateNameTest.java
index 42e29c9..db97fcc 100644
--- a/freemarker-core-test/src/test/java/org/apache/freemarker/core/CallerTemplateNameTest.java
+++ b/freemarker-core-test/src/test/java/org/apache/freemarker/core/CallerTemplateNameTest.java
@@ -20,7 +20,6 @@
 package org.apache.freemarker.core;
 
 import org.apache.freemarker.test.TemplateTest;
-import org.apache.freemarker.test.TestConfigurationBuilder;
 import org.junit.Test;
 
 public class CallerTemplateNameTest  extends TemplateTest {
diff --git a/freemarker-core-test/src/test/java/org/apache/freemarker/core/ConfigurationTest.java b/freemarker-core-test/src/test/java/org/apache/freemarker/core/ConfigurationTest.java
index b486f8b..708bae8 100644
--- a/freemarker-core-test/src/test/java/org/apache/freemarker/core/ConfigurationTest.java
+++ b/freemarker-core-test/src/test/java/org/apache/freemarker/core/ConfigurationTest.java
@@ -45,7 +45,7 @@ import java.util.Set;
 import java.util.TimeZone;
 import java.util.TreeSet;
 
-import org.apache.freemarker.core.Configuration.Builder;
+import org.apache.freemarker.core.Configuration.*;
 import org.apache.freemarker.core.model.TemplateStringModel;
 import org.apache.freemarker.core.model.impl.DefaultObjectWrapper;
 import org.apache.freemarker.core.model.impl.RestrictedObjectWrapper;
diff --git a/freemarker-core-test/src/test/java/org/apache/freemarker/core/CustomSettingTest.java b/freemarker-core-test/src/test/java/org/apache/freemarker/core/CustomSettingTest.java
index d1b8521..c1fb202 100644
--- a/freemarker-core-test/src/test/java/org/apache/freemarker/core/CustomSettingTest.java
+++ b/freemarker-core-test/src/test/java/org/apache/freemarker/core/CustomSettingTest.java
@@ -19,8 +19,8 @@
 
 package org.apache.freemarker.core;
 
-import static org.apache.freemarker.core.ProcessingConfiguration.MISSING_VALUE_MARKER;
-import static org.hamcrest.Matchers.containsString;
+import static org.apache.freemarker.core.ProcessingConfiguration.*;
+import static org.hamcrest.Matchers.*;
 import static org.junit.Assert.*;
 
 import java.io.Serializable;
diff --git a/freemarker-core-test/src/test/java/org/apache/freemarker/core/EnvironmentGetTemplateVariantsTest.java b/freemarker-core-test/src/test/java/org/apache/freemarker/core/EnvironmentGetTemplateVariantsTest.java
index f6d8f21..ae660b1 100644
--- a/freemarker-core-test/src/test/java/org/apache/freemarker/core/EnvironmentGetTemplateVariantsTest.java
+++ b/freemarker-core-test/src/test/java/org/apache/freemarker/core/EnvironmentGetTemplateVariantsTest.java
@@ -31,7 +31,6 @@ import org.apache.freemarker.core.model.TemplateModel;
 import org.apache.freemarker.core.model.impl.SimpleString;
 import org.apache.freemarker.core.templateresolver.impl.StringTemplateLoader;
 import org.apache.freemarker.test.TemplateTest;
-import org.apache.freemarker.test.TestConfigurationBuilder;
 import org.junit.Test;
 
 public class EnvironmentGetTemplateVariantsTest extends TemplateTest {
diff --git a/freemarker-core-test/src/test/java/org/apache/freemarker/core/InterpretAndEvalTemplateNameTest.java b/freemarker-core-test/src/test/java/org/apache/freemarker/core/InterpretAndEvalTemplateNameTest.java
index 545f5aa..c4fbc29 100644
--- a/freemarker-core-test/src/test/java/org/apache/freemarker/core/InterpretAndEvalTemplateNameTest.java
+++ b/freemarker-core-test/src/test/java/org/apache/freemarker/core/InterpretAndEvalTemplateNameTest.java
@@ -22,7 +22,6 @@ import java.io.IOException;
 
 import org.apache.freemarker.core.templateresolver.impl.StringTemplateLoader;
 import org.apache.freemarker.test.TemplateTest;
-import org.apache.freemarker.test.TestConfigurationBuilder;
 import org.junit.Test;
 
 /**
diff --git a/freemarker-core-test/src/test/java/org/apache/freemarker/core/ListBreakContinueTest.java b/freemarker-core-test/src/test/java/org/apache/freemarker/core/ListBreakContinueTest.java
index ada4385..cd031e4 100644
--- a/freemarker-core-test/src/test/java/org/apache/freemarker/core/ListBreakContinueTest.java
+++ b/freemarker-core-test/src/test/java/org/apache/freemarker/core/ListBreakContinueTest.java
@@ -20,9 +20,6 @@ package org.apache.freemarker.core;
 
 import java.io.IOException;
 
-import org.apache.freemarker.core.model.TemplateCollectionModel;
-import org.apache.freemarker.core.model.TemplateHashModelEx;
-import org.apache.freemarker.core.model.TemplateModel;
 import org.apache.freemarker.test.TemplateTest;
 import org.junit.Test;
 
diff --git a/freemarker-core-test/src/test/java/org/apache/freemarker/core/MinMaxBITest.java b/freemarker-core-test/src/test/java/org/apache/freemarker/core/MinMaxBITest.java
index 14b5578..ef948e2 100644
--- a/freemarker-core-test/src/test/java/org/apache/freemarker/core/MinMaxBITest.java
+++ b/freemarker-core-test/src/test/java/org/apache/freemarker/core/MinMaxBITest.java
@@ -28,7 +28,6 @@ import org.apache.freemarker.core.model.ObjectWrapperWithAPISupport;
 import org.apache.freemarker.core.model.impl.DefaultIterableAdapter;
 import org.apache.freemarker.core.util._DateUtils;
 import org.apache.freemarker.test.TemplateTest;
-import org.apache.freemarker.test.TestConfigurationBuilder;
 import org.junit.Test;
 
 import com.google.common.collect.ImmutableList;
diff --git a/freemarker-core-test/src/test/java/org/apache/freemarker/core/MiscErrorMessagesTest.java b/freemarker-core-test/src/test/java/org/apache/freemarker/core/MiscErrorMessagesTest.java
index 5aae785..c43cef2 100644
--- a/freemarker-core-test/src/test/java/org/apache/freemarker/core/MiscErrorMessagesTest.java
+++ b/freemarker-core-test/src/test/java/org/apache/freemarker/core/MiscErrorMessagesTest.java
@@ -24,7 +24,6 @@ import static org.junit.Assert.*;
 
 import org.apache.freemarker.core.templateresolver.impl.DefaultTemplateNameFormat;
 import org.apache.freemarker.test.TemplateTest;
-import org.apache.freemarker.test.TestConfigurationBuilder;
 import org.junit.Test;
 
 public class MiscErrorMessagesTest extends TemplateTest {
diff --git a/freemarker-core-test/src/test/java/org/apache/freemarker/core/NewBiObjectWrapperRestrictionTest.java b/freemarker-core-test/src/test/java/org/apache/freemarker/core/NewBiObjectWrapperRestrictionTest.java
index 508f43e..8210a60 100644
--- a/freemarker-core-test/src/test/java/org/apache/freemarker/core/NewBiObjectWrapperRestrictionTest.java
+++ b/freemarker-core-test/src/test/java/org/apache/freemarker/core/NewBiObjectWrapperRestrictionTest.java
@@ -34,10 +34,9 @@ import org.apache.freemarker.core.model.impl.DefaultObjectWrapper;
 import org.apache.freemarker.core.model.impl.SimpleDate;
 import org.apache.freemarker.core.model.impl.SimpleHash;
 import org.apache.freemarker.core.model.impl.SimpleNumber;
-import org.apache.freemarker.core.model.impl.SimpleString;
 import org.apache.freemarker.core.model.impl.SimpleSequence;
+import org.apache.freemarker.core.model.impl.SimpleString;
 import org.apache.freemarker.test.TemplateTest;
-import org.apache.freemarker.test.TestConfigurationBuilder;
 import org.junit.Test;
 
 public class NewBiObjectWrapperRestrictionTest extends TemplateTest {
diff --git a/freemarker-core-test/src/test/java/org/apache/freemarker/core/StringLiteralInterpolationTest.java b/freemarker-core-test/src/test/java/org/apache/freemarker/core/StringLiteralInterpolationTest.java
index e8fc4fa..e8d392d 100644
--- a/freemarker-core-test/src/test/java/org/apache/freemarker/core/StringLiteralInterpolationTest.java
+++ b/freemarker-core-test/src/test/java/org/apache/freemarker/core/StringLiteralInterpolationTest.java
@@ -25,7 +25,6 @@ import org.apache.freemarker.core.outputformat.impl.RTFOutputFormat;
 import org.apache.freemarker.core.userpkg.PrintfGTemplateNumberFormatFactory;
 import org.apache.freemarker.core.valueformat.TemplateNumberFormatFactory;
 import org.apache.freemarker.test.TemplateTest;
-import org.apache.freemarker.test.TestConfigurationBuilder;
 import org.junit.Test;
 
 @SuppressWarnings("boxing")
diff --git a/freemarker-core-test/src/test/java/org/apache/freemarker/core/TemplateNameSpecialVariablesTest.java b/freemarker-core-test/src/test/java/org/apache/freemarker/core/TemplateNameSpecialVariablesTest.java
index f20ad05..73ecbe6 100644
--- a/freemarker-core-test/src/test/java/org/apache/freemarker/core/TemplateNameSpecialVariablesTest.java
+++ b/freemarker-core-test/src/test/java/org/apache/freemarker/core/TemplateNameSpecialVariablesTest.java
@@ -21,7 +21,6 @@ package org.apache.freemarker.core;
 import java.io.IOException;
 
 import org.apache.freemarker.test.TemplateTest;
-import org.apache.freemarker.test.TestConfigurationBuilder;
 import org.junit.Test;
 
 public class TemplateNameSpecialVariablesTest extends TemplateTest {
diff --git a/freemarker-core-test/src/test/java/org/apache/freemarker/core/VersionEditorTest.java b/freemarker-core-test/src/test/java/org/apache/freemarker/core/VersionEditorTest.java
index 60c4746..a3bca42 100644
--- a/freemarker-core-test/src/test/java/org/apache/freemarker/core/VersionEditorTest.java
+++ b/freemarker-core-test/src/test/java/org/apache/freemarker/core/VersionEditorTest.java
@@ -19,8 +19,7 @@
 
 package org.apache.freemarker.core;
 
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.fail;
+import static org.junit.Assert.*;
 
 import org.junit.Test;
 
diff --git a/freemarker-core-test/src/test/java/org/apache/freemarker/core/templatesuite/CoreTemplateTestSuite.java b/freemarker-core-test/src/test/java/org/apache/freemarker/core/templatesuite/CoreTemplateTestSuite.java
index e680b84..023a419 100644
--- a/freemarker-core-test/src/test/java/org/apache/freemarker/core/templatesuite/CoreTemplateTestSuite.java
+++ b/freemarker-core-test/src/test/java/org/apache/freemarker/core/templatesuite/CoreTemplateTestSuite.java
@@ -41,8 +41,8 @@ import org.apache.freemarker.core.model.TemplateDateModel;
 import org.apache.freemarker.core.model.impl.DefaultNonListCollectionAdapter;
 import org.apache.freemarker.core.model.impl.DefaultObjectWrapper;
 import org.apache.freemarker.core.model.impl.ResourceBundleModel;
-import org.apache.freemarker.core.model.impl.SimpleIterable;
 import org.apache.freemarker.core.model.impl.SimpleDate;
+import org.apache.freemarker.core.model.impl.SimpleIterable;
 import org.apache.freemarker.core.model.impl.SimpleNumber;
 import org.apache.freemarker.core.templatesuite.models.BooleanAndStringTemplateModel;
 import org.apache.freemarker.core.templatesuite.models.BooleanHash1;
diff --git a/freemarker-core-test/src/test/java/org/apache/freemarker/core/templatesuite/models/MultiModel2.java b/freemarker-core-test/src/test/java/org/apache/freemarker/core/templatesuite/models/MultiModel2.java
index 1e1c356..53357f2 100644
--- a/freemarker-core-test/src/test/java/org/apache/freemarker/core/templatesuite/models/MultiModel2.java
+++ b/freemarker-core-test/src/test/java/org/apache/freemarker/core/templatesuite/models/MultiModel2.java
@@ -22,12 +22,12 @@ package org.apache.freemarker.core.templatesuite.models;
 import org.apache.freemarker.core.CallPlace;
 import org.apache.freemarker.core.Environment;
 import org.apache.freemarker.core.TemplateException;
-import org.apache.freemarker.core.util.CallableUtils;
 import org.apache.freemarker.core.model.ArgumentArrayLayout;
 import org.apache.freemarker.core.model.TemplateFunctionModel;
 import org.apache.freemarker.core.model.TemplateModel;
 import org.apache.freemarker.core.model.TemplateStringModel;
 import org.apache.freemarker.core.model.impl.SimpleString;
+import org.apache.freemarker.core.util.CallableUtils;
 
 /**
  * Testcase to see how FreeMarker deals with multiple Template models.
diff --git a/freemarker-core-test/src/test/java/org/apache/freemarker/core/userpkg/NamedVarargsOnlyDirective.java b/freemarker-core-test/src/test/java/org/apache/freemarker/core/userpkg/NamedVarargsOnlyDirective.java
index 268c7fc..43a408a 100644
--- a/freemarker-core-test/src/test/java/org/apache/freemarker/core/userpkg/NamedVarargsOnlyDirective.java
+++ b/freemarker-core-test/src/test/java/org/apache/freemarker/core/userpkg/NamedVarargsOnlyDirective.java
@@ -22,10 +22,10 @@ package org.apache.freemarker.core.userpkg;
 import java.io.IOException;
 import java.io.Writer;
 
+import org.apache.freemarker.core.CallPlace;
 import org.apache.freemarker.core.Environment;
 import org.apache.freemarker.core.TemplateException;
 import org.apache.freemarker.core.model.ArgumentArrayLayout;
-import org.apache.freemarker.core.CallPlace;
 import org.apache.freemarker.core.model.TemplateDirectiveModel;
 import org.apache.freemarker.core.model.TemplateModel;
 
diff --git a/freemarker-core-test/src/test/java/org/apache/freemarker/core/userpkg/PositionalVarargsOnlyDirective.java b/freemarker-core-test/src/test/java/org/apache/freemarker/core/userpkg/PositionalVarargsOnlyDirective.java
index 9bccfe5..d5bfa37 100644
--- a/freemarker-core-test/src/test/java/org/apache/freemarker/core/userpkg/PositionalVarargsOnlyDirective.java
+++ b/freemarker-core-test/src/test/java/org/apache/freemarker/core/userpkg/PositionalVarargsOnlyDirective.java
@@ -22,10 +22,10 @@ package org.apache.freemarker.core.userpkg;
 import java.io.IOException;
 import java.io.Writer;
 
+import org.apache.freemarker.core.CallPlace;
 import org.apache.freemarker.core.Environment;
 import org.apache.freemarker.core.TemplateException;
 import org.apache.freemarker.core.model.ArgumentArrayLayout;
-import org.apache.freemarker.core.CallPlace;
 import org.apache.freemarker.core.model.TemplateDirectiveModel;
 import org.apache.freemarker.core.model.TemplateModel;
 
diff --git a/freemarker-core-test/src/test/java/org/apache/freemarker/core/userpkg/TwoNamedParamsDirective.java b/freemarker-core-test/src/test/java/org/apache/freemarker/core/userpkg/TwoNamedParamsDirective.java
index 2d02e07..d1b7c15 100644
--- a/freemarker-core-test/src/test/java/org/apache/freemarker/core/userpkg/TwoNamedParamsDirective.java
+++ b/freemarker-core-test/src/test/java/org/apache/freemarker/core/userpkg/TwoNamedParamsDirective.java
@@ -22,10 +22,10 @@ package org.apache.freemarker.core.userpkg;
 import java.io.IOException;
 import java.io.Writer;
 
+import org.apache.freemarker.core.CallPlace;
 import org.apache.freemarker.core.Environment;
 import org.apache.freemarker.core.TemplateException;
 import org.apache.freemarker.core.model.ArgumentArrayLayout;
-import org.apache.freemarker.core.CallPlace;
 import org.apache.freemarker.core.model.TemplateDirectiveModel;
 import org.apache.freemarker.core.model.TemplateModel;
 import org.apache.freemarker.core.util.StringToIndexMap;
diff --git a/freemarker-core-test/src/test/java/org/apache/freemarker/core/userpkg/TwoNestedContentParamsDirective.java b/freemarker-core-test/src/test/java/org/apache/freemarker/core/userpkg/TwoNestedContentParamsDirective.java
index c6bc49e..c8ace97 100644
--- a/freemarker-core-test/src/test/java/org/apache/freemarker/core/userpkg/TwoNestedContentParamsDirective.java
+++ b/freemarker-core-test/src/test/java/org/apache/freemarker/core/userpkg/TwoNestedContentParamsDirective.java
@@ -22,10 +22,10 @@ package org.apache.freemarker.core.userpkg;
 import java.io.IOException;
 import java.io.Writer;
 
+import org.apache.freemarker.core.CallPlace;
 import org.apache.freemarker.core.Environment;
 import org.apache.freemarker.core.TemplateException;
 import org.apache.freemarker.core.model.ArgumentArrayLayout;
-import org.apache.freemarker.core.CallPlace;
 import org.apache.freemarker.core.model.TemplateDirectiveModel;
 import org.apache.freemarker.core.model.TemplateModel;
 import org.apache.freemarker.core.model.TemplateNumberModel;
diff --git a/freemarker-core-test/src/test/java/org/apache/freemarker/core/userpkg/TwoPositionalParamsDirective.java b/freemarker-core-test/src/test/java/org/apache/freemarker/core/userpkg/TwoPositionalParamsDirective.java
index a057bc3..8e48593 100644
--- a/freemarker-core-test/src/test/java/org/apache/freemarker/core/userpkg/TwoPositionalParamsDirective.java
+++ b/freemarker-core-test/src/test/java/org/apache/freemarker/core/userpkg/TwoPositionalParamsDirective.java
@@ -22,10 +22,10 @@ package org.apache.freemarker.core.userpkg;
 import java.io.IOException;
 import java.io.Writer;
 
+import org.apache.freemarker.core.CallPlace;
 import org.apache.freemarker.core.Environment;
 import org.apache.freemarker.core.TemplateException;
 import org.apache.freemarker.core.model.ArgumentArrayLayout;
-import org.apache.freemarker.core.CallPlace;
 import org.apache.freemarker.core.model.TemplateDirectiveModel;
 import org.apache.freemarker.core.model.TemplateModel;
 
diff --git a/freemarker-core-test/src/test/java/org/apache/freemarker/core/userpkg/UpperCaseDirective.java b/freemarker-core-test/src/test/java/org/apache/freemarker/core/userpkg/UpperCaseDirective.java
index 3936502..66cec3f 100644
--- a/freemarker-core-test/src/test/java/org/apache/freemarker/core/userpkg/UpperCaseDirective.java
+++ b/freemarker-core-test/src/test/java/org/apache/freemarker/core/userpkg/UpperCaseDirective.java
@@ -23,10 +23,10 @@ import java.io.IOException;
 import java.io.StringWriter;
 import java.io.Writer;
 
+import org.apache.freemarker.core.CallPlace;
 import org.apache.freemarker.core.Environment;
 import org.apache.freemarker.core.TemplateException;
 import org.apache.freemarker.core.model.ArgumentArrayLayout;
-import org.apache.freemarker.core.CallPlace;
 import org.apache.freemarker.core.model.TemplateDirectiveModel;
 import org.apache.freemarker.core.model.TemplateModel;
 
diff --git a/freemarker-core-test/src/test/java/org/apache/freemarker/core/util/StringToIndexMapTest.java b/freemarker-core-test/src/test/java/org/apache/freemarker/core/util/StringToIndexMapTest.java
index 5973c45..6ed34c1 100644
--- a/freemarker-core-test/src/test/java/org/apache/freemarker/core/util/StringToIndexMapTest.java
+++ b/freemarker-core-test/src/test/java/org/apache/freemarker/core/util/StringToIndexMapTest.java
@@ -19,19 +19,14 @@
 
 package org.apache.freemarker.core.util;
 
+import static org.hamcrest.Matchers.*;
+import static org.junit.Assert.*;
+
 import org.apache.freemarker.core.util.StringToIndexMap.Entry;
 import org.junit.Test;
 
 import com.google.common.collect.ImmutableList;
 
-import static org.hamcrest.Matchers.containsString;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNull;
-import static org.junit.Assert.assertSame;
-import static org.junit.Assert.assertThat;
-import static org.junit.Assert.assertTrue;
-import static org.junit.Assert.fail;
-
 public class StringToIndexMapTest {
 
     @Test
diff --git a/freemarker-core-test/src/test/java/org/apache/freemarker/core/util/StringUtilsTest.java b/freemarker-core-test/src/test/java/org/apache/freemarker/core/util/StringUtilsTest.java
index f2a4ae6..365af34 100644
--- a/freemarker-core-test/src/test/java/org/apache/freemarker/core/util/StringUtilsTest.java
+++ b/freemarker-core-test/src/test/java/org/apache/freemarker/core/util/StringUtilsTest.java
@@ -20,12 +20,12 @@
 package org.apache.freemarker.core.util;
 
 import static junit.framework.TestCase.assertNull;
-import static org.junit.Assert.*;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertSame;
 import static org.junit.Assert.assertTrue;
 import static org.junit.Assert.fail;
+import static org.junit.Assert.*;
 
 import java.io.IOException;
 import java.io.StringWriter;
diff --git a/freemarker-core-test/src/test/java/org/apache/freemarker/core/util/TemplateLanguageUtilsTest.java b/freemarker-core-test/src/test/java/org/apache/freemarker/core/util/TemplateLanguageUtilsTest.java
index 1e6f171..3b57ef5 100644
--- a/freemarker-core-test/src/test/java/org/apache/freemarker/core/util/TemplateLanguageUtilsTest.java
+++ b/freemarker-core-test/src/test/java/org/apache/freemarker/core/util/TemplateLanguageUtilsTest.java
@@ -21,10 +21,10 @@ package org.apache.freemarker.core.util;
 import static junit.framework.TestCase.assertFalse;
 import static junit.framework.TestCase.assertNull;
 import static org.hamcrest.Matchers.*;
-import static org.junit.Assert.*;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertTrue;
 import static org.junit.Assert.fail;
+import static org.junit.Assert.*;
 
 import org.junit.Test;
 
diff --git a/freemarker-core-test/src/test/java/org/apache/freemarker/core/valueformat/impl/ExtendedDecimalFormatTest.java b/freemarker-core-test/src/test/java/org/apache/freemarker/core/valueformat/impl/ExtendedDecimalFormatTest.java
index f0ae7db..88a68b5 100644
--- a/freemarker-core-test/src/test/java/org/apache/freemarker/core/valueformat/impl/ExtendedDecimalFormatTest.java
+++ b/freemarker-core-test/src/test/java/org/apache/freemarker/core/valueformat/impl/ExtendedDecimalFormatTest.java
@@ -30,7 +30,6 @@ import java.util.Locale;
 
 import org.apache.freemarker.core.TemplateException;
 import org.apache.freemarker.test.TemplateTest;
-import org.apache.freemarker.test.TestConfigurationBuilder;
 import org.junit.Test;
 
 public class ExtendedDecimalFormatTest extends TemplateTest {
diff --git a/freemarker-core/src/main/java/org/apache/freemarker/core/ASTDirRecurse.java b/freemarker-core/src/main/java/org/apache/freemarker/core/ASTDirRecurse.java
index 1a491f5..41b5e30 100644
--- a/freemarker-core/src/main/java/org/apache/freemarker/core/ASTDirRecurse.java
+++ b/freemarker-core/src/main/java/org/apache/freemarker/core/ASTDirRecurse.java
@@ -24,8 +24,8 @@ import java.io.IOException;
 import org.apache.freemarker.core.model.TemplateHashModel;
 import org.apache.freemarker.core.model.TemplateModel;
 import org.apache.freemarker.core.model.TemplateNodeModel;
-import org.apache.freemarker.core.model.TemplateStringModel;
 import org.apache.freemarker.core.model.TemplateSequenceModel;
+import org.apache.freemarker.core.model.TemplateStringModel;
 
 
 /**
diff --git a/freemarker-core/src/main/java/org/apache/freemarker/core/ASTDirVisit.java b/freemarker-core/src/main/java/org/apache/freemarker/core/ASTDirVisit.java
index 181bb00..0e2a6e4 100644
--- a/freemarker-core/src/main/java/org/apache/freemarker/core/ASTDirVisit.java
+++ b/freemarker-core/src/main/java/org/apache/freemarker/core/ASTDirVisit.java
@@ -23,8 +23,8 @@ import java.io.IOException;
 
 import org.apache.freemarker.core.model.TemplateModel;
 import org.apache.freemarker.core.model.TemplateNodeModel;
-import org.apache.freemarker.core.model.TemplateStringModel;
 import org.apache.freemarker.core.model.TemplateSequenceModel;
+import org.apache.freemarker.core.model.TemplateStringModel;
 
 
 /**
diff --git a/freemarker-core/src/main/java/org/apache/freemarker/core/ASTExpDynamicKeyName.java b/freemarker-core/src/main/java/org/apache/freemarker/core/ASTExpDynamicKeyName.java
index 29e902a..d3cdf25 100644
--- a/freemarker-core/src/main/java/org/apache/freemarker/core/ASTExpDynamicKeyName.java
+++ b/freemarker-core/src/main/java/org/apache/freemarker/core/ASTExpDynamicKeyName.java
@@ -22,8 +22,8 @@ package org.apache.freemarker.core;
 import org.apache.freemarker.core.model.TemplateHashModel;
 import org.apache.freemarker.core.model.TemplateModel;
 import org.apache.freemarker.core.model.TemplateNumberModel;
-import org.apache.freemarker.core.model.TemplateStringModel;
 import org.apache.freemarker.core.model.TemplateSequenceModel;
+import org.apache.freemarker.core.model.TemplateStringModel;
 import org.apache.freemarker.core.model.impl.SimpleString;
 
 /**
diff --git a/freemarker-core/src/main/java/org/apache/freemarker/core/ParsingConfiguration.java b/freemarker-core/src/main/java/org/apache/freemarker/core/ParsingConfiguration.java
index f17b778..131e640 100644
--- a/freemarker-core/src/main/java/org/apache/freemarker/core/ParsingConfiguration.java
+++ b/freemarker-core/src/main/java/org/apache/freemarker/core/ParsingConfiguration.java
@@ -18,7 +18,6 @@
  */
 package org.apache.freemarker.core;
 
-import java.io.Writer;
 import java.nio.charset.Charset;
 
 import org.apache.freemarker.core.arithmetic.ArithmeticEngine;
diff --git a/freemarker-core/src/main/java/org/apache/freemarker/core/UnsupportedFM2TemplateLanguage.java b/freemarker-core/src/main/java/org/apache/freemarker/core/UnsupportedFM2TemplateLanguage.java
index 5852bcd..6f3c79c 100644
--- a/freemarker-core/src/main/java/org/apache/freemarker/core/UnsupportedFM2TemplateLanguage.java
+++ b/freemarker-core/src/main/java/org/apache/freemarker/core/UnsupportedFM2TemplateLanguage.java
@@ -24,7 +24,6 @@ import java.io.InputStream;
 import java.io.Reader;
 
 import org.apache.freemarker.core.outputformat.OutputFormat;
-import org.apache.freemarker.core.util._NullArgumentException;
 
 /**
  * FreeMarker 2 template language, which we don't support. To avoid confusion we ban loading such templates. 
diff --git a/freemarker-core/src/main/java/org/apache/freemarker/core/debug/RmiDebugModelImpl.java b/freemarker-core/src/main/java/org/apache/freemarker/core/debug/RmiDebugModelImpl.java
index 5334692..d9e34e0 100644
--- a/freemarker-core/src/main/java/org/apache/freemarker/core/debug/RmiDebugModelImpl.java
+++ b/freemarker-core/src/main/java/org/apache/freemarker/core/debug/RmiDebugModelImpl.java
@@ -27,17 +27,17 @@ import java.util.List;
 
 import org.apache.freemarker.core.TemplateException;
 import org.apache.freemarker.core.model.TemplateBooleanModel;
-import org.apache.freemarker.core.model.TemplateIterableModel;
 import org.apache.freemarker.core.model.TemplateDateModel;
 import org.apache.freemarker.core.model.TemplateDirectiveModel;
 import org.apache.freemarker.core.model.TemplateFunctionModel;
 import org.apache.freemarker.core.model.TemplateHashModel;
 import org.apache.freemarker.core.model.TemplateHashModelEx;
+import org.apache.freemarker.core.model.TemplateIterableModel;
 import org.apache.freemarker.core.model.TemplateModel;
 import org.apache.freemarker.core.model.TemplateModelIterator;
 import org.apache.freemarker.core.model.TemplateNumberModel;
-import org.apache.freemarker.core.model.TemplateStringModel;
 import org.apache.freemarker.core.model.TemplateSequenceModel;
+import org.apache.freemarker.core.model.TemplateStringModel;
 
 /**
  */
diff --git a/freemarker-core/src/main/java/org/apache/freemarker/core/outputformat/impl/XHTMLOutputFormat.java b/freemarker-core/src/main/java/org/apache/freemarker/core/outputformat/impl/XHTMLOutputFormat.java
index 4614b3d..6fc5c6c 100644
--- a/freemarker-core/src/main/java/org/apache/freemarker/core/outputformat/impl/XHTMLOutputFormat.java
+++ b/freemarker-core/src/main/java/org/apache/freemarker/core/outputformat/impl/XHTMLOutputFormat.java
@@ -22,7 +22,6 @@ import java.io.IOException;
 import java.io.Writer;
 
 import org.apache.freemarker.core.TemplateException;
-import org.apache.freemarker.core.outputformat.CommonMarkupOutputFormat;
 import org.apache.freemarker.core.outputformat.OutputFormat;
 import org.apache.freemarker.core.util._StringUtils;
 
diff --git a/freemarker-core/src/main/java/org/apache/freemarker/core/valueformat/TemplateDateFormatFactory.java b/freemarker-core/src/main/java/org/apache/freemarker/core/valueformat/TemplateDateFormatFactory.java
index 1e1da09..3579e4f 100644
--- a/freemarker-core/src/main/java/org/apache/freemarker/core/valueformat/TemplateDateFormatFactory.java
+++ b/freemarker-core/src/main/java/org/apache/freemarker/core/valueformat/TemplateDateFormatFactory.java
@@ -23,10 +23,10 @@ import java.util.Date;
 import java.util.Locale;
 import java.util.TimeZone;
 
-import org.apache.freemarker.core.CustomStateKey;
-import org.apache.freemarker.core.MutableProcessingConfiguration;
 import org.apache.freemarker.core.Configuration;
+import org.apache.freemarker.core.CustomStateKey;
 import org.apache.freemarker.core.Environment;
+import org.apache.freemarker.core.MutableProcessingConfiguration;
 import org.apache.freemarker.core.model.TemplateDateModel;
 
 /**
diff --git a/freemarker-core/src/main/java/org/apache/freemarker/core/valueformat/TemplateNumberFormatFactory.java b/freemarker-core/src/main/java/org/apache/freemarker/core/valueformat/TemplateNumberFormatFactory.java
index c863264..cb281b4 100644
--- a/freemarker-core/src/main/java/org/apache/freemarker/core/valueformat/TemplateNumberFormatFactory.java
+++ b/freemarker-core/src/main/java/org/apache/freemarker/core/valueformat/TemplateNumberFormatFactory.java
@@ -20,10 +20,10 @@ package org.apache.freemarker.core.valueformat;
 
 import java.util.Locale;
 
-import org.apache.freemarker.core.CustomStateKey;
-import org.apache.freemarker.core.MutableProcessingConfiguration;
 import org.apache.freemarker.core.Configuration;
+import org.apache.freemarker.core.CustomStateKey;
 import org.apache.freemarker.core.Environment;
+import org.apache.freemarker.core.MutableProcessingConfiguration;
 
 /**
  * Factory for a certain kind of number formatting ({@link TemplateNumberFormat}). Usually a singleton (one-per-VM or
diff --git a/freemarker-manual/src/main/docgen/en_US/book.xml b/freemarker-manual/src/main/docgen/en_US/book.xml
index 72bf6bc..e101361 100644
--- a/freemarker-manual/src/main/docgen/en_US/book.xml
+++ b/freemarker-manual/src/main/docgen/en_US/book.xml
@@ -19,12 +19,7 @@
 -->
 <book conformance="docgen" version="5.0" xml:lang="en"
       xmlns="http://docbook.org/ns/docbook"
-      xmlns:xlink="http://www.w3.org/1999/xlink"
-      xmlns:xi="http://www.w3.org/2001/XInclude"
-      xmlns:ns5="http://www.w3.org/1999/xhtml"
-      xmlns:ns4="http://www.w3.org/2000/svg"
-      xmlns:ns3="http://www.w3.org/1998/Math/MathML"
-      xmlns:ns="http://docbook.org/ns/docbook">
+>
   <info>
     <title>Apache FreeMarker Manual</title>
 
diff --git a/freemarker-manual/src/test/java/org/apache/freemarker/manual/examples/AbsoluteTemplateNameBIExample.java b/freemarker-manual/src/test/java/org/apache/freemarker/manual/examples/AbsoluteTemplateNameBIExample.java
index 0ac7d01..094451c 100644
--- a/freemarker-manual/src/test/java/org/apache/freemarker/manual/examples/AbsoluteTemplateNameBIExample.java
+++ b/freemarker-manual/src/test/java/org/apache/freemarker/manual/examples/AbsoluteTemplateNameBIExample.java
@@ -19,10 +19,7 @@
 
 package org.apache.freemarker.manual.examples;
 
-import org.apache.freemarker.core.Configuration;
-import org.apache.freemarker.core.templateresolver.impl.ClassTemplateLoader;
 import org.apache.freemarker.test.TemplateTest;
-import org.apache.freemarker.test.TestConfigurationBuilder;
 import org.junit.Test;
 
 public class AbsoluteTemplateNameBIExample extends TemplateTest {
diff --git a/freemarker-manual/src/test/java/org/apache/freemarker/manual/examples/AutoEscapingExample.java b/freemarker-manual/src/test/java/org/apache/freemarker/manual/examples/AutoEscapingExample.java
index bfd3d69..a02bee9 100644
--- a/freemarker-manual/src/test/java/org/apache/freemarker/manual/examples/AutoEscapingExample.java
+++ b/freemarker-manual/src/test/java/org/apache/freemarker/manual/examples/AutoEscapingExample.java
@@ -18,9 +18,7 @@
  */
 package org.apache.freemarker.manual.examples;
 
-import org.apache.freemarker.core.Configuration;
 import org.apache.freemarker.test.TemplateTest;
-import org.apache.freemarker.test.TestConfigurationBuilder;
 import org.junit.Test;
 
 public class AutoEscapingExample extends TemplateTest {
diff --git a/freemarker-servlet/src/test/java/org/apache/freemarker/servlet/jsp/TLDParsingTest.java b/freemarker-servlet/src/test/java/org/apache/freemarker/servlet/jsp/TLDParsingTest.java
index b8d0bb3..73c1e71 100644
--- a/freemarker-servlet/src/test/java/org/apache/freemarker/servlet/jsp/TLDParsingTest.java
+++ b/freemarker-servlet/src/test/java/org/apache/freemarker/servlet/jsp/TLDParsingTest.java
@@ -23,7 +23,6 @@ import static org.junit.Assert.*;
 
 import java.io.InputStream;
 import java.net.URL;
-import java.util.Arrays;
 import java.util.Map;
 
 import javax.servlet.ServletContextEvent;
@@ -34,7 +33,6 @@ import javax.xml.parsers.SAXParserFactory;
 
 import org.apache.freemarker.core.Configuration;
 import org.apache.freemarker.core.NonTemplateCallPlace;
-import org.apache.freemarker.core.model.TemplateFunctionModel;
 import org.apache.freemarker.core.model.TemplateModel;
 import org.apache.freemarker.core.model.TemplateNumberModel;
 import org.apache.freemarker.core.model.TemplateStringModel;
diff --git a/freemarker-spring/src/test/java/org/apache/freemarker/spring/VersionPropertyTest.java b/freemarker-spring/src/test/java/org/apache/freemarker/spring/VersionPropertyTest.java
index ff69a75..90c6c94 100644
--- a/freemarker-spring/src/test/java/org/apache/freemarker/spring/VersionPropertyTest.java
+++ b/freemarker-spring/src/test/java/org/apache/freemarker/spring/VersionPropertyTest.java
@@ -18,7 +18,7 @@
  */
 package org.apache.freemarker.spring;
 
-import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.*;
 
 import org.apache.freemarker.core.Version;
 import org.junit.After;
diff --git a/freemarker-spring/src/test/java/org/apache/freemarker/spring/model/BindDirectiveTest.java b/freemarker-spring/src/test/java/org/apache/freemarker/spring/model/BindDirectiveTest.java
index 0b21a47..d93534a 100644
--- a/freemarker-spring/src/test/java/org/apache/freemarker/spring/model/BindDirectiveTest.java
+++ b/freemarker-spring/src/test/java/org/apache/freemarker/spring/model/BindDirectiveTest.java
@@ -19,11 +19,9 @@
 
 package org.apache.freemarker.spring.model;
 
-import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get;
-import static org.springframework.test.web.servlet.result.MockMvcResultHandlers.print;
-import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.content;
-import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
-import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.xpath;
+import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.*;
+import static org.springframework.test.web.servlet.result.MockMvcResultHandlers.*;
+import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.*;
 
 import org.apache.freemarker.spring.example.mvc.users.User;
 import org.apache.freemarker.spring.example.mvc.users.UserRepository;
diff --git a/freemarker-spring/src/test/java/org/apache/freemarker/spring/model/BindErrorsDirectiveTest.java b/freemarker-spring/src/test/java/org/apache/freemarker/spring/model/BindErrorsDirectiveTest.java
index 15520cb..427991d 100644
--- a/freemarker-spring/src/test/java/org/apache/freemarker/spring/model/BindErrorsDirectiveTest.java
+++ b/freemarker-spring/src/test/java/org/apache/freemarker/spring/model/BindErrorsDirectiveTest.java
@@ -19,12 +19,10 @@
 
 package org.apache.freemarker.spring.model;
 
-import static org.hamcrest.Matchers.equalToIgnoringWhiteSpace;
-import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post;
-import static org.springframework.test.web.servlet.result.MockMvcResultHandlers.print;
-import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.content;
-import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
-import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.xpath;
+import static org.hamcrest.Matchers.*;
+import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.*;
+import static org.springframework.test.web.servlet.result.MockMvcResultHandlers.*;
+import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.*;
 
 import org.apache.freemarker.spring.example.mvc.users.User;
 import org.apache.freemarker.spring.example.mvc.users.UserRepository;
diff --git a/freemarker-spring/src/test/java/org/apache/freemarker/spring/model/EvalFunctionTest.java b/freemarker-spring/src/test/java/org/apache/freemarker/spring/model/EvalFunctionTest.java
index 1e92292..2e13a65 100644
--- a/freemarker-spring/src/test/java/org/apache/freemarker/spring/model/EvalFunctionTest.java
+++ b/freemarker-spring/src/test/java/org/apache/freemarker/spring/model/EvalFunctionTest.java
@@ -19,12 +19,10 @@
 
 package org.apache.freemarker.spring.model;
 
-import static org.hamcrest.Matchers.equalToIgnoringWhiteSpace;
-import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get;
-import static org.springframework.test.web.servlet.result.MockMvcResultHandlers.print;
-import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.content;
-import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
-import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.xpath;
+import static org.hamcrest.Matchers.*;
+import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.*;
+import static org.springframework.test.web.servlet.result.MockMvcResultHandlers.*;
+import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.*;
 
 import org.apache.freemarker.spring.example.mvc.users.User;
 import org.apache.freemarker.spring.example.mvc.users.UserRepository;
diff --git a/freemarker-spring/src/test/java/org/apache/freemarker/spring/model/MessageFunctionTest.java b/freemarker-spring/src/test/java/org/apache/freemarker/spring/model/MessageFunctionTest.java
index 37af7eb..01b10c9 100644
--- a/freemarker-spring/src/test/java/org/apache/freemarker/spring/model/MessageFunctionTest.java
+++ b/freemarker-spring/src/test/java/org/apache/freemarker/spring/model/MessageFunctionTest.java
@@ -19,11 +19,9 @@
 
 package org.apache.freemarker.spring.model;
 
-import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get;
-import static org.springframework.test.web.servlet.result.MockMvcResultHandlers.print;
-import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.content;
-import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
-import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.xpath;
+import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.*;
+import static org.springframework.test.web.servlet.result.MockMvcResultHandlers.*;
+import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.*;
 
 import org.apache.freemarker.spring.example.mvc.users.User;
 import org.apache.freemarker.spring.example.mvc.users.UserRepository;
diff --git a/freemarker-spring/src/test/java/org/apache/freemarker/spring/model/NestedPathDirectiveTest.java b/freemarker-spring/src/test/java/org/apache/freemarker/spring/model/NestedPathDirectiveTest.java
index f5f7d18..31c80aa 100644
--- a/freemarker-spring/src/test/java/org/apache/freemarker/spring/model/NestedPathDirectiveTest.java
+++ b/freemarker-spring/src/test/java/org/apache/freemarker/spring/model/NestedPathDirectiveTest.java
@@ -19,11 +19,9 @@
 
 package org.apache.freemarker.spring.model;
 
-import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get;
-import static org.springframework.test.web.servlet.result.MockMvcResultHandlers.print;
-import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.content;
-import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
-import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.xpath;
+import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.*;
+import static org.springframework.test.web.servlet.result.MockMvcResultHandlers.*;
+import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.*;
 
 import org.apache.freemarker.spring.example.mvc.users.User;
 import org.apache.freemarker.spring.example.mvc.users.UserRepository;
diff --git a/freemarker-spring/src/test/java/org/apache/freemarker/spring/model/ThemeFunctionTest.java b/freemarker-spring/src/test/java/org/apache/freemarker/spring/model/ThemeFunctionTest.java
index 5dd4bdc..04a4124 100644
--- a/freemarker-spring/src/test/java/org/apache/freemarker/spring/model/ThemeFunctionTest.java
+++ b/freemarker-spring/src/test/java/org/apache/freemarker/spring/model/ThemeFunctionTest.java
@@ -19,11 +19,9 @@
 
 package org.apache.freemarker.spring.model;
 
-import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get;
-import static org.springframework.test.web.servlet.result.MockMvcResultHandlers.print;
-import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.content;
-import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
-import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.xpath;
+import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.*;
+import static org.springframework.test.web.servlet.result.MockMvcResultHandlers.*;
+import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.*;
 
 import org.apache.freemarker.spring.example.mvc.users.UserRepository;
 import org.junit.Before;
diff --git a/freemarker-spring/src/test/java/org/apache/freemarker/spring/model/TransformFunctionTest.java b/freemarker-spring/src/test/java/org/apache/freemarker/spring/model/TransformFunctionTest.java
index d3fd680..82a6966 100644
--- a/freemarker-spring/src/test/java/org/apache/freemarker/spring/model/TransformFunctionTest.java
+++ b/freemarker-spring/src/test/java/org/apache/freemarker/spring/model/TransformFunctionTest.java
@@ -19,9 +19,9 @@
 
 package org.apache.freemarker.spring.model;
 
-import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post;
-import static org.springframework.test.web.servlet.result.MockMvcResultHandlers.print;
-import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.xpath;
+import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.*;
+import static org.springframework.test.web.servlet.result.MockMvcResultHandlers.*;
+import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.*;
 
 import java.text.DateFormat;
 import java.text.SimpleDateFormat;
diff --git a/freemarker-spring/src/test/java/org/apache/freemarker/spring/model/UrlFunctionTest.java b/freemarker-spring/src/test/java/org/apache/freemarker/spring/model/UrlFunctionTest.java
index 3079556..2d80908 100644
--- a/freemarker-spring/src/test/java/org/apache/freemarker/spring/model/UrlFunctionTest.java
+++ b/freemarker-spring/src/test/java/org/apache/freemarker/spring/model/UrlFunctionTest.java
@@ -19,6 +19,10 @@
 
 package org.apache.freemarker.spring.model;
 
+import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.*;
+import static org.springframework.test.web.servlet.result.MockMvcResultHandlers.*;
+import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.*;
+
 import java.text.DecimalFormat;
 import java.text.SimpleDateFormat;
 
@@ -36,12 +40,6 @@ import org.springframework.test.web.servlet.MockMvc;
 import org.springframework.test.web.servlet.setup.MockMvcBuilders;
 import org.springframework.web.context.WebApplicationContext;
 
-import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get;
-import static org.springframework.test.web.servlet.result.MockMvcResultHandlers.print;
-import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.content;
-import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
-import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.xpath;
-
 @RunWith(SpringJUnit4ClassRunner.class)
 @WebAppConfiguration("classpath:META-INF/web-resources")
 @ContextConfiguration(locations = { "classpath:org/apache/freemarker/spring/example/mvc/users/users-mvc-context.xml" })
diff --git a/freemarker-spring/src/test/java/org/apache/freemarker/spring/model/form/ButtonTemplateDirectiveModelTest.java b/freemarker-spring/src/test/java/org/apache/freemarker/spring/model/form/ButtonTemplateDirectiveModelTest.java
index 4d6b871..22f7a96 100644
--- a/freemarker-spring/src/test/java/org/apache/freemarker/spring/model/form/ButtonTemplateDirectiveModelTest.java
+++ b/freemarker-spring/src/test/java/org/apache/freemarker/spring/model/form/ButtonTemplateDirectiveModelTest.java
@@ -19,6 +19,10 @@
 
 package org.apache.freemarker.spring.model.form;
 
+import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.*;
+import static org.springframework.test.web.servlet.result.MockMvcResultHandlers.*;
+import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.*;
+
 import org.apache.freemarker.spring.example.mvc.users.UserRepository;
 import org.hamcrest.Matchers;
 import org.junit.Before;
@@ -33,12 +37,6 @@ import org.springframework.test.web.servlet.MockMvc;
 import org.springframework.test.web.servlet.setup.MockMvcBuilders;
 import org.springframework.web.context.WebApplicationContext;
 
-import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get;
-import static org.springframework.test.web.servlet.result.MockMvcResultHandlers.print;
-import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.content;
-import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
-import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.xpath;
-
 @RunWith(SpringJUnit4ClassRunner.class)
 @WebAppConfiguration("classpath:META-INF/web-resources")
 @ContextConfiguration(locations = { "classpath:org/apache/freemarker/spring/example/mvc/users/users-mvc-context.xml" })
diff --git a/freemarker-spring/src/test/java/org/apache/freemarker/spring/model/form/CheckboxTemplateDirectiveModelTest.java b/freemarker-spring/src/test/java/org/apache/freemarker/spring/model/form/CheckboxTemplateDirectiveModelTest.java
index 6aa051c..7d03f25 100644
--- a/freemarker-spring/src/test/java/org/apache/freemarker/spring/model/form/CheckboxTemplateDirectiveModelTest.java
+++ b/freemarker-spring/src/test/java/org/apache/freemarker/spring/model/form/CheckboxTemplateDirectiveModelTest.java
@@ -19,6 +19,10 @@
 
 package org.apache.freemarker.spring.model.form;
 
+import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.*;
+import static org.springframework.test.web.servlet.result.MockMvcResultHandlers.*;
+import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.*;
+
 import org.apache.freemarker.spring.example.mvc.users.User;
 import org.apache.freemarker.spring.example.mvc.users.UserRepository;
 import org.junit.Before;
@@ -33,12 +37,6 @@ import org.springframework.test.web.servlet.MockMvc;
 import org.springframework.test.web.servlet.setup.MockMvcBuilders;
 import org.springframework.web.context.WebApplicationContext;
 
-import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get;
-import static org.springframework.test.web.servlet.result.MockMvcResultHandlers.print;
-import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.content;
-import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
-import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.xpath;
-
 @RunWith(SpringJUnit4ClassRunner.class)
 @WebAppConfiguration("classpath:META-INF/web-resources")
 @ContextConfiguration(locations = { "classpath:org/apache/freemarker/spring/example/mvc/users/users-mvc-context.xml" })
diff --git a/freemarker-spring/src/test/java/org/apache/freemarker/spring/model/form/CheckboxesTemplateDirectiveModelTest.java b/freemarker-spring/src/test/java/org/apache/freemarker/spring/model/form/CheckboxesTemplateDirectiveModelTest.java
index 76b125b..a085dc6 100644
--- a/freemarker-spring/src/test/java/org/apache/freemarker/spring/model/form/CheckboxesTemplateDirectiveModelTest.java
+++ b/freemarker-spring/src/test/java/org/apache/freemarker/spring/model/form/CheckboxesTemplateDirectiveModelTest.java
@@ -19,6 +19,10 @@
 
 package org.apache.freemarker.spring.model.form;
 
+import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.*;
+import static org.springframework.test.web.servlet.result.MockMvcResultHandlers.*;
+import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.*;
+
 import org.apache.freemarker.spring.example.mvc.users.User;
 import org.apache.freemarker.spring.example.mvc.users.UserRepository;
 import org.junit.Before;
@@ -33,12 +37,6 @@ import org.springframework.test.web.servlet.MockMvc;
 import org.springframework.test.web.servlet.setup.MockMvcBuilders;
 import org.springframework.web.context.WebApplicationContext;
 
-import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get;
-import static org.springframework.test.web.servlet.result.MockMvcResultHandlers.print;
-import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.content;
-import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
-import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.xpath;
-
 @RunWith(SpringJUnit4ClassRunner.class)
 @WebAppConfiguration("classpath:META-INF/web-resources")
 @ContextConfiguration(locations = { "classpath:org/apache/freemarker/spring/example/mvc/users/users-mvc-context.xml" })
diff --git a/freemarker-spring/src/test/java/org/apache/freemarker/spring/model/form/ErrorsTemplateDirectiveModelTest.java b/freemarker-spring/src/test/java/org/apache/freemarker/spring/model/form/ErrorsTemplateDirectiveModelTest.java
index 14c2331..2c83034 100644
--- a/freemarker-spring/src/test/java/org/apache/freemarker/spring/model/form/ErrorsTemplateDirectiveModelTest.java
+++ b/freemarker-spring/src/test/java/org/apache/freemarker/spring/model/form/ErrorsTemplateDirectiveModelTest.java
@@ -19,6 +19,10 @@
 
 package org.apache.freemarker.spring.model.form;
 
+import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.*;
+import static org.springframework.test.web.servlet.result.MockMvcResultHandlers.*;
+import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.*;
+
 import org.apache.freemarker.spring.example.mvc.users.UserRepository;
 import org.hamcrest.Matchers;
 import org.junit.Before;
@@ -33,12 +37,6 @@ import org.springframework.test.web.servlet.MockMvc;
 import org.springframework.test.web.servlet.setup.MockMvcBuilders;
 import org.springframework.web.context.WebApplicationContext;
 
-import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post;
-import static org.springframework.test.web.servlet.result.MockMvcResultHandlers.print;
-import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.content;
-import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
-import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.xpath;
-
 @RunWith(SpringJUnit4ClassRunner.class)
 @WebAppConfiguration("classpath:META-INF/web-resources")
 @ContextConfiguration(locations = { "classpath:org/apache/freemarker/spring/example/mvc/users/users-mvc-context.xml" })
diff --git a/freemarker-spring/src/test/java/org/apache/freemarker/spring/model/form/FormTemplateDirectiveModelTest.java b/freemarker-spring/src/test/java/org/apache/freemarker/spring/model/form/FormTemplateDirectiveModelTest.java
index 8ac8413..a22825c 100644
--- a/freemarker-spring/src/test/java/org/apache/freemarker/spring/model/form/FormTemplateDirectiveModelTest.java
+++ b/freemarker-spring/src/test/java/org/apache/freemarker/spring/model/form/FormTemplateDirectiveModelTest.java
@@ -19,6 +19,10 @@
 
 package org.apache.freemarker.spring.model.form;
 
+import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.*;
+import static org.springframework.test.web.servlet.result.MockMvcResultHandlers.*;
+import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.*;
+
 import org.apache.freemarker.spring.example.mvc.users.User;
 import org.apache.freemarker.spring.example.mvc.users.UserRepository;
 import org.junit.Before;
@@ -33,12 +37,6 @@ import org.springframework.test.web.servlet.MockMvc;
 import org.springframework.test.web.servlet.setup.MockMvcBuilders;
 import org.springframework.web.context.WebApplicationContext;
 
-import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get;
-import static org.springframework.test.web.servlet.result.MockMvcResultHandlers.print;
-import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.content;
-import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
-import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.xpath;
-
 @RunWith(SpringJUnit4ClassRunner.class)
 @WebAppConfiguration("classpath:META-INF/web-resources")
 @ContextConfiguration(locations = { "classpath:org/apache/freemarker/spring/example/mvc/users/users-mvc-context.xml" })
diff --git a/freemarker-spring/src/test/java/org/apache/freemarker/spring/model/form/HiddenInputTemplateDirectiveModelTest.java b/freemarker-spring/src/test/java/org/apache/freemarker/spring/model/form/HiddenInputTemplateDirectiveModelTest.java
index 719a7c2..12af35d 100644
--- a/freemarker-spring/src/test/java/org/apache/freemarker/spring/model/form/HiddenInputTemplateDirectiveModelTest.java
+++ b/freemarker-spring/src/test/java/org/apache/freemarker/spring/model/form/HiddenInputTemplateDirectiveModelTest.java
@@ -19,6 +19,10 @@
 
 package org.apache.freemarker.spring.model.form;
 
+import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.*;
+import static org.springframework.test.web.servlet.result.MockMvcResultHandlers.*;
+import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.*;
+
 import org.apache.freemarker.spring.example.mvc.users.User;
 import org.apache.freemarker.spring.example.mvc.users.UserRepository;
 import org.junit.Before;
@@ -33,12 +37,6 @@ import org.springframework.test.web.servlet.MockMvc;
 import org.springframework.test.web.servlet.setup.MockMvcBuilders;
 import org.springframework.web.context.WebApplicationContext;
 
-import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get;
-import static org.springframework.test.web.servlet.result.MockMvcResultHandlers.print;
-import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.content;
-import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
-import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.xpath;
-
 @RunWith(SpringJUnit4ClassRunner.class)
 @WebAppConfiguration("classpath:META-INF/web-resources")
 @ContextConfiguration(locations = { "classpath:org/apache/freemarker/spring/example/mvc/users/users-mvc-context.xml" })
diff --git a/freemarker-spring/src/test/java/org/apache/freemarker/spring/model/form/InputTemplateDirectiveModelTest.java b/freemarker-spring/src/test/java/org/apache/freemarker/spring/model/form/InputTemplateDirectiveModelTest.java
index b7a0d91..74b83eb 100644
--- a/freemarker-spring/src/test/java/org/apache/freemarker/spring/model/form/InputTemplateDirectiveModelTest.java
+++ b/freemarker-spring/src/test/java/org/apache/freemarker/spring/model/form/InputTemplateDirectiveModelTest.java
@@ -19,6 +19,10 @@
 
 package org.apache.freemarker.spring.model.form;
 
+import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.*;
+import static org.springframework.test.web.servlet.result.MockMvcResultHandlers.*;
+import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.*;
+
 import org.apache.freemarker.spring.example.mvc.users.User;
 import org.apache.freemarker.spring.example.mvc.users.UserRepository;
 import org.junit.Before;
@@ -33,12 +37,6 @@ import org.springframework.test.web.servlet.MockMvc;
 import org.springframework.test.web.servlet.setup.MockMvcBuilders;
 import org.springframework.web.context.WebApplicationContext;
 
-import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get;
-import static org.springframework.test.web.servlet.result.MockMvcResultHandlers.print;
-import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.content;
-import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
-import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.xpath;
-
 @RunWith(SpringJUnit4ClassRunner.class)
 @WebAppConfiguration("classpath:META-INF/web-resources")
 @ContextConfiguration(locations = { "classpath:org/apache/freemarker/spring/example/mvc/users/users-mvc-context.xml" })
diff --git a/freemarker-spring/src/test/java/org/apache/freemarker/spring/model/form/LabelTemplateDirectiveModelTest.java b/freemarker-spring/src/test/java/org/apache/freemarker/spring/model/form/LabelTemplateDirectiveModelTest.java
index 86160e3..ae87c13 100644
--- a/freemarker-spring/src/test/java/org/apache/freemarker/spring/model/form/LabelTemplateDirectiveModelTest.java
+++ b/freemarker-spring/src/test/java/org/apache/freemarker/spring/model/form/LabelTemplateDirectiveModelTest.java
@@ -19,6 +19,10 @@
 
 package org.apache.freemarker.spring.model.form;
 
+import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.*;
+import static org.springframework.test.web.servlet.result.MockMvcResultHandlers.*;
+import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.*;
+
 import org.apache.freemarker.spring.example.mvc.users.User;
 import org.apache.freemarker.spring.example.mvc.users.UserRepository;
 import org.junit.Before;
@@ -33,12 +37,6 @@ import org.springframework.test.web.servlet.MockMvc;
 import org.springframework.test.web.servlet.setup.MockMvcBuilders;
 import org.springframework.web.context.WebApplicationContext;
 
-import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get;
-import static org.springframework.test.web.servlet.result.MockMvcResultHandlers.print;
-import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.content;
-import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
-import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.xpath;
-
 @RunWith(SpringJUnit4ClassRunner.class)
 @WebAppConfiguration("classpath:META-INF/web-resources")
 @ContextConfiguration(locations = { "classpath:org/apache/freemarker/spring/example/mvc/users/users-mvc-context.xml" })
diff --git a/freemarker-spring/src/test/java/org/apache/freemarker/spring/model/form/PasswordInputTemplateDirectiveModelTest.java b/freemarker-spring/src/test/java/org/apache/freemarker/spring/model/form/PasswordInputTemplateDirectiveModelTest.java
index 4828e39..cc872f7 100644
--- a/freemarker-spring/src/test/java/org/apache/freemarker/spring/model/form/PasswordInputTemplateDirectiveModelTest.java
+++ b/freemarker-spring/src/test/java/org/apache/freemarker/spring/model/form/PasswordInputTemplateDirectiveModelTest.java
@@ -19,6 +19,10 @@
 
 package org.apache.freemarker.spring.model.form;
 
+import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.*;
+import static org.springframework.test.web.servlet.result.MockMvcResultHandlers.*;
+import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.*;
+
 import org.apache.freemarker.spring.example.mvc.users.User;
 import org.apache.freemarker.spring.example.mvc.users.UserRepository;
 import org.junit.Before;
@@ -33,12 +37,6 @@ import org.springframework.test.web.servlet.MockMvc;
 import org.springframework.test.web.servlet.setup.MockMvcBuilders;
 import org.springframework.web.context.WebApplicationContext;
 
-import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get;
-import static org.springframework.test.web.servlet.result.MockMvcResultHandlers.print;
-import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.content;
-import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
-import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.xpath;
-
 @RunWith(SpringJUnit4ClassRunner.class)
 @WebAppConfiguration("classpath:META-INF/web-resources")
 @ContextConfiguration(locations = { "classpath:org/apache/freemarker/spring/example/mvc/users/users-mvc-context.xml" })
diff --git a/freemarker-spring/src/test/java/org/apache/freemarker/spring/model/form/RadioButtonTemplateDirectiveModelTest.java b/freemarker-spring/src/test/java/org/apache/freemarker/spring/model/form/RadioButtonTemplateDirectiveModelTest.java
index 7c3d209..b6908c9 100644
--- a/freemarker-spring/src/test/java/org/apache/freemarker/spring/model/form/RadioButtonTemplateDirectiveModelTest.java
+++ b/freemarker-spring/src/test/java/org/apache/freemarker/spring/model/form/RadioButtonTemplateDirectiveModelTest.java
@@ -19,6 +19,10 @@
 
 package org.apache.freemarker.spring.model.form;
 
+import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.*;
+import static org.springframework.test.web.servlet.result.MockMvcResultHandlers.*;
+import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.*;
+
 import org.apache.freemarker.spring.example.mvc.users.User;
 import org.apache.freemarker.spring.example.mvc.users.UserRepository;
 import org.junit.Before;
@@ -33,12 +37,6 @@ import org.springframework.test.web.servlet.MockMvc;
 import org.springframework.test.web.servlet.setup.MockMvcBuilders;
 import org.springframework.web.context.WebApplicationContext;
 
-import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get;
-import static org.springframework.test.web.servlet.result.MockMvcResultHandlers.print;
-import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.content;
-import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
-import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.xpath;
-
 @RunWith(SpringJUnit4ClassRunner.class)
 @WebAppConfiguration("classpath:META-INF/web-resources")
 @ContextConfiguration(locations = { "classpath:org/apache/freemarker/spring/example/mvc/users/users-mvc-context.xml" })
diff --git a/freemarker-spring/src/test/java/org/apache/freemarker/spring/model/form/RadioButtonsTemplateDirectiveModelTest.java b/freemarker-spring/src/test/java/org/apache/freemarker/spring/model/form/RadioButtonsTemplateDirectiveModelTest.java
index 624a9ed..155fe82 100644
--- a/freemarker-spring/src/test/java/org/apache/freemarker/spring/model/form/RadioButtonsTemplateDirectiveModelTest.java
+++ b/freemarker-spring/src/test/java/org/apache/freemarker/spring/model/form/RadioButtonsTemplateDirectiveModelTest.java
@@ -19,6 +19,10 @@
 
 package org.apache.freemarker.spring.model.form;
 
+import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.*;
+import static org.springframework.test.web.servlet.result.MockMvcResultHandlers.*;
+import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.*;
+
 import org.apache.freemarker.spring.example.mvc.users.User;
 import org.apache.freemarker.spring.example.mvc.users.UserRepository;
 import org.junit.Before;
@@ -33,12 +37,6 @@ import org.springframework.test.web.servlet.MockMvc;
 import org.springframework.test.web.servlet.setup.MockMvcBuilders;
 import org.springframework.web.context.WebApplicationContext;
 
-import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get;
-import static org.springframework.test.web.servlet.result.MockMvcResultHandlers.print;
-import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.content;
-import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
-import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.xpath;
-
 @RunWith(SpringJUnit4ClassRunner.class)
 @WebAppConfiguration("classpath:META-INF/web-resources")
 @ContextConfiguration(locations = { "classpath:org/apache/freemarker/spring/example/mvc/users/users-mvc-context.xml" })
diff --git a/freemarker-spring/src/test/java/org/apache/freemarker/spring/model/form/SelectTemplateDirectiveModelTest.java b/freemarker-spring/src/test/java/org/apache/freemarker/spring/model/form/SelectTemplateDirectiveModelTest.java
index a9bba59..89a6fe4 100644
--- a/freemarker-spring/src/test/java/org/apache/freemarker/spring/model/form/SelectTemplateDirectiveModelTest.java
+++ b/freemarker-spring/src/test/java/org/apache/freemarker/spring/model/form/SelectTemplateDirectiveModelTest.java
@@ -19,6 +19,10 @@
 
 package org.apache.freemarker.spring.model.form;
 
+import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.*;
+import static org.springframework.test.web.servlet.result.MockMvcResultHandlers.*;
+import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.*;
+
 import org.apache.freemarker.spring.example.mvc.users.User;
 import org.apache.freemarker.spring.example.mvc.users.UserRepository;
 import org.apache.freemarker.spring.model.ElementAttributeMatcher;
@@ -37,12 +41,6 @@ import org.springframework.test.web.servlet.result.XpathResultMatchers;
 import org.springframework.test.web.servlet.setup.MockMvcBuilders;
 import org.springframework.web.context.WebApplicationContext;
 
-import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get;
-import static org.springframework.test.web.servlet.result.MockMvcResultHandlers.print;
-import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.content;
-import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
-import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.xpath;
-
 @RunWith(SpringJUnit4ClassRunner.class)
 @WebAppConfiguration("classpath:META-INF/web-resources")
 @ContextConfiguration(locations = { "classpath:org/apache/freemarker/spring/example/mvc/users/users-mvc-context.xml" })
diff --git a/freemarker-spring/src/test/java/org/apache/freemarker/spring/model/form/TextareaTemplateDirectiveModelTest.java b/freemarker-spring/src/test/java/org/apache/freemarker/spring/model/form/TextareaTemplateDirectiveModelTest.java
index 5823e73..130b413 100644
--- a/freemarker-spring/src/test/java/org/apache/freemarker/spring/model/form/TextareaTemplateDirectiveModelTest.java
+++ b/freemarker-spring/src/test/java/org/apache/freemarker/spring/model/form/TextareaTemplateDirectiveModelTest.java
@@ -19,6 +19,10 @@
 
 package org.apache.freemarker.spring.model.form;
 
+import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.*;
+import static org.springframework.test.web.servlet.result.MockMvcResultHandlers.*;
+import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.*;
+
 import org.apache.freemarker.spring.example.mvc.users.User;
 import org.apache.freemarker.spring.example.mvc.users.UserRepository;
 import org.hamcrest.Matchers;
@@ -34,12 +38,6 @@ import org.springframework.test.web.servlet.MockMvc;
 import org.springframework.test.web.servlet.setup.MockMvcBuilders;
 import org.springframework.web.context.WebApplicationContext;
 
-import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get;
-import static org.springframework.test.web.servlet.result.MockMvcResultHandlers.print;
-import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.content;
-import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
-import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.xpath;
-
 @RunWith(SpringJUnit4ClassRunner.class)
 @WebAppConfiguration("classpath:META-INF/web-resources")
 @ContextConfiguration(locations = { "classpath:org/apache/freemarker/spring/example/mvc/users/users-mvc-context.xml" })
diff --git a/freemarker-spring/src/test/resources/org/apache/freemarker/spring/example/mvc/users/users-mvc-context.xml b/freemarker-spring/src/test/resources/org/apache/freemarker/spring/example/mvc/users/users-mvc-context.xml
index 5fec285..11b03ac 100644
--- a/freemarker-spring/src/test/resources/org/apache/freemarker/spring/example/mvc/users/users-mvc-context.xml
+++ b/freemarker-spring/src/test/resources/org/apache/freemarker/spring/example/mvc/users/users-mvc-context.xml
@@ -18,10 +18,8 @@
 <beans xmlns="http://www.springframework.org/schema/beans"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xmlns:context="http://www.springframework.org/schema/context"
-       xmlns:mvc="http://www.springframework.org/schema/mvc"
        xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
-                           http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd
-                           http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd">
+                           http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">
 
   <context:component-scan base-package="org.apache.freemarker.spring.example.mvc.users" />
 
diff --git a/freemarker-test-utils/src/main/java/org/apache/freemarker/test/templateutil/NoOutputDirective.java b/freemarker-test-utils/src/main/java/org/apache/freemarker/test/templateutil/NoOutputDirective.java
index 1e33dab..e2148cd 100644
--- a/freemarker-test-utils/src/main/java/org/apache/freemarker/test/templateutil/NoOutputDirective.java
+++ b/freemarker-test-utils/src/main/java/org/apache/freemarker/test/templateutil/NoOutputDirective.java
@@ -22,10 +22,10 @@ package org.apache.freemarker.test.templateutil;
 import java.io.IOException;
 import java.io.Writer;
 
+import org.apache.freemarker.core.CallPlace;
 import org.apache.freemarker.core.Environment;
 import org.apache.freemarker.core.TemplateException;
 import org.apache.freemarker.core.model.ArgumentArrayLayout;
-import org.apache.freemarker.core.CallPlace;
 import org.apache.freemarker.core.model.TemplateDirectiveModel;
 import org.apache.freemarker.core.model.TemplateModel;
 import org.apache.freemarker.core.util._NullWriter;