[maven-release-plugin] copy for tag cocoon-webapp-2.2.1

git-svn-id: https://svn.apache.org/repos/asf/cocoon/tags/cocoon-2.2@1907438 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/cocoon-webapp/cocoon-webapp-2.2.1/LICENSE.txt b/cocoon-webapp/cocoon-webapp-2.2.1/LICENSE.txt
new file mode 100644
index 0000000..261eeb9
--- /dev/null
+++ b/cocoon-webapp/cocoon-webapp-2.2.1/LICENSE.txt
@@ -0,0 +1,201 @@
+                                 Apache License
+                           Version 2.0, January 2004
+                        http://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
+   APPENDIX: How to apply the Apache License to your work.
+
+      To apply the Apache License to your work, attach the following
+      boilerplate notice, with the fields enclosed by brackets "[]"
+      replaced with your own identifying information. (Don't include
+      the brackets!)  The text should be enclosed in the appropriate
+      comment syntax for the file format. We also recommend that a
+      file or class name and description of purpose be included on the
+      same "printed page" as the copyright notice for easier
+      identification within third-party archives.
+
+   Copyright [yyyy] [name of copyright owner]
+
+   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.
diff --git a/cocoon-webapp/cocoon-webapp-2.2.1/NOTICE.txt b/cocoon-webapp/cocoon-webapp-2.2.1/NOTICE.txt
new file mode 100644
index 0000000..bb0f11b
--- /dev/null
+++ b/cocoon-webapp/cocoon-webapp-2.2.1/NOTICE.txt
@@ -0,0 +1,5 @@
+Apache Cocoon
+Copyright 1999-2008 The Apache Software Foundation.
+
+This product includes software developed at
+The Apache Software Foundation (http://www.apache.org/).
diff --git a/cocoon-webapp/cocoon-webapp-2.2.1/pom.xml b/cocoon-webapp/cocoon-webapp-2.2.1/pom.xml
new file mode 100644
index 0000000..d4caa6f
--- /dev/null
+++ b/cocoon-webapp/cocoon-webapp-2.2.1/pom.xml
@@ -0,0 +1,436 @@
+<?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.
+-->
+<!--
+  - This is the bare bones Cocoon web application,
+  - basis for creation of custom distributions.
+  -
+  - @version $Id$
+  -->
+<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>
+    <groupId>org.apache.cocoon</groupId>
+    <artifactId>cocoon-core-modules</artifactId>
+    <version>6</version>
+  </parent>
+  <artifactId>cocoon-webapp</artifactId>
+  <version>2.2.1</version>
+  <packaging>war</packaging>
+  <name>Cocoon Webapp</name>
+
+  <scm>
+    <connection>scm:svn:https://svn.apache.org/repos/asf/cocoon/tags/cocoon-2.2/cocoon-webapp/cocoon-webapp-2.2.1</connection>
+    <developerConnection>scm:svn:https://svn.apache.org/repos/asf/cocoon/tags/cocoon-2.2/cocoon-webapp/cocoon-webapp-2.2.1</developerConnection>
+    <url>https://svn.apache.org/viewvc/cocoon/tags/cocoon-2.2/cocoon-webapp/cocoon-webapp-2.2.1</url>
+  </scm>
+
+  <build>
+    <plugins>
+      <plugin>
+        <groupId>org.mortbay.jetty</groupId>
+        <artifactId>maven-jetty-plugin</artifactId>
+        <version>6.1.7</version>
+        <configuration>
+          <connectors>
+            <connector implementation="org.mortbay.jetty.nio.SelectChannelConnector">
+              <port>${jetty.port}</port>
+              <maxIdleTime>30000</maxIdleTime>
+            </connector>
+          </connectors>
+          <webAppSourceDirectory>./target/cocoon-webapp</webAppSourceDirectory>
+          <contextPath>${jetty.context}</contextPath>
+        </configuration>
+      </plugin>
+      <plugin>
+        <artifactId>maven-surefire-plugin</artifactId>
+        <configuration>
+          <excludes>
+            <exclude>**/cocoon/it/**</exclude>
+          </excludes>
+        </configuration>
+      </plugin>
+    </plugins>
+    <finalName>cocoon-webapp</finalName>
+  </build>
+
+  <dependencies>
+    <!-- Cocoon Core -->
+    <dependency>
+      <groupId>org.apache.cocoon</groupId>
+      <artifactId>cocoon-core</artifactId>
+    </dependency>
+
+    <dependency>
+      <groupId>org.apache.cocoon</groupId>
+      <artifactId>cocoon-servlet-service-impl</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.cocoon</groupId>
+      <artifactId>cocoon-servlet-service-components</artifactId>
+    </dependency>
+
+    <!-- Cocoon Welcome Page -->
+    <dependency>
+      <groupId>org.apache.cocoon</groupId>
+      <artifactId>cocoon-welcome</artifactId>
+      <version>1.0.0-M1</version>
+    </dependency>
+
+    <!-- Cocoon Core Samples -->
+    <dependency>
+      <groupId>org.apache.cocoon</groupId>
+      <artifactId>cocoon-core-main-sample</artifactId>
+      <version>1.0.0</version>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.cocoon</groupId>
+      <artifactId>cocoon-core-additional-sample</artifactId>
+      <version>1.0.0</version>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.cocoon</groupId>
+      <artifactId>cocoon-servlet-service-impl-sample</artifactId>
+      <version>1.0.1</version>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.cocoon</groupId>
+      <artifactId>cocoon-servlet-service-components-sample</artifactId>
+      <version>1.0.0</version>
+    </dependency>
+
+    <!-- Cocoon Sample Blocks -->
+    <dependency>
+      <groupId>org.apache.cocoon</groupId>
+      <artifactId>cocoon-ajax-sample</artifactId>
+      <version>1.0.0</version>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.cocoon</groupId>
+      <artifactId>cocoon-forms-sample</artifactId>
+      <version>1.1.0</version>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.cocoon</groupId>
+      <artifactId>cocoon-template-sample</artifactId>
+      <version>1.1.0</version>
+    </dependency>
+
+    <!-- Integration Tests -->
+    <dependency>
+      <groupId>org.apache.cocoon</groupId>
+      <artifactId>cocoon-it</artifactId>
+    </dependency>
+
+    <!-- Integration Test Framework -->
+    <dependency>
+      <groupId>org.apache.cocoon</groupId>
+      <artifactId>cocoon-it-fw</artifactId>
+      <scope>test</scope>
+    </dependency>
+  </dependencies>
+
+  <profiles>
+    <profile>
+      <id>it</id>
+      <build>
+        <plugins>
+          <!-- Integration tests -->
+          <plugin>
+            <groupId>org.apache.cocoon</groupId>
+            <artifactId>cocoon-it-fw</artifactId>
+            <configuration>
+              <webAppDirectory>./target/cocoon-webapp</webAppDirectory>
+            </configuration>
+            <executions>
+              <execution>
+                <id>jetty-start</id>
+                <goals>
+                  <goal>jetty-start</goal>
+                </goals>
+                <phase>pre-integration-test</phase>
+              </execution>
+              <execution>
+                <id>jetty-stop</id>
+                <goals>
+                  <goal>jetty-stop</goal>
+                </goals>
+                <phase>post-integration-test</phase>
+              </execution>
+            </executions>
+          </plugin>
+          <plugin>
+            <artifactId>maven-surefire-plugin</artifactId>
+            <executions>
+              <execution>
+                <id>integration-test</id>
+                <goals>
+                  <goal>test</goal>
+                </goals>
+                <phase>integration-test</phase>
+                <configuration>
+                  <excludes>
+                    <exclude>none</exclude>
+                  </excludes>
+                </configuration>
+              </execution>
+            </executions>
+          </plugin>
+        </plugins>
+      </build>
+    </profile>
+    <profile>
+      <id>eventcache-jms</id>
+      <dependencies>
+        <dependency>
+          <groupId>org.apache.cocoon</groupId>
+          <artifactId>cocoon-eventcache-sample</artifactId>
+        </dependency>
+        <dependency>
+          <groupId>org.apache.cocoon</groupId>
+          <artifactId>cocoon-jms-sample</artifactId>
+        </dependency>
+      </dependencies>
+    </profile>
+    <profile>
+      <id>allblocks</id>
+      <dependencies>
+        <dependency>
+          <groupId>org.apache.cocoon</groupId>
+          <artifactId>cocoon-apples-sample</artifactId>
+        </dependency>
+        <dependency>
+          <groupId>org.apache.cocoon</groupId>
+          <artifactId>cocoon-asciiart-sample</artifactId>
+        </dependency>
+        <dependency>
+          <groupId>org.apache.cocoon</groupId>
+          <artifactId>cocoon-auth-sample</artifactId>
+        </dependency>
+        <dependency>
+          <groupId>org.apache.cocoon</groupId>
+          <artifactId>cocoon-authentication-fw-sample</artifactId>
+        </dependency>
+        <dependency>
+          <groupId>org.apache.cocoon</groupId>
+          <artifactId>cocoon-axis-sample</artifactId>
+        </dependency>
+        <dependency>
+          <groupId>org.apache.cocoon</groupId>
+          <artifactId>cocoon-batik-sample</artifactId>
+        </dependency>
+        <dependency>
+          <groupId>org.apache.cocoon</groupId>
+          <artifactId>cocoon-bsf-sample</artifactId>
+        </dependency>
+        <!--dependency>
+          <groupId>org.apache.cocoon</groupId>
+          <artifactId>cocoon-captcha-sample</artifactId>
+        </dependency-->
+        <!--<dependency>
+          <groupId>org.apache.cocoon</groupId>
+          <artifactId>cocoon-chaperon-sample</artifactId>
+        </dependency>-->
+        <dependency>
+          <groupId>org.apache.cocoon</groupId>
+          <artifactId>cocoon-cron-sample</artifactId>
+        </dependency>
+        <dependency>
+          <groupId>org.apache.cocoon</groupId>
+          <artifactId>cocoon-databases-sample</artifactId>
+        </dependency>
+        <!--<dependency>
+          <groupId>org.apache.cocoon</groupId>
+          <artifactId>cocoon-deli-sample</artifactId>
+        </dependency>-->
+        <dependency>
+          <groupId>org.apache.cocoon</groupId>
+          <artifactId>cocoon-eventcache-sample</artifactId>
+        </dependency>
+        <!--dependency>
+          <groupId>org.apache.cocoon</groupId>
+          <artifactId>cocoon-jms-sample</artifactId>
+        </dependency-->
+        <!-- Breaks currently cocoon-webapp
+        <dependency>
+          <groupId>org.apache.cocoon</groupId>
+          <artifactId>cocoon-faces-sample</artifactId>
+        </dependency>
+        -->
+        <dependency>
+          <groupId>org.apache.cocoon</groupId>
+          <artifactId>cocoon-fop-sample</artifactId>
+        </dependency>
+        <!-- Disabled because classloading conflicts prevent it from running
+             at the same time as the "legacy" FOP block.
+        <dependency>
+          <groupId>org.apache.cocoon</groupId>
+          <artifactId>cocoon-fop-ng-sample</artifactId>
+        </dependency>
+        -->
+        <dependency>
+          <groupId>org.apache.cocoon</groupId>
+          <artifactId>cocoon-html-sample</artifactId>
+        </dependency>
+<!--        <dependency>-->
+<!--          <groupId>org.apache.cocoon</groupId>-->
+<!--          <artifactId>cocoon-imageop-sample</artifactId>-->
+<!--        </dependency>-->
+        <dependency>
+          <groupId>org.apache.cocoon</groupId>
+          <artifactId>cocoon-itext-sample</artifactId>
+        </dependency>
+        <!-- Java flow was excluded from building because org.apache.commons:javaflow:jar:1.0-SNAPSHOT is not available anywhere -->
+        <!--
+        <dependency>
+          <groupId>org.apache.cocoon</groupId>
+          <artifactId>cocoon-javaflow-sample</artifactId>
+        </dependency>
+        -->
+        <dependency>
+          <groupId>org.apache.cocoon</groupId>
+          <artifactId>cocoon-jcr-sample</artifactId>
+        </dependency>
+        <!--<dependency>
+          <groupId>org.apache.cocoon</groupId>
+          <artifactId>cocoon-jfor-sample</artifactId>
+        </dependency>-->
+        <dependency>
+          <groupId>org.apache.cocoon</groupId>
+          <artifactId>cocoon-jsp-sample</artifactId>
+        </dependency>
+        <dependency>
+          <groupId>org.apache.cocoon</groupId>
+          <artifactId>cocoon-linkrewriter-sample</artifactId>
+        </dependency>
+        <dependency>
+          <groupId>org.apache.cocoon</groupId>
+          <artifactId>cocoon-lucene-sample</artifactId>
+        </dependency>
+        <dependency>
+          <groupId>org.apache.cocoon</groupId>
+          <artifactId>cocoon-mail-sample</artifactId>
+        </dependency>
+        <dependency>
+          <groupId>org.apache.cocoon</groupId>
+          <artifactId>cocoon-midi-sample</artifactId>
+        </dependency>
+        <dependency>
+          <groupId>org.apache.cocoon</groupId>
+          <artifactId>cocoon-naming-sample</artifactId>
+        </dependency>
+        <!-- Breaks currently cocoon-webapp
+        <dependency>
+          <groupId>org.apache.cocoon</groupId>
+          <artifactId>cocoon-ojb-sample</artifactId>
+        </dependency>
+        -->
+        <dependency>
+          <groupId>org.apache.cocoon</groupId>
+          <artifactId>cocoon-petstore-sample</artifactId>
+        </dependency>
+        <dependency>
+          <groupId>org.apache.cocoon</groupId>
+          <artifactId>cocoon-poi-sample</artifactId>
+        </dependency>
+        <dependency>
+          <groupId>org.apache.cocoon</groupId>
+          <artifactId>cocoon-portal-sample</artifactId>
+        </dependency>
+        <dependency>
+          <groupId>org.apache.cocoon</groupId>
+          <artifactId>cocoon-profiler-sample</artifactId>
+        </dependency>
+        <dependency>
+          <groupId>org.apache.cocoon</groupId>
+          <artifactId>cocoon-proxy-sample</artifactId>
+        </dependency>
+        <dependency>
+          <groupId>org.apache.cocoon</groupId>
+          <artifactId>cocoon-qdox-sample</artifactId>
+        </dependency>
+        <dependency>
+          <groupId>org.apache.cocoon</groupId>
+          <artifactId>cocoon-querybean-sample</artifactId>
+        </dependency>
+        <dependency>
+          <groupId>org.apache.cocoon</groupId>
+          <artifactId>cocoon-scratchpad-sample</artifactId>
+        </dependency>
+        <dependency>
+          <groupId>org.apache.cocoon</groupId>
+          <artifactId>cocoon-session-fw-sample</artifactId>
+        </dependency>
+        <!-- Breaks currently cocoon-webapp
+        <dependency>
+          <groupId>org.apache.cocoon</groupId>
+          <artifactId>cocoon-slide-sample</artifactId>
+        </dependency>
+        -->
+        <dependency>
+          <groupId>org.apache.cocoon</groupId>
+          <artifactId>cocoon-slop-sample</artifactId>
+        </dependency>
+        <dependency>
+          <groupId>org.apache.cocoon</groupId>
+          <artifactId>cocoon-stx-sample</artifactId>
+        </dependency>
+        <!-- Breaks currently cocoon-webapp
+        <dependency>
+          <groupId>org.apache.cocoon</groupId>
+          <artifactId>cocoon-taglib-sample</artifactId>
+        </dependency>
+         -->
+        <dependency>
+          <groupId>org.apache.cocoon</groupId>
+          <artifactId>cocoon-tour-sample</artifactId>
+        </dependency>
+        <dependency>
+          <groupId>org.apache.cocoon</groupId>
+          <artifactId>cocoon-validation-sample</artifactId>
+        </dependency>
+        <dependency>
+          <groupId>org.apache.cocoon</groupId>
+          <artifactId>cocoon-velocity-sample</artifactId>
+        </dependency>
+        <dependency>
+          <groupId>org.apache.cocoon</groupId>
+          <artifactId>cocoon-web3-sample</artifactId>
+        </dependency>
+        <dependency>
+          <groupId>org.apache.cocoon</groupId>
+          <artifactId>cocoon-webdav-sample</artifactId>
+        </dependency>
+        <!--<dependency>
+          <groupId>org.apache.cocoon</groupId>
+          <artifactId>cocoon-xmldb-sample</artifactId>
+        </dependency>-->
+        <dependency>
+          <groupId>org.apache.cocoon</groupId>
+          <artifactId>cocoon-xsp-sample</artifactId>
+        </dependency>
+      </dependencies>
+    </profile>
+  </profiles>
+
+  <properties>
+    <jetty.port>8888</jetty.port>
+    <jetty.context>/</jetty.context>
+  </properties>
+</project>
diff --git a/cocoon-webapp/cocoon-webapp-2.2.1/src/changes/changes.xml b/cocoon-webapp/cocoon-webapp-2.2.1/src/changes/changes.xml
new file mode 100644
index 0000000..315105f
--- /dev/null
+++ b/cocoon-webapp/cocoon-webapp-2.2.1/src/changes/changes.xml
@@ -0,0 +1,33 @@
+<?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.
+-->
+
+<!--
+  - @see http://maven.apache.org/plugins/maven-changes-plugin/usage.html
+  - @version $Id$
+  -->
+<document>
+  <body>
+    <release version="1.0.0-M1" date="2007-??-??" description="unreleased">
+      <action dev="reinhard" type="add">
+        Initial creation.
+      </action>
+    </release>
+  </body>
+</document>
diff --git a/cocoon-webapp/cocoon-webapp-2.2.1/src/main/webapp/WEB-INF/applicationContext.xml b/cocoon-webapp/cocoon-webapp-2.2.1/src/main/webapp/WEB-INF/applicationContext.xml
new file mode 100644
index 0000000..ca3d58f
--- /dev/null
+++ b/cocoon-webapp/cocoon-webapp-2.2.1/src/main/webapp/WEB-INF/applicationContext.xml
@@ -0,0 +1,43 @@
+<?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.
+-->
+<!-- @version $Id$ -->
+<beans xmlns="http://www.springframework.org/schema/beans"
+       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+       xmlns:util="http://www.springframework.org/schema/util"
+       xmlns:configurator="http://cocoon.apache.org/schema/configurator"
+       xmlns:avalon="http://cocoon.apache.org/schema/avalon"
+       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
+                           http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-2.5.xsd
+                           http://cocoon.apache.org/schema/configurator http://cocoon.apache.org/schema/configurator/cocoon-configurator-1.0.1.xsd
+                           http://cocoon.apache.org/schema/avalon http://cocoon.apache.org/schema/avalon/cocoon-avalon-1.0.xsd">
+
+  <!-- Activate Cocoon Spring Configurator -->
+  <configurator:settings/>
+
+  <!-- Configure Log4j -->
+  <bean name="org.apache.cocoon.spring.configurator.log4j"
+        class="org.apache.cocoon.spring.configurator.log4j.Log4JConfigurator"
+        scope="singleton">
+    <property name="settings" ref="org.apache.cocoon.configuration.Settings"/>
+    <property name="resource" value="/WEB-INF/cocoon/log4j.xml"/>
+  </bean>
+
+  <!-- Activate Avalon Bridge -->
+  <avalon:bridge/>
+
+</beans>
diff --git a/cocoon-webapp/cocoon-webapp-2.2.1/src/main/webapp/WEB-INF/cocoon/log4j.xml b/cocoon-webapp/cocoon-webapp-2.2.1/src/main/webapp/WEB-INF/cocoon/log4j.xml
new file mode 100644
index 0000000..e59ba27
--- /dev/null
+++ b/cocoon-webapp/cocoon-webapp-2.2.1/src/main/webapp/WEB-INF/cocoon/log4j.xml
@@ -0,0 +1,42 @@
+<?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.
+-->
+<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
+
+<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
+  <!--
+    - This is a sample configuration for log4j.
+    - It simply just logs everything into a single log file.
+    - Note, that you can use properties for value substitution.
+    -->
+  <appender name="CORE" class="org.apache.log4j.FileAppender">
+    <param name="File"   value="${org.apache.cocoon.work.directory}/cocoon-logs/log4j.log" />
+    <param name="Append" value="false" />
+    <layout class="org.apache.log4j.PatternLayout">
+      <param name="ConversionPattern" value="%d %-5p %t %c - %m%n"/>
+    </layout>
+  </appender>
+
+  <logger name="org.springframework">
+    <level value="${org.apache.cocoon.log4j.loglevel.spring}"/>
+  </logger>
+
+  <root>
+    <priority value="${org.apache.cocoon.log4j.loglevel}"/>
+    <appender-ref ref="CORE"/>
+  </root>
+</log4j:configuration>
diff --git a/cocoon-webapp/cocoon-webapp-2.2.1/src/main/webapp/WEB-INF/web.xml b/cocoon-webapp/cocoon-webapp-2.2.1/src/main/webapp/WEB-INF/web.xml
new file mode 100644
index 0000000..4a4838c
--- /dev/null
+++ b/cocoon-webapp/cocoon-webapp-2.2.1/src/main/webapp/WEB-INF/web.xml
@@ -0,0 +1,205 @@
+<?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.
+-->
+
+<!--
+  - This is the Cocoon web-app configurations file
+  -
+  - $Id$
+  -->
+<web-app version="2.4"
+         xmlns="http://java.sun.com/xml/ns/j2ee"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
+
+  <!-- Context Configuration ========================================== -->
+
+  <!--
+    - Set a context property useful to allow you to ProxyPass your
+    - web application mounted to a different URI without losing the
+    - ability to do cookie-based sessions.
+    - WARNING: this is Jetty specific!
+  <context-param>
+    <description>An override of the session cookie path</description>
+    <param-name>org.mortbay.jetty.servlet.SessionPath</param-name>
+    <param-value>/some/path/to/your/webapp</param-value>
+  </context-param>
+    -->
+
+  <!-- Servlet Context Listener ======================================= -->
+
+  <listener>
+    <description>Declare a context listener that installs all blocks.</description>
+    <listener-class>org.apache.cocoon.blockdeployment.BlockDeploymentServletContextListener</listener-class>
+  </listener>
+
+  <!--
+    - Declare Spring context listener which sets up the Spring Application Context
+    - containing all Cocoon components (and user defined beans as well).
+    -->
+  <listener>
+    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
+  </listener>
+
+  <!--
+    - Declare Spring request listener which sets up the required RequestAttributes
+    - to support Springs and Cocoon custom bean scopes like the request scope or the
+    - session scope.
+    -->
+  <listener>
+    <listener-class>org.springframework.web.context.request.RequestContextListener</listener-class>
+  </listener>
+
+  <!-- Servlet Filters ================================================ -->
+
+  <!--
+    - Declare a filter for multipart MIME handling
+    -->
+  <filter>
+    <description>Multipart MIME handling filter for Cocoon</description>
+    <display-name>Cocoon multipart filter</display-name>
+    <filter-name>CocoonMultipartFilter</filter-name>
+    <filter-class>org.apache.cocoon.servlet.multipart.MultipartFilter</filter-class>
+  </filter>
+
+  <!--
+    - Declare a filter for debugging incoming request
+    -->
+  <filter>
+    <description>Log debug information about each request</description>
+    <display-name>Cocoon debug filter</display-name>
+    <filter-name>CocoonDebugFilter</filter-name>
+    <filter-class>org.apache.cocoon.servlet.DebugFilter</filter-class>
+  </filter>
+
+  <!-- Filter mappings ================================================ -->
+
+  <!--
+    - Use the Cocoon multipart filter together with the Cocoon demo webapp
+    -->
+  <filter-mapping>
+    <filter-name>CocoonMultipartFilter</filter-name>
+    <servlet-name>Cocoon</servlet-name>
+  </filter-mapping>
+  <filter-mapping>
+    <filter-name>CocoonMultipartFilter</filter-name>
+    <servlet-name>DispatcherServlet</servlet-name>
+  </filter-mapping>
+
+  <!--
+    - Use the Cocoon debug filter together with the Cocoon demo webapp
+  <filter-mapping>
+    <filter-name>CocoonDebugFilter</filter-name>
+    <servlet-name>Cocoon</servlet-name>
+  </filter-mapping>
+    -->
+
+  <!-- Servlet Configuration ========================================== -->
+
+  <!--
+    - Servlet that dispatches requests to the Spring managed block servlets
+    -->
+  <servlet>
+    <description>Cocoon blocks dispatcher</description>
+    <display-name>DispatcherServlet</display-name>
+    <servlet-name>DispatcherServlet</servlet-name>
+    <servlet-class>org.apache.cocoon.servletservice.DispatcherServlet</servlet-class>
+    <!--
+      - This parameter allows you to startup immediately after startup
+      - of your servlet engine.
+      -->
+    <load-on-startup>1</load-on-startup>
+  </servlet>
+
+  <!-- URL space mappings ============================================= -->
+
+  <!--
+    - Cocoon handles all the URL space assigned to the webapp using its sitemap.
+    - It is recommended to leave it unchanged. Under some circumstances though
+    - (like integration with proprietary webapps or servlets) you might have
+    - to change this parameter.
+    -->
+  <servlet-mapping>
+    <servlet-name>DispatcherServlet</servlet-name>
+    <url-pattern>/*</url-pattern>
+  </servlet-mapping>
+
+  <!--
+    - Some servlet engines (Tomcat) have defaults which are not overriden
+    - by '/' mapping, but must be overriden explicitly.
+    -->
+  <servlet-mapping>
+    <servlet-name>DispatcherServlet</servlet-name>
+    <url-pattern>*.jsp</url-pattern>
+  </servlet-mapping>
+
+  <!--
+    - Some servlet engines (WebLogic) have defaults which are not overriden
+    - by '/' mapping, but must be overriden explicitly.
+    -->
+  <servlet-mapping>
+    <servlet-name>DispatcherServlet</servlet-name>
+    <url-pattern>*.html</url-pattern>
+  </servlet-mapping>
+
+  <!-- various MIME type mappings ====================================== -->
+
+  <mime-mapping>
+    <extension>css</extension>
+    <mime-type>text/css</mime-type>
+  </mime-mapping>
+
+  <mime-mapping>
+    <extension>xml</extension>
+    <mime-type>text/xml</mime-type>
+  </mime-mapping>
+
+  <mime-mapping>
+    <extension>xsl</extension>
+    <mime-type>text/xml</mime-type>
+  </mime-mapping>
+
+  <mime-mapping>
+    <extension>xconf</extension>
+    <mime-type>text/xml</mime-type>
+  </mime-mapping>
+
+  <mime-mapping>
+    <extension>xmap</extension>
+    <mime-type>text/xml</mime-type>
+  </mime-mapping>
+
+  <mime-mapping>
+    <extension>ent</extension>
+    <mime-type>text/plain</mime-type>
+  </mime-mapping>
+
+  <mime-mapping>
+    <extension>grm</extension>
+    <mime-type>text/plain</mime-type>
+  </mime-mapping>
+
+  <!--
+    - Sample environment entry for the NamingInputModule
+    -->
+  <env-entry>
+    <env-entry-name>greeting</env-entry-name>
+    <env-entry-type>java.lang.String</env-entry-type>
+    <env-entry-value>Hello, World</env-entry-value>
+  </env-entry>
+
+</web-app>
diff --git a/cocoon-webapp/cocoon-webapp-2.2.1/src/main/webapp/test-suite/sitemap.xmap b/cocoon-webapp/cocoon-webapp-2.2.1/src/main/webapp/test-suite/sitemap.xmap
new file mode 100644
index 0000000..0d54cd6
--- /dev/null
+++ b/cocoon-webapp/cocoon-webapp-2.2.1/src/main/webapp/test-suite/sitemap.xmap
@@ -0,0 +1,56 @@
+<?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.
+-->
+
+<!--
+  - $Id$
+  -->
+<map:sitemap xmlns:map="http://apache.org/cocoon/sitemap/1.0">
+
+  <!-- =========================== Views =================================== -->
+
+  <map:views>
+    <map:view name="content" from-label="content">
+      <map:serialize type="xml"/>
+    </map:view>
+
+    <map:view from-label="content" name="pretty-content">
+      <map:transform src="context://stylesheets/system/xml2html.xslt"/>
+      <map:serialize type="html"/>
+    </map:view>
+
+    <map:view name="links" from-position="last">
+      <map:serialize type="links"/>
+    </map:view>
+  </map:views>
+
+  <!-- =========================== Pipelines ================================= -->
+
+  <map:pipelines>
+    <map:pipeline>
+
+      <map:match pattern="static-site/**.html">
+        <map:generate src="xdocs/{1}.xml"/>
+        <map:transform src="stylesheets/xdoc2html.xslt">
+          <map:parameter name="contextPath" value="{request:contextPath}"/>
+        </map:transform>
+        <map:serialize type="html"/>
+      </map:match>
+      
+    </map:pipeline>
+  </map:pipelines>
+</map:sitemap>
diff --git a/cocoon-webapp/cocoon-webapp-2.2.1/src/main/webapp/test-suite/stylesheets/simple-xdoc2html.xslt b/cocoon-webapp/cocoon-webapp-2.2.1/src/main/webapp/test-suite/stylesheets/simple-xdoc2html.xslt
new file mode 100644
index 0000000..ef9b5fa
--- /dev/null
+++ b/cocoon-webapp/cocoon-webapp-2.2.1/src/main/webapp/test-suite/stylesheets/simple-xdoc2html.xslt
@@ -0,0 +1,96 @@
+<?xml version="1.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.
+-->
+
+<!--+
+    | Converts output of the StatusGenerator into HTML page
+    | 
+    | CVS $Id: simple-xdoc2html.xslt,v 1.1 2004/04/28 21:29:08 upayavira Exp $
+    +-->
+
+<xsl:stylesheet version="1.0"
+                xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                xmlns:status="http://apache.org/cocoon/status/2.0">
+ 
+  <xsl:param name="contextPath"/>
+
+  <xsl:template match="status:statusinfo">
+    <html>
+      <head>
+        <title>Cocoon Status [<xsl:value-of select="@status:host"/>]</title>
+        <link href="{$contextPath}/styles/main.css" type="text/css" rel="stylesheet"/>
+        <script src="{$contextPath}/scripts/main.js" type="text/javascript"/>
+      </head>
+
+      <body>
+        <h1><xsl:value-of select="@status:host"/> - <xsl:value-of select="@status:date"/></h1>
+        <xsl:apply-templates/>
+      </body>
+    </html>
+  </xsl:template>
+
+  <xsl:template match="status:group">
+    <h2><xsl:value-of select="@status:name"/></h2>
+    <ul><xsl:apply-templates select="status:value"/></ul>
+    <xsl:apply-templates select="status:group"/>
+  </xsl:template>
+
+  <xsl:template match="status:value">
+    <li>
+      <span class="description"><xsl:value-of select="@status:name"/><xsl:text>: </xsl:text></span>
+      <xsl:choose>
+        <xsl:when test="contains(@status:name,'free') or contains(@status:name,'total')">
+          <xsl:call-template name="suffix">
+            <xsl:with-param name="bytes" select="number(.)"/>
+          </xsl:call-template>
+        </xsl:when>      
+        <xsl:when test="count(status:line) &lt;= 1">
+          <xsl:value-of select="status:line"/>
+        </xsl:when>
+        <xsl:otherwise>
+          <span class="switch" id="{generate-id(.)}-switch" onclick="toggle('{generate-id(.)}')">[show]</span>
+          <ul id="{generate-id(.)}" style="display: none">
+             <xsl:apply-templates />
+          </ul>
+        </xsl:otherwise>
+      </xsl:choose>
+    </li>
+  </xsl:template>
+
+  <xsl:template match="status:line">
+    <li><xsl:value-of select="."/></li>
+  </xsl:template>
+
+  <xsl:template name="suffix">
+    <xsl:param name="bytes"/>
+    <xsl:choose>
+      <!-- More than 4 MB (=4194304) -->
+      <xsl:when test="$bytes &gt;= 4194304">
+        <xsl:value-of select="round($bytes div 10485.76) div 100"/> MB
+      </xsl:when>
+      <!-- More than 4 KB (=4096) -->
+      <xsl:when test="$bytes &gt; 4096">
+        <xsl:value-of select="round($bytes div 10.24) div 100"/> KB
+      </xsl:when>
+      <!-- Less -->
+      <xsl:otherwise>
+        <xsl:value-of select="$bytes"/> B
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:template>
+  
+</xsl:stylesheet>
diff --git a/cocoon-webapp/cocoon-webapp-2.2.1/src/main/webapp/test-suite/xdocs/index.xml b/cocoon-webapp/cocoon-webapp-2.2.1/src/main/webapp/test-suite/xdocs/index.xml
new file mode 100644
index 0000000..cc51cc0
--- /dev/null
+++ b/cocoon-webapp/cocoon-webapp-2.2.1/src/main/webapp/test-suite/xdocs/index.xml
@@ -0,0 +1,41 @@
+<?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.
+-->
+<!DOCTYPE document PUBLIC "-//APACHE//DTD Documentation V1.0//EN" "dtd/document-v10.dtd">
+<document>
+  <header>
+    <title>Cocoon TestSuite</title>
+    <authors>
+      <person name="Cocoon community" email="dev@cocoon.apache.org"/>
+    </authors>
+  </header>
+  <body>
+    <s1 title="General information">
+      <p>
+          Apache Cocoon is a web development framework built around the concepts 
+          of component-based web development and separation of concerns, ensuring 
+          that people can interact and collaborate on a project without stepping 
+          on each other toes.
+      </p>
+      <p>
+          The purpose of these pages is to provide a webapp to be used in testing
+          Cocoon itself. These pages are not intended to be read by humans - rather
+          to be read by automated tests that are a part of Cocoon itself.
+      </p>
+    </s1>    
+  </body>
+</document>
diff --git a/cocoon-webapp/cocoon-webapp-2.2.1/src/test/java/org/apache/cocoon/it/blocks/eventcache/EventAwareCacheTest.java b/cocoon-webapp/cocoon-webapp-2.2.1/src/test/java/org/apache/cocoon/it/blocks/eventcache/EventAwareCacheTest.java
new file mode 100644
index 0000000..aa3d628
--- /dev/null
+++ b/cocoon-webapp/cocoon-webapp-2.2.1/src/test/java/org/apache/cocoon/it/blocks/eventcache/EventAwareCacheTest.java
@@ -0,0 +1,78 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.cocoon.it.blocks.eventcache;
+
+import org.apache.cocoon.tools.it.HtmlUnitTestCase;
+
+/**
+ * Runs various tests on the eventcache block.
+ */
+public class EventAwareCacheTest extends HtmlUnitTestCase {
+
+    /**
+     * Verifies a key to be cached.
+     * 
+     * @throws Exception In case of environmental errors.
+     */
+    public void testGetCachedSite() throws Exception {
+//        this.loadXmlPage("cocoon-eventcache-sample/it/demo?pageKey=one");
+//        assertEquals(200, this.response.getStatusCode());
+//        assertXPath("/eventcache/key", "one");
+//        String firstLoaded = this.response.getContentAsString();
+//        this.loadXmlPage("cocoon-eventcache-sample/it/demo?pageKey=one");
+//        assertEquals(200, this.response.getStatusCode());
+//        assertEquals(this.response.getContentAsString(), firstLoaded);
+    }
+
+    /**
+     * Verifies a key to be invalidated by invoking an action.
+     * 
+     * @throws Exception In case of environmental errors.
+     */
+    public void testUncacheWithAction() throws Exception {
+//        this.loadXmlPage("cocoon-eventcache-sample/it/demo?pageKey=two");
+//        assertEquals(200, this.response.getStatusCode());
+//        assertXPath("/eventcache/key", "two");
+//        String firstLoaded = this.response.getContentAsString();
+//        this.loadResponse("cocoon-eventcache-sample/it/action?event=two&pageKey=two");
+//        // Check for correct redirect
+//        assertEquals(302, this.response.getStatusCode());
+//        // Check, whether the response has changed
+//        assertNotSame(this.response.getContentAsString(), firstLoaded);
+//        this.loadXmlPage("cocoon-eventcache-sample/it/demo?pageKey=two");
+//        assertXPath("/eventcache/key", "two");
+    }
+
+    /**
+     * Verifies a key to be invalidated by invoking a flow script.
+     * 
+     * @throws Exception In case of environmental errors.
+     */
+    public void testUncacheWithFlow() throws Exception {
+//        this.loadXmlPage("cocoon-eventcache-sample/it/demo?pageKey=two");
+//        assertEquals(200, this.response.getStatusCode());
+//        assertXPath("/eventcache/key", "two");
+//        String firstLoaded = this.response.getContentAsString();
+//        this.loadResponse("cocoon-eventcache-sample/it/flow?event=two&pageKey=two");
+//        // Check for correct redirect
+//        assertEquals(302, this.response.getStatusCode());
+//        // Check, whether the response has changed
+//        assertNotSame(this.response.getContentAsString(), firstLoaded);
+//        this.loadXmlPage("cocoon-eventcache-sample/it/demo?pageKey=two");
+//        assertXPath("/eventcache/key", "two");
+    }
+}
\ No newline at end of file
diff --git a/cocoon-webapp/cocoon-webapp-2.2.1/src/test/java/org/apache/cocoon/it/blocks/jms/JMSTest.java b/cocoon-webapp/cocoon-webapp-2.2.1/src/test/java/org/apache/cocoon/it/blocks/jms/JMSTest.java
new file mode 100644
index 0000000..75a3ca4
--- /dev/null
+++ b/cocoon-webapp/cocoon-webapp-2.2.1/src/test/java/org/apache/cocoon/it/blocks/jms/JMSTest.java
@@ -0,0 +1,54 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.cocoon.it.blocks.jms;
+
+import org.apache.cocoon.tools.it.HtmlUnitTestCase;
+
+/**
+ * Runs various component and integration tests on the JMS block.
+ */
+public class JMSTest extends HtmlUnitTestCase {
+
+    public void testGetCachedContent() throws Exception {
+//        this.loadXmlPage("cocoon-jms-sample/it/demo?pageKey=one");
+//        assertEquals(200, this.response.getStatusCode());
+//        assertXPath("/eventcache/key", "one");
+//        String firstLoaded = this.response.getContentAsString();
+//        this.loadXmlPage("cocoon-jms-sample/it/demo?pageKey=one");
+//        assertEquals(200, this.response.getStatusCode());
+//        assertEquals(this.response.getContentAsString(), firstLoaded);
+    }
+
+    /**
+     * Verifies a key to be invalidated by invoking an action.
+     * 
+     * @throws Exception In case of environmental errors.
+     */
+    public void testUncacheWithJMSAction() throws Exception {
+//        this.loadXmlPage("cocoon-jms-sample/it/demo?pageKey=two");
+//        assertEquals(200, this.response.getStatusCode());
+//        assertXPath("/eventcache/key", "two");
+//        String firstLoaded = this.response.getContentAsString();
+//        this.loadResponse("cocoon-jms-sample/it/action?event=two&pageKey=two");
+//        // Check for correct redirect
+//        assertEquals(302, this.response.getStatusCode());
+//        // Check, whether the response has changed
+//        assertNotSame(this.response.getContentAsString(), firstLoaded);
+//        this.loadXmlPage("cocoon-jms-sample/it/demo?pageKey=two");
+//        assertXPath("/eventcache/key", "two");
+    }
+}
\ No newline at end of file
diff --git a/cocoon-webapp/cocoon-webapp-2.2.1/src/test/java/org/apache/cocoon/it/blocks/template/PassingSitemapParameters.java b/cocoon-webapp/cocoon-webapp-2.2.1/src/test/java/org/apache/cocoon/it/blocks/template/PassingSitemapParameters.java
new file mode 100644
index 0000000..5f10ed8
--- /dev/null
+++ b/cocoon-webapp/cocoon-webapp-2.2.1/src/test/java/org/apache/cocoon/it/blocks/template/PassingSitemapParameters.java
@@ -0,0 +1,39 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.cocoon.it.blocks.template;
+
+import junit.framework.Assert;
+
+import org.apache.cocoon.tools.it.HtmlUnitTestCase;
+
+public class PassingSitemapParameters extends HtmlUnitTestCase {
+
+    public void testSimpleSitemapParameterPassing() throws Exception {
+        this.loadXmlPage("cocoon-template-sample/it/parameter-from-sitemap");
+        Assert.assertTrue(this.response.getStatusCode() == 200);
+        assertXPath("/parameters/parameter[@name='abc']", "123");
+    }
+
+    public void testSitemapParameterPassingInJxImport() throws Exception {
+        this.loadXmlPage("cocoon-template-sample/it/parameter-from-sitemap-with-import");
+        Assert.assertTrue(this.response.getStatusCode() == 200);
+        assertXPath("/page/p1/parameters/parameter[@name='abc']", "123");
+        // Bug: https://issues.apache.org/jira/browse/COCOON-2187
+        // assertXPath("/page/p2", "123");
+    }
+
+}
diff --git a/cocoon-webapp/cocoon-webapp-2.2.1/src/test/java/org/apache/cocoon/it/servletservice/BlockPathModule.java b/cocoon-webapp/cocoon-webapp-2.2.1/src/test/java/org/apache/cocoon/it/servletservice/BlockPathModule.java
new file mode 100644
index 0000000..9086307
--- /dev/null
+++ b/cocoon-webapp/cocoon-webapp-2.2.1/src/test/java/org/apache/cocoon/it/servletservice/BlockPathModule.java
@@ -0,0 +1,32 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.cocoon.it.servletservice;
+
+import junit.framework.Assert;
+
+import org.apache.cocoon.tools.it.HtmlUnitTestCase;
+
+public class BlockPathModule extends HtmlUnitTestCase {
+
+    public void testSimplePipelineFromSubSitemap() throws Exception {
+        this.loadXmlPage("cocoon-servlet-service-components-sample/1/sub/abs");
+        Assert.assertTrue(this.response.getStatusCode() == 200);
+        assertXPath("/properties/@other", "/cocoon-servlet-service-components-sample/2/test");
+        assertXPath("/properties/@abs", "/cocoon-servlet-service-components-sample/1/test");
+    }
+
+}
diff --git a/cocoon-webapp/cocoon-webapp-2.2.1/src/test/java/org/apache/cocoon/it/servletservice/RequestInformationPassing.java b/cocoon-webapp/cocoon-webapp-2.2.1/src/test/java/org/apache/cocoon/it/servletservice/RequestInformationPassing.java
new file mode 100644
index 0000000..983e003
--- /dev/null
+++ b/cocoon-webapp/cocoon-webapp-2.2.1/src/test/java/org/apache/cocoon/it/servletservice/RequestInformationPassing.java
@@ -0,0 +1,72 @@
+/*
+* Licensed to the Apache Software Foundation (ASF) under one or more
+* contributor license agreements.  See the NOTICE file distributed with
+* this work for additional information regarding copyright ownership.
+* The ASF licenses this file to You under the Apache License, Version 2.0
+* (the "License"); you may not use this file except in compliance with
+* the License.  You may obtain a copy of the License at
+*
+*     http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
+package org.apache.cocoon.it.servletservice;
+
+import junit.framework.Assert;
+
+import org.apache.cocoon.tools.it.HtmlUnitTestCase;
+
+public class RequestInformationPassing extends HtmlUnitTestCase {
+
+    public void testAttributes() throws Exception {
+        this.webClient.addRequestHeader("my-header-param", "6");
+        this.loadXmlPage("cocoon-servlet-service-impl-sample/test1/test4?foo=5");
+        Assert.assertTrue(this.response.getStatusCode() == 200);
+
+        // external request
+        // ~~~~~~~~~~~~~~~~
+
+        assertXPath("/page/request-parameters/parameter[@name='foo']/value", "5");
+        assertXPath("/page/header-parameters/parameter[@name='my-header-param']/value", "6");
+        assertXPath("/page/request-attributes/attribute[@name='foo']/value", "bar");
+
+
+        // sub request: requst attributes, parameters and header
+        // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+        assertXPath("/page/sub-request/page/request-parameters/parameter[@name='foo']", "5");  // from the original request
+        assertXPath("/page/sub-request/page/request-parameters/parameter[@name='xyz']", "5");  // passed value
+        assertXPath("/page/sub-request/page/header-parameters/parameter[@name='my-header-param']/value", "6"); // from the original request
+        assertXPath("/page/sub-request/page/request-attributes/attribute[@name='foo1']/value", "bar1");
+        assertXPath("/page/check-sub/request-attribute[@name='foo1']/value", "null");
+
+
+        // sub request: session handling
+        // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+        // a session attribute set from within the called request
+        assertXPath("/page/sub-request[@name='demo2-test1']/page/session-attributes/attribute[@name='attribute-from-called-request']",
+                        "84");
+
+        // a session attribute set from within the calling request
+        assertXPath("/page/sub-request[@name='demo2-test1']/page/session-attributes/attribute[@name='attribute-from-calling-request']",
+                        "42");
+
+        // check if a session attribute set in a called request is not accessible in the calling request session
+        assertXPath("/page/check-sub/session-attribute[@name='attribute-from-called-request']/value", "null");
+
+        // check if the attribute set the called request before, is still available
+        assertXPath("/page/sub-request[@name='demo2-test2']/page/session-attributes/attribute[@name='attribute-from-called-request']",
+                    "84");
+        // check if the attribute set the calling request is still available
+        assertXPath("/page/sub-request[@name='demo2-test2']/page/session-attributes/attribute[@name='attribute-from-calling-request']",
+                    "42");  // a session attribute set from within the calling request
+
+
+    }
+
+}
diff --git a/cocoon-webapp/cocoon-webapp-2.2.1/src/test/java/org/apache/cocoon/it/servletservice/ServletConnection.java b/cocoon-webapp/cocoon-webapp-2.2.1/src/test/java/org/apache/cocoon/it/servletservice/ServletConnection.java
new file mode 100644
index 0000000..2d4965e
--- /dev/null
+++ b/cocoon-webapp/cocoon-webapp-2.2.1/src/test/java/org/apache/cocoon/it/servletservice/ServletConnection.java
@@ -0,0 +1,51 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.cocoon.it.servletservice;
+
+import junit.framework.Assert;
+
+import org.apache.cocoon.tools.it.HtmlUnitTestCase;
+
+public class ServletConnection extends HtmlUnitTestCase {
+
+    public void testRequestDispatcher() throws Exception {
+        this.loadResponse("cocoon-servlet-service-impl-sample/test1/test3");
+        Assert.assertTrue(this.response.getStatusCode() == 200);
+    }
+
+    public void testSourceResolver() throws Exception {
+        this.loadResponse("cocoon-servlet-service-impl-sample/test1/test2");
+        Assert.assertTrue(this.response.getStatusCode() == 200);
+    }
+
+    public void testRelativeServletConnection1() throws Exception {
+        this.loadResponse("cocoon-servlet-service-impl-sample/test1/test5");
+        Assert.assertTrue(this.response.getStatusCode() == 200);
+    }
+
+    public void testRelativeServletConnection2() throws Exception {
+        this.loadResponse("cocoon-servlet-service-impl-sample/test1/test6");
+        Assert.assertTrue(this.response.getStatusCode() == 200);
+    }
+
+    public void testRelativeServletConnectionErrorStatusCode() throws Exception {
+        this.loadResponse("cocoon-servlet-service-impl-sample/test1/test9");
+        assertTrue(this.response.getContentAsString().indexOf("Forbidden") > 0);
+        Assert.assertTrue(this.response.getStatusCode() == 403);
+    }
+
+}
diff --git a/cocoon-webapp/cocoon-webapp-2.2.1/src/test/java/org/apache/cocoon/it/servletservice/ServletProtocol.java b/cocoon-webapp/cocoon-webapp-2.2.1/src/test/java/org/apache/cocoon/it/servletservice/ServletProtocol.java
new file mode 100644
index 0000000..e3f2a51
--- /dev/null
+++ b/cocoon-webapp/cocoon-webapp-2.2.1/src/test/java/org/apache/cocoon/it/servletservice/ServletProtocol.java
@@ -0,0 +1,67 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.cocoon.it.servletservice;
+
+import junit.framework.Assert;
+
+import org.apache.cocoon.tools.it.HtmlUnitTestCase;
+
+public class ServletProtocol extends HtmlUnitTestCase {
+
+    public void testSimplePipeline() throws Exception {
+        this.loadXmlPage("cocoon-servlet-service-components-sample/1/test");
+        Assert.assertTrue(this.response.getStatusCode() == 200);
+        assertXPath("/test", "some-text");
+    }
+
+    public void testSimpleServletProtocol() throws Exception {
+        this.loadXmlPage("cocoon-servlet-service-components-sample/1/test2");
+        Assert.assertTrue(this.response.getStatusCode() == 200);
+        assertXPath("/test2", "some-text");
+    }
+
+    public void testServletProtocolSelfReferencing() throws Exception {
+        this.loadXmlPage("cocoon-servlet-service-components-sample/1/test3");
+        Assert.assertTrue(this.response.getStatusCode() == 200);
+        assertXPath("/test", "some-text");
+    }
+
+    public void testResourceReading() throws Exception {
+        this.loadXmlPage("cocoon-servlet-service-components-sample/1/test4");
+        Assert.assertTrue(this.response.getStatusCode() == 200);
+        assertXPath("/test-resource", "some-text");
+    }
+
+    public void testServletServiceGenerator() throws Exception {
+        this.loadXmlPage("cocoon-servlet-service-components-sample/1/test5");
+        Assert.assertTrue(this.response.getStatusCode() == 200);
+        assertXPath("/test-result/original-content/test", "some-text");
+    }
+
+    public void testServletServiceTransformer() throws Exception {
+        this.loadXmlPage("cocoon-servlet-service-components-sample/1/test6");
+        Assert.assertTrue(this.response.getStatusCode() == 200);
+        assertXPath("/test-result/original-content/test", "some-text");
+    }
+
+    public void testServletServiceSerializer() throws Exception {
+        this.loadXmlPage("cocoon-servlet-service-components-sample/1/test7");
+        Assert.assertTrue(this.response.getStatusCode() == 200);
+        assertXPath("/test-result/original-content/test", "some-text");
+    }
+
+}
diff --git a/cocoon-webapp/cocoon-webapp-2.2.1/src/test/java/org/apache/cocoon/it/servletservice/SubSitemaps.java b/cocoon-webapp/cocoon-webapp-2.2.1/src/test/java/org/apache/cocoon/it/servletservice/SubSitemaps.java
new file mode 100644
index 0000000..2ead9ad
--- /dev/null
+++ b/cocoon-webapp/cocoon-webapp-2.2.1/src/test/java/org/apache/cocoon/it/servletservice/SubSitemaps.java
@@ -0,0 +1,37 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.cocoon.it.servletservice;
+
+import junit.framework.Assert;
+
+import org.apache.cocoon.tools.it.HtmlUnitTestCase;
+
+public class SubSitemaps extends HtmlUnitTestCase {
+
+    public void testSimplePipelineFromSubSitemap() throws Exception {
+        this.loadXmlPage("cocoon-servlet-service-components-sample/1/sub/test");
+        Assert.assertTrue(this.response.getStatusCode() == 200);
+        assertXPath("/sub/text()", "");
+    }
+
+    public void testServletProtocolFromSubSitemap() throws Exception {
+        this.loadXmlPage("cocoon-servlet-service-components-sample/1/sub/test3");
+        Assert.assertTrue(this.response.getStatusCode() == 200);
+        assertXPath("/test", "some-text");
+    }
+
+}
diff --git a/cocoon-webapp/cocoon-webapp-2.2.1/src/test/java/org/apache/cocoon/it/sitemap/AggregationTest.java b/cocoon-webapp/cocoon-webapp-2.2.1/src/test/java/org/apache/cocoon/it/sitemap/AggregationTest.java
new file mode 100644
index 0000000..cf3a206
--- /dev/null
+++ b/cocoon-webapp/cocoon-webapp-2.2.1/src/test/java/org/apache/cocoon/it/sitemap/AggregationTest.java
@@ -0,0 +1,38 @@
+package org.apache.cocoon.it.sitemap;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT 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 org.apache.cocoon.tools.it.HtmlUnitTestCase;
+
+/**
+ * Test aggregation.
+ */
+public class AggregationTest extends HtmlUnitTestCase {
+
+    /**
+     * A pipeline that uses the IncludeTransformer.
+     */
+    public void testIncludeTransformer() throws Exception {
+        this.loadXmlPage("/cocoon-it/aggregation/include-transformer");
+        assertTrue(this.response.getStatusCode() == 200);
+        assertEquals("text/xml", this.response.getContentType());
+        assertXPath("/sample/sub/text()", "sub");
+    }
+
+
+}
diff --git a/cocoon-webapp/cocoon-webapp-2.2.1/src/test/java/org/apache/cocoon/it/sitemap/CachingOfPipelinesTest.java b/cocoon-webapp/cocoon-webapp-2.2.1/src/test/java/org/apache/cocoon/it/sitemap/CachingOfPipelinesTest.java
new file mode 100644
index 0000000..c525e33
--- /dev/null
+++ b/cocoon-webapp/cocoon-webapp-2.2.1/src/test/java/org/apache/cocoon/it/sitemap/CachingOfPipelinesTest.java
@@ -0,0 +1,53 @@
+package org.apache.cocoon.it.sitemap;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT 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 org.apache.cocoon.tools.it.HtmlUnitTestCase;
+
+/**
+ * Test pipeline caching
+ */
+public class CachingOfPipelinesTest extends HtmlUnitTestCase {
+
+    /**
+     * A non-caching pipeline mustn't produce the same result twice.
+     */
+    public void testNonCachingPipeline() throws Exception {
+        this.loadResponse("/cocoon-it/caching-pipeline/off");
+        String content1 = this.response.getContentAsString();
+        assertNotNull(content1);
+        this.loadResponse("/cocoon-it/caching-pipeline/off");
+        String content2 = this.response.getContentAsString();
+        assertNotNull(content2);
+        assertFalse("The response has to change with every request.", content1.equals(content2));
+    }
+
+    /**
+     * This caching pipeline always returns the same.
+     */
+    public void testCachingPipeline() throws Exception {
+        this.loadResponse("/cocoon-it/caching-pipeline/on");
+        String content1 = this.response.getContentAsString();
+        assertNotNull(content1);
+        this.loadResponse("/cocoon-it/caching-pipeline/on");
+        String content2 = this.response.getContentAsString();
+        assertNotNull(content2);
+        assertTrue("The response has to be always the same.", content1.equals(content2));
+    }
+
+}
diff --git a/cocoon-webapp/cocoon-webapp-2.2.1/src/test/java/org/apache/cocoon/it/sitemap/ControllerTest.java b/cocoon-webapp/cocoon-webapp-2.2.1/src/test/java/org/apache/cocoon/it/sitemap/ControllerTest.java
new file mode 100644
index 0000000..fd7d77b
--- /dev/null
+++ b/cocoon-webapp/cocoon-webapp-2.2.1/src/test/java/org/apache/cocoon/it/sitemap/ControllerTest.java
@@ -0,0 +1,43 @@
+package org.apache.cocoon.it.sitemap;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT 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 org.apache.cocoon.tools.it.HtmlUnitTestCase;
+
+/**
+ * Test controller.
+ */
+public class ControllerTest extends HtmlUnitTestCase {
+
+    /**
+     * Passing on to a controller.
+     */
+    public void testControllerInvocation() throws Exception {
+        this.loadResponse("/cocoon-it/controller/invoke");
+        assertTrue(this.response.getStatusCode() == 201);
+    }
+
+    /**
+     * Continue controller execution.
+     */
+    public void testContinuingController() throws Exception {
+        this.loadResponse("/cocoon-it/controller/continue");
+        assertTrue(this.response.getStatusCode() == 202);
+    }
+
+}
diff --git a/cocoon-webapp/cocoon-webapp-2.2.1/src/test/java/org/apache/cocoon/it/sitemap/ErrorHandlingTest.java b/cocoon-webapp/cocoon-webapp-2.2.1/src/test/java/org/apache/cocoon/it/sitemap/ErrorHandlingTest.java
new file mode 100644
index 0000000..48b5403
--- /dev/null
+++ b/cocoon-webapp/cocoon-webapp-2.2.1/src/test/java/org/apache/cocoon/it/sitemap/ErrorHandlingTest.java
@@ -0,0 +1,71 @@
+package org.apache.cocoon.it.sitemap;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT 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 org.apache.cocoon.tools.it.HtmlUnitTestCase;
+
+/**
+ * Test error handling of sitemaps.
+ */
+public class ErrorHandlingTest extends HtmlUnitTestCase {
+
+    /**
+     * If no pipeline matches, the error handling section gets activated.
+     */
+    public void testPerSitemap404() throws Exception {
+        // load this resource twice because the first time when a pipeline that
+        // doesn't set the status code 200, is being invoked, 200 is returned
+        this.loadResponse("/cocoon-it/12345678901234567890");
+        this.loadResponse("/cocoon-it/12345678901234567890");
+        int statusCode = this.response.getStatusCode();
+        assertTrue(statusCode == 404);
+        assertTrue(this.response.getContentAsString().indexOf("404 Resource Not Available (Cocoon Integration Tests)") > 0);
+    }
+
+    public void testPerSitemapCustomError() throws Exception {
+        // load this resource twice because the first time when a pipeline that
+        // doesn't set the status code 200, is being invoked, 200 is returned
+        this.loadResponse("/cocoon-it/error-handling/custom-error");
+        this.loadResponse("/cocoon-it/error-handling/custom-error");
+        int statusCode = this.response.getStatusCode();
+        assertTrue(statusCode == 500);
+        assertTrue(this.response.getContentAsString().indexOf("Error 500 (Cocoon Integration Tests)") > 0);
+    }
+
+    public void testPerPipelineCustomError() throws Exception {
+        // load this resource twice because the first time when a pipeline that
+        // doesn't set the status code 200, is being invoked, 200 is returned
+        this.loadResponse("/cocoon-it/error-handling/custom-error-per-pipeline-error-handling");
+        this.loadResponse("/cocoon-it/error-handling/custom-error-per-pipeline-error-handling");
+        int statusCode = this.response.getStatusCode();
+        assertTrue(statusCode == 501);
+        assertTrue(this.response.getContentAsString().indexOf("Error 501 (Cocoon Integration Tests)") > 0);
+    }
+
+    /*
+     * Doesn't work. See https://issues.apache.org/jira/browse/COCOON-2179
+     */
+    public void testExceptionGenerator() throws Exception {
+        for(int i = 0; i < 5; i++) {
+            this.loadResponse("/cocoon-it/error-handling/another-custom-error");
+            int statusCode = this.response.getStatusCode();
+            assertTrue(statusCode == 506);
+        }
+    }
+
+}
diff --git a/cocoon-webapp/cocoon-webapp-2.2.1/src/test/java/org/apache/cocoon/it/sitemap/ExpressionLanguageTest.java b/cocoon-webapp/cocoon-webapp-2.2.1/src/test/java/org/apache/cocoon/it/sitemap/ExpressionLanguageTest.java
new file mode 100644
index 0000000..eb56be2
--- /dev/null
+++ b/cocoon-webapp/cocoon-webapp-2.2.1/src/test/java/org/apache/cocoon/it/sitemap/ExpressionLanguageTest.java
@@ -0,0 +1,67 @@
+package org.apache.cocoon.it.sitemap;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT 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 org.apache.cocoon.tools.it.HtmlUnitTestCase;
+
+/**
+ * Test expression language usage
+ */
+public class ExpressionLanguageTest extends HtmlUnitTestCase {
+
+    /**
+     * JEXL test
+     */
+    public void testJexl() throws Exception {
+        this.loadXmlPage("/cocoon-it/expression-language/jexl?fileName=simple");
+        assertTrue(this.response.getStatusCode() == 200);
+        assertEquals("text/xml", this.response.getContentType());
+        assertXPath("/simple", "simple-text");
+    }
+
+    /**
+     * JXPath test
+     */
+    public void testJXPath() throws Exception {
+        this.loadXmlPage("/cocoon-it/expression-language/jxpath?fileName=simple");
+        assertTrue(this.response.getStatusCode() == 200);
+        assertEquals("text/xml", this.response.getContentType());
+        assertXPath("/simple", "simple-text");
+    }
+
+    /**
+     * Map language test
+     */
+    public void testMap() throws Exception {
+        this.loadXmlPage("/cocoon-it/expression-language/map/simple");
+        assertTrue(this.response.getStatusCode() == 200);
+        assertEquals("text/xml", this.response.getContentType());
+        assertXPath("/simple", "simple-text");
+    }
+
+    /**
+     * Nested matchers/maps
+     */
+    public void testNextedMap() throws Exception {
+        this.loadXmlPage("/cocoon-it/expression-language/nested/simple");
+        assertTrue(this.response.getStatusCode() == 200);
+        assertEquals("text/xml", this.response.getContentType());
+        assertXPath("/simple", "simple-text");
+    }
+
+}
diff --git a/cocoon-webapp/cocoon-webapp-2.2.1/src/test/java/org/apache/cocoon/it/sitemap/ObjectModelTest.java b/cocoon-webapp/cocoon-webapp-2.2.1/src/test/java/org/apache/cocoon/it/sitemap/ObjectModelTest.java
new file mode 100644
index 0000000..22fe9c3
--- /dev/null
+++ b/cocoon-webapp/cocoon-webapp-2.2.1/src/test/java/org/apache/cocoon/it/sitemap/ObjectModelTest.java
@@ -0,0 +1,39 @@
+package org.apache.cocoon.it.sitemap;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT 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 org.apache.cocoon.tools.it.HtmlUnitTestCase;
+import org.custommonkey.xmlunit.Diff;
+
+/**
+ * Test accessing the object model.
+ */
+public class ObjectModelTest extends HtmlUnitTestCase {
+
+    /**
+     * Accessing all request parameters from within a generator.
+     */
+    public void testTemporaryRedirect() throws Exception {
+        this.loadResponse("/cocoon-it/object-model/request-parameters?a=1&b=2&c=3");
+        assertEquals(200, this.response.getStatusCode());
+        String content = this.response.getContentAsString();
+        String expectedContent = "<?xml version=\"1.0\"?><request-paramters><a>1</a><c>3</c><b>2</b></request-paramters>";
+        assertTrue(new Diff(expectedContent, content).similar());
+    }
+
+}
diff --git a/cocoon-webapp/cocoon-webapp-2.2.1/src/test/java/org/apache/cocoon/it/sitemap/ParameterPassing.java b/cocoon-webapp/cocoon-webapp-2.2.1/src/test/java/org/apache/cocoon/it/sitemap/ParameterPassing.java
new file mode 100644
index 0000000..88c26b1
--- /dev/null
+++ b/cocoon-webapp/cocoon-webapp-2.2.1/src/test/java/org/apache/cocoon/it/sitemap/ParameterPassing.java
@@ -0,0 +1,47 @@
+package org.apache.cocoon.it.sitemap;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT 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 org.apache.cocoon.tools.it.HtmlUnitTestCase;
+
+/**
+ * Test passing parameters.
+ */
+public class ParameterPassing extends HtmlUnitTestCase {
+
+    /**
+     * Passing parameters from a matcher to the sitemap.
+     */
+    public void testPassingParamatersFromMatcherToSitemap() throws Exception {
+        this.loadXmlPage("/cocoon-it/parameter-passing/working");
+        assertTrue(this.response.getStatusCode() == 200);
+        assertEquals("text/xml", this.response.getContentType());
+        assertXPath("/simple", "simple-text");
+    }
+
+    /**
+     * Passing null from a matcher to the sitemap (-> doesn't match)
+     */
+    public void testPassingNullMatcherToSitemap() throws Exception {
+        this.webClient.setThrowExceptionOnFailingStatusCode(false);
+        this.loadResponse("/cocoon-it/parameter-passing/failing");
+        this.loadResponse("/cocoon-it/parameter-passing/failing");
+        assertTrue(this.response.getStatusCode() == 404);
+    }
+
+}
diff --git a/cocoon-webapp/cocoon-webapp-2.2.1/src/test/java/org/apache/cocoon/it/sitemap/ReaderTest.java b/cocoon-webapp/cocoon-webapp-2.2.1/src/test/java/org/apache/cocoon/it/sitemap/ReaderTest.java
new file mode 100644
index 0000000..4c93ce0
--- /dev/null
+++ b/cocoon-webapp/cocoon-webapp-2.2.1/src/test/java/org/apache/cocoon/it/sitemap/ReaderTest.java
@@ -0,0 +1,57 @@
+package org.apache.cocoon.it.sitemap;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT 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 org.apache.cocoon.tools.it.HtmlUnitTestCase;
+
+/**
+ * Test readers
+ */
+public class ReaderTest extends HtmlUnitTestCase {
+
+	/**
+	 * Call a pipeline that explicitly sets the mime-type of the resource.
+	 */
+    public void testReadingResourceWithExplicitMimeType() throws Exception {
+        this.loadResponse("/cocoon-it/read/javascript-resource-explicit");
+        assertTrue(this.response.getStatusCode() == 200);
+        assertEquals("text/javascript", this.response.getContentType());
+        assertEquals("853", this.response.getResponseHeaderValue("Content-Length"));
+    }
+
+    /**
+     * Call a pipeline that automatically sets the mime-type of the resource.
+     */
+    public void testReadingResourceWithImplicitMimeType() throws Exception {
+    	this.loadResponse("/cocoon-it/read/javascript-resource-implicit");
+    	assertTrue(this.response.getStatusCode() == 200);
+    	assertEquals("application/x-javascript", this.response.getContentType());
+    }
+
+    /**
+     * A resource reader supports conditional gets.
+     */
+    public void testConditionalGet() throws Exception {
+    	this.loadResponse("/cocoon-it/read/javascript-resource-implicit");
+    	String lastModified = this.response.getResponseHeaderValue("Last-Modified");
+    	this.webClient.addRequestHeader("If-Modified-Since", lastModified);
+    	this.loadResponse("/cocoon-it/read/javascript-resource-implicit");
+    	assertEquals(304, this.response.getStatusCode());
+    }
+
+}
diff --git a/cocoon-webapp/cocoon-webapp-2.2.1/src/test/java/org/apache/cocoon/it/sitemap/RedirectTest.java b/cocoon-webapp/cocoon-webapp-2.2.1/src/test/java/org/apache/cocoon/it/sitemap/RedirectTest.java
new file mode 100644
index 0000000..47cc55c
--- /dev/null
+++ b/cocoon-webapp/cocoon-webapp-2.2.1/src/test/java/org/apache/cocoon/it/sitemap/RedirectTest.java
@@ -0,0 +1,36 @@
+package org.apache.cocoon.it.sitemap;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT 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 org.apache.cocoon.tools.it.HtmlUnitTestCase;
+
+/**
+ * Test redirecting
+ */
+public class RedirectTest extends HtmlUnitTestCase {
+
+    /**
+     * A temporary redirect
+     */
+    public void testTemporaryRedirect() throws Exception {
+        this.loadResponse("/cocoon-it/redirect/www.orf.at");
+        assertEquals(302, this.response.getStatusCode());
+        assertEquals("http://www.orf.at", this.response.getResponseHeaderValue("Location"));
+    }
+
+}
diff --git a/cocoon-webapp/cocoon-webapp-2.2.1/src/test/java/org/apache/cocoon/it/sitemap/SaxPipelineTest.java b/cocoon-webapp/cocoon-webapp-2.2.1/src/test/java/org/apache/cocoon/it/sitemap/SaxPipelineTest.java
new file mode 100644
index 0000000..9dbf53a
--- /dev/null
+++ b/cocoon-webapp/cocoon-webapp-2.2.1/src/test/java/org/apache/cocoon/it/sitemap/SaxPipelineTest.java
@@ -0,0 +1,73 @@
+package org.apache.cocoon.it.sitemap;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT 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 org.apache.cocoon.tools.it.HtmlUnitTestCase;
+
+/**
+ * Test SAX Pipelines
+ */
+public class SaxPipelineTest extends HtmlUnitTestCase {
+
+    /**
+     * A simple pipeline that produces an HTML document.
+     */
+    public void testSimplePipeline() throws Exception {
+        this.loadResponse("/cocoon-it/sax-pipeline/simple");
+        assertTrue(this.response.getStatusCode() == 200);
+        assertEquals("text/html", this.response.getContentType());
+        assertTrue(this.response.getContentAsString().indexOf("-//W3C//DTD XHTML 1.0 Strict//EN") == -1);
+    }
+
+    /**
+     * A simple pipeline that produces an XHTML 1.0 document. This implicitly
+     * tests if the configuration of serializers works properly.
+     */
+    public void testSimplePipelineXhtml() throws Exception {
+        this.loadResponse("/cocoon-it/sax-pipeline/simple-xhtml");
+        assertTrue(this.response.getStatusCode() == 200);
+        assertEquals("text/html", this.response.getContentType());
+        assertTrue(this.response.getContentAsString().indexOf("-//W3C//DTD XHTML 1.0 Strict//EN") > 0);
+    }
+
+    /**
+     * A parameter is passed to an XSLT transformer.
+     */
+    public void testSimplePipelineParameterPassingToTransformer() throws Exception {
+        this.loadXmlPage("/cocoon-it/sax-pipeline/simple-xml");
+        assertTrue(this.response.getStatusCode() == 200);
+        assertEquals("text/xml", this.response.getContentType());
+        assertXPath("/html/body/p", "3");
+    }
+
+    /**
+     * A status code is set explicitly at a serializer.
+     */
+    public void testSettingStatusCode() throws Exception {
+        // load this resource twice because the first time when a pipeline that
+        // doesn't set the status code 200, is being invoked, 200 is returned
+        this.loadResponse("/cocoon-it/sax-pipeline/unauthorized");
+        this.loadResponse("/cocoon-it/sax-pipeline/unauthorized");
+        int statusCode = this.response.getStatusCode();
+        assertTrue(statusCode == 401);
+        String lastModified = this.response.getResponseHeaderValue("Last-Modified");
+        assertNotNull(lastModified);
+        assertFalse(lastModified.equals(""));
+    }
+
+}
diff --git a/cocoon-webapp/cocoon-webapp-2.2.1/src/test/java/org/apache/cocoon/it/sitemap/SerletScopeTest.java b/cocoon-webapp/cocoon-webapp-2.2.1/src/test/java/org/apache/cocoon/it/sitemap/SerletScopeTest.java
new file mode 100644
index 0000000..f3f0cb7
--- /dev/null
+++ b/cocoon-webapp/cocoon-webapp-2.2.1/src/test/java/org/apache/cocoon/it/sitemap/SerletScopeTest.java
@@ -0,0 +1,36 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.cocoon.it.sitemap;
+
+import javax.servlet.http.HttpServletResponse;
+
+import org.apache.cocoon.tools.it.HtmlUnitTestCase;
+
+public class SerletScopeTest extends HtmlUnitTestCase {
+
+    public void testServletScope() throws Exception {
+        this.loadResponse("/cocoon-it/demo1/setCode?code=300");
+        assertEquals(HttpServletResponse.SC_OK, this.response.getStatusCode());
+        this.loadResponse("/cocoon-it/demo2/setCode?code=301");
+        assertEquals(HttpServletResponse.SC_OK, this.response.getStatusCode());
+
+        this.loadResponse("/cocoon-it/demo1/getCode");
+        assertEquals(300, this.response.getStatusCode());
+        this.loadResponse("/cocoon-it/demo2/getCode");
+        assertEquals(301, this.response.getStatusCode());
+    }
+}
diff --git a/cocoon-webapp/cocoon-webapp-2.2.1/src/test/java/org/apache/cocoon/it/sitemap/ServletServiceTest.java b/cocoon-webapp/cocoon-webapp-2.2.1/src/test/java/org/apache/cocoon/it/sitemap/ServletServiceTest.java
new file mode 100644
index 0000000..8c48243
--- /dev/null
+++ b/cocoon-webapp/cocoon-webapp-2.2.1/src/test/java/org/apache/cocoon/it/sitemap/ServletServiceTest.java
@@ -0,0 +1,37 @@
+package org.apache.cocoon.it.sitemap;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT 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 org.apache.cocoon.tools.it.HtmlUnitTestCase;
+
+/**
+ * Test the usage of servlet services in Cocoon sitemaps.
+ */
+public class ServletServiceTest extends HtmlUnitTestCase {
+
+    /**
+     * A parameter is passed to an XSLT transformer.
+     */
+    public void testSimplePipelineParameterPassingToTransformer() throws Exception {
+        this.loadXmlPage("/cocoon-it/ssf/local");
+        assertTrue(this.response.getStatusCode() == 200);
+        assertEquals("text/xml", this.response.getContentType());
+        assertXPath("/html/body/p", "3");
+    }
+
+}
diff --git a/cocoon-webapp/cocoon-webapp-2.2.1/src/test/java/org/apache/cocoon/it/sitemap/XSLTTest.java b/cocoon-webapp/cocoon-webapp-2.2.1/src/test/java/org/apache/cocoon/it/sitemap/XSLTTest.java
new file mode 100644
index 0000000..98851f6
--- /dev/null
+++ b/cocoon-webapp/cocoon-webapp-2.2.1/src/test/java/org/apache/cocoon/it/sitemap/XSLTTest.java
@@ -0,0 +1,39 @@
+package org.apache.cocoon.it.sitemap;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT 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 org.apache.cocoon.tools.it.HtmlUnitTestCase;
+
+/**
+ * Test XSLT transformation.
+ */
+public class XSLTTest extends HtmlUnitTestCase {
+
+    /**
+     * Use an XSLT that includes sub stylesheets using the file and the servlet
+     * protocol.
+     */
+    public void testXSLTTransformation() throws Exception {
+        this.loadXmlPage("/cocoon-it/xslt/main");
+        assertTrue(this.response.getStatusCode() == 200);
+        assertEquals("text/xml", this.response.getContentType());
+        assertXPath("/xslt/servlet", "servlet");
+        assertXPath("/xslt/file", "file");
+    }
+
+}