You are viewing a plain text version of this content. The canonical link for it is here.
Posted to pluto-scm@portals.apache.org by ms...@apache.org on 2014/08/14 15:23:38 UTC

[03/48] git commit: Added generated servlets to dispatcher tests

Added generated servlets to dispatcher tests


Project: http://git-wip-us.apache.org/repos/asf/portals-pluto/repo
Commit: http://git-wip-us.apache.org/repos/asf/portals-pluto/commit/574abc68
Tree: http://git-wip-us.apache.org/repos/asf/portals-pluto/tree/574abc68
Diff: http://git-wip-us.apache.org/repos/asf/portals-pluto/diff/574abc68

Branch: refs/heads/master
Commit: 574abc6836f9bfc651fc561aa59fbddaff2ef523
Parents: 1adcbc0
Author: Scott Nicklous <ms...@apache.org>
Authored: Tue Aug 5 13:29:15 2014 +0200
Committer: Scott Nicklous <ms...@apache.org>
Committed: Tue Aug 5 13:29:15 2014 +0200

----------------------------------------------------------------------
 portlet-tck_3.0/V2DispatcherTests/pom.xml       |   4 +
 ...s_SPEC2_19_DispatchForwardServletAction.java |   2 +-
 ...ts_SPEC2_19_DispatchForwardServletEvent.java |   2 +-
 ...s_SPEC2_19_DispatchForwardServletRender.java |   2 +-
 ...SPEC2_19_DispatchForwardServletResource.java |   2 +-
 ...s_SPEC2_19_DispatchIncludeServletAction.java |   2 +-
 ...ts_SPEC2_19_DispatchIncludeServletEvent.java |   2 +-
 ...s_SPEC2_19_DispatchIncludeServletRender.java |   2 +-
 ...SPEC2_19_DispatchIncludeServletResource.java |   2 +-
 ...19_DispatchForwardServletAction_servlet.java |  76 +++++++++++
 ..._19_DispatchForwardServletEvent_servlet.java |  76 +++++++++++
 ...19_DispatchForwardServletRender_servlet.java |  76 +++++++++++
 ..._DispatchForwardServletResource_servlet.java |  76 +++++++++++
 ...SPEC2_19_DispatchForwardServlet_servlet.java |  76 +++++++++++
 ...19_DispatchIncludeServletAction_servlet.java |  76 +++++++++++
 ..._19_DispatchIncludeServletEvent_servlet.java |  76 +++++++++++
 ...19_DispatchIncludeServletRender_servlet.java |  76 +++++++++++
 ..._DispatchIncludeServletResource_servlet.java |  76 +++++++++++
 ...SPEC2_19_DispatchIncludeServlet_servlet.java |  76 +++++++++++
 .../src/main/webapp/WEB-INF/web.xml             | 130 +++++++++++++++++++
 .../beans/JSR286DispatcherTestCaseDetails.java  |  16 +--
 21 files changed, 910 insertions(+), 16 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/portals-pluto/blob/574abc68/portlet-tck_3.0/V2DispatcherTests/pom.xml
----------------------------------------------------------------------
diff --git a/portlet-tck_3.0/V2DispatcherTests/pom.xml b/portlet-tck_3.0/V2DispatcherTests/pom.xml
index 1ffd176..c8743e6 100644
--- a/portlet-tck_3.0/V2DispatcherTests/pom.xml
+++ b/portlet-tck_3.0/V2DispatcherTests/pom.xml
@@ -35,6 +35,10 @@
          <artifactId>portlet-api</artifactId>
       </dependency>
       <dependency>
+         <groupId>javax.servlet</groupId>
+         <artifactId>servlet-api</artifactId>
+      </dependency>
+      <dependency>
          <groupId>javax.portlet</groupId>
          <artifactId>tck-common</artifactId>
          <version>${project.version}</version>

http://git-wip-us.apache.org/repos/asf/portals-pluto/blob/574abc68/portlet-tck_3.0/V2DispatcherTests/src/main/java/javax/portlet/tck/portlets/DispatcherTests_SPEC2_19_DispatchForwardServletAction.java
----------------------------------------------------------------------
diff --git a/portlet-tck_3.0/V2DispatcherTests/src/main/java/javax/portlet/tck/portlets/DispatcherTests_SPEC2_19_DispatchForwardServletAction.java b/portlet-tck_3.0/V2DispatcherTests/src/main/java/javax/portlet/tck/portlets/DispatcherTests_SPEC2_19_DispatchForwardServletAction.java
index f6b2e85..5e298a8 100644
--- a/portlet-tck_3.0/V2DispatcherTests/src/main/java/javax/portlet/tck/portlets/DispatcherTests_SPEC2_19_DispatchForwardServletAction.java
+++ b/portlet-tck_3.0/V2DispatcherTests/src/main/java/javax/portlet/tck/portlets/DispatcherTests_SPEC2_19_DispatchForwardServletAction.java
@@ -99,7 +99,7 @@ public class DispatcherTests_SPEC2_19_DispatchForwardServletAction implements Po
       /* Details: "If the request dispatcher is obtained through the          */
       /* getRequestDispatcher method, the request attribute                   */
       /* javax.servlet.forward.servlet_path will be set, and equals the       */
-      /* value from HTTPServletRequest.getSerletPath for the first servlet    */
+      /* value from HTTPServletRequest.getServletPath for the first servlet   */
       /* in the forward chain"                                                */
       TestResult tr2 = tcd.getTestResultFailed(SPEC2_19_DISPATCHFORWARDSERVLETACTION_ATTRIBUTES3);
       /* TODO: implement test */

http://git-wip-us.apache.org/repos/asf/portals-pluto/blob/574abc68/portlet-tck_3.0/V2DispatcherTests/src/main/java/javax/portlet/tck/portlets/DispatcherTests_SPEC2_19_DispatchForwardServletEvent.java
----------------------------------------------------------------------
diff --git a/portlet-tck_3.0/V2DispatcherTests/src/main/java/javax/portlet/tck/portlets/DispatcherTests_SPEC2_19_DispatchForwardServletEvent.java b/portlet-tck_3.0/V2DispatcherTests/src/main/java/javax/portlet/tck/portlets/DispatcherTests_SPEC2_19_DispatchForwardServletEvent.java
index 9f60261..f846746 100644
--- a/portlet-tck_3.0/V2DispatcherTests/src/main/java/javax/portlet/tck/portlets/DispatcherTests_SPEC2_19_DispatchForwardServletEvent.java
+++ b/portlet-tck_3.0/V2DispatcherTests/src/main/java/javax/portlet/tck/portlets/DispatcherTests_SPEC2_19_DispatchForwardServletEvent.java
@@ -99,7 +99,7 @@ public class DispatcherTests_SPEC2_19_DispatchForwardServletEvent implements Por
       /* Details: "If the request dispatcher is obtained through the          */
       /* getRequestDispatcher method, the request attribute                   */
       /* javax.servlet.forward.servlet_path will be set, and equals the       */
-      /* value from HTTPServletRequest.getSerletPath for the first servlet    */
+      /* value from HTTPServletRequest.getServletPath for the first servlet   */
       /* in the forward chain"                                                */
       TestResult tr2 = tcd.getTestResultFailed(SPEC2_19_DISPATCHFORWARDSERVLETEVENT_ATTRIBUTES3);
       /* TODO: implement test */

http://git-wip-us.apache.org/repos/asf/portals-pluto/blob/574abc68/portlet-tck_3.0/V2DispatcherTests/src/main/java/javax/portlet/tck/portlets/DispatcherTests_SPEC2_19_DispatchForwardServletRender.java
----------------------------------------------------------------------
diff --git a/portlet-tck_3.0/V2DispatcherTests/src/main/java/javax/portlet/tck/portlets/DispatcherTests_SPEC2_19_DispatchForwardServletRender.java b/portlet-tck_3.0/V2DispatcherTests/src/main/java/javax/portlet/tck/portlets/DispatcherTests_SPEC2_19_DispatchForwardServletRender.java
index 29d2884..5e87b73 100644
--- a/portlet-tck_3.0/V2DispatcherTests/src/main/java/javax/portlet/tck/portlets/DispatcherTests_SPEC2_19_DispatchForwardServletRender.java
+++ b/portlet-tck_3.0/V2DispatcherTests/src/main/java/javax/portlet/tck/portlets/DispatcherTests_SPEC2_19_DispatchForwardServletRender.java
@@ -99,7 +99,7 @@ public class DispatcherTests_SPEC2_19_DispatchForwardServletRender implements Po
       /* Details: "If the request dispatcher is obtained through the          */
       /* getRequestDispatcher method, the request attribute                   */
       /* javax.servlet.forward.servlet_path will be set, and equals the       */
-      /* value from HTTPServletRequest.getSerletPath for the first servlet    */
+      /* value from HTTPServletRequest.getServletPath for the first servlet   */
       /* in the forward chain"                                                */
       TestResult tr2 = tcd.getTestResultFailed(SPEC2_19_DISPATCHFORWARDSERVLETRENDER_ATTRIBUTES3);
       /* TODO: implement test */

