diff --git a/maven-autotag-plugin/src/main/java/org/apache/tiles/autotag/plugin/AbstractGenerateMojo.java b/maven-autotag-plugin/src/main/java/org/apache/tiles/autotag/plugin/AbstractGenerateMojo.java
index 4859ef5..a3988cc 100644
--- a/maven-autotag-plugin/src/main/java/org/apache/tiles/autotag/plugin/AbstractGenerateMojo.java
+++ b/maven-autotag-plugin/src/main/java/org/apache/tiles/autotag/plugin/AbstractGenerateMojo.java
@@ -93,7 +93,7 @@
 
 	@Component
     BuildContext buildContext;
-    
+
 	OutputLocator classesOutputLocator;
 	OutputLocator resourcesOutputLocator;
 	
diff --git a/maven-autotag-plugin/src/main/java/org/apache/tiles/autotag/plugin/CreateDescriptorMojo.java b/maven-autotag-plugin/src/main/java/org/apache/tiles/autotag/plugin/CreateDescriptorMojo.java
index a525115..93e8db4 100644
--- a/maven-autotag-plugin/src/main/java/org/apache/tiles/autotag/plugin/CreateDescriptorMojo.java
+++ b/maven-autotag-plugin/src/main/java/org/apache/tiles/autotag/plugin/CreateDescriptorMojo.java
@@ -112,7 +112,7 @@
 
 	@Component
     BuildContext buildContext;
