Moved tiles-request and tiles-autotag into their own versionning structures

git-svn-id: https://svn.apache.org/repos/asf/tiles/framework/trunk@1333546 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/tiles-autotag/maven-autotag-plugin/pom.xml b/tiles-autotag/maven-autotag-plugin/pom.xml
deleted file mode 100644
index 72a7365..0000000
--- a/tiles-autotag/maven-autotag-plugin/pom.xml
+++ /dev/null
@@ -1,96 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<!--
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements.  See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership.  The ASF licenses this file
-to you under the Apache License, Version 2.0 (the
-"License"); you may not use this file except in compliance
-with the License.  You may obtain a copy of the License at
-
-  http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing,
-software distributed under the License is distributed on an
-"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-KIND, either express or implied.  See the License for the
-specific language governing permissions and limitations
-under the License.
--->
-
-<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
-    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
-  <modelVersion>4.0.0</modelVersion>
-  <parent>
-    <artifactId>tiles-autotag</artifactId>
-    <groupId>org.apache.tiles</groupId>
-    <version>1.0-SNAPSHOT</version>
-  </parent>
-  <groupId>org.apache.tiles.autotag.plugin</groupId>
-  <artifactId>maven-autotag-plugin</artifactId>
-  <version>1.0-SNAPSHOT</version>
-  <packaging>maven-plugin</packaging>
-  <name>maven-autotag-plugin Maven Mojo</name>
-  <dependencies>
-    <dependency>
-      <groupId>org.apache.maven</groupId>
-      <artifactId>maven-plugin-api</artifactId>
-      <version>2.2.1</version>
-    </dependency>
-    <dependency>
-      <groupId>junit</groupId>
-      <artifactId>junit</artifactId>
-      <version>4.8.1</version>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
-    	<groupId>org.codehaus.plexus</groupId>
-    	<artifactId>plexus-compiler-api</artifactId>
-    	<version>1.7</version>
-    </dependency>
-    <dependency>
-    	<groupId>org.apache.tiles</groupId>
-    	<artifactId>tiles-autotag-core</artifactId>
-    	<version>1.0-SNAPSHOT</version>
-    </dependency>
-    <dependency>
-    	<groupId>com.thoughtworks.xstream</groupId>
-    	<artifactId>xstream</artifactId>
-    	<version>1.3.1</version>
-    </dependency>
-    <dependency>
-    	<groupId>org.apache.tiles</groupId>
-    	<artifactId>tiles-autotag-jsp</artifactId>
-    	<version>1.0-SNAPSHOT</version>
-    </dependency>
-    <dependency>
-    	<groupId>org.apache.maven</groupId>
-    	<artifactId>maven-project</artifactId>
-    	<version>2.2.1</version>
-    </dependency>
-    <dependency>
-    	<groupId>org.apache.tiles</groupId>
-    	<artifactId>tiles-autotag-freemarker</artifactId>
-    	<version>1.0-SNAPSHOT</version>
-    </dependency>
-    <dependency>
-    	<groupId>org.apache.tiles</groupId>
-    	<artifactId>tiles-autotag-velocity</artifactId>
-    	<version>1.0-SNAPSHOT</version>
-    </dependency>
-    <dependency>
-    	<groupId>org.easymock</groupId>
-    	<artifactId>easymock</artifactId>
-    	<version>3.0</version>
-    	<type>jar</type>
-    	<scope>test</scope>
-    </dependency>
-    <dependency>
-    	<groupId>commons-io</groupId>
-    	<artifactId>commons-io</artifactId>
-    	<version>2.0</version>
-    	<scope>test</scope>
-    </dependency>
-  </dependencies>
-</project>
diff --git a/tiles-autotag/maven-autotag-plugin/src/main/java/org/apache/tiles/autotag/plugin/AbstractGenerateMojo.java b/tiles-autotag/maven-autotag-plugin/src/main/java/org/apache/tiles/autotag/plugin/AbstractGenerateMojo.java
deleted file mode 100644
index b78e1ec..0000000
--- a/tiles-autotag/maven-autotag-plugin/src/main/java/org/apache/tiles/autotag/plugin/AbstractGenerateMojo.java
+++ /dev/null
@@ -1,175 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.autotag.plugin;
-
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.util.List;
-import java.util.Map;
-import java.util.Properties;
-import java.util.jar.JarFile;
-import java.util.zip.ZipEntry;
-
-import org.apache.maven.model.Resource;
-import org.apache.maven.plugin.AbstractMojo;
-import org.apache.maven.plugin.MojoExecutionException;
-import org.apache.maven.project.MavenProject;
-import org.apache.tiles.autotag.generate.TemplateGenerator;
-import org.apache.tiles.autotag.generate.TemplateGeneratorFactory;
-import org.apache.tiles.autotag.model.TemplateSuite;
-import org.apache.velocity.app.VelocityEngine;
-
-import com.thoughtworks.xstream.XStream;
-import com.thoughtworks.xstream.converters.reflection.Sun14ReflectionProvider;
-
-/**
- * Abstract class to generate boilerplate code starting from template model classes.
- *
- * @version $Rev$ $Date$
- */
-public abstract class AbstractGenerateMojo extends AbstractMojo {
-    /**
-     * The position of the template suite XML descriptor.
-     */
-    static final String META_INF_TEMPLATE_SUITE_XML = "META-INF/template-suite.xml";
-
-    /**
-     * The classpath elements.
-     *
-     * @parameter expression="${project.compileClasspathElements}"
-     * @required
-     * @readonly
-     */
-    List<String> classpathElements;
-
-    /**
-     * Location of the generated classes.
-     *
-     * @parameter expression="${project.build.directory}/autotag-classes"
-     * @required
-     */
-    File classesOutputDirectory;
-
-    /**
-     * Location of the generated resources.
-     *
-     * @parameter expression="${project.build.directory}/autotag-resources"
-     * @required
-     */
-    File resourcesOutputDirectory;
-
-    /**
-     * Name of the package.
-     * @parameter expression="sample"
-     * @required
-     */
-    String packageName;
-
-    /**
-     * @parameter expression="${project}"
-     * @required
-     * @readonly
-     */
-    MavenProject project;
-
-    /** {@inheritDoc} */
-    public void execute() throws MojoExecutionException {
-        try {
-            InputStream stream = findTemplateSuiteDescriptor();
-            XStream xstream = new XStream(new Sun14ReflectionProvider());
-            TemplateSuite suite = (TemplateSuite) xstream.fromXML(stream);
-            stream.close();
-
-            Properties props = new Properties();
-            InputStream propsStream = getClass().getResourceAsStream("/org/apache/tiles/autotag/velocity.properties");
-            props.load(propsStream);
-            propsStream.close();
-            TemplateGenerator generator = createTemplateGeneratorFactory(
-                    new VelocityEngine(props)).createTemplateGenerator();
-            generator.generate(packageName, suite, getParameters(), getRuntimeClass());
-            if (generator.isGeneratingResources()) {
-                Resource resource = new Resource();
-                resource.setDirectory(resourcesOutputDirectory.getAbsolutePath());
-                project.addResource(resource);
-            }
-            if (generator.isGeneratingClasses()) {
-                project.addCompileSourceRoot(classesOutputDirectory.getAbsolutePath());
-            }
-        } catch (IOException e) {
-            throw new MojoExecutionException("error", e);
-        } catch (RuntimeException e) {
-            throw e;
-        } catch (Exception e) {
-            throw new MojoExecutionException("error", e);
-        }
-    }
-
-    /**
-     * Creates a template generator factory.
-     *
-     * @param velocityEngine The Velocity engine.
-     * @return The template generator factory.
-     */
-    protected abstract TemplateGeneratorFactory createTemplateGeneratorFactory(VelocityEngine velocityEngine);
-
-    /**
-     * Returns the map of parameters.
-     *
-     * @return The parameters.
-     */
-    protected abstract Map<String, String> getParameters();
-
-    /**
-     * Searches for the template suite descriptor in all dependencies and sources.
-     *
-     * @return The inputstream of the identified descriptor.
-     * @throws IOException If something goes wrong.
-     */
-    private InputStream findTemplateSuiteDescriptor() throws IOException {
-        InputStream retValue = null;
-
-        for (String path : classpathElements) {
-            File file = new File(path);
-            if (file.isDirectory()) {
-                File candidate = new File(file, META_INF_TEMPLATE_SUITE_XML);
-                if (candidate.exists()) {
-                    return new FileInputStream(candidate);
-                }
-            } else if (file.getPath().endsWith(".jar")) {
-                JarFile jar = new JarFile(file);
-                ZipEntry entry = jar.getEntry(META_INF_TEMPLATE_SUITE_XML);
-                if (entry != null) {
-                    return jar.getInputStream(entry);
-                }
-            }
-        }
-
-        return retValue;
-    }
-
-    /**
-     * Name of the Runtime class.
-     * @return The name of the Runtime class.
-     */
-    protected abstract String getRuntimeClass();
-}
diff --git a/tiles-autotag/maven-autotag-plugin/src/main/java/org/apache/tiles/autotag/plugin/CreateDescriptorMojo.java b/tiles-autotag/maven-autotag-plugin/src/main/java/org/apache/tiles/autotag/plugin/CreateDescriptorMojo.java
deleted file mode 100644
index 50fc500..0000000
--- a/tiles-autotag/maven-autotag-plugin/src/main/java/org/apache/tiles/autotag/plugin/CreateDescriptorMojo.java
+++ /dev/null
@@ -1,179 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.autotag.plugin;
-
-/*
- * Copyright 2001-2005 The Apache Software Foundation.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-import java.io.File;
-import java.io.FileWriter;
-import java.io.IOException;
-import java.io.Writer;
-import java.util.Collections;
-import java.util.HashSet;
-import java.util.Set;
-
-import org.apache.maven.model.Resource;
-import org.apache.maven.plugin.AbstractMojo;
-import org.apache.maven.plugin.MojoExecutionException;
-import org.apache.maven.project.MavenProject;
-import org.apache.tiles.autotag.core.QDoxTemplateSuiteFactory;
-import org.apache.tiles.autotag.model.TemplateSuite;
-import org.codehaus.plexus.compiler.util.scan.InclusionScanException;
-import org.codehaus.plexus.compiler.util.scan.SimpleSourceInclusionScanner;
-import org.codehaus.plexus.compiler.util.scan.SourceInclusionScanner;
-import org.codehaus.plexus.compiler.util.scan.mapping.SourceMapping;
-
-import com.thoughtworks.xstream.XStream;
-
-/**
- * Creates a descriptor for the template model in XML format.
- *
- * @goal create-descriptor
- *
- * @phase generate-resources
- */
-public class CreateDescriptorMojo extends AbstractMojo {
-    /**
-     * Location of the file.
-     *
-     * @parameter expression="${project.build.directory}/autotag-template-suite"
-     * @required
-     */
-    File outputDirectory;
-
-    /**
-     * Location of the file.
-     *
-     * @parameter expression="${project.build.sourceDirectory}"
-     * @required
-     */
-    File sourceDirectory;
-
-    /**
-     * @parameter
-     */
-    Set<String> includes;
-
-    /**
-     * The name of the template.
-     *
-     * @parameter
-     * @required
-     */
-    String name;
-
-    /**
-     * The documentation of the suite.
-     *
-     * @parameter
-     */
-    String documentation;
-
-    /**
-     * @parameter
-     */
-    Set<String> excludes;
-
-    /**
-     * @parameter expression="${project}"
-     * @required
-     * @readonly
-     */
-    MavenProject project;
-
-    /** {@inheritDoc} */
-    @SuppressWarnings("unchecked")
-    public void execute() throws MojoExecutionException {
-        try {
-            Set<File> filesSet = getSourceInclusionScanner().getIncludedSources(
-                    sourceDirectory, outputDirectory);
-            File[] files = new File[filesSet.size()];
-            QDoxTemplateSuiteFactory factory = new QDoxTemplateSuiteFactory(filesSet.toArray(files));
-            factory.setSuiteName(name);
-            factory.setSuiteDocumentation(documentation);
-            TemplateSuite suite = factory.createTemplateSuite();
-            XStream xstream = new XStream();
-            File dir = new File(outputDirectory, "META-INF");
-            dir.mkdirs();
-            File outputFile = new File(dir, "template-suite.xml");
-            outputFile.createNewFile();
-            Writer writer = new FileWriter(outputFile);
-            xstream.toXML(suite, writer);
-            writer.close();
-            Resource resource = new Resource();
-            resource.setDirectory(outputDirectory.getAbsolutePath());
-            project.addResource(resource);
-        } catch (InclusionScanException e) {
-            throw new MojoExecutionException("error", e);
-        } catch (IOException e) {
-            throw new MojoExecutionException("error", e);
-        }
-    }
-
-    /**
-     * Creates a source inclusion scanner.
-     *
-     * @return The inclusion scanner.
-     */
-    private SourceInclusionScanner getSourceInclusionScanner() {
-        SourceInclusionScanner scanner = null;
-        if (includes == null) {
-            includes = new HashSet<String>();
-        }
-        if (excludes == null) {
-            excludes = new HashSet<String>();
-        }
-
-        if (includes.isEmpty() && excludes.isEmpty()) {
-            includes = Collections.singleton("**/*Model.java");
-            scanner = new SimpleSourceInclusionScanner(includes, excludes);
-        } else {
-            if (includes.isEmpty()) {
-                includes = Collections.singleton("**/*Model.java");
-            }
-            scanner = new SimpleSourceInclusionScanner(includes, excludes);
-        }
-        scanner.addSourceMapping(new SourceMapping() {
-
-            @SuppressWarnings("rawtypes")
-            @Override
-            public Set getTargetFiles(File targetDir, String source) {
-                return null;
-            }
-        });
-
-        return scanner;
-    }
-}
diff --git a/tiles-autotag/maven-autotag-plugin/src/main/java/org/apache/tiles/autotag/plugin/GenerateFreemarkerMojo.java b/tiles-autotag/maven-autotag-plugin/src/main/java/org/apache/tiles/autotag/plugin/GenerateFreemarkerMojo.java
deleted file mode 100644
index 9498ec3..0000000
--- a/tiles-autotag/maven-autotag-plugin/src/main/java/org/apache/tiles/autotag/plugin/GenerateFreemarkerMojo.java
+++ /dev/null
@@ -1,65 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.autotag.plugin;
-
-import java.util.Map;
-
-import org.apache.tiles.autotag.freemarker.FMTemplateGeneratorFactory;
-import org.apache.tiles.autotag.generate.TemplateGeneratorBuilder;
-import org.apache.tiles.autotag.generate.TemplateGeneratorFactory;
-import org.apache.velocity.app.VelocityEngine;
-
-/**
- * Generates Freemarker code.
- *
- * @goal generate-freemarker
- *
- * @phase generate-sources
- * @requiresDependencyResolution compile
- */
-public class GenerateFreemarkerMojo extends AbstractGenerateMojo {
-
-    /**
-     * Name of the Runtime.
-     * @parameter expression="org.apache.tiles.autotag.freemarker.runtime.Runtime"
-     * @required
-     */
-    String freemarkerRuntime;
-
-    /** {@inheritDoc} */
-    @Override
-    protected Map<String, String> getParameters() {
-        return null;
-    }
-
-    /** {@inheritDoc} */
-    @Override
-    protected String getRuntimeClass() {
-        return freemarkerRuntime;
-    }
-
-    @Override
-    protected TemplateGeneratorFactory createTemplateGeneratorFactory(
-            VelocityEngine velocityEngine) {
-        return new FMTemplateGeneratorFactory(classesOutputDirectory,
-                velocityEngine, TemplateGeneratorBuilder.createNewInstance());
-    }
-}
diff --git a/tiles-autotag/maven-autotag-plugin/src/main/java/org/apache/tiles/autotag/plugin/GenerateJspMojo.java b/tiles-autotag/maven-autotag-plugin/src/main/java/org/apache/tiles/autotag/plugin/GenerateJspMojo.java
deleted file mode 100644
index c76d536..0000000
--- a/tiles-autotag/maven-autotag-plugin/src/main/java/org/apache/tiles/autotag/plugin/GenerateJspMojo.java
+++ /dev/null
@@ -1,93 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.autotag.plugin;
-
-/*
- * Copyright 2001-2005 The Apache Software Foundation.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-import java.util.HashMap;
-import java.util.Map;
-
-import org.apache.tiles.autotag.generate.TemplateGeneratorBuilder;
-import org.apache.tiles.autotag.generate.TemplateGeneratorFactory;
-import org.apache.tiles.autotag.jsp.JspTemplateGeneratorFactory;
-import org.apache.velocity.app.VelocityEngine;
-
-
-/**
- * Goal which touches a timestamp file.
- *
- * @goal generate-jsp
- *
- * @phase generate-sources
- * @requiresDependencyResolution compile
- */
-public class GenerateJspMojo extends AbstractGenerateMojo {
-
-    /**
-     * URI of the tag library.
-     *
-     * @parameter expression="http://www.example.com/tags/example"
-     */
-    String taglibURI;
-
-    /**
-     * Name of the Runtime.
-     * @parameter expression="org.apache.tiles.autotag.jsp.runtime.Runtime"
-     * @required
-     */
-    String jspRuntime;
-
-    /** {@inheritDoc} */
-    @Override
-    protected Map<String, String> getParameters() {
-        Map<String, String> params = new HashMap<String, String>();
-        params.put("taglibURI", taglibURI);
-        return params;
-    }
-
-    /** {@inheritDoc} */
-    @Override
-    protected String getRuntimeClass() {
-        return jspRuntime;
-    }
-
-    @Override
-    protected TemplateGeneratorFactory createTemplateGeneratorFactory(
-            VelocityEngine velocityEngine) {
-        return new JspTemplateGeneratorFactory(classesOutputDirectory,
-                resourcesOutputDirectory, velocityEngine,
-                TemplateGeneratorBuilder.createNewInstance());
-    }
-}
diff --git a/tiles-autotag/maven-autotag-plugin/src/main/java/org/apache/tiles/autotag/plugin/GenerateVelocityMojo.java b/tiles-autotag/maven-autotag-plugin/src/main/java/org/apache/tiles/autotag/plugin/GenerateVelocityMojo.java
deleted file mode 100644
index bda7ac4..0000000
--- a/tiles-autotag/maven-autotag-plugin/src/main/java/org/apache/tiles/autotag/plugin/GenerateVelocityMojo.java
+++ /dev/null
@@ -1,83 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.autotag.plugin;
-
-/*
- * Copyright 2001-2005 The Apache Software Foundation.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-import java.util.Map;
-
-import org.apache.tiles.autotag.generate.TemplateGeneratorBuilder;
-import org.apache.tiles.autotag.generate.TemplateGeneratorFactory;
-import org.apache.tiles.autotag.velocity.VelocityTemplateGeneratorFactory;
-import org.apache.velocity.app.VelocityEngine;
-
-
-/**
- * Generates Velocity code.
- *
- * @goal generate-velocity
- *
- * @phase generate-sources
- * @requiresDependencyResolution compile
- */
-public class GenerateVelocityMojo extends AbstractGenerateMojo {
-
-    /**
-     * Name of the Runtime.
-     * @parameter expression="org.apache.tiles.autotag.velocity.runtime.Runtime"
-     * @required
-     */
-    String velocityRuntime;
-
-    /** {@inheritDoc} */
-    @Override
-    protected Map<String, String> getParameters() {
-        return null;
-    }
-
-    /** {@inheritDoc} */
-    @Override
-    protected String getRuntimeClass() {
-        return velocityRuntime;
-    }
-
-    @Override
-    protected TemplateGeneratorFactory createTemplateGeneratorFactory(
-            VelocityEngine velocityEngine) {
-        return new VelocityTemplateGeneratorFactory(classesOutputDirectory,
-                resourcesOutputDirectory, velocityEngine,
-                TemplateGeneratorBuilder.createNewInstance());
-    }
-}
diff --git a/tiles-autotag/maven-autotag-plugin/src/main/java/org/apache/tiles/autotag/plugin/package-info.java b/tiles-autotag/maven-autotag-plugin/src/main/java/org/apache/tiles/autotag/plugin/package-info.java
deleted file mode 100644
index e25ccb0..0000000
--- a/tiles-autotag/maven-autotag-plugin/src/main/java/org/apache/tiles/autotag/plugin/package-info.java
+++ /dev/null
@@ -1,24 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-/**
- * Contains the autotag mojos.
- */
-package org.apache.tiles.autotag.plugin;
diff --git a/tiles-autotag/maven-autotag-plugin/src/site/site.xml b/tiles-autotag/maven-autotag-plugin/src/site/site.xml
deleted file mode 100644
index 0a7d00d..0000000
--- a/tiles-autotag/maven-autotag-plugin/src/site/site.xml
+++ /dev/null
@@ -1,56 +0,0 @@
-<?xml version="1.0" encoding="ISO-8859-1"?>
-<!--
-/*
- * $Id: site.xml 1081442 2011-03-14 16:21:08Z apetrelli $
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
--->
-<project name="Apache - Tiles Autotags">
-    <bannerLeft>
-        <name>Apache Software Foundation</name>
-        <src>http://www.apache.org/images/asf-logo.gif</src>
-        <href>http://www.apache.org</href>
-    </bannerLeft>
-    <bannerRight>
-        <name>Apache Tiles&#8482;</name>
-        <src>http://tiles.apache.org/images/logo.png</src>
-        <href>http://tiles.apache.org</href>
-    </bannerRight>
-    <body>
-
-        <links>
-            <item name="Apache" href="http://www.apache.org" />
-            <item name="Tiles" href="http://tiles.apache.org" />
-        </links>
-
-
-        <menu name="Apache Tiles&#8482;">
-            <item
-                   name="Tiles Home"
-                   href="../../index.html"/>
-            <item
-                   name="Tiles Autotag"
-                   href="../index.html"/>
-        </menu>
-
-        <menu ref="modules" />
-        <menu ref="reports" />
-
-    </body>
-</project>
diff --git a/tiles-autotag/maven-autotag-plugin/src/test/java/org/apache/tiles/autotag/plugin/AbstractGenerateMojoTest.java b/tiles-autotag/maven-autotag-plugin/src/test/java/org/apache/tiles/autotag/plugin/AbstractGenerateMojoTest.java
deleted file mode 100644
index 65e47ee..0000000
--- a/tiles-autotag/maven-autotag-plugin/src/test/java/org/apache/tiles/autotag/plugin/AbstractGenerateMojoTest.java
+++ /dev/null
@@ -1,93 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.autotag.plugin;
-
-import static org.easymock.EasyMock.*;
-
-import java.io.File;
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Map;
-
-import org.apache.commons.io.FileUtils;
-import org.apache.maven.model.Resource;
-import org.apache.maven.plugin.MojoExecutionException;
-import org.apache.maven.project.MavenProject;
-import org.apache.tiles.autotag.generate.TemplateGenerator;
-import org.apache.tiles.autotag.generate.TemplateGeneratorFactory;
-import org.apache.tiles.autotag.model.TemplateSuite;
-import org.apache.velocity.app.VelocityEngine;
-import org.junit.Test;
-
-/**
- * Tests {@link AbstractGenerateMojo}.
- *
- * @version $Rev$ $Date$
- */
-public class AbstractGenerateMojoTest {
-
-    /**
-     * Tests {@link AbstractGenerateMojo#execute()}.
-     * @throws IOException If something goes wrong.
-     * @throws MojoExecutionException If something goes wrong.
-     */
-    @Test
-    public void testExecute() throws IOException, MojoExecutionException {
-        MavenProject mavenProject = createMock(MavenProject.class);
-        TemplateGeneratorFactory factory = createMock(TemplateGeneratorFactory.class);
-        TemplateGenerator generator = createMock(TemplateGenerator.class);
-        @SuppressWarnings("unchecked")
-        Map<String, String> params = createMock(Map.class);
-        AbstractGenerateMojo mojo = createMockBuilder(AbstractGenerateMojo.class).createMock();
-        List<String> classpathElements = new ArrayList<String>();
-        File source = new File(System.getProperty("basedir"), "src/test/resources");
-        classpathElements.add(source.getAbsolutePath());
-        mojo.classpathElements = classpathElements;
-        File temp = File.createTempFile("autotagmojogen", ".tmp");
-        temp.delete();
-        temp.mkdirs();
-        File resourcesOutputDirectory = new File(temp, "res/");
-        File classesOutputDirectory = new File(temp, "classes/");
-        resourcesOutputDirectory.mkdir();
-        classesOutputDirectory.mkdir();
-        mojo.resourcesOutputDirectory = resourcesOutputDirectory;
-        mojo.classesOutputDirectory = classesOutputDirectory;
-        mojo.packageName = "my.package";
-        mojo.project = mavenProject;
-
-        expect(mojo.createTemplateGeneratorFactory(isA(VelocityEngine.class))).andReturn(factory);
-        expect(factory.createTemplateGenerator()).andReturn(generator);
-        expect(mojo.getParameters()).andReturn(params);
-        expect(mojo.getRuntimeClass()).andReturn("my.package.Runtime");
-        generator.generate(eq("my.package"), isA(TemplateSuite.class), eq(params), eq("my.package.Runtime"));
-        expect(generator.isGeneratingClasses()).andReturn(true);
-        expect(generator.isGeneratingResources()).andReturn(true);
-        mavenProject.addResource(isA(Resource.class));
-        mavenProject.addCompileSourceRoot(classesOutputDirectory.getAbsolutePath());
-
-        replay(mavenProject, mojo, factory, generator, params);
-        mojo.execute();
-        FileUtils.deleteDirectory(temp);
-        verify(mavenProject, mojo, factory, generator, params);
-    }
-
-}
diff --git a/tiles-autotag/maven-autotag-plugin/src/test/java/org/apache/tiles/autotag/plugin/CreateDescriptorMojoTest.java b/tiles-autotag/maven-autotag-plugin/src/test/java/org/apache/tiles/autotag/plugin/CreateDescriptorMojoTest.java
deleted file mode 100644
index ccd4850..0000000
--- a/tiles-autotag/maven-autotag-plugin/src/test/java/org/apache/tiles/autotag/plugin/CreateDescriptorMojoTest.java
+++ /dev/null
@@ -1,163 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.autotag.plugin;
-
-import static org.easymock.EasyMock.*;
-import static org.junit.Assert.*;
-
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.util.ArrayList;
-import java.util.List;
-
-import org.apache.commons.io.FileUtils;
-import org.apache.maven.model.Resource;
-import org.apache.maven.plugin.MojoExecutionException;
-import org.apache.maven.project.MavenProject;
-import org.apache.tiles.autotag.core.runtime.ModelBody;
-import org.apache.tiles.autotag.model.TemplateClass;
-import org.apache.tiles.autotag.model.TemplateMethod;
-import org.apache.tiles.autotag.model.TemplateParameter;
-import org.apache.tiles.autotag.model.TemplateSuite;
-import org.apache.tiles.autotag.plugin.internal.AnnotatedExampleModel;
-import org.apache.tiles.autotag.plugin.internal.ExampleExecutableModel;
-import org.apache.tiles.autotag.plugin.internal.ExampleModel;
-import org.apache.tiles.autotag.plugin.internal.NotFeasibleExampleModel;
-import org.apache.tiles.request.Request;
-import org.junit.Test;
-
-import com.thoughtworks.xstream.XStream;
-import com.thoughtworks.xstream.converters.reflection.Sun14ReflectionProvider;
-
-/**
- * Tests {@link CreateDescriptorMojo}.
- *
- * @version $Rev$ $Date$
- */
-public class CreateDescriptorMojoTest {
-
-    /**
-     * Test method for {@link org.apache.tiles.autotag.plugin.CreateDescriptorMojo#execute()}.
-     * @throws IOException If something goes wrong.
-     * @throws MojoExecutionException If something goes wrong.
-     */
-    @Test
-    public void testExecute() throws IOException, MojoExecutionException {
-        MavenProject mavenProject = createMock(MavenProject.class);
-
-        CreateDescriptorMojo mojo = new CreateDescriptorMojo();
-        mojo.sourceDirectory = new File(System.getProperty("basedir"), "src/test/java");
-        File temp = File.createTempFile("autotagmojo", ".tmp");
-        temp.delete();
-        temp.mkdirs();
-        mojo.outputDirectory = temp;
-        mojo.name = "test";
-        mojo.documentation = "This are the docs";
-        mojo.project = mavenProject;
-
-        mavenProject.addResource(isA(Resource.class));
-
-        replay(mavenProject);
-        mojo.execute();
-        InputStream sis = new FileInputStream(new File(temp, "META-INF/template-suite.xml"));
-        XStream xstream = new XStream(new Sun14ReflectionProvider());
-        TemplateSuite suite = (TemplateSuite) xstream.fromXML(sis);
-        sis.close();
-        assertEquals("test", suite.getName());
-        assertEquals("This are the docs", suite.getDocumentation());
-        assertEquals(3, suite.getTemplateClasses().size());
-
-        TemplateClass templateClass = suite.getTemplateClassByName(ExampleModel.class.getName());
-        assertNotNull(templateClass);
-        assertEquals(ExampleModel.class.getName(), templateClass.getName());
-        assertEquals("Example start/stop template.", templateClass.getDocumentation());
-        TemplateMethod templateMethod = templateClass.getExecuteMethod();
-        assertNotNull(templateMethod);
-        assertTrue(templateMethod.hasBody());
-        assertTrue(templateClass.hasBody());
-        assertEquals("execute", templateMethod.getName());
-        assertEquals("It starts.", templateMethod.getDocumentation());
-        List<TemplateParameter> parameters = new ArrayList<TemplateParameter>(templateMethod.getParameters());
-        assertEquals(4, parameters.size());
-        TemplateParameter parameter = parameters.get(0);
-        assertEquals("one", parameter.getName());
-        assertEquals("java.lang.String", parameter.getType());
-        assertEquals("Parameter one.", parameter.getDocumentation());
-        parameter = parameters.get(1);
-        assertEquals("two", parameter.getName());
-        assertEquals("int", parameter.getType());
-        assertEquals("Parameter two.", parameter.getDocumentation());
-        parameter = parameters.get(2);
-        assertEquals("request", parameter.getName());
-        assertEquals(Request.class.getName(), parameter.getType());
-        assertEquals("The request.", parameter.getDocumentation());
-        parameter = parameters.get(3);
-        assertEquals("modelBody", parameter.getName());
-        assertEquals(ModelBody.class.getName(), parameter.getType());
-        assertEquals("The model body.", parameter.getDocumentation());
-
-        templateClass = suite.getTemplateClassByName(AnnotatedExampleModel.class.getName());
-        assertNotNull(templateClass);
-        assertEquals(AnnotatedExampleModel.class.getName(), templateClass.getName());
-        templateMethod = templateClass.getExecuteMethod();
-        assertNotNull(templateMethod);
-        assertEquals("execute", templateMethod.getName());
-        parameters = new ArrayList<TemplateParameter>(templateMethod.getParameters());
-        assertEquals(4, parameters.size());
-        parameter = parameters.get(0);
-        assertEquals("one", parameter.getName());
-        assertEquals("alternateOne", parameter.getExportedName());
-        assertEquals("java.lang.String", parameter.getType());
-        assertEquals("Parameter one.", parameter.getDocumentation());
-        assertEquals("hello", parameter.getDefaultValue());
-        assertTrue(parameter.isRequired());
-
-        templateClass = suite.getTemplateClassByName(ExampleExecutableModel.class.getName());
-        assertNotNull(templateClass);
-        assertEquals(ExampleExecutableModel.class.getName(), templateClass.getName());
-        assertEquals("Example executable template.", templateClass.getDocumentation());
-        templateMethod = templateClass.getExecuteMethod();
-        assertNotNull(templateMethod);
-        assertEquals("execute", templateMethod.getName());
-        assertEquals("It executes.", templateMethod.getDocumentation());
-        parameters = new ArrayList<TemplateParameter>(templateMethod.getParameters());
-        assertEquals(3, parameters.size());
-        parameter = parameters.get(0);
-        assertEquals("one", parameter.getName());
-        assertEquals("java.lang.String", parameter.getType());
-        assertEquals("Parameter one.", parameter.getDocumentation());
-        parameter = parameters.get(1);
-        assertEquals("two", parameter.getName());
-        assertEquals("int", parameter.getType());
-        assertEquals("Parameter two.", parameter.getDocumentation());
-        parameter = parameters.get(2);
-        assertEquals("request", parameter.getName());
-        assertEquals(Request.class.getName(), parameter.getType());
-        assertEquals("The request.", parameter.getDocumentation());
-
-        assertNull(suite.getTemplateClassByName(NotFeasibleExampleModel.class.getName()));
-        FileUtils.deleteDirectory(temp);
-        verify(mavenProject);
-    }
-
-}
diff --git a/tiles-autotag/maven-autotag-plugin/src/test/java/org/apache/tiles/autotag/plugin/GenerateFreemarkerMojoTest.java b/tiles-autotag/maven-autotag-plugin/src/test/java/org/apache/tiles/autotag/plugin/GenerateFreemarkerMojoTest.java
deleted file mode 100644
index 767cc38..0000000
--- a/tiles-autotag/maven-autotag-plugin/src/test/java/org/apache/tiles/autotag/plugin/GenerateFreemarkerMojoTest.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.autotag.plugin;
-
-import static org.junit.Assert.*;
-
-import org.apache.tiles.autotag.freemarker.FMTemplateGeneratorFactory;
-import org.junit.Test;
-
-/**
- * Tests {@link GenerateFreemarkerMojo}.
- *
- * @version $Rev$ $Date$
- */
-public class GenerateFreemarkerMojoTest {
-
-    /**
-     * Test method for {@link GenerateFreemarkerMojo#createTemplateGeneratorFactory(VelocityEngine)}.
-     */
-    @Test
-    public void testCreateTemplateGeneratorFactory() {
-        GenerateFreemarkerMojo mojo = new GenerateFreemarkerMojo();
-        assertTrue(mojo.createTemplateGeneratorFactory(null) instanceof FMTemplateGeneratorFactory);
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.autotag.plugin.GenerateFreemarkerMojo#getParameters()}.
-     */
-    @Test
-    public void testGetParameters() {
-        GenerateFreemarkerMojo mojo = new GenerateFreemarkerMojo();
-        assertNull(mojo.getParameters());
-    }
-
-}
diff --git a/tiles-autotag/maven-autotag-plugin/src/test/java/org/apache/tiles/autotag/plugin/GenerateJspMojoTest.java b/tiles-autotag/maven-autotag-plugin/src/test/java/org/apache/tiles/autotag/plugin/GenerateJspMojoTest.java
deleted file mode 100644
index 40e4a66..0000000
--- a/tiles-autotag/maven-autotag-plugin/src/test/java/org/apache/tiles/autotag/plugin/GenerateJspMojoTest.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.autotag.plugin;
-
-import static org.junit.Assert.*;
-
-import org.apache.tiles.autotag.jsp.JspTemplateGeneratorFactory;
-import org.junit.Test;
-
-/**
- * Tests {@link GenerateJspMojo}.
- *
- * @version $Rev$ $Date$
- */
-public class GenerateJspMojoTest {
-
-    /**
-     * Test method for {@link GenerateJspMojo#createTemplateGeneratorFactory(VelocityEngine)}.
-     */
-    @Test
-    public void testCreateTemplateGeneratorFactory() {
-        GenerateJspMojo mojo = new GenerateJspMojo();
-        assertTrue(mojo.createTemplateGeneratorFactory(null) instanceof JspTemplateGeneratorFactory);
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.autotag.plugin.GenerateJspMojo#getParameters()}.
-     */
-    @Test
-    public void testGetParameters() {
-        GenerateJspMojo mojo = new GenerateJspMojo();
-        mojo.taglibURI = "http://www.test.org/taglib";
-        assertEquals("http://www.test.org/taglib", mojo.getParameters().get("taglibURI"));
-    }
-
-}
diff --git a/tiles-autotag/maven-autotag-plugin/src/test/java/org/apache/tiles/autotag/plugin/GenerateVelocityMojoTest.java b/tiles-autotag/maven-autotag-plugin/src/test/java/org/apache/tiles/autotag/plugin/GenerateVelocityMojoTest.java
deleted file mode 100644
index 4f859ce..0000000
--- a/tiles-autotag/maven-autotag-plugin/src/test/java/org/apache/tiles/autotag/plugin/GenerateVelocityMojoTest.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.autotag.plugin;
-
-import static org.junit.Assert.*;
-
-import org.apache.tiles.autotag.velocity.VelocityTemplateGeneratorFactory;
-import org.junit.Test;
-
-/**
- * Tests {@link GenerateVelocityMojo}.
- *
- * @version $Rev$ $Date$
- */
-public class GenerateVelocityMojoTest {
-
-    /**
-     * Test method for {@link GenerateVelocityMojo#createTemplateGeneratorFactory(VelocityEngine)}.
-     */
-    @Test
-    public void testCreateTemplateGeneratorFactory() {
-        GenerateVelocityMojo mojo = new GenerateVelocityMojo();
-        assertTrue(mojo.createTemplateGeneratorFactory(null) instanceof VelocityTemplateGeneratorFactory);
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.autotag.plugin.GenerateVelocityMojo#getParameters()}.
-     */
-    @Test
-    public void testGetParameters() {
-        GenerateVelocityMojo mojo = new GenerateVelocityMojo();
-        assertNull(mojo.getParameters());
-    }
-
-}
diff --git a/tiles-autotag/maven-autotag-plugin/src/test/java/org/apache/tiles/autotag/plugin/internal/AnnotatedExampleModel.java b/tiles-autotag/maven-autotag-plugin/src/test/java/org/apache/tiles/autotag/plugin/internal/AnnotatedExampleModel.java
deleted file mode 100644
index 02e3678..0000000
--- a/tiles-autotag/maven-autotag-plugin/src/test/java/org/apache/tiles/autotag/plugin/internal/AnnotatedExampleModel.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.autotag.plugin.internal;
-
-import org.apache.tiles.autotag.core.runtime.ModelBody;
-import org.apache.tiles.autotag.core.runtime.annotation.Parameter;
-import org.apache.tiles.request.Request;
-
-/**
- * Example start/stop template.
- *
- * @version $Rev$ $Date$
- */
-public class AnnotatedExampleModel {
-
-    /**
-     * It starts.
-     *
-     * @param one Parameter one.
-     * @param two Parameter two.
-     * @param request The request.
-     * @param modelBody The model body.
-     */
-    public void execute(
-            @Parameter(defaultValue = "hello", name = "alternateOne", required = true) String one,
-            int two, Request request, ModelBody modelBody) {
-        // Does nothing.
-    }
-}
diff --git a/tiles-autotag/maven-autotag-plugin/src/test/java/org/apache/tiles/autotag/plugin/internal/ExampleExcluded.java b/tiles-autotag/maven-autotag-plugin/src/test/java/org/apache/tiles/autotag/plugin/internal/ExampleExcluded.java
deleted file mode 100644
index a09ca23..0000000
--- a/tiles-autotag/maven-autotag-plugin/src/test/java/org/apache/tiles/autotag/plugin/internal/ExampleExcluded.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.autotag.plugin.internal;
-
-import org.apache.tiles.autotag.core.runtime.ModelBody;
-import org.apache.tiles.request.Request;
-
-/**
- * Example start/stop template.
- *
- * @version $Rev$ $Date$
- */
-public class ExampleExcluded {
-
-    /**
-     * It starts.
-     *
-     * @param one Parameter one.
-     * @param two Parameter two.
-     * @param request The request.
-     * @param modelBody The model body.
-     */
-    public void execute(String one, int two, Request request, ModelBody modelBody) {
-        // Does nothing.
-    }
-}
diff --git a/tiles-autotag/maven-autotag-plugin/src/test/java/org/apache/tiles/autotag/plugin/internal/ExampleExecutableModel.java b/tiles-autotag/maven-autotag-plugin/src/test/java/org/apache/tiles/autotag/plugin/internal/ExampleExecutableModel.java
deleted file mode 100644
index 9f49651..0000000
--- a/tiles-autotag/maven-autotag-plugin/src/test/java/org/apache/tiles/autotag/plugin/internal/ExampleExecutableModel.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.autotag.plugin.internal;
-
-import org.apache.tiles.request.Request;
-
-/**
- * Example executable template.
- *
- * @version $Rev$ $Date$
- */
-public class ExampleExecutableModel {
-
-    /**
-     * It executes.
-     *
-     * @param one Parameter one.
-     * @param two Parameter two.
-     * @param request The request.
-     */
-    public void execute(String one, int two, Request request) {
-        // Does nothing.
-    }
-}
diff --git a/tiles-autotag/maven-autotag-plugin/src/test/java/org/apache/tiles/autotag/plugin/internal/ExampleModel.java b/tiles-autotag/maven-autotag-plugin/src/test/java/org/apache/tiles/autotag/plugin/internal/ExampleModel.java
deleted file mode 100644
index a080d01..0000000
--- a/tiles-autotag/maven-autotag-plugin/src/test/java/org/apache/tiles/autotag/plugin/internal/ExampleModel.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.autotag.plugin.internal;
-
-import org.apache.tiles.autotag.core.runtime.ModelBody;
-import org.apache.tiles.request.Request;
-
-/**
- * Example start/stop template.
- *
- * @version $Rev$ $Date$
- */
-public class ExampleModel {
-
-    /**
-     * It starts.
-     *
-     * @param one Parameter one.
-     * @param two Parameter two.
-     * @param request The request.
-     * @param modelBody The model body.
-     */
-    public void execute(String one, int two, Request request, ModelBody modelBody) {
-        // Does nothing.
-    }
-}
diff --git a/tiles-autotag/maven-autotag-plugin/src/test/java/org/apache/tiles/autotag/plugin/internal/NotFeasibleExampleModel.java b/tiles-autotag/maven-autotag-plugin/src/test/java/org/apache/tiles/autotag/plugin/internal/NotFeasibleExampleModel.java
deleted file mode 100644
index a52eb62..0000000
--- a/tiles-autotag/maven-autotag-plugin/src/test/java/org/apache/tiles/autotag/plugin/internal/NotFeasibleExampleModel.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.autotag.plugin.internal;
-
-/**
- * This won't be registered.
- *
- * @version $Rev$ $Date$
- */
-public class NotFeasibleExampleModel {
-
-    /**
-     * It starts.
-     *
-     * @param whatever Doesn't matter.
-     */
-    public void start(String whatever) {
-        // Does nothing.
-    }
-}
diff --git a/tiles-autotag/maven-autotag-plugin/src/test/resources/META-INF/template-suite.xml b/tiles-autotag/maven-autotag-plugin/src/test/resources/META-INF/template-suite.xml
deleted file mode 100644
index de0a133..0000000
--- a/tiles-autotag/maven-autotag-plugin/src/test/resources/META-INF/template-suite.xml
+++ /dev/null
@@ -1,183 +0,0 @@
-<!--
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
- -->
-<org.apache.tiles.autotag.model.TemplateSuite>
-  <name>test</name>
-  <templateClasses class="linked-hash-map">
-    <entry>
-      <string>org.apache.tiles.autotag.plugin.internal.ExampleExecutableModel</string>
-      <org.apache.tiles.autotag.model.TemplateClass>
-        <name>org.apache.tiles.autotag.plugin.internal.ExampleExecutableModel</name>
-        <tagName>exampleExecutable</tagName>
-        <tagClassPrefix>ExampleExecutable</tagClassPrefix>
-        <documentation>Example executable template.</documentation>
-        <executeMethod>
-          <name>execute</name>
-          <documentation>It executes.</documentation>
-          <parameters class="linked-hash-map">
-            <entry>
-              <string>one</string>
-              <org.apache.tiles.autotag.model.TemplateParameter>
-                <name>one</name>
-                <exportedName>one</exportedName>
-                <documentation>Parameter one.</documentation>
-                <type>java.lang.String</type>
-                <required>false</required>
-              </org.apache.tiles.autotag.model.TemplateParameter>
-            </entry>
-            <entry>
-              <string>two</string>
-              <org.apache.tiles.autotag.model.TemplateParameter>
-                <name>two</name>
-                <exportedName>two</exportedName>
-                <documentation>Parameter two.</documentation>
-                <type>int</type>
-                <required>false</required>
-              </org.apache.tiles.autotag.model.TemplateParameter>
-            </entry>
-            <entry>
-              <string>request</string>
-              <org.apache.tiles.autotag.model.TemplateParameter>
-                <name>request</name>
-                <exportedName>request</exportedName>
-                <documentation>The request.</documentation>
-                <type>org.apache.tiles.request.Request</type>
-                <required>false</required>
-              </org.apache.tiles.autotag.model.TemplateParameter>
-            </entry>
-          </parameters>
-        </executeMethod>
-      </org.apache.tiles.autotag.model.TemplateClass>
-    </entry>
-    <entry>
-      <string>org.apache.tiles.autotag.plugin.internal.ExampleModel</string>
-      <org.apache.tiles.autotag.model.TemplateClass>
-        <name>org.apache.tiles.autotag.plugin.internal.ExampleModel</name>
-        <tagName>example</tagName>
-        <tagClassPrefix>Example</tagClassPrefix>
-        <documentation>Example start/stop template.</documentation>
-        <executeMethod>
-          <name>execute</name>
-          <documentation>It starts.</documentation>
-          <parameters class="linked-hash-map">
-            <entry>
-              <string>one</string>
-              <org.apache.tiles.autotag.model.TemplateParameter>
-                <name>one</name>
-                <exportedName>one</exportedName>
-                <documentation>Parameter one.</documentation>
-                <type>java.lang.String</type>
-                <required>false</required>
-              </org.apache.tiles.autotag.model.TemplateParameter>
-            </entry>
-            <entry>
-              <string>two</string>
-              <org.apache.tiles.autotag.model.TemplateParameter>
-                <name>two</name>
-                <exportedName>two</exportedName>
-                <documentation>Parameter two.</documentation>
-                <type>int</type>
-                <required>false</required>
-              </org.apache.tiles.autotag.model.TemplateParameter>
-            </entry>
-            <entry>
-              <string>request</string>
-              <org.apache.tiles.autotag.model.TemplateParameter>
-                <name>request</name>
-                <exportedName>request</exportedName>
-                <documentation>The request.</documentation>
-                <type>org.apache.tiles.request.Request</type>
-                <required>false</required>
-              </org.apache.tiles.autotag.model.TemplateParameter>
-            </entry>
-            <entry>
-              <string>modelBody</string>
-              <org.apache.tiles.autotag.model.TemplateParameter>
-                <name>modelBody</name>
-                <exportedName>modelBody</exportedName>
-                <documentation>The model body.</documentation>
-                <type>org.apache.tiles.autotag.core.runtime.ModelBody</type>
-                <required>false</required>
-              </org.apache.tiles.autotag.model.TemplateParameter>
-            </entry>
-          </parameters>
-        </executeMethod>
-      </org.apache.tiles.autotag.model.TemplateClass>
-    </entry>
-    <entry>
-      <string>org.apache.tiles.autotag.plugin.internal.AnnotatedExampleModel</string>
-      <org.apache.tiles.autotag.model.TemplateClass>
-        <name>org.apache.tiles.autotag.plugin.internal.AnnotatedExampleModel</name>
-        <tagName>annotatedExample</tagName>
-        <tagClassPrefix>AnnotatedExample</tagClassPrefix>
-        <documentation>Example start/stop template.</documentation>
-        <executeMethod>
-          <name>execute</name>
-          <documentation>It starts.</documentation>
-          <parameters class="linked-hash-map">
-            <entry>
-              <string>one</string>
-              <org.apache.tiles.autotag.model.TemplateParameter>
-                <name>one</name>
-                <exportedName>alternateOne</exportedName>
-                <documentation>Parameter one.</documentation>
-                <type>java.lang.String</type>
-                <defaultValue>hello</defaultValue>
-                <required>true</required>
-              </org.apache.tiles.autotag.model.TemplateParameter>
-            </entry>
-            <entry>
-              <string>two</string>
-              <org.apache.tiles.autotag.model.TemplateParameter>
-                <name>two</name>
-                <exportedName>two</exportedName>
-                <documentation>Parameter two.</documentation>
-                <type>int</type>
-                <required>false</required>
-              </org.apache.tiles.autotag.model.TemplateParameter>
-            </entry>
-            <entry>
-              <string>request</string>
-              <org.apache.tiles.autotag.model.TemplateParameter>
-                <name>request</name>
-                <exportedName>request</exportedName>
-                <documentation>The request.</documentation>
-                <type>org.apache.tiles.request.Request</type>
-                <required>false</required>
-              </org.apache.tiles.autotag.model.TemplateParameter>
-            </entry>
-            <entry>
-              <string>modelBody</string>
-              <org.apache.tiles.autotag.model.TemplateParameter>
-                <name>modelBody</name>
-                <exportedName>modelBody</exportedName>
-                <documentation>The model body.</documentation>
-                <type>org.apache.tiles.autotag.core.runtime.ModelBody</type>
-                <required>false</required>
-              </org.apache.tiles.autotag.model.TemplateParameter>
-            </entry>
-          </parameters>
-        </executeMethod>
-      </org.apache.tiles.autotag.model.TemplateClass>
-    </entry>
-  </templateClasses>
-</org.apache.tiles.autotag.model.TemplateSuite>
\ No newline at end of file
diff --git a/tiles-autotag/pom.xml b/tiles-autotag/pom.xml
deleted file mode 100644
index 444155b..0000000
--- a/tiles-autotag/pom.xml
+++ /dev/null
@@ -1,174 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<!--
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements.  See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership.  The ASF licenses this file
-to you under the Apache License, Version 2.0 (the
-"License"); you may not use this file except in compliance
-with the License.  You may obtain a copy of the License at
-
-  http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing,
-software distributed under the License is distributed on an
-"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-KIND, either express or implied.  See the License for the
-specific language governing permissions and limitations
-under the License.
--->
-
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
-    <modelVersion>4.0.0</modelVersion>
-    <parent>
-        <artifactId>tiles-master</artifactId>
-        <groupId>org.apache.tiles</groupId>
-        <version>4</version>
-        <relativePath/>
-    </parent>
-    <groupId>org.apache.tiles</groupId>
-    <artifactId>tiles-autotag</artifactId>
-    <version>1.0-SNAPSHOT</version>
-    <packaging>pom</packaging>
-    <name>Autotags</name>
-    <description>Automatic generation of tags.</description>
-    <url>http://tiles.apache.org/tiles-autotag/</url>
-    <scm>
-        <connection>scm:svn:http://svn.eu.apache.org/repos/asf/tiles/framework/trunk/tiles-autotag/</connection>
-        <developerConnection>scm:svn:https://svn.eu.apache.org/repos/asf/tiles/framework/trunk/tiles-autotag/</developerConnection>
-        <url>http://svn.eu.apache.org/viewvc/tiles/framework/trunk/tiles-autotag/</url>
-    </scm>
-    <issueManagement>
-        <system>JIRA</system>
-        <url>https://issues.apache.org/jira/browse/AUTOTAG</url>
-    </issueManagement>
-
-    <modules>
-        <module>tiles-autotag-core-runtime</module>
-        <module>tiles-autotag-core</module>
-        <module>tiles-autotag-jsp</module>
-        <module>tiles-autotag-freemarker</module>
-        <module>tiles-autotag-velocity</module>
-        <module>maven-autotag-plugin</module>
-    </modules>
-    <distributionManagement>
-        <site>
-            <id>apache-site</id>
-            <url>scp://people.apache.org/www/tiles.apache.org/tiles-autotag</url>
-        </site>
-    </distributionManagement>
-    <dependencyManagement>
-        <dependencies>
-            <dependency>
-                <groupId>junit</groupId>
-                <artifactId>junit</artifactId>
-                <version>4.7</version>
-                <scope>test</scope>
-            </dependency>
-            <dependency>
-                <groupId>com.thoughtworks.qdox</groupId>
-                <artifactId>qdox</artifactId>
-                <version>1.10.1</version>
-            </dependency>
-            <dependency>
-                <groupId>org.apache.tiles</groupId>
-                <artifactId>tiles-request-api</artifactId>
-                <version>1.0-SNAPSHOT</version>
-            </dependency>
-            <dependency>
-                <groupId>org.easymock</groupId>
-                <artifactId>easymock</artifactId>
-                <version>3.0</version>
-                <scope>test</scope>
-            </dependency>
-            <dependency>
-                <groupId>org.apache.tiles</groupId>
-                <artifactId>tiles-autotag-core</artifactId>
-                <version>${project.version}</version>
-            </dependency>
-            <dependency>
-                <groupId>org.apache.tiles</groupId>
-                <artifactId>tiles-autotag-core-runtime</artifactId>
-                <version>${project.version}</version>
-            </dependency>
-            <dependency>
-                <groupId>org.apache.velocity</groupId>
-                <artifactId>velocity</artifactId>
-                <version>1.6.3</version>
-            </dependency>
-            <dependency>
-                <groupId>commons-io</groupId>
-                <artifactId>commons-io</artifactId>
-                <version>2.0</version>
-            </dependency>
-        </dependencies>
-    </dependencyManagement>
-    <profiles>
-        <profile>
-            <id>apache-release</id>
-            <build>
-                <plugins>
-                    <plugin>
-                        <artifactId>maven-install-plugin</artifactId>
-                        <configuration>
-                            <createChecksum>true</createChecksum>
-                        </configuration>
-                    </plugin>
-                    <plugin>
-                        <groupId>org.codehaus.mojo</groupId>
-                        <artifactId>rat-maven-plugin</artifactId>
-                        <version>1.0-alpha-3</version>
-                        <executions>
-                            <execution>
-                                <phase>verify</phase>
-                                <goals>
-                                    <goal>check</goal>
-                                </goals>
-                                <configuration>
-                                    <addDefaultLicenseMatchers>false</addDefaultLicenseMatchers>
-                                    <licenseMatchers>
-                                        <classNames>
-                                            <className>rat.analysis.license.ApacheSoftwareLicense20</className>
-                                        </classNames>
-                                        <classNames>
-                                            <className>rat.analysis.generation.GeneratedLicenseNotRequired</className>
-                                        </classNames>
-                                    </licenseMatchers>
-                                    <includes>
-                                        <include>pom.xml</include>
-                                        <include>src/**</include>
-                                    </includes>
-                                    <excludes>
-                                        <exclude>**/*LICENSE.txt</exclude>
-                                        <exclude>**/*MANIFEST.MF</exclude>
-                                    </excludes>
-                                </configuration>
-                            </execution>
-                        </executions>
-                    </plugin>
-                </plugins>
-            </build>
-        </profile>
-        <profile>
-            <id>linkcheck</id>
-            <reporting>
-                <plugins>
-                    <plugin>
-                        <artifactId>maven-linkcheck-plugin</artifactId>
-                        <version>1.1</version>
-                        <configuration>
-                            <excludedLinks>
-                                <excludedLink>**/index.html</excludedLink>
-                                <excludedLink>**/logo.png</excludedLink>
-                            </excludedLinks>
-                        </configuration>
-                    </plugin>
-                </plugins>
-            </reporting>
-        </profile>
-
-    </profiles>
-
-</project>
diff --git a/tiles-autotag/src/site/apt/dev/release.apt b/tiles-autotag/src/site/apt/dev/release.apt
deleted file mode 100644
index ab9bd52..0000000
--- a/tiles-autotag/src/site/apt/dev/release.apt
+++ /dev/null
@@ -1,351 +0,0 @@
-~~ $Id$
-~~
-~~ Licensed to the Apache Software Foundation (ASF) under one
-~~ or more contributor license agreements.  See the NOTICE file
-~~ distributed with this work for additional information
-~~ regarding copyright ownership.  The ASF licenses this file
-~~ to you under the Apache License, Version 2.0 (the
-~~ "License"); you may not use this file except in compliance
-~~ with the License.  You may obtain a copy of the License at
-~~
-~~ http://www.apache.org/licenses/LICENSE-2.0
-~~
-~~ Unless required by applicable law or agreed to in writing,
-~~ software distributed under the License is distributed on an
-~~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-~~ KIND, either express or implied.  See the License for the
-~~ specific language governing permissions and limitations
-~~ under the License.
-~~
-         -----------
-         Release Process
-         -----------
-
-Tiles Release Process
-
-  Here you will find the steps to create releases for Tiles.
-
-Prerequisites
-
-  To create a release you have to install:
-
-  * {{{http://java.sun.com/javase/6}Java 6.0}}. If you are using a newer
-  version of Java, it is suggested to <<change JAVA_HOME environment variable>>
-  when calling Maven, so it points to an instance of Java 6.0;
-
-  * {{{http://maven.apache.org/}Maven 2.2 or 3}};
-
-  * {{{http://www.gnupg.org/}GnuPG}};
-
-  * {{{http://www.openssh.com/}OpenSSH}};
-
-  * {{{http://www.graphviz.org/}GraphViz}};
-
-One-time operations
-
-  These operations need to be performed only one time.
-
-* Create and publish your GPG key
-
-  To create a GPG key, follow the
-  {{{http://www.apache.org/dev/openpgp.html}guidelines}}.
-  Include it in:
-
--------------------------------------
-https://svn.apache.org/repos/asf/tiles/site/KEYS
--------------------------------------
-
-  Publish your GPG key in a PGP key server, such as
-  {{{http://pgp.mit.edu/} MIT Keyserver}}.
-
-* Create and upload yout SSH key
-
-  * Generate your SSH key (in this case we will use DSA encryption):
-
----------------------------------
-ssh-keygen -t rsa
----------------------------------
-
-  * Copy your public key to the server:
-
---------------------------------------
-scp ~/.ssh/id_rsa.pub user@people.apache.org:.ssh/authorized_keys
---------------------------------------
-
-  * Try to login:
-
----------------------------------
-ssh user@people.apache.org
----------------------------------
-
-  If it does not ask you a password, everything is ok.
-
-* Modify <<<settings.xml>>>
-
-  Your <<<settings.xml>>> must be modified to allow deployment.
-
-  This is the minimal configuration, obviously if you already have a <<<settings.xml>>> file,
-  you must edit it:
-
----------------------------
-<settings xmlns="http://maven.apache.org/POM/4.0.0"
-      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-      xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
-                      http://maven.apache.org/xsd/settings-1.0.0.xsd">
-    <servers>
-        <server>
-            <id>apache-site</id>
-            <username>YOUR_APACHE_USERNAME</username>
-            <filePermissions>664</filePermissions>
-            <directoryPermissions>775</directoryPermissions>
-        </server>
-        <server>
-            <id>apache.snapshots.https</id>
-            <username>YOUR_APACHE_USERNAME</username>
-            <password>YOUR_APACHE_PASSWORD</password>
-        </server>
-        <server>
-            <id>apache.releases.https</id>
-            <username>YOUR_APACHE_USERNAME</username>
-            <password>YOUR_APACHE_PASSWORD</password>
-        </server>
-    </servers>
-    <profiles>
-        <profile>
-            <id>release</id>
-            <properties>
-                <gpg.passphrase>YOUR_SECRET_PHRASE</gpg.passphrase>
-            </properties>
-            </profile>
-        </profile>
-    </profiles>
-</settings>
----------------------------
-
-Repeatable operations
-
-  These steps must be performed <<for each>> release.
-
-* Prepare the release tag
-
-  To prepare the release Subversion tag, check out the branch/trunk from where
-  you are preparing the release and type:
-
------------------------------------
-mvn release:prepare -Dusername=YOUR_SVN_USER -Dpassword=YOUR_SVN_PASSWORD
------------------------------------
-
-  The plugin interactively will ask you the version to release, the Subversion
-  tag to use and the next snapshot version. It is reccomended to use the tag:
-  <<tiles-X.X.X>>.
-
-* Perform the Release
-
-  To perform the release, i.e. creating and deploying Maven artifacts, use:
-
------------------------------------
-mvn release:perform
------------------------------------
-
-* Close the staging repository
-
-  Login to {{{https://repository.apache.org} Nexus repository}} using your Apache LDAP credentials.
-  Click on "Staging". Then click on "tiles" in the list of repositories.
-  In the panel below you should see an open repository that is linked to your username and ip.
-  Right click on this repository and select "Close".
-  This will close the repository from future deployments and make it available for others to view.
-  If you are staging multiple releases together, skip this step until you have staged everything.
-  Enter the name and version of the artifact being released in the "Description" field and then click "Close".
-  This will make it easier to identify it later.
-
-* Verify the staged artifacts
-
-  If you click on your repository, a tree view will appear below.
-  You can then browse the contents to ensure the artifacts are as you expect them.
-  Pay particular attention to the existence of *.asc (signature) files.
-  If the you don't like the content of the repository, right click your repository and choose "Drop".
-  You can then rollback your release and repeat the process.
-
-  Note the repository URL, you will need this in your vote email.
-
-* Digest and upload assemblies
-
-  * Go into the release assembly target directory:
-
------------------------------------
-cd target/checkout/assembly/target/assembly/out
------------------------------------
-
-  * Create MD5 and SHA1 files for each files (including ASC files). You can do
-  it with this simple shell script:
-
------------------------------------
-#!/bin/sh
-
-for fileitem in *
-do
-  openssl md5 < $fileitem > $fileitem.md5
-  openssl sha1 < $fileitem > $fileitem.sha1
-done
------------------------------------
-
-  * Upload everything to the build site:
-
------------------------------------
-scp * user@people.apache.org:/www/people.apache.org/builds/tiles/${version}
------------------------------------
-
-* Release the JIRA version
-
-  * In JIRA go to the version that you want to release and release it.
-
-  * Create a new version, if it has not been done before.
-
-  * Create the release notes and <<write down the link>> that it uses.
-
-* Send announcement for the test build
-
-  In <<developers mailing list>> send an announcement for the test build:
-
------------------------------------
-Subject: [ANNOUNCE] Tiles ${version} test build available
-
-The test build of Tiles ${version} is available.
-
-
-No determination as to the quality ('alpha,' 'beta,' or 'GA') of Tiles
-${version} has been made, and at this time it is simply a "test build". We
-welcome any comments you may have, and will take all feedback into
-account if a quality vote is called for this build.
-
-Release notes:
-
-* ${jira.release.notes}
-
-Distribution:
-
- * http://people.apache.org/builds/tiles/${version}/
-
-Maven 2 staging repository:
-
- * https://repository.apache.org/content/repositories/tiles-[YOUR REPOSITORY ID]/
-
-A vote regarding the quality of this test build will be initiated
-within the next couple of days.
------------------------------------
-
-* Call for a vote
-
-  A few days after the test build announcement, call for a vote in
-  <<developers mailing list>>.
-
------------------------------------
-Subject: [VOTE] ${version} Release Quality
-
-The Tiles ${version} test build has been available since ${testBuildDate}.
-
-Release notes:
-
-* ${jira.release.notes}
-
-Distribution:
-
- * http://people.apache.org/builds/tiles/${version}/
-
-Maven 2 staging repository:
-
- * https://repository.apache.org/content/repositories/tiles-[YOUR REPOSITORY ID]/
-
-If you have had a chance to review the test build, please respond with
-a vote on its quality:
-
- [ ] Leave at test build
- [ ] Alpha
- [ ] Beta
- [ ] General Availability (GA)
-
-
-Everyone who has tested the build is invited to vote. Votes by PMC
-members are considered binding. A vote passes if there are at least
-three binding +1s and more +1s than -1s.
------------------------------------
-
-* Post-vote operations
-
-  After a vote is finished, and it has been decided that is
-  <<at least of alpha quality>>, there is the need of a post-vote process.
-
-** Promote staged artifacts
-
-  Once the release is deemed fit for public consumption it can be transfered to a production repository where it will be available to all users.
-
-  Login to {{{https://repository.apache.org}Nexus repository}} again.
-  Click on "Staging" and then on the repository with id "tiles-staging".
-  Find your closed staging repository, right click on it and choose "Promote".
-  Select the "Releases" repository and click "Promote".
-
-  Next click on "Repositories", select the "Releases" repository
-  and validate that your artifacts exist as you expect them.
-
-** Move assemblies
-
-  * Move assemblies to the Apache distribution mirrors:
-
--------------------------------------------
-ssh user@people.apache.org
-
-cd /www/people.apache.org/builds/tiles/${version}
-mkdir /www/www.apache.org/dist/tiles/v${version}/
-cp * /www/www.apache.org/dist/tiles/v${version}/
--------------------------------------------
-
-** Update the site
-
-  * Wait 24 hours to let the mirror sync to the release and then update the
-  site. In particular you have to update the index and the download pages:
-
-------------------------------------------------
-https://svn.apache.org/repos/asf/tiles/site/src/site/xdoc/index.xml
-https://svn.apache.org/repos/asf/tiles/site/src/site/apt/download.apt
-------------------------------------------------
-
-  Build and publish the site:
-
---------------------------------------
-mvn site
-mvn site:deploy
---------------------------------------
-
-** Send announcement
-
-  Finally, send an an announcement to the <<users>> and <<developers mailing
-  list>>:
-
---------------------------------------
-Subject: [ANNOUNCE] Tiles ${version} ${quality} released
-
-The Apache Tiles team is pleased to announce the release of Tiles ${version}
-${quality}.
-
-Tiles ${version} is available in a binary and a source distribution.
-
-http://tiles.apache.org/download.html
-
-It is also available in the central Maven repository under Group ID
-"org.apache.tiles".
-
-The 2.0.x series of the Apache Tiles framework has a minimum
-requirement of the following specification versions:
-
-* Java Servlet 2.4 and JavaServer Pages (JSP) 2.0
-* Java Standard Edition (Java SE) 1.5
-
-The release notes are available online at:
-
-* ${jira.release.notes}
-
-Please feel free to test the distribution and post your comments to
-the user list, or, if appropriate, file a ticket with JIRA.
---------------------------------------
-
-  <<You have finished!>>
diff --git a/tiles-autotag/src/site/apt/plugin.apt b/tiles-autotag/src/site/apt/plugin.apt
deleted file mode 100644
index 830a65d..0000000
--- a/tiles-autotag/src/site/apt/plugin.apt
+++ /dev/null
@@ -1,105 +0,0 @@
-~~ $Id$
-~~
-~~ Licensed to the Apache Software Foundation (ASF) under one
-~~ or more contributor license agreements.  See the NOTICE file
-~~ distributed with this work for additional information
-~~ regarding copyright ownership.  The ASF licenses this file
-~~ to you under the Apache License, Version 2.0 (the
-~~ "License"); you may not use this file except in compliance
-~~ with the License.  You may obtain a copy of the License at
-~~
-~~ http://www.apache.org/licenses/LICENSE-2.0
-~~
-~~ Unless required by applicable law or agreed to in writing,
-~~ software distributed under the License is distributed on an
-~~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-~~ KIND, either express or implied.  See the License for the
-~~ specific language governing permissions and limitations
-~~ under the License.
-~~
-         -----------
-         Building a tag library for Freemarker, JSP or Velocity
-         -----------
-         
-Building a tag library for Freemarker, JSP or Velocity
-
-  Once you have {{{./taglib.html}created a generic tag library}},
-  Autotag will automatically generate the corresponding library
-  for Freemarker, JSP, or Velocity. You just create a maven project 
-  and include in <<<pom.xml>>>:
-  
-  * The appropriate implementation of tiles-request as a dependency. 
-  For instance to build a JSP taglib:
-
------------------
-<dependency>
-  <groupId>org.apache.tiles</groupId>
-  <artifactId>tiles-request-jsp</artifactId>
-  <version>1.0</version>
-</dependency>
------------------
-  
-  * Your generic tag library as a dependency. For instance:
-
------------------
-<dependency>
-  <groupId>org.example</groupId>
-  <artifactId>my-taglib</artifactId>
-  <version>1.0-SNAPSHOT</version>
-</dependency>
------------------
-  
-  * The appropriate configuration of maven-autotag-plugin. For instance:
-  
------------------
-<plugin>
-  <groupId>org.apache.tiles.autotag.plugin</groupId>
-  <artifactId>maven-autotag-plugin</artifactId>
-  <version>1.0</version>
-  <executions>
-    <execution>
-      <goals>
-        <goal>generate-jsp</goal>
-      </goals>
-      <configuration>
-        <packageName>org.example.mytaglib.jsp</packageName>
-        <jspRuntime>org.apache.tiles.request.jsp.autotag.JspAutotagRuntime</jspRuntime>
-        <taglibURI>http://example.org/mytaglib</taglibURI>
-      </configuration> 
-    </execution>
-  </executions>
-</plugin>
------------------
-
-  No further code is required.
-
-Plugin goals
-
-  one or several of the following goals may be used:
-
-  [generate-jsp] generates the files required for a JSP tag library. It can then be included
-  in a JSP using the configured taglibURI.
-  
-  [generate-freemarker] generates the files required for freemarker user-defined directives.
-  The directives can then be made available to freemarker by adding an instance of the 
-  generated class <<<...FMModelRepository>>> to the freemarker template model.
-  
-  [generate-velocity] generates the files required for velocity user directives. The directives
-  can be made available to Velocity by setting the <<<userdirective>>> property, either manually
-  or by using the generated file <<<META-INF/velocity.properties>>>.
-  
-Plugin configuration
-
-  [packageName] the destination package for the generated classes.
-  
-  [freemarkerRuntime] the runtime implementation of TilesRequest to use for freemarker, for 
-  instance <<<org.apache.tiles.request.freemarker.autotag.FreemarkerAutotagRuntime>>>.
-  
-  [jspRuntime] the runtime implementation of TilesRequest to use for JSP, for 
-  instance <<<org.apache.tiles.request.jsp.autotag.JSPAutotagRuntime>>>.
-  
-  [velocityRuntime] the runtime implementation of TilesRequest to use for velocity, for 
-  instance <<<org.apache.tiles.request.velocity.autotag.VelocityAutotagRuntime>>>.
-  
-  [taglibURI] the URI to use for the JSP taglib.
-  
diff --git a/tiles-autotag/src/site/apt/taglib.apt b/tiles-autotag/src/site/apt/taglib.apt
deleted file mode 100644
index 88cdfa2..0000000
--- a/tiles-autotag/src/site/apt/taglib.apt
+++ /dev/null
@@ -1,108 +0,0 @@
-~~ $Id$
-~~
-~~ Licensed to the Apache Software Foundation (ASF) under one
-~~ or more contributor license agreements.  See the NOTICE file
-~~ distributed with this work for additional information
-~~ regarding copyright ownership.  The ASF licenses this file
-~~ to you under the Apache License, Version 2.0 (the
-~~ "License"); you may not use this file except in compliance
-~~ with the License.  You may obtain a copy of the License at
-~~
-~~ http://www.apache.org/licenses/LICENSE-2.0
-~~
-~~ Unless required by applicable law or agreed to in writing,
-~~ software distributed under the License is distributed on an
-~~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-~~ KIND, either express or implied.  See the License for the
-~~ specific language governing permissions and limitations
-~~ under the License.
-~~
-         -----------
-         Creating a generic tag library with Autotag
-         -----------
-
-Creating a generic tag library
-
-  A generic tag library is a jar file including the classes that implement
-  the tags and a library descriptor <<<META-INF/template-suite.xml>>>, that can be used by
-  Autotag to build specific tag libraries for Freemarker, JSP, and Velocity.
-  
-  The structure of the library descriptor is rather complex; fortunately 
-  Autotag can generate it for you by parsing the sources.
-
-* The tag class
-
-  A tag in the library can be implemented by any java class that fits the following requirements:
-  
-  * The class name ends with <<<Model>>>.
-  
-  * It has a public, non-static, non-abstract method called <<<execute>>>.
-  
-  * The <<<execute>>> method returns <<<void>>>.
-  
-  * The parameters of the <<<execute>>> method are as follows:
-  
-  ** the first parameters may be anything you want; at runtime they will contain the values 
-  assigned to the attributes of the tag in the template. Those parameters may be annotated with
-  <<<org.apache.tiles.autotag.core.runtime.annotation.Parameter>>> in order to specify the name of
-  the attribute, the default value, or to make the parameter mandatory.
-  
-  ** then, one parameter of type <<<org.apache.tiles.request.Request>>>.
-  
-  ** and finally, one optional parameter of type <<<org.apache.tiles.autotag.core.runtime.ModelBody>>>;
-  at runtime it will contain the contents of the tag in the template.
-  
-  For instance:
-
-----------------
-public class MyTagModel {
-
-    public void execute( 
-        @Parameter(required=true) String mandatoryParam, 
-        String optionalParam, 
-        Request request, 
-        ModelBody body) {
-        ...
-    }
-
-}
-----------------
-  
-* Generating the library descriptor
-
-  the library descriptor can be generated using the create-descriptor goal of maven-autotag-plugin.
-  
------------------
-<plugin>
-  <groupId>org.apache.tiles.autotag.plugin</groupId>
-  <artifactId>maven-autotag-plugin</artifactId>
-  <version>1.0</version>
-  <executions>
-    <execution>
-      <goals>
-        <goal>create-descriptor</goal>
-      </goals>
-      <configuration>
-        ...
-      </configuration> 
-    </execution>
-  </executions>
-</plugin>
------------------
-
-** Configuration reference
-
-  [name] is the name of the tag library (for instance: <<<tiles>>>). It will be used for naming a
-  number of generated files.
-  
-  [documentation] is a documentation that will be included in the library descriptor, and then 
-  later in the appropriate artefacts when generating the taglibs.
-  
-  [includes] specifies what source files should be included, defaults to <<<**/*Model.java>>>.
-  It follows the usual conventions in maven.
-  
-  [excludes] specifies what source files should be included, defaults to nothing.
-  It follows the usual conventions in maven.
-  
-  [outputDirectory] specifies where to put the generated files, defaults to 
-  <<<target/autotag-template-suite>>>.
diff --git a/tiles-autotag/src/site/site.xml b/tiles-autotag/src/site/site.xml
deleted file mode 100644
index dcfcd0c..0000000
--- a/tiles-autotag/src/site/site.xml
+++ /dev/null
@@ -1,79 +0,0 @@
-<?xml version="1.0" encoding="ISO-8859-1"?>
-<!--
-/*
- * $Id: site.xml 1081442 2011-03-14 16:21:08Z apetrelli $
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
--->
-<project name="Apache - Tiles Autotags">
-    <bannerLeft>
-        <name>Apache Software Foundation</name>
-        <src>http://www.apache.org/images/asf-logo.gif</src>
-        <href>http://www.apache.org</href>
-    </bannerLeft>
-    <bannerRight>
-        <name>Apache Tiles&#8482;</name>
-        <src>http://tiles.apache.org/images/logo.png</src>
-        <href>http://tiles.apache.org</href>
-    </bannerRight>
-    <body>
-
-        <links>
-            <item name="Apache" href="http://www.apache.org" />
-            <item name="Tiles" href="http://tiles.apache.org" />
-        </links>
-
-
-        <menu name="Apache Tiles&#8482;">
-            <item
-                   name="Tiles Home"
-                   href="../index.html"/>
-            <item
-                   name="Tiles Autotag"
-                   href="./index.html"/>
-        </menu>
-        <menu name="Reference">
-            <item
-                    name="Creating an generic tag library"
-                    href="./taglib.html"/>
-            <item
-                    name="Building a tag library"
-                    href="./plugin.html"/>
-            <item
-                    name="Javadoc"
-                    href="apidocs/index.html"/>
-        </menu>
-
-        <menu name="Developers">
-            <item
-                    name="Building"
-                    href="/dev/building.html"/>
-            <item
-                    name="Snapshots"
-                    href="/dev/snapshots.html"/>
-            <item
-                    name="Release Process"
-                    href="/dev/release.html"/>
-        </menu>
-
-        <menu ref="modules" />
-        <menu ref="reports" />
-
-    </body>
-</project>
diff --git a/tiles-autotag/src/site/xdoc/dev/building.xml b/tiles-autotag/src/site/xdoc/dev/building.xml
deleted file mode 100644
index 97b102e..0000000
--- a/tiles-autotag/src/site/xdoc/dev/building.xml
+++ /dev/null
@@ -1,94 +0,0 @@
-<?xml version="1.0"?>
-<!--
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
--->
-<document>
-
-    <properties>
-        <title>Apache Autotag</title>
-    </properties>
-
-    <body>
-        <section name="Building the Autotag project">
-          <subsection name="Prerequisites">
-            <p>For all the next instructions, we assume that you downloaded and
-            installed <a href="http://maven.apache.org/">Maven</a>.</p>
-            <p>To download packages from the source repository, you need to
-            download and install <a href="http://subversion.tigris.org/">
-            Subversion</a>.</p>
-            <p>If you want to build something including JavaDocs (assemblies,
-            sites and JavaDoc report itself) you need to install
-            <a href="http://www.graphviz.org/">GraphViz</a>, otherwise you will
-            notice missing pictures inside JavaDocs pages.</p>
-          </subsection>
-          <subsection name="Building main packages">
-            <p>To build the Autotag project from source you need to:</p>
-            <ul>
-            <li><p><a href="../../download.html">download</a> the source
-            distribution, or checkout the latest version:</p>
-            <p><source>svn co http://svn.apache.org/repos/asf/tiles/framework/trunk/tiles-autotag</source></p></li>
-            <li><p>go into the source directory and type:</p>
-            <p><source>mvn package</source></p></li>
-            </ul>
-            <p>You will find the generated JARs under:</p>
-            <ul>
-            <li>{autotag-dir}/maven-autotag-plugin/target/maven-autotag-plugin-${version}.jar</li>
-            <li>{autotag-dir}/tiles-autotag-core/target/tiles-autotag-core-${version}.jar</li>
-            <li>{autotag-dir}/tiles-autotag-core-runtime/target/tiles-autotag-core-runtime-${version}.jar</li>
-            <li>{autotag-dir}/tiles-autotag-freemarker/target/tiles-autotag-freemarker-${version}.jar</li>
-            <li>{autotag-dir}/tiles-autotag-jsp/target/tiles-autotag-jsp-${version}.jar</li>
-            <li>{autotag-dir}/tiles-autotag-velocity/target/tiles-autotag-velocity-${version}.jar</li>
-            </ul>
-          </subsection>
-        </section>
-        <section name="Building the websites">
-          <p>There are four Tiles websites: the main website and the projects
-          websites (tiles-request, tiles-autotag and framework).</p>
-          <subsection name="Building the main website">
-            <p>To build the main website:</p>
-            <ul>
-            <li><p>checkout the site from the source repository:</p>
-            <p><source>svn co http://svn.apache.org/repos/asf/tiles/site/</source></p></li>
-            <li><p>go into the site directory and type:</p>
-            <p><source>mvn site</source></p></li>
-            </ul>
-            <p>You will find the generated distribution under
-            <code>{tiles-site-dir}/target/site</code>.</p>
-          </subsection>
-          <subsection name="Building the tiles-autotag website">
-            <p>To build a project's website:</p>
-            <ul>
-            <li><p><a href="../../download.html">download</a> the source
-            distribution, or checkout the latest version:</p>
-            <p><source>svn co http://svn.apache.org/repos/asf/tiles/framework/trunk/tiles-autotag</source></p></li>
-            <li><p>go into the source directory and type:</p>
-            <p><source>mvn site site:stage</source></p></li>
-            </ul>
-            <p>You will find the generated website under:</p>
-            <ul>
-            <li>{tiles-autotag-dir}/target/staging</li>
-            </ul>
-          </subsection>
-        </section>
-    </body>
-
-</document>
diff --git a/tiles-autotag/src/site/xdoc/dev/snapshots.xml b/tiles-autotag/src/site/xdoc/dev/snapshots.xml
deleted file mode 100644
index 359f7cb..0000000
--- a/tiles-autotag/src/site/xdoc/dev/snapshots.xml
+++ /dev/null
@@ -1,81 +0,0 @@
-<?xml version="1.0"?>
-<!--
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
--->
-<document>
-
-    <properties>
-        <title>Apache Tiles</title>
-    </properties>
-
-    <body>
-        <section name="Apache Tiles&#8482;">
-        <subsection name="Snapshots">
-
-        <p>Looking for snapshot builds of the latest version of Tiles?
-           Snapshots are occasionally published to Apache's Maven snapshot
-           repository, which can be accessed with the following configuration:</p>
-
-        <source>
-        <![CDATA[
-          <repository>
-              <id>apache.snapshots</id>
-              <name>Apache Maven Snapshot Repository</name>
-              <url>http://repository.apache.org/snapshots</url>
-          </repository>
-        ]]>
-        </source>
-
-        <p>After configuring the repository, declare a dependency on
-        Tiles Autotag:</p>
-
-        <source><![CDATA[
-          <dependency>
-              <groupId>org.apache.tiles</groupId>
-              <artifactId>tiles-autotag-core-runtime</artifactId>
-              <version>1.0-SNAPSHOT</version>
-          </dependency>
-        ]]>
-        </source>
-        
-        <p>Or the maven plugin:</p>
-        
-        <source><![CDATA[
-          <plugin>
-              <groupId>org.apache.tiles</groupId>
-              <artifactId>maven-autotag-plugin</artifactId>
-              <version>1.0-SNAPSHOT</version>
-              <configuration>
-                  <packageName>...</packageName>
-                  <freemarkerRuntime>...</freemarkerRuntime>
-                  <jspRuntime>...</jspRuntime>
-                  <velocityRuntime>...</velocityRuntime>
-              </configuration>
-          </plugin>
-        ]]>
-        </source>
-
-    </subsection>
-</section>
-</body>
-
-</document>
diff --git a/tiles-autotag/src/site/xdoc/index.xml b/tiles-autotag/src/site/xdoc/index.xml
deleted file mode 100644
index 8af02b0..0000000
--- a/tiles-autotag/src/site/xdoc/index.xml
+++ /dev/null
@@ -1,57 +0,0 @@
-<?xml version="1.0"?>
-<!--
-/*
- * $Id: index.xml 1162124 2011-08-26 14:16:13Z mck $
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
--->
-<document>
-
-    <properties>
-        <title>Home</title>
-    </properties>
-
-    <body>
-
-        <section name="Apache Autotag project">
-
-            <p>Tiles-3 introduces a feature complete
-                <a href="http://svn.eu.apache.org/repos/asf/tiles/sandbox/trunk/tiles-autotag/" title="Autotag SVN directory">Autotag project</a>,
-                a project that automatically generates tags (or tag-like) artifact from a common template code for a range of templating languages.
-                Today JSP tags, Freemarker directive models and Velocity directives are generated from a common template models.
-            </p>
-            <p>Such template models must have a single public method, with this signature:</p>
-            <p>
-                <span class="Apple-style-span" style="font-family: monospace; white-space: pre;">public void execute(&lt;parameters&gt;, Request request, ModelBody modelBody);</span>&nbsp;
-            </p>
-            <p>The modelBody parameter is optional: if it is not specified, the template model does not have a body.&nbsp;</p>
-            <p>For more features (required fields, default values, a name different to the one specified in the parameter list) a new annotation @Parameter has been created.</p>
-            <p>A Maven 2 (based on 2.2.1) plugin contains four Mojos:</p>
-            <p>&nbsp;</p>
-            <ul>
-                <li>the first mojo (create-descriptor) reads the template models and produces an XML file containing the description of the read models;</li>
-                <li>the others (generate-jsp, generate-freemarker, generate-velocity) produce boilerplate code.</li>
-            </ul>
-                <p>The projects using the latter mojos must include some runtime dependencies.</p>
-                <p>The boilerplate code has been removed and uses the plugin instead: it's a lot of boilerplate, boring code, now generated automatically.
-                </p>
-        </section>
-    </body>
-
-</document>
diff --git a/tiles-autotag/tiles-autotag-core-runtime/pom.xml b/tiles-autotag/tiles-autotag-core-runtime/pom.xml
deleted file mode 100644
index 93a45c3..0000000
--- a/tiles-autotag/tiles-autotag-core-runtime/pom.xml
+++ /dev/null
@@ -1,130 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<!--
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements.  See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership.  The ASF licenses this file
-to you under the Apache License, Version 2.0 (the
-"License"); you may not use this file except in compliance
-with the License.  You may obtain a copy of the License at
-
-  http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing,
-software distributed under the License is distributed on an
-"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-KIND, either express or implied.  See the License for the
-specific language governing permissions and limitations
-under the License.
--->
-
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
-  <modelVersion>4.0.0</modelVersion>
-  <parent>
-    <artifactId>tiles-autotag</artifactId>
-    <groupId>org.apache.tiles</groupId>
-    <version>1.0-SNAPSHOT</version>
-  </parent>
-  <groupId>org.apache.tiles</groupId>
-  <artifactId>tiles-autotag-core-runtime</artifactId>
-  <version>1.0-SNAPSHOT</version>
-  <name>Autotag - Core runtime</name>
-  <description>Autotag: runtime core classes.</description>
-    <build>
-        <pluginManagement>
-            <plugins>
-                <plugin>
-                    <artifactId>maven-jar-plugin</artifactId>
-                    <configuration>
-                        <archive>
-                            <manifestFile>${tiles.manifestfile}</manifestFile>
-                            <manifest>
-                                <addDefaultSpecificationEntries>true</addDefaultSpecificationEntries>
-                                <addDefaultImplementationEntries>true</addDefaultImplementationEntries>
-                            </manifest>
-                        </archive>
-                    </configuration>
-                </plugin>
-                <plugin>
-                    <groupId>org.apache.felix</groupId>
-                    <artifactId>maven-bundle-plugin</artifactId>
-                    <version>2.3.7</version>
-                    <inherited>true</inherited>
-                </plugin>
-            </plugins>
-        </pluginManagement>
-        <plugins>
-            <plugin>
-                <groupId>org.apache.felix</groupId>
-                <artifactId>maven-bundle-plugin</artifactId>
-                <configuration>
-                    <excludeDependencies>true</excludeDependencies>
-                    <manifestLocation>target/osgi</manifestLocation>
-                    <instructions>
-                        <_nouses>true</_nouses>
-                        <Bundle-SymbolicName>${tiles.osgi.symbolicName}</Bundle-SymbolicName>
-                        <Export-Package>${tiles.osgi.export}</Export-Package>
-                        <Private-Package>${tiles.osgi.private}</Private-Package>
-                        <Import-Package>${tiles.osgi.import}</Import-Package>
-                        <DynamicImport-Package>${tiles.osgi.dynamicImport}</DynamicImport-Package>
-                        <Bundle-DocURL>${project.url}</Bundle-DocURL>
-                        <Specification-Title>${project.name}</Specification-Title>
-                        <Specification-Version>${project.version}</Specification-Version>
-                        <Specification-Vendor>${project.organization.name}</Specification-Vendor>
-                        <Implementation-Title>${project.name}</Implementation-Title>
-                        <Implementation-Version>${project.version}</Implementation-Version>
-                        <Implementation-Vendor>${project.organization.name}</Implementation-Vendor>
-                        <Implementation-Vendor-Id>org.apache</Implementation-Vendor-Id>
-                    </instructions>
-                </configuration>
-                <executions>
-                    <execution>
-                        <id>bundle-manifest</id>
-                        <phase>process-classes</phase>
-                        <goals>
-                            <goal>manifest</goal>
-                        </goals>
-                    </execution>
-                </executions>
-            </plugin>
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-release-plugin</artifactId>
-                <configuration>
-                    <releaseProfiles>apache-release</releaseProfiles><!-- xxx tiles still uses "release" instead of "apache-release" -->
-                    <goals>deploy site-deploy</goals>
-                </configuration>
-            </plugin>
-        </plugins>
-
-        <defaultGoal>install</defaultGoal>
-    </build>
-
-    <properties>
-        <tiles.osgi.symbolicName>org.apache.${project.artifactId}</tiles.osgi.symbolicName>
-        <tiles.osgi.export>org.apache.tiles.*;version=${project.version}</tiles.osgi.export>
-        <tiles.osgi.import>*</tiles.osgi.import>
-        <tiles.osgi.dynamicImport />
-        <tiles.osgi.private />
-        <tiles.manifestfile>target/osgi/MANIFEST.MF</tiles.manifestfile>
-        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
-    </properties>
-
-  <dependencies>
-      <dependency>
-          <groupId>org.apache.tiles</groupId>
-          <artifactId>tiles-request-api</artifactId>
-      </dependency>
-      <dependency>
-      	<groupId>junit</groupId>
-      	<artifactId>junit</artifactId>
-      	<scope>test</scope>
-      </dependency>
-      <dependency>
-      	<groupId>org.easymock</groupId>
-      	<artifactId>easymock</artifactId>
-      	<scope>test</scope>
-      </dependency>
-  </dependencies>
-</project>
diff --git a/tiles-autotag/tiles-autotag-core-runtime/src/main/java/org/apache/tiles/autotag/core/runtime/AbstractModelBody.java b/tiles-autotag/tiles-autotag-core-runtime/src/main/java/org/apache/tiles/autotag/core/runtime/AbstractModelBody.java
deleted file mode 100644
index 8fc9da9..0000000
--- a/tiles-autotag/tiles-autotag-core-runtime/src/main/java/org/apache/tiles/autotag/core/runtime/AbstractModelBody.java
+++ /dev/null
@@ -1,83 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.autotag.core.runtime;
-
-import java.io.IOException;
-import java.io.StringWriter;
-import java.io.Writer;
-
-import org.apache.tiles.autotag.core.runtime.util.NullWriter;
-
-/**
- * Base class for the abstraction of the body.
- *
- * @version $Rev$ $Date$
- */
-public abstract class AbstractModelBody implements ModelBody {
-
-    /**
-     * The default writer to use.
-     */
-    private Writer defaultWriter;
-
-    /**
-     * Constructor.
-     *
-     * @param defaultWriter The default writer to use.
-     */
-    public AbstractModelBody(Writer defaultWriter) {
-        this.defaultWriter = defaultWriter;
-    }
-
-    @Override
-    public void evaluate() throws IOException {
-        evaluate(defaultWriter);
-    }
-
-    @Override
-    public String evaluateAsString() throws IOException {
-        StringWriter writer = new StringWriter();
-        try {
-            evaluate(writer);
-        } finally {
-            writer.close();
-        }
-        String body = writer.toString();
-        if (body != null) {
-            body = body.replaceAll("^\\s*|\\s*$", "");
-            if (body.length() <= 0) {
-                body = null;
-            }
-        }
-        return body;
-    }
-
-    @Override
-    public void evaluateWithoutWriting() throws IOException {
-        NullWriter writer = new NullWriter();
-        try {
-            evaluate(writer);
-        } finally {
-            writer.close();
-        }
-    }
-
-}
diff --git a/tiles-autotag/tiles-autotag-core-runtime/src/main/java/org/apache/tiles/autotag/core/runtime/AutotagRuntime.java b/tiles-autotag/tiles-autotag-core-runtime/src/main/java/org/apache/tiles/autotag/core/runtime/AutotagRuntime.java
deleted file mode 100644
index d95d2ca..0000000
--- a/tiles-autotag/tiles-autotag-core-runtime/src/main/java/org/apache/tiles/autotag/core/runtime/AutotagRuntime.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.autotag.core.runtime;
-
-import org.apache.tiles.request.Request;
-
-/**
- * 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 
- * parameters needed to build the actual request object.
- */
-public interface AutotagRuntime {
-    /**
-     * Creates a new Request instance.
-     * 
-     * @return The Request.
-     */
-    Request createRequest();
-    
-    /**
-     * Creates a new ModelBody instance to match the request.
-     * 
-     * @return The ModelBody.
-     */
-    ModelBody createModelBody();
-    
-    /**
-     * 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.
-     */
-    Object getParameter(String name, Object defaultValue);
-}
diff --git a/tiles-autotag/tiles-autotag-core-runtime/src/main/java/org/apache/tiles/autotag/core/runtime/ModelBody.java b/tiles-autotag/tiles-autotag-core-runtime/src/main/java/org/apache/tiles/autotag/core/runtime/ModelBody.java
deleted file mode 100644
index 81178ee..0000000
--- a/tiles-autotag/tiles-autotag-core-runtime/src/main/java/org/apache/tiles/autotag/core/runtime/ModelBody.java
+++ /dev/null
@@ -1,62 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.autotag.core.runtime;
-
-import java.io.IOException;
-import java.io.Writer;
-
-/**
- * Abstracts a tag/directive body.
- *
- * @version $Rev$ $Date$
- */
-public interface ModelBody {
-
-    /**
-     * Evaluates a body and returns it as a string.
-     *
-     * @return The body, as a string.
-     * @throws IOException If something goes wrong.
-     */
-    String evaluateAsString() throws IOException;
-
-    /**
-     * Evaluates a body, but discards result.
-     *
-     * @throws IOException If something goes wrong.
-     */
-    void evaluateWithoutWriting() throws IOException;
-
-    /**
-     * Evaluates the body and writes in the default writer.
-     *
-     * @throws IOException If something goes wrong.
-     */
-    void evaluate() throws IOException;
-
-    /**
-     * Evaluates the body and writes the result in the writer.
-     *
-     * @param writer The writer to write the result into.
-     * @throws IOException If something goes wrong.
-     */
-    void evaluate(Writer writer) throws IOException;
-}
diff --git a/tiles-autotag/tiles-autotag-core-runtime/src/main/java/org/apache/tiles/autotag/core/runtime/annotation/Parameter.java b/tiles-autotag/tiles-autotag-core-runtime/src/main/java/org/apache/tiles/autotag/core/runtime/annotation/Parameter.java
deleted file mode 100644
index 6f9c99b..0000000
--- a/tiles-autotag/tiles-autotag-core-runtime/src/main/java/org/apache/tiles/autotag/core/runtime/annotation/Parameter.java
+++ /dev/null
@@ -1,56 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.autotag.core.runtime.annotation;
-
-import java.lang.annotation.ElementType;
-import java.lang.annotation.Retention;
-import java.lang.annotation.RetentionPolicy;
-import java.lang.annotation.Target;
-
-/**
- * Specifies behaviour for a parameter of the "execute" method of a template class.
- *
- * @version $Rev$ $Date$
- */
-@Retention(RetentionPolicy.SOURCE)
-@Target(ElementType.PARAMETER)
-public @interface Parameter {
-
-    /**
-     * Indicates to use the parameter name itself for the exported name.
-     */
-    String SAME_NAME = "USE THE SAME NAME";
-
-    /**
-     * Returns the name of the exported property name.
-     */
-    String name() default SAME_NAME;
-
-    /**
-     * Indicates that this parameter is required.
-     */
-    boolean required() default false;
-
-    /**
-     * Indicates the default value, as it will be written in Java code.
-     */
-    String defaultValue() default "null";
-}
diff --git a/tiles-autotag/tiles-autotag-core-runtime/src/main/java/org/apache/tiles/autotag/core/runtime/annotation/package-info.java b/tiles-autotag/tiles-autotag-core-runtime/src/main/java/org/apache/tiles/autotag/core/runtime/annotation/package-info.java
deleted file mode 100644
index 261b48e..0000000
--- a/tiles-autotag/tiles-autotag-core-runtime/src/main/java/org/apache/tiles/autotag/core/runtime/annotation/package-info.java
+++ /dev/null
@@ -1,24 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-/**
- * Annotations to be used in template classes.
- */
-package org.apache.tiles.autotag.core.runtime.annotation;
diff --git a/tiles-autotag/tiles-autotag-core-runtime/src/main/java/org/apache/tiles/autotag/core/runtime/package-info.java b/tiles-autotag/tiles-autotag-core-runtime/src/main/java/org/apache/tiles/autotag/core/runtime/package-info.java
deleted file mode 100644
index 1e8324a..0000000
--- a/tiles-autotag/tiles-autotag-core-runtime/src/main/java/org/apache/tiles/autotag/core/runtime/package-info.java
+++ /dev/null
@@ -1,24 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-/**
- * Runtime part for all Autotag generated code.
- */
-package org.apache.tiles.autotag.core.runtime;
diff --git a/tiles-autotag/tiles-autotag-core-runtime/src/main/java/org/apache/tiles/autotag/core/runtime/util/NullWriter.java b/tiles-autotag/tiles-autotag-core-runtime/src/main/java/org/apache/tiles/autotag/core/runtime/util/NullWriter.java
deleted file mode 100644
index 6a66fb3..0000000
--- a/tiles-autotag/tiles-autotag-core-runtime/src/main/java/org/apache/tiles/autotag/core/runtime/util/NullWriter.java
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.tiles.autotag.core.runtime.util;
-
-import java.io.Writer;
-
-/**
- * A writer that does not write anything.
- *
- * @version $Rev$ $Date$
- */
-public class NullWriter extends Writer {
-
-    /** {@inheritDoc} */
-    @Override
-    public void close() {
-        // Does nothing
-    }
-
-    /** {@inheritDoc} */
-    @Override
-    public void flush() {
-        // Does nothing
-    }
-
-    /** {@inheritDoc} */
-    @Override
-    public void write(char[] cbuf, int off, int len) {
-        // Does nothing
-    }
-}
diff --git a/tiles-autotag/tiles-autotag-core-runtime/src/main/java/org/apache/tiles/autotag/core/runtime/util/package-info.java b/tiles-autotag/tiles-autotag-core-runtime/src/main/java/org/apache/tiles/autotag/core/runtime/util/package-info.java
deleted file mode 100644
index 7f2e356..0000000
--- a/tiles-autotag/tiles-autotag-core-runtime/src/main/java/org/apache/tiles/autotag/core/runtime/util/package-info.java
+++ /dev/null
@@ -1,24 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-/**
- * Utilities for Autotag core runtime.
- */
-package org.apache.tiles.autotag.core.runtime.util;
diff --git a/tiles-autotag/tiles-autotag-core-runtime/src/site/site.xml b/tiles-autotag/tiles-autotag-core-runtime/src/site/site.xml
deleted file mode 100644
index 0a7d00d..0000000
--- a/tiles-autotag/tiles-autotag-core-runtime/src/site/site.xml
+++ /dev/null
@@ -1,56 +0,0 @@
-<?xml version="1.0" encoding="ISO-8859-1"?>
-<!--
-/*
- * $Id: site.xml 1081442 2011-03-14 16:21:08Z apetrelli $
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
--->
-<project name="Apache - Tiles Autotags">
-    <bannerLeft>
-        <name>Apache Software Foundation</name>
-        <src>http://www.apache.org/images/asf-logo.gif</src>
-        <href>http://www.apache.org</href>
-    </bannerLeft>
-    <bannerRight>
-        <name>Apache Tiles&#8482;</name>
-        <src>http://tiles.apache.org/images/logo.png</src>
-        <href>http://tiles.apache.org</href>
-    </bannerRight>
-    <body>
-
-        <links>
-            <item name="Apache" href="http://www.apache.org" />
-            <item name="Tiles" href="http://tiles.apache.org" />
-        </links>
-
-
-        <menu name="Apache Tiles&#8482;">
-            <item
-                   name="Tiles Home"
-                   href="../../index.html"/>
-            <item
-                   name="Tiles Autotag"
-                   href="../index.html"/>
-        </menu>
-
-        <menu ref="modules" />
-        <menu ref="reports" />
-
-    </body>
-</project>
diff --git a/tiles-autotag/tiles-autotag-core-runtime/src/test/java/org/apache/tiles/autotag/core/runtime/AbstractModelBodyTest.java b/tiles-autotag/tiles-autotag-core-runtime/src/test/java/org/apache/tiles/autotag/core/runtime/AbstractModelBodyTest.java
deleted file mode 100644
index c37ef45..0000000
--- a/tiles-autotag/tiles-autotag-core-runtime/src/test/java/org/apache/tiles/autotag/core/runtime/AbstractModelBodyTest.java
+++ /dev/null
@@ -1,154 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.autotag.core.runtime;
-
-import static org.easymock.EasyMock.*;
-import static org.junit.Assert.*;
-
-import java.io.IOException;
-import java.io.StringWriter;
-import java.io.Writer;
-
-import org.apache.tiles.autotag.core.runtime.util.NullWriter;
-import org.junit.Test;
-
-/**
- * Tests {@link AbstractModelBody}.
- *
- * @version $Rev$ $Date$
- */
-public class AbstractModelBodyTest {
-
-    /**
-     * Test method for {@link org.apache.tiles.autotag.core.runtime.AbstractModelBody#evaluate()}.
-     * @throws IOException If something goes wrong.
-     */
-    @Test
-    public void testEvaluate() throws IOException {
-        Writer writer = createMock(Writer.class);
-        AbstractModelBody modelBody = createMockBuilder(AbstractModelBody.class).withConstructor(writer).createMock();
-
-        modelBody.evaluate(writer);
-
-        replay(writer, modelBody);
-        modelBody.evaluate();
-        verify(writer, modelBody);
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.autotag.core.runtime.AbstractModelBody#evaluateAsString()}.
-     * @throws IOException If something goes wrong.
-     */
-    @Test
-    public void testEvaluateAsString() throws IOException {
-        AbstractModelBody modelBody = new MockModelBody(null, "return me");
-        assertEquals("return me", modelBody.evaluateAsString());
-
-        modelBody = new MockModelBody(null, "\n   \n");
-        assertNull(modelBody.evaluateAsString());
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.autotag.core.runtime.AbstractModelBody#evaluateAsString()}.
-     * @throws IOException If something goes wrong.
-     */
-    @Test(expected = IOException.class)
-    public void testEvaluateAsStringException() throws IOException {
-        Writer writer = createMock(Writer.class);
-        AbstractModelBody modelBody = createMockBuilder(AbstractModelBody.class).withConstructor(writer).createMock();
-
-        modelBody.evaluate(isA(StringWriter.class));
-        expectLastCall().andThrow(new IOException());
-
-        replay(writer, modelBody);
-        try {
-            modelBody.evaluateAsString();
-        } finally {
-            verify(writer, modelBody);
-        }
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.autotag.core.runtime.AbstractModelBody#evaluateWithoutWriting()}.
-     * @throws IOException If something goes wrong.
-     */
-    @Test
-    public void testEvaluateWithoutWriting() throws IOException {
-        Writer writer = createMock(Writer.class);
-        AbstractModelBody modelBody = createMockBuilder(AbstractModelBody.class).withConstructor(writer).createMock();
-
-        modelBody.evaluate(isA(NullWriter.class));
-
-        replay(writer, modelBody);
-        modelBody.evaluateWithoutWriting();
-        verify(writer, modelBody);
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.autotag.core.runtime.AbstractModelBody#evaluateWithoutWriting()}.
-     * @throws IOException If something goes wrong.
-     */
-    @Test(expected = IOException.class)
-    public void testEvaluateWithoutWritingException() throws IOException {
-        Writer writer = createMock(Writer.class);
-        AbstractModelBody modelBody = createMockBuilder(AbstractModelBody.class).withConstructor(writer).createMock();
-
-        modelBody.evaluate(isA(NullWriter.class));
-        expectLastCall().andThrow(new IOException());
-
-        replay(writer, modelBody);
-        try {
-            modelBody.evaluateWithoutWriting();
-        } finally {
-            verify(writer, modelBody);
-        }
-    }
-
-    /**
-     * A mock model body.
-     *
-     * @version $Rev$ $Date$
-     */
-    public static class MockModelBody extends AbstractModelBody {
-
-        /**
-         * The result to return.
-         */
-        private String toReturn;
-
-        /**
-         * Constructor.
-         *
-         * @param defaultWriter The default writer.
-         * @param toReturn The result to return.
-         */
-        public MockModelBody(Writer defaultWriter, String toReturn) {
-            super(defaultWriter);
-            this.toReturn = toReturn;
-        }
-
-        @Override
-        public void evaluate(Writer writer) throws IOException {
-            writer.write(toReturn);
-        }
-
-    }
-}
diff --git a/tiles-autotag/tiles-autotag-core-runtime/src/test/java/org/apache/tiles/autotag/core/runtime/util/NullWriterTest.java b/tiles-autotag/tiles-autotag-core-runtime/src/test/java/org/apache/tiles/autotag/core/runtime/util/NullWriterTest.java
deleted file mode 100644
index f8a2ba2..0000000
--- a/tiles-autotag/tiles-autotag-core-runtime/src/test/java/org/apache/tiles/autotag/core/runtime/util/NullWriterTest.java
+++ /dev/null
@@ -1,74 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.autotag.core.runtime.util;
-
-import org.junit.Before;
-import org.junit.Test;
-
-/**
- * Tests {@link NullWriter}.
- *
- * @version $Rev$ $Date$
- */
-public class NullWriterTest {
-
-    /**
-     * A dummy size.
-     */
-    private static final int DUMMY_SIZE = 15;
-    /**
-     * The object to test.
-     */
-    private NullWriter writer;
-
-    /**
-     * Sets up the test.
-     */
-    @Before
-    public void setUp() {
-        writer = new NullWriter();
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.autotag.core.runtime.util.NullWriter#write(char[], int, int)}.
-     */
-    @Test
-    public void testWriteCharArrayIntInt() {
-        writer.write("Hello there".toCharArray(), 0, DUMMY_SIZE);
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.autotag.core.runtime.util.NullWriter#flush()}.
-     */
-    @Test
-    public void testFlush() {
-        writer.flush();
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.autotag.core.runtime.util.NullWriter#close()}.
-     */
-    @Test
-    public void testClose() {
-        writer.close();
-    }
-
-}
diff --git a/tiles-autotag/tiles-autotag-core/pom.xml b/tiles-autotag/tiles-autotag-core/pom.xml
deleted file mode 100644
index b9fe1ed..0000000
--- a/tiles-autotag/tiles-autotag-core/pom.xml
+++ /dev/null
@@ -1,83 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<!--
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements.  See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership.  The ASF licenses this file
-to you under the Apache License, Version 2.0 (the
-"License"); you may not use this file except in compliance
-with the License.  You may obtain a copy of the License at
-
-  http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing,
-software distributed under the License is distributed on an
-"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-KIND, either express or implied.  See the License for the
-specific language governing permissions and limitations
-under the License.
--->
-
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
-	<modelVersion>4.0.0</modelVersion>
-	<parent>
-		<artifactId>tiles-autotag</artifactId>
-		<groupId>org.apache.tiles</groupId>
-		<version>1.0-SNAPSHOT</version>
-	</parent>
-	<groupId>org.apache.tiles</groupId>
-	<artifactId>tiles-autotag-core</artifactId>
-	<version>1.0-SNAPSHOT</version>
-	<name>Autotag - Core</name>
-	<description>Core classes for Autotag.</description>
-	<build>
-		<resources>
-		</resources>
-		<testResources>
-			<testResource>
-				<directory>src/test/java</directory>
-				<includes>
-					<include>org/apache/tiles/autotag/core/internal/*.java</include>
-				</includes>
-			</testResource>
-			<testResource>
-				<directory>src/test/resources</directory>
-			</testResource>
-		</testResources>
-	</build>
-	<dependencies>
-		<dependency>
-			<groupId>junit</groupId>
-			<artifactId>junit</artifactId>
-			<scope>test</scope>
-		</dependency>
-		<dependency>
-			<groupId>com.thoughtworks.qdox</groupId>
-			<artifactId>qdox</artifactId>
-		</dependency>
-		<dependency>
-			<groupId>org.apache.tiles</groupId>
-			<artifactId>tiles-request-api</artifactId>
-		</dependency>
-		<dependency>
-			<groupId>org.easymock</groupId>
-			<artifactId>easymock</artifactId>
-			<scope>test</scope>
-		</dependency>
-		<dependency>
-			<groupId>org.apache.tiles</groupId>
-			<artifactId>tiles-autotag-core-runtime</artifactId>
-		</dependency>
-		<dependency>
-			<groupId>org.apache.velocity</groupId>
-			<artifactId>velocity</artifactId>
-		</dependency>
-		<dependency>
-			<groupId>commons-io</groupId>
-			<artifactId>commons-io</artifactId>
-			<scope>test</scope>
-		</dependency>
-	</dependencies>
-</project>
diff --git a/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/core/AutotagRuntimeException.java b/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/core/AutotagRuntimeException.java
deleted file mode 100644
index c4d05f9..0000000
--- a/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/core/AutotagRuntimeException.java
+++ /dev/null
@@ -1,64 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.autotag.core;
-
-/**
- * Generic exception for Autotag.
- *
- * @version $Rev$ $Date$
- */
-public class AutotagRuntimeException extends RuntimeException {
-
-    /**
-     * Constructor.
-     */
-    public AutotagRuntimeException() {
-    }
-
-    /**
-     * Constructor.
-     *
-     * @param message The message of the exception.
-     */
-    public AutotagRuntimeException(String message) {
-        super(message);
-    }
-
-    /**
-     * Constructor.
-     *
-     * @param cause The cause.
-     */
-    public AutotagRuntimeException(Throwable cause) {
-        super(cause);
-    }
-
-    /**
-     * Constructor.
-     *
-     * @param message The message of the exception.
-     * @param cause The cause.
-     */
-    public AutotagRuntimeException(String message, Throwable cause) {
-        super(message, cause);
-    }
-
-}
diff --git a/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/core/ClassParseException.java b/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/core/ClassParseException.java
deleted file mode 100644
index c2ef82b..0000000
--- a/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/core/ClassParseException.java
+++ /dev/null
@@ -1,64 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.autotag.core;
-
-/**
- * Thrown if there is a problem when parsing a class source.
- *
- * @version $Rev$ $Date$
- */
-public class ClassParseException extends AutotagRuntimeException {
-
-    /**
-     * Constructor.
-     */
-    public ClassParseException() {
-    }
-
-    /**
-     * Constructor.
-     *
-     * @param message The message of the exception.
-     */
-    public ClassParseException(String message) {
-        super(message);
-    }
-
-    /**
-     * Constructor.
-     *
-     * @param cause The cause.
-     */
-    public ClassParseException(Throwable cause) {
-        super(cause);
-    }
-
-    /**
-     * Constructor.
-     *
-     * @param message The message of the exception.
-     * @param cause The cause.
-     */
-    public ClassParseException(String message, Throwable cause) {
-        super(message, cause);
-    }
-
-}
diff --git a/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/core/QDoxTemplateSuiteFactory.java b/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/core/QDoxTemplateSuiteFactory.java
deleted file mode 100644
index cfc903b..0000000
--- a/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/core/QDoxTemplateSuiteFactory.java
+++ /dev/null
@@ -1,259 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.autotag.core;
-
-import java.io.File;
-import java.io.IOException;
-import java.net.URL;
-import java.util.ArrayList;
-import java.util.List;
-
-import org.apache.tiles.autotag.core.runtime.ModelBody;
-import org.apache.tiles.autotag.core.runtime.annotation.Parameter;
-import org.apache.tiles.autotag.model.TemplateClass;
-import org.apache.tiles.autotag.model.TemplateMethod;
-import org.apache.tiles.autotag.model.TemplateParameter;
-import org.apache.tiles.autotag.model.TemplateSuite;
-import org.apache.tiles.autotag.model.TemplateSuiteFactory;
-import org.apache.tiles.request.Request;
-
-import com.thoughtworks.qdox.JavaDocBuilder;
-import com.thoughtworks.qdox.model.Annotation;
-import com.thoughtworks.qdox.model.DocletTag;
-import com.thoughtworks.qdox.model.JavaClass;
-import com.thoughtworks.qdox.model.JavaMethod;
-import com.thoughtworks.qdox.model.JavaParameter;
-import com.thoughtworks.qdox.model.Type;
-
-/**
- * Creates a template suite using QDox.
- *
- * @version $Rev$ $Date$
- */
-public class QDoxTemplateSuiteFactory implements TemplateSuiteFactory {
-
-    /**
-     * The suffix of parsed classes.
-     */
-    private static final String TEMPLATE_SUFFIX = "Model";
-
-    /**
-     * The Javadoc builder.
-     */
-    private JavaDocBuilder builder;
-
-    /**
-     * The name of the suite.
-     */
-    private String suiteName;
-
-    /**
-     * The documentation of the suite.
-     */
-    private String suiteDocumentation;
-
-    /**
-     * Constructor.
-     *
-     * @param sourceFiles All the source files to parse.
-     */
-    public QDoxTemplateSuiteFactory(File... sourceFiles) {
-        builder = new JavaDocBuilder();
-        try {
-            for (File file : sourceFiles) {
-                builder.addSource(file);
-            }
-        } catch (IOException e) {
-            throw new ClassParseException(
-                    "I/O Exception when adding source files", e);
-        }
-    }
-
-    /**
-     * Constructor.
-     *
-     * @param urls All the URLs of source files to parse.
-     */
-    public QDoxTemplateSuiteFactory(URL... urls) {
-        builder = new JavaDocBuilder();
-        try {
-            for (URL url : urls) {
-                builder.addSource(url);
-            }
-        } catch (IOException e) {
-            throw new ClassParseException(
-                    "I/O Exception when adding source files", e);
-        }
-    }
-
-    /**
-     * Sets the suite name to assign to the created suite.
-     *
-     * @param suiteName The suite name.
-     */
-    public void setSuiteName(String suiteName) {
-        this.suiteName = suiteName;
-    }
-
-    /**
-     * Sets the suite documentation to assign to the suite.
-     *
-     * @param suiteDocumentation The suite documentation.
-     */
-    public void setSuiteDocumentation(String suiteDocumentation) {
-        this.suiteDocumentation = suiteDocumentation;
-    }
-
-    @Override
-    public TemplateSuite createTemplateSuite() {
-        List<TemplateClass> classes = new ArrayList<TemplateClass>();
-        for (JavaClass clazz : builder.getClasses()) {
-            String tagClassPrefix = getTagClassPrefix(clazz);
-            if (tagClassPrefix != null) {
-                String tagName = tagClassPrefix.substring(0, 1).toLowerCase()
-                        + tagClassPrefix.substring(1);
-                TemplateMethod executeMethod = null;
-                for (JavaMethod method : clazz.getMethods()) {
-                    if (isFeasible(method)) {
-                        executeMethod = createMethod(method);
-                    }
-                }
-                if (executeMethod != null) {
-                    TemplateClass templateClass = new TemplateClass(clazz
-                            .getFullyQualifiedName(), tagName, tagClassPrefix,
-                            executeMethod);
-                    templateClass.setDocumentation(clazz.getComment());
-                    classes.add(templateClass);
-                }
-            }
-        }
-        return new TemplateSuite(suiteName, suiteDocumentation, classes);
-    }
-
-    /**
-     * Computes the tag class prefix.
-     *
-     * @param clazz The parsed class.
-     * @return The tag class prefix.
-     */
-    private String getTagClassPrefix(JavaClass clazz) {
-        String tagName;
-        String simpleClassName = clazz.getName();
-        if (simpleClassName.endsWith(TEMPLATE_SUFFIX)
-                && simpleClassName.length() > TEMPLATE_SUFFIX.length()) {
-            tagName = simpleClassName.substring(0, 1).toUpperCase()
-                    + simpleClassName.substring(1, simpleClassName.length()
-                            - TEMPLATE_SUFFIX.length());
-        } else {
-            tagName = null;
-        }
-        return tagName;
-    }
-
-    /**
-     * Creates a template method descriptor from a parsed method.
-     *
-     * @param method The parsed method.
-     * @return The template method descriptor.
-     */
-    private TemplateMethod createMethod(JavaMethod method) {
-        List<TemplateParameter> params = new ArrayList<TemplateParameter>();
-        for (JavaParameter parameter : method.getParameters()) {
-            String exportedName = parameter.getName();
-            boolean required = false;
-            String defaultValue = null;
-            Annotation[] annotations = parameter.getAnnotations();
-            if (annotations != null && annotations.length > 0) {
-                boolean found = false;
-                for (int i = 0; i < annotations.length && !found; i++) {
-                    if (Parameter.class.getName().equals(annotations[i].getType().getFullyQualifiedName())) {
-                        found = true;
-                        String candidateName = (String) annotations[i].getNamedParameter("name");
-                        if (candidateName != null && candidateName.length() > 2) {
-                            exportedName = candidateName.substring(1, candidateName.length() - 1);
-                        }
-                        required = "true".equals(annotations[i].getNamedParameter("required"));
-                        candidateName = (String) annotations[i].getNamedParameter("defaultValue");
-                        if (candidateName != null && candidateName.length() > 2) {
-                            defaultValue = candidateName.substring(1, candidateName.length() - 1);
-                        }
-                    }
-                }
-            }
-            TemplateParameter templateParameter = new TemplateParameter(
-                    parameter.getName(), exportedName, parameter.getType()
-                            .getFullyQualifiedName(), defaultValue, required);
-            params.add(templateParameter);
-        }
-        TemplateMethod templateMethod = new TemplateMethod(method.getName(),
-                params);
-        templateMethod.setDocumentation(method.getComment());
-        DocletTag[] tags = method.getTagsByName("param");
-        for (DocletTag tag : tags) {
-            String[] tagParams = tag.getParameters();
-            if (tagParams.length > 0) {
-                TemplateParameter templateParameter = templateMethod
-                        .getParameterByName(tagParams[0]);
-                if (templateParameter != null) {
-                    String tagValue = tag.getValue();
-                    int pos = tagValue.indexOf(" ");
-                    templateParameter.setDocumentation(tagValue.substring(pos)
-                            .trim());
-                }
-            }
-        }
-        return templateMethod;
-    }
-
-    /**
-     * Verifies if the method can be used as an "execute" method.
-     *
-     * @param method The parsed method.
-     * @return <code>true</code> if it is an execute method.
-     */
-    private boolean isFeasible(JavaMethod method) {
-        Type returns = method.getReturns();
-        if ("execute".equals(method.getName()) && returns != null
-                && "void".equals(returns.getFullyQualifiedName())
-                && method.isPublic() && !method.isStatic()
-                && !method.isAbstract() && !method.isConstructor()) {
-            JavaParameter[] params = method.getParameters();
-            if (params.length > 0) {
-                JavaParameter param = params[params.length - 1];
-                if (Request.class.getName().equals(
-                        param.getType().getFullyQualifiedName())) {
-                    return true;
-                }
-            }
-            if (params.length >= 2) {
-                JavaParameter param1 = params[params.length - 2];
-                JavaParameter param2 = params[params.length - 1];
-                if (Request.class.getName().equals(
-                        param1.getType().getFullyQualifiedName())
-                        && ModelBody.class.getName().equals(
-                                param2.getType().getFullyQualifiedName())) {
-                    return true;
-                }
-            }
-        }
-        return false;
-    }
-}
diff --git a/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/core/package-info.java b/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/core/package-info.java
deleted file mode 100644
index d7ed8d7..0000000
--- a/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/core/package-info.java
+++ /dev/null
@@ -1,24 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-/**
- * The Autotag core parsing code.
- */
-package org.apache.tiles.autotag.core;
diff --git a/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/generate/AbstractTemplateClassGenerator.java b/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/generate/AbstractTemplateClassGenerator.java
deleted file mode 100644
index dd40607..0000000
--- a/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/generate/AbstractTemplateClassGenerator.java
+++ /dev/null
@@ -1,142 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.autotag.generate;
-
-import java.io.File;
-import java.io.FileWriter;
-import java.io.IOException;
-import java.io.Writer;
-import java.util.Map;
-
-import org.apache.tiles.autotag.core.AutotagRuntimeException;
-import org.apache.tiles.autotag.model.TemplateClass;
-import org.apache.tiles.autotag.model.TemplateSuite;
-import org.apache.tiles.autotag.tool.StringTool;
-import org.apache.velocity.Template;
-import org.apache.velocity.VelocityContext;
-import org.apache.velocity.app.VelocityEngine;
-import org.apache.velocity.exception.ParseErrorException;
-import org.apache.velocity.exception.ResourceNotFoundException;
-
-/**
- * A base template class generator.
- *
- * @version $Rev$ $Date$
- */
-public abstract class AbstractTemplateClassGenerator implements
-        TemplateClassGenerator {
-
-    /**
-     * The Velocity engine to use.
-     */
-    private VelocityEngine velocityEngine;
-
-    /**
-     * Constructor.
-     *
-     * @param velocityEngine The Velocity engine.
-     */
-    public AbstractTemplateClassGenerator(VelocityEngine velocityEngine) {
-        this.velocityEngine = velocityEngine;
-    }
-
-    @Override
-    public void generate(File directory, String packageName,
-            TemplateSuite suite, TemplateClass clazz, Map<String, String> parameters,
-            String runtimeClass) {
-        File dir = new File(directory, getDirectoryName(directory, packageName,
-                suite, clazz, parameters, runtimeClass));
-        dir.mkdirs();
-        File file = new File(dir, getFilename(dir, packageName, suite, clazz, parameters, runtimeClass));
-        VelocityContext context = new VelocityContext();
-        context.put("packageName", packageName);
-        context.put("suite", suite);
-        context.put("clazz", clazz);
-        context.put("stringTool", new StringTool());
-        context.put("parameters", parameters);
-        context.put("runtimeClass", runtimeClass);
-        try {
-            file.createNewFile();
-            Template template = velocityEngine.getTemplate(getTemplatePath(dir,
-                    packageName, suite, clazz, parameters, runtimeClass));
-            Writer writer = new FileWriter(file);
-            try {
-                template.merge(context, writer);
-            } finally {
-                writer.close();
-            }
-        } catch (ResourceNotFoundException e) {
-            throw new AutotagRuntimeException("Cannot find template resource",
-                    e);
-        } catch (ParseErrorException e) {
-            throw new AutotagRuntimeException(
-                    "The template resource is not parseable", e);
-        } catch (IOException e) {
-            throw new AutotagRuntimeException(
-                    "I/O Exception when generating file", e);
-        } catch (RuntimeException e) {
-            throw e;
-        } catch (Exception e) {
-            throw new AutotagRuntimeException(
-                    "Another generic exception while parsing the template resource",
-                    e);
-        }
-    }
-
-    /**
-     * Calculates and returns the template path.
-     *
-     * @param directory The directory where the file will be written.
-     * @param packageName The name of the package.
-     * @param suite The template suite.
-     * @param clazz The template class.
-     * @param parameters The map of parameters.
-     * @return The template path.
-     */
-    protected abstract String getTemplatePath(File directory,
-            String packageName, TemplateSuite suite, TemplateClass clazz, Map<String, String> parameters, String runtimeClass);
-
-    /**
-     * Calculates and returns the filename of the generated file.
-     *
-     * @param directory The directory where the file will be written.
-     * @param packageName The name of the package.
-     * @param suite The template suite.
-     * @param clazz The template class.
-     * @param parameters The map of parameters.
-     * @return The template path.
-     */
-    protected abstract String getFilename(File directory, String packageName,
-            TemplateSuite suite, TemplateClass clazz, Map<String, String> parameters, String runtimeClass);
-
-    /**
-     * Calculates and returns the directory where the file will be written..
-     *
-     * @param directory The directory where the file will be written.
-     * @param packageName The name of the package.
-     * @param suite The template suite.
-     * @param clazz The template class.
-     * @param parameters The map of parameters.
-     * @return The template path.
-     */
-    protected abstract String getDirectoryName(File directory,
-            String packageName, TemplateSuite suite, TemplateClass clazz, Map<String, String> parameters, String runtimeClass);
-}
diff --git a/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/generate/AbstractTemplateSuiteGenerator.java b/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/generate/AbstractTemplateSuiteGenerator.java
deleted file mode 100644
index 51f94b5..0000000
--- a/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/generate/AbstractTemplateSuiteGenerator.java
+++ /dev/null
@@ -1,132 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.autotag.generate;
-
-import java.io.File;
-import java.io.FileWriter;
-import java.io.IOException;
-import java.io.Writer;
-import java.util.Map;
-
-import org.apache.tiles.autotag.core.AutotagRuntimeException;
-import org.apache.tiles.autotag.model.TemplateSuite;
-import org.apache.tiles.autotag.tool.StringTool;
-import org.apache.velocity.Template;
-import org.apache.velocity.VelocityContext;
-import org.apache.velocity.app.VelocityEngine;
-import org.apache.velocity.exception.ParseErrorException;
-import org.apache.velocity.exception.ResourceNotFoundException;
-
-/**
- * A base template suite generator.
- *
- * @version $Rev$ $Date$
- */
-public abstract class AbstractTemplateSuiteGenerator implements TemplateSuiteGenerator {
-
-    /**
-     * The velocity engine.
-     */
-    private VelocityEngine velocityEngine;
-
-    /**
-     * Constructor.
-     *
-     * @param velocityEngine The Velocity engine.
-     */
-    public AbstractTemplateSuiteGenerator(VelocityEngine velocityEngine) {
-        this.velocityEngine = velocityEngine;
-    }
-
-    @Override
-    public void generate(File directory, String packageName, TemplateSuite suite, Map<String, String> parameters) {
-        File dir = new File(directory, getDirectoryName(directory, packageName, suite, parameters));
-        dir.mkdirs();
-        File file = new File(dir, getFilename(dir, packageName, suite, parameters));
-        VelocityContext context = new VelocityContext();
-        context.put("packageName", packageName);
-        context.put("suite", suite);
-        context.put("stringTool", new StringTool());
-        context.put("parameters", parameters);
-        try {
-            file.createNewFile();
-            Template template = velocityEngine.getTemplate(getTemplatePath(dir,
-                    packageName, suite, parameters));
-            Writer writer = new FileWriter(file);
-            try {
-                template.merge(context, writer);
-            } finally {
-                writer.close();
-            }
-        } catch (ResourceNotFoundException e) {
-            throw new AutotagRuntimeException("Cannot find template resource", e);
-        } catch (ParseErrorException e) {
-            throw new AutotagRuntimeException("The template resource is not parseable", e);
-        } catch (IOException e) {
-            throw new AutotagRuntimeException(
-                    "I/O Exception when generating file", e);
-        } catch (RuntimeException e) {
-            throw e;
-        } catch (Exception e) {
-            throw new AutotagRuntimeException(
-                    "Another generic exception while parsing the template resource",
-                    e);
-        }
-    }
-
-    /**
-     * Calculates and returns the template path.
-     *
-     * @param directory The directory where the file will be written.
-     * @param packageName The name of the package.
-     * @param suite The template suite.
-     * @param parameters The map of parameters.
-     * @return The template path.
-     */
-    protected abstract String getTemplatePath(File directory,
-            String packageName, TemplateSuite suite,
-            Map<String, String> parameters);
-
-    /**
-     * Calculates and returns the filename of the generated file.
-     *
-     * @param directory The directory where the file will be written.
-     * @param packageName The name of the package.
-     * @param suite The template suite.
-     * @param parameters The map of parameters.
-     * @return The template path.
-     */
-    protected abstract String getFilename(File directory, String packageName,
-            TemplateSuite suite, Map<String, String> parameters);
-
-    /**
-     * Calculates and returns the directory where the file will be written..
-     *
-     * @param directory The directory where the file will be written.
-     * @param packageName The name of the package.
-     * @param suite The template suite.
-     * @param parameters The map of parameters.
-     * @return The template path.
-     */
-    protected abstract String getDirectoryName(File directory,
-            String packageName, TemplateSuite suite,
-            Map<String, String> parameters);
-}
diff --git a/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/generate/BasicTemplateGenerator.java b/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/generate/BasicTemplateGenerator.java
deleted file mode 100644
index 7fe7ffd..0000000
--- a/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/generate/BasicTemplateGenerator.java
+++ /dev/null
@@ -1,195 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.autotag.generate;
-
-import java.io.File;
-import java.util.List;
-import java.util.Map;
-
-import org.apache.tiles.autotag.model.TemplateClass;
-import org.apache.tiles.autotag.model.TemplateSuite;
-
-/**
- * The basic template generator. Use {@link TemplateGeneratorBuilder} to
- * create instances of this class.
- *
- * @version $Rev$ $Date$
- */
-class BasicTemplateGenerator implements TemplateGenerator {
-
-    /**
-     * The template suite generators.
-     */
-    private List<TSGeneratorDirectoryPair> templateSuiteGenerators;
-
-    /**
-     * The template class generators.
-     */
-    private List<TCGeneratorDirectoryPair> templateClassGenerators;
-
-    /**
-     * Indicates that this generator generates resources.
-     */
-    private boolean generatingResources = false;
-
-    /**
-     * Indicates that this generator generates classes.
-     */
-    private boolean generatingClasses = false;
-
-    /**
-     * Constructor.
-     *
-     * @param templateSuiteGenerators The template suite generators.
-     * @param templateClassGenerators The template class generators.
-     * @param generatingClasses Indicates that this generator generates classes.
-     * @param generatingResources Indicates that this generator generates resources.
-     */
-    BasicTemplateGenerator(
-            List<TSGeneratorDirectoryPair> templateSuiteGenerators,
-            List<TCGeneratorDirectoryPair> templateClassGenerators,
-            boolean generatingClasses, boolean generatingResources) {
-        this.templateSuiteGenerators = templateSuiteGenerators;
-        this.templateClassGenerators = templateClassGenerators;
-        this.generatingClasses = generatingClasses;
-        this.generatingResources = generatingResources;
-    }
-
-
-
-    @Override
-    public void generate(String packageName, TemplateSuite suite, Map<String, String> parameters, 
-        String runtimeClass) {
-        for (TSGeneratorDirectoryPair pair : templateSuiteGenerators) {
-            pair.getGenerator().generate(pair.getDirectory(), packageName, suite, parameters);
-        }
-        for (TemplateClass templateClass : suite.getTemplateClasses()) {
-            for (TCGeneratorDirectoryPair pair : templateClassGenerators) {
-                pair.getGenerator().generate(pair.getDirectory(), packageName,
-                        suite, templateClass, parameters, runtimeClass);
-            }
-        }
-    }
-
-    /**
-     * A pair of a template suite generator and a directory.
-     *
-     * @version $Rev$ $Date$
-     */
-    static class TSGeneratorDirectoryPair {
-        /**
-         * The directory where files are generated.
-         */
-        private File directory;
-
-        /**
-         * The generator.
-         */
-        private TemplateSuiteGenerator generator;
-
-        /**
-         * Constructor.
-         *
-         * @param directory The directory where files are generated.
-         * @param generator The generator.
-         */
-        public TSGeneratorDirectoryPair(File directory,
-                TemplateSuiteGenerator generator) {
-            this.directory = directory;
-            this.generator = generator;
-        }
-
-        /**
-         * Returns the directory where files are generated.
-         *
-         * @return The directory where files are generated.
-         */
-        public File getDirectory() {
-            return directory;
-        }
-
-        /**
-         * Returns the generator.
-         *
-         * @return The generator.
-         */
-        public TemplateSuiteGenerator getGenerator() {
-            return generator;
-        }
-    }
-
-    /**
-     * A pair of a template class generator and a directory.
-     *
-     * @version $Rev$ $Date$
-     */
-    static class TCGeneratorDirectoryPair {
-        /**
-         * The directory where files are generated.
-         */
-        private File directory;
-
-        /**
-         * The generator.
-         */
-        private TemplateClassGenerator generator;
-
-        /**
-         * Constructor.
-         *
-         * @param directory The directory where files are generated.
-         * @param generator The generator.
-         */
-        public TCGeneratorDirectoryPair(File directory,
-                TemplateClassGenerator generator) {
-            this.directory = directory;
-            this.generator = generator;
-        }
-
-        /**
-         * Returns the directory where files are generated.
-         *
-         * @return The directory where files are generated.
-         */
-        public File getDirectory() {
-            return directory;
-        }
-
-        /**
-         * Returns the generator.
-         *
-         * @return The generator.
-         */
-        public TemplateClassGenerator getGenerator() {
-            return generator;
-        }
-    }
-
-    @Override
-    public boolean isGeneratingResources() {
-        return generatingResources;
-    }
-
-    @Override
-    public boolean isGeneratingClasses() {
-        return generatingClasses;
-    }
-}
diff --git a/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/generate/TemplateClassGenerator.java b/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/generate/TemplateClassGenerator.java
deleted file mode 100644
index c6fe9e0..0000000
--- a/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/generate/TemplateClassGenerator.java
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.autotag.generate;
-
-import java.io.File;
-import java.util.Map;
-
-import org.apache.tiles.autotag.model.TemplateClass;
-import org.apache.tiles.autotag.model.TemplateSuite;
-
-/**
- * Generates code from a parsed class.
- *
- * @version $Rev$ $Date$
- */
-public interface TemplateClassGenerator {
-
-    /**
-     * Generates the code.
-     *
-     * @param directory The base directory where the code will be put.
-     * @param packageName The package name.
-     * @param suite The template suite.
-     * @param clazz The template class.
-     * @param parameters Configuration parameters.
-     * @param runtimeClass The RequestBuilder implementation.
-     */
-    void generate(File directory, String packageName, TemplateSuite suite,
-            TemplateClass clazz, Map<String, String> parameters,
-            String runtimeClass);
-}
diff --git a/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/generate/TemplateGenerator.java b/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/generate/TemplateGenerator.java
deleted file mode 100644
index db67873..0000000
--- a/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/generate/TemplateGenerator.java
+++ /dev/null
@@ -1,59 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.autotag.generate;
-
-
-import java.util.Map;
-
-import org.apache.tiles.autotag.model.TemplateSuite;
-
-/**
- * Generates all the code for a template suite.
- *
- * @version $Rev$ $Date$
- */
-public interface TemplateGenerator {
-
-    /**
-     * Generates the code.
-     *
-     * @param packageName The package name.
-     * @param suite The template suite.
-     * @param parameters Configuration parameters.
-     * @param runtimeClass The RequestBuilder implementation.
-     */
-    void generate(String packageName, TemplateSuite suite, Map<String, String> parameters, 
-        String runtimeClass);
-
-    /**
-     * Indicates that this generator generates resources.
-     *
-     * @return <code>true</code> if the generator generates resources.
-     */
-    boolean isGeneratingResources();
-
-    /**
-     * Indicates that this generator generates classes.
-     *
-     * @return <code>true</code> if the generator generates classes.
-     */
-    boolean isGeneratingClasses();
-}
diff --git a/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/generate/TemplateGeneratorBuilder.java b/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/generate/TemplateGeneratorBuilder.java
deleted file mode 100644
index 3f29934..0000000
--- a/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/generate/TemplateGeneratorBuilder.java
+++ /dev/null
@@ -1,184 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.autotag.generate;
-
-import java.io.File;
-import java.util.ArrayList;
-import java.util.List;
-
-import org.apache.tiles.autotag.generate.BasicTemplateGenerator.TCGeneratorDirectoryPair;
-import org.apache.tiles.autotag.generate.BasicTemplateGenerator.TSGeneratorDirectoryPair;
-
-/**
- * Builds a {@link TemplateGenerator}.
- *
- * @version $Rev$ $Date$
- */
-public class TemplateGeneratorBuilder {
-
-    /**
-     * The template suite generators.
-     */
-    private List<TSGeneratorDirectoryPair> templateSuiteGenerators;
-
-    /**
-     * The template class generators.
-     */
-    private List<TCGeneratorDirectoryPair> templateClassGenerators;
-
-    /**
-     * Indicates that this generator generates resources.
-     */
-    private boolean generatingResources = false;
-
-    /**
-     * Indicates that this generator generates classes.
-     */
-    private boolean generatingClasses = false;
-
-    /**
-     * The classes output directory.
-     */
-    private File classesOutputDirectory;
-
-    /**
-     * The resources output directory.
-     */
-    private File resourcesOutputDirectory;
-
-    /**
-     * Constructor.
-     */
-    private TemplateGeneratorBuilder() {
-        templateSuiteGenerators = new ArrayList<BasicTemplateGenerator.TSGeneratorDirectoryPair>();
-        templateClassGenerators = new ArrayList<BasicTemplateGenerator.TCGeneratorDirectoryPair>();
-    }
-
-    /**
-     * Creates a new instance of the builder.
-     *
-     * @return A new instance of the builder.
-     */
-    public static TemplateGeneratorBuilder createNewInstance() {
-        return new TemplateGeneratorBuilder();
-    }
-
-    /**
-     * Sets the classes output directory.
-     *
-     * @param classesOutputDirectory The classes output directory.
-     * @return This instance.
-     */
-    public TemplateGeneratorBuilder setClassesOutputDirectory(File classesOutputDirectory) {
-        this.classesOutputDirectory = classesOutputDirectory;
-        return this;
-    }
-
-    /**
-     * Sets the resources output directory.
-     *
-     * @param resourcesOutputDirectory The resources output directory.
-     * @return This instance.
-     */
-    public TemplateGeneratorBuilder setResourcesOutputDirectory(File resourcesOutputDirectory) {
-        this.resourcesOutputDirectory = resourcesOutputDirectory;
-        return this;
-    }
-
-    /**
-     * Adds a new template suite generator to generate classes.
-     *
-     * @param generator The generator to add.
-     * @return This instance.
-     */
-    public TemplateGeneratorBuilder addClassesTemplateSuiteGenerator(TemplateSuiteGenerator generator) {
-        if (classesOutputDirectory == null) {
-            throw new NullPointerException(
-                    "Classes output directory not specified, call 'setClassesOutputDirectory' first");
-        }
-        templateSuiteGenerators.add(new TSGeneratorDirectoryPair(
-                classesOutputDirectory, generator));
-        generatingClasses = true;
-        return this;
-    }
-
-    /**
-     * Adds a new template class generator to generate classes.
-     *
-     * @param generator The generator to add.
-     * @return This instance.
-     */
-    public TemplateGeneratorBuilder addClassesTemplateClassGenerator(TemplateClassGenerator generator) {
-        if (classesOutputDirectory == null) {
-            throw new NullPointerException(
-                    "Classes output directory not specified, call 'setClassesOutputDirectory' first");
-        }
-        templateClassGenerators.add(new TCGeneratorDirectoryPair(
-                classesOutputDirectory, generator));
-        generatingClasses = true;
-        return this;
-    }
-
-    /**
-     * Adds a new template suite generator to generate resources.
-     *
-     * @param generator The generator to add.
-     * @return This instance.
-     */
-    public TemplateGeneratorBuilder addResourcesTemplateSuiteGenerator(TemplateSuiteGenerator generator) {
-        if (resourcesOutputDirectory == null) {
-            throw new NullPointerException(
-                    "Resources output directory not specified, call 'setClassesOutputDirectory' first");
-        }
-        templateSuiteGenerators.add(new TSGeneratorDirectoryPair(
-                resourcesOutputDirectory, generator));
-        generatingResources = true;
-        return this;
-    }
-
-    /**
-     * Adds a new template class generator to generate resources.
-     *
-     * @param generator The generator to add.
-     * @return This instance.
-     */
-    public TemplateGeneratorBuilder addResourcesTemplateClassGenerator(TemplateClassGenerator generator) {
-        if (resourcesOutputDirectory == null) {
-            throw new NullPointerException(
-                    "Resources output directory not specified, call 'setClassesOutputDirectory' first");
-        }
-        templateClassGenerators.add(new TCGeneratorDirectoryPair(
-                resourcesOutputDirectory, generator));
-        generatingResources = true;
-        return this;
-    }
-
-    /**
-     * Builds and returns a new template generator.
-     *
-     * @return The new template generator.
-     */
-    public TemplateGenerator build() {
-        return new BasicTemplateGenerator(templateSuiteGenerators,
-                templateClassGenerators, generatingClasses, generatingResources);
-    }
-
-}
diff --git a/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/generate/TemplateGeneratorFactory.java b/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/generate/TemplateGeneratorFactory.java
deleted file mode 100644
index 76b40d7..0000000
--- a/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/generate/TemplateGeneratorFactory.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.autotag.generate;
-
-/**
- * Creates a new template generator.
- *
- * @version $Rev$ $Date$
- */
-public interface TemplateGeneratorFactory {
-
-    /**
-     * Creates a template generator.
-     *
-     * @return The newly created template generator.
-     */
-    TemplateGenerator createTemplateGenerator();
-}
diff --git a/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/generate/TemplateSuiteGenerator.java b/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/generate/TemplateSuiteGenerator.java
deleted file mode 100644
index 1d7df00..0000000
--- a/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/generate/TemplateSuiteGenerator.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.autotag.generate;
-
-import java.io.File;
-import java.util.Map;
-
-import org.apache.tiles.autotag.model.TemplateSuite;
-
-/**
- * Generates code from a template suite.
- *
- * @version $Rev$ $Date$
- */
-public interface TemplateSuiteGenerator {
-
-    /**
-     * Generates the code.
-     *
-     * @param directory The base directory where the code will be put.
-     * @param packageName The package name.
-     * @param suite The template suite.
-     * @param parameters Configuration parameters.
-     */
-    void generate(File directory, String packageName, TemplateSuite suite, Map<String, String> parameters);
-}
diff --git a/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/generate/package-info.java b/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/generate/package-info.java
deleted file mode 100644
index 6256497..0000000
--- a/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/generate/package-info.java
+++ /dev/null
@@ -1,24 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-/**
- * The Autotag generation classes.
- */
-package org.apache.tiles.autotag.generate;
diff --git a/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/model/TemplateClass.java b/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/model/TemplateClass.java
deleted file mode 100644
index f869c95..0000000
--- a/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/model/TemplateClass.java
+++ /dev/null
@@ -1,195 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.autotag.model;
-
-import java.util.Collection;
-import java.util.LinkedHashMap;
-import java.util.Map;
-
-/**
- * It represents a parsed template class.
- *
- * @version $Rev$ $Date$
- */
-public class TemplateClass {
-
-    /**
-     * The class name.
-     */
-    private String name;
-
-    /**
-     * The name of the tag.
-     */
-    private String tagName;
-
-    /**
-     * The prefix of the tag class.
-     */
-    private String tagClassPrefix;
-
-    /**
-     * Documentation about this tag.
-     */
-    private String documentation;
-
-    /**
-     * The method that executes the template class.
-     */
-    private TemplateMethod executeMethod;
-
-    /**
-     * Constructor.
-     *
-     * @param name The name of the template class.
-     */
-    public TemplateClass(String name) {
-        this(name, null, null, null);
-    }
-
-    /**
-     * Constructor.
-     *
-     * @param name The name of the template class.
-     * @param tagName The name of the tag.
-     * @param tagClassPrefix The tag class prefix.
-     * @param executeMethod The method that executes the template class.
-     */
-    public TemplateClass(String name, String tagName, String tagClassPrefix,
-            TemplateMethod executeMethod) {
-        this.name = name;
-        this.tagName = tagName;
-        this.tagClassPrefix = tagClassPrefix;
-        this.executeMethod = executeMethod;
-    }
-
-    /**
-     * The name of the parsed class.
-     *
-     * @return The name of the class.
-     */
-    public String getName() {
-        return name;
-    }
-
-    /**
-     * Returns the name of the class, without the package part.
-     *
-     * @return The simple class name.
-     */
-    public String getSimpleName() {
-        int pos = name.lastIndexOf('.');
-        if (pos >= 0) {
-            return name.substring(pos + 1);
-        }
-        return name;
-    }
-
-    /**
-     * Returns the tag name.
-     *
-     * @return The tag name.
-     */
-    public String getTagName() {
-        return tagName;
-    }
-
-    /**
-     * Returns the tag class prefix.
-     *
-     * @return The tag class prefix.
-     */
-    public String getTagClassPrefix() {
-        return tagClassPrefix;
-    }
-
-    /**
-     * Returns the documentation for this class.
-     *
-     * @return The documentation.
-     */
-    public String getDocumentation() {
-        return documentation;
-    }
-
-    /**
-     * Sets the documentation for this class.
-     *
-     * @param documentation The documentation.
-     */
-    public void setDocumentation(String documentation) {
-        this.documentation = documentation;
-    }
-
-    /**
-     * Returns the method that execute this class.
-     *
-     * @return The execute method.
-     */
-    public TemplateMethod getExecuteMethod() {
-        return executeMethod;
-    }
-
-    /**
-     * Returns the collection of regular parameters (no request, no body)
-     * of the execute method.
-     *
-     * @return The regular parameters.
-     */
-    public Collection<TemplateParameter> getParameters() {
-        Map<String, TemplateParameter> params = new LinkedHashMap<String, TemplateParameter>();
-        fillRegularParameters(params, executeMethod);
-        return params.values();
-    }
-
-    /**
-     * Indicates that this class needs a tag body.
-     *
-     * @return <code>true</code> if tag body is needed.
-     */
-    public boolean hasBody() {
-        return executeMethod.hasBody();
-    }
-
-    @Override
-    public String toString() {
-        return "TemplateClass [name=" + name + ", tagName=" + tagName
-                + ", tagClassPrefix=" + tagClassPrefix + ", documentation="
-                + documentation + ", executeMethod=" + executeMethod + "]";
-    }
-
-    /**
-     * Creates regular parameters map.
-     *
-     * @param params The map to fill.
-     * @param method The method to analyze.
-     */
-    private void fillRegularParameters(Map<String, TemplateParameter> params,
-            TemplateMethod method) {
-        if (method != null) {
-            for (TemplateParameter param : method.getParameters()) {
-                if (!param.isRequest() && !param.isBody()) {
-                    params.put(param.getName(), param);
-                }
-            }
-        }
-    }
-}
diff --git a/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/model/TemplateMethod.java b/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/model/TemplateMethod.java
deleted file mode 100644
index d5703c5..0000000
--- a/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/model/TemplateMethod.java
+++ /dev/null
@@ -1,131 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.autotag.model;
-
-import java.util.Collection;
-import java.util.LinkedHashMap;
-import java.util.Map;
-
-/**
- * It represents a parsed method in a parsed template class.
- *
- * @version $Rev$ $Date$
- */
-public class TemplateMethod {
-
-    /**
-     * The name of the method.
-     */
-    private String name;
-
-    /**
-     * Documentation about the method.
-     */
-    private String documentation;
-
-    /**
-     * The map of parameters.
-     */
-    private Map<String, TemplateParameter> parameters;
-
-    /**
-     * Constructor.
-     *
-     * @param name The name of the method.
-     * @param parameters The map of parameters.
-     */
-    public TemplateMethod(String name,
-            Iterable<? extends TemplateParameter> parameters) {
-        this.name = name;
-        this.parameters = new LinkedHashMap<String, TemplateParameter>();
-        for (TemplateParameter parameter : parameters) {
-            this.parameters.put(parameter.getName(), parameter);
-        }
-    }
-
-    /**
-     * Returns the name of the method.
-     *
-     * @return The name of the method.
-     */
-    public String getName() {
-        return name;
-    }
-
-    /**
-     * Returns the documentation for this method.
-     *
-     * @return The documentation.
-     */
-    public String getDocumentation() {
-        return documentation;
-    }
-
-    /**
-     * Sets the documentation for this method.
-     *
-     * @param documentation The documentation.
-     */
-    public void setDocumentation(String documentation) {
-        this.documentation = documentation;
-    }
-
-    /**
-     * Returns the parameters of this method.
-     *
-     * @return The parameters.
-     */
-    public Collection<TemplateParameter> getParameters() {
-        return parameters.values();
-    }
-
-    /**
-     * Returns a parameter given its name.
-     *
-     * @param name The name of the parameter.
-     * @return The parameter.
-     */
-    public TemplateParameter getParameterByName(String name) {
-        return parameters.get(name);
-    }
-
-    /**
-     * Indicates that this method needs a tag body.
-     *
-     * @return <code>true</code> if tag body is needed.
-     */
-    public boolean hasBody() {
-        if (parameters.size() >= 2) {
-            for (TemplateParameter param : parameters.values()) {
-                if (param.isBody()) {
-                    return true;
-                }
-            }
-        }
-        return false;
-    }
-
-    @Override
-    public String toString() {
-        return "TemplateMethod [name=" + name + ", documentation="
-                + documentation + ", parameters=" + parameters + "]";
-    }
-}
diff --git a/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/model/TemplateParameter.java b/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/model/TemplateParameter.java
deleted file mode 100644
index 2755fcc..0000000
--- a/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/model/TemplateParameter.java
+++ /dev/null
@@ -1,181 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.autotag.model;
-
-import org.apache.tiles.autotag.core.runtime.ModelBody;
-import org.apache.tiles.request.Request;
-
-/**
- * It represents a parameter in a method in a parsed template class.
- *
- * @version $Rev$ $Date$
- */
-public class TemplateParameter {
-
-    /**
-     * The name of the parameter.
-     */
-    private String name;
-
-    /**
-     * The exported name, i.e. the name of the parameter in created code. Usually
-     * helpful if this exported name is a reserved word.
-     */
-    private String exportedName;
-
-    /**
-     * The parameter documentation.
-     */
-    private String documentation;
-
-    /**
-     * The type of the prameter.
-     */
-    private String type;
-
-    /**
-     * The default value, as it will be written in Java code.
-     */
-    private String defaultValue;
-
-    /**
-     * Indicates that this parameter is required.
-     */
-    private boolean required;
-
-    /**
-     * Constructor.
-     *
-     * @param name The name of the parameter.
-     * @param exportedName The exported name, i.e. the name of the parameter in created code. Usually
-     * helpful if this exported name is a reserved word.
-     * @param type The type of the parameter.
-     * @param defaultValue The default value, as it will be written in Java code.
-     * @param required Indicates that this parameter is required.
-     */
-    public TemplateParameter(String name, String exportedName, String type, String defaultValue, boolean required) {
-        this.name = name;
-        this.exportedName = exportedName;
-        this.type = type;
-        this.defaultValue = defaultValue;
-        this.required = required;
-    }
-
-    /**
-     * Returns the documentation for this parameter.
-     *
-     * @return The documentation.
-     */
-    public String getDocumentation() {
-        return documentation;
-    }
-
-    /**
-     * Sets the documentation for this parameter.
-     *
-     * @param documentation The documentation.
-     */
-    public void setDocumentation(String documentation) {
-        this.documentation = documentation;
-    }
-
-    /**
-     * Returns the name of the parameter.
-     *
-     * @return The name of the parameter.
-     */
-    public String getName() {
-        return name;
-    }
-
-    /**
-     * Returns the exported name, i.e. the name of the parameter in created code. Usually
-     * helpful if this exported name is a reserved word.
-     *
-     * @return The exported name.
-     */
-    public String getExportedName() {
-        return exportedName;
-    }
-
-    /**
-     * Returns the type of the parameter.
-     *
-     * @return The type.
-     */
-    public String getType() {
-        return type;
-    }
-
-    /**
-     * Returns the default value, as it will be written in Java code.
-     *
-     * @return The default value.
-     */
-    public String getDefaultValue() {
-        return defaultValue;
-    }
-
-    /**
-     * Indicates that this parameter is required.
-     *
-     * @return <code>true</code> if the parameter is required.
-     */
-    public boolean isRequired() {
-        return required;
-    }
-
-    /**
-     * Indicates that this parameter implements {@link ModelBody}.
-     *
-     * @return <code>true</code> if the parameter is a body.
-     */
-    public boolean isBody() {
-        return ModelBody.class.getName().equals(type);
-    }
-
-    /**
-     * Indicates that this parameter implements {@link Request}.
-     *
-     * @return <code>true</code> if the parameter is a request.
-     */
-    public boolean isRequest() {
-        return Request.class.getName().equals(type);
-    }
-
-    /**
-     * Returns the suffix for getter and setter of the property generated by
-     * this parameter.
-     *
-     * @return The getter and setter suffix.
-     */
-    public String getGetterSetterSuffix() {
-        return exportedName.substring(0, 1).toUpperCase() + exportedName.substring(1);
-    }
-
-    @Override
-    public String toString() {
-        return "TemplateParameter [name=" + name + ", exportedName="
-                + exportedName + ", documentation=" + documentation + ", type="
-                + type + ", defaultValue=" + defaultValue + ", required="
-                + required + "]";
-    }
-}
diff --git a/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/model/TemplateSuite.java b/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/model/TemplateSuite.java
deleted file mode 100644
index 25361c8..0000000
--- a/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/model/TemplateSuite.java
+++ /dev/null
@@ -1,129 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.autotag.model;
-
-import java.util.Collection;
-import java.util.LinkedHashMap;
-import java.util.Map;
-
-/**
- * It represents a suite of template classes.
- *
- * @version $Rev$ $Date$
- */
-public class TemplateSuite {
-
-    /**
-     * The name of the suite.
-     */
-    private String name;
-
-    /**
-     * The documentation of this suite.
-     */
-    private String documentation;
-
-    /**
-     * The map of template classes.
-     */
-    private Map<String, TemplateClass> templateClasses;
-
-    /**
-     * Constructor.
-     *
-     * @param name The name of the suite.
-     * @param documentation The documentation.
-     */
-    public TemplateSuite(String name, String documentation) {
-        this(name, documentation, null);
-    }
-
-    /**
-     * Constructor.
-     *
-     * @param name The name of the suite.
-     * @param documentation The documentation.
-     * @param classes The template classes.
-     */
-    public TemplateSuite(String name, String documentation,
-            Iterable<? extends TemplateClass> classes) {
-        this.name = name;
-        this.documentation = documentation;
-        templateClasses = new LinkedHashMap<String, TemplateClass>();
-        if (classes != null) {
-            for (TemplateClass templateClass : classes) {
-                templateClasses.put(templateClass.getName(), templateClass);
-            }
-        }
-    }
-
-    /**
-     * Returns the template suite name.
-     *
-     * @return The name.
-     */
-    public String getName() {
-        return name;
-    }
-
-    /**
-     * Returns the documentation.
-     *
-     * @return The documentation.
-     */
-    public String getDocumentation() {
-        return documentation;
-    }
-
-    /**
-     * Adds a new template class.
-     *
-     * @param clazz The template class.
-     */
-    public void addTemplateClass(TemplateClass clazz) {
-        templateClasses.put(clazz.getName(), clazz);
-    }
-
-    /**
-     * Returns the template classes.
-     *
-     * @return The template classes.
-     */
-    public Collection<TemplateClass> getTemplateClasses() {
-        return templateClasses.values();
-    }
-
-    /**
-     * Returns a template class given its name.
-     *
-     * @param name The name of the class.
-     * @return The template class instance.
-     */
-    public TemplateClass getTemplateClassByName(String name) {
-        return templateClasses.get(name);
-    }
-
-    @Override
-    public String toString() {
-        return "TemplateSuite [name=" + name + ", documentation="
-                + documentation + ", templateClasses=" + templateClasses + "]";
-    }
-}
diff --git a/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/model/TemplateSuiteFactory.java b/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/model/TemplateSuiteFactory.java
deleted file mode 100644
index 4c45ebc..0000000
--- a/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/model/TemplateSuiteFactory.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.autotag.model;
-
-
-/**
- * Creates a new template suite.
- *
- * @version $Rev$ $Date$
- */
-public interface TemplateSuiteFactory {
-
-    /**
-     * Creates a template suite.
-     *
-     * @return The created template suite.
-     */
-    TemplateSuite createTemplateSuite();
-}
diff --git a/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/model/package-info.java b/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/model/package-info.java
deleted file mode 100644
index a1130d2..0000000
--- a/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/model/package-info.java
+++ /dev/null
@@ -1,24 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-/**
- * Domain model classes representing a parsed template suite.
- */
-package org.apache.tiles.autotag.model;
diff --git a/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/tool/StringTool.java b/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/tool/StringTool.java
deleted file mode 100644
index 7341feb..0000000
--- a/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/tool/StringTool.java
+++ /dev/null
@@ -1,143 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.autotag.tool;
-
-import java.io.BufferedReader;
-import java.io.IOException;
-import java.io.Reader;
-import java.io.StringReader;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-import org.apache.tiles.autotag.core.AutotagRuntimeException;
-
-/**
- * A Velocity tools to manipulate strings.
- *
- * @version $Rev$ $Date$
- */
-public class StringTool {
-
-    /**
-     * Maps a primitive type to its default value as a string.
-     */
-    private Map<String, String> type2default;
-
-    /**
-     * Maps a primitive type to its boxed version.
-     */
-    private Map<String, String> primitive2wrapped;
-
-    /**
-     * Constructor.
-     */
-    public StringTool() {
-        type2default = new HashMap<String, String>();
-        type2default.put("byte", "0");
-        type2default.put("short", "0");
-        type2default.put("int", "0");
-        type2default.put("long", "0L");
-        type2default.put("float", "0.0f");
-        type2default.put("double", "0.0d");
-        type2default.put("char", "'\\u0000'");
-        type2default.put("boolean", "false");
-
-        primitive2wrapped = new HashMap<String, String>();
-        primitive2wrapped.put("byte", Byte.class.getName());
-        primitive2wrapped.put("short", Short.class.getName());
-        primitive2wrapped.put("int", Integer.class.getName());
-        primitive2wrapped.put("long", Long.class.getName());
-        primitive2wrapped.put("float", Float.class.getName());
-        primitive2wrapped.put("double", Double.class.getName());
-        primitive2wrapped.put("char", Character.class.getName());
-        primitive2wrapped.put("boolean", Boolean.class.getName());
-    }
-
-    /**
-     * Creates a list of strings, separating a string when a newline is encountered.
-     *
-     * @param toSplit The string to split.
-     * @return The list of splitted strings.
-     */
-    public List<String> splitOnNewlines(String toSplit) {
-        List<String> retValue = new ArrayList<String>();
-        if (toSplit == null) {
-            return retValue;
-        }
-        Reader reader = new StringReader(toSplit);
-        BufferedReader bufReader = new BufferedReader(reader);
-        try {
-            String line;
-            while ((line = bufReader.readLine()) != null) {
-                retValue.add(line);
-            }
-        } catch (IOException e) {
-            throw new AutotagRuntimeException(
-                    "Cannot read the string completely", e);
-        }
-        return retValue;
-    }
-
-    /**
-     * Creates a string in which the first character is capitalized.
-     *
-     * @param string The string to use.
-     * @return The same string with the first character capitalized.
-     */
-    public String capitalizeFirstLetter(String string) {
-        return string.substring(0, 1).toUpperCase() + string.substring(1);
-    }
-
-    /**
-     * Returns the default value for a type.
-     *
-     * @param type The type.
-     * @param overriddenDefaultValue The default value, as specified by developers.
-     * @return The default value to use.
-     */
-    public String getDefaultValue(String type, String overriddenDefaultValue) {
-        if (overriddenDefaultValue != null) {
-            return overriddenDefaultValue;
-        }
-
-        String retValue = type2default.get(type);
-        if (retValue == null) {
-            retValue = "null";
-        }
-        return retValue;
-    }
-
-    /**
-     * Returns the class to be used to cast an Object.
-     *
-     * @param type The type to use, even a primitive type.
-     * @return The class to be used in casts.
-     */
-    public String getClassToCast(String type) {
-        String retValue = primitive2wrapped.get(type);
-        if (retValue == null) {
-            retValue = type;
-        }
-        return retValue;
-    }
-}
diff --git a/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/tool/package-info.java b/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/tool/package-info.java
deleted file mode 100644
index 558c330..0000000
--- a/tiles-autotag/tiles-autotag-core/src/main/java/org/apache/tiles/autotag/tool/package-info.java
+++ /dev/null
@@ -1,24 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-/**
- * Velocity tools to be used in Velocity templates.
- */
-package org.apache.tiles.autotag.tool;
diff --git a/tiles-autotag/tiles-autotag-core/src/main/resources/org/apache/tiles/autotag/velocity.properties b/tiles-autotag/tiles-autotag-core/src/main/resources/org/apache/tiles/autotag/velocity.properties
deleted file mode 100644
index 0a9f2a5..0000000
--- a/tiles-autotag/tiles-autotag-core/src/main/resources/org/apache/tiles/autotag/velocity.properties
+++ /dev/null
@@ -1,115 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements.  See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership.  The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License.  You may obtain a copy of the License at
-#
-#   http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing,
-# software distributed under the License is distributed on an
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# KIND, either express or implied.  See the License for the
-# specific language governing permissions and limitations
-# under the License.
-
-# ----------------------------------------------------------------------------
-# These are the default properties for the
-# Velocity Runtime. These values are used when
-# Runtime.init() is called, and when Runtime.init(properties)
-# fails to find the specificed properties file.
-# ----------------------------------------------------------------------------
-
-
-# ----------------------------------------------------------------------------
-# R U N T I M E  L O G
-# ----------------------------------------------------------------------------
-# Velocity uses the Servlet APIs logging facilites.
-
-# ----------------------------------------------------------------------------
-# This controls if Runtime.error(), info() and warn() messages include the
-# whole stack trace. The last property controls whether invalid references
-# are logged.
-# ----------------------------------------------------------------------------
-
-runtime.log.invalid.reference = true
-
-
-# ----------------------------------------------------------------------------
-# T E M P L A T E  E N C O D I N G
-# ----------------------------------------------------------------------------
-
-input.encoding=ISO-8859-1
-output.encoding=ISO-8859-1
-
-
-# ----------------------------------------------------------------------------
-# F O R E A C H  P R O P E R T I E S
-# ----------------------------------------------------------------------------
-# These properties control how the counter is accessed in the #foreach
-# directive. By default the reference $velocityCount will be available
-# in the body of the #foreach directive. The default starting value
-# for this reference is 1.
-# ----------------------------------------------------------------------------
-
-directive.foreach.counter.name = velocityCount
-directive.foreach.counter.initial.value = 1
-
-
-# ----------------------------------------------------------------------------
-# I N C L U D E  P R O P E R T I E S
-# ----------------------------------------------------------------------------
-# These are the properties that governed the way #include'd content
-# is governed.
-# ----------------------------------------------------------------------------
-
-directive.include.output.errormsg.start = <!-- include error :
-directive.include.output.errormsg.end   =  see error log -->
-
-
-# ----------------------------------------------------------------------------
-# P A R S E  P R O P E R T I E S
-# ----------------------------------------------------------------------------
-
-directive.parse.max.depth = 10
-
-
-# ----------------------------------------------------------------------------
-# VELOCIMACRO PROPERTIES
-# ----------------------------------------------------------------------------
-# global : name of default global library.  It is expected to be in the regular
-# template path.  You may remove it (either the file or this property) if
-# you wish with no harm.
-# ----------------------------------------------------------------------------
-# dev-changes by Marino
-resource.loader=class, string
-
-class.resource.loader.class=org.apache.velocity.runtime.resource.loader.ClasspathResourceLoader
-
-velocimacro.library.autoreload = false
-
-velocimacro.permissions.allow.inline = true
-velocimacro.permissions.allow.inline.to.replace.global = false
-velocimacro.permissions.allow.inline.local.scope = false
-
-velocimacro.context.localscope = false
-
-# ----------------------------------------------------------------------------
-# INTERPOLATION
-# ----------------------------------------------------------------------------
-# turn off and on interpolation of references and directives in string
-# literals.  ON by default :)
-# ----------------------------------------------------------------------------
-runtime.interpolate.string.literals = true
-
-
-# ----------------------------------------------------------------------------
-# RESOURCE MANAGEMENT
-# ----------------------------------------------------------------------------
-# Allows alternative ResourceManager and ResourceCache implementations
-# to be plugged in.
-# ----------------------------------------------------------------------------
-resource.manager.class = org.apache.velocity.runtime.resource.ResourceManagerImpl
-resource.manager.cache.class = org.apache.velocity.runtime.resource.ResourceCacheImpl
diff --git a/tiles-autotag/tiles-autotag-core/src/site/site.xml b/tiles-autotag/tiles-autotag-core/src/site/site.xml
deleted file mode 100644
index 0a7d00d..0000000
--- a/tiles-autotag/tiles-autotag-core/src/site/site.xml
+++ /dev/null
@@ -1,56 +0,0 @@
-<?xml version="1.0" encoding="ISO-8859-1"?>
-<!--
-/*
- * $Id: site.xml 1081442 2011-03-14 16:21:08Z apetrelli $
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
--->
-<project name="Apache - Tiles Autotags">
-    <bannerLeft>
-        <name>Apache Software Foundation</name>
-        <src>http://www.apache.org/images/asf-logo.gif</src>
-        <href>http://www.apache.org</href>
-    </bannerLeft>
-    <bannerRight>
-        <name>Apache Tiles&#8482;</name>
-        <src>http://tiles.apache.org/images/logo.png</src>
-        <href>http://tiles.apache.org</href>
-    </bannerRight>
-    <body>
-
-        <links>
-            <item name="Apache" href="http://www.apache.org" />
-            <item name="Tiles" href="http://tiles.apache.org" />
-        </links>
-
-
-        <menu name="Apache Tiles&#8482;">
-            <item
-                   name="Tiles Home"
-                   href="../../index.html"/>
-            <item
-                   name="Tiles Autotag"
-                   href="../index.html"/>
-        </menu>
-
-        <menu ref="modules" />
-        <menu ref="reports" />
-
-    </body>
-</project>
diff --git a/tiles-autotag/tiles-autotag-core/src/test/java/org/apache/tiles/autotag/core/AutotagRuntimeExceptionTest.java b/tiles-autotag/tiles-autotag-core/src/test/java/org/apache/tiles/autotag/core/AutotagRuntimeExceptionTest.java
deleted file mode 100644
index bf3338a..0000000
--- a/tiles-autotag/tiles-autotag-core/src/test/java/org/apache/tiles/autotag/core/AutotagRuntimeExceptionTest.java
+++ /dev/null
@@ -1,77 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.tiles.autotag.core;
-
-import static org.junit.Assert.*;
-
-import org.junit.Test;
-
-/**
- * Tests {@link AutotagRuntimeException}.
- *
- * @version $Rev$ $Date$
- */
-public class AutotagRuntimeExceptionTest {
-
-    /**
-     * Test method for {@link AutotagRuntimeException#AutotagRuntimeException()}.
-     */
-    @Test
-    public void testAutotagRuntimeException() {
-        AutotagRuntimeException exception = new AutotagRuntimeException();
-        assertNull(exception.getMessage());
-        assertNull(exception.getCause());
-    }
-
-    /**
-     * Test method for {@link AutotagRuntimeException#AutotagRuntimeException(java.lang.String)}.
-     */
-    @Test
-    public void testAutotagRuntimeExceptionString() {
-        AutotagRuntimeException exception = new AutotagRuntimeException("my message");
-        assertEquals("my message", exception.getMessage());
-        assertNull(exception.getCause());
-    }
-
-    /**
-     * Test method for {@link AutotagRuntimeException#AutotagRuntimeException(java.lang.Throwable)}.
-     */
-    @Test
-    public void testAutotagRuntimeExceptionThrowable() {
-        Throwable cause = new Throwable();
-        AutotagRuntimeException exception = new AutotagRuntimeException(cause);
-        assertEquals(cause.toString(), exception.getMessage());
-        assertEquals(cause, exception.getCause());
-    }
-
-    /**
-     * Test method for {@link AutotagRuntimeException#AutotagRuntimeException(java.lang.String, java.lang.Throwable)}.
-     */
-    @Test
-    public void testAutotagRuntimeExceptionStringThrowable() {
-        Throwable cause = new Throwable();
-        AutotagRuntimeException exception = new AutotagRuntimeException("my message", cause);
-        assertEquals("my message", exception.getMessage());
-        assertEquals(cause, exception.getCause());
-    }
-
-}
diff --git a/tiles-autotag/tiles-autotag-core/src/test/java/org/apache/tiles/autotag/core/ClassParseExceptionTest.java b/tiles-autotag/tiles-autotag-core/src/test/java/org/apache/tiles/autotag/core/ClassParseExceptionTest.java
deleted file mode 100644
index c3b2ae6..0000000
--- a/tiles-autotag/tiles-autotag-core/src/test/java/org/apache/tiles/autotag/core/ClassParseExceptionTest.java
+++ /dev/null
@@ -1,77 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.tiles.autotag.core;
-
-import static org.junit.Assert.*;
-
-import org.junit.Test;
-
-/**
- * Tests {@link ClassParseException}.
- *
- * @version $Rev$ $Date$
- */
-public class ClassParseExceptionTest {
-
-    /**
-     * Test method for {@link ClassParseException#ClassParseException()}.
-     */
-    @Test
-    public void testClassParseException() {
-        ClassParseException exception = new ClassParseException();
-        assertNull(exception.getMessage());
-        assertNull(exception.getCause());
-    }
-
-    /**
-     * Test method for {@link ClassParseException#ClassParseException(java.lang.String)}.
-     */
-    @Test
-    public void testClassParseExceptionString() {
-        ClassParseException exception = new ClassParseException("my message");
-        assertEquals("my message", exception.getMessage());
-        assertNull(exception.getCause());
-    }
-
-    /**
-     * Test method for {@link ClassParseException#ClassParseException(java.lang.Throwable)}.
-     */
-    @Test
-    public void testClassParseExceptionThrowable() {
-        Throwable cause = new Throwable();
-        ClassParseException exception = new ClassParseException(cause);
-        assertEquals(cause.toString(), exception.getMessage());
-        assertEquals(cause, exception.getCause());
-    }
-
-    /**
-     * Test method for {@link ClassParseException#ClassParseException(java.lang.String, java.lang.Throwable)}.
-     */
-    @Test
-    public void testClassParseExceptionStringThrowable() {
-        Throwable cause = new Throwable();
-        ClassParseException exception = new ClassParseException("my message", cause);
-        assertEquals("my message", exception.getMessage());
-        assertEquals(cause, exception.getCause());
-    }
-
-}
diff --git a/tiles-autotag/tiles-autotag-core/src/test/java/org/apache/tiles/autotag/core/QDoxTemplateSuiteFactoryTest.java b/tiles-autotag/tiles-autotag-core/src/test/java/org/apache/tiles/autotag/core/QDoxTemplateSuiteFactoryTest.java
deleted file mode 100644
index d417d7b..0000000
--- a/tiles-autotag/tiles-autotag-core/src/test/java/org/apache/tiles/autotag/core/QDoxTemplateSuiteFactoryTest.java
+++ /dev/null
@@ -1,148 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.autotag.core;
-
-import static org.junit.Assert.*;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.apache.tiles.autotag.core.internal.AnnotatedExampleModel;
-import org.apache.tiles.autotag.core.internal.ExampleExecutableModel;
-import org.apache.tiles.autotag.core.internal.ExampleModel;
-import org.apache.tiles.autotag.core.internal.NotFeasibleExampleModel;
-import org.apache.tiles.autotag.core.runtime.ModelBody;
-import org.apache.tiles.autotag.model.TemplateClass;
-import org.apache.tiles.autotag.model.TemplateMethod;
-import org.apache.tiles.autotag.model.TemplateParameter;
-import org.apache.tiles.autotag.model.TemplateSuite;
-import org.apache.tiles.request.Request;
-import org.junit.Before;
-import org.junit.Test;
-
-/**
- * Tests {@link QDoxTemplateSuiteFactory}.
- *
- * @version $Rev$ $Date$
- */
-public class QDoxTemplateSuiteFactoryTest {
-
-    /**
-     * The factory to test.
-     */
-    private QDoxTemplateSuiteFactory factory;
-
-    /**
-     * @throws java.lang.Exception
-     */
-    @Before
-    public void setUp() {
-        factory = new QDoxTemplateSuiteFactory(
-                getClass().getResource("/org/apache/tiles/autotag/core/internal/ExampleModel.java"),
-                getClass().getResource("/org/apache/tiles/autotag/core/internal/AnnotatedExampleModel.java"),
-                getClass().getResource("/org/apache/tiles/autotag/core/internal/ExampleExcluded.java"),
-                getClass().getResource("/org/apache/tiles/autotag/core/internal/ExampleExecutableModel.java"),
-                getClass().getResource("/org/apache/tiles/autotag/core/internal/NotFeasibleExampleModel.java"));
-        factory.setSuiteName("The suite name");
-        factory.setSuiteDocumentation("This are the docs");
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.autotag.core.DefaultTemplateSuiteFactory#createTemplateSuite()}.
-     */
-    @Test
-    public void testCreateTemplateSuite() {
-        TemplateSuite suite = factory.createTemplateSuite();
-        assertEquals("The suite name", suite.getName());
-        assertEquals("This are the docs", suite.getDocumentation());
-        assertEquals(3, suite.getTemplateClasses().size());
-
-        TemplateClass templateClass = suite.getTemplateClassByName(ExampleModel.class.getName());
-        assertNotNull(templateClass);
-        assertEquals(ExampleModel.class.getName(), templateClass.getName());
-        assertEquals("Example start/stop template.", templateClass.getDocumentation());
-        TemplateMethod templateMethod = templateClass.getExecuteMethod();
-        assertNotNull(templateMethod);
-        assertTrue(templateMethod.hasBody());
-        assertTrue(templateClass.hasBody());
-        assertEquals("execute", templateMethod.getName());
-        assertEquals("It starts.", templateMethod.getDocumentation());
-        List<TemplateParameter> parameters = new ArrayList<TemplateParameter>(templateMethod.getParameters());
-        assertEquals(4, parameters.size());
-        TemplateParameter parameter = parameters.get(0);
-        assertEquals("one", parameter.getName());
-        assertEquals("java.lang.String", parameter.getType());
-        assertEquals("Parameter one.", parameter.getDocumentation());
-        parameter = parameters.get(1);
-        assertEquals("two", parameter.getName());
-        assertEquals("int", parameter.getType());
-        assertEquals("Parameter two.", parameter.getDocumentation());
-        parameter = parameters.get(2);
-        assertEquals("request", parameter.getName());
-        assertEquals(Request.class.getName(), parameter.getType());
-        assertEquals("The request.", parameter.getDocumentation());
-        parameter = parameters.get(3);
-        assertEquals("modelBody", parameter.getName());
-        assertEquals(ModelBody.class.getName(), parameter.getType());
-        assertEquals("The model body.", parameter.getDocumentation());
-
-        templateClass = suite.getTemplateClassByName(AnnotatedExampleModel.class.getName());
-        assertNotNull(templateClass);
-        assertEquals(AnnotatedExampleModel.class.getName(), templateClass.getName());
-        templateMethod = templateClass.getExecuteMethod();
-        assertNotNull(templateMethod);
-        assertEquals("execute", templateMethod.getName());
-        parameters = new ArrayList<TemplateParameter>(templateMethod.getParameters());
-        assertEquals(4, parameters.size());
-        parameter = parameters.get(0);
-        assertEquals("one", parameter.getName());
-        assertEquals("alternateOne", parameter.getExportedName());
-        assertEquals("java.lang.String", parameter.getType());
-        assertEquals("Parameter one.", parameter.getDocumentation());
-        assertEquals("hello", parameter.getDefaultValue());
-        assertTrue(parameter.isRequired());
-
-        templateClass = suite.getTemplateClassByName(ExampleExecutableModel.class.getName());
-        assertNotNull(templateClass);
-        assertEquals(ExampleExecutableModel.class.getName(), templateClass.getName());
-        assertEquals("Example executable template.", templateClass.getDocumentation());
-        templateMethod = templateClass.getExecuteMethod();
-        assertNotNull(templateMethod);
-        assertEquals("execute", templateMethod.getName());
-        assertEquals("It executes.", templateMethod.getDocumentation());
-        parameters = new ArrayList<TemplateParameter>(templateMethod.getParameters());
-        assertEquals(3, parameters.size());
-        parameter = parameters.get(0);
-        assertEquals("one", parameter.getName());
-        assertEquals("java.lang.String", parameter.getType());
-        assertEquals("Parameter one.", parameter.getDocumentation());
-        parameter = parameters.get(1);
-        assertEquals("two", parameter.getName());
-        assertEquals("int", parameter.getType());
-        assertEquals("Parameter two.", parameter.getDocumentation());
-        parameter = parameters.get(2);
-        assertEquals("request", parameter.getName());
-        assertEquals(Request.class.getName(), parameter.getType());
-        assertEquals("The request.", parameter.getDocumentation());
-
-        assertNull(suite.getTemplateClassByName(NotFeasibleExampleModel.class.getName()));
-    }
-}
diff --git a/tiles-autotag/tiles-autotag-core/src/test/java/org/apache/tiles/autotag/core/internal/AnnotatedExampleModel.java b/tiles-autotag/tiles-autotag-core/src/test/java/org/apache/tiles/autotag/core/internal/AnnotatedExampleModel.java
deleted file mode 100644
index f2ca684..0000000
--- a/tiles-autotag/tiles-autotag-core/src/test/java/org/apache/tiles/autotag/core/internal/AnnotatedExampleModel.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.autotag.core.internal;
-
-import org.apache.tiles.autotag.core.runtime.ModelBody;
-import org.apache.tiles.autotag.core.runtime.annotation.Parameter;
-import org.apache.tiles.request.Request;
-
-/**
- * Example start/stop template.
- *
- * @version $Rev$ $Date$
- */
-public class AnnotatedExampleModel {
-
-    /**
-     * It starts.
-     *
-     * @param one Parameter one.
-     * @param two Parameter two.
-     * @param request The request.
-     * @param modelBody The model body.
-     */
-    public void execute(
-            @Parameter(defaultValue = "hello", name = "alternateOne", required = true) String one,
-            int two, Request request, ModelBody modelBody) {
-        // Does nothing.
-    }
-}
diff --git a/tiles-autotag/tiles-autotag-core/src/test/java/org/apache/tiles/autotag/core/internal/ExampleExcluded.java b/tiles-autotag/tiles-autotag-core/src/test/java/org/apache/tiles/autotag/core/internal/ExampleExcluded.java
deleted file mode 100644
index 6693700..0000000
--- a/tiles-autotag/tiles-autotag-core/src/test/java/org/apache/tiles/autotag/core/internal/ExampleExcluded.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.autotag.core.internal;
-
-import org.apache.tiles.autotag.core.runtime.ModelBody;
-import org.apache.tiles.request.Request;
-
-/**
- * Example start/stop template.
- *
- * @version $Rev$ $Date$
- */
-public class ExampleExcluded {
-
-    /**
-     * It starts.
-     *
-     * @param one Parameter one.
-     * @param two Parameter two.
-     * @param request The request.
-     * @param modelBody The model body.
-     */
-    public void execute(String one, int two, Request request, ModelBody modelBody) {
-        // Does nothing.
-    }
-}
diff --git a/tiles-autotag/tiles-autotag-core/src/test/java/org/apache/tiles/autotag/core/internal/ExampleExecutableModel.java b/tiles-autotag/tiles-autotag-core/src/test/java/org/apache/tiles/autotag/core/internal/ExampleExecutableModel.java
deleted file mode 100644
index 487e201..0000000
--- a/tiles-autotag/tiles-autotag-core/src/test/java/org/apache/tiles/autotag/core/internal/ExampleExecutableModel.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.autotag.core.internal;
-
-import org.apache.tiles.request.Request;
-
-/**
- * Example executable template.
- *
- * @version $Rev$ $Date$
- */
-public class ExampleExecutableModel {
-
-    /**
-     * It executes.
-     *
-     * @param one Parameter one.
-     * @param two Parameter two.
-     * @param request The request.
-     */
-    public void execute(String one, int two, Request request) {
-        // Does nothing.
-    }
-}
diff --git a/tiles-autotag/tiles-autotag-core/src/test/java/org/apache/tiles/autotag/core/internal/ExampleModel.java b/tiles-autotag/tiles-autotag-core/src/test/java/org/apache/tiles/autotag/core/internal/ExampleModel.java
deleted file mode 100644
index 3ed332d..0000000
--- a/tiles-autotag/tiles-autotag-core/src/test/java/org/apache/tiles/autotag/core/internal/ExampleModel.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.autotag.core.internal;
-
-import org.apache.tiles.autotag.core.runtime.ModelBody;
-import org.apache.tiles.request.Request;
-
-/**
- * Example start/stop template.
- *
- * @version $Rev$ $Date$
- */
-public class ExampleModel {
-
-    /**
-     * It starts.
-     *
-     * @param one Parameter one.
-     * @param two Parameter two.
-     * @param request The request.
-     * @param modelBody The model body.
-     */
-    public void execute(String one, int two, Request request, ModelBody modelBody) {
-        // Does nothing.
-    }
-}
diff --git a/tiles-autotag/tiles-autotag-core/src/test/java/org/apache/tiles/autotag/core/internal/NotFeasibleExampleModel.java b/tiles-autotag/tiles-autotag-core/src/test/java/org/apache/tiles/autotag/core/internal/NotFeasibleExampleModel.java
deleted file mode 100644
index 44dc258..0000000
--- a/tiles-autotag/tiles-autotag-core/src/test/java/org/apache/tiles/autotag/core/internal/NotFeasibleExampleModel.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.autotag.core.internal;
-
-/**
- * This won't be registered.
- *
- * @version $Rev$ $Date$
- */
-public class NotFeasibleExampleModel {
-
-    /**
-     * It starts.
-     *
-     * @param whatever Doesn't matter.
-     */
-    public void start(String whatever) {
-        // Does nothing.
-    }
-}
diff --git a/tiles-autotag/tiles-autotag-core/src/test/java/org/apache/tiles/autotag/generate/AbstractTemplateClassGeneratorTest.java b/tiles-autotag/tiles-autotag-core/src/test/java/org/apache/tiles/autotag/generate/AbstractTemplateClassGeneratorTest.java
deleted file mode 100644
index 35bdd5b..0000000
--- a/tiles-autotag/tiles-autotag-core/src/test/java/org/apache/tiles/autotag/generate/AbstractTemplateClassGeneratorTest.java
+++ /dev/null
@@ -1,265 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.autotag.generate;
-
-import static org.easymock.EasyMock.*;
-
-import java.io.File;
-import java.io.FileWriter;
-import java.io.IOException;
-import java.util.Map;
-
-import org.apache.commons.io.FileUtils;
-import org.apache.tiles.autotag.core.AutotagRuntimeException;
-import org.apache.tiles.autotag.core.ClassParseException;
-import org.apache.tiles.autotag.model.TemplateClass;
-import org.apache.tiles.autotag.model.TemplateSuite;
-import org.apache.velocity.Template;
-import org.apache.velocity.VelocityContext;
-import org.apache.velocity.app.VelocityEngine;
-import org.apache.velocity.exception.ParseErrorException;
-import org.apache.velocity.exception.ResourceNotFoundException;
-import org.junit.Before;
-import org.junit.Test;
-
-/**
- * Tests {@link AbstractTemplateClassGenerator}.
- *
- * @version $Rev$ $Date$
- */
-public class AbstractTemplateClassGeneratorTest {
-
-    /**
-     * The velocity engine.
-     */
-    private VelocityEngine velocityEngine;
-
-    /**
-     * The temporary directory.
-     */
-    private File directory;
-
-    /**
-     * The generator to test.
-     */
-    private AbstractTemplateClassGenerator generator;
-
-    /**
-     * Sets up the test.
-     *
-     * @throws IOException If something goes wrong.
-     */
-    @Before
-    public void setUp() throws IOException {
-        velocityEngine = createMock(VelocityEngine.class);
-        generator = createMockBuilder(AbstractTemplateClassGenerator.class)
-                .withConstructor(velocityEngine).createMock();
-        directory = File.createTempFile("autotag", null);
-    }
-
-    /**
-     * Tears down the test.
-     *
-     * @throws IOException If something goes wrong.
-     */
-    public void tearDown() throws IOException {
-        FileUtils.deleteDirectory(directory);
-    }
-
-    /**
-     * Test method for {@link AbstractTemplateClassGenerator#generate(java.io.File,
-     * String, TemplateSuite, TemplateClass, Map)}.
-     * @throws Exception If something goes wrong.
-     */
-    @Test
-    public void testGenerate() throws Exception {
-        directory.delete();
-        directory.mkdir();
-        TemplateSuite suite = createMock(TemplateSuite.class);
-        TemplateClass clazz = createMock(TemplateClass.class);
-        Template template = createMock(Template.class);
-        @SuppressWarnings("unchecked")
-        Map<String, String> parameters = createMock(Map.class);
-        String packageName = "org.apache.tiles.autotag.test";
-        String runtimeClass = "org.apache.tiles.autotag.test.DoStuffRuntime";
-
-        expect(generator.getDirectoryName(directory, packageName, suite, clazz, parameters, runtimeClass)).andReturn("mydir");
-        File mydir = new File(directory, "mydir");
-        expect(generator.getFilename(mydir , packageName, suite, clazz, parameters, runtimeClass)).andReturn("myfile.txt");
-        String sampleVmPath = "/sample.vm";
-        expect(generator.getTemplatePath(mydir, packageName, suite, clazz, parameters, runtimeClass)).andReturn(sampleVmPath);
-        expect(velocityEngine.getTemplate("/sample.vm")).andReturn(template);
-        template.merge(isA(VelocityContext.class), isA(FileWriter.class));
-
-        replay(velocityEngine, generator, suite, clazz, template, parameters);
-        generator.generate(directory, packageName, suite, clazz, parameters, runtimeClass);
-        verify(velocityEngine, generator, suite, clazz, template, parameters);
-    }
-
-    /**
-     * Test method for {@link AbstractTemplateClassGenerator#generate(File, String, TemplateSuite, TemplateClass, Map)}.
-     * @throws Exception If something goes wrong.
-     */
-    @Test(expected = AutotagRuntimeException.class)
-    public void testGenerateException1() throws Exception {
-        directory.delete();
-        directory.mkdir();
-        TemplateSuite suite = createMock(TemplateSuite.class);
-        TemplateClass clazz = createMock(TemplateClass.class);
-        Template template = createMock(Template.class);
-        @SuppressWarnings("unchecked")
-        Map<String, String> parameters = createMock(Map.class);
-        String packageName = "org.apache.tiles.autotag.test";
-        String runtimeClass = "org.apache.tiles.autotag.test.DoStuffRuntime";
-
-        expect(generator.getDirectoryName(directory, packageName, suite, clazz, parameters, runtimeClass)).andReturn("mydir");
-        File mydir = new File(directory, "mydir");
-        expect(generator.getFilename(mydir , packageName, suite, clazz, parameters, runtimeClass)).andReturn("myfile.txt");
-        String sampleVmPath = "/sample.vm";
-        expect(generator.getTemplatePath(mydir, packageName, suite, clazz, parameters, runtimeClass)).andReturn(sampleVmPath);
-        expect(velocityEngine.getTemplate("/sample.vm")).andThrow(new ResourceNotFoundException("hello"));
-
-        replay(velocityEngine, generator, suite, clazz, template, parameters);
-        generator.generate(directory, packageName, suite, clazz, parameters, runtimeClass);
-        verify(velocityEngine, generator, suite, clazz, template, parameters);
-    }
-
-    /**
-     * Test method for {@link AbstractTemplateClassGenerator#generate(File, String, TemplateSuite, TemplateClass, Map)}.
-     * @throws Exception If something goes wrong.
-     */
-    @Test(expected = AutotagRuntimeException.class)
-    public void testGenerateException2() throws Exception {
-        directory.delete();
-        directory.mkdir();
-        TemplateSuite suite = createMock(TemplateSuite.class);
-        TemplateClass clazz = createMock(TemplateClass.class);
-        Template template = createMock(Template.class);
-        @SuppressWarnings("unchecked")
-        Map<String, String> parameters = createMock(Map.class);
-        String packageName = "org.apache.tiles.autotag.test";
-        String runtimeClass = "org.apache.tiles.autotag.test.DoStuffRuntime";
-
-        expect(generator.getDirectoryName(directory, packageName, suite, clazz, parameters, runtimeClass)).andReturn("mydir");
-        File mydir = new File(directory, "mydir");
-        expect(generator.getFilename(mydir , packageName, suite, clazz, parameters, runtimeClass)).andReturn("myfile.txt");
-        String sampleVmPath = "/sample.vm";
-        expect(generator.getTemplatePath(mydir, packageName, suite, clazz, parameters, runtimeClass)).andReturn(sampleVmPath);
-        expect(velocityEngine.getTemplate("/sample.vm")).andThrow(new ParseErrorException("hello"));
-
-        replay(velocityEngine, generator, suite, clazz, template, parameters);
-        generator.generate(directory, packageName, suite, clazz, parameters, runtimeClass);
-        verify(velocityEngine, generator, suite, clazz, template, parameters);
-    }
-
-    /**
-     * Test method for {@link AbstractTemplateClassGenerator#generate(File, String, TemplateSuite, TemplateClass, Map)}.
-     * @throws Exception If something goes wrong.
-     */
-    @Test(expected = AutotagRuntimeException.class)
-    public void testGenerateException3() throws Exception {
-        directory.delete();
-        directory.mkdir();
-        TemplateSuite suite = createMock(TemplateSuite.class);
-        TemplateClass clazz = createMock(TemplateClass.class);
-        Template template = createMock(Template.class);
-        @SuppressWarnings("unchecked")
-        Map<String, String> parameters = createMock(Map.class);
-        String packageName = "org.apache.tiles.autotag.test";
-        String runtimeClass = "org.apache.tiles.autotag.test.DoStuffRuntime";
-
-        expect(generator.getDirectoryName(directory, packageName, suite, clazz, parameters, runtimeClass)).andReturn("mydir");
-        File mydir = new File(directory, "mydir");
-        expect(generator.getFilename(mydir , packageName, suite, clazz, parameters, runtimeClass)).andReturn("myfile.txt");
-        String sampleVmPath = "/sample.vm";
-        expect(generator.getTemplatePath(mydir, packageName, suite, clazz, parameters, runtimeClass)).andReturn(sampleVmPath);
-        expect(velocityEngine.getTemplate("/sample.vm")).andThrow(new Exception());
-
-        replay(velocityEngine, generator, suite, clazz, template, parameters);
-        generator.generate(directory, packageName, suite, clazz, parameters, runtimeClass);
-        verify(velocityEngine, generator, suite, clazz, template, parameters);
-    }
-
-    /**
-     * Test method for {@link AbstractTemplateClassGenerator#generate(File, String, TemplateSuite, TemplateClass, Map)}.
-     * @throws Exception If something goes wrong.
-     * @throws ParseErrorException If something goes wrong.
-     * @throws ResourceNotFoundException If something goes wrong.
-     */
-    @Test(expected = AutotagRuntimeException.class)
-    public void testGenerateException4() throws Exception {
-        directory.delete();
-        directory.mkdir();
-        TemplateSuite suite = createMock(TemplateSuite.class);
-        TemplateClass clazz = createMock(TemplateClass.class);
-        Template template = createMock(Template.class);
-        @SuppressWarnings("unchecked")
-        Map<String, String> parameters = createMock(Map.class);
-        String packageName = "org.apache.tiles.autotag.test";
-        String runtimeClass = "org.apache.tiles.autotag.test.DoStuffRuntime";
-
-        expect(generator.getDirectoryName(directory, packageName, suite, clazz, parameters, runtimeClass)).andReturn("mydir");
-        File mydir = new File(directory, "mydir");
-        expect(generator.getFilename(mydir , packageName, suite, clazz, parameters, runtimeClass)).andReturn("myfile.txt");
-        String sampleVmPath = "/sample.vm";
-        expect(generator.getTemplatePath(mydir, packageName, suite, clazz, parameters, runtimeClass)).andReturn(sampleVmPath);
-        expect(velocityEngine.getTemplate("/sample.vm")).andReturn(template);
-        template.merge(isA(VelocityContext.class), isA(FileWriter.class));
-        expectLastCall().andThrow(new IOException());
-
-        replay(velocityEngine, generator, suite, clazz, template, parameters);
-        generator.generate(directory, packageName, suite, clazz, parameters, runtimeClass);
-        verify(velocityEngine, generator, suite, clazz, template, parameters);
-    }
-
-    /**
-     * Test method for {@link AbstractTemplateClassGenerator#generate(File, String, TemplateSuite, TemplateClass, Map)}.
-     * @throws Exception If something goes wrong.
-     * @throws ParseErrorException If something goes wrong.
-     * @throws ResourceNotFoundException If something goes wrong.
-     */
-    @Test(expected = ClassParseException.class)
-    public void testGenerateException5() throws Exception {
-        directory.delete();
-        directory.mkdir();
-        TemplateSuite suite = createMock(TemplateSuite.class);
-        TemplateClass clazz = createMock(TemplateClass.class);
-        Template template = createMock(Template.class);
-        @SuppressWarnings("unchecked")
-        Map<String, String> parameters = createMock(Map.class);
-        String packageName = "org.apache.tiles.autotag.test";
-        String runtimeClass = "org.apache.tiles.autotag.test.DoStuffRuntime";
-
-        expect(generator.getDirectoryName(directory, packageName, suite, clazz, parameters, runtimeClass)).andReturn("mydir");
-        File mydir = new File(directory, "mydir");
-        expect(generator.getFilename(mydir , packageName, suite, clazz, parameters, runtimeClass)).andReturn("myfile.txt");
-        String sampleVmPath = "/sample.vm";
-        expect(generator.getTemplatePath(mydir, packageName, suite, clazz, parameters, runtimeClass)).andReturn(sampleVmPath);
-        expect(velocityEngine.getTemplate("/sample.vm")).andReturn(template);
-        template.merge(isA(VelocityContext.class), isA(FileWriter.class));
-        expectLastCall().andThrow(new ClassParseException());
-
-        replay(velocityEngine, generator, suite, clazz, template, parameters);
-        generator.generate(directory, packageName, suite, clazz, parameters, runtimeClass);
-        verify(velocityEngine, generator, suite, clazz, template, parameters);
-    }
-
-}
diff --git a/tiles-autotag/tiles-autotag-core/src/test/java/org/apache/tiles/autotag/generate/AbstractTemplateSuiteGeneratorTest.java b/tiles-autotag/tiles-autotag-core/src/test/java/org/apache/tiles/autotag/generate/AbstractTemplateSuiteGeneratorTest.java
deleted file mode 100644
index b98da2c..0000000
--- a/tiles-autotag/tiles-autotag-core/src/test/java/org/apache/tiles/autotag/generate/AbstractTemplateSuiteGeneratorTest.java
+++ /dev/null
@@ -1,259 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.autotag.generate;
-
-import static org.easymock.EasyMock.*;
-
-import java.io.File;
-import java.io.FileWriter;
-import java.io.IOException;
-import java.util.Map;
-
-import org.apache.commons.io.FileUtils;
-import org.apache.tiles.autotag.core.AutotagRuntimeException;
-import org.apache.tiles.autotag.core.ClassParseException;
-import org.apache.tiles.autotag.model.TemplateSuite;
-import org.apache.velocity.Template;
-import org.apache.velocity.VelocityContext;
-import org.apache.velocity.app.VelocityEngine;
-import org.apache.velocity.exception.ParseErrorException;
-import org.apache.velocity.exception.ResourceNotFoundException;
-import org.junit.Before;
-import org.junit.Test;
-
-/**
- * Tests {@link AbstractTemplateSuiteGenerator}.
- *
- * @version $Rev$ $Date$
- */
-public class AbstractTemplateSuiteGeneratorTest {
-
-    /**
-     * The velocity engine.
-     */
-    private VelocityEngine velocityEngine;
-
-    /**
-     * The temporary directory.
-     */
-    private File directory;
-
-    /**
-     * The generator to test.
-     */
-    private AbstractTemplateSuiteGenerator generator;
-
-    /**
-     * Sets up the test.
-     *
-     * @throws IOException If something goes wrong.
-     */
-    @Before
-    public void setUp() throws IOException {
-        velocityEngine = createMock(VelocityEngine.class);
-        generator = createMockBuilder(AbstractTemplateSuiteGenerator.class)
-                .withConstructor(velocityEngine).createMock();
-        directory = File.createTempFile("autotag", null);
-    }
-
-    /**
-     * Tears down the test.
-     *
-     * @throws IOException If something goes wrong.
-     */
-    public void tearDown() throws IOException {
-        FileUtils.deleteDirectory(directory);
-    }
-
-    /**
-     * Test method for {@link AbstractTemplateSuiteGenerator#generate(File, String, TemplateSuite, Map)}.
-     * @throws Exception If something goes wrong.
-     * @throws ParseErrorException If something goes wrong.
-     * @throws ResourceNotFoundException If something goes wrong.
-     */
-    @Test
-    public void testGenerate() throws Exception {
-        directory.delete();
-        directory.mkdir();
-        TemplateSuite suite = createMock(TemplateSuite.class);
-        Template template = createMock(Template.class);
-        @SuppressWarnings("unchecked")
-        Map<String, String> parameters = createMock(Map.class);
-        String packageName = "org.apache.tiles.autotag.test";
-
-        expect(generator.getDirectoryName(directory, packageName, suite, parameters)).andReturn("mydir");
-        File mydir = new File(directory, "mydir");
-        expect(generator.getFilename(mydir , packageName, suite, parameters)).andReturn("myfile.txt");
-        String sampleVmPath = "/sample.vm";
-        expect(generator.getTemplatePath(mydir, packageName, suite, parameters)).andReturn(sampleVmPath);
-        expect(velocityEngine.getTemplate("/sample.vm")).andReturn(template);
-        template.merge(isA(VelocityContext.class), isA(FileWriter.class));
-
-        replay(velocityEngine, generator, suite, template, parameters);
-        generator.generate(directory, packageName, suite, parameters);
-        verify(velocityEngine, generator, suite, template, parameters);
-    }
-
-    /**
-     * Test method for {@link AbstractTemplateSuiteGenerator#generate(File, String, TemplateSuite, Map)}.
-     * @throws Exception If something goes wrong.
-     * @throws ParseErrorException If something goes wrong.
-     * @throws ResourceNotFoundException If something goes wrong.
-     */
-    @Test(expected = AutotagRuntimeException.class)
-    public void testGenerateException1() throws Exception {
-        directory.delete();
-        directory.mkdir();
-        TemplateSuite suite = createMock(TemplateSuite.class);
-        Template template = createMock(Template.class);
-        @SuppressWarnings("unchecked")
-        Map<String, String> parameters = createMock(Map.class);
-        String packageName = "org.apache.tiles.autotag.test";
-
-        expect(generator.getDirectoryName(directory, packageName, suite, parameters)).andReturn("mydir");
-        File mydir = new File(directory, "mydir");
-        expect(generator.getFilename(mydir , packageName, suite, parameters)).andReturn("myfile.txt");
-        String sampleVmPath = "/sample.vm";
-        expect(generator.getTemplatePath(mydir, packageName, suite, parameters)).andReturn(sampleVmPath);
-        expect(velocityEngine.getTemplate("/sample.vm")).andThrow(new ResourceNotFoundException("hello"));
-
-        replay(velocityEngine, generator, suite, template, parameters);
-        generator.generate(directory, packageName, suite, parameters);
-        verify(velocityEngine, generator, suite, template, parameters);
-    }
-
-    /**
-     * Test method for {@link AbstractTemplateSuiteGenerator#generate(File, String, TemplateSuite, Map)}.
-     * @throws Exception If something goes wrong.
-     * @throws ParseErrorException If something goes wrong.
-     * @throws ResourceNotFoundException If something goes wrong.
-     */
-    @Test(expected = AutotagRuntimeException.class)
-    public void testGenerateException2() throws Exception {
-        directory.delete();
-        directory.mkdir();
-        TemplateSuite suite = createMock(TemplateSuite.class);
-        Template template = createMock(Template.class);
-        @SuppressWarnings("unchecked")
-        Map<String, String> parameters = createMock(Map.class);
-        String packageName = "org.apache.tiles.autotag.test";
-
-        expect(generator.getDirectoryName(directory, packageName, suite, parameters)).andReturn("mydir");
-        File mydir = new File(directory, "mydir");
-        expect(generator.getFilename(mydir , packageName, suite, parameters)).andReturn("myfile.txt");
-        String sampleVmPath = "/sample.vm";
-        expect(generator.getTemplatePath(mydir, packageName, suite, parameters)).andReturn(sampleVmPath);
-        expect(velocityEngine.getTemplate("/sample.vm")).andThrow(new ParseErrorException("hello"));
-
-        replay(velocityEngine, generator, suite, template, parameters);
-        generator.generate(directory, packageName, suite, parameters);
-        verify(velocityEngine, generator, suite, template, parameters);
-    }
-
-    /**
-     * Test method for {@link AbstractTemplateSuiteGenerator#generate(File, String, TemplateSuite, Map)}.
-     * @throws Exception If something goes wrong.
-     * @throws ParseErrorException If something goes wrong.
-     * @throws ResourceNotFoundException If something goes wrong.
-     */
-    @Test(expected = AutotagRuntimeException.class)
-    public void testGenerateException3() throws Exception {
-        directory.delete();
-        directory.mkdir();
-        TemplateSuite suite = createMock(TemplateSuite.class);
-        Template template = createMock(Template.class);
-        @SuppressWarnings("unchecked")
-        Map<String, String> parameters = createMock(Map.class);
-        String packageName = "org.apache.tiles.autotag.test";
-
-        expect(generator.getDirectoryName(directory, packageName, suite, parameters)).andReturn("mydir");
-        File mydir = new File(directory, "mydir");
-        expect(generator.getFilename(mydir , packageName, suite, parameters)).andReturn("myfile.txt");
-        String sampleVmPath = "/sample.vm";
-        expect(generator.getTemplatePath(mydir, packageName, suite, parameters)).andReturn(sampleVmPath);
-        expect(velocityEngine.getTemplate("/sample.vm")).andThrow(new Exception());
-
-        replay(velocityEngine, generator, suite, template, parameters);
-        generator.generate(directory, packageName, suite, parameters);
-        verify(velocityEngine, generator, suite, template, parameters);
-    }
-
-    /**
-     * Test method for {@link AbstractTemplateSuiteGenerator#generate(File, String, TemplateSuite, Map)}.
-     * @throws Exception If something goes wrong.
-     * @throws ParseErrorException If something goes wrong.
-     * @throws ResourceNotFoundException If something goes wrong.
-     */
-    @Test(expected = AutotagRuntimeException.class)
-    public void testGenerateException4() throws Exception {
-        directory.delete();
-        directory.mkdir();
-        TemplateSuite suite = createMock(TemplateSuite.class);
-        Template template = createMock(Template.class);
-        @SuppressWarnings("unchecked")
-        Map<String, String> parameters = createMock(Map.class);
-        String packageName = "org.apache.tiles.autotag.test";
-
-        expect(generator.getDirectoryName(directory, packageName, suite, parameters)).andReturn("mydir");
-        File mydir = new File(directory, "mydir");
-        expect(generator.getFilename(mydir , packageName, suite, parameters)).andReturn("myfile.txt");
-        String sampleVmPath = "/sample.vm";
-        expect(generator.getTemplatePath(mydir, packageName, suite, parameters)).andReturn(sampleVmPath);
-        expect(velocityEngine.getTemplate("/sample.vm")).andReturn(template);
-        template.merge(isA(VelocityContext.class), isA(FileWriter.class));
-        expectLastCall().andThrow(new IOException());
-
-        replay(velocityEngine, generator, suite, template, parameters);
-        generator.generate(directory, packageName, suite, parameters);
-        verify(velocityEngine, generator, suite, template, parameters);
-    }
-
-    /**
-     * Test method for {@link AbstractTemplateSuiteGenerator#generate(File, String, TemplateSuite, Map)}.
-     * @throws Exception If something goes wrong.
-     * @throws ParseErrorException If something goes wrong.
-     * @throws ResourceNotFoundException If something goes wrong.
-     */
-    @Test(expected = ClassParseException.class)
-    public void testGenerateException5() throws Exception {
-        directory.delete();
-        directory.mkdir();
-        TemplateSuite suite = createMock(TemplateSuite.class);
-        Template template = createMock(Template.class);
-        @SuppressWarnings("unchecked")
-        Map<String, String> parameters = createMock(Map.class);
-        String packageName = "org.apache.tiles.autotag.test";
-
-        expect(generator.getDirectoryName(directory, packageName, suite, parameters)).andReturn("mydir");
-        File mydir = new File(directory, "mydir");
-        expect(generator.getFilename(mydir , packageName, suite, parameters)).andReturn("myfile.txt");
-        String sampleVmPath = "/sample.vm";
-        expect(generator.getTemplatePath(mydir, packageName, suite, parameters)).andReturn(sampleVmPath);
-        expect(velocityEngine.getTemplate("/sample.vm")).andReturn(template);
-        template.merge(isA(VelocityContext.class), isA(FileWriter.class));
-        expectLastCall().andThrow(new ClassParseException());
-
-        replay(velocityEngine, generator, suite, template, parameters);
-        generator.generate(directory, packageName, suite, parameters);
-        verify(velocityEngine, generator, suite, template, parameters);
-    }
-
-}
diff --git a/tiles-autotag/tiles-autotag-core/src/test/java/org/apache/tiles/autotag/generate/BasicTemplateGeneratorTest.java b/tiles-autotag/tiles-autotag-core/src/test/java/org/apache/tiles/autotag/generate/BasicTemplateGeneratorTest.java
deleted file mode 100644
index 15463d3..0000000
--- a/tiles-autotag/tiles-autotag-core/src/test/java/org/apache/tiles/autotag/generate/BasicTemplateGeneratorTest.java
+++ /dev/null
@@ -1,80 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.autotag.generate;
-
-import static org.easymock.EasyMock.*;
-import static org.junit.Assert.*;
-
-import java.io.File;
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Map;
-
-import org.apache.tiles.autotag.generate.BasicTemplateGenerator.TCGeneratorDirectoryPair;
-import org.apache.tiles.autotag.generate.BasicTemplateGenerator.TSGeneratorDirectoryPair;
-import org.apache.tiles.autotag.model.TemplateClass;
-import org.apache.tiles.autotag.model.TemplateSuite;
-import org.junit.Test;
-
-/**
- * Tests {@link BasicTemplateGenerator}.
- *
- * @version $Rev$ $Date$
- */
-public class BasicTemplateGeneratorTest {
-
-    /**
-     * Test method for {@link BasicTemplateGenerator#generate(String, TemplateSuite, Map)}.
-     * @throws IOException If something goes wrong.
-     */
-    @Test
-    public void testGenerate() throws IOException {
-        File file = File.createTempFile("tiles", "template");
-        file.deleteOnExit();
-        TemplateSuite suite = createMock(TemplateSuite.class);
-        TemplateClass templateClass = createMock(TemplateClass.class);
-        TemplateSuiteGenerator templateSuiteGenerator = createMock(TemplateSuiteGenerator.class);
-        TemplateClassGenerator templateClassGenerator = createMock(TemplateClassGenerator.class);
-        @SuppressWarnings("unchecked")
-        Map<String, String> parameters = createMock(Map.class);
-        List<TemplateClass> templateClasses = new ArrayList<TemplateClass>();
-
-        templateClasses.add(templateClass);
-
-        expect(suite.getTemplateClasses()).andReturn(templateClasses);
-        templateSuiteGenerator.generate(file, "my.package", suite, parameters);
-        templateClassGenerator.generate(file, "my.package", suite, templateClass, parameters, "my.Runtime");
-
-        replay(suite, templateClass, templateSuiteGenerator, templateClassGenerator, parameters);
-        TSGeneratorDirectoryPair tsPair = new TSGeneratorDirectoryPair(file, templateSuiteGenerator);
-        TCGeneratorDirectoryPair tcPair = new TCGeneratorDirectoryPair(file, templateClassGenerator);
-        List<TSGeneratorDirectoryPair> tsList = new ArrayList<BasicTemplateGenerator.TSGeneratorDirectoryPair>();
-        tsList.add(tsPair);
-        List<TCGeneratorDirectoryPair> tcList = new ArrayList<BasicTemplateGenerator.TCGeneratorDirectoryPair>();
-        tcList.add(tcPair);
-        BasicTemplateGenerator generator = new BasicTemplateGenerator(tsList, tcList, true, false);
-        assertTrue(generator.isGeneratingClasses());
-        assertFalse(generator.isGeneratingResources());
-        generator.generate("my.package", suite, parameters, "my.Runtime");
-        verify(suite, templateClass, templateSuiteGenerator, templateClassGenerator, parameters);
-    }
-}
diff --git a/tiles-autotag/tiles-autotag-core/src/test/java/org/apache/tiles/autotag/generate/TemplateGeneratorBuilderTest.java b/tiles-autotag/tiles-autotag-core/src/test/java/org/apache/tiles/autotag/generate/TemplateGeneratorBuilderTest.java
deleted file mode 100644
index 998bd6d..0000000
--- a/tiles-autotag/tiles-autotag-core/src/test/java/org/apache/tiles/autotag/generate/TemplateGeneratorBuilderTest.java
+++ /dev/null
@@ -1,169 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.autotag.generate;
-
-import static org.easymock.EasyMock.*;
-import static org.junit.Assert.*;
-
-import java.io.File;
-
-import org.junit.Test;
-
-/**
- * @author antonio
- *
- * @version $Rev$ $Date$
- */
-public class TemplateGeneratorBuilderTest {
-
-    /**
-     * Test method for {@link TemplateGeneratorBuilder#addClassesTemplateSuiteGenerator(TemplateSuiteGenerator)}.
-     */
-    @Test
-    public void testAddClassesTemplateSuiteGenerator() {
-        File dir = createMock(File.class);
-        TemplateSuiteGenerator generator = createMock(TemplateSuiteGenerator.class);
-
-        replay(dir, generator);
-        TemplateGenerator templateGenerator = TemplateGeneratorBuilder
-                .createNewInstance().setClassesOutputDirectory(dir)
-                .addClassesTemplateSuiteGenerator(generator).build();
-        assertTrue(templateGenerator.isGeneratingClasses());
-        assertFalse(templateGenerator.isGeneratingResources());
-        verify(dir, generator);
-    }
-
-    /**
-     * Test method for {@link TemplateGeneratorBuilder#addClassesTemplateSuiteGenerator(TemplateSuiteGenerator)}.
-     */
-    @Test(expected = NullPointerException.class)
-    public void testAddClassesTemplateSuiteGeneratorException() {
-        TemplateSuiteGenerator generator = createMock(TemplateSuiteGenerator.class);
-
-        replay(generator);
-        try {
-            TemplateGeneratorBuilder.createNewInstance()
-                    .addClassesTemplateSuiteGenerator(generator);
-        } finally {
-            verify(generator);
-        }
-    }
-
-    /**
-     * Test method for {@link TemplateGeneratorBuilder#addClassesTemplateClassGenerator(TemplateClassGenerator)}.
-     */
-    @Test
-    public void testAddClassesTemplateClassGenerator() {
-        File dir = createMock(File.class);
-        TemplateClassGenerator generator = createMock(TemplateClassGenerator.class);
-
-        replay(dir, generator);
-        TemplateGenerator templateGenerator = TemplateGeneratorBuilder
-                .createNewInstance().setClassesOutputDirectory(dir)
-                .addClassesTemplateClassGenerator(generator).build();
-        assertTrue(templateGenerator.isGeneratingClasses());
-        assertFalse(templateGenerator.isGeneratingResources());
-        verify(dir, generator);
-    }
-
-    /**
-     * Test method for {@link TemplateGeneratorBuilder#addClassesTemplateClassGenerator(TemplateClassGenerator)}.
-     */
-    @Test(expected = NullPointerException.class)
-    public void testAddClassesTemplateClassGeneratorException() {
-        TemplateClassGenerator generator = createMock(TemplateClassGenerator.class);
-
-        replay(generator);
-        try {
-            TemplateGeneratorBuilder.createNewInstance()
-                    .addClassesTemplateClassGenerator(generator);
-        } finally {
-            verify(generator);
-        }
-    }
-
-    /**
-     * Test method for {@link TemplateGeneratorBuilder#addResourcesTemplateSuiteGenerator(TemplateSuiteGenerator)}.
-     */
-    @Test
-    public void testAddResourcesTemplateSuiteGenerator() {
-        File dir = createMock(File.class);
-        TemplateSuiteGenerator generator = createMock(TemplateSuiteGenerator.class);
-
-        replay(dir, generator);
-        TemplateGenerator templateGenerator = TemplateGeneratorBuilder
-                .createNewInstance().setResourcesOutputDirectory(dir)
-                .addResourcesTemplateSuiteGenerator(generator).build();
-        assertFalse(templateGenerator.isGeneratingClasses());
-        assertTrue(templateGenerator.isGeneratingResources());
-        verify(dir, generator);
-    }
-
-    /**
-     * Test method for {@link TemplateGeneratorBuilder#addResourcesTemplateSuiteGenerator(TemplateSuiteGenerator)}.
-     */
-    @Test(expected = NullPointerException.class)
-    public void testAddResourcesTemplateSuiteGeneratorException() {
-        TemplateSuiteGenerator generator = createMock(TemplateSuiteGenerator.class);
-
-        replay(generator);
-        try {
-            TemplateGeneratorBuilder.createNewInstance()
-                    .addResourcesTemplateSuiteGenerator(generator);
-        } finally {
-            verify(generator);
-        }
-    }
-
-    /**
-     * Test method for {@link TemplateGeneratorBuilder#addResourcesTemplateClassGenerator(TemplateClassGenerator)}.
-     */
-    @Test
-    public void testAddResourcesTemplateClassGenerator() {
-        File dir = createMock(File.class);
-        TemplateClassGenerator generator = createMock(TemplateClassGenerator.class);
-
-        replay(dir, generator);
-        TemplateGenerator templateGenerator = TemplateGeneratorBuilder
-                .createNewInstance().setResourcesOutputDirectory(dir)
-                .addResourcesTemplateClassGenerator(generator).build();
-        assertFalse(templateGenerator.isGeneratingClasses());
-        assertTrue(templateGenerator.isGeneratingResources());
-        verify(dir, generator);
-    }
-
-    /**
-     * Test method for {@link TemplateGeneratorBuilder#addResourcesTemplateClassGenerator(TemplateClassGenerator)}.
-     */
-    @Test(expected = NullPointerException.class)
-    public void testAddResourcesTemplateClassGeneratorException() {
-        TemplateClassGenerator generator = createMock(TemplateClassGenerator.class);
-
-        replay(generator);
-        try {
-            TemplateGeneratorBuilder.createNewInstance()
-                    .addResourcesTemplateClassGenerator(generator);
-        } finally {
-            verify(generator);
-        }
-    }
-
-}
diff --git a/tiles-autotag/tiles-autotag-core/src/test/java/org/apache/tiles/autotag/model/TemplateClassTest.java b/tiles-autotag/tiles-autotag-core/src/test/java/org/apache/tiles/autotag/model/TemplateClassTest.java
deleted file mode 100644
index e2acdb8..0000000
--- a/tiles-autotag/tiles-autotag-core/src/test/java/org/apache/tiles/autotag/model/TemplateClassTest.java
+++ /dev/null
@@ -1,157 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.autotag.model;
-
-import static org.easymock.EasyMock.*;
-import static org.junit.Assert.*;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Iterator;
-import java.util.List;
-
-import org.junit.Test;
-
-/**
- * @author antonio
- *
- * @version $Rev$ $Date$
- */
-public class TemplateClassTest {
-
-    /**
-     * Test method for {@link TemplateClass#TemplateClass(String)}.
-     */
-    @Test
-    public void testTemplateConstructor1() {
-        TemplateClass templateClass = new TemplateClass("name");
-        assertEquals("name", templateClass.getName());
-        assertNull(templateClass.getTagName());
-        assertNull(templateClass.getTagClassPrefix());
-        assertNull(templateClass.getExecuteMethod());
-        Collection<TemplateParameter> params = templateClass.getParameters();
-        assertTrue(params.isEmpty());
-    }
-
-    /**
-     * Test method for {@link TemplateClass#TemplateClass(String, String, String, TemplateMethod)}.
-     */
-    @Test
-    public void testTemplateConstructor2() {
-        TemplateMethod method = createMock(TemplateMethod.class);
-
-        replay(method);
-        TemplateClass templateClass = new TemplateClass("name", "tagName", "tagClassPrefix", method);
-        assertEquals("name", templateClass.getName());
-        assertEquals("tagName", templateClass.getTagName());
-        assertEquals("tagClassPrefix", templateClass.getTagClassPrefix());
-        assertEquals(method, templateClass.getExecuteMethod());
-        verify(method);
-    }
-
-    /**
-     * Test method for {@link TemplateClass#getSimpleName()}.
-     */
-    @Test
-    public void testGetSimpleName() {
-        TemplateClass templateClass = new TemplateClass("name");
-        assertEquals("name", templateClass.getSimpleName());
-        templateClass = new TemplateClass("org.whatever.Hello");
-        assertEquals("Hello", templateClass.getSimpleName());
-    }
-
-    /**
-     * Test method for {@link TemplateClass#setDocumentation(String)}.
-     */
-    @Test
-    public void testSetDocumentation() {
-        TemplateClass templateClass = new TemplateClass("name");
-        templateClass.setDocumentation("docs");
-        assertEquals("docs", templateClass.getDocumentation());
-    }
-
-    /**
-     * Test method for {@link TemplateClass#getParameters()}.
-     */
-    @Test
-    public void testGetParameters() {
-        TemplateParameter param1 = createMock(TemplateParameter.class);
-        TemplateParameter param2 = createMock(TemplateParameter.class);
-        TemplateParameter param3 = createMock(TemplateParameter.class);
-        TemplateParameter param4 = createMock(TemplateParameter.class);
-        TemplateMethod method = createMock(TemplateMethod.class);
-        List<TemplateParameter> params = new ArrayList<TemplateParameter>();
-
-        expect(method.getParameters()).andReturn(params);
-        expect(param1.isRequest()).andReturn(true);
-        expect(param2.isRequest()).andReturn(false);
-        expect(param2.isBody()).andReturn(true);
-        expect(param3.isRequest()).andReturn(false);
-        expect(param3.isBody()).andReturn(false);
-        expect(param4.isRequest()).andReturn(false);
-        expect(param4.isBody()).andReturn(false);
-        expect(param3.getName()).andReturn("param1");
-        expect(param4.getName()).andReturn("param2");
-
-        replay(param1, param2, param3, param4, method);
-        params.add(param1);
-        params.add(param2);
-        params.add(param3);
-        params.add(param4);
-
-        TemplateClass templateClass = new TemplateClass("name", "tagName", "tagClassPrefix", method);
-        Collection<TemplateParameter> returnedParams = templateClass.getParameters();
-        Iterator<TemplateParameter> paramIt = returnedParams.iterator();
-        assertSame(param3, paramIt.next());
-        assertSame(param4, paramIt.next());
-        assertFalse(paramIt.hasNext());
-        verify(param1, param2, param3, param4, method);
-    }
-
-    /**
-     * Test method for {@link TemplateClass#hasBody()}.
-     */
-    @Test
-    public void testHasBody() {
-        TemplateMethod method = createMock(TemplateMethod.class);
-        expect(method.hasBody()).andReturn(true);
-
-        replay(method);
-        TemplateClass templateClass = new TemplateClass("name", "tagName", "tagClassPrefix", method);
-        assertTrue(templateClass.hasBody());
-        verify(method);
-    }
-
-    /**
-     * Test method for {@link TemplateClass#toString()}.
-     */
-    @Test
-    public void testToString() {
-        TemplateMethod method = new TemplateMethod("method", new ArrayList<TemplateParameter>());
-        TemplateClass templateClass = new TemplateClass("name", "tagName", "tagClassPrefix", method);
-        assertEquals(
-                "TemplateClass [name=name, tagName=tagName, tagClassPrefix=tagClassPrefix, "
-                        + "documentation=null, executeMethod=TemplateMethod "
-                        + "[name=method, documentation=null, parameters={}]]",
-                templateClass.toString());
-    }
-
-}
diff --git a/tiles-autotag/tiles-autotag-core/src/test/java/org/apache/tiles/autotag/model/TemplateMethodTest.java b/tiles-autotag/tiles-autotag-core/src/test/java/org/apache/tiles/autotag/model/TemplateMethodTest.java
deleted file mode 100644
index c868109..0000000
--- a/tiles-autotag/tiles-autotag-core/src/test/java/org/apache/tiles/autotag/model/TemplateMethodTest.java
+++ /dev/null
@@ -1,130 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.autotag.model;
-
-import static org.easymock.EasyMock.*;
-import static org.junit.Assert.*;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
-import org.junit.Test;
-
-/**
- * Tests {@link TemplateMethod}.
- *
- * @version $Rev$ $Date$
- */
-public class TemplateMethodTest {
-
-    /**
-     * Tests {@link TemplateMethod#TemplateMethod(String, Iterable)}.
-     */
-    @Test
-    public void testTemplateMethod() {
-        TemplateParameter param1 = createMock(TemplateParameter.class);
-        TemplateParameter param2 = createMock(TemplateParameter.class);
-
-        expect(param1.getName()).andReturn("param1");
-        expect(param2.getName()).andReturn("param2");
-
-        replay(param1, param2);
-        List<TemplateParameter> parameters = new ArrayList<TemplateParameter>();
-        parameters.add(param1);
-        parameters.add(param2);
-
-        TemplateMethod method = new TemplateMethod("method", parameters);
-        assertEquals("method", method.getName());
-        Iterator<TemplateParameter> params = method.getParameters().iterator();
-        assertSame(param1, params.next());
-        assertSame(param2, params.next());
-        assertFalse(params.hasNext());
-        assertSame(param1, method.getParameterByName("param1"));
-        assertSame(param2, method.getParameterByName("param2"));
-        verify(param1, param2);
-    }
-
-    /**
-     * Tests {@link TemplateMethod#setDocumentation(String)}.
-     */
-    @Test
-    public void testSetDocumentation() {
-        TemplateMethod method = new TemplateMethod("method", new ArrayList<TemplateParameter>());
-        method.setDocumentation("docs");
-        assertEquals("docs", method.getDocumentation());
-    }
-
-    /**
-     * Tests {@link TemplateMethod#hasBody()}.
-     */
-    @Test
-    public void testHasBody() {
-        TemplateParameter param1 = createMock(TemplateParameter.class);
-        TemplateParameter param2 = createMock(TemplateParameter.class);
-
-        expect(param1.getName()).andReturn("param1");
-        expect(param2.getName()).andReturn("param2");
-        expect(param1.isBody()).andReturn(true);
-
-        replay(param1, param2);
-        List<TemplateParameter> parameters = new ArrayList<TemplateParameter>();
-        parameters.add(param1);
-        parameters.add(param2);
-
-        TemplateMethod method = new TemplateMethod("method", parameters);
-        assertTrue(method.hasBody());
-        verify(param1, param2);
-    }
-
-    /**
-     * Tests {@link TemplateMethod#hasBody()}.
-     */
-    @Test
-    public void testHasBody2() {
-        TemplateParameter param1 = createMock(TemplateParameter.class);
-        TemplateParameter param2 = createMock(TemplateParameter.class);
-
-        expect(param1.getName()).andReturn("param1");
-        expect(param2.getName()).andReturn("param2");
-        expect(param1.isBody()).andReturn(false);
-        expect(param2.isBody()).andReturn(false);
-
-        replay(param1, param2);
-        List<TemplateParameter> parameters = new ArrayList<TemplateParameter>();
-        parameters.add(param1);
-        parameters.add(param2);
-
-        TemplateMethod method = new TemplateMethod("method", parameters);
-        assertFalse(method.hasBody());
-        verify(param1, param2);
-    }
-
-    /**
-     * Tests {@link TemplateMethod#toString()}.
-     */
-    @Test
-    public void testToString() {
-        TemplateMethod method = new TemplateMethod("method", new ArrayList<TemplateParameter>());
-        assertEquals("TemplateMethod [name=method, documentation=null, parameters={}]", method.toString());
-    }
-
-}
diff --git a/tiles-autotag/tiles-autotag-core/src/test/java/org/apache/tiles/autotag/model/TemplateParameterTest.java b/tiles-autotag/tiles-autotag-core/src/test/java/org/apache/tiles/autotag/model/TemplateParameterTest.java
deleted file mode 100644
index c0a100d..0000000
--- a/tiles-autotag/tiles-autotag-core/src/test/java/org/apache/tiles/autotag/model/TemplateParameterTest.java
+++ /dev/null
@@ -1,94 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.autotag.model;
-
-import static org.junit.Assert.*;
-
-import org.apache.tiles.autotag.core.runtime.ModelBody;
-import org.apache.tiles.request.Request;
-import org.junit.Test;
-
-/**
- * Tests {@link TemplateParameter}.
- *
- * @version $Rev$ $Date$
- */
-public class TemplateParameterTest {
-
-    /**
-     * Tests {@link TemplateParameter#TemplateParameter(String, String, String, String, boolean)}.
-     */
-    @Test
-    public void testTemplateParameter() {
-        TemplateParameter parameter = new TemplateParameter("name", "exportedName", "type", "defaultValue", true);
-        assertEquals("name", parameter.getName());
-        assertEquals("exportedName", parameter.getExportedName());
-        assertEquals("type", parameter.getType());
-        assertEquals("defaultValue", parameter.getDefaultValue());
-        assertTrue(parameter.isRequired());
-        assertEquals("ExportedName", parameter.getGetterSetterSuffix());
-        assertFalse(parameter.isBody());
-        assertFalse(parameter.isRequest());
-
-        parameter = new TemplateParameter("name", "exportedName", Request.class.getName(), "defaultValue", false);
-        assertEquals("name", parameter.getName());
-        assertEquals("exportedName", parameter.getExportedName());
-        assertEquals(Request.class.getName(), parameter.getType());
-        assertEquals("defaultValue", parameter.getDefaultValue());
-        assertFalse(parameter.isRequired());
-        assertEquals("ExportedName", parameter.getGetterSetterSuffix());
-        assertFalse(parameter.isBody());
-        assertTrue(parameter.isRequest());
-
-        parameter = new TemplateParameter("name", "exportedName", ModelBody.class.getName(), "defaultValue", false);
-        assertEquals("name", parameter.getName());
-        assertEquals("exportedName", parameter.getExportedName());
-        assertEquals(ModelBody.class.getName(), parameter.getType());
-        assertEquals("defaultValue", parameter.getDefaultValue());
-        assertFalse(parameter.isRequired());
-        assertEquals("ExportedName", parameter.getGetterSetterSuffix());
-        assertTrue(parameter.isBody());
-        assertFalse(parameter.isRequest());
-    }
-
-    /**
-     * Tests {@link TemplateParameter#setDocumentation(String)}.
-     */
-    @Test
-    public void testSetDocumentation() {
-        TemplateParameter parameter = new TemplateParameter("name", "exportedName", "type", "defaultValue", true);
-        parameter.setDocumentation("docs");
-        assertEquals("docs", parameter.getDocumentation());
-    }
-
-    /**
-     * Tests {@link TemplateParameter#toString()}.
-     */
-    @Test
-    public void testToString() {
-        TemplateParameter parameter = new TemplateParameter("name", "exportedName", "type", "defaultValue", true);
-        assertEquals(
-                "TemplateParameter [name=name, exportedName=exportedName, "
-                        + "documentation=null, type=type, defaultValue=defaultValue, required=true]",
-                parameter.toString());
-    }
-
-}
diff --git a/tiles-autotag/tiles-autotag-core/src/test/java/org/apache/tiles/autotag/model/TemplateSuiteTest.java b/tiles-autotag/tiles-autotag-core/src/test/java/org/apache/tiles/autotag/model/TemplateSuiteTest.java
deleted file mode 100644
index 535ee98..0000000
--- a/tiles-autotag/tiles-autotag-core/src/test/java/org/apache/tiles/autotag/model/TemplateSuiteTest.java
+++ /dev/null
@@ -1,113 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.autotag.model;
-
-import static org.easymock.EasyMock.*;
-import static org.junit.Assert.*;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
-import org.junit.Test;
-
-/**
- * Tests {@link TemplateSuite}.
- *
- * @version $Rev$ $Date$
- */
-public class TemplateSuiteTest {
-
-    /**
-     * Test method for {@link TemplateSuite#TemplateSuite(java.lang.String, java.lang.String)}.
-     */
-    @Test
-    public void testTemplateSuiteCostructor1() {
-        TemplateSuite suite = new TemplateSuite("name", "docs");
-        assertEquals("name", suite.getName());
-        assertEquals("docs", suite.getDocumentation());
-        assertTrue(suite.getTemplateClasses().isEmpty());
-    }
-
-    /**
-     * Test method for {@link TemplateSuite#TemplateSuite(java.lang.String, java.lang.String, java.lang.Iterable)}.
-     */
-    @Test
-    public void testTemplateSuiteConstructor2() {
-        TemplateClass class1 = createMock(TemplateClass.class);
-        TemplateClass class2 = createMock(TemplateClass.class);
-        expect(class1.getName()).andReturn("class1");
-        expect(class2.getName()).andReturn("class2");
-
-        replay(class1, class2);
-        List<TemplateClass> classes = new ArrayList<TemplateClass>();
-        classes.add(class1);
-        classes.add(class2);
-        TemplateSuite suite = new TemplateSuite("name", "docs", classes);
-        assertEquals("name", suite.getName());
-        assertEquals("docs", suite.getDocumentation());
-        Iterator<TemplateClass> clazzes = suite.getTemplateClasses().iterator();
-        assertSame(class1, clazzes.next());
-        assertSame(class2, clazzes.next());
-        assertFalse(clazzes.hasNext());
-        assertSame(class1, suite.getTemplateClassByName("class1"));
-        assertSame(class2, suite.getTemplateClassByName("class2"));
-        verify(class1, class2);
-    }
-
-    /**
-     * Test method for {@link TemplateSuite#addTemplateClass(org.apache.tiles.autotag.model.TemplateClass)}.
-     */
-    @Test
-    public void testAddTemplateClass() {
-        TemplateClass class1 = createMock(TemplateClass.class);
-        TemplateClass class2 = createMock(TemplateClass.class);
-        expect(class1.getName()).andReturn("class1");
-        expect(class2.getName()).andReturn("class2");
-
-        replay(class1, class2);
-        List<TemplateClass> classes = new ArrayList<TemplateClass>();
-        classes.add(class1);
-        classes.add(class2);
-        TemplateSuite suite = new TemplateSuite("name", "docs");
-        assertEquals("name", suite.getName());
-        assertEquals("docs", suite.getDocumentation());
-        assertTrue(suite.getTemplateClasses().isEmpty());
-        suite.addTemplateClass(class1);
-        suite.addTemplateClass(class2);
-        Iterator<TemplateClass> clazzes = suite.getTemplateClasses().iterator();
-        assertSame(class1, clazzes.next());
-        assertSame(class2, clazzes.next());
-        assertFalse(clazzes.hasNext());
-        assertSame(class1, suite.getTemplateClassByName("class1"));
-        assertSame(class2, suite.getTemplateClassByName("class2"));
-        verify(class1, class2);
-    }
-
-    /**
-     * Test method for {@link TemplateSuite#toString()}.
-     */
-    @Test
-    public void testToString() {
-        TemplateSuite suite = new TemplateSuite("name", "docs");
-        assertEquals("TemplateSuite [name=name, documentation=docs, templateClasses={}]", suite.toString());
-    }
-}
diff --git a/tiles-autotag/tiles-autotag-core/src/test/java/org/apache/tiles/autotag/tool/StringToolTest.java b/tiles-autotag/tiles-autotag-core/src/test/java/org/apache/tiles/autotag/tool/StringToolTest.java
deleted file mode 100644
index 7fd6023..0000000
--- a/tiles-autotag/tiles-autotag-core/src/test/java/org/apache/tiles/autotag/tool/StringToolTest.java
+++ /dev/null
@@ -1,82 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.autotag.tool;
-
-import static org.junit.Assert.*;
-
-import java.util.List;
-
-import org.junit.Test;
-
-/**
- * Tests {@link StringTool}.
- *
- * @version $Rev$ $Date$
- */
-public class StringToolTest {
-
-    /**
-     * Test method for {@link org.apache.tiles.autotag.tool.StringTool#splitOnNewlines(java.lang.String)}.
-     */
-    @Test
-    public void testSplitOnNewlines() {
-        StringTool tool = new StringTool();
-        List<String> splitted = tool.splitOnNewlines("time\nto\nsplit");
-        assertEquals(3, splitted.size());
-        assertEquals("time", splitted.get(0));
-        assertEquals("to", splitted.get(1));
-        assertEquals("split", splitted.get(2));
-        splitted = tool.splitOnNewlines(null);
-        assertTrue(splitted.isEmpty());
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.autotag.tool.StringTool#capitalizeFirstLetter(java.lang.String)}.
-     */
-    @Test
-    public void testCapitalizeFirstLetter() {
-        StringTool tool = new StringTool();
-        assertEquals("Whatever", tool.capitalizeFirstLetter("whatever"));
-    }
-
-    /**
-     * Test method for {@link StringTool#getDefaultValue(java.lang.String, java.lang.String)}.
-     */
-    @Test
-    public void testGetDefaultValue() {
-        StringTool tool = new StringTool();
-        assertEquals("0", tool.getDefaultValue("byte", null));
-        assertEquals("1", tool.getDefaultValue("byte", "1"));
-        assertEquals("null", tool.getDefaultValue("Whatever", null));
-        assertEquals("thatsit", tool.getDefaultValue("Whatever", "thatsit"));
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.autotag.tool.StringTool#getClassToCast(java.lang.String)}.
-     */
-    @Test
-    public void testGetClassToCast() {
-        StringTool tool = new StringTool();
-        assertEquals(Byte.class.getName(), tool.getClassToCast("byte"));
-        assertEquals("Whatever", tool.getClassToCast("Whatever"));
-    }
-
-}
diff --git a/tiles-autotag/tiles-autotag-freemarker/pom.xml b/tiles-autotag/tiles-autotag-freemarker/pom.xml
deleted file mode 100644
index 481c718..0000000
--- a/tiles-autotag/tiles-autotag-freemarker/pom.xml
+++ /dev/null
@@ -1,55 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<!--
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements.  See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership.  The ASF licenses this file
-to you under the Apache License, Version 2.0 (the
-"License"); you may not use this file except in compliance
-with the License.  You may obtain a copy of the License at
-
-  http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing,
-software distributed under the License is distributed on an
-"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-KIND, either express or implied.  See the License for the
-specific language governing permissions and limitations
-under the License.
--->
-
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
-  <modelVersion>4.0.0</modelVersion>
-  <parent>
-    <artifactId>tiles-autotag</artifactId>
-    <groupId>org.apache.tiles</groupId>
-    <version>1.0-SNAPSHOT</version>
-  </parent>
-  <groupId>org.apache.tiles</groupId>
-  <artifactId>tiles-autotag-freemarker</artifactId>
-  <version>1.0-SNAPSHOT</version>
-  <name>Autotag - Freemarker support</name>
-  <description>Generates code for Freemarker support.</description>
-  <dependencies>
-  	<dependency>
-  		<groupId>org.apache.tiles</groupId>
-  		<artifactId>tiles-autotag-core</artifactId>
-  	</dependency>
-  	<dependency>
-  		<groupId>junit</groupId>
-  		<artifactId>junit</artifactId>
-  		<scope>test</scope>
-  	</dependency>
-  	<dependency>
-  		<groupId>commons-io</groupId>
-  		<artifactId>commons-io</artifactId>
-  		<scope>test</scope>
-  	</dependency>
-  	<dependency>
-  		<groupId>org.easymock</groupId>
-  		<artifactId>easymock</artifactId>
-  		<scope>test</scope>
-  	</dependency>
-  </dependencies>
-</project>
diff --git a/tiles-autotag/tiles-autotag-freemarker/src/main/java/org/apache/tiles/autotag/freemarker/FMModelGenerator.java b/tiles-autotag/tiles-autotag-freemarker/src/main/java/org/apache/tiles/autotag/freemarker/FMModelGenerator.java
deleted file mode 100644
index ad08ea7..0000000
--- a/tiles-autotag/tiles-autotag-freemarker/src/main/java/org/apache/tiles/autotag/freemarker/FMModelGenerator.java
+++ /dev/null
@@ -1,67 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.autotag.freemarker;
-
-import java.io.File;
-import java.util.Map;
-
-import org.apache.tiles.autotag.generate.AbstractTemplateClassGenerator;
-import org.apache.tiles.autotag.model.TemplateClass;
-import org.apache.tiles.autotag.model.TemplateSuite;
-import org.apache.velocity.app.VelocityEngine;
-
-/**
- * Generates a single Freemarker directive model, given a template class.
- *
- * @version $Rev$ $Date$
- */
-public class FMModelGenerator extends AbstractTemplateClassGenerator {
-
-    /**
-     * Constructor.
-     *
-     * @param velocityEngine The Velocity engine.
-     */
-    public FMModelGenerator(VelocityEngine velocityEngine) {
-        super(velocityEngine);
-    }
-
-    @Override
-    protected String getDirectoryName(File directory, String packageName,
-            TemplateSuite suite, TemplateClass clazz, Map<String, String> parameters,
-            String runtimeClass) {
-        return packageName.replaceAll("\\.", "/");
-    }
-
-    @Override
-    protected String getFilename(File directory, String packageName,
-            TemplateSuite suite, TemplateClass clazz, Map<String, String> parameters,
-            String runtimeClass) {
-        return clazz.getTagClassPrefix() + "FMModel.java";
-    }
-
-    @Override
-    protected String getTemplatePath(File directory, String packageName,
-            TemplateSuite suite, TemplateClass clazz, Map<String, String> parameters,
-            String runtimeClass) {
-        return "/org/apache/tiles/autotag/freemarker/fmModel.vm";
-    }
-}
diff --git a/tiles-autotag/tiles-autotag-freemarker/src/main/java/org/apache/tiles/autotag/freemarker/FMModelRepositoryGenerator.java b/tiles-autotag/tiles-autotag-freemarker/src/main/java/org/apache/tiles/autotag/freemarker/FMModelRepositoryGenerator.java
deleted file mode 100644
index 23bc4fc..0000000
--- a/tiles-autotag/tiles-autotag-freemarker/src/main/java/org/apache/tiles/autotag/freemarker/FMModelRepositoryGenerator.java
+++ /dev/null
@@ -1,65 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.autotag.freemarker;
-
-import java.io.File;
-import java.util.Map;
-
-import org.apache.tiles.autotag.generate.AbstractTemplateSuiteGenerator;
-import org.apache.tiles.autotag.model.TemplateSuite;
-import org.apache.velocity.app.VelocityEngine;
-
-/**
- * Generates the model repository, given the template suite.
- *
- * @version $Rev$ $Date$
- */
-public class FMModelRepositoryGenerator extends AbstractTemplateSuiteGenerator {
-
-    /**
-     * Constructor.
-     *
-     * @param velocityEngine The Velocity engine.
-     */
-    public FMModelRepositoryGenerator(VelocityEngine velocityEngine) {
-        super(velocityEngine);
-    }
-
-    @Override
-    protected String getTemplatePath(File directory, String packageName,
-            TemplateSuite suite, Map<String, String> parameters) {
-        return "/org/apache/tiles/autotag/freemarker/repository.vm";
-    }
-
-    @Override
-    protected String getFilename(File directory, String packageName,
-            TemplateSuite suite, Map<String, String> parameters) {
-        String name = suite.getName();
-        return name.substring(0, 1).toUpperCase() + name.substring(1) + "FMModelRepository.java";
-    }
-
-    @Override
-    protected String getDirectoryName(File directory, String packageName,
-            TemplateSuite suite, Map<String, String> parameters) {
-        return packageName.replaceAll("\\.", "/");
-    }
-
-}
diff --git a/tiles-autotag/tiles-autotag-freemarker/src/main/java/org/apache/tiles/autotag/freemarker/FMTemplateGeneratorFactory.java b/tiles-autotag/tiles-autotag-freemarker/src/main/java/org/apache/tiles/autotag/freemarker/FMTemplateGeneratorFactory.java
deleted file mode 100644
index 00bf96a..0000000
--- a/tiles-autotag/tiles-autotag-freemarker/src/main/java/org/apache/tiles/autotag/freemarker/FMTemplateGeneratorFactory.java
+++ /dev/null
@@ -1,79 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.autotag.freemarker;
-
-import java.io.File;
-
-import org.apache.tiles.autotag.generate.TemplateGenerator;
-import org.apache.tiles.autotag.generate.TemplateGeneratorBuilder;
-import org.apache.tiles.autotag.generate.TemplateGeneratorFactory;
-import org.apache.velocity.app.VelocityEngine;
-
-/**
- * Creates a template generator that generates code for Freemarker.
- *
- * @version $Rev$ $Date$
- */
-public class FMTemplateGeneratorFactory implements TemplateGeneratorFactory {
-
-    /**
-     * Location of the file.
-     *
-     * @parameter expression="${project.build.directory}/autotag-jsp-classes"
-     * @required
-     */
-    private File classesOutputDirectory;
-
-    /**
-     * The Velocity engine.
-     */
-    private VelocityEngine velocityEngine;
-
-    /**
-     * The template generator builder.
-     */
-    private TemplateGeneratorBuilder templateGeneratorBuilder;
-
-    /**
-     * Constructor.
-     *
-     * @param classesOutputDirectory Directory where code will be placed.
-     * @param velocityEngine The Velocity engine.
-     * @param templateGeneratorBuilder The template generator builder.
-     */
-    public FMTemplateGeneratorFactory(File classesOutputDirectory,
-            VelocityEngine velocityEngine, TemplateGeneratorBuilder templateGeneratorBuilder) {
-        this.classesOutputDirectory = classesOutputDirectory;
-        this.velocityEngine = velocityEngine;
-        this.templateGeneratorBuilder = templateGeneratorBuilder;
-    }
-
-    @Override
-    public TemplateGenerator createTemplateGenerator() {
-        return templateGeneratorBuilder
-                .setClassesOutputDirectory(classesOutputDirectory)
-                .addClassesTemplateSuiteGenerator(
-                        new FMModelRepositoryGenerator(velocityEngine))
-                .addClassesTemplateClassGenerator(
-                        new FMModelGenerator(velocityEngine)).build();
-    }
-
-}
diff --git a/tiles-autotag/tiles-autotag-freemarker/src/main/java/org/apache/tiles/autotag/freemarker/package-info.java b/tiles-autotag/tiles-autotag-freemarker/src/main/java/org/apache/tiles/autotag/freemarker/package-info.java
deleted file mode 100644
index c230fed..0000000
--- a/tiles-autotag/tiles-autotag-freemarker/src/main/java/org/apache/tiles/autotag/freemarker/package-info.java
+++ /dev/null
@@ -1,24 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-/**
- * Autotag support for Freemarker.
- */
-package org.apache.tiles.autotag.freemarker;
diff --git a/tiles-autotag/tiles-autotag-freemarker/src/main/resources/org/apache/tiles/autotag/freemarker/fmModel.vm b/tiles-autotag/tiles-autotag-freemarker/src/main/resources/org/apache/tiles/autotag/freemarker/fmModel.vm
deleted file mode 100644
index ef8bdcf..0000000
--- a/tiles-autotag/tiles-autotag-freemarker/src/main/resources/org/apache/tiles/autotag/freemarker/fmModel.vm
+++ /dev/null
@@ -1,83 +0,0 @@
-#*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *#/*
- * This file was automatically generated by Apache Tiles Autotag.
- */
-package ${packageName};
-
-import java.io.IOException;
-import java.util.Map;
-
-#if(${clazz.hasBody()})
-import org.apache.tiles.autotag.core.runtime.ModelBody;
-#end
-import org.apache.tiles.autotag.core.runtime.AutotagRuntime;
-import org.apache.tiles.request.Request;
-
-import freemarker.core.Environment;
-import freemarker.template.TemplateDirectiveBody;
-import freemarker.template.TemplateDirectiveModel;
-import freemarker.template.TemplateException;
-import freemarker.template.TemplateModel;
-
-/**
-#foreach($line in $stringTool.splitOnNewlines(${clazz.documentation}))
- * ${line}
-#end
- */
-public class ${clazz.tagClassPrefix}FMModel implements TemplateDirectiveModel {
-
-    /**
-     * The template model.
-     */
-    private ${clazz.name} model;
-
-    /**
-     * Constructor.
-     *
-     * @param model
-     *            The template model.
-     */
-    public ${clazz.tagClassPrefix}FMModel(${clazz.name} model) {
-        this.model = model;
-    }
-
-    /** {@inheritDoc} */
-    @SuppressWarnings("unchecked")
-    @Override
-    public void execute(Environment env, @SuppressWarnings("rawtypes") Map params, TemplateModel[] loopVars,
-            TemplateDirectiveBody body) throws TemplateException, IOException {
-        AutotagRuntime runtime = new ${runtimeClass}();
-        if (runtime instanceof TemplateDirectiveModel) {
-            ((TemplateDirectiveModel) runtime).execute(env, params, loopVars, body);
-        }
-        Request request = runtime.createRequest();
-#if(${clazz.hasBody()})
-        ModelBody modelBody = runtime.createModelBody();
-#end
-        model.execute(
-#foreach($parameter in ${clazz.parameters})
-            ($stringTool.getClassToCast(${parameter.type})) runtime.getParameter("${parameter.exportedName}", $stringTool.getDefaultValue(${parameter.type}, ${parameter.defaultValue})),
-#end
-                request#if(${clazz.hasBody()}), modelBody#end
-
-        );
-    }
-}
diff --git a/tiles-autotag/tiles-autotag-freemarker/src/main/resources/org/apache/tiles/autotag/freemarker/repository.vm b/tiles-autotag/tiles-autotag-freemarker/src/main/resources/org/apache/tiles/autotag/freemarker/repository.vm
deleted file mode 100644
index 20724c6..0000000
--- a/tiles-autotag/tiles-autotag-freemarker/src/main/resources/org/apache/tiles/autotag/freemarker/repository.vm
+++ /dev/null
@@ -1,58 +0,0 @@
-#*
- * $Id: tiles-jsp.tld 836180 2009-11-14 14:00:02Z apetrelli $
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *#/*
- * This file was automatically generated by Apache Tiles Autotag.
- */
-package ${packageName};
-
-/**
-#foreach($line in $stringTool.splitOnNewlines(${suite.documentation}))
- * $line
-#end
- */
-public class $stringTool.capitalizeFirstLetter(${suite.name})FMModelRepository {
-
-#foreach($clazz in ${suite.getTemplateClasses()})
-    /**
-     * The "${clazz.tagName}" directive.
-     */
-    private ${clazz.tagClassPrefix}FMModel ${clazz.tagName};
-
-#end
-    /**
-     * Constructor.
-     */
-    public TilesFMModelRepository() {
-#foreach($clazz in ${suite.getTemplateClasses()})
-        ${clazz.tagName} = new ${clazz.tagClassPrefix}FMModel(new ${clazz.name}());
-#end
-    }
-#foreach($clazz in ${suite.getTemplateClasses()})
-
-    /**
-     * Returns the "${clazz.tagName}" directive.
-     *
-     * @return The "${clazz.tagName}" directive.
-     */
-    public ${clazz.tagClassPrefix}FMModel get$stringTool.capitalizeFirstLetter(${clazz.tagName})() {
-        return ${clazz.tagName};
-    }
-#end
-}
diff --git a/tiles-autotag/tiles-autotag-freemarker/src/site/site.xml b/tiles-autotag/tiles-autotag-freemarker/src/site/site.xml
deleted file mode 100644
index 0a7d00d..0000000
--- a/tiles-autotag/tiles-autotag-freemarker/src/site/site.xml
+++ /dev/null
@@ -1,56 +0,0 @@
-<?xml version="1.0" encoding="ISO-8859-1"?>
-<!--
-/*
- * $Id: site.xml 1081442 2011-03-14 16:21:08Z apetrelli $
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
--->
-<project name="Apache - Tiles Autotags">
-    <bannerLeft>
-        <name>Apache Software Foundation</name>
-        <src>http://www.apache.org/images/asf-logo.gif</src>
-        <href>http://www.apache.org</href>
-    </bannerLeft>
-    <bannerRight>
-        <name>Apache Tiles&#8482;</name>
-        <src>http://tiles.apache.org/images/logo.png</src>
-        <href>http://tiles.apache.org</href>
-    </bannerRight>
-    <body>
-
-        <links>
-            <item name="Apache" href="http://www.apache.org" />
-            <item name="Tiles" href="http://tiles.apache.org" />
-        </links>
-
-
-        <menu name="Apache Tiles&#8482;">
-            <item
-                   name="Tiles Home"
-                   href="../../index.html"/>
-            <item
-                   name="Tiles Autotag"
-                   href="../index.html"/>
-        </menu>
-
-        <menu ref="modules" />
-        <menu ref="reports" />
-
-    </body>
-</project>
diff --git a/tiles-autotag/tiles-autotag-freemarker/src/test/java/org/apache/tiles/autotag/freemarker/FMModelGeneratorTest.java b/tiles-autotag/tiles-autotag-freemarker/src/test/java/org/apache/tiles/autotag/freemarker/FMModelGeneratorTest.java
deleted file mode 100644
index 6c41678..0000000
--- a/tiles-autotag/tiles-autotag-freemarker/src/test/java/org/apache/tiles/autotag/freemarker/FMModelGeneratorTest.java
+++ /dev/null
@@ -1,142 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.autotag.freemarker;
-
-import static org.junit.Assert.*;
-
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.InputStream;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Properties;
-
-import org.apache.commons.io.FileUtils;
-import org.apache.commons.io.IOUtils;
-import org.apache.tiles.autotag.core.runtime.ModelBody;
-import org.apache.tiles.autotag.model.TemplateClass;
-import org.apache.tiles.autotag.model.TemplateMethod;
-import org.apache.tiles.autotag.model.TemplateParameter;
-import org.apache.tiles.autotag.model.TemplateSuite;
-import org.apache.tiles.request.Request;
-import org.apache.velocity.app.VelocityEngine;
-import org.junit.Test;
-
-/**
- * Tests {@link TagClassGenerator}.
- *
- * @version $Rev$ $Date$
- */
-public class FMModelGeneratorTest {
-
-    /**
-     * Test method for {@link TagClassGenerator#generate(File, String, TemplateSuite, TemplateClass, java.util.Map)}.
-     * @throws Exception If something goes wrong.
-     */
-    @Test
-    public void testGenerate() throws Exception {
-        Properties props = new Properties();
-        InputStream propsStream = getClass().getResourceAsStream("/org/apache/tiles/autotag/velocity.properties");
-        props.load(propsStream);
-        propsStream.close();
-        VelocityEngine velocityEngine = new VelocityEngine(props);
-
-        FMModelGenerator generator = new FMModelGenerator(velocityEngine);
-        File file = File.createTempFile("autotag", null);
-        file.delete();
-        file.mkdir();
-        file.deleteOnExit();
-        TemplateSuite suite = new TemplateSuite("tldtest", "Test for TLD docs.");
-
-        List<TemplateParameter> params = new ArrayList<TemplateParameter>();
-        TemplateParameter param = new TemplateParameter("one", "one", "java.lang.String", null, true);
-        param.setDocumentation("Parameter one.");
-        params.add(param);
-        param = new TemplateParameter("two", "two", "int", null, false);
-        param.setDocumentation("Parameter two.");
-        params.add(param);
-        param = new TemplateParameter("three", "three", "boolean", null, false);
-        param.setDocumentation("Parameter three.");
-        params.add(param);
-        param = new TemplateParameter("request", "request", Request.class.getName(), null, false);
-        param.setDocumentation("The request.");
-        params.add(param);
-        param = new TemplateParameter("modelBody", "modelBody", ModelBody.class.getName(), null, false);
-        param.setDocumentation("The body.");
-        params.add(param);
-        TemplateMethod executeMethod = new TemplateMethod("execute", params);
-
-        TemplateClass clazz = new TemplateClass("org.apache.tiles.autotag.template.DoStuffTemplate",
-                "doStuff", "DoStuff", executeMethod);
-        clazz.setDocumentation("Documentation of the DoStuff class.");
-
-        generator.generate(file, "org.apache.tiles.autotag.freemarker.test", suite, clazz, null,
-                           "org.apache.tiles.autotag.freemarker.test.Runtime");
-
-        InputStream expected = getClass()
-                .getResourceAsStream(
-                        "/org/apache/tiles/autotag/freemarker/test/DoStuffFMModel.javat");
-        File effectiveFile = new File(file, "/org/apache/tiles/autotag/freemarker/test/DoStuffFMModel.java");
-        assertTrue(effectiveFile.exists());
-        InputStream effective = new FileInputStream(effectiveFile);
-        assertTrue(IOUtils.contentEquals(effective, expected));
-        effective.close();
-        expected.close();
-
-        suite.addTemplateClass(clazz);
-        params = new ArrayList<TemplateParameter>();
-        param = new TemplateParameter("one", "one", "java.lang.Double", null, true);
-        param.setDocumentation("Parameter one.");
-        params.add(param);
-        param = new TemplateParameter("two", "two", "float", null, false);
-        param.setDocumentation("Parameter two.");
-        params.add(param);
-        param = new TemplateParameter("three", "three", "java.util.Date", null, false);
-        param.setDocumentation("Parameter three.");
-        params.add(param);
-        param = new TemplateParameter("request", "request", Request.class.getName(), null, false);
-        param.setDocumentation("The request.");
-        params.add(param);
-        executeMethod = new TemplateMethod("execute", params);
-
-        clazz = new TemplateClass("org.apache.tiles.autotag.template.DoStuffNoBodyTemplate",
-                "doStuffNoBody", "DoStuffNoBody", executeMethod);
-        clazz.setDocumentation("Documentation of the DoStuffNoBody class.");
-
-        suite.addTemplateClass(clazz);
-
-        generator.generate(file, "org.apache.tiles.autotag.freemarker.test", suite, clazz, null,
-                           "org.apache.tiles.autotag.freemarker.test.Runtime");
-
-        expected = getClass()
-                .getResourceAsStream(
-                        "/org/apache/tiles/autotag/freemarker/test/DoStuffNoBodyFMModel.javat");
-        effectiveFile = new File(file, "/org/apache/tiles/autotag/freemarker/test/DoStuffNoBodyFMModel.java");
-        assertTrue(effectiveFile.exists());
-        effective = new FileInputStream(effectiveFile);
-        assertTrue(IOUtils.contentEquals(effective, expected));
-        effective.close();
-        expected.close();
-
-        FileUtils.deleteDirectory(file);
-    }
-
-}
diff --git a/tiles-autotag/tiles-autotag-freemarker/src/test/java/org/apache/tiles/autotag/freemarker/FMModelRepositoryGeneratorTest.java b/tiles-autotag/tiles-autotag-freemarker/src/test/java/org/apache/tiles/autotag/freemarker/FMModelRepositoryGeneratorTest.java
deleted file mode 100644
index 20369b1..0000000
--- a/tiles-autotag/tiles-autotag-freemarker/src/test/java/org/apache/tiles/autotag/freemarker/FMModelRepositoryGeneratorTest.java
+++ /dev/null
@@ -1,128 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.autotag.freemarker;
-
-import static org.junit.Assert.*;
-
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.InputStream;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Properties;
-
-import org.apache.commons.io.FileUtils;
-import org.apache.commons.io.IOUtils;
-import org.apache.tiles.autotag.core.runtime.ModelBody;
-import org.apache.tiles.autotag.model.TemplateClass;
-import org.apache.tiles.autotag.model.TemplateMethod;
-import org.apache.tiles.autotag.model.TemplateParameter;
-import org.apache.tiles.autotag.model.TemplateSuite;
-import org.apache.tiles.request.Request;
-import org.apache.velocity.app.VelocityEngine;
-import org.junit.Test;
-
-/**
- * Tests {@link TLDGenerator}.
- *
- * @version $Rev$ $Date$
- */
-public class FMModelRepositoryGeneratorTest {
-
-    /**
-     * Test method for {@link FMModelRepositoryGenerator#generate(File, String, TemplateSuite, java.util.Map)}.
-     * @throws Exception If something goes wrong.
-     */
-    @Test
-    public void testGenerate() throws Exception {
-        Properties props = new Properties();
-        InputStream propsStream = getClass().getResourceAsStream("/org/apache/tiles/autotag/velocity.properties");
-        props.load(propsStream);
-        propsStream.close();
-        VelocityEngine velocityEngine = new VelocityEngine(props);
-
-        FMModelRepositoryGenerator generator = new FMModelRepositoryGenerator(velocityEngine);
-        File file = File.createTempFile("autotag", null);
-        file.delete();
-        file.mkdir();
-        file.deleteOnExit();
-        TemplateSuite suite = new TemplateSuite("tldtest", "Test for TLD docs.");
-
-        List<TemplateParameter> params = new ArrayList<TemplateParameter>();
-        TemplateParameter param = new TemplateParameter("one", "one", "java.lang.String", null, true);
-        param.setDocumentation("Parameter one.");
-        params.add(param);
-        param = new TemplateParameter("two", "two", "int", null, false);
-        param.setDocumentation("Parameter two.");
-        params.add(param);
-        param = new TemplateParameter("three", "three", "long", null, false);
-        param.setDocumentation("Parameter three.");
-        params.add(param);
-        param = new TemplateParameter("request", "request", Request.class.getName(), null, false);
-        param.setDocumentation("The request.");
-        params.add(param);
-        param = new TemplateParameter("modelBody", "modelBody", ModelBody.class.getName(), null, false);
-        param.setDocumentation("The body.");
-        params.add(param);
-        TemplateMethod executeMethod = new TemplateMethod("execute", params);
-
-        TemplateClass clazz = new TemplateClass("org.apache.tiles.autotag.template.DoStuffTemplate",
-                "doStuff", "DoStuff", executeMethod);
-        clazz.setDocumentation("Documentation of the DoStuff class");
-
-        suite.addTemplateClass(clazz);
-        params = new ArrayList<TemplateParameter>();
-        param = new TemplateParameter("one", "one", "java.lang.Double", null, true);
-        param.setDocumentation("Parameter one.");
-        params.add(param);
-        param = new TemplateParameter("two", "two", "float", null, false);
-        param.setDocumentation("Parameter two.");
-        params.add(param);
-        param = new TemplateParameter("three", "three", "java.util.Date", null, false);
-        param.setDocumentation("Parameter three.");
-        params.add(param);
-        param = new TemplateParameter("request", "request", Request.class.getName(), null, false);
-        param.setDocumentation("The request.");
-        params.add(param);
-        executeMethod = new TemplateMethod("execute", params);
-
-        clazz = new TemplateClass("org.apache.tiles.autotag.template.DoStuffNoBodyTemplate",
-                "doStuffNoBody", "DoStuffNoBody", executeMethod);
-        clazz.setDocumentation("Documentation of the DoStuffNoBody class");
-
-        suite.addTemplateClass(clazz);
-
-        generator.generate(file, "org.apache.tiles.autotag.freemarker.test", suite, null);
-
-        InputStream expected = getClass()
-                .getResourceAsStream(
-                        "/org/apache/tiles/autotag/freemarker/test/TldtestFMModelRepository.javat");
-        File effectiveFile = new File(file, "/org/apache/tiles/autotag/freemarker/test/TldtestFMModelRepository.java");
-        assertTrue(effectiveFile.exists());
-        InputStream effective = new FileInputStream(effectiveFile);
-        assertTrue(IOUtils.contentEquals(effective, expected));
-        effective.close();
-        expected.close();
-
-        FileUtils.deleteDirectory(file);
-    }
-
-}
diff --git a/tiles-autotag/tiles-autotag-freemarker/src/test/java/org/apache/tiles/autotag/freemarker/FMTemplateGeneratorFactoryTest.java b/tiles-autotag/tiles-autotag-freemarker/src/test/java/org/apache/tiles/autotag/freemarker/FMTemplateGeneratorFactoryTest.java
deleted file mode 100644
index ea6b1ce..0000000
--- a/tiles-autotag/tiles-autotag-freemarker/src/test/java/org/apache/tiles/autotag/freemarker/FMTemplateGeneratorFactoryTest.java
+++ /dev/null
@@ -1,62 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.autotag.freemarker;
-
-import static org.easymock.EasyMock.*;
-import static org.junit.Assert.*;
-
-import java.io.File;
-
-import org.apache.tiles.autotag.generate.TemplateGenerator;
-import org.apache.tiles.autotag.generate.TemplateGeneratorBuilder;
-import org.apache.velocity.app.VelocityEngine;
-import org.junit.Test;
-
-/**
- * Tests {@link FMTemplateGeneratorFactory}.
- *
- * @version $Rev$ $Date$
- */
-public class FMTemplateGeneratorFactoryTest {
-
-    /**
-     * Test method for {@link org.apache.tiles.autotag.freemarker.FMTemplateGeneratorFactory#createTemplateGenerator()}.
-     */
-    @Test
-    public void testCreateTemplateGenerator() {
-        File classesOutputDirectory = createMock(File.class);
-        VelocityEngine velocityEngine = createMock(VelocityEngine.class);
-        TemplateGeneratorBuilder builder = createMock(TemplateGeneratorBuilder.class);
-        TemplateGenerator generator = createMock(TemplateGenerator.class);
-
-        expect(builder.setClassesOutputDirectory(classesOutputDirectory)).andReturn(builder);
-        expect(builder.addClassesTemplateSuiteGenerator(isA(FMModelRepositoryGenerator.class))).andReturn(builder);
-        expect(builder.addClassesTemplateClassGenerator(isA(FMModelGenerator.class))).andReturn(builder);
-        expect(builder.build()).andReturn(generator);
-
-        replay(classesOutputDirectory, velocityEngine, builder, generator);
-        FMTemplateGeneratorFactory factory = new FMTemplateGeneratorFactory(
-                classesOutputDirectory, velocityEngine, builder);
-        assertSame(generator, factory.createTemplateGenerator());
-        verify(classesOutputDirectory, velocityEngine, builder, generator);
-    }
-
-}
diff --git a/tiles-autotag/tiles-autotag-freemarker/src/test/resources/org/apache/tiles/autotag/freemarker/test/DoStuffFMModel.javat b/tiles-autotag/tiles-autotag-freemarker/src/test/resources/org/apache/tiles/autotag/freemarker/test/DoStuffFMModel.javat
deleted file mode 100644
index 73b7f8b..0000000
--- a/tiles-autotag/tiles-autotag-freemarker/src/test/resources/org/apache/tiles/autotag/freemarker/test/DoStuffFMModel.javat
+++ /dev/null
@@ -1,57 +0,0 @@
-/*
- * This file was automatically generated by Apache Tiles Autotag.
- */
-package org.apache.tiles.autotag.freemarker.test;
-
-import java.io.IOException;
-import java.util.Map;
-
-import org.apache.tiles.autotag.core.runtime.ModelBody;
-import org.apache.tiles.autotag.core.runtime.AutotagRuntime;
-import org.apache.tiles.request.Request;
-
-import freemarker.core.Environment;
-import freemarker.template.TemplateDirectiveBody;
-import freemarker.template.TemplateDirectiveModel;
-import freemarker.template.TemplateException;
-import freemarker.template.TemplateModel;
-
-/**
- * Documentation of the DoStuff class.
- */
-public class DoStuffFMModel implements TemplateDirectiveModel {
-
-    /**
-     * The template model.
-     */
-    private org.apache.tiles.autotag.template.DoStuffTemplate model;
-
-    /**
-     * Constructor.
-     *
-     * @param model
-     *            The template model.
-     */
-    public DoStuffFMModel(org.apache.tiles.autotag.template.DoStuffTemplate model) {
-        this.model = model;
-    }
-
-    /** {@inheritDoc} */
-    @SuppressWarnings("unchecked")
-    @Override
-    public void execute(Environment env, @SuppressWarnings("rawtypes") Map params, TemplateModel[] loopVars,
-            TemplateDirectiveBody body) throws TemplateException, IOException {
-        AutotagRuntime runtime = new org.apache.tiles.autotag.freemarker.test.Runtime();
-        if (runtime instanceof TemplateDirectiveModel) {
-            ((TemplateDirectiveModel) runtime).execute(env, params, loopVars, body);
-        }
-        Request request = runtime.createRequest();
-        ModelBody modelBody = runtime.createModelBody();
-        model.execute(
-            (java.lang.String) runtime.getParameter("one", null),
-            (java.lang.Integer) runtime.getParameter("two", 0),
-            (java.lang.Boolean) runtime.getParameter("three", false),
-                request, modelBody
-        );
-    }
-}
diff --git a/tiles-autotag/tiles-autotag-freemarker/src/test/resources/org/apache/tiles/autotag/freemarker/test/DoStuffNoBodyFMModel.javat b/tiles-autotag/tiles-autotag-freemarker/src/test/resources/org/apache/tiles/autotag/freemarker/test/DoStuffNoBodyFMModel.javat
deleted file mode 100644
index 076eaab..0000000
--- a/tiles-autotag/tiles-autotag-freemarker/src/test/resources/org/apache/tiles/autotag/freemarker/test/DoStuffNoBodyFMModel.javat
+++ /dev/null
@@ -1,55 +0,0 @@
-/*
- * This file was automatically generated by Apache Tiles Autotag.
- */
-package org.apache.tiles.autotag.freemarker.test;
-
-import java.io.IOException;
-import java.util.Map;
-
-import org.apache.tiles.autotag.core.runtime.AutotagRuntime;
-import org.apache.tiles.request.Request;
-
-import freemarker.core.Environment;
-import freemarker.template.TemplateDirectiveBody;
-import freemarker.template.TemplateDirectiveModel;
-import freemarker.template.TemplateException;
-import freemarker.template.TemplateModel;
-
-/**
- * Documentation of the DoStuffNoBody class.
- */
-public class DoStuffNoBodyFMModel implements TemplateDirectiveModel {
-
-    /**
-     * The template model.
-     */
-    private org.apache.tiles.autotag.template.DoStuffNoBodyTemplate model;
-
-    /**
-     * Constructor.
-     *
-     * @param model
-     *            The template model.
-     */
-    public DoStuffNoBodyFMModel(org.apache.tiles.autotag.template.DoStuffNoBodyTemplate model) {
-        this.model = model;
-    }
-
-    /** {@inheritDoc} */
-    @SuppressWarnings("unchecked")
-    @Override
-    public void execute(Environment env, @SuppressWarnings("rawtypes") Map params, TemplateModel[] loopVars,
-            TemplateDirectiveBody body) throws TemplateException, IOException {
-        AutotagRuntime runtime = new org.apache.tiles.autotag.freemarker.test.Runtime();
-        if (runtime instanceof TemplateDirectiveModel) {
-            ((TemplateDirectiveModel) runtime).execute(env, params, loopVars, body);
-        }
-        Request request = runtime.createRequest();
-        model.execute(
-            (java.lang.Double) runtime.getParameter("one", null),
-            (java.lang.Float) runtime.getParameter("two", 0.0f),
-            (java.util.Date) runtime.getParameter("three", null),
-                request
-        );
-    }
-}
diff --git a/tiles-autotag/tiles-autotag-freemarker/src/test/resources/org/apache/tiles/autotag/freemarker/test/TldtestFMModelRepository.javat b/tiles-autotag/tiles-autotag-freemarker/src/test/resources/org/apache/tiles/autotag/freemarker/test/TldtestFMModelRepository.javat
deleted file mode 100644
index 4fe08ee..0000000
--- a/tiles-autotag/tiles-autotag-freemarker/src/test/resources/org/apache/tiles/autotag/freemarker/test/TldtestFMModelRepository.javat
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- * This file was automatically generated by Apache Tiles Autotag.
- */
-package org.apache.tiles.autotag.freemarker.test;
-
-/**
- * Test for TLD docs.
- */
-public class TldtestFMModelRepository {
-
-    /**
-     * The "doStuff" directive.
-     */
-    private DoStuffFMModel doStuff;
-
-    /**
-     * The "doStuffNoBody" directive.
-     */
-    private DoStuffNoBodyFMModel doStuffNoBody;
-
-    /**
-     * Constructor.
-     */
-    public TilesFMModelRepository() {
-        doStuff = new DoStuffFMModel(new org.apache.tiles.autotag.template.DoStuffTemplate());
-        doStuffNoBody = new DoStuffNoBodyFMModel(new org.apache.tiles.autotag.template.DoStuffNoBodyTemplate());
-    }
-
-    /**
-     * Returns the "doStuff" directive.
-     *
-     * @return The "doStuff" directive.
-     */
-    public DoStuffFMModel getDoStuff() {
-        return doStuff;
-    }
-
-    /**
-     * Returns the "doStuffNoBody" directive.
-     *
-     * @return The "doStuffNoBody" directive.
-     */
-    public DoStuffNoBodyFMModel getDoStuffNoBody() {
-        return doStuffNoBody;
-    }
-}
diff --git a/tiles-autotag/tiles-autotag-jsp/pom.xml b/tiles-autotag/tiles-autotag-jsp/pom.xml
deleted file mode 100644
index f6e95a9..0000000
--- a/tiles-autotag/tiles-autotag-jsp/pom.xml
+++ /dev/null
@@ -1,55 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<!--
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements.  See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership.  The ASF licenses this file
-to you under the Apache License, Version 2.0 (the
-"License"); you may not use this file except in compliance
-with the License.  You may obtain a copy of the License at
-
-  http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing,
-software distributed under the License is distributed on an
-"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-KIND, either express or implied.  See the License for the
-specific language governing permissions and limitations
-under the License.
--->
-
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
-  <modelVersion>4.0.0</modelVersion>
-  <parent>
-    <artifactId>tiles-autotag</artifactId>
-    <groupId>org.apache.tiles</groupId>
-    <version>1.0-SNAPSHOT</version>
-  </parent>
-  <groupId>org.apache.tiles</groupId>
-  <artifactId>tiles-autotag-jsp</artifactId>
-  <version>1.0-SNAPSHOT</version>
-  <name>Tiles Autotag - JSP tags automatic generation</name>
-  <description>Generates JSP tags automatically from templates.</description>
-  <dependencies>
-    <dependency>
-        <groupId>junit</groupId>
-        <artifactId>junit</artifactId>
-        <scope>test</scope>
-    </dependency>
-    <dependency>
-        <groupId>commons-io</groupId>
-        <artifactId>commons-io</artifactId>
-        <scope>test</scope>
-    </dependency>
-    <dependency>
-    	<groupId>org.apache.tiles</groupId>
-    	<artifactId>tiles-autotag-core</artifactId>
-    </dependency>
-    <dependency>
-    	<groupId>org.easymock</groupId>
-    	<artifactId>easymock</artifactId>
-    	<scope>test</scope>
-    </dependency>
-  </dependencies>
-</project>
diff --git a/tiles-autotag/tiles-autotag-jsp/src/main/java/org/apache/tiles/autotag/jsp/JspTemplateGeneratorFactory.java b/tiles-autotag/tiles-autotag-jsp/src/main/java/org/apache/tiles/autotag/jsp/JspTemplateGeneratorFactory.java
deleted file mode 100644
index 166c376..0000000
--- a/tiles-autotag/tiles-autotag-jsp/src/main/java/org/apache/tiles/autotag/jsp/JspTemplateGeneratorFactory.java
+++ /dev/null
@@ -1,85 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.autotag.jsp;
-
-import java.io.File;
-
-import org.apache.tiles.autotag.generate.TemplateGenerator;
-import org.apache.tiles.autotag.generate.TemplateGeneratorBuilder;
-import org.apache.tiles.autotag.generate.TemplateGeneratorFactory;
-import org.apache.velocity.app.VelocityEngine;
-
-/**
- * Creates a template generator to build JSP code around template models.
- *
- * @version $Rev$ $Date$
- */
-public class JspTemplateGeneratorFactory implements TemplateGeneratorFactory {
-
-    /**
-     * Location of the file.
-     */
-    private File classesOutputDirectory;
-
-    /**
-     * Location of the file.
-     */
-    private File resourcesOutputDirectory;
-
-    /**
-     * The Velocity engine.
-     */
-    private VelocityEngine velocityEngine;
-
-    /**
-     * The template generator builder.
-     */
-    private TemplateGeneratorBuilder templateGeneratorBuilder;
-
-    /**
-     * Constructor.
-     *
-     * @param classesOutputDirectory The directory where classes will be generated.
-     * @param resourcesOutputDirectory The directory where the TLD file will be generated.
-     * @param velocityEngine The Velocity engine.
-     * @param templateGeneratorBuilder The template generator builder.
-     */
-    public JspTemplateGeneratorFactory(File classesOutputDirectory,
-            File resourcesOutputDirectory, VelocityEngine velocityEngine,
-            TemplateGeneratorBuilder templateGeneratorBuilder) {
-        this.classesOutputDirectory = classesOutputDirectory;
-        this.resourcesOutputDirectory = resourcesOutputDirectory;
-        this.velocityEngine = velocityEngine;
-        this.templateGeneratorBuilder = templateGeneratorBuilder;
-    }
-
-    @Override
-    public TemplateGenerator createTemplateGenerator() {
-        return templateGeneratorBuilder
-                .setClassesOutputDirectory(classesOutputDirectory)
-                .setResourcesOutputDirectory(resourcesOutputDirectory)
-                .addResourcesTemplateSuiteGenerator(
-                        new TLDGenerator(velocityEngine))
-                .addClassesTemplateClassGenerator(
-                        new TagClassGenerator(velocityEngine)).build();
-    }
-
-}
diff --git a/tiles-autotag/tiles-autotag-jsp/src/main/java/org/apache/tiles/autotag/jsp/TLDGenerator.java b/tiles-autotag/tiles-autotag-jsp/src/main/java/org/apache/tiles/autotag/jsp/TLDGenerator.java
deleted file mode 100644
index 8ca3fad..0000000
--- a/tiles-autotag/tiles-autotag-jsp/src/main/java/org/apache/tiles/autotag/jsp/TLDGenerator.java
+++ /dev/null
@@ -1,64 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.autotag.jsp;
-
-import java.io.File;
-import java.util.Map;
-
-import org.apache.tiles.autotag.generate.AbstractTemplateSuiteGenerator;
-import org.apache.tiles.autotag.model.TemplateSuite;
-import org.apache.velocity.app.VelocityEngine;
-
-/**
- * Generates the TLD file, using a template suite.
- *
- * @version $Rev$ $Date$
- */
-public class TLDGenerator extends AbstractTemplateSuiteGenerator {
-
-    /**
-     * Constructor.
-     *
-     * @param velocityEngine The Velocity engine.
-     */
-    public TLDGenerator(VelocityEngine velocityEngine) {
-        super(velocityEngine);
-    }
-
-    @Override
-    protected String getTemplatePath(File directory, String packageName,
-            TemplateSuite suite, Map<String, String> parameters) {
-        return "/org/apache/tiles/autotag/jsp/tld.vm";
-    }
-
-    @Override
-    protected String getFilename(File directory, String packageName,
-            TemplateSuite suite, Map<String, String> parameters) {
-        return suite.getName() + "-jsp.tld";
-    }
-
-    @Override
-    protected String getDirectoryName(File directory, String packageName,
-            TemplateSuite suite, Map<String, String> parameters) {
-        return "META-INF/tld/";
-    }
-
-}
diff --git a/tiles-autotag/tiles-autotag-jsp/src/main/java/org/apache/tiles/autotag/jsp/TagClassGenerator.java b/tiles-autotag/tiles-autotag-jsp/src/main/java/org/apache/tiles/autotag/jsp/TagClassGenerator.java
deleted file mode 100644
index 17b02bc..0000000
--- a/tiles-autotag/tiles-autotag-jsp/src/main/java/org/apache/tiles/autotag/jsp/TagClassGenerator.java
+++ /dev/null
@@ -1,67 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.autotag.jsp;
-
-import java.io.File;
-import java.util.Map;
-
-import org.apache.tiles.autotag.generate.AbstractTemplateClassGenerator;
-import org.apache.tiles.autotag.model.TemplateClass;
-import org.apache.tiles.autotag.model.TemplateSuite;
-import org.apache.velocity.app.VelocityEngine;
-
-/**
- * Generates a tag class using a template class.
- *
- * @version $Rev$ $Date$
- */
-public class TagClassGenerator extends AbstractTemplateClassGenerator {
-
-    /**
-     * Constructor.
-     *
-     * @param velocityEngine The Velocity engine.
-     */
-    public TagClassGenerator(VelocityEngine velocityEngine) {
-        super(velocityEngine);
-    }
-
-    @Override
-    protected String getDirectoryName(File directory, String packageName,
-            TemplateSuite suite, TemplateClass clazz, Map<String, String> parameters,
-            String runtimeClass) {
-        return packageName.replaceAll("\\.", "/");
-    }
-
-    @Override
-    protected String getFilename(File directory, String packageName,
-            TemplateSuite suite, TemplateClass clazz, Map<String, String> parameters,
-            String runtimeClass) {
-        return clazz.getTagClassPrefix() + "Tag.java";
-    }
-
-    @Override
-    protected String getTemplatePath(File directory, String packageName,
-            TemplateSuite suite, TemplateClass clazz, Map<String, String> parameters,
-            String runtimeClass) {
-        return "/org/apache/tiles/autotag/jsp/bodyTag.vm";
-    }
-}
diff --git a/tiles-autotag/tiles-autotag-jsp/src/main/java/org/apache/tiles/autotag/jsp/package-info.java b/tiles-autotag/tiles-autotag-jsp/src/main/java/org/apache/tiles/autotag/jsp/package-info.java
deleted file mode 100644
index e75b5c0..0000000
--- a/tiles-autotag/tiles-autotag-jsp/src/main/java/org/apache/tiles/autotag/jsp/package-info.java
+++ /dev/null
@@ -1,24 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-/**
- * Autotag support for JavaServer Pages.
- */
-package org.apache.tiles.autotag.jsp;
diff --git a/tiles-autotag/tiles-autotag-jsp/src/main/resources/org/apache/tiles/autotag/jsp/bodyTag.vm b/tiles-autotag/tiles-autotag-jsp/src/main/resources/org/apache/tiles/autotag/jsp/bodyTag.vm
deleted file mode 100644
index b7d9ea1..0000000
--- a/tiles-autotag/tiles-autotag-jsp/src/main/resources/org/apache/tiles/autotag/jsp/bodyTag.vm
+++ /dev/null
@@ -1,106 +0,0 @@
-#*
- * $Id: tiles-jsp.tld 836180 2009-11-14 14:00:02Z apetrelli $
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *#/*
- * This file was automatically generated by Apache Tiles Autotag.
- */
-package ${packageName};
-
-import java.io.IOException;
-
-import javax.servlet.jsp.JspException;
-import javax.servlet.jsp.tagext.SimpleTagSupport;
-
-#if(${clazz.hasBody()})
-import org.apache.tiles.autotag.core.runtime.ModelBody;
-#end
-import org.apache.tiles.autotag.core.runtime.AutotagRuntime;
-import org.apache.tiles.request.Request;
-
-/**
-#foreach($line in $stringTool.splitOnNewlines(${clazz.documentation}))
- * ${line}
-#end
- */
-public class ${clazz.tagClassPrefix}Tag extends SimpleTagSupport {
-
-    /**
-     * The template model.
-     */
-    private ${clazz.name} model = new ${clazz.name}();
-
-#foreach($parameter in ${clazz.parameters})
-    /**
-#foreach($line in $stringTool.splitOnNewlines(${parameter.documentation}))
-     * ${line}
-#end
-     */
-    private ${parameter.type} ${parameter.name};
-
-#end
-#foreach($parameter in ${clazz.parameters})
-    /**
-     * Getter for ${parameter.exportedName} property.
-     *
-     * @return
-#foreach($line in $stringTool.splitOnNewlines(${parameter.documentation}))
-     * ${line}
-#end
-     */
-    public ${parameter.type} #if(${parameter.type} == 'boolean')is#{else}get#end${parameter.getterSetterSuffix}() {
-        return ${parameter.name};
-    }
-
-    /**
-     * Setter for ${parameter.exportedName} property.
-     *
-     * @param ${parameter.name}
-#foreach($line in $stringTool.splitOnNewlines(${parameter.documentation}))
-     * ${line}
-#end
-     */
-    public void set${parameter.getterSetterSuffix}(${parameter.type} ${parameter.name}) {
-        this.${parameter.name} = ${parameter.name};
-    }
-
-#end
-    /** {@inheritDoc} */
-    @Override
-    public void doTag() throws JspException, IOException {
-        AutotagRuntime runtime = new ${runtimeClass}();
-        if (runtime instanceof SimpleTagSupport) {
-            SimpleTagSupport tag = (SimpleTagSupport) runtime;
-            tag.setJspContext(getJspContext());
-            tag.setJspBody(getJspBody());
-            tag.setParent(getParent());
-            tag.doTag();
-        }
-        Request request = runtime.createRequest();        
-#if(${clazz.hasBody()})
-        ModelBody modelBody = runtime.createModelBody();
-#end
-        model.execute(
-#foreach($parameter in ${clazz.parameters})
-            ${parameter.name},
-#end
-            request#if(${clazz.hasBody()}), modelBody#end
-
-        );
-    }
-}
diff --git a/tiles-autotag/tiles-autotag-jsp/src/main/resources/org/apache/tiles/autotag/jsp/tld.vm b/tiles-autotag/tiles-autotag-jsp/src/main/resources/org/apache/tiles/autotag/jsp/tld.vm
deleted file mode 100644
index 9d4c0e9..0000000
--- a/tiles-autotag/tiles-autotag-jsp/src/main/resources/org/apache/tiles/autotag/jsp/tld.vm
+++ /dev/null
@@ -1,66 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-#*
- * $Id: tiles-jsp.tld 836180 2009-11-14 14:00:02Z apetrelli $
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *#
-<!-- This file was automatically generated by Apache Tiles Autotag. -->
-<taglib
-  xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-jsptaglibrary_2_1.xsd"
-  xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-  version="2.1">
-   <description>
-   <![CDATA[
-#foreach($line in $stringTool.splitOnNewlines(${suite.documentation}))
-   $line
-#end
-   ]]>
-   </description>
-   <tlib-version>1.2</tlib-version>
-   <short-name>${suite.name}</short-name>
-   <uri>${parameters.taglibURI}</uri>
-#foreach($clazz in ${suite.getTemplateClasses()})
-   <tag>
-      <description>
-      <![CDATA[
-#foreach($line in $stringTool.splitOnNewlines(${clazz.documentation}))
-      $line
-#end
-      ]]>
-      </description>
-      <name>${clazz.tagName}</name>
-      <tag-class>${packageName}.${clazz.tagClassPrefix}Tag</tag-class>
-      <body-content>#if(${clazz.hasBody()})scriptless#{else}empty#end</body-content>
-#foreach($parameter in ${clazz.parameters})
-      <attribute>
-         <description>
-         <![CDATA[
-#foreach($line in $stringTool.splitOnNewlines(${parameter.documentation}))
-         $line
-#end
-         ]]>
-         </description>
-         <name>${parameter.exportedName}</name>
-         <required>${parameter.required}</required>
-         <rtexprvalue>true</rtexprvalue>
-         <type>${parameter.type}</type>
-      </attribute>
-#end
-   </tag>
-#end
-</taglib>
diff --git a/tiles-autotag/tiles-autotag-jsp/src/site/site.xml b/tiles-autotag/tiles-autotag-jsp/src/site/site.xml
deleted file mode 100644
index 0a7d00d..0000000
--- a/tiles-autotag/tiles-autotag-jsp/src/site/site.xml
+++ /dev/null
@@ -1,56 +0,0 @@
-<?xml version="1.0" encoding="ISO-8859-1"?>
-<!--
-/*
- * $Id: site.xml 1081442 2011-03-14 16:21:08Z apetrelli $
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
--->
-<project name="Apache - Tiles Autotags">
-    <bannerLeft>
-        <name>Apache Software Foundation</name>
-        <src>http://www.apache.org/images/asf-logo.gif</src>
-        <href>http://www.apache.org</href>
-    </bannerLeft>
-    <bannerRight>
-        <name>Apache Tiles&#8482;</name>
-        <src>http://tiles.apache.org/images/logo.png</src>
-        <href>http://tiles.apache.org</href>
-    </bannerRight>
-    <body>
-
-        <links>
-            <item name="Apache" href="http://www.apache.org" />
-            <item name="Tiles" href="http://tiles.apache.org" />
-        </links>
-
-
-        <menu name="Apache Tiles&#8482;">
-            <item
-                   name="Tiles Home"
-                   href="../../index.html"/>
-            <item
-                   name="Tiles Autotag"
-                   href="../index.html"/>
-        </menu>
-
-        <menu ref="modules" />
-        <menu ref="reports" />
-
-    </body>
-</project>
diff --git a/tiles-autotag/tiles-autotag-jsp/src/test/java/org/apache/tiles/autotag/jsp/JspTemplateGeneratorFactoryTest.java b/tiles-autotag/tiles-autotag-jsp/src/test/java/org/apache/tiles/autotag/jsp/JspTemplateGeneratorFactoryTest.java
deleted file mode 100644
index 8692c53..0000000
--- a/tiles-autotag/tiles-autotag-jsp/src/test/java/org/apache/tiles/autotag/jsp/JspTemplateGeneratorFactoryTest.java
+++ /dev/null
@@ -1,65 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.autotag.jsp;
-
-import static org.easymock.EasyMock.*;
-import static org.junit.Assert.*;
-
-import java.io.File;
-
-import org.apache.tiles.autotag.generate.TemplateGenerator;
-import org.apache.tiles.autotag.generate.TemplateGeneratorBuilder;
-import org.apache.velocity.app.VelocityEngine;
-import org.junit.Test;
-
-/**
- * Tests {@link JspTemplateGeneratorFactory}.
- *
- * @version $Rev$ $Date$
- */
-public class JspTemplateGeneratorFactoryTest {
-
-    /**
-     * Test method for {@link JspTemplateGeneratorFactory#createTemplateGenerator()}.
-     */
-    @Test
-    public void testCreateTemplateGenerator() {
-        File classesOutputDirectory = createMock(File.class);
-        File resourcesOutputDirectory = createMock(File.class);
-        VelocityEngine velocityEngine = createMock(VelocityEngine.class);
-        TemplateGeneratorBuilder builder = createMock(TemplateGeneratorBuilder.class);
-        TemplateGenerator generator = createMock(TemplateGenerator.class);
-
-        expect(builder.setClassesOutputDirectory(classesOutputDirectory)).andReturn(builder);
-        expect(builder.setResourcesOutputDirectory(resourcesOutputDirectory)).andReturn(builder);
-        expect(builder.addResourcesTemplateSuiteGenerator(isA(TLDGenerator.class))).andReturn(builder);
-        expect(builder.addClassesTemplateClassGenerator(isA(TagClassGenerator.class))).andReturn(builder);
-        expect(builder.build()).andReturn(generator);
-
-        replay(classesOutputDirectory, resourcesOutputDirectory, velocityEngine, builder, generator);
-        JspTemplateGeneratorFactory factory = new JspTemplateGeneratorFactory(
-                classesOutputDirectory, resourcesOutputDirectory,
-                velocityEngine, builder);
-        assertSame(generator, factory.createTemplateGenerator());
-        verify(classesOutputDirectory, resourcesOutputDirectory, velocityEngine, builder, generator);
-    }
-
-}
diff --git a/tiles-autotag/tiles-autotag-jsp/src/test/java/org/apache/tiles/autotag/jsp/TLDGeneratorTest.java b/tiles-autotag/tiles-autotag-jsp/src/test/java/org/apache/tiles/autotag/jsp/TLDGeneratorTest.java
deleted file mode 100644
index 2485c6f..0000000
--- a/tiles-autotag/tiles-autotag-jsp/src/test/java/org/apache/tiles/autotag/jsp/TLDGeneratorTest.java
+++ /dev/null
@@ -1,130 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.autotag.jsp;
-
-import static org.junit.Assert.*;
-
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.InputStream;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Properties;
-
-import org.apache.commons.io.FileUtils;
-import org.apache.commons.io.IOUtils;
-import org.apache.tiles.autotag.core.runtime.ModelBody;
-import org.apache.tiles.autotag.model.TemplateClass;
-import org.apache.tiles.autotag.model.TemplateMethod;
-import org.apache.tiles.autotag.model.TemplateParameter;
-import org.apache.tiles.autotag.model.TemplateSuite;
-import org.apache.tiles.request.Request;
-import org.apache.velocity.app.VelocityEngine;
-import org.junit.Test;
-
-/**
- * Tests {@link TLDGenerator}.
- *
- * @version $Rev$ $Date$
- */
-public class TLDGeneratorTest {
-
-    /**
-     * Test method for {@link TLDGenerator#generate(File, String, TemplateSuite, Map)}.
-     * @throws Exception If something goes wrong.
-     */
-    @Test
-    public void testGenerate() throws Exception {
-        Properties props = new Properties();
-        InputStream propsStream = getClass().getResourceAsStream("/org/apache/tiles/autotag/velocity.properties");
-        props.load(propsStream);
-        propsStream.close();
-        VelocityEngine velocityEngine = new VelocityEngine(props);
-
-        TLDGenerator generator = new TLDGenerator(velocityEngine);
-        File file = File.createTempFile("autotag", null);
-        file.delete();
-        file.mkdir();
-        file.deleteOnExit();
-        TemplateSuite suite = new TemplateSuite("tldtest", "Test for TLD docs.");
-        Map<String, String> parameters = new HashMap<String, String>();
-        parameters.put("taglibURI", "http://www.initrode.net/tags/test");
-
-        List<TemplateParameter> params = new ArrayList<TemplateParameter>();
-        TemplateParameter param = new TemplateParameter("one", "one", "java.lang.String", null, true);
-        param.setDocumentation("Parameter one.");
-        params.add(param);
-        param = new TemplateParameter("two", "two", "int", null, false);
-        param.setDocumentation("Parameter two.");
-        params.add(param);
-        param = new TemplateParameter("three", "three", "long", null, false);
-        param.setDocumentation("Parameter three.");
-        params.add(param);
-        param = new TemplateParameter("request", "request", Request.class.getName(), null, false);
-        param.setDocumentation("The request.");
-        params.add(param);
-        param = new TemplateParameter("modelBody", "modelBody", ModelBody.class.getName(), null, false);
-        param.setDocumentation("The body.");
-        params.add(param);
-        TemplateMethod executeMethod = new TemplateMethod("execute", params);
-
-        TemplateClass clazz = new TemplateClass("org.apache.tiles.autotag.template.DoStuffTemplate",
-                "doStuff", "DoStuff", executeMethod);
-        clazz.setDocumentation("Documentation of the DoStuff class");
-
-        suite.addTemplateClass(clazz);
-        params = new ArrayList<TemplateParameter>();
-        param = new TemplateParameter("one", "one", "java.lang.Double", null, true);
-        param.setDocumentation("Parameter one.");
-        params.add(param);
-        param = new TemplateParameter("two", "two", "float", null, false);
-        param.setDocumentation("Parameter two.");
-        params.add(param);
-        param = new TemplateParameter("three", "three", "java.util.Date", null, false);
-        param.setDocumentation("Parameter three.");
-        params.add(param);
-        param = new TemplateParameter("request", "request", Request.class.getName(), null, false);
-        param.setDocumentation("The request.");
-        params.add(param);
-        executeMethod = new TemplateMethod("execute", params);
-
-        clazz = new TemplateClass("org.apache.tiles.autotag.template.DoStuffNoBodyTemplate",
-                "doStuffNoBody", "DoStuffNoBody", executeMethod);
-        clazz.setDocumentation("Documentation of the DoStuffNoBody class");
-
-        suite.addTemplateClass(clazz);
-
-        generator.generate(file, "org.apache.tiles.autotag.jsp.test", suite, parameters);
-
-        InputStream expected = getClass().getResourceAsStream("/tldtest-jsp.tld");
-        File effectiveFile = new File(file, "META-INF/tld/tldtest-jsp.tld");
-        assertTrue(effectiveFile.exists());
-        InputStream effective = new FileInputStream(effectiveFile);
-        assertTrue(IOUtils.contentEquals(effective, expected));
-        effective.close();
-        expected.close();
-
-        FileUtils.deleteDirectory(file);
-    }
-
-}
diff --git a/tiles-autotag/tiles-autotag-jsp/src/test/java/org/apache/tiles/autotag/jsp/TagClassGeneratorTest.java b/tiles-autotag/tiles-autotag-jsp/src/test/java/org/apache/tiles/autotag/jsp/TagClassGeneratorTest.java
deleted file mode 100644
index cbf2245..0000000
--- a/tiles-autotag/tiles-autotag-jsp/src/test/java/org/apache/tiles/autotag/jsp/TagClassGeneratorTest.java
+++ /dev/null
@@ -1,142 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.autotag.jsp;
-
-import static org.junit.Assert.*;
-
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.InputStream;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Properties;
-
-import org.apache.commons.io.FileUtils;
-import org.apache.commons.io.IOUtils;
-import org.apache.tiles.autotag.core.runtime.ModelBody;
-import org.apache.tiles.autotag.model.TemplateClass;
-import org.apache.tiles.autotag.model.TemplateMethod;
-import org.apache.tiles.autotag.model.TemplateParameter;
-import org.apache.tiles.autotag.model.TemplateSuite;
-import org.apache.tiles.request.Request;
-import org.apache.velocity.app.VelocityEngine;
-import org.junit.Test;
-
-/**
- * Tests {@link TagClassGenerator}.
- *
- * @version $Rev$ $Date$
- */
-public class TagClassGeneratorTest {
-
-    /**
-     * Test method for {@link TagClassGenerator#generate(File, String, TemplateSuite, TemplateClass, Map)}.
-     * @throws Exception If something goes wrong.
-     */
-    @Test
-    public void testGenerate() throws Exception {
-        Properties props = new Properties();
-        InputStream propsStream = getClass().getResourceAsStream("/org/apache/tiles/autotag/velocity.properties");
-        props.load(propsStream);
-        propsStream.close();
-        VelocityEngine velocityEngine = new VelocityEngine(props);
-
-        TagClassGenerator generator = new TagClassGenerator(velocityEngine);
-        File file = File.createTempFile("autotag", null);
-        file.delete();
-        file.mkdir();
-        file.deleteOnExit();
-        TemplateSuite suite = new TemplateSuite("tldtest", "Test for TLD docs.");
-        Map<String, String> parameters = new HashMap<String, String>();
-        parameters.put("taglibURI", "http://www.initrode.net/tags/test");
-
-        List<TemplateParameter> params = new ArrayList<TemplateParameter>();
-        TemplateParameter param = new TemplateParameter("one", "one", "java.lang.String", null, true);
-        param.setDocumentation("Parameter one.");
-        params.add(param);
-        param = new TemplateParameter("two", "two", "int", null, false);
-        param.setDocumentation("Parameter two.");
-        params.add(param);
-        param = new TemplateParameter("three", "three", "boolean", null, false);
-        param.setDocumentation("Parameter three.");
-        params.add(param);
-        param = new TemplateParameter("request", "request", Request.class.getName(), null, false);
-        param.setDocumentation("The request.");
-        params.add(param);
-        param = new TemplateParameter("modelBody", "modelBody", ModelBody.class.getName(), null, false);
-        param.setDocumentation("The body.");
-        params.add(param);
-        TemplateMethod executeMethod = new TemplateMethod("execute", params);
-
-        TemplateClass clazz = new TemplateClass("org.apache.tiles.autotag.template.DoStuffTemplate",
-                "doStuff", "DoStuff", executeMethod);
-        clazz.setDocumentation("Documentation of the DoStuff class.");
-
-        generator.generate(file, "org.apache.tiles.autotag.jsp.test", suite, clazz, parameters,
-                           "org.apache.tiles.autotag.jsp.test.Runtime");
-
-        InputStream expected = getClass().getResourceAsStream("/org/apache/tiles/autotag/jsp/test/DoStuffTag.java");
-        File effectiveFile = new File(file, "/org/apache/tiles/autotag/jsp/test/DoStuffTag.java");
-        assertTrue(effectiveFile.exists());
-        InputStream effective = new FileInputStream(effectiveFile);
-        assertTrue(IOUtils.contentEquals(effective, expected));
-        effective.close();
-        expected.close();
-
-        suite.addTemplateClass(clazz);
-        params = new ArrayList<TemplateParameter>();
-        param = new TemplateParameter("one", "one", "java.lang.Double", null, true);
-        param.setDocumentation("Parameter one.");
-        params.add(param);
-        param = new TemplateParameter("two", "two", "float", null, false);
-        param.setDocumentation("Parameter two.");
-        params.add(param);
-        param = new TemplateParameter("three", "three", "java.util.Date", null, false);
-        param.setDocumentation("Parameter three.");
-        params.add(param);
-        param = new TemplateParameter("request", "request", Request.class.getName(), null, false);
-        param.setDocumentation("The request.");
-        params.add(param);
-        executeMethod = new TemplateMethod("execute", params);
-
-        clazz = new TemplateClass("org.apache.tiles.autotag.template.DoStuffNoBodyTemplate",
-                "doStuffNoBody", "DoStuffNoBody", executeMethod);
-        clazz.setDocumentation("Documentation of the DoStuffNoBody class.");
-
-        suite.addTemplateClass(clazz);
-
-        generator.generate(file, "org.apache.tiles.autotag.jsp.test", suite, clazz, parameters,
-                           "org.apache.tiles.autotag.jsp.test.Runtime");
-
-        expected = getClass().getResourceAsStream("/org/apache/tiles/autotag/jsp/test/DoStuffNoBodyTag.java");
-        effectiveFile = new File(file, "/org/apache/tiles/autotag/jsp/test/DoStuffNoBodyTag.java");
-        assertTrue(effectiveFile.exists());
-        effective = new FileInputStream(effectiveFile);
-        assertTrue(IOUtils.contentEquals(effective, expected));
-        effective.close();
-        expected.close();
-
-        FileUtils.deleteDirectory(file);
-    }
-
-}
diff --git a/tiles-autotag/tiles-autotag-jsp/src/test/resources/org/apache/tiles/autotag/jsp/test/DoStuffNoBodyTag.java b/tiles-autotag/tiles-autotag-jsp/src/test/resources/org/apache/tiles/autotag/jsp/test/DoStuffNoBodyTag.java
deleted file mode 100644
index e5189c8..0000000
--- a/tiles-autotag/tiles-autotag-jsp/src/test/resources/org/apache/tiles/autotag/jsp/test/DoStuffNoBodyTag.java
+++ /dev/null
@@ -1,118 +0,0 @@
-/*
- * This file was automatically generated by Apache Tiles Autotag.
- */
-package org.apache.tiles.autotag.jsp.test;
-
-import java.io.IOException;
-
-import javax.servlet.jsp.JspException;
-import javax.servlet.jsp.tagext.SimpleTagSupport;
-
-import org.apache.tiles.autotag.core.runtime.AutotagRuntime;
-import org.apache.tiles.request.Request;
-
-/**
- * Documentation of the DoStuffNoBody class.
- */
-public class DoStuffNoBodyTag extends SimpleTagSupport {
-
-    /**
-     * The template model.
-     */
-    private org.apache.tiles.autotag.template.DoStuffNoBodyTemplate model = new org.apache.tiles.autotag.template.DoStuffNoBodyTemplate();
-
-    /**
-     * Parameter one.
-     */
-    private java.lang.Double one;
-
-    /**
-     * Parameter two.
-     */
-    private float two;
-
-    /**
-     * Parameter three.
-     */
-    private java.util.Date three;
-
-    /**
-     * Getter for one property.
-     *
-     * @return
-     * Parameter one.
-     */
-    public java.lang.Double getOne() {
-        return one;
-    }
-
-    /**
-     * Setter for one property.
-     *
-     * @param one
-     * Parameter one.
-     */
-    public void setOne(java.lang.Double one) {
-        this.one = one;
-    }
-
-    /**
-     * Getter for two property.
-     *
-     * @return
-     * Parameter two.
-     */
-    public float getTwo() {
-        return two;
-    }
-
-    /**
-     * Setter for two property.
-     *
-     * @param two
-     * Parameter two.
-     */
-    public void setTwo(float two) {
-        this.two = two;
-    }
-
-    /**
-     * Getter for three property.
-     *
-     * @return
-     * Parameter three.
-     */
-    public java.util.Date getThree() {
-        return three;
-    }
-
-    /**
-     * Setter for three property.
-     *
-     * @param three
-     * Parameter three.
-     */
-    public void setThree(java.util.Date three) {
-        this.three = three;
-    }
-
-    /** {@inheritDoc} */
-    @Override
-    public void doTag() throws JspException, IOException {
-        AutotagRuntime runtime = new org.apache.tiles.autotag.jsp.test.Runtime();
-        if (runtime instanceof SimpleTagSupport) {
-            SimpleTagSupport tag = (SimpleTagSupport) runtime;
-            tag.setJspContext(getJspContext());
-            tag.setJspBody(getJspBody());
-            tag.setParent(getParent());
-            tag.doTag();
-        }
-        Request request = runtime.createRequest();        
-        model.execute(
-            one,
-            two,
-            three,
-            request
-        );
-    }
-}
diff --git a/tiles-autotag/tiles-autotag-jsp/src/test/resources/org/apache/tiles/autotag/jsp/test/DoStuffTag.java b/tiles-autotag/tiles-autotag-jsp/src/test/resources/org/apache/tiles/autotag/jsp/test/DoStuffTag.java
deleted file mode 100644
index 796b838..0000000
--- a/tiles-autotag/tiles-autotag-jsp/src/test/resources/org/apache/tiles/autotag/jsp/test/DoStuffTag.java
+++ /dev/null
@@ -1,120 +0,0 @@
-/*
- * This file was automatically generated by Apache Tiles Autotag.
- */
-package org.apache.tiles.autotag.jsp.test;
-
-import java.io.IOException;
-
-import javax.servlet.jsp.JspException;
-import javax.servlet.jsp.tagext.SimpleTagSupport;
-
-import org.apache.tiles.autotag.core.runtime.ModelBody;
-import org.apache.tiles.autotag.core.runtime.AutotagRuntime;
-import org.apache.tiles.request.Request;
-
-/**
- * Documentation of the DoStuff class.
- */
-public class DoStuffTag extends SimpleTagSupport {
-
-    /**
-     * The template model.
-     */
-    private org.apache.tiles.autotag.template.DoStuffTemplate model = new org.apache.tiles.autotag.template.DoStuffTemplate();
-
-    /**
-     * Parameter one.
-     */
-    private java.lang.String one;
-
-    /**
-     * Parameter two.
-     */
-    private int two;
-
-    /**
-     * Parameter three.
-     */
-    private boolean three;
-
-    /**
-     * Getter for one property.
-     *
-     * @return
-     * Parameter one.
-     */
-    public java.lang.String getOne() {
-        return one;
-    }
-
-    /**
-     * Setter for one property.
-     *
-     * @param one
-     * Parameter one.
-     */
-    public void setOne(java.lang.String one) {
-        this.one = one;
-    }
-
-    /**
-     * Getter for two property.
-     *
-     * @return
-     * Parameter two.
-     */
-    public int getTwo() {
-        return two;
-    }
-
-    /**
-     * Setter for two property.
-     *
-     * @param two
-     * Parameter two.
-     */
-    public void setTwo(int two) {
-        this.two = two;
-    }
-
-    /**
-     * Getter for three property.
-     *
-     * @return
-     * Parameter three.
-     */
-    public boolean isThree() {
-        return three;
-    }
-
-    /**
-     * Setter for three property.
-     *
-     * @param three
-     * Parameter three.
-     */
-    public void setThree(boolean three) {
-        this.three = three;
-    }
-
-    /** {@inheritDoc} */
-    @Override
-    public void doTag() throws JspException, IOException {
-        AutotagRuntime runtime = new org.apache.tiles.autotag.jsp.test.Runtime();
-        if (runtime instanceof SimpleTagSupport) {
-            SimpleTagSupport tag = (SimpleTagSupport) runtime;
-            tag.setJspContext(getJspContext());
-            tag.setJspBody(getJspBody());
-            tag.setParent(getParent());
-            tag.doTag();
-        }
-        Request request = runtime.createRequest();        
-        ModelBody modelBody = runtime.createModelBody();
-        model.execute(
-            one,
-            two,
-            three,
-            request, modelBody
-        );
-    }
-}
diff --git a/tiles-autotag/tiles-autotag-jsp/src/test/resources/tldtest-jsp.tld b/tiles-autotag/tiles-autotag-jsp/src/test/resources/tldtest-jsp.tld
deleted file mode 100644
index 2db4ddc..0000000
--- a/tiles-autotag/tiles-autotag-jsp/src/test/resources/tldtest-jsp.tld
+++ /dev/null
@@ -1,102 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<!-- This file was automatically generated by Apache Tiles Autotag. -->
-<taglib
-  xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-jsptaglibrary_2_1.xsd"
-  xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-  version="2.1">
-   <description>
-   <![CDATA[
-   Test for TLD docs.
-   ]]>
-   </description>
-   <tlib-version>1.2</tlib-version>
-   <short-name>tldtest</short-name>
-   <uri>http://www.initrode.net/tags/test</uri>
-   <tag>
-      <description>
-      <![CDATA[
-      Documentation of the DoStuff class
-      ]]>
-      </description>
-      <name>doStuff</name>
-      <tag-class>org.apache.tiles.autotag.jsp.test.DoStuffTag</tag-class>
-      <body-content>scriptless</body-content>
-      <attribute>
-         <description>
-         <![CDATA[
-         Parameter one.
-         ]]>
-         </description>
-         <name>one</name>
-         <required>true</required>
-         <rtexprvalue>true</rtexprvalue>
-         <type>java.lang.String</type>
-      </attribute>
-      <attribute>
-         <description>
-         <![CDATA[
-         Parameter two.
-         ]]>
-         </description>
-         <name>two</name>
-         <required>false</required>
-         <rtexprvalue>true</rtexprvalue>
-         <type>int</type>
-      </attribute>
-      <attribute>
-         <description>
-         <![CDATA[
-         Parameter three.
-         ]]>
-         </description>
-         <name>three</name>
-         <required>false</required>
-         <rtexprvalue>true</rtexprvalue>
-         <type>long</type>
-      </attribute>
-   </tag>
-   <tag>
-      <description>
-      <![CDATA[
-      Documentation of the DoStuffNoBody class
-      ]]>
-      </description>
-      <name>doStuffNoBody</name>
-      <tag-class>org.apache.tiles.autotag.jsp.test.DoStuffNoBodyTag</tag-class>
-      <body-content>empty</body-content>
-      <attribute>
-         <description>
-         <![CDATA[
-         Parameter one.
-         ]]>
-         </description>
-         <name>one</name>
-         <required>true</required>
-         <rtexprvalue>true</rtexprvalue>
-         <type>java.lang.Double</type>
-      </attribute>
-      <attribute>
-         <description>
-         <![CDATA[
-         Parameter two.
-         ]]>
-         </description>
-         <name>two</name>
-         <required>false</required>
-         <rtexprvalue>true</rtexprvalue>
-         <type>float</type>
-      </attribute>
-      <attribute>
-         <description>
-         <![CDATA[
-         Parameter three.
-         ]]>
-         </description>
-         <name>three</name>
-         <required>false</required>
-         <rtexprvalue>true</rtexprvalue>
-         <type>java.util.Date</type>
-      </attribute>
-   </tag>
-</taglib>
diff --git a/tiles-autotag/tiles-autotag-velocity/pom.xml b/tiles-autotag/tiles-autotag-velocity/pom.xml
deleted file mode 100644
index d0399ca..0000000
--- a/tiles-autotag/tiles-autotag-velocity/pom.xml
+++ /dev/null
@@ -1,55 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<!--
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements.  See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership.  The ASF licenses this file
-to you under the Apache License, Version 2.0 (the
-"License"); you may not use this file except in compliance
-with the License.  You may obtain a copy of the License at
-
-  http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing,
-software distributed under the License is distributed on an
-"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-KIND, either express or implied.  See the License for the
-specific language governing permissions and limitations
-under the License.
--->
-
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
-  <modelVersion>4.0.0</modelVersion>
-  <parent>
-    <artifactId>tiles-autotag</artifactId>
-    <groupId>org.apache.tiles</groupId>
-    <version>1.0-SNAPSHOT</version>
-  </parent>
-  <groupId>org.apache.tiles</groupId>
-  <artifactId>tiles-autotag-velocity</artifactId>
-  <version>1.0-SNAPSHOT</version>
-  <name>Autotag - Velocity support</name>
-  <description>Module to generate Velocity code to use tag models.</description>
-  <dependencies>
-  	<dependency>
-  		<groupId>org.apache.tiles</groupId>
-  		<artifactId>tiles-autotag-core</artifactId>
-  	</dependency>
-  	<dependency>
-  		<groupId>junit</groupId>
-  		<artifactId>junit</artifactId>
-  		<scope>test</scope>
-  	</dependency>
-  	<dependency>
-  		<groupId>commons-io</groupId>
-  		<artifactId>commons-io</artifactId>
-  		<scope>test</scope>
-  	</dependency>
-  	<dependency>
-  		<groupId>org.easymock</groupId>
-  		<artifactId>easymock</artifactId>
-  		<scope>test</scope>
-  	</dependency>
-  </dependencies>
-</project>
diff --git a/tiles-autotag/tiles-autotag-velocity/src/main/java/org/apache/tiles/autotag/velocity/VelocityDirectiveGenerator.java b/tiles-autotag/tiles-autotag-velocity/src/main/java/org/apache/tiles/autotag/velocity/VelocityDirectiveGenerator.java
deleted file mode 100644
index 8493fc3..0000000
--- a/tiles-autotag/tiles-autotag-velocity/src/main/java/org/apache/tiles/autotag/velocity/VelocityDirectiveGenerator.java
+++ /dev/null
@@ -1,67 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.autotag.velocity;
-
-import java.io.File;
-import java.util.Map;
-
-import org.apache.tiles.autotag.generate.AbstractTemplateClassGenerator;
-import org.apache.tiles.autotag.model.TemplateClass;
-import org.apache.tiles.autotag.model.TemplateSuite;
-import org.apache.velocity.app.VelocityEngine;
-
-/**
- * Generates a Velocity directive using a template class.
- *
- * @version $Rev$ $Date$
- */
-public class VelocityDirectiveGenerator extends AbstractTemplateClassGenerator {
-
-    /**
-     * Constructor.
-     *
-     * @param velocityEngine The Velocity engine.
-     */
-    public VelocityDirectiveGenerator(VelocityEngine velocityEngine) {
-        super(velocityEngine);
-    }
-
-    @Override
-    protected String getDirectoryName(File directory, String packageName,
-            TemplateSuite suite, TemplateClass clazz, Map<String, String> parameters,
-            String runtimeClass) {
-        return packageName.replaceAll("\\.", "/");
-    }
-
-    @Override
-    protected String getFilename(File directory, String packageName,
-            TemplateSuite suite, TemplateClass clazz, Map<String, String> parameters,
-            String runtimeClass) {
-        return clazz.getTagClassPrefix() + "Directive.java";
-    }
-
-    @Override
-    protected String getTemplatePath(File directory, String packageName,
-            TemplateSuite suite, TemplateClass clazz, Map<String, String> parameters,
-            String runtimeClass) {
-        return "/org/apache/tiles/autotag/velocity/velocityDirective.vm";
-    }
-}
diff --git a/tiles-autotag/tiles-autotag-velocity/src/main/java/org/apache/tiles/autotag/velocity/VelocityPropertiesGenerator.java b/tiles-autotag/tiles-autotag-velocity/src/main/java/org/apache/tiles/autotag/velocity/VelocityPropertiesGenerator.java
deleted file mode 100644
index a9a8619..0000000
--- a/tiles-autotag/tiles-autotag-velocity/src/main/java/org/apache/tiles/autotag/velocity/VelocityPropertiesGenerator.java
+++ /dev/null
@@ -1,64 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.autotag.velocity;
-
-import java.io.File;
-import java.util.Map;
-
-import org.apache.tiles.autotag.generate.AbstractTemplateSuiteGenerator;
-import org.apache.tiles.autotag.model.TemplateSuite;
-import org.apache.velocity.app.VelocityEngine;
-
-/**
- * Generates a Velocity properties containing the list of generated user directives for future use.
- *
- * @version $Rev$ $Date$
- */
-public class VelocityPropertiesGenerator extends AbstractTemplateSuiteGenerator {
-
-    /**
-     * Constructor.
-     *
-     * @param velocityEngine The Velocity engine.
-     */
-    public VelocityPropertiesGenerator(VelocityEngine velocityEngine) {
-        super(velocityEngine);
-    }
-
-    @Override
-    protected String getTemplatePath(File directory, String packageName,
-            TemplateSuite suite, Map<String, String> parameters) {
-        return "/org/apache/tiles/autotag/velocity/velocityProperties.vm";
-    }
-
-    @Override
-    protected String getFilename(File directory, String packageName,
-            TemplateSuite suite, Map<String, String> parameters) {
-        return "velocity.properties";
-    }
-
-    @Override
-    protected String getDirectoryName(File directory, String packageName,
-            TemplateSuite suite, Map<String, String> parameters) {
-        return "META-INF/";
-    }
-
-}
diff --git a/tiles-autotag/tiles-autotag-velocity/src/main/java/org/apache/tiles/autotag/velocity/VelocityTemplateGeneratorFactory.java b/tiles-autotag/tiles-autotag-velocity/src/main/java/org/apache/tiles/autotag/velocity/VelocityTemplateGeneratorFactory.java
deleted file mode 100644
index 02f0f14..0000000
--- a/tiles-autotag/tiles-autotag-velocity/src/main/java/org/apache/tiles/autotag/velocity/VelocityTemplateGeneratorFactory.java
+++ /dev/null
@@ -1,87 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.autotag.velocity;
-
-import java.io.File;
-
-import org.apache.tiles.autotag.generate.TemplateGenerator;
-import org.apache.tiles.autotag.generate.TemplateGeneratorBuilder;
-import org.apache.tiles.autotag.generate.TemplateGeneratorFactory;
-import org.apache.velocity.app.VelocityEngine;
-
-/**
- * Creates a template generator that generates code to build Velocity code
- * around template classes.
- *
- * @version $Rev$ $Date$
- */
-public class VelocityTemplateGeneratorFactory implements
-        TemplateGeneratorFactory {
-
-    /**
-     * Location of the file.
-     */
-    private File classesOutputDirectory;
-
-    /**
-     * Location of the file.
-     */
-    private File resourcesOutputDirectory;
-
-    /**
-     * The Velocity engine.
-     */
-    private VelocityEngine velocityEngine;
-
-    /**
-     * The template generator builder.
-     */
-    private TemplateGeneratorBuilder templateGeneratorBuilder;
-
-    /**
-     * Constructor.
-     *
-     * @param classesOutputDirectory The directory where classes will be generated.
-     * @param resourcesOutputDirectory The directory where velocity.properties will be written.
-     * @param velocityEngine The Velocity engine.
-     * @param templateGeneratorBuilder The template generator builder.
-     */
-    public VelocityTemplateGeneratorFactory(File classesOutputDirectory,
-            File resourcesOutputDirectory, VelocityEngine velocityEngine,
-            TemplateGeneratorBuilder templateGeneratorBuilder) {
-        this.classesOutputDirectory = classesOutputDirectory;
-        this.resourcesOutputDirectory = resourcesOutputDirectory;
-        this.velocityEngine = velocityEngine;
-        this.templateGeneratorBuilder = templateGeneratorBuilder;
-    }
-
-    @Override
-    public TemplateGenerator createTemplateGenerator() {
-        return templateGeneratorBuilder
-                .setClassesOutputDirectory(classesOutputDirectory)
-                .setResourcesOutputDirectory(resourcesOutputDirectory)
-                .addResourcesTemplateSuiteGenerator(
-                        new VelocityPropertiesGenerator(velocityEngine))
-                .addClassesTemplateClassGenerator(
-                        new VelocityDirectiveGenerator(velocityEngine)).build();
-    }
-
-}
diff --git a/tiles-autotag/tiles-autotag-velocity/src/main/java/org/apache/tiles/autotag/velocity/package-info.java b/tiles-autotag/tiles-autotag-velocity/src/main/java/org/apache/tiles/autotag/velocity/package-info.java
deleted file mode 100644
index a2c9d18..0000000
--- a/tiles-autotag/tiles-autotag-velocity/src/main/java/org/apache/tiles/autotag/velocity/package-info.java
+++ /dev/null
@@ -1,24 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-/**
- * Autotag support for Velocity.
- */
-package org.apache.tiles.autotag.velocity;
diff --git a/tiles-autotag/tiles-autotag-velocity/src/main/resources/org/apache/tiles/autotag/velocity/velocityDirective.vm b/tiles-autotag/tiles-autotag-velocity/src/main/resources/org/apache/tiles/autotag/velocity/velocityDirective.vm
deleted file mode 100644
index f0bef91..0000000
--- a/tiles-autotag/tiles-autotag-velocity/src/main/resources/org/apache/tiles/autotag/velocity/velocityDirective.vm
+++ /dev/null
@@ -1,82 +0,0 @@
-#*
- * $Id: tiles-jsp.tld 836180 2009-11-14 14:00:02Z apetrelli $
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *#/*
- * This file was automatically generated by Apache Tiles Autotag.
- */
-package ${packageName};
-
-import java.io.IOException;
-import java.io.Writer;
-
-#if(${clazz.hasBody()})
-import org.apache.tiles.autotag.core.runtime.ModelBody;
-#end
-import org.apache.tiles.autotag.core.runtime.AutotagRuntime;
-import org.apache.tiles.request.Request;
-import org.apache.velocity.context.InternalContextAdapter;
-import org.apache.velocity.runtime.directive.Directive;
-import org.apache.velocity.runtime.parser.node.Node;
-
-/**
-#foreach($line in $stringTool.splitOnNewlines(${clazz.documentation}))
- * ${line}
-#end
- */
-public class ${clazz.tagClassPrefix}Directive extends Directive {
-
-    /**
-     * The template model.
-     */
-    private ${clazz.name} model = new ${clazz.name}();
-
-    /** {@inheritDoc} */
-    @Override
-    public String getName() {
-        return "${suite.name}_${clazz.tagName}";
-    }
-
-    /** {@inheritDoc} */
-    @Override
-    public int getType() {
-        return #if(${clazz.hasBody()})BLOCK#{else}LINE#{end};
-    }
-
-    /** {@inheritDoc} */
-    @Override
-    public boolean render(InternalContextAdapter context, Writer writer, Node node)
-            throws IOException {
-        AutotagRuntime runtime = new ${runtimeClass}();
-        if (runtime instanceof Directive) {
-            ((Directive) runtime).render(context, writer, node);
-        }
-        Request request = runtime.createRequest();
-#if(${clazz.hasBody()})
-        ModelBody modelBody = runtime.createModelBody();
-#end
-        model.execute(
-#foreach($parameter in ${clazz.parameters})
-            ($stringTool.getClassToCast(${parameter.type})) runtime.getParameter("${parameter.exportedName}", $stringTool.getDefaultValue(${parameter.type}, ${parameter.defaultValue})),
-#end
-            request#if(${clazz.hasBody()}), modelBody#end
-
-        );
-        return true;
-    }
-}
diff --git a/tiles-autotag/tiles-autotag-velocity/src/main/resources/org/apache/tiles/autotag/velocity/velocityProperties.vm b/tiles-autotag/tiles-autotag-velocity/src/main/resources/org/apache/tiles/autotag/velocity/velocityProperties.vm
deleted file mode 100644
index 4fc1bb7..0000000
--- a/tiles-autotag/tiles-autotag-velocity/src/main/resources/org/apache/tiles/autotag/velocity/velocityProperties.vm
+++ /dev/null
@@ -1,22 +0,0 @@
-#*
- * $Id: tiles-jsp.tld 836180 2009-11-14 14:00:02Z apetrelli $
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *## This file was automatically generated by Apache Tiles Autotag.
-userdirective=#foreach($clazz in ${suite.getTemplateClasses()})#if($velocityCount > 1),\
-  #{end}${packageName}.${clazz.tagClassPrefix}Directive#end
diff --git a/tiles-autotag/tiles-autotag-velocity/src/site/site.xml b/tiles-autotag/tiles-autotag-velocity/src/site/site.xml
deleted file mode 100644
index 0a7d00d..0000000
--- a/tiles-autotag/tiles-autotag-velocity/src/site/site.xml
+++ /dev/null
@@ -1,56 +0,0 @@
-<?xml version="1.0" encoding="ISO-8859-1"?>
-<!--
-/*
- * $Id: site.xml 1081442 2011-03-14 16:21:08Z apetrelli $
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
--->
-<project name="Apache - Tiles Autotags">
-    <bannerLeft>
-        <name>Apache Software Foundation</name>
-        <src>http://www.apache.org/images/asf-logo.gif</src>
-        <href>http://www.apache.org</href>
-    </bannerLeft>
-    <bannerRight>
-        <name>Apache Tiles&#8482;</name>
-        <src>http://tiles.apache.org/images/logo.png</src>
-        <href>http://tiles.apache.org</href>
-    </bannerRight>
-    <body>
-
-        <links>
-            <item name="Apache" href="http://www.apache.org" />
-            <item name="Tiles" href="http://tiles.apache.org" />
-        </links>
-
-
-        <menu name="Apache Tiles&#8482;">
-            <item
-                   name="Tiles Home"
-                   href="../../index.html"/>
-            <item
-                   name="Tiles Autotag"
-                   href="../index.html"/>
-        </menu>
-
-        <menu ref="modules" />
-        <menu ref="reports" />
-
-    </body>
-</project>
diff --git a/tiles-autotag/tiles-autotag-velocity/src/test/java/org/apache/tiles/autotag/velocity/VelocityDirectiveGeneratorTest.java b/tiles-autotag/tiles-autotag-velocity/src/test/java/org/apache/tiles/autotag/velocity/VelocityDirectiveGeneratorTest.java
deleted file mode 100644
index 9806199..0000000
--- a/tiles-autotag/tiles-autotag-velocity/src/test/java/org/apache/tiles/autotag/velocity/VelocityDirectiveGeneratorTest.java
+++ /dev/null
@@ -1,143 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.autotag.velocity;
-
-import static org.junit.Assert.*;
-
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.InputStream;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Properties;
-
-import org.apache.commons.io.FileUtils;
-import org.apache.commons.io.IOUtils;
-import org.apache.tiles.autotag.core.runtime.ModelBody;
-import org.apache.tiles.autotag.model.TemplateClass;
-import org.apache.tiles.autotag.model.TemplateMethod;
-import org.apache.tiles.autotag.model.TemplateParameter;
-import org.apache.tiles.autotag.model.TemplateSuite;
-import org.apache.tiles.request.Request;
-import org.apache.velocity.app.VelocityEngine;
-import org.junit.Test;
-
-/**
- * Tests {@link VelocityDirectiveGenerator}.
- *
- * @version $Rev$ $Date$
- */
-public class VelocityDirectiveGeneratorTest {
-
-    /**
-     * Test method for
-     * {@link VelocityDirectiveGenerator#generate(File, String, TemplateSuite, TemplateClass, java.util.Map)}.
-     * @throws Exception If something goes wrong.
-     */
-    @Test
-    public void testGenerate() throws Exception {
-        Properties props = new Properties();
-        InputStream propsStream = getClass().getResourceAsStream("/org/apache/tiles/autotag/velocity.properties");
-        props.load(propsStream);
-        propsStream.close();
-        VelocityEngine velocityEngine = new VelocityEngine(props);
-
-        VelocityDirectiveGenerator generator = new VelocityDirectiveGenerator(velocityEngine);
-        File file = File.createTempFile("autotag", null);
-        file.delete();
-        file.mkdir();
-        file.deleteOnExit();
-        TemplateSuite suite = new TemplateSuite("tldtest", "Test for TLD docs.");
-
-        List<TemplateParameter> params = new ArrayList<TemplateParameter>();
-        TemplateParameter param = new TemplateParameter("one", "one", "java.lang.String", null, true);
-        param.setDocumentation("Parameter one.");
-        params.add(param);
-        param = new TemplateParameter("two", "two", "int", null, false);
-        param.setDocumentation("Parameter two.");
-        params.add(param);
-        param = new TemplateParameter("three", "three", "boolean", null, false);
-        param.setDocumentation("Parameter three.");
-        params.add(param);
-        param = new TemplateParameter("request", "request", Request.class.getName(), null, false);
-        param.setDocumentation("The request.");
-        params.add(param);
-        param = new TemplateParameter("modelBody", "modelBody", ModelBody.class.getName(), null, false);
-        param.setDocumentation("The body.");
-        params.add(param);
-        TemplateMethod executeMethod = new TemplateMethod("execute", params);
-
-        TemplateClass clazz = new TemplateClass("org.apache.tiles.autotag.template.DoStuffTemplate",
-                "doStuff", "DoStuff", executeMethod);
-        clazz.setDocumentation("Documentation of the DoStuff class.");
-
-        generator.generate(file, "org.apache.tiles.autotag.velocity.test", suite, clazz, null,
-                           "org.apache.tiles.autotag.velocity.test.Runtime");
-
-        InputStream expected = getClass()
-                .getResourceAsStream(
-                        "/org/apache/tiles/autotag/velocity/test/DoStuffDirective.javat");
-        File effectiveFile = new File(file, "/org/apache/tiles/autotag/velocity/test/DoStuffDirective.java");
-        assertTrue(effectiveFile.exists());
-        InputStream effective = new FileInputStream(effectiveFile);
-        assertTrue(IOUtils.contentEquals(effective, expected));
-        effective.close();
-        expected.close();
-
-        suite.addTemplateClass(clazz);
-        params = new ArrayList<TemplateParameter>();
-        param = new TemplateParameter("one", "one", "java.lang.Double", null, true);
-        param.setDocumentation("Parameter one.");
-        params.add(param);
-        param = new TemplateParameter("two", "two", "float", null, false);
-        param.setDocumentation("Parameter two.");
-        params.add(param);
-        param = new TemplateParameter("three", "three", "java.util.Date", null, false);
-        param.setDocumentation("Parameter three.");
-        params.add(param);
-        param = new TemplateParameter("request", "request", Request.class.getName(), null, false);
-        param.setDocumentation("The request.");
-        params.add(param);
-        executeMethod = new TemplateMethod("execute", params);
-
-        clazz = new TemplateClass("org.apache.tiles.autotag.template.DoStuffNoBodyTemplate",
-                "doStuffNoBody", "DoStuffNoBody", executeMethod);
-        clazz.setDocumentation("Documentation of the DoStuffNoBody class.");
-
-        suite.addTemplateClass(clazz);
-
-        generator.generate(file, "org.apache.tiles.autotag.velocity.test", suite, clazz, null,
-                           "org.apache.tiles.autotag.velocity.test.Runtime");
-
-        expected = getClass()
-                .getResourceAsStream(
-                        "/org/apache/tiles/autotag/velocity/test/DoStuffNoBodyDirective.javat");
-        effectiveFile = new File(file, "/org/apache/tiles/autotag/velocity/test/DoStuffNoBodyDirective.java");
-        assertTrue(effectiveFile.exists());
-        effective = new FileInputStream(effectiveFile);
-        assertTrue(IOUtils.contentEquals(effective, expected));
-        effective.close();
-        expected.close();
-
-        FileUtils.deleteDirectory(file);
-    }
-
-}
diff --git a/tiles-autotag/tiles-autotag-velocity/src/test/java/org/apache/tiles/autotag/velocity/VelocityPropertiesGeneratorTest.java b/tiles-autotag/tiles-autotag-velocity/src/test/java/org/apache/tiles/autotag/velocity/VelocityPropertiesGeneratorTest.java
deleted file mode 100644
index f8b5f92..0000000
--- a/tiles-autotag/tiles-autotag-velocity/src/test/java/org/apache/tiles/autotag/velocity/VelocityPropertiesGeneratorTest.java
+++ /dev/null
@@ -1,128 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.autotag.velocity;
-
-import static org.junit.Assert.*;
-
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.InputStream;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Properties;
-
-import org.apache.commons.io.FileUtils;
-import org.apache.commons.io.IOUtils;
-import org.apache.tiles.autotag.core.runtime.ModelBody;
-import org.apache.tiles.autotag.model.TemplateClass;
-import org.apache.tiles.autotag.model.TemplateMethod;
-import org.apache.tiles.autotag.model.TemplateParameter;
-import org.apache.tiles.autotag.model.TemplateSuite;
-import org.apache.tiles.request.Request;
-import org.apache.velocity.app.VelocityEngine;
-import org.junit.Test;
-
-/**
- * Tests {@link VelocityPropertiesGenerator}.
- *
- * @version $Rev$ $Date$
- */
-public class VelocityPropertiesGeneratorTest {
-
-    /**
-     * Test method for
-     * {@link org.apache.tiles.autotag.velocity.VelocityPropertiesGenerator
-     * #generate(File, String, TemplateSuite, java.util.Map)}.
-     * @throws Exception If something goes wrong.
-     */
-    @Test
-    public void testGenerate() throws Exception {
-        Properties props = new Properties();
-        InputStream propsStream = getClass().getResourceAsStream("/org/apache/tiles/autotag/velocity.properties");
-        props.load(propsStream);
-        propsStream.close();
-        VelocityEngine velocityEngine = new VelocityEngine(props);
-
-        VelocityPropertiesGenerator generator = new VelocityPropertiesGenerator(velocityEngine);
-        File file = File.createTempFile("autotag", null);
-        file.delete();
-        file.mkdir();
-        file.deleteOnExit();
-        TemplateSuite suite = new TemplateSuite("tldtest", "Test for TLD docs.");
-
-        List<TemplateParameter> params = new ArrayList<TemplateParameter>();
-        TemplateParameter param = new TemplateParameter("one", "one", "java.lang.String", null, true);
-        param.setDocumentation("Parameter one.");
-        params.add(param);
-        param = new TemplateParameter("two", "two", "int", null, false);
-        param.setDocumentation("Parameter two.");
-        params.add(param);
-        param = new TemplateParameter("three", "three", "long", null, false);
-        param.setDocumentation("Parameter three.");
-        params.add(param);
-        param = new TemplateParameter("request", "request", Request.class.getName(), null, false);
-        param.setDocumentation("The request.");
-        params.add(param);
-        param = new TemplateParameter("modelBody", "modelBody", ModelBody.class.getName(), null, false);
-        param.setDocumentation("The body.");
-        params.add(param);
-        TemplateMethod executeMethod = new TemplateMethod("execute", params);
-
-        TemplateClass clazz = new TemplateClass("org.apache.tiles.autotag.template.DoStuffTemplate",
-                "doStuff", "DoStuff", executeMethod);
-        clazz.setDocumentation("Documentation of the DoStuff class");
-
-        suite.addTemplateClass(clazz);
-        params = new ArrayList<TemplateParameter>();
-        param = new TemplateParameter("one", "one", "java.lang.Double", null, true);
-        param.setDocumentation("Parameter one.");
-        params.add(param);
-        param = new TemplateParameter("two", "two", "float", null, false);
-        param.setDocumentation("Parameter two.");
-        params.add(param);
-        param = new TemplateParameter("three", "three", "java.util.Date", null, false);
-        param.setDocumentation("Parameter three.");
-        params.add(param);
-        param = new TemplateParameter("request", "request", Request.class.getName(), null, false);
-        param.setDocumentation("The request.");
-        params.add(param);
-        executeMethod = new TemplateMethod("execute", params);
-
-        clazz = new TemplateClass("org.apache.tiles.autotag.template.DoStuffNoBodyTemplate",
-                "doStuffNoBody", "DoStuffNoBody", executeMethod);
-        clazz.setDocumentation("Documentation of the DoStuffNoBody class");
-
-        suite.addTemplateClass(clazz);
-
-        generator.generate(file, "org.apache.tiles.autotag.velocity.test", suite, null);
-
-        InputStream expected = getClass().getResourceAsStream("/velocity.properties.test");
-        File effectiveFile = new File(file, "META-INF/velocity.properties");
-        assertTrue(effectiveFile.exists());
-        InputStream effective = new FileInputStream(effectiveFile);
-        assertTrue(IOUtils.contentEquals(effective, expected));
-        effective.close();
-        expected.close();
-
-        FileUtils.deleteDirectory(file);
-    }
-
-}
diff --git a/tiles-autotag/tiles-autotag-velocity/src/test/java/org/apache/tiles/autotag/velocity/VelocityTemplateGeneratorFactoryTest.java b/tiles-autotag/tiles-autotag-velocity/src/test/java/org/apache/tiles/autotag/velocity/VelocityTemplateGeneratorFactoryTest.java
deleted file mode 100644
index a17ffd8..0000000
--- a/tiles-autotag/tiles-autotag-velocity/src/test/java/org/apache/tiles/autotag/velocity/VelocityTemplateGeneratorFactoryTest.java
+++ /dev/null
@@ -1,65 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.autotag.velocity;
-
-import static org.easymock.EasyMock.*;
-import static org.junit.Assert.*;
-
-import java.io.File;
-
-import org.apache.tiles.autotag.generate.TemplateGenerator;
-import org.apache.tiles.autotag.generate.TemplateGeneratorBuilder;
-import org.apache.velocity.app.VelocityEngine;
-import org.junit.Test;
-
-/**
- * Tests {@link JspTemplateGeneratorFactory}.
- *
- * @version $Rev$ $Date$
- */
-public class VelocityTemplateGeneratorFactoryTest {
-
-    /**
-     * Test method for {@link JspTemplateGeneratorFactory#createTemplateGenerator()}.
-     */
-    @Test
-    public void testCreateTemplateGenerator() {
-        File classesOutputDirectory = createMock(File.class);
-        File resourcesOutputDirectory = createMock(File.class);
-        VelocityEngine velocityEngine = createMock(VelocityEngine.class);
-        TemplateGeneratorBuilder builder = createMock(TemplateGeneratorBuilder.class);
-        TemplateGenerator generator = createMock(TemplateGenerator.class);
-
-        expect(builder.setClassesOutputDirectory(classesOutputDirectory)).andReturn(builder);
-        expect(builder.setResourcesOutputDirectory(resourcesOutputDirectory)).andReturn(builder);
-        expect(builder.addResourcesTemplateSuiteGenerator(isA(VelocityPropertiesGenerator.class))).andReturn(builder);
-        expect(builder.addClassesTemplateClassGenerator(isA(VelocityDirectiveGenerator.class))).andReturn(builder);
-        expect(builder.build()).andReturn(generator);
-
-        replay(classesOutputDirectory, resourcesOutputDirectory, velocityEngine, builder, generator);
-        VelocityTemplateGeneratorFactory factory = new VelocityTemplateGeneratorFactory(
-                classesOutputDirectory, resourcesOutputDirectory,
-                velocityEngine, builder);
-        assertSame(generator, factory.createTemplateGenerator());
-        verify(classesOutputDirectory, resourcesOutputDirectory, velocityEngine, builder, generator);
-    }
-
-}
diff --git a/tiles-autotag/tiles-autotag-velocity/src/test/resources/org/apache/tiles/autotag/velocity/test/DoStuffDirective.javat b/tiles-autotag/tiles-autotag-velocity/src/test/resources/org/apache/tiles/autotag/velocity/test/DoStuffDirective.javat
deleted file mode 100644
index 5caf980..0000000
--- a/tiles-autotag/tiles-autotag-velocity/src/test/resources/org/apache/tiles/autotag/velocity/test/DoStuffDirective.javat
+++ /dev/null
@@ -1,56 +0,0 @@
-/*
- * This file was automatically generated by Apache Tiles Autotag.
- */
-package org.apache.tiles.autotag.velocity.test;
-
-import java.io.IOException;
-import java.io.Writer;
-
-import org.apache.tiles.autotag.core.runtime.ModelBody;
-import org.apache.tiles.autotag.core.runtime.AutotagRuntime;
-import org.apache.tiles.request.Request;
-import org.apache.velocity.context.InternalContextAdapter;
-import org.apache.velocity.runtime.directive.Directive;
-import org.apache.velocity.runtime.parser.node.Node;
-
-/**
- * Documentation of the DoStuff class.
- */
-public class DoStuffDirective extends Directive {
-
-    /**
-     * The template model.
-     */
-    private org.apache.tiles.autotag.template.DoStuffTemplate model = new org.apache.tiles.autotag.template.DoStuffTemplate();
-
-    /** {@inheritDoc} */
-    @Override
-    public String getName() {
-        return "tldtest_doStuff";
-    }
-
-    /** {@inheritDoc} */
-    @Override
-    public int getType() {
-        return BLOCK;
-    }
-
-    /** {@inheritDoc} */
-    @Override
-    public boolean render(InternalContextAdapter context, Writer writer, Node node)
-            throws IOException {
-        AutotagRuntime runtime = new org.apache.tiles.autotag.velocity.test.Runtime();
-        if (runtime instanceof Directive) {
-            ((Directive) runtime).render(context, writer, node);
-        }
-        Request request = runtime.createRequest();
-        ModelBody modelBody = runtime.createModelBody();
-        model.execute(
-            (java.lang.String) runtime.getParameter("one", null),
-            (java.lang.Integer) runtime.getParameter("two", 0),
-            (java.lang.Boolean) runtime.getParameter("three", false),
-            request, modelBody
-        );
-        return true;
-    }
-}
diff --git a/tiles-autotag/tiles-autotag-velocity/src/test/resources/org/apache/tiles/autotag/velocity/test/DoStuffNoBodyDirective.javat b/tiles-autotag/tiles-autotag-velocity/src/test/resources/org/apache/tiles/autotag/velocity/test/DoStuffNoBodyDirective.javat
deleted file mode 100644
index 88c9919..0000000
--- a/tiles-autotag/tiles-autotag-velocity/src/test/resources/org/apache/tiles/autotag/velocity/test/DoStuffNoBodyDirective.javat
+++ /dev/null
@@ -1,54 +0,0 @@
-/*
- * This file was automatically generated by Apache Tiles Autotag.
- */
-package org.apache.tiles.autotag.velocity.test;
-
-import java.io.IOException;
-import java.io.Writer;
-
-import org.apache.tiles.autotag.core.runtime.AutotagRuntime;
-import org.apache.tiles.request.Request;
-import org.apache.velocity.context.InternalContextAdapter;
-import org.apache.velocity.runtime.directive.Directive;
-import org.apache.velocity.runtime.parser.node.Node;
-
-/**
- * Documentation of the DoStuffNoBody class.
- */
-public class DoStuffNoBodyDirective extends Directive {
-
-    /**
-     * The template model.
-     */
-    private org.apache.tiles.autotag.template.DoStuffNoBodyTemplate model = new org.apache.tiles.autotag.template.DoStuffNoBodyTemplate();
-
-    /** {@inheritDoc} */
-    @Override
-    public String getName() {
-        return "tldtest_doStuffNoBody";
-    }
-
-    /** {@inheritDoc} */
-    @Override
-    public int getType() {
-        return LINE;
-    }
-
-    /** {@inheritDoc} */
-    @Override
-    public boolean render(InternalContextAdapter context, Writer writer, Node node)
-            throws IOException {
-        AutotagRuntime runtime = new org.apache.tiles.autotag.velocity.test.Runtime();
-        if (runtime instanceof Directive) {
-            ((Directive) runtime).render(context, writer, node);
-        }
-        Request request = runtime.createRequest();
-        model.execute(
-            (java.lang.Double) runtime.getParameter("one", null),
-            (java.lang.Float) runtime.getParameter("two", 0.0f),
-            (java.util.Date) runtime.getParameter("three", null),
-            request
-        );
-        return true;
-    }
-}
diff --git a/tiles-autotag/tiles-autotag-velocity/src/test/resources/velocity.properties.test b/tiles-autotag/tiles-autotag-velocity/src/test/resources/velocity.properties.test
deleted file mode 100644
index 4d4051a..0000000
--- a/tiles-autotag/tiles-autotag-velocity/src/test/resources/velocity.properties.test
+++ /dev/null
@@ -1,3 +0,0 @@
-# This file was automatically generated by Apache Tiles Autotag.
-userdirective=org.apache.tiles.autotag.velocity.test.DoStuffDirective,\
-  org.apache.tiles.autotag.velocity.test.DoStuffNoBodyDirective
\ No newline at end of file
diff --git a/tiles-request/pom.xml b/tiles-request/pom.xml
deleted file mode 100644
index cb10f74..0000000
--- a/tiles-request/pom.xml
+++ /dev/null
@@ -1,375 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<!--
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements.  See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership.  The ASF licenses this file
-to you under the Apache License, Version 2.0 (the
-"License"); you may not use this file except in compliance
-with the License.  You may obtain a copy of the License at
-
-  http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing,
-software distributed under the License is distributed on an
-"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-KIND, either express or implied.  See the License for the
-specific language governing permissions and limitations
-under the License.
--->
-
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
-    <modelVersion>4.0.0</modelVersion>
-    <parent>
-        <artifactId>tiles-master</artifactId>
-        <groupId>org.apache.tiles</groupId>
-        <version>4</version>
-        <relativePath/>
-    </parent>
-    <groupId>org.apache.tiles</groupId>
-    <artifactId>tiles-request</artifactId>
-    <version>1.0-SNAPSHOT</version>
-    <packaging>pom</packaging>
-    <name>Tiles Request Framework</name>
-    <description>Request abstraction for various request and template technologies</description>
-    <url>http://tiles.apache.org/tiles-request/</url>
-    <scm>
-        <connection>scm:svn:http://svn.eu.apache.org/repos/asf/tiles/framework/trunk/tiles-request/</connection>
-        <developerConnection>scm:svn:https://svn.eu.apache.org/repos/asf/tiles/framework/trunk/tiles-request/</developerConnection>
-        <url>http://svn.eu.apache.org/viewvc/tiles/framework/trunk/tiles-request/</url>
-    </scm>
-    <issueManagement>
-        <system>JIRA</system>
-        <url>https://issues.apache.org/jira/browse/TREQ</url>
-    </issueManagement>
-
-    <modules>
-        <module>tiles-request-api</module>
-        <module>tiles-request-servlet</module>
-        <module>tiles-request-servlet-wildcard</module>
-        <module>tiles-request-portlet</module>
-        <module>tiles-request-portlet-wildcard</module>
-        <module>tiles-request-jsp</module>
-        <module>tiles-request-freemarker</module>
-        <module>tiles-request-velocity</module>
-        <module>tiles-request-mustache</module>
-    </modules>
-    <distributionManagement>
-        <site>
-            <id>apache-site</id>
-            <url>scp://people.apache.org/www/tiles.apache.org/tiles-request</url>
-        </site>
-    </distributionManagement>
-
-    <build>
-        <pluginManagement>
-            <plugins>
-                <plugin>
-                    <artifactId>maven-jar-plugin</artifactId>
-                    <configuration>
-                        <archive>
-                            <manifestFile>${tiles.manifestfile}</manifestFile>
-                            <manifest>
-                                <addDefaultSpecificationEntries>true</addDefaultSpecificationEntries>
-                                <addDefaultImplementationEntries>true</addDefaultImplementationEntries>
-                            </manifest>
-                        </archive>
-                    </configuration>
-                </plugin>
-                <plugin>
-                    <groupId>org.apache.felix</groupId>
-                    <artifactId>maven-bundle-plugin</artifactId>
-                    <version>2.3.7</version>
-                    <inherited>true</inherited>
-                </plugin>
-            </plugins>
-        </pluginManagement>
-        <plugins>
-            <plugin>
-                <groupId>org.apache.felix</groupId>
-                <artifactId>maven-bundle-plugin</artifactId>
-                <configuration>
-                    <excludeDependencies>true</excludeDependencies>
-                    <manifestLocation>target/osgi</manifestLocation>
-                    <instructions>
-                        <_nouses>true</_nouses>
-                        <Bundle-SymbolicName>${tiles.osgi.symbolicName}</Bundle-SymbolicName>
-                        <Export-Package>${tiles.osgi.export}</Export-Package>
-                        <Private-Package>${tiles.osgi.private}</Private-Package>
-                        <Import-Package>${tiles.osgi.import}</Import-Package>
-                        <DynamicImport-Package>${tiles.osgi.dynamicImport}</DynamicImport-Package>
-                        <Bundle-DocURL>${project.url}</Bundle-DocURL>
-                        <Specification-Title>${project.name}</Specification-Title>
-                        <Specification-Version>${project.version}</Specification-Version>
-                        <Specification-Vendor>${project.organization.name}</Specification-Vendor>
-                        <Implementation-Title>${project.name}</Implementation-Title>
-                        <Implementation-Version>${project.version}</Implementation-Version>
-                        <Implementation-Vendor>${project.organization.name}</Implementation-Vendor>
-                        <Implementation-Vendor-Id>org.apache</Implementation-Vendor-Id>
-                    </instructions>
-                </configuration>
-                <executions>
-                    <execution>
-                        <id>bundle-manifest</id>
-                        <phase>process-classes</phase>
-                        <goals>
-                            <goal>manifest</goal>
-                        </goals>
-                    </execution>
-                </executions>
-            </plugin>
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-release-plugin</artifactId>
-                <configuration>
-                    <releaseProfiles>apache-release</releaseProfiles><!-- xxx tiles still uses "release" instead of "apache-release" -->
-                    <goals>deploy site-deploy</goals>
-                </configuration>
-            </plugin>
-        </plugins>
-
-        <defaultGoal>install</defaultGoal>
-    </build>
-
-    <properties>
-        <tiles.osgi.symbolicName>org.apache.${project.artifactId}</tiles.osgi.symbolicName>
-        <tiles.osgi.export>org.apache.tiles.*;version=${project.version}</tiles.osgi.export>
-        <tiles.osgi.import>*</tiles.osgi.import>
-        <tiles.osgi.dynamicImport />
-        <tiles.osgi.private />
-        <tiles.manifestfile>target/osgi/MANIFEST.MF</tiles.manifestfile>
-        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
-    </properties>
-
-    <dependencyManagement>
-        <dependencies>
-            <dependency>
-                <groupId>org.apache.tiles</groupId>
-                <artifactId>tiles-request-api</artifactId>
-                <version>${project.version}</version>
-            </dependency>
-            <dependency>
-                <groupId>org.apache.tiles</groupId>
-                <artifactId>tiles-request-servlet</artifactId>
-                <version>${project.version}</version>
-            </dependency>
-            <dependency>
-                <groupId>org.apache.tiles</groupId>
-                <artifactId>tiles-request-portlet</artifactId>
-                <version>${project.version}</version>
-            </dependency>
-            <dependency>
-                <groupId>org.apache.tiles</groupId>
-                <artifactId>tiles-autotag-core-runtime</artifactId>
-                <version>${project.version}</version>
-                <optional>true</optional>
-            </dependency>
-            <dependency>
-                <groupId>org.slf4j</groupId>
-                <artifactId>slf4j-jdk14</artifactId>
-                <version>1.5.8</version>
-            </dependency>
-            <dependency>
-                <groupId>junit</groupId>
-                <artifactId>junit</artifactId>
-                <version>4.7</version>
-                <scope>test</scope>
-            </dependency>
-            <dependency>
-                <groupId>org.easymock</groupId>
-                <artifactId>easymock</artifactId>
-                <version>3.0</version>
-                <scope>test</scope>
-            </dependency>
-            <dependency>
-                <groupId>org.easymock</groupId>
-                <artifactId>easymockclassextension</artifactId>
-                <version>3.0</version>
-                <scope>test</scope>
-            </dependency>
-            <dependency>
-                    <groupId>javax.servlet</groupId>
-                    <artifactId>servlet-api</artifactId>
-                    <version>2.5</version>
-                    <scope>provided</scope>
-            </dependency>
-            <dependency>
-                <groupId>javax.portlet</groupId>
-                <artifactId>portlet-api</artifactId>
-                <version>2.0</version>
-                <scope>provided</scope>
-            </dependency>
-            <dependency>
-                    <groupId>org.apache.shale</groupId>
-                    <artifactId>shale-test</artifactId>
-                    <version>1.0.5</version>
-                    <scope>test</scope>
-            </dependency>
-            <dependency>
-                <groupId>org.slf4j</groupId>
-                <artifactId>jcl-over-slf4j</artifactId>
-                <version>1.5.8</version>
-            </dependency>
-
-            <dependency>
-                <groupId>org.springframework</groupId>
-                <artifactId>spring-web</artifactId>
-                <version>2.5.6</version>
-                <exclusions>
-                    <exclusion>
-                        <groupId>commons-logging</groupId>
-                        <artifactId>commons-logging</artifactId>
-                    </exclusion>
-                </exclusions>
-            </dependency>
-            <dependency>
-                <groupId>org.springframework</groupId>
-                <artifactId>spring-webmvc-portlet</artifactId>
-                <version>2.5.6</version>
-                <exclusions>
-                    <exclusion>
-                        <groupId>org.springframework</groupId>
-                        <artifactId>spring-webmvc</artifactId>
-                    </exclusion>
-                    <exclusion>
-                        <groupId>commons-logging</groupId>
-                        <artifactId>commons-logging</artifactId>
-                    </exclusion>
-                </exclusions>
-            </dependency>
-            <dependency>
-                <groupId>javax.servlet.jsp</groupId>
-                <artifactId>jsp-api</artifactId>
-                <version>2.1</version>
-                <scope>provided</scope>
-            </dependency>
-            <dependency>
-                <groupId>org.apache.velocity</groupId>
-                <artifactId>velocity-tools</artifactId>
-                <version>2.0</version>
-                <exclusions>
-                    <exclusion>
-                        <artifactId>struts-taglib</artifactId>
-                        <groupId>org.apache.struts</groupId>
-                    </exclusion>
-                    <exclusion>
-                        <artifactId>struts-tiles</artifactId>
-                        <groupId>org.apache.struts</groupId>
-                    </exclusion>
-                    <exclusion>
-                        <artifactId>struts-core</artifactId>
-                        <groupId>org.apache.struts</groupId>
-                    </exclusion>
-                    <exclusion>
-                        <groupId>commons-logging</groupId>
-                        <artifactId>commons-logging</artifactId>
-                    </exclusion>
-                    <exclusion>
-                        <artifactId>sslext</artifactId>
-                        <groupId>sslext</groupId>
-                    </exclusion>
-                    <exclusion>
-                        <artifactId>commons-chain</artifactId>
-                        <groupId>commons-chain</groupId>
-                    </exclusion>
-                    <exclusion>
-                        <artifactId>commons-validator</artifactId>
-                        <groupId>commons-validator</groupId>
-                    </exclusion>
-                    <exclusion>
-                        <artifactId>commons-digester</artifactId>
-                        <groupId>commons-digester</groupId>
-                    </exclusion>
-                    <exclusion>
-                        <artifactId>commons-beanutils</artifactId>
-                        <groupId>commons-beanutils</groupId>
-                    </exclusion>
-                    <exclusion>
-                        <artifactId>dom4j</artifactId>
-                        <groupId>dom4j</groupId>
-                    </exclusion>
-                </exclusions>
-            </dependency>
-            <dependency>
-                <groupId>org.freemarker</groupId>
-                <artifactId>freemarker</artifactId>
-                <version>2.3.15</version>
-            </dependency>
-            <dependency>
-                <groupId>com.github.spullara.mustache.java</groupId>
-                <artifactId>core</artifactId>
-                <version>0.6.2</version>
-            </dependency>
-            <dependency>
-                <groupId>com.github.spullara.mustache.java</groupId>
-                <artifactId>builder</artifactId>
-                <version>0.6.2</version>
-            </dependency>
-        </dependencies>
-    </dependencyManagement>
-    <profiles>
-        <profile>
-            <id>apache-release</id>
-            <build>
-                <plugins>
-                    <plugin>
-                        <artifactId>maven-install-plugin</artifactId>
-                        <configuration>
-                            <createChecksum>true</createChecksum>
-                        </configuration>
-                    </plugin>
-                    <plugin>
-                        <groupId>org.codehaus.mojo</groupId>
-                        <artifactId>rat-maven-plugin</artifactId>
-                        <version>1.0-alpha-3</version>
-                        <executions>
-                            <execution>
-                                <phase>verify</phase>
-                                <goals>
-                                    <goal>check</goal>
-                                </goals>
-                                <configuration>
-                                    <addDefaultLicenseMatchers>false</addDefaultLicenseMatchers>
-                                    <licenseMatchers>
-                                        <classNames>
-                                            <className>rat.analysis.license.ApacheSoftwareLicense20</className>
-                                        </classNames>
-                                    </licenseMatchers>
-                                    <includes>
-                                        <include>pom.xml</include>
-                                        <include>src/**</include>
-                                    </includes>
-                                    <excludes>
-                                        <exclude>**/*LICENSE.txt</exclude>
-                                        <exclude>**/*MANIFEST.MF</exclude>
-                                    </excludes>
-                                </configuration>
-                            </execution>
-                        </executions>
-                    </plugin>
-                </plugins>
-            </build>
-        </profile>
-        <profile>
-            <id>linkcheck</id>
-            <reporting>
-                <plugins>
-                    <plugin>
-                        <artifactId>maven-linkcheck-plugin</artifactId>
-                        <version>1.1</version>
-                        <configuration>
-                            <excludedLinks>
-                                <excludedLink>**/index.html</excludedLink>
-                                <excludedLink>**/logo.png</excludedLink>
-                            </excludedLinks>
-                        </configuration>
-                    </plugin>
-                </plugins>
-            </reporting>
-
-        </profile>
-    </profiles>
-
-</project>
diff --git a/tiles-request/src/site/apt/dev/release.apt b/tiles-request/src/site/apt/dev/release.apt
deleted file mode 100644
index ab9bd52..0000000
--- a/tiles-request/src/site/apt/dev/release.apt
+++ /dev/null
@@ -1,351 +0,0 @@
-~~ $Id$
-~~
-~~ Licensed to the Apache Software Foundation (ASF) under one
-~~ or more contributor license agreements.  See the NOTICE file
-~~ distributed with this work for additional information
-~~ regarding copyright ownership.  The ASF licenses this file
-~~ to you under the Apache License, Version 2.0 (the
-~~ "License"); you may not use this file except in compliance
-~~ with the License.  You may obtain a copy of the License at
-~~
-~~ http://www.apache.org/licenses/LICENSE-2.0
-~~
-~~ Unless required by applicable law or agreed to in writing,
-~~ software distributed under the License is distributed on an
-~~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-~~ KIND, either express or implied.  See the License for the
-~~ specific language governing permissions and limitations
-~~ under the License.
-~~
-         -----------
-         Release Process
-         -----------
-
-Tiles Release Process
-
-  Here you will find the steps to create releases for Tiles.
-
-Prerequisites
-
-  To create a release you have to install:
-
-  * {{{http://java.sun.com/javase/6}Java 6.0}}. If you are using a newer
-  version of Java, it is suggested to <<change JAVA_HOME environment variable>>
-  when calling Maven, so it points to an instance of Java 6.0;
-
-  * {{{http://maven.apache.org/}Maven 2.2 or 3}};
-
-  * {{{http://www.gnupg.org/}GnuPG}};
-
-  * {{{http://www.openssh.com/}OpenSSH}};
-
-  * {{{http://www.graphviz.org/}GraphViz}};
-
-One-time operations
-
-  These operations need to be performed only one time.
-
-* Create and publish your GPG key
-
-  To create a GPG key, follow the
-  {{{http://www.apache.org/dev/openpgp.html}guidelines}}.
-  Include it in:
-
--------------------------------------
-https://svn.apache.org/repos/asf/tiles/site/KEYS
--------------------------------------
-
-  Publish your GPG key in a PGP key server, such as
-  {{{http://pgp.mit.edu/} MIT Keyserver}}.
-
-* Create and upload yout SSH key
-
-  * Generate your SSH key (in this case we will use DSA encryption):
-
----------------------------------
-ssh-keygen -t rsa
----------------------------------
-
-  * Copy your public key to the server:
-
---------------------------------------
-scp ~/.ssh/id_rsa.pub user@people.apache.org:.ssh/authorized_keys
---------------------------------------
-
-  * Try to login:
-
----------------------------------
-ssh user@people.apache.org
----------------------------------
-
-  If it does not ask you a password, everything is ok.
-
-* Modify <<<settings.xml>>>
-
-  Your <<<settings.xml>>> must be modified to allow deployment.
-
-  This is the minimal configuration, obviously if you already have a <<<settings.xml>>> file,
-  you must edit it:
-
----------------------------
-<settings xmlns="http://maven.apache.org/POM/4.0.0"
-      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-      xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
-                      http://maven.apache.org/xsd/settings-1.0.0.xsd">
-    <servers>
-        <server>
-            <id>apache-site</id>
-            <username>YOUR_APACHE_USERNAME</username>
-            <filePermissions>664</filePermissions>
-            <directoryPermissions>775</directoryPermissions>
-        </server>
-        <server>
-            <id>apache.snapshots.https</id>
-            <username>YOUR_APACHE_USERNAME</username>
-            <password>YOUR_APACHE_PASSWORD</password>
-        </server>
-        <server>
-            <id>apache.releases.https</id>
-            <username>YOUR_APACHE_USERNAME</username>
-            <password>YOUR_APACHE_PASSWORD</password>
-        </server>
-    </servers>
-    <profiles>
-        <profile>
-            <id>release</id>
-            <properties>
-                <gpg.passphrase>YOUR_SECRET_PHRASE</gpg.passphrase>
-            </properties>
-            </profile>
-        </profile>
-    </profiles>
-</settings>
----------------------------
-
-Repeatable operations
-
-  These steps must be performed <<for each>> release.
-
-* Prepare the release tag
-
-  To prepare the release Subversion tag, check out the branch/trunk from where
-  you are preparing the release and type:
-
------------------------------------
-mvn release:prepare -Dusername=YOUR_SVN_USER -Dpassword=YOUR_SVN_PASSWORD
------------------------------------
-
-  The plugin interactively will ask you the version to release, the Subversion
-  tag to use and the next snapshot version. It is reccomended to use the tag:
-  <<tiles-X.X.X>>.
-
-* Perform the Release
-
-  To perform the release, i.e. creating and deploying Maven artifacts, use:
-
------------------------------------
-mvn release:perform
------------------------------------
-
-* Close the staging repository
-
-  Login to {{{https://repository.apache.org} Nexus repository}} using your Apache LDAP credentials.
-  Click on "Staging". Then click on "tiles" in the list of repositories.
-  In the panel below you should see an open repository that is linked to your username and ip.
-  Right click on this repository and select "Close".
-  This will close the repository from future deployments and make it available for others to view.
-  If you are staging multiple releases together, skip this step until you have staged everything.
-  Enter the name and version of the artifact being released in the "Description" field and then click "Close".
-  This will make it easier to identify it later.
-
-* Verify the staged artifacts
-
-  If you click on your repository, a tree view will appear below.
-  You can then browse the contents to ensure the artifacts are as you expect them.
-  Pay particular attention to the existence of *.asc (signature) files.
-  If the you don't like the content of the repository, right click your repository and choose "Drop".
-  You can then rollback your release and repeat the process.
-
-  Note the repository URL, you will need this in your vote email.
-
-* Digest and upload assemblies
-
-  * Go into the release assembly target directory:
-
------------------------------------
-cd target/checkout/assembly/target/assembly/out
------------------------------------
-
-  * Create MD5 and SHA1 files for each files (including ASC files). You can do
-  it with this simple shell script:
-
------------------------------------
-#!/bin/sh
-
-for fileitem in *
-do
-  openssl md5 < $fileitem > $fileitem.md5
-  openssl sha1 < $fileitem > $fileitem.sha1
-done
------------------------------------
-
-  * Upload everything to the build site:
-
------------------------------------
-scp * user@people.apache.org:/www/people.apache.org/builds/tiles/${version}
------------------------------------
-
-* Release the JIRA version
-
-  * In JIRA go to the version that you want to release and release it.
-
-  * Create a new version, if it has not been done before.
-
-  * Create the release notes and <<write down the link>> that it uses.
-
-* Send announcement for the test build
-
-  In <<developers mailing list>> send an announcement for the test build:
-
------------------------------------
-Subject: [ANNOUNCE] Tiles ${version} test build available
-
-The test build of Tiles ${version} is available.
-
-
-No determination as to the quality ('alpha,' 'beta,' or 'GA') of Tiles
-${version} has been made, and at this time it is simply a "test build". We
-welcome any comments you may have, and will take all feedback into
-account if a quality vote is called for this build.
-
-Release notes:
-
-* ${jira.release.notes}
-
-Distribution:
-
- * http://people.apache.org/builds/tiles/${version}/
-
-Maven 2 staging repository:
-
- * https://repository.apache.org/content/repositories/tiles-[YOUR REPOSITORY ID]/
-
-A vote regarding the quality of this test build will be initiated
-within the next couple of days.
------------------------------------
-
-* Call for a vote
-
-  A few days after the test build announcement, call for a vote in
-  <<developers mailing list>>.
-
------------------------------------
-Subject: [VOTE] ${version} Release Quality
-
-The Tiles ${version} test build has been available since ${testBuildDate}.
-
-Release notes:
-
-* ${jira.release.notes}
-
-Distribution:
-
- * http://people.apache.org/builds/tiles/${version}/
-
-Maven 2 staging repository:
-
- * https://repository.apache.org/content/repositories/tiles-[YOUR REPOSITORY ID]/
-
-If you have had a chance to review the test build, please respond with
-a vote on its quality:
-
- [ ] Leave at test build
- [ ] Alpha
- [ ] Beta
- [ ] General Availability (GA)
-
-
-Everyone who has tested the build is invited to vote. Votes by PMC
-members are considered binding. A vote passes if there are at least
-three binding +1s and more +1s than -1s.
------------------------------------
-
-* Post-vote operations
-
-  After a vote is finished, and it has been decided that is
-  <<at least of alpha quality>>, there is the need of a post-vote process.
-
-** Promote staged artifacts
-
-  Once the release is deemed fit for public consumption it can be transfered to a production repository where it will be available to all users.
-
-  Login to {{{https://repository.apache.org}Nexus repository}} again.
-  Click on "Staging" and then on the repository with id "tiles-staging".
-  Find your closed staging repository, right click on it and choose "Promote".
-  Select the "Releases" repository and click "Promote".
-
-  Next click on "Repositories", select the "Releases" repository
-  and validate that your artifacts exist as you expect them.
-
-** Move assemblies
-
-  * Move assemblies to the Apache distribution mirrors:
-
--------------------------------------------
-ssh user@people.apache.org
-
-cd /www/people.apache.org/builds/tiles/${version}
-mkdir /www/www.apache.org/dist/tiles/v${version}/
-cp * /www/www.apache.org/dist/tiles/v${version}/
--------------------------------------------
-
-** Update the site
-
-  * Wait 24 hours to let the mirror sync to the release and then update the
-  site. In particular you have to update the index and the download pages:
-
-------------------------------------------------
-https://svn.apache.org/repos/asf/tiles/site/src/site/xdoc/index.xml
-https://svn.apache.org/repos/asf/tiles/site/src/site/apt/download.apt
-------------------------------------------------
-
-  Build and publish the site:
-
---------------------------------------
-mvn site
-mvn site:deploy
---------------------------------------
-
-** Send announcement
-
-  Finally, send an an announcement to the <<users>> and <<developers mailing
-  list>>:
-
---------------------------------------
-Subject: [ANNOUNCE] Tiles ${version} ${quality} released
-
-The Apache Tiles team is pleased to announce the release of Tiles ${version}
-${quality}.
-
-Tiles ${version} is available in a binary and a source distribution.
-
-http://tiles.apache.org/download.html
-
-It is also available in the central Maven repository under Group ID
-"org.apache.tiles".
-
-The 2.0.x series of the Apache Tiles framework has a minimum
-requirement of the following specification versions:
-
-* Java Servlet 2.4 and JavaServer Pages (JSP) 2.0
-* Java Standard Edition (Java SE) 1.5
-
-The release notes are available online at:
-
-* ${jira.release.notes}
-
-Please feel free to test the distribution and post your comments to
-the user list, or, if appropriate, file a ticket with JIRA.
---------------------------------------
-
-  <<You have finished!>>
diff --git a/tiles-request/src/site/site.xml b/tiles-request/src/site/site.xml
deleted file mode 100644
index 15e8926..0000000
--- a/tiles-request/src/site/site.xml
+++ /dev/null
@@ -1,73 +0,0 @@
-<?xml version="1.0" encoding="ISO-8859-1"?>
-<!--
-/*
- * $Id: site.xml 1081442 2011-03-14 16:21:08Z apetrelli $
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
--->
-<project name="Apache - Request Microframework">
-    <bannerLeft>
-        <name>Apache Software Foundation</name>
-        <src>http://www.apache.org/images/asf-logo.gif</src>
-        <href>http://www.apache.org</href>
-    </bannerLeft>
-    <bannerRight>
-        <name>Apache Tiles&#8482;</name>
-        <src>http://tiles.apache.org/images/logo.png</src>
-        <href>http://tiles.apache.org</href>
-    </bannerRight>
-    <body>
-
-        <links>
-            <item name="Apache" href="http://www.apache.org" />
-            <item name="Tiles" href="http://tiles.apache.org" />
-        </links>
-
-
-        <menu name="Apache Tiles&#8482;">
-            <item
-                   name="Tiles Home"
-                   href="../index.html"/>
-            <item
-                   name="Tiles Request Microframework"
-                   href="./index.html"/>
-        </menu>
-        <menu name="Reference">
-            <item
-                    name="Javadoc"
-                    href="apidocs/index.html"/>
-        </menu>
-
-        <menu name="Developers">
-            <item
-                    name="Building"
-                    href="/dev/building.html"/>
-            <item
-                    name="Snapshots"
-                    href="/dev/snapshots.html"/>
-            <item
-                    name="Release Process"
-                    href="/dev/release.html"/>
-        </menu>
-
-        <menu ref="modules" />
-        <menu ref="reports" />
-
-    </body>
-</project>
diff --git a/tiles-request/src/site/xdoc/dev/building.xml b/tiles-request/src/site/xdoc/dev/building.xml
deleted file mode 100644
index 92dceaa..0000000
--- a/tiles-request/src/site/xdoc/dev/building.xml
+++ /dev/null
@@ -1,90 +0,0 @@
-<?xml version="1.0"?>
-<!--
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
--->
-<document>
-
-    <properties>
-        <title>Apache Request Microframework</title>
-    </properties>
-
-    <body>
-        <section name="Building the Request Microframework">
-          <subsection name="Prerequisites">
-            <p>For all the next instructions, we assume that you downloaded and
-            installed <a href="http://maven.apache.org/">Maven</a>.</p>
-            <p>To download packages from the source repository, you need to
-            download and install <a href="http://subversion.tigris.org/">
-            Subversion</a>.</p>
-            <p>If you want to build something including JavaDocs (assemblies,
-            sites and JavaDoc report itself) you need to install
-            <a href="http://www.graphviz.org/">GraphViz</a>, otherwise you will
-            notice missing pictures inside JavaDocs pages.</p>
-          </subsection>
-          <subsection name="Building main packages">
-            <p>To build the Request Microframework from source you need to:</p>
-            <ul>
-            <li><p><a href="../../download.html">download</a> the source
-            distribution, or checkout the latest version:</p>
-            <p><source>svn co http://svn.apache.org/repos/asf/tiles/framework/trunk/tiles-request</source></p></li>
-            <li><p>go into the source directory and type:</p>
-            <p><source>mvn package</source></p></li>
-            </ul>
-            <p>You will find the generated JARs under:</p>
-            <ul>
-            <li>{tiles-dir}/tiles-request-api/target/tiles-request-api-${version}.jar</li>
-            <li>{tiles-dir}/tiles-request-{implementation}/target/tiles-request-{implementation}-${version}.jar</li>
-            </ul>
-          </subsection>
-        </section>
-        <section name="Building the websites">
-          <p>There are four Tiles websites: the main website and the projects
-          websites (tiles-request, tiles-autotag and framework).</p>
-          <subsection name="Building the main website">
-            <p>To build the main website:</p>
-            <ul>
-            <li><p>checkout the site from the source repository:</p>
-            <p><source>svn co http://svn.apache.org/repos/asf/tiles/site/</source></p></li>
-            <li><p>go into the site directory and type:</p>
-            <p><source>mvn site</source></p></li>
-            </ul>
-            <p>You will find the generated distribution under
-            <code>{tiles-site-dir}/target/site</code>.</p>
-          </subsection>
-          <subsection name="Building the tiles-request website">
-            <p>To build a project's website:</p>
-            <ul>
-            <li><p><a href="../download.html">download</a> the source
-            distribution, or checkout the latest version:</p>
-            <p><source>svn co http://svn.apache.org/repos/asf/tiles/framework/trunk/tiles-request</source></p></li>
-            <li><p>go into the source directory and type:</p>
-            <p><source>mvn site site:stage</source></p></li>
-            </ul>
-            <p>You will find the generated website under:</p>
-            <ul>
-            <li>{tiles-request-dir}/target/staging</li>
-            </ul>
-          </subsection>
-        </section>
-    </body>
-
-</document>
diff --git a/tiles-request/src/site/xdoc/dev/snapshots.xml b/tiles-request/src/site/xdoc/dev/snapshots.xml
deleted file mode 100644
index adfed4f..0000000
--- a/tiles-request/src/site/xdoc/dev/snapshots.xml
+++ /dev/null
@@ -1,64 +0,0 @@
-<?xml version="1.0"?>
-<!--
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
--->
-<document>
-
-    <properties>
-        <title>Apache Tiles</title>
-    </properties>
-
-    <body>
-        <section name="Apache Tiles&#8482;">
-        <subsection name="Snapshots">
-
-        <p>Looking for snapshot builds of the latest version of Tiles?
-           Snapshots are occasionally published to Apache's Maven snapshot
-           repository, which can be accessed with the following configuration:</p>
-
-        <source>
-        <![CDATA[
-          <repository>
-              <id>apache.snapshots</id>
-              <name>Apache Maven Snapshot Repository</name>
-              <url>http://repository.apache.org/snapshots</url>
-          </repository>
-        ]]>
-        </source>
-
-        <p>After configuring the repository, declare a dependency on
-        Tiles Request:</p>
-
-        <source><![CDATA[
-          <dependency>
-              <groupId>org.apache.tiles</groupId>
-              <artifactId>tiles-request-api</artifactId>
-              <version>1.0-SNAPSHOT</version>
-          </dependency>
-        ]]>
-        </source>
-
-    </subsection>
-</section>
-</body>
-
-</document>
diff --git a/tiles-request/src/site/xdoc/index.xml b/tiles-request/src/site/xdoc/index.xml
deleted file mode 100644
index 178737c..0000000
--- a/tiles-request/src/site/xdoc/index.xml
+++ /dev/null
@@ -1,52 +0,0 @@
-<?xml version="1.0"?>
-<!--
-/*
- * $Id: index.xml 1162124 2011-08-26 14:16:13Z mck $
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
--->
-<document>
-
-    <properties>
-        <title>Home</title>
-    </properties>
-
-    <body>
-
-        <section name="Apache Request microframework project">
-
-            <p>Tiles has served the purpose of rendering views for the Model-View-Controller pattern in JavaEE for years.</p>
-            <p>Tiles-3 introduces a complete standalone and super simple abstraction around request/response objects.
-            <p>We've all seen that the various technologies like Servlet, Portlet, JSP, Velocity, FreeMarker seem to have a different abstraction of a common pattern.
-            They all have a concept of:</p>
-            <ul>
-                <li>request: the client request, or some sort of it;</li>
-                <li>response: the response to send to the client, or to the caller, with a writer/output stream to write into;</li>
-                <li>attributes: usually maps (or map-like structures) with string keys and object values;</li>
-                <li>scope: places where different attribute maps are stored (request, session, etc.)</li>
-            </ul>
-            <p>Now all of these scopes are concentrated into "Request" interfaces, that acts as a single point of reference for the developer.
-            In theory, everything you need for rendering a view can be obtained by an object that implements Request, and Request implementations can be built that do not rely on an application server environment.</p>
-            <p> </p>
-            <p>Currently there are bindings for Servlet, Portlet, JSP, Mustache, Velocity and FreeMarker.</p></p>
-
-        </section>
-    </body>
-
-</document>
diff --git a/tiles-request/tiles-request-api/pom.xml b/tiles-request/tiles-request-api/pom.xml
deleted file mode 100644
index 8da0917..0000000
--- a/tiles-request/tiles-request-api/pom.xml
+++ /dev/null
@@ -1,52 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<!--
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements.  See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership.  The ASF licenses this file
-to you under the Apache License, Version 2.0 (the
-"License"); you may not use this file except in compliance
-with the License.  You may obtain a copy of the License at
-
-  http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing,
-software distributed under the License is distributed on an
-"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-KIND, either express or implied.  See the License for the
-specific language governing permissions and limitations
-under the License.
--->
-
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
-    <modelVersion>4.0.0</modelVersion>
-    <parent>
-        <artifactId>tiles-request</artifactId>
-        <groupId>org.apache.tiles</groupId>
-        <version>1.0-SNAPSHOT</version>
-    </parent>
-    <groupId>org.apache.tiles</groupId>
-    <artifactId>tiles-request-api</artifactId>
-    <version>1.0-SNAPSHOT</version>
-    <name>Tiles request - API</name>
-    <description>API for the Tiles Request framework.</description>
-    <dependencies>
-        <dependency>
-            <groupId>org.slf4j</groupId>
-            <artifactId>slf4j-jdk14</artifactId>
-            <optional>true</optional>
-        </dependency>
-        <dependency>
-            <groupId>junit</groupId>
-            <artifactId>junit</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.easymock</groupId>
-            <artifactId>easymockclassextension</artifactId>
-            <scope>test</scope>
-        </dependency>
-    </dependencies>
-</project>
diff --git a/tiles-request/tiles-request-api/src/main/java/org/apache/tiles/request/AbstractClientRequest.java b/tiles-request/tiles-request-api/src/main/java/org/apache/tiles/request/AbstractClientRequest.java
deleted file mode 100644
index ccec97b..0000000
--- a/tiles-request/tiles-request-api/src/main/java/org/apache/tiles/request/AbstractClientRequest.java
+++ /dev/null
@@ -1,97 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.request;
-
-import java.io.IOException;
-import java.util.List;
-import java.util.Map;
-
-
-/**
- * Base class for "client" requests, i.e. requests that come unchanged by the
- * container, such as ServletRequest and PortletRequest.
- *
- * @version $Rev$ $Date$
- */
-public abstract class AbstractClientRequest extends AbstractRequest {
-
-    /**
-     * The application context.
-     */
-    private ApplicationContext applicationContext;
-
-    /**
-     * Constructor.
-     *
-     * @param applicationContext The application context.
-     */
-    public AbstractClientRequest(ApplicationContext applicationContext) {
-        this.applicationContext = applicationContext;
-    }
-
-
-    @Override
-    public void dispatch(String path) throws IOException {
-        if (isForceInclude()) {
-            doInclude(path);
-        } else {
-            setForceInclude(true);
-            doForward(path);
-        }
-    }
-
-    @Override
-    public void include(String path) throws IOException {
-        setForceInclude(true);
-        doInclude(path);
-    }
-
-    @Override
-    public ApplicationContext getApplicationContext() {
-        return applicationContext;
-    }
-
-    /**
-     * Returns the application scope.
-     *
-     * @return The application scope.
-     */
-    public Map<String, Object> getApplicationScope() {
-        return applicationContext.getApplicationScope();
-    }
-
-    /**
-     * Forwards to a path.
-     *
-     * @param path The path to forward to.
-     * @throws IOException If something goes wrong when forwarding.
-     */
-    protected abstract void doForward(String path) throws IOException;
-
-    /**
-     * Includes the result of a path.
-     *
-     * @param path The path to forward to.
-     * @throws IOException If something goes wrong when forwarding.
-     */
-    protected abstract void doInclude(String path) throws IOException;
-
-}
diff --git a/tiles-request/tiles-request-api/src/main/java/org/apache/tiles/request/AbstractRequest.java b/tiles-request/tiles-request-api/src/main/java/org/apache/tiles/request/AbstractRequest.java
deleted file mode 100644
index a850f94..0000000
--- a/tiles-request/tiles-request-api/src/main/java/org/apache/tiles/request/AbstractRequest.java
+++ /dev/null
@@ -1,61 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.request;
-
-/**
- * Base request.
- *
- * @version $Rev$ $Date: 2010-11-14 21:32:50 +0100 (dom, 14 nov 2010)$
- */
-public abstract class AbstractRequest implements DispatchRequest {
-
-    /**
-     * Name of the attribute used to store the force-include option.
-     *
-     */
-    public static final String FORCE_INCLUDE_ATTRIBUTE_NAME = AbstractRequest.class
-            .getName() + ".FORCE_INCLUDE";
-
-    /**
-     * Sets the flag to force inclusion at next dispatch.
-     *
-     * @param forceInclude <code>true</code> means that, at the next dispatch, response
-     * will be included and never forwarded.
-     */
-    protected void setForceInclude(boolean forceInclude) {
-        getContext("request").put(FORCE_INCLUDE_ATTRIBUTE_NAME, forceInclude);
-    }
-
-    /**
-     * Checks if, when dispatching to a resource, the result must be included
-     * and not forwarded to.
-     *
-     * @return <code>true</code> if inclusion is forced.
-     */
-    protected boolean isForceInclude() {
-        Boolean forceInclude = (Boolean) getContext("request").get(
-                FORCE_INCLUDE_ATTRIBUTE_NAME);
-        if (forceInclude != null) {
-            return forceInclude;
-        }
-        return false;
-    }
-}
diff --git a/tiles-request/tiles-request-api/src/main/java/org/apache/tiles/request/AbstractViewRequest.java b/tiles-request/tiles-request-api/src/main/java/org/apache/tiles/request/AbstractViewRequest.java
deleted file mode 100644
index b3282d9..0000000
--- a/tiles-request/tiles-request-api/src/main/java/org/apache/tiles/request/AbstractViewRequest.java
+++ /dev/null
@@ -1,65 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.request;
-
-import java.io.IOException;
-
-
-/**
- * Base class for "view" requests, i.e. requests created into view technologies,
- * such as JSP, Velocity and Freemarker. In particular, all calls to
- * {@link #dispatch(String)} will cause an inclusion and never a forward.
- *
- * @version $Rev$ $Date$
- */
-public class AbstractViewRequest extends DispatchRequestWrapper {
-
-    /**
-     * Constructor.
-     *
-     * @param request The base request.
-     */
-    public AbstractViewRequest(DispatchRequest request) {
-        super(request);
-    }
-
-    @Override
-    public void dispatch(String path) throws IOException {
-        setForceInclude(true);
-        doInclude(path);
-    }
-
-    @Override
-    public void include(String path) throws IOException {
-        setForceInclude(true);
-        doInclude(path);
-    }
-
-    /**
-     * Includes the result. By default, uses the wrapped request for the inclusion.
-     *
-     * @param path The path whose result will be included.
-     * @throws IOException If something goes wrong.
-     */
-    protected void doInclude(String path) throws IOException {
-        getWrappedRequest().include(path);
-    }
-}
diff --git a/tiles-request/tiles-request-api/src/main/java/org/apache/tiles/request/ApplicationAccess.java b/tiles-request/tiles-request-api/src/main/java/org/apache/tiles/request/ApplicationAccess.java
deleted file mode 100644
index 260e791..0000000
--- a/tiles-request/tiles-request-api/src/main/java/org/apache/tiles/request/ApplicationAccess.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.request;
-
-
-/**
- * Entry point to get information about the application.
- *
- * @version $Rev: 1064782 $ $Date: 2011-01-28 18:08:52 +0100 (Fri, 28 Jan 2011) $
- */
-public final class ApplicationAccess {
-
-    /**
-     * The attribute name that will be used to store the application context itself.
-     */
-    public static final String APPLICATION_CONTEXT_ATTRIBUTE =
-        ApplicationContext.class.getName() + ".ATTRIBUTE";
-
-    /**
-     * Constructor.
-     */
-    private ApplicationAccess() {
-    }
-
-    /**
-     * Registers an application context. It will be registered into itself as an
-     * attribute, using the {@link #APPLICATION_CONTEXT_ATTRIBUTE} name.
-     *
-     * @param applicationContext The application context to register.
-     */
-    public static void register(ApplicationContext applicationContext) {
-        applicationContext.getApplicationScope().put(
-                APPLICATION_CONTEXT_ATTRIBUTE, applicationContext);
-    }
-
-}
diff --git a/tiles-request/tiles-request-api/src/main/java/org/apache/tiles/request/ApplicationContext.java b/tiles-request/tiles-request-api/src/main/java/org/apache/tiles/request/ApplicationContext.java
deleted file mode 100644
index 24c236f..0000000
--- a/tiles-request/tiles-request-api/src/main/java/org/apache/tiles/request/ApplicationContext.java
+++ /dev/null
@@ -1,83 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.request;
-
-import java.util.Collection;
-import java.util.Locale;
-import java.util.Map;
-
-/**
- * Defines a set of methods which tiles use to communicate to
- * the tiles container and runtime environment.  There is only
- * one application context per container.
- *
- * @version $Rev$ $Date$
- */
-public interface ApplicationContext {
-
-    /**
-     * Returns the original, technology-dependent, context.
-     *
-     * @return The original application context.
-     */
-    Object getContext();
-
-    /**
-     * Returns a mutable Map that maps application scope attribute names to
-     * their values.
-     *
-     * @return Map of key value pairs.
-     */
-    Map<String, Object> getApplicationScope();
-
-    /**
-     * Return an immutable Map that maps context application initialization
-     * parameters to their values.
-     *
-     * @return initialization parameters
-     */
-    Map<String, String> getInitParams();
-
-    /**
-     * Return the application resource mapped to the specified path.
-     *
-     * @param localePath path to the desired resource, including the Locale suffix.
-     * @return the first located resource which matches the given path or null if no such resource exists.
-     */
-    ApplicationResource getResource(String localePath);
-
-    /**
-     * Return a localized version of an ApplicationResource.
-     *
-     * @param base the ApplicationResource.
-     * @param locale the desired Locale.
-     * @return the first located resource which matches the given path or null if no such resource exists.
-     */
-    ApplicationResource getResource(ApplicationResource base, Locale locale);
-
-    /**
-     * Return the application resources mapped to the specified path.
-     *
-     * @param path to the desired resource.
-     * @return all resources which match the given path.
-     */
-    Collection<ApplicationResource> getResources(String path);
-}
diff --git a/tiles-request/tiles-request-api/src/main/java/org/apache/tiles/request/ApplicationContextAware.java b/tiles-request/tiles-request-api/src/main/java/org/apache/tiles/request/ApplicationContextAware.java
deleted file mode 100644
index 1526ffd..0000000
--- a/tiles-request/tiles-request-api/src/main/java/org/apache/tiles/request/ApplicationContextAware.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.request;
-
-
-/**
- * It represents an object that can have a reference to the
- * {@link ApplicationContext}.
- *
- * @version $Rev: 893303 $ $Date: 2009-12-22 21:18:35 +0100 (Tue, 22 Dec 2009) $
- */
-public interface ApplicationContextAware {
-
-    /**
-     * Sets the Tiles application context.
-     *
-     * @param applicationContext The Tiles application context.
-     */
-    void setApplicationContext(ApplicationContext applicationContext);
-}
diff --git a/tiles-request/tiles-request-api/src/main/java/org/apache/tiles/request/ApplicationContextWrapper.java b/tiles-request/tiles-request-api/src/main/java/org/apache/tiles/request/ApplicationContextWrapper.java
deleted file mode 100644
index 3696f97..0000000
--- a/tiles-request/tiles-request-api/src/main/java/org/apache/tiles/request/ApplicationContextWrapper.java
+++ /dev/null
@@ -1,87 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.request;
-
-import java.util.Collection;
-import java.util.Locale;
-import java.util.Map;
-
-
-/**
- * Delegate for ease of customization.
- *
- * @version $Rev: 933750 $ $Date: 2010-04-13 21:16:06 +0200 (Tue, 13 Apr 2010) $
- */
-public class ApplicationContextWrapper implements ApplicationContext {
-
-    /**
-     * The original context.
-     */
-    private ApplicationContext context;
-
-    /**
-     * Constructor.
-     *
-     * @param context The original context.
-     */
-    public ApplicationContextWrapper(ApplicationContext context) {
-        this.context = context;
-    }
-
-    /**
-     * Returns the wrapped application context.
-     *
-     * @return The wrapped application context.
-     */
-    public ApplicationContext getWrappedApplicationContext() {
-        return context;
-    }
-
-    /** {@inheritDoc} */
-    public Map<String, Object> getApplicationScope() {
-        return context.getApplicationScope();
-    }
-
-    /** {@inheritDoc} */
-    public Object getContext() {
-        return context.getContext();
-    }
-
-    /** {@inheritDoc} */
-    public Map<String, String> getInitParams() {
-        return context.getInitParams();
-    }
-
-    /** {@inheritDoc} */
-    public ApplicationResource getResource(String localePath) {
-        return context.getResource(localePath);
-    }
-
-    /** {@inheritDoc} */
-    public ApplicationResource getResource(ApplicationResource base, Locale locale) {
-        return context.getResource(base, locale);
-    }
-
-    /** {@inheritDoc} */
-    public Collection<ApplicationResource> getResources(String path) {
-        return context.getResources(path);
-    }
-}
diff --git a/tiles-request/tiles-request-api/src/main/java/org/apache/tiles/request/ApplicationResource.java b/tiles-request/tiles-request-api/src/main/java/org/apache/tiles/request/ApplicationResource.java
deleted file mode 100644
index 6f5c05b..0000000
--- a/tiles-request/tiles-request-api/src/main/java/org/apache/tiles/request/ApplicationResource.java
+++ /dev/null
@@ -1,84 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.tiles.request;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.util.Locale;
-
-/**
- * A (localized) resource accessible through the ApplicationContext.
- * Typically this is a file inside the web application's war.
- * 
- * @version $Rev$ $Date$
- */
-public interface ApplicationResource {
-
-    /**
-     * Get the path name for this resource.
-     * You can access this ressource by passing the path to 
-     * {@link ApplicationContext#getResource(String) getResource}.
-     * 
-     * @return the path including localization.
-     */
-    String getLocalePath();
-
-    /**
-     * Get the path name for this resource. Multiple versions of 
-     * a resource can share the same path if the locale part is different.
-     * 
-     * @return the path excluding localization.
-     */
-    String getPath();
-
-    /**
-     * Get the Locale for this resource.
-     * 
-     * @return the Locale.
-     */
-    Locale getLocale();
-
-    /**
-     * Get the path name of another version of the resource.
-     * 
-     * @param locale the Locale for the new version.
-     * @return the path including localization.
-     */
-    String getLocalePath(Locale locale);
-
-    /**
-     * Get a java.io.InputStream to read the contents of this resource.
-     * 
-     * @return the InputStream.
-     * @throws IOException if the contents cannot be read.
-     */
-    InputStream getInputStream() throws IOException;
-
-    /**
-     * Get the last modification date for this resource.
-     * 
-     * @return the difference, measured in milliseconds, between the current 
-     * time and midnight, January 1, 1970 UTC.
-     * @throws IOException if the last modification date cannot be found.
-     */
-    long getLastModified() throws IOException;
-}
diff --git a/tiles-request/tiles-request-api/src/main/java/org/apache/tiles/request/DefaultRequestWrapper.java b/tiles-request/tiles-request-api/src/main/java/org/apache/tiles/request/DefaultRequestWrapper.java
deleted file mode 100644
index a1ff9f1..0000000
--- a/tiles-request/tiles-request-api/src/main/java/org/apache/tiles/request/DefaultRequestWrapper.java
+++ /dev/null
@@ -1,131 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.tiles.request;
-
-import java.io.IOException;
-import java.io.OutputStream;
-import java.io.PrintWriter;
-import java.io.Writer;
-import java.util.Collections;
-import java.util.List;
-import java.util.Locale;
-import java.util.Map;
-
-import org.apache.tiles.request.attribute.Addable;
-
-/**
- * Delegate for ease of customization.
- *
- * @version $Rev: 1215009 $ $Date: 2011-12-16 01:32:31 +0100 (Fri, 16 Dec 2011) $
- */
-public class DefaultRequestWrapper implements RequestWrapper {
-
-    /**
-     * The wrapper request context object.
-     */
-    private Request context;
-
-    /**
-     * Constructor.
-     *
-     * @param context
-     *            The request context to wrap.
-     */
-    public DefaultRequestWrapper(Request context) {
-        this.context = context;
-    }
-
-    /** {@inheritDoc} */
-    public Request getWrappedRequest() {
-        return context;
-    }
-
-    /** {@inheritDoc} */
-    public Map<String, String> getHeader() {
-        return context.getHeader();
-    }
-
-    /** {@inheritDoc} */
-    public Map<String, String[]> getHeaderValues() {
-        return context.getHeaderValues();
-    }
-
-    /** {@inheritDoc} */
-    public Addable<String> getResponseHeaders() {
-        return context.getResponseHeaders();
-    }
-
-    /** {@inheritDoc} */
-    public ApplicationContext getApplicationContext() {
-        return context.getApplicationContext();
-    }
-
-    /** {@inheritDoc} */
-    public OutputStream getOutputStream() throws IOException {
-        return context.getOutputStream();
-    }
-
-    /** {@inheritDoc} */
-    public Writer getWriter() throws IOException {
-        return context.getWriter();
-    }
-
-    /** {@inheritDoc} */
-    public PrintWriter getPrintWriter() throws IOException {
-        return context.getPrintWriter();
-    }
-
-    /** {@inheritDoc} */
-    public boolean isResponseCommitted() {
-        return context.isResponseCommitted();
-    }
-
-    /** {@inheritDoc} */
-    public Map<String, String> getParam() {
-        return context.getParam();
-    }
-
-    /** {@inheritDoc} */
-    public Map<String, String[]> getParamValues() {
-        return context.getParamValues();
-    }
-
-    /** {@inheritDoc} */
-    public Locale getRequestLocale() {
-        return context.getRequestLocale();
-    }
-
-    /** {@inheritDoc} */
-    public boolean isUserInRole(String role) {
-        return context.isUserInRole(role);
-    }
-
-    /** {@inheritDoc} */
-    public Map<String, Object> getContext(String scope) {
-        return context.getContext(scope);
-    }
-
-    /** {@inheritDoc} */
-    public List<String> getAvailableScopes() {
-        return context.getAvailableScopes();
-    }
-}
diff --git a/tiles-request/tiles-request-api/src/main/java/org/apache/tiles/request/DispatchRequest.java b/tiles-request/tiles-request-api/src/main/java/org/apache/tiles/request/DispatchRequest.java
deleted file mode 100644
index 26141c6..0000000
--- a/tiles-request/tiles-request-api/src/main/java/org/apache/tiles/request/DispatchRequest.java
+++ /dev/null
@@ -1,56 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.request;
-
-import java.io.IOException;
-
-
-/**
- * Encapsulation of request information.
- *
- * @version $Rev$ $Date$
- */
-public interface DispatchRequest extends Request {
-
-    /**
-     * Dispatches the request to a specified path.
-     *
-     * @param path The path to dispatch to.
-     * @throws IOException If something goes wrong during dispatching.
-     */
-    void dispatch(String path) throws IOException;
-
-    /**
-     * Includes the response from the specified URL in the current response output.
-     *
-     * @param path The path to include.
-     * @throws IOException If something goes wrong during inclusion.
-     */
-    void include(String path) throws IOException;
-
-    /**
-     * Sets the content type when rendering the result.
-     *
-     * @param contentType The content type. It should follow the specifications
-     * from W3C about content types.
-     */
-    void setContentType(String contentType);
-}
diff --git a/tiles-request/tiles-request-api/src/main/java/org/apache/tiles/request/DispatchRequestWrapper.java b/tiles-request/tiles-request-api/src/main/java/org/apache/tiles/request/DispatchRequestWrapper.java
deleted file mode 100644
index e118f1f..0000000
--- a/tiles-request/tiles-request-api/src/main/java/org/apache/tiles/request/DispatchRequestWrapper.java
+++ /dev/null
@@ -1,145 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.request;
-
-import java.io.IOException;
-import java.io.OutputStream;
-import java.io.PrintWriter;
-import java.io.Writer;
-import java.util.Collections;
-import java.util.List;
-import java.util.Locale;
-import java.util.Map;
-
-import org.apache.tiles.request.attribute.Addable;
-
-/**
- * Delegate for ease of customization.
- *
- * @version $Rev: 1215009 $ $Date: 2011-12-16 01:32:31 +0100 (Fri, 16 Dec 2011) $
- */
-public class DispatchRequestWrapper extends AbstractRequest implements
-        RequestWrapper {
-
-    /**
-     * The wrapper request context object.
-     */
-    private DispatchRequest context;
-
-    /**
-     * Constructor.
-     *
-     * @param context The request context to wrap.
-     */
-    public DispatchRequestWrapper(DispatchRequest context) {
-        this.context = context;
-    }
-
-    /** {@inheritDoc} */
-    public DispatchRequest getWrappedRequest() {
-        return context;
-    }
-
-    /** {@inheritDoc} */
-    public Map<String, String> getHeader() {
-        return context.getHeader();
-    }
-
-    /** {@inheritDoc} */
-    public Map<String, String[]> getHeaderValues() {
-        return context.getHeaderValues();
-    }
-
-    /** {@inheritDoc} */
-    public Addable<String> getResponseHeaders() {
-        return context.getResponseHeaders();
-    }
-
-    /** {@inheritDoc} */
-    public Map<String, Object> getContext(String scope) {
-        return context.getContext(scope);
-    }
-
-    /** {@inheritDoc} */
-    public List<String> getAvailableScopes() {
-        return context.getAvailableScopes();
-    }
-
-    /** {@inheritDoc} */
-    public ApplicationContext getApplicationContext() {
-        return context.getApplicationContext();
-    }
-
-    /** {@inheritDoc} */
-    public void dispatch(String path) throws IOException {
-        context.dispatch(path);
-    }
-
-    /** {@inheritDoc} */
-    public void include(String path) throws IOException {
-        context.include(path);
-    }
-
-    /** {@inheritDoc} */
-    public OutputStream getOutputStream() throws IOException {
-        return context.getOutputStream();
-    }
-
-    /** {@inheritDoc} */
-    public Writer getWriter() throws IOException {
-        return context.getWriter();
-    }
-
-    /** {@inheritDoc} */
-    public PrintWriter getPrintWriter() throws IOException {
-        return context.getPrintWriter();
-    }
-
-    /** {@inheritDoc} */
-    public boolean isResponseCommitted() {
-        return context.isResponseCommitted();
-    }
-
-    /** {@inheritDoc} */
-    public void setContentType(String contentType) {
-        context.setContentType(contentType);
-    }
-
-    /** {@inheritDoc} */
-    public Map<String, String> getParam() {
-        return context.getParam();
-    }
-
-    /** {@inheritDoc} */
-    public Map<String, String[]> getParamValues() {
-        return context.getParamValues();
-    }
-
-    /** {@inheritDoc} */
-    public Locale getRequestLocale() {
-        return context.getRequestLocale();
-    }
-
-    /** {@inheritDoc} */
-    public boolean isUserInRole(String role) {
-        return context.isUserInRole(role);
-    }
-}
diff --git a/tiles-request/tiles-request-api/src/main/java/org/apache/tiles/request/NotAvailableFeatureException.java b/tiles-request/tiles-request-api/src/main/java/org/apache/tiles/request/NotAvailableFeatureException.java
deleted file mode 100644
index 3484c42..0000000
--- a/tiles-request/tiles-request-api/src/main/java/org/apache/tiles/request/NotAvailableFeatureException.java
+++ /dev/null
@@ -1,66 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.tiles.request;
-
-/**
- * Exception that indicates that a feature could not be used since it is not
- * available.
- *
- * @version $Rev$ $Date$
- */
-public class NotAvailableFeatureException extends RequestException {
-
-    /**
-     * Constructor.
-     *
-     */
-    public NotAvailableFeatureException() {
-    }
-
-    /**
-     * Constructor.
-     *
-     * @param message The detail message.
-     */
-    public NotAvailableFeatureException(String message) {
-        super(message);
-    }
-
-    /**
-     * Constructor.
-     *
-     * @param e The cause to be wrapped.
-     */
-    public NotAvailableFeatureException(Throwable e) {
-        super(e);
-    }
-
-    /**
-     * Constructor.
-     *
-     * @param message The detail message.
-     * @param e The cause to be wrapped.
-     */
-    public NotAvailableFeatureException(String message, Throwable e) {
-        super(message, e);
-    }
-}
diff --git a/tiles-request/tiles-request-api/src/main/java/org/apache/tiles/request/Request.java b/tiles-request/tiles-request-api/src/main/java/org/apache/tiles/request/Request.java
deleted file mode 100644
index 08e4a59..0000000
--- a/tiles-request/tiles-request-api/src/main/java/org/apache/tiles/request/Request.java
+++ /dev/null
@@ -1,153 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.request;
-
-import java.io.IOException;
-import java.io.OutputStream;
-import java.io.PrintWriter;
-import java.io.Writer;
-import java.util.List;
-import java.util.Locale;
-import java.util.Map;
-
-import org.apache.tiles.request.attribute.Addable;
-
-
-/**
- * Encapsulation of request information.
- *
- * @version $Rev$ $Date$
- */
-public interface Request {
-
-    /**
-     * Return an immutable Map that maps header names to the first (or only)
-     * header value (as a String).
-     *
-     * @return The header map.
-     */
-    Map<String, String> getHeader();
-
-    /**
-     * Return an immutable Map that maps header names to the set of all values
-     * specified in the request (as a String array). Header names must be
-     * matched in a case-insensitive manner.
-     *
-     * @return The header values map.
-     */
-    Map<String, String[]> getHeaderValues();
-
-    /**
-     * Return an Addable object that can be used to write headers to the response.
-     *
-     * @return An Addable object.
-     */
-    Addable<String> getResponseHeaders();
-
-    /**
-     * Returns a context map, given the scope name.
-     *
-     * @param scope The name of the scope.
-     * @return The context.
-     */
-    Map<String, Object> getContext(String scope);
-
-    /**
-     * Returns all available scopes, that are the ones returned by
-     * {@link #getNativeScopes()} plus derivative scopes (e.g. flash scope).
-     *
-     * @return All the available scopes.
-     */
-    List<String> getAvailableScopes();
-
-    /**
-     * Returns the associated application context.
-     *
-     * @return The application context associated to this request.
-     */
-    ApplicationContext getApplicationContext();
-
-    /**
-     * Returns an output stream to be used to write directly in the response.
-     *
-     * @return The output stream that writes in the response.
-     * @throws IOException If something goes wrong when getting the output stream.
-     */
-    OutputStream getOutputStream() throws IOException;
-
-    /**
-     * Returns a writer to be used to write directly in the response.
-     *
-     * @return The writer that writes in the response.
-     * @throws IOException If something goes wrong when getting the writer.
-     */
-    Writer getWriter() throws IOException;
-
-    /**
-     * Returns a print writer to be used to write directly in the response.
-     *
-     * @return The print writer that writes in the response.
-     * @throws IOException If something goes wrong when getting the print
-     * writer.
-     */
-    PrintWriter getPrintWriter() throws IOException;
-
-    /**
-     * Checks if the response has been committed.
-     *
-     * @return <code>true</code> only if the response has been committed.
-     */
-    boolean isResponseCommitted();
-
-    /**
-     * Return an immutable Map that maps request parameter names to the first
-     * (or only) value (as a String).
-     *
-     * @return The parameter map.
-     */
-    Map<String, String> getParam();
-
-    /**
-     * Return an immutable Map that maps request parameter names to the set of
-     * all values (as a String array).
-     *
-     * @return The parameter values map.
-     */
-    Map<String, String[]> getParamValues();
-
-    /**
-     * Return the preferred Locale in which the client will accept content.
-     *
-     * @return The current request locale. It is the locale of the request
-     * object itself and it is NOT the locale that the user wants to use. See
-     * {@link org.apache.tiles.locale.LocaleResolver} to implement strategies to
-     * resolve locales.
-     */
-    Locale getRequestLocale();
-
-    /**
-     * Determine whether or not the specified user is in the given role.
-     * @param role the role to check against.
-     * @return <code>true</code> if the user is in the given role.
-     */
-    boolean isUserInRole(String role);
-
-}
diff --git a/tiles-request/tiles-request-api/src/main/java/org/apache/tiles/request/RequestException.java b/tiles-request/tiles-request-api/src/main/java/org/apache/tiles/request/RequestException.java
deleted file mode 100644
index 430937e..0000000
--- a/tiles-request/tiles-request-api/src/main/java/org/apache/tiles/request/RequestException.java
+++ /dev/null
@@ -1,64 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.request;
-
-/**
- * Thrown when something related to a request fails.
- *
- * @version $Rev$ $Date$
- */
-public class RequestException extends RuntimeException {
-
-    /**
-     * Constructor.
-     */
-    public RequestException() {
-    }
-
-    /**
-     * Constructor.
-     *
-     * @param message The message of the exception.
-     */
-    public RequestException(String message) {
-        super(message);
-    }
-
-    /**
-     * Constructor.
-     *
-     * @param cause The cause.
-     */
-    public RequestException(Throwable cause) {
-        super(cause);
-    }
-
-    /**
-     * Constructor.
-     *
-     * @param message The message of the exception.
-     * @param cause The cause.
-     */
-    public RequestException(String message, Throwable cause) {
-        super(message, cause);
-    }
-
-}
diff --git a/tiles-request/tiles-request-api/src/main/java/org/apache/tiles/request/RequestWrapper.java b/tiles-request/tiles-request-api/src/main/java/org/apache/tiles/request/RequestWrapper.java
deleted file mode 100644
index d82db8c..0000000
--- a/tiles-request/tiles-request-api/src/main/java/org/apache/tiles/request/RequestWrapper.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.request;
-
-
-/**
- * Delegate for ease of customization.
- *
- * @version $Rev: 1215002 $ $Date: 2011-12-16 01:27:17 +0100 (Fri, 16 Dec 2011) $
- */
-public interface RequestWrapper extends Request {
-
-    /**
-     * Returns the wrapped Tiles request.
-     *
-     * @return The wrapped Tiles request.
-     */
-    Request getWrappedRequest();
-
-}
diff --git a/tiles-request/tiles-request-api/src/main/java/org/apache/tiles/request/attribute/Addable.java b/tiles-request/tiles-request-api/src/main/java/org/apache/tiles/request/attribute/Addable.java
deleted file mode 100644
index 5e8b9a9..0000000
--- a/tiles-request/tiles-request-api/src/main/java/org/apache/tiles/request/attribute/Addable.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.request.attribute;
-
-/**
- * Allows to get and set attributes.
- *
- * @version $Rev$ $Date$
- * @param <V> The type of the value of the attribute.
- */
-public interface Addable<V> {
-
-    /**
-     * Sets a value for the given key.
-     *
-     * @param key The key of the attribute.
-     * @param value The value of the attribute.
-     */
-    void setValue(String key, V value);
-}
diff --git a/tiles-request/tiles-request-api/src/main/java/org/apache/tiles/request/attribute/AttributeExtractor.java b/tiles-request/tiles-request-api/src/main/java/org/apache/tiles/request/attribute/AttributeExtractor.java
deleted file mode 100644
index 5c313ac..0000000
--- a/tiles-request/tiles-request-api/src/main/java/org/apache/tiles/request/attribute/AttributeExtractor.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.request.attribute;
-
-/**
- * Allows to get, put and remove Object-type attributes.
- *
- * @version $Rev$ $Date$
- */
-public interface AttributeExtractor extends HasRemovableKeys<Object>, HasAddableKeys<Object> {
-}
diff --git a/tiles-request/tiles-request-api/src/main/java/org/apache/tiles/request/attribute/EnumeratedValuesExtractor.java b/tiles-request/tiles-request-api/src/main/java/org/apache/tiles/request/attribute/EnumeratedValuesExtractor.java
deleted file mode 100644
index 88ae480..0000000
--- a/tiles-request/tiles-request-api/src/main/java/org/apache/tiles/request/attribute/EnumeratedValuesExtractor.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.request.attribute;
-
-import java.util.Enumeration;
-
-/**
- * Allows to get values from multi-valued attributes.
- *
- * @version $Rev$ $Date$
- */
-public interface EnumeratedValuesExtractor extends HasAddableKeys<String> {
-
-    /**
-     * Returns the values stored at the given key.
-     *
-     * @param key The key of the attribute.
-     * @return The values of the attribute.
-     */
-    Enumeration<String> getValues(String key);
-}
diff --git a/tiles-request/tiles-request-api/src/main/java/org/apache/tiles/request/attribute/HasAddableKeys.java b/tiles-request/tiles-request-api/src/main/java/org/apache/tiles/request/attribute/HasAddableKeys.java
deleted file mode 100644
index 115fd2b..0000000
--- a/tiles-request/tiles-request-api/src/main/java/org/apache/tiles/request/attribute/HasAddableKeys.java
+++ /dev/null
@@ -1,30 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.request.attribute;
-
-/**
- * Allows to get and set attributes.
- *
- * @version $Rev$ $Date$
- * @param <V> The type of the value of the attribute.
- */
-public interface HasAddableKeys<V> extends HasKeys<V>, Addable<V> {
-}
diff --git a/tiles-request/tiles-request-api/src/main/java/org/apache/tiles/request/attribute/HasKeys.java b/tiles-request/tiles-request-api/src/main/java/org/apache/tiles/request/attribute/HasKeys.java
deleted file mode 100644
index 32ea92c..0000000
--- a/tiles-request/tiles-request-api/src/main/java/org/apache/tiles/request/attribute/HasKeys.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.request.attribute;
-
-import java.util.Enumeration;
-
-/**
- * Allows to get attributes.
- *
- * @version $Rev$ $Date$
- * @param <V> The type of the value of the attribute.
- */
-public interface HasKeys<V> {
-
-    /**
-     * The enumeration of the keys of the stored attributes.
-     *
-     * @return The keys.
-     */
-    Enumeration<String> getKeys();
-
-    /**
-     * Returns the value of the attribute with the given key.
-     *
-     * @param key The key of the attribute.
-     * @return The value.
-     */
-    V getValue(String key);
-}
diff --git a/tiles-request/tiles-request-api/src/main/java/org/apache/tiles/request/attribute/HasRemovableKeys.java b/tiles-request/tiles-request-api/src/main/java/org/apache/tiles/request/attribute/HasRemovableKeys.java
deleted file mode 100644
index 160737f..0000000
--- a/tiles-request/tiles-request-api/src/main/java/org/apache/tiles/request/attribute/HasRemovableKeys.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.request.attribute;
-
-/**
- * Allows to get and remove attributes.
- *
- * @version $Rev$ $Date$
- * @param <V> The type of the value of the attribute.
- */
-public interface HasRemovableKeys<V> extends HasKeys<V> {
-
-    /**
-     * Removes an attribute.
-     *
-     * @param key The key of the attribute to remove.
-     */
-    void removeValue(String key);
-}
diff --git a/tiles-request/tiles-request-api/src/main/java/org/apache/tiles/request/attribute/package-info.java b/tiles-request/tiles-request-api/src/main/java/org/apache/tiles/request/attribute/package-info.java
deleted file mode 100644
index 5b70eee..0000000
--- a/tiles-request/tiles-request-api/src/main/java/org/apache/tiles/request/attribute/package-info.java
+++ /dev/null
@@ -1,28 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-/**
- * Methods to get, set and remove attributes from different sources (like HTTP requests 
- * or sessions).
- * By implementing {@link org.apache.tiles.request.attribute.AttributeExtractor},
- * you can use a Map from {@link org.apache.tiles.request.collection} to manipulate the
- * attributes of another class.
- */
-package org.apache.tiles.request.attribute;
diff --git a/tiles-request/tiles-request-api/src/main/java/org/apache/tiles/request/collection/AddableParameterMap.java b/tiles-request/tiles-request-api/src/main/java/org/apache/tiles/request/collection/AddableParameterMap.java
deleted file mode 100644
index c6813fa..0000000
--- a/tiles-request/tiles-request-api/src/main/java/org/apache/tiles/request/collection/AddableParameterMap.java
+++ /dev/null
@@ -1,93 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.request.collection;
-
-import java.util.Collection;
-import java.util.Map;
-import java.util.Set;
-
-import org.apache.tiles.request.attribute.HasAddableKeys;
-
-/**
- * Exposes an {@link HasAddableKeys} object as a put/get (no remove) map.
- *
- * @version $Rev$ $Date$
- */
-public class AddableParameterMap extends ReadOnlyEnumerationMap<String> {
-
-    /**
-     * The request.
-     */
-    private HasAddableKeys<String> request;
-
-    /**
-     * Constructor.
-     *
-     * @param request The request object to use.
-     */
-    public AddableParameterMap(HasAddableKeys<String> request) {
-        super(request);
-        this.request = request;
-    }
-
-    /** {@inheritDoc} */
-    public Set<Map.Entry<String, String>> entrySet() {
-        return new AddableParameterEntrySet();
-    }
-
-    /** {@inheritDoc} */
-    public String put(String key, String value) {
-        String oldValue = request.getValue(key);
-        request.setValue(key, value);
-        return oldValue;
-    }
-
-
-    /** {@inheritDoc} */
-    public void putAll(Map<? extends String, ? extends String> map) {
-        for (Map.Entry<? extends String, ? extends String> entry : map
-                .entrySet()) {
-            request.setValue(entry.getKey(), entry.getValue());
-        }
-    }
-
-
-    /**
-     * Entry set implementation for {@link AddableParameterMap}.
-     */
-    private class AddableParameterEntrySet extends ReadOnlyEnumerationMap<String>.ReadOnlyEnumerationMapEntrySet {
-
-        @Override
-        public boolean add(java.util.Map.Entry<String, String> e) {
-            request.setValue(e.getKey(), e.getValue());
-            return true;
-        }
-
-        @Override
-        public boolean addAll(
-                Collection<? extends java.util.Map.Entry<String, String>> c) {
-            for (Map.Entry<String, String> entry : c) {
-                request.setValue(entry.getKey(), entry.getValue());
-            }
-            return true;
-        }
-    }
-}
diff --git a/tiles-request/tiles-request-api/src/main/java/org/apache/tiles/request/collection/CollectionUtil.java b/tiles-request/tiles-request-api/src/main/java/org/apache/tiles/request/collection/CollectionUtil.java
deleted file mode 100644
index 5d68e23..0000000
--- a/tiles-request/tiles-request-api/src/main/java/org/apache/tiles/request/collection/CollectionUtil.java
+++ /dev/null
@@ -1,70 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.request.collection;
-
-import java.util.Enumeration;
-
-/**
- * Utilities for requests.
- *
- * @version $Rev: 1064782 $ $Date: 2011-01-28 18:08:52 +0100 (Fri, 28 Jan 2011) $
- */
-public final class CollectionUtil {
-
-    /**
-     * Constructor.
-     */
-    private CollectionUtil() {
-
-    }
-
-    /**
-     * Returns the string representation of the key.
-     *
-     * @param key The key.
-     * @return The string representation of the key.
-     * @throws IllegalArgumentException If the key is <code>null</code>.
-     */
-    public static String key(Object key) {
-        if (key == null) {
-            throw new IllegalArgumentException();
-        } else if (key instanceof String) {
-            return ((String) key);
-        } else {
-            return (key.toString());
-        }
-    }
-
-    /**
-     * Returns the number of elements in an enumeration, by iterating it.
-     *
-     * @param keys The enumeration.
-     * @return The number of elements.
-     */
-    public static int enumerationSize(Enumeration<?> keys) {
-        int n = 0;
-        while (keys.hasMoreElements()) {
-            keys.nextElement();
-            n++;
-        }
-        return n;
-    }
-}
diff --git a/tiles-request/tiles-request-api/src/main/java/org/apache/tiles/request/collection/HeaderValuesMap.java b/tiles-request/tiles-request-api/src/main/java/org/apache/tiles/request/collection/HeaderValuesMap.java
deleted file mode 100644
index 3a0f8d2..0000000
--- a/tiles-request/tiles-request-api/src/main/java/org/apache/tiles/request/collection/HeaderValuesMap.java
+++ /dev/null
@@ -1,525 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.request.collection;
-
-import static org.apache.tiles.request.collection.CollectionUtil.*;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Enumeration;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-
-import org.apache.tiles.request.attribute.EnumeratedValuesExtractor;
-
-
-/**
- * Exposes an {@link EnumeratedValuesExtractor} object as a read-only map.
- *
- * @version $Rev$ $Date$
- */
-public class HeaderValuesMap implements Map<String, String[]> {
-
-    /**
-     * The request.
-     */
-    private EnumeratedValuesExtractor request;
-
-    /**
-     * Constructor.
-     *
-     * @param request The request object to use.
-     */
-    public HeaderValuesMap(EnumeratedValuesExtractor request) {
-        this.request = request;
-    }
-
-
-    /** {@inheritDoc} */
-    public void clear() {
-        throw new UnsupportedOperationException();
-    }
-
-
-    /** {@inheritDoc} */
-    public boolean containsKey(Object key) {
-        return (request.getValue(key(key)) != null);
-    }
-
-
-    /** {@inheritDoc} */
-    public boolean containsValue(Object value) {
-        if (!(value instanceof String[])) {
-            return (false);
-        }
-        String[] test = (String[]) value;
-        Enumeration<String> names = request.getKeys();
-        while (names.hasMoreElements()) {
-            String name = names.nextElement();
-            if (compareHeaders(name, array2set(test))) {
-                return true;
-            }
-        }
-        return false;
-    }
-
-
-    /** {@inheritDoc} */
-    public Set<Map.Entry<String, String[]>> entrySet() {
-        return new HeadersEntrySet();
-    }
-
-
-    /** {@inheritDoc} */
-    @Override
-    public boolean equals(Object o) {
-        EnumeratedValuesExtractor otherRequest = ((HeaderValuesMap) o).request;
-        boolean retValue = true;
-        for (Enumeration<String> attribs = request.getKeys(); attribs
-                .hasMoreElements()
-                && retValue;) {
-            String parameterName = attribs.nextElement();
-            Set<String> valueSet = enumeration2set(otherRequest.getValues(parameterName));
-            retValue = compareHeaders(parameterName, valueSet);
-        }
-
-        return retValue;
-    }
-
-
-    /** {@inheritDoc} */
-    public String[] get(Object key) {
-        return getHeaderValues(key(key));
-    }
-
-    /** {@inheritDoc} */
-    @Override
-    public int hashCode() {
-        int retValue = 0;
-        for (Enumeration<String> attribs = request.getKeys(); attribs
-                .hasMoreElements();) {
-            String parameterName = attribs.nextElement();
-            Enumeration<String> values = request.getValues(parameterName);
-            int valueHash = 0;
-            while (values.hasMoreElements()) {
-                valueHash += values.nextElement().hashCode();
-            }
-            retValue += parameterName.hashCode() ^ valueHash;
-        }
-        return retValue;
-    }
-
-
-    /** {@inheritDoc} */
-    public boolean isEmpty() {
-        return !request.getKeys().hasMoreElements();
-    }
-
-
-    /** {@inheritDoc} */
-    public Set<String> keySet() {
-        return new KeySet(request);
-    }
-
-
-    /** {@inheritDoc} */
-    public String[] put(String key, String[] value) {
-        throw new UnsupportedOperationException();
-    }
-
-
-    /** {@inheritDoc} */
-    public void putAll(Map<? extends String, ? extends String[]> map) {
-        throw new UnsupportedOperationException();
-    }
-
-
-    /** {@inheritDoc} */
-    public String[] remove(Object key) {
-        throw new UnsupportedOperationException();
-    }
-
-
-
-    /** {@inheritDoc} */
-    public int size() {
-        return enumerationSize(request.getKeys());
-    }
-
-
-    /** {@inheritDoc} */
-    public Collection<String[]> values() {
-        return new HeaderValuesCollection();
-    }
-
-    /**
-     * Extracts values enumeration of an attribute and returns the corresponding array of values.
-     *
-     * @param key The key of the attribute.
-     * @return The values of the attribute.
-     */
-    private String[] getHeaderValues(String key) {
-        List<String> list = new ArrayList<String>();
-        Enumeration<String> values = request.getValues(key);
-        while (values.hasMoreElements()) {
-            list.add(values.nextElement());
-        }
-        String[] retValue = list.toArray(new String[list.size()]);
-        return retValue;
-    }
-
-    /**
-     * Converts the content of a string enumeration to an array of strings.
-     *
-     * @param enumeration The enumeration to convert.
-     * @return The corresponding array.
-     */
-    private Set<String> enumeration2set(Enumeration<String> enumeration) {
-        Set<String> retValue = new HashSet<String>();
-        while (enumeration.hasMoreElements()) {
-            retValue.add(enumeration.nextElement());
-        }
-        return retValue;
-    }
-
-    /**
-     * Transforms a string array in a string set.
-     *
-     * @param valueArray The array to convert.
-     * @return The corresponding set.
-     */
-    private Set<String> array2set(String[] valueArray) {
-        Set<String> values = new HashSet<String>();
-        for (int i = 0; i < valueArray.length; i++) {
-            values.add(valueArray[i]);
-        }
-        return values;
-    }
-
-    /**
-     * Checks if values of a header attribute are the same as the one passed in
-     * the set.
-     *
-     * @param name The name of the header.
-     * @param testSet The set of values it must contain.
-     * @return <code>true</code> if all the values, and only them, are present
-     * in the header values.
-     */
-    private boolean compareHeaders(String name, Set<String> testSet) {
-        Enumeration<String> values = request.getValues(name);
-        boolean matched = true;
-        while (values.hasMoreElements() && matched) {
-            String currentValue = values.nextElement();
-            matched = testSet.remove(currentValue);
-        }
-        matched = matched && testSet.isEmpty();
-        return matched;
-    }
-
-    /**
-     * Entry set implementation for {@link HeaderValuesMap}.
-     */
-    private class HeadersEntrySet implements Set<Map.Entry<String, String[]>> {
-
-        @Override
-        public boolean add(java.util.Map.Entry<String, String[]> e) {
-            throw new UnsupportedOperationException();
-        }
-
-        @Override
-        public boolean addAll(
-                Collection<? extends java.util.Map.Entry<String, String[]>> c) {
-            throw new UnsupportedOperationException();
-        }
-
-        @Override
-        public void clear() {
-            throw new UnsupportedOperationException();
-        }
-
-        @SuppressWarnings("unchecked")
-        @Override
-        public boolean contains(Object o) {
-            return containsEntry((java.util.Map.Entry<String, String[]>) o);
-        }
-
-        @SuppressWarnings("unchecked")
-        @Override
-        public boolean containsAll(Collection<?> c) {
-            Collection<Map.Entry<String, String[]>> realCollection =
-                (Collection<Map.Entry<String, String[]>>) c;
-            for (Map.Entry<String, String[]> entry : realCollection) {
-                if (!containsEntry(entry)) {
-                    return false;
-                }
-            }
-            return true;
-        }
-
-        @Override
-        public boolean isEmpty() {
-            return HeaderValuesMap.this.isEmpty();
-        }
-
-        @Override
-        public Iterator<java.util.Map.Entry<String, String[]>> iterator() {
-            return new HeadersEntrySetIterator();
-        }
-
-        @Override
-        public boolean remove(Object o) {
-            throw new UnsupportedOperationException();
-        }
-
-        @Override
-        public boolean removeAll(Collection<?> c) {
-            throw new UnsupportedOperationException();
-        }
-
-        @Override
-        public boolean retainAll(Collection<?> c) {
-            throw new UnsupportedOperationException();
-        }
-
-        @Override
-        public int size() {
-            return HeaderValuesMap.this.size();
-        }
-
-        @Override
-        public Object[] toArray() {
-            return toList().toArray();
-        }
-
-        @Override
-        public <T> T[] toArray(T[] a) {
-            return toList().toArray(a);
-        }
-
-        /**
-         * Checks whether the given entry is present in the headers.
-         *
-         * @param entry The entry to check.
-         * @return <code></code> if the key and the values of the entry are present.
-         */
-        private boolean containsEntry(Map.Entry<String, String[]> entry) {
-            Enumeration<String> entryValues = request.getValues(key(entry.getKey()));
-            String[] valueArray = entry.getValue();
-            Set<String> values = array2set(valueArray);
-            while (entryValues.hasMoreElements()) {
-                if (!values.remove(entryValues.nextElement())) {
-                    return false;
-                }
-            }
-            return values.isEmpty();
-        }
-
-        /**
-         * Turns this entry set into a list.
-         *
-         * @return The collection, turned into a list.
-         */
-        private List<Map.Entry<String, String[]>> toList() {
-            List<Map.Entry<String, String[]>> entries = new ArrayList<Map.Entry<String, String[]>>();
-            Enumeration<String> names = request.getKeys();
-            while (names.hasMoreElements()) {
-                entries.add(extractNextEntry(names));
-            }
-            return entries;
-        }
-
-        /**
-         * Returns the next entry, by getting the next element in the given enumeration.
-         *
-         * @param names The enumeration to get the next name from..
-         * @return The next map entry.
-         */
-        private MapEntry<String, String[]> extractNextEntry(
-                Enumeration<String> names) {
-            String name = names.nextElement();
-            return new MapEntryArrayValues<String, String>(name, getHeaderValues(name), false);
-        }
-
-        /**
-         * Iterates {@link HeadersEntrySet} elements.
-         */
-        private class HeadersEntrySetIterator implements Iterator<Map.Entry<String, String[]>> {
-
-            /**
-             * The enumeration to use.
-             */
-            private Enumeration<String> namesEnumeration = request.getKeys();
-
-            @Override
-            public boolean hasNext() {
-                return namesEnumeration.hasMoreElements();
-            }
-
-            @Override
-            public Map.Entry<String, String[]> next() {
-                return extractNextEntry(namesEnumeration);
-            }
-
-            @Override
-            public void remove() {
-                throw new UnsupportedOperationException();
-            }
-
-        }
-    }
-
-    /**
-     * It is a collection of all values of the header. Each element is an array
-     * of values of a single header.
-     */
-    private class HeaderValuesCollection implements Collection<String[]> {
-
-        @Override
-        public boolean add(String[] e) {
-            throw new UnsupportedOperationException();
-        }
-
-        @Override
-        public boolean addAll(Collection<? extends String[]> c) {
-            throw new UnsupportedOperationException();
-        }
-
-        @Override
-        public void clear() {
-            throw new UnsupportedOperationException();
-        }
-
-        @Override
-        public boolean contains(Object o) {
-            return containsValue(o);
-        }
-
-        @SuppressWarnings("unchecked")
-        @Override
-        public boolean containsAll(Collection<?> c) {
-            Collection<String[]> realCollection = (Collection<String[]>) c;
-            for (String[] value : realCollection) {
-                if (!containsValue(value)) {
-                    return false;
-                }
-            }
-            return true;
-        }
-
-        @Override
-        public boolean isEmpty() {
-            return HeaderValuesMap.this.isEmpty();
-        }
-
-        @Override
-        public Iterator<String[]> iterator() {
-            return new HeaderValuesCollectionIterator();
-        }
-
-        @Override
-        public boolean remove(Object o) {
-            throw new UnsupportedOperationException();
-        }
-
-        @Override
-        public boolean removeAll(Collection<?> c) {
-            throw new UnsupportedOperationException();
-        }
-
-        @Override
-        public boolean retainAll(Collection<?> c) {
-            throw new UnsupportedOperationException();
-        }
-
-        @Override
-        public int size() {
-            return HeaderValuesMap.this.size();
-        }
-
-        @Override
-        public Object[] toArray() {
-            return toList().toArray();
-        }
-
-        @Override
-        public <T> T[] toArray(T[] a) {
-            return toList().toArray(a);
-        }
-
-        /**
-         * Turns this collection into a list.
-         *
-         * @return The list.
-         */
-        private List<String[]> toList() {
-            List<String[]> entries = new ArrayList<String[]>();
-            Enumeration<String> names = request.getKeys();
-            while (names.hasMoreElements()) {
-                entries.add(enumeration2array(request.getValues(names.nextElement())));
-            }
-            return entries;
-        }
-
-        /**
-         * Converts the content of a string enumeration to an array of strings.
-         *
-         * @param enumeration The enumeration to convert.
-         * @return The corresponding array.
-         */
-        private String[] enumeration2array(Enumeration<String> enumeration) {
-            List<String> list1 = new ArrayList<String>();
-            while (enumeration.hasMoreElements()) {
-                list1.add(enumeration.nextElement());
-            }
-
-            return list1.toArray(new String[list1.size()]);
-        }
-
-        /**
-         * Iterates elements of {@link HeaderValuesCollection}.
-         */
-        private class HeaderValuesCollectionIterator implements Iterator<String[]> {
-
-            /**
-             * The enumeration of the name of header attributes.
-             */
-            private Enumeration<String> namesEnumeration = request.getKeys();
-
-            @Override
-            public boolean hasNext() {
-                return namesEnumeration.hasMoreElements();
-            }
-
-            @Override
-            public String[] next() {
-                return enumeration2array(request.getValues(namesEnumeration.nextElement()));
-            }
-
-            @Override
-            public void remove() {
-                throw new UnsupportedOperationException();
-            }
-        }
-    }
-}
diff --git a/tiles-request/tiles-request-api/src/main/java/org/apache/tiles/request/collection/KeySet.java b/tiles-request/tiles-request-api/src/main/java/org/apache/tiles/request/collection/KeySet.java
deleted file mode 100644
index b029b54..0000000
--- a/tiles-request/tiles-request-api/src/main/java/org/apache/tiles/request/collection/KeySet.java
+++ /dev/null
@@ -1,166 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.request.collection;
-
-import static org.apache.tiles.request.collection.CollectionUtil.*;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Enumeration;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Set;
-
-import org.apache.tiles.request.attribute.HasKeys;
-
-/**
- * Exposes keys of a {@link HasKeys} object as a set.
- *
- * @version $Rev$ $Date$
- */
-public class KeySet implements Set<String> {
-
-    /**
-     * The request to read.
-     */
-    private HasKeys<?> request;
-
-    /**
-     * Constructor.
-     *
-     * @param request The request to read.
-     */
-    public KeySet(HasKeys<?> request) {
-        this.request = request;
-    }
-
-    @Override
-    public boolean add(String e) {
-        throw new UnsupportedOperationException();
-    }
-
-    @Override
-    public boolean addAll(Collection<? extends String> c) {
-        throw new UnsupportedOperationException();
-    }
-
-    @Override
-    public void clear() {
-        throw new UnsupportedOperationException();
-    }
-
-    @Override
-    public boolean contains(Object o) {
-        return request.getValue(key(o)) != null;
-    }
-
-    @SuppressWarnings("unchecked")
-    @Override
-    public boolean containsAll(Collection<?> c) {
-        Collection<String> realCollection = (Collection<String>) c;
-        for (String key : realCollection) {
-            if (request.getValue(key(key)) == null) {
-                return false;
-            }
-        }
-        return true;
-    }
-
-    @Override
-    public boolean isEmpty() {
-        return !request.getKeys().hasMoreElements();
-    }
-
-    @Override
-    public Iterator<String> iterator() {
-        return new KeySetIterator();
-    }
-
-    @Override
-    public boolean remove(Object o) {
-        throw new UnsupportedOperationException();
-    }
-
-    @Override
-    public boolean removeAll(Collection<?> c) {
-        throw new UnsupportedOperationException();
-    }
-
-    @Override
-    public boolean retainAll(Collection<?> c) {
-        throw new UnsupportedOperationException();
-    }
-
-    @Override
-    public int size() {
-        return enumerationSize(request.getKeys());
-    }
-
-    @Override
-    public Object[] toArray() {
-        return toList().toArray();
-    }
-
-    @Override
-    public <T> T[] toArray(T[] a) {
-        return toList().toArray(a);
-    }
-
-    /**
-     * Turns this set into a list.
-     *
-     * @return The corresponding list.
-     */
-    private List<String> toList() {
-        List<String> entries = new ArrayList<String>();
-        Enumeration<String> names = request.getKeys();
-        while (names.hasMoreElements()) {
-            entries.add(names.nextElement());
-        }
-        return entries;
-    }
-
-    /**
-     * Iterates elements of {@link KeySet}.
-     */
-    private class KeySetIterator implements Iterator<String> {
-
-        /**
-         * The key names enumeration.
-         */
-        private Enumeration<String> namesEnumeration = request.getKeys();
-
-        @Override
-        public boolean hasNext() {
-            return namesEnumeration.hasMoreElements();
-        }
-
-        @Override
-        public String next() {
-            return namesEnumeration.nextElement();
-        }
-
-        @Override
-        public void remove() {
-            throw new UnsupportedOperationException();
-        }
-    }
-}
diff --git a/tiles-request/tiles-request-api/src/main/java/org/apache/tiles/request/collection/MapEntry.java b/tiles-request/tiles-request-api/src/main/java/org/apache/tiles/request/collection/MapEntry.java
deleted file mode 100644
index faf2702..0000000
--- a/tiles-request/tiles-request-api/src/main/java/org/apache/tiles/request/collection/MapEntry.java
+++ /dev/null
@@ -1,136 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.request.collection;
-
-
-import java.util.Map;
-
-
-/**
- * <p>Map.Entry implementation that can be constructed to either be read-only
- * or not.</p>
- *
- * @version $Rev$ $Date$
- * @param <K> The key type.
- * @param <V> The value type.
- */
-
-public class MapEntry<K, V> implements Map.Entry<K, V> {
-
-
-    /**
-     * <p>The entry key.</p>
-     */
-    private K key;
-
-    /**
-     * <p>The entry value.</p>
-     */
-    private V value;
-
-    /**
-     * <p>Whether the entry can be modified.</p>
-     */
-    private boolean modifiable = false;
-
-
-    /**
-     * <p>Creates a map entry that can either allow modifications or not.</p>
-     *
-     * @param key        The entry key
-     * @param value      The entry value
-     * @param modifiable Whether the entry should allow modification or not
-     */
-    public MapEntry(K key, V value, boolean modifiable) {
-        this.key = key;
-        this.value = value;
-        this.modifiable = modifiable;
-    }
-
-
-    /**
-     * <p>Gets the entry key.</p>
-     *
-     * @return The entry key
-     */
-    public K getKey() {
-        return key;
-    }
-
-
-    /**
-     * <p>Gets the entry value.</p>
-     *
-     * @return The entry key
-     */
-    public V getValue() {
-        return value;
-    }
-
-
-    /**
-     * <p>Sets the entry value if the entry can be modified.</p>
-     *
-     * @param val The new value
-     * @return The old entry value
-     * @throws UnsupportedOperationException If the entry cannot be modified
-     */
-    public V setValue(V val) {
-        if (modifiable) {
-            V oldVal = this.value;
-            this.value = val;
-            return oldVal;
-        }
-        throw new UnsupportedOperationException("The map entry is not modifiable");
-    }
-
-
-    /**
-     * <p>Determines if this entry is equal to the passed object.</p>
-     *
-     * @param o The object to test
-     * @return True if equal, else false
-     */
-    @Override
-    @SuppressWarnings("unchecked")
-    public boolean equals(Object o) {
-        if (o != null && o instanceof Map.Entry) {
-            Map.Entry<K, V> entry = (Map.Entry<K, V>) o;
-            return (this.getKey() == null ? entry.getKey() == null : this
-                    .getKey().equals(entry.getKey()))
-                    && (this.getValue() == null ? entry.getValue() == null
-                            : this.getValue().equals(entry.getValue()));
-        }
-        return false;
-    }
-
-
-    /**
-     * <p>Returns the hashcode for this entry.</p>
-     *
-     * @return The and'ed hashcode of the key and value
-     */
-    @Override
-    public int hashCode() {
-        return (this.getKey() == null ? 0 : this.getKey().hashCode())
-            ^ (this.getValue() == null ? 0 : this.getValue().hashCode());
-    }
-}
diff --git a/tiles-request/tiles-request-api/src/main/java/org/apache/tiles/request/collection/MapEntryArrayValues.java b/tiles-request/tiles-request-api/src/main/java/org/apache/tiles/request/collection/MapEntryArrayValues.java
deleted file mode 100644
index 4184f81..0000000
--- a/tiles-request/tiles-request-api/src/main/java/org/apache/tiles/request/collection/MapEntryArrayValues.java
+++ /dev/null
@@ -1,103 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.request.collection;
-
-
-import java.util.Map;
-
-
-/**
- * Multi-valued map entry.
- *
- * @version $Rev$ $Date$
- * @param <K> The key type.
- * @param <V> The value type.
- */
-
-public class MapEntryArrayValues<K, V> extends MapEntry<K, V[]> {
-
-    /**
-     * Constructor.
-     *
-     * @param key The key of the entry.
-     * @param value The array of values.
-     * @param modifiable If <code>true</code> the entry is modifiable.
-     */
-    public MapEntryArrayValues(K key, V[] value, boolean modifiable) {
-        super(key, value, modifiable);
-    }
-
-
-    /**
-     * <p>Returns the hashcode for this entry.</p>
-     *
-     * @return The and'ed hashcode of the key and value
-     */
-    @Override
-    public int hashCode() {
-        int valueHash = 0;
-        V[] value = getValue();
-        if (value != null) {
-            for (int i = 0; i < value.length; i++) {
-                valueHash += value[i].hashCode();
-            }
-        }
-
-        return (this.getKey() == null ? 0 : this.getKey().hashCode())
-                ^ valueHash;
-    }
-
-    /**
-     * <p>Determines if this entry is equal to the passed object.</p>
-     *
-     * @param o The object to test
-     * @return True if equal, else false
-     */
-    @Override
-    @SuppressWarnings("unchecked")
-    public boolean equals(Object o) {
-        if (o != null && o instanceof Map.Entry) {
-            Map.Entry<K, V[]> entry = (Map.Entry<K, V[]>) o;
-            if (this.getKey() == null ? entry.getKey() == null : this
-                    .getKey().equals(entry.getKey())) {
-                V[] values = getValue();
-                V[] otherValues = entry.getValue();
-                if (values != null) {
-                    if (otherValues != null) {
-                        if (values.length == otherValues.length) {
-                            boolean same = true;
-                            for (int i = 0; i < values.length && same; i++) {
-                                same = values[i] == null ? otherValues[i] == null
-                                        : values[i].equals(otherValues[i]);
-                            }
-                            return same;
-                        }
-                    } else {
-                        return false;
-                    }
-                } else {
-                    return otherValues == null;
-                }
-            }
-        }
-        return false;
-    }
-}
diff --git a/tiles-request/tiles-request-api/src/main/java/org/apache/tiles/request/collection/ReadOnlyEnumerationMap.java b/tiles-request/tiles-request-api/src/main/java/org/apache/tiles/request/collection/ReadOnlyEnumerationMap.java
deleted file mode 100644
index 5452691..0000000
--- a/tiles-request/tiles-request-api/src/main/java/org/apache/tiles/request/collection/ReadOnlyEnumerationMap.java
+++ /dev/null
@@ -1,438 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.request.collection;
-
-import static org.apache.tiles.request.collection.CollectionUtil.*;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Enumeration;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-
-import org.apache.tiles.request.attribute.HasKeys;
-
-/**
- * Wraps an {@link HasKeys} object into a read-only map.
- *
- * @version $Rev$ $Date$
- * @param <V> The type of the values.
- */
-public class ReadOnlyEnumerationMap<V> implements Map<String, V> {
-
-    /**
-     * The request.
-     */
-    protected HasKeys<V> request;
-
-    /**
-     * Constructor.
-     *
-     * @param request The request object to use.
-     */
-    public ReadOnlyEnumerationMap(HasKeys<V> request) {
-        this.request = request;
-    }
-
-    /** {@inheritDoc} */
-    public void clear() {
-        throw new UnsupportedOperationException();
-    }
-
-
-    /** {@inheritDoc} */
-    public boolean containsKey(Object key) {
-        return (request.getValue(key(key)) != null);
-    }
-
-
-    /** {@inheritDoc} */
-    @SuppressWarnings("unchecked")
-    public boolean containsValue(Object value) {
-        V realValue = (V) value;
-        for (Enumeration<String> keysIt = request.getKeys(); keysIt.hasMoreElements();) {
-            if (realValue.equals(request.getValue(keysIt.nextElement()))) {
-                return true;
-            }
-        }
-        return false;
-    }
-
-
-    /** {@inheritDoc} */
-    public Set<Map.Entry<String, V>> entrySet() {
-        return new ReadOnlyEnumerationMapEntrySet();
-    }
-
-
-    /** {@inheritDoc} */
-    public V get(Object key) {
-        return (request.getValue(key(key)));
-    }
-
-
-    /** {@inheritDoc} */
-    public boolean isEmpty() {
-        return !request.getKeys().hasMoreElements();
-    }
-
-
-    /** {@inheritDoc} */
-    public Set<String> keySet() {
-        return new KeySet(request);
-    }
-
-
-    /** {@inheritDoc} */
-    public V put(String key, V value) {
-        throw new UnsupportedOperationException();
-    }
-
-
-    /** {@inheritDoc} */
-    public void putAll(Map<? extends String, ? extends V> map) {
-        throw new UnsupportedOperationException();
-    }
-
-
-    /** {@inheritDoc} */
-    public V remove(Object key) {
-        throw new UnsupportedOperationException();
-    }
-
-
-    /** {@inheritDoc} */
-    public int size() {
-        return enumerationSize(request.getKeys());
-    }
-
-
-    /** {@inheritDoc} */
-    public Collection<V> values() {
-        return new ReadOnlyEnumerationMapValuesCollection();
-    }
-
-
-    /** {@inheritDoc} */
-    @SuppressWarnings("unchecked")
-    @Override
-    public boolean equals(Object o) {
-        HasKeys<V> otherRequest = ((ReadOnlyEnumerationMap<V>) o).request;
-        boolean retValue = true;
-        Set<String> otherKeys = new HashSet<String>();
-        for (Enumeration<String> attribs = otherRequest.getKeys(); attribs
-                .hasMoreElements();) {
-            otherKeys.add(attribs.nextElement());
-        }
-        for (Enumeration<String> attribs = request.getKeys(); attribs
-                .hasMoreElements()
-                && retValue;) {
-            String parameterName = attribs.nextElement();
-            retValue = request.getValue(parameterName).equals(
-                    otherRequest.getValue(parameterName));
-            otherKeys.remove(parameterName);
-        }
-
-        return retValue && otherKeys.isEmpty();
-    }
-
-    /** {@inheritDoc} */
-    @Override
-    public int hashCode() {
-        int retValue = 0;
-        for (Enumeration<String> attribs = request.getKeys(); attribs
-                .hasMoreElements();) {
-            String parameterName = attribs.nextElement();
-            V value = request.getValue(parameterName);
-            retValue += parameterName.hashCode() ^ (value == null ? 0 : value.hashCode());
-        }
-        return retValue;
-    }
-
-    /**
-     * Entry set implementation for {@link ReadOnlyEnumerationMap}.
-     */
-    class ReadOnlyEnumerationMapEntrySet implements Set<Map.Entry<String, V>> {
-
-        @Override
-        public boolean add(java.util.Map.Entry<String, V> e) {
-            throw new UnsupportedOperationException();
-        }
-
-        @Override
-        public boolean addAll(
-                Collection<? extends java.util.Map.Entry<String, V>> c) {
-            throw new UnsupportedOperationException();
-        }
-
-        @Override
-        public void clear() {
-            throw new UnsupportedOperationException();
-        }
-
-        @SuppressWarnings("unchecked")
-        @Override
-        public boolean contains(Object o) {
-            return containsEntry((java.util.Map.Entry<String, V>) o);
-        }
-
-        @SuppressWarnings("unchecked")
-        @Override
-        public boolean containsAll(Collection<?> c) {
-            Collection<Map.Entry<String, V>> realCollection =
-                (Collection<Map.Entry<String, V>>) c;
-            for (Map.Entry<String, V> entry : realCollection) {
-                if (!containsEntry(entry)) {
-                    return false;
-                }
-            }
-            return true;
-        }
-
-        @Override
-        public boolean isEmpty() {
-            return ReadOnlyEnumerationMap.this.isEmpty();
-        }
-
-        @Override
-        public Iterator<java.util.Map.Entry<String, V>> iterator() {
-            return new ReadOnlyEnumerationMapEntrySetIterator();
-        }
-
-        @Override
-        public boolean remove(Object o) {
-            throw new UnsupportedOperationException();
-        }
-
-        @Override
-        public boolean removeAll(Collection<?> c) {
-            throw new UnsupportedOperationException();
-        }
-
-        @Override
-        public boolean retainAll(Collection<?> c) {
-            throw new UnsupportedOperationException();
-        }
-
-        @Override
-        public int size() {
-            return ReadOnlyEnumerationMap.this.size();
-        }
-
-        @Override
-        public Object[] toArray() {
-            return toList().toArray();
-        }
-
-        @Override
-        public <T> T[] toArray(T[] a) {
-            return toList().toArray(a);
-        }
-
-        /**
-         * Checks whether the entry is present.
-         *
-         * @param entry The entry to check.
-         * @return <code>true</code> if the entry is present.
-         */
-        protected boolean containsEntry(Map.Entry<String, V> entry) {
-            V storedValue = request.getValue(key(entry.getKey()));
-            return storedValue != null && storedValue.equals(entry.getValue());
-        }
-
-        /**
-         * Turns this set into a list.
-         *
-         * @return The list.
-         */
-        private List<Map.Entry<String, V>> toList() {
-            List<Map.Entry<String, V>> entries = new ArrayList<Map.Entry<String, V>>();
-            Enumeration<String> names = request.getKeys();
-            while (names.hasMoreElements()) {
-                entries.add(extractNextEntry(names));
-            }
-            return entries;
-        }
-
-        /**
-         * Returns the next entry, given the enumeration.
-         *
-         * @param names The enumeration to get the next key from.
-         * @return The next entry.
-         */
-        private MapEntry<String, V> extractNextEntry(
-                Enumeration<String> names) {
-            String name = names.nextElement();
-            return new MapEntry<String, V>(name, request.getValue(name),
-                    false);
-        }
-
-        /**
-         * Iterates entries of {@link ReadOnlyEnumerationMap}.
-         */
-        private class ReadOnlyEnumerationMapEntrySetIterator implements Iterator<Map.Entry<String, V>> {
-
-            /**
-             * Enumerates keys.
-             */
-            private Enumeration<String> namesEnumeration = request.getKeys();
-
-            @Override
-            public boolean hasNext() {
-                return namesEnumeration.hasMoreElements();
-            }
-
-            @Override
-            public java.util.Map.Entry<String, V> next() {
-                return extractNextEntry(namesEnumeration);
-            }
-
-            @Override
-            public void remove() {
-                throw new UnsupportedOperationException();
-            }
-
-        }
-    }
-
-    /**
-     * Values collection for {@link ReadOnlyEnumerationMap}.
-     */
-    private class ReadOnlyEnumerationMapValuesCollection implements Collection<V> {
-
-        @Override
-        public boolean add(V e) {
-            throw new UnsupportedOperationException();
-        }
-
-        @Override
-        public boolean addAll(Collection<? extends V> c) {
-            throw new UnsupportedOperationException();
-        }
-
-        @Override
-        public void clear() {
-            throw new UnsupportedOperationException();
-        }
-
-        @Override
-        public boolean contains(Object o) {
-            return containsValue(o);
-        }
-
-        @SuppressWarnings("unchecked")
-        @Override
-        public boolean containsAll(Collection<?> c) {
-            Collection<String> realCollection = (Collection<String>) c;
-            List<String> valueList = new ArrayList<String>(realCollection);
-            for (Enumeration<String> keysEnum = request.getKeys(); keysEnum.hasMoreElements();) {
-                valueList.remove(request.getValue(keysEnum.nextElement()));
-                if (valueList.isEmpty()) {
-                    return true;
-                }
-            }
-            return false;
-        }
-
-        @Override
-        public boolean isEmpty() {
-            return ReadOnlyEnumerationMap.this.isEmpty();
-        }
-
-        @Override
-        public Iterator<V> iterator() {
-            return new ReadOnlyEnumerationMapValuesCollectionIterator();
-        }
-
-        @Override
-        public boolean remove(Object o) {
-            throw new UnsupportedOperationException();
-        }
-
-        @Override
-        public boolean removeAll(Collection<?> c) {
-            throw new UnsupportedOperationException();
-        }
-
-        @Override
-        public boolean retainAll(Collection<?> c) {
-            throw new UnsupportedOperationException();
-        }
-
-        @Override
-        public int size() {
-            return ReadOnlyEnumerationMap.this.size();
-        }
-
-        @Override
-        public Object[] toArray() {
-            return toList().toArray();
-        }
-
-        @Override
-        public <T> T[] toArray(T[] a) {
-            return toList().toArray(a);
-        }
-
-        /**
-         * Turns this collection into a list.
-         *
-         * @return The list.
-         */
-        private List<V> toList() {
-            List<V> entries = new ArrayList<V>();
-            Enumeration<String> names = request.getKeys();
-            while (names.hasMoreElements()) {
-                entries.add(request.getValue(names.nextElement()));
-            }
-            return entries;
-        }
-
-        /**
-         * Iterates values of {@link ReadOnlyEnumerationMap}.
-         */
-        private class ReadOnlyEnumerationMapValuesCollectionIterator implements Iterator<V> {
-
-            /**
-             * Enumerates attribute keys.
-             */
-            private Enumeration<String> namesEnumeration = request.getKeys();
-
-            @Override
-            public boolean hasNext() {
-                return namesEnumeration.hasMoreElements();
-            }
-
-            @Override
-            public V next() {
-                return request.getValue(namesEnumeration.nextElement());
-            }
-
-            @Override
-            public void remove() {
-                throw new UnsupportedOperationException();
-            }
-        }
-    }
-}
diff --git a/tiles-request/tiles-request-api/src/main/java/org/apache/tiles/request/collection/RemovableKeySet.java b/tiles-request/tiles-request-api/src/main/java/org/apache/tiles/request/collection/RemovableKeySet.java
deleted file mode 100644
index 1430f80..0000000
--- a/tiles-request/tiles-request-api/src/main/java/org/apache/tiles/request/collection/RemovableKeySet.java
+++ /dev/null
@@ -1,95 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.request.collection;
-
-import static org.apache.tiles.request.collection.CollectionUtil.*;
-
-import java.util.Collection;
-import java.util.Enumeration;
-import java.util.LinkedHashSet;
-import java.util.Set;
-
-import org.apache.tiles.request.attribute.HasRemovableKeys;
-
-/**
- * Wraps {@link HasRemovableKeys} keys as a set.
- *
- * @version $Rev$ $Date$
- */
-public class RemovableKeySet extends KeySet {
-
-    /**
-     * The request.
-     */
-    private HasRemovableKeys<?> request;
-
-    /**
-     * Constructor.
-     *
-     * @param request The request.
-     */
-    public RemovableKeySet(HasRemovableKeys<?> request) {
-        super(request);
-        this.request = request;
-    }
-
-    @Override
-    public boolean remove(Object o) {
-        String skey = key(o);
-        Object previous = request.getValue(skey);
-        if (previous != null) {
-            request.removeValue(skey);
-            return true;
-        }
-        return false;
-    }
-
-    @SuppressWarnings("unchecked")
-    @Override
-    public boolean removeAll(Collection<?> c) {
-        Collection<String> realCollection = (Collection<String>) c;
-        boolean retValue = false;
-        for (String entry : realCollection) {
-            retValue |= remove(entry);
-        }
-        return retValue;
-    }
-
-    @SuppressWarnings("unchecked")
-    @Override
-    public boolean retainAll(Collection<?> c) {
-        Collection<String> realCollection = (Collection<String>) c;
-        boolean retValue = false;
-        Set<String> keysToRemove = new LinkedHashSet<String>();
-        for (Enumeration<String> keys = request.getKeys(); keys.hasMoreElements();) {
-            String key = keys.nextElement();
-            if (!realCollection.contains(key)) {
-                retValue = true;
-                keysToRemove.add(key);
-            }
-        }
-        for (String key : keysToRemove) {
-            request.removeValue(key);
-        }
-        return retValue;
-    }
-
-}
diff --git a/tiles-request/tiles-request-api/src/main/java/org/apache/tiles/request/collection/ScopeMap.java b/tiles-request/tiles-request-api/src/main/java/org/apache/tiles/request/collection/ScopeMap.java
deleted file mode 100644
index 93465ea..0000000
--- a/tiles-request/tiles-request-api/src/main/java/org/apache/tiles/request/collection/ScopeMap.java
+++ /dev/null
@@ -1,178 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.request.collection;
-
-import static org.apache.tiles.request.collection.CollectionUtil.*;
-
-import java.util.Collection;
-import java.util.Enumeration;
-import java.util.Iterator;
-import java.util.LinkedHashSet;
-import java.util.Map;
-import java.util.Set;
-
-import org.apache.tiles.request.attribute.AttributeExtractor;
-
-/**
- * Exposes a scope context as a <String, Object> map.
- *
- * @version $Rev$ $Date$
- */
-
-public class ScopeMap extends ReadOnlyEnumerationMap<Object> {
-
-    /**
-     * The context to read.
-     */
-    private AttributeExtractor context;
-
-    /**
-     * Constructor.
-     *
-     * @param context The servlet context to use.
-     */
-    public ScopeMap(AttributeExtractor context) {
-        super(context);
-        this.context = context;
-    }
-
-
-    /** {@inheritDoc} */
-    public void clear() {
-        Enumeration<String> keys = context.getKeys();
-        while (keys.hasMoreElements()) {
-            context.removeValue(keys.nextElement());
-        }
-    }
-
-    /** {@inheritDoc} */
-    public Set<Map.Entry<String, Object>> entrySet() {
-        return new ScopeEntrySet();
-    }
-
-    /** {@inheritDoc} */
-    public Set<String> keySet() {
-        return new RemovableKeySet(context);
-    }
-
-    /** {@inheritDoc} */
-    public Object put(String key, Object value) {
-        String skey = key(key);
-        Object previous = context.getValue(skey);
-        context.setValue(skey, value);
-        return previous;
-    }
-
-    /** {@inheritDoc} */
-    public void putAll(Map<? extends String, ? extends Object> map) {
-        Iterator<? extends String> keys = map.keySet().iterator();
-        while (keys.hasNext()) {
-            String key = keys.next();
-            context.setValue(key, map.get(key));
-        }
-    }
-
-    /** {@inheritDoc} */
-    public Object remove(Object key) {
-        String skey = key(key);
-        Object previous = context.getValue(skey);
-        context.removeValue(skey);
-        return (previous);
-    }
-
-    /**
-     * Entry set implementation for {@link ScopeMap}.
-     */
-    private class ScopeEntrySet extends ReadOnlyEnumerationMap<Object>.ReadOnlyEnumerationMapEntrySet {
-
-        @Override
-        public boolean add(java.util.Map.Entry<String, Object> e) {
-            String key = e.getKey();
-            Object value = e.getValue();
-            Object oldValue = get(key);
-            if (oldValue == null || !oldValue.equals(value)) {
-                context.setValue(key, value);
-                return true;
-            }
-            return false;
-        }
-
-        @Override
-        public boolean addAll(
-                Collection<? extends java.util.Map.Entry<String, Object>> c) {
-            boolean retValue = false;
-            for (Map.Entry<String, Object> entry : c) {
-                retValue |= add(entry);
-            }
-            return retValue;
-        }
-
-        @Override
-        public void clear() {
-            ScopeMap.this.clear();
-        }
-
-        @SuppressWarnings("unchecked")
-        @Override
-        public boolean remove(Object o) {
-            Map.Entry<String, Object> entry = (java.util.Map.Entry<String, Object>) o;
-            String key = entry.getKey();
-            Object currentValue = context.getValue(key);
-            if (currentValue != null && currentValue.equals(entry.getValue())) {
-                context.removeValue(key);
-                return true;
-            }
-            return false;
-        }
-
-        @SuppressWarnings("unchecked")
-        @Override
-        public boolean removeAll(Collection<?> c) {
-            Collection<Map.Entry<String, Object>> realCollection = (Collection<java.util.Map.Entry<String, Object>>) c;
-            boolean retValue = false;
-            for (Map.Entry<String, Object> entry : realCollection) {
-                retValue |= remove(entry);
-            }
-            return retValue;
-        }
-
-        @SuppressWarnings("unchecked")
-        @Override
-        public boolean retainAll(Collection<?> c) {
-            Collection<Map.Entry<String, Object>> realCollection = (Collection<java.util.Map.Entry<String, Object>>) c;
-            boolean retValue = false;
-            Set<String> keysToRemove = new LinkedHashSet<String>();
-            for (Enumeration<String> keys = context.getKeys(); keys.hasMoreElements();) {
-                String key = keys.nextElement();
-                Object value = context.getValue(key);
-                Map.Entry<String, Object> entry = new MapEntry<String, Object>(key, value, false);
-                if (!realCollection.contains(entry)) {
-                    retValue = true;
-                    keysToRemove.add(key);
-                }
-            }
-            for (String key : keysToRemove) {
-                context.removeValue(key);
-            }
-            return retValue;
-        }
-    }
-}
diff --git a/tiles-request/tiles-request-api/src/main/java/org/apache/tiles/request/collection/package-info.java b/tiles-request/tiles-request-api/src/main/java/org/apache/tiles/request/collection/package-info.java
deleted file mode 100644
index 02818bf..0000000
--- a/tiles-request/tiles-request-api/src/main/java/org/apache/tiles/request/collection/package-info.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-/**
- * Special collections and maps for attributes (like HTTP request 
- * or session attributes).
- * These can be used to access another object's attributes through 
- * a Map interface.
- * <ul>
- * <li> {@link org.apache.tiles.request.collection.ScopeMap} provides
- * full get/put/remove access to the attributes.
- * <li> {@link org.apache.tiles.request.collection.ReadOnlyEnumerationMap}
- * provides get-only access.
- * <li> {@link org.apache.tiles.request.collection.HeaderValuesMap}
- * provides get-only access to a multi-valued map (typically, headers).
- * </ul>
- */
-package org.apache.tiles.request.collection;
-
diff --git a/tiles-request/tiles-request-api/src/main/java/org/apache/tiles/request/locale/LocaleUtil.java b/tiles-request/tiles-request-api/src/main/java/org/apache/tiles/request/locale/LocaleUtil.java
deleted file mode 100644
index 4da8afd..0000000
--- a/tiles-request/tiles-request-api/src/main/java/org/apache/tiles/request/locale/LocaleUtil.java
+++ /dev/null
@@ -1,77 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.request.locale;
-
-import java.util.Locale;
-
-/**
- * Utilities for locale manipulation.
- *
- * @version $Rev$ $Date$
- */
-public final class LocaleUtil {
-
-    /**
-     * The "null" Locale, i.e. a Locale that points to no real locale.
-     *
-     * @deprecated use Locale.ROOT instead.
-     */
-    @Deprecated
-    public static final Locale NULL_LOCALE = Locale.ROOT;
-
-    /**
-     * Private constructor to avoid instantiation.
-     */
-    private LocaleUtil() {
-    }
-
-    /**
-     * <p>
-     * Returns the "parent" locale of a given locale.
-     * </p>
-     * <p>
-     * If the original locale is only language-based, the {@link #NULL_LOCALE}
-     * object is returned.
-     * </p>
-     * <p>
-     * If the original locale is {@link #NULL_LOCALE}, then <code>null</code>
-     * is returned.
-     * </p>
-     *
-     * @param locale The original locale.
-     * @return The parent locale.
-     */
-    public static Locale getParentLocale(Locale locale) {
-        Locale retValue = null;
-        String language = locale.getLanguage();
-        String country = locale.getCountry();
-        String variant = locale.getVariant();
-        if (!"".equals(variant)) {
-            retValue = new Locale(language, country);
-        } else if (!"".equals(country)) {
-            retValue = new Locale(language);
-        } else if (!"".equals(language)) {
-            retValue = Locale.ROOT;
-        }
-
-        return retValue;
-    }
-}
diff --git a/tiles-request/tiles-request-api/src/main/java/org/apache/tiles/request/locale/PostfixedApplicationResource.java b/tiles-request/tiles-request-api/src/main/java/org/apache/tiles/request/locale/PostfixedApplicationResource.java
deleted file mode 100644
index 9864239..0000000
--- a/tiles-request/tiles-request-api/src/main/java/org/apache/tiles/request/locale/PostfixedApplicationResource.java
+++ /dev/null
@@ -1,196 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.tiles.request.locale;
-
-import java.util.Locale;
-
-import org.apache.tiles.request.ApplicationResource;
-
-/**
- * An ApplicationResource whose localization is managed by postfixing the file name.
- * The various localizations are file sitting next to each other, with the locale identified in the postfix.
- * 
- * For instance:
- * <pre>
- * /WEB-INF/tiles.xml
- * /WEB-INF/tiles_fr.xml
- * /WEB-INF/tiles_it.xml
- * /WEB-INF/tiles_it_IT.xml
- * </pre>
- * 
- * Two PostfixedApplicationResources are equals if they share the same localized path and the same class.
- * 
- * @version $Rev$ $Date$
- */
-public abstract class PostfixedApplicationResource implements ApplicationResource {
-
-    /** The path without its suffix and its locale postfix. */
-    private String pathPrefix;
-    /** The suffix. */
-    private String suffix;
-    /** The Locale. */
-    private Locale locale;
-
-    /**
-     * Create a new PostfixedApplicationResource for the specified path.
-     * @param localePath the path including localization.
-     */
-    protected PostfixedApplicationResource(String localePath) {
-        int prefixIndex = localePath.indexOf('_', localePath.lastIndexOf("/"));
-        int suffixIndex = localePath.lastIndexOf('.');
-        if (suffixIndex < 0) {
-            suffix = "";
-            suffixIndex = localePath.length();
-        } else {
-            suffix = localePath.substring(suffixIndex);
-        }
-        if (prefixIndex < 0) {
-            pathPrefix = localePath.substring(0, suffixIndex);
-            locale = Locale.ROOT;
-        } else {
-            pathPrefix = localePath.substring(0, prefixIndex);
-            String localeString = localePath.substring(prefixIndex + 1, suffixIndex);
-            int countryIndex = localeString.indexOf('_');
-            if (countryIndex < 0) {
-                locale = new Locale(localeString);
-            } else {
-                int variantIndex = localeString.indexOf('_', countryIndex + 1);
-                if (variantIndex < 0) {
-                    locale = new Locale(localeString.substring(0, countryIndex),
-                            localeString.substring(countryIndex + 1));
-                } else {
-                    locale = new Locale(localeString.substring(0, countryIndex), localeString.substring(
-                            countryIndex + 1, variantIndex), localeString.substring(variantIndex + 1));
-                }
-            }
-        }
-    }
-
-    /**
-     * Create a new PostfixedApplicationResource for the specified path.
-     * @param path the path excluding localization.
-     * @param locale the Locale.
-     */
-    protected PostfixedApplicationResource(String path, Locale locale) {
-        int suffixIndex = path.lastIndexOf('.');
-        if (suffixIndex < 0) {
-            suffix = "";
-            pathPrefix = path;
-        } else {
-            pathPrefix = path.substring(0, suffixIndex);
-            suffix = path.substring(suffixIndex);
-        }
-        this.locale = locale;
-    }
-
-    /** {@inheritDoc} */
-    @Override
-    public final String getLocalePath() {
-        return getLocalePath(locale);
-    }
-
-    /** {@inheritDoc} */
-    @Override
-    public final String getPath() {
-        return pathPrefix + suffix;
-    }
-
-    /** {@inheritDoc} */
-    @Override
-    public final String getLocalePath(Locale newLocale) {
-        return pathPrefix + getPostfix(newLocale) + suffix;
-    }
-
-    /**
-     * Get the postfix for that Locale.
-     * @param locale a locale.
-     * @return the matching postfix.
-     */
-    private static final String getPostfix(Locale locale) {
-        if (locale == null) {
-            return "";
-        }
-
-        StringBuilder builder = new StringBuilder();
-        String language = locale.getLanguage();
-        String country = locale.getCountry();
-        String variant = locale.getVariant();
-        if (!"".equals(language)) {
-            builder.append("_");
-            builder.append(language);
-            if (!"".equals(country)) {
-                builder.append("_");
-                builder.append(country);
-                if (!"".equals(variant)) {
-                    builder.append("_");
-                    builder.append(variant);
-                }
-            }
-        }
-        return builder.toString();
-    }
-
-    /** {@inheritDoc} */
-    @Override
-    public final Locale getLocale() {
-        return locale;
-    }
-
-    /** {@inheritDoc} */
-    @Override
-    public int hashCode() {
-        final int prime = 31;
-        int result = 1;
-        result = prime * result + ((locale == null) ? 0 : locale.hashCode());
-        result = prime * result + ((pathPrefix == null) ? 0 : pathPrefix.hashCode());
-        result = prime * result + ((suffix == null) ? 0 : suffix.hashCode());
-        return result;
-    }
-
-    /** {@inheritDoc} */
-    @Override
-    public boolean equals(Object obj) {
-        if (this == obj)
-            return true;
-        if (obj == null)
-            return false;
-        if (getClass() != obj.getClass())
-            return false;
-        PostfixedApplicationResource other = (PostfixedApplicationResource) obj;
-        if (locale == null) {
-            if (other.locale != null)
-                return false;
-        } else if (!locale.equals(other.locale))
-            return false;
-        if (pathPrefix == null) {
-            if (other.pathPrefix != null)
-                return false;
-        } else if (!pathPrefix.equals(other.pathPrefix))
-            return false;
-        if (suffix == null) {
-            if (other.suffix != null)
-                return false;
-        } else if (!suffix.equals(other.suffix))
-            return false;
-        return true;
-    }
-}
diff --git a/tiles-request/tiles-request-api/src/main/java/org/apache/tiles/request/locale/URLApplicationResource.java b/tiles-request/tiles-request-api/src/main/java/org/apache/tiles/request/locale/URLApplicationResource.java
deleted file mode 100644
index 9535a20..0000000
--- a/tiles-request/tiles-request-api/src/main/java/org/apache/tiles/request/locale/URLApplicationResource.java
+++ /dev/null
@@ -1,107 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.tiles.request.locale;
-
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.net.JarURLConnection;
-import java.net.MalformedURLException;
-import java.net.URL;
-import java.net.URLConnection;
-import java.util.Locale;
-
-/**
- * A {@link PostfixedApplicationResource} that can be accessed through a URL.
- *
- * @version $Rev$ $Date$
- */
-
-public class URLApplicationResource extends PostfixedApplicationResource {
-
-    /** the URL where the contents can be found. */
-    private URL url;
-    /** if the URL matches a file, this is the file. */
-    private File file;
-
-    /**
-     * Creates a URLApplicationResource for the specified path that can be accessed through the specified URL.
-     * 
-     * @param localePath the path including localization.
-     * @param url the URL where the contents can be found.
-     */
-    public URLApplicationResource(String localePath, URL url) {
-        super(localePath);
-        this.url = url;
-        if ("file".equals(url.getProtocol())) {
-            file = new File(url.getPath());
-        }
-    }
-
-    /**
-     * Creates a URLApplicationResource for the specified path that can be accessed through the specified URL.
-     * 
-     * @param path the path excluding localization.
-     * @param locale the Locale.
-     * @param url the URL where the contents can be found.
-     */
-    public URLApplicationResource(String path, Locale locale, URL url) throws MalformedURLException {
-        super(path, locale);
-        this.url = new URL(url, getLocalePath());
-        if ("file".equals(url.getProtocol())) {
-            file = new File(this.url.getPath());
-        }
-    }
-
-    /** {@inheritDoc} */
-    @Override
-    public InputStream getInputStream() throws IOException {
-        if (file != null) {
-            return new FileInputStream(file);
-        } else {
-            return url.openConnection().getInputStream();
-        }
-    }
-
-    /** {@inheritDoc} */
-    @Override
-    public long getLastModified() throws IOException {
-        if (file != null) {
-            return file.lastModified();
-        } else {
-            URLConnection connection = url.openConnection();
-            if (connection instanceof JarURLConnection) {
-                return ((JarURLConnection) connection).getJarEntry().getTime();
-            } else {
-                long result = connection.getLastModified();
-                return result;
-            }
-        }
-    }
-
-    /** {@inheritDoc} */
-    @Override
-    public String toString() {
-        return "Resource " + getLocalePath() + " at " + url.toString();
-    }
-}
diff --git a/tiles-request/tiles-request-api/src/main/java/org/apache/tiles/request/package-info.java b/tiles-request/tiles-request-api/src/main/java/org/apache/tiles/request/package-info.java
deleted file mode 100644
index 65d2558..0000000
--- a/tiles-request/tiles-request-api/src/main/java/org/apache/tiles/request/package-info.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-/**
- * This package defines the concept of "request" as the event causing a 
- * document to be generated from a template. The process is also called
- * "rendering the template". Typical examples are servlet requests or 
- * portlet requests. 
- * 
- * This API is independent of the underlying technology, allowing the user 
- * to deal with similarities in servlets and portlets, or various template 
- * technologies, in a uniform way.
- * 
- * It is based on 3 main interfaces:
- * <ul>
- * <li>{@link org.apache.tiles.request.Request} is the main abstraction, 
- * encapsulating the parameters of the template (as attributes and scopes)
- * and the target document (as java.io.OutputStream). 
- * {@link org.apache.tiles.request.DispatchRequest} holds some features common
- * to servlets and portlets that are unlikely to be found outside of a JavaEE
- * web environment.
- * <li>{@link org.apache.tiles.ApplicationContext} can be used to access
- * application-wide configuration and resources (typically the files containing
- * the templates).
- * <li>{@link org.apache.tiles.request.render.Renderer} is the interface supported
- * by the engine in charge of rendering the template.
- * <ul>
- */
-package org.apache.tiles.request;
diff --git a/tiles-request/tiles-request-api/src/main/java/org/apache/tiles/request/reflect/CannotAccessMethodException.java b/tiles-request/tiles-request-api/src/main/java/org/apache/tiles/request/reflect/CannotAccessMethodException.java
deleted file mode 100644
index 3311ab5..0000000
--- a/tiles-request/tiles-request-api/src/main/java/org/apache/tiles/request/reflect/CannotAccessMethodException.java
+++ /dev/null
@@ -1,66 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.request.reflect;
-
-import org.apache.tiles.request.RequestException;
-
-/**
- * Indicates that a method cannot be accessed.
- *
- * @version $Rev$ $Date$
- */
-public class CannotAccessMethodException extends RequestException {
-
-    /**
-     * Constructor.
-     */
-    public CannotAccessMethodException() {
-    }
-
-    /**
-     * Constructor.
-     *
-     * @param message The detail message.
-     */
-    public CannotAccessMethodException(String message) {
-        super(message);
-    }
-
-    /**
-     * Constructor.
-     *
-     * @param e The exception to be wrapped.
-     */
-    public CannotAccessMethodException(Throwable e) {
-        super(e);
-    }
-
-    /**
-     * Constructor.
-     *
-     * @param message The detail message.
-     * @param e The exception to be wrapped.
-     */
-    public CannotAccessMethodException(String message, Throwable e) {
-        super(message, e);
-    }
-
-}
diff --git a/tiles-request/tiles-request-api/src/main/java/org/apache/tiles/request/reflect/CannotInstantiateObjectException.java b/tiles-request/tiles-request-api/src/main/java/org/apache/tiles/request/reflect/CannotInstantiateObjectException.java
deleted file mode 100644
index 08b6621..0000000
--- a/tiles-request/tiles-request-api/src/main/java/org/apache/tiles/request/reflect/CannotInstantiateObjectException.java
+++ /dev/null
@@ -1,66 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.request.reflect;
-
-import org.apache.tiles.request.RequestException;
-
-/**
- * Indicates that an object cannot be instantiated.
- *
- * @version $Rev$ $Date$
- */
-public class CannotInstantiateObjectException extends RequestException {
-
-    /**
-     * Constructor.
-     */
-    public CannotInstantiateObjectException() {
-    }
-
-    /**
-     * Constructor.
-     *
-     * @param message The detail message.
-     */
-    public CannotInstantiateObjectException(String message) {
-        super(message);
-    }
-
-    /**
-     * Constructor.
-     *
-     * @param e The exception to be wrapped.
-     */
-    public CannotInstantiateObjectException(Throwable e) {
-        super(e);
-    }
-
-    /**
-     * Constructor.
-     *
-     * @param message The detail message.
-     * @param e The exception to be wrapped.
-     */
-    public CannotInstantiateObjectException(String message, Throwable e) {
-        super(message, e);
-    }
-
-}
diff --git a/tiles-request/tiles-request-api/src/main/java/org/apache/tiles/request/reflect/ClassUtil.java b/tiles-request/tiles-request-api/src/main/java/org/apache/tiles/request/reflect/ClassUtil.java
deleted file mode 100644
index 96a9898..0000000
--- a/tiles-request/tiles-request-api/src/main/java/org/apache/tiles/request/reflect/ClassUtil.java
+++ /dev/null
@@ -1,144 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.request.reflect;
-
-import java.beans.BeanInfo;
-import java.beans.Introspector;
-import java.beans.PropertyDescriptor;
-import java.util.Map;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-
-/**
- * Utilities to work with dynamic class loading and instantiation.
- *
- * @version $Rev$ $Date$
- */
-public final class ClassUtil {
-
-    /**
-     * Constructor, private to avoid instantiation.
-     */
-    private ClassUtil() {
-    }
-
-    /**
-     * Returns the class and casts it to the correct subclass.<br>
-     * It tries to use the thread's current classloader first and, if it does
-     * not succeed, uses the classloader of ClassUtil.
-     *
-     * @param <T> The subclass to use.
-     * @param className The name of the class to load.
-     * @param baseClass The base class to subclass to.
-     * @return The loaded class.
-     * @throws ClassNotFoundException If the class has not been found.
-     */
-    public static <T> Class<? extends T> getClass(String className,
-            Class<T> baseClass) throws ClassNotFoundException {
-        ClassLoader classLoader = Thread.currentThread()
-                .getContextClassLoader();
-        if (classLoader == null) {
-            classLoader = ClassUtil.class.getClassLoader();
-        }
-        return Class.forName(className, true, classLoader)
-                .asSubclass(baseClass);
-    }
-
-    /**
-     * Returns an instance of the given class name, by calling the default
-     * constructor.
-     *
-     * @param className The class name to load and to instantiate.
-     * @return The new instance of the class name.
-     * @throws CannotInstantiateObjectException If something goes wrong during
-     * instantiation.
-     */
-    public static Object instantiate(String className) {
-        return instantiate(className, false);
-    }
-
-    /**
-     * Returns an instance of the given class name, by calling the default
-     * constructor.
-     *
-     * @param className The class name to load and to instantiate.
-     * @param returnNull If <code>true</code>, if the class is not found it
-     * returns <code>true</code>, otherwise it throws a
-     * <code>TilesException</code>.
-     * @return The new instance of the class name.
-     * @throws CannotInstantiateObjectException If something goes wrong during instantiation.
-     */
-    public static Object instantiate(String className, boolean returnNull) {
-        ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
-        if (classLoader == null) {
-            classLoader = ClassUtil.class.getClassLoader();
-        }
-        try {
-            Class<? extends Object> namedClass = getClass(className, Object.class);
-            return namedClass.newInstance();
-        } catch (ClassNotFoundException e) {
-            if (returnNull) {
-                return null;
-            }
-            throw new CannotInstantiateObjectException(
-                    "Unable to resolve factory class: '" + className + "'", e);
-        } catch (IllegalAccessException e) {
-            throw new CannotInstantiateObjectException(
-                    "Unable to access factory class: '" + className + "'", e);
-        } catch (InstantiationException e) {
-            throw new CannotInstantiateObjectException(
-                    "Unable to instantiate factory class: '"
-                            + className
-                            + "'. Make sure that this class has a default constructor",
-                    e);
-        }
-    }
-
-    /**
-     * Collects bean infos from a class and filling a list.
-     *
-     * @param clazz The class to be inspected.
-     * @param name2descriptor The map in the form: name of the property ->
-     * descriptor.
-     */
-    public static void collectBeanInfo(Class<?> clazz,
-            Map<String, PropertyDescriptor> name2descriptor) {
-        Logger log = LoggerFactory.getLogger(ClassUtil.class);
-        BeanInfo info = null;
-        try {
-            info = Introspector.getBeanInfo(clazz);
-        } catch (Exception ex) {
-            if (log.isDebugEnabled()) {
-                log.debug("Cannot inspect class " + clazz, ex);
-            }
-        }
-        if (info == null) {
-            return;
-        }
-        for (PropertyDescriptor pd : info.getPropertyDescriptors()) {
-            pd.setValue("type", pd.getPropertyType());
-            pd.setValue("resolvableAtDesignTime", Boolean.TRUE);
-            name2descriptor.put(pd.getName(), pd);
-        }
-    }
-}
diff --git a/tiles-request/tiles-request-api/src/main/java/org/apache/tiles/request/reflect/package-info.java b/tiles-request/tiles-request-api/src/main/java/org/apache/tiles/request/reflect/package-info.java
deleted file mode 100644
index 299c145..0000000
--- a/tiles-request/tiles-request-api/src/main/java/org/apache/tiles/request/reflect/package-info.java
+++ /dev/null
@@ -1,24 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-/**
- * Utilities to work with dynamic class loading and instantiation.
- */
-package org.apache.tiles.request.reflect;
diff --git a/tiles-request/tiles-request-api/src/main/java/org/apache/tiles/request/render/BasicRendererFactory.java b/tiles-request/tiles-request-api/src/main/java/org/apache/tiles/request/render/BasicRendererFactory.java
deleted file mode 100644
index e580400..0000000
--- a/tiles-request/tiles-request-api/src/main/java/org/apache/tiles/request/render/BasicRendererFactory.java
+++ /dev/null
@@ -1,84 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.request.render;
-
-import java.util.HashMap;
-import java.util.Map;
-
-
-/**
- * Basic renderer factory implementation.
- *
- * @version $Rev$ $Date$
- */
-public class BasicRendererFactory implements RendererFactory {
-
-    /**
-     * The renderer name/renderer map.
-     */
-    protected Map<String, Renderer> renderers;
-
-    /**
-     * The default renderer.
-     */
-    protected Renderer defaultRenderer;
-
-    /**
-     * Constructor.
-     */
-    public BasicRendererFactory() {
-        renderers = new HashMap<String, Renderer>();
-    }
-
-    /** {@inheritDoc} */
-    public Renderer getRenderer(String name) {
-        Renderer retValue;
-        if (name != null) {
-            retValue = renderers.get(name);
-            if (retValue == null) {
-                throw new NoSuchRendererException("Cannot find a renderer named '" + name + "'");
-            }
-        } else {
-            retValue = defaultRenderer;
-        }
-
-        return retValue;
-    }
-
-    /**
-     * Sets the default renderer.
-     *
-     * @param renderer The default renderer.
-     */
-    public void setDefaultRenderer(Renderer renderer) {
-        this.defaultRenderer = renderer;
-    }
-
-    /**
-     * Registers a renderer.
-     *
-     * @param name The name of the renderer.
-     * @param renderer The renderer to register.
-     */
-    public void registerRenderer(String name, Renderer renderer) {
-        renderers.put(name, renderer);
-    }
-}
diff --git a/tiles-request/tiles-request-api/src/main/java/org/apache/tiles/request/render/CannotRenderException.java b/tiles-request/tiles-request-api/src/main/java/org/apache/tiles/request/render/CannotRenderException.java
deleted file mode 100644
index 0e5ddf3..0000000
--- a/tiles-request/tiles-request-api/src/main/java/org/apache/tiles/request/render/CannotRenderException.java
+++ /dev/null
@@ -1,65 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.request.render;
-
-
-/**
- * Indicates that something went wrong during the rendering process.
- *
- * @version $Rev$ $Date$
- */
-public class CannotRenderException extends RenderException {
-
-    /**
-     * Constructor.
-     */
-    public CannotRenderException() {
-    }
-
-    /**
-     * Constructor.
-     *
-     * @param message The detail message.
-     */
-    public CannotRenderException(String message) {
-        super(message);
-    }
-
-    /**
-     * Constructor.
-     *
-     * @param e The exception to be wrapped.
-     */
-    public CannotRenderException(Throwable e) {
-        super(e);
-    }
-
-    /**
-     * Constructor.
-     *
-     * @param message The detail message.
-     * @param e The exception to be wrapped.
-     */
-    public CannotRenderException(String message, Throwable e) {
-        super(message, e);
-    }
-
-}
diff --git a/tiles-request/tiles-request-api/src/main/java/org/apache/tiles/request/render/ChainedDelegateRenderer.java b/tiles-request/tiles-request-api/src/main/java/org/apache/tiles/request/render/ChainedDelegateRenderer.java
deleted file mode 100644
index 0b1de93..0000000
--- a/tiles-request/tiles-request-api/src/main/java/org/apache/tiles/request/render/ChainedDelegateRenderer.java
+++ /dev/null
@@ -1,85 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.request.render;
-
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.List;
-
-import org.apache.tiles.request.Request;
-
-/**
- * Renders an attribute that has no associated renderer using delegation to
- * other renderers.
- *
- * @version $Rev$ $Date$
- */
-public class ChainedDelegateRenderer implements Renderer {
-
-    /**
-     * The list of chained renderers.
-     */
-    private List<Renderer> renderers;
-
-    /**
-     * Constructor.
-     */
-    public ChainedDelegateRenderer() {
-        renderers = new ArrayList<Renderer>();
-    }
-
-    /**
-     * Adds an attribute renderer to the list. The first inserted this way, the
-     * first is checked when rendering.
-     *
-     * @param renderer The renderer to add.
-     */
-    public void addAttributeRenderer(Renderer renderer) {
-        renderers.add(renderer);
-    }
-
-
-    @Override
-    public void render(String value, Request request) throws IOException {
-        if (value == null) {
-            throw new NullPointerException("The attribute value is null");
-        }
-
-        for (Renderer renderer : renderers) {
-            if (renderer.isRenderable(value, request)) {
-                renderer.render(value, request);
-                return;
-            }
-        }
-
-        throw new CannotRenderException("Cannot renderer value '" + value + "'");
-    }
-
-    /** {@inheritDoc} */
-    public boolean isRenderable(String value, Request request) {
-        for (Renderer renderer : renderers) {
-            if (renderer.isRenderable(value, request)) {
-                return true;
-            }
-        }
-        return false;
-    }
-}
diff --git a/tiles-request/tiles-request-api/src/main/java/org/apache/tiles/request/render/DispatchRenderer.java b/tiles-request/tiles-request-api/src/main/java/org/apache/tiles/request/render/DispatchRenderer.java
deleted file mode 100644
index ef3ed25..0000000
--- a/tiles-request/tiles-request-api/src/main/java/org/apache/tiles/request/render/DispatchRenderer.java
+++ /dev/null
@@ -1,52 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.request.render;
-
-import java.io.IOException;
-
-import org.apache.tiles.request.Request;
-import org.apache.tiles.request.DispatchRequest;
-
-/**
- * Renders an attribute that contains a reference to a template.
- *
- * @version $Rev$ $Date$
- */
-public class DispatchRenderer implements Renderer {
-
-    /** {@inheritDoc} */
-    @Override
-    public void render(String path, Request request) throws IOException {
-        if (path == null) {
-            throw new CannotRenderException("Cannot dispatch a null path");
-        }
-        if (!(request instanceof DispatchRequest)) {
-            throw new CannotRenderException("Cannot dispatch outside of a web environment");
-        }
-
-        ((DispatchRequest) request).dispatch(path);
-    }
-
-    /** {@inheritDoc} */
-    public boolean isRenderable(String path, Request request) {
-        return path != null && path.startsWith("/");
-    }
-}
diff --git a/tiles-request/tiles-request-api/src/main/java/org/apache/tiles/request/render/NoSuchRendererException.java b/tiles-request/tiles-request-api/src/main/java/org/apache/tiles/request/render/NoSuchRendererException.java
deleted file mode 100644
index 3240d0f..0000000
--- a/tiles-request/tiles-request-api/src/main/java/org/apache/tiles/request/render/NoSuchRendererException.java
+++ /dev/null
@@ -1,66 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.request.render;
-
-
-/**
- * It is raised when a named renderer has not been found with that name.
- *
- * @version $Rev$ $Date$
- */
-public class NoSuchRendererException extends RenderException {
-
-    /**
-     * Constructor.
-     */
-    public NoSuchRendererException() {
-        super();
-    }
-
-    /**
-     * Constructor.
-     *
-     * @param message The detail message.
-     * @param e The exception to be wrapped.
-     */
-    public NoSuchRendererException(String message, Throwable e) {
-        super(message, e);
-    }
-
-    /**
-     * Constructor.
-     *
-     * @param message The detail message.
-     */
-    public NoSuchRendererException(String message) {
-        super(message);
-    }
-
-    /**
-     * Constructor.
-     *
-     * @param e The exception to be wrapped.
-     */
-    public NoSuchRendererException(Throwable e) {
-        super(e);
-    }
-
-}
diff --git a/tiles-request/tiles-request-api/src/main/java/org/apache/tiles/request/render/PublisherRenderer.java b/tiles-request/tiles-request-api/src/main/java/org/apache/tiles/request/render/PublisherRenderer.java
deleted file mode 100644
index a6a0baa..0000000
--- a/tiles-request/tiles-request-api/src/main/java/org/apache/tiles/request/render/PublisherRenderer.java
+++ /dev/null
@@ -1,101 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.request.render;
-
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
-
-import org.apache.tiles.request.Request;
-
-/**
- * Provides a Publisher-Subscriber implementation around the provided renderer to delegate to.
- *
- * @version $Rev: 1035784 $ $Date: 2010-11-16 20:24:12 +0000 (Tue, 16 Nov 2010) $
- */
-public class PublisherRenderer implements Renderer {
-
-    public interface RendererListener{
-        /** Called before the delegate's render method is called. */
-        void start(String template, Request request) throws IOException;
-        /** Called after the delegate's render method is called. */
-        void end(String template, Request request) throws IOException;
-        /** If the delegate render method throws an IOException it is passed through this. */
-        void handleIOException(IOException ex, Request request) throws IOException;
-    }
-
-    private final Renderer renderer;
-    private final List<RendererListener> listeners = new ArrayList<RendererListener>();
-    private final List<RendererListener> listenersReversed = new ArrayList<RendererListener>();
-
-    public PublisherRenderer(Renderer renderer){
-        this.renderer = renderer;
-    }
-
-    @Override
-    public void render(String path, Request request) throws IOException {
-        if (path == null) {
-            throw new CannotRenderException("Cannot dispatch a null path");
-        }
-        try{
-            for(RendererListener listener : listeners){
-                listener.start(path, request);
-            }
-            renderer.render(path, request);
-        }catch(IOException ex){
-            handleIOException(ex, request);
-        }finally{
-            for(RendererListener wrapper : listenersReversed){
-                wrapper.end(path, request);
-            }
-        }
-    }
-
-    @Override
-    public boolean isRenderable(String path, Request request) {
-        return renderer.isRenderable(path, request);
-    }
-
-    public void addListener(RendererListener listener){
-        listeners.add(listener);
-        listenersReversed.clear();
-        listenersReversed.addAll(listeners);
-        Collections.reverse(listenersReversed);
-    }
-
-    private void handleIOException(IOException exception, Request request) throws IOException{
-        IOException ex = exception;
-        boolean throwIt = listeners.isEmpty();
-        for(RendererListener listener : listenersReversed){
-            try{
-                listener.handleIOException(ex, request);
-                throwIt = false;
-            }catch(IOException newEx){
-                ex = newEx;
-                throwIt = true;
-            }
-        }
-        if(throwIt){
-            throw ex;
-        }
-    }
-}
diff --git a/tiles-request/tiles-request-api/src/main/java/org/apache/tiles/request/render/RenderException.java b/tiles-request/tiles-request-api/src/main/java/org/apache/tiles/request/render/RenderException.java
deleted file mode 100644
index 37fcee7..0000000
--- a/tiles-request/tiles-request-api/src/main/java/org/apache/tiles/request/render/RenderException.java
+++ /dev/null
@@ -1,65 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.request.render;
-
-import org.apache.tiles.request.RequestException;
-
-/**
- * Thrown when rendering fails.
- *
- * @version $Rev$ $Date$
- */
-public class RenderException extends RequestException {
-
-    /**
-     * Constructor.
-     */
-    public RenderException() {
-    }
-
-    /**
-     * Constructor.
-     *
-     * @param message The message of the exception.
-     */
-    public RenderException(String message) {
-        super(message);
-    }
-
-    /**
-     * Constructor.
-     *
-     * @param cause The cause.
-     */
-    public RenderException(Throwable cause) {
-        super(cause);
-    }
-
-    /**
-     * Constructor.
-     *
-     * @param message The message of the exception.
-     * @param cause The cause.
-     */
-    public RenderException(String message, Throwable cause) {
-        super(message, cause);
-    }
-}
diff --git a/tiles-request/tiles-request-api/src/main/java/org/apache/tiles/request/render/Renderer.java b/tiles-request/tiles-request-api/src/main/java/org/apache/tiles/request/render/Renderer.java
deleted file mode 100644
index 79db2ac..0000000
--- a/tiles-request/tiles-request-api/src/main/java/org/apache/tiles/request/render/Renderer.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.request.render;
-
-import java.io.IOException;
-
-import org.apache.tiles.request.Request;
-
-/**
- * An object that can render a path, depending on the request passed as a
- * parameter.
- *
- * @version $Rev$ $Date$
- */
-public interface Renderer {
-
-    /**
-     * Renders a path.
-     *
-     * @param path The path to render.
-     * @param request The Tiles request context.
-     * @throws IOException If something goes wrong during rendition.
-     */
-    void render(String path, Request request) throws IOException;
-
-    /**
-     * Checks if this renderer can render a path. Note that this does not mean
-     * it is the <strong>best</strong> renderer available, but checks only its capability.
-     *
-     * @param path The path to be rendered.
-     * @param request The request context.
-     * @return <code>true</code> if this renderer can render the attribute.
-     */
-    boolean isRenderable(String path, Request request);
-}
diff --git a/tiles-request/tiles-request-api/src/main/java/org/apache/tiles/request/render/RendererFactory.java b/tiles-request/tiles-request-api/src/main/java/org/apache/tiles/request/render/RendererFactory.java
deleted file mode 100644
index 163206f..0000000
--- a/tiles-request/tiles-request-api/src/main/java/org/apache/tiles/request/render/RendererFactory.java
+++ /dev/null
@@ -1,48 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.request.render;
-
-
-
-/**
- * <p>
- * Factory interface used to create/retrieve instances of the
- * {@link AttributeRenderer} interface.
- * </p>
- *
- * <p>
- * This factory provides an extension point into the default tiles
- * implementation. Implementors wishing to provide per request initialization of
- * the AttributeRenderer (for instance) may provide a custom renderer.
- * </p>
- *
- * @version $Rev$ $Date$
- */
-public interface RendererFactory {
-
-    /**
-     * Returns a renderer by its name.
-     *
-     * @param name The name of the renderer.
-     * @return The renderer.
-     */
-    Renderer getRenderer(String name);
-}
diff --git a/tiles-request/tiles-request-api/src/main/java/org/apache/tiles/request/render/StringRenderer.java b/tiles-request/tiles-request-api/src/main/java/org/apache/tiles/request/render/StringRenderer.java
deleted file mode 100644
index b31a57a..0000000
--- a/tiles-request/tiles-request-api/src/main/java/org/apache/tiles/request/render/StringRenderer.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.request.render;
-
-import java.io.IOException;
-
-import org.apache.tiles.request.Request;
-
-/**
- * Renders an attribute that contains a string.
- *
- * @version $Rev$ $Date$
- */
-public class StringRenderer implements Renderer {
-
-    /** {@inheritDoc} */
-    @Override
-    public void render(String value, Request request) throws IOException {
-        if (value == null) {
-            throw new CannotRenderException("Cannot render a null string");
-        }
-        request.getWriter().write(value);
-    }
-
-    /** {@inheritDoc} */
-    public boolean isRenderable(String value, Request request) {
-        return value != null;
-    }
-}
diff --git a/tiles-request/tiles-request-api/src/main/java/org/apache/tiles/request/render/package-info.java b/tiles-request/tiles-request-api/src/main/java/org/apache/tiles/request/render/package-info.java
deleted file mode 100644
index 1796814..0000000
--- a/tiles-request/tiles-request-api/src/main/java/org/apache/tiles/request/render/package-info.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-/**
- * Classes to allow rendering of a template (described by its path) 
- * in a uniform way.
- * 
- * Besides the top level interface {@link org.apache.tiles.request.render.Renderer},
- * the package contains:
- * <ul>
- * <li>trivial examples: {@link org.apache.tiles.request.render.StringRenderer} 
- * and {@link org.apache.tiles.request.render.DispatchRenderer}.
- * <li>usual design patterns: {@link org.apache.tiles.request.render.ChainedDelegateRenderer},
- * {@link org.apache.tiles.request.render.PublisherRenderer}, and 
- * {@link org.apache.tiles.request.render.RendererFactory}.
- * </ul>
- */
-package org.apache.tiles.request.render;
diff --git a/tiles-request/tiles-request-api/src/site/site.xml b/tiles-request/tiles-request-api/src/site/site.xml
deleted file mode 100644
index 8e92dd7..0000000
--- a/tiles-request/tiles-request-api/src/site/site.xml
+++ /dev/null
@@ -1,56 +0,0 @@
-<?xml version="1.0" encoding="ISO-8859-1"?>
-<!--
-/*
- * $Id: site.xml 1081442 2011-03-14 16:21:08Z apetrelli $
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
--->
-<project name="Apache - Request Microframework">
-    <bannerLeft>
-        <name>Apache Software Foundation</name>
-        <src>http://www.apache.org/images/asf-logo.gif</src>
-        <href>http://www.apache.org</href>
-    </bannerLeft>
-    <bannerRight>
-        <name>Apache Tiles&#8482;</name>
-        <src>http://tiles.apache.org/images/logo.png</src>
-        <href>http://tiles.apache.org</href>
-    </bannerRight>
-    <body>
-
-        <links>
-            <item name="Apache" href="http://www.apache.org" />
-            <item name="Tiles" href="http://tiles.apache.org" />
-        </links>
-
-
-        <menu name="Apache Tiles&#8482;">
-            <item
-                   name="Tiles Home"
-                   href="../../index.html"/>
-            <item
-                   name="Request Microframework"
-                   href="../index.html"/>
-        </menu>
-
-        <menu ref="modules" />
-        <menu ref="reports" />
-
-    </body>
-</project>
diff --git a/tiles-request/tiles-request-api/src/test/java/org/apache/tiles/request/AbstractClientRequestTest.java b/tiles-request/tiles-request-api/src/test/java/org/apache/tiles/request/AbstractClientRequestTest.java
deleted file mode 100644
index 9a62e8a..0000000
--- a/tiles-request/tiles-request-api/src/test/java/org/apache/tiles/request/AbstractClientRequestTest.java
+++ /dev/null
@@ -1,153 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.request;
-
-import static org.easymock.classextension.EasyMock.*;
-import static org.junit.Assert.*;
-
-import java.io.IOException;
-import java.util.Arrays;
-import java.util.HashMap;
-import java.util.Map;
-
-import org.junit.Before;
-import org.junit.Test;
-
-/**
- * Tests {@link AbstractClientRequest}.
- *
- * @version $Rev$ $Date$
- */
-public class AbstractClientRequestTest {
-
-    /**
-     * The request to test.
-     */
-    private AbstractClientRequest request;
-
-    /**
-     * The application context.
-     */
-    private ApplicationContext applicationContext;
-
-    /**
-     * The application scope.
-     */
-    private Map<String, Object> applicationScope;
-
-    /**
-     * Sets up the test.
-     */
-    @Before
-    public void setUp() {
-        applicationContext = createMock(ApplicationContext.class);
-        applicationScope = new HashMap<String, Object>();
-        request = createMockBuilder(AbstractClientRequest.class)
-                .withConstructor(applicationContext).createMock();
-
-        expect(applicationContext.getApplicationScope()).andReturn(applicationScope).anyTimes();
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.request.AbstractClientRequest#dispatch(java.lang.String)}.
-     * @throws IOException If something goes wrong.
-     */
-    @Test
-    public void testDispatch() throws IOException {
-        Map<String, Object> requestScope = new HashMap<String, Object>();
-
-        expect(request.getContext("request")).andReturn(requestScope).anyTimes();
-        request.doForward("/my/path.html");
-        request.doInclude("/my/path2.html");
-
-        replay(request, applicationContext);
-        request.dispatch("/my/path.html");
-        request.dispatch("/my/path2.html");
-        verify(request, applicationContext);
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.request.AbstractClientRequest#include(java.lang.String)}.
-     * @throws IOException If something goes wrong.
-     */
-    @Test
-    public void testInclude() throws IOException {
-        Map<String, Object> requestScope = new HashMap<String, Object>();
-
-        expect(request.getContext("request")).andReturn(requestScope).anyTimes();
-        request.doInclude("/my/path2.html");
-
-        replay(request, applicationContext);
-        request.include("/my/path2.html");
-        assertTrue((Boolean)request.getContext("request").get(AbstractRequest.FORCE_INCLUDE_ATTRIBUTE_NAME));
-        verify(request, applicationContext);
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.request.AbstractClientRequest#getApplicationContext()}.
-     */
-    @Test
-    public void testGetApplicationContext() {
-        replay(request, applicationContext);
-        assertEquals(applicationContext, request.getApplicationContext());
-        verify(request, applicationContext);
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.request.AbstractClientRequest#getContext(java.lang.String)}.
-     */
-    @SuppressWarnings("unchecked")
-    @Test
-    public void testGetContext() {
-        Map<String, Object> scope = createMock(Map.class);
-
-        expect(request.getContext("myScope")).andReturn(scope);
-
-        replay(request, applicationContext, scope);
-        assertEquals(scope, request.getContext("myScope"));
-        verify(request, applicationContext, scope);
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.request.AbstractClientRequest#getAvailableScopes()}.
-     */
-    @Test
-    public void testGetAvailableScopes() {
-        String[] scopes = new String[] {"one", "two", "three"};
-
-        expect(request.getAvailableScopes()).andReturn(Arrays.asList(scopes));
-
-        replay(request, applicationContext);
-        assertArrayEquals(scopes, request.getAvailableScopes().toArray());
-        verify(request, applicationContext);
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.request.AbstractClientRequest#getApplicationScope()}.
-     */
-    @Test
-    public void testGetApplicationScope() {
-        replay(request, applicationContext);
-        assertEquals(applicationScope, request.getApplicationScope());
-        verify(request, applicationContext);
-    }
-
-}
diff --git a/tiles-request/tiles-request-api/src/test/java/org/apache/tiles/request/AbstractRequestTest.java b/tiles-request/tiles-request-api/src/test/java/org/apache/tiles/request/AbstractRequestTest.java
deleted file mode 100644
index 367fea7..0000000
--- a/tiles-request/tiles-request-api/src/test/java/org/apache/tiles/request/AbstractRequestTest.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.request;
-
-import static org.easymock.classextension.EasyMock.*;
-import static org.junit.Assert.*;
-
-import java.util.HashMap;
-import java.util.Map;
-
-import org.junit.Test;
-
-/**
- * Tests {@link AbstractRequest}.
- *
- * @version $Rev$ $Date$
- */
-public class AbstractRequestTest {
-
-    /**
-     * Test method for {@link org.apache.tiles.request.AbstractRequest#setForceInclude(boolean)}.
-     */
-    @Test
-    public void testSetForceInclude() {
-        AbstractRequest request = createMockBuilder(AbstractRequest.class).createMock();
-        Map<String, Object> scope = new HashMap<String, Object>();
-
-        expect(request.getContext("request")).andReturn(scope).anyTimes();
-
-        replay(request);
-        assertFalse(request.isForceInclude());
-        request.setForceInclude(true);
-        assertTrue(request.isForceInclude());
-        verify(request);
-    }
-}
diff --git a/tiles-request/tiles-request-api/src/test/java/org/apache/tiles/request/AbstractViewRequestTest.java b/tiles-request/tiles-request-api/src/test/java/org/apache/tiles/request/AbstractViewRequestTest.java
deleted file mode 100644
index 283648d..0000000
--- a/tiles-request/tiles-request-api/src/test/java/org/apache/tiles/request/AbstractViewRequestTest.java
+++ /dev/null
@@ -1,122 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.request;
-
-import static org.junit.Assert.*;
-import static org.easymock.classextension.EasyMock.*;
-
-import java.io.IOException;
-import java.util.HashMap;
-import java.util.Map;
-
-import org.junit.Before;
-import org.junit.Test;
-
-/**
- * Tests {@link AbstractViewRequest}.
- *
- * @version $Rev$ $Date$
- */
-public class AbstractViewRequestTest {
-
-    /**
-     * The request to test.
-     */
-    private AbstractViewRequest request;
-
-    /**
-     * The internal request.
-     */
-    private DispatchRequest wrappedRequest;
-
-    /**
-     * The application context.
-     */
-    private ApplicationContext applicationContext;
-
-    /**
-     * The application scope.
-     */
-    private Map<String, Object> applicationScope;
-
-    /**
-     * Sets up the test.
-     */
-    @Before
-    public void setUp() {
-        wrappedRequest = createMock(DispatchRequest.class);
-        request = createMockBuilder(AbstractViewRequest.class).withConstructor(
-                wrappedRequest).createMock();
-        applicationContext = createMock(ApplicationContext.class);
-        applicationScope = new HashMap<String, Object>();
-
-        expect(wrappedRequest.getApplicationContext()).andReturn(applicationContext).anyTimes();
-        expect(applicationContext.getApplicationScope()).andReturn(applicationScope).anyTimes();
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.request.AbstractViewRequest#dispatch(java.lang.String)}.
-     * @throws IOException If something goes wrong.
-     */
-    @Test
-    public void testDispatch() throws IOException {
-        Map<String, Object> requestScope = new HashMap<String, Object>();
-
-        expect(request.getContext("request")).andReturn(requestScope);
-        wrappedRequest.include("/my/path.html");
-
-        replay(wrappedRequest, request, applicationContext);
-        request.dispatch("/my/path.html");
-        assertTrue((Boolean) requestScope.get(AbstractRequest.FORCE_INCLUDE_ATTRIBUTE_NAME));
-        verify(wrappedRequest, request, applicationContext);
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.request.AbstractViewRequest#include(java.lang.String)}.
-     * @throws IOException If something goes wrong.
-     */
-    @Test
-    public void testInclude() throws IOException {
-        Map<String, Object> requestScope = new HashMap<String, Object>();
-
-        expect(request.getContext("request")).andReturn(requestScope);
-        wrappedRequest.include("/my/path.html");
-
-        replay(wrappedRequest, request, applicationContext);
-        request.include("/my/path.html");
-        assertTrue((Boolean) requestScope.get(AbstractRequest.FORCE_INCLUDE_ATTRIBUTE_NAME));
-        verify(wrappedRequest, request, applicationContext);
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.request.AbstractViewRequest#doInclude(java.lang.String)}.
-     * @throws IOException If something goes wrong.
-     */
-    @Test
-    public void testDoInclude() throws IOException {
-        wrappedRequest.include("/my/path.html");
-
-        replay(wrappedRequest, request, applicationContext);
-        request.doInclude("/my/path.html");
-        verify(wrappedRequest, request, applicationContext);
-    }
-
-}
diff --git a/tiles-request/tiles-request-api/src/test/java/org/apache/tiles/request/ApplicationAccessTest.java b/tiles-request/tiles-request-api/src/test/java/org/apache/tiles/request/ApplicationAccessTest.java
deleted file mode 100644
index 4d4de4c..0000000
--- a/tiles-request/tiles-request-api/src/test/java/org/apache/tiles/request/ApplicationAccessTest.java
+++ /dev/null
@@ -1,55 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.request;
-
-import static org.junit.Assert.*;
-import static org.easymock.EasyMock.*;
-
-import java.util.Map;
-
-import org.junit.Test;
-
-/**
- * Tests {@link ApplicationAccess}.
- *
- * @version $Rev: 1066446 $ $Date: 2011-02-02 13:38:04 +0100 (Wed, 02 Feb 2011) $
- */
-public class ApplicationAccessTest {
-
-    /**
-     * Test method for {@link ApplicationAccess#register(ApplicationContext)}.
-     */
-    @SuppressWarnings("unchecked")
-    @Test
-    public void testRegister() {
-        ApplicationContext applicationContext = createMock(ApplicationContext.class);
-        Map<String, Object> applicationScope = createMock(Map.class);
-
-        expect(applicationContext.getApplicationScope()).andReturn(applicationScope);
-        expect(applicationScope.put(ApplicationAccess
-                .APPLICATION_CONTEXT_ATTRIBUTE, applicationContext)).andReturn(null);
-
-        replay(applicationContext, applicationScope);
-        ApplicationAccess.register(applicationContext);
-        verify(applicationContext, applicationScope);
-    }
-
-}
diff --git a/tiles-request/tiles-request-api/src/test/java/org/apache/tiles/request/ApplicationContextWrapperTest.java b/tiles-request/tiles-request-api/src/test/java/org/apache/tiles/request/ApplicationContextWrapperTest.java
deleted file mode 100644
index f5ebfa7..0000000
--- a/tiles-request/tiles-request-api/src/test/java/org/apache/tiles/request/ApplicationContextWrapperTest.java
+++ /dev/null
@@ -1,142 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.request;
-
-import static org.easymock.EasyMock.*;
-import static org.easymock.classextension.EasyMock.*;
-import static org.junit.Assert.*;
-
-import java.io.IOException;
-import java.util.Collection;
-import java.util.Locale;
-import java.util.Map;
-
-import org.junit.Test;
-
-/**
- * Tests {@link ApplicationContextWrapper}.
- *
- * @version $Rev: 1066446 $ $Date: 2011-02-02 13:38:04 +0100 (Wed, 02 Feb 2011) $
- */
-public class ApplicationContextWrapperTest {
-
-    /**
-     * Test method for {@link org.apache.tiles.request.ApplicationContextWrapper#getWrappedApplicationContext()}.
-     */
-    @Test
-    public void testGetWrappedApplicationContext() {
-        ApplicationContext wrappedContext = createMock(ApplicationContext.class);
-
-        replay(wrappedContext);
-        ApplicationContextWrapper wrapper = new ApplicationContextWrapper(wrappedContext);
-        assertEquals(wrappedContext, wrapper.getWrappedApplicationContext());
-        verify(wrappedContext);
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.request.ApplicationContextWrapper#getApplicationScope()}.
-     */
-    @SuppressWarnings("unchecked")
-    @Test
-    public void testGetApplicationScope() {
-        ApplicationContext wrappedContext = createMock(ApplicationContext.class);
-        Map<String, Object> applicationScope = createMock(Map.class);
-
-        expect(wrappedContext.getApplicationScope()).andReturn(applicationScope);
-
-        replay(wrappedContext, applicationScope);
-        ApplicationContextWrapper wrapper = new ApplicationContextWrapper(wrappedContext);
-        assertEquals(applicationScope, wrapper.getApplicationScope());
-        verify(wrappedContext, applicationScope);
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.request.ApplicationContextWrapper#getContext()}.
-     */
-    @Test
-    public void testGetContext() {
-        ApplicationContext wrappedContext = createMock(ApplicationContext.class);
-        Object obj = createMock(Object.class);
-
-        expect(wrappedContext.getContext()).andReturn(obj);
-
-        replay(wrappedContext, obj);
-        ApplicationContextWrapper wrapper = new ApplicationContextWrapper(wrappedContext);
-        assertEquals(obj, wrapper.getContext());
-        verify(wrappedContext, obj);
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.request.ApplicationContextWrapper#getInitParams()}.
-     */
-    @SuppressWarnings("unchecked")
-    @Test
-    public void testGetInitParams() {
-        ApplicationContext wrappedContext = createMock(ApplicationContext.class);
-        Map<String, String> obj = createMock(Map.class);
-
-        expect(wrappedContext.getInitParams()).andReturn(obj);
-
-        replay(wrappedContext, obj);
-        ApplicationContextWrapper wrapper = new ApplicationContextWrapper(wrappedContext);
-        assertEquals(obj, wrapper.getInitParams());
-        verify(wrappedContext, obj);
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.request.ApplicationContextWrapper#getResource(java.lang.String)}.
-     * @throws IOException If something goes wrong.
-     */
-    @Test
-    public void testGetResource() throws IOException {
-        ApplicationContext wrappedContext = createMock(ApplicationContext.class);
-        ApplicationResource obj = createMock(ApplicationResource.class);
-        ApplicationResource objFr = createMock(ApplicationResource.class);
-
-        expect(wrappedContext.getResource("whatever.html")).andReturn(obj);
-        expect(wrappedContext.getResource(obj, Locale.FRENCH)).andReturn(objFr);
-
-        replay(wrappedContext);
-        ApplicationContextWrapper wrapper = new ApplicationContextWrapper(wrappedContext);
-        assertEquals(obj, wrapper.getResource("whatever.html"));
-        assertEquals(objFr, wrapper.getResource(obj, Locale.FRENCH));
-        verify(wrappedContext);
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.request.ApplicationContextWrapper#getResources(java.lang.String)}.
-     * @throws IOException If something goes wrong.
-     */
-    @SuppressWarnings("unchecked")
-    @Test
-    public void testGetResources() throws IOException {
-        ApplicationContext wrappedContext = createMock(ApplicationContext.class);
-        Collection<ApplicationResource> obj = createMock(Collection.class);
-
-        expect(wrappedContext.getResources("whatever.html")).andReturn(obj);
-
-        replay(wrappedContext, obj);
-        ApplicationContextWrapper wrapper = new ApplicationContextWrapper(wrappedContext);
-        assertEquals(obj, wrapper.getResources("whatever.html"));
-        verify(wrappedContext, obj);
-    }
-
-}
diff --git a/tiles-request/tiles-request-api/src/test/java/org/apache/tiles/request/DefaultRequestWrapperTest.java b/tiles-request/tiles-request-api/src/test/java/org/apache/tiles/request/DefaultRequestWrapperTest.java
deleted file mode 100644
index c768d4c..0000000
--- a/tiles-request/tiles-request-api/src/test/java/org/apache/tiles/request/DefaultRequestWrapperTest.java
+++ /dev/null
@@ -1,319 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.request;
-
-import static org.easymock.EasyMock.expect;
-import static org.easymock.classextension.EasyMock.createMock;
-import static org.easymock.classextension.EasyMock.replay;
-import static org.easymock.classextension.EasyMock.verify;
-import static org.junit.Assert.assertArrayEquals;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNull;
-import static org.junit.Assert.assertTrue;
-
-import java.io.IOException;
-import java.io.OutputStream;
-import java.io.PrintWriter;
-import java.io.Writer;
-import java.util.Arrays;
-import java.util.Locale;
-import java.util.Map;
-
-import org.apache.tiles.request.attribute.Addable;
-import org.junit.Test;
-
-/**
- * Tests {@link DefaultRequestWrapper}.
- *
- * @version $Rev: 1215009 $ $Date: 2011-12-16 01:32:31 +0100 (Fri, 16 Dec 2011) $
- */
-public class DefaultRequestWrapperTest {
-
-    /**
-     * Creates the RequestWrapper to be tested.
-     *
-     * @param wrappedRequest the request to be wrapped.
-     * @return the RequestWrapper.
-     */
-    protected RequestWrapper createRequestWrapper(Request wrappedRequest) {
-        DefaultRequestWrapper request = new DefaultRequestWrapper(wrappedRequest);
-        return request;
-    }
-
-    /**
-     * Creates a mock Request adequate to the test.
-     *
-     * @return the Request object.
-     */
-    protected Request createMockRequest() {
-        Request wrappedRequest = createMock(Request.class);
-        return wrappedRequest;
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.request.DefaultRequestWrapper#getWrappedRequest()}.
-     */
-    @Test
-    public void testGetWrappedRequest() {
-        Request wrappedRequest = createMockRequest();
-
-        replay(wrappedRequest);
-        RequestWrapper request = createRequestWrapper(wrappedRequest);
-        assertEquals(wrappedRequest, request.getWrappedRequest());
-        verify(wrappedRequest);
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.request.DefaultRequestWrapper#getHeader()}.
-     */
-    @SuppressWarnings("unchecked")
-    @Test
-    public void testGetHeader() {
-        Request wrappedRequest = createMockRequest();
-        Map<String, String> header = createMock(Map.class);
-
-        expect(wrappedRequest.getHeader()).andReturn(header);
-
-        replay(wrappedRequest);
-        RequestWrapper request = createRequestWrapper(wrappedRequest);
-        assertEquals(header, request.getHeader());
-        verify(wrappedRequest);
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.request.DefaultRequestWrapper#getResponseHeaders()}.
-     */
-    @SuppressWarnings("unchecked")
-    @Test
-    public void testGetResponseHeaders() {
-        Request wrappedRequest = createMockRequest();
-        Addable<String> header = createMock(Addable.class);
-
-        expect(wrappedRequest.getResponseHeaders()).andReturn(header);
-
-        replay(wrappedRequest);
-        RequestWrapper request = createRequestWrapper(wrappedRequest);
-        assertEquals(header, request.getResponseHeaders());
-        verify(wrappedRequest);
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.request.DefaultRequestWrapper#getHeaderValues()}.
-     */
-    @SuppressWarnings("unchecked")
-    @Test
-    public void testGetHeaderValues() {
-        Request wrappedRequest = createMockRequest();
-        Map<String, String[]> header = createMock(Map.class);
-
-        expect(wrappedRequest.getHeaderValues()).andReturn(header);
-
-        replay(wrappedRequest);
-        RequestWrapper request = createRequestWrapper(wrappedRequest);
-        assertEquals(header, request.getHeaderValues());
-        verify(wrappedRequest);
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.request.DefaultRequestWrapper#getContext(java.lang.String)}.
-     */
-    @SuppressWarnings("unchecked")
-    @Test
-    public void testGetContext() {
-        Request wrappedRequest = createMockRequest();
-        Map<String, Object> context = createMock(Map.class);
-
-        RequestWrapper request = createRequestWrapper(wrappedRequest);
-
-        expect(wrappedRequest.getContext("one")).andReturn(context);
-
-        replay(wrappedRequest, context);
-        assertEquals(context, request.getContext("one"));
-        verify(wrappedRequest, context);
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.request.DefaultRequestWrapper#getAvailableScopes()}.
-     */
-    @SuppressWarnings("unchecked")
-    @Test
-    public void testGetAvailableScopes() {
-        Request wrappedRequest = createMockRequest();
-        Map<String, Object> context = createMock(Map.class);
-
-        RequestWrapper request = createRequestWrapper(wrappedRequest);
-
-        String[] scopes = new String[] {"one", "two", "three"};
-        expect(wrappedRequest.getAvailableScopes()).andReturn(Arrays.asList(scopes));
-
-        replay(wrappedRequest, context);
-        assertArrayEquals(scopes, request.getAvailableScopes().toArray());
-        verify(wrappedRequest, context);
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.request.DefaultRequestWrapper#getApplicationContext()}.
-     */
-    @Test
-    public void testGetApplicationContext() {
-        Request wrappedRequest = createMockRequest();
-        ApplicationContext applicationContext = createMock(ApplicationContext.class);
-
-        expect(wrappedRequest.getApplicationContext()).andReturn(applicationContext);
-
-        replay(wrappedRequest, applicationContext);
-        RequestWrapper request = createRequestWrapper(wrappedRequest);
-        assertEquals(applicationContext, request.getApplicationContext());
-        verify(wrappedRequest, applicationContext);
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.request.DefaultRequestWrapper#getOutputStream()}.
-     * @throws IOException If something goes wrong.
-     */
-    @Test
-    public void testGetOutputStream() throws IOException {
-        Request wrappedRequest = createMockRequest();
-        OutputStream stream = createMock(OutputStream.class);
-
-        expect(wrappedRequest.getOutputStream()).andReturn(stream);
-
-        replay(wrappedRequest, stream);
-        RequestWrapper request = createRequestWrapper(wrappedRequest);
-        assertEquals(stream, request.getOutputStream());
-        verify(wrappedRequest, stream);
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.request.DefaultRequestWrapper#getWriter()}.
-     * @throws IOException If something goes wrong.
-     */
-    @Test
-    public void testGetWriter() throws IOException {
-        Request wrappedRequest = createMockRequest();
-        Writer writer = createMock(Writer.class);
-
-        expect(wrappedRequest.getWriter()).andReturn(writer);
-
-        replay(wrappedRequest, writer);
-        RequestWrapper request = createRequestWrapper(wrappedRequest);
-        assertEquals(writer, request.getWriter());
-        verify(wrappedRequest, writer);
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.request.DefaultRequestWrapper#getPrintWriter()}.
-     * @throws IOException If something goes wrong.
-     */
-    @Test
-    public void testGetPrintWriter() throws IOException {
-        Request wrappedRequest = createMockRequest();
-        PrintWriter writer = createMock(PrintWriter.class);
-
-        expect(wrappedRequest.getPrintWriter()).andReturn(writer);
-
-        replay(wrappedRequest, writer);
-        RequestWrapper request = createRequestWrapper(wrappedRequest);
-        assertEquals(writer, request.getPrintWriter());
-        verify(wrappedRequest, writer);
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.request.DefaultRequestWrapper#isResponseCommitted()}.
-     */
-    @Test
-    public void testIsResponseCommitted() {
-        Request wrappedRequest = createMockRequest();
-
-        expect(wrappedRequest.isResponseCommitted()).andReturn(Boolean.TRUE);
-
-        replay(wrappedRequest);
-        RequestWrapper request = createRequestWrapper(wrappedRequest);
-        assertTrue(request.isResponseCommitted());
-        verify(wrappedRequest);
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.request.DefaultRequestWrapper#getParam()}.
-     */
-    @SuppressWarnings("unchecked")
-    @Test
-    public void testGetParam() {
-        Request wrappedRequest = createMockRequest();
-        Map<String, String> param = createMock(Map.class);
-
-        expect(wrappedRequest.getParam()).andReturn(param);
-
-        replay(wrappedRequest, param);
-        RequestWrapper request = createRequestWrapper(wrappedRequest);
-        assertEquals(param, request.getParam());
-        verify(wrappedRequest, param);
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.request.DefaultRequestWrapper#getParamValues()}.
-     */
-    @SuppressWarnings("unchecked")
-    @Test
-    public void testGetParamValues() {
-        Request wrappedRequest = createMockRequest();
-        Map<String, String[]> param = createMock(Map.class);
-
-        expect(wrappedRequest.getParamValues()).andReturn(param);
-
-        replay(wrappedRequest, param);
-        RequestWrapper request = createRequestWrapper(wrappedRequest);
-        assertEquals(param, request.getParamValues());
-        verify(wrappedRequest, param);
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.request.DefaultRequestWrapper#getRequestLocale()}.
-     */
-    @Test
-    public void testGetRequestLocale() {
-        Request wrappedRequest = createMockRequest();
-        Locale param = Locale.ITALY;
-
-        expect(wrappedRequest.getRequestLocale()).andReturn(param);
-
-        replay(wrappedRequest);
-        RequestWrapper request = createRequestWrapper(wrappedRequest);
-        assertEquals(param, request.getRequestLocale());
-        verify(wrappedRequest);
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.request.DefaultRequestWrapper#isUserInRole(java.lang.String)}.
-     */
-    @Test
-    public void testIsUserInRole() {
-        Request wrappedRequest = createMockRequest();
-
-        expect(wrappedRequest.isUserInRole("myrole")).andReturn(Boolean.TRUE);
-
-        replay(wrappedRequest);
-        RequestWrapper request = createRequestWrapper(wrappedRequest);
-        assertTrue(request.isUserInRole("myrole"));
-        verify(wrappedRequest);
-    }
-
-}
diff --git a/tiles-request/tiles-request-api/src/test/java/org/apache/tiles/request/DispatchRequestWrapperTest.java b/tiles-request/tiles-request-api/src/test/java/org/apache/tiles/request/DispatchRequestWrapperTest.java
deleted file mode 100644
index a9b05ad..0000000
--- a/tiles-request/tiles-request-api/src/test/java/org/apache/tiles/request/DispatchRequestWrapperTest.java
+++ /dev/null
@@ -1,96 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.request;
-
-import static org.easymock.classextension.EasyMock.createMock;
-import static org.easymock.classextension.EasyMock.replay;
-import static org.easymock.classextension.EasyMock.verify;
-
-import java.io.IOException;
-
-import org.junit.Test;
-
-/**
- * Tests {@link DispatchRequestWrapper}.
- *
- * @version $Rev$ $Date$
- */
-public class DispatchRequestWrapperTest extends DefaultRequestWrapperTest {
-
-    @Override
-    protected DispatchRequest createMockRequest() {
-        DispatchRequest wrappedRequest = createMock(DispatchRequest.class);
-        return wrappedRequest;
-    }
-
-    @Override
-    protected DispatchRequestWrapper createRequestWrapper(Request wrappedRequest) {
-        DispatchRequestWrapper request = new DispatchRequestWrapper((DispatchRequest) wrappedRequest);
-        return request;
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.request.DispatchRequestWrapper#dispatch(java.lang.String)}.
-     * @throws IOException If something goes wrong.
-     */
-    @Test
-    public void testDispatch() throws IOException {
-        DispatchRequest wrappedRequest = createMockRequest();
-
-        wrappedRequest.dispatch("/my/path.html");
-
-        replay(wrappedRequest);
-        DispatchRequestWrapper request = createRequestWrapper(wrappedRequest);
-        request.dispatch("/my/path.html");
-        verify(wrappedRequest);
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.request.DispatchRequestWrapper#include(java.lang.String)}.
-     * @throws IOException If something goes wrong.
-     */
-    @Test
-    public void testInclude() throws IOException {
-        DispatchRequest wrappedRequest = createMockRequest();
-
-        wrappedRequest.include("/my/path.html");
-
-        replay(wrappedRequest);
-        DispatchRequestWrapper request = createRequestWrapper(wrappedRequest);
-        request.include("/my/path.html");
-        verify(wrappedRequest);
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.request.DispatchRequestWrapper#setContentType(java.lang.String)}.
-     */
-    @Test
-    public void testSetContentType() {
-        DispatchRequest wrappedRequest = createMockRequest();
-
-        wrappedRequest.setContentType("text/html");
-
-        replay(wrappedRequest);
-        DispatchRequestWrapper request = createRequestWrapper(wrappedRequest);
-        request.setContentType("text/html");
-        verify(wrappedRequest);
-    }
-}
diff --git a/tiles-request/tiles-request-api/src/test/java/org/apache/tiles/request/NotAvailableFeatureExceptionTest.java b/tiles-request/tiles-request-api/src/test/java/org/apache/tiles/request/NotAvailableFeatureExceptionTest.java
deleted file mode 100644
index da14b2b..0000000
--- a/tiles-request/tiles-request-api/src/test/java/org/apache/tiles/request/NotAvailableFeatureExceptionTest.java
+++ /dev/null
@@ -1,77 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.tiles.request;
-
-import static org.junit.Assert.*;
-
-import org.junit.Test;
-
-/**
- * Tests {@link NotAvailableFeatureException}.
- *
- * @version $Rev$ $Date$
- */
-public class NotAvailableFeatureExceptionTest {
-
-    /**
-     * Test method for {@link org.apache.tiles.request.NotAvailableFeatureException#NotAvailableFeatureException()}.
-     */
-    @Test
-    public void testNotAvailableFeatureException() {
-        NotAvailableFeatureException exception = new NotAvailableFeatureException();
-        assertNull(exception.getMessage());
-        assertNull(exception.getCause());
-    }
-
-    /**
-     * Test method for {@link NotAvailableFeatureException#NotAvailableFeatureException(String)}.
-     */
-    @Test
-    public void testNotAvailableFeatureExceptionString() {
-        NotAvailableFeatureException exception = new NotAvailableFeatureException("my message");
-        assertEquals("my message", exception.getMessage());
-        assertNull(exception.getCause());
-    }
-
-    /**
-     * Test method for {@link NotAvailableFeatureException#NotAvailableFeatureException(Throwable)}.
-     */
-    @Test
-    public void testNotAvailableFeatureExceptionThrowable() {
-        Throwable cause = new Throwable();
-        NotAvailableFeatureException exception = new NotAvailableFeatureException(cause);
-        assertEquals(cause.toString(), exception.getMessage());
-        assertEquals(cause, exception.getCause());
-    }
-
-    /**
-     * Test method for {@link NotAvailableFeatureException#NotAvailableFeatureException(String, Throwable)}.
-     */
-    @Test
-    public void testNotAvailableFeatureExceptionStringThrowable() {
-        Throwable cause = new Throwable();
-        NotAvailableFeatureException exception = new NotAvailableFeatureException("my message", cause);
-        assertEquals("my message", exception.getMessage());
-        assertEquals(cause, exception.getCause());
-    }
-
-}
diff --git a/tiles-request/tiles-request-api/src/test/java/org/apache/tiles/request/RequestExceptionTest.java b/tiles-request/tiles-request-api/src/test/java/org/apache/tiles/request/RequestExceptionTest.java
deleted file mode 100644
index d3693d7..0000000
--- a/tiles-request/tiles-request-api/src/test/java/org/apache/tiles/request/RequestExceptionTest.java
+++ /dev/null
@@ -1,77 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.tiles.request;
-
-import static org.junit.Assert.*;
-
-import org.junit.Test;
-
-/**
- * Tests {@link RequestException}.
- *
- * @version $Rev$ $Date$
- */
-public class RequestExceptionTest {
-
-    /**
-     * Test method for {@link org.apache.tiles.request.RequestException#RequestException()}.
-     */
-    @Test
-    public void testRequestException() {
-        RequestException exception = new RequestException();
-        assertNull(exception.getMessage());
-        assertNull(exception.getCause());
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.request.RequestException#RequestException(java.lang.String)}.
-     */
-    @Test
-    public void testRequestExceptionString() {
-        RequestException exception = new RequestException("my message");
-        assertEquals("my message", exception.getMessage());
-        assertNull(exception.getCause());
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.request.RequestException#RequestException(java.lang.Throwable)}.
-     */
-    @Test
-    public void testRequestExceptionThrowable() {
-        Throwable cause = new Throwable();
-        RequestException exception = new RequestException(cause);
-        assertEquals(cause.toString(), exception.getMessage());
-        assertEquals(cause, exception.getCause());
-    }
-
-    /**
-     * Test method for {@link RequestException#RequestException(String, Throwable)}.
-     */
-    @Test
-    public void testRequestExceptionStringThrowable() {
-        Throwable cause = new Throwable();
-        RequestException exception = new RequestException("my message", cause);
-        assertEquals("my message", exception.getMessage());
-        assertEquals(cause, exception.getCause());
-    }
-
-}
diff --git a/tiles-request/tiles-request-api/src/test/java/org/apache/tiles/request/collection/AddableParameterMapTest.java b/tiles-request/tiles-request-api/src/test/java/org/apache/tiles/request/collection/AddableParameterMapTest.java
deleted file mode 100644
index 7e702da..0000000
--- a/tiles-request/tiles-request-api/src/test/java/org/apache/tiles/request/collection/AddableParameterMapTest.java
+++ /dev/null
@@ -1,114 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.request.collection;
-
-import static org.easymock.EasyMock.*;
-import static org.easymock.classextension.EasyMock.*;
-import static org.junit.Assert.*;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-
-import org.apache.tiles.request.attribute.HasAddableKeys;
-import org.junit.Before;
-import org.junit.Test;
-
-/**
- * Tests {@link AddableParameterMap}.
- *
- * @version $Rev$ $Date$
- */
-public class AddableParameterMapTest {
-
-    /**
-     * The object to test.
-     */
-    private AddableParameterMap map;
-
-    /**
-     * The extractor to use.
-     */
-    private HasAddableKeys<String> extractor;
-
-    /**
-     * Sets up the test.
-     */
-    @SuppressWarnings("unchecked")
-    @Before
-    public void setUp() {
-        extractor = createMock(HasAddableKeys.class);
-        map = new AddableParameterMap(extractor);
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.request.collection.AddableParameterMap#entrySet()}.
-     */
-    @Test
-    public void testEntrySet() {
-        Set<Map.Entry<String, String>> entrySet = map.entrySet();
-        MapEntry<String, String> entry1 = new MapEntry<String, String>("one", "value1", false);
-        MapEntry<String, String> entry2 = new MapEntry<String, String>("two", "value2", false);
-        List<Map.Entry<String, String>> entries = new ArrayList<Map.Entry<String, String>>(2);
-        entries.add(entry1);
-        entries.add(entry2);
-
-        extractor.setValue("one", "value1");
-        expectLastCall().times(2);
-        extractor.setValue("two", "value2");
-        replay(extractor);
-        entrySet.add(entry1);
-        entrySet.addAll(entries);
-        verify(extractor);
-    }
-
-    /**
-     * Test method for {@link AddableParameterMap#put(String, String)}.
-     */
-    @Test
-    public void testPut() {
-        expect(extractor.getValue("one")).andReturn(null);
-        extractor.setValue("one", "value1");
-
-        replay(extractor);
-        assertNull(map.put("one", "value1"));
-        verify(extractor);
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.request.collection.AddableParameterMap#putAll(java.util.Map)}.
-     */
-    @Test
-    public void testPutAll() {
-        Map<String, String> map = new HashMap<String, String>();
-        map.put("one", "value1");
-        map.put("two", "value2");
-
-        extractor.setValue("one", "value1");
-        extractor.setValue("two", "value2");
-
-        replay(extractor);
-        this.map.putAll(map);
-        verify(extractor);
-    }
-}
diff --git a/tiles-request/tiles-request-api/src/test/java/org/apache/tiles/request/collection/CollectionUtilTest.java b/tiles-request/tiles-request-api/src/test/java/org/apache/tiles/request/collection/CollectionUtilTest.java
deleted file mode 100644
index 4fcc496..0000000
--- a/tiles-request/tiles-request-api/src/test/java/org/apache/tiles/request/collection/CollectionUtilTest.java
+++ /dev/null
@@ -1,74 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.request.collection;
-
-import org.apache.tiles.request.collection.CollectionUtil;
-import static org.easymock.classextension.EasyMock.*;
-import static org.junit.Assert.*;
-
-import java.util.Enumeration;
-
-import org.junit.Test;
-
-/**
- * Test {@link RequestUtil}.
- *
- * @version $Rev: 1066446 $ $Date: 2011-02-02 13:38:04 +0100 (Wed, 02 Feb 2011) $
- */
-public class CollectionUtilTest {
-
-    /**
-     * Test method for {@link org.apache.tiles.request.RequestUtil#key(java.lang.Object)}.
-     */
-    @Test
-    public void testKey() {
-        assertEquals("1", CollectionUtil.key(1));
-        assertEquals("hello", CollectionUtil.key("hello"));
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.request.RequestUtil#key(java.lang.Object)}.
-     */
-    @Test(expected = IllegalArgumentException.class)
-    public void testKeyException() {
-        CollectionUtil.key(null);
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.request.RequestUtil#enumerationSize(java.util.Enumeration)}.
-     */
-    @SuppressWarnings("unchecked")
-    @Test
-    public void testEnumerationSize() {
-        Enumeration<Object> enumeration = createMock(Enumeration.class);
-
-        expect(enumeration.hasMoreElements()).andReturn(true);
-        expect(enumeration.nextElement()).andReturn(1);
-        expect(enumeration.hasMoreElements()).andReturn(true);
-        expect(enumeration.nextElement()).andReturn(1);
-        expect(enumeration.hasMoreElements()).andReturn(false);
-
-        replay(enumeration);
-        assertEquals(2, CollectionUtil.enumerationSize(enumeration));
-        verify(enumeration);
-    }
-
-}
diff --git a/tiles-request/tiles-request-api/src/test/java/org/apache/tiles/request/collection/HeaderValuesCollectionTest.java b/tiles-request/tiles-request-api/src/test/java/org/apache/tiles/request/collection/HeaderValuesCollectionTest.java
deleted file mode 100644
index d845a0e..0000000
--- a/tiles-request/tiles-request-api/src/test/java/org/apache/tiles/request/collection/HeaderValuesCollectionTest.java
+++ /dev/null
@@ -1,419 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.request.collection;
-
-import static org.easymock.EasyMock.*;
-import static org.easymock.classextension.EasyMock.*;
-import static org.junit.Assert.*;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Enumeration;
-import java.util.Iterator;
-import java.util.List;
-
-import org.apache.tiles.request.attribute.EnumeratedValuesExtractor;
-import org.junit.Before;
-import org.junit.Test;
-
-/**
- * Tests {@link HeaderValuesMap#values()}.
- *
- * @version $Rev$ $Date$
- */
-public class HeaderValuesCollectionTest {
-
-
-    /**
-     * The extractor to use.
-     */
-    private EnumeratedValuesExtractor extractor;
-
-    /**
-     * The map to test.
-     */
-    private HeaderValuesMap map;
-
-    /**
-     * The collection.
-     */
-    private Collection<String[]> coll;
-
-    /**
-     * Sets up the test.
-     */
-    @Before
-    public void setUp() {
-        extractor = createMock(EnumeratedValuesExtractor.class);
-        map = new HeaderValuesMap(extractor);
-        coll = map.values();
-    }
-
-    /**
-     * Tests {@link Collection#add(Object)}.
-     */
-    @Test(expected = UnsupportedOperationException.class)
-    public void testAdd() {
-        coll.add(null);
-    }
-
-    /**
-     * Tests {@link Collection#addAll(Object)}.
-     */
-    @Test(expected = UnsupportedOperationException.class)
-    public void testAddAll() {
-        coll.addAll(null);
-    }
-
-    /**
-     * Tests {@link Collection#clear(Object)}.
-     */
-    @Test(expected = UnsupportedOperationException.class)
-    public void testClear() {
-        coll.clear();
-    }
-
-    /**
-     * Tests {@link Collection#contains(Object)}.
-     */
-    @SuppressWarnings("unchecked")
-    @Test
-    public void testContainsValue() {
-        assertFalse(map.containsValue(1));
-
-        Enumeration<String> keys = createMock(Enumeration.class);
-        Enumeration<String> values1 = createMock(Enumeration.class);
-        Enumeration<String> values2 = createMock(Enumeration.class);
-
-        expect(extractor.getKeys()).andReturn(keys);
-        expect(keys.hasMoreElements()).andReturn(true);
-        expect(keys.nextElement()).andReturn("one");
-        expect(keys.hasMoreElements()).andReturn(true);
-        expect(keys.nextElement()).andReturn("two");
-
-        expect(extractor.getValues("one")).andReturn(values1);
-        expect(values1.hasMoreElements()).andReturn(true);
-        expect(values1.nextElement()).andReturn("value1");
-        expect(values1.hasMoreElements()).andReturn(false);
-
-        expect(extractor.getValues("two")).andReturn(values2);
-        expect(values2.hasMoreElements()).andReturn(true);
-        expect(values2.nextElement()).andReturn("value2");
-        expect(values2.hasMoreElements()).andReturn(true);
-        expect(values2.nextElement()).andReturn("value3");
-        expect(values2.hasMoreElements()).andReturn(false);
-
-        replay(extractor, keys, values1, values2);
-        assertTrue(coll.contains(new String[] {"value2", "value3"}));
-        verify(extractor, keys, values1, values2);
-    }
-
-    /**
-     * Tests {@link Collection#contains(Object)}.
-     */
-    @SuppressWarnings("unchecked")
-    @Test
-    public void testContainsValueFalse() {
-        Enumeration<String> keys = createMock(Enumeration.class);
-        Enumeration<String> values1 = createMock(Enumeration.class);
-        Enumeration<String> values2 = createMock(Enumeration.class);
-
-        expect(extractor.getKeys()).andReturn(keys);
-        expect(keys.hasMoreElements()).andReturn(true);
-        expect(keys.nextElement()).andReturn("one");
-        expect(keys.hasMoreElements()).andReturn(true);
-        expect(keys.nextElement()).andReturn("two");
-        expect(keys.hasMoreElements()).andReturn(false);
-
-        expect(extractor.getValues("one")).andReturn(values1);
-        expect(values1.hasMoreElements()).andReturn(true);
-        expect(values1.nextElement()).andReturn("value1");
-        expect(values1.hasMoreElements()).andReturn(false);
-
-        expect(extractor.getValues("two")).andReturn(values2);
-        expect(values2.hasMoreElements()).andReturn(true);
-        expect(values2.nextElement()).andReturn("value2");
-        expect(values2.hasMoreElements()).andReturn(true);
-        expect(values2.nextElement()).andReturn("value3");
-        expect(values2.hasMoreElements()).andReturn(false);
-
-        replay(extractor, keys, values1, values2);
-        assertFalse(coll.contains(new String[] {"value2", "value4"}));
-        verify(extractor, keys, values1, values2);
-    }
-
-    /**
-     * Tests {@link Collection#containsAll(Object)}.
-     */
-    @SuppressWarnings("unchecked")
-    @Test
-    public void testContainsAll() {
-        Enumeration<String> keys = createMock(Enumeration.class);
-        Enumeration<String> values1 = createMock(Enumeration.class);
-        Enumeration<String> values2 = createMock(Enumeration.class);
-
-        expect(extractor.getKeys()).andReturn(keys).times(2);
-        expect(keys.hasMoreElements()).andReturn(true);
-        expect(keys.nextElement()).andReturn("one");
-        expect(keys.hasMoreElements()).andReturn(true);
-        expect(keys.nextElement()).andReturn("one");
-        expect(keys.hasMoreElements()).andReturn(true);
-        expect(keys.nextElement()).andReturn("two");
-
-        expect(extractor.getValues("one")).andReturn(values1).times(2);
-        expect(values1.hasMoreElements()).andReturn(true);
-        expect(values1.nextElement()).andReturn("value1");
-        expect(values1.hasMoreElements()).andReturn(false);
-        expect(values1.hasMoreElements()).andReturn(true);
-        expect(values1.nextElement()).andReturn("value1");
-        expect(values1.hasMoreElements()).andReturn(false);
-
-        expect(extractor.getValues("two")).andReturn(values2);
-        expect(values2.hasMoreElements()).andReturn(true);
-        expect(values2.nextElement()).andReturn("value2");
-        expect(values2.hasMoreElements()).andReturn(true);
-        expect(values2.nextElement()).andReturn("value3");
-        expect(values2.hasMoreElements()).andReturn(false);
-
-        replay(extractor, keys, values1, values2);
-        List<String[]> coll = new ArrayList<String[]>();
-        coll.add(new String[] {"value1"});
-        coll.add(new String[] {"value2", "value3"});
-        assertTrue(this.coll.containsAll(coll));
-        verify(extractor, keys, values1, values2);
-    }
-
-    /**
-     * Tests {@link Collection#containsAll(Object)}.
-     */
-    @SuppressWarnings("unchecked")
-    @Test
-    public void testContainsAllFalse() {
-        Enumeration<String> keys = createMock(Enumeration.class);
-        Enumeration<String> values1 = createMock(Enumeration.class);
-        Enumeration<String> values2 = createMock(Enumeration.class);
-
-        expect(extractor.getKeys()).andReturn(keys);
-        expect(keys.hasMoreElements()).andReturn(true);
-        expect(keys.nextElement()).andReturn("one");
-        expect(keys.hasMoreElements()).andReturn(true);
-        expect(keys.nextElement()).andReturn("two");
-        expect(keys.hasMoreElements()).andReturn(false);
-
-        expect(extractor.getValues("one")).andReturn(values1);
-        expect(values1.hasMoreElements()).andReturn(true);
-        expect(values1.nextElement()).andReturn("value1");
-        expect(values1.hasMoreElements()).andReturn(false);
-
-        expect(extractor.getValues("two")).andReturn(values2);
-        expect(values2.hasMoreElements()).andReturn(true);
-        expect(values2.nextElement()).andReturn("value2");
-        expect(values2.hasMoreElements()).andReturn(true);
-
-        replay(extractor, keys, values1, values2);
-        List<String[]> coll = new ArrayList<String[]>();
-        coll.add(new String[] {"value4"});
-        assertFalse(this.coll.containsAll(coll));
-        verify(extractor, keys, values1, values2);
-    }
-
-    /**
-     * Test method for {@link Collection#isEmpty()}.
-     */
-    @SuppressWarnings("unchecked")
-    @Test
-    public void testIsEmpty() {
-        Enumeration<String> keys = createMock(Enumeration.class);
-
-        expect(extractor.getKeys()).andReturn(keys);
-        expect(keys.hasMoreElements()).andReturn(true);
-
-        replay(extractor, keys);
-        assertFalse(coll.isEmpty());
-        verify(extractor, keys);
-    }
-
-    /**
-     * Test method for {@link Collection#iterator()}.
-     */
-    @SuppressWarnings("unchecked")
-    @Test
-    public void testIterator() {
-        Enumeration<String> keys = createMock(Enumeration.class);
-        Enumeration<String> values2 = createMock(Enumeration.class);
-
-        expect(extractor.getKeys()).andReturn(keys);
-        expect(keys.hasMoreElements()).andReturn(true);
-        expect(keys.nextElement()).andReturn("two");
-
-        expect(extractor.getValues("two")).andReturn(values2);
-        expect(values2.hasMoreElements()).andReturn(true);
-        expect(values2.nextElement()).andReturn("value2");
-        expect(values2.hasMoreElements()).andReturn(true);
-        expect(values2.nextElement()).andReturn("value3");
-        expect(values2.hasMoreElements()).andReturn(false);
-
-        replay(extractor, keys, values2);
-        Iterator<String[]> entryIt = coll.iterator();
-        assertTrue(entryIt.hasNext());
-        assertArrayEquals(new String[] { "value2", "value3" }, entryIt.next());
-        verify(extractor, keys, values2);
-    }
-
-    /**
-     * Test method for {@link Collection#iterator()}.
-     */
-    @SuppressWarnings("unchecked")
-    @Test(expected = UnsupportedOperationException.class)
-    public void testIteratorRemove() {
-        Enumeration<String> keys = createMock(Enumeration.class);
-
-        expect(extractor.getKeys()).andReturn(keys);
-
-        try {
-            replay(extractor, keys);
-            coll.iterator().remove();
-        } finally {
-            verify(extractor, keys);
-        }
-    }
-
-    /**
-     * Tests {@link Collection#remove(Object)}.
-     */
-    @Test(expected = UnsupportedOperationException.class)
-    public void testRemove() {
-        coll.remove(null);
-    }
-
-    /**
-     * Tests {@link Collection#removeAll(java.util.Collection)}.
-     */
-    @Test(expected = UnsupportedOperationException.class)
-    public void testRemoveAll() {
-        coll.removeAll(null);
-    }
-
-    /**
-     * Tests {@link Collection#retainAll(java.util.Collection)}.
-     */
-    @Test(expected = UnsupportedOperationException.class)
-    public void testRetainAll() {
-        coll.retainAll(null);
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.request.collection.HeaderValuesMap#size()}.
-     */
-    @SuppressWarnings("unchecked")
-    @Test
-    public void testSize() {
-        Enumeration<String> keys = createMock(Enumeration.class);
-
-        expect(extractor.getKeys()).andReturn(keys);
-        expect(keys.hasMoreElements()).andReturn(true);
-        expect(keys.nextElement()).andReturn("one");
-        expect(keys.hasMoreElements()).andReturn(true);
-        expect(keys.nextElement()).andReturn("two");
-        expect(keys.hasMoreElements()).andReturn(false);
-
-        replay(extractor, keys);
-        assertEquals(2, coll.size());
-        verify(extractor, keys);
-    }
-
-    /**
-     * Test method for {@link Collection#toArray()}.
-     */
-    @SuppressWarnings("unchecked")
-    @Test
-    public void testToArray() {
-        Enumeration<String> keys = createMock(Enumeration.class);
-        Enumeration<String> values1 = createMock(Enumeration.class);
-        Enumeration<String> values2 = createMock(Enumeration.class);
-
-        expect(extractor.getKeys()).andReturn(keys);
-        expect(keys.hasMoreElements()).andReturn(true);
-        expect(keys.nextElement()).andReturn("one");
-        expect(keys.hasMoreElements()).andReturn(true);
-        expect(keys.nextElement()).andReturn("two");
-        expect(keys.hasMoreElements()).andReturn(false);
-
-        expect(extractor.getValues("one")).andReturn(values1);
-        expect(values1.hasMoreElements()).andReturn(true);
-        expect(values1.nextElement()).andReturn("value1");
-        expect(values1.hasMoreElements()).andReturn(false);
-
-        expect(extractor.getValues("two")).andReturn(values2);
-        expect(values2.hasMoreElements()).andReturn(true);
-        expect(values2.nextElement()).andReturn("value2");
-        expect(values2.hasMoreElements()).andReturn(true);
-        expect(values2.nextElement()).andReturn("value3");
-        expect(values2.hasMoreElements()).andReturn(false);
-
-        String[][] entryArray = new String[2][];
-        entryArray[0] = new String[] {"value1"};
-        entryArray[1] = new String[] {"value2", "value3"};
-
-        replay(extractor, keys, values1, values2);
-        assertArrayEquals(entryArray, coll.toArray());
-        verify(extractor, keys, values1, values2);
-    }
-
-    /**
-     * Test method for {@link Collection#toArray(Object[])}.
-     */
-    @SuppressWarnings("unchecked")
-    @Test
-    public void testToArrayTArray() {
-        Enumeration<String> keys = createMock(Enumeration.class);
-        Enumeration<String> values1 = createMock(Enumeration.class);
-        Enumeration<String> values2 = createMock(Enumeration.class);
-
-        expect(extractor.getKeys()).andReturn(keys);
-        expect(keys.hasMoreElements()).andReturn(true);
-        expect(keys.nextElement()).andReturn("one");
-        expect(keys.hasMoreElements()).andReturn(true);
-        expect(keys.nextElement()).andReturn("two");
-        expect(keys.hasMoreElements()).andReturn(false);
-
-        expect(extractor.getValues("one")).andReturn(values1);
-        expect(values1.hasMoreElements()).andReturn(true);
-        expect(values1.nextElement()).andReturn("value1");
-        expect(values1.hasMoreElements()).andReturn(false);
-
-        expect(extractor.getValues("two")).andReturn(values2);
-        expect(values2.hasMoreElements()).andReturn(true);
-        expect(values2.nextElement()).andReturn("value2");
-        expect(values2.hasMoreElements()).andReturn(true);
-        expect(values2.nextElement()).andReturn("value3");
-        expect(values2.hasMoreElements()).andReturn(false);
-
-        String[][] entryArray = new String[2][];
-        entryArray[0] = new String[] {"value1"};
-        entryArray[1] = new String[] {"value2", "value3"};
-        String[][] realArray = new String[2][];
-
-        replay(extractor, keys, values1, values2);
-        assertArrayEquals(entryArray, coll.toArray(realArray));
-        verify(extractor, keys, values1, values2);
-    }
-}
diff --git a/tiles-request/tiles-request-api/src/test/java/org/apache/tiles/request/collection/HeaderValuesMapEntrySetTest.java b/tiles-request/tiles-request-api/src/test/java/org/apache/tiles/request/collection/HeaderValuesMapEntrySetTest.java
deleted file mode 100644
index 1e94d53..0000000
--- a/tiles-request/tiles-request-api/src/test/java/org/apache/tiles/request/collection/HeaderValuesMapEntrySetTest.java
+++ /dev/null
@@ -1,360 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.request.collection;
-
-import static org.easymock.EasyMock.*;
-import static org.easymock.classextension.EasyMock.*;
-import static org.junit.Assert.*;
-
-import java.util.ArrayList;
-import java.util.Enumeration;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-
-import org.apache.tiles.request.attribute.EnumeratedValuesExtractor;
-import org.junit.Before;
-import org.junit.Test;
-
-/**
- * Tests {@link HeaderValuesMap entry set}.
- *
- */
-public class HeaderValuesMapEntrySetTest {
-
-
-    /**
-     * The extractor to use.
-     */
-    private EnumeratedValuesExtractor extractor;
-
-    /**
-     * The map to test.
-     */
-    private HeaderValuesMap map;
-
-    /**
-     * The set to test.
-     */
-    private Set<Map.Entry<String, String[]>> entrySet;
-
-    /**
-     * Sets up the test.
-     */
-    @Before
-    public void setUp() {
-        extractor = createMock(EnumeratedValuesExtractor.class);
-        map = new HeaderValuesMap(extractor);
-        entrySet = map.entrySet();
-    }
-
-    /**
-     * Tests {@link Set#add(Object)}.
-     */
-    @Test(expected = UnsupportedOperationException.class)
-    public void testAdd() {
-        entrySet.add(null);
-    }
-
-    /**
-     * Tests {@link Set#addAll(Object)}.
-     */
-    @Test(expected = UnsupportedOperationException.class)
-    public void testAddAll() {
-        entrySet.addAll(null);
-    }
-
-    /**
-     * Tests {@link Set#clear(Object)}.
-     */
-    @Test(expected = UnsupportedOperationException.class)
-    public void testClear() {
-        entrySet.clear();
-    }
-
-    /**
-     * Tests {@link Set#contains(Object)}.
-     */
-    @SuppressWarnings("unchecked")
-    @Test
-    public void testContains() {
-        Map.Entry<String, String[]> entry = createMock(Map.Entry.class);
-        Enumeration<String> values2 = createMock(Enumeration.class);
-
-        expect(entry.getKey()).andReturn("two");
-        expect(entry.getValue()).andReturn(new String[] {"value2", "value3"});
-
-        expect(extractor.getValues("two")).andReturn(values2);
-        expect(values2.hasMoreElements()).andReturn(true);
-        expect(values2.nextElement()).andReturn("value2");
-        expect(values2.hasMoreElements()).andReturn(true);
-        expect(values2.nextElement()).andReturn("value3");
-        expect(values2.hasMoreElements()).andReturn(false);
-
-        replay(extractor, entry, values2);
-        assertTrue(entrySet.contains(entry));
-        verify(extractor, entry, values2);
-    }
-
-    /**
-     * Tests {@link Set#containsAll(Object)}.
-     */
-    @SuppressWarnings("unchecked")
-    @Test
-    public void testContainsAll() {
-        Enumeration<String> values1 = createMock(Enumeration.class);
-        Enumeration<String> values2 = createMock(Enumeration.class);
-        Map.Entry<String, String[]> entry1 = createMock(Map.Entry.class);
-        Map.Entry<String, String[]> entry2 = createMock(Map.Entry.class);
-
-        expect(entry1.getKey()).andReturn("one");
-        expect(entry1.getValue()).andReturn(new String[] {"value1"});
-        expect(entry2.getKey()).andReturn("two");
-        expect(entry2.getValue()).andReturn(new String[] {"value2", "value3"});
-
-        expect(extractor.getValues("one")).andReturn(values1);
-        expect(values1.hasMoreElements()).andReturn(true);
-        expect(values1.nextElement()).andReturn("value1");
-        expect(values1.hasMoreElements()).andReturn(false);
-
-        expect(extractor.getValues("two")).andReturn(values2);
-        expect(values2.hasMoreElements()).andReturn(true);
-        expect(values2.nextElement()).andReturn("value2");
-        expect(values2.hasMoreElements()).andReturn(true);
-        expect(values2.nextElement()).andReturn("value3");
-        expect(values2.hasMoreElements()).andReturn(false);
-
-        replay(extractor, values1, values2, entry1, entry2);
-        List<Map.Entry<String, String[]>> coll = new ArrayList<Map.Entry<String, String[]>>();
-        coll.add(entry1);
-        coll.add(entry2);
-        assertTrue(entrySet.containsAll(coll));
-        verify(extractor, values1, values2, entry1, entry2);
-    }
-
-    /**
-     * Tests {@link Set#containsAll(Object)}.
-     */
-    @SuppressWarnings("unchecked")
-    @Test
-    public void testContainsAllFalse() {
-        Enumeration<String> values1 = createMock(Enumeration.class);
-        Map.Entry<String, String[]> entry1 = createMock(Map.Entry.class);
-
-        expect(entry1.getKey()).andReturn("one");
-        expect(entry1.getValue()).andReturn(new String[] {"value4"});
-
-        expect(extractor.getValues("one")).andReturn(values1);
-        expect(values1.hasMoreElements()).andReturn(true);
-        expect(values1.nextElement()).andReturn("value1");
-
-        replay(extractor, values1, entry1);
-        List<Map.Entry<String, String[]>> coll = new ArrayList<Map.Entry<String, String[]>>();
-        coll.add(entry1);
-        assertFalse(entrySet.containsAll(coll));
-        verify(extractor, values1, entry1);
-    }
-
-    /**
-     * Test method for {@link Set#isEmpty()}.
-     */
-    @SuppressWarnings("unchecked")
-    @Test
-    public void testIsEmpty() {
-        Enumeration<String> keys = createMock(Enumeration.class);
-
-        expect(extractor.getKeys()).andReturn(keys);
-        expect(keys.hasMoreElements()).andReturn(true);
-
-        replay(extractor, keys);
-        assertFalse(entrySet.isEmpty());
-        verify(extractor, keys);
-    }
-
-    /**
-     * Test method for {@link Set#iterator()}.
-     */
-    @SuppressWarnings("unchecked")
-    @Test
-    public void testIterator() {
-        Enumeration<String> keys = createMock(Enumeration.class);
-        Enumeration<String> values2 = createMock(Enumeration.class);
-
-        expect(extractor.getKeys()).andReturn(keys);
-        expect(keys.hasMoreElements()).andReturn(true);
-        expect(keys.nextElement()).andReturn("two");
-
-        expect(extractor.getValues("two")).andReturn(values2);
-        expect(values2.hasMoreElements()).andReturn(true);
-        expect(values2.nextElement()).andReturn("value2");
-        expect(values2.hasMoreElements()).andReturn(true);
-        expect(values2.nextElement()).andReturn("value3");
-        expect(values2.hasMoreElements()).andReturn(false);
-
-        replay(extractor, keys, values2);
-        Iterator<Map.Entry<String, String[]>> entryIt = entrySet.iterator();
-        assertTrue(entryIt.hasNext());
-        MapEntryArrayValues<String, String> entry = new MapEntryArrayValues<String, String>(
-                "two", new String[] { "value2", "value3" }, false);
-        assertEquals(entry, entryIt.next());
-        verify(extractor, keys, values2);
-    }
-
-    /**
-     * Test method for {@link Set#iterator()}.
-     */
-    @SuppressWarnings("unchecked")
-    @Test(expected = UnsupportedOperationException.class)
-    public void testIteratorRemove() {
-        Enumeration<String> keys = createMock(Enumeration.class);
-
-        expect(extractor.getKeys()).andReturn(keys);
-
-        try {
-            replay(extractor, keys);
-            entrySet.iterator().remove();
-        } finally {
-            verify(extractor, keys);
-        }
-    }
-
-    /**
-     * Tests {@link Set#remove(Object)}.
-     */
-    @Test(expected = UnsupportedOperationException.class)
-    public void testRemove() {
-        entrySet.remove(null);
-    }
-
-    /**
-     * Tests {@link Set#removeAll(java.util.Collection)}.
-     */
-    @Test(expected = UnsupportedOperationException.class)
-    public void testRemoveAll() {
-        entrySet.removeAll(null);
-    }
-
-    /**
-     * Tests {@link Set#retainAll(java.util.Collection)}.
-     */
-    @Test(expected = UnsupportedOperationException.class)
-    public void testRetainAll() {
-        entrySet.retainAll(null);
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.request.collection.HeaderValuesMap#size()}.
-     */
-    @SuppressWarnings("unchecked")
-    @Test
-    public void testSize() {
-        Enumeration<String> keys = createMock(Enumeration.class);
-
-        expect(extractor.getKeys()).andReturn(keys);
-        expect(keys.hasMoreElements()).andReturn(true);
-        expect(keys.nextElement()).andReturn("one");
-        expect(keys.hasMoreElements()).andReturn(true);
-        expect(keys.nextElement()).andReturn("two");
-        expect(keys.hasMoreElements()).andReturn(false);
-
-        replay(extractor, keys);
-        assertEquals(2, entrySet.size());
-        verify(extractor, keys);
-    }
-
-    /**
-     * Test method for {@link Set#toArray()}.
-     */
-    @SuppressWarnings("unchecked")
-    @Test
-    public void testToArray() {
-        Enumeration<String> keys = createMock(Enumeration.class);
-        Enumeration<String> values1 = createMock(Enumeration.class);
-        Enumeration<String> values2 = createMock(Enumeration.class);
-
-        expect(extractor.getKeys()).andReturn(keys);
-        expect(keys.hasMoreElements()).andReturn(true);
-        expect(keys.nextElement()).andReturn("one");
-        expect(keys.hasMoreElements()).andReturn(true);
-        expect(keys.nextElement()).andReturn("two");
-        expect(keys.hasMoreElements()).andReturn(false);
-
-        expect(extractor.getValues("one")).andReturn(values1);
-        expect(values1.hasMoreElements()).andReturn(true);
-        expect(values1.nextElement()).andReturn("value1");
-        expect(values1.hasMoreElements()).andReturn(false);
-
-        expect(extractor.getValues("two")).andReturn(values2);
-        expect(values2.hasMoreElements()).andReturn(true);
-        expect(values2.nextElement()).andReturn("value2");
-        expect(values2.hasMoreElements()).andReturn(true);
-        expect(values2.nextElement()).andReturn("value3");
-        expect(values2.hasMoreElements()).andReturn(false);
-
-        MapEntryArrayValues<String, String>[] entryArray = new MapEntryArrayValues[2];
-        entryArray[0] = new MapEntryArrayValues<String, String>("one", new String[] {"value1"}, false);
-        entryArray[1] = new MapEntryArrayValues<String, String>("two", new String[] {"value2", "value3"}, false);
-
-        replay(extractor, keys, values1, values2);
-        assertArrayEquals(entryArray, entrySet.toArray());
-        verify(extractor, keys, values1, values2);
-    }
-
-    /**
-     * Test method for {@link Set#toArray(Object[])}.
-     */
-    @SuppressWarnings("unchecked")
-    @Test
-    public void testToArrayTArray() {
-        Enumeration<String> keys = createMock(Enumeration.class);
-        Enumeration<String> values1 = createMock(Enumeration.class);
-        Enumeration<String> values2 = createMock(Enumeration.class);
-
-        expect(extractor.getKeys()).andReturn(keys);
-        expect(keys.hasMoreElements()).andReturn(true);
-        expect(keys.nextElement()).andReturn("one");
-        expect(keys.hasMoreElements()).andReturn(true);
-        expect(keys.nextElement()).andReturn("two");
-        expect(keys.hasMoreElements()).andReturn(false);
-
-        expect(extractor.getValues("one")).andReturn(values1);
-        expect(values1.hasMoreElements()).andReturn(true);
-        expect(values1.nextElement()).andReturn("value1");
-        expect(values1.hasMoreElements()).andReturn(false);
-
-        expect(extractor.getValues("two")).andReturn(values2);
-        expect(values2.hasMoreElements()).andReturn(true);
-        expect(values2.nextElement()).andReturn("value2");
-        expect(values2.hasMoreElements()).andReturn(true);
-        expect(values2.nextElement()).andReturn("value3");
-        expect(values2.hasMoreElements()).andReturn(false);
-
-        MapEntryArrayValues<String, String>[] entryArray = new MapEntryArrayValues[2];
-        entryArray[0] = new MapEntryArrayValues<String, String>("one", new String[] {"value1"}, false);
-        entryArray[1] = new MapEntryArrayValues<String, String>("two", new String[] {"value2", "value3"}, false);
-        MapEntryArrayValues<String, String>[] realArray = new MapEntryArrayValues[2];
-
-        replay(extractor, keys, values1, values2);
-        assertArrayEquals(entryArray, entrySet.toArray(realArray));
-        verify(extractor, keys, values1, values2);
-    }
-}
diff --git a/tiles-request/tiles-request-api/src/test/java/org/apache/tiles/request/collection/HeaderValuesMapTest.java b/tiles-request/tiles-request-api/src/test/java/org/apache/tiles/request/collection/HeaderValuesMapTest.java
deleted file mode 100644
index 715e5d9..0000000
--- a/tiles-request/tiles-request-api/src/test/java/org/apache/tiles/request/collection/HeaderValuesMapTest.java
+++ /dev/null
@@ -1,344 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.request.collection;
-
-import static org.easymock.EasyMock.*;
-import static org.easymock.classextension.EasyMock.*;
-import static org.junit.Assert.*;
-
-import java.util.Enumeration;
-import java.util.HashMap;
-
-import org.apache.tiles.request.attribute.EnumeratedValuesExtractor;
-import org.junit.Before;
-import org.junit.Test;
-
-/**
- * Tests {@link HeaderValuesMap}.
- *
- * @version $Rev$ $Date$
- */
-public class HeaderValuesMapTest {
-
-    /**
-     * The extractor to use.
-     */
-    private EnumeratedValuesExtractor extractor;
-
-    /**
-     * The map to test.
-     */
-    private HeaderValuesMap map;
-
-    /**
-     * Sets up the test.
-     */
-    @Before
-    public void setUp() {
-        extractor = createMock(EnumeratedValuesExtractor.class);
-        map = new HeaderValuesMap(extractor);
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.request.collection.HeaderValuesMap#hashCode()}.
-     */
-    @SuppressWarnings("unchecked")
-    @Test
-    public void testHashCode() {
-        Enumeration<String> keys = createMock(Enumeration.class);
-        Enumeration<String> values1 = createMock(Enumeration.class);
-        Enumeration<String> values2 = createMock(Enumeration.class);
-
-        expect(extractor.getKeys()).andReturn(keys);
-        expect(keys.hasMoreElements()).andReturn(true);
-        expect(keys.nextElement()).andReturn("one");
-        expect(keys.hasMoreElements()).andReturn(true);
-        expect(keys.nextElement()).andReturn("two");
-        expect(keys.hasMoreElements()).andReturn(false);
-
-        expect(extractor.getValues("one")).andReturn(values1);
-        expect(values1.hasMoreElements()).andReturn(true);
-        expect(values1.nextElement()).andReturn("value1");
-        expect(values1.hasMoreElements()).andReturn(false);
-
-        expect(extractor.getValues("two")).andReturn(values2);
-        expect(values2.hasMoreElements()).andReturn(true);
-        expect(values2.nextElement()).andReturn("value2");
-        expect(values2.hasMoreElements()).andReturn(true);
-        expect(values2.nextElement()).andReturn("value3");
-        expect(values2.hasMoreElements()).andReturn(false);
-
-        replay(extractor, keys, values1, values2);
-        assertEquals(
-                ("one".hashCode() ^ "value1".hashCode())
-                        + ("two".hashCode() ^ ("value2".hashCode() + "value3"
-                                .hashCode())),
-                map.hashCode());
-        verify(extractor, keys, values1, values2);
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.request.collection.HeaderValuesMap#clear()}.
-     */
-    @Test(expected = UnsupportedOperationException.class)
-    public void testClear() {
-        map.clear();
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.request.collection.HeaderValuesMap#containsKey(java.lang.Object)}.
-     */
-    @Test
-    public void testContainsKey() {
-        expect(extractor.getValue("one")).andReturn("value1");
-        expect(extractor.getValue("two")).andReturn(null);
-
-        replay(extractor);
-        assertTrue(map.containsKey("one"));
-        assertFalse(map.containsKey("two"));
-        verify(extractor);
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.request.collection.HeaderValuesMap#containsValue(java.lang.Object)}.
-     */
-    @SuppressWarnings("unchecked")
-    @Test
-    public void testContainsValue() {
-        assertFalse(map.containsValue(1));
-
-        Enumeration<String> keys = createMock(Enumeration.class);
-        Enumeration<String> values1 = createMock(Enumeration.class);
-        Enumeration<String> values2 = createMock(Enumeration.class);
-
-        expect(extractor.getKeys()).andReturn(keys);
-        expect(keys.hasMoreElements()).andReturn(true);
-        expect(keys.nextElement()).andReturn("one");
-        expect(keys.hasMoreElements()).andReturn(true);
-        expect(keys.nextElement()).andReturn("two");
-
-        expect(extractor.getValues("one")).andReturn(values1);
-        expect(values1.hasMoreElements()).andReturn(true);
-        expect(values1.nextElement()).andReturn("value1");
-        expect(values1.hasMoreElements()).andReturn(false);
-
-        expect(extractor.getValues("two")).andReturn(values2);
-        expect(values2.hasMoreElements()).andReturn(true);
-        expect(values2.nextElement()).andReturn("value2");
-        expect(values2.hasMoreElements()).andReturn(true);
-        expect(values2.nextElement()).andReturn("value3");
-        expect(values2.hasMoreElements()).andReturn(false);
-
-        replay(extractor, keys, values1, values2);
-        assertTrue(map.containsValue(new String[] {"value2", "value3"}));
-        verify(extractor, keys, values1, values2);
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.request.collection.HeaderValuesMap#containsValue(java.lang.Object)}.
-     */
-    @SuppressWarnings("unchecked")
-    @Test
-    public void testContainsValueFalse() {
-        Enumeration<String> keys = createMock(Enumeration.class);
-        Enumeration<String> values1 = createMock(Enumeration.class);
-        Enumeration<String> values2 = createMock(Enumeration.class);
-
-        expect(extractor.getKeys()).andReturn(keys);
-        expect(keys.hasMoreElements()).andReturn(true);
-        expect(keys.nextElement()).andReturn("one");
-        expect(keys.hasMoreElements()).andReturn(true);
-        expect(keys.nextElement()).andReturn("two");
-        expect(keys.hasMoreElements()).andReturn(false);
-
-        expect(extractor.getValues("one")).andReturn(values1);
-        expect(values1.hasMoreElements()).andReturn(true);
-        expect(values1.nextElement()).andReturn("value1");
-        expect(values1.hasMoreElements()).andReturn(false);
-
-        expect(extractor.getValues("two")).andReturn(values2);
-        expect(values2.hasMoreElements()).andReturn(true);
-        expect(values2.nextElement()).andReturn("value2");
-        expect(values2.hasMoreElements()).andReturn(true);
-        expect(values2.nextElement()).andReturn("value3");
-        expect(values2.hasMoreElements()).andReturn(false);
-
-        replay(extractor, keys, values1, values2);
-        assertFalse(map.containsValue(new String[] {"value2", "value4"}));
-        verify(extractor, keys, values1, values2);
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.request.collection.HeaderValuesMap#equals(java.lang.Object)}.
-     */
-    @SuppressWarnings("unchecked")
-    @Test
-    public void testEqualsObject() {
-        Enumeration<String> keys = createMock(Enumeration.class);
-        Enumeration<String> values1 = createMock(Enumeration.class);
-        Enumeration<String> values2 = createMock(Enumeration.class);
-        EnumeratedValuesExtractor otherExtractor = createMock(EnumeratedValuesExtractor.class);
-        Enumeration<String> otherValues1 = createMock(Enumeration.class);
-        Enumeration<String> otherValues2 = createMock(Enumeration.class);
-
-        expect(extractor.getKeys()).andReturn(keys);
-        expect(keys.hasMoreElements()).andReturn(true);
-        expect(keys.nextElement()).andReturn("one");
-        expect(keys.hasMoreElements()).andReturn(true);
-        expect(keys.nextElement()).andReturn("two");
-        expect(keys.hasMoreElements()).andReturn(false);
-
-        expect(extractor.getValues("one")).andReturn(values1);
-        expect(values1.hasMoreElements()).andReturn(true);
-        expect(values1.nextElement()).andReturn("value1");
-        expect(values1.hasMoreElements()).andReturn(false);
-
-        expect(extractor.getValues("two")).andReturn(values2);
-        expect(values2.hasMoreElements()).andReturn(true);
-        expect(values2.nextElement()).andReturn("value2");
-        expect(values2.hasMoreElements()).andReturn(true);
-        expect(values2.nextElement()).andReturn("value3");
-        expect(values2.hasMoreElements()).andReturn(false);
-
-        expect(otherExtractor.getValues("one")).andReturn(otherValues1);
-        expect(otherValues1.hasMoreElements()).andReturn(true);
-        expect(otherValues1.nextElement()).andReturn("value1");
-        expect(otherValues1.hasMoreElements()).andReturn(false);
-
-        expect(otherExtractor.getValues("two")).andReturn(otherValues2);
-        expect(otherValues2.hasMoreElements()).andReturn(true);
-        expect(otherValues2.nextElement()).andReturn("value2");
-        expect(otherValues2.hasMoreElements()).andReturn(true);
-        expect(otherValues2.nextElement()).andReturn("value3");
-        expect(otherValues2.hasMoreElements()).andReturn(false);
-
-        replay(extractor, otherExtractor, keys, values1, values2, otherValues1, otherValues2);
-        HeaderValuesMap otherMap = new HeaderValuesMap(otherExtractor);
-        assertTrue(map.equals(otherMap));
-        verify(extractor, otherExtractor, keys, values1, values2, otherValues1, otherValues2);
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.request.collection.HeaderValuesMap#get(java.lang.Object)}.
-     */
-    @SuppressWarnings("unchecked")
-    @Test
-    public void testGet() {
-        Enumeration<String> values2 = createMock(Enumeration.class);
-
-        expect(extractor.getValues("two")).andReturn(values2);
-        expect(values2.hasMoreElements()).andReturn(true);
-        expect(values2.nextElement()).andReturn("value2");
-        expect(values2.hasMoreElements()).andReturn(true);
-        expect(values2.nextElement()).andReturn("value3");
-        expect(values2.hasMoreElements()).andReturn(false);
-
-        replay(extractor, values2);
-        assertArrayEquals(new String[] {"value2", "value3"}, map.get("two"));
-        verify(extractor, values2);
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.request.collection.HeaderValuesMap#isEmpty()}.
-     */
-    @SuppressWarnings("unchecked")
-    @Test
-    public void testIsEmpty() {
-        Enumeration<String> keys = createMock(Enumeration.class);
-
-        expect(extractor.getKeys()).andReturn(keys);
-        expect(keys.hasMoreElements()).andReturn(true);
-
-        replay(extractor, keys);
-        assertFalse(map.isEmpty());
-        verify(extractor, keys);
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.request.collection.HeaderValuesMap#isEmpty()}.
-     */
-    @SuppressWarnings("unchecked")
-    @Test
-    public void testIsEmptyTrue() {
-        Enumeration<String> keys = createMock(Enumeration.class);
-
-        expect(extractor.getKeys()).andReturn(keys);
-        expect(keys.hasMoreElements()).andReturn(false);
-
-        replay(extractor, keys);
-        assertTrue(map.isEmpty());
-        verify(extractor, keys);
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.request.collection.HeaderValuesMap#keySet()}.
-     */
-    @Test
-    public void testKeySet() {
-        replay(extractor);
-        assertTrue(map.keySet() instanceof KeySet);
-        verify(extractor);
-    }
-
-    /**
-     * Test method for {@link HeaderValuesMap#put(String, String[])}.
-     */
-    @Test(expected = UnsupportedOperationException.class)
-    public void testPut() {
-        map.put("one", new String[] {"value1", "value2"});
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.request.collection.HeaderValuesMap#putAll(java.util.Map)}.
-     */
-    @Test(expected = UnsupportedOperationException.class)
-    public void testPutAll() {
-        map.putAll(new HashMap<String, String[]>());
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.request.collection.HeaderValuesMap#remove(java.lang.Object)}.
-     */
-    @Test(expected = UnsupportedOperationException.class)
-    public void testRemove() {
-        map.remove("one");
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.request.collection.HeaderValuesMap#size()}.
-     */
-    @SuppressWarnings("unchecked")
-    @Test
-    public void testSize() {
-        Enumeration<String> keys = createMock(Enumeration.class);
-
-        expect(extractor.getKeys()).andReturn(keys);
-        expect(keys.hasMoreElements()).andReturn(true);
-        expect(keys.nextElement()).andReturn("one");
-        expect(keys.hasMoreElements()).andReturn(true);
-        expect(keys.nextElement()).andReturn("two");
-        expect(keys.hasMoreElements()).andReturn(false);
-
-        replay(extractor, keys);
-        assertEquals(2, map.size());
-        verify(extractor, keys);
-    }
-}
diff --git a/tiles-request/tiles-request-api/src/test/java/org/apache/tiles/request/collection/KeySetTest.java b/tiles-request/tiles-request-api/src/test/java/org/apache/tiles/request/collection/KeySetTest.java
deleted file mode 100644
index e7a939e..0000000
--- a/tiles-request/tiles-request-api/src/test/java/org/apache/tiles/request/collection/KeySetTest.java
+++ /dev/null
@@ -1,301 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.request.collection;
-
-import static org.easymock.EasyMock.*;
-import static org.easymock.classextension.EasyMock.*;
-import static org.junit.Assert.*;
-
-import java.util.ArrayList;
-import java.util.Enumeration;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Set;
-
-import org.apache.tiles.request.attribute.HasKeys;
-import org.junit.Before;
-import org.junit.Test;
-
-/**
- * Tests {@link KeySet}.
- *
- */
-public class KeySetTest {
-
-
-    /**
-     * The extractor to use.
-     */
-    private HasKeys<Integer> extractor;
-
-    /**
-     * The key set.
-     */
-    private Set<String> entrySet;
-
-    /**
-     * Sets up the test.
-     */
-    @SuppressWarnings("unchecked")
-    @Before
-    public void setUp() {
-        extractor = createMock(HasKeys.class);
-        entrySet = new KeySet(extractor);
-    }
-
-    /**
-     * Tests {@link Set#add(Object)}.
-     */
-    @Test(expected = UnsupportedOperationException.class)
-    public void testAdd() {
-        entrySet.add(null);
-    }
-
-    /**
-     * Tests {@link Set#addAll(Object)}.
-     */
-    @Test(expected = UnsupportedOperationException.class)
-    public void testAddAll() {
-        entrySet.addAll(null);
-    }
-
-    /**
-     * Tests {@link Set#clear(Object)}.
-     */
-    @Test(expected = UnsupportedOperationException.class)
-    public void testClear() {
-        entrySet.clear();
-    }
-
-    /**
-     * Tests {@link Set#contains(Object)}.
-     */
-    @Test
-    public void testContains() {
-        expect(extractor.getValue("one")).andReturn(1);
-
-        replay(extractor);
-        assertTrue(entrySet.contains("one"));
-        verify(extractor);
-    }
-
-    /**
-     * Tests {@link Set#contains(Object)}.
-     */
-    @Test
-    public void testContainsFalse() {
-        expect(extractor.getValue("one")).andReturn(null);
-
-        replay(extractor);
-        assertFalse(entrySet.contains("one"));
-        verify(extractor);
-    }
-
-    /**
-     * Tests {@link Set#containsAll(Object)}.
-     */
-    @Test
-    public void testContainsAll() {
-        expect(extractor.getValue("one")).andReturn(1);
-        expect(extractor.getValue("two")).andReturn(1);
-
-        replay(extractor);
-        List<String> coll = new ArrayList<String>();
-        coll.add("one");
-        coll.add("two");
-        assertTrue(entrySet.containsAll(coll));
-        verify(extractor);
-    }
-
-    /**
-     * Tests {@link Set#containsAll(Object)}.
-     */
-    @Test
-    public void testContainsAllFalse() {
-        expect(extractor.getValue("one")).andReturn(1);
-        expect(extractor.getValue("two")).andReturn(null);
-
-        replay(extractor);
-        List<String> coll = new ArrayList<String>();
-        coll.add("one");
-        coll.add("two");
-        assertFalse(entrySet.containsAll(coll));
-        verify(extractor);
-    }
-
-    /**
-     * Test method for {@link Set#isEmpty()}.
-     */
-    @SuppressWarnings("unchecked")
-    @Test
-    public void testIsEmpty() {
-        Enumeration<String> keys = createMock(Enumeration.class);
-
-        expect(extractor.getKeys()).andReturn(keys);
-        expect(keys.hasMoreElements()).andReturn(true);
-
-        replay(extractor, keys);
-        assertFalse(entrySet.isEmpty());
-        verify(extractor, keys);
-    }
-
-    /**
-     * Test method for {@link Set#isEmpty()}.
-     */
-    @SuppressWarnings("unchecked")
-    @Test
-    public void testIsEmptyTrue() {
-        Enumeration<String> keys = createMock(Enumeration.class);
-
-        expect(extractor.getKeys()).andReturn(keys);
-        expect(keys.hasMoreElements()).andReturn(false);
-
-        replay(extractor, keys);
-        assertTrue(entrySet.isEmpty());
-        verify(extractor, keys);
-    }
-
-    /**
-     * Test method for {@link Set#iterator()}.
-     */
-    @SuppressWarnings("unchecked")
-    @Test
-    public void testIterator() {
-        Enumeration<String> keys = createMock(Enumeration.class);
-        Enumeration<String> values2 = createMock(Enumeration.class);
-
-        expect(extractor.getKeys()).andReturn(keys);
-        expect(keys.hasMoreElements()).andReturn(true);
-        expect(keys.nextElement()).andReturn("two");
-
-        replay(extractor, keys, values2);
-        Iterator<String> entryIt = entrySet.iterator();
-        assertTrue(entryIt.hasNext());
-        assertEquals("two", entryIt.next());
-        verify(extractor, keys, values2);
-    }
-
-    /**
-     * Test method for {@link Set#iterator()}.
-     */
-    @SuppressWarnings("unchecked")
-    @Test(expected = UnsupportedOperationException.class)
-    public void testIteratorRemove() {
-        Enumeration<String> keys = createMock(Enumeration.class);
-
-        expect(extractor.getKeys()).andReturn(keys);
-
-        try {
-            replay(extractor, keys);
-            entrySet.iterator().remove();
-        } finally {
-            verify(extractor, keys);
-        }
-    }
-
-    /**
-     * Tests {@link Set#remove(Object)}.
-     */
-    @Test(expected = UnsupportedOperationException.class)
-    public void testRemove() {
-        entrySet.remove(null);
-    }
-
-    /**
-     * Tests {@link Set#removeAll(java.util.Collection)}.
-     */
-    @Test(expected = UnsupportedOperationException.class)
-    public void testRemoveAll() {
-        entrySet.removeAll(null);
-    }
-
-    /**
-     * Tests {@link Set#retainAll(java.util.Collection)}.
-     */
-    @Test(expected = UnsupportedOperationException.class)
-    public void testRetainAll() {
-        entrySet.retainAll(null);
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.request.collection.HeaderValuesMap#size()}.
-     */
-    @SuppressWarnings("unchecked")
-    @Test
-    public void testSize() {
-        Enumeration<String> keys = createMock(Enumeration.class);
-
-        expect(extractor.getKeys()).andReturn(keys);
-        expect(keys.hasMoreElements()).andReturn(true);
-        expect(keys.nextElement()).andReturn("one");
-        expect(keys.hasMoreElements()).andReturn(true);
-        expect(keys.nextElement()).andReturn("two");
-        expect(keys.hasMoreElements()).andReturn(false);
-
-        replay(extractor, keys);
-        assertEquals(2, entrySet.size());
-        verify(extractor, keys);
-    }
-
-    /**
-     * Test method for {@link Set#toArray()}.
-     */
-    @SuppressWarnings("unchecked")
-    @Test
-    public void testToArray() {
-        Enumeration<String> keys = createMock(Enumeration.class);
-        Enumeration<String> values1 = createMock(Enumeration.class);
-        Enumeration<String> values2 = createMock(Enumeration.class);
-
-        expect(extractor.getKeys()).andReturn(keys);
-        expect(keys.hasMoreElements()).andReturn(true);
-        expect(keys.nextElement()).andReturn("one");
-        expect(keys.hasMoreElements()).andReturn(true);
-        expect(keys.nextElement()).andReturn("two");
-        expect(keys.hasMoreElements()).andReturn(false);
-        replay(extractor, keys, values1, values2);
-        assertArrayEquals(new String[] {"one", "two"}, entrySet.toArray());
-        verify(extractor, keys, values1, values2);
-    }
-
-    /**
-     * Test method for {@link Set#toArray(Object[])}.
-     */
-    @SuppressWarnings("unchecked")
-    @Test
-    public void testToArrayTArray() {
-        Enumeration<String> keys = createMock(Enumeration.class);
-        Enumeration<String> values1 = createMock(Enumeration.class);
-        Enumeration<String> values2 = createMock(Enumeration.class);
-
-        expect(extractor.getKeys()).andReturn(keys);
-        expect(keys.hasMoreElements()).andReturn(true);
-        expect(keys.nextElement()).andReturn("one");
-        expect(keys.hasMoreElements()).andReturn(true);
-        expect(keys.nextElement()).andReturn("two");
-        expect(keys.hasMoreElements()).andReturn(false);
-
-        replay(extractor, keys, values1, values2);
-        String[] realArray = new String[2];
-        assertArrayEquals(new String[] {"one", "two"}, entrySet.toArray(realArray));
-        verify(extractor, keys, values1, values2);
-    }
-}
diff --git a/tiles-request/tiles-request-api/src/test/java/org/apache/tiles/request/collection/MapEntryArrayValuesTest.java b/tiles-request/tiles-request-api/src/test/java/org/apache/tiles/request/collection/MapEntryArrayValuesTest.java
deleted file mode 100644
index 3a04d58..0000000
--- a/tiles-request/tiles-request-api/src/test/java/org/apache/tiles/request/collection/MapEntryArrayValuesTest.java
+++ /dev/null
@@ -1,95 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.request.collection;
-
-import static org.junit.Assert.*;
-
-import org.junit.Test;
-
-/**
- * Tests {@link MapEntryArrayValues}.
- *
- * @version $Rev$ $Date$
- */
-public class MapEntryArrayValuesTest {
-
-    /**
-     * Test method for {@link org.apache.tiles.request.collection.MapEntryArrayValues#hashCode()}.
-     */
-    @Test
-    public void testHashCode() {
-        MapEntryArrayValues<String, String> entry = new MapEntryArrayValues<String, String>(
-                "key", new String[] { "value1", "value2" }, false);
-        assertEquals("key".hashCode() ^ ("value1".hashCode() + "value2".hashCode()), entry.hashCode());
-        entry = new MapEntryArrayValues<String, String>(
-                null, new String[] { "value1", "value2" }, false);
-        assertEquals(0 ^ ("value1".hashCode() + "value2".hashCode()), entry.hashCode());
-        entry = new MapEntryArrayValues<String, String>(
-                "key", null, false);
-        assertEquals("key".hashCode() ^ 0, entry.hashCode());
-        entry = new MapEntryArrayValues<String, String>(
-                null, null, false);
-        assertEquals(0 ^ 0, entry.hashCode());
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.request.collection.MapEntryArrayValues#equals(java.lang.Object)}.
-     */
-    @Test
-    public void testEqualsObject() {
-        MapEntryArrayValues<String, String> entry = new MapEntryArrayValues<String, String>(
-                "key", new String[] { "value1", "value2" }, false);
-        assertFalse(entry.equals(null));
-        assertFalse(entry.equals("whatever"));
-        MapEntryArrayValues<String, String> entry2 = new MapEntryArrayValues<String, String>(
-                "key", new String[] { "value1", "value2" }, false);
-        assertTrue(entry.equals(entry2));
-        entry2 = new MapEntryArrayValues<String, String>(
-                "key", null, false);
-        assertFalse(entry.equals(entry2));
-        entry2 = new MapEntryArrayValues<String, String>("key2", new String[] {
-                "value1", "value2" }, false);
-        assertFalse(entry.equals(entry2));
-        entry2 = new MapEntryArrayValues<String, String>("key", new String[] {
-                "value1", "value3" }, false);
-        assertFalse(entry.equals(entry2));
-        entry = new MapEntryArrayValues<String, String>(null, new String[] {
-                "value1", "value2" }, false);
-        entry2 = new MapEntryArrayValues<String, String>(null, new String[] {
-                "value1", "value2" }, false);
-        assertTrue(entry.equals(entry2));
-        entry = new MapEntryArrayValues<String, String>("key", null, false);
-        entry2 = new MapEntryArrayValues<String, String>("key", null, false);
-        assertTrue(entry.equals(entry2));
-        entry2 = new MapEntryArrayValues<String, String>("key", new String[] {
-                "value1", "value2" }, false);
-        assertFalse(entry.equals(entry2));
-        entry = new MapEntryArrayValues<String, String>(null, new String[] {
-                null, "value2" }, false);
-        entry2 = new MapEntryArrayValues<String, String>(null, new String[] {
-                null, "value2" }, false);
-        assertTrue(entry.equals(entry2));
-        entry2 = new MapEntryArrayValues<String, String>(null, new String[] {
-                "value1", "value2" }, false);
-        assertFalse(entry.equals(entry2));
-    }
-
-}
diff --git a/tiles-request/tiles-request-api/src/test/java/org/apache/tiles/request/collection/MapEntryTest.java b/tiles-request/tiles-request-api/src/test/java/org/apache/tiles/request/collection/MapEntryTest.java
deleted file mode 100644
index a458b1b..0000000
--- a/tiles-request/tiles-request-api/src/test/java/org/apache/tiles/request/collection/MapEntryTest.java
+++ /dev/null
@@ -1,110 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.request.collection;
-
-import static org.junit.Assert.*;
-
-import org.junit.Test;
-
-/**
- * Tests {@link MapEntry}.
- *
- * @version $Rev$ $Date$
- */
-public class MapEntryTest {
-
-    /**
-     * Test method for {@link org.apache.tiles.request.collection.MapEntry#hashCode()}.
-     */
-    @Test
-    public void testHashCode() {
-        MapEntry<String, String> entry = new MapEntry<String, String>("key", "value", false);
-        assertEquals("key".hashCode() ^ "value".hashCode(), entry.hashCode());
-        entry = new MapEntry<String, String>(null, "value", false);
-        assertEquals(0 ^ "value".hashCode(), entry.hashCode());
-        entry = new MapEntry<String, String>("key", null, false);
-        assertEquals("key".hashCode() ^ 0, entry.hashCode());
-        entry = new MapEntry<String, String>(null, null, false);
-        assertEquals(0 ^ 0, entry.hashCode());
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.request.collection.MapEntry#getKey()}.
-     */
-    @Test
-    public void testGetKey() {
-        MapEntry<String, String> entry = new MapEntry<String, String>("key", "value", false);
-        assertEquals("key", entry.getKey());
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.request.collection.MapEntry#getValue()}.
-     */
-    @Test
-    public void testGetValue() {
-        MapEntry<String, String> entry = new MapEntry<String, String>("key", "value", false);
-        assertEquals("value", entry.getValue());
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.request.collection.MapEntry#setValue(java.lang.Object)}.
-     */
-    @Test
-    public void testSetValue() {
-        MapEntry<String, String> entry = new MapEntry<String, String>("key", "value", true);
-        assertEquals("value", entry.getValue());
-        entry.setValue("value2");
-        assertEquals("value2", entry.getValue());
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.request.collection.MapEntry#setValue(java.lang.Object)}.
-     */
-    @Test(expected = UnsupportedOperationException.class)
-    public void testSetValueException() {
-        MapEntry<String, String> entry = new MapEntry<String, String>("key", "value", false);
-        assertEquals("value", entry.getValue());
-        entry.setValue("value2");
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.request.collection.MapEntry#equals(java.lang.Object)}.
-     */
-    @Test
-    public void testEqualsObject() {
-        MapEntry<String, String> entry = new MapEntry<String, String>("key", "value", false);
-        assertFalse(entry.equals(null));
-        assertFalse(entry.equals("whatever"));
-        MapEntry<String, String> entry2 = new MapEntry<String, String>("key", "value", false);
-        assertTrue(entry.equals(entry2));
-        entry2 = new MapEntry<String, String>("key2", "value", false);
-        assertFalse(entry.equals(entry2));
-        entry2 = new MapEntry<String, String>("key", "value2", false);
-        assertFalse(entry.equals(entry2));
-        entry = new MapEntry<String, String>(null, "value", false);
-        entry2 = new MapEntry<String, String>(null, "value", false);
-        assertTrue(entry.equals(entry2));
-        entry = new MapEntry<String, String>("key", null, false);
-        entry2 = new MapEntry<String, String>("key", null, false);
-        assertTrue(entry.equals(entry2));
-    }
-
-}
diff --git a/tiles-request/tiles-request-api/src/test/java/org/apache/tiles/request/collection/ReadOnlyEnumerationMapEntrySetTest.java b/tiles-request/tiles-request-api/src/test/java/org/apache/tiles/request/collection/ReadOnlyEnumerationMapEntrySetTest.java
deleted file mode 100644
index 41cd752..0000000
--- a/tiles-request/tiles-request-api/src/test/java/org/apache/tiles/request/collection/ReadOnlyEnumerationMapEntrySetTest.java
+++ /dev/null
@@ -1,318 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.request.collection;
-
-import static org.easymock.EasyMock.*;
-import static org.easymock.classextension.EasyMock.*;
-import static org.junit.Assert.*;
-
-import java.util.ArrayList;
-import java.util.Enumeration;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-
-import org.apache.tiles.request.attribute.HasKeys;
-import org.junit.Before;
-import org.junit.Test;
-
-/**
- * Tests {@link ReadOnlyEnumerationMap#entrySet()}.
- *
- * @version $Rev$ $Date$
- */
-public class ReadOnlyEnumerationMapEntrySetTest {
-
-    /**
-     * The extractor to use.
-     */
-    private HasKeys<Integer> extractor;
-
-    /**
-     * The map to test.
-     */
-    private ReadOnlyEnumerationMap<Integer> map;
-
-    /**
-     * The set to test.
-     */
-    private Set<Map.Entry<String, Integer>> entrySet;
-
-    /**
-     * Sets up the test.
-     */
-    @SuppressWarnings("unchecked")
-    @Before
-    public void setUp() {
-        extractor = createMock(HasKeys.class);
-        map = new ReadOnlyEnumerationMap<Integer>(extractor);
-        entrySet = map.entrySet();
-    }
-
-    /**
-     * Tests {@link Set#add(Object)}.
-     */
-    @Test(expected = UnsupportedOperationException.class)
-    public void testAdd() {
-        entrySet.add(null);
-    }
-
-    /**
-     * Tests {@link Set#addAll(Object)}.
-     */
-    @Test(expected = UnsupportedOperationException.class)
-    public void testAddAll() {
-        entrySet.addAll(null);
-    }
-
-    /**
-     * Tests {@link Set#clear(Object)}.
-     */
-    @Test(expected = UnsupportedOperationException.class)
-    public void testClear() {
-        entrySet.clear();
-    }
-
-    /**
-     * Tests {@link Set#contains(Object)}.
-     */
-    @SuppressWarnings("unchecked")
-    @Test
-    public void testContains() {
-        Map.Entry<String, Integer> entry = createMock(Map.Entry.class);
-        Enumeration<String> values2 = createMock(Enumeration.class);
-
-        expect(entry.getKey()).andReturn("two");
-        expect(entry.getValue()).andReturn(2);
-
-        expect(extractor.getValue("two")).andReturn(2);
-
-        replay(extractor, entry, values2);
-        assertTrue(entrySet.contains(entry));
-        verify(extractor, entry, values2);
-    }
-
-    /**
-     * Tests {@link Set#containsAll(Object)}.
-     */
-    @SuppressWarnings("unchecked")
-    @Test
-    public void testContainsAll() {
-        Map.Entry<String, Integer> entry1 = createMock(Map.Entry.class);
-        Map.Entry<String, Integer> entry2 = createMock(Map.Entry.class);
-
-        expect(entry1.getKey()).andReturn("one");
-        expect(entry1.getValue()).andReturn(1);
-        expect(entry2.getKey()).andReturn("two");
-        expect(entry2.getValue()).andReturn(2);
-
-        expect(extractor.getValue("one")).andReturn(1);
-        expect(extractor.getValue("two")).andReturn(2);
-
-        replay(extractor, entry1, entry2);
-        List<Map.Entry<String, Integer>> coll = new ArrayList<Map.Entry<String, Integer>>();
-        coll.add(entry1);
-        coll.add(entry2);
-        assertTrue(entrySet.containsAll(coll));
-        verify(extractor, entry1, entry2);
-    }
-
-    /**
-     * Tests {@link Set#containsAll(Object)}.
-     */
-    @SuppressWarnings("unchecked")
-    @Test
-    public void testContainsAllFalse() {
-        Map.Entry<String, String> entry1 = createMock(Map.Entry.class);
-
-        expect(entry1.getKey()).andReturn("one");
-        expect(entry1.getValue()).andReturn("value4");
-
-        expect(extractor.getValue("one")).andReturn(1);
-
-        replay(extractor, entry1);
-        List<Map.Entry<String, String>> coll = new ArrayList<Map.Entry<String, String>>();
-        coll.add(entry1);
-        assertFalse(entrySet.containsAll(coll));
-        verify(extractor, entry1);
-    }
-
-    /**
-     * Test method for {@link Set#isEmpty()}.
-     */
-    @SuppressWarnings("unchecked")
-    @Test
-    public void testIsEmpty() {
-        Enumeration<String> keys = createMock(Enumeration.class);
-
-        expect(extractor.getKeys()).andReturn(keys);
-        expect(keys.hasMoreElements()).andReturn(true);
-
-        replay(extractor, keys);
-        assertFalse(entrySet.isEmpty());
-        verify(extractor, keys);
-    }
-
-    /**
-     * Test method for {@link Set#iterator()}.
-     */
-    @SuppressWarnings("unchecked")
-    @Test
-    public void testIterator() {
-        Enumeration<String> keys = createMock(Enumeration.class);
-
-        expect(extractor.getKeys()).andReturn(keys);
-        expect(keys.hasMoreElements()).andReturn(true);
-        expect(keys.nextElement()).andReturn("two");
-
-        expect(extractor.getValue("two")).andReturn(2);
-
-        replay(extractor, keys);
-        Iterator<Map.Entry<String, Integer>> entryIt = entrySet.iterator();
-        assertTrue(entryIt.hasNext());
-        MapEntry<String, Integer> entry = new MapEntry<String, Integer>(
-                "two", 2, false);
-        assertEquals(entry, entryIt.next());
-        verify(extractor, keys);
-    }
-
-    /**
-     * Test method for {@link Set#iterator()}.
-     */
-    @SuppressWarnings("unchecked")
-    @Test(expected = UnsupportedOperationException.class)
-    public void testIteratorRemove() {
-        Enumeration<String> keys = createMock(Enumeration.class);
-
-        expect(extractor.getKeys()).andReturn(keys);
-
-        try {
-            replay(extractor, keys);
-            entrySet.iterator().remove();
-        } finally {
-            verify(extractor, keys);
-        }
-    }
-
-    /**
-     * Tests {@link Set#remove(Object)}.
-     */
-    @Test(expected = UnsupportedOperationException.class)
-    public void testRemove() {
-        entrySet.remove(null);
-    }
-
-    /**
-     * Tests {@link Set#removeAll(java.util.Collection)}.
-     */
-    @Test(expected = UnsupportedOperationException.class)
-    public void testRemoveAll() {
-        entrySet.removeAll(null);
-    }
-
-    /**
-     * Tests {@link Set#retainAll(java.util.Collection)}.
-     */
-    @Test(expected = UnsupportedOperationException.class)
-    public void testRetainAll() {
-        entrySet.retainAll(null);
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.request.collection.HeaderValuesMap#size()}.
-     */
-    @SuppressWarnings("unchecked")
-    @Test
-    public void testSize() {
-        Enumeration<String> keys = createMock(Enumeration.class);
-
-        expect(extractor.getKeys()).andReturn(keys);
-        expect(keys.hasMoreElements()).andReturn(true);
-        expect(keys.nextElement()).andReturn("one");
-        expect(keys.hasMoreElements()).andReturn(true);
-        expect(keys.nextElement()).andReturn("two");
-        expect(keys.hasMoreElements()).andReturn(false);
-
-        replay(extractor, keys);
-        assertEquals(2, entrySet.size());
-        verify(extractor, keys);
-    }
-
-    /**
-     * Test method for {@link Set#toArray()}.
-     */
-    @SuppressWarnings("unchecked")
-    @Test
-    public void testToArray() {
-        Enumeration<String> keys = createMock(Enumeration.class);
-        Enumeration<String> values1 = createMock(Enumeration.class);
-        Enumeration<String> values2 = createMock(Enumeration.class);
-
-        expect(extractor.getKeys()).andReturn(keys);
-        expect(keys.hasMoreElements()).andReturn(true);
-        expect(keys.nextElement()).andReturn("one");
-        expect(keys.hasMoreElements()).andReturn(true);
-        expect(keys.nextElement()).andReturn("two");
-        expect(keys.hasMoreElements()).andReturn(false);
-
-        expect(extractor.getValue("one")).andReturn(1);
-        expect(extractor.getValue("two")).andReturn(2);
-
-        MapEntry<String, Integer>[] entryArray = new MapEntry[2];
-        entryArray[0] = new MapEntry<String, Integer>("one", 1, false);
-        entryArray[1] = new MapEntry<String, Integer>("two", 2, false);
-
-        replay(extractor, keys, values1, values2);
-        assertArrayEquals(entryArray, entrySet.toArray());
-        verify(extractor, keys, values1, values2);
-    }
-
-    /**
-     * Test method for {@link Set#toArray(Object[])}.
-     */
-    @SuppressWarnings("unchecked")
-    @Test
-    public void testToArrayTArray() {
-        Enumeration<String> keys = createMock(Enumeration.class);
-        Enumeration<String> values1 = createMock(Enumeration.class);
-        Enumeration<String> values2 = createMock(Enumeration.class);
-
-        expect(extractor.getKeys()).andReturn(keys);
-        expect(keys.hasMoreElements()).andReturn(true);
-        expect(keys.nextElement()).andReturn("one");
-        expect(keys.hasMoreElements()).andReturn(true);
-        expect(keys.nextElement()).andReturn("two");
-        expect(keys.hasMoreElements()).andReturn(false);
-
-        expect(extractor.getValue("one")).andReturn(1);
-        expect(extractor.getValue("two")).andReturn(2);
-
-        MapEntry<String, Integer>[] entryArray = new MapEntry[2];
-        entryArray[0] = new MapEntry<String, Integer>("one", 1, false);
-        entryArray[1] = new MapEntry<String, Integer>("two", 2, false);
-
-        replay(extractor, keys, values1, values2);
-        MapEntry<String, String>[] realArray = new MapEntry[2];
-        assertArrayEquals(entryArray, entrySet.toArray(realArray));
-        verify(extractor, keys, values1, values2);
-    }
-}
diff --git a/tiles-request/tiles-request-api/src/test/java/org/apache/tiles/request/collection/ReadOnlyEnumerationMapTest.java b/tiles-request/tiles-request-api/src/test/java/org/apache/tiles/request/collection/ReadOnlyEnumerationMapTest.java
deleted file mode 100644
index 547b219..0000000
--- a/tiles-request/tiles-request-api/src/test/java/org/apache/tiles/request/collection/ReadOnlyEnumerationMapTest.java
+++ /dev/null
@@ -1,330 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.request.collection;
-
-import static org.easymock.EasyMock.*;
-import static org.easymock.classextension.EasyMock.*;
-import static org.junit.Assert.*;
-
-import java.util.Enumeration;
-import java.util.HashMap;
-
-import org.apache.tiles.request.attribute.HasKeys;
-import org.junit.Before;
-import org.junit.Test;
-
-/**
- * Tests {@link ReadOnlyEnumerationMap}.
- *
- * @version $Rev$ $Date$
- */
-public class ReadOnlyEnumerationMapTest {
-
-    /**
-     * The extractor to use.
-     */
-    private HasKeys<Integer> extractor;
-
-    /**
-     * The map to test.
-     */
-    private ReadOnlyEnumerationMap<Integer> map;
-
-    /**
-     * Sets up the test.
-     */
-    @SuppressWarnings("unchecked")
-    @Before
-    public void setUp() {
-        extractor = createMock(HasKeys.class);
-        map = new ReadOnlyEnumerationMap<Integer>(extractor);
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.request.collection.ReadOnlyEnumerationMap#clear()}.
-     */
-    @Test(expected = UnsupportedOperationException.class)
-    public void testClear() {
-        map.clear();
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.request.collection.ReadOnlyEnumerationMap#containsKey(java.lang.Object)}.
-     */
-    @Test
-    public void testContainsKey() {
-        expect(extractor.getValue("one")).andReturn(1);
-        expect(extractor.getValue("two")).andReturn(null);
-
-        replay(extractor);
-        assertTrue(map.containsKey("one"));
-        assertFalse(map.containsKey("two"));
-        verify(extractor);
-    }
-
-    /**
-     * Test method for {@link ReadOnlyEnumerationMap#containsValue(Object)}.
-     */
-    @SuppressWarnings("unchecked")
-    @Test
-    public void testContainsValue() {
-        Enumeration<String> keys = createMock(Enumeration.class);
-
-        expect(extractor.getKeys()).andReturn(keys);
-        expect(keys.hasMoreElements()).andReturn(true);
-        expect(keys.nextElement()).andReturn("one");
-        expect(keys.hasMoreElements()).andReturn(true);
-        expect(keys.nextElement()).andReturn("two");
-
-        expect(extractor.getValue("one")).andReturn(1);
-        expect(extractor.getValue("two")).andReturn(2);
-
-        replay(extractor, keys);
-        assertTrue(map.containsValue(2));
-        verify(extractor, keys);
-    }
-
-    /**
-     * Test method for {@link ReadOnlyEnumerationMap#containsValue(Object)}.
-     */
-    @SuppressWarnings("unchecked")
-    @Test
-    public void testContainsValueFalse() {
-        Enumeration<String> keys = createMock(Enumeration.class);
-
-        expect(extractor.getKeys()).andReturn(keys);
-        expect(keys.hasMoreElements()).andReturn(true);
-        expect(keys.nextElement()).andReturn("one");
-        expect(keys.hasMoreElements()).andReturn(true);
-        expect(keys.nextElement()).andReturn("two");
-        expect(keys.hasMoreElements()).andReturn(false);
-
-        expect(extractor.getValue("one")).andReturn(1);
-        expect(extractor.getValue("two")).andReturn(1);
-
-        replay(extractor, keys);
-        assertFalse(map.containsValue(3));
-        verify(extractor, keys);
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.request.collection.ReadOnlyEnumerationMap#get(java.lang.Object)}.
-     */
-    @Test
-    public void testGet() {
-        expect(extractor.getValue("two")).andReturn(2);
-
-        replay(extractor);
-        assertEquals(new Integer(2), map.get("two"));
-        verify(extractor);
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.request.collection.ReadOnlyEnumerationMap#isEmpty()}.
-     */
-    @SuppressWarnings("unchecked")
-    @Test
-    public void testIsEmpty() {
-        Enumeration<String> keys = createMock(Enumeration.class);
-
-        expect(extractor.getKeys()).andReturn(keys);
-        expect(keys.hasMoreElements()).andReturn(true);
-
-        replay(extractor, keys);
-        assertFalse(map.isEmpty());
-        verify(extractor, keys);
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.request.collection.ReadOnlyEnumerationMap#isEmpty()}.
-     */
-    @SuppressWarnings("unchecked")
-    @Test
-    public void testIsEmptyTrue() {
-        Enumeration<String> keys = createMock(Enumeration.class);
-
-        expect(extractor.getKeys()).andReturn(keys);
-        expect(keys.hasMoreElements()).andReturn(false);
-
-        replay(extractor, keys);
-        assertTrue(map.isEmpty());
-        verify(extractor, keys);
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.request.collection.ReadOnlyEnumerationMap#keySet()}.
-     */
-    @Test
-    public void testKeySet() {
-        replay(extractor);
-        assertTrue(map.keySet() instanceof KeySet);
-        verify(extractor);
-    }
-
-    /**
-     * Test method for {@link ReadOnlyEnumerationMap#put(String, String[])}.
-     */
-    @Test(expected = UnsupportedOperationException.class)
-    public void testPut() {
-        map.put("one", 1);
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.request.collection.ReadOnlyEnumerationMap#putAll(java.util.Map)}.
-     */
-    @Test(expected = UnsupportedOperationException.class)
-    public void testPutAll() {
-        map.putAll(new HashMap<String, Integer>());
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.request.collection.ReadOnlyEnumerationMap#remove(java.lang.Object)}.
-     */
-    @Test(expected = UnsupportedOperationException.class)
-    public void testRemove() {
-        map.remove("one");
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.request.collection.ReadOnlyEnumerationMap#size()}.
-     */
-    @SuppressWarnings("unchecked")
-    @Test
-    public void testSize() {
-        Enumeration<String> keys = createMock(Enumeration.class);
-
-        expect(extractor.getKeys()).andReturn(keys);
-        expect(keys.hasMoreElements()).andReturn(true);
-        expect(keys.nextElement()).andReturn("one");
-        expect(keys.hasMoreElements()).andReturn(true);
-        expect(keys.nextElement()).andReturn("two");
-        expect(keys.hasMoreElements()).andReturn(false);
-
-        replay(extractor, keys);
-        assertEquals(2, map.size());
-        verify(extractor, keys);
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.extractor.collection.AbstractEnumerationMap#hashCode()}.
-     */
-    @SuppressWarnings("unchecked")
-    @Test
-    public void testHashCode() {
-        Enumeration<String> keys = createMock(Enumeration.class);
-
-        expect(extractor.getKeys()).andReturn(keys);
-
-        expect(keys.hasMoreElements()).andReturn(true);
-        expect(keys.nextElement()).andReturn("first");
-        expect(keys.hasMoreElements()).andReturn(true);
-        expect(keys.nextElement()).andReturn("second");
-        expect(keys.hasMoreElements()).andReturn(false);
-
-        Integer value1 = 1;
-
-        expect(extractor.getValue("first")).andReturn(value1);
-        expect(extractor.getValue("second")).andReturn(null);
-
-        replay(extractor, keys);
-        assertEquals(("first".hashCode() ^ value1.hashCode())
-                + ("second".hashCode() ^ 0), map.hashCode());
-        verify(extractor, keys);
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.extractor.collection.AbstractEnumerationMap#equals(java.lang.Object)}.
-     */
-    @SuppressWarnings("unchecked")
-    @Test
-    public void testEqualsObject() {
-        HasKeys<Integer> otherRequest = createMock(HasKeys.class);
-        ReadOnlyEnumerationMap<Integer> otherMap = createMockBuilder(
-                ReadOnlyEnumerationMap.class).withConstructor(otherRequest)
-                .createMock();
-        Enumeration<String> keys = createMock(Enumeration.class);
-        Enumeration<String> otherKeys = createMock(Enumeration.class);
-
-        expect(extractor.getKeys()).andReturn(keys);
-        expect(otherRequest.getKeys()).andReturn(otherKeys);
-
-        expect(keys.hasMoreElements()).andReturn(true);
-        expect(keys.nextElement()).andReturn("first");
-        expect(keys.hasMoreElements()).andReturn(true);
-        expect(keys.nextElement()).andReturn("second");
-        expect(keys.hasMoreElements()).andReturn(false);
-
-        expect(extractor.getValue("first")).andReturn(1);
-        expect(extractor.getValue("second")).andReturn(2);
-
-        expect(otherKeys.hasMoreElements()).andReturn(true);
-        expect(otherKeys.nextElement()).andReturn("first");
-        expect(otherKeys.hasMoreElements()).andReturn(true);
-        expect(otherKeys.nextElement()).andReturn("second");
-        expect(otherKeys.hasMoreElements()).andReturn(false);
-
-        expect(otherRequest.getValue("first")).andReturn(1);
-        expect(otherRequest.getValue("second")).andReturn(2);
-
-        replay(extractor, otherRequest, otherMap, keys, otherKeys);
-        assertTrue(map.equals(otherMap));
-        verify(extractor, otherRequest, otherMap, keys, otherKeys);
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.extractor.collection.AbstractEnumerationMap#equals(java.lang.Object)}.
-     */
-    @SuppressWarnings("unchecked")
-    @Test
-    public void testEqualsObjectFalse() {
-        HasKeys<Integer> otherRequest = createMock(HasKeys.class);
-        ReadOnlyEnumerationMap<Integer> otherMap = createMockBuilder(
-                ReadOnlyEnumerationMap.class).withConstructor(otherRequest)
-                .createMock();
-        Enumeration<String> keys = createMock(Enumeration.class);
-        Enumeration<String> otherKeys = createMock(Enumeration.class);
-
-        expect(extractor.getKeys()).andReturn(keys);
-        expect(otherRequest.getKeys()).andReturn(otherKeys);
-
-        expect(keys.hasMoreElements()).andReturn(true);
-        expect(keys.nextElement()).andReturn("first");
-        expect(keys.hasMoreElements()).andReturn(true);
-        expect(keys.nextElement()).andReturn("second");
-        expect(keys.hasMoreElements()).andReturn(false);
-
-        expect(extractor.getValue("first")).andReturn(1);
-        expect(extractor.getValue("second")).andReturn(2);
-
-        expect(otherKeys.hasMoreElements()).andReturn(true);
-        expect(otherKeys.nextElement()).andReturn("first");
-        expect(otherKeys.hasMoreElements()).andReturn(true);
-        expect(otherKeys.nextElement()).andReturn("second");
-        expect(otherKeys.hasMoreElements()).andReturn(false);
-
-        expect(otherRequest.getValue("first")).andReturn(1);
-        expect(otherRequest.getValue("second")).andReturn(3);
-
-        replay(extractor, otherRequest, otherMap, keys, otherKeys);
-        assertFalse(map.equals(otherMap));
-        verify(extractor, otherRequest, otherMap, keys, otherKeys);
-    }
-}
diff --git a/tiles-request/tiles-request-api/src/test/java/org/apache/tiles/request/collection/ReadOnlyEnumerationMapValuesCollectionTest.java b/tiles-request/tiles-request-api/src/test/java/org/apache/tiles/request/collection/ReadOnlyEnumerationMapValuesCollectionTest.java
deleted file mode 100644
index 13f35dd..0000000
--- a/tiles-request/tiles-request-api/src/test/java/org/apache/tiles/request/collection/ReadOnlyEnumerationMapValuesCollectionTest.java
+++ /dev/null
@@ -1,337 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.request.collection;
-
-import static org.easymock.EasyMock.*;
-import static org.easymock.classextension.EasyMock.*;
-import static org.junit.Assert.*;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Enumeration;
-import java.util.Iterator;
-import java.util.List;
-
-import org.apache.tiles.request.attribute.HasKeys;
-import org.junit.Before;
-import org.junit.Test;
-
-/**
- * Tests {@link ReadOnlyEnumerationMap#values()}.
- *
- * @version $Rev$ $Date$
- */
-public class ReadOnlyEnumerationMapValuesCollectionTest {
-    /**
-     * The extractor to use.
-     */
-    private HasKeys<Integer> extractor;
-
-    /**
-     * The map to test.
-     */
-    private ReadOnlyEnumerationMap<Integer> map;
-
-    /**
-     * The collection to test.
-     */
-    private Collection<Integer> coll;
-
-    /**
-     * Sets up the test.
-     */
-    @SuppressWarnings("unchecked")
-    @Before
-    public void setUp() {
-        extractor = createMock(HasKeys.class);
-        map = new ReadOnlyEnumerationMap<Integer>(extractor);
-        coll = map.values();
-    }
-
-    /**
-     * Tests {@link Collection#add(Object)}.
-     */
-    @Test(expected = UnsupportedOperationException.class)
-    public void testAdd() {
-        coll.add(null);
-    }
-
-    /**
-     * Tests {@link Collection#addAll(Object)}.
-     */
-    @Test(expected = UnsupportedOperationException.class)
-    public void testAddAll() {
-        coll.addAll(null);
-    }
-
-    /**
-     * Tests {@link Collection#clear(Object)}.
-     */
-    @Test(expected = UnsupportedOperationException.class)
-    public void testClear() {
-        coll.clear();
-    }
-
-    /**
-     * Tests {@link Collection#contains(Object)}.
-     */
-    @SuppressWarnings("unchecked")
-    @Test
-    public void testContainsValue() {
-        Enumeration<String> keys = createMock(Enumeration.class);
-
-        expect(extractor.getKeys()).andReturn(keys);
-        expect(keys.hasMoreElements()).andReturn(true);
-        expect(keys.nextElement()).andReturn("one");
-        expect(keys.hasMoreElements()).andReturn(true);
-        expect(keys.nextElement()).andReturn("two");
-
-        expect(extractor.getValue("one")).andReturn(1);
-        expect(extractor.getValue("two")).andReturn(2);
-
-        replay(extractor, keys);
-        assertTrue(coll.contains(2));
-        verify(extractor, keys);
-    }
-
-    /**
-     * Tests {@link Collection#contains(Object)}.
-     */
-    @SuppressWarnings("unchecked")
-    @Test
-    public void testContainsValueFalse() {
-        Enumeration<String> keys = createMock(Enumeration.class);
-
-        expect(extractor.getKeys()).andReturn(keys);
-        expect(keys.hasMoreElements()).andReturn(true);
-        expect(keys.nextElement()).andReturn("one");
-        expect(keys.hasMoreElements()).andReturn(true);
-        expect(keys.nextElement()).andReturn("two");
-        expect(keys.hasMoreElements()).andReturn(false);
-
-        expect(extractor.getValue("one")).andReturn(1);
-        expect(extractor.getValue("two")).andReturn(2);
-
-        replay(extractor, keys);
-        assertFalse(coll.contains(3));
-        verify(extractor, keys);
-    }
-
-    /**
-     * Tests {@link Collection#containsAll(Object)}.
-     */
-    @SuppressWarnings("unchecked")
-    @Test
-    public void testContainsAll() {
-        Enumeration<String> keys = createMock(Enumeration.class);
-
-        expect(extractor.getKeys()).andReturn(keys);
-        expect(keys.hasMoreElements()).andReturn(true);
-        expect(keys.nextElement()).andReturn("one");
-        expect(keys.hasMoreElements()).andReturn(true);
-        expect(keys.nextElement()).andReturn("two");
-
-        expect(extractor.getValue("one")).andReturn(1);
-        expect(extractor.getValue("two")).andReturn(2);
-
-        replay(extractor, keys);
-        List<Integer> coll = new ArrayList<Integer>();
-        coll.add(1);
-        coll.add(2);
-        assertTrue(this.coll.containsAll(coll));
-        verify(extractor, keys);
-    }
-
-    /**
-     * Tests {@link Collection#containsAll(Object)}.
-     */
-    @SuppressWarnings("unchecked")
-    @Test
-    public void testContainsAllFalse() {
-        Enumeration<String> keys = createMock(Enumeration.class);
-
-        expect(extractor.getKeys()).andReturn(keys);
-        expect(keys.hasMoreElements()).andReturn(true);
-        expect(keys.nextElement()).andReturn("one");
-        expect(keys.hasMoreElements()).andReturn(true);
-        expect(keys.nextElement()).andReturn("two");
-        expect(keys.hasMoreElements()).andReturn(false);
-
-        expect(extractor.getValue("one")).andReturn(1);
-        expect(extractor.getValue("two")).andReturn(2);
-
-        replay(extractor, keys);
-        List<Integer> coll = new ArrayList<Integer>();
-        coll.add(3);
-        assertFalse(this.coll.containsAll(coll));
-        verify(extractor, keys);
-    }
-
-    /**
-     * Test method for {@link Collection#isEmpty()}.
-     */
-    @SuppressWarnings("unchecked")
-    @Test
-    public void testIsEmpty() {
-        Enumeration<String> keys = createMock(Enumeration.class);
-
-        expect(extractor.getKeys()).andReturn(keys);
-        expect(keys.hasMoreElements()).andReturn(true);
-
-        replay(extractor, keys);
-        assertFalse(coll.isEmpty());
-        verify(extractor, keys);
-    }
-
-    /**
-     * Test method for {@link Collection#iterator()}.
-     */
-    @SuppressWarnings("unchecked")
-    @Test
-    public void testIterator() {
-        Enumeration<String> keys = createMock(Enumeration.class);
-
-        expect(extractor.getKeys()).andReturn(keys);
-        expect(keys.hasMoreElements()).andReturn(true);
-        expect(keys.nextElement()).andReturn("two");
-
-        expect(extractor.getValue("two")).andReturn(2);
-
-        replay(extractor, keys);
-        Iterator<Integer> entryIt = coll.iterator();
-        assertTrue(entryIt.hasNext());
-        assertEquals(new Integer(2), entryIt.next());
-        verify(extractor, keys);
-    }
-
-    /**
-     * Test method for {@link Collection#iterator()}.
-     */
-    @SuppressWarnings("unchecked")
-    @Test(expected = UnsupportedOperationException.class)
-    public void testIteratorRemove() {
-        Enumeration<String> keys = createMock(Enumeration.class);
-
-        expect(extractor.getKeys()).andReturn(keys);
-
-        try {
-            replay(extractor, keys);
-            coll.iterator().remove();
-        } finally {
-            verify(extractor, keys);
-        }
-    }
-
-    /**
-     * Tests {@link Collection#remove(Object)}.
-     */
-    @Test(expected = UnsupportedOperationException.class)
-    public void testRemove() {
-        coll.remove(null);
-    }
-
-    /**
-     * Tests {@link Collection#removeAll(java.util.Collection)}.
-     */
-    @Test(expected = UnsupportedOperationException.class)
-    public void testRemoveAll() {
-        coll.removeAll(null);
-    }
-
-    /**
-     * Tests {@link Collection#retainAll(java.util.Collection)}.
-     */
-    @Test(expected = UnsupportedOperationException.class)
-    public void testRetainAll() {
-        coll.retainAll(null);
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.request.collection.HeaderValuesMap#size()}.
-     */
-    @SuppressWarnings("unchecked")
-    @Test
-    public void testSize() {
-        Enumeration<String> keys = createMock(Enumeration.class);
-
-        expect(extractor.getKeys()).andReturn(keys);
-        expect(keys.hasMoreElements()).andReturn(true);
-        expect(keys.nextElement()).andReturn("one");
-        expect(keys.hasMoreElements()).andReturn(true);
-        expect(keys.nextElement()).andReturn("two");
-        expect(keys.hasMoreElements()).andReturn(false);
-
-        replay(extractor, keys);
-        assertEquals(2, coll.size());
-        verify(extractor, keys);
-    }
-
-    /**
-     * Test method for {@link Collection#toArray()}.
-     */
-    @SuppressWarnings("unchecked")
-    @Test
-    public void testToArray() {
-        Enumeration<String> keys = createMock(Enumeration.class);
-
-        expect(extractor.getKeys()).andReturn(keys);
-        expect(keys.hasMoreElements()).andReturn(true);
-        expect(keys.nextElement()).andReturn("one");
-        expect(keys.hasMoreElements()).andReturn(true);
-        expect(keys.nextElement()).andReturn("two");
-        expect(keys.hasMoreElements()).andReturn(false);
-
-        expect(extractor.getValue("one")).andReturn(1);
-        expect(extractor.getValue("two")).andReturn(2);
-
-        Integer[] entryArray = new Integer[] {1, 2};
-
-        replay(extractor, keys);
-        assertArrayEquals(entryArray, coll.toArray());
-        verify(extractor, keys);
-    }
-
-    /**
-     * Test method for {@link Collection#toArray(Object[])}.
-     */
-    @SuppressWarnings("unchecked")
-    @Test
-    public void testToArrayTArray() {
-        Enumeration<String> keys = createMock(Enumeration.class);
-
-        expect(extractor.getKeys()).andReturn(keys);
-        expect(keys.hasMoreElements()).andReturn(true);
-        expect(keys.nextElement()).andReturn("one");
-        expect(keys.hasMoreElements()).andReturn(true);
-        expect(keys.nextElement()).andReturn("two");
-        expect(keys.hasMoreElements()).andReturn(false);
-
-        expect(extractor.getValue("one")).andReturn(1);
-        expect(extractor.getValue("two")).andReturn(2);
-
-        Integer[] entryArray = new Integer[] {1, 2};
-
-        replay(extractor, keys);
-        Integer[] realArray = new Integer[2];
-        assertArrayEquals(entryArray, coll.toArray(realArray));
-        verify(extractor, keys);
-    }
-}
diff --git a/tiles-request/tiles-request-api/src/test/java/org/apache/tiles/request/collection/RemovableKeySetTest.java b/tiles-request/tiles-request-api/src/test/java/org/apache/tiles/request/collection/RemovableKeySetTest.java
deleted file mode 100644
index c7fcda3..0000000
--- a/tiles-request/tiles-request-api/src/test/java/org/apache/tiles/request/collection/RemovableKeySetTest.java
+++ /dev/null
@@ -1,132 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.request.collection;
-
-import static org.easymock.EasyMock.*;
-import static org.easymock.classextension.EasyMock.*;
-import static org.junit.Assert.*;
-
-import java.util.ArrayList;
-import java.util.Enumeration;
-import java.util.List;
-
-import org.apache.tiles.request.attribute.HasRemovableKeys;
-import org.junit.Before;
-import org.junit.Test;
-
-/**
- * Tests {@link RemovableKeySet}.
- *
- * @version $Rev$ $Date$
- */
-public class RemovableKeySetTest {
-
-    /**
-     * The extractor to use.
-     */
-    private HasRemovableKeys<Integer> extractor;
-
-    /**
-     * The key set to test.
-     */
-    private RemovableKeySet entrySet;
-
-    /**
-     * Sets up the test.
-     */
-    @SuppressWarnings("unchecked")
-    @Before
-    public void setUp() {
-        extractor = createMock(HasRemovableKeys.class);
-        entrySet = new RemovableKeySet(extractor);
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.request.collection.RemovableKeySet#remove(java.lang.Object)}.
-     */
-    @Test
-    public void testRemove() {
-        expect(extractor.getValue("one")).andReturn(1);
-        extractor.removeValue("one");
-
-        replay(extractor);
-        assertTrue(entrySet.remove("one"));
-        verify(extractor);
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.request.collection.RemovableKeySet#remove(java.lang.Object)}.
-     */
-    @Test
-    public void testRemoveNoEffect() {
-        expect(extractor.getValue("one")).andReturn(null);
-
-        replay(extractor);
-        assertFalse(entrySet.remove("one"));
-        verify(extractor);
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.request.collection.RemovableKeySet#removeAll(java.util.Collection)}.
-     */
-    @Test
-    public void testRemoveAll() {
-        expect(extractor.getValue("one")).andReturn(1);
-        expect(extractor.getValue("two")).andReturn(2);
-        extractor.removeValue("one");
-        extractor.removeValue("two");
-
-        replay(extractor);
-        List<String> coll = new ArrayList<String>();
-        coll.add("one");
-        coll.add("two");
-        assertTrue(entrySet.removeAll(coll));
-        verify(extractor);
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.request.collection.RemovableKeySet#retainAll(java.util.Collection)}.
-     */
-    @SuppressWarnings("unchecked")
-    @Test
-    public void testRetainAll() {
-        Enumeration<String> keys = createMock(Enumeration.class);
-
-        expect(extractor.getKeys()).andReturn(keys);
-        expect(keys.hasMoreElements()).andReturn(true);
-        expect(keys.nextElement()).andReturn("one");
-        expect(keys.hasMoreElements()).andReturn(true);
-        expect(keys.nextElement()).andReturn("two");
-        expect(keys.hasMoreElements()).andReturn(true);
-        expect(keys.nextElement()).andReturn("three");
-        expect(keys.hasMoreElements()).andReturn(false);
-
-        extractor.removeValue("three");
-
-        replay(extractor, keys);
-        List<String> coll = new ArrayList<String>();
-        coll.add("one");
-        coll.add("two");
-        assertTrue(entrySet.retainAll(coll));
-        verify(extractor, keys);
-    }
-
-}
diff --git a/tiles-request/tiles-request-api/src/test/java/org/apache/tiles/request/collection/ScopeMapEntrySetTest.java b/tiles-request/tiles-request-api/src/test/java/org/apache/tiles/request/collection/ScopeMapEntrySetTest.java
deleted file mode 100644
index 229af41..0000000
--- a/tiles-request/tiles-request-api/src/test/java/org/apache/tiles/request/collection/ScopeMapEntrySetTest.java
+++ /dev/null
@@ -1,249 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.request.collection;
-
-
-import static org.easymock.EasyMock.*;
-import static org.easymock.classextension.EasyMock.*;
-import static org.junit.Assert.*;
-
-import java.util.ArrayList;
-import java.util.Enumeration;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-
-import org.apache.tiles.request.attribute.AttributeExtractor;
-import org.junit.Before;
-import org.junit.Test;
-
-/**
- * Tests {@link ScopeMap#entrySet()}.
- *
- * @version $Rev$ $Date$
- */
-public class ScopeMapEntrySetTest {
-
-    /**
-     * The map to test.
-     */
-    private ScopeMap map;
-
-    /**
-     * The extractor to use.
-     */
-    private AttributeExtractor extractor;
-
-    /**
-     * The entry set to test.
-     */
-    private Set<Map.Entry<String, Object>> entrySet;
-
-    /**
-     * Sets up the test.
-     */
-    @Before
-    public void setUp() {
-        extractor = createMock(AttributeExtractor.class);
-        map = new ScopeMap(extractor);
-        entrySet = map.entrySet();
-    }
-
-    /**
-     * Tests {@link Set#add(Object)}.
-     */
-    @SuppressWarnings("unchecked")
-    @Test
-    public void testAdd() {
-        Map.Entry<String, Object> entry = createMock(Map.Entry.class);
-
-        expect(entry.getKey()).andReturn("one");
-        expect(entry.getValue()).andReturn(1);
-        expect(extractor.getValue("one")).andReturn(null);
-
-        extractor.setValue("one", 1);
-
-        replay(extractor, entry);
-        assertTrue(entrySet.add(entry));
-        verify(extractor, entry);
-    }
-
-    /**
-     * Tests {@link Set#add(Object)}.
-     */
-    @SuppressWarnings("unchecked")
-    @Test
-    public void testAddNoEffect() {
-        Map.Entry<String, Object> entry = createMock(Map.Entry.class);
-
-        expect(entry.getKey()).andReturn("one");
-        expect(entry.getValue()).andReturn(1);
-        expect(extractor.getValue("one")).andReturn(1);
-
-        replay(extractor, entry);
-        assertFalse(entrySet.add(entry));
-        verify(extractor, entry);
-    }
-
-    /**
-     * Tests {@link Set#addAll(java.util.Collection)}.
-     */
-    @SuppressWarnings("unchecked")
-    @Test
-    public void testAddAll() {
-        Map.Entry<String, Object> entry1 = createMock(Map.Entry.class);
-        Map.Entry<String, Object> entry2 = createMock(Map.Entry.class);
-
-        expect(entry1.getKey()).andReturn("one");
-        expect(entry1.getValue()).andReturn(1);
-        expect(entry2.getKey()).andReturn("two");
-        expect(entry2.getValue()).andReturn(2);
-        expect(extractor.getValue("one")).andReturn(null);
-        expect(extractor.getValue("two")).andReturn(null);
-
-        extractor.setValue("one", 1);
-        extractor.setValue("two", 2);
-
-        replay(extractor, entry1, entry2);
-        List<Map.Entry<String, Object>> coll = new ArrayList<Map.Entry<String, Object>>();
-        coll.add(entry1);
-        coll.add(entry2);
-        assertTrue(entrySet.addAll(coll));
-        verify(extractor, entry1, entry2);
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.request.collection.ScopeMap#clear()}.
-     */
-    @SuppressWarnings("unchecked")
-    @Test
-    public void testClear() {
-        Enumeration<String> keys = createMock(Enumeration.class);
-
-        expect(extractor.getKeys()).andReturn(keys);
-        expect(keys.hasMoreElements()).andReturn(true);
-        expect(keys.nextElement()).andReturn("one");
-        expect(keys.hasMoreElements()).andReturn(true);
-        expect(keys.nextElement()).andReturn("two");
-        expect(keys.hasMoreElements()).andReturn(false);
-
-        extractor.removeValue("one");
-        extractor.removeValue("two");
-
-        replay(extractor, keys);
-        entrySet.clear();
-        verify(extractor, keys);
-    }
-
-    /**
-     * Tests {@link Set#remove(Object)}.
-     */
-    @SuppressWarnings("unchecked")
-    @Test
-    public void testRemove() {
-        Map.Entry<String, Object> entry = createMock(Map.Entry.class);
-
-        expect(entry.getKey()).andReturn("one");
-        expect(entry.getValue()).andReturn(1);
-        expect(extractor.getValue("one")).andReturn(1);
-        extractor.removeValue("one");
-
-        replay(extractor, entry);
-        assertTrue(entrySet.remove(entry));
-        verify(extractor, entry);
-    }
-
-    /**
-     * Tests {@link Set#remove(Object)}.
-     */
-    @SuppressWarnings("unchecked")
-    @Test
-    public void testRemoveNoEffect() {
-        Map.Entry<String, Object> entry = createMock(Map.Entry.class);
-
-        expect(entry.getKey()).andReturn("one");
-        expect(extractor.getValue("one")).andReturn(null);
-
-        replay(extractor, entry);
-        assertFalse(entrySet.remove(entry));
-        verify(extractor, entry);
-    }
-
-    /**
-     * Tests {@link Set#addAll(java.util.Collection)}.
-     */
-    @SuppressWarnings("unchecked")
-    @Test
-    public void testRemoveAll() {
-        Map.Entry<String, Object> entry1 = createMock(Map.Entry.class);
-        Map.Entry<String, Object> entry2 = createMock(Map.Entry.class);
-
-        expect(entry1.getKey()).andReturn("one");
-        expect(entry1.getValue()).andReturn(1);
-        expect(entry2.getKey()).andReturn("two");
-        expect(entry2.getValue()).andReturn(2);
-        expect(extractor.getValue("one")).andReturn(1);
-        expect(extractor.getValue("two")).andReturn(2);
-        extractor.removeValue("one");
-        extractor.removeValue("two");
-
-        replay(extractor, entry1, entry2);
-        List<Map.Entry<String, Object>> coll = new ArrayList<Map.Entry<String, Object>>();
-        coll.add(entry1);
-        coll.add(entry2);
-        assertTrue(entrySet.removeAll(coll));
-        verify(extractor, entry1, entry2);
-    }
-
-    /**
-     * Tests {@link Set#addAll(java.util.Collection)}.
-     */
-    @SuppressWarnings("unchecked")
-    @Test
-    public void testRetainAll() {
-        Enumeration<String> keys = createMock(Enumeration.class);
-
-        expect(extractor.getKeys()).andReturn(keys);
-        expect(keys.hasMoreElements()).andReturn(true);
-        expect(keys.nextElement()).andReturn("one");
-        expect(keys.hasMoreElements()).andReturn(true);
-        expect(keys.nextElement()).andReturn("two");
-        expect(keys.hasMoreElements()).andReturn(true);
-        expect(keys.nextElement()).andReturn("three");
-        expect(keys.hasMoreElements()).andReturn(false);
-
-        Map.Entry<String, Object> entry1 = new MapEntry<String, Object>("one", 1, false);
-        Map.Entry<String, Object> entry2 = new MapEntry<String, Object>("two", 2, false);
-
-        expect(extractor.getValue("one")).andReturn(1);
-        expect(extractor.getValue("two")).andReturn(3);
-        expect(extractor.getValue("three")).andReturn(4);
-        extractor.removeValue("two");
-        extractor.removeValue("three");
-
-        replay(extractor, keys);
-        List<Map.Entry<String, Object>> coll = new ArrayList<Map.Entry<String, Object>>();
-        coll.add(entry1);
-        coll.add(entry2);
-        assertTrue(entrySet.retainAll(coll));
-        verify(extractor, keys);
-    }
-}
diff --git a/tiles-request/tiles-request-api/src/test/java/org/apache/tiles/request/collection/ScopeMapTest.java b/tiles-request/tiles-request-api/src/test/java/org/apache/tiles/request/collection/ScopeMapTest.java
deleted file mode 100644
index 914d118..0000000
--- a/tiles-request/tiles-request-api/src/test/java/org/apache/tiles/request/collection/ScopeMapTest.java
+++ /dev/null
@@ -1,136 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.request.collection;
-
-import static org.easymock.EasyMock.*;
-import static org.easymock.classextension.EasyMock.*;
-import static org.junit.Assert.*;
-
-import java.util.Enumeration;
-import java.util.LinkedHashMap;
-import java.util.Map;
-
-import org.apache.tiles.request.attribute.AttributeExtractor;
-import org.junit.Before;
-import org.junit.Test;
-
-/**
- * Tests {@link ScopeMap}.
- *
- * @version $Rev$ $Date$
- */
-public class ScopeMapTest {
-
-    /**
-     * The map tot est.
-     */
-    private ScopeMap map;
-
-    /**
-     * The extractor to use.
-     */
-    private AttributeExtractor extractor;
-
-    /**
-     * Sets up the test.
-     */
-    @Before
-    public void setUp() {
-        extractor = createMock(AttributeExtractor.class);
-        map = new ScopeMap(extractor);
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.request.collection.ScopeMap#clear()}.
-     */
-    @SuppressWarnings("unchecked")
-    @Test
-    public void testClear() {
-        Enumeration<String> keys = createMock(Enumeration.class);
-
-        expect(extractor.getKeys()).andReturn(keys);
-        expect(keys.hasMoreElements()).andReturn(true);
-        expect(keys.nextElement()).andReturn("one");
-        expect(keys.hasMoreElements()).andReturn(true);
-        expect(keys.nextElement()).andReturn("two");
-        expect(keys.hasMoreElements()).andReturn(false);
-
-        extractor.removeValue("one");
-        extractor.removeValue("two");
-
-        replay(extractor, keys);
-        map.clear();
-        verify(extractor, keys);
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.request.collection.ScopeMap#keySet()}.
-     */
-    @Test
-    public void testKeySet() {
-        replay(extractor);
-        assertTrue(map.keySet() instanceof RemovableKeySet);
-        verify(extractor);
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.request.collection.ScopeMap#put(java.lang.String, java.lang.Object)}.
-     */
-    @Test
-    public void testPutStringObject() {
-        expect(extractor.getValue("one")).andReturn(null);
-        extractor.setValue("one", 1);
-
-        replay(extractor);
-        assertNull(map.put("one", 1));
-        verify(extractor);
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.request.collection.ScopeMap#putAll(java.util.Map)}.
-     */
-    @Test
-    public void testPutAllMapOfQextendsStringQextendsObject() {
-        Map<String, Object> items = new LinkedHashMap<String, Object>();
-        items.put("one", 1);
-        items.put("two", 2);
-
-        extractor.setValue("one", 1);
-        extractor.setValue("two", 2);
-
-        replay(extractor);
-        map.putAll(items);
-        verify(extractor);
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.request.collection.ScopeMap#remove(java.lang.Object)}.
-     */
-    @Test
-    public void testRemoveObject() {
-        expect(extractor.getValue("one")).andReturn(1);
-        extractor.removeValue("one");
-
-        replay(extractor);
-        assertEquals(new Integer(1), map.remove("one"));
-        verify(extractor);
-    }
-}
diff --git a/tiles-request/tiles-request-api/src/test/java/org/apache/tiles/request/locale/LocaleUtilTest.java b/tiles-request/tiles-request-api/src/test/java/org/apache/tiles/request/locale/LocaleUtilTest.java
deleted file mode 100644
index d603542..0000000
--- a/tiles-request/tiles-request-api/src/test/java/org/apache/tiles/request/locale/LocaleUtilTest.java
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.tiles.request.locale;
-
-import java.util.Locale;
-
-import junit.framework.TestCase;
-
-/**
- * Tests {@link LocaleUtil}.
- *
- * @version $Rev$ $Date$
- */
-public class LocaleUtilTest extends TestCase {
-
-    /**
-     * Test method for {@link LocaleUtil#getParentLocale(Locale)}.
-     */
-    public void testGetParentLocale() {
-        assertNull("The parent locale of NULL_LOCALE is not correct",
-                LocaleUtil.getParentLocale(Locale.ROOT));
-        assertEquals("The parent locale of 'en' is not correct",
-                Locale.ROOT, LocaleUtil
-                        .getParentLocale(Locale.ENGLISH));
-        assertEquals("The parent locale of 'en_US' is not correct",
-                Locale.ENGLISH, LocaleUtil.getParentLocale(Locale.US));
-        Locale locale = new Locale("es", "ES", "Traditional_WIN");
-        Locale parentLocale = new Locale("es", "ES");
-        assertEquals("The parent locale of 'es_ES_Traditional_WIN' is not correct",
-                parentLocale, LocaleUtil.getParentLocale(locale));
-    }
-}
diff --git a/tiles-request/tiles-request-api/src/test/java/org/apache/tiles/request/locale/PostfixedApplicationResourceTest.java b/tiles-request/tiles-request-api/src/test/java/org/apache/tiles/request/locale/PostfixedApplicationResourceTest.java
deleted file mode 100644
index 02c13e4..0000000
--- a/tiles-request/tiles-request-api/src/test/java/org/apache/tiles/request/locale/PostfixedApplicationResourceTest.java
+++ /dev/null
@@ -1,111 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.tiles.request.locale;
-import static org.junit.Assert.assertEquals;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.util.Locale;
-
-import org.junit.Test;
-
-/**
- * Tests PostfixedApplicationResource.
- *
- * @version $Rev$ $Date$
- */
-public class PostfixedApplicationResourceTest {
-
-    private class TestApplicationResource extends PostfixedApplicationResource {
-        public TestApplicationResource(String path, Locale locale) {
-            super(path, locale);
-        }
-
-        public TestApplicationResource(String localePath) {
-            super(localePath);
-        }
-
-        @Override
-        public InputStream getInputStream() throws IOException {
-            return null;
-        }
-
-        @Override
-        public long getLastModified() throws IOException {
-            return 0;
-        }
-        
-    };
-    
-    /**
-     * Test getLocalePath(String path, Locale locale).
-     */
-    @Test
-    public void testGetLocalePath() {
-        TestApplicationResource resource = new TestApplicationResource("/my/path_fr.html");
-        assertEquals("/my/path.html", resource.getLocalePath(null));
-        assertEquals("/my/path.html", resource.getLocalePath(Locale.ROOT));
-        assertEquals("/my/path_it.html", resource.getLocalePath(Locale.ITALIAN));
-        assertEquals("/my/path_it_IT.html", resource.getLocalePath(Locale.ITALY));
-        assertEquals("/my/path_en_GB_scotland.html", resource.getLocalePath(new Locale("en", "GB", "scotland")));
-    }
-    
-    @Test
-    public void testBuildFromString() {
-        TestApplicationResource resource = new TestApplicationResource("/my/path_en_GB_scotland.html");
-        assertEquals("/my/path_en_GB_scotland.html", resource.getLocalePath());
-        assertEquals("/my/path.html", resource.getPath());
-        assertEquals(new Locale("en", "GB", "scotland"), resource.getLocale());
-        resource = new TestApplicationResource("/my/path_it_IT.html");
-        assertEquals("/my/path_it_IT.html", resource.getLocalePath());
-        assertEquals("/my/path.html", resource.getPath());
-        assertEquals(Locale.ITALY, resource.getLocale());
-        resource = new TestApplicationResource("/my/path_it.html");
-        assertEquals("/my/path_it.html", resource.getLocalePath());
-        assertEquals("/my/path.html", resource.getPath());
-        assertEquals(Locale.ITALIAN, resource.getLocale());
-        resource = new TestApplicationResource("/my/path.html");
-        assertEquals("/my/path.html", resource.getLocalePath());
-        assertEquals("/my/path.html", resource.getPath());
-        assertEquals(Locale.ROOT, resource.getLocale());
-    }
-    
-    @Test
-    public void testBuildFromStringAndLocale() {
-        TestApplicationResource resource = new TestApplicationResource("/my/path.html", new Locale("en", "GB", "scotland"));
-        assertEquals("/my/path_en_GB_scotland.html", resource.getLocalePath());
-        assertEquals("/my/path.html", resource.getPath());
-        assertEquals(new Locale("en", "GB", "scotland"), resource.getLocale());
-        resource = new TestApplicationResource("/my/path.html", Locale.ITALY);
-        assertEquals("/my/path_it_IT.html", resource.getLocalePath());
-        assertEquals("/my/path.html", resource.getPath());
-        assertEquals(Locale.ITALY, resource.getLocale());
-        resource = new TestApplicationResource("/my/path.html", Locale.ITALIAN);
-        assertEquals("/my/path_it.html", resource.getLocalePath());
-        assertEquals("/my/path.html", resource.getPath());
-        assertEquals(Locale.ITALIAN, resource.getLocale());
-        resource = new TestApplicationResource("/my/path.html", Locale.ROOT);
-        assertEquals("/my/path.html", resource.getLocalePath());
-        assertEquals("/my/path.html", resource.getPath());
-        assertEquals(Locale.ROOT, resource.getLocale());
-    }
-}
diff --git a/tiles-request/tiles-request-api/src/test/java/org/apache/tiles/request/reflect/CannotAccessMethodExceptionTest.java b/tiles-request/tiles-request-api/src/test/java/org/apache/tiles/request/reflect/CannotAccessMethodExceptionTest.java
deleted file mode 100644
index 5d2a8a3..0000000
--- a/tiles-request/tiles-request-api/src/test/java/org/apache/tiles/request/reflect/CannotAccessMethodExceptionTest.java
+++ /dev/null
@@ -1,77 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.tiles.request.reflect;
-
-import static org.junit.Assert.*;
-
-import org.junit.Test;
-
-/**
- * Tests {@link CannotAccessMethodException}.
- *
- * @version $Rev$ $Date$
- */
-public class CannotAccessMethodExceptionTest {
-
-    /**
-     * Test method for {@link org.apache.tiles.CannotAccessMethodException#CannotAccessMethodException()}.
-     */
-    @Test
-    public void testCannotAccessMethodException() {
-        CannotAccessMethodException exception = new CannotAccessMethodException();
-        assertNull(exception.getMessage());
-        assertNull(exception.getCause());
-    }
-
-    /**
-     * Test method for {@link CannotAccessMethodException#CannotAccessMethodException(String)}.
-     */
-    @Test
-    public void testCannotAccessMethodExceptionString() {
-        CannotAccessMethodException exception = new CannotAccessMethodException("my message");
-        assertEquals("my message", exception.getMessage());
-        assertNull(exception.getCause());
-    }
-
-    /**
-     * Test method for {@link CannotAccessMethodException#CannotAccessMethodException(Throwable)}.
-     */
-    @Test
-    public void testCannotAccessMethodExceptionThrowable() {
-        Throwable cause = new Throwable();
-        CannotAccessMethodException exception = new CannotAccessMethodException(cause);
-        assertEquals(cause.toString(), exception.getMessage());
-        assertEquals(cause, exception.getCause());
-    }
-
-    /**
-     * Test method for {@link CannotAccessMethodException#CannotAccessMethodException(String, Throwable)}.
-     */
-    @Test
-    public void testCannotAccessMethodExceptionStringThrowable() {
-        Throwable cause = new Throwable();
-        CannotAccessMethodException exception = new CannotAccessMethodException("my message", cause);
-        assertEquals("my message", exception.getMessage());
-        assertEquals(cause, exception.getCause());
-    }
-
-}
diff --git a/tiles-request/tiles-request-api/src/test/java/org/apache/tiles/request/reflect/CannotInstantiateObjectExceptionTest.java b/tiles-request/tiles-request-api/src/test/java/org/apache/tiles/request/reflect/CannotInstantiateObjectExceptionTest.java
deleted file mode 100644
index 4b3bd9b..0000000
--- a/tiles-request/tiles-request-api/src/test/java/org/apache/tiles/request/reflect/CannotInstantiateObjectExceptionTest.java
+++ /dev/null
@@ -1,77 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.tiles.request.reflect;
-
-import static org.junit.Assert.*;
-
-import org.junit.Test;
-
-/**
- * Tests {@link CannotInstantiateObjectException}.
- *
- * @version $Rev$ $Date$
- */
-public class CannotInstantiateObjectExceptionTest {
-
-    /**
-     * Test method for {@link org.apache.tiles.CannotInstantiateObjectException#CannotInstantiateObjectException()}.
-     */
-    @Test
-    public void testCannotInstantiateObjectException() {
-        CannotInstantiateObjectException exception = new CannotInstantiateObjectException();
-        assertNull(exception.getMessage());
-        assertNull(exception.getCause());
-    }
-
-    /**
-     * Test method for {@link CannotInstantiateObjectException#CannotInstantiateObjectException(String)}.
-     */
-    @Test
-    public void testCannotInstantiateObjectExceptionString() {
-        CannotInstantiateObjectException exception = new CannotInstantiateObjectException("my message");
-        assertEquals("my message", exception.getMessage());
-        assertNull(exception.getCause());
-    }
-
-    /**
-     * Test method for {@link CannotInstantiateObjectException#CannotInstantiateObjectException(Throwable)}.
-     */
-    @Test
-    public void testCannotInstantiateObjectExceptionThrowable() {
-        Throwable cause = new Throwable();
-        CannotInstantiateObjectException exception = new CannotInstantiateObjectException(cause);
-        assertEquals(cause.toString(), exception.getMessage());
-        assertEquals(cause, exception.getCause());
-    }
-
-    /**
-     * Test method for {@link CannotInstantiateObjectException#CannotInstantiateObjectException(String, Throwable)}.
-     */
-    @Test
-    public void testCannotInstantiateObjectExceptionStringThrowable() {
-        Throwable cause = new Throwable();
-        CannotInstantiateObjectException exception = new CannotInstantiateObjectException("my message", cause);
-        assertEquals("my message", exception.getMessage());
-        assertEquals(cause, exception.getCause());
-    }
-
-}
diff --git a/tiles-request/tiles-request-api/src/test/java/org/apache/tiles/request/reflect/ClassUtilTest.java b/tiles-request/tiles-request-api/src/test/java/org/apache/tiles/request/reflect/ClassUtilTest.java
deleted file mode 100644
index e1b94f3..0000000
--- a/tiles-request/tiles-request-api/src/test/java/org/apache/tiles/request/reflect/ClassUtilTest.java
+++ /dev/null
@@ -1,176 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.tiles.request.reflect;
-
-import static org.junit.Assert.*;
-
-import java.beans.PropertyDescriptor;
-import java.util.HashMap;
-import java.util.Map;
-
-import org.junit.Test;
-
-/**
- * Tests {@link ClassUtil}.
- *
- * @version $Rev$ $Date$
- */
-public class ClassUtilTest {
-
-    /**
-     * The size of descriptor map.
-     */
-    private static final int MAP_SIZE = 3;
-
-    /**
-     * Test method for {@link ClassUtil#collectBeanInfo(Class, Map)}.
-     */
-    @Test
-    public void testCollectBeanInfo() {
-        Map<String, PropertyDescriptor> name2descriptor = new HashMap<String, PropertyDescriptor>();
-        ClassUtil.collectBeanInfo(TestInterface.class, name2descriptor);
-        assertEquals(MAP_SIZE, name2descriptor.size());
-        PropertyDescriptor descriptor = name2descriptor.get("value");
-        assertEquals("value", descriptor.getName());
-        assertEquals(int.class, descriptor.getPropertyType());
-        assertNotNull(descriptor.getReadMethod());
-        assertNotNull(descriptor.getWriteMethod());
-        descriptor = name2descriptor.get("value2");
-        assertEquals("value2", descriptor.getName());
-        assertEquals(long.class, descriptor.getPropertyType());
-        assertNotNull(descriptor.getReadMethod());
-        assertNull(descriptor.getWriteMethod());
-        descriptor = name2descriptor.get("value3");
-        assertEquals("value3", descriptor.getName());
-        assertEquals(String.class, descriptor.getPropertyType());
-        assertNull(descriptor.getReadMethod());
-        assertNotNull(descriptor.getWriteMethod());
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.request.reflect.ClassUtil#getClass(String, Class)}.
-     * @throws ClassNotFoundException If something goes wrong.
-     */
-    @Test
-    public void testGetClass() throws ClassNotFoundException {
-        assertEquals(TestInterface.class, ClassUtil.getClass(
-                TestInterface.class.getName(), Object.class));
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.request.reflect.ClassUtil#getClass(String, Class)}.
-     * @throws ClassNotFoundException If something goes wrong.
-     */
-    @Test(expected = ClassNotFoundException.class)
-    public void testGetClassException() throws ClassNotFoundException {
-        ClassUtil.getClass("this.class.does.not.Exist", Object.class);
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.request.reflect.ClassUtil#instantiate(String, boolean)}.
-     */
-    @Test
-    public void testInstantiate() {
-        assertNotNull(ClassUtil.instantiate(TestClass.class.getName(), true));
-        assertNull(ClassUtil.instantiate("this.class.does.not.Exist", true));
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.request.reflect.ClassUtil#instantiate(String, boolean)}.
-     */
-    @Test
-    public void testInstantiateOneParameter() {
-        assertNotNull(ClassUtil.instantiate(TestClass.class.getName()));
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.request.reflect.ClassUtil#instantiate(String)}.
-     */
-    @Test(expected = CannotInstantiateObjectException.class)
-    public void testInstantiateOneParameterException() {
-        assertNotNull(ClassUtil.instantiate("this.class.does.not.Exist"));
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.request.reflect.ClassUtil#instantiate(String)}.
-     */
-    @Test(expected = CannotInstantiateObjectException.class)
-    public void testInstantiateInstantiationException() {
-        ClassUtil.instantiate(TestInterface.class.getName());
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.request.reflect.ClassUtil#instantiate(String)}.
-     */
-    @Test(expected = CannotInstantiateObjectException.class)
-    public void testInstantiateIllegalAccessException() {
-        ClassUtil.instantiate(TestPrivateClass.class.getName());
-    }
-
-    /**
-     * Interface to be used as test.
-     *
-     * @version $Rev$ $Date$
-     */
-    public static interface TestInterface {
-
-        /**
-         * The value.
-         *
-         * @return The value.
-         */
-        int getValue();
-
-        /**
-         * The value.
-         *
-         * @param value The value.
-         */
-        void setValue(int value);
-
-        /**
-         * The value.
-         *
-         * @return The value.
-         */
-        long getValue2();
-
-        /**
-         * The value.
-         *
-         * @param value3 The value.
-         */
-        void setValue3(String value3);
-    }
-
-    /**
-     * A test static class.
-     */
-    public static class TestClass {
-    }
-
-    /**
-     * A test static private class.
-     */
-    private static class TestPrivateClass {
-    }
-}
diff --git a/tiles-request/tiles-request-api/src/test/java/org/apache/tiles/request/render/BasicRendererFactoryTest.java b/tiles-request/tiles-request-api/src/test/java/org/apache/tiles/request/render/BasicRendererFactoryTest.java
deleted file mode 100644
index 722357b..0000000
--- a/tiles-request/tiles-request-api/src/test/java/org/apache/tiles/request/render/BasicRendererFactoryTest.java
+++ /dev/null
@@ -1,111 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.request.render;
-
-import static org.easymock.classextension.EasyMock.*;
-import static org.junit.Assert.*;
-
-import org.apache.tiles.request.ApplicationContext;
-import org.junit.Before;
-import org.junit.Test;
-
-/**
- * Basic renderer factory implementation.
- *
- * @version $Rev$ $Date$
- */
-public class BasicRendererFactoryTest {
-
-    /**
-     * The renderer factory.
-     */
-    private BasicRendererFactory rendererFactory;
-
-    /**
-     * Sets up the test.
-     */
-    @Before
-    public void setUp() {
-        rendererFactory = new BasicRendererFactory();
-        ApplicationContext applicationContext = createMock(ApplicationContext.class);
-        replay(applicationContext);
-    }
-
-    /**
-     * Tests execution and
-     * {@link BasicRendererFactory#getRenderer(String)}.
-     */
-    @Test
-    public void testInitAndGetRenderer() {
-        Renderer renderer1 = createMock(Renderer.class);
-        Renderer renderer2 = createMock(Renderer.class);
-        Renderer renderer3 = createMock(Renderer.class);
-        Renderer renderer4 = createMock(Renderer.class);
-        ApplicationContext applicationContext = createMock(ApplicationContext.class);
-
-        replay(renderer1, renderer2, renderer3, renderer4, applicationContext);
-        rendererFactory.registerRenderer("string", renderer1);
-        rendererFactory.registerRenderer("test", renderer2);
-        rendererFactory.registerRenderer("test2", renderer3);
-        rendererFactory.setDefaultRenderer(renderer4);
-        Renderer renderer = rendererFactory.getRenderer("string");
-        assertSame(renderer1, renderer);
-        renderer = rendererFactory.getRenderer("test");
-        assertSame(renderer2, renderer);
-        renderer = rendererFactory.getRenderer("test2");
-        assertSame(renderer3, renderer);
-        renderer = rendererFactory.getRenderer(null);
-        assertSame(renderer4, renderer);
-        verify(renderer1, renderer2, renderer3, renderer4, applicationContext);
-    }
-
-    /**
-     * Tests execution and
-     * {@link BasicRendererFactory#getRenderer(String)}.
-     */
-    @Test(expected = NoSuchRendererException.class)
-    public void testGetRendererException() {
-        Renderer renderer1 = createMock(Renderer.class);
-        Renderer renderer2 = createMock(Renderer.class);
-        Renderer renderer3 = createMock(Renderer.class);
-        Renderer renderer4 = createMock(Renderer.class);
-        ApplicationContext applicationContext = createMock(ApplicationContext.class);
-
-        replay(renderer1, renderer2, renderer3, renderer4, applicationContext);
-        rendererFactory.registerRenderer("string", renderer1);
-        rendererFactory.registerRenderer("test", renderer2);
-        rendererFactory.registerRenderer("test2", renderer3);
-        rendererFactory.setDefaultRenderer(renderer4);
-        try {
-            rendererFactory.getRenderer("nothing");
-        } finally {
-            verify(renderer1, renderer2, renderer3, renderer4, applicationContext);
-        }
-    }
-
-    /**
-     * Tests {@link BasicRendererFactory#initializeRenderer(AttributeRenderer)}.
-     */
-    @Test
-    public void testInitializeRenderer() {
-        // TODO This will be removed in future, only named renderers should be available.
-    }
-}
diff --git a/tiles-request/tiles-request-api/src/test/java/org/apache/tiles/request/render/ChainedDelegateRendererTest.java b/tiles-request/tiles-request-api/src/test/java/org/apache/tiles/request/render/ChainedDelegateRendererTest.java
deleted file mode 100644
index 2f89255..0000000
--- a/tiles-request/tiles-request-api/src/test/java/org/apache/tiles/request/render/ChainedDelegateRendererTest.java
+++ /dev/null
@@ -1,211 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.request.render;
-
-import static org.easymock.EasyMock.*;
-
-import java.io.IOException;
-import java.io.StringWriter;
-
-import org.apache.tiles.request.Request;
-import org.easymock.EasyMock;
-import org.junit.Before;
-import org.junit.Test;
-
-/**
- * Tests {@link ChainedDelegateRenderer}.
- *
- * @version $Rev$ $Date$
- */
-public class ChainedDelegateRendererTest {
-
-    /**
-     * The renderer.
-     */
-    private ChainedDelegateRenderer renderer;
-
-    /**
-     * A mock string attribute renderer.
-     */
-    private Renderer stringRenderer;
-
-    /**
-     * A mock template attribute renderer.
-     */
-    private Renderer templateRenderer;
-
-    /**
-     * A mock definition attribute renderer.
-     */
-    private Renderer definitionRenderer;
-
-    /**
-     * Sets up the test.
-     */
-    @Before
-    public void setUp() {
-        stringRenderer = createMock(Renderer.class);
-        templateRenderer = createMock(Renderer.class);
-        definitionRenderer = createMock(Renderer.class);
-        renderer = new ChainedDelegateRenderer();
-        renderer.addAttributeRenderer(definitionRenderer);
-        renderer.addAttributeRenderer(templateRenderer);
-        renderer.addAttributeRenderer(stringRenderer);
-    }
-
-    /**
-     * Tests
-     * {@link ChainedDelegateRenderer#render(String, Request)}
-     * writing a definition.
-     *
-     * @throws IOException If something goes wrong during rendition.
-     */
-    @Test
-    public void testWriteDefinition() throws IOException {
-        Request requestContext = EasyMock
-                .createMock(Request.class);
-
-        expect(
-                definitionRenderer.isRenderable("my.definition",
-                        requestContext)).andReturn(Boolean.TRUE);
-        definitionRenderer.render("my.definition", requestContext);
-
-        replay(requestContext, stringRenderer, templateRenderer,
-                definitionRenderer);
-        renderer.render("my.definition", requestContext);
-        verify(requestContext, stringRenderer, templateRenderer,
-                definitionRenderer);
-    }
-
-    /**
-     * Tests
-     * {@link ChainedDelegateRenderer#render(String, Request)}
-     * writing a definition.
-     *
-     * @throws IOException If something goes wrong during rendition.
-     */
-    @Test(expected = NullPointerException.class)
-    public void testWriteNull() throws IOException {
-        StringWriter writer = new StringWriter();
-        Request requestContext = EasyMock
-                .createMock(Request.class);
-
-        replay(requestContext, stringRenderer, templateRenderer,
-                definitionRenderer);
-        try {
-            renderer.render(null, requestContext);
-        } finally {
-            writer.close();
-            verify(requestContext, stringRenderer, templateRenderer,
-                    definitionRenderer);
-        }
-    }
-
-    /**
-     * Tests
-     * {@link ChainedDelegateRenderer#render(String, Request)}
-     * writing a definition.
-     *
-     * @throws IOException If something goes wrong during rendition.
-     */
-    @Test(expected = CannotRenderException.class)
-    public void testWriteNotRenderable() throws IOException {
-        StringWriter writer = new StringWriter();
-        Request requestContext = EasyMock
-                .createMock(Request.class);
-
-        expect(
-                definitionRenderer.isRenderable("Result",
-                        requestContext)).andReturn(Boolean.FALSE);
-        expect(
-                templateRenderer.isRenderable("Result",
-                        requestContext)).andReturn(Boolean.FALSE);
-        expect(stringRenderer.isRenderable("Result", requestContext))
-                .andReturn(Boolean.FALSE);
-
-        replay(requestContext, stringRenderer, templateRenderer,
-                definitionRenderer);
-        try {
-            renderer.render("Result", requestContext);
-        } finally {
-            writer.close();
-            verify(requestContext, stringRenderer, templateRenderer,
-                    definitionRenderer);
-        }
-    }
-
-    /**
-     * Tests
-     * {@link ChainedDelegateRenderer#render(String, Request)}
-     * writing a string.
-     *
-     * @throws IOException If something goes wrong during rendition.
-     */
-    @Test
-    public void testWriteString() throws IOException {
-        Request requestContext = EasyMock
-                .createMock(Request.class);
-        expect(
-                definitionRenderer.isRenderable("Result",
-                        requestContext)).andReturn(Boolean.FALSE);
-        expect(
-                templateRenderer.isRenderable("Result",
-                        requestContext)).andReturn(Boolean.FALSE);
-        expect(
-                stringRenderer.isRenderable("Result",
-                        requestContext)).andReturn(Boolean.TRUE);
-        stringRenderer.render("Result", requestContext);
-
-        replay(requestContext, stringRenderer, templateRenderer,
-                definitionRenderer);
-        renderer.render("Result", requestContext);
-        verify(requestContext, stringRenderer, templateRenderer,
-                definitionRenderer);
-    }
-
-    /**
-     * Tests
-     * {@link ChainedDelegateRenderer#render(String, Request)}
-     * writing a template.
-     *
-     * @throws IOException If something goes wrong during rendition.
-     */
-    @Test
-    public void testWriteTemplate() throws IOException {
-        StringWriter writer = new StringWriter();
-        Request requestContext = EasyMock
-                .createMock(Request.class);
-        templateRenderer.render("/myTemplate.jsp", requestContext);
-        expect(
-                definitionRenderer.isRenderable("/myTemplate.jsp",
-                        requestContext)).andReturn(Boolean.FALSE);
-        expect(
-                templateRenderer.isRenderable("/myTemplate.jsp",
-                        requestContext)).andReturn(Boolean.TRUE);
-
-        replay(requestContext, stringRenderer, templateRenderer,
-                definitionRenderer);
-        renderer.render("/myTemplate.jsp", requestContext);
-        writer.close();
-        verify(requestContext, stringRenderer, templateRenderer,
-                definitionRenderer);
-    }
-}
diff --git a/tiles-request/tiles-request-api/src/test/java/org/apache/tiles/request/render/DispatchRendererTest.java b/tiles-request/tiles-request-api/src/test/java/org/apache/tiles/request/render/DispatchRendererTest.java
deleted file mode 100644
index 52a9936..0000000
--- a/tiles-request/tiles-request-api/src/test/java/org/apache/tiles/request/render/DispatchRendererTest.java
+++ /dev/null
@@ -1,92 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.request.render;
-
-import static org.easymock.EasyMock.*;
-import static org.junit.Assert.*;
-
-import java.io.IOException;
-
-import org.apache.tiles.request.Request;
-import org.apache.tiles.request.DispatchRequest;
-import org.junit.Before;
-import org.junit.Test;
-
-/**
- * Tests {@link DispatchRenderer}.
- *
- * @version $Rev$ $Date$
- */
-public class DispatchRendererTest {
-
-    /**
-     * The renderer.
-     */
-    private DispatchRenderer renderer;
-
-    /** {@inheritDoc} */
-    @Before
-    public void setUp() {
-        renderer = new DispatchRenderer();
-    }
-
-    /**
-     * Tests
-     * {@link DispatchRenderer#render(String, DispatchRequest)}.
-     *
-     * @throws IOException If something goes wrong during rendition.
-     */
-    @Test
-    public void testWrite() throws IOException {
-        DispatchRequest requestContext = createMock(DispatchRequest.class);
-        requestContext.dispatch("/myTemplate.jsp");
-        replay(requestContext);
-        renderer.render("/myTemplate.jsp", requestContext);
-        verify(requestContext);
-    }
-
-    /**
-     * Tests
-     * {@link DispatchRenderer#render(String, DispatchRequest)}.
-     *
-     * @throws IOException If something goes wrong during rendition.
-     */
-    @Test(expected = CannotRenderException.class)
-    public void testWriteNull() throws IOException {
-        DispatchRequest requestContext = createMock(DispatchRequest.class);
-        replay(requestContext);
-        renderer.render(null, requestContext);
-        verify(requestContext);
-    }
-
-    /**
-     * Tests
-     * {@link DispatchRenderer#isRenderable(String, DispatchRequest)}.
-     */
-    @Test
-    public void testIsRenderable() {
-        Request requestContext = createMock(DispatchRequest.class);
-        replay(requestContext);
-        assertTrue(renderer.isRenderable("/myTemplate.jsp", requestContext));
-        assertFalse(renderer.isRenderable(null, requestContext));
-        verify(requestContext);
-    }
-}
diff --git a/tiles-request/tiles-request-api/src/test/java/org/apache/tiles/request/render/NoSuchRendererExceptionTest.java b/tiles-request/tiles-request-api/src/test/java/org/apache/tiles/request/render/NoSuchRendererExceptionTest.java
deleted file mode 100644
index 4c3ef77..0000000
--- a/tiles-request/tiles-request-api/src/test/java/org/apache/tiles/request/render/NoSuchRendererExceptionTest.java
+++ /dev/null
@@ -1,77 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.tiles.request.render;
-
-import static org.junit.Assert.*;
-
-import org.junit.Test;
-
-/**
- * Tests {@link NoSuchRendererException}.
- *
- * @version $Rev$ $Date$
- */
-public class NoSuchRendererExceptionTest {
-
-    /**
-     * Test method for {@link NoSuchRendererException#NoSuchRendererException()}.
-     */
-    @Test
-    public void testNoSuchRendererException() {
-        NoSuchRendererException exception = new NoSuchRendererException();
-        assertNull(exception.getMessage());
-        assertNull(exception.getCause());
-    }
-
-    /**
-     * Test method for {@link NoSuchRendererException#NoSuchRendererException(java.lang.String)}.
-     */
-    @Test
-    public void testNoSuchRendererExceptionString() {
-        NoSuchRendererException exception = new NoSuchRendererException("my message");
-        assertEquals("my message", exception.getMessage());
-        assertNull(exception.getCause());
-    }
-
-    /**
-     * Test method for {@link NoSuchRendererException#NoSuchRendererException(java.lang.Throwable)}.
-     */
-    @Test
-    public void testNoSuchRendererExceptionThrowable() {
-        Throwable cause = new Throwable();
-        NoSuchRendererException exception = new NoSuchRendererException(cause);
-        assertEquals(cause.toString(), exception.getMessage());
-        assertEquals(cause, exception.getCause());
-    }
-
-    /**
-     * Test method for {@link NoSuchRendererException#NoSuchRendererException(java.lang.String, java.lang.Throwable)}.
-     */
-    @Test
-    public void testNoSuchRendererExceptionStringThrowable() {
-        Throwable cause = new Throwable();
-        NoSuchRendererException exception = new NoSuchRendererException("my message", cause);
-        assertEquals("my message", exception.getMessage());
-        assertEquals(cause, exception.getCause());
-    }
-
-}
diff --git a/tiles-request/tiles-request-api/src/test/java/org/apache/tiles/request/render/StringRendererTest.java b/tiles-request/tiles-request-api/src/test/java/org/apache/tiles/request/render/StringRendererTest.java
deleted file mode 100644
index df7e1a9..0000000
--- a/tiles-request/tiles-request-api/src/test/java/org/apache/tiles/request/render/StringRendererTest.java
+++ /dev/null
@@ -1,80 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.request.render;
-
-import static org.easymock.EasyMock.*;
-import static org.junit.Assert.*;
-
-import java.io.IOException;
-import java.io.StringWriter;
-
-import org.apache.tiles.request.Request;
-import org.junit.Before;
-import org.junit.Test;
-
-/**
- * Tests {@link StringRenderer}.
- *
- * @version $Rev$ $Date$
- */
-public class StringRendererTest {
-
-    /**
-     * The renderer.
-     */
-    private StringRenderer renderer;
-
-    /** {@inheritDoc} */
-    @Before
-    public void setUp() {
-        renderer = new StringRenderer();
-    }
-
-    /**
-     * Tests
-     * {@link StringRenderer#render(String, Request)}.
-     *
-     * @throws IOException If something goes wrong during rendition.
-     */
-    @Test
-    public void testWrite() throws IOException {
-        StringWriter writer = new StringWriter();
-        Request requestContext = createMock(Request.class);
-        expect(requestContext.getWriter()).andReturn(writer);
-        replay(requestContext);
-        renderer.render("Result", requestContext);
-        writer.close();
-        assertEquals("Not written 'Result'", "Result", writer.toString());
-        verify(requestContext);
-    }
-
-    /**
-     * Tests
-     * {@link StringRenderer#isRenderable(String, Request)}.
-     */
-    @Test
-    public void testIsRenderable() {
-        Request requestContext = createMock(Request.class);
-        replay(requestContext);
-        assertTrue(renderer.isRenderable("Result", requestContext));
-        verify(requestContext);
-    }
-}
diff --git a/tiles-request/tiles-request-freemarker/pom.xml b/tiles-request/tiles-request-freemarker/pom.xml
deleted file mode 100644
index 4dabc58..0000000
--- a/tiles-request/tiles-request-freemarker/pom.xml
+++ /dev/null
@@ -1,78 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<!--
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements.  See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership.  The ASF licenses this file
-to you under the Apache License, Version 2.0 (the
-"License"); you may not use this file except in compliance
-with the License.  You may obtain a copy of the License at
-
-  http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing,
-software distributed under the License is distributed on an
-"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-KIND, either express or implied.  See the License for the
-specific language governing permissions and limitations
-under the License.
--->
-
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
-  <modelVersion>4.0.0</modelVersion>
-  <parent>
-    <artifactId>tiles-request</artifactId>
-    <groupId>org.apache.tiles</groupId>
-    <version>1.0-SNAPSHOT</version>
-  </parent>
-  <groupId>org.apache.tiles</groupId>
-  <artifactId>tiles-request-freemarker</artifactId>
-  <version>1.0-SNAPSHOT</version>
-  <name>Tiles Request - Freemarker support</name>
-  <description>Freemarker implementation of the Tiles request framework</description>
-  <dependencies>
-  	<dependency>
-  		<groupId>org.apache.tiles</groupId>
-  		<artifactId>tiles-request-api</artifactId>
-  	</dependency>
-  	<dependency>
-  		<groupId>org.freemarker</groupId>
-  		<artifactId>freemarker</artifactId>
-  	</dependency>
-  	<dependency>
-  		<groupId>org.apache.tiles</groupId>
-  		<artifactId>tiles-request-servlet</artifactId>
-  	</dependency>
-  	<dependency>
-  		<groupId>javax.servlet</groupId>
-  		<artifactId>servlet-api</artifactId>
-  		<scope>provided</scope>
-  	</dependency>
-  	<dependency>
-  		<groupId>org.slf4j</groupId>
-  		<artifactId>slf4j-jdk14</artifactId>
-  		<optional>true</optional>
-  	</dependency>
-  	<dependency>
-  		<groupId>junit</groupId>
-  		<artifactId>junit</artifactId>
-  		<scope>test</scope>
-  	</dependency>
-  	<dependency>
-  		<groupId>org.easymock</groupId>
-  		<artifactId>easymock</artifactId>
-  		<scope>test</scope>
-  	</dependency>
-  	<dependency>
-  		<groupId>org.easymock</groupId>
-  		<artifactId>easymockclassextension</artifactId>
-  		<scope>test</scope>
-  	</dependency>
-  	<dependency>
-  		<groupId>org.apache.tiles</groupId>
-  		<artifactId>tiles-autotag-core-runtime</artifactId>
-  		<optional>true</optional>
-  	</dependency>
-  </dependencies>
-</project>
diff --git a/tiles-request/tiles-request-freemarker/src/main/java/org/apache/tiles/request/freemarker/EnvironmentScopeMap.java b/tiles-request/tiles-request-freemarker/src/main/java/org/apache/tiles/request/freemarker/EnvironmentScopeMap.java
deleted file mode 100644
index b2a60ba..0000000
--- a/tiles-request/tiles-request-freemarker/src/main/java/org/apache/tiles/request/freemarker/EnvironmentScopeMap.java
+++ /dev/null
@@ -1,66 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.request.freemarker;
-
-import java.util.Set;
-
-import org.apache.tiles.request.collection.ScopeMap;
-import org.apache.tiles.request.freemarker.extractor.EnvironmentScopeExtractor;
-
-import freemarker.core.Environment;
-import freemarker.template.TemplateModelException;
-
-/**
- * <p>
- * Private implementation of <code>Map</code> for servlet request attributes.
- * </p>
- *
- * @version $Rev$ $Date$
- */
-
-final class EnvironmentScopeMap extends ScopeMap {
-
-    /**
-     * The request object to use.
-     */
-    private Environment request = null;
-
-    /**
-     * Constructor.
-     *
-     * @param request The request object to use.
-     */
-    public EnvironmentScopeMap(Environment request) {
-        super(new EnvironmentScopeExtractor(request));
-        this.request = request;
-    }
-
-    @SuppressWarnings("unchecked")
-    @Override
-    public Set<String> keySet() {
-        try {
-            return request.getKnownVariableNames();
-        } catch (TemplateModelException e) {
-            throw new FreemarkerRequestException(
-                    "Cannot get known variable names", e);
-        }
-    }
-}
diff --git a/tiles-request/tiles-request-freemarker/src/main/java/org/apache/tiles/request/freemarker/FreemarkerRequest.java b/tiles-request/tiles-request-freemarker/src/main/java/org/apache/tiles/request/freemarker/FreemarkerRequest.java
deleted file mode 100644
index 212badf..0000000
--- a/tiles-request/tiles-request-freemarker/src/main/java/org/apache/tiles/request/freemarker/FreemarkerRequest.java
+++ /dev/null
@@ -1,154 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.tiles.request.freemarker;
-
-import java.io.PrintWriter;
-import java.io.Writer;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
-import java.util.Locale;
-import java.util.Map;
-
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-
-import org.apache.tiles.request.AbstractViewRequest;
-import org.apache.tiles.request.ApplicationContext;
-import org.apache.tiles.request.DispatchRequest;
-import org.apache.tiles.request.servlet.ServletRequest;
-
-import freemarker.core.Environment;
-import freemarker.ext.servlet.HttpRequestHashModel;
-
-/**
- * The FreeMarker-specific request context.
- *
- * @version $Rev$ $Date$
- */
-public class FreemarkerRequest extends AbstractViewRequest {
-
-    /**
-     * The natively available scopes. In fact, only "page".
-     */
-    private List<String> scopes;
-
-    /**
-     * The FreeMarker current environment.
-     */
-    private Environment env;
-
-    /**
-     * The page scope map.
-     */
-    private Map<String, Object> pageScope;
-
-    /**
-     * Creates a new Freemarker request.
-     *
-     * @param applicationContext The application context.
-     * @param env The Freemarker's environment object.
-     * @return A new request.
-     */
-    public static FreemarkerRequest createServletFreemarkerRequest(
-            ApplicationContext applicationContext, Environment env) {
-        HttpRequestHashModel requestModel = FreemarkerRequestUtil
-                .getRequestHashModel(env);
-        HttpServletRequest request = requestModel.getRequest();
-        HttpServletResponse response = requestModel.getResponse();
-        DispatchRequest enclosedRequest = new ServletRequest(
-                applicationContext, request, response);
-        return new FreemarkerRequest(enclosedRequest, env);
-    }
-
-    /**
-     * Constructor.
-     *
-     * @param enclosedRequest
-     *            The request that exposes non-FreeMarker specific properties
-     * @param env
-     *            The FreeMarker environment.
-     */
-    public FreemarkerRequest(DispatchRequest enclosedRequest,
-            Environment env) {
-        super(enclosedRequest);
-        List<String> scopes = new ArrayList<String>();
-        scopes.addAll(enclosedRequest.getAvailableScopes());
-        scopes.add("page");
-        this.scopes = Collections.unmodifiableList(scopes);
-        this.env = env;
-    }
-
-    /**
-     * Returns the environment object.
-     *
-     * @return The environment.
-     */
-    public Environment getEnvironment() {
-        return env;
-    }
-
-    /** {@inheritDoc} */
-    @Override
-    public Locale getRequestLocale() {
-        return env.getLocale();
-    }
-
-    /**
-     * Returns the page scope.
-     *
-     * @return The page scope.
-     */
-    public Map<String, Object> getPageScope() {
-        if (pageScope == null) {
-            pageScope = new EnvironmentScopeMap(env);
-        }
-        return pageScope;
-    }
-
-    @Override
-    public List<String> getAvailableScopes() {
-        return scopes;
-    }
-
-    /** {@inheritDoc} */
-    @Override
-    public PrintWriter getPrintWriter() {
-        Writer writer = env.getOut();
-        if (writer instanceof PrintWriter) {
-            return (PrintWriter) writer;
-        }
-        return new PrintWriter(writer);
-    }
-
-    /** {@inheritDoc} */
-    @Override
-    public Writer getWriter() {
-        return env.getOut();
-    }
-
-    @Override
-    public Map<String, Object> getContext(String scope) {
-        return "page".equals(scope) ? getPageScope() : super.getContext(scope);
-    }
-
-}
diff --git a/tiles-request/tiles-request-freemarker/src/main/java/org/apache/tiles/request/freemarker/FreemarkerRequestException.java b/tiles-request/tiles-request-freemarker/src/main/java/org/apache/tiles/request/freemarker/FreemarkerRequestException.java
deleted file mode 100644
index b2a33f2..0000000
--- a/tiles-request/tiles-request-freemarker/src/main/java/org/apache/tiles/request/freemarker/FreemarkerRequestException.java
+++ /dev/null
@@ -1,65 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.request.freemarker;
-
-import org.apache.tiles.request.RequestException;
-
-/**
- * Thrown when a Freemarker request fails.
- *
- * @version $Rev$ $Date$
- */
-public class FreemarkerRequestException extends RequestException {
-
-    /**
-     * Constructor.
-     */
-    public FreemarkerRequestException() {
-    }
-
-    /**
-     * Constructor.
-     *
-     * @param message The detail message.
-     */
-    public FreemarkerRequestException(String message) {
-        super(message);
-    }
-
-    /**
-     * Constructor.
-     *
-     * @param cause The cause to be wrapped.
-     */
-    public FreemarkerRequestException(Throwable cause) {
-        super(cause);
-    }
-
-    /**
-     * Constructor.
-     *
-     * @param message The detail message.
-     * @param cause The cause to be wrapped.
-     */
-    public FreemarkerRequestException(String message, Throwable cause) {
-        super(message, cause);
-    }
-}
diff --git a/tiles-request/tiles-request-freemarker/src/main/java/org/apache/tiles/request/freemarker/FreemarkerRequestUtil.java b/tiles-request/tiles-request-freemarker/src/main/java/org/apache/tiles/request/freemarker/FreemarkerRequestUtil.java
deleted file mode 100644
index 929e8cc..0000000
--- a/tiles-request/tiles-request-freemarker/src/main/java/org/apache/tiles/request/freemarker/FreemarkerRequestUtil.java
+++ /dev/null
@@ -1,94 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.request.freemarker;
-
-import org.apache.tiles.request.ApplicationContext;
-import org.apache.tiles.request.servlet.ServletUtil;
-
-import freemarker.core.Environment;
-import freemarker.ext.servlet.FreemarkerServlet;
-import freemarker.ext.servlet.HttpRequestHashModel;
-import freemarker.ext.servlet.ServletContextHashModel;
-import freemarker.template.TemplateModelException;
-
-/**
- * Utilities to work with Freemarker requests.
- *
- * @version $Rev$ $Date$
- */
-public final class FreemarkerRequestUtil {
-
-    /**
-     * Constructor.
-     */
-    private FreemarkerRequestUtil() {
-    }
-
-    /**
-     * Returns the HTTP request hash model.
-     *
-     * @param env The current FreeMarker environment.
-     * @return The request hash model.
-     */
-    public static HttpRequestHashModel getRequestHashModel(Environment env) {
-        try {
-            return (HttpRequestHashModel) env.getDataModel().get(
-                    FreemarkerServlet.KEY_REQUEST);
-        } catch (TemplateModelException e) {
-            throw new NotAvailableFreemarkerServletException(
-                    "Exception got when obtaining the request hash model", e);
-        }
-    }
-
-    /**
-     * Returns the servlet context hash model.
-     *
-     * @param env The current FreeMarker environment.
-     * @return The servlet context hash model.
-     */
-    public static ServletContextHashModel getServletContextHashModel(
-            Environment env) {
-        try {
-            return (ServletContextHashModel) env.getDataModel().get(
-                    FreemarkerServlet.KEY_APPLICATION);
-        } catch (TemplateModelException e) {
-            throw new NotAvailableFreemarkerServletException(
-                    "Exception got when obtaining the application hash model",
-                    e);
-        }
-    }
-
-    /**
-     * Returns the application context. It must be
-     * first saved creating an {@link ApplicationContext} and using
-     * {@link org.apache.tiles.request.ApplicationAccess#register(ApplicationContext)}.
-     *
-     * @param env The Freemarker environment.
-     * @return The
-     */
-    public static ApplicationContext getApplicationContext(
-            Environment env) {
-        return ServletUtil
-                .getApplicationContext(getServletContextHashModel(env)
-                        .getServlet().getServletContext());
-    }
-
-}
diff --git a/tiles-request/tiles-request-freemarker/src/main/java/org/apache/tiles/request/freemarker/NotAvailableFreemarkerServletException.java b/tiles-request/tiles-request-freemarker/src/main/java/org/apache/tiles/request/freemarker/NotAvailableFreemarkerServletException.java
deleted file mode 100644
index a265428..0000000
--- a/tiles-request/tiles-request-freemarker/src/main/java/org/apache/tiles/request/freemarker/NotAvailableFreemarkerServletException.java
+++ /dev/null
@@ -1,66 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.request.freemarker;
-
-import org.apache.tiles.request.NotAvailableFeatureException;
-
-/**
- * Thrown when a the Freemarker servlet is not available.
- *
- * @version $Rev$ $Date$
- */
-public class NotAvailableFreemarkerServletException extends
-        NotAvailableFeatureException {
-
-    /**
-     * Constructor.
-     */
-    public NotAvailableFreemarkerServletException() {
-    }
-
-    /**
-     * Constructor.
-     *
-     * @param message The detail message.
-     */
-    public NotAvailableFreemarkerServletException(String message) {
-        super(message);
-    }
-
-    /**
-     * Constructor.
-     *
-     * @param e The cause to be wrapped.
-     */
-    public NotAvailableFreemarkerServletException(Throwable e) {
-        super(e);
-    }
-
-    /**
-     * Constructor.
-     *
-     * @param message The detail message.
-     * @param e The cause to be wrapped.
-     */
-    public NotAvailableFreemarkerServletException(String message, Throwable e) {
-        super(message, e);
-    }
-}
diff --git a/tiles-request/tiles-request-freemarker/src/main/java/org/apache/tiles/request/freemarker/autotag/FreemarkerAutotagException.java b/tiles-request/tiles-request-freemarker/src/main/java/org/apache/tiles/request/freemarker/autotag/FreemarkerAutotagException.java
deleted file mode 100644
index 04df896..0000000
--- a/tiles-request/tiles-request-freemarker/src/main/java/org/apache/tiles/request/freemarker/autotag/FreemarkerAutotagException.java
+++ /dev/null
@@ -1,64 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.request.freemarker.autotag;
-
-/**
- * Thrown when a Freemarker problem under Autotag runtime part happens.
- *
- * @version $Rev$ $Date$
- */
-public class FreemarkerAutotagException extends RuntimeException {
-
-    /**
-     * Constructor.
-     */
-    public FreemarkerAutotagException() {
-    }
-
-    /**
-     * Constructor.
-     *
-     * @param message The message of the exception.
-     */
-    public FreemarkerAutotagException(String message) {
-        super(message);
-    }
-
-    /**
-     * Constructor.
-     *
-     * @param cause The cause.
-     */
-    public FreemarkerAutotagException(Throwable cause) {
-        super(cause);
-    }
-
-    /**
-     * Constructor.
-     *
-     * @param message The message of the exception.
-     * @param cause The cause.
-     */
-    public FreemarkerAutotagException(String message, Throwable cause) {
-        super(message, cause);
-    }
-
-}
diff --git a/tiles-request/tiles-request-freemarker/src/main/java/org/apache/tiles/request/freemarker/autotag/FreemarkerAutotagRuntime.java b/tiles-request/tiles-request-freemarker/src/main/java/org/apache/tiles/request/freemarker/autotag/FreemarkerAutotagRuntime.java
deleted file mode 100644
index 9eabac3..0000000
--- a/tiles-request/tiles-request-freemarker/src/main/java/org/apache/tiles/request/freemarker/autotag/FreemarkerAutotagRuntime.java
+++ /dev/null
@@ -1,71 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.request.freemarker.autotag;
-
-import java.util.Map;
-
-import org.apache.tiles.autotag.core.runtime.ModelBody;
-import org.apache.tiles.autotag.core.runtime.AutotagRuntime;
-import org.apache.tiles.request.Request;
-import org.apache.tiles.request.freemarker.FreemarkerRequest;
-import org.apache.tiles.request.freemarker.FreemarkerRequestUtil;
-
-import freemarker.core.Environment;
-import freemarker.template.TemplateDirectiveBody;
-import freemarker.template.TemplateDirectiveModel;
-import freemarker.template.TemplateModel;
-
-/**
- * A Runtime for implementing a Freemarker Template Directive.   
- */
-public class FreemarkerAutotagRuntime implements AutotagRuntime, TemplateDirectiveModel {
-
-    private Environment env;
-    private TemplateDirectiveBody body;
-    private Map<String, TemplateModel> params;
-    
-    /** {@inheritDoc} */
-    @SuppressWarnings("unchecked")
-    @Override
-    public void execute(Environment env, Map params, TemplateModel[] loopVars, TemplateDirectiveBody body) {
-        this.env = env;
-        this.body = body;
-        this.params = params;
-    }
-
-    /** {@inheritDoc} */
-    @Override
-    public Request createRequest() {
-        return FreemarkerRequest.createServletFreemarkerRequest(FreemarkerRequestUtil.getApplicationContext(env), env);
-    }
-
-    /** {@inheritDoc} */
-    @Override
-    public ModelBody createModelBody() {
-        return new FreemarkerModelBody(env.getOut(), body);
-    }
-    
-    /** {@inheritDoc} */
-    @Override
-    public Object getParameter(String name, Object defaultValue) {
-        return FreemarkerUtil.getAsObject((TemplateModel)params.get(name), defaultValue);
-    }
-}
diff --git a/tiles-request/tiles-request-freemarker/src/main/java/org/apache/tiles/request/freemarker/autotag/FreemarkerModelBody.java b/tiles-request/tiles-request-freemarker/src/main/java/org/apache/tiles/request/freemarker/autotag/FreemarkerModelBody.java
deleted file mode 100644
index a006bca..0000000
--- a/tiles-request/tiles-request-freemarker/src/main/java/org/apache/tiles/request/freemarker/autotag/FreemarkerModelBody.java
+++ /dev/null
@@ -1,67 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.request.freemarker.autotag;
-
-import java.io.IOException;
-import java.io.Writer;
-
-import org.apache.tiles.autotag.core.runtime.AbstractModelBody;
-
-import freemarker.template.TemplateDirectiveBody;
-import freemarker.template.TemplateException;
-
-/**
- * Body implementation of a Freemarker model body.
- *
- * @version $Rev$ $Date$
- */
-public class FreemarkerModelBody extends AbstractModelBody {
-
-    /**
-     * The real body.
-     */
-    private TemplateDirectiveBody templateDirectiveBody;
-
-    /**
-     * Constructor.
-     *
-     * @param defaultWriter The default writer.
-     * @param templateDirectiveBody The real body.
-     */
-    public FreemarkerModelBody(Writer defaultWriter, TemplateDirectiveBody templateDirectiveBody) {
-        super(defaultWriter);
-        this.templateDirectiveBody = templateDirectiveBody;
-    }
-
-    @Override
-    public void evaluate(Writer writer) throws IOException {
-        if (templateDirectiveBody == null) {
-            return;
-        }
-
-        try {
-            templateDirectiveBody.render(writer);
-        } catch (TemplateException e) {
-            throw new IOException("TemplateException when rendering body", e);
-        }
-    }
-
-}
diff --git a/tiles-request/tiles-request-freemarker/src/main/java/org/apache/tiles/request/freemarker/autotag/FreemarkerUtil.java b/tiles-request/tiles-request-freemarker/src/main/java/org/apache/tiles/request/freemarker/autotag/FreemarkerUtil.java
deleted file mode 100644
index 881e511..0000000
--- a/tiles-request/tiles-request-freemarker/src/main/java/org/apache/tiles/request/freemarker/autotag/FreemarkerUtil.java
+++ /dev/null
@@ -1,63 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.tiles.request.freemarker.autotag;
-
-import freemarker.template.TemplateModel;
-import freemarker.template.TemplateModelException;
-import freemarker.template.utility.DeepUnwrap;
-
-/**
- * Utilities for FreeMarker usage in Tiles.
- *
- * @version $Rev$ $Date$
- */
-public final class FreemarkerUtil {
-
-    /**
-     * Private constructor to avoid instantiation.
-     */
-    private FreemarkerUtil() {
-    }
-
-    /**
-     * Unwraps a TemplateModel to extract an object.
-     *
-     * @param model The TemplateModel to unwrap.
-     * @param defaultValue The default value, as specified in the template
-     * model, or null if not specified.
-     * @return The unwrapped object.
-     */
-    public static Object getAsObject(TemplateModel model, Object defaultValue) {
-        try {
-            Object retValue = defaultValue;
-            if (model != null) {
-                Object value = DeepUnwrap.unwrap(model);
-                if (value != null) {
-                    retValue = value;
-                }
-            }
-            return retValue;
-        } catch (TemplateModelException e) {
-            throw new FreemarkerAutotagException("Cannot unwrap a model", e);
-        }
-    }
-}
diff --git a/tiles-request/tiles-request-freemarker/src/main/java/org/apache/tiles/request/freemarker/autotag/package-info.java b/tiles-request/tiles-request-freemarker/src/main/java/org/apache/tiles/request/freemarker/autotag/package-info.java
deleted file mode 100644
index fb875dc..0000000
--- a/tiles-request/tiles-request-freemarker/src/main/java/org/apache/tiles/request/freemarker/autotag/package-info.java
+++ /dev/null
@@ -1,24 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-/**
- * Runtime part of Autotag support for Freemarker.
- */
-package org.apache.tiles.request.freemarker.autotag;
diff --git a/tiles-request/tiles-request-freemarker/src/main/java/org/apache/tiles/request/freemarker/extractor/EnvironmentScopeExtractor.java b/tiles-request/tiles-request-freemarker/src/main/java/org/apache/tiles/request/freemarker/extractor/EnvironmentScopeExtractor.java
deleted file mode 100644
index 78fcb9d..0000000
--- a/tiles-request/tiles-request-freemarker/src/main/java/org/apache/tiles/request/freemarker/extractor/EnvironmentScopeExtractor.java
+++ /dev/null
@@ -1,92 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.request.freemarker.extractor;
-
-import java.util.Collections;
-import java.util.Enumeration;
-
-import org.apache.tiles.request.attribute.AttributeExtractor;
-import org.apache.tiles.request.freemarker.FreemarkerRequestException;
-
-import freemarker.core.Environment;
-import freemarker.template.TemplateModel;
-import freemarker.template.TemplateModelException;
-import freemarker.template.utility.DeepUnwrap;
-
-/**
- * Extract attributes from {@link Environment} objects as a scope.
- *
- * @version $Rev$ $Date$
- */
-public class EnvironmentScopeExtractor implements AttributeExtractor {
-
-    /**
-     * The environment.
-     */
-    private Environment request;
-
-    /**
-     * Constructor.
-     *
-     * @param request The environment.
-     */
-    public EnvironmentScopeExtractor(Environment request) {
-        this.request = request;
-    }
-
-    @Override
-    public void removeValue(String name) {
-        request.setVariable(name, null);
-    }
-
-    @SuppressWarnings("unchecked")
-    @Override
-    public Enumeration<String> getKeys() {
-        try {
-            return Collections.<String> enumeration(request.getKnownVariableNames());
-        } catch (TemplateModelException e) {
-            throw new FreemarkerRequestException("Cannot iterate variable names correctly", e);
-        }
-    }
-
-    @Override
-    public Object getValue(String key) {
-        try {
-            TemplateModel variable = request.getVariable(key);
-            if (variable != null) {
-                return DeepUnwrap.unwrap(variable);
-            }
-            return null;
-        } catch (TemplateModelException e) {
-            throw new FreemarkerRequestException("Cannot get attribute with name '" + key + "'", e);
-        }
-    }
-
-    @Override
-    public void setValue(String key, Object value) {
-        try {
-            TemplateModel model = request.getObjectWrapper().wrap(value);
-            request.setVariable(key, model);
-        } catch (TemplateModelException e) {
-            throw new FreemarkerRequestException("Error when wrapping an object setting the '" + key + "' attribute", e);
-        }
-    }
-}
diff --git a/tiles-request/tiles-request-freemarker/src/main/java/org/apache/tiles/request/freemarker/extractor/package-info.java b/tiles-request/tiles-request-freemarker/src/main/java/org/apache/tiles/request/freemarker/extractor/package-info.java
deleted file mode 100644
index 8e94691..0000000
--- a/tiles-request/tiles-request-freemarker/src/main/java/org/apache/tiles/request/freemarker/extractor/package-info.java
+++ /dev/null
@@ -1,24 +0,0 @@
-/*
- * $Id: package-info.java 1049711 2010-12-15 21:12:00Z apetrelli $
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-/**
- * Extractors to get information from Freemarker objects.
- */
-package org.apache.tiles.request.freemarker.extractor;
diff --git a/tiles-request/tiles-request-freemarker/src/main/java/org/apache/tiles/request/freemarker/package-info.java b/tiles-request/tiles-request-freemarker/src/main/java/org/apache/tiles/request/freemarker/package-info.java
deleted file mode 100644
index 234a67c..0000000
--- a/tiles-request/tiles-request-freemarker/src/main/java/org/apache/tiles/request/freemarker/package-info.java
+++ /dev/null
@@ -1,24 +0,0 @@
-/*
- * $Id: package-info.java 1049711 2010-12-15 21:12:00Z apetrelli $
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-/**
- * Support for Freemarker's Environment as a request.
- */
-package org.apache.tiles.request.freemarker;
diff --git a/tiles-request/tiles-request-freemarker/src/main/java/org/apache/tiles/request/freemarker/render/AttributeValueFreemarkerServlet.java b/tiles-request/tiles-request-freemarker/src/main/java/org/apache/tiles/request/freemarker/render/AttributeValueFreemarkerServlet.java
deleted file mode 100644
index 98c0bc9..0000000
--- a/tiles-request/tiles-request-freemarker/src/main/java/org/apache/tiles/request/freemarker/render/AttributeValueFreemarkerServlet.java
+++ /dev/null
@@ -1,56 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.request.freemarker.render;
-
-import javax.servlet.http.HttpServletRequest;
-
-import org.apache.tiles.request.freemarker.servlet.SharedVariableLoaderFreemarkerServlet;
-
-/**
- * Extends {@link SharedVariableLoaderFreemarkerServlet} to use the attribute value as the template name.
- */
-public class AttributeValueFreemarkerServlet extends SharedVariableLoaderFreemarkerServlet {
-
-    /**
-     * The serial UID.
-     */
-    private static final long serialVersionUID = 5412169082301451211L;
-
-    /**
-     * Holds the value that should be used as the template name.
-     */
-    private ThreadLocal<String> valueHolder = new ThreadLocal<String>();
-
-    /**
-     * Sets the value to use as the template name.
-     *
-     * @param value The template name.
-     */
-    public void setValue(String value) {
-        valueHolder.set(value);
-    }
-
-    /** {@inheritDoc} */
-    @Override
-    protected String requestUrlToTemplatePath(HttpServletRequest request) {
-        return valueHolder.get();
-    }
-}
diff --git a/tiles-request/tiles-request-freemarker/src/main/java/org/apache/tiles/request/freemarker/render/FreemarkerRenderer.java b/tiles-request/tiles-request-freemarker/src/main/java/org/apache/tiles/request/freemarker/render/FreemarkerRenderer.java
deleted file mode 100644
index e18dc1d..0000000
--- a/tiles-request/tiles-request-freemarker/src/main/java/org/apache/tiles/request/freemarker/render/FreemarkerRenderer.java
+++ /dev/null
@@ -1,85 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.tiles.request.freemarker.render;
-
-import java.io.IOException;
-
-import javax.servlet.ServletException;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-
-import org.apache.tiles.request.Request;
-import org.apache.tiles.request.freemarker.FreemarkerRequestException;
-import org.apache.tiles.request.render.CannotRenderException;
-import org.apache.tiles.request.render.Renderer;
-import org.apache.tiles.request.servlet.ExternalWriterHttpServletResponse;
-import org.apache.tiles.request.servlet.ServletRequest;
-
-/**
- * FreeMarker renderer for rendering FreeMarker templates as Tiles attributes.
- * It is only usable under a Servlet environment, because it uses
- * {@link AttributeValueFreemarkerServlet} internally to forward the request.<br/>
- * To initialize it correctly, call {@link #setParameter(String, String)} for all the
- * parameters that you want to set, and then call {@link #commit()}.
- *
- * @version $Rev$ $Date$
- */
-public class FreemarkerRenderer implements Renderer {
-
-    /**
-     * The servlet that is used to forward the request to.
-     */
-    private AttributeValueFreemarkerServlet servlet;
-
-    /**
-     * Constructor.
-     *
-     * @param servlet The servlet to use.
-     */
-    public FreemarkerRenderer(AttributeValueFreemarkerServlet servlet) {
-        this.servlet = servlet;
-    }
-
-    /** {@inheritDoc} */
-    @Override
-    public void render(String path, Request request) throws IOException {
-        if (path == null) {
-            throw new CannotRenderException("Cannot dispatch a null path");
-        }
-        ServletRequest servletRequest = org.apache.tiles.request.servlet.ServletUtil.getServletRequest(request);
-        HttpServletRequest httpRequest = servletRequest.getRequest();
-        HttpServletResponse httpResponse = servletRequest.getResponse();
-        servlet.setValue(path);
-        try {
-            servlet.doGet(httpRequest,
-                    new ExternalWriterHttpServletResponse(httpResponse,
-                            request.getPrintWriter()));
-        } catch (ServletException e) {
-            throw new FreemarkerRequestException("Exception when rendering a FreeMarker attribute", e);
-        }
-    }
-
-    /** {@inheritDoc} */
-    public boolean isRenderable(String path, Request request) {
-        return path != null && path.startsWith("/") && path.endsWith(".ftl");
-    }
-}
diff --git a/tiles-request/tiles-request-freemarker/src/main/java/org/apache/tiles/request/freemarker/render/FreemarkerRendererBuilder.java b/tiles-request/tiles-request-freemarker/src/main/java/org/apache/tiles/request/freemarker/render/FreemarkerRendererBuilder.java
deleted file mode 100644
index dfb743f..0000000
--- a/tiles-request/tiles-request-freemarker/src/main/java/org/apache/tiles/request/freemarker/render/FreemarkerRendererBuilder.java
+++ /dev/null
@@ -1,103 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.request.freemarker.render;
-
-import java.util.HashMap;
-import java.util.Map;
-
-import javax.servlet.ServletException;
-
-import org.apache.tiles.request.ApplicationContext;
-import org.apache.tiles.request.freemarker.FreemarkerRequestException;
-
-/**
- * Builds instances of {@link FreemarkerRenderer}.
- *
- * @version $Rev$ $Date$
- */
-public final class FreemarkerRendererBuilder {
-
-    /**
-     * The initialization parameters.
-     */
-    private Map<String, String> params = new HashMap<String, String>();
-
-    /**
-     * The application context.
-     */
-    private ApplicationContext applicationContext;
-
-    /**
-     * Constructor.
-     */
-    private FreemarkerRendererBuilder() {
-    }
-
-    /**
-     * Creates a new instance of this class.
-     *
-     * @return A new instance of the builder.
-     */
-    public static FreemarkerRendererBuilder createInstance() {
-        return new FreemarkerRendererBuilder();
-    }
-
-    /**
-     * Sets a parameter for the internal servlet.
-     *
-     * @param key The name of the parameter.
-     * @param value The value of the parameter.
-     * @return This object.
-     */
-    public FreemarkerRendererBuilder setParameter(String key, String value) {
-        params.put(key, value);
-        return this;
-    }
-
-    /**
-     * Sets the application context.
-     *
-     * @param applicationContext The application context.
-     * @return This object.
-     */
-    public FreemarkerRendererBuilder setApplicationContext(ApplicationContext applicationContext) {
-        this.applicationContext = applicationContext;
-        return this;
-    }
-
-    /**
-     * Creates a new {@link FreemarkerRenderer} with the given configuration.
-     *
-     * @return A new Freemarker renderer.
-     */
-    public FreemarkerRenderer build() {
-        AttributeValueFreemarkerServlet servlet = new AttributeValueFreemarkerServlet();
-        try {
-            servlet.init(new InitParamsServletConfig(params, applicationContext));
-            return new FreemarkerRenderer(servlet);
-        } catch (ServletException e) {
-            throw new FreemarkerRequestException(
-                    "Cannot initialize internal servlet", e);
-        }
-
-    }
-
-}
diff --git a/tiles-request/tiles-request-freemarker/src/main/java/org/apache/tiles/request/freemarker/render/InitParamsServletConfig.java b/tiles-request/tiles-request-freemarker/src/main/java/org/apache/tiles/request/freemarker/render/InitParamsServletConfig.java
deleted file mode 100644
index 1599246..0000000
--- a/tiles-request/tiles-request-freemarker/src/main/java/org/apache/tiles/request/freemarker/render/InitParamsServletConfig.java
+++ /dev/null
@@ -1,81 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.request.freemarker.render;
-
-import java.util.Collections;
-import java.util.Enumeration;
-import java.util.HashMap;
-import java.util.Map;
-
-import javax.servlet.ServletConfig;
-import javax.servlet.ServletContext;
-
-import org.apache.tiles.request.ApplicationContext;
-
-/**
- * Implements {@link ServletConfig} to initialize the internal servlet using parameters
- * set through {@link FreemarkerRenderer#setParameter(String, String)}.
- *
- * @version $Rev$ $Date$
- */
-public class InitParamsServletConfig implements ServletConfig {
-
-    /**
-     * The initialization parameters.
-     */
-    private Map<String, String> params = new HashMap<String, String>();
-
-    /**
-     * The application context.
-     */
-    private ApplicationContext applicationContext;
-
-    /**
-     * Constructor.
-     *
-     * @param params Configuration parameters.
-     * @param applicationContext The application context.
-     */
-    public InitParamsServletConfig(Map<String, String> params, ApplicationContext applicationContext) {
-        this.params = params;
-        this.applicationContext = applicationContext;
-    }
-
-    /** {@inheritDoc} */
-    public String getInitParameter(String name) {
-        return params.get(name);
-    }
-
-    /** {@inheritDoc} */
-    public Enumeration<String> getInitParameterNames() {
-        return Collections.enumeration(params.keySet());
-    }
-
-    /** {@inheritDoc} */
-    public ServletContext getServletContext() {
-        return org.apache.tiles.request.servlet.ServletUtil.getServletContext(applicationContext);
-    }
-
-    /** {@inheritDoc} */
-    public String getServletName() {
-        return "FreeMarker Attribute Renderer";
-    }
-}
diff --git a/tiles-request/tiles-request-freemarker/src/main/java/org/apache/tiles/request/freemarker/render/package-info.java b/tiles-request/tiles-request-freemarker/src/main/java/org/apache/tiles/request/freemarker/render/package-info.java
deleted file mode 100644
index 925f6a2..0000000
--- a/tiles-request/tiles-request-freemarker/src/main/java/org/apache/tiles/request/freemarker/render/package-info.java
+++ /dev/null
@@ -1,24 +0,0 @@
-/*
- * $Id: package-info.java 1049711 2010-12-15 21:12:00Z apetrelli $
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-/**
- * Rendering of Freemarker templates.
- */
-package org.apache.tiles.request.freemarker.render;
diff --git a/tiles-request/tiles-request-freemarker/src/main/java/org/apache/tiles/request/freemarker/servlet/SharedVariableFactory.java b/tiles-request/tiles-request-freemarker/src/main/java/org/apache/tiles/request/freemarker/servlet/SharedVariableFactory.java
deleted file mode 100644
index 36cfc0c..0000000
--- a/tiles-request/tiles-request-freemarker/src/main/java/org/apache/tiles/request/freemarker/servlet/SharedVariableFactory.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.request.freemarker.servlet;
-
-import freemarker.template.TemplateModel;
-
-/**
- * It is an object that can create a shared variable, as a template model.
- *
- * @version $Rev$ $Date$
- */
-public interface SharedVariableFactory {
-
-    /**
-     * Creates a new shared variable.
-     *
-     * @return The shared variable.
-     */
-    TemplateModel create();
-}
diff --git a/tiles-request/tiles-request-freemarker/src/main/java/org/apache/tiles/request/freemarker/servlet/SharedVariableLoaderFreemarkerServlet.java b/tiles-request/tiles-request-freemarker/src/main/java/org/apache/tiles/request/freemarker/servlet/SharedVariableLoaderFreemarkerServlet.java
deleted file mode 100644
index 0401d43..0000000
--- a/tiles-request/tiles-request-freemarker/src/main/java/org/apache/tiles/request/freemarker/servlet/SharedVariableLoaderFreemarkerServlet.java
+++ /dev/null
@@ -1,215 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.tiles.request.freemarker.servlet;
-
-import java.util.Enumeration;
-import java.util.LinkedHashMap;
-import java.util.Map;
-
-import javax.servlet.ServletConfig;
-import javax.servlet.ServletContext;
-import javax.servlet.ServletException;
-
-import org.apache.tiles.request.reflect.ClassUtil;
-
-import freemarker.cache.TemplateLoader;
-import freemarker.ext.servlet.FreemarkerServlet;
-import freemarker.template.Configuration;
-
-/**
- * Extends FreemarkerServlet to load Tiles directives as a shared variable.
- *
- * @version $Rev$ $Date$
- */
-public class SharedVariableLoaderFreemarkerServlet extends FreemarkerServlet {
-
-    /**
-     * The serial UID.
-     */
-    private static final long serialVersionUID = 4301098067909854507L;
-
-    /**
-     * The init parameter under which the factories will be put. The value of the parameter
-     * must be a semicolon (;) separated list of couples, each member of the couple must
-     * be separated by commas (,).
-     */
-    public static final String CUSTOM_SHARED_VARIABLE_FACTORIES_INIT_PARAM =
-        "org.apache.tiles.request.freemarker.CUSTOM_SHARED_VARIABLE_FACTORIES";
-
-    /**
-     * Maps a name of a shared variable to its factory.
-     */
-    private Map<String, SharedVariableFactory> name2variableFactory =
-        new LinkedHashMap<String, SharedVariableFactory>();
-
-    @Override
-    public void init(ServletConfig config) throws ServletException {
-        String param = config.getInitParameter(CUSTOM_SHARED_VARIABLE_FACTORIES_INIT_PARAM);
-        if (param != null) {
-            String[] couples = param.split("\\s*;\\s*");
-            for (int i = 0; i < couples.length; i++) {
-                String[] couple = couples[i].split("\\s*,\\s*");
-                if (couple == null || couple.length != 2) {
-                    throw new ServletException(
-                            "Cannot parse custom shared variable partial init param: '"
-                                    + couples[i] + "'");
-                }
-                name2variableFactory.put(couple[0],
-                        (SharedVariableFactory) ClassUtil.instantiate(couple[1]));
-            }
-        }
-        super.init(new ExcludingParameterServletConfig(config));
-    }
-
-    /**
-     * Adds anew shared variable factory in a manual way.
-     *
-     * @param variableName The name of the shared variable.
-     * @param factory The shared variable factory.
-     */
-    public void addSharedVariableFactory(String variableName, SharedVariableFactory factory) {
-        name2variableFactory.put(variableName, factory);
-    }
-
-    /** {@inheritDoc} */
-    @Override
-    protected Configuration createConfiguration() {
-        Configuration configuration = super.createConfiguration();
-
-        for (Map.Entry<String, SharedVariableFactory> entry : name2variableFactory.entrySet()) {
-            configuration.setSharedVariable(entry.getKey(), entry.getValue().create());
-        }
-        return configuration;
-    }
-
-    /** {@inheritDoc} */
-
-    @Override
-    protected TemplateLoader createTemplateLoader(String templatePath) {
-        return new WebappClassTemplateLoader(getServletContext());
-    }
-
-    /**
-     * Servlet configuration that excludes some parameters. It is useful to adapt to
-     * FreemarkerServlet behaviour, because it gets angry if it sees some extra
-     * parameters that it does not recognize.
-     */
-    private class ExcludingParameterServletConfig implements ServletConfig {
-
-        /**
-         * The servlet configuration.
-         */
-        private ServletConfig config;
-
-        /**
-         * Constructor.
-         *
-         * @param config The servlet configuration.
-         */
-        public ExcludingParameterServletConfig(ServletConfig config) {
-            this.config = config;
-        }
-
-        @Override
-        public String getServletName() {
-            return config.getServletName();
-        }
-
-        @Override
-        public ServletContext getServletContext() {
-            return config.getServletContext();
-        }
-
-        @Override
-        public String getInitParameter(String name) {
-            if (CUSTOM_SHARED_VARIABLE_FACTORIES_INIT_PARAM.equals(name)) {
-                return null;
-            }
-            return config.getInitParameter(name);
-        }
-
-        @SuppressWarnings({ "rawtypes", "unchecked" })
-        @Override
-        public Enumeration getInitParameterNames() {
-            return new SkippingEnumeration(config.getInitParameterNames());
-        }
-
-    }
-
-    /**
-     * An enumeration that skip just
-     * {@link SharedVariableLoaderFreemarkerServlet#CUSTOM_SHARED_VARIABLE_FACTORIES_INIT_PARAM},
-     * again not to let the FreemarkerServlet be angry about it.
-     */
-    private static class SkippingEnumeration implements Enumeration<String> {
-
-        /**
-         * The original enumeration.
-         */
-        private Enumeration<String> enumeration;
-
-        /**
-         * The next element.
-         */
-        private String next = null;
-
-        /**
-         * Constructor.
-         *
-         * @param enumeration The original enumeration.
-         */
-        public SkippingEnumeration(Enumeration<String> enumeration) {
-            this.enumeration = enumeration;
-            updateNextElement();
-        }
-
-        @Override
-        public boolean hasMoreElements() {
-            return next != null;
-        }
-
-        @Override
-        public String nextElement() {
-            String retValue = next;
-            updateNextElement();
-            return retValue;
-        }
-
-        /**
-         * Updates the next element that will be passed.
-         */
-        private void updateNextElement() {
-            String value = null;
-            boolean done = false;
-            while (this.enumeration.hasMoreElements() && !done) {
-                value = this.enumeration.nextElement();
-                if (value.equals(CUSTOM_SHARED_VARIABLE_FACTORIES_INIT_PARAM)) {
-                    value = null;
-                } else {
-                    done = true;
-                }
-            }
-            next = value;
-        }
-
-    }
-}
diff --git a/tiles-request/tiles-request-freemarker/src/main/java/org/apache/tiles/request/freemarker/servlet/WebappClassTemplateLoader.java b/tiles-request/tiles-request-freemarker/src/main/java/org/apache/tiles/request/freemarker/servlet/WebappClassTemplateLoader.java
deleted file mode 100644
index 28ed069..0000000
--- a/tiles-request/tiles-request-freemarker/src/main/java/org/apache/tiles/request/freemarker/servlet/WebappClassTemplateLoader.java
+++ /dev/null
@@ -1,86 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.tiles.request.freemarker.servlet;
-
-import java.io.IOException;
-import java.io.Reader;
-
-import javax.servlet.ServletContext;
-
-import freemarker.cache.ClassTemplateLoader;
-import freemarker.cache.TemplateLoader;
-import freemarker.cache.WebappTemplateLoader;
-
-/**
- * Delegates loading templates using a {@link WebappTemplateLoader} and, if not
- * found, a {@link ClassTemplateLoader}. The resources are loaded from the
- * webapp root and from the classpath root.
- *
- * @version $Rev$ $Date$
- */
-public class WebappClassTemplateLoader implements TemplateLoader {
-
-    /**
-     * The webapp template loader.
-     */
-    private WebappTemplateLoader webappTemplateLoader;
-
-    /**
-     * The webapp template loader.
-     */
-    private ClassTemplateLoader classTemplateLoader;
-
-    /**
-     * Constructor.
-     *
-     * @param servletContext The servlet context.
-     */
-    public WebappClassTemplateLoader(ServletContext servletContext) {
-        webappTemplateLoader = new WebappTemplateLoader(servletContext);
-        classTemplateLoader = new ClassTemplateLoader(getClass(), "/");
-    }
-
-    /** {@inheritDoc} */
-    public Object findTemplateSource(String name) throws IOException {
-        Object retValue = webappTemplateLoader.findTemplateSource(name);
-        if (retValue == null) {
-            retValue = classTemplateLoader.findTemplateSource(name);
-        }
-        return retValue;
-    }
-
-    /** {@inheritDoc} */
-    public void closeTemplateSource(Object templateSource) throws IOException {
-        webappTemplateLoader.closeTemplateSource(templateSource);
-    }
-
-    /** {@inheritDoc} */
-    public long getLastModified(Object templateSource) {
-        return webappTemplateLoader.getLastModified(templateSource);
-    }
-
-    /** {@inheritDoc} */
-    public Reader getReader(Object templateSource, String encoding)
-            throws IOException {
-        return webappTemplateLoader.getReader(templateSource, encoding);
-    }
-}
diff --git a/tiles-request/tiles-request-freemarker/src/main/java/org/apache/tiles/request/freemarker/servlet/package-info.java b/tiles-request/tiles-request-freemarker/src/main/java/org/apache/tiles/request/freemarker/servlet/package-info.java
deleted file mode 100644
index c93d7b0..0000000
--- a/tiles-request/tiles-request-freemarker/src/main/java/org/apache/tiles/request/freemarker/servlet/package-info.java
+++ /dev/null
@@ -1,24 +0,0 @@
-/*
- * $Id: package-info.java 1049711 2010-12-15 21:12:00Z apetrelli $
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-/**
- * Servlets for easy addition of shared variables.
- */
-package org.apache.tiles.request.freemarker.servlet;
diff --git a/tiles-request/tiles-request-freemarker/src/site/site.xml b/tiles-request/tiles-request-freemarker/src/site/site.xml
deleted file mode 100644
index 8e92dd7..0000000
--- a/tiles-request/tiles-request-freemarker/src/site/site.xml
+++ /dev/null
@@ -1,56 +0,0 @@
-<?xml version="1.0" encoding="ISO-8859-1"?>
-<!--
-/*
- * $Id: site.xml 1081442 2011-03-14 16:21:08Z apetrelli $
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
--->
-<project name="Apache - Request Microframework">
-    <bannerLeft>
-        <name>Apache Software Foundation</name>
-        <src>http://www.apache.org/images/asf-logo.gif</src>
-        <href>http://www.apache.org</href>
-    </bannerLeft>
-    <bannerRight>
-        <name>Apache Tiles&#8482;</name>
-        <src>http://tiles.apache.org/images/logo.png</src>
-        <href>http://tiles.apache.org</href>
-    </bannerRight>
-    <body>
-
-        <links>
-            <item name="Apache" href="http://www.apache.org" />
-            <item name="Tiles" href="http://tiles.apache.org" />
-        </links>
-
-
-        <menu name="Apache Tiles&#8482;">
-            <item
-                   name="Tiles Home"
-                   href="../../index.html"/>
-            <item
-                   name="Request Microframework"
-                   href="../index.html"/>
-        </menu>
-
-        <menu ref="modules" />
-        <menu ref="reports" />
-
-    </body>
-</project>
diff --git a/tiles-request/tiles-request-freemarker/src/test/java/org/apache/tiles/request/freemarker/EnvironmentScopeMapTest.java b/tiles-request/tiles-request-freemarker/src/test/java/org/apache/tiles/request/freemarker/EnvironmentScopeMapTest.java
deleted file mode 100644
index 835768b..0000000
--- a/tiles-request/tiles-request-freemarker/src/test/java/org/apache/tiles/request/freemarker/EnvironmentScopeMapTest.java
+++ /dev/null
@@ -1,99 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.request.freemarker;
-
-import static org.easymock.EasyMock.*;
-import static org.easymock.classextension.EasyMock.*;
-import static org.junit.Assert.*;
-
-import java.io.StringWriter;
-import java.io.Writer;
-import java.util.HashMap;
-import java.util.Set;
-
-import org.junit.Test;
-
-import freemarker.core.Environment;
-import freemarker.template.Configuration;
-import freemarker.template.Template;
-import freemarker.template.TemplateHashModel;
-import freemarker.template.TemplateHashModelEx;
-import freemarker.template.TemplateModelException;
-
-/**
- * Tests {@link EnvironmentScopeMap}.
- *
- * @version $Rev$ $Date$
- */
-public class EnvironmentScopeMapTest {
-
-    /**
-     * Test method for {@link org.apache.tiles.request.freemarker.EnvironmentScopeMap#keySet()}.
-     */
-    @SuppressWarnings("unchecked")
-    @Test
-    public void testKeySet() {
-        Template template = createMock(Template.class);
-        TemplateHashModel model = createMock(TemplateHashModel.class);
-        Configuration configuration = createMock(Configuration.class);
-        Set<String> names = createMock(Set.class);
-        Writer writer = new StringWriter();
-
-        expect(template.getMacros()).andReturn(new HashMap<Object, Object>());
-        expect(template.getConfiguration()).andReturn(configuration);
-        expect(configuration.getSharedVariableNames()).andReturn(names);
-
-        replay(template, model, configuration, names);
-        Environment env = new Environment(template, model, writer);
-        EnvironmentScopeMap map = new EnvironmentScopeMap(env);
-        assertEquals(names, map.keySet());
-        verify(template, model, configuration, names);
-    }
-
-
-    /**
-     * Test method for {@link org.apache.tiles.request.freemarker.EnvironmentScopeMap#keySet()}.
-     * @throws TemplateModelException If something goes wrong.
-     */
-    @SuppressWarnings("unchecked")
-    @Test(expected = FreemarkerRequestException.class)
-    public void testKeySetException() throws TemplateModelException {
-        Template template = createMock(Template.class);
-        TemplateHashModelEx model = createMock(TemplateHashModelEx.class);
-        Configuration configuration = createMock(Configuration.class);
-        Set<String> names = createMock(Set.class);
-        Writer writer = new StringWriter();
-
-        expect(template.getMacros()).andReturn(new HashMap<Object, Object>());
-        expect(model.keys()).andThrow(new TemplateModelException());
-        expect(template.getConfiguration()).andReturn(configuration);
-        expect(configuration.getSharedVariableNames()).andReturn(names);
-
-        try {
-            replay(template, model, configuration, names);
-            Environment env = new Environment(template, model, writer);
-            EnvironmentScopeMap map = new EnvironmentScopeMap(env);
-            map.keySet();
-        } finally {
-            verify(template, model, configuration, names);
-        }
-    }
-}
diff --git a/tiles-request/tiles-request-freemarker/src/test/java/org/apache/tiles/request/freemarker/FreemarkerRequestExceptionTest.java b/tiles-request/tiles-request-freemarker/src/test/java/org/apache/tiles/request/freemarker/FreemarkerRequestExceptionTest.java
deleted file mode 100644
index 732d339..0000000
--- a/tiles-request/tiles-request-freemarker/src/test/java/org/apache/tiles/request/freemarker/FreemarkerRequestExceptionTest.java
+++ /dev/null
@@ -1,77 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.tiles.request.freemarker;
-
-import static org.junit.Assert.*;
-
-import org.junit.Test;
-
-/**
- * Tests {@link FreemarkerRequestException}.
- *
- * @version $Rev$ $Date$
- */
-public class FreemarkerRequestExceptionTest {
-
-    /**
-     * Test method for {@link FreemarkerRequestException#FreemarkerRequestException()}.
-     */
-    @Test
-    public void testFreemarkerRequestException() {
-        FreemarkerRequestException exception = new FreemarkerRequestException();
-        assertNull(exception.getMessage());
-        assertNull(exception.getCause());
-    }
-
-    /**
-     * Test method for {@link FreemarkerRequestException#FreemarkerRequestException(java.lang.String)}.
-     */
-    @Test
-    public void testFreemarkerRequestExceptionString() {
-        FreemarkerRequestException exception = new FreemarkerRequestException("my message");
-        assertEquals("my message", exception.getMessage());
-        assertNull(exception.getCause());
-    }
-
-    /**
-     * Test method for {@link FreemarkerRequestException#FreemarkerRequestException(java.lang.Throwable)}.
-     */
-    @Test
-    public void testFreemarkerRequestExceptionThrowable() {
-        Throwable cause = new Throwable();
-        FreemarkerRequestException exception = new FreemarkerRequestException(cause);
-        assertEquals(cause.toString(), exception.getMessage());
-        assertEquals(cause, exception.getCause());
-    }
-
-    /**
-     * Test method for {@link FreemarkerRequestException#FreemarkerRequestException(String, Throwable)}.
-     */
-    @Test
-    public void testFreemarkerRequestExceptionStringThrowable() {
-        Throwable cause = new Throwable();
-        FreemarkerRequestException exception = new FreemarkerRequestException("my message", cause);
-        assertEquals("my message", exception.getMessage());
-        assertEquals(cause, exception.getCause());
-    }
-
-}
diff --git a/tiles-request/tiles-request-freemarker/src/test/java/org/apache/tiles/request/freemarker/FreemarkerRequestTest.java b/tiles-request/tiles-request-freemarker/src/test/java/org/apache/tiles/request/freemarker/FreemarkerRequestTest.java
deleted file mode 100644
index 7a0de89..0000000
--- a/tiles-request/tiles-request-freemarker/src/test/java/org/apache/tiles/request/freemarker/FreemarkerRequestTest.java
+++ /dev/null
@@ -1,261 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.tiles.request.freemarker;
-
-import static org.easymock.EasyMock.*;
-import static org.junit.Assert.*;
-
-import java.io.IOException;
-import java.io.PrintWriter;
-import java.io.StringWriter;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.Locale;
-import java.util.Map;
-
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-
-import org.apache.tiles.request.ApplicationContext;
-import org.apache.tiles.request.DispatchRequest;
-import org.apache.tiles.request.servlet.ServletRequest;
-import org.junit.Before;
-import org.junit.Test;
-
-import freemarker.core.Environment;
-import freemarker.ext.servlet.HttpRequestHashModel;
-import freemarker.template.ObjectWrapper;
-import freemarker.template.Template;
-import freemarker.template.TemplateHashModel;
-import freemarker.template.TemplateModelException;
-
-/**
- * Tests {@link FreemarkerRequest}.
- *
- * @version $Rev$ $Date$
- */
-public class FreemarkerRequestTest {
-
-    /**
-     * The reuqest context to test.
-     */
-    private FreemarkerRequest context;
-
-    /**
-     * A string writer.
-     */
-    private StringWriter writer;
-
-    /**
-     * The FreeMarker environment.
-     */
-    private Environment env;
-
-    /**
-     * The locale object.
-     */
-    private Locale locale;
-
-    /**
-     * Sets up the test.
-     */
-    @Before
-    public void setUp() {
-        Template template = createMock(Template.class);
-        TemplateHashModel model = createMock(TemplateHashModel.class);
-        writer = new StringWriter();
-        expect(template.getMacros()).andReturn(new HashMap<Object, Object>());
-        replay(template, model);
-        env = new Environment(template, model, writer);
-        locale = Locale.ITALY;
-        env.setLocale(locale);
-    }
-
-    /**
-     * Tests {@link FreemarkerRequest#createServletFreemarkerRequest(ApplicationContext, Environment)}.
-     * @throws TemplateModelException If something goes wrong.
-     */
-    @Test
-    public void testCreateServletFreemarkerRequest() throws TemplateModelException {
-        Template template = createMock(Template.class);
-        TemplateHashModel model = createMock(TemplateHashModel.class);
-        PrintWriter writer = new PrintWriter(new StringWriter());
-        HttpServletRequest httpRequest = createMock(HttpServletRequest.class);
-        HttpServletResponse httpResponse = createMock(HttpServletResponse.class);
-        ObjectWrapper objectWrapper = createMock(ObjectWrapper.class);
-        ApplicationContext applicationContext = createMock(ApplicationContext.class);
-
-        expect(template.getMacros()).andReturn(new HashMap<Object, Object>());
-
-        replay(httpRequest, httpResponse, objectWrapper);
-        HttpRequestHashModel requestHashModel = new HttpRequestHashModel(httpRequest, httpResponse, objectWrapper);
-        expect(model.get("Request")).andReturn(requestHashModel);
-
-        replay(template, model, applicationContext);
-        Environment env = new Environment(template, model, writer);
-        Locale locale = Locale.ITALY;
-        env.setLocale(locale);
-
-        FreemarkerRequest request = FreemarkerRequest.createServletFreemarkerRequest(applicationContext, env);
-        ServletRequest servletRequest = (ServletRequest) request.getWrappedRequest();
-        assertEquals(httpRequest, servletRequest.getRequest());
-        assertEquals(httpResponse, servletRequest.getResponse());
-        verify(template, model, httpRequest, httpResponse, objectWrapper, applicationContext);
-    }
-
-    /**
-     * Tests {@link FreemarkerRequest#dispatch(String)}.
-     *
-     * @throws IOException If something goes wrong.
-     */
-    @Test
-    public void testDispatch() throws IOException {
-        String path = "this way";
-        DispatchRequest enclosedRequest = createMock(DispatchRequest.class);
-        ApplicationContext applicationContext = createMock(ApplicationContext.class);
-        Map<String, Object> requestScope = new HashMap<String, Object>();
-
-        enclosedRequest.include(path);
-        expect(enclosedRequest.getAvailableScopes()).andReturn(Collections.singletonList("parent"));
-        expect(enclosedRequest.getContext("request")).andReturn(requestScope);
-        replay(enclosedRequest, applicationContext);
-        context = new FreemarkerRequest(enclosedRequest, env);
-        context.dispatch(path);
-        verify(enclosedRequest, applicationContext);
-    }
-
-    /**
-     * Tests {@link FreemarkerRequest#getPageScope()}.
-     */
-    @Test
-    public void testGetPageScope() {
-        DispatchRequest enclosedRequest = createMock(DispatchRequest.class);
-        expect(enclosedRequest.getAvailableScopes()).andReturn(Collections.singletonList("parent"));
-        replay(enclosedRequest);
-        context = new FreemarkerRequest(enclosedRequest, env);
-        assertTrue(context.getPageScope() instanceof EnvironmentScopeMap);
-        verify(enclosedRequest);
-    }
-
-    /**
-     * Tests {@link FreemarkerRequest#getNativeScopes()}.
-     */
-    @Test
-    public void testGetAvailableScopes() {
-        DispatchRequest enclosedRequest = createMock(DispatchRequest.class);
-        expect(enclosedRequest.getAvailableScopes()).andReturn(Collections.singletonList("parent"));
-        replay(enclosedRequest);
-        context = new FreemarkerRequest(enclosedRequest, env);
-        assertArrayEquals(new String[] { "parent", "page" }, //
-                context.getAvailableScopes().toArray());
-        verify(enclosedRequest);
-    }
-
-    /**
-     * Tests {@link FreemarkerRequest#getRequestLocale()}.
-     */
-    @Test
-    public void testGetRequestLocale() {
-        DispatchRequest enclosedRequest = createMock(DispatchRequest.class);
-        expect(enclosedRequest.getAvailableScopes()).andReturn(Collections.singletonList("parent"));
-        replay(enclosedRequest);
-        context = new FreemarkerRequest(enclosedRequest, env);
-        assertEquals(locale, context.getRequestLocale());
-        verify(enclosedRequest);
-    }
-
-    /**
-     * Tests {@link FreemarkerRequest#getRequest()}.
-     */
-    @Test
-    public void testGetRequest() {
-        DispatchRequest enclosedRequest = createMock(DispatchRequest.class);
-        expect(enclosedRequest.getAvailableScopes()).andReturn(Collections.singletonList("parent"));
-        replay(enclosedRequest);
-        context = new FreemarkerRequest(enclosedRequest, env);
-        assertEquals(env, context.getEnvironment());
-        verify(enclosedRequest);
-    }
-
-    /**
-     * Tests {@link FreemarkerRequest#getResponse()}.
-     */
-    @Test
-    public void testGetResponse() {
-        DispatchRequest enclosedRequest = createMock(DispatchRequest.class);
-        expect(enclosedRequest.getAvailableScopes()).andReturn(Collections.singletonList("parent"));
-        replay(enclosedRequest);
-        context = new FreemarkerRequest(enclosedRequest, env);
-        assertEquals(env, context.getEnvironment());
-        verify(enclosedRequest);
-    }
-
-    /**
-     * Tests {@link FreemarkerRequest#getPrintWriter()}.
-     */
-    @Test
-    public void testGetPrintWriter() {
-        DispatchRequest enclosedRequest = createMock(DispatchRequest.class);
-        expect(enclosedRequest.getAvailableScopes()).andReturn(Collections.singletonList("parent"));
-        replay(enclosedRequest);
-        context = new FreemarkerRequest(enclosedRequest, env);
-        assertEquals(env, context.getEnvironment());
-        assertNotNull(context.getPrintWriter());
-        verify(enclosedRequest);
-    }
-
-    /**
-     * Tests {@link FreemarkerRequest#getPrintWriter()}.
-     */
-    @Test
-    public void testGetPrintWriterPrintWriter() {
-        Template template = createMock(Template.class);
-        TemplateHashModel model = createMock(TemplateHashModel.class);
-        PrintWriter writer = new PrintWriter(new StringWriter());
-        expect(template.getMacros()).andReturn(new HashMap<Object, Object>());
-        replay(template, model);
-        Environment env = new Environment(template, model, writer);
-        Locale locale = Locale.ITALY;
-        env.setLocale(locale);
-        DispatchRequest enclosedRequest = createMock(DispatchRequest.class);
-        expect(enclosedRequest.getAvailableScopes()).andReturn(Collections.singletonList("parent"));
-        replay(enclosedRequest);
-        context = new FreemarkerRequest(enclosedRequest, env);
-        assertSame(writer, context.getPrintWriter());
-        verify(enclosedRequest, template, model);
-    }
-
-
-    /**
-     * Tests {@link FreemarkerRequest#getWriter()}.
-     */
-    @Test
-    public void testGetWriter() {
-        DispatchRequest enclosedRequest = createMock(DispatchRequest.class);
-        expect(enclosedRequest.getAvailableScopes()).andReturn(Collections.singletonList("parent"));
-        replay(enclosedRequest);
-        context = new FreemarkerRequest(enclosedRequest, env);
-        assertEquals(env, context.getEnvironment());
-        assertNotNull(context.getWriter());
-        verify(enclosedRequest);
-    }
-}
diff --git a/tiles-request/tiles-request-freemarker/src/test/java/org/apache/tiles/request/freemarker/FreemarkerRequestUtilTest.java b/tiles-request/tiles-request-freemarker/src/test/java/org/apache/tiles/request/freemarker/FreemarkerRequestUtilTest.java
deleted file mode 100644
index 4d5b48f..0000000
--- a/tiles-request/tiles-request-freemarker/src/test/java/org/apache/tiles/request/freemarker/FreemarkerRequestUtilTest.java
+++ /dev/null
@@ -1,209 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.request.freemarker;
-
-import static org.easymock.EasyMock.*;
-import static org.easymock.classextension.EasyMock.*;
-import static org.junit.Assert.*;
-
-import java.io.StringWriter;
-import java.util.HashMap;
-import java.util.Locale;
-
-import javax.servlet.GenericServlet;
-import javax.servlet.ServletContext;
-import javax.servlet.http.HttpServletRequest;
-
-import org.apache.tiles.request.ApplicationAccess;
-import org.apache.tiles.request.ApplicationContext;
-import org.junit.Before;
-import org.junit.Test;
-
-import freemarker.core.Environment;
-import freemarker.ext.servlet.HttpRequestHashModel;
-import freemarker.ext.servlet.ServletContextHashModel;
-import freemarker.template.ObjectWrapper;
-import freemarker.template.Template;
-import freemarker.template.TemplateHashModel;
-import freemarker.template.TemplateModelException;
-
-/**
- * Tests {@link FreemarkerRequestUtil}.
- *
- */
-public class FreemarkerRequestUtilTest {
-
-    /**
-     * A string writer.
-     */
-    private StringWriter writer;
-
-    /**
-     * The FreeMarker environment.
-     */
-    private Environment env;
-
-    /**
-     * The locale object.
-     */
-    private Locale locale;
-
-    /**
-     * The template.
-     */
-    private Template template;
-
-    /**
-     * The template model.
-     */
-    private TemplateHashModel model;
-
-    /**
-     * Sets up the model.
-     */
-    @Before
-    public void setUp() {
-        template = createMock(Template.class);
-        model = createMock(TemplateHashModel.class);
-        writer = new StringWriter();
-        expect(template.getMacros()).andReturn(new HashMap<Object, Object>());
-    }
-
-    /**
-     * Test method for {@link FreemarkerRequestUtil#getRequestHashModel(freemarker.core.Environment)}.
-     * @throws TemplateModelException If something goes wrong.
-     */
-    @Test
-    public void testGetRequestHashModel() throws TemplateModelException {
-        HttpServletRequest request = createMock(HttpServletRequest.class);
-        ObjectWrapper objectWrapper = createMock(ObjectWrapper.class);
-        HttpRequestHashModel requestModel = new HttpRequestHashModel(request, objectWrapper);
-
-        expect(model.get("Request")).andReturn(requestModel);
-
-        replay(template, model, request, objectWrapper);
-        env = new Environment(template, model, writer);
-        locale = Locale.ITALY;
-        env.setLocale(locale);
-        assertEquals(requestModel, FreemarkerRequestUtil.getRequestHashModel(env));
-        verify(template, model, request, objectWrapper);
-    }
-
-    /**
-     * Test method for {@link FreemarkerRequestUtil#getRequestHashModel(freemarker.core.Environment)}.
-     * @throws TemplateModelException If something goes wrong.
-     */
-    @Test(expected = NotAvailableFreemarkerServletException.class)
-    public void testGetRequestHashModelException() throws TemplateModelException {
-        HttpServletRequest request = createMock(HttpServletRequest.class);
-        ObjectWrapper objectWrapper = createMock(ObjectWrapper.class);
-
-        expect(model.get("Request")).andThrow(new TemplateModelException());
-
-        replay(template, model, request, objectWrapper);
-        try {
-            env = new Environment(template, model, writer);
-            locale = Locale.ITALY;
-            env.setLocale(locale);
-            FreemarkerRequestUtil.getRequestHashModel(env);
-        } finally {
-            verify(template, model, request, objectWrapper);
-        }
-    }
-
-
-    /**
-     * Test method for {@link FreemarkerRequestUtil
-     * #getServletContextHashModel(freemarker.core.Environment)}.
-     * @throws TemplateModelException If something goes wrong.
-     */
-    @Test
-    public void testGetServletContextHashModel() throws TemplateModelException {
-        GenericServlet servlet = createMock(GenericServlet.class);
-        ServletContext servletContext = createMock(ServletContext.class);
-        ObjectWrapper objectWrapper = createMock(ObjectWrapper.class);
-        expect(servlet.getServletContext()).andReturn(servletContext);
-        replay(servlet, objectWrapper);
-        ServletContextHashModel servletContextModel = new ServletContextHashModel(servlet, objectWrapper);
-
-        expect(model.get("Application")).andReturn(servletContextModel);
-
-        replay(template, model, servletContext);
-        env = new Environment(template, model, writer);
-        locale = Locale.ITALY;
-        env.setLocale(locale);
-        assertEquals(servletContextModel, FreemarkerRequestUtil.getServletContextHashModel(env));
-        verify(template, model, servlet, servletContext, objectWrapper);
-    }
-
-    /**
-     * Test method for {@link FreemarkerRequestUtil
-     * #getServletContextHashModel(freemarker.core.Environment)}.
-     * @throws TemplateModelException If something goes wrong.
-     */
-    @Test(expected = NotAvailableFreemarkerServletException.class)
-    public void testGetServletContextHashModelException() throws TemplateModelException {
-        GenericServlet servlet = createMock(GenericServlet.class);
-        ObjectWrapper objectWrapper = createMock(ObjectWrapper.class);
-        replay(servlet, objectWrapper);
-
-        expect(model.get("Application")).andThrow(new TemplateModelException());
-
-        replay(template, model);
-        try {
-            env = new Environment(template, model, writer);
-            locale = Locale.ITALY;
-            env.setLocale(locale);
-            FreemarkerRequestUtil.getServletContextHashModel(env);
-        } finally {
-            verify(template, model, servlet, objectWrapper);
-        }
-    }
-
-    /**
-     * Test method for {@link FreemarkerRequestUtil
-     * #getApplicationContext(Environment)}.
-     * @throws TemplateModelException If something goes wrong.
-     */
-    @Test
-    public void testGetApplicationContext() throws TemplateModelException {
-        GenericServlet servlet = createMock(GenericServlet.class);
-        ServletContext servletContext = createMock(ServletContext.class);
-        ObjectWrapper objectWrapper = createMock(ObjectWrapper.class);
-        ApplicationContext applicationContext = createMock(ApplicationContext.class);
-
-        expect(servlet.getServletContext()).andReturn(servletContext).times(2);
-        expect(servletContext.getAttribute(ApplicationAccess
-                .APPLICATION_CONTEXT_ATTRIBUTE)).andReturn(applicationContext);
-
-        replay(servlet, objectWrapper);
-        ServletContextHashModel servletContextModel = new ServletContextHashModel(servlet, objectWrapper);
-
-        expect(model.get("Application")).andReturn(servletContextModel);
-
-        replay(template, model, servletContext);
-        env = new Environment(template, model, writer);
-        locale = Locale.ITALY;
-        env.setLocale(locale);
-        assertEquals(applicationContext, FreemarkerRequestUtil.getApplicationContext(env));
-        verify(template, model, servlet, servletContext, objectWrapper);
-    }
-}
diff --git a/tiles-request/tiles-request-freemarker/src/test/java/org/apache/tiles/request/freemarker/NotAvailableFreemarkerServletExceptionTest.java b/tiles-request/tiles-request-freemarker/src/test/java/org/apache/tiles/request/freemarker/NotAvailableFreemarkerServletExceptionTest.java
deleted file mode 100644
index 92d32c3..0000000
--- a/tiles-request/tiles-request-freemarker/src/test/java/org/apache/tiles/request/freemarker/NotAvailableFreemarkerServletExceptionTest.java
+++ /dev/null
@@ -1,79 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.tiles.request.freemarker;
-
-import static org.junit.Assert.*;
-
-import org.junit.Test;
-
-/**
- * Tests {@link NotAvailableFreemarkerServletException}.
- *
- * @version $Rev$ $Date$
- */
-public class NotAvailableFreemarkerServletExceptionTest {
-
-    /**
-     * Test method for {@link NotAvailableFreemarkerServletException#NotAvailableFreemarkerServletException()}.
-     */
-    @Test
-    public void testNotAvailableFreemarkerServletException() {
-        NotAvailableFreemarkerServletException exception = new NotAvailableFreemarkerServletException();
-        assertNull(exception.getMessage());
-        assertNull(exception.getCause());
-    }
-
-    /**
-     * Test method for {@link NotAvailableFreemarkerServletException#NotAvailableFreemarkerServletException(String)}.
-     */
-    @Test
-    public void testNotAvailableFreemarkerServletExceptionString() {
-        NotAvailableFreemarkerServletException exception = new NotAvailableFreemarkerServletException("my message");
-        assertEquals("my message", exception.getMessage());
-        assertNull(exception.getCause());
-    }
-
-    /**
-     * Test method for {@link NotAvailableFreemarkerServletException#NotAvailableFreemarkerServletException(Throwable)}.
-     */
-    @Test
-    public void testNotAvailableFreemarkerServletExceptionThrowable() {
-        Throwable cause = new Throwable();
-        NotAvailableFreemarkerServletException exception = new NotAvailableFreemarkerServletException(cause);
-        assertEquals(cause.toString(), exception.getMessage());
-        assertEquals(cause, exception.getCause());
-    }
-
-    /**
-     * Test method for
-     * {@link NotAvailableFreemarkerServletException#NotAvailableFreemarkerServletException(String, Throwable)}.
-     */
-    @Test
-    public void testNotAvailableFreemarkerServletExceptionStringThrowable() {
-        Throwable cause = new Throwable();
-        NotAvailableFreemarkerServletException exception =
-            new NotAvailableFreemarkerServletException("my message", cause);
-        assertEquals("my message", exception.getMessage());
-        assertEquals(cause, exception.getCause());
-    }
-
-}
diff --git a/tiles-request/tiles-request-freemarker/src/test/java/org/apache/tiles/request/freemarker/autotag/FreemarkerAutotagExceptionTest.java b/tiles-request/tiles-request-freemarker/src/test/java/org/apache/tiles/request/freemarker/autotag/FreemarkerAutotagExceptionTest.java
deleted file mode 100644
index aac061a..0000000
--- a/tiles-request/tiles-request-freemarker/src/test/java/org/apache/tiles/request/freemarker/autotag/FreemarkerAutotagExceptionTest.java
+++ /dev/null
@@ -1,78 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.tiles.request.freemarker.autotag;
-
-import static org.junit.Assert.*;
-
-import org.apache.tiles.request.freemarker.autotag.FreemarkerAutotagException;
-import org.junit.Test;
-
-/**
- * Tests {@link FreemarkerAutotagException}.
- *
- * @version $Rev$ $Date$
- */
-public class FreemarkerAutotagExceptionTest {
-
-    /**
-     * Test method for {@link FreemarkerAutotagException#FreemarkerAutotagException()}.
-     */
-    @Test
-    public void testFreemarkerAutotagException() {
-        FreemarkerAutotagException exception = new FreemarkerAutotagException();
-        assertNull(exception.getMessage());
-        assertNull(exception.getCause());
-    }
-
-    /**
-     * Test method for {@link FreemarkerAutotagException#FreemarkerAutotagException(java.lang.String)}.
-     */
-    @Test
-    public void testFreemarkerAutotagExceptionString() {
-        FreemarkerAutotagException exception = new FreemarkerAutotagException("my message");
-        assertEquals("my message", exception.getMessage());
-        assertNull(exception.getCause());
-    }
-
-    /**
-     * Test method for {@link FreemarkerAutotagException#FreemarkerAutotagException(java.lang.Throwable)}.
-     */
-    @Test
-    public void testFreemarkerAutotagExceptionThrowable() {
-        Throwable cause = new Throwable();
-        FreemarkerAutotagException exception = new FreemarkerAutotagException(cause);
-        assertEquals(cause.toString(), exception.getMessage());
-        assertEquals(cause, exception.getCause());
-    }
-
-    /**
-     * Test method for {@link FreemarkerAutotagException#FreemarkerAutotagException(String, Throwable)}.
-     */
-    @Test
-    public void testFreemarkerAutotagExceptionStringThrowable() {
-        Throwable cause = new Throwable();
-        FreemarkerAutotagException exception = new FreemarkerAutotagException("my message", cause);
-        assertEquals("my message", exception.getMessage());
-        assertEquals(cause, exception.getCause());
-    }
-
-}
diff --git a/tiles-request/tiles-request-freemarker/src/test/java/org/apache/tiles/request/freemarker/autotag/FreemarkerAutotagRuntimeTest.java b/tiles-request/tiles-request-freemarker/src/test/java/org/apache/tiles/request/freemarker/autotag/FreemarkerAutotagRuntimeTest.java
deleted file mode 100644
index 9a93b21..0000000
--- a/tiles-request/tiles-request-freemarker/src/test/java/org/apache/tiles/request/freemarker/autotag/FreemarkerAutotagRuntimeTest.java
+++ /dev/null
@@ -1,160 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.request.freemarker.autotag;
-
-import static org.easymock.EasyMock.*;
-import static org.junit.Assert.*;
-
-import java.io.IOException;
-import java.io.Writer;
-import java.util.HashMap;
-import java.util.Map;
-import javax.servlet.GenericServlet;
-import javax.servlet.ServletContext;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-
-import org.apache.tiles.autotag.core.runtime.ModelBody;
-import org.apache.tiles.request.ApplicationAccess;
-import org.apache.tiles.request.ApplicationContext;
-import org.apache.tiles.request.Request;
-import org.apache.tiles.request.freemarker.FreemarkerRequest;
-import org.apache.tiles.request.freemarker.autotag.FreemarkerAutotagRuntime;
-import org.apache.tiles.request.freemarker.autotag.FreemarkerModelBody;
-import org.junit.Test;
-import freemarker.core.Environment;
-import freemarker.core.Macro;
-import freemarker.ext.servlet.FreemarkerServlet;
-import freemarker.ext.servlet.HttpRequestHashModel;
-import freemarker.ext.servlet.ServletContextHashModel;
-import freemarker.template.ObjectWrapper;
-import freemarker.template.Template;
-import freemarker.template.TemplateDirectiveBody;
-import freemarker.template.TemplateHashModel;
-import freemarker.template.TemplateModel;
-import freemarker.template.TemplateModelException;
-import freemarker.template.TemplateNumberModel;
-
-/**
- * Tests {@link FreemarkerAutotagRuntime}.
- *
- * @version $Rev$ $Date$
- */
-public class FreemarkerAutotagRuntimeTest {
-
-    @Test
-    public void testCreateRequest() throws IOException, TemplateModelException{
-        @SuppressWarnings("unchecked")
-        Map<String, TemplateModel> params = createMock(Map.class);
-        Template template = createMock(Template.class);
-        TemplateHashModel rootDataModel = createMock(TemplateHashModel.class);
-        Writer out = createMock(Writer.class);
-        TemplateDirectiveBody body = createMock(TemplateDirectiveBody.class);
-        GenericServlet servlet = createMock(GenericServlet.class);
-        ObjectWrapper wrapper = createMock(ObjectWrapper.class);
-        ServletContext servletContext = createMock(ServletContext.class);
-        ApplicationContext applicationContext = createMock(ApplicationContext.class);
-        HttpServletRequest httpServletRequest = createMock(HttpServletRequest.class);
-        HttpServletResponse httpServletResponse = createMock(HttpServletResponse.class);
-
-        expect(template.getMacros()).andReturn(new HashMap<String, Macro>());
-        expect(servlet.getServletContext()).andReturn(servletContext)
-                .anyTimes();
-        expect(
-                servletContext
-                        .getAttribute(ApplicationAccess.APPLICATION_CONTEXT_ATTRIBUTE))
-                .andReturn(applicationContext);
-
-        replay(servlet, wrapper, servletContext, applicationContext,
-                httpServletRequest, httpServletResponse);
-        ServletContextHashModel servletContextHashModel = new ServletContextHashModel(
-                servlet, wrapper);
-        HttpRequestHashModel httpRequestHashModel = new HttpRequestHashModel(
-                httpServletRequest, httpServletResponse, wrapper);
-
-        expect(rootDataModel.get(FreemarkerServlet.KEY_APPLICATION)).andReturn(
-                servletContextHashModel);
-        expect(rootDataModel.get(FreemarkerServlet.KEY_REQUEST)).andReturn(
-                httpRequestHashModel);
-
-        replay(template, rootDataModel, out);
-        Environment env = new Environment(template, rootDataModel, out);
-
-        replay(params, body);
-        FreemarkerAutotagRuntime runtime = new FreemarkerAutotagRuntime();
-
-        runtime.execute(env, params, new TemplateModel[0], body);
-        Request request = runtime.createRequest();
-        assertTrue(request instanceof FreemarkerRequest);
-        verify(servlet, wrapper, servletContext, applicationContext,
-                httpServletRequest, httpServletResponse,
-                template, rootDataModel, out,
-                params, body);
-    }
-
-    @Test
-    public void testCreateModelBody() {
-        Template template = createMock(Template.class);
-        TemplateHashModel rootDataModel = createMock(TemplateHashModel.class);
-        Writer out = createMock(Writer.class);
-        expect(template.getMacros()).andReturn(new HashMap<String, Macro>());
-        replay(template, rootDataModel, out);
-        Environment env = new Environment(template, rootDataModel, out);
-        @SuppressWarnings("unchecked")
-        Map<String, TemplateModel> params = createMock(Map.class);
-        TemplateDirectiveBody body = createMock(TemplateDirectiveBody.class);
-        replay(params, body);
-        FreemarkerAutotagRuntime runtime = new FreemarkerAutotagRuntime();
-        runtime.execute(env, params, new TemplateModel[0], body);
-        ModelBody modelBody = runtime.createModelBody();
-        assertTrue(modelBody instanceof FreemarkerModelBody);
-        verify(template, rootDataModel, out, params, body);
-    }
-
-    @Test
-    public void testGetParameter() throws TemplateModelException {
-        Template template = createMock(Template.class);
-        TemplateHashModel rootDataModel = createMock(TemplateHashModel.class);
-        Writer out = createMock(Writer.class);
-        expect(template.getMacros()).andReturn(new HashMap<String, Macro>());
-        replay(template, rootDataModel, out);
-        Environment env = new Environment(template, rootDataModel, out);
-        TemplateNumberModel model = createMock(TemplateNumberModel.class);
-        expect(model.getAsNumber()).andReturn(new Integer(42)).anyTimes();
-        @SuppressWarnings("unchecked")
-        Map<String, TemplateModel> params = createMock(Map.class);
-        TemplateDirectiveBody body = createMock(TemplateDirectiveBody.class);
-        expect(params.get(eq("notnullParam"))).andReturn(model).anyTimes();
-        expect(params.get(eq("nullParam"))).andReturn(null).anyTimes();
-        replay(model, params, body);
-        FreemarkerAutotagRuntime runtime = new FreemarkerAutotagRuntime();
-        runtime.execute(env, params, new TemplateModel[0], body);
-        Object notnullParam = runtime.getParameter("notnullParam", null);
-        Object nullParam = runtime.getParameter("nullParam", null);
-        Object notnullParamDefault = runtime.getParameter("notnullParam", new Integer(24));
-        Object nullParamDefault = runtime.getParameter("nullParam", new Integer(24));
-        assertEquals(42, notnullParam);
-        assertEquals(null, nullParam);
-        assertEquals(42, notnullParamDefault);
-        assertEquals(24, nullParamDefault);
-        verify(template, rootDataModel, out, model, params, body);
-    }
-}
diff --git a/tiles-request/tiles-request-freemarker/src/test/java/org/apache/tiles/request/freemarker/autotag/FreemarkerModelBodyTest.java b/tiles-request/tiles-request-freemarker/src/test/java/org/apache/tiles/request/freemarker/autotag/FreemarkerModelBodyTest.java
deleted file mode 100644
index 30233d5..0000000
--- a/tiles-request/tiles-request-freemarker/src/test/java/org/apache/tiles/request/freemarker/autotag/FreemarkerModelBodyTest.java
+++ /dev/null
@@ -1,95 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.request.freemarker.autotag;
-
-import static org.easymock.EasyMock.*;
-
-import java.io.IOException;
-import java.io.Writer;
-
-import org.apache.tiles.request.freemarker.autotag.FreemarkerModelBody;
-import org.junit.Test;
-
-import freemarker.template.TemplateDirectiveBody;
-import freemarker.template.TemplateException;
-
-/**
- * Tests {@link FreemarkerModelBody}.
- *
- * @version $Rev$ $Date$
- */
-public class FreemarkerModelBodyTest {
-
-    /**
-     * Test method for {@link org.apache.tiles.request.freemarker.autotag.FreemarkerModelBody#evaluate(java.io.Writer)}.
-     * @throws IOException If something goes wrong.
-     * @throws TemplateException If something goes wrong.
-     */
-    @Test
-    public void testEvaluateWriter() throws TemplateException, IOException {
-        TemplateDirectiveBody body = createMock(TemplateDirectiveBody.class);
-        Writer writer = createMock(Writer.class);
-
-        body.render(writer);
-
-        replay(body, writer);
-        FreemarkerModelBody modelBody = new FreemarkerModelBody(null, body);
-        modelBody.evaluate(writer);
-        verify(body, writer);
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.request.freemarker.autotag.FreemarkerModelBody#evaluate(java.io.Writer)}.
-     * @throws IOException If something goes wrong.
-     * @throws TemplateException If something goes wrong.
-     */
-    @Test
-    public void testEvaluateWriterNull() throws TemplateException, IOException {
-        Writer writer = createMock(Writer.class);
-
-        replay(writer);
-        FreemarkerModelBody modelBody = new FreemarkerModelBody(null, null);
-        modelBody.evaluate(writer);
-        verify(writer);
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.request.freemarker.autotag.FreemarkerModelBody#evaluate(java.io.Writer)}.
-     * @throws IOException If something goes wrong.
-     * @throws TemplateException If something goes wrong.
-     */
-    @Test(expected = IOException.class)
-    public void testEvaluateWriterException() throws TemplateException, IOException {
-        TemplateDirectiveBody body = createMock(TemplateDirectiveBody.class);
-        Writer writer = createMock(Writer.class);
-
-        body.render(writer);
-        expectLastCall().andThrow(new TemplateException(null));
-
-        replay(body, writer);
-        try {
-            FreemarkerModelBody modelBody = new FreemarkerModelBody(null, body);
-            modelBody.evaluate(writer);
-        } finally {
-            verify(body, writer);
-        }
-    }
-}
diff --git a/tiles-request/tiles-request-freemarker/src/test/java/org/apache/tiles/request/freemarker/autotag/FreemarkerUtilTest.java b/tiles-request/tiles-request-freemarker/src/test/java/org/apache/tiles/request/freemarker/autotag/FreemarkerUtilTest.java
deleted file mode 100644
index 1841b23..0000000
--- a/tiles-request/tiles-request-freemarker/src/test/java/org/apache/tiles/request/freemarker/autotag/FreemarkerUtilTest.java
+++ /dev/null
@@ -1,113 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.request.freemarker.autotag;
-
-import static org.easymock.EasyMock.*;
-import static org.junit.Assert.*;
-
-import java.io.Writer;
-import java.util.HashMap;
-
-import org.apache.tiles.request.freemarker.autotag.FreemarkerAutotagException;
-import org.apache.tiles.request.freemarker.autotag.FreemarkerUtil;
-import org.junit.Test;
-
-import freemarker.core.Environment;
-import freemarker.core.Macro;
-import freemarker.template.Template;
-import freemarker.template.TemplateHashModel;
-import freemarker.template.TemplateModelException;
-import freemarker.template.TemplateNumberModel;
-
-/**
- * Tests {@link FreemarkerUtil}.
- *
- * @version $Rev$ $Date$
- */
-public class FreemarkerUtilTest {
-
-    /**
-     * Test method for {@link FreemarkerUtil#getAsObject(TemplateModel, Object)}.
-     * @throws TemplateModelException If something goes wrong.
-     */
-    @Test
-    public void testGetAsObject() throws TemplateModelException {
-        TemplateNumberModel model = createMock(TemplateNumberModel.class);
-        Template template = createMock(Template.class);
-        TemplateHashModel rootDataModel = createMock(TemplateHashModel.class);
-        Writer out = createMock(Writer.class);
-
-        expect(model.getAsNumber()).andReturn(new Integer(42));
-        expect(template.getMacros()).andReturn(new HashMap<String, Macro>());
-
-        replay(template, rootDataModel, out);
-        new Environment(template, rootDataModel, out);
-
-        replay(model);
-        assertEquals(new Integer(42), FreemarkerUtil.getAsObject(model, new Integer(1)));
-        verify(template, rootDataModel, out, model);
-    }
-
-    /**
-     * Test method for {@link FreemarkerUtil#getAsObject(TemplateModel, Object)}.
-     * @throws TemplateModelException If something goes wrong.
-     */
-    @Test
-    public void testGetAsObjectDefault() throws TemplateModelException {
-        Template template = createMock(Template.class);
-        TemplateHashModel rootDataModel = createMock(TemplateHashModel.class);
-        Writer out = createMock(Writer.class);
-
-        expect(template.getMacros()).andReturn(new HashMap<String, Macro>());
-
-        replay(template, rootDataModel, out);
-        new Environment(template, rootDataModel, out);
-
-        assertEquals(new Integer(1), FreemarkerUtil.getAsObject(null, new Integer(1)));
-        verify(template, rootDataModel, out);
-    }
-
-    /**
-     * Test method for {@link FreemarkerUtil#getAsObject(TemplateModel, Object)}.
-     * @throws TemplateModelException If something goes wrong.
-     */
-    @Test(expected = FreemarkerAutotagException.class)
-    public void testGetAsObjectException() throws TemplateModelException {
-        TemplateNumberModel model = createMock(TemplateNumberModel.class);
-        Template template = createMock(Template.class);
-        TemplateHashModel rootDataModel = createMock(TemplateHashModel.class);
-        Writer out = createMock(Writer.class);
-
-        expect(model.getAsNumber()).andThrow(new TemplateModelException());
-        expect(template.getMacros()).andReturn(new HashMap<String, Macro>());
-
-        replay(template, rootDataModel, out);
-        new Environment(template, rootDataModel, out);
-
-        replay(model);
-        try {
-            assertEquals(new Integer(42), FreemarkerUtil.getAsObject(model, new Integer(1)));
-        } finally {
-            verify(template, rootDataModel, out, model);
-        }
-    }
-
-}
diff --git a/tiles-request/tiles-request-freemarker/src/test/java/org/apache/tiles/request/freemarker/extractor/EnvironmentScopeExtractorTest.java b/tiles-request/tiles-request-freemarker/src/test/java/org/apache/tiles/request/freemarker/extractor/EnvironmentScopeExtractorTest.java
deleted file mode 100644
index 6a85415..0000000
--- a/tiles-request/tiles-request-freemarker/src/test/java/org/apache/tiles/request/freemarker/extractor/EnvironmentScopeExtractorTest.java
+++ /dev/null
@@ -1,265 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.request.freemarker.extractor;
-
-import static org.easymock.EasyMock.*;
-import static org.easymock.classextension.EasyMock.*;
-import static org.junit.Assert.*;
-
-import java.io.StringWriter;
-import java.io.Writer;
-import java.util.Enumeration;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.Set;
-
-import org.apache.tiles.request.freemarker.FreemarkerRequestException;
-import org.junit.Test;
-
-import freemarker.core.Environment;
-import freemarker.template.Configuration;
-import freemarker.template.ObjectWrapper;
-import freemarker.template.Template;
-import freemarker.template.TemplateHashModel;
-import freemarker.template.TemplateHashModelEx;
-import freemarker.template.TemplateModel;
-import freemarker.template.TemplateModelException;
-import freemarker.template.TemplateScalarModel;
-
-/**
- * Tests {@link EnvironmentScopeExtractor}.
- *
- * @version $Rev$ $Date$
- */
-public class EnvironmentScopeExtractorTest {
-
-    /**
-     * Test method for {@link EnvironmentScopeExtractor#removeValue(java.lang.String)}.
-     * @throws TemplateModelException If something goes wrong.
-     */
-    @Test
-    public void testRemoveValue() throws TemplateModelException {
-        Template template = createMock(Template.class);
-        TemplateHashModel model = createMock(TemplateHashModel.class);
-        TemplateModel valueModel = createMock(TemplateModel.class);
-        Configuration configuration = createMock(Configuration.class);
-        Writer writer = new StringWriter();
-
-        expect(template.getMacros()).andReturn(new HashMap<Object, Object>());
-        expect(model.get("key")).andReturn(null);
-        expect(template.getConfiguration()).andReturn(configuration);
-        expect(configuration.getSharedVariable("key")).andReturn(null);
-
-        replay(template, model, valueModel, configuration);
-        Environment env = new Environment(template, model, writer);
-        env.setVariable("key", valueModel);
-        EnvironmentScopeExtractor extractor = new EnvironmentScopeExtractor(env);
-        extractor.removeValue("key");
-        assertNull(env.getVariable("key"));
-        verify(template, model, valueModel, configuration);
-    }
-
-    /**
-     * Test method for {@link EnvironmentScopeExtractor#getKeys()}.
-     */
-    @Test
-    public void testGetKeys() {
-        Template template = createMock(Template.class);
-        TemplateHashModel model = createMock(TemplateHashModel.class);
-        TemplateModel valueModel = createMock(TemplateModel.class);
-        Configuration configuration = createMock(Configuration.class);
-        Set<String> names = new HashSet<String>();
-        names.add("testGetKeys");
-        
-        Writer writer = new StringWriter();
-
-        expect(template.getMacros()).andReturn(new HashMap<Object, Object>());
-        expect(template.getConfiguration()).andReturn(configuration);
-        expect(configuration.getSharedVariableNames()).andReturn(names);
-
-        replay(template, model, valueModel, configuration);
-        Environment env = new Environment(template, model, writer);
-        EnvironmentScopeExtractor extractor = new EnvironmentScopeExtractor(env);
-        Enumeration<String> keys = extractor.getKeys();
-        assertEquals("testGetKeys", keys.nextElement());
-        assertFalse(keys.hasMoreElements());
-        verify(template, model, valueModel, configuration);
-    }
-
-    /**
-     * Test method for {@link EnvironmentScopeExtractor#getKeys()}.
-     * @throws TemplateModelException If something goes wrong.
-     */
-    @SuppressWarnings("unchecked")
-    @Test(expected = FreemarkerRequestException.class)
-    public void testGetKeysException() throws TemplateModelException {
-        Template template = createMock(Template.class);
-        TemplateHashModelEx model = createMock(TemplateHashModelEx.class);
-        TemplateModel valueModel = createMock(TemplateModel.class);
-        Configuration configuration = createMock(Configuration.class);
-        Set<String> names = createMock(Set.class);
-        Iterator<String> namesIt = createMock(Iterator.class);
-        Writer writer = new StringWriter();
-
-        expect(template.getMacros()).andReturn(new HashMap<Object, Object>());
-        expect(model.keys()).andThrow(new TemplateModelException());
-        expect(template.getConfiguration()).andReturn(configuration);
-        expect(configuration.getSharedVariableNames()).andReturn(names);
-
-        replay(template, model, valueModel, configuration, names, namesIt);
-        try {
-            Environment env = new Environment(template, model, writer);
-            EnvironmentScopeExtractor extractor = new EnvironmentScopeExtractor(env);
-            extractor.getKeys();
-        } finally {
-            verify(template, model, valueModel, configuration, names, namesIt);
-        }
-    }
-
-    /**
-     * Test method for {@link EnvironmentScopeExtractor#getValue(java.lang.String)}.
-     * @throws TemplateModelException If something goes wrong.
-     */
-    @Test
-    public void testGetValue() throws TemplateModelException {
-        Template template = createMock(Template.class);
-        TemplateHashModel model = createMock(TemplateHashModel.class);
-        TemplateScalarModel valueModel = createMock(TemplateScalarModel.class);
-        Configuration configuration = createMock(Configuration.class);
-        ObjectWrapper objectWrapper = createMock(ObjectWrapper.class);
-        Writer writer = new StringWriter();
-
-        expect(template.getMacros()).andReturn(new HashMap<Object, Object>());
-        expect(valueModel.getAsString()).andReturn("value");
-
-        replay(template, model, valueModel, configuration, objectWrapper);
-        Environment env = new Environment(template, model, writer);
-        env.setVariable("key", valueModel);
-        EnvironmentScopeExtractor extractor = new EnvironmentScopeExtractor(env);
-        assertEquals("value", extractor.getValue("key"));
-        verify(template, model, valueModel, configuration, objectWrapper);
-    }
-
-    /**
-     * Test method for {@link EnvironmentScopeExtractor#getValue(java.lang.String)}.
-     * @throws TemplateModelException If something goes wrong.
-     */
-    @Test
-    public void testGetValueNull() throws TemplateModelException {
-        Template template = createMock(Template.class);
-        TemplateHashModel model = createMock(TemplateHashModel.class);
-        TemplateScalarModel valueModel = createMock(TemplateScalarModel.class);
-        Configuration configuration = createMock(Configuration.class);
-        ObjectWrapper objectWrapper = createMock(ObjectWrapper.class);
-        Writer writer = new StringWriter();
-
-        expect(template.getMacros()).andReturn(new HashMap<Object, Object>());
-        expect(model.get("key")).andReturn(null);
-        expect(template.getConfiguration()).andReturn(configuration);
-        expect(configuration.getSharedVariable("key")).andReturn(null);
-
-        replay(template, model, valueModel, configuration, objectWrapper);
-        Environment env = new Environment(template, model, writer);
-        EnvironmentScopeExtractor extractor = new EnvironmentScopeExtractor(env);
-        assertNull(extractor.getValue("key"));
-        verify(template, model, valueModel, configuration, objectWrapper);
-    }
-
-    /**
-     * Test method for {@link EnvironmentScopeExtractor#getValue(java.lang.String)}.
-     * @throws TemplateModelException If something goes wrong.
-     */
-    @Test(expected = FreemarkerRequestException.class)
-    public void testGetValueException() throws TemplateModelException {
-        Template template = createMock(Template.class);
-        TemplateHashModel model = createMock(TemplateHashModel.class);
-        TemplateScalarModel valueModel = createMock(TemplateScalarModel.class);
-        Configuration configuration = createMock(Configuration.class);
-        ObjectWrapper objectWrapper = createMock(ObjectWrapper.class);
-        Writer writer = new StringWriter();
-
-        expect(template.getMacros()).andReturn(new HashMap<Object, Object>());
-        expect(model.get("key")).andThrow(new TemplateModelException());
-
-        replay(template, model, valueModel, configuration, objectWrapper);
-        try {
-            Environment env = new Environment(template, model, writer);
-            EnvironmentScopeExtractor extractor = new EnvironmentScopeExtractor(env);
-            extractor.getValue("key");
-        } finally {
-            verify(template, model, valueModel, configuration, objectWrapper);
-        }
-    }
-
-    /**
-     * Test method for {@link EnvironmentScopeExtractor#setValue(java.lang.String, java.lang.Object)}.
-     * @throws TemplateModelException If something goes wrong.
-     */
-    @Test
-    public void testSetValue() throws TemplateModelException {
-        Template template = createMock(Template.class);
-        TemplateHashModel model = createMock(TemplateHashModel.class);
-        TemplateModel valueModel = createMock(TemplateModel.class);
-        Configuration configuration = createMock(Configuration.class);
-        ObjectWrapper objectWrapper = createMock(ObjectWrapper.class);
-        Writer writer = new StringWriter();
-
-        expect(template.getMacros()).andReturn(new HashMap<Object, Object>());
-        expect(template.getObjectWrapper()).andReturn(objectWrapper);
-        expect(objectWrapper.wrap("value")).andReturn(valueModel);
-
-        replay(template, model, valueModel, configuration, objectWrapper);
-        Environment env = new Environment(template, model, writer);
-        EnvironmentScopeExtractor extractor = new EnvironmentScopeExtractor(env);
-        extractor.setValue("key", "value");
-        assertEquals(valueModel, env.getVariable("key"));
-        verify(template, model, valueModel, configuration, objectWrapper);
-    }
-
-    /**
-     * Test method for {@link EnvironmentScopeExtractor#setValue(java.lang.String, java.lang.Object)}.
-     * @throws TemplateModelException If something goes wrong.
-     */
-    @Test(expected = FreemarkerRequestException.class)
-    public void testSetValueException() throws TemplateModelException {
-        Template template = createMock(Template.class);
-        TemplateHashModel model = createMock(TemplateHashModel.class);
-        TemplateModel valueModel = createMock(TemplateModel.class);
-        Configuration configuration = createMock(Configuration.class);
-        ObjectWrapper objectWrapper = createMock(ObjectWrapper.class);
-        Writer writer = new StringWriter();
-
-        expect(template.getMacros()).andReturn(new HashMap<Object, Object>());
-        expect(template.getObjectWrapper()).andReturn(objectWrapper);
-        expect(objectWrapper.wrap("value")).andThrow(new TemplateModelException());
-
-        replay(template, model, valueModel, configuration, objectWrapper);
-        try {
-            Environment env = new Environment(template, model, writer);
-            EnvironmentScopeExtractor extractor = new EnvironmentScopeExtractor(env);
-            extractor.setValue("key", "value");
-            assertEquals(valueModel, env.getVariable("key"));
-        } finally {
-            verify(template, model, valueModel, configuration, objectWrapper);
-        }
-    }
-}
diff --git a/tiles-request/tiles-request-freemarker/src/test/java/org/apache/tiles/request/freemarker/render/FreemarkerRendererTest.java b/tiles-request/tiles-request-freemarker/src/test/java/org/apache/tiles/request/freemarker/render/FreemarkerRendererTest.java
deleted file mode 100644
index 9b4ee63..0000000
--- a/tiles-request/tiles-request-freemarker/src/test/java/org/apache/tiles/request/freemarker/render/FreemarkerRendererTest.java
+++ /dev/null
@@ -1,238 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.request.freemarker.render;
-
-import static org.easymock.EasyMock.*;
-import static org.easymock.classextension.EasyMock.*;
-import static org.junit.Assert.*;
-
-import java.io.IOException;
-import java.io.PrintWriter;
-import java.io.StringWriter;
-import java.net.URL;
-
-import javax.servlet.GenericServlet;
-import javax.servlet.ServletConfig;
-import javax.servlet.ServletContext;
-import javax.servlet.ServletException;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-
-import org.apache.tiles.request.ApplicationContext;
-import org.apache.tiles.request.render.CannotRenderException;
-import org.apache.tiles.request.servlet.ServletApplicationContext;
-import org.apache.tiles.request.servlet.ServletRequest;
-import org.junit.Before;
-import org.junit.Test;
-
-import freemarker.ext.servlet.HttpRequestHashModel;
-import freemarker.ext.servlet.HttpRequestParametersHashModel;
-import freemarker.ext.servlet.ServletContextHashModel;
-import freemarker.template.ObjectWrapper;
-
-/**
- * Tests {@link FreemarkerRenderer}.
- *
- * @version $Rev$ $Date$
- */
-public class FreemarkerRendererTest {
-
-    /**
-     * The attribute name of the application model.
-     */
-    private static final String ATTR_APPLICATION_MODEL =
-        ".freemarker.Application";
-
-    /**
-     * The attribute name of the JSP taglibs model.
-     */
-    private static final String ATTR_JSP_TAGLIBS_MODEL =
-        ".freemarker.JspTaglibs";
-
-    /**
-     * The attribute name of the request model.
-     */
-    private static final String ATTR_REQUEST_MODEL = ".freemarker.Request";
-
-    /**
-     * The attribute name of the request parameters model.
-     */
-    private static final String ATTR_REQUEST_PARAMETERS_MODEL =
-        ".freemarker.RequestParameters";
-
-    /**
-     * The renderer to test.
-     */
-    private FreemarkerRenderer renderer;
-
-    /**
-     * The application context.
-     */
-    private ApplicationContext applicationContext;
-
-    /**
-     * The servlet context.
-     */
-    private ServletContext servletContext;
-
-    /**
-     * Sets up the test.
-     */
-    @Before
-    public void setUp() {
-        applicationContext = createMock(ServletApplicationContext.class);
-        servletContext = createMock(ServletContext.class);
-
-        expect(applicationContext.getContext()).andReturn(servletContext);
-
-        replay(applicationContext, servletContext);
-        renderer = FreemarkerRendererBuilder.createInstance()
-                .setApplicationContext(applicationContext)
-                .setParameter("TemplatePath", "/")
-                .setParameter("NoCache", "true")
-                .setParameter("ContentType", "text/html")
-                .setParameter("template_update_delay", "0")
-                .setParameter("default_encoding", "ISO-8859-1")
-                .setParameter("number_format", "0.##########").build();
-    }
-
-    /**
-     * Tests {@link FreemarkerRenderer#render(String, org.apache.tiles.request.Request)}.
-     * @throws IOException If something goes wrong.
-     * @throws ServletException If something goes wrong.
-     */
-    @Test
-    public void testWrite() throws IOException, ServletException {
-        ApplicationContext applicationContext = createMock(ServletApplicationContext.class);
-        ServletContext servletContext = createMock(ServletContext.class);
-        GenericServlet servlet = createMockBuilder(GenericServlet.class).createMock();
-        ServletConfig servletConfig = createMock(ServletConfig.class);
-        ObjectWrapper objectWrapper = createMock(ObjectWrapper.class);
-
-        expect(servletConfig.getServletContext()).andReturn(servletContext);
-
-        replay(servlet, servletConfig);
-        servlet.init(servletConfig);
-        ServletContextHashModel servletContextHashModel = new ServletContextHashModel(servlet, objectWrapper);
-
-        expect(applicationContext.getContext()).andReturn(servletContext).anyTimes();
-        expect(servletContext.getRealPath(isA(String.class))).andReturn(null).anyTimes();
-        URL resource = getClass().getResource("/test.ftl");
-        expect(servletContext.getResource(isA(String.class))).andReturn(resource).anyTimes();
-        expect(servletContext.getAttribute(ATTR_APPLICATION_MODEL)).andReturn(servletContextHashModel);
-        expect(servletContext.getAttribute(ATTR_JSP_TAGLIBS_MODEL)).andReturn(null);
-
-        replay(applicationContext, servletContext, objectWrapper);
-
-        FreemarkerRenderer renderer = FreemarkerRendererBuilder
-                .createInstance().setApplicationContext(applicationContext)
-                .setParameter("TemplatePath", "/")
-                .setParameter("NoCache", "true")
-                .setParameter("ContentType", "text/html")
-                .setParameter("template_update_delay", "0")
-                .setParameter("default_encoding", "ISO-8859-1")
-                .setParameter("number_format", "0.##########").build();
-
-        ServletRequest request = createMock(ServletRequest.class);
-        HttpServletRequest httpRequest = createMock(HttpServletRequest.class);
-        HttpServletResponse response = createMock(HttpServletResponse.class);
-        StringWriter stringWriter = new StringWriter();
-        PrintWriter printWriter = new PrintWriter(stringWriter);
-        HttpRequestHashModel requestModel = new HttpRequestHashModel(httpRequest, response, objectWrapper);
-        HttpRequestParametersHashModel parametersModel = new HttpRequestParametersHashModel(httpRequest);
-
-        expect(request.getRequest()).andReturn(httpRequest);
-        expect(request.getResponse()).andReturn(response);
-        expect(request.getPrintWriter()).andReturn(printWriter);
-        expect(httpRequest.getSession(false)).andReturn(null);
-        expect(httpRequest.getAttribute(ATTR_REQUEST_MODEL)).andReturn(requestModel);
-        expect(httpRequest.getAttribute(ATTR_REQUEST_PARAMETERS_MODEL)).andReturn(parametersModel);
-        response.setContentType("text/html; charset=ISO-8859-1");
-        response.setHeader(eq("Cache-Control"), isA(String.class));
-        response.setHeader("Pragma", "no-cache");
-        response.setHeader(eq("Expires"), isA(String.class));
-
-        replay(request, httpRequest, response);
-        renderer.render("hello", request);
-        stringWriter.close();
-        assertTrue(stringWriter.toString().startsWith("Hello!"));
-        verify(applicationContext, servletContext, request, httpRequest,
-                response, servlet, servletConfig, objectWrapper);
-    }
-
-    /**
-     * Tests {@link FreemarkerRenderer#render(String, org.apache.tiles.request.Request)}.
-     * @throws IOException If something goes wrong.
-     * @throws ServletException If something goes wrong.
-     */
-    @Test(expected = CannotRenderException.class)
-    public void testRenderException1() throws IOException, ServletException {
-        ApplicationContext applicationContext = createMock(ServletApplicationContext.class);
-        ServletContext servletContext = createMock(ServletContext.class);
-        GenericServlet servlet = createMockBuilder(GenericServlet.class).createMock();
-        ServletConfig servletConfig = createMock(ServletConfig.class);
-        ObjectWrapper objectWrapper = createMock(ObjectWrapper.class);
-
-        replay(servlet, servletConfig);
-        servlet.init(servletConfig);
-
-        expect(applicationContext.getContext()).andReturn(servletContext).anyTimes();
-        expect(servletContext.getRealPath(isA(String.class))).andReturn(null).anyTimes();
-        URL resource = getClass().getResource("/test.ftl");
-        expect(servletContext.getResource(isA(String.class))).andReturn(resource).anyTimes();
-
-        replay(applicationContext, servletContext, objectWrapper);
-
-        FreemarkerRenderer renderer = FreemarkerRendererBuilder
-                .createInstance().setApplicationContext(applicationContext)
-                .setParameter("TemplatePath", "/")
-                .setParameter("NoCache", "true")
-                .setParameter("ContentType", "text/html")
-                .setParameter("template_update_delay", "0")
-                .setParameter("default_encoding", "ISO-8859-1")
-                .setParameter("number_format", "0.##########").build();
-
-        ServletRequest request = createMock(ServletRequest.class);
-
-        replay(request);
-        try {
-            renderer.render(null, request);
-        } finally {
-            verify(applicationContext, servletContext, request, servlet,
-                    servletConfig, objectWrapper);
-        }
-    }
-
-    /**
-     * Test method for
-     * {@link FreemarkerRenderer
-     * #isRenderable(Object, org.apache.tiles.Attribute, org.apache.tiles.context.TilesRequestContext)}
-     * .
-     */
-    @Test
-    public void testIsRenderable() {
-        assertTrue(renderer.isRenderable("/my/template.ftl", null));
-        assertFalse(renderer.isRenderable("my/template.ftl", null));
-        assertFalse(renderer.isRenderable("/my/template.jsp", null));
-        verify(applicationContext, servletContext);
-    }
-
-}
diff --git a/tiles-request/tiles-request-freemarker/src/test/resources/test.ftl b/tiles-request/tiles-request-freemarker/src/test/resources/test.ftl
deleted file mode 100644
index 3397cec..0000000
--- a/tiles-request/tiles-request-freemarker/src/test/resources/test.ftl
+++ /dev/null
@@ -1,25 +0,0 @@
-<#--
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
- */
--->
-Hello!
-
diff --git a/tiles-request/tiles-request-jsp/pom.xml b/tiles-request/tiles-request-jsp/pom.xml
deleted file mode 100644
index a726060..0000000
--- a/tiles-request/tiles-request-jsp/pom.xml
+++ /dev/null
@@ -1,85 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<!--
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements.  See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership.  The ASF licenses this file
-to you under the Apache License, Version 2.0 (the
-"License"); you may not use this file except in compliance
-with the License.  You may obtain a copy of the License at
-
-  http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing,
-software distributed under the License is distributed on an
-"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-KIND, either express or implied.  See the License for the
-specific language governing permissions and limitations
-under the License.
--->
-
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
-	<modelVersion>4.0.0</modelVersion>
-	<parent>
-		<artifactId>tiles-request</artifactId>
-		<groupId>org.apache.tiles</groupId>
-		<version>1.0-SNAPSHOT</version>
-	</parent>
-	<groupId>org.apache.tiles</groupId>
-	<artifactId>tiles-request-jsp</artifactId>
-	<version>1.0-SNAPSHOT</version>
-	<name>Tiles Request - JSP support</name>
-	<description>JSP implementation of the Tiles Request framework.</description>
-	<dependencies>
-		<dependency>
-			<groupId>org.apache.tiles</groupId>
-			<artifactId>tiles-request-api</artifactId>
-		</dependency>
-		<dependency>
-			<groupId>org.apache.tiles</groupId>
-			<artifactId>tiles-request-servlet</artifactId>
-		</dependency>
-		<dependency>
-			<groupId>org.slf4j</groupId>
-			<artifactId>slf4j-jdk14</artifactId>
-			<optional>true</optional>
-		</dependency>
-		<dependency>
-			<groupId>javax.servlet</groupId>
-			<artifactId>servlet-api</artifactId>
-			<scope>provided</scope>
-		</dependency>
-		<dependency>
-			<groupId>javax.servlet.jsp</groupId>
-			<artifactId>jsp-api</artifactId>
-			<scope>provided</scope>
-		</dependency>
-		<dependency>
-			<groupId>junit</groupId>
-			<artifactId>junit</artifactId>
-			<scope>test</scope>
-		</dependency>
-		<dependency>
-			<groupId>org.easymock</groupId>
-			<artifactId>easymock</artifactId>
-			<scope>test</scope>
-		</dependency>
-		<dependency>
-			<groupId>org.easymock</groupId>
-			<artifactId>easymockclassextension</artifactId>
-			<scope>test</scope>
-		</dependency>
-		<dependency>
-			<groupId>org.apache.shale</groupId>
-			<artifactId>shale-test</artifactId>
-			<scope>test</scope>
-		</dependency>
-		<dependency>
-			<groupId>org.apache.tiles</groupId>
-			<artifactId>tiles-autotag-core-runtime</artifactId>
-			<optional>true</optional>
-		</dependency>
-	</dependencies>
-</project>
diff --git a/tiles-request/tiles-request-jsp/src/main/java/org/apache/tiles/request/jsp/JspPrintWriterAdapter.java b/tiles-request/tiles-request-jsp/src/main/java/org/apache/tiles/request/jsp/JspPrintWriterAdapter.java
deleted file mode 100644
index 9f9ec4f..0000000
--- a/tiles-request/tiles-request-jsp/src/main/java/org/apache/tiles/request/jsp/JspPrintWriterAdapter.java
+++ /dev/null
@@ -1,388 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.request.jsp;
-
-import java.io.IOException;
-import java.io.PrintWriter;
-
-import javax.servlet.jsp.JspWriter;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-/**
- * Adapts a {@link JspWriter} to a {@link PrintWriter}, swallowing {@link IOException}.
- *
- * @version $Rev$ $Date$
- */
-public class JspPrintWriterAdapter extends PrintWriter {
-
-    /**
-     * The JSP writer.
-     */
-    private JspWriter writer;
-
-    /**
-     * The logging object.
-     */
-    private final Logger log = LoggerFactory.getLogger(this.getClass());
-
-    /**
-     * Constructor.
-     *
-     * @param writer The JSP writer.
-     */
-    public JspPrintWriterAdapter(JspWriter writer) {
-        super(writer);
-        this.writer = writer;
-    }
-
-    /**
-     * Returns the original JSP writer.
-     *
-     * @return The JSP writer.
-     */
-    public JspWriter getJspWriter() {
-        return writer;
-    }
-
-    /** {@inheritDoc} */
-    @Override
-    public PrintWriter append(char c) {
-        try {
-            writer.append(c);
-        } catch (IOException e) {
-            log.error("Error when writing in JspWriter", e);
-            setError();
-        }
-        return this;
-    }
-
-    /** {@inheritDoc} */
-    @Override
-    public PrintWriter append(CharSequence csq, int start, int end) {
-        try {
-            writer.append(csq, start, end);
-        } catch (IOException e) {
-            log.error("Error when writing in JspWriter", e);
-            setError();
-        }
-        return this;
-    }
-
-    /** {@inheritDoc} */
-    @Override
-    public PrintWriter append(CharSequence csq) {
-        try {
-            writer.append(csq);
-        } catch (IOException e) {
-            log.error("Error when writing in JspWriter", e);
-            setError();
-        }
-        return this;
-    }
-
-    /** {@inheritDoc} */
-    @Override
-    public void close() {
-        try {
-            writer.close();
-        } catch (IOException e) {
-            log.error("Error when writing in JspWriter", e);
-            setError();
-        }
-    }
-
-    /** {@inheritDoc} */
-    @Override
-    public void flush() {
-        try {
-            writer.flush();
-        } catch (IOException e) {
-            log.error("Error when writing in JspWriter", e);
-            setError();
-        }
-    }
-
-    /** {@inheritDoc} */
-    @Override
-    public void print(boolean b) {
-        try {
-            writer.print(b);
-        } catch (IOException e) {
-            log.error("Error when writing in JspWriter", e);
-            setError();
-        }
-    }
-
-    /** {@inheritDoc} */
-    @Override
-    public void print(char c) {
-        try {
-            writer.print(c);
-        } catch (IOException e) {
-            log.error("Error when writing in JspWriter", e);
-            setError();
-        }
-    }
-
-    /** {@inheritDoc} */
-    @Override
-    public void print(char[] s) {
-        try {
-            writer.print(s);
-        } catch (IOException e) {
-            log.error("Error when writing in JspWriter", e);
-            setError();
-        }
-    }
-
-    /** {@inheritDoc} */
-    @Override
-    public void print(double d) {
-        try {
-            writer.print(d);
-        } catch (IOException e) {
-            log.error("Error when writing in JspWriter", e);
-            setError();
-        }
-    }
-
-    /** {@inheritDoc} */
-    @Override
-    public void print(float f) {
-        try {
-            writer.print(f);
-        } catch (IOException e) {
-            log.error("Error when writing in JspWriter", e);
-            setError();
-        }
-    }
-
-    /** {@inheritDoc} */
-    @Override
-    public void print(int i) {
-        try {
-            writer.print(i);
-        } catch (IOException e) {
-            log.error("Error when writing in JspWriter", e);
-            setError();
-        }
-    }
-
-    /** {@inheritDoc} */
-    @Override
-    public void print(long l) {
-        try {
-            writer.print(l);
-        } catch (IOException e) {
-            log.error("Error when writing in JspWriter", e);
-            setError();
-        }
-    }
-
-    /** {@inheritDoc} */
-    @Override
-    public void print(Object obj) {
-        try {
-            writer.print(obj);
-        } catch (IOException e) {
-            log.error("Error when writing in JspWriter", e);
-            setError();
-        }
-    }
-
-    /** {@inheritDoc} */
-    @Override
-    public void print(String s) {
-        try {
-            writer.print(s);
-        } catch (IOException e) {
-            log.error("Error when writing in JspWriter", e);
-            setError();
-        }
-    }
-
-    /** {@inheritDoc} */
-    @Override
-    public void println() {
-        try {
-            writer.println();
-        } catch (IOException e) {
-            log.error("Error when writing in JspWriter", e);
-            setError();
-        }
-    }
-
-    /** {@inheritDoc} */
-    @Override
-    public void println(boolean x) {
-        try {
-            writer.println(x);
-        } catch (IOException e) {
-            log.error("Error when writing in JspWriter", e);
-            setError();
-        }
-    }
-
-    /** {@inheritDoc} */
-    @Override
-    public void println(char x) {
-        try {
-            writer.println(x);
-        } catch (IOException e) {
-            log.error("Error when writing in JspWriter", e);
-            setError();
-        }
-    }
-
-    /** {@inheritDoc} */
-    @Override
-    public void println(char[] x) {
-        try {
-            writer.println(x);
-        } catch (IOException e) {
-            log.error("Error when writing in JspWriter", e);
-            setError();
-        }
-    }
-
-    /** {@inheritDoc} */
-    @Override
-    public void println(double x) {
-        try {
-            writer.println(x);
-        } catch (IOException e) {
-            log.error("Error when writing in JspWriter", e);
-            setError();
-        }
-    }
-
-    /** {@inheritDoc} */
-    @Override
-    public void println(float x) {
-        try {
-            writer.println(x);
-        } catch (IOException e) {
-            log.error("Error when writing in JspWriter", e);
-            setError();
-        }
-    }
-
-    /** {@inheritDoc} */
-    @Override
-    public void println(int x) {
-        try {
-            writer.println(x);
-        } catch (IOException e) {
-            log.error("Error when writing in JspWriter", e);
-            setError();
-        }
-    }
-
-    /** {@inheritDoc} */
-    @Override
-    public void println(long x) {
-        try {
-            writer.println(x);
-        } catch (IOException e) {
-            log.error("Error when writing in JspWriter", e);
-            setError();
-        }
-    }
-
-    /** {@inheritDoc} */
-    @Override
-    public void println(Object x) {
-        try {
-            writer.println(x);
-        } catch (IOException e) {
-            log.error("Error when writing in JspWriter", e);
-            setError();
-        }
-    }
-
-    /** {@inheritDoc} */
-    @Override
-    public void println(String x) {
-        try {
-            writer.println(x);
-        } catch (IOException e) {
-            log.error("Error when writing in JspWriter", e);
-            setError();
-        }
-    }
-
-    /** {@inheritDoc} */
-    @Override
-    public void write(char[] buf, int off, int len) {
-        try {
-            writer.write(buf, off, len);
-        } catch (IOException e) {
-            log.error("Error when writing in JspWriter", e);
-            setError();
-        }
-    }
-
-    /** {@inheritDoc} */
-    @Override
-    public void write(char[] buf) {
-        try {
-            writer.write(buf);
-        } catch (IOException e) {
-            log.error("Error when writing in JspWriter", e);
-            setError();
-        }
-    }
-
-    /** {@inheritDoc} */
-    @Override
-    public void write(int c) {
-        try {
-            writer.write(c);
-        } catch (IOException e) {
-            log.error("Error when writing in JspWriter", e);
-            setError();
-        }
-    }
-
-    /** {@inheritDoc} */
-    @Override
-    public void write(String s, int off, int len) {
-        try {
-            writer.write(s, off, len);
-        } catch (IOException e) {
-            log.error("Error when writing in JspWriter", e);
-            setError();
-        }
-    }
-
-    /** {@inheritDoc} */
-    @Override
-    public void write(String s) {
-        try {
-            writer.write(s);
-        } catch (IOException e) {
-            log.error("Error when writing in JspWriter", e);
-            setError();
-        }
-    }
-}
diff --git a/tiles-request/tiles-request-jsp/src/main/java/org/apache/tiles/request/jsp/JspRequest.java b/tiles-request/tiles-request-jsp/src/main/java/org/apache/tiles/request/jsp/JspRequest.java
deleted file mode 100644
index ab00ef3..0000000
--- a/tiles-request/tiles-request-jsp/src/main/java/org/apache/tiles/request/jsp/JspRequest.java
+++ /dev/null
@@ -1,215 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.request.jsp;
-
-import java.io.IOException;
-import java.io.PrintWriter;
-import java.io.Writer;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.List;
-import java.util.Map;
-
-import javax.servlet.ServletException;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-import javax.servlet.jsp.PageContext;
-
-import org.apache.tiles.request.AbstractViewRequest;
-import org.apache.tiles.request.ApplicationContext;
-import org.apache.tiles.request.DispatchRequest;
-import org.apache.tiles.request.collection.ScopeMap;
-import org.apache.tiles.request.jsp.extractor.ScopeExtractor;
-import org.apache.tiles.request.jsp.extractor.SessionScopeExtractor;
-import org.apache.tiles.request.servlet.ServletRequest;
-import org.apache.tiles.request.servlet.ServletUtil;
-
-/**
- * Context implementation used for executing tiles within a
- * jsp tag library.
- *
- * @version $Rev$ $Date$
- */
-public class JspRequest extends AbstractViewRequest {
-
-    /**
-     * The native available scopes.
-     */
-    private static final List<String> SCOPES
-            = Collections.unmodifiableList(Arrays.asList("page", "request", "session", "application"));
-
-    /**
-     * The current page context.
-     */
-    private PageContext pageContext;
-
-    /**
-     * <p>The lazily instantiated <code>Map</code> of page scope
-     * attributes.</p>
-     */
-    private Map<String, Object> pageScope = null;
-
-    /**
-     * <p>The lazily instantiated <code>Map</code> of request scope
-     * attributes.</p>
-     */
-    private Map<String, Object> requestScope = null;
-
-    /**
-     * <p>The lazily instantiated <code>Map</code> of session scope
-     * attributes.</p>
-     */
-    private Map<String, Object> sessionScope = null;
-
-    /**
-     * <p>The lazily instantiated <code>Map</code> of application scope
-     * attributes.</p>
-     */
-    private Map<String, Object> applicationScope = null;
-
-    /**
-     * Creates a JSP request.
-     *
-     * @param applicationContext The application context.
-     * @param pageContext The page context.
-     * @return A new JSP request.
-     */
-    public static JspRequest createServletJspRequest(ApplicationContext applicationContext, PageContext pageContext) {
-        return new JspRequest(new ServletRequest(
-                applicationContext, (HttpServletRequest) pageContext
-                        .getRequest(), (HttpServletResponse) pageContext
-                        .getResponse()), pageContext);
-    }
-
-    /**
-     * Constructor.
-     *
-     * @param enclosedRequest The request that is wrapped here.
-     * @param pageContext The page context to use.
-     */
-    public JspRequest(DispatchRequest enclosedRequest,
-            PageContext pageContext) {
-        super(enclosedRequest);
-        this.pageContext = pageContext;
-    }
-
-    @Override
-    public List<String> getAvailableScopes() {
-        return SCOPES;
-    }
-
-    /** {@inheritDoc} */
-    @Override
-    protected void doInclude(String path) throws IOException {
-        try {
-            pageContext.include(path, false);
-        } catch (ServletException e) {
-            throw ServletUtil.wrapServletException(e, "JSPException including path '"
-                    + path + "'.");
-        }
-    }
-
-    /** {@inheritDoc} */
-    @Override
-    public PrintWriter getPrintWriter() {
-        return new JspPrintWriterAdapter(pageContext.getOut());
-    }
-
-    /** {@inheritDoc} */
-    @Override
-    public Writer getWriter() {
-        return pageContext.getOut();
-    }
-
-    /**
-     * Returns the page scope.
-     *
-     * @return The page scope.
-     */
-    public Map<String, Object> getPageScope() {
-        if ((pageScope == null) && (pageContext != null)) {
-            pageScope = new ScopeMap(new ScopeExtractor(pageContext,
-                    PageContext.PAGE_SCOPE));
-        }
-        return (pageScope);
-    }
-
-    /**
-     * Returns the request scope.
-     *
-     * @return The request scope.
-     */
-    public Map<String, Object> getRequestScope() {
-        if ((requestScope == null) && (pageContext != null)) {
-            requestScope = new ScopeMap(new ScopeExtractor(pageContext,
-                    PageContext.REQUEST_SCOPE));
-        }
-        return (requestScope);
-    }
-
-    /**
-     * Returns the session scope.
-     *
-     * @return The session scope.
-     */
-    public Map<String, Object> getSessionScope() {
-        if ((sessionScope == null) && (pageContext != null)) {
-            sessionScope = new ScopeMap(new SessionScopeExtractor(pageContext));
-        }
-        return (sessionScope);
-    }
-
-    /**
-     * Returns the application scope.
-     *
-     * @return The application scope.
-     */
-    public Map<String, Object> getApplicationScope() {
-        if ((applicationScope == null) && (pageContext != null)) {
-            applicationScope = new ScopeMap(new ScopeExtractor(pageContext,
-                    PageContext.APPLICATION_SCOPE));
-        }
-        return (applicationScope);
-    }
-
-    /**
-     * Returns the page context that originated the request.
-     *
-     * @return The page context.
-     */
-    public PageContext getPageContext() {
-        return pageContext;
-    }
-
-    @Override
-    public Map<String, Object> getContext(String scope) {
-        if("page".equals(scope)){
-            return getPageScope();
-        }else if("request".equals(scope)){
-            return getRequestScope();
-        }else if("session".equals(scope)){
-            return getSessionScope();
-        }else if("application".equals(scope)){
-            return getApplicationScope();
-        }
-        throw new IllegalArgumentException(scope + " does not exist. Call getAvailableScopes() first to check.");
-    }
-}
diff --git a/tiles-request/tiles-request-jsp/src/main/java/org/apache/tiles/request/jsp/JspUtil.java b/tiles-request/tiles-request-jsp/src/main/java/org/apache/tiles/request/jsp/JspUtil.java
deleted file mode 100644
index 2083f10..0000000
--- a/tiles-request/tiles-request-jsp/src/main/java/org/apache/tiles/request/jsp/JspUtil.java
+++ /dev/null
@@ -1,55 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.request.jsp;
-
-import javax.servlet.jsp.JspContext;
-import javax.servlet.jsp.PageContext;
-
-import org.apache.tiles.request.ApplicationAccess;
-import org.apache.tiles.request.ApplicationContext;
-
-/**
- * JSP utilities for JSP requests and related.
- *
- * @version $Rev$ $Date$
- */
-public final class JspUtil {
-
-    /**
-     * Constructor.
-     */
-    private JspUtil() {
-    }
-
-    /**
-     * Returns the application context. It must be
-     * first saved creating an {@link ApplicationContext} and using
-     * {@link org.apache.tiles.request.ApplicationAccess#register(ApplicationContext)}.
-     *
-     * @param jspContext The JSP context.
-     * @return The application context.
-     */
-    public static ApplicationContext getApplicationContext(JspContext jspContext) {
-        return (ApplicationContext) jspContext.getAttribute(
-                ApplicationAccess.APPLICATION_CONTEXT_ATTRIBUTE,
-                PageContext.APPLICATION_SCOPE);
-    }
-}
diff --git a/tiles-request/tiles-request-jsp/src/main/java/org/apache/tiles/request/jsp/autotag/JspAutotagRuntime.java b/tiles-request/tiles-request-jsp/src/main/java/org/apache/tiles/request/jsp/autotag/JspAutotagRuntime.java
deleted file mode 100644
index 9b72230..0000000
--- a/tiles-request/tiles-request-jsp/src/main/java/org/apache/tiles/request/jsp/autotag/JspAutotagRuntime.java
+++ /dev/null
@@ -1,61 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.request.jsp.autotag;
-
-import javax.servlet.jsp.JspContext;
-import javax.servlet.jsp.PageContext;
-import javax.servlet.jsp.tagext.SimpleTagSupport;
-import org.apache.tiles.autotag.core.runtime.ModelBody;
-import org.apache.tiles.autotag.core.runtime.AutotagRuntime;
-import org.apache.tiles.request.Request;
-import org.apache.tiles.request.jsp.JspRequest;
-
-/**
- * A Runtime for implementing JSP tag libraries.
- */
-public class JspAutotagRuntime extends SimpleTagSupport implements AutotagRuntime {
-    /** {@inheritDoc} */
-    @Override
-    public void doTag() {
-        // do nothing like the parent implementation, 
-        // but don't throw exceptions either
-    }
-
-    /** {@inheritDoc} */
-    @Override
-    public Request createRequest() {
-        JspContext pageContext = getJspContext();
-        return JspRequest.createServletJspRequest(org.apache.tiles.request.jsp.JspUtil.getApplicationContext(pageContext),
-                                                  (PageContext) pageContext);
-    }
-
-    /** {@inheritDoc} */
-    @Override
-    public ModelBody createModelBody() {
-        return new JspModelBody(getJspBody(), getJspContext());
-    }
-
-    /** {@inheritDoc} */
-    @Override
-    public Object getParameter(String name, Object defaultValue) {
-        throw new UnsupportedOperationException("the parameters are injected into the tag itself, no need to fetch them");
-    }
-}
diff --git a/tiles-request/tiles-request-jsp/src/main/java/org/apache/tiles/request/jsp/autotag/JspModelBody.java b/tiles-request/tiles-request-jsp/src/main/java/org/apache/tiles/request/jsp/autotag/JspModelBody.java
deleted file mode 100644
index 8918786..0000000
--- a/tiles-request/tiles-request-jsp/src/main/java/org/apache/tiles/request/jsp/autotag/JspModelBody.java
+++ /dev/null
@@ -1,68 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.request.jsp.autotag;
-
-import java.io.IOException;
-import java.io.Writer;
-
-import javax.servlet.jsp.JspContext;
-import javax.servlet.jsp.JspException;
-import javax.servlet.jsp.tagext.JspFragment;
-
-import org.apache.tiles.autotag.core.runtime.AbstractModelBody;
-
-/**
- * The body abstraction in a JSP tag.
- *
- * @version $Rev$ $Date$
- */
-public class JspModelBody extends AbstractModelBody {
-
-    /**
-     * The real body.
-     */
-    private JspFragment jspFragment;
-
-    /**
-     * Constructor.
-     *
-     * @param jspFragment The real body.
-     * @param jspContext The page context.
-     */
-    public JspModelBody(JspFragment jspFragment, JspContext jspContext) {
-        super(jspContext.getOut());
-        this.jspFragment = jspFragment;
-    }
-
-    @Override
-    public void evaluate(Writer writer) throws IOException {
-        if (jspFragment == null) {
-            return;
-        }
-
-        try {
-            jspFragment.invoke(writer);
-        } catch (JspException e) {
-            throw new IOException("JspException when evaluating the body", e);
-        }
-    }
-
-}
diff --git a/tiles-request/tiles-request-jsp/src/main/java/org/apache/tiles/request/jsp/autotag/package-info.java b/tiles-request/tiles-request-jsp/src/main/java/org/apache/tiles/request/jsp/autotag/package-info.java
deleted file mode 100644
index 08adc1b..0000000
--- a/tiles-request/tiles-request-jsp/src/main/java/org/apache/tiles/request/jsp/autotag/package-info.java
+++ /dev/null
@@ -1,24 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-/**
- * Runtime part of Autotag support for JavaServer pages.
- */
-package org.apache.tiles.request.jsp.autotag;
diff --git a/tiles-request/tiles-request-jsp/src/main/java/org/apache/tiles/request/jsp/extractor/ScopeExtractor.java b/tiles-request/tiles-request-jsp/src/main/java/org/apache/tiles/request/jsp/extractor/ScopeExtractor.java
deleted file mode 100644
index 68ae799..0000000
--- a/tiles-request/tiles-request-jsp/src/main/java/org/apache/tiles/request/jsp/extractor/ScopeExtractor.java
+++ /dev/null
@@ -1,76 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.request.jsp.extractor;
-
-import java.util.Enumeration;
-
-import javax.servlet.jsp.JspContext;
-
-import org.apache.tiles.request.attribute.AttributeExtractor;
-
-/**
- * Extracts attributes from a numbered scope from {@link JspContext}.
- *
- * @version $Rev$ $Date$
- */
-public class ScopeExtractor implements AttributeExtractor {
-
-    /**
-     * The JSP context.
-     */
-    private JspContext context;
-
-    /**
-     * The scope number to use.
-     */
-    private int scope;
-
-    /**
-     * Constructor.
-     *
-     * @param context The JSP context.
-     * @param scope The scope number.
-     */
-    public ScopeExtractor(JspContext context, int scope) {
-        this.context = context;
-        this.scope = scope;
-    }
-
-    @Override
-    public void removeValue(String name) {
-        context.removeAttribute(name, scope);
-    }
-
-    @Override
-    public Enumeration<String> getKeys() {
-        return context.getAttributeNamesInScope(scope);
-    }
-
-    @Override
-    public Object getValue(String key) {
-        return context.getAttribute(key, scope);
-    }
-
-    @Override
-    public void setValue(String key, Object value) {
-        context.setAttribute(key, value, scope);
-    }
-}
diff --git a/tiles-request/tiles-request-jsp/src/main/java/org/apache/tiles/request/jsp/extractor/SessionScopeExtractor.java b/tiles-request/tiles-request-jsp/src/main/java/org/apache/tiles/request/jsp/extractor/SessionScopeExtractor.java
deleted file mode 100644
index 359a840..0000000
--- a/tiles-request/tiles-request-jsp/src/main/java/org/apache/tiles/request/jsp/extractor/SessionScopeExtractor.java
+++ /dev/null
@@ -1,81 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.request.jsp.extractor;
-
-import java.util.Enumeration;
-
-import javax.servlet.jsp.PageContext;
-
-import org.apache.tiles.request.attribute.AttributeExtractor;
-
-/**
- * Extracts attributes from session scope from {@link PageContext}.
- *
- * @version $Rev$ $Date$
- */
-public class SessionScopeExtractor implements AttributeExtractor {
-
-    /**
-     * The page context.
-     */
-    private PageContext context;
-
-    /**
-     * Constructor.
-     *
-     * @param context The page context.
-     */
-    public SessionScopeExtractor(PageContext context) {
-        this.context = context;
-    }
-
-    @Override
-    public void removeValue(String name) {
-        if (context.getSession() == null) {
-            return;
-        }
-        context.removeAttribute(name, PageContext.SESSION_SCOPE);
-    }
-
-    @Override
-    public Enumeration<String> getKeys() {
-        if (context.getSession() == null) {
-            return null;
-        }
-        return context.getAttributeNamesInScope(PageContext.SESSION_SCOPE);
-    }
-
-    @Override
-    public Object getValue(String key) {
-        if (context.getSession() == null) {
-            return null;
-        }
-        return context.getAttribute(key, PageContext.SESSION_SCOPE);
-    }
-
-    @Override
-    public void setValue(String key, Object value) {
-        if (context.getSession() == null) {
-            return;
-        }
-        context.setAttribute(key, value, PageContext.SESSION_SCOPE);
-    }
-}
diff --git a/tiles-request/tiles-request-jsp/src/main/java/org/apache/tiles/request/jsp/extractor/package-info.java b/tiles-request/tiles-request-jsp/src/main/java/org/apache/tiles/request/jsp/extractor/package-info.java
deleted file mode 100644
index 0e2d9cb..0000000
--- a/tiles-request/tiles-request-jsp/src/main/java/org/apache/tiles/request/jsp/extractor/package-info.java
+++ /dev/null
@@ -1,24 +0,0 @@
-/*
- * $Id: package-info.java 1049711 2010-12-15 21:12:00Z apetrelli $
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-/**
- * Extractors to get scopes from {@link javax.servlet.jsp.PageContext}.
- */
-package org.apache.tiles.request.jsp.extractor;
diff --git a/tiles-request/tiles-request-jsp/src/main/java/org/apache/tiles/request/jsp/package-info.java b/tiles-request/tiles-request-jsp/src/main/java/org/apache/tiles/request/jsp/package-info.java
deleted file mode 100644
index edf2b21..0000000
--- a/tiles-request/tiles-request-jsp/src/main/java/org/apache/tiles/request/jsp/package-info.java
+++ /dev/null
@@ -1,24 +0,0 @@
-/*
- * $Id: package-info.java 1049711 2010-12-15 21:12:00Z apetrelli $
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-/**
- * Support of Tiles request in a JSP environment.
- */
-package org.apache.tiles.request.jsp;
diff --git a/tiles-request/tiles-request-jsp/src/site/site.xml b/tiles-request/tiles-request-jsp/src/site/site.xml
deleted file mode 100644
index 8e92dd7..0000000
--- a/tiles-request/tiles-request-jsp/src/site/site.xml
+++ /dev/null
@@ -1,56 +0,0 @@
-<?xml version="1.0" encoding="ISO-8859-1"?>
-<!--
-/*
- * $Id: site.xml 1081442 2011-03-14 16:21:08Z apetrelli $
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
--->
-<project name="Apache - Request Microframework">
-    <bannerLeft>
-        <name>Apache Software Foundation</name>
-        <src>http://www.apache.org/images/asf-logo.gif</src>
-        <href>http://www.apache.org</href>
-    </bannerLeft>
-    <bannerRight>
-        <name>Apache Tiles&#8482;</name>
-        <src>http://tiles.apache.org/images/logo.png</src>
-        <href>http://tiles.apache.org</href>
-    </bannerRight>
-    <body>
-
-        <links>
-            <item name="Apache" href="http://www.apache.org" />
-            <item name="Tiles" href="http://tiles.apache.org" />
-        </links>
-
-
-        <menu name="Apache Tiles&#8482;">
-            <item
-                   name="Tiles Home"
-                   href="../../index.html"/>
-            <item
-                   name="Request Microframework"
-                   href="../index.html"/>
-        </menu>
-
-        <menu ref="modules" />
-        <menu ref="reports" />
-
-    </body>
-</project>
diff --git a/tiles-request/tiles-request-jsp/src/test/java/org/apache/tiles/request/jsp/JspPrintWriterAdapterTest.java b/tiles-request/tiles-request-jsp/src/test/java/org/apache/tiles/request/jsp/JspPrintWriterAdapterTest.java
deleted file mode 100644
index be059a9..0000000
--- a/tiles-request/tiles-request-jsp/src/test/java/org/apache/tiles/request/jsp/JspPrintWriterAdapterTest.java
+++ /dev/null
@@ -1,971 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.request.jsp;
-
-import static org.easymock.classextension.EasyMock.*;
-
-import java.io.IOException;
-
-import javax.servlet.jsp.JspWriter;
-
-import junit.framework.TestCase;
-
-/**
- * Tests {@link JspPrintWriterAdapter}.
- *
- * @version $Rev$ $Date$
- */
-public class JspPrintWriterAdapterTest extends TestCase {
-
-    /**
-     * The string length.
-     */
-    private static final int STRING_LENGTH = 10;
-
-    /**
-     * Test method for {@link org.apache.tiles.request.jsp.JspPrintWriterAdapter#write(int)}.
-     *
-     * @throws IOException If something goes wrong.
-     */
-    public void testWriteInt() throws IOException {
-        JspWriter writer = createMock(JspWriter.class);
-        writer.write(1);
-        JspPrintWriterAdapter adapter = new JspPrintWriterAdapter(writer);
-        replay(writer);
-        adapter.write(1);
-        verify(writer);
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.request.jsp.JspPrintWriterAdapter#write(char[])}.
-     *
-     * @throws IOException If something goes wrong.
-     */
-    public void testWriteCharArray() throws IOException {
-        JspWriter writer = createMock(JspWriter.class);
-        String result = "this is a test";
-        writer.write(aryEq(result.toCharArray()));
-        JspPrintWriterAdapter adapter = new JspPrintWriterAdapter(writer);
-        replay(writer);
-        adapter.write(result.toCharArray());
-        verify(writer);
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.request.jsp.JspPrintWriterAdapter#write(char[], int, int)}.
-     *
-     * @throws IOException If something goes wrong.
-     */
-    public void testWriteCharArrayIntInt() throws IOException {
-        JspWriter writer = createMock(JspWriter.class);
-        String result = "this is a test";
-        writer.write(aryEq(result.toCharArray()), eq(0),
-                eq(STRING_LENGTH));
-        JspPrintWriterAdapter adapter = new JspPrintWriterAdapter(writer);
-        replay(writer);
-        adapter.write(result.toCharArray(), 0, STRING_LENGTH);
-        verify(writer);
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.request.jsp.JspPrintWriterAdapter#flush()}.
-     *
-     * @throws IOException If something goes wrong.
-     */
-    public void testFlush() throws IOException {
-        JspWriter writer = createMock(JspWriter.class);
-        writer.flush();
-        JspPrintWriterAdapter adapter = new JspPrintWriterAdapter(writer);
-        replay(writer);
-        adapter.flush();
-        verify(writer);
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.request.jsp.JspPrintWriterAdapter#close()}.
-     *
-     * @throws IOException If something goes wrong.
-     */
-    public void testClose() throws IOException {
-        JspWriter writer = createMock(JspWriter.class);
-        writer.close();
-        JspPrintWriterAdapter adapter = new JspPrintWriterAdapter(writer);
-        replay(writer);
-        adapter.close();
-        verify(writer);
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.request.jsp.JspPrintWriterAdapter#print(boolean)}.
-     *
-     * @throws IOException If something goes wrong.
-     */
-    public void testPrintBoolean() throws IOException {
-        JspWriter writer = createMock(JspWriter.class);
-        writer.print(true);
-        JspPrintWriterAdapter adapter = new JspPrintWriterAdapter(writer);
-        replay(writer);
-        adapter.print(true);
-        verify(writer);
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.request.jsp.JspPrintWriterAdapter#print(char)}.
-     *
-     * @throws IOException If something goes wrong.
-     */
-    public void testPrintChar() throws IOException {
-        JspWriter writer = createMock(JspWriter.class);
-        writer.print('c');
-        JspPrintWriterAdapter adapter = new JspPrintWriterAdapter(writer);
-        replay(writer);
-        adapter.print('c');
-        verify(writer);
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.request.jsp.JspPrintWriterAdapter#print(int)}.
-     *
-     * @throws IOException If something goes wrong.
-     */
-    public void testPrintInt() throws IOException {
-        JspWriter writer = createMock(JspWriter.class);
-        writer.print(1);
-        JspPrintWriterAdapter adapter = new JspPrintWriterAdapter(writer);
-        replay(writer);
-        adapter.print(1);
-        verify(writer);
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.request.jsp.JspPrintWriterAdapter#print(long)}.
-     *
-     * @throws IOException If something goes wrong.
-     */
-    public void testPrintLong() throws IOException {
-        JspWriter writer = createMock(JspWriter.class);
-        writer.print(1L);
-        JspPrintWriterAdapter adapter = new JspPrintWriterAdapter(writer);
-        replay(writer);
-        adapter.print(1L);
-        verify(writer);
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.request.jsp.JspPrintWriterAdapter#print(float)}.
-     *
-     * @throws IOException If something goes wrong.
-     */
-    public void testPrintFloat() throws IOException {
-        JspWriter writer = createMock(JspWriter.class);
-        writer.print(1f);
-        JspPrintWriterAdapter adapter = new JspPrintWriterAdapter(writer);
-        replay(writer);
-        adapter.print(1f);
-        verify(writer);
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.request.jsp.JspPrintWriterAdapter#print(double)}.
-     *
-     * @throws IOException If something goes wrong.
-     */
-    public void testPrintDouble() throws IOException {
-        JspWriter writer = createMock(JspWriter.class);
-        writer.print(1d);
-        JspPrintWriterAdapter adapter = new JspPrintWriterAdapter(writer);
-        replay(writer);
-        adapter.print(1d);
-        verify(writer);
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.request.jsp.JspPrintWriterAdapter#print(char[])}.
-     *
-     * @throws IOException If something goes wrong.
-     */
-    public void testPrintCharArray() throws IOException {
-        JspWriter writer = createMock(JspWriter.class);
-        String result = "this is a test";
-        writer.print(aryEq(result.toCharArray()));
-        JspPrintWriterAdapter adapter = new JspPrintWriterAdapter(writer);
-        replay(writer);
-        adapter.print(result.toCharArray());
-        verify(writer);
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.request.jsp.JspPrintWriterAdapter#println()}.
-     *
-     * @throws IOException If something goes wrong.
-     */
-    public void testPrintln() throws IOException {
-        JspWriter writer = createMock(JspWriter.class);
-        writer.println();
-        JspPrintWriterAdapter adapter = new JspPrintWriterAdapter(writer);
-        replay(writer);
-        adapter.println();
-        verify(writer);
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.request.jsp.JspPrintWriterAdapter#println(boolean)}.
-     *
-     * @throws IOException If something goes wrong.
-     */
-    public void testPrintlnBoolean() throws IOException {
-        JspWriter writer = createMock(JspWriter.class);
-        writer.println(true);
-        JspPrintWriterAdapter adapter = new JspPrintWriterAdapter(writer);
-        replay(writer);
-        adapter.println(true);
-        verify(writer);
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.request.jsp.JspPrintWriterAdapter#println(char)}.
-     *
-     * @throws IOException If something goes wrong.
-     */
-    public void testPrintlnChar() throws IOException {
-        JspWriter writer = createMock(JspWriter.class);
-        writer.println('c');
-        JspPrintWriterAdapter adapter = new JspPrintWriterAdapter(writer);
-        replay(writer);
-        adapter.println('c');
-        verify(writer);
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.request.jsp.JspPrintWriterAdapter#println(int)}.
-     *
-     * @throws IOException If something goes wrong.
-     */
-    public void testPrintlnInt() throws IOException {
-        JspWriter writer = createMock(JspWriter.class);
-        writer.println(1);
-        JspPrintWriterAdapter adapter = new JspPrintWriterAdapter(writer);
-        replay(writer);
-        adapter.println(1);
-        verify(writer);
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.request.jsp.JspPrintWriterAdapter#println(long)}.
-     *
-     * @throws IOException If something goes wrong.
-     */
-    public void testPrintlnLong() throws IOException {
-        JspWriter writer = createMock(JspWriter.class);
-        writer.println(1L);
-        JspPrintWriterAdapter adapter = new JspPrintWriterAdapter(writer);
-        replay(writer);
-        adapter.println(1L);
-        verify(writer);
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.request.jsp.JspPrintWriterAdapter#println(float)}.
-     *
-     * @throws IOException If something goes wrong.
-     */
-    public void testPrintlnFloat() throws IOException {
-        JspWriter writer = createMock(JspWriter.class);
-        writer.println(1f);
-        JspPrintWriterAdapter adapter = new JspPrintWriterAdapter(writer);
-        replay(writer);
-        adapter.println(1f);
-        verify(writer);
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.request.jsp.JspPrintWriterAdapter#println(double)}.
-     *
-     * @throws IOException If something goes wrong.
-     */
-    public void testPrintlnDouble() throws IOException {
-        JspWriter writer = createMock(JspWriter.class);
-        writer.println(1d);
-        JspPrintWriterAdapter adapter = new JspPrintWriterAdapter(writer);
-        replay(writer);
-        adapter.println(1d);
-        verify(writer);
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.request.jsp.JspPrintWriterAdapter#println(char[])}.
-     *
-     * @throws IOException If something goes wrong.
-     */
-    public void testPrintlnCharArray() throws IOException {
-        JspWriter writer = createMock(JspWriter.class);
-        String result = "this is a test";
-        writer.println(aryEq(result.toCharArray()));
-        JspPrintWriterAdapter adapter = new JspPrintWriterAdapter(writer);
-        replay(writer);
-        adapter.println(result.toCharArray());
-        verify(writer);
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.request.jsp.JspPrintWriterAdapter#getJspWriter()}.
-     */
-    public void testGetJspWriter() {
-        JspWriter writer = createMock(JspWriter.class);
-        JspPrintWriterAdapter adapter = new JspPrintWriterAdapter(writer);
-        assertEquals(writer, adapter.getJspWriter());
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.request.jsp.JspPrintWriterAdapter#append(char)}.
-     *
-     * @throws IOException If something goes wrong.
-     */
-    public void testAppendChar() throws IOException {
-        JspWriter writer = createMock(JspWriter.class);
-        expect(writer.append('c')).andReturn(writer);
-        JspPrintWriterAdapter adapter = new JspPrintWriterAdapter(writer);
-        replay(writer);
-        assertEquals(adapter, adapter.append('c'));
-        verify(writer);
-    }
-
-    /**
-     * Test method for
-     * {@link org.apache.tiles.request.jsp.JspPrintWriterAdapter#append(java.lang.CharSequence, int, int)}.
-     *
-     * @throws IOException If something goes wrong.
-     */
-    public void testAppendCharSequenceIntInt() throws IOException {
-        JspWriter writer = createMock(JspWriter.class);
-        CharSequence sequence = createMock(CharSequence.class);
-        expect(writer.append(sequence, 0, STRING_LENGTH)).andReturn(writer);
-        JspPrintWriterAdapter adapter = new JspPrintWriterAdapter(writer);
-        replay(writer);
-        assertEquals(adapter, adapter.append(sequence, 0, STRING_LENGTH));
-        verify(writer);
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.request.jsp.JspPrintWriterAdapter#append(java.lang.CharSequence)}.
-     *
-     * @throws IOException If something goes wrong.
-     */
-    public void testAppendCharSequence() throws IOException {
-        JspWriter writer = createMock(JspWriter.class);
-        CharSequence sequence = createMock(CharSequence.class);
-        expect(writer.append(sequence)).andReturn(writer);
-        JspPrintWriterAdapter adapter = new JspPrintWriterAdapter(writer);
-        replay(writer);
-        assertEquals(adapter, adapter.append(sequence));
-        verify(writer);
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.request.jsp.JspPrintWriterAdapter#print(java.lang.Object)}.
-     *
-     * @throws IOException If something goes wrong.
-     */
-    public void testPrintObject() throws IOException {
-        JspWriter writer = createMock(JspWriter.class);
-        Object obj = createMock(Object.class);
-        writer.print(obj);
-        JspPrintWriterAdapter adapter = new JspPrintWriterAdapter(writer);
-        replay(writer);
-        adapter.print(obj);
-        verify(writer);
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.request.jsp.JspPrintWriterAdapter#print(java.lang.String)}.
-     *
-     * @throws IOException If something goes wrong.
-     */
-    public void testPrintString() throws IOException {
-        JspWriter writer = createMock(JspWriter.class);
-        writer.print("this is a string");
-        JspPrintWriterAdapter adapter = new JspPrintWriterAdapter(writer);
-        replay(writer);
-        adapter.print("this is a string");
-        verify(writer);
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.request.jsp.JspPrintWriterAdapter#println(java.lang.Object)}.
-     *
-     * @throws IOException If something goes wrong.
-     */
-    public void testPrintlnObject() throws IOException {
-        JspWriter writer = createMock(JspWriter.class);
-        Object obj = createMock(Object.class);
-        writer.println(obj);
-        JspPrintWriterAdapter adapter = new JspPrintWriterAdapter(writer);
-        replay(writer);
-        adapter.println(obj);
-        verify(writer);
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.request.jsp.JspPrintWriterAdapter#println(java.lang.String)}.
-     *
-     * @throws IOException If something goes wrong.
-     */
-    public void testPrintlnString() throws IOException {
-        JspWriter writer = createMock(JspWriter.class);
-        writer.println("this is a string");
-        JspPrintWriterAdapter adapter = new JspPrintWriterAdapter(writer);
-        replay(writer);
-        adapter.println("this is a string");
-        verify(writer);
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.request.jsp.JspPrintWriterAdapter#write(java.lang.String, int, int)}.
-     *
-     * @throws IOException If something goes wrong.
-     */
-    public void testWriteStringIntInt() throws IOException {
-        JspWriter writer = createMock(JspWriter.class);
-        String result = "this is a test";
-        writer.write(result, 0, STRING_LENGTH);
-        JspPrintWriterAdapter adapter = new JspPrintWriterAdapter(writer);
-        replay(writer);
-        adapter.write(result, 0, STRING_LENGTH);
-        verify(writer);
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.request.jsp.JspPrintWriterAdapter#write(java.lang.String)}.
-     *
-     * @throws IOException If something goes wrong.
-     */
-    public void testWriteString() throws IOException {
-        JspWriter writer = createMock(JspWriter.class);
-        String result = "this is a test";
-        writer.write(result);
-        JspPrintWriterAdapter adapter = new JspPrintWriterAdapter(writer);
-        replay(writer);
-        adapter.write(result);
-        verify(writer);
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.request.jsp.JspPrintWriterAdapter#write(int)}.
-     *
-     * @throws IOException If something goes wrong.
-     */
-    public void testWriteIntEx() throws IOException {
-        JspWriter writer = createMock(JspWriter.class);
-        writer.write(1);
-        expectLastCall().andThrow(new IOException());
-        writer.flush();
-        JspPrintWriterAdapter adapter = new JspPrintWriterAdapter(writer);
-        replay(writer);
-        adapter.write(1);
-        assertTrue(adapter.checkError());
-        verify(writer);
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.request.jsp.JspPrintWriterAdapter#write(char[])}.
-     *
-     * @throws IOException If something goes wrong.
-     */
-    public void testWriteCharArrayEx() throws IOException {
-        JspWriter writer = createMock(JspWriter.class);
-        String result = "this is a test";
-        writer.write(aryEq(result.toCharArray()));
-        expectLastCall().andThrow(new IOException());
-        writer.flush();
-        JspPrintWriterAdapter adapter = new JspPrintWriterAdapter(writer);
-        replay(writer);
-        adapter.write(result.toCharArray());
-        assertTrue(adapter.checkError());
-        verify(writer);
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.request.jsp.JspPrintWriterAdapter#write(char[], int, int)}.
-     *
-     * @throws IOException If something goes wrong.
-     */
-    public void testWriteCharArrayIntIntEx() throws IOException {
-        JspWriter writer = createMock(JspWriter.class);
-        String result = "this is a test";
-        writer.write(aryEq(result.toCharArray()), eq(0),
-                eq(STRING_LENGTH));
-        expectLastCall().andThrow(new IOException());
-        writer.flush();
-        JspPrintWriterAdapter adapter = new JspPrintWriterAdapter(writer);
-        replay(writer);
-        adapter.write(result.toCharArray(), 0, STRING_LENGTH);
-        assertTrue(adapter.checkError());
-        verify(writer);
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.request.jsp.JspPrintWriterAdapter#flush()}.
-     *
-     * @throws IOException If something goes wrong.
-     */
-    public void testFlushEx() throws IOException {
-        JspWriter writer = createMock(JspWriter.class);
-        writer.flush();
-        expectLastCall().andThrow(new IOException());
-        writer.flush();
-        JspPrintWriterAdapter adapter = new JspPrintWriterAdapter(writer);
-        replay(writer);
-        adapter.flush();
-        assertTrue(adapter.checkError());
-        verify(writer);
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.request.jsp.JspPrintWriterAdapter#close()}.
-     *
-     * @throws IOException If something goes wrong.
-     */
-    public void testCloseEx() throws IOException {
-        JspWriter writer = createMock(JspWriter.class);
-        writer.close();
-        expectLastCall().andThrow(new IOException());
-        writer.flush();
-        JspPrintWriterAdapter adapter = new JspPrintWriterAdapter(writer);
-        replay(writer);
-        adapter.close();
-        assertTrue(adapter.checkError());
-        verify(writer);
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.request.jsp.JspPrintWriterAdapter#print(boolean)}.
-     *
-     * @throws IOException If something goes wrong.
-     */
-    public void testPrintBooleanEx() throws IOException {
-        JspWriter writer = createMock(JspWriter.class);
-        writer.print(true);
-        expectLastCall().andThrow(new IOException());
-        writer.flush();
-        JspPrintWriterAdapter adapter = new JspPrintWriterAdapter(writer);
-        replay(writer);
-        adapter.print(true);
-        assertTrue(adapter.checkError());
-        verify(writer);
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.request.jsp.JspPrintWriterAdapter#print(char)}.
-     *
-     * @throws IOException If something goes wrong.
-     */
-    public void testPrintCharEx() throws IOException {
-        JspWriter writer = createMock(JspWriter.class);
-        writer.print('c');
-        expectLastCall().andThrow(new IOException());
-        writer.flush();
-        JspPrintWriterAdapter adapter = new JspPrintWriterAdapter(writer);
-        replay(writer);
-        adapter.print('c');
-        assertTrue(adapter.checkError());
-        verify(writer);
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.request.jsp.JspPrintWriterAdapter#print(int)}.
-     *
-     * @throws IOException If something goes wrong.
-     */
-    public void testPrintIntEx() throws IOException {
-        JspWriter writer = createMock(JspWriter.class);
-        writer.print(1);
-        expectLastCall().andThrow(new IOException());
-        writer.flush();
-        JspPrintWriterAdapter adapter = new JspPrintWriterAdapter(writer);
-        replay(writer);
-        adapter.print(1);
-        assertTrue(adapter.checkError());
-        verify(writer);
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.request.jsp.JspPrintWriterAdapter#print(long)}.
-     *
-     * @throws IOException If something goes wrong.
-     */
-    public void testPrintLongEx() throws IOException {
-        JspWriter writer = createMock(JspWriter.class);
-        writer.print(1L);
-        expectLastCall().andThrow(new IOException());
-        writer.flush();
-        JspPrintWriterAdapter adapter = new JspPrintWriterAdapter(writer);
-        replay(writer);
-        adapter.print(1L);
-        assertTrue(adapter.checkError());
-        verify(writer);
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.request.jsp.JspPrintWriterAdapter#print(float)}.
-     *
-     * @throws IOException If something goes wrong.
-     */
-    public void testPrintFloatEx() throws IOException {
-        JspWriter writer = createMock(JspWriter.class);
-        writer.print(1f);
-        expectLastCall().andThrow(new IOException());
-        writer.flush();
-        JspPrintWriterAdapter adapter = new JspPrintWriterAdapter(writer);
-        replay(writer);
-        adapter.print(1f);
-        assertTrue(adapter.checkError());
-        verify(writer);
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.request.jsp.JspPrintWriterAdapter#print(double)}.
-     *
-     * @throws IOException If something goes wrong.
-     */
-    public void testPrintDoubleEx() throws IOException {
-        JspWriter writer = createMock(JspWriter.class);
-        writer.print(1d);
-        expectLastCall().andThrow(new IOException());
-        writer.flush();
-        JspPrintWriterAdapter adapter = new JspPrintWriterAdapter(writer);
-        replay(writer);
-        adapter.print(1d);
-        assertTrue(adapter.checkError());
-        verify(writer);
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.request.jsp.JspPrintWriterAdapter#print(char[])}.
-     *
-     * @throws IOException If something goes wrong.
-     */
-    public void testPrintCharArrayEx() throws IOException {
-        JspWriter writer = createMock(JspWriter.class);
-        String result = "this is a test";
-        writer.print(aryEq(result.toCharArray()));
-        expectLastCall().andThrow(new IOException());
-        writer.flush();
-        JspPrintWriterAdapter adapter = new JspPrintWriterAdapter(writer);
-        replay(writer);
-        adapter.print(result.toCharArray());
-        assertTrue(adapter.checkError());
-        verify(writer);
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.request.jsp.JspPrintWriterAdapter#println()}.
-     *
-     * @throws IOException If something goes wrong.
-     */
-    public void testPrintlnEx() throws IOException {
-        JspWriter writer = createMock(JspWriter.class);
-        writer.println();
-        expectLastCall().andThrow(new IOException());
-        writer.flush();
-        JspPrintWriterAdapter adapter = new JspPrintWriterAdapter(writer);
-        replay(writer);
-        adapter.println();
-        assertTrue(adapter.checkError());
-        verify(writer);
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.request.jsp.JspPrintWriterAdapter#println(boolean)}.
-     *
-     * @throws IOException If something goes wrong.
-     */
-    public void testPrintlnBooleanEx() throws IOException {
-        JspWriter writer = createMock(JspWriter.class);
-        writer.println(true);
-        expectLastCall().andThrow(new IOException());
-        writer.flush();
-        JspPrintWriterAdapter adapter = new JspPrintWriterAdapter(writer);
-        replay(writer);
-        adapter.println(true);
-        assertTrue(adapter.checkError());
-        verify(writer);
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.request.jsp.JspPrintWriterAdapter#println(char)}.
-     *
-     * @throws IOException If something goes wrong.
-     */
-    public void testPrintlnCharEx() throws IOException {
-        JspWriter writer = createMock(JspWriter.class);
-        writer.println('c');
-        expectLastCall().andThrow(new IOException());
-        writer.flush();
-        JspPrintWriterAdapter adapter = new JspPrintWriterAdapter(writer);
-        replay(writer);
-        adapter.println('c');
-        assertTrue(adapter.checkError());
-        verify(writer);
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.request.jsp.JspPrintWriterAdapter#println(int)}.
-     *
-     * @throws IOException If something goes wrong.
-     */
-    public void testPrintlnIntEx() throws IOException {
-        JspWriter writer = createMock(JspWriter.class);
-        writer.println(1);
-        expectLastCall().andThrow(new IOException());
-        writer.flush();
-        JspPrintWriterAdapter adapter = new JspPrintWriterAdapter(writer);
-        replay(writer);
-        adapter.println(1);
-        assertTrue(adapter.checkError());
-        verify(writer);
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.request.jsp.JspPrintWriterAdapter#println(long)}.
-     *
-     * @throws IOException If something goes wrong.
-     */
-    public void testPrintlnLongEx() throws IOException {
-        JspWriter writer = createMock(JspWriter.class);
-        writer.println(1L);
-        expectLastCall().andThrow(new IOException());
-        writer.flush();
-        JspPrintWriterAdapter adapter = new JspPrintWriterAdapter(writer);
-        replay(writer);
-        adapter.println(1L);
-        assertTrue(adapter.checkError());
-        verify(writer);
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.request.jsp.JspPrintWriterAdapter#println(float)}.
-     *
-     * @throws IOException If something goes wrong.
-     */
-    public void testPrintlnFloatEx() throws IOException {
-        JspWriter writer = createMock(JspWriter.class);
-        writer.println(1f);
-        expectLastCall().andThrow(new IOException());
-        writer.flush();
-        JspPrintWriterAdapter adapter = new JspPrintWriterAdapter(writer);
-        replay(writer);
-        adapter.println(1f);
-        assertTrue(adapter.checkError());
-        verify(writer);
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.request.jsp.JspPrintWriterAdapter#println(double)}.
-     *
-     * @throws IOException If something goes wrong.
-     */
-    public void testPrintlnDoubleEx() throws IOException {
-        JspWriter writer = createMock(JspWriter.class);
-        writer.println(1d);
-        expectLastCall().andThrow(new IOException());
-        writer.flush();
-        JspPrintWriterAdapter adapter = new JspPrintWriterAdapter(writer);
-        replay(writer);
-        adapter.println(1d);
-        assertTrue(adapter.checkError());
-        verify(writer);
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.request.jsp.JspPrintWriterAdapter#println(char[])}.
-     *
-     * @throws IOException If something goes wrong.
-     */
-    public void testPrintlnCharArrayEx() throws IOException {
-        JspWriter writer = createMock(JspWriter.class);
-        String result = "this is a test";
-        writer.println(aryEq(result.toCharArray()));
-        expectLastCall().andThrow(new IOException());
-        writer.flush();
-        JspPrintWriterAdapter adapter = new JspPrintWriterAdapter(writer);
-        replay(writer);
-        adapter.println(result.toCharArray());
-        assertTrue(adapter.checkError());
-        verify(writer);
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.request.jsp.JspPrintWriterAdapter#append(char)}.
-     *
-     * @throws IOException If something goes wrong.
-     */
-    public void testAppendCharEx() throws IOException {
-        JspWriter writer = createMock(JspWriter.class);
-        expect(writer.append('c')).andThrow(new IOException());
-        writer.flush();
-        JspPrintWriterAdapter adapter = new JspPrintWriterAdapter(writer);
-        replay(writer);
-        assertEquals(adapter, adapter.append('c'));
-        assertTrue(adapter.checkError());
-        verify(writer);
-    }
-
-    /**
-     * Test method for
-     * {@link org.apache.tiles.request.jsp.JspPrintWriterAdapter#append(java.lang.CharSequence, int, int)}.
-     *
-     * @throws IOException If something goes wrong.
-     */
-    public void testAppendCharSequenceIntIntEx() throws IOException {
-        JspWriter writer = createMock(JspWriter.class);
-        CharSequence sequence = createMock(CharSequence.class);
-        expect(writer.append(sequence, 0, STRING_LENGTH)).andThrow(new IOException());
-        writer.flush();
-        JspPrintWriterAdapter adapter = new JspPrintWriterAdapter(writer);
-        replay(writer);
-        assertEquals(adapter, adapter.append(sequence, 0, STRING_LENGTH));
-        assertTrue(adapter.checkError());
-        verify(writer);
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.request.jsp.JspPrintWriterAdapter#append(java.lang.CharSequence)}.
-     *
-     * @throws IOException If something goes wrong.
-     */
-    public void testAppendCharSequenceEx() throws IOException {
-        JspWriter writer = createMock(JspWriter.class);
-        CharSequence sequence = createMock(CharSequence.class);
-        expect(writer.append(sequence)).andThrow(new IOException());
-        writer.flush();
-        JspPrintWriterAdapter adapter = new JspPrintWriterAdapter(writer);
-        replay(writer);
-        assertEquals(adapter, adapter.append(sequence));
-        assertTrue(adapter.checkError());
-        verify(writer);
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.request.jsp.JspPrintWriterAdapter#print(java.lang.Object)}.
-     *
-     * @throws IOException If something goes wrong.
-     */
-    public void testPrintObjectEx() throws IOException {
-        JspWriter writer = createMock(JspWriter.class);
-        Object obj = createMock(Object.class);
-        writer.print(obj);
-        expectLastCall().andThrow(new IOException());
-        writer.flush();
-        JspPrintWriterAdapter adapter = new JspPrintWriterAdapter(writer);
-        replay(writer);
-        adapter.print(obj);
-        assertTrue(adapter.checkError());
-        verify(writer);
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.request.jsp.JspPrintWriterAdapter#print(java.lang.String)}.
-     *
-     * @throws IOException If something goes wrong.
-     */
-    public void testPrintStringEx() throws IOException {
-        JspWriter writer = createMock(JspWriter.class);
-        writer.print("this is a string");
-        expectLastCall().andThrow(new IOException());
-        writer.flush();
-        JspPrintWriterAdapter adapter = new JspPrintWriterAdapter(writer);
-        replay(writer);
-        adapter.print("this is a string");
-        assertTrue(adapter.checkError());
-        verify(writer);
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.request.jsp.JspPrintWriterAdapter#println(java.lang.Object)}.
-     *
-     * @throws IOException If something goes wrong.
-     */
-    public void testPrintlnObjectEx() throws IOException {
-        JspWriter writer = createMock(JspWriter.class);
-        Object obj = createMock(Object.class);
-        writer.println(obj);
-        expectLastCall().andThrow(new IOException());
-        writer.flush();
-        JspPrintWriterAdapter adapter = new JspPrintWriterAdapter(writer);
-        replay(writer);
-        adapter.println(obj);
-        assertTrue(adapter.checkError());
-        verify(writer);
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.request.jsp.JspPrintWriterAdapter#println(java.lang.String)}.
-     *
-     * @throws IOException If something goes wrong.
-     */
-    public void testPrintlnStringEx() throws IOException {
-        JspWriter writer = createMock(JspWriter.class);
-        writer.println("this is a string");
-        expectLastCall().andThrow(new IOException());
-        writer.flush();
-        JspPrintWriterAdapter adapter = new JspPrintWriterAdapter(writer);
-        replay(writer);
-        adapter.println("this is a string");
-        assertTrue(adapter.checkError());
-        verify(writer);
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.request.jsp.JspPrintWriterAdapter#write(java.lang.String, int, int)}.
-     *
-     * @throws IOException If something goes wrong.
-     */
-    public void testWriteStringIntIntEx() throws IOException {
-        JspWriter writer = createMock(JspWriter.class);
-        String result = "this is a test";
-        writer.write(result, 0, STRING_LENGTH);
-        expectLastCall().andThrow(new IOException());
-        writer.flush();
-        JspPrintWriterAdapter adapter = new JspPrintWriterAdapter(writer);
-        replay(writer);
-        adapter.write(result, 0, STRING_LENGTH);
-        assertTrue(adapter.checkError());
-        verify(writer);
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.request.jsp.JspPrintWriterAdapter#write(java.lang.String)}.
-     *
-     * @throws IOException If something goes wrong.
-     */
-    public void testWriteStringEx() throws IOException {
-        JspWriter writer = createMock(JspWriter.class);
-        String result = "this is a test";
-        writer.write(result);
-        expectLastCall().andThrow(new IOException());
-        writer.flush();
-        JspPrintWriterAdapter adapter = new JspPrintWriterAdapter(writer);
-        replay(writer);
-        adapter.write(result);
-        assertTrue(adapter.checkError());
-        verify(writer);
-    }
-}
diff --git a/tiles-request/tiles-request-jsp/src/test/java/org/apache/tiles/request/jsp/JspRequestTest.java b/tiles-request/tiles-request-jsp/src/test/java/org/apache/tiles/request/jsp/JspRequestTest.java
deleted file mode 100644
index 14c9a47..0000000
--- a/tiles-request/tiles-request-jsp/src/test/java/org/apache/tiles/request/jsp/JspRequestTest.java
+++ /dev/null
@@ -1,201 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.request.jsp;
-
-import static org.easymock.EasyMock.*;
-import static org.easymock.classextension.EasyMock.*;
-import static org.junit.Assert.*;
-
-import java.io.IOException;
-
-import javax.servlet.ServletException;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-import javax.servlet.jsp.JspWriter;
-import javax.servlet.jsp.PageContext;
-
-import org.apache.tiles.request.ApplicationContext;
-import org.apache.tiles.request.DispatchRequest;
-import org.apache.tiles.request.collection.ScopeMap;
-import org.apache.tiles.request.servlet.ServletRequest;
-import org.junit.Before;
-import org.junit.Test;
-
-/**
- * Tests {@link JspRequest}.
- *
- * @version $Rev$ $Date$
- */
-public class JspRequestTest {
-
-    /**
-     * The enclosed request.
-     */
-    private DispatchRequest enclosedRequest;
-
-    /**
-     * The page context.
-     */
-    private PageContext context;
-
-    /**
-     * The request to test.
-     */
-    private JspRequest request;
-
-    /**
-     * Sets up the test.
-     */
-    @Before
-    public void setUp() {
-        enclosedRequest = createMock(DispatchRequest.class);
-        context = createMock(PageContext.class);
-        request = new JspRequest(enclosedRequest, context);
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.request.jsp.JspRequest#getWriter()}.
-     */
-    @Test
-    public void testGetWriter() {
-        JspWriter writer = createMock(JspWriter.class);
-
-        expect(context.getOut()).andReturn(writer);
-
-        replay(context, enclosedRequest, writer);
-        assertEquals(writer, request.getWriter());
-        verify(context, enclosedRequest, writer);
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.request.jsp.JspRequest#getPrintWriter()}.
-     */
-    @Test
-    public void testGetPrintWriter() {
-        JspWriter writer = createMock(JspWriter.class);
-
-        expect(context.getOut()).andReturn(writer);
-
-        replay(context, enclosedRequest, writer);
-        assertEquals(writer, ((JspPrintWriterAdapter) request.getPrintWriter())
-                .getJspWriter());
-        verify(context, enclosedRequest, writer);
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.request.jsp.JspRequest#doInclude(java.lang.String)}.
-     * @throws IOException If something goes wrong.
-     * @throws ServletException If something goes wrong.
-     */
-    @Test
-    public void testDoInclude() throws ServletException, IOException {
-        context.include("/my/path", false);
-
-        replay(context, enclosedRequest);
-        request.doInclude("/my/path");
-        verify(context, enclosedRequest);
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.request.jsp.JspRequest#doInclude(java.lang.String)}.
-     * @throws IOException If something goes wrong.
-     * @throws ServletException If something goes wrong.
-     */
-    @Test(expected = IOException.class)
-    public void testDoIncludeException() throws ServletException, IOException {
-        context.include("/my/path", false);
-        expectLastCall().andThrow(new ServletException());
-
-        replay(context, enclosedRequest);
-        request.doInclude("/my/path");
-        verify(context, enclosedRequest);
-    }
-
-    /**
-     * Test method for {@link JspRequest#createServletJspRequest(ApplicationContext, PageContext)}.
-     */
-    @Test
-    public void testCreateServletJspRequest() {
-        ApplicationContext applicationContext = createMock(ApplicationContext.class);
-        HttpServletRequest servletRequest = createMock(HttpServletRequest.class);
-        HttpServletResponse servletResponse = createMock(HttpServletResponse.class);
-
-        expect(context.getRequest()).andReturn(servletRequest);
-        expect(context.getResponse()).andReturn(servletResponse);
-
-        replay(context, applicationContext, servletRequest, servletResponse);
-        JspRequest request = JspRequest.createServletJspRequest(applicationContext, context);
-        ServletRequest wrappedRequest = (ServletRequest) request.getWrappedRequest();
-        assertEquals(servletRequest, wrappedRequest.getRequest());
-        assertEquals(servletResponse, wrappedRequest.getResponse());
-        verify(context, applicationContext, servletRequest, servletResponse);
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.request.jsp.JspRequest#getPageScope()}.
-     */
-    @Test
-    public void testGetPageScope() {
-        replay(context, enclosedRequest);
-        assertTrue(request.getPageScope() instanceof ScopeMap);
-        verify(context, enclosedRequest);
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.request.jsp.JspRequest#getRequestScope()}.
-     */
-    @Test
-    public void testGetRequestScope() {
-        replay(context, enclosedRequest);
-        assertTrue(request.getRequestScope() instanceof ScopeMap);
-        verify(context, enclosedRequest);
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.request.jsp.JspRequest#getSessionScope()}.
-     */
-    @Test
-    public void testGetSessionScope() {
-        replay(context, enclosedRequest);
-        assertTrue(request.getSessionScope() instanceof ScopeMap);
-        verify(context, enclosedRequest);
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.request.jsp.JspRequest#getApplicationScope()}.
-     */
-    @Test
-    public void testGetApplicationScope() {
-        replay(context, enclosedRequest);
-        assertTrue(request.getApplicationScope() instanceof ScopeMap);
-        verify(context, enclosedRequest);
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.request.jsp.JspRequest#getPageContext()}.
-     */
-    @Test
-    public void testGetPageContext() {
-        replay(context, enclosedRequest);
-        assertEquals(context, request.getPageContext());
-        verify(context, enclosedRequest);
-    }
-}
diff --git a/tiles-request/tiles-request-jsp/src/test/java/org/apache/tiles/request/jsp/JspUtilTest.java b/tiles-request/tiles-request-jsp/src/test/java/org/apache/tiles/request/jsp/JspUtilTest.java
deleted file mode 100644
index ee90a40..0000000
--- a/tiles-request/tiles-request-jsp/src/test/java/org/apache/tiles/request/jsp/JspUtilTest.java
+++ /dev/null
@@ -1,56 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.request.jsp;
-
-import static org.easymock.classextension.EasyMock.*;
-import static org.junit.Assert.*;
-
-import javax.servlet.jsp.JspContext;
-import javax.servlet.jsp.PageContext;
-
-import org.apache.tiles.request.ApplicationAccess;
-import org.apache.tiles.request.ApplicationContext;
-import org.junit.Test;
-
-/**
- * Tests {@link JspUtil}.
- *
- * @version $Rev$ $Date$
- */
-public class JspUtilTest {
-
-    /**
-     * Test method for {@link org.apache.tiles.request.jsp.JspUtil#getApplicationContext(javax.servlet.jsp.JspContext)}.
-     */
-    @Test
-    public void testGetApplicationContext() {
-        ApplicationContext applicationContext = createMock(ApplicationContext.class);
-        JspContext jspContext = createMock(JspContext.class);
-
-        expect(jspContext.getAttribute(ApplicationAccess
-                .APPLICATION_CONTEXT_ATTRIBUTE, PageContext.APPLICATION_SCOPE))
-                .andReturn(applicationContext);
-
-        replay(applicationContext, jspContext);
-        assertEquals(applicationContext, JspUtil.getApplicationContext(jspContext));
-        verify(applicationContext, jspContext);
-    }
-}
diff --git a/tiles-request/tiles-request-jsp/src/test/java/org/apache/tiles/request/jsp/autotag/JspAutotagRuntimeTest.java b/tiles-request/tiles-request-jsp/src/test/java/org/apache/tiles/request/jsp/autotag/JspAutotagRuntimeTest.java
deleted file mode 100644
index 53baf2c..0000000
--- a/tiles-request/tiles-request-jsp/src/test/java/org/apache/tiles/request/jsp/autotag/JspAutotagRuntimeTest.java
+++ /dev/null
@@ -1,100 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.request.jsp.autotag;
-
-import static org.easymock.EasyMock.*;
-import static org.junit.Assert.*;
-
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-import javax.servlet.jsp.JspContext;
-import javax.servlet.jsp.JspWriter;
-import javax.servlet.jsp.PageContext;
-import javax.servlet.jsp.tagext.JspFragment;
-import javax.servlet.jsp.tagext.JspTag;
-
-import org.apache.tiles.autotag.core.runtime.ModelBody;
-import org.apache.tiles.request.ApplicationAccess;
-import org.apache.tiles.request.ApplicationContext;
-import org.apache.tiles.request.Request;
-import org.apache.tiles.request.jsp.JspRequest;
-import org.apache.tiles.request.jsp.autotag.JspAutotagRuntime;
-import org.apache.tiles.request.jsp.autotag.JspModelBody;
-import org.junit.Test;
-
-public class JspAutotagRuntimeTest {
-    @Test
-    public void testCreateRequest() {
-        JspFragment jspBody = createMock(JspFragment.class);
-        PageContext pageContext = createMock(PageContext.class);
-        JspTag parent = createMock(JspTag.class);
-        ApplicationContext applicationContext = createMock(ApplicationContext.class);
-        HttpServletRequest httpServletRequest = createMock(HttpServletRequest.class);
-        HttpServletResponse httpServletResponse = createMock(HttpServletResponse.class);
-        expect(pageContext.getAttribute(
-                ApplicationAccess.APPLICATION_CONTEXT_ATTRIBUTE,
-                PageContext.APPLICATION_SCOPE)).andReturn(applicationContext);
-        expect(pageContext.getRequest()).andReturn(httpServletRequest);
-        expect(pageContext.getResponse()).andReturn(httpServletResponse);
-        replay(jspBody, pageContext, parent, applicationContext, httpServletRequest, httpServletResponse);
-        JspAutotagRuntime runtime = new JspAutotagRuntime();
-        runtime.setJspBody(jspBody);
-        runtime.setJspContext(pageContext);
-        runtime.setParent(parent);
-        runtime.doTag();
-        Request jspRequest = runtime.createRequest();
-        assertTrue(jspRequest instanceof JspRequest);
-        verify(jspBody, pageContext, parent, applicationContext, httpServletRequest, httpServletResponse);
-    }
-
-    @Test
-    public void testCreateModelBody() {
-        JspFragment jspBody = createMock(JspFragment.class);
-        JspContext jspContext = createMock(JspContext.class);
-        JspTag parent = createMock(JspTag.class);
-        JspWriter writer = createMock(JspWriter.class);
-        expect(jspContext.getOut()).andReturn(writer);
-        replay(jspBody, jspContext, parent, writer);
-        JspAutotagRuntime runtime = new JspAutotagRuntime();
-        runtime.setJspBody(jspBody);
-        runtime.setJspContext(jspContext);
-        runtime.setParent(parent);
-        runtime.doTag();
-        ModelBody jspModelBody = runtime.createModelBody();
-        assertTrue(jspModelBody instanceof JspModelBody);
-        verify(jspBody, jspContext, parent, writer);
-    }
-
-    @Test(expected = UnsupportedOperationException.class)
-    public void testGetParameter() {
-        JspFragment jspBody = createMock(JspFragment.class);
-        JspContext jspContext = createMock(JspContext.class);
-        JspTag parent = createMock(JspTag.class);
-        replay(jspBody, jspContext, parent);
-        JspAutotagRuntime runtime = new JspAutotagRuntime();
-        runtime.setJspBody(jspBody);
-        runtime.setJspContext(jspContext);
-        runtime.setParent(parent);
-        runtime.doTag();
-        runtime.getParameter("test", null);
-        verify(jspBody, jspContext, parent);
-    }
-}
diff --git a/tiles-request/tiles-request-jsp/src/test/java/org/apache/tiles/request/jsp/autotag/JspModelBodyTest.java b/tiles-request/tiles-request-jsp/src/test/java/org/apache/tiles/request/jsp/autotag/JspModelBodyTest.java
deleted file mode 100644
index f00cb24..0000000
--- a/tiles-request/tiles-request-jsp/src/test/java/org/apache/tiles/request/jsp/autotag/JspModelBodyTest.java
+++ /dev/null
@@ -1,104 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.request.jsp.autotag;
-
-import static org.easymock.EasyMock.*;
-
-import java.io.IOException;
-import java.io.Writer;
-
-import javax.servlet.jsp.JspException;
-import javax.servlet.jsp.JspWriter;
-import javax.servlet.jsp.PageContext;
-import javax.servlet.jsp.tagext.JspFragment;
-
-import org.apache.tiles.request.jsp.autotag.JspModelBody;
-import org.junit.Test;
-
-/**
- * Tests {@link JspModelBody}.
- *
- * @version $Rev$ $Date$
- */
-public class JspModelBodyTest {
-
-    /**
-     * Test method for {@link org.apache.tiles.request.jsp.autotag.freemarker.runtime.JspModelBody#evaluate(java.io.Writer)}.
-     * @throws IOException If something goes wrong.
-     * @throws JspException If something goes wrong.
-     */
-    @Test
-    public void testEvaluateWriter() throws JspException, IOException {
-        JspFragment body = createMock(JspFragment.class);
-        PageContext pageContext = createMock(PageContext.class);
-        JspWriter writer = createMock(JspWriter.class);
-
-        expect(pageContext.getOut()).andReturn(null);
-        body.invoke(writer);
-
-        replay(body, pageContext, writer);
-        JspModelBody modelBody = new JspModelBody(body, pageContext);
-        modelBody.evaluate(writer);
-        verify(body, pageContext, writer);
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.request.jsp.autotag.freemarker.runtime.JspModelBody#evaluate(java.io.Writer)}.
-     * @throws IOException If something goes wrong.
-     * @throws JspException If something goes wrong.
-     */
-    @Test
-    public void testEvaluateWriterNull() throws JspException, IOException {
-        PageContext pageContext = createMock(PageContext.class);
-        Writer writer = createMock(Writer.class);
-
-        expect(pageContext.getOut()).andReturn(null);
-
-        replay(writer, pageContext);
-        JspModelBody modelBody = new JspModelBody(null, pageContext);
-        modelBody.evaluate(writer);
-        verify(writer, pageContext);
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.request.jsp.autotag.freemarker.runtime.JspModelBody#evaluate(java.io.Writer)}.
-     * @throws IOException If something goes wrong.
-     * @throws JspException If something goes wrong.
-     */
-    @Test(expected = IOException.class)
-    public void testEvaluateWriterException() throws JspException, IOException {
-        PageContext pageContext = createMock(PageContext.class);
-        JspFragment body = createMock(JspFragment.class);
-        JspWriter writer = createMock(JspWriter.class);
-
-        expect(pageContext.getOut()).andReturn(null);
-        body.invoke(writer);
-        expectLastCall().andThrow(new JspException());
-
-        replay(body, pageContext, writer);
-        try {
-            JspModelBody modelBody = new JspModelBody(body, pageContext);
-            modelBody.evaluate(writer);
-        } finally {
-            verify(body, pageContext, writer);
-        }
-    }
-}
diff --git a/tiles-request/tiles-request-jsp/src/test/java/org/apache/tiles/request/jsp/extractor/ScopeExtractorTest.java b/tiles-request/tiles-request-jsp/src/test/java/org/apache/tiles/request/jsp/extractor/ScopeExtractorTest.java
deleted file mode 100644
index 465e8a8..0000000
--- a/tiles-request/tiles-request-jsp/src/test/java/org/apache/tiles/request/jsp/extractor/ScopeExtractorTest.java
+++ /dev/null
@@ -1,110 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.request.jsp.extractor;
-
-import static org.easymock.classextension.EasyMock.*;
-import static org.junit.Assert.*;
-
-import java.util.Enumeration;
-
-import javax.servlet.jsp.JspContext;
-import javax.servlet.jsp.PageContext;
-
-import org.junit.Before;
-import org.junit.Test;
-
-/**
- * Tests {@link ScopeExtractor}.
- *
- * @version $Rev$ $Date$
- */
-public class ScopeExtractorTest {
-
-    /**
-     * The JSP context.
-     */
-    private JspContext context;
-
-    /**
-     * The extractor to test.
-     */
-    private ScopeExtractor extractor;
-
-    /**
-     * Sets up the test.
-     */
-    @Before
-    public void setUp() {
-        context = createMock(JspContext.class);
-        extractor = new ScopeExtractor(context, PageContext.PAGE_SCOPE);
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.request.jsp.extractor.ScopeExtractor#removeValue(java.lang.String)}.
-     */
-    @Test
-    public void testRemoveValue() {
-        context.removeAttribute("key", PageContext.PAGE_SCOPE);
-
-        replay(context);
-        extractor.removeValue("key");
-        verify(context);
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.request.jsp.extractor.ScopeExtractor#getKeys()}.
-     */
-    @SuppressWarnings("unchecked")
-    @Test
-    public void testGetKeys() {
-        Enumeration<String> keys = createMock(Enumeration.class);
-        expect(context.getAttributeNamesInScope(PageContext.PAGE_SCOPE)).andReturn(keys);
-
-        replay(context);
-        assertEquals(keys, extractor.getKeys());
-        verify(context);
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.request.jsp.extractor.ScopeExtractor#getValue(java.lang.String)}.
-     */
-    @Test
-    public void testGetValue() {
-        expect(context.getAttribute("key", PageContext.PAGE_SCOPE)).andReturn("value");
-
-        replay(context);
-        assertEquals("value", extractor.getValue("key"));
-        verify(context);
-    }
-
-    /**
-     * Test method for {@link ScopeExtractor#setValue(String, Object)}.
-     */
-    @Test
-    public void testSetValue() {
-        context.setAttribute("key", "value", PageContext.PAGE_SCOPE);
-
-        replay(context);
-        extractor.setValue("key", "value");
-        verify(context);
-    }
-
-}
diff --git a/tiles-request/tiles-request-jsp/src/test/java/org/apache/tiles/request/jsp/extractor/SessionScopeExtractorTest.java b/tiles-request/tiles-request-jsp/src/test/java/org/apache/tiles/request/jsp/extractor/SessionScopeExtractorTest.java
deleted file mode 100644
index 6aed2d4..0000000
--- a/tiles-request/tiles-request-jsp/src/test/java/org/apache/tiles/request/jsp/extractor/SessionScopeExtractorTest.java
+++ /dev/null
@@ -1,169 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.request.jsp.extractor;
-
-import static org.easymock.EasyMock.*;
-import static org.easymock.classextension.EasyMock.*;
-import static org.junit.Assert.*;
-
-import java.util.Enumeration;
-
-import javax.servlet.http.HttpSession;
-import javax.servlet.jsp.PageContext;
-
-import org.junit.Before;
-import org.junit.Test;
-
-/**
- * Tests {@link SessionScopeExtractor}.
- *
- * @version $Rev$ $Date$
- */
-public class SessionScopeExtractorTest {
-
-    /**
-     * The page context.
-     */
-    private PageContext context;
-
-    /**
-     * The session.
-     */
-    private HttpSession session;
-
-    /**
-     * The extracto to test.
-     */
-    private SessionScopeExtractor extractor;
-
-    /**
-     * Sets up the test.
-     */
-    @Before
-    public void setUp() {
-        context = createMock(PageContext.class);
-        session = createMock(HttpSession.class);
-        extractor = new SessionScopeExtractor(context);
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.request.jsp.extractor.ScopeExtractor#removeValue(java.lang.String)}.
-     */
-    @Test
-    public void testRemoveValue() {
-        expect(context.getSession()).andReturn(session);
-        context.removeAttribute("key", PageContext.SESSION_SCOPE);
-
-        replay(context, session);
-        extractor.removeValue("key");
-        verify(context, session);
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.request.jsp.extractor.ScopeExtractor#getKeys()}.
-     */
-    @SuppressWarnings("unchecked")
-    @Test
-    public void testGetKeys() {
-        expect(context.getSession()).andReturn(session);
-        Enumeration<String> keys = createMock(Enumeration.class);
-        expect(context.getAttributeNamesInScope(PageContext.SESSION_SCOPE)).andReturn(keys);
-
-        replay(context, session);
-        assertEquals(keys, extractor.getKeys());
-        verify(context, session);
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.request.jsp.extractor.ScopeExtractor#getValue(java.lang.String)}.
-     */
-    @Test
-    public void testGetValue() {
-        expect(context.getSession()).andReturn(session);
-        expect(context.getAttribute("key", PageContext.SESSION_SCOPE)).andReturn("value");
-
-       replay(context, session);
-       assertEquals("value", extractor.getValue("key"));
-       verify(context, session);
-    }
-
-    /**
-     * Test method for {@link ScopeExtractor#setValue(String, Object)}.
-     */
-    @Test
-    public void testSetValue() {
-        expect(context.getSession()).andReturn(session);
-        context.setAttribute("key", "value", PageContext.SESSION_SCOPE);
-
-        replay(context, session);
-        extractor.setValue("key", "value");
-        verify(context, session);
-    }
-
-
-    /**
-     * Test method for {@link org.apache.tiles.request.jsp.extractor.ScopeExtractor#removeValue(java.lang.String)}.
-     */
-    @Test
-    public void testRemoveValueNoSession() {
-        expect(context.getSession()).andReturn(null);
-
-        replay(context, session);
-        extractor.removeValue("key");
-        verify(context, session);
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.request.jsp.extractor.ScopeExtractor#getKeys()}.
-     */
-    @Test
-    public void testGetKeysNoSession() {
-        expect(context.getSession()).andReturn(null);
-
-        replay(context, session);
-        assertNull(extractor.getKeys());
-        verify(context, session);
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.request.jsp.extractor.ScopeExtractor#getValue(java.lang.String)}.
-     */
-    @Test
-    public void testGetValueNoSession() {
-       expect(context.getSession()).andReturn(null);
-
-       replay(context, session);
-       assertNull(extractor.getValue("key"));
-       verify(context, session);
-    }
-
-    /**
-     * Test method for {@link ScopeExtractor#setValue(String, Object)}.
-     */
-    @Test
-    public void testSetValueNoSession() {
-        expect(context.getSession()).andReturn(null);
-
-        replay(context, session);
-        extractor.setValue("key", "value");
-        verify(context, session);
-    }
-}
diff --git a/tiles-request/tiles-request-mustache/pom.xml b/tiles-request/tiles-request-mustache/pom.xml
deleted file mode 100644
index c114b37..0000000
--- a/tiles-request/tiles-request-mustache/pom.xml
+++ /dev/null
@@ -1,63 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<!--
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements.  See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership.  The ASF licenses this file
-to you under the Apache License, Version 2.0 (the
-"License"); you may not use this file except in compliance
-with the License.  You may obtain a copy of the License at
-
-  http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing,
-software distributed under the License is distributed on an
-"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-KIND, either express or implied.  See the License for the
-specific language governing permissions and limitations
-under the License.
--->
-
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
-  <modelVersion>4.0.0</modelVersion>
-  <parent>
-    <artifactId>tiles-request</artifactId>
-    <groupId>org.apache.tiles</groupId>
-    <version>1.0-SNAPSHOT</version>
-  </parent>
-  <groupId>org.apache.tiles</groupId>
-  <artifactId>tiles-request-mustache</artifactId>
-  <version>1.0-SNAPSHOT</version>
-  <name>Tiles request - Mustache support</name>
-  <description>Tiles request implementation for Mustache templates.</description>
-  <dependencies>
-    <dependency>
-      <groupId>org.apache.tiles</groupId>
-      <artifactId>tiles-request-api</artifactId>
-    </dependency>
-    <dependency>
-        <groupId>com.github.spullara.mustache.java</groupId>
-        <artifactId>core</artifactId>
-    </dependency>
-    <dependency>
-        <groupId>com.github.spullara.mustache.java</groupId>
-        <artifactId>builder</artifactId>
-    </dependency>
-    <dependency>
-    	<groupId>junit</groupId>
-    	<artifactId>junit</artifactId>
-    	<scope>test</scope>
-    </dependency>
-    <dependency>
-    	<groupId>org.easymock</groupId>
-    	<artifactId>easymock</artifactId>
-    	<scope>test</scope>
-    </dependency>
-    <dependency>
-    	<groupId>org.easymock</groupId>
-    	<artifactId>easymockclassextension</artifactId>
-    	<scope>test</scope>
-    </dependency>
-  </dependencies>
-</project>
diff --git a/tiles-request/tiles-request-mustache/src/main/java/org/apache/tiles/request/mustache/MustacheRenderer.java b/tiles-request/tiles-request-mustache/src/main/java/org/apache/tiles/request/mustache/MustacheRenderer.java
deleted file mode 100644
index 5c286f2..0000000
--- a/tiles-request/tiles-request-mustache/src/main/java/org/apache/tiles/request/mustache/MustacheRenderer.java
+++ /dev/null
@@ -1,98 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.tiles.request.mustache;
-
-import java.io.BufferedReader;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.InputStreamReader;
-import java.util.List;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
-
-import com.sampullara.mustache.MustacheBuilder;
-import com.sampullara.mustache.MustacheException;
-import com.sampullara.mustache.Scope;
-import org.apache.tiles.request.ApplicationContext;
-import org.apache.tiles.request.ApplicationResource;
-import org.apache.tiles.request.Request;
-import org.apache.tiles.request.render.CannotRenderException;
-import org.apache.tiles.request.render.Renderer;
-
-/**
- * The Mustache-specific renderer.
- *
- * @version $Rev: 1215006 $ $Date: 2011-12-16 01:30:41 +0100 (Fri, 16 Dec 2011) $
- */
-public final class MustacheRenderer implements Renderer {
-
-    private Pattern acceptPattern;
-
-    @Override
-    public void render(String path, Request request) throws IOException {
-        if (path == null) {
-            throw new CannotRenderException("Cannot dispatch a null path");
-        }
-
-        try{
-            new MustacheBuilder()
-                    .build(new BufferedReader(new InputStreamReader(getResourceStream(request, path))), path)
-                    .execute(request.getWriter(), buildScope(request));
-
-        }catch(MustacheException ex){
-            throw new IOException("failed to MustacheRenderer.render(" + path + ",request)", ex);
-        }
-    }
-
-    private static InputStream getResourceStream(Request request, String path) throws IOException {
-        final ApplicationContext applicationContext = request.getApplicationContext();
-        final ApplicationResource resource = applicationContext.getResource(path);
-        return resource.getInputStream();
-    }
-
-    private static Scope buildScope(Request request){
-        Scope scope = null;
-        List<String> availableScopes = request.getAvailableScopes();
-        for(int i = availableScopes.size() -1; i >= 0; --i){
-            scope = null == scope
-                    ? new Scope(request.getContext(availableScopes.get(i)))
-                    : new Scope(request.getContext(availableScopes.get(i)), scope);
-        }
-        return scope;
-    }
-
-    //@Override
-    public boolean isRenderable(String path, Request request) {
-        if (path == null) {
-            return false;
-        }
-        if (acceptPattern != null) {
-            final Matcher matcher = acceptPattern.matcher(path);
-            return matcher.matches();
-        }
-        return true;
-    }
-
-    public void setAcceptPattern(Pattern acceptPattern) {
-        this.acceptPattern = acceptPattern;
-    }
-}
diff --git a/tiles-request/tiles-request-mustache/src/main/java/org/apache/tiles/request/mustache/MustacheScopeExtractor.java b/tiles-request/tiles-request-mustache/src/main/java/org/apache/tiles/request/mustache/MustacheScopeExtractor.java
deleted file mode 100644
index 2c839e2..0000000
--- a/tiles-request/tiles-request-mustache/src/main/java/org/apache/tiles/request/mustache/MustacheScopeExtractor.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
- * Copyright 2012 Apache Software Foundation.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.tiles.request.mustache;
-
-import java.util.Collections;
-import java.util.Enumeration;
-import java.util.Set;
-
-import com.sampullara.mustache.Scope;
-import org.apache.tiles.request.attribute.AttributeExtractor;
-
-
-public final class MustacheScopeExtractor  implements AttributeExtractor {
-    private final Scope scope;
-
-    public MustacheScopeExtractor(Scope scope){
-        this.scope = scope;
-    }
-
-    @Override
-    public void removeValue(String key) {
-        scope.remove(key);
-    }
-
-    @Override
-    public Enumeration<String> getKeys() {
-        return (Enumeration<String>) Collections.enumeration((Set<?>)scope.keySet());
-    }
-
-    @Override
-    public Object getValue(String key) {
-        return scope.get(key);
-    }
-
-    @Override
-    public void setValue(String key, Object value) {
-        scope.put(value, value);
-    }
-}
\ No newline at end of file
diff --git a/tiles-request/tiles-request-mustache/src/main/java/org/apache/tiles/request/mustache/MustacheScopeMap.java b/tiles-request/tiles-request-mustache/src/main/java/org/apache/tiles/request/mustache/MustacheScopeMap.java
deleted file mode 100644
index f323588..0000000
--- a/tiles-request/tiles-request-mustache/src/main/java/org/apache/tiles/request/mustache/MustacheScopeMap.java
+++ /dev/null
@@ -1,75 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.request.mustache;
-
-import java.util.Set;
-
-import com.sampullara.mustache.Scope;
-import org.apache.tiles.request.collection.ScopeMap;
-
-
-final class MustacheScopeMap extends ScopeMap {
-
-    /**
-     * The request object to use.
-     */
-    private Scope scope = null;
-
-    /**
-     * Constructor.
-     *
-     * @param request The request object to use.
-     */
-    public MustacheScopeMap(Scope request) {
-        super(new MustacheScopeExtractor(request));
-        this.scope = request;
-    }
-
-    @Override
-    public Object remove(Object key) {
-        return scope.remove(key);
-    }
-
-    @Override
-    public Object put(String key, Object value) {
-        return scope.put(key, value);
-    }
-
-    @Override
-    public boolean containsKey(Object key) {
-        return scope.containsKey(key);
-    }
-
-    @Override
-    public boolean isEmpty() {
-        return size() < 1;
-    }
-
-    @Override
-    public Set<String> keySet() {
-        return (Set<String>)(Set<?>)scope.keySet();
-    }
-
-    @Override
-    public int size() {
-        return scope.keySet().size();
-    }
-}
diff --git a/tiles-request/tiles-request-mustache/src/main/java/org/apache/tiles/request/mustache/package-info.java b/tiles-request/tiles-request-mustache/src/main/java/org/apache/tiles/request/mustache/package-info.java
deleted file mode 100644
index 7422cdf..0000000
--- a/tiles-request/tiles-request-mustache/src/main/java/org/apache/tiles/request/mustache/package-info.java
+++ /dev/null
@@ -1,24 +0,0 @@
-/*
- * $Id: package-info.java 1049711 2010-12-15 21:12:00Z apetrelli $
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-/**
- * Support of Tiles request for Mustache.
- */
-package org.apache.tiles.request.mustache;
diff --git a/tiles-request/tiles-request-mustache/src/site/site.xml b/tiles-request/tiles-request-mustache/src/site/site.xml
deleted file mode 100644
index 8e92dd7..0000000
--- a/tiles-request/tiles-request-mustache/src/site/site.xml
+++ /dev/null
@@ -1,56 +0,0 @@
-<?xml version="1.0" encoding="ISO-8859-1"?>
-<!--
-/*
- * $Id: site.xml 1081442 2011-03-14 16:21:08Z apetrelli $
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
--->
-<project name="Apache - Request Microframework">
-    <bannerLeft>
-        <name>Apache Software Foundation</name>
-        <src>http://www.apache.org/images/asf-logo.gif</src>
-        <href>http://www.apache.org</href>
-    </bannerLeft>
-    <bannerRight>
-        <name>Apache Tiles&#8482;</name>
-        <src>http://tiles.apache.org/images/logo.png</src>
-        <href>http://tiles.apache.org</href>
-    </bannerRight>
-    <body>
-
-        <links>
-            <item name="Apache" href="http://www.apache.org" />
-            <item name="Tiles" href="http://tiles.apache.org" />
-        </links>
-
-
-        <menu name="Apache Tiles&#8482;">
-            <item
-                   name="Tiles Home"
-                   href="../../index.html"/>
-            <item
-                   name="Request Microframework"
-                   href="../index.html"/>
-        </menu>
-
-        <menu ref="modules" />
-        <menu ref="reports" />
-
-    </body>
-</project>
diff --git a/tiles-request/tiles-request-mustache/src/test/java/org/apache/tiles/request/mustache/MustacheRendererTest.java b/tiles-request/tiles-request-mustache/src/test/java/org/apache/tiles/request/mustache/MustacheRendererTest.java
deleted file mode 100644
index fd920f7..0000000
--- a/tiles-request/tiles-request-mustache/src/test/java/org/apache/tiles/request/mustache/MustacheRendererTest.java
+++ /dev/null
@@ -1,112 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.request.mustache;
-
-
-import java.io.IOException;
-import java.io.Writer;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.Map;
-import java.util.regex.Pattern;
-
-import org.apache.tiles.request.ApplicationContext;
-import org.apache.tiles.request.ApplicationResource;
-import org.apache.tiles.request.mustache.MustacheRenderer;
-import org.apache.tiles.request.render.CannotRenderException;
-import org.apache.tiles.request.render.Renderer;
-import org.apache.tiles.request.Request;
-import org.junit.Test;
-
-import static org.easymock.classextension.EasyMock.*;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertTrue;
-
-/**
- * Tests {@link MustacheRenderer}.
- *
- * @version $Rev: 1066788 $ $Date: 2011-02-03 11:49:11 +0000 (Thu, 03 Feb 2011) $
- */
-public final class MustacheRendererTest {
-
-    /**
-     * Tests {@link MustacheRenderer#render(String, org.apache.tiles.request.Request)}.
-     * @throws IOException If something goes wrong.
-     */
-    @Test
-    public void testRender() throws IOException {
-        Request request = createMock(Request.class);
-        Writer writer = createMock(Writer.class);
-        ApplicationContext applicationContext = createMock(ApplicationContext.class);
-        ApplicationResource applicationResource = createMock(ApplicationResource.class);
-        expect(applicationResource.getInputStream()).andReturn(getClass().getResource("/test.html").openStream());
-
-        Map<String,Object> context = Collections.singletonMap("testKey", (Object)"test value");
-
-        expect(request.getApplicationContext()).andReturn(applicationContext);
-        expect(applicationContext.getResource(isA(String.class))).andReturn(applicationResource).anyTimes();
-        expect(request.getAvailableScopes()).andReturn(Arrays.asList("request", "session", "application"));
-        expect(request.getContext("request")).andReturn(context);
-        expect(request.getContext("session")).andReturn(Collections.<String,Object>emptyMap());
-        expect(request.getContext("application")).andReturn(Collections.<String,Object>emptyMap());
-        expect(request.getWriter()).andReturn(writer);
-        writer.write("test template with test value");
-        writer.flush();
-
-        replay(request, applicationContext, applicationResource, writer);
-        Renderer renderer = new MustacheRenderer();
-        renderer.render("/test.html", request);
-        verify(request, applicationContext, applicationResource, writer);
-    }
-
-    /**
-     * Tests {@link MustacheRenderer#render(String, org.apache.tiles.request.Request)}.
-     * @throws IOException If something goes wrong.
-     */
-    @Test(expected = CannotRenderException.class)
-    public void testRenderException() throws IOException {
-        Request request = createMock(Request.class);
-        replay(request);
-        Renderer renderer = new MustacheRenderer();
-        try {
-            renderer.render(null, request);
-        } finally {
-            verify(request);
-        }
-    }
-
-    /**
-     * Test method for
-     * {@link MustacheRenderer#isRenderable(String, org.apache.tiles.request.Request)}
-     * .
-     */
-    @Test
-    public void testIsRenderable() {
-        MustacheRenderer renderer = new MustacheRenderer();
-        final Pattern pattern = Pattern.compile("/.*");
-        renderer.setAcceptPattern(pattern);
-
-        assertTrue(renderer.isRenderable("/my/template.html", null));
-        assertTrue(renderer.isRenderable("/my/template.any", null));
-        assertFalse(renderer.isRenderable("my/template.html", null));
-        assertFalse(renderer.isRenderable(null, null));
-    }
-}
diff --git a/tiles-request/tiles-request-mustache/src/test/resources/test.html b/tiles-request/tiles-request-mustache/src/test/resources/test.html
deleted file mode 100644
index 594cbb0..0000000
--- a/tiles-request/tiles-request-mustache/src/test/resources/test.html
+++ /dev/null
@@ -1,20 +0,0 @@
-{{!
-  ! $Id$
-  !
-  ! Licensed to the Apache Software Foundation (ASF) under one
-  ! or more contributor license agreements.  See the NOTICE file
-  ! distributed with this work for additional information
-  ! regarding copyright ownership.  The ASF licenses this file
-  ! to you under the Apache License, Version 2.0 (the
-  ! "License"); you may not use this file except in compliance
-  ! with the License.  You may obtain a copy of the License at
-  !
-  ! http://www.apache.org/licenses/LICENSE-2.0
-  !
-  ! Unless required by applicable law or agreed to in writing,
-  ! software distributed under the License is distributed on an
-  ! "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-  ! KIND, either express or implied.  See the License for the
-  ! specific language governing permissions and limitations
-  ! under the License.
-}}test template with {{testKey}}
\ No newline at end of file
diff --git a/tiles-request/tiles-request-portlet-wildcard/pom.xml b/tiles-request/tiles-request-portlet-wildcard/pom.xml
deleted file mode 100644
index 075b485..0000000
--- a/tiles-request/tiles-request-portlet-wildcard/pom.xml
+++ /dev/null
@@ -1,127 +0,0 @@
-<?xml version="1.0"?>
-<!--
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
--->
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
-
-  <parent>
-    <groupId>org.apache.tiles</groupId>
-    <artifactId>tiles-request</artifactId>
-    <version>1.0-SNAPSHOT</version>
-  </parent>
-
-  <modelVersion>4.0.0</modelVersion>
-  <artifactId>tiles-request-portlet-wildcard</artifactId>
-  <version>1.0-SNAPSHOT</version>
-  <packaging>jar</packaging>
-  <name>Tiles - Wildcard file loading in Portlets</name>
-  <description>Tiles Wildcard file loading in Portlets: Allows to load resources using wildcards.</description>
-
-  <properties>
-  	<tiles.osgi.symbolicName>org.apache.tiles.portlet.wildcard</tiles.osgi.symbolicName>
-  </properties>
-
-  <build>
-    <resources>
-      <resource>
-        <directory>src/main/resources</directory>
-        <excludes>
-          <exclude>LICENSE.txt</exclude>
-          <exclude>NOTICE.txt</exclude>
-        </excludes>
-      </resource>
-      <resource>
-        <directory>src/main/resources</directory>
-        <includes>
-          <include>LICENSE.txt</include>
-          <include>NOTICE.txt</include>
-        </includes>
-        <targetPath>META-INF</targetPath>
-      </resource>
-    </resources>
-
-    <plugins>
-      <plugin>
-        <artifactId>maven-jar-plugin</artifactId>
-        <configuration>
-          <archive>
-            <manifest>
-            </manifest>
-          </archive>
-        </configuration>
-      </plugin>
-    </plugins>
-
-  </build>
-
-  <dependencies>
-    <dependency>
-      <groupId>org.apache.tiles</groupId>
-      <artifactId>tiles-request-portlet</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.slf4j</groupId>
-      <artifactId>jcl-over-slf4j</artifactId>
-      <optional>true</optional>
-    </dependency>
-
-    <dependency>
-      <groupId>org.slf4j</groupId>
-      <artifactId>slf4j-jdk14</artifactId>
-      <optional>true</optional>
-    </dependency>
-
-
-    <dependency>
-      <groupId>org.springframework</groupId>
-      <artifactId>spring-web</artifactId>
-    </dependency>
-
-    <dependency>
-      <groupId>org.springframework</groupId>
-      <artifactId>spring-webmvc-portlet</artifactId>
-    </dependency>
-
-    <dependency>
-      <groupId>javax.portlet</groupId>
-      <artifactId>portlet-api</artifactId>
-      <scope>provided</scope>
-    </dependency>
-
-    <dependency>
-      <groupId>junit</groupId>
-      <artifactId>junit</artifactId>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
-      <groupId>org.easymock</groupId>
-      <artifactId>easymock</artifactId>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
-      <groupId>org.easymock</groupId>
-      <artifactId>easymockclassextension</artifactId>
-      <scope>test</scope>
-    </dependency>
-  </dependencies>
-
-</project>
diff --git a/tiles-request/tiles-request-portlet-wildcard/src/main/java/org/apache/tiles/request/portlet/wildcard/WildcardPortletApplicationContext.java b/tiles-request/tiles-request-portlet-wildcard/src/main/java/org/apache/tiles/request/portlet/wildcard/WildcardPortletApplicationContext.java
deleted file mode 100644
index c178932..0000000
--- a/tiles-request/tiles-request-portlet-wildcard/src/main/java/org/apache/tiles/request/portlet/wildcard/WildcardPortletApplicationContext.java
+++ /dev/null
@@ -1,116 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.tiles.request.portlet.wildcard;
-
-import java.io.IOException;
-import java.net.URL;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.Locale;
-
-import javax.portlet.PortletContext;
-
-import org.apache.tiles.request.ApplicationResource;
-import org.apache.tiles.request.locale.URLApplicationResource;
-import org.apache.tiles.request.portlet.PortletApplicationContext;
-import org.springframework.core.io.Resource;
-import org.springframework.core.io.support.ResourcePatternResolver;
-import org.springframework.web.portlet.context.PortletContextResourcePatternResolver;
-
-/**
- * Portlet-based implementation of the TilesApplicationContext interface that
- * can resolve resources even using wildcards.
- *
- * @version $Rev$ $Date$
- */
-public class WildcardPortletApplicationContext extends PortletApplicationContext {
-
-    /**
-     * The pattern resolver.
-     */
-    protected ResourcePatternResolver resolver;
-
-    /**
-     * Constructor.
-     *
-     * @param portletContext The portlet context.
-     */
-    public WildcardPortletApplicationContext(PortletContext portletContext) {
-        super(portletContext);
-    }
-
-    /** {@inheritDoc} */
-    @Override
-    public void initialize(PortletContext context) {
-        super.initialize(context);
-
-        resolver = new PortletContextResourcePatternResolver(context);
-    }
-
-    /** {@inheritDoc} */
-    @Override
-    public ApplicationResource getResource(String localePath) {
-        ApplicationResource retValue = null;
-        Collection<ApplicationResource> resourceSet = getResources(localePath);
-        if (resourceSet != null && !resourceSet.isEmpty()) {
-            retValue = resourceSet.iterator().next();
-        }
-        return retValue;
-    }
-
-    /** {@inheritDoc} */
-    @Override
-    public ApplicationResource getResource(ApplicationResource base, Locale locale) {
-        ApplicationResource retValue = null;
-        Collection<ApplicationResource> resourceSet = getResources(base.getLocalePath(locale));
-        if (resourceSet != null && !resourceSet.isEmpty()) {
-            retValue = resourceSet.iterator().next();
-        }
-        return retValue;
-    }
-
-    /** {@inheritDoc} */
-    @Override
-    public Collection<ApplicationResource> getResources(String path) {
-        Resource[] resources;
-        try {
-            resources = resolver.getResources(path);
-        } catch (IOException e) {
-            return Collections.<ApplicationResource> emptyList();
-        }
-        Collection<ApplicationResource> resourceList = new ArrayList<ApplicationResource>();
-        if (resources != null && resources.length > 0) {
-            for (int i = 0; i < resources.length; i++) {
-                URL url;
-                try {
-                    url = resources[i].getURL();
-                    resourceList.add(new URLApplicationResource(url.toExternalForm(), url));
-                } catch (IOException e) {
-                    // shouldn't happen with the kind of resources we're using
-                    throw new IllegalArgumentException("no URL for " + resources[i].toString(), e);
-                }
-            }
-        }
-        return resourceList;
-    }
-}
diff --git a/tiles-request/tiles-request-portlet-wildcard/src/main/java/org/apache/tiles/request/portlet/wildcard/package-info.java b/tiles-request/tiles-request-portlet-wildcard/src/main/java/org/apache/tiles/request/portlet/wildcard/package-info.java
deleted file mode 100644
index 45ca43b..0000000
--- a/tiles-request/tiles-request-portlet-wildcard/src/main/java/org/apache/tiles/request/portlet/wildcard/package-info.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/*
- * $Id: package-info.java 1049711 2010-12-15 21:12:00Z apetrelli $
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-/**
- * Classes and interfaces that allow to access the various contexts from a portlet
- * application. These classes can manage resource getting through the use of
- * Spring-like wildcards patterns.
- */
-package org.apache.tiles.request.portlet.wildcard;
diff --git a/tiles-request/tiles-request-portlet-wildcard/src/site/site.xml b/tiles-request/tiles-request-portlet-wildcard/src/site/site.xml
deleted file mode 100644
index 8e92dd7..0000000
--- a/tiles-request/tiles-request-portlet-wildcard/src/site/site.xml
+++ /dev/null
@@ -1,56 +0,0 @@
-<?xml version="1.0" encoding="ISO-8859-1"?>
-<!--
-/*
- * $Id: site.xml 1081442 2011-03-14 16:21:08Z apetrelli $
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
--->
-<project name="Apache - Request Microframework">
-    <bannerLeft>
-        <name>Apache Software Foundation</name>
-        <src>http://www.apache.org/images/asf-logo.gif</src>
-        <href>http://www.apache.org</href>
-    </bannerLeft>
-    <bannerRight>
-        <name>Apache Tiles&#8482;</name>
-        <src>http://tiles.apache.org/images/logo.png</src>
-        <href>http://tiles.apache.org</href>
-    </bannerRight>
-    <body>
-
-        <links>
-            <item name="Apache" href="http://www.apache.org" />
-            <item name="Tiles" href="http://tiles.apache.org" />
-        </links>
-
-
-        <menu name="Apache Tiles&#8482;">
-            <item
-                   name="Tiles Home"
-                   href="../../index.html"/>
-            <item
-                   name="Request Microframework"
-                   href="../index.html"/>
-        </menu>
-
-        <menu ref="modules" />
-        <menu ref="reports" />
-
-    </body>
-</project>
diff --git a/tiles-request/tiles-request-portlet-wildcard/src/test/java/org/apache/tiles/request/portlet/wildcard/WildcardPortletApplicationContextTest.java b/tiles-request/tiles-request-portlet-wildcard/src/test/java/org/apache/tiles/request/portlet/wildcard/WildcardPortletApplicationContextTest.java
deleted file mode 100644
index 1bf84f5..0000000
--- a/tiles-request/tiles-request-portlet-wildcard/src/test/java/org/apache/tiles/request/portlet/wildcard/WildcardPortletApplicationContextTest.java
+++ /dev/null
@@ -1,160 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.request.portlet.wildcard;
-
-import java.io.File;
-import java.io.IOException;
-import java.net.MalformedURLException;
-import java.net.URL;
-import java.util.Enumeration;
-import java.util.HashSet;
-import java.util.Set;
-import java.util.Vector;
-
-import javax.portlet.PortletContext;
-
-import junit.framework.TestCase;
-
-import org.apache.tiles.request.locale.URLApplicationResource;
-import org.easymock.EasyMock;
-
-
-/**
- * Tests {@link WildcardPortletApplicationContext}.
- *
- * @version $Rev$ $Date$
- */
-public class WildcardPortletApplicationContextTest extends TestCase {
-
-    /**
-     * Number of properties container inside the test.properties file.
-     */
-    private static final int TEST_PROPERTIES_SIZE = 3;
-
-    /**
-     * Number of test classes.
-     */
-    private static final int TEST_TEST_SIZE = 1;
-
-    /**
-     * The root Tiles application context.
-     */
-    private PortletContext portletContext;
-
-    /**
-     * The enhanced Tiles application context.
-     */
-    private WildcardPortletApplicationContext context;
-
-    /**
-     * The original class loader.
-     */
-    private ClassLoader original;
-
-    /** {@inheritDoc} */
-    @Override
-    public void setUp() {
-        portletContext = EasyMock.createMock(PortletContext.class);
-        original = Thread.currentThread().getContextClassLoader();
-        try {
-            Thread.currentThread().setContextClassLoader(new MockClassLoader());
-        } catch (MalformedURLException e) {
-            throw new RuntimeException("Error when using the mock classloader");
-        }
-        context = new WildcardPortletApplicationContext(portletContext);
-    }
-
-    /** {@inheritDoc} */
-    @Override
-    protected void tearDown() {
-        Thread.currentThread().setContextClassLoader(original);
-    }
-
-    /**
-     * Tests resource getting.
-     *
-     * @throws IOException If something goes wrong.
-     */
-    public void testGetResources() throws IOException {
-        String url = "test.properties";
-        HashSet<URL> set = new HashSet<URL>();
-        URL u = new URL("file://tiles/test.properties");
-        set.add(u);
-        EasyMock.expect(portletContext.getResource("/" + url)).andReturn(u)
-                .anyTimes();
-        File dir = new File(".");
-        EasyMock.expect(portletContext.getResource("/WEB-INF/")).andReturn(
-                dir.toURI().toURL());
-        URL pomUrl = new URL("file://tiles/pom.xml");
-        EasyMock.expect(portletContext.getResource("/WEB-INF/pom.xml"))
-                .andReturn(pomUrl);
-        Set<String> elementSet = new HashSet<String>();
-        elementSet.add("/WEB-INF/pom.xml");
-        EasyMock.expect(portletContext.getResourcePaths("/WEB-INF/")).andReturn(elementSet);
-        EasyMock.replay(portletContext);
-
-        assertEquals(new URLApplicationResource(u.toExternalForm(), u), context.getResource("/" + url));
-        assertEquals(new URLApplicationResource(pomUrl.toExternalForm(), pomUrl), context.getResource("/WEB-INF/*.xml"));
-        assertEquals(TEST_PROPERTIES_SIZE, context.getResources(
-                "classpath*:/test.properties").size());
-
-        assertEquals(TEST_TEST_SIZE, context.getResources(
-                "classpath*:/org/apache/tiles/request/portlet/wildcard/*Test.class").size());
-        EasyMock.verify(portletContext);
-    }
-
-    /**
-     * An mock class loader.
-     */
-    public class MockClassLoader extends ClassLoader {
-
-        /**
-         * A vector of resources.
-         */
-        private Vector<URL> testPropertiesResources;
-
-        /**
-         * Constructor.
-         *
-         * @throws MalformedURLException If the URL is not valid (that should
-         * not happen).
-         */
-        public MockClassLoader() throws MalformedURLException {
-            testPropertiesResources = new Vector<URL>();
-            testPropertiesResources.add(new URL("file://tiles/test/test.properties"));
-            testPropertiesResources.add(new URL("file://tiles/two/test.properties"));
-            testPropertiesResources.add(new URL("file://tiles/three/test.properties"));
-        }
-
-        /** {@inheritDoc} */
-        @Override
-        public Enumeration<URL> findResources(String path) throws IOException {
-            Enumeration<URL> retValue = null;
-            if ("test.properties".equals(path)) {
-                retValue = testPropertiesResources.elements();
-            } else {
-                retValue = super.findResources(path);
-            }
-
-            return retValue;
-        }
-    }
-}
diff --git a/tiles-request/tiles-request-portlet/pom.xml b/tiles-request/tiles-request-portlet/pom.xml
deleted file mode 100644
index 6941891..0000000
--- a/tiles-request/tiles-request-portlet/pom.xml
+++ /dev/null
@@ -1,119 +0,0 @@
-<?xml version="1.0"?>
-<!--
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
--->
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
-
-  <parent>
-    <groupId>org.apache.tiles</groupId>
-    <artifactId>tiles-request</artifactId>
-    <version>1.0-SNAPSHOT</version>
-  </parent>
-
-  <modelVersion>4.0.0</modelVersion>
-  <artifactId>tiles-request-portlet</artifactId>
-  <version>1.0-SNAPSHOT</version>
-  <packaging>jar</packaging>
-  <name>Tiles - Portlet support</name>
-  <description>Tiles portlet support, to enable use of Tiles inside a Portlet container.
-  </description>
-
-  <properties>
-      <tiles.osgi.symbolicName>org.apache.tiles.portlet</tiles.osgi.symbolicName>
-  </properties>
-
-  <build>
-    <resources>
-      <resource>
-        <directory>src/main/resources</directory>
-        <excludes>
-          <exclude>LICENSE.txt</exclude>
-          <exclude>NOTICE.txt</exclude>
-        </excludes>
-      </resource>
-      <resource>
-        <directory>src/main/resources</directory>
-        <includes>
-          <include>LICENSE.txt</include>
-          <include>NOTICE.txt</include>
-        </includes>
-        <targetPath>META-INF</targetPath>
-      </resource>
-    </resources>
-
-  </build>
-
-  <dependencies>
-    <dependency>
-      <groupId>org.apache.tiles</groupId>
-      <artifactId>tiles-request-api</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.tiles</groupId>
-      <artifactId>tiles-request-servlet</artifactId>
-    </dependency>
-
-    <dependency>
-      <groupId>org.slf4j</groupId>
-      <artifactId>slf4j-jdk14</artifactId>
-      <optional>true</optional>
-    </dependency>
-
-    <dependency>
-      <groupId>javax.portlet</groupId>
-      <artifactId>portlet-api</artifactId>
-      <scope>provided</scope>
-    </dependency>
-
-    <dependency>
-      <groupId>junit</groupId>
-      <artifactId>junit</artifactId>
-      <scope>test</scope>
-    </dependency>
-
-    <dependency>
-      <groupId>org.easymock</groupId>
-      <artifactId>easymock</artifactId>
-      <scope>test</scope>
-    </dependency>
-
-    <dependency>
-      <groupId>org.easymock</groupId>
-      <artifactId>easymockclassextension</artifactId>
-      <scope>test</scope>
-    </dependency>
-
-    <dependency>
-      <groupId>javax.servlet</groupId>
-      <artifactId>servlet-api</artifactId>
-      <scope>test</scope>
-    </dependency>
-
-    <dependency>
-      <groupId>org.apache.shale</groupId>
-      <artifactId>shale-test</artifactId>
-      <scope>test</scope>
-    </dependency>
-
-  </dependencies>
-
-</project>
diff --git a/tiles-request/tiles-request-portlet/src/main/java/org/apache/tiles/request/portlet/ActionPortletRequest.java b/tiles-request/tiles-request-portlet/src/main/java/org/apache/tiles/request/portlet/ActionPortletRequest.java
deleted file mode 100644
index e927788..0000000
--- a/tiles-request/tiles-request-portlet/src/main/java/org/apache/tiles/request/portlet/ActionPortletRequest.java
+++ /dev/null
@@ -1,52 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.request.portlet;
-
-import javax.portlet.ActionRequest;
-import javax.portlet.ActionResponse;
-import javax.portlet.PortletContext;
-
-import org.apache.tiles.request.ApplicationContext;
-import org.apache.tiles.request.portlet.delegate.StateAwareRequestDelegate;
-import org.apache.tiles.request.portlet.delegate.StateAwareResponseDelegate;
-
-/**
- * Portlet request for an {@link ActionRequest}.
- *
- * @version $Rev$ $Date$
- */
-public class ActionPortletRequest extends PortletRequest {
-
-    /**
-     * Constructor.
-     *
-     * @param applicationContext The application context.
-     * @param context The portlet context.
-     * @param request The portlet request.
-     * @param response The portlet response.
-     */
-    public ActionPortletRequest(ApplicationContext applicationContext,
-            PortletContext context, ActionRequest request, ActionResponse response) {
-        super(applicationContext, context, request, response,
-                new StateAwareRequestDelegate(request, response),
-                new StateAwareResponseDelegate());
-    }
-}
diff --git a/tiles-request/tiles-request-portlet/src/main/java/org/apache/tiles/request/portlet/EventPortletRequest.java b/tiles-request/tiles-request-portlet/src/main/java/org/apache/tiles/request/portlet/EventPortletRequest.java
deleted file mode 100644
index 0855375..0000000
--- a/tiles-request/tiles-request-portlet/src/main/java/org/apache/tiles/request/portlet/EventPortletRequest.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.request.portlet;
-
-import javax.portlet.EventRequest;
-import javax.portlet.EventResponse;
-import javax.portlet.PortletContext;
-
-import org.apache.tiles.request.ApplicationContext;
-import org.apache.tiles.request.portlet.delegate.StateAwareRequestDelegate;
-import org.apache.tiles.request.portlet.delegate.StateAwareResponseDelegate;
-
-/**
- * Portlet request for an {@link EventRequest}.
- *
- * @version $Rev$ $Date$
- */
-public class EventPortletRequest extends PortletRequest {
-
-    /**
-     * Constructor.
-     *
-     * @param applicationContext The application context.
-     * @param context The portlet context.
-     * @param request The portlet request.
-     * @param response The portlet response.
-     */
-    public EventPortletRequest(ApplicationContext applicationContext,
-            PortletContext context, EventRequest request,
-            EventResponse response) {
-        super(applicationContext, context, request, response,
-                new StateAwareRequestDelegate(request, response),
-                new StateAwareResponseDelegate());
-    }
-}
diff --git a/tiles-request/tiles-request-portlet/src/main/java/org/apache/tiles/request/portlet/PortletApplicationContext.java b/tiles-request/tiles-request-portlet/src/main/java/org/apache/tiles/request/portlet/PortletApplicationContext.java
deleted file mode 100644
index 95bb31a..0000000
--- a/tiles-request/tiles-request-portlet/src/main/java/org/apache/tiles/request/portlet/PortletApplicationContext.java
+++ /dev/null
@@ -1,152 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.request.portlet;
-
-import java.net.MalformedURLException;
-import java.net.URL;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Locale;
-import java.util.Map;
-
-import javax.portlet.PortletContext;
-
-import org.apache.tiles.request.ApplicationContext;
-import org.apache.tiles.request.ApplicationResource;
-import org.apache.tiles.request.collection.ReadOnlyEnumerationMap;
-import org.apache.tiles.request.collection.ScopeMap;
-import org.apache.tiles.request.locale.URLApplicationResource;
-import org.apache.tiles.request.portlet.extractor.ApplicationScopeExtractor;
-import org.apache.tiles.request.portlet.extractor.InitParameterExtractor;
-
-/**
- * Portlet-based TilesApplicationContext implementation.
- *
- * @version $Rev$ $Date$
- */
-public class PortletApplicationContext implements ApplicationContext {
-
-    /**
-     * <p>The lazily instantiated <code>Map</code> of application scope
-     * attributes.</p>
-     */
-    private Map<String, Object> applicationScope = null;
-
-    /**
-     * <p>The <code>PortletContext</code> for this web application.</p>
-     */
-    protected PortletContext context = null;
-
-    /**
-     * <p>The lazily instantiated <code>Map</code> of context initialization
-     * parameters.</p>
-     */
-    private Map<String, String> initParam = null;
-
-    /**
-     * Creates a new instance of PortletTilesApplicationContext.
-     *
-     * @param context The portlet context to use.
-     */
-    public PortletApplicationContext(PortletContext context) {
-        initialize(context);
-    }
-
-    /** {@inheritDoc} */
-    public Object getContext() {
-        return context;
-    }
-
-    /**
-     * <p>Initialize (or reinitialize) this {@link PortletApplicationContext} instance
-     * for the specified Portlet API objects.</p>
-     *
-     * @param context The <code>PortletContext</code> for this web application
-     */
-    public void initialize(PortletContext context) {
-
-        // Save the specified Portlet API object references
-        this.context = context;
-
-    }
-
-    /**
-     * <p>Return the {@link PortletContext} for this context.</p>
-     *
-     * @return The original portlet context.
-     */
-    public PortletContext getPortletContext() {
-        return (this.context);
-    }
-
-    /** {@inheritDoc} */
-    public Map<String, Object> getApplicationScope() {
-        if ((applicationScope == null) && (context != null)) {
-            applicationScope = new ScopeMap(new ApplicationScopeExtractor(context));
-        }
-        return (applicationScope);
-
-    }
-
-    /** {@inheritDoc} */
-    public Map<String, String> getInitParams() {
-        if ((initParam == null) && (context != null)) {
-            initParam = new ReadOnlyEnumerationMap<String>(new InitParameterExtractor(context));
-        }
-        return (initParam);
-
-    }
-
-    /** {@inheritDoc} */
-    public ApplicationResource getResource(String localePath) {
-        try {
-            URL url = context.getResource(localePath);
-            if (url != null) {
-                return new URLApplicationResource(localePath, url);
-            } else {
-                return null;
-            }
-        } catch (MalformedURLException e) {
-            return null;
-        }
-    }
-
-    /** {@inheritDoc} */
-    public ApplicationResource getResource(ApplicationResource base, Locale locale) {
-        try {
-            URL url = context.getResource(base.getLocalePath(locale));
-            if (url != null) {
-                return new URLApplicationResource(base.getPath(), locale, url);
-            } else {
-                return null;
-            }
-        } catch (MalformedURLException e) {
-            return null;
-        }
-    }
-
-    /** {@inheritDoc} */
-    public Collection<ApplicationResource> getResources(String path) {
-        ArrayList<ApplicationResource> resources = new ArrayList<ApplicationResource>();
-        resources.add(getResource(path));
-        return resources;
-    }
-}
diff --git a/tiles-request/tiles-request-portlet/src/main/java/org/apache/tiles/request/portlet/PortletRequest.java b/tiles-request/tiles-request-portlet/src/main/java/org/apache/tiles/request/portlet/PortletRequest.java
deleted file mode 100644
index fa13cc3..0000000
--- a/tiles-request/tiles-request-portlet/src/main/java/org/apache/tiles/request/portlet/PortletRequest.java
+++ /dev/null
@@ -1,337 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.request.portlet;
-
-import java.io.IOException;
-import java.io.OutputStream;
-import java.io.PrintWriter;
-import java.io.Writer;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.List;
-import java.util.Locale;
-import java.util.Map;
-
-import javax.portlet.PortletContext;
-import javax.portlet.PortletException;
-import javax.portlet.PortletRequestDispatcher;
-import javax.portlet.PortletResponse;
-import javax.portlet.PortletSession;
-
-import org.apache.tiles.request.AbstractClientRequest;
-import org.apache.tiles.request.ApplicationContext;
-import org.apache.tiles.request.attribute.Addable;
-import org.apache.tiles.request.collection.HeaderValuesMap;
-import org.apache.tiles.request.collection.ReadOnlyEnumerationMap;
-import org.apache.tiles.request.collection.ScopeMap;
-import org.apache.tiles.request.portlet.delegate.RequestDelegate;
-import org.apache.tiles.request.portlet.delegate.ResponseDelegate;
-import org.apache.tiles.request.portlet.extractor.HeaderExtractor;
-import org.apache.tiles.request.portlet.extractor.RequestScopeExtractor;
-import org.apache.tiles.request.portlet.extractor.SessionScopeExtractor;
-
-/**
- * Portlet-based TilesApplicationContext implementation.
- *
- * @version $Rev$ $Date$
- */
-public class PortletRequest extends AbstractClientRequest {
-
-    /**
-     * The native available scopes.
-     */
-    private static final List<String> SCOPES
-            = Collections.unmodifiableList(Arrays.asList("request", "portletSession", "session", "application"));
-
-    /**
-     * <p>The lazily instantiated <code>Map</code> of header name-value
-     * combinations (immutable).</p>
-     */
-    private Map<String, String> header = null;
-
-
-    /**
-     * <p>The lazily instantiated <code>Map</code> of header name-value
-     * combinations (write-only).</p>
-     */
-    private Addable<String> responseHeaders = null;
-
-
-    /**
-     * <p>The lazily instantitated <code>Map</code> of header name-values
-     * combinations (immutable).</p>
-     */
-    private Map<String, String[]> headerValues = null;
-
-    /**
-     * The <code>PortletContext</code> for this application.
-     */
-    protected PortletContext context = null;
-
-    /**
-     * <p>The <code>PortletRequest</code> for this request.</p>
-     */
-    protected javax.portlet.PortletRequest request = null;
-
-    /**
-     * The delegate to get information about parameters.
-     */
-    protected RequestDelegate requestDelegate;
-
-
-    /**
-     * <p>The lazily instantiated <code>Map</code> of request scope
-     * attributes.</p>
-     */
-    private Map<String, Object> requestScope = null;
-
-
-    /**
-     * <p>The <code>PortletResponse</code> for this request.</p>
-     */
-    protected PortletResponse response = null;
-
-    /**
-     * The delegate to get information from a response (output stream, writer, etc.).
-     */
-    protected ResponseDelegate responseDelegate;
-
-
-    /**
-     * <p>The lazily instantiated <code>Map</code> of session scope
-     * attributes.</p>
-     */
-    private Map<String, Object> sessionScope = null;
-
-    /**
-     * <p>The lazily instantiated <code>Map</code> of portlet session scope
-     * attributes.</p>
-     */
-    private Map<String, Object> portletSessionScope = null;
-
-
-    /**
-     * Creates a new instance of PortletTilesRequestContext.
-     *
-     * @param applicationContext The Tiles application context.
-     * @param context The portlet context to use.
-     * @param request The request object to use.
-     * @param response The response object to use.
-     * @param requestDelegate The request delegate.
-     * @param responseDelegate The response delegate.
-     */
-    public PortletRequest(ApplicationContext applicationContext,
-            PortletContext context, javax.portlet.PortletRequest request,
-            PortletResponse response, RequestDelegate requestDelegate, ResponseDelegate responseDelegate) {
-        super(applicationContext);
-
-        // Save the specified Portlet API object references
-        this.context = context;
-        this.request = request;
-        this.response = response;
-        this.requestDelegate = requestDelegate;
-        this.responseDelegate = responseDelegate;
-    }
-
-    /**
-     * <p>Return the {@link PortletRequest} for this context.</p>
-     *
-     * @return The used portlet request.
-     */
-    public javax.portlet.PortletRequest getRequest() {
-        return (this.request);
-    }
-
-    /**
-     * <p>Return the {@link PortletResponse} for this context.</p>
-     *
-     * @return The used portlet response.
-     */
-    public PortletResponse getResponse() {
-        return (this.response);
-    }
-
-    /**
-     * Returns the portlet context.
-     *
-     * @return The portlet context.
-     */
-    public PortletContext getPortletContext() {
-        return context;
-    }
-
-    /** {@inheritDoc} */
-    public Map<String, String> getHeader() {
-        if ((header == null) && (request != null)) {
-            header = new ReadOnlyEnumerationMap<String>(new HeaderExtractor(request, null));
-        }
-        return (header);
-    }
-
-    /** {@inheritDoc} */
-    public Addable<String> getResponseHeaders() {
-        if ((responseHeaders == null) && (request != null)) {
-            responseHeaders = new HeaderExtractor(null, response);
-        }
-        return (responseHeaders);
-    }
-
-    /** {@inheritDoc} */
-    public Map<String, String[]> getHeaderValues() {
-        if ((headerValues == null) && (request != null)) {
-            headerValues = new HeaderValuesMap(new HeaderExtractor(request, response));
-        }
-        return (headerValues);
-    }
-
-    /** {@inheritDoc} */
-    public Map<String, Object> getRequestScope() {
-        if ((requestScope == null) && (request != null)) {
-            requestScope = new ScopeMap(new RequestScopeExtractor(request));
-        }
-        return (requestScope);
-    }
-
-    /** {@inheritDoc} */
-    public Map<String, Object> getSessionScope() {
-        if ((sessionScope == null) && (request != null)) {
-            sessionScope = new ScopeMap(new SessionScopeExtractor(request,
-                    PortletSession.APPLICATION_SCOPE));
-        }
-        return (sessionScope);
-    }
-
-    /** {@inheritDoc} */
-    public Map<String, Object> getPortletSessionScope() {
-        if ((portletSessionScope == null) && (request != null)) {
-            portletSessionScope = new ScopeMap(new SessionScopeExtractor(
-                    request, PortletSession.APPLICATION_SCOPE));
-        }
-        return (portletSessionScope);
-    }
-
-    @Override
-    public List<String> getAvailableScopes() {
-        return SCOPES;
-    }
-
-    /** {@inheritDoc} */
-    public Locale getRequestLocale() {
-        return request.getLocale();
-    }
-
-    @Override
-    public Map<String, String> getParam() {
-        return requestDelegate.getParam();
-    }
-
-    @Override
-    public Map<String, String[]> getParamValues() {
-        return requestDelegate.getParamValues();
-    }
-
-    /** {@inheritDoc} */
-    public boolean isUserInRole(String role) {
-        return request.isUserInRole(role);
-    }
-
-    @Override
-    public OutputStream getOutputStream() throws IOException {
-        return responseDelegate.getOutputStream();
-    }
-
-    @Override
-    public PrintWriter getPrintWriter() throws IOException {
-        return responseDelegate.getPrintWriter();
-    }
-
-    @Override
-    public Writer getWriter() throws IOException {
-        return responseDelegate.getWriter();
-    }
-
-    @Override
-    public boolean isResponseCommitted() {
-        return responseDelegate.isResponseCommitted();
-    }
-
-    @Override
-    public void setContentType(String contentType) {
-        responseDelegate.setContentType(contentType);
-    }
-
-    /** {@inheritDoc} */
-    public void doForward(String path) throws IOException {
-        if (responseDelegate.isResponseCommitted()) {
-            doInclude(path);
-            return;
-        }
-
-        try {
-            PortletRequestDispatcher rd = getPortletContext()
-                    .getRequestDispatcher(path);
-
-            if (rd == null) {
-                throw new IOException(
-                        "No portlet request dispatcher returned for path '"
-                                + path + "'");
-            }
-
-            rd.forward(request, response);
-        } catch (PortletException e) {
-            throw new IOException("PortletException while including path '"
-                    + path + "'.", e);
-        }
-    }
-
-    /** {@inheritDoc} */
-    public void doInclude(String path) throws IOException {
-        try {
-            PortletRequestDispatcher rd = getPortletContext()
-                    .getRequestDispatcher(path);
-
-            if (rd == null) {
-                throw new IOException(
-                        "No portlet request dispatcher returned for path '"
-                                + path + "'");
-            }
-
-            rd.include(request, response);
-        } catch (PortletException e) {
-            throw new IOException("PortletException while including path '"
-                    + path + "'.", e);
-        }
-    }
-
-    @Override
-    public Map<String, Object> getContext(String scope) {
-        if("request".equals(scope)){
-            return getRequestScope();
-        }else if("application".equals(scope)){
-            return getApplicationScope();
-        }else if("portletSession".equals(scope)){
-            return getPortletSessionScope();
-        }else if("application".equals(scope)){
-            return getApplicationScope();
-        }
-        throw new IllegalArgumentException(scope + " does not exist. Call getAvailableScopes() first to check.");
-    }
-}
diff --git a/tiles-request/tiles-request-portlet/src/main/java/org/apache/tiles/request/portlet/RenderPortletRequest.java b/tiles-request/tiles-request-portlet/src/main/java/org/apache/tiles/request/portlet/RenderPortletRequest.java
deleted file mode 100644
index 0eb5117..0000000
--- a/tiles-request/tiles-request-portlet/src/main/java/org/apache/tiles/request/portlet/RenderPortletRequest.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.request.portlet;
-
-import javax.portlet.PortletContext;
-import javax.portlet.RenderRequest;
-import javax.portlet.RenderResponse;
-
-import org.apache.tiles.request.ApplicationContext;
-import org.apache.tiles.request.portlet.delegate.MimeResponseDelegate;
-import org.apache.tiles.request.portlet.delegate.PortletRequestDelegate;
-
-/**
- * Portlet request for a {@link RenderRequest}.
- *
- * @version $Rev$ $Date$
- */
-public class RenderPortletRequest extends PortletRequest {
-
-    /**
-     * Constructor.
-     *
-     * @param applicationContext The application context.
-     * @param context The portlet context.
-     * @param request The portlet request.
-     * @param response The portlet response.
-     */
-    public RenderPortletRequest(ApplicationContext applicationContext,
-            PortletContext context, RenderRequest request,
-            RenderResponse response) {
-        super(applicationContext, context, request, response,
-                new PortletRequestDelegate(request), new MimeResponseDelegate(
-                        response));
-    }
-}
diff --git a/tiles-request/tiles-request-portlet/src/main/java/org/apache/tiles/request/portlet/ResourcePortletRequest.java b/tiles-request/tiles-request-portlet/src/main/java/org/apache/tiles/request/portlet/ResourcePortletRequest.java
deleted file mode 100644
index 7870287..0000000
--- a/tiles-request/tiles-request-portlet/src/main/java/org/apache/tiles/request/portlet/ResourcePortletRequest.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.request.portlet;
-
-import javax.portlet.PortletContext;
-import javax.portlet.ResourceRequest;
-import javax.portlet.ResourceResponse;
-
-import org.apache.tiles.request.ApplicationContext;
-import org.apache.tiles.request.portlet.delegate.MimeResponseDelegate;
-import org.apache.tiles.request.portlet.delegate.PortletRequestDelegate;
-
-/**
- * Portlet request for a {@link ResourceRequest}.
- *
- * @version $Rev$ $Date$
- */
-public class ResourcePortletRequest extends PortletRequest {
-
-    /**
-     * Constructor.
-     *
-     * @param applicationContext The application context.
-     * @param context The portlet context.
-     * @param request The portlet request.
-     * @param response The portlet response.
-     */
-    public ResourcePortletRequest(ApplicationContext applicationContext,
-            PortletContext context, ResourceRequest request,
-            ResourceResponse response) {
-        super(applicationContext, context, request, response,
-                new PortletRequestDelegate(request), new MimeResponseDelegate(
-                        response));
-    }
-}
diff --git a/tiles-request/tiles-request-portlet/src/main/java/org/apache/tiles/request/portlet/delegate/MimeResponseDelegate.java b/tiles-request/tiles-request-portlet/src/main/java/org/apache/tiles/request/portlet/delegate/MimeResponseDelegate.java
deleted file mode 100644
index f9b6ac4..0000000
--- a/tiles-request/tiles-request-portlet/src/main/java/org/apache/tiles/request/portlet/delegate/MimeResponseDelegate.java
+++ /dev/null
@@ -1,75 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.request.portlet.delegate;
-
-import java.io.IOException;
-import java.io.OutputStream;
-import java.io.PrintWriter;
-import java.io.Writer;
-
-import javax.portlet.MimeResponse;
-
-/**
- * Response delegate in case of {@link MimeResponse}.
- *
- * @version $Rev$ $Date$
- */
-public class MimeResponseDelegate implements ResponseDelegate {
-
-    /**
-     * The response.
-     */
-    private MimeResponse response;
-
-    /**
-     * Constructor.
-     *
-     * @param response The response.
-     */
-    public MimeResponseDelegate(MimeResponse response) {
-        this.response = response;
-    }
-
-    /** {@inheritDoc} */
-    public OutputStream getOutputStream() throws IOException {
-        return response.getPortletOutputStream();
-    }
-
-    /** {@inheritDoc} */
-    public PrintWriter getPrintWriter() throws IOException {
-        return response.getWriter();
-    }
-
-    /** {@inheritDoc} */
-    public Writer getWriter() throws IOException {
-        return response.getWriter();
-    }
-
-    /** {@inheritDoc} */
-    public boolean isResponseCommitted() {
-        return response.isCommitted();
-    }
-
-    /** {@inheritDoc} */
-    public void setContentType(String contentType) {
-        response.setContentType(contentType);
-    }
-}
diff --git a/tiles-request/tiles-request-portlet/src/main/java/org/apache/tiles/request/portlet/delegate/PortletRequestDelegate.java b/tiles-request/tiles-request-portlet/src/main/java/org/apache/tiles/request/portlet/delegate/PortletRequestDelegate.java
deleted file mode 100644
index cb7ff69..0000000
--- a/tiles-request/tiles-request-portlet/src/main/java/org/apache/tiles/request/portlet/delegate/PortletRequestDelegate.java
+++ /dev/null
@@ -1,78 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.request.portlet.delegate;
-
-import java.util.Map;
-
-import javax.portlet.PortletRequest;
-
-import org.apache.tiles.request.collection.ReadOnlyEnumerationMap;
-import org.apache.tiles.request.portlet.extractor.ParameterExtractor;
-
-/**
- * Request delegate in case of simple Portlet request.
- *
- * @version $Rev$ $Date$
- */
-public class PortletRequestDelegate implements RequestDelegate {
-
-    /**
-     * The request.
-     */
-    private PortletRequest request;
-
-    /**
-     * <p>The lazily instantiated <code>Map</code> of request
-     * parameter name-value.</p>
-     */
-    private Map<String, String> param = null;
-
-    /**
-     * <p>The lazily instantiated <code>Map</code> of request
-     * parameter name-values.</p>
-     */
-    private Map<String, String[]> paramValues = null;
-
-    /**
-     * Constructor.
-     *
-     * @param request The request.
-     */
-    public PortletRequestDelegate(PortletRequest request) {
-        this.request = request;
-    }
-
-    /** {@inheritDoc} */
-    public Map<String, String> getParam() {
-        if ((param == null) && (request != null)) {
-            param = new ReadOnlyEnumerationMap<String>(new ParameterExtractor(request));
-        }
-        return (param);
-    }
-
-    /** {@inheritDoc} */
-    public Map<String, String[]> getParamValues() {
-        if ((paramValues == null) && (request != null)) {
-            paramValues = request.getParameterMap();
-        }
-        return (paramValues);
-    }
-}
diff --git a/tiles-request/tiles-request-portlet/src/main/java/org/apache/tiles/request/portlet/delegate/RequestDelegate.java b/tiles-request/tiles-request-portlet/src/main/java/org/apache/tiles/request/portlet/delegate/RequestDelegate.java
deleted file mode 100644
index e7b9e97..0000000
--- a/tiles-request/tiles-request-portlet/src/main/java/org/apache/tiles/request/portlet/delegate/RequestDelegate.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.request.portlet.delegate;
-
-import java.util.Map;
-
-/**
- * Exposes the parameters of a portlet request, if available.
- *
- * @version $Rev$ $Date$
- */
-public interface RequestDelegate {
-
-    /**
-     * The parameters, as single values.
-     *
-     * @return The parameters.
-     */
-    Map<String, String> getParam();
-
-    /**
-     * The parameters, with values as array of strings.
-     *
-     * @return The parameters.
-     */
-    Map<String, String[]> getParamValues();
-}
diff --git a/tiles-request/tiles-request-portlet/src/main/java/org/apache/tiles/request/portlet/delegate/ResponseDelegate.java b/tiles-request/tiles-request-portlet/src/main/java/org/apache/tiles/request/portlet/delegate/ResponseDelegate.java
deleted file mode 100644
index b7afb5a..0000000
--- a/tiles-request/tiles-request-portlet/src/main/java/org/apache/tiles/request/portlet/delegate/ResponseDelegate.java
+++ /dev/null
@@ -1,72 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.request.portlet.delegate;
-
-import java.io.IOException;
-import java.io.OutputStream;
-import java.io.PrintWriter;
-import java.io.Writer;
-
-/**
- * Exposes features of a response, if they are available.
- *
- * @version $Rev$ $Date$
- */
-public interface ResponseDelegate {
-
-    /**
-     * Returns the output stream.
-     *
-     * @return The output stream.
-     * @throws IOException If the underlying response causes a problem.
-     */
-    OutputStream getOutputStream() throws IOException;
-
-    /**
-     * Returns the print writer.
-     *
-     * @return The print writer.
-     * @throws IOException If the underlying response causes a problem.
-     */
-    PrintWriter getPrintWriter() throws IOException;
-
-    /**
-     * Returns the writer.
-     *
-     * @return The writer.
-     * @throws IOException If the underlying response causes a problem.
-     */
-    Writer getWriter() throws IOException;
-
-    /**
-     * Sets the content type of the response.
-     *
-     * @param contentType The content type.
-     */
-    void setContentType(String contentType);
-
-    /**
-     * Checks if the response is committed.
-     *
-     * @return <code>true</code> if the response is committed.
-     */
-    boolean isResponseCommitted();
-}
diff --git a/tiles-request/tiles-request-portlet/src/main/java/org/apache/tiles/request/portlet/delegate/StateAwareParameterMap.java b/tiles-request/tiles-request-portlet/src/main/java/org/apache/tiles/request/portlet/delegate/StateAwareParameterMap.java
deleted file mode 100644
index 1930815..0000000
--- a/tiles-request/tiles-request-portlet/src/main/java/org/apache/tiles/request/portlet/delegate/StateAwareParameterMap.java
+++ /dev/null
@@ -1,115 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.request.portlet.delegate;
-
-import java.util.Collection;
-import java.util.Map;
-import java.util.Set;
-
-/**
- * Parameter map to be used when the response is a {@link javax.portlet.StateAwareResponse}.
- *
- * @version $Rev$ $Date$
- */
-public class StateAwareParameterMap implements Map<String, String[]> {
-
-    /**
-     * The request parameter map.
-     */
-    private Map<String, String[]> requestMap;
-
-    /**
-     * The response parameter map.
-     */
-    private Map<String, String[]> responseMap;
-
-    /**
-     * Constructor.
-     *
-     * @param requestMap The request parameter map.
-     * @param responseMap The response parameter map.
-     */
-    public StateAwareParameterMap(Map<String, String[]> requestMap,
-            Map<String, String[]> responseMap) {
-        this.requestMap = requestMap;
-        this.responseMap = responseMap;
-    }
-
-    @Override
-    public void clear() {
-        responseMap.clear();
-    }
-
-    @Override
-    public boolean containsKey(Object key) {
-        return requestMap.containsKey(key);
-    }
-
-    @Override
-    public boolean containsValue(Object value) {
-        return requestMap.containsValue(value);
-    }
-
-    @Override
-    public Set<java.util.Map.Entry<String, String[]>> entrySet() {
-        return requestMap.entrySet();
-    }
-
-    @Override
-    public String[] get(Object key) {
-        return requestMap.get(key);
-    }
-
-    @Override
-    public boolean isEmpty() {
-        return requestMap.isEmpty();
-    }
-
-    @Override
-    public Set<String> keySet() {
-        return requestMap.keySet();
-    }
-
-    @Override
-    public String[] put(String key, String[] value) {
-        return responseMap.put(key, value);
-    }
-
-    @Override
-    public void putAll(Map<? extends String, ? extends String[]> m) {
-        responseMap.putAll(m);
-    }
-
-    @Override
-    public String[] remove(Object key) {
-        return responseMap.remove(key);
-    }
-
-    @Override
-    public int size() {
-        return requestMap.size();
-    }
-
-    @Override
-    public Collection<String[]> values() {
-        return requestMap.values();
-    }
-}
diff --git a/tiles-request/tiles-request-portlet/src/main/java/org/apache/tiles/request/portlet/delegate/StateAwareRequestDelegate.java b/tiles-request/tiles-request-portlet/src/main/java/org/apache/tiles/request/portlet/delegate/StateAwareRequestDelegate.java
deleted file mode 100644
index 854c0cc..0000000
--- a/tiles-request/tiles-request-portlet/src/main/java/org/apache/tiles/request/portlet/delegate/StateAwareRequestDelegate.java
+++ /dev/null
@@ -1,90 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.request.portlet.delegate;
-
-import java.util.Map;
-
-import javax.portlet.PortletRequest;
-import javax.portlet.StateAwareResponse;
-
-import org.apache.tiles.request.collection.AddableParameterMap;
-import org.apache.tiles.request.portlet.extractor.StateAwareParameterExtractor;
-
-/**
- * Exposes parameters getting them from a portlet reques and allowing to be put
- * into a {@link StateAwareResponse}.
- *
- * @version $Rev$ $Date$
- */
-public class StateAwareRequestDelegate implements RequestDelegate {
-
-    /**
-     * The request.
-     */
-    private PortletRequest request;
-
-    /**
-     * The response.
-     */
-    private StateAwareResponse response;
-
-    /**
-     * Constructor.
-     *
-     * @param request The request.
-     * @param response The response.
-     */
-    public StateAwareRequestDelegate(PortletRequest request,
-            StateAwareResponse response) {
-        this.request = request;
-        this.response = response;
-    }
-
-    /**
-     * <p>The lazily instantiated <code>Map</code> of request
-     * parameter name-value.</p>
-     */
-    private Map<String, String> param = null;
-
-    /**
-     * <p>The lazily instantiated <code>Map</code> of request
-     * parameter name-values.</p>
-     */
-    private Map<String, String[]> paramValues = null;
-
-    /** {@inheritDoc} */
-    public Map<String, String> getParam() {
-        if ((param == null) && (request != null)) {
-            param = new AddableParameterMap(new StateAwareParameterExtractor(
-                    request, response));
-        }
-        return (param);
-    }
-
-    /** {@inheritDoc} */
-    public Map<String, String[]> getParamValues() {
-        if ((paramValues == null) && (request != null)) {
-            paramValues = new StateAwareParameterMap(request.getParameterMap(),
-                    response.getRenderParameterMap());
-        }
-        return (paramValues);
-    }
-}
diff --git a/tiles-request/tiles-request-portlet/src/main/java/org/apache/tiles/request/portlet/delegate/StateAwareResponseDelegate.java b/tiles-request/tiles-request-portlet/src/main/java/org/apache/tiles/request/portlet/delegate/StateAwareResponseDelegate.java
deleted file mode 100644
index 0130b01..0000000
--- a/tiles-request/tiles-request-portlet/src/main/java/org/apache/tiles/request/portlet/delegate/StateAwareResponseDelegate.java
+++ /dev/null
@@ -1,63 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.request.portlet.delegate;
-
-import java.io.OutputStream;
-import java.io.PrintWriter;
-import java.io.Writer;
-
-/**
- * A state aware response does not allow to access to the output stream and similar,
- * so it is, essentially, a feature blocker.
- *
- * @version $Rev$ $Date$
- */
-public class StateAwareResponseDelegate implements ResponseDelegate {
-
-    @Override
-    public OutputStream getOutputStream() {
-        throw new UnsupportedOperationException(
-                "No outputstream available for state-aware response");
-    }
-
-    @Override
-    public PrintWriter getPrintWriter() {
-        throw new UnsupportedOperationException(
-                "No outputstream available for state-aware response");
-    }
-
-    @Override
-    public Writer getWriter() {
-        throw new UnsupportedOperationException(
-                "No outputstream available for state-aware response");
-    }
-
-    @Override
-    public boolean isResponseCommitted() {
-        return false;
-    }
-
-    @Override
-    public void setContentType(String contentType) {
-        throw new UnsupportedOperationException(
-                "No outputstream available for state-aware response");
-    }
-}
diff --git a/tiles-request/tiles-request-portlet/src/main/java/org/apache/tiles/request/portlet/delegate/package-info.java b/tiles-request/tiles-request-portlet/src/main/java/org/apache/tiles/request/portlet/delegate/package-info.java
deleted file mode 100644
index 5080dc3..0000000
--- a/tiles-request/tiles-request-portlet/src/main/java/org/apache/tiles/request/portlet/delegate/package-info.java
+++ /dev/null
@@ -1,24 +0,0 @@
-/*
- * $Id: package-info.java 1049711 2010-12-15 21:12:00Z apetrelli $
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-/**
- * Delegations to map all the different types of request and responses.
- */
-package org.apache.tiles.request.portlet.delegate;
diff --git a/tiles-request/tiles-request-portlet/src/main/java/org/apache/tiles/request/portlet/extractor/ApplicationScopeExtractor.java b/tiles-request/tiles-request-portlet/src/main/java/org/apache/tiles/request/portlet/extractor/ApplicationScopeExtractor.java
deleted file mode 100644
index b167908..0000000
--- a/tiles-request/tiles-request-portlet/src/main/java/org/apache/tiles/request/portlet/extractor/ApplicationScopeExtractor.java
+++ /dev/null
@@ -1,69 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.request.portlet.extractor;
-
-import java.util.Enumeration;
-
-import javax.portlet.PortletContext;
-
-import org.apache.tiles.request.attribute.AttributeExtractor;
-
-/**
- * Extracts attributes from portlet application scope.
- *
- * @version $Rev$ $Date$
- */
-public class ApplicationScopeExtractor implements AttributeExtractor {
-
-    /**
-     * The portlet context.
-     */
-    private PortletContext context;
-
-    /**
-     * Constructor.
-     *
-     * @param context The portlet context.
-     */
-    public ApplicationScopeExtractor(PortletContext context) {
-        this.context = context;
-    }
-
-    @Override
-    public void setValue(String name, Object value) {
-        context.setAttribute(name, value);
-    }
-
-    @Override
-    public void removeValue(String name) {
-        context.removeAttribute(name);
-    }
-
-    @Override
-    public Enumeration<String> getKeys() {
-        return context.getAttributeNames();
-    }
-
-    @Override
-    public Object getValue(String key) {
-        return context.getAttribute(key);
-    }
-}
diff --git a/tiles-request/tiles-request-portlet/src/main/java/org/apache/tiles/request/portlet/extractor/HeaderExtractor.java b/tiles-request/tiles-request-portlet/src/main/java/org/apache/tiles/request/portlet/extractor/HeaderExtractor.java
deleted file mode 100644
index 52485d2..0000000
--- a/tiles-request/tiles-request-portlet/src/main/java/org/apache/tiles/request/portlet/extractor/HeaderExtractor.java
+++ /dev/null
@@ -1,78 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.request.portlet.extractor;
-
-import java.util.Enumeration;
-
-import javax.portlet.PortletRequest;
-import javax.portlet.PortletResponse;
-
-import org.apache.tiles.request.attribute.EnumeratedValuesExtractor;
-
-/**
- * Extracts and puts headers in portlet requests and responses.
- *
- * @version $Rev$ $Date$
- */
-public class HeaderExtractor implements EnumeratedValuesExtractor {
-
-    /**
-     * The request.
-     */
-    private PortletRequest request;
-
-    /**
-     * The response.
-     */
-    private PortletResponse response;
-
-    /**
-     * Constructor.
-     *
-     * @param request The request.
-     * @param response The response.
-     */
-    public HeaderExtractor(PortletRequest request,
-            PortletResponse response) {
-        this.request = request;
-        this.response = response;
-    }
-
-    @Override
-    public Enumeration<String> getKeys() {
-        return request.getPropertyNames();
-   }
-
-    @Override
-    public String getValue(String key) {
-        return request.getProperty(key);
-    }
-
-    @Override
-    public Enumeration<String> getValues(String key) {
-        return request.getProperties(key);
-    }
-
-    @Override
-    public void setValue(String key, String value) {
-        response.setProperty(key, value);
-    }
-}
diff --git a/tiles-request/tiles-request-portlet/src/main/java/org/apache/tiles/request/portlet/extractor/InitParameterExtractor.java b/tiles-request/tiles-request-portlet/src/main/java/org/apache/tiles/request/portlet/extractor/InitParameterExtractor.java
deleted file mode 100644
index dca552b..0000000
--- a/tiles-request/tiles-request-portlet/src/main/java/org/apache/tiles/request/portlet/extractor/InitParameterExtractor.java
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.request.portlet.extractor;
-
-import java.util.Enumeration;
-
-import javax.portlet.PortletContext;
-
-import org.apache.tiles.request.attribute.HasKeys;
-
-/**
- * Extracts init parameters from a portlet context.
- *
- * @version $Rev$ $Date$
- */
-public class InitParameterExtractor implements HasKeys<String> {
-
-    /**
-     * The portlet context.
-     */
-    private PortletContext context;
-
-    /**
-     * Constructor.
-     *
-     * @param context The portlet context.
-     */
-    public InitParameterExtractor(PortletContext context) {
-        this.context = context;
-    }
-
-    @Override
-    public Enumeration<String> getKeys() {
-        return context.getInitParameterNames();
-    }
-
-    @Override
-    public String getValue(String key) {
-        return context.getInitParameter(key);
-    }
-
-}
diff --git a/tiles-request/tiles-request-portlet/src/main/java/org/apache/tiles/request/portlet/extractor/ParameterExtractor.java b/tiles-request/tiles-request-portlet/src/main/java/org/apache/tiles/request/portlet/extractor/ParameterExtractor.java
deleted file mode 100644
index 3a95931..0000000
--- a/tiles-request/tiles-request-portlet/src/main/java/org/apache/tiles/request/portlet/extractor/ParameterExtractor.java
+++ /dev/null
@@ -1,59 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.request.portlet.extractor;
-
-import java.util.Enumeration;
-
-import javax.portlet.PortletRequest;
-
-import org.apache.tiles.request.attribute.HasKeys;
-
-/**
- * Extracts parameters from a portlet request.
- *
- * @version $Rev$ $Date$
- */
-public class ParameterExtractor implements HasKeys<String> {
-
-    /**
-     * The portlet request.
-     */
-    private PortletRequest request;
-
-    /**
-     * Constructor.
-     *
-     * @param request The portlet request.
-     */
-    public ParameterExtractor(PortletRequest request) {
-        this.request = request;
-    }
-
-    @Override
-    public Enumeration<String> getKeys() {
-        return request.getParameterNames();
-    }
-
-    @Override
-    public String getValue(String key) {
-        return request.getParameter(key);
-    }
-}
diff --git a/tiles-request/tiles-request-portlet/src/main/java/org/apache/tiles/request/portlet/extractor/RequestScopeExtractor.java b/tiles-request/tiles-request-portlet/src/main/java/org/apache/tiles/request/portlet/extractor/RequestScopeExtractor.java
deleted file mode 100644
index 7b74cfa..0000000
--- a/tiles-request/tiles-request-portlet/src/main/java/org/apache/tiles/request/portlet/extractor/RequestScopeExtractor.java
+++ /dev/null
@@ -1,69 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.request.portlet.extractor;
-
-import java.util.Enumeration;
-
-import javax.portlet.PortletRequest;
-
-import org.apache.tiles.request.attribute.AttributeExtractor;
-
-/**
- * Extracts attributes from request scope of a portlet request.
- *
- * @version $Rev$ $Date$
- */
-public class RequestScopeExtractor implements AttributeExtractor {
-
-    /**
-     * The portlet request.
-     */
-    private PortletRequest request;
-
-    /**
-     * Constructor.
-     *
-     * @param request The portlet request.
-     */
-    public RequestScopeExtractor(PortletRequest request) {
-        this.request = request;
-    }
-
-    @Override
-    public void setValue(String name, Object value) {
-        request.setAttribute(name, value);
-    }
-
-    @Override
-    public void removeValue(String name) {
-        request.removeAttribute(name);
-    }
-
-    @Override
-    public Enumeration<String> getKeys() {
-        return request.getAttributeNames();
-    }
-
-    @Override
-    public Object getValue(String key) {
-        return request.getAttribute(key);
-    }
-}
diff --git a/tiles-request/tiles-request-portlet/src/main/java/org/apache/tiles/request/portlet/extractor/SessionScopeExtractor.java b/tiles-request/tiles-request-portlet/src/main/java/org/apache/tiles/request/portlet/extractor/SessionScopeExtractor.java
deleted file mode 100644
index 5f32ef5..0000000
--- a/tiles-request/tiles-request-portlet/src/main/java/org/apache/tiles/request/portlet/extractor/SessionScopeExtractor.java
+++ /dev/null
@@ -1,93 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.request.portlet.extractor;
-
-import java.util.Enumeration;
-
-import javax.portlet.PortletRequest;
-import javax.portlet.PortletSession;
-
-import org.apache.tiles.request.attribute.AttributeExtractor;
-
-/**
- * Extracts attributes from the session scope of a portlet request.
- *
- * @version $Rev$ $Date$
- */
-public class SessionScopeExtractor implements AttributeExtractor {
-
-    /**
-     * The portlet request.
-     */
-    private PortletRequest request;
-
-    /**
-     * The subscope (application or portlet).
-     */
-    private int scope;
-
-    /**
-     * Constructor.
-     *
-     * @param request The request.
-     * @param scope The subscope (application or portlet).
-     */
-    public SessionScopeExtractor(PortletRequest request, int scope) {
-        this.request = request;
-        if (scope != PortletSession.APPLICATION_SCOPE
-                && scope != PortletSession.PORTLET_SCOPE) {
-            throw new IllegalArgumentException(
-                    "The scope must be either APPLICATION_SCOPE or PORTLET_SCOPE");
-        }
-        this.scope = scope;
-    }
-
-    @Override
-    public void setValue(String name, Object value) {
-        request.getPortletSession().setAttribute(name, value, scope);
-    }
-
-    @Override
-    public void removeValue(String name) {
-        PortletSession session = request.getPortletSession(false);
-        if (session != null) {
-            session.removeAttribute(name, scope);
-        }
-    }
-
-    @Override
-    public Enumeration<String> getKeys() {
-        PortletSession session = request.getPortletSession(false);
-        if (session != null) {
-            return session.getAttributeNames(scope);
-        }
-        return null;
-    }
-
-    @Override
-    public Object getValue(String key) {
-        PortletSession session = request.getPortletSession(false);
-        if (session != null) {
-            return session.getAttribute(key, scope);
-        }
-        return null;
-    }
-}
diff --git a/tiles-request/tiles-request-portlet/src/main/java/org/apache/tiles/request/portlet/extractor/StateAwareParameterExtractor.java b/tiles-request/tiles-request-portlet/src/main/java/org/apache/tiles/request/portlet/extractor/StateAwareParameterExtractor.java
deleted file mode 100644
index d1606c4..0000000
--- a/tiles-request/tiles-request-portlet/src/main/java/org/apache/tiles/request/portlet/extractor/StateAwareParameterExtractor.java
+++ /dev/null
@@ -1,55 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.request.portlet.extractor;
-
-import javax.portlet.PortletRequest;
-import javax.portlet.StateAwareResponse;
-
-import org.apache.tiles.request.attribute.HasAddableKeys;
-
-/**
- * Extracts parameters from a request and allows putting render parameters in a state aware response.
- *
- * @version $Rev$ $Date$
- */
-public class StateAwareParameterExtractor extends ParameterExtractor implements HasAddableKeys<String> {
-
-    /**
-     * The portlet response.
-     */
-    private StateAwareResponse response;
-
-    /**
-     * Constructor.
-     *
-     * @param request The portlet request.
-     * @param response The portlet response.
-     */
-    public StateAwareParameterExtractor(PortletRequest request, StateAwareResponse response) {
-        super(request);
-        this.response = response;
-    }
-
-    @Override
-    public void setValue(String key, String value) {
-        response.setRenderParameter(key, value);
-    }
-}
diff --git a/tiles-request/tiles-request-portlet/src/main/java/org/apache/tiles/request/portlet/extractor/package-info.java b/tiles-request/tiles-request-portlet/src/main/java/org/apache/tiles/request/portlet/extractor/package-info.java
deleted file mode 100644
index a37ccbb..0000000
--- a/tiles-request/tiles-request-portlet/src/main/java/org/apache/tiles/request/portlet/extractor/package-info.java
+++ /dev/null
@@ -1,24 +0,0 @@
-/*
- * $Id: package-info.java 1049711 2010-12-15 21:12:00Z apetrelli $
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-/**
- * Extractors to get scopes from Portlet requests.
- */
-package org.apache.tiles.request.portlet.extractor;
diff --git a/tiles-request/tiles-request-portlet/src/main/java/org/apache/tiles/request/portlet/package-info.java b/tiles-request/tiles-request-portlet/src/main/java/org/apache/tiles/request/portlet/package-info.java
deleted file mode 100644
index b9eb0d1..0000000
--- a/tiles-request/tiles-request-portlet/src/main/java/org/apache/tiles/request/portlet/package-info.java
+++ /dev/null
@@ -1,24 +0,0 @@
-/*
- * $Id: package-info.java 1049711 2010-12-15 21:12:00Z apetrelli $
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-/**
- * Support of Tiles requests to portlets.
- */
-package org.apache.tiles.request.portlet;
diff --git a/tiles-request/tiles-request-portlet/src/site/site.xml b/tiles-request/tiles-request-portlet/src/site/site.xml
deleted file mode 100644
index d52171a..0000000
--- a/tiles-request/tiles-request-portlet/src/site/site.xml
+++ /dev/null
@@ -1,56 +0,0 @@
-<?xml version="1.0" encoding="ISO-8859-1"?>
-<!--
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
--->
-<project name="Apache - Request Microframework">
-    <bannerLeft>
-        <name>Apache Software Foundation</name>
-        <src>http://www.apache.org/images/asf-logo.gif</src>
-        <href>http://www.apache.org</href>
-    </bannerLeft>
-    <bannerRight>
-        <name>Apache Tiles&#8482;</name>
-        <src>http://tiles.apache.org/images/logo.png</src>
-        <href>http://tiles.apache.org</href>
-    </bannerRight>
-    <body>
-
-        <links>
-            <item name="Apache" href="http://www.apache.org" />
-            <item name="Tiles" href="http://tiles.apache.org" />
-        </links>
-
-
-        <menu name="Apache Tiles&#8482;">
-            <item
-                   name="Tiles Home"
-                   href="../../index.html"/>
-            <item
-                   name="Request Microframework"
-                   href="../index.html"/>
-        </menu>
-
-        <menu ref="modules" />
-        <menu ref="reports" />
-
-    </body>
-</project>
diff --git a/tiles-request/tiles-request-portlet/src/test/java/org/apache/tiles/request/portlet/ActionPortletRequestTest.java b/tiles-request/tiles-request-portlet/src/test/java/org/apache/tiles/request/portlet/ActionPortletRequestTest.java
deleted file mode 100644
index 629f45f..0000000
--- a/tiles-request/tiles-request-portlet/src/test/java/org/apache/tiles/request/portlet/ActionPortletRequestTest.java
+++ /dev/null
@@ -1,72 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.request.portlet;
-
-import static org.easymock.classextension.EasyMock.*;
-import static org.junit.Assert.*;
-
-import java.lang.reflect.Field;
-
-import javax.portlet.ActionRequest;
-import javax.portlet.ActionResponse;
-import javax.portlet.PortletContext;
-
-import org.apache.tiles.request.ApplicationContext;
-import org.apache.tiles.request.portlet.delegate.StateAwareRequestDelegate;
-import org.apache.tiles.request.portlet.delegate.StateAwareResponseDelegate;
-import org.junit.Test;
-
-/**
- * Tests {@link ActionPortletRequest}.
- *
- * @version $Rev$ $Date$
- */
-public class ActionPortletRequestTest {
-
-    /**
-     * Test method for
-     * {@link ActionPortletRequest#ActionPortletRequest(ApplicationContext,
-     * PortletContext, ActionRequest, ActionResponse)}.
-     * @throws NoSuchFieldException If something goes wrong.
-     * @throws SecurityException If something goes wrong.
-     * @throws IllegalAccessException If something goes wrong.
-     * @throws IllegalArgumentException If something goes wrong.
-     */
-    @Test
-    public void testActionPortletRequest() throws NoSuchFieldException,
-            IllegalAccessException    {
-        ApplicationContext applicationContext = createMock(ApplicationContext.class);
-        PortletContext portletContext = createMock(PortletContext.class);
-        ActionRequest request = createMock(ActionRequest.class);
-        ActionResponse response = createMock(ActionResponse.class);
-
-        replay(applicationContext, portletContext, request, response);
-        ActionPortletRequest req = new ActionPortletRequest(applicationContext,
-                portletContext, request, response);
-        Class<? extends ActionPortletRequest> clazz = req.getClass();
-        Field field = clazz.getSuperclass().getDeclaredField("requestDelegate");
-        assertTrue(field.get(req) instanceof StateAwareRequestDelegate);
-        field = clazz.getSuperclass().getDeclaredField("responseDelegate");
-        assertTrue(field.get(req) instanceof StateAwareResponseDelegate);
-        verify(applicationContext, portletContext, request, response);
-    }
-
-}
diff --git a/tiles-request/tiles-request-portlet/src/test/java/org/apache/tiles/request/portlet/EventPortletRequestTest.java b/tiles-request/tiles-request-portlet/src/test/java/org/apache/tiles/request/portlet/EventPortletRequestTest.java
deleted file mode 100644
index 998cb02..0000000
--- a/tiles-request/tiles-request-portlet/src/test/java/org/apache/tiles/request/portlet/EventPortletRequestTest.java
+++ /dev/null
@@ -1,70 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.request.portlet;
-
-import static org.easymock.classextension.EasyMock.*;
-import static org.junit.Assert.*;
-
-import java.lang.reflect.Field;
-
-import javax.portlet.EventRequest;
-import javax.portlet.EventResponse;
-import javax.portlet.PortletContext;
-
-import org.apache.tiles.request.ApplicationContext;
-import org.apache.tiles.request.portlet.delegate.StateAwareRequestDelegate;
-import org.apache.tiles.request.portlet.delegate.StateAwareResponseDelegate;
-import org.junit.Test;
-
-/**
- * Tests {@link EventPortletRequest}.
- *
- * @version $Rev$ $Date$
- */
-public class EventPortletRequestTest {
-
-    /**
-     * Test method for
-     * {@link EventPortletRequest#EventPortletRequest(ApplicationContext, PortletContext, EventRequest, EventResponse)}.
-     * @throws NoSuchFieldException If something goes wrong.
-     * @throws SecurityException If something goes wrong.
-     * @throws IllegalAccessException If something goes wrong.
-     * @throws IllegalArgumentException If something goes wrong.
-     */
-    @Test
-    public void testEventPortletRequest() throws NoSuchFieldException, IllegalAccessException {
-        ApplicationContext applicationContext = createMock(ApplicationContext.class);
-        PortletContext portletContext = createMock(PortletContext.class);
-        EventRequest request = createMock(EventRequest.class);
-        EventResponse response = createMock(EventResponse.class);
-
-        replay(applicationContext, portletContext, request, response);
-        EventPortletRequest req = new EventPortletRequest(applicationContext,
-                portletContext, request, response);
-        Class<? extends EventPortletRequest> clazz = req.getClass();
-        Field field = clazz.getSuperclass().getDeclaredField("requestDelegate");
-        assertTrue(field.get(req) instanceof StateAwareRequestDelegate);
-        field = clazz.getSuperclass().getDeclaredField("responseDelegate");
-        assertTrue(field.get(req) instanceof StateAwareResponseDelegate);
-        verify(applicationContext, portletContext, request, response);
-    }
-
-}
diff --git a/tiles-request/tiles-request-portlet/src/test/java/org/apache/tiles/request/portlet/PortletApplicationContextTest.java b/tiles-request/tiles-request-portlet/src/test/java/org/apache/tiles/request/portlet/PortletApplicationContextTest.java
deleted file mode 100644
index 0c0aad6..0000000
--- a/tiles-request/tiles-request-portlet/src/test/java/org/apache/tiles/request/portlet/PortletApplicationContextTest.java
+++ /dev/null
@@ -1,151 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.request.portlet;
-
-import static org.easymock.EasyMock.*;
-import static org.easymock.classextension.EasyMock.*;
-import static org.junit.Assert.*;
-
-import java.io.IOException;
-import java.net.URL;
-import java.util.Collection;
-import java.util.Locale;
-
-import javax.portlet.PortletContext;
-
-import org.apache.tiles.request.ApplicationResource;
-import org.apache.tiles.request.collection.ReadOnlyEnumerationMap;
-import org.apache.tiles.request.collection.ScopeMap;
-import org.junit.Before;
-import org.junit.Test;
-
-/**
- * Tests {@link PortletApplicationContext}.
- *
- * @version $Rev$ $Date$
- */
-public class PortletApplicationContextTest {
-
-    /**
-     * The portlet context.
-     */
-    private PortletContext portletContext;
-
-    /**
-     * The application context.
-     */
-    private PortletApplicationContext context;
-
-    /**
-     * Sets up the test.
-     */
-    @Before
-    public void setUp() {
-        portletContext = createMock(PortletContext.class);
-        context = new PortletApplicationContext(portletContext);
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.request.portlet.PortletApplicationContext#getContext()}.
-     */
-    @Test
-    public void testGetContext() {
-        replay(portletContext);
-        assertEquals(portletContext, context.getContext());
-        verify(portletContext);
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.request.portlet.PortletApplicationContext#getPortletContext()}.
-     */
-    @Test
-    public void testGetPortletContext() {
-        replay(portletContext);
-        assertEquals(portletContext, context.getPortletContext());
-        verify(portletContext);
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.request.portlet.PortletApplicationContext#getApplicationScope()}.
-     */
-    @Test
-    public void testGetApplicationScope() {
-        replay(portletContext);
-        assertTrue(context.getApplicationScope() instanceof ScopeMap);
-        verify(portletContext);
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.request.portlet.PortletApplicationContext#getInitParams()}.
-     */
-    @Test
-    public void testGetInitParams() {
-        replay(portletContext);
-        assertTrue(context.getInitParams() instanceof ReadOnlyEnumerationMap);
-        verify(portletContext);
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.request.portlet.PortletApplicationContext#getResource(java.lang.String)}.
-     * @throws IOException If something goes wrong.
-     */
-    @Test
-    public void testGetResource() throws IOException {
-        URL url = new URL("file:///portletContext/my/path.html");
-        url = new URL(url.toExternalForm()); // normalize it
-        URL urlFr = new URL("file:///portletContext/my/path_fr.html");
-        urlFr = new URL(urlFr.toExternalForm()); // normalize it
-        expect(portletContext.getResource("/my/path.html")).andReturn(url);
-        expect(portletContext.getResource("/my/path_fr.html")).andReturn(urlFr);
-        expect(portletContext.getResource("/null/path.html")).andReturn(null);
-
-        replay(portletContext);
-        ApplicationResource resource = context.getResource("/my/path.html");
-        assertNotNull(resource);
-        assertEquals(resource.getLocalePath(), "/my/path.html");
-        assertEquals(resource.getPath(), "/my/path.html");
-        assertEquals(Locale.ROOT, resource.getLocale());
-        ApplicationResource resourceFr = context.getResource(resource, Locale.FRENCH);
-        assertNotNull(resourceFr);
-        assertEquals("/my/path_fr.html", resourceFr.getLocalePath());
-        assertEquals("/my/path.html", resourceFr.getPath());
-        assertEquals(Locale.FRENCH, resourceFr.getLocale());
-        ApplicationResource nullResource = context.getResource("/null/path.html");
-        assertNull(nullResource);
-        verify(portletContext);
-    }
-
-    /**
-     * Test method for {@link PortletApplicationContext#getResources(String)}.
-     * @throws IOException If something goes wrong.
-     */
-    @Test
-    public void testGetResources() throws IOException {
-        URL url = new URL("file:///portletContext/my/path.html");
-        expect(portletContext.getResource("/my/path")).andReturn(url);
-
-        replay(portletContext);
-        Collection<ApplicationResource> resources = context.getResources("/my/path");
-        assertEquals(1, resources.size());
-        assertEquals(resources.iterator().next().getLocalePath(), "/my/path");
-        verify(portletContext);
-    }
-}
diff --git a/tiles-request/tiles-request-portlet/src/test/java/org/apache/tiles/request/portlet/PortletRequestTest.java b/tiles-request/tiles-request-portlet/src/test/java/org/apache/tiles/request/portlet/PortletRequestTest.java
deleted file mode 100644
index f9d2581..0000000
--- a/tiles-request/tiles-request-portlet/src/test/java/org/apache/tiles/request/portlet/PortletRequestTest.java
+++ /dev/null
@@ -1,430 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.request.portlet;
-
-import static org.easymock.EasyMock.*;
-import static org.easymock.classextension.EasyMock.*;
-import static org.junit.Assert.*;
-
-import java.io.IOException;
-import java.io.PrintWriter;
-import java.util.Locale;
-import java.util.Map;
-
-import javax.portlet.PortletContext;
-import javax.portlet.PortletException;
-import javax.portlet.PortletRequestDispatcher;
-import javax.portlet.PortletResponse;
-import javax.servlet.ServletOutputStream;
-
-import org.apache.tiles.request.ApplicationContext;
-import org.apache.tiles.request.collection.HeaderValuesMap;
-import org.apache.tiles.request.collection.ReadOnlyEnumerationMap;
-import org.apache.tiles.request.collection.ScopeMap;
-import org.apache.tiles.request.portlet.delegate.RequestDelegate;
-import org.apache.tiles.request.portlet.delegate.ResponseDelegate;
-import org.apache.tiles.request.portlet.extractor.HeaderExtractor;
-import org.junit.Before;
-import org.junit.Test;
-
-/**
- * Tests {@link PortletRequest}.
- *
- * @version $Rev$ $Date$
- */
-public class PortletRequestTest {
-
-    /**
-     * The application context.
-     */
-    private ApplicationContext applicationContext;
-
-    /**
-     * The portlet context.
-     */
-    private PortletContext portletContext;
-
-    /**
-     * The request.
-     */
-    private javax.portlet.PortletRequest request;
-
-    /**
-     * The response.
-     */
-    private PortletResponse response;
-
-    /**
-     * The request to test.
-     */
-    private PortletRequest req;
-
-    /**
-     * The request delegate.
-     */
-    private RequestDelegate requestDelegate;
-
-    /**
-     * The response delegate.
-     */
-    private ResponseDelegate responseDelegate;
-
-    /**
-     * Sets up the test.
-     */
-    @Before
-    public void setUp() {
-        applicationContext = createMock(ApplicationContext.class);
-        portletContext = createMock(PortletContext.class);
-        request = createMock(javax.portlet.PortletRequest.class);
-        response = createMock(PortletResponse.class);
-        requestDelegate = createMock(RequestDelegate.class);
-        responseDelegate = createMock(ResponseDelegate.class);
-        req = new PortletRequest(applicationContext, portletContext, request,
-                response, requestDelegate, responseDelegate);
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.request.portlet.PortletRequest#doForward(java.lang.String)}.
-     * @throws IOException If something goes wrong.
-     * @throws PortletException If something goes wrong.
-     */
-    @Test
-    public void testDoForward() throws PortletException, IOException {
-        PortletRequestDispatcher rd = createMock(PortletRequestDispatcher.class);
-
-        expect(responseDelegate.isResponseCommitted()).andReturn(false);
-        expect(portletContext.getRequestDispatcher("/my/path")).andReturn(rd);
-        rd.forward(request, response);
-
-        replay(applicationContext, portletContext, request, response, rd);
-        req.doForward("/my/path");
-        verify(applicationContext, portletContext, request, response, rd);
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.request.portlet.PortletRequest#doForward(java.lang.String)}.
-     * @throws IOException If something goes wrong.
-     */
-    @Test(expected = IOException.class)
-    public void testDoForwardNoDispatcher() throws IOException {
-        expect(responseDelegate.isResponseCommitted()).andReturn(false);
-        expect(portletContext.getRequestDispatcher("/my/path")).andReturn(null);
-
-        replay(applicationContext, request, response, portletContext, requestDelegate, responseDelegate);
-        try {
-            req.doForward("/my/path");
-        } finally {
-            verify(applicationContext, request, response, portletContext, requestDelegate, responseDelegate);
-        }
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.request.portlet.PortletRequest#doForward(java.lang.String)}.
-     * @throws IOException If something goes wrong.
-     * @throws PortletException If something goes wrong.
-     */
-    @Test(expected = IOException.class)
-    public void testDoForwardPortletException() throws PortletException, IOException {
-        PortletRequestDispatcher rd = createMock(PortletRequestDispatcher.class);
-
-        expect(responseDelegate.isResponseCommitted()).andReturn(false);
-        expect(portletContext.getRequestDispatcher("/my/path")).andReturn(rd);
-        rd.forward(request, response);
-        expectLastCall().andThrow(new PortletException());
-
-        replay(applicationContext, request, response, rd, portletContext, requestDelegate, responseDelegate);
-        try {
-            req.doForward("/my/path");
-        } finally {
-            verify(applicationContext, request, response, rd, portletContext, requestDelegate, responseDelegate);
-        }
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.request.portlet.PortletRequest#doForward(java.lang.String)}.
-     * @throws IOException If something goes wrong.
-     * @throws PortletException If something goes wrong.
-     */
-    @Test
-    public void testDoForwardInclude() throws PortletException, IOException {
-        PortletRequestDispatcher rd = createMock(PortletRequestDispatcher.class);
-
-        expect(responseDelegate.isResponseCommitted()).andReturn(true);
-        expect(portletContext.getRequestDispatcher("/my/path")).andReturn(rd);
-        rd.include(request, response);
-
-        replay(applicationContext, request, response, rd, portletContext, requestDelegate, responseDelegate);
-        req.doForward("/my/path");
-        verify(applicationContext, request, response, rd, portletContext, requestDelegate, responseDelegate);
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.request.portlet.PortletRequest#doInclude(java.lang.String)}.
-     * @throws IOException If something goes wrong.
-     * @throws PortletException If something goes wrong.
-     */
-    @Test
-    public void testDoInclude() throws IOException, PortletException {
-        PortletRequestDispatcher rd = createMock(PortletRequestDispatcher.class);
-
-        expect(portletContext.getRequestDispatcher("/my/path")).andReturn(rd);
-        rd.include(request, response);
-
-        replay(applicationContext, request, response, rd, portletContext, requestDelegate, responseDelegate);
-        req.doInclude("/my/path");
-        verify(applicationContext, request, response, rd, portletContext, requestDelegate, responseDelegate);
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.request.portlet.PortletRequest#doInclude(java.lang.String)}.
-     * @throws IOException If something goes wrong.
-     */
-    @Test(expected = IOException.class)
-    public void testDoIncludeNoDispatcher() throws IOException {
-        expect(portletContext.getRequestDispatcher("/my/path")).andReturn(null);
-
-        replay(applicationContext, request, response, portletContext, requestDelegate, responseDelegate);
-        try {
-            req.doInclude("/my/path");
-        } finally {
-            verify(applicationContext, request, response, portletContext, requestDelegate, responseDelegate);
-        }
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.request.portlet.PortletRequest#doInclude(java.lang.String)}.
-     * @throws IOException If something goes wrong.
-     * @throws PortletException If something goes wrong.
-     */
-    @Test(expected = IOException.class)
-    public void testDoIncludePortletException() throws IOException, PortletException {
-        PortletRequestDispatcher rd = createMock(PortletRequestDispatcher.class);
-
-        expect(portletContext.getRequestDispatcher("/my/path")).andReturn(rd);
-        rd.include(request, response);
-        expectLastCall().andThrow(new PortletException());
-
-        replay(applicationContext, request, response, rd, portletContext, requestDelegate, responseDelegate);
-        try {
-            req.doInclude("/my/path");
-        } finally {
-            verify(applicationContext, request, response, rd, portletContext, requestDelegate, responseDelegate);
-        }
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.request.portlet.PortletRequest#getHeader()}.
-     */
-    @Test
-    public void testGetHeader() {
-        assertTrue(req.getHeader() instanceof ReadOnlyEnumerationMap);
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.request.portlet.PortletRequest#getResponseHeaders()}.
-     */
-    @Test
-    public void testGetResponseHeaders() {
-        assertTrue(req.getResponseHeaders() instanceof HeaderExtractor);
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.request.portlet.PortletRequest#getHeaderValues()}.
-     */
-    @Test
-    public void testGetHeaderValues() {
-        assertTrue(req.getHeaderValues() instanceof HeaderValuesMap);
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.request.portlet.PortletRequest#getParam()}.
-     */
-    @SuppressWarnings("unchecked")
-    @Test
-    public void testGetParam() {
-        Map<String, String> map = createMock(Map.class);
-
-        expect(requestDelegate.getParam()).andReturn(map);
-
-        replay(applicationContext, request, response, portletContext, requestDelegate, responseDelegate);
-        assertEquals(map, req.getParam());
-        verify(applicationContext, request, response, portletContext, requestDelegate, responseDelegate);
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.request.portlet.PortletRequest#getParamValues()}.
-     */
-    @SuppressWarnings("unchecked")
-    @Test
-    public void testGetParamValues() {
-        Map<String, String[]> paramMap = createMock(Map.class);
-
-        expect(requestDelegate.getParamValues()).andReturn(paramMap);
-
-        replay(applicationContext, request, response, paramMap, portletContext, requestDelegate, responseDelegate);
-        assertEquals(paramMap, req.getParamValues());
-        verify(applicationContext, request, response, paramMap, portletContext, requestDelegate, responseDelegate);
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.request.portlet.PortletRequest#getRequestScope()}.
-     */
-    @Test
-    public void testGetRequestScope() {
-        assertTrue(req.getRequestScope() instanceof ScopeMap);
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.request.portlet.PortletRequest#getSessionScope()}.
-     */
-    @Test
-    public void testGetSessionScope() {
-        assertTrue(req.getSessionScope() instanceof ScopeMap);
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.request.portlet.PortletRequest#getPortletSessionScope()}.
-     */
-    @Test
-    public void testGetPortletSessionScope() {
-        assertTrue(req.getPortletSessionScope() instanceof ScopeMap);
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.request.portlet.PortletRequest#getOutputStream()}.
-     * @throws IOException If something goes wrong.
-     */
-    @Test
-    public void testGetOutputStream() throws IOException {
-        ServletOutputStream os = createMock(ServletOutputStream.class);
-
-        expect(responseDelegate.getOutputStream()).andReturn(os);
-
-        replay(applicationContext, request, response, os, portletContext, requestDelegate, responseDelegate);
-        assertEquals(req.getOutputStream(), os);
-        verify(applicationContext, request, response, os, portletContext, requestDelegate, responseDelegate);
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.request.portlet.PortletRequest#getWriter()}.
-     * @throws IOException If something goes wrong.
-     */
-    @Test
-    public void testGetWriter() throws IOException {
-        PrintWriter os = createMock(PrintWriter.class);
-
-        expect(responseDelegate.getWriter()).andReturn(os);
-
-        replay(applicationContext, request, response, os, portletContext, requestDelegate, responseDelegate);
-        assertEquals(req.getWriter(), os);
-        verify(applicationContext, request, response, os, portletContext, requestDelegate, responseDelegate);
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.request.portlet.PortletRequest#getPrintWriter()}.
-     * @throws IOException If something goes wrong.
-     */
-    @Test
-    public void testGetPrintWriter() throws IOException {
-        PrintWriter os = createMock(PrintWriter.class);
-
-        expect(responseDelegate.getPrintWriter()).andReturn(os);
-
-        replay(applicationContext, request, response, os, portletContext, requestDelegate, responseDelegate);
-        assertEquals(req.getPrintWriter(), os);
-        verify(applicationContext, request, response, os, portletContext, requestDelegate, responseDelegate);
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.request.portlet.PortletRequest#isResponseCommitted()}.
-     */
-    @Test
-    public void testIsResponseCommitted() {
-        expect(responseDelegate.isResponseCommitted()).andReturn(true);
-
-        replay(applicationContext, request, response, portletContext, requestDelegate, responseDelegate);
-        assertTrue(req.isResponseCommitted());
-        verify(applicationContext, request, response, portletContext, requestDelegate, responseDelegate);
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.request.portlet.PortletRequest#setContentType(java.lang.String)}.
-     */
-    @Test
-    public void testSetContentType() {
-        responseDelegate.setContentType("text/html");
-
-        replay(applicationContext, request, response, portletContext, requestDelegate, responseDelegate);
-        req.setContentType("text/html");
-        verify(applicationContext, request, response, portletContext, requestDelegate, responseDelegate);
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.request.portlet.PortletRequest#getRequestLocale()}.
-     */
-    @Test
-    public void testGetRequestLocale() {
-        Locale locale = Locale.ITALY;
-
-        expect(request.getLocale()).andReturn(locale);
-
-        replay(applicationContext, request, response, portletContext, requestDelegate, responseDelegate);
-        assertEquals(locale, req.getRequestLocale());
-        verify(applicationContext, request, response, portletContext, requestDelegate, responseDelegate);
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.request.portlet.PortletRequest#getRequestObjects()}.
-     */
-    /**
-     * Test method for {@link org.apache.tiles.request.portlet.PortletRequest#getRequest()}.
-     */
-    @Test
-    public void testGetRequest() {
-        replay(applicationContext, request, response, portletContext, requestDelegate, responseDelegate);
-        assertEquals(request, req.getRequest());
-        verify(applicationContext, request, response, portletContext, requestDelegate, responseDelegate);
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.request.portlet.PortletRequest#getResponse()}.
-     */
-    @Test
-    public void testGetResponse() {
-        replay(applicationContext, request, response, portletContext, requestDelegate, responseDelegate);
-        assertEquals(response, req.getResponse());
-        verify(applicationContext, request, response, portletContext, requestDelegate, responseDelegate);
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.request.portlet.PortletRequest#isUserInRole(java.lang.String)}.
-     */
-    @Test
-    public void testIsUserInRole() {
-        expect(request.isUserInRole("myrole")).andReturn(true);
-
-        replay(applicationContext, request, response, portletContext, requestDelegate, responseDelegate);
-        assertTrue(req.isUserInRole("myrole"));
-        verify(applicationContext, request, response, portletContext, requestDelegate, responseDelegate);
-    }
-
-}
diff --git a/tiles-request/tiles-request-portlet/src/test/java/org/apache/tiles/request/portlet/RenderPortletRequestTest.java b/tiles-request/tiles-request-portlet/src/test/java/org/apache/tiles/request/portlet/RenderPortletRequestTest.java
deleted file mode 100644
index b88983f..0000000
--- a/tiles-request/tiles-request-portlet/src/test/java/org/apache/tiles/request/portlet/RenderPortletRequestTest.java
+++ /dev/null
@@ -1,71 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.request.portlet;
-
-import static org.easymock.classextension.EasyMock.*;
-import static org.junit.Assert.*;
-
-import java.lang.reflect.Field;
-
-import javax.portlet.PortletContext;
-import javax.portlet.RenderRequest;
-import javax.portlet.RenderResponse;
-
-import org.apache.tiles.request.ApplicationContext;
-import org.apache.tiles.request.portlet.delegate.MimeResponseDelegate;
-import org.apache.tiles.request.portlet.delegate.PortletRequestDelegate;
-import org.junit.Test;
-
-/**
- * Tests {@link RenderPortletRequest}.
- *
- * @version $Rev$ $Date$
- */
-public class RenderPortletRequestTest {
-
-    /**
-     * Test method for
-     * {@link RenderPortletRequest#RenderPortletRequest(ApplicationContext, PortletContext,
-     * RenderRequest, RenderResponse)}.
-     * @throws NoSuchFieldException If something goes wrong.
-     * @throws SecurityException If something goes wrong.
-     * @throws IllegalAccessException If something goes wrong.
-     * @throws IllegalArgumentException If something goes wrong.
-     */
-    @Test
-    public void testRenderPortletRequest() throws NoSuchFieldException, IllegalAccessException {
-        ApplicationContext applicationContext = createMock(ApplicationContext.class);
-        PortletContext portletContext = createMock(PortletContext.class);
-        RenderRequest request = createMock(RenderRequest.class);
-        RenderResponse response = createMock(RenderResponse.class);
-
-        replay(applicationContext, portletContext, request, response);
-        RenderPortletRequest req = new RenderPortletRequest(applicationContext,
-                portletContext, request, response);
-        Class<? extends RenderPortletRequest> clazz = req.getClass();
-        Field field = clazz.getSuperclass().getDeclaredField("requestDelegate");
-        assertTrue(field.get(req) instanceof PortletRequestDelegate);
-        field = clazz.getSuperclass().getDeclaredField("responseDelegate");
-        assertTrue(field.get(req) instanceof MimeResponseDelegate);
-        verify(applicationContext, portletContext, request, response);
-    }
-
-}
diff --git a/tiles-request/tiles-request-portlet/src/test/java/org/apache/tiles/request/portlet/ResourcePortletRequestTest.java b/tiles-request/tiles-request-portlet/src/test/java/org/apache/tiles/request/portlet/ResourcePortletRequestTest.java
deleted file mode 100644
index 130cb5d..0000000
--- a/tiles-request/tiles-request-portlet/src/test/java/org/apache/tiles/request/portlet/ResourcePortletRequestTest.java
+++ /dev/null
@@ -1,71 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.request.portlet;
-
-import static org.easymock.classextension.EasyMock.*;
-import static org.junit.Assert.*;
-
-import java.lang.reflect.Field;
-
-import javax.portlet.PortletContext;
-import javax.portlet.ResourceRequest;
-import javax.portlet.ResourceResponse;
-
-import org.apache.tiles.request.ApplicationContext;
-import org.apache.tiles.request.portlet.delegate.MimeResponseDelegate;
-import org.apache.tiles.request.portlet.delegate.PortletRequestDelegate;
-import org.junit.Test;
-
-/**
- * Tests {@link ResourcePortletRequest}.
- *
- * @version $Rev$ $Date$
- */
-public class ResourcePortletRequestTest {
-
-    /**
-     * Test method for
-     * {@link ResourcePortletRequest#ResourcePortletRequest(ApplicationContext, PortletContext,
-     * ResourceRequest, ResourceResponse)}.
-     * @throws NoSuchFieldException If something goes wrong.
-     * @throws SecurityException If something goes wrong.
-     * @throws IllegalAccessException If something goes wrong.
-     * @throws IllegalArgumentException If something goes wrong.
-     */
-    @Test
-    public void testResourcePortletRequest() throws NoSuchFieldException, IllegalAccessException {
-        ApplicationContext applicationContext = createMock(ApplicationContext.class);
-        PortletContext portletContext = createMock(PortletContext.class);
-        ResourceRequest request = createMock(ResourceRequest.class);
-        ResourceResponse response = createMock(ResourceResponse.class);
-
-        replay(applicationContext, portletContext, request, response);
-        ResourcePortletRequest req = new ResourcePortletRequest(applicationContext,
-                portletContext, request, response);
-        Class<? extends ResourcePortletRequest> clazz = req.getClass();
-        Field field = clazz.getSuperclass().getDeclaredField("requestDelegate");
-        assertTrue(field.get(req) instanceof PortletRequestDelegate);
-        field = clazz.getSuperclass().getDeclaredField("responseDelegate");
-        assertTrue(field.get(req) instanceof MimeResponseDelegate);
-        verify(applicationContext, portletContext, request, response);
-    }
-
-}
diff --git a/tiles-request/tiles-request-portlet/src/test/java/org/apache/tiles/request/portlet/delegate/MimeResponseDelegateTest.java b/tiles-request/tiles-request-portlet/src/test/java/org/apache/tiles/request/portlet/delegate/MimeResponseDelegateTest.java
deleted file mode 100644
index f16525f..0000000
--- a/tiles-request/tiles-request-portlet/src/test/java/org/apache/tiles/request/portlet/delegate/MimeResponseDelegateTest.java
+++ /dev/null
@@ -1,130 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.request.portlet.delegate;
-
-import static org.easymock.classextension.EasyMock.*;
-import static org.junit.Assert.*;
-
-import java.io.IOException;
-import java.io.OutputStream;
-import java.io.PrintWriter;
-
-import javax.portlet.MimeResponse;
-
-import org.junit.Before;
-import org.junit.Test;
-
-/**
- * Tests {@link MimeResponseDelegate}.
- *
- * @version $Rev$ $Date$
- */
-public class MimeResponseDelegateTest {
-
-    /**
-     * The response.
-     */
-    private MimeResponse response;
-
-    /**
-     * The delegate to test.
-     */
-    private MimeResponseDelegate delegate;
-
-    /**
-     * Sets up the test.
-     */
-    @Before
-    public void setUp() {
-        response = createMock(MimeResponse.class);
-        delegate = new MimeResponseDelegate(response);
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.request.portlet.delegate.MimeResponseDelegate#getOutputStream()}.
-     * @throws IOException If something goes wrong.
-     */
-    @Test
-    public void testGetOutputStream() throws IOException {
-        OutputStream os = createMock(OutputStream.class);
-
-        expect(response.getPortletOutputStream()).andReturn(os);
-
-        replay(response, os);
-        assertEquals(os, delegate.getOutputStream());
-        verify(response, os);
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.request.portlet.delegate.MimeResponseDelegate#getPrintWriter()}.
-     * @throws IOException If something goes wrong.
-     */
-    @Test
-    public void testGetPrintWriter() throws IOException {
-        PrintWriter os = createMock(PrintWriter.class);
-
-        expect(response.getWriter()).andReturn(os);
-
-        replay(response, os);
-        assertEquals(os, delegate.getPrintWriter());
-        verify(response, os);
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.request.portlet.delegate.MimeResponseDelegate#getWriter()}.
-     * @throws IOException If something goes wrong.
-     */
-    @Test
-    public void testGetWriter() throws IOException {
-        PrintWriter os = createMock(PrintWriter.class);
-
-        expect(response.getWriter()).andReturn(os);
-
-        replay(response, os);
-        assertEquals(os, delegate.getWriter());
-        verify(response, os);
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.request.portlet.delegate.MimeResponseDelegate#isResponseCommitted()}.
-     */
-    @Test
-    public void testIsResponseCommitted() {
-        expect(response.isCommitted()).andReturn(true);
-
-        replay(response);
-        assertTrue(delegate.isResponseCommitted());
-        verify(response);
-    }
-
-    /**
-     * Test method for {@link MimeResponseDelegate#setContentType(String)}.
-     */
-    @Test
-    public void testSetContentType() {
-        response.setContentType("text/html");
-
-        replay(response);
-        delegate.setContentType("text/html");
-        verify(response);
-    }
-
-}
diff --git a/tiles-request/tiles-request-portlet/src/test/java/org/apache/tiles/request/portlet/delegate/PortletRequestDelegateTest.java b/tiles-request/tiles-request-portlet/src/test/java/org/apache/tiles/request/portlet/delegate/PortletRequestDelegateTest.java
deleted file mode 100644
index 14da05c..0000000
--- a/tiles-request/tiles-request-portlet/src/test/java/org/apache/tiles/request/portlet/delegate/PortletRequestDelegateTest.java
+++ /dev/null
@@ -1,85 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.request.portlet.delegate;
-
-import static org.easymock.classextension.EasyMock.*;
-import static org.junit.Assert.*;
-
-import java.util.Map;
-
-import javax.portlet.PortletRequest;
-
-import org.apache.tiles.request.collection.ReadOnlyEnumerationMap;
-import org.junit.Before;
-import org.junit.Test;
-
-/**
- * Tests {@link PortletRequestDelegate}.
- *
- * @version $Rev$ $Date$
- */
-public class PortletRequestDelegateTest {
-
-    /**
-     * The request.
-     */
-    private PortletRequest request;
-
-    /**
-     * The delegate to test.
-     */
-    private PortletRequestDelegate delegate;
-
-    /**
-     * Sets up the test.
-     */
-    @Before
-    public void setUp() {
-        request = createMock(PortletRequest.class);
-        delegate = new PortletRequestDelegate(request);
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.request.portlet.delegate.PortletRequestDelegate#getParam()}.
-     */
-    @Test
-    public void testGetParam() {
-        replay(request);
-        assertTrue(delegate.getParam() instanceof ReadOnlyEnumerationMap);
-        verify(request);
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.request.portlet.delegate.PortletRequestDelegate#getParamValues()}.
-     */
-    @SuppressWarnings("unchecked")
-    @Test
-    public void testGetParamValues() {
-        Map<String, String[]> params = createMock(Map.class);
-
-        expect(request.getParameterMap()).andReturn(params);
-
-        replay(request, params);
-        assertEquals(params, delegate.getParamValues());
-        verify(request, params);
-    }
-
-}
diff --git a/tiles-request/tiles-request-portlet/src/test/java/org/apache/tiles/request/portlet/delegate/StateAwareParameterMapTest.java b/tiles-request/tiles-request-portlet/src/test/java/org/apache/tiles/request/portlet/delegate/StateAwareParameterMapTest.java
deleted file mode 100644
index 2439b44..0000000
--- a/tiles-request/tiles-request-portlet/src/test/java/org/apache/tiles/request/portlet/delegate/StateAwareParameterMapTest.java
+++ /dev/null
@@ -1,226 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.request.portlet.delegate;
-
-import static org.easymock.EasyMock.*;
-import static org.easymock.classextension.EasyMock.*;
-import static org.junit.Assert.*;
-
-import java.util.Collection;
-import java.util.Map;
-import java.util.Set;
-
-import org.junit.Before;
-import org.junit.Test;
-
-/**
- * Tests {@link StateAwareParameterMap}.
- *
- * @version $Rev$ $Date$
- */
-public class StateAwareParameterMapTest {
-
-    /**
-     * The request map.
-     */
-    private Map<String, String[]> requestMap;
-
-    /**
-     * The response map.
-     */
-    private Map<String, String[]> responseMap;
-
-    /**
-     * The map to test.
-     */
-    private StateAwareParameterMap map;
-
-    /**
-     * Sets up the test.
-     */
-    @SuppressWarnings("unchecked")
-    @Before
-    public void setUp() {
-        requestMap = createMock(Map.class);
-        responseMap = createMock(Map.class);
-        map = new StateAwareParameterMap(requestMap, responseMap);
-
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.request.portlet.delegate.StateAwareParameterMap#clear()}.
-     */
-    @Test
-    public void testClear() {
-        responseMap.clear();
-
-        replay(requestMap, responseMap);
-        map.clear();
-        verify(requestMap, responseMap);
-    }
-
-    /**
-     * Test method for {@link StateAwareParameterMap#containsKey(Object)}.
-     */
-    @Test
-    public void testContainsKey() {
-        expect(requestMap.containsKey("key")).andReturn(true);
-
-        replay(requestMap, responseMap);
-        assertTrue(map.containsKey("key"));
-        verify(requestMap, responseMap);
-    }
-
-    /**
-     * Test method for {@link StateAwareParameterMap#containsValue(Object)}.
-     */
-    @Test
-    public void testContainsValue() {
-        String[] values = new String[] {"value1", "value2"};
-        expect(requestMap.containsValue(values)).andReturn(true);
-
-        replay(requestMap, responseMap);
-        assertTrue(map.containsValue(values));
-        verify(requestMap, responseMap);
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.request.portlet.delegate.StateAwareParameterMap#entrySet()}.
-     */
-    @SuppressWarnings("unchecked")
-    @Test
-    public void testEntrySet() {
-        Set<Map.Entry<String, String[]>> entrySet = createMock(Set.class);
-
-        expect(requestMap.entrySet()).andReturn(entrySet);
-
-        replay(requestMap, responseMap, entrySet);
-        assertEquals(entrySet, map.entrySet());
-        verify(requestMap, responseMap, entrySet);
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.request.portlet.delegate.StateAwareParameterMap#get(java.lang.Object)}.
-     */
-    @Test
-    public void testGet() {
-        String[] values = new String[] {"value1", "value2"};
-        expect(requestMap.get("key")).andReturn(values);
-
-        replay(requestMap, responseMap);
-        assertArrayEquals(values, map.get("key"));
-        verify(requestMap, responseMap);
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.request.portlet.delegate.StateAwareParameterMap#isEmpty()}.
-     */
-    @Test
-    public void testIsEmpty() {
-        expect(requestMap.isEmpty()).andReturn(false);
-
-        replay(requestMap, responseMap);
-        assertFalse(map.isEmpty());
-        verify(requestMap, responseMap);
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.request.portlet.delegate.StateAwareParameterMap#keySet()}.
-     */
-    @SuppressWarnings("unchecked")
-    @Test
-    public void testKeySet() {
-        Set<String> keySet = createMock(Set.class);
-
-        expect(requestMap.keySet()).andReturn(keySet);
-
-        replay(requestMap, responseMap, keySet);
-        assertEquals(keySet, map.keySet());
-        verify(requestMap, responseMap, keySet);
-    }
-
-    /**
-     * Test method for {@link StateAwareParameterMap#put(String, String[])}.
-     */
-    @Test
-    public void testPut() {
-        String[] values = new String[] {"value1", "value2"};
-        expect(responseMap.put(eq("key"), aryEq(values))).andReturn(null);
-
-        replay(requestMap, responseMap);
-        assertNull(map.put("key", values));
-        verify(requestMap, responseMap);
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.request.portlet.delegate.StateAwareParameterMap#putAll(java.util.Map)}.
-     */
-    @SuppressWarnings("unchecked")
-    @Test
-    public void testPutAll() {
-        Map<String, String[]> entries = createMock(Map.class);
-        responseMap.putAll(entries);
-
-        replay(requestMap, responseMap, entries);
-        map.putAll(entries);
-        verify(requestMap, responseMap, entries);
-    }
-
-    /**
-     * Test method for {@link StateAwareParameterMap#remove(Object)}.
-     */
-    @Test
-    public void testRemove() {
-        String[] values = new String[] {"value1", "value2"};
-        expect(responseMap.remove("key")).andReturn(values);
-
-        replay(requestMap, responseMap);
-        assertArrayEquals(values, map.remove("key"));
-        verify(requestMap, responseMap);
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.request.portlet.delegate.StateAwareParameterMap#size()}.
-     */
-    @Test
-    public void testSize() {
-        expect(requestMap.size()).andReturn(1);
-
-        replay(requestMap, responseMap);
-        assertEquals(1, map.size());
-        verify(requestMap, responseMap);
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.request.portlet.delegate.StateAwareParameterMap#values()}.
-     */
-    @SuppressWarnings("unchecked")
-    @Test
-    public void testValues() {
-        Collection<String[]> values = createMock(Collection.class);
-
-        expect(requestMap.values()).andReturn(values);
-
-        replay(requestMap, responseMap, values);
-        assertEquals(values, map.values());
-        verify(requestMap, responseMap, values);
-    }
-}
diff --git a/tiles-request/tiles-request-portlet/src/test/java/org/apache/tiles/request/portlet/delegate/StateAwareRequestDelegateTest.java b/tiles-request/tiles-request-portlet/src/test/java/org/apache/tiles/request/portlet/delegate/StateAwareRequestDelegateTest.java
deleted file mode 100644
index a9ba958..0000000
--- a/tiles-request/tiles-request-portlet/src/test/java/org/apache/tiles/request/portlet/delegate/StateAwareRequestDelegateTest.java
+++ /dev/null
@@ -1,94 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.request.portlet.delegate;
-
-import static org.easymock.EasyMock.*;
-import static org.easymock.classextension.EasyMock.*;
-import static org.junit.Assert.*;
-
-import java.util.Map;
-
-import javax.portlet.PortletRequest;
-import javax.portlet.StateAwareResponse;
-
-import org.apache.tiles.request.collection.AddableParameterMap;
-import org.junit.Before;
-import org.junit.Test;
-
-/**
- * Tests {@link StateAwareRequestDelegate}.
- *
- * @version $Rev$ $Date$
- */
-public class StateAwareRequestDelegateTest {
-
-    /**
-     * The request.
-     */
-    private PortletRequest request;
-
-    /**
-     * The response.
-     */
-    private StateAwareResponse response;
-
-    /**
-     * The delegate to test.
-     */
-    private StateAwareRequestDelegate delegate;
-
-    /**
-     * Sets up the test.
-     */
-    @Before
-    public void setUp() {
-        request = createMock(PortletRequest.class);
-        response = createMock(StateAwareResponse.class);
-        delegate = new StateAwareRequestDelegate(request, response);
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.request.portlet.delegate.StateAwareRequestDelegate#getParam()}.
-     */
-    @Test
-    public void testGetParam() {
-        replay(request);
-        assertTrue(delegate.getParam() instanceof AddableParameterMap);
-        verify(request);
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.request.portlet.delegate.StateAwareRequestDelegate#getParamValues()}.
-     */
-    @SuppressWarnings("unchecked")
-    @Test
-    public void testGetParamValues() {
-        Map<String, String[]> requestMap = createMock(Map.class);
-        Map<String, String[]> responseMap = createMock(Map.class);
-
-        expect(request.getParameterMap()).andReturn(requestMap);
-        expect(response.getRenderParameterMap()).andReturn(responseMap);
-
-        replay(request);
-        assertTrue(delegate.getParamValues() instanceof StateAwareParameterMap);
-        verify(request);
-    }
-}
diff --git a/tiles-request/tiles-request-portlet/src/test/java/org/apache/tiles/request/portlet/delegate/StateAwareResponseDelegateTest.java b/tiles-request/tiles-request-portlet/src/test/java/org/apache/tiles/request/portlet/delegate/StateAwareResponseDelegateTest.java
deleted file mode 100644
index d8a6b0d..0000000
--- a/tiles-request/tiles-request-portlet/src/test/java/org/apache/tiles/request/portlet/delegate/StateAwareResponseDelegateTest.java
+++ /dev/null
@@ -1,87 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.request.portlet.delegate;
-
-import static org.junit.Assert.*;
-
-import org.junit.Before;
-import org.junit.Test;
-
-/**
- * Tests {@link StateAwareResponseDelegate}.
- *
- * @version $Rev$ $Date$
- */
-public class StateAwareResponseDelegateTest {
-
-    /**
-     * The delegate to test.
-     */
-    private StateAwareResponseDelegate delegate;
-
-    /**
-     * Sets up the test.
-     */
-    @Before
-    public void setUp() {
-        delegate = new StateAwareResponseDelegate();
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.request.portlet.delegate.StateAwareResponseDelegate#getOutputStream()}.
-     */
-    @Test(expected = UnsupportedOperationException.class)
-    public void testGetOutputStream() {
-        delegate.getOutputStream();
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.request.portlet.delegate.StateAwareResponseDelegate#getPrintWriter()}.
-     */
-    @Test(expected = UnsupportedOperationException.class)
-    public void testGetPrintWriter() {
-        delegate.getPrintWriter();
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.request.portlet.delegate.StateAwareResponseDelegate#getWriter()}.
-     */
-    @Test(expected = UnsupportedOperationException.class)
-    public void testGetWriter() {
-        delegate.getWriter();
-    }
-
-    /**
-     * Test method for {@link StateAwareResponseDelegate#isResponseCommitted()}.
-     */
-    @Test
-    public void testIsResponseCommitted() {
-        assertFalse(delegate.isResponseCommitted());
-    }
-
-    /**
-     * Test method for {@link StateAwareResponseDelegate#setContentType(java.lang.String)}.
-     */
-    @Test(expected = UnsupportedOperationException.class)
-    public void testSetContentType() {
-        delegate.setContentType("text/html");
-    }
-}
diff --git a/tiles-request/tiles-request-portlet/src/test/java/org/apache/tiles/request/portlet/extractor/ApplicationScopeExtractorTest.java b/tiles-request/tiles-request-portlet/src/test/java/org/apache/tiles/request/portlet/extractor/ApplicationScopeExtractorTest.java
deleted file mode 100644
index 2378b45..0000000
--- a/tiles-request/tiles-request-portlet/src/test/java/org/apache/tiles/request/portlet/extractor/ApplicationScopeExtractorTest.java
+++ /dev/null
@@ -1,110 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.request.portlet.extractor;
-
-import static org.easymock.EasyMock.*;
-import static org.easymock.classextension.EasyMock.*;
-import static org.junit.Assert.*;
-
-import java.util.Enumeration;
-
-import javax.portlet.PortletContext;
-
-import org.junit.Before;
-import org.junit.Test;
-
-/**
- * Tests {@link ApplicationScopeExtractor}.
- *
- * @version $Rev$ $Date$
- */
-public class ApplicationScopeExtractorTest {
-
-    /**
-     * The portlet context.
-     */
-    private PortletContext context;
-
-    /**
-     * The extractot to test.
-     */
-    private ApplicationScopeExtractor extractor;
-
-    /**
-     * Sets up the test.
-     */
-    @Before
-    public void setUp() {
-        context = createMock(PortletContext.class);
-        extractor = new ApplicationScopeExtractor(context);
-    }
-
-    /**
-     * Test method for {@link ApplicationScopeExtractor#setValue(java.lang.String, java.lang.Object)}.
-     */
-    @Test
-    public void testSetValue() {
-        context.setAttribute("attribute", "value");
-
-        replay(context);
-        extractor.setValue("attribute", "value");
-        verify(context);
-    }
-
-    /**
-     * Test method for {@link ApplicationScopeExtractor#removeValue(java.lang.String)}.
-     */
-    @Test
-    public void testRemoveValue() {
-        context.removeAttribute("attribute");
-
-        replay(context);
-        extractor.removeValue("attribute");
-        verify(context);
-    }
-
-    /**
-     * Test method for {@link ApplicationScopeExtractor#getKeys()}.
-     */
-    @SuppressWarnings("unchecked")
-    @Test
-    public void testGetKeys() {
-        Enumeration<String> keys = createMock(Enumeration.class);
-        expect(context.getAttributeNames()).andReturn(keys);
-
-        replay(context, keys);
-        assertEquals(keys, extractor.getKeys());
-        verify(context, keys);
-    }
-
-    /**
-     * Test method for {@link ApplicationScopeExtractor#getValue(java.lang.String)}.
-     */
-    @Test
-    public void testGetValue() {
-        expect(context.getAttribute("attribute")).andReturn("value");
-
-        replay(context);
-        assertEquals("value", extractor.getValue("attribute"));
-        verify(context);
-    }
-
-}
diff --git a/tiles-request/tiles-request-portlet/src/test/java/org/apache/tiles/request/portlet/extractor/HeaderExtractorTest.java b/tiles-request/tiles-request-portlet/src/test/java/org/apache/tiles/request/portlet/extractor/HeaderExtractorTest.java
deleted file mode 100644
index 3d81ce5..0000000
--- a/tiles-request/tiles-request-portlet/src/test/java/org/apache/tiles/request/portlet/extractor/HeaderExtractorTest.java
+++ /dev/null
@@ -1,121 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.request.portlet.extractor;
-
-import static org.easymock.EasyMock.*;
-import static org.easymock.classextension.EasyMock.*;
-import static org.junit.Assert.*;
-
-import java.util.Enumeration;
-
-import javax.portlet.PortletRequest;
-import javax.portlet.PortletResponse;
-
-import org.junit.Before;
-import org.junit.Test;
-
-/**
- * Tests {@link HeaderExtractor}.
- *
- * @version $Rev$ $Date$
- */
-public class HeaderExtractorTest {
-
-    /**
-     * The request.
-     */
-    private PortletRequest request;
-
-    /**
-     * The response.
-     */
-    private PortletResponse response;
-
-    /**
-     * The extractor to test.
-     */
-    private HeaderExtractor extractor;
-
-    /**
-     * Sets up the test.
-     */
-    @Before
-    public void setUp() {
-        request = createMock(PortletRequest.class);
-        response = createMock(PortletResponse.class);
-        extractor = new HeaderExtractor(request, response);
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.request.portlet.extractor.HeaderExtractor#getKeys()}.
-     */
-    @SuppressWarnings("unchecked")
-    @Test
-    public void testGetKeys() {
-        Enumeration<String> keys = createMock(Enumeration.class);
-
-        expect(request.getPropertyNames()).andReturn(keys);
-
-        replay(request, response, keys);
-        assertEquals(keys, extractor.getKeys());
-        verify(request, response, keys);
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.request.portlet.extractor.HeaderExtractor#getValue(java.lang.String)}.
-     */
-    @Test
-    public void testGetValue() {
-        expect(request.getProperty("name")).andReturn("value");
-
-        replay(request, response);
-        assertEquals("value", extractor.getValue("name"));
-        verify(request, response);
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.request.portlet.extractor.HeaderExtractor#getValues(java.lang.String)}.
-     */
-    @SuppressWarnings("unchecked")
-    @Test
-    public void testGetValues() {
-        Enumeration<String> keys = createMock(Enumeration.class);
-
-        expect(request.getProperties("name")).andReturn(keys);
-
-        replay(request, response, keys);
-        assertEquals(keys, extractor.getValues("name"));
-        verify(request, response, keys);
-    }
-
-    /**
-     * Test method for {@link HeaderExtractor#setValue(String, String)}.
-     */
-    @Test
-    public void testSetValue() {
-        response.setProperty("name", "value");
-
-        replay(request, response);
-        extractor.setValue("name", "value");
-        verify(request, response);
-    }
-
-}
diff --git a/tiles-request/tiles-request-portlet/src/test/java/org/apache/tiles/request/portlet/extractor/InitParameterExtractorTest.java b/tiles-request/tiles-request-portlet/src/test/java/org/apache/tiles/request/portlet/extractor/InitParameterExtractorTest.java
deleted file mode 100644
index 4480080..0000000
--- a/tiles-request/tiles-request-portlet/src/test/java/org/apache/tiles/request/portlet/extractor/InitParameterExtractorTest.java
+++ /dev/null
@@ -1,87 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.request.portlet.extractor;
-
-import static org.easymock.EasyMock.*;
-import static org.easymock.classextension.EasyMock.*;
-import static org.junit.Assert.*;
-
-import java.util.Enumeration;
-
-import javax.portlet.PortletContext;
-
-import org.junit.Before;
-import org.junit.Test;
-
-/**
- * Tests {@link InitParameterExtractor}.
- *
- * @version $Rev$ $Date$
- */
-public class InitParameterExtractorTest {
-
-    /**
-     * The portlet context.
-     */
-    private PortletContext context;
-
-    /**
-     * The extractor to test.
-     */
-    private InitParameterExtractor extractor;
-
-    /**
-     * Sets up the test.
-     */
-    @Before
-    public void setUp() {
-        context = createMock(PortletContext.class);
-        extractor = new InitParameterExtractor(context);
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.request.portlet.extractor.InitParameterExtractor#getKeys()}.
-     */
-    @SuppressWarnings("unchecked")
-    @Test
-    public void testGetKeys() {
-        Enumeration<String> keys = createMock(Enumeration.class);
-
-        expect(context.getInitParameterNames()).andReturn(keys);
-
-        replay(context, keys);
-        assertEquals(keys, extractor.getKeys());
-        verify(context, keys);
-    }
-
-    /**
-     * Test method for {@link InitParameterExtractor#getValue(String)}.
-     */
-    @Test
-    public void testGetValue() {
-        expect(context.getInitParameter("name")).andReturn("value");
-
-        replay(context);
-        assertEquals("value", extractor.getValue("name"));
-        verify(context);
-    }
-
-}
diff --git a/tiles-request/tiles-request-portlet/src/test/java/org/apache/tiles/request/portlet/extractor/ParameterExtractorTest.java b/tiles-request/tiles-request-portlet/src/test/java/org/apache/tiles/request/portlet/extractor/ParameterExtractorTest.java
deleted file mode 100644
index dcb9bac..0000000
--- a/tiles-request/tiles-request-portlet/src/test/java/org/apache/tiles/request/portlet/extractor/ParameterExtractorTest.java
+++ /dev/null
@@ -1,87 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.request.portlet.extractor;
-
-import static org.easymock.EasyMock.*;
-import static org.easymock.classextension.EasyMock.*;
-import static org.junit.Assert.*;
-
-import java.util.Enumeration;
-
-import javax.portlet.PortletRequest;
-
-import org.junit.Before;
-import org.junit.Test;
-
-/**
- * Tests {@link ParameterExtractor}.
- *
- * @version $Rev$ $Date$
- */
-public class ParameterExtractorTest {
-
-    /**
-     * The request.
-     */
-    private PortletRequest request;
-
-    /**
-     * The extractor to test.
-     */
-    private ParameterExtractor extractor;
-
-    /**
-     * Sets up the test.
-     */
-    @Before
-    public void setUp() {
-        request = createMock(PortletRequest.class);
-        extractor = new ParameterExtractor(request);
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.request.portlet.extractor.ParameterExtractor#getKeys()}.
-     */
-    @SuppressWarnings("unchecked")
-    @Test
-    public void testGetKeys() {
-        Enumeration<String> keys = createMock(Enumeration.class);
-
-        expect(request.getParameterNames()).andReturn(keys);
-
-        replay(request, keys);
-        assertEquals(keys, extractor.getKeys());
-        verify(request, keys);
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.request.portlet.extractor.ParameterExtractor#getValue(java.lang.String)}.
-     */
-    @Test
-    public void testGetValue() {
-        expect(request.getParameter("name")).andReturn("value");
-
-        replay(request);
-        assertEquals("value", extractor.getValue("name"));
-        verify(request);
-    }
-
-}
diff --git a/tiles-request/tiles-request-portlet/src/test/java/org/apache/tiles/request/portlet/extractor/RequestScopeExtractorTest.java b/tiles-request/tiles-request-portlet/src/test/java/org/apache/tiles/request/portlet/extractor/RequestScopeExtractorTest.java
deleted file mode 100644
index d922acd..0000000
--- a/tiles-request/tiles-request-portlet/src/test/java/org/apache/tiles/request/portlet/extractor/RequestScopeExtractorTest.java
+++ /dev/null
@@ -1,111 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.request.portlet.extractor;
-
-import static org.easymock.EasyMock.*;
-import static org.easymock.classextension.EasyMock.*;
-import static org.junit.Assert.*;
-
-import java.util.Enumeration;
-
-import javax.portlet.PortletRequest;
-
-import org.junit.Before;
-import org.junit.Test;
-
-/**
- * Tests {@link RequestScopeExtractor}.
- *
- * @version $Rev$ $Date$
- */
-public class RequestScopeExtractorTest {
-
-    /**
-     * The request to test.
-     */
-    private PortletRequest request;
-
-    /**
-     * The extractor to test.
-     */
-    private RequestScopeExtractor extractor;
-
-    /**
-     * Sets up the test.
-     */
-    @Before
-    public void setUp() {
-        request = createMock(PortletRequest.class);
-        extractor = new RequestScopeExtractor(request);
-    }
-
-    /**
-     * Test method for {@link RequestScopeExtractor#setValue(String, Object)}.
-     */
-    @Test
-    public void testSetValue() {
-        request.setAttribute("name", "value");
-
-        replay(request);
-        extractor.setValue("name", "value");
-        verify(request);
-    }
-
-    /**
-     * Test method for {@link RequestScopeExtractor#removeValue(String)}.
-     */
-    @Test
-    public void testRemoveValue() {
-        request.removeAttribute("name");
-
-        replay(request);
-        extractor.removeValue("name");
-        verify(request);
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.request.portlet.extractor.RequestScopeExtractor#getKeys()}.
-     */
-    @SuppressWarnings("unchecked")
-    @Test
-    public void testGetKeys() {
-        Enumeration<String> keys = createMock(Enumeration.class);
-
-        expect(request.getAttributeNames()).andReturn(keys);
-
-        replay(request, keys);
-        assertEquals(keys, extractor.getKeys());
-        verify(request, keys);
-    }
-
-    /**
-     * Test method for {@link RequestScopeExtractor#getValue(String)}.
-     */
-    @Test
-    public void testGetValue() {
-        expect(request.getAttribute("name")).andReturn("value");
-
-        replay(request);
-        assertEquals("value", extractor.getValue("name"));
-        verify(request);
-    }
-
-}
diff --git a/tiles-request/tiles-request-portlet/src/test/java/org/apache/tiles/request/portlet/extractor/SessionScopeExtractorTest.java b/tiles-request/tiles-request-portlet/src/test/java/org/apache/tiles/request/portlet/extractor/SessionScopeExtractorTest.java
deleted file mode 100644
index 85c6eb6..0000000
--- a/tiles-request/tiles-request-portlet/src/test/java/org/apache/tiles/request/portlet/extractor/SessionScopeExtractorTest.java
+++ /dev/null
@@ -1,157 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.request.portlet.extractor;
-
-import static org.easymock.EasyMock.*;
-import static org.easymock.classextension.EasyMock.*;
-import static org.junit.Assert.*;
-
-import java.util.Enumeration;
-
-import javax.portlet.PortletRequest;
-import javax.portlet.PortletSession;
-
-import org.junit.Before;
-import org.junit.Test;
-
-/**
- * Tests {@link SessionScopeExtractor}.
- *
- * @version $Rev$ $Date$
- */
-public class SessionScopeExtractorTest {
-
-    /**
-     * The request.
-     */
-    private PortletRequest request;
-
-    /**
-     * The session.
-     */
-    private PortletSession session;
-
-    /**
-     * The scope to test.
-     */
-    private SessionScopeExtractor extractor;
-
-    /**
-     * Sets up the test.
-     */
-    @Before
-    public void setUp() {
-        request = createMock(PortletRequest.class);
-        session = createMock(PortletSession.class);
-        extractor = new SessionScopeExtractor(request, PortletSession.PORTLET_SCOPE);
-    }
-
-
-    /**
-     * Tests {@link SessionScopeExtractor#SessionScopeExtractor(PortletRequest, int)}.
-     */
-    @Test(expected = IllegalArgumentException.class)
-    public void testIllegalScope() {
-        replay(request, session);
-        new SessionScopeExtractor(request, 0);
-        verify(request, session);
-    }
-
-    /**
-     * Test method for {@link SessionScopeExtractor#setValue(java.lang.String, java.lang.Object)}.
-     */
-    @Test
-    public void testSetValue() {
-        expect(request.getPortletSession()).andReturn(session);
-        session.setAttribute("name", "value", PortletSession.PORTLET_SCOPE);
-
-        replay(request, session);
-        extractor.setValue("name", "value");
-        verify(request, session);
-    }
-
-    /**
-     * Test method for {@link SessionScopeExtractor#removeValue(java.lang.String)}.
-     */
-    @Test
-    public void testRemoveValue() {
-        expect(request.getPortletSession(false)).andReturn(session);
-        session.removeAttribute("name", PortletSession.PORTLET_SCOPE);
-
-        replay(request, session);
-        extractor.removeValue("name");
-        verify(request, session);
-    }
-
-    /**
-     * Test method for {@link SessionScopeExtractor#getKeys()}.
-     */
-    @SuppressWarnings("unchecked")
-    @Test
-    public void testGetKeys() {
-        Enumeration<String> keys = createMock(Enumeration.class);
-
-        expect(request.getPortletSession(false)).andReturn(session);
-        expect(session.getAttributeNames(PortletSession.PORTLET_SCOPE)).andReturn(keys);
-
-        replay(request, session, keys);
-        assertEquals(keys, extractor.getKeys());
-        verify(request, session, keys);
-    }
-
-    /**
-     * Test method for {@link SessionScopeExtractor#getKeys()}.
-     */
-    @Test
-    public void testGetKeysNoSession() {
-        expect(request.getPortletSession(false)).andReturn(null);
-
-        replay(request, session);
-        assertNull(extractor.getKeys());
-        verify(request, session);
-    }
-
-    /**
-     * Test method for {@link SessionScopeExtractor#getValue(java.lang.String)}.
-     */
-    @Test
-    public void testGetValue() {
-        expect(request.getPortletSession(false)).andReturn(session);
-        expect(session.getAttribute("name", PortletSession.PORTLET_SCOPE)).andReturn("value");
-
-        replay(request, session);
-        assertEquals("value", extractor.getValue("name"));
-        verify(request, session);
-    }
-
-    /**
-     * Test method for {@link SessionScopeExtractor#getValue(java.lang.String)}.
-     */
-    @Test
-    public void testGetValueNoSession() {
-        expect(request.getPortletSession(false)).andReturn(null);
-
-        replay(request, session);
-        assertNull(extractor.getValue("name"));
-        verify(request, session);
-    }
-
-}
diff --git a/tiles-request/tiles-request-portlet/src/test/java/org/apache/tiles/request/portlet/extractor/StateAwareParameterExtractorTest.java b/tiles-request/tiles-request-portlet/src/test/java/org/apache/tiles/request/portlet/extractor/StateAwareParameterExtractorTest.java
deleted file mode 100644
index 331040e..0000000
--- a/tiles-request/tiles-request-portlet/src/test/java/org/apache/tiles/request/portlet/extractor/StateAwareParameterExtractorTest.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.request.portlet.extractor;
-
-import static org.easymock.classextension.EasyMock.*;
-
-import javax.portlet.PortletRequest;
-import javax.portlet.StateAwareResponse;
-
-import org.junit.Test;
-
-/**
- * Tests {@link StateAwareParameterExtractor}.
- *
- * @version $Rev$ $Date$
- */
-public class StateAwareParameterExtractorTest {
-
-    /**
-     * Test method for {@link StateAwareParameterExtractor#setValue(String, String)}.
-     */
-    @Test
-    public void testSetValue() {
-        PortletRequest request = createMock(PortletRequest.class);
-        StateAwareResponse response = createMock(StateAwareResponse.class);
-
-        response.setRenderParameter("name", "value");
-
-        replay(request, response);
-        StateAwareParameterExtractor extractor = new StateAwareParameterExtractor(request, response);
-        extractor.setValue("name", "value");
-        verify(request, response);
-    }
-
-}
diff --git a/tiles-request/tiles-request-servlet-wildcard/pom.xml b/tiles-request/tiles-request-servlet-wildcard/pom.xml
deleted file mode 100644
index a7ede2d..0000000
--- a/tiles-request/tiles-request-servlet-wildcard/pom.xml
+++ /dev/null
@@ -1,107 +0,0 @@
-<?xml version="1.0"?>
-<!--
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
--->
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
-
-  <parent>
-    <groupId>org.apache.tiles</groupId>
-    <artifactId>tiles-request</artifactId>
-    <version>1.0-SNAPSHOT</version>
-  </parent>
-
-  <modelVersion>4.0.0</modelVersion>
-  <artifactId>tiles-request-servlet-wildcard</artifactId>
-  <packaging>jar</packaging>
-  <name>Tiles Request - Wildcard file loading in Servlets</name>
-  <description>Wildcard file loading in Servlets: Allows to load resources using wildcards.</description>
-
-  <properties>
-  	<tiles.osgi.symbolicName>org.apache.tiles.servlet.wildcard</tiles.osgi.symbolicName>
-  </properties>
-
-  <build>
-    <resources>
-      <resource>
-        <directory>src/main/resources</directory>
-        <excludes>
-          <exclude>LICENSE.txt</exclude>
-          <exclude>NOTICE.txt</exclude>
-        </excludes>
-      </resource>
-      <resource>
-        <directory>src/main/resources</directory>
-        <includes>
-          <include>LICENSE.txt</include>
-          <include>NOTICE.txt</include>
-        </includes>
-        <targetPath>META-INF</targetPath>
-      </resource>
-    </resources>
-
-  </build>
-
-  <dependencies>
-    <dependency>
-      <groupId>org.apache.tiles</groupId>
-      <artifactId>tiles-request-servlet</artifactId>
-    </dependency>
-
-    <dependency>
-      <groupId>org.slf4j</groupId>
-      <artifactId>slf4j-jdk14</artifactId>
-      <optional>true</optional>
-    </dependency>
-    <dependency>
-      <groupId>org.slf4j</groupId>
-      <artifactId>jcl-over-slf4j</artifactId>
-      <optional>true</optional>
-    </dependency>
-
-    <dependency>
-      <groupId>org.springframework</groupId>
-      <artifactId>spring-web</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>javax.servlet</groupId>
-      <artifactId>servlet-api</artifactId>
-      <scope>provided</scope>
-    </dependency>
-
-    <dependency>
-      <groupId>junit</groupId>
-      <artifactId>junit</artifactId>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
-      <groupId>org.easymock</groupId>
-      <artifactId>easymock</artifactId>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
-      <groupId>org.easymock</groupId>
-      <artifactId>easymockclassextension</artifactId>
-      <scope>test</scope>
-    </dependency>
-  </dependencies>
-
-</project>
diff --git a/tiles-request/tiles-request-servlet-wildcard/src/main/java/org/apache/tiles/request/servlet/wildcard/WildcardServletApplicationContext.java b/tiles-request/tiles-request-servlet-wildcard/src/main/java/org/apache/tiles/request/servlet/wildcard/WildcardServletApplicationContext.java
deleted file mode 100644
index 359d9b2..0000000
--- a/tiles-request/tiles-request-servlet-wildcard/src/main/java/org/apache/tiles/request/servlet/wildcard/WildcardServletApplicationContext.java
+++ /dev/null
@@ -1,109 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.tiles.request.servlet.wildcard;
-
-import java.io.IOException;
-import java.net.URL;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.Locale;
-
-import javax.servlet.ServletContext;
-
-import org.apache.tiles.request.ApplicationResource;
-import org.apache.tiles.request.locale.URLApplicationResource;
-import org.apache.tiles.request.servlet.ServletApplicationContext;
-import org.springframework.core.io.Resource;
-import org.springframework.core.io.support.ResourcePatternResolver;
-import org.springframework.web.context.support.ServletContextResourcePatternResolver;
-
-/**
- * Servlet-based implementation of the TilesApplicationContext interface that
- * can resolve resources even using wildcards.
- *
- * @version $Rev$ $Date$
- */
-public class WildcardServletApplicationContext extends ServletApplicationContext {
-
-    /**
-     * The pattern resolver.
-     */
-    protected ResourcePatternResolver resolver;
-
-    /**
-     * Constructor.
-     *
-     * @param servletContext The servlet context.
-     */
-    public WildcardServletApplicationContext(ServletContext servletContext) {
-        super(servletContext);
-        resolver = new ServletContextResourcePatternResolver(servletContext);
-    }
-
-    /** {@inheritDoc} */
-    @Override
-    public ApplicationResource getResource(String localePath) {
-        ApplicationResource retValue = null;
-        Collection<ApplicationResource> urlSet = getResources(localePath);
-        if (urlSet != null && !urlSet.isEmpty()) {
-            retValue = urlSet.iterator().next();
-        }
-        return retValue;
-    }
-
-    /** {@inheritDoc} */
-    @Override
-    public ApplicationResource getResource(ApplicationResource base, Locale locale) {
-        ApplicationResource retValue = null;
-        Collection<ApplicationResource> urlSet = getResources(base.getLocalePath(locale));
-        if (urlSet != null && !urlSet.isEmpty()) {
-            retValue = urlSet.iterator().next();
-        }
-        return retValue;
-    }
-
-    /** {@inheritDoc} */
-    @Override
-    public Collection<ApplicationResource> getResources(String path) {
-        Resource[] resources;
-        try {
-            resources = resolver.getResources(path);
-        } catch (IOException e) {
-            return Collections.<ApplicationResource> emptyList();
-        }
-        Collection<ApplicationResource> resourceList = new ArrayList<ApplicationResource>();
-        if (resources != null && resources.length > 0) {
-            for (int i = 0; i < resources.length; i++) {
-                URL url;
-                try {
-                    url = resources[i].getURL();
-                    resourceList.add(new URLApplicationResource(url.toExternalForm(), url));
-                } catch (IOException e) {
-                    // shouldn't happen with the kind of resources we're using
-                    throw new IllegalArgumentException("no URL for " + resources[i].toString(), e);
-                }
-            }
-        }
-        return resourceList;
-    }
-}
diff --git a/tiles-request/tiles-request-servlet-wildcard/src/main/java/org/apache/tiles/request/servlet/wildcard/package-info.java b/tiles-request/tiles-request-servlet-wildcard/src/main/java/org/apache/tiles/request/servlet/wildcard/package-info.java
deleted file mode 100644
index 105a6d8..0000000
--- a/tiles-request/tiles-request-servlet-wildcard/src/main/java/org/apache/tiles/request/servlet/wildcard/package-info.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/*
- * $Id: package-info.java 1049711 2010-12-15 21:12:00Z apetrelli $
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-/**
- * Classes and interfaces that allow to access the various contexts from a servlet
- * application. These classes can manage resource getting through the use of
- * Spring-like wildcards patterns.
- */
-package org.apache.tiles.request.servlet.wildcard;
diff --git a/tiles-request/tiles-request-servlet-wildcard/src/site/site.xml b/tiles-request/tiles-request-servlet-wildcard/src/site/site.xml
deleted file mode 100644
index 8e92dd7..0000000
--- a/tiles-request/tiles-request-servlet-wildcard/src/site/site.xml
+++ /dev/null
@@ -1,56 +0,0 @@
-<?xml version="1.0" encoding="ISO-8859-1"?>
-<!--
-/*
- * $Id: site.xml 1081442 2011-03-14 16:21:08Z apetrelli $
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
--->
-<project name="Apache - Request Microframework">
-    <bannerLeft>
-        <name>Apache Software Foundation</name>
-        <src>http://www.apache.org/images/asf-logo.gif</src>
-        <href>http://www.apache.org</href>
-    </bannerLeft>
-    <bannerRight>
-        <name>Apache Tiles&#8482;</name>
-        <src>http://tiles.apache.org/images/logo.png</src>
-        <href>http://tiles.apache.org</href>
-    </bannerRight>
-    <body>
-
-        <links>
-            <item name="Apache" href="http://www.apache.org" />
-            <item name="Tiles" href="http://tiles.apache.org" />
-        </links>
-
-
-        <menu name="Apache Tiles&#8482;">
-            <item
-                   name="Tiles Home"
-                   href="../../index.html"/>
-            <item
-                   name="Request Microframework"
-                   href="../index.html"/>
-        </menu>
-
-        <menu ref="modules" />
-        <menu ref="reports" />
-
-    </body>
-</project>
diff --git a/tiles-request/tiles-request-servlet-wildcard/src/test/java/org/apache/tiles/request/servlet/wildcard/WildcardServletApplicationContextTest.java b/tiles-request/tiles-request-servlet-wildcard/src/test/java/org/apache/tiles/request/servlet/wildcard/WildcardServletApplicationContextTest.java
deleted file mode 100644
index 1b4cd77..0000000
--- a/tiles-request/tiles-request-servlet-wildcard/src/test/java/org/apache/tiles/request/servlet/wildcard/WildcardServletApplicationContextTest.java
+++ /dev/null
@@ -1,155 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.request.servlet.wildcard;
-
-import junit.framework.TestCase;
-
-import org.apache.tiles.request.locale.URLApplicationResource;
-import org.easymock.EasyMock;
-
-import java.io.File;
-import java.io.IOException;
-import java.net.MalformedURLException;
-import java.net.URL;
-import java.util.Enumeration;
-import java.util.Set;
-import java.util.Vector;
-import java.util.HashSet;
-
-import javax.servlet.ServletContext;
-
-
-/**
- * Tests {@link WildcardServletApplicationContext}.
- *
- * @version $Rev$ $Date$
- */
-public class WildcardServletApplicationContextTest extends TestCase {
-
-    /**
-     * Number of properties container inside the test.properties file.
-     */
-    private static final int TEST_PROPERTIES_SIZE = 3;
-
-    /**
-     * The root Tiles application context.
-     */
-    private ServletContext servletContext;
-
-    /**
-     * The enhanced Tiles application context.
-     */
-    private WildcardServletApplicationContext context;
-
-    /**
-     * The original class loader.
-     */
-    private ClassLoader original;
-
-    /** {@inheritDoc} */
-    @Override
-    public void setUp() {
-        servletContext = EasyMock.createMock(ServletContext.class);
-        original = Thread.currentThread().getContextClassLoader();
-        try {
-            Thread.currentThread().setContextClassLoader(new MockClassLoader());
-        } catch (MalformedURLException e) {
-            throw new RuntimeException("Error when using the mock classloader");
-        }
-        context = new WildcardServletApplicationContext(servletContext);
-    }
-
-    /** {@inheritDoc} */
-    @Override
-    protected void tearDown() {
-        Thread.currentThread().setContextClassLoader(original);
-    }
-
-    /**
-     * Tests resource getting.
-     *
-     * @throws IOException If something goes wrong.
-     */
-    public void testGetResources() throws IOException {
-        String url = "/test.properties";
-        HashSet<URL> set = new HashSet<URL>();
-        URL u = new URL("file://tiles/test.properties");
-        set.add(u);
-        EasyMock.expect(servletContext.getResource(url)).andReturn(u)
-                .anyTimes();
-        File dir = new File(".");
-        EasyMock.expect(servletContext.getResource("/WEB-INF/")).andReturn(
-                dir.toURI().toURL());
-        URL pomUrl = new URL("file://tiles/pom.xml");
-        EasyMock.expect(servletContext.getResource("/WEB-INF/pom.xml"))
-                .andReturn(pomUrl);
-        Set<String> elementSet = new HashSet<String>();
-        elementSet.add("/WEB-INF/pom.xml");
-        EasyMock.expect(servletContext.getResourcePaths("/WEB-INF/")).andReturn(elementSet);
-        EasyMock.replay(servletContext);
-
-        assertEquals(new URLApplicationResource(u.toExternalForm(), u), context.getResource(url));
-        assertEquals(new URLApplicationResource(pomUrl.toExternalForm(), pomUrl), context.getResource("/WEB-INF/*.xml"));
-        assertEquals(TEST_PROPERTIES_SIZE, context.getResources(
-                "classpath*:/test.properties").size());
-
-        assertEquals(1, context.getResources(
-                "classpath*:/org/apache/tiles/request/servlet/wildcard/*Test.class").size());
-        EasyMock.verify(servletContext);
-    }
-
-    /**
-     * An mock class loader.
-     */
-    public class MockClassLoader extends ClassLoader {
-
-        /**
-         * A vector of resources.
-         */
-        private Vector<URL> testPropertiesResources;
-
-        /**
-         * Constructor.
-         *
-         * @throws MalformedURLException If the URL is not valid (that should
-         * not happen).
-         */
-        public MockClassLoader() throws MalformedURLException {
-            testPropertiesResources = new Vector<URL>();
-            testPropertiesResources.add(new URL("file://tiles/test/test.properties"));
-            testPropertiesResources.add(new URL("file://tiles/two/test.properties"));
-            testPropertiesResources.add(new URL("file://tiles/three/test.properties"));
-        }
-
-        /** {@inheritDoc} */
-        @Override
-        public Enumeration<URL> findResources(String path) throws IOException {
-            Enumeration<URL> retValue = null;
-            if ("test.properties".equals(path)) {
-                retValue = testPropertiesResources.elements();
-            } else {
-                retValue = super.findResources(path);
-            }
-
-            return retValue;
-        }
-    }
-}
diff --git a/tiles-request/tiles-request-servlet/pom.xml b/tiles-request/tiles-request-servlet/pom.xml
deleted file mode 100644
index 24b457c..0000000
--- a/tiles-request/tiles-request-servlet/pom.xml
+++ /dev/null
@@ -1,65 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<!--
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements.  See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership.  The ASF licenses this file
-to you under the Apache License, Version 2.0 (the
-"License"); you may not use this file except in compliance
-with the License.  You may obtain a copy of the License at
-
-  http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing,
-software distributed under the License is distributed on an
-"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-KIND, either express or implied.  See the License for the
-specific language governing permissions and limitations
-under the License.
--->
-
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
-  <modelVersion>4.0.0</modelVersion>
-  <parent>
-    <artifactId>tiles-request</artifactId>
-    <groupId>org.apache.tiles</groupId>
-    <version>1.0-SNAPSHOT</version>
-  </parent>
-  <groupId>org.apache.tiles</groupId>
-  <artifactId>tiles-request-servlet</artifactId>
-  <version>1.0-SNAPSHOT</version>
-  <name>Tiles request - Servlet support</name>
-  <description>Tiles request implementation for Servlet technology.</description>
-  <dependencies>
-    <dependency>
-      <groupId>org.apache.tiles</groupId>
-      <artifactId>tiles-request-api</artifactId>
-    </dependency>
-    <dependency>
-    	<groupId>javax.servlet</groupId>
-    	<artifactId>servlet-api</artifactId>
-    	<scope>provided</scope>
-    </dependency>
-    <dependency>
-    	<groupId>junit</groupId>
-    	<artifactId>junit</artifactId>
-    	<scope>test</scope>
-    </dependency>
-    <dependency>
-    	<groupId>org.easymock</groupId>
-    	<artifactId>easymock</artifactId>
-    	<scope>test</scope>
-    </dependency>
-    <dependency>
-    	<groupId>org.apache.shale</groupId>
-    	<artifactId>shale-test</artifactId>
-    	<scope>test</scope>
-    </dependency>
-    <dependency>
-    	<groupId>org.easymock</groupId>
-    	<artifactId>easymockclassextension</artifactId>
-    	<scope>test</scope>
-    </dependency>
-  </dependencies>
-</project>
diff --git a/tiles-request/tiles-request-servlet/src/main/java/org/apache/tiles/request/servlet/ExternalWriterHttpServletResponse.java b/tiles-request/tiles-request-servlet/src/main/java/org/apache/tiles/request/servlet/ExternalWriterHttpServletResponse.java
deleted file mode 100644
index 66c2cdb..0000000
--- a/tiles-request/tiles-request-servlet/src/main/java/org/apache/tiles/request/servlet/ExternalWriterHttpServletResponse.java
+++ /dev/null
@@ -1,58 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.tiles.request.servlet;
-
-import java.io.PrintWriter;
-
-import javax.servlet.http.HttpServletResponse;
-import javax.servlet.http.HttpServletResponseWrapper;
-
-/**
- * Wraps an HTTP response and overrides its print writer.
- *
- * @version $Rev$ $Date$
- */
-public class ExternalWriterHttpServletResponse extends
-        HttpServletResponseWrapper {
-
-    /**
-     * The print writer to use, instead of the response's one.
-     */
-    private PrintWriter writer;
-
-    /**
-     * Constructor.
-     *
-     * @param response The response to wrap.
-     * @param writer The print writer to use, instead of the response's one.
-     */
-    public ExternalWriterHttpServletResponse(HttpServletResponse response, PrintWriter writer) {
-        super(response);
-        this.writer = writer;
-    }
-
-    /** {@inheritDoc} */
-    @Override
-    public PrintWriter getWriter() {
-        return writer;
-    }
-}
diff --git a/tiles-request/tiles-request-servlet/src/main/java/org/apache/tiles/request/servlet/NotAServletEnvironmentException.java b/tiles-request/tiles-request-servlet/src/main/java/org/apache/tiles/request/servlet/NotAServletEnvironmentException.java
deleted file mode 100644
index 3b13425..0000000
--- a/tiles-request/tiles-request-servlet/src/main/java/org/apache/tiles/request/servlet/NotAServletEnvironmentException.java
+++ /dev/null
@@ -1,67 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.tiles.request.servlet;
-
-
-/**
- * Exception that indicates that a resource could not be used because it is not
- * in a servlet environment.
- *
- * @version $Rev$ $Date$
- */
-public class NotAServletEnvironmentException extends RuntimeException {
-
-    /**
-     * Constructor.
-     */
-    public NotAServletEnvironmentException() {
-    }
-
-    /**
-     * Constructor.
-     *
-     * @param message The detail message.
-     */
-    public NotAServletEnvironmentException(String message) {
-        super(message);
-    }
-
-    /**
-     * Constructor.
-     *
-     * @param e The exception to be wrapped.
-     */
-    public NotAServletEnvironmentException(Throwable e) {
-        super(e);
-    }
-
-    /**
-     * Constructor.
-     *
-     * @param message The detail message.
-     * @param e The exception to be wrapped.
-     */
-    public NotAServletEnvironmentException(String message, Throwable e) {
-        super(message, e);
-    }
-
-}
diff --git a/tiles-request/tiles-request-servlet/src/main/java/org/apache/tiles/request/servlet/ServletApplicationContext.java b/tiles-request/tiles-request-servlet/src/main/java/org/apache/tiles/request/servlet/ServletApplicationContext.java
deleted file mode 100644
index e841cc3..0000000
--- a/tiles-request/tiles-request-servlet/src/main/java/org/apache/tiles/request/servlet/ServletApplicationContext.java
+++ /dev/null
@@ -1,132 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.request.servlet;
-
-import java.net.MalformedURLException;
-import java.net.URL;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Locale;
-import java.util.Map;
-
-import javax.servlet.ServletContext;
-
-import org.apache.tiles.request.ApplicationContext;
-import org.apache.tiles.request.ApplicationResource;
-import org.apache.tiles.request.collection.ReadOnlyEnumerationMap;
-import org.apache.tiles.request.collection.ScopeMap;
-import org.apache.tiles.request.locale.URLApplicationResource;
-import org.apache.tiles.request.servlet.extractor.ApplicationScopeExtractor;
-import org.apache.tiles.request.servlet.extractor.InitParameterExtractor;
-
-/**
- * Servlet-based implementation of the TilesApplicationContext interface.
- *
- * @version $Rev$ $Date$
- */
-public class ServletApplicationContext implements ApplicationContext {
-
-    /**
-     * The servlet context to use.
-     */
-    private ServletContext servletContext;
-
-    /**
-     * <p>The lazily instantiated <code>Map</code> of application scope
-     * attributes.</p>
-     */
-    private Map<String, Object> applicationScope = null;
-
-    /**
-     * <p>The lazily instantiated <code>Map</code> of context initialization
-     * parameters.</p>
-     */
-    private Map<String, String> initParam = null;
-
-    /**
-     * Creates a new instance of ServletTilesApplicationContext.
-     *
-     * @param servletContext The servlet context to use.
-     */
-    public ServletApplicationContext(ServletContext servletContext) {
-        this.servletContext = servletContext;
-    }
-
-    /** {@inheritDoc} */
-    public Object getContext() {
-        return servletContext;
-    }
-
-    /** {@inheritDoc} */
-    public Map<String, Object> getApplicationScope() {
-
-        if ((applicationScope == null) && (servletContext != null)) {
-            applicationScope = new ScopeMap(new ApplicationScopeExtractor(servletContext));
-        }
-        return (applicationScope);
-
-    }
-
-    /** {@inheritDoc} */
-    public Map<String, String> getInitParams() {
-
-        if ((initParam == null) && (servletContext != null)) {
-            initParam = new ReadOnlyEnumerationMap<String>(new InitParameterExtractor(servletContext));
-        }
-        return (initParam);
-
-    }
-
-    /** {@inheritDoc} */
-    public ApplicationResource getResource(String localePath) {
-        try {
-            URL url = servletContext.getResource(localePath);
-            if (url != null) {
-                return new URLApplicationResource(localePath, url);
-            } else {
-                return null;
-            }
-        } catch (MalformedURLException e) {
-            return null;
-        }
-    }
-
-    /** {@inheritDoc} */
-    public ApplicationResource getResource(ApplicationResource base, Locale locale) {
-        try {
-            URL url = servletContext.getResource(base.getLocalePath(locale));
-            if (url != null) {
-                return new URLApplicationResource(base.getPath(), locale, url);
-            } else {
-                return null;
-            }
-        } catch (MalformedURLException e) {
-            return null;
-        }
-    }
-
-    /** {@inheritDoc} */
-    public Collection<ApplicationResource> getResources(String path) {
-        ArrayList<ApplicationResource> resources = new ArrayList<ApplicationResource>();
-        resources.add(getResource(path));
-        return resources;
-    }
-}
diff --git a/tiles-request/tiles-request-servlet/src/main/java/org/apache/tiles/request/servlet/ServletRequest.java b/tiles-request/tiles-request-servlet/src/main/java/org/apache/tiles/request/servlet/ServletRequest.java
deleted file mode 100644
index d03809a..0000000
--- a/tiles-request/tiles-request-servlet/src/main/java/org/apache/tiles/request/servlet/ServletRequest.java
+++ /dev/null
@@ -1,320 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.request.servlet;
-
-import java.io.IOException;
-import java.io.OutputStream;
-import java.io.PrintWriter;
-import java.io.Writer;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.List;
-import java.util.Locale;
-import java.util.Map;
-
-import javax.servlet.RequestDispatcher;
-import javax.servlet.ServletException;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-
-import org.apache.tiles.request.AbstractClientRequest;
-import org.apache.tiles.request.ApplicationContext;
-import org.apache.tiles.request.attribute.Addable;
-import org.apache.tiles.request.collection.HeaderValuesMap;
-import org.apache.tiles.request.collection.ReadOnlyEnumerationMap;
-import org.apache.tiles.request.collection.ScopeMap;
-import org.apache.tiles.request.servlet.extractor.ParameterExtractor;
-import org.apache.tiles.request.servlet.extractor.RequestScopeExtractor;
-import org.apache.tiles.request.servlet.extractor.HeaderExtractor;
-import org.apache.tiles.request.servlet.extractor.SessionScopeExtractor;
-
-/**
- * Servlet-based implementation of the TilesApplicationContext interface.
- *
- * @version $Rev$ $Date$
- */
-public class ServletRequest extends AbstractClientRequest {
-
-    /**
-     * The native available scopes: request, session and application.
-     */
-    private static final List<String> SCOPES
-            = Collections.unmodifiableList(Arrays.asList("request", "session", "application"));
-
-    /**
-     * The request object to use.
-     */
-    private HttpServletRequest request;
-
-    /**
-     * The response object to use.
-     */
-    private HttpServletResponse response;
-
-    /**
-     * The response output stream, lazily initialized.
-     */
-    private OutputStream outputStream;
-
-    /**
-     * The response writer, lazily initialized.
-     */
-    private PrintWriter writer;
-
-    /**
-     * <p>The lazily instantiated <code>Map</code> of header name-value
-     * combinations (immutable).</p>
-     */
-    private Map<String, String> header = null;
-
-    /**
-     * <p>The lazily instantiated <code>Map</code> of header name-value
-     * combinations (write-only).</p>
-     */
-    private Addable<String> responseHeaders = null;
-
-
-    /**
-     * <p>The lazily instantitated <code>Map</code> of header name-values
-     * combinations (immutable).</p>
-     */
-    private Map<String, String[]> headerValues = null;
-
-
-    /**
-     * <p>The lazily instantiated <code>Map</code> of request
-     * parameter name-value.</p>
-     */
-    private Map<String, String> param = null;
-
-
-    /**
-     * <p>The lazily instantiated <code>Map</code> of request scope
-     * attributes.</p>
-     */
-    private Map<String, Object> requestScope = null;
-
-    /**
-     * <p>The lazily instantiated <code>Map</code> of session scope
-     * attributes.</p>
-     */
-    private Map<String, Object> sessionScope = null;
-
-
-    /**
-     * Creates a new instance of ServletTilesRequestContext.
-     *
-     * @param applicationContext The application context.
-     * @param request The request object.
-     * @param response The response object.
-     */
-    public ServletRequest(
-            ApplicationContext applicationContext,
-            HttpServletRequest request, HttpServletResponse response) {
-        super(applicationContext);
-        this.request = request;
-        this.response = response;
-    }
-
-    /** {@inheritDoc} */
-    public Map<String, String> getHeader() {
-
-        if ((header == null) && (request != null)) {
-            header = new ReadOnlyEnumerationMap<String>(new HeaderExtractor(request, null));
-        }
-        return (header);
-
-    }
-
-    /** {@inheritDoc} */
-    public Addable<String> getResponseHeaders() {
-
-        if ((responseHeaders == null) && (response != null)) {
-            responseHeaders = new HeaderExtractor(null, response);
-        }
-        return (responseHeaders);
-
-    }
-
-    /** {@inheritDoc} */
-    public Map<String, String[]> getHeaderValues() {
-
-        if ((headerValues == null) && (request != null)) {
-            headerValues = new HeaderValuesMap(new HeaderExtractor(request, response));
-        }
-        return (headerValues);
-
-    }
-
-
-    /** {@inheritDoc} */
-    public Map<String, String> getParam() {
-
-        if ((param == null) && (request != null)) {
-            param = new ReadOnlyEnumerationMap<String>(new ParameterExtractor(request));
-        }
-        return (param);
-
-    }
-
-
-    /** {@inheritDoc} */
-    @SuppressWarnings("unchecked")
-    public Map<String, String[]> getParamValues() {
-        return request.getParameterMap();
-    }
-
-    @Override
-    public Map<String, Object> getContext(String scope) {
-        if("request".equals(scope)){
-            return getRequestScope();
-        }else if("session".equals(scope)){
-            return getSessionScope();
-        }else if("application".equals(scope)){
-            return getApplicationScope();
-        }
-        throw new IllegalArgumentException(scope + " does not exist. Call getAvailableScopes() first to check.");
-    }
-
-    /** {@inheritDoc} */
-    public Map<String, Object> getRequestScope() {
-
-        if ((requestScope == null) && (request != null)) {
-            requestScope = new ScopeMap(new RequestScopeExtractor(request));
-        }
-        return (requestScope);
-
-    }
-
-
-    /** {@inheritDoc} */
-    public Map<String, Object> getSessionScope() {
-
-        if ((sessionScope == null) && (request != null)) {
-            sessionScope = new ScopeMap(new SessionScopeExtractor(request));
-        }
-        return (sessionScope);
-
-    }
-
-    @Override
-    public List<String> getAvailableScopes() {
-        return SCOPES;
-    }
-
-    /** {@inheritDoc} */
-    public void doForward(String path) throws IOException {
-        if (response.isCommitted()) {
-            doInclude(path);
-        } else {
-            forward(path);
-        }
-    }
-
-
-    /** {@inheritDoc} */
-    public void doInclude(String path) throws IOException {
-        RequestDispatcher rd = request.getRequestDispatcher(path);
-
-        if (rd == null) {
-            throw new IOException("No request dispatcher returned for path '"
-                    + path + "'");
-        }
-
-        try {
-            rd.include(request, response);
-        } catch (ServletException ex) {
-            throw ServletUtil.wrapServletException(ex, "ServletException including path '"
-                    + path + "'.");
-        }
-    }
-
-    /**
-     * Forwards to a path.
-     *
-     * @param path The path to forward to.
-     * @throws IOException If something goes wrong during the operation.
-     */
-    private void forward(String path) throws IOException {
-        RequestDispatcher rd = request.getRequestDispatcher(path);
-
-        if (rd == null) {
-            throw new IOException("No request dispatcher returned for path '"
-                    + path + "'");
-        }
-
-        try {
-            rd.forward(request, response);
-        } catch (ServletException ex) {
-            throw ServletUtil.wrapServletException(ex, "ServletException including path '"
-                    + path + "'.");
-        }
-    }
-
-    /** {@inheritDoc} */
-    public OutputStream getOutputStream() throws IOException {
-        if (outputStream == null) {
-            outputStream = response.getOutputStream();
-        }
-        return outputStream;
-    }
-
-    /** {@inheritDoc} */
-    public Writer getWriter() throws IOException {
-        return getPrintWriter();
-    }
-
-    /** {@inheritDoc} */
-    public PrintWriter getPrintWriter() throws IOException {
-        if (writer == null) {
-            writer = response.getWriter();
-        }
-        return writer;
-    }
-
-    /** {@inheritDoc} */
-    public boolean isResponseCommitted() {
-        return response.isCommitted();
-    }
-
-    /** {@inheritDoc} */
-    public void setContentType(String contentType) {
-        response.setContentType(contentType);
-    }
-
-    /** {@inheritDoc} */
-    public Locale getRequestLocale() {
-        return request.getLocale();
-    }
-
-    public HttpServletRequest getRequest() {
-        return request;
-    }
-
-    public HttpServletResponse getResponse() {
-        return response;
-    }
-
-    /** {@inheritDoc} */
-    public boolean isUserInRole(String role) {
-        return request.isUserInRole(role);
-    }
-}
diff --git a/tiles-request/tiles-request-servlet/src/main/java/org/apache/tiles/request/servlet/ServletUtil.java b/tiles-request/tiles-request-servlet/src/main/java/org/apache/tiles/request/servlet/ServletUtil.java
deleted file mode 100644
index 652e8e9..0000000
--- a/tiles-request/tiles-request-servlet/src/main/java/org/apache/tiles/request/servlet/ServletUtil.java
+++ /dev/null
@@ -1,122 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.tiles.request.servlet;
-
-import java.io.IOException;
-
-import javax.servlet.ServletContext;
-import javax.servlet.ServletException;
-
-import org.apache.tiles.request.ApplicationContext;
-import org.apache.tiles.request.ApplicationAccess;
-import org.apache.tiles.request.DispatchRequestWrapper;
-import org.apache.tiles.request.Request;
-
-/**
- * Utilities for Tiles request servlet support.
- *
- * @version $Rev$ $Date$
- */
-public final class ServletUtil {
-
-    /**
-     * Constructor.
-     */
-    private ServletUtil() {
-    }
-
-    /**
-     * Wraps a ServletException to create an IOException with the root cause if present.
-     *
-     * @param ex The exception to wrap.
-     * @param message The message of the exception.
-     * @return The wrapped exception.
-     */
-    public static IOException wrapServletException(ServletException ex,
-            String message) {
-        IOException retValue;
-        Throwable rootCause = ex.getRootCause();
-        if (rootCause != null) {
-            // Replace the ServletException with an IOException, with the root
-            // cause of the first as the cause of the latter.
-            retValue = new IOException(message, rootCause);
-        } else {
-            retValue = new IOException(message, ex);
-        }
-
-        return retValue;
-    }
-
-    /**
-     * Returns the application context getting it from the servlet context. It must be
-     * first saved creating a {@link ServletApplicationContext} and using
-     * {@link ApplicationAccess#register(ApplicationContext)}.
-     *
-     * @param servletContext The servlet context.
-     * @return The application context, if found, <code>null</code> otherwise.
-     */
-    public static ApplicationContext getApplicationContext(ServletContext servletContext) {
-        return (ApplicationContext) servletContext
-                .getAttribute(ApplicationAccess.APPLICATION_CONTEXT_ATTRIBUTE);
-    }
-
-    /**
-     * Opens a TilesRequestContext until it finds a ServletTilesRequestContext.
-     *
-     * @param request The request to open.
-     * @return The servlet-based request context.
-     * @throws NotAServletEnvironmentException If a servlet-based request
-     * context could not be found.
-     */
-    public static ServletRequest getServletRequest(Request request) {
-        Request currentRequest = request;
-        while (true) {
-            if (currentRequest == null) {
-                throw new NotAServletEnvironmentException("Last Tiles request context is null");
-            }
-
-            if (currentRequest instanceof ServletRequest) {
-                return (ServletRequest) currentRequest;
-            }
-            if (!(currentRequest instanceof DispatchRequestWrapper)) {
-                throw new NotAServletEnvironmentException("Not a Servlet environment, not supported");
-            }
-            currentRequest = ((DispatchRequestWrapper) currentRequest).getWrappedRequest();
-        }
-    }
-
-    /**
-     * Gets a servlet context from a TilesApplicationContext.
-     *
-     * @param applicationContext The application context to analyze.
-     * @return The servlet context.
-     * @throws NotAServletEnvironmentException If the application context is not
-     * servlet-based.
-     */
-    public static ServletContext getServletContext(ApplicationContext applicationContext) {
-        if (applicationContext instanceof ServletApplicationContext) {
-            return (ServletContext) ((ServletApplicationContext) applicationContext).getContext();
-        }
-
-        throw new NotAServletEnvironmentException("Not a Servlet-based environment");
-    }
-}
diff --git a/tiles-request/tiles-request-servlet/src/main/java/org/apache/tiles/request/servlet/extractor/ApplicationScopeExtractor.java b/tiles-request/tiles-request-servlet/src/main/java/org/apache/tiles/request/servlet/extractor/ApplicationScopeExtractor.java
deleted file mode 100644
index b7e3460..0000000
--- a/tiles-request/tiles-request-servlet/src/main/java/org/apache/tiles/request/servlet/extractor/ApplicationScopeExtractor.java
+++ /dev/null
@@ -1,70 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.request.servlet.extractor;
-
-import java.util.Enumeration;
-
-import javax.servlet.ServletContext;
-
-import org.apache.tiles.request.attribute.AttributeExtractor;
-
-/**
- * Extract attributes from application scope.
- *
- * @version $Rev$ $Date$
- */
-public class ApplicationScopeExtractor implements AttributeExtractor {
-
-    /**
-     * The servlet context.
-     */
-    private ServletContext context;
-
-    /**
-     * Constructor.
-     *
-     * @param context The servlet context.
-     */
-    public ApplicationScopeExtractor(ServletContext context) {
-        this.context = context;
-    }
-
-    @Override
-    public void setValue(String name, Object value) {
-        context.setAttribute(name, value);
-    }
-
-    @Override
-    public void removeValue(String name) {
-        context.removeAttribute(name);
-    }
-
-    @SuppressWarnings("unchecked")
-    @Override
-    public Enumeration<String> getKeys() {
-        return context.getAttributeNames();
-    }
-
-    @Override
-    public Object getValue(String key) {
-        return context.getAttribute(key);
-    }
-}
diff --git a/tiles-request/tiles-request-servlet/src/main/java/org/apache/tiles/request/servlet/extractor/HeaderExtractor.java b/tiles-request/tiles-request-servlet/src/main/java/org/apache/tiles/request/servlet/extractor/HeaderExtractor.java
deleted file mode 100644
index 2820903..0000000
--- a/tiles-request/tiles-request-servlet/src/main/java/org/apache/tiles/request/servlet/extractor/HeaderExtractor.java
+++ /dev/null
@@ -1,80 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.request.servlet.extractor;
-
-import java.util.Enumeration;
-
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-
-import org.apache.tiles.request.attribute.EnumeratedValuesExtractor;
-
-/**
- * Extract header values from an HTTP request.
- *
- * @version $Rev$ $Date$
- */
-public class HeaderExtractor implements EnumeratedValuesExtractor {
-
-    /**
-     * The request.
-     */
-    private HttpServletRequest request;
-
-    /**
-     * The response.
-     */
-    private HttpServletResponse response;
-
-    /**
-     * Constructor.
-     *
-     * @param request The request.
-     * @param response The response.
-     */
-    public HeaderExtractor(HttpServletRequest request,
-            HttpServletResponse response) {
-        this.request = request;
-        this.response = response;
-    }
-
-    @SuppressWarnings("unchecked")
-    @Override
-    public Enumeration<String> getKeys() {
-        return request.getHeaderNames();
-   }
-
-    @Override
-    public String getValue(String key) {
-        return request.getHeader(key);
-    }
-
-    @SuppressWarnings("unchecked")
-    @Override
-    public Enumeration<String> getValues(String key) {
-        return request.getHeaders(key);
-    }
-
-    @Override
-    public void setValue(String key, String value) {
-        response.setHeader(key, value);
-    }
-}
diff --git a/tiles-request/tiles-request-servlet/src/main/java/org/apache/tiles/request/servlet/extractor/InitParameterExtractor.java b/tiles-request/tiles-request-servlet/src/main/java/org/apache/tiles/request/servlet/extractor/InitParameterExtractor.java
deleted file mode 100644
index 6dbf7b7..0000000
--- a/tiles-request/tiles-request-servlet/src/main/java/org/apache/tiles/request/servlet/extractor/InitParameterExtractor.java
+++ /dev/null
@@ -1,61 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.request.servlet.extractor;
-
-import java.util.Enumeration;
-
-import javax.servlet.ServletContext;
-
-import org.apache.tiles.request.attribute.HasKeys;
-
-/**
- * Extract initialization parameters from the servlet context.
- *
- * @version $Rev$ $Date$
- */
-public class InitParameterExtractor implements HasKeys<String> {
-
-    /**
-     * The servlet context.
-     */
-    private ServletContext context;
-
-    /**
-     * Constructor.
-     *
-     * @param context The servlet context.
-     */
-    public InitParameterExtractor(ServletContext context) {
-        this.context = context;
-    }
-
-    @SuppressWarnings("unchecked")
-    @Override
-    public Enumeration<String> getKeys() {
-        return context.getInitParameterNames();
-    }
-
-    @Override
-    public String getValue(String key) {
-        return context.getInitParameter(key);
-    }
-
-}
diff --git a/tiles-request/tiles-request-servlet/src/main/java/org/apache/tiles/request/servlet/extractor/ParameterExtractor.java b/tiles-request/tiles-request-servlet/src/main/java/org/apache/tiles/request/servlet/extractor/ParameterExtractor.java
deleted file mode 100644
index 9749270..0000000
--- a/tiles-request/tiles-request-servlet/src/main/java/org/apache/tiles/request/servlet/extractor/ParameterExtractor.java
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.request.servlet.extractor;
-
-import java.util.Enumeration;
-
-import javax.servlet.http.HttpServletRequest;
-
-import org.apache.tiles.request.attribute.HasKeys;
-
-/**
- * Extract parameters from the request.
- *
- * @version $Rev$ $Date$
- */
-public class ParameterExtractor implements HasKeys<String> {
-
-    /**
-     * The servlet request.
-     */
-    private HttpServletRequest request;
-
-    /**
-     * Constructor.
-     *
-     * @param request The servlet request.
-     */
-    public ParameterExtractor(HttpServletRequest request) {
-        this.request = request;
-    }
-
-    @SuppressWarnings("unchecked")
-    @Override
-    public Enumeration<String> getKeys() {
-        return request.getParameterNames();
-    }
-
-    @Override
-    public String getValue(String key) {
-        return request.getParameter(key);
-    }
-}
diff --git a/tiles-request/tiles-request-servlet/src/main/java/org/apache/tiles/request/servlet/extractor/RequestScopeExtractor.java b/tiles-request/tiles-request-servlet/src/main/java/org/apache/tiles/request/servlet/extractor/RequestScopeExtractor.java
deleted file mode 100644
index d558e10..0000000
--- a/tiles-request/tiles-request-servlet/src/main/java/org/apache/tiles/request/servlet/extractor/RequestScopeExtractor.java
+++ /dev/null
@@ -1,70 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.request.servlet.extractor;
-
-import java.util.Enumeration;
-
-import javax.servlet.http.HttpServletRequest;
-
-import org.apache.tiles.request.attribute.AttributeExtractor;
-
-/**
- * Extracts attributes from request scope.
- *
- * @version $Rev$ $Date$
- */
-public class RequestScopeExtractor implements AttributeExtractor {
-
-    /**
-     * The servlet request.
-     */
-    private HttpServletRequest request;
-
-    /**
-     * Constructor.
-     *
-     * @param request The servlet request.
-     */
-    public RequestScopeExtractor(HttpServletRequest request) {
-        this.request = request;
-    }
-
-    @Override
-    public void setValue(String name, Object value) {
-        request.setAttribute(name, value);
-    }
-
-    @Override
-    public void removeValue(String name) {
-        request.removeAttribute(name);
-    }
-
-    @SuppressWarnings("unchecked")
-    @Override
-    public Enumeration<String> getKeys() {
-        return request.getAttributeNames();
-    }
-
-    @Override
-    public Object getValue(String key) {
-        return request.getAttribute(key);
-    }
-}
diff --git a/tiles-request/tiles-request-servlet/src/main/java/org/apache/tiles/request/servlet/extractor/SessionScopeExtractor.java b/tiles-request/tiles-request-servlet/src/main/java/org/apache/tiles/request/servlet/extractor/SessionScopeExtractor.java
deleted file mode 100644
index 6d49743..0000000
--- a/tiles-request/tiles-request-servlet/src/main/java/org/apache/tiles/request/servlet/extractor/SessionScopeExtractor.java
+++ /dev/null
@@ -1,83 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.request.servlet.extractor;
-
-import java.util.Enumeration;
-import java.util.Collections;
-
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpSession;
-
-import org.apache.tiles.request.attribute.AttributeExtractor;
-
-/**
- * Extract attributes from session scope.
- *
- * @version $Rev$ $Date$
- */
-public class SessionScopeExtractor implements AttributeExtractor {
-
-    /**
-     * The servlet request.
-     */
-    private HttpServletRequest request;
-
-    /**
-     * Constructor.
-     *
-     * @param request The servlet request.
-     */
-    public SessionScopeExtractor(HttpServletRequest request) {
-        this.request = request;
-    }
-
-    @Override
-    public void setValue(String name, Object value) {
-        request.getSession().setAttribute(name, value);
-    }
-
-    @Override
-    public void removeValue(String name) {
-        HttpSession session = request.getSession(false);
-        if (session != null) {
-            session.removeAttribute(name);
-        }
-    }
-
-    @SuppressWarnings("unchecked")
-    @Override
-    public Enumeration<String> getKeys() {
-        HttpSession session = request.getSession(false);
-        if (session != null) {
-            return session.getAttributeNames();
-        }
-        return Collections.enumeration(Collections.<String>emptySet());
-    }
-
-    @Override
-    public Object getValue(String key) {
-        HttpSession session = request.getSession(false);
-        if (session != null) {
-            return session.getAttribute(key);
-        }
-        return null;
-    }
-}
diff --git a/tiles-request/tiles-request-servlet/src/main/java/org/apache/tiles/request/servlet/extractor/package-info.java b/tiles-request/tiles-request-servlet/src/main/java/org/apache/tiles/request/servlet/extractor/package-info.java
deleted file mode 100644
index 0df9334..0000000
--- a/tiles-request/tiles-request-servlet/src/main/java/org/apache/tiles/request/servlet/extractor/package-info.java
+++ /dev/null
@@ -1,24 +0,0 @@
-/*
- * $Id: package-info.java 1049711 2010-12-15 21:12:00Z apetrelli $
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-/**
- * Extractors to get attributes and other info from servlet requests and contexts.
- */
-package org.apache.tiles.request.servlet.extractor;
diff --git a/tiles-request/tiles-request-servlet/src/main/java/org/apache/tiles/request/servlet/package-info.java b/tiles-request/tiles-request-servlet/src/main/java/org/apache/tiles/request/servlet/package-info.java
deleted file mode 100644
index 331e1f1..0000000
--- a/tiles-request/tiles-request-servlet/src/main/java/org/apache/tiles/request/servlet/package-info.java
+++ /dev/null
@@ -1,24 +0,0 @@
-/*
- * $Id: package-info.java 1049711 2010-12-15 21:12:00Z apetrelli $
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-/**
- * Tiles request support for Servlet technology.
- */
-package org.apache.tiles.request.servlet;
diff --git a/tiles-request/tiles-request-servlet/src/site/site.xml b/tiles-request/tiles-request-servlet/src/site/site.xml
deleted file mode 100644
index 8e92dd7..0000000
--- a/tiles-request/tiles-request-servlet/src/site/site.xml
+++ /dev/null
@@ -1,56 +0,0 @@
-<?xml version="1.0" encoding="ISO-8859-1"?>
-<!--
-/*
- * $Id: site.xml 1081442 2011-03-14 16:21:08Z apetrelli $
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
--->
-<project name="Apache - Request Microframework">
-    <bannerLeft>
-        <name>Apache Software Foundation</name>
-        <src>http://www.apache.org/images/asf-logo.gif</src>
-        <href>http://www.apache.org</href>
-    </bannerLeft>
-    <bannerRight>
-        <name>Apache Tiles&#8482;</name>
-        <src>http://tiles.apache.org/images/logo.png</src>
-        <href>http://tiles.apache.org</href>
-    </bannerRight>
-    <body>
-
-        <links>
-            <item name="Apache" href="http://www.apache.org" />
-            <item name="Tiles" href="http://tiles.apache.org" />
-        </links>
-
-
-        <menu name="Apache Tiles&#8482;">
-            <item
-                   name="Tiles Home"
-                   href="../../index.html"/>
-            <item
-                   name="Request Microframework"
-                   href="../index.html"/>
-        </menu>
-
-        <menu ref="modules" />
-        <menu ref="reports" />
-
-    </body>
-</project>
diff --git a/tiles-request/tiles-request-servlet/src/test/java/org/apache/tiles/request/servlet/ExternalWriterHttpServletResponseTest.java b/tiles-request/tiles-request-servlet/src/test/java/org/apache/tiles/request/servlet/ExternalWriterHttpServletResponseTest.java
deleted file mode 100644
index 67d0562..0000000
--- a/tiles-request/tiles-request-servlet/src/test/java/org/apache/tiles/request/servlet/ExternalWriterHttpServletResponseTest.java
+++ /dev/null
@@ -1,55 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.tiles.request.servlet;
-
-import static org.easymock.EasyMock.*;
-import static org.junit.Assert.*;
-
-import java.io.PrintWriter;
-import java.io.StringWriter;
-import java.io.Writer;
-
-import javax.servlet.http.HttpServletResponse;
-
-import org.junit.Test;
-
-/**
- * Tests {@link ExternalWriterHttpServletResponse}.
- */
-public class ExternalWriterHttpServletResponseTest {
-
-    /**
-     * Test method for {@link org.apache.tiles.request.servlet.ExternalWriterHttpServletResponse#getWriter()}.
-     */
-    @Test
-    public void testGetWriter() {
-        HttpServletResponse wrappedResponse = createMock(HttpServletResponse.class);
-        Writer writer = new StringWriter();
-        PrintWriter printWriter = new PrintWriter(writer);
-        replay(wrappedResponse);
-        ExternalWriterHttpServletResponse response = new ExternalWriterHttpServletResponse(
-                wrappedResponse, printWriter);
-        assertEquals(printWriter, response.getWriter());
-        verify(wrappedResponse);
-    }
-
-}
diff --git a/tiles-request/tiles-request-servlet/src/test/java/org/apache/tiles/request/servlet/NotAServletEnvironmentExceptionTest.java b/tiles-request/tiles-request-servlet/src/test/java/org/apache/tiles/request/servlet/NotAServletEnvironmentExceptionTest.java
deleted file mode 100644
index 6a750f8..0000000
--- a/tiles-request/tiles-request-servlet/src/test/java/org/apache/tiles/request/servlet/NotAServletEnvironmentExceptionTest.java
+++ /dev/null
@@ -1,77 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.tiles.request.servlet;
-
-import static org.junit.Assert.*;
-
-import org.junit.Test;
-
-/**
- * Tests {@link NotAServletEnvironmentException}.
- *
- * @version $Rev$ $Date$
- */
-public class NotAServletEnvironmentExceptionTest {
-
-    /**
-     * Test method for {@link NotAServletEnvironmentException#NotAServletEnvironmentException()}.
-     */
-    @Test
-    public void testNotAServletEnvironmentException() {
-        NotAServletEnvironmentException exception = new NotAServletEnvironmentException();
-        assertNull(exception.getMessage());
-        assertNull(exception.getCause());
-    }
-
-    /**
-     * Test method for {@link NotAServletEnvironmentException#NotAServletEnvironmentException(java.lang.String)}.
-     */
-    @Test
-    public void testNotAServletEnvironmentExceptionString() {
-        NotAServletEnvironmentException exception = new NotAServletEnvironmentException("my message");
-        assertEquals("my message", exception.getMessage());
-        assertNull(exception.getCause());
-    }
-
-    /**
-     * Test method for {@link NotAServletEnvironmentException#NotAServletEnvironmentException(java.lang.Throwable)}.
-     */
-    @Test
-    public void testNotAServletEnvironmentExceptionThrowable() {
-        Throwable cause = new Throwable();
-        NotAServletEnvironmentException exception = new NotAServletEnvironmentException(cause);
-        assertEquals(cause.toString(), exception.getMessage());
-        assertEquals(cause, exception.getCause());
-    }
-
-    /**
-     * Test method for {@link NotAServletEnvironmentException#NotAServletEnvironmentException(String, Throwable)}.
-     */
-    @Test
-    public void testNotAServletEnvironmentExceptionStringThrowable() {
-        Throwable cause = new Throwable();
-        NotAServletEnvironmentException exception = new NotAServletEnvironmentException("my message", cause);
-        assertEquals("my message", exception.getMessage());
-        assertEquals(cause, exception.getCause());
-    }
-
-}
diff --git a/tiles-request/tiles-request-servlet/src/test/java/org/apache/tiles/request/servlet/ServletApplicationContextTest.java b/tiles-request/tiles-request-servlet/src/test/java/org/apache/tiles/request/servlet/ServletApplicationContextTest.java
deleted file mode 100644
index 1ab3413..0000000
--- a/tiles-request/tiles-request-servlet/src/test/java/org/apache/tiles/request/servlet/ServletApplicationContextTest.java
+++ /dev/null
@@ -1,139 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.request.servlet;
-
-import static org.easymock.EasyMock.*;
-import static org.easymock.classextension.EasyMock.*;
-import static org.junit.Assert.*;
-
-import java.io.IOException;
-import java.net.URL;
-import java.util.Collection;
-import java.util.Locale;
-
-import javax.servlet.ServletContext;
-
-import org.apache.tiles.request.ApplicationResource;
-import org.apache.tiles.request.collection.ReadOnlyEnumerationMap;
-import org.apache.tiles.request.collection.ScopeMap;
-import org.junit.Before;
-import org.junit.Test;
-
-/**
- * Tests {@link ServletApplicationContext}.
- *
- * @version $Rev$ $Date$
- */
-public class ServletApplicationContextTest {
-
-    /**
-     * The servlet context.
-     */
-    private ServletContext servletContext;
-
-    /**
-     * The application context to test.
-     */
-    private ServletApplicationContext context;
-
-    /**
-     * Sets up the test.
-     */
-    @Before
-    public void setUp() {
-        servletContext = createMock(ServletContext.class);
-        context = new ServletApplicationContext(servletContext);
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.request.servlet.ServletApplicationContext#getContext()}.
-     */
-    @Test
-    public void testGetContext() {
-        replay(servletContext);
-        assertEquals(servletContext, context.getContext());
-        verify(servletContext);
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.request.servlet.ServletApplicationContext#getApplicationScope()}.
-     */
-    @Test
-    public void testGetApplicationScope() {
-        replay(servletContext);
-        assertTrue(context.getApplicationScope() instanceof ScopeMap);
-        verify(servletContext);
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.request.servlet.ServletApplicationContext#getInitParams()}.
-     */
-    @Test
-    public void testGetInitParams() {
-        replay(servletContext);
-        assertTrue(context.getInitParams() instanceof ReadOnlyEnumerationMap);
-        verify(servletContext);
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.request.servlet.ServletApplicationContext#getResource(java.lang.String)}.
-     * @throws IOException If something goes wrong.
-     */
-    @Test
-    public void testGetResource() throws IOException {
-        URL url = new URL("file:///servletContext/my/path.html");
-        URL urlFr = new URL("file:///servletContext/my/path_fr.html");
-        expect(servletContext.getResource("/my/path.html")).andReturn(url);
-        expect(servletContext.getResource("/my/path_fr.html")).andReturn(urlFr);
-        expect(servletContext.getResource("/null/path.html")).andReturn(null);
-
-        replay(servletContext);
-        ApplicationResource resource = context.getResource("/my/path.html");
-        assertNotNull(resource);
-        assertEquals(resource.getLocalePath(), "/my/path.html");
-        assertEquals(resource.getPath(), "/my/path.html");
-        assertEquals(Locale.ROOT, resource.getLocale());
-        ApplicationResource resourceFr = context.getResource(resource, Locale.FRENCH);
-        assertNotNull(resourceFr);
-        assertEquals("/my/path_fr.html", resourceFr.getLocalePath());
-        assertEquals("/my/path.html", resourceFr.getPath());
-        assertEquals(Locale.FRENCH, resourceFr.getLocale());
-        ApplicationResource nullResource = context.getResource("/null/path.html");
-        assertNull(nullResource);
-        verify(servletContext);
-    }
-
-    /**
-     * Test method for {@link ServletApplicationContext#getResources(String)}.
-     * @throws IOException If something goes wrong.
-     */
-    @Test
-    public void testGetResources() throws IOException {
-        URL url = new URL("file:///servletContext/my/path");
-        expect(servletContext.getResource("/my/path")).andReturn(url);
-
-        replay(servletContext);
-        Collection<ApplicationResource> resources = context.getResources("/my/path");
-        assertEquals(1, resources.size());
-        assertEquals(resources.iterator().next().getLocalePath(), "/my/path");
-        verify(servletContext);
-    }
-}
diff --git a/tiles-request/tiles-request-servlet/src/test/java/org/apache/tiles/request/servlet/ServletRequestTest.java b/tiles-request/tiles-request-servlet/src/test/java/org/apache/tiles/request/servlet/ServletRequestTest.java
deleted file mode 100644
index 14b05cf..0000000
--- a/tiles-request/tiles-request-servlet/src/test/java/org/apache/tiles/request/servlet/ServletRequestTest.java
+++ /dev/null
@@ -1,391 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.request.servlet;
-
-import static org.easymock.EasyMock.*;
-import static org.easymock.classextension.EasyMock.*;
-import static org.junit.Assert.*;
-
-import java.io.IOException;
-import java.io.PrintWriter;
-import java.util.Locale;
-import java.util.Map;
-
-import javax.servlet.RequestDispatcher;
-import javax.servlet.ServletException;
-import javax.servlet.ServletOutputStream;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-
-import org.apache.tiles.request.ApplicationContext;
-import org.apache.tiles.request.collection.HeaderValuesMap;
-import org.apache.tiles.request.collection.ReadOnlyEnumerationMap;
-import org.apache.tiles.request.collection.ScopeMap;
-import org.apache.tiles.request.servlet.extractor.HeaderExtractor;
-import org.junit.Before;
-import org.junit.Test;
-
-/**
- * Tests {@link ServletRequest}.
- *
- * @version $Rev$ $Date$
- */
-public class ServletRequestTest {
-
-    /**
-     * The application context.
-     */
-    private ApplicationContext applicationContext;
-
-    /**
-     * The request.
-     */
-    private HttpServletRequest request;
-
-    /**
-     * The response.
-     */
-    private HttpServletResponse response;
-
-    /**
-     * The request to test.
-     */
-    private ServletRequest req;
-
-    /**
-     * Sets up the test.
-     */
-    @Before
-    public void setUp() {
-        applicationContext = createMock(ApplicationContext.class);
-        request = createMock(HttpServletRequest.class);
-        response = createMock(HttpServletResponse.class);
-        req = new ServletRequest(applicationContext, request, response);
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.request.servlet.ServletRequest#doForward(java.lang.String)}.
-     * @throws IOException If something goes wrong.
-     * @throws ServletException If something goes wrong.
-     */
-    @Test
-    public void testDoForward() throws ServletException, IOException {
-        RequestDispatcher rd = createMock(RequestDispatcher.class);
-
-        expect(response.isCommitted()).andReturn(false);
-        expect(request.getRequestDispatcher("/my/path")).andReturn(rd);
-        rd.forward(request, response);
-
-        replay(applicationContext, request, response, rd);
-        req.doForward("/my/path");
-        verify(applicationContext, request, response, rd);
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.request.servlet.ServletRequest#doForward(java.lang.String)}.
-     * @throws IOException If something goes wrong.
-     */
-    @Test(expected = IOException.class)
-    public void testDoForwardNoDispatcher() throws IOException {
-        expect(response.isCommitted()).andReturn(false);
-        expect(request.getRequestDispatcher("/my/path")).andReturn(null);
-
-        replay(applicationContext, request, response);
-        try {
-            req.doForward("/my/path");
-        } finally {
-            verify(applicationContext, request, response);
-        }
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.request.servlet.ServletRequest#doForward(java.lang.String)}.
-     * @throws IOException If something goes wrong.
-     * @throws ServletException If something goes wrong.
-     */
-    @Test(expected = IOException.class)
-    public void testDoForwardServletException() throws ServletException, IOException {
-        RequestDispatcher rd = createMock(RequestDispatcher.class);
-
-        expect(response.isCommitted()).andReturn(false);
-        expect(request.getRequestDispatcher("/my/path")).andReturn(rd);
-        rd.forward(request, response);
-        expectLastCall().andThrow(new ServletException());
-
-        replay(applicationContext, request, response, rd);
-        try {
-            req.doForward("/my/path");
-        } finally {
-            verify(applicationContext, request, response, rd);
-        }
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.request.servlet.ServletRequest#doForward(java.lang.String)}.
-     * @throws IOException If something goes wrong.
-     * @throws ServletException If something goes wrong.
-     */
-    @Test
-    public void testDoForwardInclude() throws ServletException, IOException {
-        RequestDispatcher rd = createMock(RequestDispatcher.class);
-
-        expect(response.isCommitted()).andReturn(true);
-        expect(request.getRequestDispatcher("/my/path")).andReturn(rd);
-        rd.include(request, response);
-
-        replay(applicationContext, request, response, rd);
-        req.doForward("/my/path");
-        verify(applicationContext, request, response, rd);
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.request.servlet.ServletRequest#doInclude(java.lang.String)}.
-     * @throws IOException If something goes wrong.
-     * @throws ServletException If something goes wrong.
-     */
-    @Test
-    public void testDoInclude() throws IOException, ServletException {
-        RequestDispatcher rd = createMock(RequestDispatcher.class);
-
-        expect(request.getRequestDispatcher("/my/path")).andReturn(rd);
-        rd.include(request, response);
-
-        replay(applicationContext, request, response, rd);
-        req.doInclude("/my/path");
-        verify(applicationContext, request, response, rd);
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.request.servlet.ServletRequest#doInclude(java.lang.String)}.
-     * @throws IOException If something goes wrong.
-     */
-    @Test(expected = IOException.class)
-    public void testDoIncludeNoDispatcher() throws IOException {
-        expect(request.getRequestDispatcher("/my/path")).andReturn(null);
-
-        replay(applicationContext, request, response);
-        try {
-            req.doInclude("/my/path");
-        } finally {
-            verify(applicationContext, request, response);
-        }
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.request.servlet.ServletRequest#doInclude(java.lang.String)}.
-     * @throws IOException If something goes wrong.
-     * @throws ServletException If something goes wrong.
-     */
-    @Test(expected = IOException.class)
-    public void testDoIncludeServletException() throws IOException, ServletException {
-        RequestDispatcher rd = createMock(RequestDispatcher.class);
-
-        expect(request.getRequestDispatcher("/my/path")).andReturn(rd);
-        rd.include(request, response);
-        expectLastCall().andThrow(new ServletException());
-
-        replay(applicationContext, request, response, rd);
-        try {
-            req.doInclude("/my/path");
-        } finally {
-            verify(applicationContext, request, response, rd);
-        }
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.request.servlet.ServletRequest#getHeader()}.
-     */
-    @Test
-    public void testGetHeader() {
-        assertTrue(req.getHeader() instanceof ReadOnlyEnumerationMap);
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.request.servlet.ServletRequest#getHeader()}.
-     */
-    @Test
-    public void testGetResponseHeaders() {
-        assertTrue(req.getResponseHeaders() instanceof HeaderExtractor);
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.request.servlet.ServletRequest#getHeaderValues()}.
-     */
-    @Test
-    public void testGetHeaderValues() {
-        assertTrue(req.getHeaderValues() instanceof HeaderValuesMap);
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.request.servlet.ServletRequest#getParam()}.
-     */
-    @Test
-    public void testGetParam() {
-        assertTrue(req.getParam() instanceof ReadOnlyEnumerationMap);
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.request.servlet.ServletRequest#getParamValues()}.
-     */
-    @SuppressWarnings("unchecked")
-    @Test
-    public void testGetParamValues() {
-        Map<String, String[]> paramMap = createMock(Map.class);
-
-        expect(request.getParameterMap()).andReturn(paramMap);
-
-        replay(applicationContext, request, response, paramMap);
-        assertEquals(paramMap, req.getParamValues());
-        verify(applicationContext, request, response, paramMap);
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.request.servlet.ServletRequest#getRequestScope()}.
-     */
-    @Test
-    public void testGetRequestScope() {
-        assertTrue(req.getRequestScope() instanceof ScopeMap);
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.request.servlet.ServletRequest#getSessionScope()}.
-     */
-    @Test
-    public void testGetSessionScope() {
-        assertTrue(req.getSessionScope() instanceof ScopeMap);
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.request.servlet.ServletRequest#getOutputStream()}.
-     * @throws IOException If something goes wrong.
-     */
-    @Test
-    public void testGetOutputStream() throws IOException {
-        ServletOutputStream os = createMock(ServletOutputStream.class);
-
-        expect(response.getOutputStream()).andReturn(os);
-
-        replay(applicationContext, request, response, os);
-        assertEquals(req.getOutputStream(), os);
-        verify(applicationContext, request, response, os);
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.request.servlet.ServletRequest#getWriter()}.
-     * @throws IOException If something goes wrong.
-     */
-    @Test
-    public void testGetWriter() throws IOException {
-        PrintWriter os = createMock(PrintWriter.class);
-
-        expect(response.getWriter()).andReturn(os);
-
-        replay(applicationContext, request, response, os);
-        assertEquals(req.getWriter(), os);
-        verify(applicationContext, request, response, os);
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.request.servlet.ServletRequest#getPrintWriter()}.
-     * @throws IOException If something goes wrong.
-     */
-    @Test
-    public void testGetPrintWriter() throws IOException {
-        PrintWriter os = createMock(PrintWriter.class);
-
-        expect(response.getWriter()).andReturn(os);
-
-        replay(applicationContext, request, response, os);
-        assertEquals(req.getPrintWriter(), os);
-        verify(applicationContext, request, response, os);
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.request.servlet.ServletRequest#isResponseCommitted()}.
-     */
-    @Test
-    public void testIsResponseCommitted() {
-        expect(response.isCommitted()).andReturn(true);
-
-        replay(applicationContext, request, response);
-        assertTrue(req.isResponseCommitted());
-        verify(applicationContext, request, response);
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.request.servlet.ServletRequest#setContentType(java.lang.String)}.
-     */
-    @Test
-    public void testSetContentType() {
-        response.setContentType("text/html");
-
-        replay(applicationContext, request, response);
-        req.setContentType("text/html");
-        verify(applicationContext, request, response);
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.request.servlet.ServletRequest#getRequestLocale()}.
-     */
-    @Test
-    public void testGetRequestLocale() {
-        Locale locale = Locale.ITALY;
-
-        expect(request.getLocale()).andReturn(locale);
-
-        replay(applicationContext, request, response);
-        assertEquals(locale, req.getRequestLocale());
-        verify(applicationContext, request, response);
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.request.servlet.ServletRequest#getRequest()}.
-     */
-    @Test
-    public void testGetRequest() {
-        replay(applicationContext, request, response);
-        assertEquals(request, req.getRequest());
-        verify(applicationContext, request, response);
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.request.servlet.ServletRequest#getResponse()}.
-     */
-    @Test
-    public void testGetResponse() {
-        replay(applicationContext, request, response);
-        assertEquals(response, req.getResponse());
-        verify(applicationContext, request, response);
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.request.servlet.ServletRequest#isUserInRole(java.lang.String)}.
-     */
-    @Test
-    public void testIsUserInRole() {
-        expect(request.isUserInRole("myrole")).andReturn(true);
-
-        replay(applicationContext, request, response);
-        assertTrue(req.isUserInRole("myrole"));
-        verify(applicationContext, request, response);
-    }
-
-}
diff --git a/tiles-request/tiles-request-servlet/src/test/java/org/apache/tiles/request/servlet/ServletUtilTest.java b/tiles-request/tiles-request-servlet/src/test/java/org/apache/tiles/request/servlet/ServletUtilTest.java
deleted file mode 100644
index 38942b0..0000000
--- a/tiles-request/tiles-request-servlet/src/test/java/org/apache/tiles/request/servlet/ServletUtilTest.java
+++ /dev/null
@@ -1,82 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.request.servlet;
-
-import static org.easymock.classextension.EasyMock.*;
-import static org.junit.Assert.*;
-
-import java.io.IOException;
-
-import javax.servlet.ServletContext;
-import javax.servlet.ServletException;
-
-import org.apache.tiles.request.ApplicationAccess;
-import org.apache.tiles.request.ApplicationContext;
-import org.junit.Test;
-
-/**
- * Tests {@link ServletUtil}.
- *
- * @version $Rev$ $Date$
- */
-public class ServletUtilTest {
-
-    /**
-     * Test method for {@link ServletUtil#wrapServletException(ServletException, String)}.
-     */
-    @Test
-    public void testWrapServletException() {
-        ServletException servletException = new ServletException();
-        IOException exception = ServletUtil.wrapServletException(servletException, "my message");
-        assertEquals(servletException, exception.getCause());
-        assertEquals("my message", exception.getMessage());
-    }
-
-    /**
-     */
-    @Test
-    public void testWrapServletExceptionWithCause() {
-        Throwable cause = createMock(Throwable.class);
-
-        replay(cause);
-        ServletException servletException = new ServletException(cause);
-        IOException exception = ServletUtil.wrapServletException(servletException, "my message");
-        assertEquals(cause, exception.getCause());
-        assertEquals("my message", exception.getMessage());
-        verify(cause);
-    }
-
-    /**
-     * Test method for {@link ServletUtil#getApplicationContext(ServletContext)}.
-     */
-    @Test
-    public void testGetApplicationContext() {
-        ServletContext servletContext = createMock(ServletContext.class);
-        ApplicationContext applicationContext = createMock(ApplicationContext.class);
-
-        expect(servletContext.getAttribute(ApplicationAccess
-                .APPLICATION_CONTEXT_ATTRIBUTE)).andReturn(applicationContext);
-
-        replay(servletContext, applicationContext);
-        assertEquals(applicationContext, ServletUtil.getApplicationContext(servletContext));
-        verify(servletContext, applicationContext);
-    }
-}
diff --git a/tiles-request/tiles-request-servlet/src/test/java/org/apache/tiles/request/servlet/extractor/ApplicationScopeExtractorTest.java b/tiles-request/tiles-request-servlet/src/test/java/org/apache/tiles/request/servlet/extractor/ApplicationScopeExtractorTest.java
deleted file mode 100644
index 72f8939..0000000
--- a/tiles-request/tiles-request-servlet/src/test/java/org/apache/tiles/request/servlet/extractor/ApplicationScopeExtractorTest.java
+++ /dev/null
@@ -1,109 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.request.servlet.extractor;
-
-import static org.easymock.classextension.EasyMock.*;
-import static org.junit.Assert.*;
-
-import java.util.Enumeration;
-
-import javax.servlet.ServletContext;
-
-import org.junit.Before;
-import org.junit.Test;
-
-/**
- * Tests {@link ApplicationScopeExtractor}.
- *
- * @version $Rev$ $Date$
- */
-public class ApplicationScopeExtractorTest {
-
-    /**
-     * The servlet context.
-     */
-    private ServletContext context;
-
-    /**
-     * The extractor to test.
-     */
-    private ApplicationScopeExtractor extractor;
-
-    /**
-     * Sets up the test.
-     */
-    @Before
-    public void setUp() {
-        context = createMock(ServletContext.class);
-        extractor = new ApplicationScopeExtractor(context);
-    }
-
-    /**
-     * Test method for {@link ApplicationScopeExtractor#setValue(String, Object)}.
-     */
-    @Test
-    public void testSetValue() {
-        context.setAttribute("attribute", "value");
-
-        replay(context);
-        extractor.setValue("attribute", "value");
-        verify(context);
-    }
-
-    /**
-     * Test method for {@link ApplicationScopeExtractor#removeValue(String)}.
-     */
-    @Test
-    public void testRemoveValue() {
-        context.removeAttribute("attribute");
-
-        replay(context);
-        extractor.removeValue("attribute");
-        verify(context);
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.request.servlet.extractor.ApplicationScopeExtractor#getKeys()}.
-     */
-    @SuppressWarnings("unchecked")
-    @Test
-    public void testGetKeys() {
-        Enumeration<String> keys = createMock(Enumeration.class);
-        expect(context.getAttributeNames()).andReturn(keys);
-
-        replay(context, keys);
-        assertEquals(keys, extractor.getKeys());
-        verify(context, keys);
-    }
-
-    /**
-     * Test method for {@link ApplicationScopeExtractor#getValue(String)}.
-     */
-    @Test
-    public void testGetValue() {
-        expect(context.getAttribute("attribute")).andReturn("value");
-
-        replay(context);
-        assertEquals("value", extractor.getValue("attribute"));
-        verify(context);
-    }
-
-}
diff --git a/tiles-request/tiles-request-servlet/src/test/java/org/apache/tiles/request/servlet/extractor/HeaderExtractorTest.java b/tiles-request/tiles-request-servlet/src/test/java/org/apache/tiles/request/servlet/extractor/HeaderExtractorTest.java
deleted file mode 100644
index e05f86f..0000000
--- a/tiles-request/tiles-request-servlet/src/test/java/org/apache/tiles/request/servlet/extractor/HeaderExtractorTest.java
+++ /dev/null
@@ -1,120 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.request.servlet.extractor;
-
-import static org.easymock.classextension.EasyMock.*;
-import static org.junit.Assert.*;
-
-import java.util.Enumeration;
-
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-
-import org.junit.Before;
-import org.junit.Test;
-
-/**
- * Tests {@link HeaderExtractor}.
- *
- * @version $Rev$ $Date$
- */
-public class HeaderExtractorTest {
-
-    /**
-     * The request.
-     */
-    private HttpServletRequest request;
-
-    /**
-     * The response.
-     */
-    private HttpServletResponse response;
-
-    /**
-     * The extractor to test.
-     */
-    private HeaderExtractor extractor;
-
-    /**
-     * Sets up the test.
-     */
-    @Before
-    public void setUp() {
-        request = createMock(HttpServletRequest.class);
-        response = createMock(HttpServletResponse.class);
-        extractor = new HeaderExtractor(request, response);
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.request.servlet.extractor.HeaderExtractor#getKeys()}.
-     */
-    @SuppressWarnings("unchecked")
-    @Test
-    public void testGetKeys() {
-        Enumeration<String> keys = createMock(Enumeration.class);
-
-        expect(request.getHeaderNames()).andReturn(keys);
-
-        replay(request, response, keys);
-        assertEquals(keys, extractor.getKeys());
-        verify(request, response, keys);
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.request.servlet.extractor.HeaderExtractor#getValue(java.lang.String)}.
-     */
-    @Test
-    public void testGetValue() {
-        expect(request.getHeader("name")).andReturn("value");
-
-        replay(request, response);
-        assertEquals("value", extractor.getValue("name"));
-        verify(request, response);
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.request.servlet.extractor.HeaderExtractor#getValues(java.lang.String)}.
-     */
-    @SuppressWarnings("unchecked")
-    @Test
-    public void testGetValues() {
-        Enumeration<String> keys = createMock(Enumeration.class);
-
-        expect(request.getHeaders("name")).andReturn(keys);
-
-        replay(request, response, keys);
-        assertEquals(keys, extractor.getValues("name"));
-        verify(request, response, keys);
-    }
-
-    /**
-     * Test method for {@link HeaderExtractor#setValue(String, String)}.
-     */
-    @Test
-    public void testSetValue() {
-        response.setHeader("name", "value");
-
-        replay(request, response);
-        extractor.setValue("name", "value");
-        verify(request, response);
-    }
-
-}
diff --git a/tiles-request/tiles-request-servlet/src/test/java/org/apache/tiles/request/servlet/extractor/InitParameterExtractorTest.java b/tiles-request/tiles-request-servlet/src/test/java/org/apache/tiles/request/servlet/extractor/InitParameterExtractorTest.java
deleted file mode 100644
index f45acaf..0000000
--- a/tiles-request/tiles-request-servlet/src/test/java/org/apache/tiles/request/servlet/extractor/InitParameterExtractorTest.java
+++ /dev/null
@@ -1,87 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.request.servlet.extractor;
-
-import static org.easymock.EasyMock.*;
-import static org.easymock.classextension.EasyMock.*;
-import static org.junit.Assert.*;
-
-import java.util.Enumeration;
-
-import javax.servlet.ServletContext;
-
-import org.junit.Before;
-import org.junit.Test;
-
-/**
- * Tests {@link InitParameterExtractor}.
- *
- * @version $Rev$ $Date$
- */
-public class InitParameterExtractorTest {
-
-    /**
-     * The servlet context.
-     */
-    private ServletContext context;
-
-    /**
-     * The extractor to test.
-     */
-    private InitParameterExtractor extractor;
-
-    /**
-     * Sets up the test.
-     */
-    @Before
-    public void setUp() {
-        context = createMock(ServletContext.class);
-        extractor = new InitParameterExtractor(context);
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.request.servlet.extractor.InitParameterExtractor#getKeys()}.
-     */
-    @SuppressWarnings("unchecked")
-    @Test
-    public void testGetKeys() {
-        Enumeration<String> keys = createMock(Enumeration.class);
-
-        expect(context.getInitParameterNames()).andReturn(keys);
-
-        replay(context, keys);
-        assertEquals(keys, extractor.getKeys());
-        verify(context, keys);
-    }
-
-    /**
-     * Test method for {@link InitParameterExtractor#getValue(String)}.
-     */
-    @Test
-    public void testGetValue() {
-        expect(context.getInitParameter("name")).andReturn("value");
-
-        replay(context);
-        assertEquals("value", extractor.getValue("name"));
-        verify(context);
-    }
-
-}
diff --git a/tiles-request/tiles-request-servlet/src/test/java/org/apache/tiles/request/servlet/extractor/ParameterExtractorTest.java b/tiles-request/tiles-request-servlet/src/test/java/org/apache/tiles/request/servlet/extractor/ParameterExtractorTest.java
deleted file mode 100644
index df0b0bf..0000000
--- a/tiles-request/tiles-request-servlet/src/test/java/org/apache/tiles/request/servlet/extractor/ParameterExtractorTest.java
+++ /dev/null
@@ -1,87 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.request.servlet.extractor;
-
-import static org.easymock.EasyMock.*;
-import static org.easymock.classextension.EasyMock.*;
-import static org.junit.Assert.*;
-
-import java.util.Enumeration;
-
-import javax.servlet.http.HttpServletRequest;
-
-import org.junit.Before;
-import org.junit.Test;
-
-/**
- * Tests {@link ParameterExtractor}.
- *
- * @version $Rev$ $Date$
- */
-public class ParameterExtractorTest {
-
-    /**
-     * The request.
-     */
-    private HttpServletRequest request;
-
-    /**
-     * The extractor to test.
-     */
-    private ParameterExtractor extractor;
-
-    /**
-     * Sets up the test.
-     */
-    @Before
-    public void setUp() {
-        request = createMock(HttpServletRequest.class);
-        extractor = new ParameterExtractor(request);
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.request.servlet.extractor.ParameterExtractor#getKeys()}.
-     */
-    @SuppressWarnings("unchecked")
-    @Test
-    public void testGetKeys() {
-        Enumeration<String> keys = createMock(Enumeration.class);
-
-        expect(request.getParameterNames()).andReturn(keys);
-
-        replay(request, keys);
-        assertEquals(keys, extractor.getKeys());
-        verify(request, keys);
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.request.servlet.extractor.ParameterExtractor#getValue(java.lang.String)}.
-     */
-    @Test
-    public void testGetValue() {
-        expect(request.getParameter("name")).andReturn("value");
-
-        replay(request);
-        assertEquals("value", extractor.getValue("name"));
-        verify(request);
-    }
-
-}
diff --git a/tiles-request/tiles-request-servlet/src/test/java/org/apache/tiles/request/servlet/extractor/RequestScopeExtractorTest.java b/tiles-request/tiles-request-servlet/src/test/java/org/apache/tiles/request/servlet/extractor/RequestScopeExtractorTest.java
deleted file mode 100644
index c5ef1c8..0000000
--- a/tiles-request/tiles-request-servlet/src/test/java/org/apache/tiles/request/servlet/extractor/RequestScopeExtractorTest.java
+++ /dev/null
@@ -1,111 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.request.servlet.extractor;
-
-import static org.easymock.EasyMock.*;
-import static org.easymock.classextension.EasyMock.*;
-import static org.junit.Assert.*;
-
-import java.util.Enumeration;
-
-import javax.servlet.http.HttpServletRequest;
-
-import org.junit.Before;
-import org.junit.Test;
-
-/**
- * Tests {@link RequestScopeExtractor}.
- *
- * @version $Rev$ $Date$
- */
-public class RequestScopeExtractorTest {
-
-    /**
-     * The request.
-     */
-    private HttpServletRequest request;
-
-    /**
-     * The extractor to test.
-     */
-    private RequestScopeExtractor extractor;
-
-    /**
-     * Sets up the test.
-     */
-    @Before
-    public void setUp() {
-        request = createMock(HttpServletRequest.class);
-        extractor = new RequestScopeExtractor(request);
-    }
-
-    /**
-     * Test method for {@link RequestScopeExtractor#setValue(String, Object)}.
-     */
-    @Test
-    public void testSetValue() {
-        request.setAttribute("name", "value");
-
-        replay(request);
-        extractor.setValue("name", "value");
-        verify(request);
-    }
-
-    /**
-     * Test method for {@link RequestScopeExtractor#removeValue(String)}.
-     */
-    @Test
-    public void testRemoveValue() {
-        request.removeAttribute("name");
-
-        replay(request);
-        extractor.removeValue("name");
-        verify(request);
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.request.servlet.extractor.RequestScopeExtractor#getKeys()}.
-     */
-    @SuppressWarnings("unchecked")
-    @Test
-    public void testGetKeys() {
-        Enumeration<String> keys = createMock(Enumeration.class);
-
-        expect(request.getAttributeNames()).andReturn(keys);
-
-        replay(request, keys);
-        assertEquals(keys, extractor.getKeys());
-        verify(request, keys);
-    }
-
-    /**
-     * Test method for {@link RequestScopeExtractor#getValue(String)}.
-     */
-    @Test
-    public void testGetValue() {
-        expect(request.getAttribute("name")).andReturn("value");
-
-        replay(request);
-        assertEquals("value", extractor.getValue("name"));
-        verify(request);
-    }
-
-}
diff --git a/tiles-request/tiles-request-servlet/src/test/java/org/apache/tiles/request/servlet/extractor/SessionScopeExtractorTest.java b/tiles-request/tiles-request-servlet/src/test/java/org/apache/tiles/request/servlet/extractor/SessionScopeExtractorTest.java
deleted file mode 100644
index 8be27b4..0000000
--- a/tiles-request/tiles-request-servlet/src/test/java/org/apache/tiles/request/servlet/extractor/SessionScopeExtractorTest.java
+++ /dev/null
@@ -1,148 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.request.servlet.extractor;
-
-import static org.easymock.EasyMock.*;
-import static org.easymock.classextension.EasyMock.*;
-import static org.junit.Assert.*;
-
-import java.util.Enumeration;
-
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpSession;
-
-import org.junit.Before;
-import org.junit.Test;
-
-/**
- * Tests {@link SessionScopeExtractor}.
- *
- * @version $Rev$ $Date$
- */
-public class SessionScopeExtractorTest {
-
-    /**
-     * The request.
-     */
-    private HttpServletRequest request;
-
-    /**
-     * The session.
-     */
-    private HttpSession session;
-
-    /**
-     * The extractot to test.
-     */
-    private SessionScopeExtractor extractor;
-
-    /**
-     * Sets up the test.
-     */
-    @Before
-    public void setUp() {
-        request = createMock(HttpServletRequest.class);
-        session = createMock(HttpSession.class);
-        extractor = new SessionScopeExtractor(request);
-    }
-
-    /**
-     * Test method for {@link SessionScopeExtractor#setValue(java.lang.String, java.lang.Object)}.
-     */
-    @Test
-    public void testSetValue() {
-        expect(request.getSession()).andReturn(session);
-        session.setAttribute("name", "value");
-
-        replay(request, session);
-        extractor.setValue("name", "value");
-        verify(request, session);
-    }
-
-    /**
-     * Test method for {@link SessionScopeExtractor#removeValue(java.lang.String)}.
-     */
-    @Test
-    public void testRemoveValue() {
-        expect(request.getSession(false)).andReturn(session);
-        session.removeAttribute("name");
-
-        replay(request, session);
-        extractor.removeValue("name");
-        verify(request, session);
-    }
-
-    /**
-     * Test method for {@link SessionScopeExtractor#getKeys()}.
-     */
-    @SuppressWarnings("unchecked")
-    @Test
-    public void testGetKeys() {
-        Enumeration<String> keys = createMock(Enumeration.class);
-
-        expect(request.getSession(false)).andReturn(session);
-        expect(session.getAttributeNames()).andReturn(keys);
-
-        replay(request, session, keys);
-        assertEquals(keys, extractor.getKeys());
-        verify(request, session, keys);
-    }
-
-    /**
-     * Test method for {@link SessionScopeExtractor#getKeys()}.
-     */
-    @Test
-    public void testGetKeysNoSession() {
-        expect(request.getSession(false)).andReturn(null);
-
-        replay(request, session);
-        Enumeration<String> keys = extractor.getKeys();
-        assertNotNull(keys);
-        assertFalse(keys.hasMoreElements());
-        verify(request, session);
-    }
-
-    /**
-     * Test method for {@link SessionScopeExtractor#getValue(java.lang.String)}.
-     */
-    @Test
-    public void testGetValue() {
-        expect(request.getSession(false)).andReturn(session);
-        expect(session.getAttribute("name")).andReturn("value");
-
-        replay(request, session);
-        assertEquals("value", extractor.getValue("name"));
-        verify(request, session);
-    }
-
-    /**
-     * Test method for {@link SessionScopeExtractor#getValue(java.lang.String)}.
-     */
-    @Test
-    public void testGetValueNoSession() {
-        expect(request.getSession(false)).andReturn(null);
-
-        replay(request, session);
-        assertNull(extractor.getValue("name"));
-        verify(request, session);
-    }
-
-}
diff --git a/tiles-request/tiles-request-velocity/pom.xml b/tiles-request/tiles-request-velocity/pom.xml
deleted file mode 100644
index c8fe373..0000000
--- a/tiles-request/tiles-request-velocity/pom.xml
+++ /dev/null
@@ -1,69 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<!--
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements.  See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership.  The ASF licenses this file
-to you under the Apache License, Version 2.0 (the
-"License"); you may not use this file except in compliance
-with the License.  You may obtain a copy of the License at
-
-  http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing,
-software distributed under the License is distributed on an
-"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-KIND, either express or implied.  See the License for the
-specific language governing permissions and limitations
-under the License.
--->
-
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
-  <modelVersion>4.0.0</modelVersion>
-  <parent>
-    <artifactId>tiles-request</artifactId>
-    <groupId>org.apache.tiles</groupId>
-    <version>1.0-SNAPSHOT</version>
-  </parent>
-  <groupId>org.apache.tiles</groupId>
-  <artifactId>tiles-request-velocity</artifactId>
-  <version>1.0-SNAPSHOT</version>
-  <name>Tiles Request - Velocity support</name>
-  <description>Velocity implementation of the Tiles request framework</description>
-  <dependencies>
-  	<dependency>
-  		<groupId>org.apache.velocity</groupId>
-  		<artifactId>velocity-tools</artifactId>
-  	</dependency>
-  	<dependency>
-  		<groupId>javax.servlet</groupId>
-  		<artifactId>servlet-api</artifactId>
-  		<scope>provided</scope>
-  	</dependency>
-  	<dependency>
-  		<groupId>junit</groupId>
-  		<artifactId>junit</artifactId>
-  		<scope>test</scope>
-  	</dependency>
-  	<dependency>
-  		<groupId>org.easymock</groupId>
-  		<artifactId>easymock</artifactId>
-  		<scope>test</scope>
-  	</dependency>
-  	<dependency>
-  		<groupId>org.easymock</groupId>
-  		<artifactId>easymockclassextension</artifactId>
-  		<scope>test</scope>
-  	</dependency>
-  	<dependency>
-  		<groupId>org.apache.tiles</groupId>
-  		<artifactId>tiles-request-servlet</artifactId>
-  	</dependency>
-  	<dependency>
-  		<groupId>org.apache.tiles</groupId>
-  		<artifactId>tiles-autotag-core-runtime</artifactId>
-  		<optional>true</optional>
-  	</dependency>
-  </dependencies>
-</project>
diff --git a/tiles-request/tiles-request-velocity/src/main/java/org/apache/tiles/request/velocity/VelocityRequest.java b/tiles-request/tiles-request-velocity/src/main/java/org/apache/tiles/request/velocity/VelocityRequest.java
deleted file mode 100644
index 1f087f6..0000000
--- a/tiles-request/tiles-request-velocity/src/main/java/org/apache/tiles/request/velocity/VelocityRequest.java
+++ /dev/null
@@ -1,178 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.tiles.request.velocity;
-
-import java.io.IOException;
-import java.io.PrintWriter;
-import java.io.Writer;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
-import java.util.Map;
-
-import javax.servlet.RequestDispatcher;
-import javax.servlet.ServletException;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-
-import org.apache.tiles.request.AbstractViewRequest;
-import org.apache.tiles.request.ApplicationContext;
-import org.apache.tiles.request.DispatchRequest;
-import org.apache.tiles.request.servlet.ExternalWriterHttpServletResponse;
-import org.apache.tiles.request.servlet.ServletRequest;
-import org.apache.tiles.request.servlet.ServletUtil;
-import org.apache.velocity.context.Context;
-
-/**
- * The implementation of the Tiles request context specific for Velocity.
- *
- * @version $Rev$ $Date$
- */
-public class VelocityRequest extends AbstractViewRequest {
-
-    /**
-     * The native available scopes, in fact only "page".
-     */
-    private final List<String> scopes;
-
-    /**
-     * The Velocity current context.
-     */
-    private final Context ctx;
-
-    /**
-     * The writer to use to render the response. It may be null, if not necessary.
-     */
-    private Writer writer;
-
-    /**
-     * The map of the page scope.
-     */
-    private Map<String, Object> pageScope;
-
-    /**
-     * Factory method to create a Velocity request.
-     *
-     * @param applicationContext The application context.
-     * @param request The request.
-     * @param response The response.
-     * @param velocityContext The Velocity context.
-     * @param writer The writer to write into.
-     * @return The request.
-     */
-    public static VelocityRequest createVelocityRequest(
-            ApplicationContext applicationContext, HttpServletRequest request,
-            HttpServletResponse response, Context velocityContext, Writer writer) {
-        DispatchRequest servletRequest = new ServletRequest(
-                applicationContext, request, response);
-        VelocityRequest velocityRequest = new VelocityRequest(
-                servletRequest, velocityContext, writer);
-        return velocityRequest;
-    }
-
-    /**
-     * Constructor.
-     *
-     * @param enclosedRequest The request that exposes non-Velocity specific properties
-     * @param ctx The Velocity current context.
-     * @param writer The writer to use to render the response. It may be null, if not necessary.
-     */
-    public VelocityRequest(
-            DispatchRequest enclosedRequest, Context ctx, Writer writer) {
-        super(enclosedRequest);
-        List<String> scopes = new ArrayList<String>();
-        scopes.addAll(enclosedRequest.getAvailableScopes());
-        scopes.add("page");
-        this.scopes = Collections.unmodifiableList(scopes);
-        this.ctx = ctx;
-        this.writer = writer;
-    }
-
-    @Override
-    public List<String> getAvailableScopes() {
-        return scopes;
-    }
-
-    /** {@inheritDoc} */
-    @Override
-    protected void doInclude(String path) throws IOException {
-        ServletRequest servletRequest = org.apache.tiles.request.servlet.ServletUtil.getServletRequest(this);
-        HttpServletRequest request = servletRequest.getRequest();
-        HttpServletResponse response = servletRequest.getResponse();
-        RequestDispatcher rd = request.getRequestDispatcher(path);
-
-        if (rd == null) {
-            throw new IOException("No request dispatcher returned for path '"
-                    + path + "'");
-        }
-
-        PrintWriter printWriter = getPrintWriter();
-        try {
-            rd.include(request, new ExternalWriterHttpServletResponse(response,
-                    printWriter));
-        } catch (ServletException ex) {
-            throw ServletUtil.wrapServletException(ex, "ServletException including path '"
-                    + path + "'.");
-        }
-    }
-
-    /** {@inheritDoc} */
-    @Override
-    public PrintWriter getPrintWriter() {
-        if (writer == null) {
-            throw new IllegalStateException(
-                    "A writer-less Tiles request has been created, cannot return a PrintWriter");
-        }
-        if (writer instanceof PrintWriter) {
-            return (PrintWriter) writer;
-        }
-        return new PrintWriter(writer);
-    }
-
-    /** {@inheritDoc} */
-    @Override
-    public Writer getWriter() {
-        if (writer == null) {
-            throw new IllegalStateException(
-                    "A writer-less Tiles request has been created, cannot return a PrintWriter");
-        }
-        return writer;
-    }
-
-    /**
-     * Returns the page scope.
-     *
-     * @return The page scope.
-     */
-    public Map<String, Object> getPageScope() {
-        if (pageScope == null) {
-            pageScope = new VelocityScopeMap(ctx);
-        }
-        return pageScope;
-    }
-
-    @Override
-    public Map<String, Object> getContext(String scope) {
-        return "page".equals(scope) ? getPageScope() : super.getContext(scope);
-    }
-
-}
diff --git a/tiles-request/tiles-request-velocity/src/main/java/org/apache/tiles/request/velocity/VelocityScopeMap.java b/tiles-request/tiles-request-velocity/src/main/java/org/apache/tiles/request/velocity/VelocityScopeMap.java
deleted file mode 100644
index b268fac..0000000
--- a/tiles-request/tiles-request-velocity/src/main/java/org/apache/tiles/request/velocity/VelocityScopeMap.java
+++ /dev/null
@@ -1,89 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.request.velocity;
-
-import java.util.HashSet;
-import java.util.Set;
-
-import org.apache.tiles.request.collection.ScopeMap;
-import org.apache.tiles.request.velocity.extractor.VelocityScopeExtractor;
-import org.apache.velocity.context.Context;
-
-/**
- * <p>Private implementation of <code>Map</code> for servlet request
- * attributes.</p>
- *
- * @version $Rev$ $Date$
- */
-
-final class VelocityScopeMap extends ScopeMap {
-
-    /**
-     * The request object to use.
-     */
-    private Context request = null;
-
-    /**
-     * Constructor.
-     *
-     * @param request The request object to use.
-     */
-    public VelocityScopeMap(Context request) {
-        super(new VelocityScopeExtractor(request));
-        this.request = request;
-    }
-
-    @Override
-    public Object remove(Object key) {
-        return request.remove(key);
-    }
-
-    @Override
-    public Object put(String key, Object value) {
-        return request.put(key, value);
-    }
-
-    /** {@inheritDoc} */
-    public boolean containsKey(Object key) {
-        return request.containsKey(key);
-    }
-
-
-    /** {@inheritDoc} */
-    public boolean isEmpty() {
-        return size() < 1;
-    }
-
-
-    /** {@inheritDoc} */
-    public Set<String> keySet() {
-        Set<String> set = new HashSet<String>();
-        for (Object key : request.getKeys()) {
-            set.add((String) key);
-        }
-        return (set);
-    }
-
-    /** {@inheritDoc} */
-    public int size() {
-        return request.getKeys().length;
-    }
-}
diff --git a/tiles-request/tiles-request-velocity/src/main/java/org/apache/tiles/request/velocity/autotag/VelocityAutotagRuntime.java b/tiles-request/tiles-request-velocity/src/main/java/org/apache/tiles/request/velocity/autotag/VelocityAutotagRuntime.java
deleted file mode 100644
index 9d7b419..0000000
--- a/tiles-request/tiles-request-velocity/src/main/java/org/apache/tiles/request/velocity/autotag/VelocityAutotagRuntime.java
+++ /dev/null
@@ -1,106 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.request.velocity.autotag;
-
-import java.io.Writer;
-import java.util.Map;
-import javax.servlet.ServletContext;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-import org.apache.tiles.autotag.core.runtime.ModelBody;
-import org.apache.tiles.autotag.core.runtime.AutotagRuntime;
-import org.apache.tiles.request.Request;
-import org.apache.tiles.request.servlet.ServletUtil;
-import org.apache.tiles.request.velocity.VelocityRequest;
-import org.apache.velocity.context.InternalContextAdapter;
-import org.apache.velocity.runtime.directive.Directive;
-import org.apache.velocity.runtime.parser.node.ASTBlock;
-import org.apache.velocity.runtime.parser.node.ASTMap;
-import org.apache.velocity.runtime.parser.node.Node;
-import org.apache.velocity.tools.view.ViewContext;
-
-/**
- * A Runtime for implementing Velocity Directives.
- */
-public class VelocityAutotagRuntime extends Directive implements AutotagRuntime {
-    private InternalContextAdapter context;
-    private Writer                 writer;
-    private Node                   node;
-    private Map<String, Object>    params;
-
-    /** {@inheritDoc} */
-    @Override
-    public Request createRequest() {
-        ViewContext viewContext = (ViewContext) context.getInternalUserContext();
-        HttpServletRequest request = viewContext.getRequest();
-        HttpServletResponse response = viewContext.getResponse();
-        ServletContext servletContext = viewContext.getServletContext();
-        return VelocityRequest.createVelocityRequest(ServletUtil.getApplicationContext(servletContext),
-                                                     request,
-                                                     response,
-                                                     context,
-                                                     writer);
-    }
-
-    /** {@inheritDoc} */
-    @Override
-    public ModelBody createModelBody() {
-        ASTBlock block = (ASTBlock) node.jjtGetChild(1);
-        return new VelocityModelBody(context, block, writer);
-    }
-
-    /** {@inheritDoc} */
-    @Override
-    @SuppressWarnings("unchecked")
-    public Object getParameter(String name, Object defaultValue) {
-        if (params == null) {
-            ASTMap astMap = (ASTMap) node.jjtGetChild(0);
-            params = (Map<String, Object>) astMap.value(context);
-        }
-        Object result = params.get(name);
-        if (result == null) {
-            result = defaultValue;
-        }
-        return result;
-    }
-
-    /** {@inheritDoc} */
-    @Override
-    public String getName() {
-        return null;
-    }
-
-    /** {@inheritDoc} */
-    @Override
-    public int getType() {
-        return 0;
-    }
-
-    /** {@inheritDoc} */
-    @Override
-    public boolean render(InternalContextAdapter context, Writer writer, Node node) {
-        this.context = context;
-        this.writer = writer;
-        this.node = node;
-        return false;
-    }
-
-}
diff --git a/tiles-request/tiles-request-velocity/src/main/java/org/apache/tiles/request/velocity/autotag/VelocityModelBody.java b/tiles-request/tiles-request-velocity/src/main/java/org/apache/tiles/request/velocity/autotag/VelocityModelBody.java
deleted file mode 100644
index 6fed188..0000000
--- a/tiles-request/tiles-request-velocity/src/main/java/org/apache/tiles/request/velocity/autotag/VelocityModelBody.java
+++ /dev/null
@@ -1,65 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.request.velocity.autotag;
-
-import java.io.IOException;
-import java.io.Writer;
-
-import org.apache.tiles.autotag.core.runtime.AbstractModelBody;
-import org.apache.velocity.context.InternalContextAdapter;
-import org.apache.velocity.runtime.parser.node.ASTBlock;
-
-/**
- * Body abstraction for a Velocity directive body.
- *
- * @version $Rev$ $Date$
- */
-public class VelocityModelBody extends AbstractModelBody {
-
-    /**
-     * The real body.
-     */
-    private ASTBlock body;
-
-    /**
-     * The Velocity context.
-     */
-    private InternalContextAdapter context;
-
-    /**
-     * Constructor.
-     *
-     * @param context The Velocity context.
-     * @param body The real body.
-     * @param defaultWriter The default writer.
-     */
-    public VelocityModelBody(InternalContextAdapter context, ASTBlock body, Writer defaultWriter) {
-        super(defaultWriter);
-        this.context = context;
-        this.body = body;
-    }
-
-    @Override
-    public void evaluate(Writer writer) throws IOException {
-        body.render(context, writer);
-    }
-
-}
diff --git a/tiles-request/tiles-request-velocity/src/main/java/org/apache/tiles/request/velocity/autotag/VelocityUtil.java b/tiles-request/tiles-request-velocity/src/main/java/org/apache/tiles/request/velocity/autotag/VelocityUtil.java
deleted file mode 100644
index ffdab20..0000000
--- a/tiles-request/tiles-request-velocity/src/main/java/org/apache/tiles/request/velocity/autotag/VelocityUtil.java
+++ /dev/null
@@ -1,74 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.tiles.request.velocity.autotag;
-
-import java.util.Map;
-
-import org.apache.velocity.context.InternalContextAdapter;
-import org.apache.velocity.runtime.parser.node.ASTMap;
-import org.apache.velocity.runtime.parser.node.Node;
-
-/**
- * Utilities for Velocity usage in Tiles.
- *
- * @version $Rev$ $Date$
- */
-public final class VelocityUtil {
-
-    /**
-     * Private constructor to avoid instantiation.
-     */
-    private VelocityUtil() {
-    }
-
-    /**
-     * Extracts the parameters from the directives, by getting the child at
-     * position 0 supposing it is a map.
-     *
-     * @param context The Velocity context.
-     * @param node The node to use.
-     * @return The extracted parameters.
-     */
-    @SuppressWarnings("unchecked")
-    public static Map<String, Object> getParameters(InternalContextAdapter context,
-            Node node) {
-        ASTMap astMap = (ASTMap) node.jjtGetChild(0);
-        Map<String, Object> params = (Map<String, Object>) astMap
-                .value(context);
-        return params;
-    }
-
-    /**
-     * Returns the "value" parameter if it is not null, otherwise returns
-     * "defaultValue".
-     *
-     * @param value The value to return, if it is not null.
-     * @param defaultValue The value to return, if <code>value</code> is null.
-     * @return The value, defaulted if necessary.
-     */
-    public static Object getObject(Object value, Object defaultValue) {
-        if (value == null) {
-            value = defaultValue;
-        }
-        return value;
-    }
-}
diff --git a/tiles-request/tiles-request-velocity/src/main/java/org/apache/tiles/request/velocity/autotag/package-info.java b/tiles-request/tiles-request-velocity/src/main/java/org/apache/tiles/request/velocity/autotag/package-info.java
deleted file mode 100644
index 812198c..0000000
--- a/tiles-request/tiles-request-velocity/src/main/java/org/apache/tiles/request/velocity/autotag/package-info.java
+++ /dev/null
@@ -1,24 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-/**
- * Runtime part of Autotag support for Velocity.
- */
-package org.apache.tiles.request.velocity.autotag;
diff --git a/tiles-request/tiles-request-velocity/src/main/java/org/apache/tiles/request/velocity/extractor/VelocityScopeExtractor.java b/tiles-request/tiles-request-velocity/src/main/java/org/apache/tiles/request/velocity/extractor/VelocityScopeExtractor.java
deleted file mode 100644
index e81821d..0000000
--- a/tiles-request/tiles-request-velocity/src/main/java/org/apache/tiles/request/velocity/extractor/VelocityScopeExtractor.java
+++ /dev/null
@@ -1,103 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.request.velocity.extractor;
-
-import java.util.Enumeration;
-
-import org.apache.tiles.request.attribute.AttributeExtractor;
-import org.apache.velocity.context.Context;
-
-/**
- * Extracts attributes from Velocity context..
- *
- * @version $Rev$ $Date$
- */
-public class VelocityScopeExtractor implements AttributeExtractor {
-
-    /**
-     * The Velocity context.
-     */
-    private Context context;
-
-    /**
-     * Constructor.
-     *
-     * @param context The Velocity context.
-     */
-    public VelocityScopeExtractor(Context context) {
-        this.context = context;
-    }
-
-    @Override
-    public void removeValue(String name) {
-        context.remove(name);
-    }
-
-    @Override
-    public Enumeration<String> getKeys() {
-        return new KeyEnumeration(context.getKeys());
-    }
-
-    @Override
-    public Object getValue(String key) {
-        return context.get(key);
-    }
-
-    @Override
-    public void setValue(String key, Object value) {
-        context.put(key, value);
-    }
-
-    /**
-     * Enumerates an array.
-     */
-    private static class KeyEnumeration implements Enumeration<String> {
-
-        /**
-         * The current index.
-         */
-        private int index = 0;
-
-        /**
-         * The array to enumerate.
-         */
-        private Object[] keys;
-
-        /**
-         * Constructor.
-         *
-         * @param keys The array to enumerate.
-         */
-        public KeyEnumeration(Object[] keys) {
-            this.keys = keys;
-        }
-
-        @Override
-        public boolean hasMoreElements() {
-            return index < keys.length;
-        }
-
-        @Override
-        public String nextElement() {
-            return (String) keys[index++];
-        }
-    }
-}
diff --git a/tiles-request/tiles-request-velocity/src/main/java/org/apache/tiles/request/velocity/extractor/package-info.java b/tiles-request/tiles-request-velocity/src/main/java/org/apache/tiles/request/velocity/extractor/package-info.java
deleted file mode 100644
index bed6df2..0000000
--- a/tiles-request/tiles-request-velocity/src/main/java/org/apache/tiles/request/velocity/extractor/package-info.java
+++ /dev/null
@@ -1,24 +0,0 @@
-/*
- * $Id: package-info.java 1049711 2010-12-15 21:12:00Z apetrelli $
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-/**
- * Extractors to get info about Velocity-specific objects.
- */
-package org.apache.tiles.request.velocity.extractor;
diff --git a/tiles-request/tiles-request-velocity/src/main/java/org/apache/tiles/request/velocity/package-info.java b/tiles-request/tiles-request-velocity/src/main/java/org/apache/tiles/request/velocity/package-info.java
deleted file mode 100644
index 54b7c71..0000000
--- a/tiles-request/tiles-request-velocity/src/main/java/org/apache/tiles/request/velocity/package-info.java
+++ /dev/null
@@ -1,24 +0,0 @@
-/*
- * $Id: package-info.java 1049711 2010-12-15 21:12:00Z apetrelli $
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-/**
- * Tiles request support for Velocity.
- */
-package org.apache.tiles.request.velocity;
diff --git a/tiles-request/tiles-request-velocity/src/main/java/org/apache/tiles/request/velocity/render/ApplicationContextJeeConfig.java b/tiles-request/tiles-request-velocity/src/main/java/org/apache/tiles/request/velocity/render/ApplicationContextJeeConfig.java
deleted file mode 100644
index b967948..0000000
--- a/tiles-request/tiles-request-velocity/src/main/java/org/apache/tiles/request/velocity/render/ApplicationContextJeeConfig.java
+++ /dev/null
@@ -1,87 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.request.velocity.render;
-
-import java.util.Collections;
-import java.util.Enumeration;
-import java.util.HashMap;
-import java.util.Map;
-
-import javax.servlet.ServletContext;
-
-import org.apache.tiles.request.ApplicationContext;
-import org.apache.tiles.request.servlet.ServletUtil;
-import org.apache.velocity.tools.view.JeeConfig;
-
-/**
- * Implements JeeConfig to use parameters set through
- * {@link VelocityRenderer#setParameter(String, String)}.
- *
- * @version $Rev$ $Date$
- */
-public class ApplicationContextJeeConfig implements JeeConfig {
-
-    /**
-     * The application context.
-     */
-    private ApplicationContext applicationContext;
-
-    /**
-     * The initialization parameters for VelocityView.
-     */
-    private Map<String, String> params;
-
-    /**
-     * Constructor.
-     *
-     * @param applicationContext The application context.
-     * @param params Configuration parameters.
-     */
-    public ApplicationContextJeeConfig(ApplicationContext applicationContext, Map<String, String> params) {
-        this.applicationContext = applicationContext;
-        this.params = new HashMap<String, String>(params);
-    }
-
-    /** {@inheritDoc} */
-    public String getInitParameter(String name) {
-        return params.get(name);
-    }
-
-    /** {@inheritDoc} */
-    public String findInitParameter(String key) {
-        return params.get(key);
-    }
-
-    /** {@inheritDoc} */
-    public Enumeration<String> getInitParameterNames() {
-        return Collections.enumeration(params.keySet());
-    }
-
-    /** {@inheritDoc} */
-    public String getName() {
-        return "Application Context JEE Config";
-    }
-
-    /** {@inheritDoc} */
-    public ServletContext getServletContext() {
-        return ServletUtil.getServletContext(applicationContext);
-    }
-}
diff --git a/tiles-request/tiles-request-velocity/src/main/java/org/apache/tiles/request/velocity/render/VelocityRenderer.java b/tiles-request/tiles-request-velocity/src/main/java/org/apache/tiles/request/velocity/render/VelocityRenderer.java
deleted file mode 100644
index 990b5a5..0000000
--- a/tiles-request/tiles-request-velocity/src/main/java/org/apache/tiles/request/velocity/render/VelocityRenderer.java
+++ /dev/null
@@ -1,83 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.tiles.request.velocity.render;
-
-import java.io.IOException;
-
-import org.apache.tiles.request.Request;
-import org.apache.tiles.request.render.CannotRenderException;
-import org.apache.tiles.request.render.Renderer;
-import org.apache.tiles.request.servlet.ServletRequest;
-import org.apache.tiles.request.servlet.ServletUtil;
-import org.apache.velocity.Template;
-import org.apache.velocity.context.Context;
-import org.apache.velocity.tools.view.VelocityView;
-
-/**
- * Attribute renderer for rendering Velocity templates as attributes. <br>
- * It is available only to Servlet-based environment.<br>
- * It uses {@link VelocityView} to render the response.<br>
- * To initialize it correctly, call {@link #setParameter(String, String)} for
- * all the parameters that you want to set, and then call {@link #commit()}.
- *
- * @version $Rev$ $Date$
- */
-public class VelocityRenderer implements Renderer {
-
-    /**
-     * The VelocityView object to use.
-     */
-    private VelocityView velocityView;
-
-    /**
-     * Constructor.
-     *
-     * @param velocityView The Velocity view manager.
-     */
-    public VelocityRenderer(VelocityView velocityView) {
-        this.velocityView = velocityView;
-    }
-
-    /** {@inheritDoc} */
-    @Override
-    public void render(String path, Request request) throws IOException {
-        if (path == null) {
-            throw new CannotRenderException("Cannot dispatch a null path");
-        }
-
-        ServletRequest servletRequest = ServletUtil.getServletRequest(request);
-        // then get a context
-        Context context = velocityView.createContext(servletRequest
-                .getRequest(), servletRequest.getResponse());
-
-        // get the template
-        Template template = velocityView.getTemplate((String) path);
-
-        // merge the template and context into the writer
-        velocityView.merge(template, context, request.getWriter());
-    }
-
-    /** {@inheritDoc} */
-    public boolean isRenderable(String path, Request request) {
-        return path != null && path.startsWith("/") && path.endsWith(".vm");
-    }
-}
diff --git a/tiles-request/tiles-request-velocity/src/main/java/org/apache/tiles/request/velocity/render/VelocityRendererBuilder.java b/tiles-request/tiles-request-velocity/src/main/java/org/apache/tiles/request/velocity/render/VelocityRendererBuilder.java
deleted file mode 100644
index b041af2..0000000
--- a/tiles-request/tiles-request-velocity/src/main/java/org/apache/tiles/request/velocity/render/VelocityRendererBuilder.java
+++ /dev/null
@@ -1,95 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.request.velocity.render;
-
-import java.util.HashMap;
-import java.util.Map;
-
-
-import org.apache.tiles.request.ApplicationContext;
-import org.apache.velocity.tools.view.VelocityView;
-
-/**
- * Builds a {@link VelocityRenderer}.
- *
- * @version $Rev$ $Date$
- */
-public final class VelocityRendererBuilder {
-
-    /**
-     * The initialization parameters for VelocityView.
-     */
-    private Map<String, String> params = new HashMap<String, String>();
-
-    /**
-     * The application context.
-     */
-    private ApplicationContext applicationContext;
-
-    /**
-     * Constructor.
-     */
-    private VelocityRendererBuilder() {
-    }
-
-    /**
-     * Returns a new instance of the builder.
-     *
-     * @return A new builder.
-     */
-    public static VelocityRendererBuilder createInstance() {
-        return new VelocityRendererBuilder();
-    }
-
-    /**
-     * Sets a parameter for the internal servlet.
-     *
-     * @param key The name of the parameter.
-     * @param value The value of the parameter.
-     * @return This builder.
-     */
-    public VelocityRendererBuilder setParameter(String key, String value) {
-        params.put(key, value);
-        return this;
-    }
-
-    /**
-     * Sets the application context.
-     *
-     * @param applicationContext The application context.
-     * @return This builder.
-     */
-    public VelocityRendererBuilder setApplicationContext(ApplicationContext applicationContext) {
-        this.applicationContext = applicationContext;
-        return this;
-    }
-
-    /**
-     * Creates the Velocity renderer.
-     *
-     * @return The Velocity renderer.
-     */
-    public VelocityRenderer build() {
-        VelocityView velocityView = new VelocityView(
-                new ApplicationContextJeeConfig(applicationContext, params));
-        return new VelocityRenderer(velocityView);
-    }
-}
diff --git a/tiles-request/tiles-request-velocity/src/main/java/org/apache/tiles/request/velocity/render/package-info.java b/tiles-request/tiles-request-velocity/src/main/java/org/apache/tiles/request/velocity/render/package-info.java
deleted file mode 100644
index 1b2877f..0000000
--- a/tiles-request/tiles-request-velocity/src/main/java/org/apache/tiles/request/velocity/render/package-info.java
+++ /dev/null
@@ -1,24 +0,0 @@
-/*
- * $Id: package-info.java 1049711 2010-12-15 21:12:00Z apetrelli $
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-/**
- * Renderering support for Velocity.
- */
-package org.apache.tiles.request.velocity.render;
diff --git a/tiles-request/tiles-request-velocity/src/site/site.xml b/tiles-request/tiles-request-velocity/src/site/site.xml
deleted file mode 100644
index 8e92dd7..0000000
--- a/tiles-request/tiles-request-velocity/src/site/site.xml
+++ /dev/null
@@ -1,56 +0,0 @@
-<?xml version="1.0" encoding="ISO-8859-1"?>
-<!--
-/*
- * $Id: site.xml 1081442 2011-03-14 16:21:08Z apetrelli $
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
--->
-<project name="Apache - Request Microframework">
-    <bannerLeft>
-        <name>Apache Software Foundation</name>
-        <src>http://www.apache.org/images/asf-logo.gif</src>
-        <href>http://www.apache.org</href>
-    </bannerLeft>
-    <bannerRight>
-        <name>Apache Tiles&#8482;</name>
-        <src>http://tiles.apache.org/images/logo.png</src>
-        <href>http://tiles.apache.org</href>
-    </bannerRight>
-    <body>
-
-        <links>
-            <item name="Apache" href="http://www.apache.org" />
-            <item name="Tiles" href="http://tiles.apache.org" />
-        </links>
-
-
-        <menu name="Apache Tiles&#8482;">
-            <item
-                   name="Tiles Home"
-                   href="../../index.html"/>
-            <item
-                   name="Request Microframework"
-                   href="../index.html"/>
-        </menu>
-
-        <menu ref="modules" />
-        <menu ref="reports" />
-
-    </body>
-</project>
diff --git a/tiles-request/tiles-request-velocity/src/test/java/org/apache/tiles/request/velocity/VelocityRequestTest.java b/tiles-request/tiles-request-velocity/src/test/java/org/apache/tiles/request/velocity/VelocityRequestTest.java
deleted file mode 100644
index 1bc3f91..0000000
--- a/tiles-request/tiles-request-velocity/src/test/java/org/apache/tiles/request/velocity/VelocityRequestTest.java
+++ /dev/null
@@ -1,273 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.tiles.request.velocity;
-
-import static org.easymock.EasyMock.*;
-import static org.easymock.classextension.EasyMock.*;
-import static org.junit.Assert.*;
-
-import java.io.IOException;
-import java.io.PrintWriter;
-import java.io.StringWriter;
-import java.util.Collections;
-
-import javax.servlet.RequestDispatcher;
-import javax.servlet.ServletException;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-
-import org.apache.tiles.request.ApplicationContext;
-import org.apache.tiles.request.DispatchRequest;
-import org.apache.tiles.request.servlet.ExternalWriterHttpServletResponse;
-import org.apache.tiles.request.servlet.ServletRequest;
-import org.apache.velocity.context.Context;
-import org.junit.Before;
-import org.junit.Test;
-
-/**
- * Tests {@link VelocityRequest}.
- */
-public class VelocityRequestTest {
-
-    /**
-     * The request context to test.
-     */
-    private VelocityRequest context;
-
-    /**
-     * The Velocity context.
-     */
-    private Context velocityContext;
-
-    /**
-     * A string writer.
-     */
-    private StringWriter writer;
-
-    /**
-     * Sets up the test.
-     */
-    @Before
-    public void setUp() {
-        velocityContext = createMock(Context.class);
-        writer = new StringWriter();
-    }
-
-    /**
-     * Tests {@link VelocityRequest
-     * #createVelocityRequest(ApplicationContext, HttpServletRequest, HttpServletResponse, Context, Writer)}.
-     */
-    @Test
-    public void testCreateVelocityRequest() {
-        HttpServletRequest httpRequest = createMock(HttpServletRequest.class);
-        HttpServletResponse response = createMock(HttpServletResponse.class);
-        ApplicationContext applicationContext = createMock(ApplicationContext.class);
-
-        replay(velocityContext, httpRequest, response, applicationContext);
-        context = VelocityRequest.createVelocityRequest(applicationContext,
-                httpRequest, response, velocityContext, writer);
-        ServletRequest servletRequest = (ServletRequest) context.getWrappedRequest();
-        assertEquals(httpRequest, servletRequest.getRequest());
-        assertEquals(response, servletRequest.getResponse());
-        verify(velocityContext, httpRequest, response, applicationContext);
-    }
-
-    /**
-      * Tests {@link FreemarkerRequest#getNativeScopes()}.
-      */
-    @Test
-    public void testGetAvailableScopes() {
-        DispatchRequest enclosedRequest = createMock(DispatchRequest.class);
-        expect(enclosedRequest.getAvailableScopes()).andReturn(Collections.singletonList("parent"));
-        replay(enclosedRequest);
-        context = new VelocityRequest(enclosedRequest, velocityContext, writer);
-        assertArrayEquals(new String[] {"parent", "page"}, context.getAvailableScopes().toArray());
-        verify(enclosedRequest);
-    }
-
-    /**
-     * Tests {@link VelocityRequest#doInclude(String)}.
-     *
-     * @throws IOException If something goes wrong.
-     * @throws ServletException If something goes wrong.
-     */
-    @Test
-    public void testDoInclude() throws IOException, ServletException {
-        String path = "this way";
-        ServletRequest enclosedRequest = createMock(ServletRequest.class);
-        HttpServletRequest servletRequest = createMock(HttpServletRequest.class);
-        HttpServletResponse response = createMock(HttpServletResponse.class);
-        RequestDispatcher dispatcher = createMock(RequestDispatcher.class);
-
-        expect(servletRequest.getRequestDispatcher("this way")).andReturn(dispatcher);
-        dispatcher.include(eq(servletRequest), isA(ExternalWriterHttpServletResponse.class));
-        replay(servletRequest, response, dispatcher);
-
-        expect(enclosedRequest.getRequest()).andReturn(servletRequest);
-        expect(enclosedRequest.getResponse()).andReturn(response);
-        expect(enclosedRequest.getAvailableScopes()).andReturn(Collections.singletonList("parent"));
-
-        replay(velocityContext, enclosedRequest);
-        context = new VelocityRequest(enclosedRequest, velocityContext, writer);
-        context.doInclude(path);
-        verify(velocityContext, enclosedRequest, servletRequest, response, dispatcher);
-    }
-
-    /**
-     * Tests {@link VelocityRequest#doInclude(String)}.
-     *
-     * @throws IOException If something goes wrong.
-     */
-    @Test(expected = IOException.class)
-    public void testDoIncludeNoRequestDispatcher() throws IOException {
-        String path = "this way";
-        ServletRequest enclosedRequest = createMock(ServletRequest.class);
-        HttpServletRequest servletRequest = createMock(HttpServletRequest.class);
-        HttpServletResponse response = createMock(HttpServletResponse.class);
-
-        expect(servletRequest.getRequestDispatcher("this way")).andReturn(null);
-        replay(servletRequest, response);
-
-        expect(enclosedRequest.getRequest()).andReturn(servletRequest);
-        expect(enclosedRequest.getResponse()).andReturn(response);
-        expect(enclosedRequest.getAvailableScopes()).andReturn(Collections.singletonList("parent"));
-
-        replay(velocityContext, enclosedRequest);
-        context = new VelocityRequest(enclosedRequest, velocityContext, writer);
-        context.doInclude(path);
-        verify(velocityContext, enclosedRequest, servletRequest, response);
-    }
-
-    /**
-     * Tests {@link VelocityRequest#doInclude(String)}.
-     *
-     * @throws IOException If something goes wrong.
-     * @throws ServletException If something goes wrong.
-     */
-    @Test(expected = IOException.class)
-    public void testDoIncludeServletException() throws IOException, ServletException {
-        String path = "this way";
-        ServletRequest enclosedRequest = createMock(ServletRequest.class);
-        HttpServletRequest servletRequest = createMock(HttpServletRequest.class);
-        HttpServletResponse response = createMock(HttpServletResponse.class);
-        RequestDispatcher dispatcher = createMock(RequestDispatcher.class);
-
-        expect(servletRequest.getRequestDispatcher("this way")).andReturn(dispatcher);
-        dispatcher.include(eq(servletRequest), isA(ExternalWriterHttpServletResponse.class));
-        expectLastCall().andThrow(new ServletException());
-        replay(servletRequest, response, dispatcher);
-
-        expect(enclosedRequest.getRequest()).andReturn(servletRequest);
-        expect(enclosedRequest.getResponse()).andReturn(response);
-        expect(enclosedRequest.getAvailableScopes()).andReturn(Collections.singletonList("parent"));
-
-        replay(velocityContext, enclosedRequest);
-        context = new VelocityRequest(enclosedRequest, velocityContext, writer);
-        context.doInclude(path);
-        verify(velocityContext, enclosedRequest, servletRequest, response, dispatcher);
-    }
-
-    /**
-     * Tests {@link VelocityRequest#getPrintWriter()}.
-     */
-    @Test
-    public void testGetPrintWriter() {
-        DispatchRequest enclosedRequest = createMock(DispatchRequest.class);
-        expect(enclosedRequest.getAvailableScopes()).andReturn(Collections.singletonList("parent"));
-
-        replay(velocityContext, enclosedRequest);
-        context = new VelocityRequest(enclosedRequest, velocityContext, writer);
-        assertNotNull(context.getPrintWriter());
-        verify(velocityContext, enclosedRequest);
-    }
-
-    /**
-     * Tests {@link VelocityRequest#getPrintWriter()}.
-     */
-    @Test
-    public void testGetPrintWriterPrintWriter() {
-        DispatchRequest enclosedRequest = createMock(DispatchRequest.class);
-        expect(enclosedRequest.getAvailableScopes()).andReturn(Collections.singletonList("parent"));
-
-        PrintWriter printWriter = new PrintWriter(writer);
-        replay(velocityContext, enclosedRequest);
-        context = new VelocityRequest(enclosedRequest, velocityContext, printWriter);
-        assertEquals(printWriter, context.getPrintWriter());
-        verify(velocityContext, enclosedRequest);
-    }
-
-    /**
-     * Tests {@link VelocityRequest#getPrintWriter()}.
-     */
-    @Test(expected = IllegalStateException.class)
-    public void testGetPrintWriterNoWriter() {
-        DispatchRequest enclosedRequest = createMock(DispatchRequest.class);
-        expect(enclosedRequest.getAvailableScopes()).andReturn(Collections.singletonList("parent"));
-
-        replay(velocityContext, enclosedRequest);
-        context = new VelocityRequest(enclosedRequest, velocityContext, null);
-        context.getPrintWriter();
-        verify(velocityContext, enclosedRequest);
-    }
-
-    /**
-     * Tests {@link VelocityRequest#getWriter()}.
-     */
-    @Test
-    public void testGetWriter() {
-        DispatchRequest enclosedRequest = createMock(DispatchRequest.class);
-        expect(enclosedRequest.getAvailableScopes()).andReturn(Collections.singletonList("parent"));
-
-        replay(velocityContext, enclosedRequest);
-        context = new VelocityRequest(enclosedRequest, velocityContext, writer);
-        assertEquals(writer, context.getWriter());
-        verify(velocityContext, enclosedRequest);
-    }
-
-    /**
-     * Tests {@link VelocityRequest#getWriter()}.
-     */
-    @Test(expected = IllegalStateException.class)
-    public void testGetWriterNoWriter() {
-        DispatchRequest enclosedRequest = createMock(DispatchRequest.class);
-        expect(enclosedRequest.getAvailableScopes()).andReturn(Collections.singletonList("parent"));
-
-        replay(velocityContext, enclosedRequest);
-        context = new VelocityRequest(enclosedRequest, velocityContext, null);
-        context.getWriter();
-        verify(velocityContext, enclosedRequest);
-    }
-
-    /**
-     * Tests {@link VelocityRequest#getPageScope()}.
-     */
-    @Test
-    public void testGetPageScope() {
-        DispatchRequest enclosedRequest = createMock(DispatchRequest.class);
-        expect(enclosedRequest.getAvailableScopes()).andReturn(Collections.singletonList("parent"));
-
-        replay(velocityContext, enclosedRequest);
-        context = new VelocityRequest(enclosedRequest, velocityContext, writer);
-        assertTrue(context.getPageScope() instanceof VelocityScopeMap);
-        verify(velocityContext, enclosedRequest);
-    }
-}
diff --git a/tiles-request/tiles-request-velocity/src/test/java/org/apache/tiles/request/velocity/VelocityScopeMapTest.java b/tiles-request/tiles-request-velocity/src/test/java/org/apache/tiles/request/velocity/VelocityScopeMapTest.java
deleted file mode 100644
index 4f64306..0000000
--- a/tiles-request/tiles-request-velocity/src/test/java/org/apache/tiles/request/velocity/VelocityScopeMapTest.java
+++ /dev/null
@@ -1,144 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.request.velocity;
-
-import static org.easymock.classextension.EasyMock.*;
-import static org.junit.Assert.*;
-
-import java.util.Set;
-
-import org.apache.velocity.context.Context;
-import org.junit.Before;
-import org.junit.Test;
-
-/**
- * Tests {@link VelocityScopeMap}.
- *
- * @version $Rev$ $Date$
- */
-public class VelocityScopeMapTest {
-
-    /**
-     * The Velocity context.
-     */
-    private Context request;
-
-    /**
-     * The map to test.
-     */
-    private VelocityScopeMap map;
-
-    /**
-     * Sets up the test.
-     */
-    @Before
-    public void setUp() {
-        request = createMock(Context.class);
-        map = new VelocityScopeMap(request);
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.request.velocity.VelocityScopeMap#containsKey(java.lang.Object)}.
-     */
-    @Test
-    public void testContainsKey() {
-        expect(request.containsKey("key")).andReturn(true);
-
-        replay(request);
-        assertTrue(map.containsKey("key"));
-        verify(request);
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.request.velocity.VelocityScopeMap#isEmpty()}.
-     */
-    @Test
-    public void testIsEmpty() {
-        expect(request.getKeys()).andReturn(new Object[0]);
-
-        replay(request);
-        assertTrue(map.isEmpty());
-        verify(request);
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.request.velocity.VelocityScopeMap#isEmpty()}.
-     */
-    @Test
-    public void testIsEmptyFalse() {
-        expect(request.getKeys()).andReturn(new Object[] {"one", "two"});
-
-        replay(request);
-        assertFalse(map.isEmpty());
-        verify(request);
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.request.velocity.VelocityScopeMap#keySet()}.
-     */
-    @Test
-    public void testKeySet() {
-        expect(request.getKeys()).andReturn(new Object[] {"one", "two"});
-
-        replay(request);
-        Set<String> set = map.keySet();
-        assertEquals(2, set.size());
-        assertTrue(set.contains("one"));
-        assertTrue(set.contains("two"));
-        verify(request);
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.request.velocity.VelocityScopeMap#size()}.
-     */
-    @Test
-    public void testSize() {
-        expect(request.getKeys()).andReturn(new Object[] {"one", "two"});
-
-        replay(request);
-        assertEquals(2, map.size());
-        verify(request);
-    }
-
-    /**
-     * Test method for {@link VelocityScopeMap#put(String, Object)}.
-     */
-    @Test
-    public void testPutStringObject() {
-        expect(request.put("key", "value")).andReturn("oldValue");
-
-        replay(request);
-        assertEquals("oldValue", map.put("key", "value"));
-        verify(request);
-    }
-
-    /**
-     * Test method for {@link org.apache.tiles.request.velocity.VelocityScopeMap#remove(java.lang.Object)}.
-     */
-    @Test
-    public void testRemoveObject() {
-        expect(request.remove("key")).andReturn("value");
-
-        replay(request);
-        assertEquals("value", map.remove("key"));
-        verify(request);
-    }
-}
diff --git a/tiles-request/tiles-request-velocity/src/test/java/org/apache/tiles/request/velocity/autotag/VelocityAutotagRuntimeTest.java b/tiles-request/tiles-request-velocity/src/test/java/org/apache/tiles/request/velocity/autotag/VelocityAutotagRuntimeTest.java
deleted file mode 100644
index 526c55d..0000000
--- a/tiles-request/tiles-request-velocity/src/test/java/org/apache/tiles/request/velocity/autotag/VelocityAutotagRuntimeTest.java
+++ /dev/null
@@ -1,110 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.request.velocity.autotag;
-
-import static org.easymock.EasyMock.*;
-import static org.junit.Assert.*;
-import java.io.Writer;
-import java.util.Map;
-import javax.servlet.ServletContext;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-import org.apache.tiles.autotag.core.runtime.ModelBody;
-import org.apache.tiles.request.ApplicationAccess;
-import org.apache.tiles.request.ApplicationContext;
-import org.apache.tiles.request.Request;
-import org.apache.tiles.request.velocity.VelocityRequest;
-import org.apache.tiles.request.velocity.autotag.VelocityAutotagRuntime;
-import org.apache.tiles.request.velocity.autotag.VelocityModelBody;
-import org.apache.velocity.context.InternalContextAdapter;
-import org.apache.velocity.runtime.parser.node.ASTBlock;
-import org.apache.velocity.runtime.parser.node.ASTMap;
-import org.apache.velocity.runtime.parser.node.Node;
-import org.apache.velocity.tools.view.ViewToolContext;
-import org.junit.Test;
-
-public class VelocityAutotagRuntimeTest {
-    @Test
-    public void testCreateRequest() {
-        InternalContextAdapter context = createMock(InternalContextAdapter.class);
-        Writer writer = createMock(Writer.class);
-        Node node = createMock(Node.class);
-        ViewToolContext viewContext = createMock(ViewToolContext.class);
-        HttpServletRequest request = createMock(HttpServletRequest.class);
-        HttpServletResponse response = createMock(HttpServletResponse.class);
-        ServletContext servletContext = createMock(ServletContext.class);
-        ApplicationContext applicationContext = createMock(ApplicationContext.class);
-
-        expect(context.getInternalUserContext()).andReturn(viewContext);
-        expect(viewContext.getRequest()).andReturn(request);
-        expect(viewContext.getResponse()).andReturn(response);
-        expect(viewContext.getServletContext()).andReturn(servletContext);
-        expect(servletContext.getAttribute(ApplicationAccess.APPLICATION_CONTEXT_ATTRIBUTE)).andReturn(applicationContext);
-
-        replay(context, writer, node, viewContext, request, response, servletContext, applicationContext);
-        VelocityAutotagRuntime runtime = new VelocityAutotagRuntime();
-        runtime.render(context, writer, node);
-        Request velocityRequest = runtime.createRequest();
-        assertTrue(velocityRequest instanceof VelocityRequest);
-        verify(context, writer, node, viewContext, request, response, servletContext, applicationContext);
-    }
-
-    @Test
-    public void testCreateModelBody() {
-        InternalContextAdapter context = createMock(InternalContextAdapter.class);
-        Writer writer = createMock(Writer.class);
-        Node node = createMock(Node.class);
-        ASTBlock block = createMock(ASTBlock.class);
-        expect(node.jjtGetChild(1)).andReturn(block);
-        replay(context, writer, node, block);
-        VelocityAutotagRuntime runtime = new VelocityAutotagRuntime();
-        runtime.render(context, writer, node);
-        ModelBody modelBody = runtime.createModelBody();
-        assertTrue(modelBody instanceof VelocityModelBody);
-        verify(context, writer, node, block);
-    }
-
-    @Test
-    public void testGetParameter() {
-        InternalContextAdapter context = createMock(InternalContextAdapter.class);
-        Writer writer = createMock(Writer.class);
-        Node node = createMock(Node.class);
-        ASTMap astMap = createMock(ASTMap.class);
-        @SuppressWarnings("unchecked")
-        Map<String, Object> params = createMock(Map.class);
-        expect(node.jjtGetChild(0)).andReturn(astMap);
-        expect(astMap.value(context)).andReturn(params);
-        expect(params.get(eq("notnullParam"))).andReturn(new Integer(42)).anyTimes();
-        expect(params.get(eq("nullParam"))).andReturn(null).anyTimes();
-        replay(context, writer, node, astMap, params);
-        VelocityAutotagRuntime runtime = new VelocityAutotagRuntime();
-        runtime.render(context, writer, node);
-        Object notnullParam = runtime.getParameter("notnullParam", null);
-        Object nullParam = runtime.getParameter("nullParam", null);
-        Object notnullParamDefault = runtime.getParameter("notnullParam", new Integer(24));
-        Object nullParamDefault = runtime.getParameter("nullParam", new Integer(24));
-        assertEquals(42, notnullParam);
-        assertEquals(null, nullParam);
-        assertEquals(42, notnullParamDefault);
-        assertEquals(24, nullParamDefault);
-        verify(context, writer, node, astMap, params);
-    }
-}
diff --git a/tiles-request/tiles-request-velocity/src/test/java/org/apache/tiles/request/velocity/autotag/VelocityModelBodyTest.java b/tiles-request/tiles-request-velocity/src/test/java/org/apache/tiles/request/velocity/autotag/VelocityModelBodyTest.java
deleted file mode 100644
index bca5efd..0000000
--- a/tiles-request/tiles-request-velocity/src/test/java/org/apache/tiles/request/velocity/autotag/VelocityModelBodyTest.java
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.request.velocity.autotag;
-
-import static org.easymock.EasyMock.*;
-
-import java.io.IOException;
-import java.io.Writer;
-
-import org.apache.tiles.request.velocity.autotag.VelocityModelBody;
-import org.apache.velocity.context.InternalContextAdapter;
-import org.apache.velocity.runtime.parser.node.ASTBlock;
-import org.junit.Test;
-
-/**
- * Tests {@link VelocityModelBody}.
- *
- * @version $Rev$ $Date$
- */
-public class VelocityModelBodyTest {
-
-    /**
-     * Test method for {@link org.apache.tiles.request.velocity.autotag.VelocityModelBody#evaluate(java.io.Writer)}.
-     * @throws IOException If something goes wrong.
-     */
-    @Test
-    public void testEvaluateWriter() throws IOException {
-        InternalContextAdapter internalContextAdapter = createMock(InternalContextAdapter.class);
-        ASTBlock body = createMock(ASTBlock.class);
-        Writer writer = createMock(Writer.class);
-        expect(body.render(internalContextAdapter, writer)).andReturn(true);
-
-        replay(internalContextAdapter, body, writer);
-        VelocityModelBody modelBody = createMockBuilder(VelocityModelBody.class)
-                .withConstructor(internalContextAdapter, body, writer)
-                .createMock();
-        replay(modelBody);
-        modelBody.evaluate(writer);
-        verify(internalContextAdapter, body, writer, modelBody);
-    }
-
-}
diff --git a/tiles-request/tiles-request-velocity/src/test/java/org/apache/tiles/request/velocity/autotag/VelocityUtilTest.java b/tiles-request/tiles-request-velocity/src/test/java/org/apache/tiles/request/velocity/autotag/VelocityUtilTest.java
deleted file mode 100644
index 633ed9c..0000000
--- a/tiles-request/tiles-request-velocity/src/test/java/org/apache/tiles/request/velocity/autotag/VelocityUtilTest.java
+++ /dev/null
@@ -1,71 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.request.velocity.autotag;
-
-import static org.easymock.EasyMock.*;
-import static org.junit.Assert.*;
-
-import java.util.Map;
-
-import org.apache.tiles.request.velocity.autotag.VelocityUtil;
-import org.apache.velocity.context.InternalContextAdapter;
-import org.apache.velocity.runtime.parser.node.ASTMap;
-import org.apache.velocity.runtime.parser.node.Node;
-import org.junit.Test;
-
-/**
- * Tests {@link VelocityUtil}.
- *
- * @version $Rev$ $Date$
- */
-public class VelocityUtilTest {
-
-    /**
-     * Test method for {@link VelocityUtil#getParameters(InternalContextAdapter, Node)}.
-     */
-    @Test
-    public void testGetParameters() {
-        InternalContextAdapter context = createMock(InternalContextAdapter.class);
-        Node node = createMock(Node.class);
-        ASTMap astMap = createMock(ASTMap.class);
-        @SuppressWarnings("unchecked")
-        Map<String, Object> params = createMock(Map.class);
-
-        expect(node.jjtGetChild(0)).andReturn(astMap);
-        expect(astMap.value(context)).andReturn(params);
-
-        replay(context, node, astMap, params);
-        assertSame(params, VelocityUtil.getParameters(context, node));
-        verify(context, node, astMap, params);
-    }
-
-    /**
-     * Test method for {@link VelocityUtil#getObject(Object, Object)}.
-     */
-    @Test
-    public void testGetObject() {
-        assertEquals(new Integer(1), VelocityUtil.getObject(new Integer(1), new Integer(2)));
-        assertEquals(new Integer(1), VelocityUtil.getObject(new Integer(1), null));
-        assertEquals(new Integer(2), VelocityUtil.getObject(null, new Integer(2)));
-        assertNull(VelocityUtil.getObject(null, null));
-    }
-
-}
diff --git a/tiles-request/tiles-request-velocity/src/test/java/org/apache/tiles/request/velocity/extractor/VelocityScopeExtractorTest.java b/tiles-request/tiles-request-velocity/src/test/java/org/apache/tiles/request/velocity/extractor/VelocityScopeExtractorTest.java
deleted file mode 100644
index 4a86fe8..0000000
--- a/tiles-request/tiles-request-velocity/src/test/java/org/apache/tiles/request/velocity/extractor/VelocityScopeExtractorTest.java
+++ /dev/null
@@ -1,110 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.request.velocity.extractor;
-
-import static org.easymock.classextension.EasyMock.*;
-import static org.junit.Assert.*;
-
-import java.util.Enumeration;
-
-import org.apache.velocity.context.Context;
-import org.junit.Before;
-import org.junit.Test;
-
-/**
- * Tests {@link VelocityScopeExtractor}.
- *
- * @version $Rev$ $Date$
- */
-public class VelocityScopeExtractorTest {
-
-    /**
-     * The Velocity context.
-     */
-    private Context request;
-
-    /**
-     * The extractor to test.
-     */
-    private VelocityScopeExtractor extractor;
-
-    /**
-     * Sets up the test.
-     */
-    @Before
-    public void setUp() {
-        request = createMock(Context.class);
-        extractor = new VelocityScopeExtractor(request);
-    }
-
-    /**
-     * Test method for {@link VelocityScopeExtractor#removeValue(java.lang.String)}.
-     */
-    @Test
-    public void testRemoveValue() {
-        expect(request.remove("key")).andReturn("value");
-
-        replay(request);
-        extractor.removeValue("key");
-        verify(request);
-    }
-
-    /**
-     * Test method for {@link VelocityScopeExtractor#getKeys()}.
-     */
-    @Test
-    public void testGetKeys() {
-        expect(request.getKeys()).andReturn(new Object[] {"one", "two"});
-
-        replay(request);
-        Enumeration<String> keys = extractor.getKeys();
-        assertTrue(keys.hasMoreElements());
-        assertEquals("one", keys.nextElement());
-        assertTrue(keys.hasMoreElements());
-        assertEquals("two", keys.nextElement());
-        assertFalse(keys.hasMoreElements());
-        verify(request);
-    }
-
-    /**
-     * Test method for {@link VelocityScopeExtractor#getValue(java.lang.String)}.
-     */
-    @Test
-    public void testGetValue() {
-        expect(request.get("key")).andReturn("value");
-
-        replay(request);
-        assertEquals("value", extractor.getValue("key"));
-        verify(request);
-    }
-
-    /**
-     * Test method for {@link VelocityScopeExtractor#setValue(java.lang.String, java.lang.Object)}.
-     */
-    @Test
-    public void testSetValue() {
-        expect(request.put("key", "value")).andReturn(null);
-
-        replay(request);
-        extractor.setValue("key", "value");
-        verify(request);
-    }
-}
diff --git a/tiles-request/tiles-request-velocity/src/test/java/org/apache/tiles/request/velocity/render/ApplicationContextJeeConfigTest.java b/tiles-request/tiles-request-velocity/src/test/java/org/apache/tiles/request/velocity/render/ApplicationContextJeeConfigTest.java
deleted file mode 100644
index 036e6e5..0000000
--- a/tiles-request/tiles-request-velocity/src/test/java/org/apache/tiles/request/velocity/render/ApplicationContextJeeConfigTest.java
+++ /dev/null
@@ -1,145 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.request.velocity.render;
-
-import static org.easymock.EasyMock.*;
-import static org.junit.Assert.*;
-
-import java.util.Enumeration;
-import java.util.HashMap;
-import java.util.Map;
-
-import javax.servlet.ServletContext;
-
-import org.apache.tiles.request.servlet.ServletApplicationContext;
-import org.junit.After;
-import org.junit.Before;
-import org.junit.Test;
-
-/**
- * Tests {@link ApplicationContextJeeConfig}.
- *
- * @version $Rev$ $Date$
- */
-public class ApplicationContextJeeConfigTest {
-
-    /**
-     * The configuration to test.
-     */
-    private ApplicationContextJeeConfig config;
-
-    /**
-     * The application context.
-     */
-    private ServletApplicationContext applicationContext;
-
-    /**
-     * The servlet context.
-     */
-    private ServletContext servletContext;
-
-    /**
-     * Custom parameters.
-     */
-    private Map<String, String> params;
-
-    /**
-     * Sets up the test.
-     */
-    @Before
-    public void setUp() {
-        servletContext = createMock(ServletContext.class);
-        applicationContext = new ServletApplicationContext(servletContext);
-    }
-
-    /**
-     * Tears down the test.
-     */
-    @After
-    public void tearDown() {
-        verify(servletContext);
-    }
-
-    /**
-     * Tests {@link ApplicationContextJeeConfig#getInitParameter(String)}.
-     */
-    @Test
-    public void testGetInitParameter() {
-        params = new HashMap<String, String>();
-        params.put("one", "value1");
-        config = new ApplicationContextJeeConfig(applicationContext, params);
-        replay(servletContext);
-        assertEquals("value1", config.getInitParameter("one"));
-    }
-
-    /**
-     * Tests {@link ApplicationContextJeeConfig#findInitParameter(String)}.
-     */
-    @Test
-    public void testFindInitParameter() {
-        params = new HashMap<String, String>();
-        params.put("one", "value1");
-        config = new ApplicationContextJeeConfig(applicationContext, params);
-        replay(servletContext);
-        assertEquals("value1", config.findInitParameter("one"));
-    }
-
-    /**
-     * Tests {@link ApplicationContextJeeConfig#getInitParameterNames()}.
-     */
-    @Test
-    public void testGetInitParameterNames() {
-        params = new HashMap<String, String>();
-        params.put("one", "value1");
-        config = new ApplicationContextJeeConfig(applicationContext, params);
-        replay(servletContext);
-        @SuppressWarnings("unchecked")
-        Enumeration<String> names = config.getInitParameterNames();
-        assertTrue(names.hasMoreElements());
-        assertEquals("one", names.nextElement());
-        assertFalse(names.hasMoreElements());
-    }
-
-    /**
-     * Tests {@link ApplicationContextJeeConfig#getName()}.
-     */
-    @Test
-    public void testGetName() {
-        params = new HashMap<String, String>();
-        params.put("one", "value1");
-        config = new ApplicationContextJeeConfig(applicationContext, params);
-        replay(servletContext);
-        assertEquals("Application Context JEE Config", config.getName());
-    }
-
-    /**
-     * Tests {@link ApplicationContextJeeConfig#getServletContext()}.
-     */
-    @Test
-    public void testGetServletContext() {
-        params = new HashMap<String, String>();
-        params.put("one", "value1");
-        config = new ApplicationContextJeeConfig(applicationContext, params);
-        replay(servletContext);
-        assertEquals(servletContext, config.getServletContext());
-    }
-
-}
diff --git a/tiles-request/tiles-request-velocity/src/test/java/org/apache/tiles/request/velocity/render/VelocityRendererTest.java b/tiles-request/tiles-request-velocity/src/test/java/org/apache/tiles/request/velocity/render/VelocityRendererTest.java
deleted file mode 100644
index 9a07157..0000000
--- a/tiles-request/tiles-request-velocity/src/test/java/org/apache/tiles/request/velocity/render/VelocityRendererTest.java
+++ /dev/null
@@ -1,109 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tiles.request.velocity.render;
-
-import static org.easymock.EasyMock.*;
-import static org.easymock.classextension.EasyMock.*;
-import static org.junit.Assert.*;
-
-import java.io.IOException;
-import java.io.Writer;
-
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-
-import org.apache.tiles.request.render.CannotRenderException;
-import org.apache.tiles.request.render.Renderer;
-import org.apache.tiles.request.servlet.ServletRequest;
-import org.apache.velocity.Template;
-import org.apache.velocity.tools.view.VelocityView;
-import org.apache.velocity.tools.view.ViewToolContext;
-import org.junit.Test;
-
-/**
- * Tests {@link VelocityRenderer}.
- *
- * @version $Rev$ $Date$
- */
-public class VelocityRendererTest {
-
-    /**
-     * Tests {@link VelocityRenderer#render(String, org.apache.tiles.request.Request)}.
-     * @throws IOException If something goes wrong.
-     */
-    @Test
-    public void testRender() throws IOException {
-        VelocityView view = createMock(VelocityView.class);
-        ServletRequest request = createMock(ServletRequest.class);
-        HttpServletRequest httpRequest = createMock(HttpServletRequest.class);
-        HttpServletResponse response = createMock(HttpServletResponse.class);
-        ViewToolContext context = createMock(ViewToolContext.class);
-        Template template = createMock(Template.class);
-        Writer writer = createMock(Writer.class);
-
-        expect(request.getRequest()).andReturn(httpRequest);
-        expect(request.getResponse()).andReturn(response);
-        expect(view.createContext(httpRequest, response)).andReturn(context);
-        expect(view.getTemplate("/test.vm")).andReturn(template);
-        expect(request.getWriter()).andReturn(writer);
-        view.merge(template, context, writer);
-
-        replay(view, request, httpRequest, response, context, template, writer);
-        Renderer renderer = new VelocityRenderer(view);
-        renderer.render("/test.vm", request);
-        verify(view, request, httpRequest, response, context, template, writer);
-    }
-
-    /**
-     * Tests {@link VelocityRenderer#render(String, org.apache.tiles.request.Request)}.
-     * @throws IOException If something goes wrong.
-     */
-    @Test(expected = CannotRenderException.class)
-    public void testRenderException() throws IOException {
-        VelocityView view = createMock(VelocityView.class);
-        ServletRequest request = createMock(ServletRequest.class);
-
-        replay(view, request);
-        Renderer renderer = new VelocityRenderer(view);
-        try {
-            renderer.render(null, request);
-        } finally {
-            verify(view, request);
-        }
-    }
-
-    /**
-     * Test method for
-     * {@link VelocityRenderer#isRenderable(String, org.apache.tiles.request.Request)}
-     * .
-     */
-    @Test
-    public void testIsRenderable() {
-        VelocityView view = createMock(VelocityView.class);
-        replay(view);
-        Renderer renderer = new VelocityRenderer(view);
-        assertTrue(renderer.isRenderable("/my/template.vm", null));
-        assertFalse(renderer.isRenderable("my/template.vm", null));
-        assertFalse(renderer.isRenderable("/my/template.jsp", null));
-        verify(view);
-    }
-
-}