http://git-wip-us.apache.org/repos/asf/portals-pluto/blob/574abc68/portlet-tck_3.0/V2DispatcherTests/src/main/java/javax/portlet/tck/portlets/DispatcherTests_SPEC2_19_DispatchForwardServletResource.java
----------------------------------------------------------------------
diff --git a/portlet-tck_3.0/V2DispatcherTests/src/main/java/javax/portlet/tck/portlets/DispatcherTests_SPEC2_19_DispatchForwardServletResource.java b/portlet-tck_3.0/V2DispatcherTests/src/main/java/javax/portlet/tck/portlets/DispatcherTests_SPEC2_19_DispatchForwardServletResource.java
index 9b883ee..d44f913 100644
--- a/portlet-tck_3.0/V2DispatcherTests/src/main/java/javax/portlet/tck/portlets/DispatcherTests_SPEC2_19_DispatchForwardServletResource.java
+++ b/portlet-tck_3.0/V2DispatcherTests/src/main/java/javax/portlet/tck/portlets/DispatcherTests_SPEC2_19_DispatchForwardServletResource.java
@@ -99,7 +99,7 @@ public class DispatcherTests_SPEC2_19_DispatchForwardServletResource implements
       /* Details: "If the request dispatcher is obtained through the          */
       /* getRequestDispatcher method, the request attribute                   */
       /* javax.servlet.forward.servlet_path will be set, and equals the       */
-      /* value from HTTPServletRequest.getSerletPath for the first servlet    */
+      /* value from HTTPServletRequest.getServletPath for the first servlet   */
       /* in the forward chain"                                                */
       TestResult tr2 = tcd.getTestResultFailed(SPEC2_19_DISPATCHFORWARDSERVLETRESOURCE_ATTRIBUTES3);
       /* TODO: implement test */

http://git-wip-us.apache.org/repos/asf/portals-pluto/blob/574abc68/portlet-tck_3.0/V2DispatcherTests/src/main/java/javax/portlet/tck/portlets/DispatcherTests_SPEC2_19_DispatchIncludeServletAction.java
----------------------------------------------------------------------
diff --git a/portlet-tck_3.0/V2DispatcherTests/src/main/java/javax/portlet/tck/portlets/DispatcherTests_SPEC2_19_DispatchIncludeServletAction.java b/portlet-tck_3.0/V2DispatcherTests/src/main/java/javax/portlet/tck/portlets/DispatcherTests_SPEC2_19_DispatchIncludeServletAction.java
index bc89e45..5b30110 100644
--- a/portlet-tck_3.0/V2DispatcherTests/src/main/java/javax/portlet/tck/portlets/DispatcherTests_SPEC2_19_DispatchIncludeServletAction.java
+++ b/portlet-tck_3.0/V2DispatcherTests/src/main/java/javax/portlet/tck/portlets/DispatcherTests_SPEC2_19_DispatchIncludeServletAction.java
@@ -99,7 +99,7 @@ public class DispatcherTests_SPEC2_19_DispatchIncludeServletAction implements Po
       /* Details: "If the request dispatcher is obtained through the          */
       /* getRequestDispatcher method, the request attribute                   */
       /* javax.servlet.include.servlet_path will be set, and equals the       */
-      /* value from HTTPServletRequest.getSerletPath for the first servlet    */
+      /* value from HTTPServletRequest.getServletPath for the first servlet   */
       /* in the include chain"                                                */
       TestResult tr2 = tcd.getTestResultFailed(SPEC2_19_DISPATCHINCLUDESERVLETACTION_ATTRIBUTES3);
       /* TODO: implement test */

http://git-wip-us.apache.org/repos/asf/portals-pluto/blob/574abc68/portlet-tck_3.0/V2DispatcherTests/src/main/java/javax/portlet/tck/portlets/DispatcherTests_SPEC2_19_DispatchIncludeServletEvent.java
----------------------------------------------------------------------
diff --git a/portlet-tck_3.0/V2DispatcherTests/src/main/java/javax/portlet/tck/portlets/DispatcherTests_SPEC2_19_DispatchIncludeServletEvent.java b/portlet-tck_3.0/V2DispatcherTests/src/main/java/javax/portlet/tck/portlets/DispatcherTests_SPEC2_19_DispatchIncludeServletEvent.java
index 78a0ab7..fa35a19 100644
--- a/portlet-tck_3.0/V2DispatcherTests/src/main/java/javax/portlet/tck/portlets/DispatcherTests_SPEC2_19_DispatchIncludeServletEvent.java
+++ b/portlet-tck_3.0/V2DispatcherTests/src/main/java/javax/portlet/tck/portlets/DispatcherTests_SPEC2_19_DispatchIncludeServletEvent.java
@@ -99,7 +99,7 @@ public class DispatcherTests_SPEC2_19_DispatchIncludeServletEvent implements Por
       /* Details: "If the request dispatcher is obtained through the          */
       /* getRequestDispatcher method, the request attribute                   */
       /* javax.servlet.include.servlet_path will be set, and equals the       */
-      /* value from HTTPServletRequest.getSerletPath for the first servlet    */
+      /* value from HTTPServletRequest.getServletPath for the first servlet   */
       /* in the include chain"                                                */
       TestResult tr2 = tcd.getTestResultFailed(SPEC2_19_DISPATCHINCLUDESERVLETEVENT_ATTRIBUTES3);
       /* TODO: implement test */

http://git-wip-us.apache.org/repos/asf/portals-pluto/blob/574abc68/portlet-tck_3.0/V2DispatcherTests/src/main/java/javax/portlet/tck/portlets/DispatcherTests_SPEC2_19_DispatchIncludeServletRender.java
----------------------------------------------------------------------
diff --git a/portlet-tck_3.0/V2DispatcherTests/src/main/java/javax/portlet/tck/portlets/DispatcherTests_SPEC2_19_DispatchIncludeServletRender.java b/portlet-tck_3.0/V2DispatcherTests/src/main/java/javax/portlet/tck/portlets/DispatcherTests_SPEC2_19_DispatchIncludeServletRender.java
index 4e3af9a..c9f329d 100644
--- a/portlet-tck_3.0/V2DispatcherTests/src/main/java/javax/portlet/tck/portlets/DispatcherTests_SPEC2_19_DispatchIncludeServletRender.java
+++ b/portlet-tck_3.0/V2DispatcherTests/src/main/java/javax/portlet/tck/portlets/DispatcherTests_SPEC2_19_DispatchIncludeServletRender.java
@@ -99,7 +99,7 @@ public class DispatcherTests_SPEC2_19_DispatchIncludeServletRender implements Po
       /* Details: "If the request dispatcher is obtained through the          */
       /* getRequestDispatcher method, the request attribute                   */
       /* javax.servlet.include.servlet_path will be set, and equals the       */
-      /* value from HTTPServletRequest.getSerletPath for the first servlet    */
+      /* value from HTTPServletRequest.getServletPath for the first servlet   */
       /* in the include chain"                                                */
       TestResult tr2 = tcd.getTestResultFailed(SPEC2_19_DISPATCHINCLUDESERVLETRENDER_ATTRIBUTES3);
       /* TODO: implement test */

http://git-wip-us.apache.org/repos/asf/portals-pluto/blob/574abc68/portlet-tck_3.0/V2DispatcherTests/src/main/java/javax/portlet/tck/portlets/DispatcherTests_SPEC2_19_DispatchIncludeServletResource.java
----------------------------------------------------------------------
diff --git a/portlet-tck_3.0/V2DispatcherTests/src/main/java/javax/portlet/tck/portlets/DispatcherTests_SPEC2_19_DispatchIncludeServletResource.java b/portlet-tck_3.0/V2DispatcherTests/src/main/java/javax/portlet/tck/portlets/DispatcherTests_SPEC2_19_DispatchIncludeServletResource.java
index a2c8efb..74a04cc 100644
--- a/portlet-tck_3.0/V2DispatcherTests/src/main/java/javax/portlet/tck/portlets/DispatcherTests_SPEC2_19_DispatchIncludeServletResource.java
+++ b/portlet-tck_3.0/V2DispatcherTests/src/main/java/javax/portlet/tck/portlets/DispatcherTests_SPEC2_19_DispatchIncludeServletResource.java
@@ -99,7 +99,7 @@ public class DispatcherTests_SPEC2_19_DispatchIncludeServletResource implements
       /* Details: "If the request dispatcher is obtained through the          */
       /* getRequestDispatcher method, the request attribute                   */
       /* javax.servlet.include.servlet_path will be set, and equals the       */
-      /* value from HTTPServletRequest.getSerletPath for the first servlet    */
+      /* value from HTTPServletRequest.getServletPath for the first servlet   */
       /* in the include chain"                                                */
       TestResult tr2 = tcd.getTestResultFailed(SPEC2_19_DISPATCHINCLUDESERVLETRESOURCE_ATTRIBUTES3);
       /* TODO: implement test */