-    
+
     /** {@inheritDoc} */
     public void execute() throws MojoExecutionException {
         try {
diff --git a/maven-autotag-plugin/src/main/java/org/apache/tiles/autotag/plugin/GenerateFreemarkerMojo.java b/maven-autotag-plugin/src/main/java/org/apache/tiles/autotag/plugin/GenerateFreemarkerMojo.java
index ea8e9e4..a938fa6 100644
--- a/maven-autotag-plugin/src/main/java/org/apache/tiles/autotag/plugin/GenerateFreemarkerMojo.java
+++ b/maven-autotag-plugin/src/main/java/org/apache/tiles/autotag/plugin/GenerateFreemarkerMojo.java
@@ -35,7 +35,7 @@
  * Generates Freemarker code.
  */
 @Mojo(
-	name = "generate-freemarker", 
+	name = "generate-freemarker",
 	defaultPhase = LifecyclePhase.GENERATE_SOURCES,
 	requiresDependencyResolution = ResolutionScope.COMPILE)
 public class GenerateFreemarkerMojo extends AbstractGenerateMojo {
diff --git a/maven-autotag-plugin/src/main/java/org/apache/tiles/autotag/plugin/GenerateJspMojo.java b/maven-autotag-plugin/src/main/java/org/apache/tiles/autotag/plugin/GenerateJspMojo.java
index d5fc73d..e69897e 100644
--- a/maven-autotag-plugin/src/main/java/org/apache/tiles/autotag/plugin/GenerateJspMojo.java
+++ b/maven-autotag-plugin/src/main/java/org/apache/tiles/autotag/plugin/GenerateJspMojo.java
@@ -53,7 +53,7 @@
  * Goal which touches a timestamp file.
  */
 @Mojo(
-	name = "generate-jsp", 
+	name = "generate-jsp",
 	defaultPhase = LifecyclePhase.GENERATE_SOURCES,
 	requiresDependencyResolution = ResolutionScope.COMPILE)
 public class GenerateJspMojo extends AbstractGenerateMojo {
diff --git a/tiles-autotag-core-runtime/src/main/java/org/apache/tiles/autotag/core/runtime/AutotagRuntime.java b/tiles-autotag-core-runtime/src/main/java/org/apache/tiles/autotag/core/runtime/AutotagRuntime.java
index 6868fa3..4d5c818 100644
--- a/tiles-autotag-core-runtime/src/main/java/org/apache/tiles/autotag/core/runtime/AutotagRuntime.java
+++ b/tiles-autotag-core-runtime/src/main/java/org/apache/tiles/autotag/core/runtime/AutotagRuntime.java
@@ -23,26 +23,26 @@
 /**
  * Builder interface for creating requests.
  * The implementations are expected to provide a default constructor,
- * and to implement another interface that can be used to provide the 
+ * and to implement another interface that can be used to provide the
  * parameters needed to build the actual request object.
  */
 public interface AutotagRuntime<R> {
     /**
      * Creates a new Request instance.
-     * 
+     *
      * @return The Request.
      */
     R createRequest();
-    
+
     /**
      * Creates a new ModelBody instance to match the request.
-     * 
+     *
      * @return The ModelBody.
      */
     ModelBody createModelBody();
-    
+
     /**
-     * Extracts a parameter from the tag. 
+     * Extracts a parameter from the tag.
      * @param name The name of the parameter.
      * @param defaultValue The default value if none is specified.
      * @return The value of the parameter.
diff --git a/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/generate/AbstractTemplateClassGenerator.java b/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/generate/AbstractTemplateClassGenerator.java
index c000cd9..90ca3a7 100644
--- a/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/generate/AbstractTemplateClassGenerator.java
+++ b/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/generate/AbstractTemplateClassGenerator.java
@@ -63,7 +63,7 @@
     public void generate(OutputLocator outputLocator, String packageName,
             TemplateSuite suite, TemplateClass clazz, Map<String, String> parameters,
             String runtimeClass, String requestClass) {
-        String filePath = 
+        String filePath =
         		getDirectoryName(packageName, suite, clazz, parameters, runtimeClass, requestClass)
                 + File.separator
                 + getFilename(packageName, suite, clazz, parameters, runtimeClass, requestClass);
@@ -140,7 +140,7 @@
      * @return The template path.
      */
     protected abstract String getDirectoryName(
-            String packageName, TemplateSuite suite, TemplateClass clazz, Map<String, String> parameters, 
+            String packageName, TemplateSuite suite, TemplateClass clazz, Map<String, String> parameters,
             String runtimeClass, String requestClass);
-    
+
 }
diff --git a/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/generate/AbstractTemplateSuiteGenerator.java b/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/generate/AbstractTemplateSuiteGenerator.java
index 0f96b85..5a0ac3d 100644
--- a/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/generate/AbstractTemplateSuiteGenerator.java
+++ b/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/generate/AbstractTemplateSuiteGenerator.java
@@ -59,7 +59,7 @@
 
     @Override
     public void generate(OutputLocator outputLocator, String packageName, TemplateSuite suite, Map<String, String> parameters) {
-        String filePath = 
+        String filePath =
         		getDirectoryName(packageName, suite, parameters)
                 + File.separator
                 + getFilename(packageName, suite, parameters);
diff --git a/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/generate/BasicTemplateGenerator.java b/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/generate/BasicTemplateGenerator.java
index 4d53267..ce64bd0 100644
--- a/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/generate/BasicTemplateGenerator.java
+++ b/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/generate/BasicTemplateGenerator.java
@@ -76,7 +76,7 @@
 
 
     @Override
-    public void generate(String packageName, TemplateSuite suite, Map<String, String> parameters, 
+    public void generate(String packageName, TemplateSuite suite, Map<String, String> parameters,
         String runtimeClass, String requestClass) {
         for (TSGeneratorDirectoryPair pair : templateSuiteGenerators) {
             pair.getGenerator().generate(pair.getOutputLocator(), packageName, suite, parameters);
diff --git a/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/generate/TemplateGenerator.java b/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/generate/TemplateGenerator.java
index 7bbd290..0245048 100644
--- a/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/generate/TemplateGenerator.java
+++ b/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/generate/TemplateGenerator.java
@@ -41,7 +41,7 @@
      * @param runtimeClass The RequestBuilder implementation.
      * @param requestClass The request class to use.
      */
-    void generate(String packageName, TemplateSuite suite, Map<String, String> parameters, 
+    void generate(String packageName, TemplateSuite suite, Map<String, String> parameters,
         String runtimeClass, String requestClass);
 
     /**
diff --git a/tiles-autotag-freemarker/src/test/java/org/apache/tiles/autotag/freemarker/FMModelGeneratorTest.java b/tiles-autotag-freemarker/src/test/java/org/apache/tiles/autotag/freemarker/FMModelGeneratorTest.java
index ce7a70d..fbd3b0e 100644
--- a/tiles-autotag-freemarker/src/test/java/org/apache/tiles/autotag/freemarker/FMModelGeneratorTest.java
+++ b/tiles-autotag-freemarker/src/test/java/org/apache/tiles/autotag/freemarker/FMModelGeneratorTest.java
@@ -49,7 +49,7 @@
 public class FMModelGeneratorTest {
 
     public static final String REQUEST_CLASS = "org.apache.tiles.autotag.freemarker.test.Request";
-    
+
     /**
      * Test method for {@link TagClassGenerator#generate(File, String, TemplateSuite, TemplateClass, java.util.Map)}.
      * @throws Exception If something goes wrong.
diff --git a/tiles-autotag-jsp/src/test/java/org/apache/tiles/autotag/jsp/TLDGeneratorTest.java b/tiles-autotag-jsp/src/test/java/org/apache/tiles/autotag/jsp/TLDGeneratorTest.java
index f49ea61..daefbba 100644
--- a/tiles-autotag-jsp/src/test/java/org/apache/tiles/autotag/jsp/TLDGeneratorTest.java
+++ b/tiles-autotag-jsp/src/test/java/org/apache/tiles/autotag/jsp/TLDGeneratorTest.java
@@ -49,7 +49,7 @@
  * @version $Rev$ $Date$
  */
 public class TLDGeneratorTest {
-    
+
     public static final String REQUEST_CLASS = "org.apache.tiles.autotag.jsp.test.Request";
 
     /**
diff --git a/tiles-autotag-jsp/src/test/java/org/apache/tiles/autotag/jsp/TagClassGeneratorTest.java b/tiles-autotag-jsp/src/test/java/org/apache/tiles/autotag/jsp/TagClassGeneratorTest.java
index 6ffd0ed..4a83366 100644
--- a/tiles-autotag-jsp/src/test/java/org/apache/tiles/autotag/jsp/TagClassGeneratorTest.java
+++ b/tiles-autotag-jsp/src/test/java/org/apache/tiles/autotag/jsp/TagClassGeneratorTest.java
@@ -51,7 +51,7 @@
 public class TagClassGeneratorTest {
 
     public static final String REQUEST_CLASS = "org.apache.tiles.autotag.jsp.test.Request";
-    
+
     /**
      * Test method for {@link TagClassGenerator#generate(File, String, TemplateSuite, TemplateClass, Map)}.
      * @throws Exception If something goes wrong.
diff --git a/tiles-autotag-velocity/src/test/java/org/apache/tiles/autotag/velocity/VelocityDirectiveGeneratorTest.java b/tiles-autotag-velocity/src/test/java/org/apache/tiles/autotag/velocity/VelocityDirectiveGeneratorTest.java
index 190e1e9..27ece69 100644
--- a/tiles-autotag-velocity/src/test/java/org/apache/tiles/autotag/velocity/VelocityDirectiveGeneratorTest.java
+++ b/tiles-autotag-velocity/src/test/java/org/apache/tiles/autotag/velocity/VelocityDirectiveGeneratorTest.java
@@ -47,7 +47,7 @@
  * @version $Rev$ $Date$
  */
 public class VelocityDirectiveGeneratorTest {
-    
+
     public static final String REQUEST_CLASS = "org.apache.tiles.autotag.velocity.Request";
 
     /**