http://git-wip-us.apache.org/repos/asf/portals-pluto/blob/574abc68/portlet-tck_3.0/V2DispatcherTests/src/main/java/javax/portlet/tck/servlets/DispatcherTests_SPEC2_19_DispatchForwardServletAction_servlet.java
----------------------------------------------------------------------
diff --git a/portlet-tck_3.0/V2DispatcherTests/src/main/java/javax/portlet/tck/servlets/DispatcherTests_SPEC2_19_DispatchForwardServletAction_servlet.java b/portlet-tck_3.0/V2DispatcherTests/src/main/java/javax/portlet/tck/servlets/DispatcherTests_SPEC2_19_DispatchForwardServletAction_servlet.java
new file mode 100644
index 0000000..be0a92c
--- /dev/null
+++ b/portlet-tck_3.0/V2DispatcherTests/src/main/java/javax/portlet/tck/servlets/DispatcherTests_SPEC2_19_DispatchForwardServletAction_servlet.java
@@ -0,0 +1,76 @@
+/*  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *    http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
+
+
+package javax.portlet.tck.servlets;
+
+import java.io.*;
+import java.util.*;
+import java.util.logging.*;
+import static java.util.logging.Logger.*;
+import javax.portlet.*;
+import javax.portlet.filter.*;
+import javax.servlet.*;
+import javax.servlet.http.*;
+import javax.portlet.tck.beans.*;
+import static javax.portlet.tck.beans.JSR286DispatcherTestCaseDetails.*;
+
+/**
+ * Servlet for JSR 362 request dispatcher testing.
+ * Used by portlet: DispatcherTests_SPEC2_19_DispatchForwardServletAction
+ *
+ * @author nick
+ *
+ */
+public class DispatcherTests_SPEC2_19_DispatchForwardServletAction_servlet extends HttpServlet {
+   private static final String LOG_CLASS = 
+         DispatcherTests_SPEC2_19_DispatchForwardServletAction_servlet.class.getName();
+   private final Logger LOGGER = Logger.getLogger(LOG_CLASS);
+
+   @Override
+   protected void doGet(HttpServletRequest req, HttpServletResponse resp)
+         throws ServletException, IOException {
+      processTCKReq(req, resp);
+   }
+
+   @Override
+   protected void doPost(HttpServletRequest req, HttpServletResponse resp)
+         throws ServletException, IOException {
+      processTCKReq(req, resp);
+   }
+
+   // The tck uses only get & post requests
+   protected void processTCKReq(HttpServletRequest request, HttpServletResponse response)
+         throws ServletException, IOException {
+      if (LOGGER.isLoggable(Level.FINE)) {
+         LOGGER.logp(Level.FINE, LOG_CLASS, "render", "Entry");
+      }
+
+      StringWriter writer = new StringWriter();
+      JSR286DispatcherTestCaseDetails tcd = new JSR286DispatcherTestCaseDetails();
+
+      writer.write("<hr/>");
+      writer.write("<p>Output from included servlet:</p>");
+
+      // Create result objects for the tests
+
+      response.getWriter().write(writer.toString());
+
+   }
+}
+

http://git-wip-us.apache.org/repos/asf/portals-pluto/blob/574abc68/portlet-tck_3.0/V2DispatcherTests/src/main/java/javax/portlet/tck/servlets/DispatcherTests_SPEC2_19_DispatchForwardServletEvent_servlet.java
----------------------------------------------------------------------
diff --git a/portlet-tck_3.0/V2DispatcherTests/src/main/java/javax/portlet/tck/servlets/DispatcherTests_SPEC2_19_DispatchForwardServletEvent_servlet.java b/portlet-tck_3.0/V2DispatcherTests/src/main/java/javax/portlet/tck/servlets/DispatcherTests_SPEC2_19_DispatchForwardServletEvent_servlet.java
new file mode 100644
index 0000000..b1623a9
--- /dev/null
+++ b/portlet-tck_3.0/V2DispatcherTests/src/main/java/javax/portlet/tck/servlets/DispatcherTests_SPEC2_19_DispatchForwardServletEvent_servlet.java
@@ -0,0 +1,76 @@
+/*  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *    http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
+
+
+package javax.portlet.tck.servlets;
+
+import java.io.*;
+import java.util.*;
+import java.util.logging.*;
+import static java.util.logging.Logger.*;
+import javax.portlet.*;
+import javax.portlet.filter.*;
+import javax.servlet.*;
+import javax.servlet.http.*;
+import javax.portlet.tck.beans.*;
+import static javax.portlet.tck.beans.JSR286DispatcherTestCaseDetails.*;
+
+/**
+ * Servlet for JSR 362 request dispatcher testing.
+ * Used by portlet: DispatcherTests_SPEC2_19_DispatchForwardServletEvent
+ *
+ * @author nick
+ *
+ */
+public class DispatcherTests_SPEC2_19_DispatchForwardServletEvent_servlet extends HttpServlet {
+   private static final String LOG_CLASS = 
+         DispatcherTests_SPEC2_19_DispatchForwardServletEvent_servlet.class.getName();
+   private final Logger LOGGER = Logger.getLogger(LOG_CLASS);
+
+   @Override
+   protected void doGet(HttpServletRequest req, HttpServletResponse resp)
+         throws ServletException, IOException {
+      processTCKReq(req, resp);
+   }
+
+   @Override
+   protected void doPost(HttpServletRequest req, HttpServletResponse resp)
+         throws ServletException, IOException {
+      processTCKReq(req, resp);
+   }
+
+   // The tck uses only get & post requests
+   protected void processTCKReq(HttpServletRequest request, HttpServletResponse response)
+         throws ServletException, IOException {
+      if (LOGGER.isLoggable(Level.FINE)) {
+         LOGGER.logp(Level.FINE, LOG_CLASS, "render", "Entry");
+      }
+
+      StringWriter writer = new StringWriter();
+      JSR286DispatcherTestCaseDetails tcd = new JSR286DispatcherTestCaseDetails();
+
+      writer.write("<hr/>");
+      writer.write("<p>Output from included servlet:</p>");
+
+      // Create result objects for the tests
+
+      response.getWriter().write(writer.toString());
+
+   }
+}
+

http://git-wip-us.apache.org/repos/asf/portals-pluto/blob/574abc68/portlet-tck_3.0/V2DispatcherTests/src/main/java/javax/portlet/tck/servlets/DispatcherTests_SPEC2_19_DispatchForwardServletRender_servlet.java
----------------------------------------------------------------------
diff --git a/portlet-tck_3.0/V2DispatcherTests/src/main/java/javax/portlet/tck/servlets/DispatcherTests_SPEC2_19_DispatchForwardServletRender_servlet.java b/portlet-tck_3.0/V2DispatcherTests/src/main/java/javax/portlet/tck/servlets/DispatcherTests_SPEC2_19_DispatchForwardServletRender_servlet.java
new file mode 100644
index 0000000..7db9609
--- /dev/null
+++ b/portlet-tck_3.0/V2DispatcherTests/src/main/java/javax/portlet/tck/servlets/DispatcherTests_SPEC2_19_DispatchForwardServletRender_servlet.java
@@ -0,0 +1,76 @@
+/*  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *    http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
+
+
+package javax.portlet.tck.servlets;
+
+import java.io.*;
+import java.util.*;
+import java.util.logging.*;
+import static java.util.logging.Logger.*;
+import javax.portlet.*;
+import javax.portlet.filter.*;
+import javax.servlet.*;
+import javax.servlet.http.*;
+import javax.portlet.tck.beans.*;
+import static javax.portlet.tck.beans.JSR286DispatcherTestCaseDetails.*;
+
+/**
+ * Servlet for JSR 362 request dispatcher testing.
+ * Used by portlet: DispatcherTests_SPEC2_19_DispatchForwardServletRender
+ *
+ * @author nick
+ *
+ */
+public class DispatcherTests_SPEC2_19_DispatchForwardServletRender_servlet extends HttpServlet {
+   private static final String LOG_CLASS = 
+         DispatcherTests_SPEC2_19_DispatchForwardServletRender_servlet.class.getName();
+   private final Logger LOGGER = Logger.getLogger(LOG_CLASS);
+
+   @Override
+   protected void doGet(HttpServletRequest req, HttpServletResponse resp)
+         throws ServletException, IOException {
+      processTCKReq(req, resp);
+   }
+
+   @Override
+   protected void doPost(HttpServletRequest req, HttpServletResponse resp)
+         throws ServletException, IOException {
+      processTCKReq(req, resp);
+   }
+
+   // The tck uses only get & post requests
+   protected void processTCKReq(HttpServletRequest request, HttpServletResponse response)
+         throws ServletException, IOException {
+      if (LOGGER.isLoggable(Level.FINE)) {
+         LOGGER.logp(Level.FINE, LOG_CLASS, "render", "Entry");
+      }
+
+      StringWriter writer = new StringWriter();
+      JSR286DispatcherTestCaseDetails tcd = new JSR286DispatcherTestCaseDetails();
+
+      writer.write("<hr/>");
+      writer.write("<p>Output from included servlet:</p>");
+
+      // Create result objects for the tests
+
+      response.getWriter().write(writer.toString());
+
+   }
+}
+

http://git-wip-us.apache.org/repos/asf/portals-pluto/blob/574abc68/portlet-tck_3.0/V2DispatcherTests/src/main/java/javax/portlet/tck/servlets/DispatcherTests_SPEC2_19_DispatchForwardServletResource_servlet.java
----------------------------------------------------------------------
diff --git a/portlet-tck_3.0/V2DispatcherTests/src/main/java/javax/portlet/tck/servlets/DispatcherTests_SPEC2_19_DispatchForwardServletResource_servlet.java b/portlet-tck_3.0/V2DispatcherTests/src/main/java/javax/portlet/tck/servlets/DispatcherTests_SPEC2_19_DispatchForwardServletResource_servlet.java
new file mode 100644
index 0000000..d7a7ee4
--- /dev/null
+++ b/portlet-tck_3.0/V2DispatcherTests/src/main/java/javax/portlet/tck/servlets/DispatcherTests_SPEC2_19_DispatchForwardServletResource_servlet.java
@@ -0,0 +1,76 @@
+/*  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *    http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
+
+
+package javax.portlet.tck.servlets;
+
+import java.io.*;
+import java.util.*;
+import java.util.logging.*;
+import static java.util.logging.Logger.*;
+import javax.portlet.*;
+import javax.portlet.filter.*;
+import javax.servlet.*;
+import javax.servlet.http.*;
+import javax.portlet.tck.beans.*;
+import static javax.portlet.tck.beans.JSR286DispatcherTestCaseDetails.*;
+
+/**
+ * Servlet for JSR 362 request dispatcher testing.
+ * Used by portlet: DispatcherTests_SPEC2_19_DispatchForwardServletResource
+ *
+ * @author nick
+ *
+ */
+public class DispatcherTests_SPEC2_19_DispatchForwardServletResource_servlet extends HttpServlet {
+   private static final String LOG_CLASS = 
+         DispatcherTests_SPEC2_19_DispatchForwardServletResource_servlet.class.getName();
+   private final Logger LOGGER = Logger.getLogger(LOG_CLASS);
+
+   @Override
+   protected void doGet(HttpServletRequest req, HttpServletResponse resp)
+         throws ServletException, IOException {
+      processTCKReq(req, resp);
+   }
+
+   @Override
+   protected void doPost(HttpServletRequest req, HttpServletResponse resp)
+         throws ServletException, IOException {
+      processTCKReq(req, resp);
+   }
+
+   // The tck uses only get & post requests
+   protected void processTCKReq(HttpServletRequest request, HttpServletResponse response)
+         throws ServletException, IOException {
+      if (LOGGER.isLoggable(Level.FINE)) {
+         LOGGER.logp(Level.FINE, LOG_CLASS, "render", "Entry");
+      }
+
+      StringWriter writer = new StringWriter();
+      JSR286DispatcherTestCaseDetails tcd = new JSR286DispatcherTestCaseDetails();
+
+      writer.write("<hr/>");
+      writer.write("<p>Output from included servlet:</p>");
+
+      // Create result objects for the tests
+
+      response.getWriter().write(writer.toString());
+
+   }
+}
+

http://git-wip-us.apache.org/repos/asf/portals-pluto/blob/574abc68/portlet-tck_3.0/V2DispatcherTests/src/main/java/javax/portlet/tck/servlets/DispatcherTests_SPEC2_19_DispatchForwardServlet_servlet.java
----------------------------------------------------------------------
diff --git a/portlet-tck_3.0/V2DispatcherTests/src/main/java/javax/portlet/tck/servlets/DispatcherTests_SPEC2_19_DispatchForwardServlet_servlet.java b/portlet-tck_3.0/V2DispatcherTests/src/main/java/javax/portlet/tck/servlets/DispatcherTests_SPEC2_19_DispatchForwardServlet_servlet.java
new file mode 100644
index 0000000..9f679ca
--- /dev/null
+++ b/portlet-tck_3.0/V2DispatcherTests/src/main/java/javax/portlet/tck/servlets/DispatcherTests_SPEC2_19_DispatchForwardServlet_servlet.java
@@ -0,0 +1,76 @@
+/*  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *    http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
+
+
+package javax.portlet.tck.servlets;
+
+import java.io.*;
+import java.util.*;
+import java.util.logging.*;
+import static java.util.logging.Logger.*;
+import javax.portlet.*;
+import javax.portlet.filter.*;
+import javax.servlet.*;
+import javax.servlet.http.*;
+import javax.portlet.tck.beans.*;
+import static javax.portlet.tck.beans.JSR286DispatcherTestCaseDetails.*;
+
+/**
+ * Servlet for JSR 362 request dispatcher testing.
+ * Used by portlet: DispatcherTests_SPEC2_19_DispatchForwardServlet
+ *
+ * @author nick
+ *
+ */
+public class DispatcherTests_SPEC2_19_DispatchForwardServlet_servlet extends HttpServlet {
+   private static final String LOG_CLASS = 
+         DispatcherTests_SPEC2_19_DispatchForwardServlet_servlet.class.getName();
+   private final Logger LOGGER = Logger.getLogger(LOG_CLASS);
+
+   @Override
+   protected void doGet(HttpServletRequest req, HttpServletResponse resp)
+         throws ServletException, IOException {
+      processTCKReq(req, resp);
+   }
+
+   @Override
+   protected void doPost(HttpServletRequest req, HttpServletResponse resp)
+         throws ServletException, IOException {
+      processTCKReq(req, resp);
+   }
+
+   // The tck uses only get & post requests
+   protected void processTCKReq(HttpServletRequest request, HttpServletResponse response)
+         throws ServletException, IOException {
+      if (LOGGER.isLoggable(Level.FINE)) {
+         LOGGER.logp(Level.FINE, LOG_CLASS, "render", "Entry");
+      }
+
+      StringWriter writer = new StringWriter();
+      JSR286DispatcherTestCaseDetails tcd = new JSR286DispatcherTestCaseDetails();
+
+      writer.write("<hr/>");
+      writer.write("<p>Output from included servlet:</p>");
+
+      // Create result objects for the tests
+
+      response.getWriter().write(writer.toString());
+
+   }
+}
+

http://git-wip-us.apache.org/repos/asf/portals-pluto/blob/574abc68/portlet-tck_3.0/V2DispatcherTests/src/main/java/javax/portlet/tck/servlets/DispatcherTests_SPEC2_19_DispatchIncludeServletAction_servlet.java
----------------------------------------------------------------------
diff --git a/portlet-tck_3.0/V2DispatcherTests/src/main/java/javax/portlet/tck/servlets/DispatcherTests_SPEC2_19_DispatchIncludeServletAction_servlet.java b/portlet-tck_3.0/V2DispatcherTests/src/main/java/javax/portlet/tck/servlets/DispatcherTests_SPEC2_19_DispatchIncludeServletAction_servlet.java
new file mode 100644
index 0000000..2d55c39
--- /dev/null
+++ b/portlet-tck_3.0/V2DispatcherTests/src/main/java/javax/portlet/tck/servlets/DispatcherTests_SPEC2_19_DispatchIncludeServletAction_servlet.java
@@ -0,0 +1,76 @@
+/*  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *    http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
+
+
+package javax.portlet.tck.servlets;
+
+import java.io.*;
+import java.util.*;
+import java.util.logging.*;
+import static java.util.logging.Logger.*;
+import javax.portlet.*;
+import javax.portlet.filter.*;
+import javax.servlet.*;
+import javax.servlet.http.*;
+import javax.portlet.tck.beans.*;
+import static javax.portlet.tck.beans.JSR286DispatcherTestCaseDetails.*;
+
+/**
+ * Servlet for JSR 362 request dispatcher testing.
+ * Used by portlet: DispatcherTests_SPEC2_19_DispatchIncludeServletAction
+ *
+ * @author nick
+ *
+ */
+public class DispatcherTests_SPEC2_19_DispatchIncludeServletAction_servlet extends HttpServlet {
+   private static final String LOG_CLASS = 
+         DispatcherTests_SPEC2_19_DispatchIncludeServletAction_servlet.class.getName();
+   private final Logger LOGGER = Logger.getLogger(LOG_CLASS);
+
+   @Override
+   protected void doGet(HttpServletRequest req, HttpServletResponse resp)
+         throws ServletException, IOException {
+      processTCKReq(req, resp);
+   }
+
+   @Override
+   protected void doPost(HttpServletRequest req, HttpServletResponse resp)
+         throws ServletException, IOException {
+      processTCKReq(req, resp);
+   }
+
+   // The tck uses only get & post requests
+   protected void processTCKReq(HttpServletRequest request, HttpServletResponse response)
+         throws ServletException, IOException {
+      if (LOGGER.isLoggable(Level.FINE)) {
+         LOGGER.logp(Level.FINE, LOG_CLASS, "render", "Entry");
+      }
+
+      StringWriter writer = new StringWriter();
+      JSR286DispatcherTestCaseDetails tcd = new JSR286DispatcherTestCaseDetails();
+
+      writer.write("<hr/>");
+      writer.write("<p>Output from included servlet:</p>");
+
+      // Create result objects for the tests
+
+      response.getWriter().write(writer.toString());
+
+   }
+}
+

http://git-wip-us.apache.org/repos/asf/portals-pluto/blob/574abc68/portlet-tck_3.0/V2DispatcherTests/src/main/java/javax/portlet/tck/servlets/DispatcherTests_SPEC2_19_DispatchIncludeServletEvent_servlet.java
----------------------------------------------------------------------
diff --git a/portlet-tck_3.0/V2DispatcherTests/src/main/java/javax/portlet/tck/servlets/DispatcherTests_SPEC2_19_DispatchIncludeServletEvent_servlet.java b/portlet-tck_3.0/V2DispatcherTests/src/main/java/javax/portlet/tck/servlets/DispatcherTests_SPEC2_19_DispatchIncludeServletEvent_servlet.java
new file mode 100644
index 0000000..e77becf
--- /dev/null
+++ b/portlet-tck_3.0/V2DispatcherTests/src/main/java/javax/portlet/tck/servlets/DispatcherTests_SPEC2_19_DispatchIncludeServletEvent_servlet.java
@@ -0,0 +1,76 @@
+/*  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *    http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
+
+
+package javax.portlet.tck.servlets;
+
+import java.io.*;
+import java.util.*;
+import java.util.logging.*;
+import static java.util.logging.Logger.*;
+import javax.portlet.*;
+import javax.portlet.filter.*;
+import javax.servlet.*;
+import javax.servlet.http.*;
+import javax.portlet.tck.beans.*;
+import static javax.portlet.tck.beans.JSR286DispatcherTestCaseDetails.*;
+
+/**
+ * Servlet for JSR 362 request dispatcher testing.
+ * Used by portlet: DispatcherTests_SPEC2_19_DispatchIncludeServletEvent
+ *
+ * @author nick
+ *
+ */
+public class DispatcherTests_SPEC2_19_DispatchIncludeServletEvent_servlet extends HttpServlet {
+   private static final String LOG_CLASS = 
+         DispatcherTests_SPEC2_19_DispatchIncludeServletEvent_servlet.class.getName();
+   private final Logger LOGGER = Logger.getLogger(LOG_CLASS);
+
+   @Override
+   protected void doGet(HttpServletRequest req, HttpServletResponse resp)
+         throws ServletException, IOException {
+      processTCKReq(req, resp);
+   }
+
+   @Override
+   protected void doPost(HttpServletRequest req, HttpServletResponse resp)
+         throws ServletException, IOException {
+      processTCKReq(req, resp);
+   }
+
+   // The tck uses only get & post requests
+   protected void processTCKReq(HttpServletRequest request, HttpServletResponse response)
+         throws ServletException, IOException {
+      if (LOGGER.isLoggable(Level.FINE)) {
+         LOGGER.logp(Level.FINE, LOG_CLASS, "render", "Entry");
+      }
+
+      StringWriter writer = new StringWriter();
+      JSR286DispatcherTestCaseDetails tcd = new JSR286DispatcherTestCaseDetails();
+
+      writer.write("<hr/>");
+      writer.write("<p>Output from included servlet:</p>");
+
+      // Create result objects for the tests
+
+      response.getWriter().write(writer.toString());
+
+   }
+}
+

http://git-wip-us.apache.org/repos/asf/portals-pluto/blob/574abc68/portlet-tck_3.0/V2DispatcherTests/src/main/java/javax/portlet/tck/servlets/DispatcherTests_SPEC2_19_DispatchIncludeServletRender_servlet.java
----------------------------------------------------------------------
diff --git a/portlet-tck_3.0/V2DispatcherTests/src/main/java/javax/portlet/tck/servlets/DispatcherTests_SPEC2_19_DispatchIncludeServletRender_servlet.java b/portlet-tck_3.0/V2DispatcherTests/src/main/java/javax/portlet/tck/servlets/DispatcherTests_SPEC2_19_DispatchIncludeServletRender_servlet.java
new file mode 100644
index 0000000..5c03e40
--- /dev/null
+++ b/portlet-tck_3.0/V2DispatcherTests/src/main/java/javax/portlet/tck/servlets/DispatcherTests_SPEC2_19_DispatchIncludeServletRender_servlet.java
@@ -0,0 +1,76 @@
+/*  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *    http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
+
+
+package javax.portlet.tck.servlets;
+
+import java.io.*;
+import java.util.*;
+import java.util.logging.*;
+import static java.util.logging.Logger.*;
+import javax.portlet.*;
+import javax.portlet.filter.*;
+import javax.servlet.*;
+import javax.servlet.http.*;
+import javax.portlet.tck.beans.*;
+import static javax.portlet.tck.beans.JSR286DispatcherTestCaseDetails.*;
+
+/**
+ * Servlet for JSR 362 request dispatcher testing.
+ * Used by portlet: DispatcherTests_SPEC2_19_DispatchIncludeServletRender
+ *
+ * @author nick
+ *
+ */
+public class DispatcherTests_SPEC2_19_DispatchIncludeServletRender_servlet extends HttpServlet {
+   private static final String LOG_CLASS = 
+         DispatcherTests_SPEC2_19_DispatchIncludeServletRender_servlet.class.getName();
+   private final Logger LOGGER = Logger.getLogger(LOG_CLASS);
+
+   @Override
+   protected void doGet(HttpServletRequest req, HttpServletResponse resp)
+         throws ServletException, IOException {
+      processTCKReq(req, resp);
+   }
+
+   @Override
+   protected void doPost(HttpServletRequest req, HttpServletResponse resp)
+         throws ServletException, IOException {
+      processTCKReq(req, resp);
+   }
+
+   // The tck uses only get & post requests
+   protected void processTCKReq(HttpServletRequest request, HttpServletResponse response)
+         throws ServletException, IOException {
+      if (LOGGER.isLoggable(Level.FINE)) {
+         LOGGER.logp(Level.FINE, LOG_CLASS, "render", "Entry");
+      }
+
+      StringWriter writer = new StringWriter();
+      JSR286DispatcherTestCaseDetails tcd = new JSR286DispatcherTestCaseDetails();
+
+      writer.write("<hr/>");
+      writer.write("<p>Output from included servlet:</p>");
+
+      // Create result objects for the tests
+
+      response.getWriter().write(writer.toString());
+
+   }
+}
+

http://git-wip-us.apache.org/repos/asf/portals-pluto/blob/574abc68/portlet-tck_3.0/V2DispatcherTests/src/main/java/javax/portlet/tck/servlets/DispatcherTests_SPEC2_19_DispatchIncludeServletResource_servlet.java
----------------------------------------------------------------------
diff --git a/portlet-tck_3.0/V2DispatcherTests/src/main/java/javax/portlet/tck/servlets/DispatcherTests_SPEC2_19_DispatchIncludeServletResource_servlet.java b/portlet-tck_3.0/V2DispatcherTests/src/main/java/javax/portlet/tck/servlets/DispatcherTests_SPEC2_19_DispatchIncludeServletResource_servlet.java
new file mode 100644
index 0000000..cea37af
--- /dev/null
+++ b/portlet-tck_3.0/V2DispatcherTests/src/main/java/javax/portlet/tck/servlets/DispatcherTests_SPEC2_19_DispatchIncludeServletResource_servlet.java
@@ -0,0 +1,76 @@
+/*  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *    http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
+
+
+package javax.portlet.tck.servlets;
+
+import java.io.*;
+import java.util.*;
+import java.util.logging.*;
+import static java.util.logging.Logger.*;
+import javax.portlet.*;
+import javax.portlet.filter.*;
+import javax.servlet.*;
+import javax.servlet.http.*;
+import javax.portlet.tck.beans.*;
+import static javax.portlet.tck.beans.JSR286DispatcherTestCaseDetails.*;
+
+/**
+ * Servlet for JSR 362 request dispatcher testing.
+ * Used by portlet: DispatcherTests_SPEC2_19_DispatchIncludeServletResource
+ *
+ * @author nick
+ *
+ */
+public class DispatcherTests_SPEC2_19_DispatchIncludeServletResource_servlet extends HttpServlet {
+   private static final String LOG_CLASS = 
+         DispatcherTests_SPEC2_19_DispatchIncludeServletResource_servlet.class.getName();
+   private final Logger LOGGER = Logger.getLogger(LOG_CLASS);
+
+   @Override
+   protected void doGet(HttpServletRequest req, HttpServletResponse resp)
+         throws ServletException, IOException {
+      processTCKReq(req, resp);
+   }
+
+   @Override
+   protected void doPost(HttpServletRequest req, HttpServletResponse resp)
+         throws ServletException, IOException {
+      processTCKReq(req, resp);
+   }
+
+   // The tck uses only get & post requests
+   protected void processTCKReq(HttpServletRequest request, HttpServletResponse response)
+         throws ServletException, IOException {
+      if (LOGGER.isLoggable(Level.FINE)) {
+         LOGGER.logp(Level.FINE, LOG_CLASS, "render", "Entry");
+      }
+
+      StringWriter writer = new StringWriter();
+      JSR286DispatcherTestCaseDetails tcd = new JSR286DispatcherTestCaseDetails();
+
+      writer.write("<hr/>");
+      writer.write("<p>Output from included servlet:</p>");
+
+      // Create result objects for the tests
+
+      response.getWriter().write(writer.toString());
+
+   }
+}
+

http://git-wip-us.apache.org/repos/asf/portals-pluto/blob/574abc68/portlet-tck_3.0/V2DispatcherTests/src/main/java/javax/portlet/tck/servlets/DispatcherTests_SPEC2_19_DispatchIncludeServlet_servlet.java
----------------------------------------------------------------------
diff --git a/portlet-tck_3.0/V2DispatcherTests/src/main/java/javax/portlet/tck/servlets/DispatcherTests_SPEC2_19_DispatchIncludeServlet_servlet.java b/portlet-tck_3.0/V2DispatcherTests/src/main/java/javax/portlet/tck/servlets/DispatcherTests_SPEC2_19_DispatchIncludeServlet_servlet.java
new file mode 100644
index 0000000..b40730f
--- /dev/null
+++ b/portlet-tck_3.0/V2DispatcherTests/src/main/java/javax/portlet/tck/servlets/DispatcherTests_SPEC2_19_DispatchIncludeServlet_servlet.java
@@ -0,0 +1,76 @@
+/*  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *    http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
+
+
+package javax.portlet.tck.servlets;
+
+import java.io.*;
+import java.util.*;
+import java.util.logging.*;
+import static java.util.logging.Logger.*;
+import javax.portlet.*;
+import javax.portlet.filter.*;
+import javax.servlet.*;
+import javax.servlet.http.*;
+import javax.portlet.tck.beans.*;
+import static javax.portlet.tck.beans.JSR286DispatcherTestCaseDetails.*;
+
+/**
+ * Servlet for JSR 362 request dispatcher testing.
+ * Used by portlet: DispatcherTests_SPEC2_19_DispatchIncludeServlet
+ *
+ * @author nick
+ *
+ */
+public class DispatcherTests_SPEC2_19_DispatchIncludeServlet_servlet extends HttpServlet {
+   private static final String LOG_CLASS = 
+         DispatcherTests_SPEC2_19_DispatchIncludeServlet_servlet.class.getName();
+   private final Logger LOGGER = Logger.getLogger(LOG_CLASS);
+
+   @Override
+   protected void doGet(HttpServletRequest req, HttpServletResponse resp)
+         throws ServletException, IOException {
+      processTCKReq(req, resp);
+   }
+
+   @Override
+   protected void doPost(HttpServletRequest req, HttpServletResponse resp)
+         throws ServletException, IOException {
+      processTCKReq(req, resp);
+   }
+
+   // The tck uses only get & post requests
+   protected void processTCKReq(HttpServletRequest request, HttpServletResponse response)
+         throws ServletException, IOException {
+      if (LOGGER.isLoggable(Level.FINE)) {
+         LOGGER.logp(Level.FINE, LOG_CLASS, "render", "Entry");
+      }
+
+      StringWriter writer = new StringWriter();
+      JSR286DispatcherTestCaseDetails tcd = new JSR286DispatcherTestCaseDetails();
+
+      writer.write("<hr/>");
+      writer.write("<p>Output from included servlet:</p>");
+
+      // Create result objects for the tests
+
+      response.getWriter().write(writer.toString());
+
+   }
+}
+

http://git-wip-us.apache.org/repos/asf/portals-pluto/blob/574abc68/portlet-tck_3.0/V2DispatcherTests/src/main/webapp/WEB-INF/web.xml
----------------------------------------------------------------------
diff --git a/portlet-tck_3.0/V2DispatcherTests/src/main/webapp/WEB-INF/web.xml b/portlet-tck_3.0/V2DispatcherTests/src/main/webapp/WEB-INF/web.xml
index 70dc5b1..480a1d4 100644
--- a/portlet-tck_3.0/V2DispatcherTests/src/main/webapp/WEB-INF/web.xml
+++ b/portlet-tck_3.0/V2DispatcherTests/src/main/webapp/WEB-INF/web.xml
@@ -20,5 +20,135 @@
 <web-app id="WebApp_ID" 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">
 	<display-name>javax.portlet-tck-DispatcherTests</display-name>
 
+   <servlet>
+      <servlet-name>DispatcherTests_SPEC2_19_DispatchIncludeServlet_servlet</servlet-name>
+      <servlet-class>javax.portlet.tck.servlets.DispatcherTests_SPEC2_19_DispatchIncludeServlet_servlet</servlet-class>
+      <init-param>
+         <param-name>iparm1</param-name>
+         <param-value>value1</param-value>
+      </init-param>
+   </servlet>
+   <servlet-mapping>
+      <servlet-name>DispatcherTests_SPEC2_19_DispatchIncludeServlet_servlet</servlet-name>
+      <url-pattern>/DispatcherTests_SPEC2_19_DispatchIncludeServlet_servlet</url-pattern>
+   </servlet-mapping>
+
+   <servlet>
+      <servlet-name>DispatcherTests_SPEC2_19_DispatchIncludeServletAction_servlet</servlet-name>
+      <servlet-class>javax.portlet.tck.servlets.DispatcherTests_SPEC2_19_DispatchIncludeServletAction_servlet</servlet-class>
+      <init-param>
+         <param-name>iparm1</param-name>
+         <param-value>value1</param-value>
+      </init-param>
+   </servlet>
+   <servlet-mapping>
+      <servlet-name>DispatcherTests_SPEC2_19_DispatchIncludeServletAction_servlet</servlet-name>
+      <url-pattern>/DispatcherTests_SPEC2_19_DispatchIncludeServletAction_servlet</url-pattern>
+   </servlet-mapping>
+
+   <servlet>
+      <servlet-name>DispatcherTests_SPEC2_19_DispatchIncludeServletEvent_servlet</servlet-name>
+      <servlet-class>javax.portlet.tck.servlets.DispatcherTests_SPEC2_19_DispatchIncludeServletEvent_servlet</servlet-class>
+      <init-param>
+         <param-name>iparm1</param-name>
+         <param-value>value1</param-value>
+      </init-param>
+   </servlet>
+   <servlet-mapping>
+      <servlet-name>DispatcherTests_SPEC2_19_DispatchIncludeServletEvent_servlet</servlet-name>
+      <url-pattern>/DispatcherTests_SPEC2_19_DispatchIncludeServletEvent_servlet</url-pattern>
+   </servlet-mapping>
+
+   <servlet>
+      <servlet-name>DispatcherTests_SPEC2_19_DispatchIncludeServletRender_servlet</servlet-name>
+      <servlet-class>javax.portlet.tck.servlets.DispatcherTests_SPEC2_19_DispatchIncludeServletRender_servlet</servlet-class>
+      <init-param>
+         <param-name>iparm1</param-name>
+         <param-value>value1</param-value>
+      </init-param>
+   </servlet>
+   <servlet-mapping>
+      <servlet-name>DispatcherTests_SPEC2_19_DispatchIncludeServletRender_servlet</servlet-name>
+      <url-pattern>/DispatcherTests_SPEC2_19_DispatchIncludeServletRender_servlet</url-pattern>
+   </servlet-mapping>
+
+   <servlet>
+      <servlet-name>DispatcherTests_SPEC2_19_DispatchIncludeServletResource_servlet</servlet-name>
+      <servlet-class>javax.portlet.tck.servlets.DispatcherTests_SPEC2_19_DispatchIncludeServletResource_servlet</servlet-class>
+      <init-param>
+         <param-name>iparm1</param-name>
+         <param-value>value1</param-value>
+      </init-param>
+   </servlet>
+   <servlet-mapping>
+      <servlet-name>DispatcherTests_SPEC2_19_DispatchIncludeServletResource_servlet</servlet-name>
+      <url-pattern>/DispatcherTests_SPEC2_19_DispatchIncludeServletResource_servlet</url-pattern>
+   </servlet-mapping>
+
+   <servlet>
+      <servlet-name>DispatcherTests_SPEC2_19_DispatchForwardServlet_servlet</servlet-name>
+      <servlet-class>javax.portlet.tck.servlets.DispatcherTests_SPEC2_19_DispatchForwardServlet_servlet</servlet-class>
+      <init-param>
+         <param-name>iparm1</param-name>
+         <param-value>value1</param-value>
+      </init-param>
+   </servlet>
+   <servlet-mapping>
+      <servlet-name>DispatcherTests_SPEC2_19_DispatchForwardServlet_servlet</servlet-name>
+      <url-pattern>/DispatcherTests_SPEC2_19_DispatchForwardServlet_servlet</url-pattern>
+   </servlet-mapping>
+
+   <servlet>
+      <servlet-name>DispatcherTests_SPEC2_19_DispatchForwardServletAction_servlet</servlet-name>
+      <servlet-class>javax.portlet.tck.servlets.DispatcherTests_SPEC2_19_DispatchForwardServletAction_servlet</servlet-class>
+      <init-param>
+         <param-name>iparm1</param-name>
+         <param-value>value1</param-value>
+      </init-param>
+   </servlet>
+   <servlet-mapping>
+      <servlet-name>DispatcherTests_SPEC2_19_DispatchForwardServletAction_servlet</servlet-name>
+      <url-pattern>/DispatcherTests_SPEC2_19_DispatchForwardServletAction_servlet</url-pattern>
+   </servlet-mapping>
+
+   <servlet>
+      <servlet-name>DispatcherTests_SPEC2_19_DispatchForwardServletEvent_servlet</servlet-name>
+      <servlet-class>javax.portlet.tck.servlets.DispatcherTests_SPEC2_19_DispatchForwardServletEvent_servlet</servlet-class>
+      <init-param>
+         <param-name>iparm1</param-name>
+         <param-value>value1</param-value>
+      </init-param>
+   </servlet>
+   <servlet-mapping>
+      <servlet-name>DispatcherTests_SPEC2_19_DispatchForwardServletEvent_servlet</servlet-name>
+      <url-pattern>/DispatcherTests_SPEC2_19_DispatchForwardServletEvent_servlet</url-pattern>
+   </servlet-mapping>
+
+   <servlet>
+      <servlet-name>DispatcherTests_SPEC2_19_DispatchForwardServletRender_servlet</servlet-name>
+      <servlet-class>javax.portlet.tck.servlets.DispatcherTests_SPEC2_19_DispatchForwardServletRender_servlet</servlet-class>
+      <init-param>
+         <param-name>iparm1</param-name>
+         <param-value>value1</param-value>
+      </init-param>
+   </servlet>
+   <servlet-mapping>
+      <servlet-name>DispatcherTests_SPEC2_19_DispatchForwardServletRender_servlet</servlet-name>
+      <url-pattern>/DispatcherTests_SPEC2_19_DispatchForwardServletRender_servlet</url-pattern>
+   </servlet-mapping>
+
+   <servlet>
+      <servlet-name>DispatcherTests_SPEC2_19_DispatchForwardServletResource_servlet</servlet-name>
+      <servlet-class>javax.portlet.tck.servlets.DispatcherTests_SPEC2_19_DispatchForwardServletResource_servlet</servlet-class>
+      <init-param>
+         <param-name>iparm1</param-name>
+         <param-value>value1</param-value>
+      </init-param>
+   </servlet>
+   <servlet-mapping>
+      <servlet-name>DispatcherTests_SPEC2_19_DispatchForwardServletResource_servlet</servlet-name>
+      <url-pattern>/DispatcherTests_SPEC2_19_DispatchForwardServletResource_servlet</url-pattern>
+   </servlet-mapping>
+
 </web-app>
 

http://git-wip-us.apache.org/repos/asf/portals-pluto/blob/574abc68/portlet-tck_3.0/common/src/main/java/javax/portlet/tck/beans/JSR286DispatcherTestCaseDetails.java
----------------------------------------------------------------------
diff --git a/portlet-tck_3.0/common/src/main/java/javax/portlet/tck/beans/JSR286DispatcherTestCaseDetails.java b/portlet-tck_3.0/common/src/main/java/javax/portlet/tck/beans/JSR286DispatcherTestCaseDetails.java
index d2829f0..b32364f 100644
--- a/portlet-tck_3.0/common/src/main/java/javax/portlet/tck/beans/JSR286DispatcherTestCaseDetails.java
+++ b/portlet-tck_3.0/common/src/main/java/javax/portlet/tck/beans/JSR286DispatcherTestCaseDetails.java
@@ -154,7 +154,7 @@ public class JSR286DispatcherTestCaseDetails extends TestCaseDetails {
       tcd.put(SPEC2_19_DISPATCHINCLUDESERVLET_INVOKE7, "The path elements of the request object exposed to the target servlet must reflect the path used to obtain the RequestDispatcher");
       tcd.put(SPEC2_19_DISPATCHINCLUDESERVLETACTION_ATTRIBUTES1, "If the request dispatcher is obtained through the getRequestDispatcher method, the request attribute javax.servlet.include.request_uri will be set, and equals the value from HTTPServletRequest.getRequestURI for the first servlet in the include chain");
       tcd.put(SPEC2_19_DISPATCHINCLUDESERVLETACTION_ATTRIBUTES2, "If the request dispatcher is obtained through the getRequestDispatcher method, the request attribute javax.servlet.include.context_path will be set, and equals the value from HTTPServletRequest.getContestPath for the first servlet in the include chain");
-      tcd.put(SPEC2_19_DISPATCHINCLUDESERVLETACTION_ATTRIBUTES3, "If the request dispatcher is obtained through the getRequestDispatcher method, the request attribute javax.servlet.include.servlet_path will be set, and equals the value from HTTPServletRequest.getSerletPath for the first servlet in the include chain");
+      tcd.put(SPEC2_19_DISPATCHINCLUDESERVLETACTION_ATTRIBUTES3, "If the request dispatcher is obtained through the getRequestDispatcher method, the request attribute javax.servlet.include.servlet_path will be set, and equals the value from HTTPServletRequest.getServletPath for the first servlet in the include chain");
       tcd.put(SPEC2_19_DISPATCHINCLUDESERVLETACTION_ATTRIBUTES4, "If the request dispatcher is obtained through the getRequestDispatcher method, the request attribute javax.servlet.include.path_info will be set, and equals the value from HTTPServletRequest.getPathInfo for the first servlet in the include chain");
       tcd.put(SPEC2_19_DISPATCHINCLUDESERVLETACTION_ATTRIBUTES5, "If the request dispatcher is obtained through the getRequestDispatcher method, the request attribute javax.servlet.include.query_string will be set, and equals the value from HTTPServletRequest.getQueryString for the first servlet in the include chain");
       tcd.put(SPEC2_19_DISPATCHINCLUDESERVLETACTION_ATTRIBUTES6, "The request attribute javax.portlet.config must be set to the javax.portlet.PortletConfig object");
@@ -162,7 +162,7 @@ public class JSR286DispatcherTestCaseDetails extends TestCaseDetails {
       tcd.put(SPEC2_19_DISPATCHINCLUDESERVLETACTION_ATTRIBUTES8, "For includes from the processAction method, The request attribute javax.portlet.response must be set to the javax.portlet.ActionResponse object");
       tcd.put(SPEC2_19_DISPATCHINCLUDESERVLETEVENT_ATTRIBUTES1, "If the request dispatcher is obtained through the getRequestDispatcher method, the request attribute javax.servlet.include.request_uri will be set, and equals the value from HTTPServletRequest.getRequestURI for the first servlet in the include chain");
       tcd.put(SPEC2_19_DISPATCHINCLUDESERVLETEVENT_ATTRIBUTES2, "If the request dispatcher is obtained through the getRequestDispatcher method, the request attribute javax.servlet.include.context_path will be set, and equals the value from HTTPServletRequest.getContestPath for the first servlet in the include chain");
-      tcd.put(SPEC2_19_DISPATCHINCLUDESERVLETEVENT_ATTRIBUTES3, "If the request dispatcher is obtained through the getRequestDispatcher method, the request attribute javax.servlet.include.servlet_path will be set, and equals the value from HTTPServletRequest.getSerletPath for the first servlet in the include chain");
+      tcd.put(SPEC2_19_DISPATCHINCLUDESERVLETEVENT_ATTRIBUTES3, "If the request dispatcher is obtained through the getRequestDispatcher method, the request attribute javax.servlet.include.servlet_path will be set, and equals the value from HTTPServletRequest.getServletPath for the first servlet in the include chain");
       tcd.put(SPEC2_19_DISPATCHINCLUDESERVLETEVENT_ATTRIBUTES4, "If the request dispatcher is obtained through the getRequestDispatcher method, the request attribute javax.servlet.include.path_info will be set, and equals the value from HTTPServletRequest.getPathInfo for the first servlet in the include chain");
       tcd.put(SPEC2_19_DISPATCHINCLUDESERVLETEVENT_ATTRIBUTES5, "If the request dispatcher is obtained through the getRequestDispatcher method, the request attribute javax.servlet.include.query_string will be set, and equals the value from HTTPServletRequest.getQueryString for the first servlet in the include chain");
       tcd.put(SPEC2_19_DISPATCHINCLUDESERVLETEVENT_ATTRIBUTES6, "The request attribute javax.portlet.config must be set to the javax.portlet.PortletConfig object");
@@ -170,7 +170,7 @@ public class JSR286DispatcherTestCaseDetails extends TestCaseDetails {
       tcd.put(SPEC2_19_DISPATCHINCLUDESERVLETEVENT_ATTRIBUTES8, "For includes from the processEvent method, The request attribute javax.portlet.response must be set to the javax.portlet.EventResponse object");
       tcd.put(SPEC2_19_DISPATCHINCLUDESERVLETRENDER_ATTRIBUTES1, "If the request dispatcher is obtained through the getRequestDispatcher method, the request attribute javax.servlet.include.request_uri will be set, and equals the value from HTTPServletRequest.getRequestURI for the first servlet in the include chain");
       tcd.put(SPEC2_19_DISPATCHINCLUDESERVLETRENDER_ATTRIBUTES2, "If the request dispatcher is obtained through the getRequestDispatcher method, the request attribute javax.servlet.include.context_path will be set, and equals the value from HTTPServletRequest.getContestPath for the first servlet in the include chain");
-      tcd.put(SPEC2_19_DISPATCHINCLUDESERVLETRENDER_ATTRIBUTES3, "If the request dispatcher is obtained through the getRequestDispatcher method, the request attribute javax.servlet.include.servlet_path will be set, and equals the value from HTTPServletRequest.getSerletPath for the first servlet in the include chain");
+      tcd.put(SPEC2_19_DISPATCHINCLUDESERVLETRENDER_ATTRIBUTES3, "If the request dispatcher is obtained through the getRequestDispatcher method, the request attribute javax.servlet.include.servlet_path will be set, and equals the value from HTTPServletRequest.getServletPath for the first servlet in the include chain");
       tcd.put(SPEC2_19_DISPATCHINCLUDESERVLETRENDER_ATTRIBUTES4, "If the request dispatcher is obtained through the getRequestDispatcher method, the request attribute javax.servlet.include.path_info will be set, and equals the value from HTTPServletRequest.getPathInfo for the first servlet in the include chain");
       tcd.put(SPEC2_19_DISPATCHINCLUDESERVLETRENDER_ATTRIBUTES5, "If the request dispatcher is obtained through the getRequestDispatcher method, the request attribute javax.servlet.include.query_string will be set, and equals the value from HTTPServletRequest.getQueryString for the first servlet in the include chain");
       tcd.put(SPEC2_19_DISPATCHINCLUDESERVLETRENDER_ATTRIBUTES6, "The request attribute javax.portlet.config must be set to the javax.portlet.PortletConfig object");
@@ -178,7 +178,7 @@ public class JSR286DispatcherTestCaseDetails extends TestCaseDetails {
       tcd.put(SPEC2_19_DISPATCHINCLUDESERVLETRENDER_ATTRIBUTES8, "For includes from the render method, The request attribute javax.portlet.response must be set to the javax.portlet.RenderResponse object");
       tcd.put(SPEC2_19_DISPATCHINCLUDESERVLETRESOURCE_ATTRIBUTES1, "If the request dispatcher is obtained through the getRequestDispatcher method, the request attribute javax.servlet.include.request_uri will be set, and equals the value from HTTPServletRequest.getRequestURI for the first servlet in the include chain");
       tcd.put(SPEC2_19_DISPATCHINCLUDESERVLETRESOURCE_ATTRIBUTES2, "If the request dispatcher is obtained through the getRequestDispatcher method, the request attribute javax.servlet.include.context_path will be set, and equals the value from HTTPServletRequest.getContestPath for the first servlet in the include chain");
-      tcd.put(SPEC2_19_DISPATCHINCLUDESERVLETRESOURCE_ATTRIBUTES3, "If the request dispatcher is obtained through the getRequestDispatcher method, the request attribute javax.servlet.include.servlet_path will be set, and equals the value from HTTPServletRequest.getSerletPath for the first servlet in the include chain");
+      tcd.put(SPEC2_19_DISPATCHINCLUDESERVLETRESOURCE_ATTRIBUTES3, "If the request dispatcher is obtained through the getRequestDispatcher method, the request attribute javax.servlet.include.servlet_path will be set, and equals the value from HTTPServletRequest.getServletPath for the first servlet in the include chain");
       tcd.put(SPEC2_19_DISPATCHINCLUDESERVLETRESOURCE_ATTRIBUTES4, "If the request dispatcher is obtained through the getRequestDispatcher method, the request attribute javax.servlet.include.path_info will be set, and equals the value from HTTPServletRequest.getPathInfo for the first servlet in the include chain");
       tcd.put(SPEC2_19_DISPATCHINCLUDESERVLETRESOURCE_ATTRIBUTES5, "If the request dispatcher is obtained through the getRequestDispatcher method, the request attribute javax.servlet.include.query_string will be set, and equals the value from HTTPServletRequest.getQueryString for the first servlet in the include chain");
       tcd.put(SPEC2_19_DISPATCHINCLUDESERVLETRESOURCE_ATTRIBUTES6, "The request attribute javax.portlet.config must be set to the javax.portlet.PortletConfig object");
@@ -200,7 +200,7 @@ public class JSR286DispatcherTestCaseDetails extends TestCaseDetails {
       tcd.put(SPEC2_19_DISPATCHFORWARDSERVLET_INVOKE14, "Before the forward method of the RequestDispatcher interface returns, the response content must be sent and committed, and closed by the portlet container");
       tcd.put(SPEC2_19_DISPATCHFORWARDSERVLETACTION_ATTRIBUTES1, "If the request dispatcher is obtained through the getRequestDispatcher method, the request attribute javax.servlet.forward.request_uri will be set, and equals the value from HTTPServletRequest.getRequestURI for the first servlet in the forward chain");
       tcd.put(SPEC2_19_DISPATCHFORWARDSERVLETACTION_ATTRIBUTES2, "If the request dispatcher is obtained through the getRequestDispatcher method, the request attribute javax.servlet.forward.context_path will be set, and equals the value from HTTPServletRequest.getContestPath for the first servlet in the forward chain");
-      tcd.put(SPEC2_19_DISPATCHFORWARDSERVLETACTION_ATTRIBUTES3, "If the request dispatcher is obtained through the getRequestDispatcher method, the request attribute javax.servlet.forward.servlet_path will be set, and equals the value from HTTPServletRequest.getSerletPath for the first servlet in the forward chain");
+      tcd.put(SPEC2_19_DISPATCHFORWARDSERVLETACTION_ATTRIBUTES3, "If the request dispatcher is obtained through the getRequestDispatcher method, the request attribute javax.servlet.forward.servlet_path will be set, and equals the value from HTTPServletRequest.getServletPath for the first servlet in the forward chain");
       tcd.put(SPEC2_19_DISPATCHFORWARDSERVLETACTION_ATTRIBUTES4, "If the request dispatcher is obtained through the getRequestDispatcher method, the request attribute javax.servlet.forward.path_info will be set, and equals the value from HTTPServletRequest.getPathInfo for the first servlet in the forward chain");
       tcd.put(SPEC2_19_DISPATCHFORWARDSERVLETACTION_ATTRIBUTES5, "If the request dispatcher is obtained through the getRequestDispatcher method, the request attribute javax.servlet.forward.query_string will be set, and equals the value from HTTPServletRequest.getQueryString for the first servlet in the forward chain");
       tcd.put(SPEC2_19_DISPATCHFORWARDSERVLETACTION_ATTRIBUTES6, "The request attribute javax.portlet.config must be set to the javax.portlet.PortletConfig object");
@@ -208,7 +208,7 @@ public class JSR286DispatcherTestCaseDetails extends TestCaseDetails {
       tcd.put(SPEC2_19_DISPATCHFORWARDSERVLETACTION_ATTRIBUTES8, "For forwards from the processAction method, The request attribute javax.portlet.response must be set to the javax.portlet.ActionResponse object");
       tcd.put(SPEC2_19_DISPATCHFORWARDSERVLETEVENT_ATTRIBUTES1, "If the request dispatcher is obtained through the getRequestDispatcher method, the request attribute javax.servlet.forward.request_uri will be set, and equals the value from HTTPServletRequest.getRequestURI for the first servlet in the forward chain");
       tcd.put(SPEC2_19_DISPATCHFORWARDSERVLETEVENT_ATTRIBUTES2, "If the request dispatcher is obtained through the getRequestDispatcher method, the request attribute javax.servlet.forward.context_path will be set, and equals the value from HTTPServletRequest.getContestPath for the first servlet in the forward chain");
-      tcd.put(SPEC2_19_DISPATCHFORWARDSERVLETEVENT_ATTRIBUTES3, "If the request dispatcher is obtained through the getRequestDispatcher method, the request attribute javax.servlet.forward.servlet_path will be set, and equals the value from HTTPServletRequest.getSerletPath for the first servlet in the forward chain");
+      tcd.put(SPEC2_19_DISPATCHFORWARDSERVLETEVENT_ATTRIBUTES3, "If the request dispatcher is obtained through the getRequestDispatcher method, the request attribute javax.servlet.forward.servlet_path will be set, and equals the value from HTTPServletRequest.getServletPath for the first servlet in the forward chain");
       tcd.put(SPEC2_19_DISPATCHFORWARDSERVLETEVENT_ATTRIBUTES4, "If the request dispatcher is obtained through the getRequestDispatcher method, the request attribute javax.servlet.forward.path_info will be set, and equals the value from HTTPServletRequest.getPathInfo for the first servlet in the forward chain");
       tcd.put(SPEC2_19_DISPATCHFORWARDSERVLETEVENT_ATTRIBUTES5, "If the request dispatcher is obtained through the getRequestDispatcher method, the request attribute javax.servlet.forward.query_string will be set, and equals the value from HTTPServletRequest.getQueryString for the first servlet in the forward chain");
       tcd.put(SPEC2_19_DISPATCHFORWARDSERVLETEVENT_ATTRIBUTES6, "The request attribute javax.portlet.config must be set to the javax.portlet.PortletConfig object");
@@ -216,7 +216,7 @@ public class JSR286DispatcherTestCaseDetails extends TestCaseDetails {
       tcd.put(SPEC2_19_DISPATCHFORWARDSERVLETEVENT_ATTRIBUTES8, "For forwards from the processEvent method, The request attribute javax.portlet.response must be set to the javax.portlet.EventResponse object");
       tcd.put(SPEC2_19_DISPATCHFORWARDSERVLETRENDER_ATTRIBUTES1, "If the request dispatcher is obtained through the getRequestDispatcher method, the request attribute javax.servlet.forward.request_uri will be set, and equals the value from HTTPServletRequest.getRequestURI for the first servlet in the forward chain");
       tcd.put(SPEC2_19_DISPATCHFORWARDSERVLETRENDER_ATTRIBUTES2, "If the request dispatcher is obtained through the getRequestDispatcher method, the request attribute javax.servlet.forward.context_path will be set, and equals the value from HTTPServletRequest.getContestPath for the first servlet in the forward chain");
-      tcd.put(SPEC2_19_DISPATCHFORWARDSERVLETRENDER_ATTRIBUTES3, "If the request dispatcher is obtained through the getRequestDispatcher method, the request attribute javax.servlet.forward.servlet_path will be set, and equals the value from HTTPServletRequest.getSerletPath for the first servlet in the forward chain");
+      tcd.put(SPEC2_19_DISPATCHFORWARDSERVLETRENDER_ATTRIBUTES3, "If the request dispatcher is obtained through the getRequestDispatcher method, the request attribute javax.servlet.forward.servlet_path will be set, and equals the value from HTTPServletRequest.getServletPath for the first servlet in the forward chain");
       tcd.put(SPEC2_19_DISPATCHFORWARDSERVLETRENDER_ATTRIBUTES4, "If the request dispatcher is obtained through the getRequestDispatcher method, the request attribute javax.servlet.forward.path_info will be set, and equals the value from HTTPServletRequest.getPathInfo for the first servlet in the forward chain");
       tcd.put(SPEC2_19_DISPATCHFORWARDSERVLETRENDER_ATTRIBUTES5, "If the request dispatcher is obtained through the getRequestDispatcher method, the request attribute javax.servlet.forward.query_string will be set, and equals the value from HTTPServletRequest.getQueryString for the first servlet in the forward chain");
       tcd.put(SPEC2_19_DISPATCHFORWARDSERVLETRENDER_ATTRIBUTES6, "The request attribute javax.portlet.config must be set to the javax.portlet.PortletConfig object");
@@ -224,7 +224,7 @@ public class JSR286DispatcherTestCaseDetails extends TestCaseDetails {
       tcd.put(SPEC2_19_DISPATCHFORWARDSERVLETRENDER_ATTRIBUTES8, "For forwards from the render method, The request attribute javax.portlet.response must be set to the javax.portlet.RenderResponse object");
       tcd.put(SPEC2_19_DISPATCHFORWARDSERVLETRESOURCE_ATTRIBUTES1, "If the request dispatcher is obtained through the getRequestDispatcher method, the request attribute javax.servlet.forward.request_uri will be set, and equals the value from HTTPServletRequest.getRequestURI for the first servlet in the forward chain");
       tcd.put(SPEC2_19_DISPATCHFORWARDSERVLETRESOURCE_ATTRIBUTES2, "If the request dispatcher is obtained through the getRequestDispatcher method, the request attribute javax.servlet.forward.context_path will be set, and equals the value from HTTPServletRequest.getContestPath for the first servlet in the forward chain");
-      tcd.put(SPEC2_19_DISPATCHFORWARDSERVLETRESOURCE_ATTRIBUTES3, "If the request dispatcher is obtained through the getRequestDispatcher method, the request attribute javax.servlet.forward.servlet_path will be set, and equals the value from HTTPServletRequest.getSerletPath for the first servlet in the forward chain");
+      tcd.put(SPEC2_19_DISPATCHFORWARDSERVLETRESOURCE_ATTRIBUTES3, "If the request dispatcher is obtained through the getRequestDispatcher method, the request attribute javax.servlet.forward.servlet_path will be set, and equals the value from HTTPServletRequest.getServletPath for the first servlet in the forward chain");
       tcd.put(SPEC2_19_DISPATCHFORWARDSERVLETRESOURCE_ATTRIBUTES4, "If the request dispatcher is obtained through the getRequestDispatcher method, the request attribute javax.servlet.forward.path_info will be set, and equals the value from HTTPServletRequest.getPathInfo for the first servlet in the forward chain");
       tcd.put(SPEC2_19_DISPATCHFORWARDSERVLETRESOURCE_ATTRIBUTES5, "If the request dispatcher is obtained through the getRequestDispatcher method, the request attribute javax.servlet.forward.query_string will be set, and equals the value from HTTPServletRequest.getQueryString for the first servlet in the forward chain");
       tcd.put(SPEC2_19_DISPATCHFORWARDSERVLETRESOURCE_ATTRIBUTES6, "The request attribute javax.portlet.config must be set to the javax.portlet.PortletConfig object");