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/09/01 15:29:46 UTC

[38/63] [abbrv] Moved filter test cases to proper filter method. Added keyword "Api" to test case names whose definitions were derived from the API documentation to allow targeted test runs for that group of tests.

http://git-wip-us.apache.org/repos/asf/portals-pluto/blob/db1071e7/portlet-tck_3.0/V2ExceptionTests/src/main/java/javax/portlet/tck/portlets/ExceptionTests_PortletModeException_Render.java
----------------------------------------------------------------------
diff --git a/portlet-tck_3.0/V2ExceptionTests/src/main/java/javax/portlet/tck/portlets/ExceptionTests_PortletModeException_Render.java b/portlet-tck_3.0/V2ExceptionTests/src/main/java/javax/portlet/tck/portlets/ExceptionTests_PortletModeException_Render.java
deleted file mode 100644
index 6bb1ba8..0000000
--- a/portlet-tck_3.0/V2ExceptionTests/src/main/java/javax/portlet/tck/portlets/ExceptionTests_PortletModeException_Render.java
+++ /dev/null
@@ -1,112 +0,0 @@
-/*  Licensed to the Apache Software Foundation (ASF) under one
- *  or more contributor license agreements.  See the NOTICE file
- *  distributed with this work for additional information
- *  regarding copyright ownership.  The ASF licenses this file
- *  to you under the Apache License, Version 2.0 (the
- *  "License"); you may not use this file except in compliance
- *  with the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- *  Unless required by applicable law or agreed to in writing,
- *  software distributed under the License is distributed on an
- *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- *  KIND, either express or implied.  See the License for the
- *  specific language governing permissions and limitations
- *  under the License.
- */
-
-package javax.portlet.tck.portlets;
-
-import java.io.*;
-import java.util.*;
-import java.util.logging.*;
-import static java.util.logging.Logger.*;
-import javax.xml.namespace.QName;
-import javax.portlet.*;
-import javax.portlet.filter.*;
-import javax.servlet.*;
-import javax.servlet.http.*;
-import javax.portlet.tck.beans.*;
-import javax.portlet.tck.constants.*;
-import static javax.portlet.tck.beans.JSR286ApiTestCaseDetails.*;
-import static javax.portlet.tck.constants.Constants.*;
-import static javax.portlet.PortletSession.*;
-import static javax.portlet.ResourceURL.*;
-
-/**
- * This portlet implements several test cases for the JSR 362 TCK. The test case names
- * are defined in the /src/main/resources/xml-resources/additionalTCs.xml
- * file. The build process will integrate the test case names defined in the 
- * additionalTCs.xml file into the complete list of test case names for execution by the driver.
- *
- * This is the main portlet for the test cases. If the test cases call for events, this portlet
- * will initiate the events, but not process them. The processing is done in the companion 
- * portlet ExceptionTests_PortletModeException_Render_event
- *
- */
-public class ExceptionTests_PortletModeException_Render implements Portlet, ResourceServingPortlet {
-   private static final String LOG_CLASS = 
-         ExceptionTests_PortletModeException_Render.class.getName();
-   private final Logger LOGGER = Logger.getLogger(LOG_CLASS);
-   
-   private PortletConfig portletConfig = null;
-
-   @Override
-   public void init(PortletConfig config) throws PortletException {
-      this.portletConfig = config;
-   }
-
-   @Override
-   public void destroy() {
-   }
-
-   @Override
-   public void processAction(ActionRequest portletReq, ActionResponse portletResp)
-         throws PortletException, IOException {
-      LOGGER.entering(LOG_CLASS, "main portlet processAction entry");
-
-      portletResp.setRenderParameters(portletReq.getParameterMap());
-      long tid = Thread.currentThread().getId();
-      portletReq.setAttribute(THREADID_ATTR, tid);
-
-      StringWriter writer = new StringWriter();
-
-   }
-
-   @Override
-   public void serveResource(ResourceRequest portletReq, ResourceResponse portletResp)
-         throws PortletException, IOException {
-      LOGGER.entering(LOG_CLASS, "main portlet serveResource entry");
-
-      long tid = Thread.currentThread().getId();
-      portletReq.setAttribute(THREADID_ATTR, tid);
-
-      PrintWriter writer = portletResp.getWriter();
-
-   }
-
-   @Override
-   public void render(RenderRequest portletReq, RenderResponse portletResp)
-         throws PortletException, IOException {
-      LOGGER.entering(LOG_CLASS, "main portlet render entry");
-
-      long tid = Thread.currentThread().getId();
-      portletReq.setAttribute(THREADID_ATTR, tid);
-
-      PrintWriter writer = portletResp.getWriter();
-
-      JSR286ApiTestCaseDetails tcd = new JSR286ApiTestCaseDetails();
-
-      // Create result objects for the tests
-
-      /* TestCase: V2ExceptionTests_PortletModeException_Render_hasGetMode2   */
-      /* Details: "Returns the PortletMode object causing this exception"     */
-      TestResult tr0 = tcd.getTestResultFailed(V2EXCEPTIONTESTS_PORTLETMODEEXCEPTION_RENDER_HASGETMODE2);
-      /* TODO: implement test */
-      tr0.appendTcDetail("Not implemented.");
-      tr0.writeTo(writer);
-
-   }
-
-}

http://git-wip-us.apache.org/repos/asf/portals-pluto/blob/db1071e7/portlet-tck_3.0/V2ExceptionTests/src/main/java/javax/portlet/tck/portlets/ExceptionTests_UnavailableException_ApiRender.java
----------------------------------------------------------------------
diff --git a/portlet-tck_3.0/V2ExceptionTests/src/main/java/javax/portlet/tck/portlets/ExceptionTests_UnavailableException_ApiRender.java b/portlet-tck_3.0/V2ExceptionTests/src/main/java/javax/portlet/tck/portlets/ExceptionTests_UnavailableException_ApiRender.java
new file mode 100644
index 0000000..87fc385
--- /dev/null
+++ b/portlet-tck_3.0/V2ExceptionTests/src/main/java/javax/portlet/tck/portlets/ExceptionTests_UnavailableException_ApiRender.java
@@ -0,0 +1,143 @@
+/*  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *    http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES 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.portlets;
+
+import java.io.*;
+import java.util.*;
+import java.util.logging.*;
+import static java.util.logging.Logger.*;
+import javax.xml.namespace.QName;
+import javax.portlet.*;
+import javax.portlet.filter.*;
+import javax.servlet.*;
+import javax.servlet.http.*;
+import javax.portlet.tck.beans.*;
+import javax.portlet.tck.constants.*;
+import static javax.portlet.tck.beans.JSR286ApiTestCaseDetails.*;
+import static javax.portlet.tck.constants.Constants.*;
+import static javax.portlet.PortletSession.*;
+import static javax.portlet.ResourceURL.*;
+
+/**
+ * This portlet implements several test cases for the JSR 362 TCK. The test case names
+ * are defined in the /src/main/resources/xml-resources/additionalTCs.xml
+ * file. The build process will integrate the test case names defined in the 
+ * additionalTCs.xml file into the complete list of test case names for execution by the driver.
+ *
+ * This is the main portlet for the test cases. If the test cases call for events, this portlet
+ * will initiate the events, but not process them. The processing is done in the companion 
+ * portlet ExceptionTests_UnavailableException_ApiRender_event
+ *
+ */
+public class ExceptionTests_UnavailableException_ApiRender implements Portlet, ResourceServingPortlet {
+   private static final String LOG_CLASS = 
+         ExceptionTests_UnavailableException_ApiRender.class.getName();
+   private final Logger LOGGER = Logger.getLogger(LOG_CLASS);
+   
+   private PortletConfig portletConfig = null;
+
+   @Override
+   public void init(PortletConfig config) throws PortletException {
+      this.portletConfig = config;
+   }
+
+   @Override
+   public void destroy() {
+   }
+
+   @Override
+   public void processAction(ActionRequest portletReq, ActionResponse portletResp)
+         throws PortletException, IOException {
+      LOGGER.entering(LOG_CLASS, "main portlet processAction entry");
+
+      portletResp.setRenderParameters(portletReq.getParameterMap());
+      long tid = Thread.currentThread().getId();
+      portletReq.setAttribute(THREADID_ATTR, tid);
+
+      StringWriter writer = new StringWriter();
+
+   }
+
+   @Override
+   public void serveResource(ResourceRequest portletReq, ResourceResponse portletResp)
+         throws PortletException, IOException {
+      LOGGER.entering(LOG_CLASS, "main portlet serveResource entry");
+
+      long tid = Thread.currentThread().getId();
+      portletReq.setAttribute(THREADID_ATTR, tid);
+
+      PrintWriter writer = portletResp.getWriter();
+
+   }
+
+   @Override
+   public void render(RenderRequest portletReq, RenderResponse portletResp)
+         throws PortletException, IOException {
+      LOGGER.entering(LOG_CLASS, "main portlet render entry");
+
+      long tid = Thread.currentThread().getId();
+      portletReq.setAttribute(THREADID_ATTR, tid);
+
+      PrintWriter writer = portletResp.getWriter();
+
+      JSR286ApiTestCaseDetails tcd = new JSR286ApiTestCaseDetails();
+
+      // Create result objects for the tests
+
+      /* TestCase: V2ExceptionTests_UnavailableException_ApiRender_isPermanent1 */
+      /* Details: "Method isPermanent(): Returns a boolean"                   */
+      TestResult tr0 = tcd.getTestResultFailed(V2EXCEPTIONTESTS_UNAVAILABLEEXCEPTION_APIRENDER_ISPERMANENT1);
+      /* TODO: implement test */
+      tr0.appendTcDetail("Not implemented.");
+      tr0.writeTo(writer);
+
+      /* TestCase: V2ExceptionTests_UnavailableException_ApiRender_isPermanent2 */
+      /* Details: "Method isPermanent(): Returns true if the portlet is       */
+      /* permanently unavailable "                                            */
+      TestResult tr1 = tcd.getTestResultFailed(V2EXCEPTIONTESTS_UNAVAILABLEEXCEPTION_APIRENDER_ISPERMANENT2);
+      /* TODO: implement test */
+      tr1.appendTcDetail("Not implemented.");
+      tr1.writeTo(writer);
+
+      /* TestCase: V2ExceptionTests_UnavailableException_ApiRender_isPermanent3 */
+      /* Details: "Method isPermanent(): Returns false if the portlet is      */
+      /* temporarily unavailable "                                            */
+      TestResult tr2 = tcd.getTestResultFailed(V2EXCEPTIONTESTS_UNAVAILABLEEXCEPTION_APIRENDER_ISPERMANENT3);
+      /* TODO: implement test */
+      tr2.appendTcDetail("Not implemented.");
+      tr2.writeTo(writer);
+
+      /* TestCase: V2ExceptionTests_UnavailableException_ApiRender_getUnavailableSeconds1 */
+      /* Details: "Method getUnavailableSeconds(): Returns an integer "       */
+      TestResult tr3 = tcd.getTestResultFailed(V2EXCEPTIONTESTS_UNAVAILABLEEXCEPTION_APIRENDER_GETUNAVAILABLESECONDS1);
+      /* TODO: implement test */
+      tr3.appendTcDetail("Not implemented.");
+      tr3.writeTo(writer);
+
+      /* TestCase: V2ExceptionTests_UnavailableException_ApiRender_getUnavailableSeconds2 */
+      /* Details: "Method getUnavailableSeconds(): Returns a number <= 0   */
+      /* if the portlet is permanently unavailable"                           */
+      TestResult tr4 = tcd.getTestResultFailed(V2EXCEPTIONTESTS_UNAVAILABLEEXCEPTION_APIRENDER_GETUNAVAILABLESECONDS2);
+      /* TODO: implement test */
+      tr4.appendTcDetail("Not implemented.");
+      tr4.writeTo(writer);
+
+   }
+
+}

http://git-wip-us.apache.org/repos/asf/portals-pluto/blob/db1071e7/portlet-tck_3.0/V2ExceptionTests/src/main/java/javax/portlet/tck/portlets/ExceptionTests_UnavailableException_Render.java
----------------------------------------------------------------------
diff --git a/portlet-tck_3.0/V2ExceptionTests/src/main/java/javax/portlet/tck/portlets/ExceptionTests_UnavailableException_Render.java b/portlet-tck_3.0/V2ExceptionTests/src/main/java/javax/portlet/tck/portlets/ExceptionTests_UnavailableException_Render.java
deleted file mode 100644
index 2fcbfb6..0000000
--- a/portlet-tck_3.0/V2ExceptionTests/src/main/java/javax/portlet/tck/portlets/ExceptionTests_UnavailableException_Render.java
+++ /dev/null
@@ -1,143 +0,0 @@
-/*  Licensed to the Apache Software Foundation (ASF) under one
- *  or more contributor license agreements.  See the NOTICE file
- *  distributed with this work for additional information
- *  regarding copyright ownership.  The ASF licenses this file
- *  to you under the Apache License, Version 2.0 (the
- *  "License"); you may not use this file except in compliance
- *  with the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- *  Unless required by applicable law or agreed to in writing,
- *  software distributed under the License is distributed on an
- *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- *  KIND, either express or implied.  See the License for the
- *  specific language governing permissions and limitations
- *  under the License.
- */
-
-package javax.portlet.tck.portlets;
-
-import java.io.*;
-import java.util.*;
-import java.util.logging.*;
-import static java.util.logging.Logger.*;
-import javax.xml.namespace.QName;
-import javax.portlet.*;
-import javax.portlet.filter.*;
-import javax.servlet.*;
-import javax.servlet.http.*;
-import javax.portlet.tck.beans.*;
-import javax.portlet.tck.constants.*;
-import static javax.portlet.tck.beans.JSR286ApiTestCaseDetails.*;
-import static javax.portlet.tck.constants.Constants.*;
-import static javax.portlet.PortletSession.*;
-import static javax.portlet.ResourceURL.*;
-
-/**
- * This portlet implements several test cases for the JSR 362 TCK. The test case names
- * are defined in the /src/main/resources/xml-resources/additionalTCs.xml
- * file. The build process will integrate the test case names defined in the 
- * additionalTCs.xml file into the complete list of test case names for execution by the driver.
- *
- * This is the main portlet for the test cases. If the test cases call for events, this portlet
- * will initiate the events, but not process them. The processing is done in the companion 
- * portlet ExceptionTests_UnavailableException_Render_event
- *
- */
-public class ExceptionTests_UnavailableException_Render implements Portlet, ResourceServingPortlet {
-   private static final String LOG_CLASS = 
-         ExceptionTests_UnavailableException_Render.class.getName();
-   private final Logger LOGGER = Logger.getLogger(LOG_CLASS);
-   
-   private PortletConfig portletConfig = null;
-
-   @Override
-   public void init(PortletConfig config) throws PortletException {
-      this.portletConfig = config;
-   }
-
-   @Override
-   public void destroy() {
-   }
-
-   @Override
-   public void processAction(ActionRequest portletReq, ActionResponse portletResp)
-         throws PortletException, IOException {
-      LOGGER.entering(LOG_CLASS, "main portlet processAction entry");
-
-      portletResp.setRenderParameters(portletReq.getParameterMap());
-      long tid = Thread.currentThread().getId();
-      portletReq.setAttribute(THREADID_ATTR, tid);
-
-      StringWriter writer = new StringWriter();
-
-   }
-
-   @Override
-   public void serveResource(ResourceRequest portletReq, ResourceResponse portletResp)
-         throws PortletException, IOException {
-      LOGGER.entering(LOG_CLASS, "main portlet serveResource entry");
-
-      long tid = Thread.currentThread().getId();
-      portletReq.setAttribute(THREADID_ATTR, tid);
-
-      PrintWriter writer = portletResp.getWriter();
-
-   }
-
-   @Override
-   public void render(RenderRequest portletReq, RenderResponse portletResp)
-         throws PortletException, IOException {
-      LOGGER.entering(LOG_CLASS, "main portlet render entry");
-
-      long tid = Thread.currentThread().getId();
-      portletReq.setAttribute(THREADID_ATTR, tid);
-
-      PrintWriter writer = portletResp.getWriter();
-
-      JSR286ApiTestCaseDetails tcd = new JSR286ApiTestCaseDetails();
-
-      // Create result objects for the tests
-
-      /* TestCase: V2ExceptionTests_UnavailableException_Render_isPermanent1  */
-      /* Details: "Method isPermanent(): Returns a boolean"                   */
-      TestResult tr0 = tcd.getTestResultFailed(V2EXCEPTIONTESTS_UNAVAILABLEEXCEPTION_RENDER_ISPERMANENT1);
-      /* TODO: implement test */
-      tr0.appendTcDetail("Not implemented.");
-      tr0.writeTo(writer);
-
-      /* TestCase: V2ExceptionTests_UnavailableException_Render_isPermanent2  */
-      /* Details: "Method isPermanent(): Returns true if the portlet is       */
-      /* permanently unavailable "                                            */
-      TestResult tr1 = tcd.getTestResultFailed(V2EXCEPTIONTESTS_UNAVAILABLEEXCEPTION_RENDER_ISPERMANENT2);
-      /* TODO: implement test */
-      tr1.appendTcDetail("Not implemented.");
-      tr1.writeTo(writer);
-
-      /* TestCase: V2ExceptionTests_UnavailableException_Render_isPermanent3  */
-      /* Details: "Method isPermanent(): Returns false if the portlet is      */
-      /* temporarily unavailable "                                            */
-      TestResult tr2 = tcd.getTestResultFailed(V2EXCEPTIONTESTS_UNAVAILABLEEXCEPTION_RENDER_ISPERMANENT3);
-      /* TODO: implement test */
-      tr2.appendTcDetail("Not implemented.");
-      tr2.writeTo(writer);
-
-      /* TestCase: V2ExceptionTests_UnavailableException_Render_getUnavailableSeconds1 */
-      /* Details: "Method getUnavailableSeconds(): Returns an integer "       */
-      TestResult tr3 = tcd.getTestResultFailed(V2EXCEPTIONTESTS_UNAVAILABLEEXCEPTION_RENDER_GETUNAVAILABLESECONDS1);
-      /* TODO: implement test */
-      tr3.appendTcDetail("Not implemented.");
-      tr3.writeTo(writer);
-
-      /* TestCase: V2ExceptionTests_UnavailableException_Render_getUnavailableSeconds2 */
-      /* Details: "Method getUnavailableSeconds(): Returns a number <= 0   */
-      /* if the portlet is permanently unavailable"                           */
-      TestResult tr4 = tcd.getTestResultFailed(V2EXCEPTIONTESTS_UNAVAILABLEEXCEPTION_RENDER_GETUNAVAILABLESECONDS2);
-      /* TODO: implement test */
-      tr4.appendTcDetail("Not implemented.");
-      tr4.writeTo(writer);
-
-   }
-
-}

http://git-wip-us.apache.org/repos/asf/portals-pluto/blob/db1071e7/portlet-tck_3.0/V2ExceptionTests/src/main/java/javax/portlet/tck/portlets/ExceptionTests_ValidatorException_ApiRender.java
----------------------------------------------------------------------
diff --git a/portlet-tck_3.0/V2ExceptionTests/src/main/java/javax/portlet/tck/portlets/ExceptionTests_ValidatorException_ApiRender.java b/portlet-tck_3.0/V2ExceptionTests/src/main/java/javax/portlet/tck/portlets/ExceptionTests_ValidatorException_ApiRender.java
new file mode 100644
index 0000000..ae516bb
--- /dev/null
+++ b/portlet-tck_3.0/V2ExceptionTests/src/main/java/javax/portlet/tck/portlets/ExceptionTests_ValidatorException_ApiRender.java
@@ -0,0 +1,150 @@
+/*  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *    http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES 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.portlets;
+
+import java.io.*;
+import java.util.*;
+import java.util.logging.*;
+import static java.util.logging.Logger.*;
+import javax.xml.namespace.QName;
+import javax.portlet.*;
+import javax.portlet.filter.*;
+import javax.servlet.*;
+import javax.servlet.http.*;
+import javax.portlet.tck.beans.*;
+import javax.portlet.tck.constants.*;
+import static javax.portlet.tck.beans.JSR286ApiTestCaseDetails.*;
+import static javax.portlet.tck.constants.Constants.*;
+import static javax.portlet.PortletSession.*;
+import static javax.portlet.ResourceURL.*;
+
+/**
+ * This portlet implements several test cases for the JSR 362 TCK. The test case names
+ * are defined in the /src/main/resources/xml-resources/additionalTCs.xml
+ * file. The build process will integrate the test case names defined in the 
+ * additionalTCs.xml file into the complete list of test case names for execution by the driver.
+ *
+ * This is the main portlet for the test cases. If the test cases call for events, this portlet
+ * will initiate the events, but not process them. The processing is done in the companion 
+ * portlet ExceptionTests_ValidatorException_ApiRender_event
+ *
+ */
+public class ExceptionTests_ValidatorException_ApiRender implements Portlet, ResourceServingPortlet {
+   private static final String LOG_CLASS = 
+         ExceptionTests_ValidatorException_ApiRender.class.getName();
+   private final Logger LOGGER = Logger.getLogger(LOG_CLASS);
+   
+   private PortletConfig portletConfig = null;
+
+   @Override
+   public void init(PortletConfig config) throws PortletException {
+      this.portletConfig = config;
+   }
+
+   @Override
+   public void destroy() {
+   }
+
+   @Override
+   public void processAction(ActionRequest portletReq, ActionResponse portletResp)
+         throws PortletException, IOException {
+      LOGGER.entering(LOG_CLASS, "main portlet processAction entry");
+
+      portletResp.setRenderParameters(portletReq.getParameterMap());
+      long tid = Thread.currentThread().getId();
+      portletReq.setAttribute(THREADID_ATTR, tid);
+
+      StringWriter writer = new StringWriter();
+
+   }
+
+   @Override
+   public void serveResource(ResourceRequest portletReq, ResourceResponse portletResp)
+         throws PortletException, IOException {
+      LOGGER.entering(LOG_CLASS, "main portlet serveResource entry");
+
+      long tid = Thread.currentThread().getId();
+      portletReq.setAttribute(THREADID_ATTR, tid);
+
+      PrintWriter writer = portletResp.getWriter();
+
+   }
+
+   @Override
+   public void render(RenderRequest portletReq, RenderResponse portletResp)
+         throws PortletException, IOException {
+      LOGGER.entering(LOG_CLASS, "main portlet render entry");
+
+      long tid = Thread.currentThread().getId();
+      portletReq.setAttribute(THREADID_ATTR, tid);
+
+      PrintWriter writer = portletResp.getWriter();
+
+      JSR286ApiTestCaseDetails tcd = new JSR286ApiTestCaseDetails();
+
+      // Create result objects for the tests
+
+      /* TestCase: V2ExceptionTests_ValidatorException_ApiRender_constructor2 */
+      /* Details: "For ValidatorException(java.lang.String,                   */
+      /* java.util.Collection<java.lang.String>), the failedKeys        */
+      /* parameter may be null"                                               */
+      TestResult tr0 = tcd.getTestResultFailed(V2EXCEPTIONTESTS_VALIDATOREXCEPTION_APIRENDER_CONSTRUCTOR2);
+      /* TODO: implement test */
+      tr0.appendTcDetail("Not implemented.");
+      tr0.writeTo(writer);
+
+      /* TestCase: V2ExceptionTests_ValidatorException_ApiRender_constructor4 */
+      /* Details: "For ValidatorException(java.lang.String,                   */
+      /* java.lang.Throwable,                                                 */
+      /* java.util.Collection<java.lang.String>), the failedKeys        */
+      /* parameter may be null"                                               */
+      TestResult tr1 = tcd.getTestResultFailed(V2EXCEPTIONTESTS_VALIDATOREXCEPTION_APIRENDER_CONSTRUCTOR4);
+      /* TODO: implement test */
+      tr1.appendTcDetail("Not implemented.");
+      tr1.writeTo(writer);
+
+      /* TestCase: V2ExceptionTests_ValidatorException_ApiRender_constructor6 */
+      /* Details: "For ValidatorException(java.lang.Throwable,                */
+      /* java.util.Collection<java.lang.String>), the failedKeys        */
+      /* parameter may be null"                                               */
+      TestResult tr2 = tcd.getTestResultFailed(V2EXCEPTIONTESTS_VALIDATOREXCEPTION_APIRENDER_CONSTRUCTOR6);
+      /* TODO: implement test */
+      tr2.appendTcDetail("Not implemented.");
+      tr2.writeTo(writer);
+
+      /* TestCase: V2ExceptionTests_ValidatorException_ApiRender_getFailedKeys1 */
+      /* Details: "Method getFailedKeys(): Returns a                          */
+      /* java.util.Enumeration<java.lang.String> object containing      */
+      /* the preference keys that failed validation"                          */
+      TestResult tr3 = tcd.getTestResultFailed(V2EXCEPTIONTESTS_VALIDATOREXCEPTION_APIRENDER_GETFAILEDKEYS1);
+      /* TODO: implement test */
+      tr3.appendTcDetail("Not implemented.");
+      tr3.writeTo(writer);
+
+      /* TestCase: V2ExceptionTests_ValidatorException_ApiRender_getFailedKeys2 */
+      /* Details: "Method getFailedKeys(): Returns an empty enmueration if    */
+      /* no failed keys are available"                                        */
+      TestResult tr4 = tcd.getTestResultFailed(V2EXCEPTIONTESTS_VALIDATOREXCEPTION_APIRENDER_GETFAILEDKEYS2);
+      /* TODO: implement test */
+      tr4.appendTcDetail("Not implemented.");
+      tr4.writeTo(writer);
+
+   }
+
+}

http://git-wip-us.apache.org/repos/asf/portals-pluto/blob/db1071e7/portlet-tck_3.0/V2ExceptionTests/src/main/java/javax/portlet/tck/portlets/ExceptionTests_ValidatorException_Render.java
----------------------------------------------------------------------
diff --git a/portlet-tck_3.0/V2ExceptionTests/src/main/java/javax/portlet/tck/portlets/ExceptionTests_ValidatorException_Render.java b/portlet-tck_3.0/V2ExceptionTests/src/main/java/javax/portlet/tck/portlets/ExceptionTests_ValidatorException_Render.java
deleted file mode 100644
index bce9f3a..0000000
--- a/portlet-tck_3.0/V2ExceptionTests/src/main/java/javax/portlet/tck/portlets/ExceptionTests_ValidatorException_Render.java
+++ /dev/null
@@ -1,150 +0,0 @@
-/*  Licensed to the Apache Software Foundation (ASF) under one
- *  or more contributor license agreements.  See the NOTICE file
- *  distributed with this work for additional information
- *  regarding copyright ownership.  The ASF licenses this file
- *  to you under the Apache License, Version 2.0 (the
- *  "License"); you may not use this file except in compliance
- *  with the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- *  Unless required by applicable law or agreed to in writing,
- *  software distributed under the License is distributed on an
- *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- *  KIND, either express or implied.  See the License for the
- *  specific language governing permissions and limitations
- *  under the License.
- */
-
-package javax.portlet.tck.portlets;
-
-import java.io.*;
-import java.util.*;
-import java.util.logging.*;
-import static java.util.logging.Logger.*;
-import javax.xml.namespace.QName;
-import javax.portlet.*;
-import javax.portlet.filter.*;
-import javax.servlet.*;
-import javax.servlet.http.*;
-import javax.portlet.tck.beans.*;
-import javax.portlet.tck.constants.*;
-import static javax.portlet.tck.beans.JSR286ApiTestCaseDetails.*;
-import static javax.portlet.tck.constants.Constants.*;
-import static javax.portlet.PortletSession.*;
-import static javax.portlet.ResourceURL.*;
-
-/**
- * This portlet implements several test cases for the JSR 362 TCK. The test case names
- * are defined in the /src/main/resources/xml-resources/additionalTCs.xml
- * file. The build process will integrate the test case names defined in the 
- * additionalTCs.xml file into the complete list of test case names for execution by the driver.
- *
- * This is the main portlet for the test cases. If the test cases call for events, this portlet
- * will initiate the events, but not process them. The processing is done in the companion 
- * portlet ExceptionTests_ValidatorException_Render_event
- *
- */
-public class ExceptionTests_ValidatorException_Render implements Portlet, ResourceServingPortlet {
-   private static final String LOG_CLASS = 
-         ExceptionTests_ValidatorException_Render.class.getName();
-   private final Logger LOGGER = Logger.getLogger(LOG_CLASS);
-   
-   private PortletConfig portletConfig = null;
-
-   @Override
-   public void init(PortletConfig config) throws PortletException {
-      this.portletConfig = config;
-   }
-
-   @Override
-   public void destroy() {
-   }
-
-   @Override
-   public void processAction(ActionRequest portletReq, ActionResponse portletResp)
-         throws PortletException, IOException {
-      LOGGER.entering(LOG_CLASS, "main portlet processAction entry");
-
-      portletResp.setRenderParameters(portletReq.getParameterMap());
-      long tid = Thread.currentThread().getId();
-      portletReq.setAttribute(THREADID_ATTR, tid);
-
-      StringWriter writer = new StringWriter();
-
-   }
-
-   @Override
-   public void serveResource(ResourceRequest portletReq, ResourceResponse portletResp)
-         throws PortletException, IOException {
-      LOGGER.entering(LOG_CLASS, "main portlet serveResource entry");
-
-      long tid = Thread.currentThread().getId();
-      portletReq.setAttribute(THREADID_ATTR, tid);
-
-      PrintWriter writer = portletResp.getWriter();
-
-   }
-
-   @Override
-   public void render(RenderRequest portletReq, RenderResponse portletResp)
-         throws PortletException, IOException {
-      LOGGER.entering(LOG_CLASS, "main portlet render entry");
-
-      long tid = Thread.currentThread().getId();
-      portletReq.setAttribute(THREADID_ATTR, tid);
-
-      PrintWriter writer = portletResp.getWriter();
-
-      JSR286ApiTestCaseDetails tcd = new JSR286ApiTestCaseDetails();
-
-      // Create result objects for the tests
-
-      /* TestCase: V2ExceptionTests_ValidatorException_Render_constructor2    */
-      /* Details: "For ValidatorException(java.lang.String,                   */
-      /* java.util.Collection<java.lang.String>), the failedKeys        */
-      /* parameter may be null"                                               */
-      TestResult tr0 = tcd.getTestResultFailed(V2EXCEPTIONTESTS_VALIDATOREXCEPTION_RENDER_CONSTRUCTOR2);
-      /* TODO: implement test */
-      tr0.appendTcDetail("Not implemented.");
-      tr0.writeTo(writer);
-
-      /* TestCase: V2ExceptionTests_ValidatorException_Render_constructor4    */
-      /* Details: "For ValidatorException(java.lang.String,                   */
-      /* java.lang.Throwable,                                                 */
-      /* java.util.Collection<java.lang.String>), the failedKeys        */
-      /* parameter may be null"                                               */
-      TestResult tr1 = tcd.getTestResultFailed(V2EXCEPTIONTESTS_VALIDATOREXCEPTION_RENDER_CONSTRUCTOR4);
-      /* TODO: implement test */
-      tr1.appendTcDetail("Not implemented.");
-      tr1.writeTo(writer);
-
-      /* TestCase: V2ExceptionTests_ValidatorException_Render_constructor6    */
-      /* Details: "For ValidatorException(java.lang.Throwable,                */
-      /* java.util.Collection<java.lang.String>), the failedKeys        */
-      /* parameter may be null"                                               */
-      TestResult tr2 = tcd.getTestResultFailed(V2EXCEPTIONTESTS_VALIDATOREXCEPTION_RENDER_CONSTRUCTOR6);
-      /* TODO: implement test */
-      tr2.appendTcDetail("Not implemented.");
-      tr2.writeTo(writer);
-
-      /* TestCase: V2ExceptionTests_ValidatorException_Render_getFailedKeys1  */
-      /* Details: "Method getFailedKeys(): Returns a                          */
-      /* java.util.Enumeration<java.lang.String> object containing      */
-      /* the preference keys that failed validation"                          */
-      TestResult tr3 = tcd.getTestResultFailed(V2EXCEPTIONTESTS_VALIDATOREXCEPTION_RENDER_GETFAILEDKEYS1);
-      /* TODO: implement test */
-      tr3.appendTcDetail("Not implemented.");
-      tr3.writeTo(writer);
-
-      /* TestCase: V2ExceptionTests_ValidatorException_Render_getFailedKeys2  */
-      /* Details: "Method getFailedKeys(): Returns an empty enmueration if    */
-      /* no failed keys are available"                                        */
-      TestResult tr4 = tcd.getTestResultFailed(V2EXCEPTIONTESTS_VALIDATOREXCEPTION_RENDER_GETFAILEDKEYS2);
-      /* TODO: implement test */
-      tr4.appendTcDetail("Not implemented.");
-      tr4.writeTo(writer);
-
-   }
-
-}

http://git-wip-us.apache.org/repos/asf/portals-pluto/blob/db1071e7/portlet-tck_3.0/V2ExceptionTests/src/main/java/javax/portlet/tck/portlets/ExceptionTests_WindowStateException_ApiRender.java
----------------------------------------------------------------------
diff --git a/portlet-tck_3.0/V2ExceptionTests/src/main/java/javax/portlet/tck/portlets/ExceptionTests_WindowStateException_ApiRender.java b/portlet-tck_3.0/V2ExceptionTests/src/main/java/javax/portlet/tck/portlets/ExceptionTests_WindowStateException_ApiRender.java
new file mode 100644
index 0000000..0fbd089
--- /dev/null
+++ b/portlet-tck_3.0/V2ExceptionTests/src/main/java/javax/portlet/tck/portlets/ExceptionTests_WindowStateException_ApiRender.java
@@ -0,0 +1,113 @@
+/*  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *    http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES 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.portlets;
+
+import java.io.*;
+import java.util.*;
+import java.util.logging.*;
+import static java.util.logging.Logger.*;
+import javax.xml.namespace.QName;
+import javax.portlet.*;
+import javax.portlet.filter.*;
+import javax.servlet.*;
+import javax.servlet.http.*;
+import javax.portlet.tck.beans.*;
+import javax.portlet.tck.constants.*;
+import static javax.portlet.tck.beans.JSR286ApiTestCaseDetails.*;
+import static javax.portlet.tck.constants.Constants.*;
+import static javax.portlet.PortletSession.*;
+import static javax.portlet.ResourceURL.*;
+
+/**
+ * This portlet implements several test cases for the JSR 362 TCK. The test case names
+ * are defined in the /src/main/resources/xml-resources/additionalTCs.xml
+ * file. The build process will integrate the test case names defined in the 
+ * additionalTCs.xml file into the complete list of test case names for execution by the driver.
+ *
+ * This is the main portlet for the test cases. If the test cases call for events, this portlet
+ * will initiate the events, but not process them. The processing is done in the companion 
+ * portlet ExceptionTests_WindowStateException_ApiRender_event
+ *
+ */
+public class ExceptionTests_WindowStateException_ApiRender implements Portlet, ResourceServingPortlet {
+   private static final String LOG_CLASS = 
+         ExceptionTests_WindowStateException_ApiRender.class.getName();
+   private final Logger LOGGER = Logger.getLogger(LOG_CLASS);
+   
+   private PortletConfig portletConfig = null;
+
+   @Override
+   public void init(PortletConfig config) throws PortletException {
+      this.portletConfig = config;
+   }
+
+   @Override
+   public void destroy() {
+   }
+
+   @Override
+   public void processAction(ActionRequest portletReq, ActionResponse portletResp)
+         throws PortletException, IOException {
+      LOGGER.entering(LOG_CLASS, "main portlet processAction entry");
+
+      portletResp.setRenderParameters(portletReq.getParameterMap());
+      long tid = Thread.currentThread().getId();
+      portletReq.setAttribute(THREADID_ATTR, tid);
+
+      StringWriter writer = new StringWriter();
+
+   }
+
+   @Override
+   public void serveResource(ResourceRequest portletReq, ResourceResponse portletResp)
+         throws PortletException, IOException {
+      LOGGER.entering(LOG_CLASS, "main portlet serveResource entry");
+
+      long tid = Thread.currentThread().getId();
+      portletReq.setAttribute(THREADID_ATTR, tid);
+
+      PrintWriter writer = portletResp.getWriter();
+
+   }
+
+   @Override
+   public void render(RenderRequest portletReq, RenderResponse portletResp)
+         throws PortletException, IOException {
+      LOGGER.entering(LOG_CLASS, "main portlet render entry");
+
+      long tid = Thread.currentThread().getId();
+      portletReq.setAttribute(THREADID_ATTR, tid);
+
+      PrintWriter writer = portletResp.getWriter();
+
+      JSR286ApiTestCaseDetails tcd = new JSR286ApiTestCaseDetails();
+
+      // Create result objects for the tests
+
+      /* TestCase: V2ExceptionTests_WindowStateException_ApiRender_getState   */
+      /* Details: "Method getState(): Returns the WindowState object          */
+      /* causing this exception"                                              */
+      TestResult tr0 = tcd.getTestResultFailed(V2EXCEPTIONTESTS_WINDOWSTATEEXCEPTION_APIRENDER_GETSTATE);
+      /* TODO: implement test */
+      tr0.appendTcDetail("Not implemented.");
+      tr0.writeTo(writer);
+
+   }
+
+}

http://git-wip-us.apache.org/repos/asf/portals-pluto/blob/db1071e7/portlet-tck_3.0/V2ExceptionTests/src/main/java/javax/portlet/tck/portlets/ExceptionTests_WindowStateException_Render.java
----------------------------------------------------------------------
diff --git a/portlet-tck_3.0/V2ExceptionTests/src/main/java/javax/portlet/tck/portlets/ExceptionTests_WindowStateException_Render.java b/portlet-tck_3.0/V2ExceptionTests/src/main/java/javax/portlet/tck/portlets/ExceptionTests_WindowStateException_Render.java
deleted file mode 100644
index a5030d6..0000000
--- a/portlet-tck_3.0/V2ExceptionTests/src/main/java/javax/portlet/tck/portlets/ExceptionTests_WindowStateException_Render.java
+++ /dev/null
@@ -1,113 +0,0 @@
-/*  Licensed to the Apache Software Foundation (ASF) under one
- *  or more contributor license agreements.  See the NOTICE file
- *  distributed with this work for additional information
- *  regarding copyright ownership.  The ASF licenses this file
- *  to you under the Apache License, Version 2.0 (the
- *  "License"); you may not use this file except in compliance
- *  with the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- *  Unless required by applicable law or agreed to in writing,
- *  software distributed under the License is distributed on an
- *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- *  KIND, either express or implied.  See the License for the
- *  specific language governing permissions and limitations
- *  under the License.
- */
-
-package javax.portlet.tck.portlets;
-
-import java.io.*;
-import java.util.*;
-import java.util.logging.*;
-import static java.util.logging.Logger.*;
-import javax.xml.namespace.QName;
-import javax.portlet.*;
-import javax.portlet.filter.*;
-import javax.servlet.*;
-import javax.servlet.http.*;
-import javax.portlet.tck.beans.*;
-import javax.portlet.tck.constants.*;
-import static javax.portlet.tck.beans.JSR286ApiTestCaseDetails.*;
-import static javax.portlet.tck.constants.Constants.*;
-import static javax.portlet.PortletSession.*;
-import static javax.portlet.ResourceURL.*;
-
-/**
- * This portlet implements several test cases for the JSR 362 TCK. The test case names
- * are defined in the /src/main/resources/xml-resources/additionalTCs.xml
- * file. The build process will integrate the test case names defined in the 
- * additionalTCs.xml file into the complete list of test case names for execution by the driver.
- *
- * This is the main portlet for the test cases. If the test cases call for events, this portlet
- * will initiate the events, but not process them. The processing is done in the companion 
- * portlet ExceptionTests_WindowStateException_Render_event
- *
- */
-public class ExceptionTests_WindowStateException_Render implements Portlet, ResourceServingPortlet {
-   private static final String LOG_CLASS = 
-         ExceptionTests_WindowStateException_Render.class.getName();
-   private final Logger LOGGER = Logger.getLogger(LOG_CLASS);
-   
-   private PortletConfig portletConfig = null;
-
-   @Override
-   public void init(PortletConfig config) throws PortletException {
-      this.portletConfig = config;
-   }
-
-   @Override
-   public void destroy() {
-   }
-
-   @Override
-   public void processAction(ActionRequest portletReq, ActionResponse portletResp)
-         throws PortletException, IOException {
-      LOGGER.entering(LOG_CLASS, "main portlet processAction entry");
-
-      portletResp.setRenderParameters(portletReq.getParameterMap());
-      long tid = Thread.currentThread().getId();
-      portletReq.setAttribute(THREADID_ATTR, tid);
-
-      StringWriter writer = new StringWriter();
-
-   }
-
-   @Override
-   public void serveResource(ResourceRequest portletReq, ResourceResponse portletResp)
-         throws PortletException, IOException {
-      LOGGER.entering(LOG_CLASS, "main portlet serveResource entry");
-
-      long tid = Thread.currentThread().getId();
-      portletReq.setAttribute(THREADID_ATTR, tid);
-
-      PrintWriter writer = portletResp.getWriter();
-
-   }
-
-   @Override
-   public void render(RenderRequest portletReq, RenderResponse portletResp)
-         throws PortletException, IOException {
-      LOGGER.entering(LOG_CLASS, "main portlet render entry");
-
-      long tid = Thread.currentThread().getId();
-      portletReq.setAttribute(THREADID_ATTR, tid);
-
-      PrintWriter writer = portletResp.getWriter();
-
-      JSR286ApiTestCaseDetails tcd = new JSR286ApiTestCaseDetails();
-
-      // Create result objects for the tests
-
-      /* TestCase: V2ExceptionTests_WindowStateException_Render_getState      */
-      /* Details: "Method getState(): Returns the WindowState object          */
-      /* causing this exception"                                              */
-      TestResult tr0 = tcd.getTestResultFailed(V2EXCEPTIONTESTS_WINDOWSTATEEXCEPTION_RENDER_GETSTATE);
-      /* TODO: implement test */
-      tr0.appendTcDetail("Not implemented.");
-      tr0.writeTo(writer);
-
-   }
-
-}

http://git-wip-us.apache.org/repos/asf/portals-pluto/blob/db1071e7/portlet-tck_3.0/V2ExceptionTests/src/main/resources/xml-resources/additionalTCs.xml
----------------------------------------------------------------------
diff --git a/portlet-tck_3.0/V2ExceptionTests/src/main/resources/xml-resources/additionalTCs.xml b/portlet-tck_3.0/V2ExceptionTests/src/main/resources/xml-resources/additionalTCs.xml
index 8d18787..0a79e54 100644
--- a/portlet-tck_3.0/V2ExceptionTests/src/main/resources/xml-resources/additionalTCs.xml
+++ b/portlet-tck_3.0/V2ExceptionTests/src/main/resources/xml-resources/additionalTCs.xml
@@ -20,16 +20,16 @@
 <!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
 <properties>
 <!-- JSR 286 API ExceptionTests test case names and page mappings -->
-<entry key="V2ExceptionTests_PortletModeException_Render_hasGetMode2">V2ExceptionTests</entry>
-<entry key="V2ExceptionTests_UnavailableException_Render_isPermanent1">V2ExceptionTests</entry>
-<entry key="V2ExceptionTests_UnavailableException_Render_isPermanent2">V2ExceptionTests</entry>
-<entry key="V2ExceptionTests_UnavailableException_Render_isPermanent3">V2ExceptionTests</entry>
-<entry key="V2ExceptionTests_UnavailableException_Render_getUnavailableSeconds1">V2ExceptionTests</entry>
-<entry key="V2ExceptionTests_UnavailableException_Render_getUnavailableSeconds2">V2ExceptionTests</entry>
-<entry key="V2ExceptionTests_ValidatorException_Render_constructor2">V2ExceptionTests</entry>
-<entry key="V2ExceptionTests_ValidatorException_Render_constructor4">V2ExceptionTests</entry>
-<entry key="V2ExceptionTests_ValidatorException_Render_constructor6">V2ExceptionTests</entry>
-<entry key="V2ExceptionTests_ValidatorException_Render_getFailedKeys1">V2ExceptionTests</entry>
-<entry key="V2ExceptionTests_ValidatorException_Render_getFailedKeys2">V2ExceptionTests</entry>
-<entry key="V2ExceptionTests_WindowStateException_Render_getState">V2ExceptionTests</entry>
+<entry key="V2ExceptionTests_PortletModeException_ApiRender_hasGetMode2">V2ExceptionTests</entry>
+<entry key="V2ExceptionTests_UnavailableException_ApiRender_isPermanent1">V2ExceptionTests</entry>
+<entry key="V2ExceptionTests_UnavailableException_ApiRender_isPermanent2">V2ExceptionTests</entry>
+<entry key="V2ExceptionTests_UnavailableException_ApiRender_isPermanent3">V2ExceptionTests</entry>
+<entry key="V2ExceptionTests_UnavailableException_ApiRender_getUnavailableSeconds1">V2ExceptionTests</entry>
+<entry key="V2ExceptionTests_UnavailableException_ApiRender_getUnavailableSeconds2">V2ExceptionTests</entry>
+<entry key="V2ExceptionTests_ValidatorException_ApiRender_constructor2">V2ExceptionTests</entry>
+<entry key="V2ExceptionTests_ValidatorException_ApiRender_constructor4">V2ExceptionTests</entry>
+<entry key="V2ExceptionTests_ValidatorException_ApiRender_constructor6">V2ExceptionTests</entry>
+<entry key="V2ExceptionTests_ValidatorException_ApiRender_getFailedKeys1">V2ExceptionTests</entry>
+<entry key="V2ExceptionTests_ValidatorException_ApiRender_getFailedKeys2">V2ExceptionTests</entry>
+<entry key="V2ExceptionTests_WindowStateException_ApiRender_getState">V2ExceptionTests</entry>
 </properties>

http://git-wip-us.apache.org/repos/asf/portals-pluto/blob/db1071e7/portlet-tck_3.0/V2ExceptionTests/src/main/webapp/WEB-INF/portlet.xml
----------------------------------------------------------------------
diff --git a/portlet-tck_3.0/V2ExceptionTests/src/main/webapp/WEB-INF/portlet.xml b/portlet-tck_3.0/V2ExceptionTests/src/main/webapp/WEB-INF/portlet.xml
index 3bd320e..67f44cc 100644
--- a/portlet-tck_3.0/V2ExceptionTests/src/main/webapp/WEB-INF/portlet.xml
+++ b/portlet-tck_3.0/V2ExceptionTests/src/main/webapp/WEB-INF/portlet.xml
@@ -23,94 +23,96 @@
    xmlns:tck="http://www.apache.org/portals/pluto/portlet-tck_3.0"
    version="2.0" id="V2ExceptionTests">
    <portlet>
-      <portlet-name>ExceptionTests_PortletModeException_Render</portlet-name>
-      <portlet-class>javax.portlet.tck.portlets.ExceptionTests_PortletModeException_Render</portlet-class>
+      <portlet-name>ExceptionTests_PortletModeException_ApiRender</portlet-name>
+      <portlet-class>javax.portlet.tck.portlets.ExceptionTests_PortletModeException_ApiRender</portlet-class>
       <expiration-cache>0</expiration-cache>
       <supports>
          <mime-type>text/html</mime-type>
       </supports>
       <supported-locale>en_US</supported-locale>
       <portlet-info>
-         <title>ExceptionTests_PortletModeException_Render</title>
+         <title>ExceptionTests_PortletModeException_ApiRender</title>
       </portlet-info>
    </portlet>
 
    <portlet>
-      <portlet-name>ExceptionTests_UnavailableException_Render</portlet-name>
-      <portlet-class>javax.portlet.tck.portlets.ExceptionTests_UnavailableException_Render</portlet-class>
+      <portlet-name>ExceptionTests_UnavailableException_ApiRender</portlet-name>
+      <portlet-class>javax.portlet.tck.portlets.ExceptionTests_UnavailableException_ApiRender</portlet-class>
       <expiration-cache>0</expiration-cache>
       <supports>
          <mime-type>text/html</mime-type>
       </supports>
       <supported-locale>en_US</supported-locale>
       <portlet-info>
-         <title>ExceptionTests_UnavailableException_Render</title>
+         <title>ExceptionTests_UnavailableException_ApiRender</title>
       </portlet-info>
    </portlet>
 
    <portlet>
-      <portlet-name>ExceptionTests_ValidatorException_Render</portlet-name>
-      <portlet-class>javax.portlet.tck.portlets.ExceptionTests_ValidatorException_Render</portlet-class>
+      <portlet-name>ExceptionTests_ValidatorException_ApiRender</portlet-name>
+      <portlet-class>javax.portlet.tck.portlets.ExceptionTests_ValidatorException_ApiRender</portlet-class>
       <expiration-cache>0</expiration-cache>
       <supports>
          <mime-type>text/html</mime-type>
       </supports>
       <supported-locale>en_US</supported-locale>
       <portlet-info>
-         <title>ExceptionTests_ValidatorException_Render</title>
+         <title>ExceptionTests_ValidatorException_ApiRender</title>
       </portlet-info>
    </portlet>
 
    <portlet>
-      <portlet-name>ExceptionTests_WindowStateException_Render</portlet-name>
-      <portlet-class>javax.portlet.tck.portlets.ExceptionTests_WindowStateException_Render</portlet-class>
+      <portlet-name>ExceptionTests_WindowStateException_ApiRender</portlet-name>
+      <portlet-class>javax.portlet.tck.portlets.ExceptionTests_WindowStateException_ApiRender</portlet-class>
       <expiration-cache>0</expiration-cache>
       <supports>
          <mime-type>text/html</mime-type>
       </supports>
       <supported-locale>en_US</supported-locale>
       <portlet-info>
-         <title>ExceptionTests_WindowStateException_Render</title>
+         <title>ExceptionTests_WindowStateException_ApiRender</title>
       </portlet-info>
    </portlet>
 
+
+
    <event-definition>
-      <qname>tck:FilterTests_FilterChain_EventFilter</qname>
+      <qname>tck:FilterTests_FilterChain_ApiEventFilter</qname>
       <value-type>java.lang.String</value-type>
    </event-definition>
 
    <event-definition>
-      <qname>tck:FilterTests_PortletFilter_EventFilter</qname>
+      <qname>tck:FilterTests_PortletFilter_ApiEventFilter</qname>
       <value-type>java.lang.String</value-type>
    </event-definition>
 
    <event-definition>
-      <qname>tck:FilterTests_EventFilter_EventFilter</qname>
+      <qname>tck:FilterTests_EventFilter_ApiEventFilter</qname>
       <value-type>java.lang.String</value-type>
    </event-definition>
 
    <event-definition>
-      <qname>tck:RequestTests_PortletRequest_Event</qname>
+      <qname>tck:RequestTests_PortletRequest_ApiEvent</qname>
       <value-type>java.lang.String</value-type>
    </event-definition>
 
    <event-definition>
-      <qname>tck:RequestTests_EventRequest_Event</qname>
+      <qname>tck:RequestTests_EventRequest_ApiEvent</qname>
       <value-type>java.lang.String</value-type>
    </event-definition>
 
    <event-definition>
-      <qname>tck:ResponseTests_PortletResponse_Event</qname>
+      <qname>tck:ResponseTests_PortletResponse_ApiEvent</qname>
       <value-type>java.lang.String</value-type>
    </event-definition>
 
    <event-definition>
-      <qname>tck:ResponseTests_StateAwareResponse_Event</qname>
+      <qname>tck:ResponseTests_StateAwareResponse_ApiEvent</qname>
       <value-type>java.lang.String</value-type>
    </event-definition>
 
    <event-definition>
-      <qname>tck:ResponseTests_EventResponse_Event</qname>
+      <qname>tck:ResponseTests_EventResponse_ApiEvent</qname>
       <value-type>java.lang.String</value-type>
    </event-definition>
 

http://git-wip-us.apache.org/repos/asf/portals-pluto/blob/db1071e7/portlet-tck_3.0/V2FilterTests/src/main/java/javax/portlet/tck/filters/FilterTests_ActionFilter_ApiActionFilter_filter.java
----------------------------------------------------------------------
diff --git a/portlet-tck_3.0/V2FilterTests/src/main/java/javax/portlet/tck/filters/FilterTests_ActionFilter_ApiActionFilter_filter.java b/portlet-tck_3.0/V2FilterTests/src/main/java/javax/portlet/tck/filters/FilterTests_ActionFilter_ApiActionFilter_filter.java
new file mode 100644
index 0000000..1b4c422
--- /dev/null
+++ b/portlet-tck_3.0/V2FilterTests/src/main/java/javax/portlet/tck/filters/FilterTests_ActionFilter_ApiActionFilter_filter.java
@@ -0,0 +1,160 @@
+/*  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *    http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES 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.filters;
+
+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.portlet.tck.beans.*;
+import javax.portlet.tck.constants.*;
+import static javax.portlet.tck.constants.Constants.*;
+import static javax.portlet.tck.beans.JSR286ApiTestCaseDetails.*;
+import static javax.portlet.PortletSession.*;
+import static javax.portlet.ResourceURL.*;
+
+/**
+ * Filter for JSR 362 request dispatcher testing.
+ * Used by portlet: FilterTests_ActionFilter_ApiActionFilter
+ *
+ * @author nick
+ *
+ */
+public class FilterTests_ActionFilter_ApiActionFilter_filter implements ActionFilter {
+   private static final String LOG_CLASS = 
+         FilterTests_ActionFilter_ApiActionFilter_filter.class.getName();
+   private final Logger LOGGER = Logger.getLogger(LOG_CLASS);
+
+   private FilterConfig filterConfig;
+
+   @Override
+   public void init(FilterConfig filterConfig) throws PortletException {
+      this.filterConfig = filterConfig;
+   }
+
+   @Override
+   public void destroy() {
+   }
+
+   @Override
+   public void doFilter(ActionRequest portletReq, ActionResponse portletResp,
+         FilterChain chain) throws IOException, PortletException {
+      LOGGER.entering(LOG_CLASS, "doFilter");
+
+      StringWriter writer = new StringWriter();
+
+      // first execute the chain
+
+      chain.doFilter(portletReq, portletResp);
+
+      // now do the tests and write output
+
+      JSR286ApiTestCaseDetails tcd = new JSR286ApiTestCaseDetails();
+
+      // Create result objects for the tests
+
+      /* TestCase: V2FilterTests_ActionFilter_ApiActionFilter_canBeConfigured1 */
+      /* Details: "An ActionFilter can be configured in the portlet           */
+      /* descriptor"                                                          */
+      TestResult tr0 = tcd.getTestResultFailed(V2FILTERTESTS_ACTIONFILTER_APIACTIONFILTER_CANBECONFIGURED1);
+      /* TODO: implement test */
+      tr0.appendTcDetail("Not implemented.");
+      tr0.writeTo(writer);
+
+      /* TestCase: V2FilterTests_ActionFilter_ApiActionFilter_canBeConfigured2 */
+      /* Details: "Multiple ActionFilter classes can be configured in the     */
+      /* portlet descriptor"                                                  */
+      TestResult tr1 = tcd.getTestResultFailed(V2FILTERTESTS_ACTIONFILTER_APIACTIONFILTER_CANBECONFIGURED2);
+      /* TODO: implement test */
+      tr1.appendTcDetail("Not implemented.");
+      tr1.writeTo(writer);
+
+      /* TestCase: V2FilterTests_ActionFilter_ApiActionFilter_doFilterIsCalled */
+      /* Details: "The doFilter(ActionRequest, ActionResponse,                */
+      /* FilterChain): method is called before the processAction method for   */
+      /* the portlet"                                                         */
+      TestResult tr2 = tcd.getTestResultFailed(V2FILTERTESTS_ACTIONFILTER_APIACTIONFILTER_DOFILTERISCALLED);
+      /* TODO: implement test */
+      tr2.appendTcDetail("Not implemented.");
+      tr2.writeTo(writer);
+
+      /* TestCase: V2FilterTests_ActionFilter_ApiActionFilter_doFilterProcessAction1 */
+      /* Details: "After the doFilter(ActionRequest, ActionResponse,          */
+      /* FilterChain): method has sucessfully completed and invokes the       */
+      /* next filter, the processActionMethod is called"                      */
+      TestResult tr3 = tcd.getTestResultFailed(V2FILTERTESTS_ACTIONFILTER_APIACTIONFILTER_DOFILTERPROCESSACTION1);
+      /* TODO: implement test */
+      tr3.appendTcDetail("Not implemented.");
+      tr3.writeTo(writer);
+
+      /* TestCase: V2FilterTests_ActionFilter_ApiActionFilter_doFilterProcessAction2 */
+      /* Details: "After the doFilter(ActionRequest, ActionResponse,          */
+      /* FilterChain): method has sucessfully completed and invokes the       */
+      /* next filter, the next filter in the chain is called if multiple      */
+      /* filters are defined"                                                 */
+      TestResult tr4 = tcd.getTestResultFailed(V2FILTERTESTS_ACTIONFILTER_APIACTIONFILTER_DOFILTERPROCESSACTION2);
+      /* TODO: implement test */
+      tr4.appendTcDetail("Not implemented.");
+      tr4.writeTo(writer);
+
+      /* TestCase: V2FilterTests_ActionFilter_ApiActionFilter_doFilterBlock   */
+      /* Details: "If the doFilter(ActionRequest, ActionResponse,             */
+      /* FilterChain): method does not invoke the next filter,                */
+      /* processAction is not called"                                         */
+      TestResult tr5 = tcd.getTestResultFailed(V2FILTERTESTS_ACTIONFILTER_APIACTIONFILTER_DOFILTERBLOCK);
+      /* TODO: implement test */
+      tr5.appendTcDetail("Not implemented.");
+      tr5.writeTo(writer);
+
+      /* TestCase: V2FilterTests_ActionFilter_ApiActionFilter_doFilterException1 */
+      /* Details: "If the doFilter(ActionRequest, ActionResponse,             */
+      /* FilterChain): method throws an UnavailableException, processAction   */
+      /* is not called"                                                       */
+      TestResult tr6 = tcd.getTestResultFailed(V2FILTERTESTS_ACTIONFILTER_APIACTIONFILTER_DOFILTEREXCEPTION1);
+      /* TODO: implement test */
+      tr6.appendTcDetail("Not implemented.");
+      tr6.writeTo(writer);
+
+      /* TestCase: V2FilterTests_ActionFilter_ApiActionFilter_doFilterException2 */
+      /* Details: "If the doFilter(ActionRequest, ActionResponse,             */
+      /* FilterChain): method throws an UnavailableException, no further      */
+      /* filter is called"                                                    */
+      TestResult tr7 = tcd.getTestResultFailed(V2FILTERTESTS_ACTIONFILTER_APIACTIONFILTER_DOFILTEREXCEPTION2);
+      /* TODO: implement test */
+      tr7.appendTcDetail("Not implemented.");
+      tr7.writeTo(writer);
+
+      /* TestCase: V2FilterTests_ActionFilter_ApiActionFilter_doFilterExamine */
+      /* Details: "Method doFilter(ActionRequest, ActionResponse,             */
+      /* FilterChain): After the next filter has been successfully invoked,   */
+      /* the ActionResponse may be examined"                                  */
+      TestResult tr8 = tcd.getTestResultFailed(V2FILTERTESTS_ACTIONFILTER_APIACTIONFILTER_DOFILTEREXAMINE);
+      /* TODO: implement test */
+      tr8.appendTcDetail("Not implemented.");
+      tr8.writeTo(writer);
+
+      portletReq.getPortletSession().setAttribute(
+                   Constants.RESULT_ATTR_PREFIX + "FilterTests_ActionFilter_ApiActionFilter",
+                   writer.toString(), APPLICATION_SCOPE);
+
+   }
+}

http://git-wip-us.apache.org/repos/asf/portals-pluto/blob/db1071e7/portlet-tck_3.0/V2FilterTests/src/main/java/javax/portlet/tck/filters/FilterTests_EventFilter_ApiEventFilter_filter.java
----------------------------------------------------------------------
diff --git a/portlet-tck_3.0/V2FilterTests/src/main/java/javax/portlet/tck/filters/FilterTests_EventFilter_ApiEventFilter_filter.java b/portlet-tck_3.0/V2FilterTests/src/main/java/javax/portlet/tck/filters/FilterTests_EventFilter_ApiEventFilter_filter.java
new file mode 100644
index 0000000..b0f72fc
--- /dev/null
+++ b/portlet-tck_3.0/V2FilterTests/src/main/java/javax/portlet/tck/filters/FilterTests_EventFilter_ApiEventFilter_filter.java
@@ -0,0 +1,159 @@
+/*  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *    http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES 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.filters;
+
+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.portlet.tck.beans.*;
+import javax.portlet.tck.constants.*;
+import static javax.portlet.tck.constants.Constants.*;
+import static javax.portlet.tck.beans.JSR286ApiTestCaseDetails.*;
+import static javax.portlet.PortletSession.*;
+import static javax.portlet.ResourceURL.*;
+
+/**
+ * Filter for JSR 362 request dispatcher testing.
+ * Used by portlet: FilterTests_EventFilter_ApiEventFilter
+ *
+ * @author nick
+ *
+ */
+public class FilterTests_EventFilter_ApiEventFilter_filter implements EventFilter {
+   private static final String LOG_CLASS = 
+         FilterTests_EventFilter_ApiEventFilter_filter.class.getName();
+   private final Logger LOGGER = Logger.getLogger(LOG_CLASS);
+
+   private FilterConfig filterConfig;
+
+   @Override
+   public void init(FilterConfig filterConfig) throws PortletException {
+      this.filterConfig = filterConfig;
+   }
+
+   @Override
+   public void destroy() {
+   }
+
+   @Override
+   public void doFilter(EventRequest portletReq, EventResponse portletResp,
+         FilterChain chain) throws IOException, PortletException {
+      LOGGER.entering(LOG_CLASS, "doFilter");
+
+      StringWriter writer = new StringWriter();
+
+      // first execute the chain
+
+      chain.doFilter(portletReq, portletResp);
+
+      // now do the tests and write output
+
+      JSR286ApiTestCaseDetails tcd = new JSR286ApiTestCaseDetails();
+
+      // Create result objects for the tests
+
+      /* TestCase: V2FilterTests_EventFilter_ApiEventFilter_canBeConfigured1  */
+      /* Details: "An EventFilter can be configured in the portlet            */
+      /* descriptor"                                                          */
+      TestResult tr0 = tcd.getTestResultFailed(V2FILTERTESTS_EVENTFILTER_APIEVENTFILTER_CANBECONFIGURED1);
+      /* TODO: implement test */
+      tr0.appendTcDetail("Not implemented.");
+      tr0.writeTo(writer);
+
+      /* TestCase: V2FilterTests_EventFilter_ApiEventFilter_canBeConfigured2  */
+      /* Details: "Multiple EventFilter classes can be configured in the      */
+      /* portlet descriptor"                                                  */
+      TestResult tr1 = tcd.getTestResultFailed(V2FILTERTESTS_EVENTFILTER_APIEVENTFILTER_CANBECONFIGURED2);
+      /* TODO: implement test */
+      tr1.appendTcDetail("Not implemented.");
+      tr1.writeTo(writer);
+
+      /* TestCase: V2FilterTests_EventFilter_ApiEventFilter_doFilterIsCalled  */
+      /* Details: "The doFilter(EventRequest, EventResponse, FilterChain):    */
+      /* method is called before the processEvent method for the portlet"     */
+      TestResult tr2 = tcd.getTestResultFailed(V2FILTERTESTS_EVENTFILTER_APIEVENTFILTER_DOFILTERISCALLED);
+      /* TODO: implement test */
+      tr2.appendTcDetail("Not implemented.");
+      tr2.writeTo(writer);
+
+      /* TestCase: V2FilterTests_EventFilter_ApiEventFilter_doFilterProcessEvent1 */
+      /* Details: "After the doFilter(EventRequest, EventResponse,            */
+      /* FilterChain): method has sucessfully completed and invokes the       */
+      /* next filter, the processEventMethod is called"                       */
+      TestResult tr3 = tcd.getTestResultFailed(V2FILTERTESTS_EVENTFILTER_APIEVENTFILTER_DOFILTERPROCESSEVENT1);
+      /* TODO: implement test */
+      tr3.appendTcDetail("Not implemented.");
+      tr3.writeTo(writer);
+
+      /* TestCase: V2FilterTests_EventFilter_ApiEventFilter_doFilterProcessEvent2 */
+      /* Details: "After the doFilter(EventRequest, EventResponse,            */
+      /* FilterChain): method has sucessfully completed and invokes the       */
+      /* next filter, the next filter in the chain is called if multiple      */
+      /* filters are defined"                                                 */
+      TestResult tr4 = tcd.getTestResultFailed(V2FILTERTESTS_EVENTFILTER_APIEVENTFILTER_DOFILTERPROCESSEVENT2);
+      /* TODO: implement test */
+      tr4.appendTcDetail("Not implemented.");
+      tr4.writeTo(writer);
+
+      /* TestCase: V2FilterTests_EventFilter_ApiEventFilter_doFilterBlock     */
+      /* Details: "If the doFilter(EventRequest, EventResponse,               */
+      /* FilterChain): method does not invoke the next filter, processEvent   */
+      /* is not called"                                                       */
+      TestResult tr5 = tcd.getTestResultFailed(V2FILTERTESTS_EVENTFILTER_APIEVENTFILTER_DOFILTERBLOCK);
+      /* TODO: implement test */
+      tr5.appendTcDetail("Not implemented.");
+      tr5.writeTo(writer);
+
+      /* TestCase: V2FilterTests_EventFilter_ApiEventFilter_doFilterException1 */
+      /* Details: "If the doFilter(EventRequest, EventResponse,               */
+      /* FilterChain): method throws an UnavailableException, processEvent    */
+      /* is not called"                                                       */
+      TestResult tr6 = tcd.getTestResultFailed(V2FILTERTESTS_EVENTFILTER_APIEVENTFILTER_DOFILTEREXCEPTION1);
+      /* TODO: implement test */
+      tr6.appendTcDetail("Not implemented.");
+      tr6.writeTo(writer);
+
+      /* TestCase: V2FilterTests_EventFilter_ApiEventFilter_doFilterException2 */
+      /* Details: "If the doFilter(EventRequest, EventResponse,               */
+      /* FilterChain): method throws an UnavailableException, no further      */
+      /* filter is called"                                                    */
+      TestResult tr7 = tcd.getTestResultFailed(V2FILTERTESTS_EVENTFILTER_APIEVENTFILTER_DOFILTEREXCEPTION2);
+      /* TODO: implement test */
+      tr7.appendTcDetail("Not implemented.");
+      tr7.writeTo(writer);
+
+      /* TestCase: V2FilterTests_EventFilter_ApiEventFilter_doFilterExamine   */
+      /* Details: "Method doFilter(EventRequest, EventResponse,               */
+      /* FilterChain): After the next filter has been successfully invoked,   */
+      /* the EventResponse may be examined"                                   */
+      TestResult tr8 = tcd.getTestResultFailed(V2FILTERTESTS_EVENTFILTER_APIEVENTFILTER_DOFILTEREXAMINE);
+      /* TODO: implement test */
+      tr8.appendTcDetail("Not implemented.");
+      tr8.writeTo(writer);
+
+      portletReq.getPortletSession().setAttribute(
+                   Constants.RESULT_ATTR_PREFIX + "FilterTests_EventFilter_ApiEventFilter",
+                   writer.toString(), APPLICATION_SCOPE);
+
+   }
+}

http://git-wip-us.apache.org/repos/asf/portals-pluto/blob/db1071e7/portlet-tck_3.0/V2FilterTests/src/main/java/javax/portlet/tck/filters/FilterTests_FilterChain_ApiActionFilter_filter.java
----------------------------------------------------------------------
diff --git a/portlet-tck_3.0/V2FilterTests/src/main/java/javax/portlet/tck/filters/FilterTests_FilterChain_ApiActionFilter_filter.java b/portlet-tck_3.0/V2FilterTests/src/main/java/javax/portlet/tck/filters/FilterTests_FilterChain_ApiActionFilter_filter.java
new file mode 100644
index 0000000..68b9da2
--- /dev/null
+++ b/portlet-tck_3.0/V2FilterTests/src/main/java/javax/portlet/tck/filters/FilterTests_FilterChain_ApiActionFilter_filter.java
@@ -0,0 +1,105 @@
+/*  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *    http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES 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.filters;
+
+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.portlet.tck.beans.*;
+import javax.portlet.tck.constants.*;
+import static javax.portlet.tck.constants.Constants.*;
+import static javax.portlet.tck.beans.JSR286ApiTestCaseDetails.*;
+import static javax.portlet.PortletSession.*;
+import static javax.portlet.ResourceURL.*;
+
+/**
+ * Filter for JSR 362 request dispatcher testing.
+ * Used by portlet: FilterTests_FilterChain_ApiActionFilter
+ *
+ * @author nick
+ *
+ */
+public class FilterTests_FilterChain_ApiActionFilter_filter implements ActionFilter {
+   private static final String LOG_CLASS = 
+         FilterTests_FilterChain_ApiActionFilter_filter.class.getName();
+   private final Logger LOGGER = Logger.getLogger(LOG_CLASS);
+
+   private FilterConfig filterConfig;
+
+   @Override
+   public void init(FilterConfig filterConfig) throws PortletException {
+      this.filterConfig = filterConfig;
+   }
+
+   @Override
+   public void destroy() {
+   }
+
+   @Override
+   public void doFilter(ActionRequest portletReq, ActionResponse portletResp,
+         FilterChain chain) throws IOException, PortletException {
+      LOGGER.entering(LOG_CLASS, "doFilter");
+
+      StringWriter writer = new StringWriter();
+
+      // first execute the chain
+
+      chain.doFilter(portletReq, portletResp);
+
+      // now do the tests and write output
+
+      JSR286ApiTestCaseDetails tcd = new JSR286ApiTestCaseDetails();
+
+      // Create result objects for the tests
+
+      /* TestCase: V2FilterTests_FilterChain_ApiActionFilter_invokeActionFilter */
+      /* Details: "Invoking doFilter(ActionRequest, ActionResponse): causes   */
+      /* next filter to be invoked"                                           */
+      TestResult tr0 = tcd.getTestResultFailed(V2FILTERTESTS_FILTERCHAIN_APIACTIONFILTER_INVOKEACTIONFILTER);
+      /* TODO: implement test */
+      tr0.appendTcDetail("Not implemented.");
+      tr0.writeTo(writer);
+
+      /* TestCase: V2FilterTests_FilterChain_ApiActionFilter_invokeActionFilter2 */
+      /* Details: "Invoking doFilter(ActionRequest, ActionResponse): causes   */
+      /* portlet action method to be invoked"                                 */
+      TestResult tr1 = tcd.getTestResultFailed(V2FILTERTESTS_FILTERCHAIN_APIACTIONFILTER_INVOKEACTIONFILTER2);
+      /* TODO: implement test */
+      tr1.appendTcDetail("Not implemented.");
+      tr1.writeTo(writer);
+
+      /* TestCase: V2FilterTests_FilterChain_ApiActionFilter_invokeActionException */
+      /* Details: "Method doFilter(ActionRequest, ActionResponse): If a       */
+      /* PortletException is thrown before invoking the next filter in the    */
+      /* chain, processing does not continue down the chain "                 */
+      TestResult tr2 = tcd.getTestResultFailed(V2FILTERTESTS_FILTERCHAIN_APIACTIONFILTER_INVOKEACTIONEXCEPTION);
+      /* TODO: implement test */
+      tr2.appendTcDetail("Not implemented.");
+      tr2.writeTo(writer);
+
+      portletReq.getPortletSession().setAttribute(
+                   Constants.RESULT_ATTR_PREFIX + "FilterTests_FilterChain_ApiActionFilter",
+                   writer.toString(), APPLICATION_SCOPE);
+
+   }
+}

http://git-wip-us.apache.org/repos/asf/portals-pluto/blob/db1071e7/portlet-tck_3.0/V2FilterTests/src/main/java/javax/portlet/tck/filters/FilterTests_FilterChain_ApiEventFilter_filter.java
----------------------------------------------------------------------
diff --git a/portlet-tck_3.0/V2FilterTests/src/main/java/javax/portlet/tck/filters/FilterTests_FilterChain_ApiEventFilter_filter.java b/portlet-tck_3.0/V2FilterTests/src/main/java/javax/portlet/tck/filters/FilterTests_FilterChain_ApiEventFilter_filter.java
new file mode 100644
index 0000000..1f9d794
--- /dev/null
+++ b/portlet-tck_3.0/V2FilterTests/src/main/java/javax/portlet/tck/filters/FilterTests_FilterChain_ApiEventFilter_filter.java
@@ -0,0 +1,105 @@
+/*  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *    http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES 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.filters;
+
+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.portlet.tck.beans.*;
+import javax.portlet.tck.constants.*;
+import static javax.portlet.tck.constants.Constants.*;
+import static javax.portlet.tck.beans.JSR286ApiTestCaseDetails.*;
+import static javax.portlet.PortletSession.*;
+import static javax.portlet.ResourceURL.*;
+
+/**
+ * Filter for JSR 362 request dispatcher testing.
+ * Used by portlet: FilterTests_FilterChain_ApiEventFilter
+ *
+ * @author nick
+ *
+ */
+public class FilterTests_FilterChain_ApiEventFilter_filter implements EventFilter {
+   private static final String LOG_CLASS = 
+         FilterTests_FilterChain_ApiEventFilter_filter.class.getName();
+   private final Logger LOGGER = Logger.getLogger(LOG_CLASS);
+
+   private FilterConfig filterConfig;
+
+   @Override
+   public void init(FilterConfig filterConfig) throws PortletException {
+      this.filterConfig = filterConfig;
+   }
+
+   @Override
+   public void destroy() {
+   }
+
+   @Override
+   public void doFilter(EventRequest portletReq, EventResponse portletResp,
+         FilterChain chain) throws IOException, PortletException {
+      LOGGER.entering(LOG_CLASS, "doFilter");
+
+      StringWriter writer = new StringWriter();
+
+      // first execute the chain
+
+      chain.doFilter(portletReq, portletResp);
+
+      // now do the tests and write output
+
+      JSR286ApiTestCaseDetails tcd = new JSR286ApiTestCaseDetails();
+
+      // Create result objects for the tests
+
+      /* TestCase: V2FilterTests_FilterChain_ApiEventFilter_invokeEventFilter */
+      /* Details: "Invoking doFilter(EventRequest, EventResponse): causes     */
+      /* next filter to be invoked"                                           */
+      TestResult tr0 = tcd.getTestResultFailed(V2FILTERTESTS_FILTERCHAIN_APIEVENTFILTER_INVOKEEVENTFILTER);
+      /* TODO: implement test */
+      tr0.appendTcDetail("Not implemented.");
+      tr0.writeTo(writer);
+
+      /* TestCase: V2FilterTests_FilterChain_ApiEventFilter_invokeEventFilter2 */
+      /* Details: "Invoking doFilter(EventRequest, EventResponse): causes     */
+      /* portlet Event method to be invoked"                                  */
+      TestResult tr1 = tcd.getTestResultFailed(V2FILTERTESTS_FILTERCHAIN_APIEVENTFILTER_INVOKEEVENTFILTER2);
+      /* TODO: implement test */
+      tr1.appendTcDetail("Not implemented.");
+      tr1.writeTo(writer);
+
+      /* TestCase: V2FilterTests_FilterChain_ApiEventFilter_invokeEventException */
+      /* Details: "Method doFilter(EventRequest, EventResponse): If a         */
+      /* PortletException is thrown before invoking the next filter in the    */
+      /* chain, processing does not continue down the chain "                 */
+      TestResult tr2 = tcd.getTestResultFailed(V2FILTERTESTS_FILTERCHAIN_APIEVENTFILTER_INVOKEEVENTEXCEPTION);
+      /* TODO: implement test */
+      tr2.appendTcDetail("Not implemented.");
+      tr2.writeTo(writer);
+
+      portletReq.getPortletSession().setAttribute(
+                   Constants.RESULT_ATTR_PREFIX + "FilterTests_FilterChain_ApiEventFilter",
+                   writer.toString(), APPLICATION_SCOPE);
+
+   }
+}

http://git-wip-us.apache.org/repos/asf/portals-pluto/blob/db1071e7/portlet-tck_3.0/V2FilterTests/src/main/java/javax/portlet/tck/filters/FilterTests_FilterChain_ApiRenderFilter_filter.java
----------------------------------------------------------------------
diff --git a/portlet-tck_3.0/V2FilterTests/src/main/java/javax/portlet/tck/filters/FilterTests_FilterChain_ApiRenderFilter_filter.java b/portlet-tck_3.0/V2FilterTests/src/main/java/javax/portlet/tck/filters/FilterTests_FilterChain_ApiRenderFilter_filter.java
new file mode 100644
index 0000000..50f6845
--- /dev/null
+++ b/portlet-tck_3.0/V2FilterTests/src/main/java/javax/portlet/tck/filters/FilterTests_FilterChain_ApiRenderFilter_filter.java
@@ -0,0 +1,102 @@
+/*  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *    http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES 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.filters;
+
+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.portlet.tck.beans.*;
+import javax.portlet.tck.constants.*;
+import static javax.portlet.tck.constants.Constants.*;
+import static javax.portlet.tck.beans.JSR286ApiTestCaseDetails.*;
+import static javax.portlet.PortletSession.*;
+import static javax.portlet.ResourceURL.*;
+
+/**
+ * Filter for JSR 362 request dispatcher testing.
+ * Used by portlet: FilterTests_FilterChain_ApiRenderFilter
+ *
+ * @author nick
+ *
+ */
+public class FilterTests_FilterChain_ApiRenderFilter_filter implements RenderFilter {
+   private static final String LOG_CLASS = 
+         FilterTests_FilterChain_ApiRenderFilter_filter.class.getName();
+   private final Logger LOGGER = Logger.getLogger(LOG_CLASS);
+
+   private FilterConfig filterConfig;
+
+   @Override
+   public void init(FilterConfig filterConfig) throws PortletException {
+      this.filterConfig = filterConfig;
+   }
+
+   @Override
+   public void destroy() {
+   }
+
+   @Override
+   public void doFilter(RenderRequest portletReq, RenderResponse portletResp,
+         FilterChain chain) throws IOException, PortletException {
+      LOGGER.entering(LOG_CLASS, "doFilter");
+
+      PrintWriter writer = portletResp.getWriter();
+
+      // first execute the chain
+
+      chain.doFilter(portletReq, portletResp);
+
+      // now do the tests and write output
+
+      JSR286ApiTestCaseDetails tcd = new JSR286ApiTestCaseDetails();
+
+      // Create result objects for the tests
+
+      /* TestCase: V2FilterTests_FilterChain_ApiRenderFilter_invokeRenderFilter */
+      /* Details: "Invoking doFilter(RenderRequest, RenderResponse): causes   */
+      /* next filter to be invoked"                                           */
+      TestResult tr0 = tcd.getTestResultFailed(V2FILTERTESTS_FILTERCHAIN_APIRENDERFILTER_INVOKERENDERFILTER);
+      /* TODO: implement test */
+      tr0.appendTcDetail("Not implemented.");
+      tr0.writeTo(writer);
+
+      /* TestCase: V2FilterTests_FilterChain_ApiRenderFilter_invokeRenderFilter2 */
+      /* Details: "Invoking doFilter(RenderRequest, RenderResponse): causes   */
+      /* portlet Render method to be invoked"                                 */
+      TestResult tr1 = tcd.getTestResultFailed(V2FILTERTESTS_FILTERCHAIN_APIRENDERFILTER_INVOKERENDERFILTER2);
+      /* TODO: implement test */
+      tr1.appendTcDetail("Not implemented.");
+      tr1.writeTo(writer);
+
+      /* TestCase: V2FilterTests_FilterChain_ApiRenderFilter_invokeRenderException */
+      /* Details: "Method doFilter(RenderRequest, RenderResponse): If a       */
+      /* PortletException is thrown before invoking the next filter in the    */
+      /* chain, processing does not continue down the chain "                 */
+      TestResult tr2 = tcd.getTestResultFailed(V2FILTERTESTS_FILTERCHAIN_APIRENDERFILTER_INVOKERENDEREXCEPTION);
+      /* TODO: implement test */
+      tr2.appendTcDetail("Not implemented.");
+      tr2.writeTo(writer);
+
+
+   }
+}

http://git-wip-us.apache.org/repos/asf/portals-pluto/blob/db1071e7/portlet-tck_3.0/V2FilterTests/src/main/java/javax/portlet/tck/filters/FilterTests_FilterChain_ApiResourceFilter_filter.java
----------------------------------------------------------------------
diff --git a/portlet-tck_3.0/V2FilterTests/src/main/java/javax/portlet/tck/filters/FilterTests_FilterChain_ApiResourceFilter_filter.java b/portlet-tck_3.0/V2FilterTests/src/main/java/javax/portlet/tck/filters/FilterTests_FilterChain_ApiResourceFilter_filter.java
new file mode 100644
index 0000000..596f357
--- /dev/null
+++ b/portlet-tck_3.0/V2FilterTests/src/main/java/javax/portlet/tck/filters/FilterTests_FilterChain_ApiResourceFilter_filter.java
@@ -0,0 +1,102 @@
+/*  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *    http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES 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.filters;
+
+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.portlet.tck.beans.*;
+import javax.portlet.tck.constants.*;
+import static javax.portlet.tck.constants.Constants.*;
+import static javax.portlet.tck.beans.JSR286ApiTestCaseDetails.*;
+import static javax.portlet.PortletSession.*;
+import static javax.portlet.ResourceURL.*;
+
+/**
+ * Filter for JSR 362 request dispatcher testing.
+ * Used by portlet: FilterTests_FilterChain_ApiResourceFilter
+ *
+ * @author nick
+ *
+ */
+public class FilterTests_FilterChain_ApiResourceFilter_filter implements ResourceFilter {
+   private static final String LOG_CLASS = 
+         FilterTests_FilterChain_ApiResourceFilter_filter.class.getName();
+   private final Logger LOGGER = Logger.getLogger(LOG_CLASS);
+
+   private FilterConfig filterConfig;
+
+   @Override
+   public void init(FilterConfig filterConfig) throws PortletException {
+      this.filterConfig = filterConfig;
+   }
+
+   @Override
+   public void destroy() {
+   }
+
+   @Override
+   public void doFilter(ResourceRequest portletReq, ResourceResponse portletResp,
+         FilterChain chain) throws IOException, PortletException {
+      LOGGER.entering(LOG_CLASS, "doFilter");
+
+      PrintWriter writer = portletResp.getWriter();
+
+      // first execute the chain
+
+      chain.doFilter(portletReq, portletResp);
+
+      // now do the tests and write output
+
+      JSR286ApiTestCaseDetails tcd = new JSR286ApiTestCaseDetails();
+
+      // Create result objects for the tests
+
+      /* TestCase: V2FilterTests_FilterChain_ApiResourceFilter_invokeResourceFilter */
+      /* Details: "Invoking doFilter(ResourceRequest, ResourceResponse):      */
+      /* causes next filter to be invoked"                                    */
+      TestResult tr0 = tcd.getTestResultFailed(V2FILTERTESTS_FILTERCHAIN_APIRESOURCEFILTER_INVOKERESOURCEFILTER);
+      /* TODO: implement test */
+      tr0.appendTcDetail("Not implemented.");
+      tr0.writeTo(writer);
+
+      /* TestCase: V2FilterTests_FilterChain_ApiResourceFilter_invokeResourceFilter2 */
+      /* Details: "Invoking doFilter(ResourceRequest, ResourceResponse):      */
+      /* causes portlet Resource method to be invoked"                        */
+      TestResult tr1 = tcd.getTestResultFailed(V2FILTERTESTS_FILTERCHAIN_APIRESOURCEFILTER_INVOKERESOURCEFILTER2);
+      /* TODO: implement test */
+      tr1.appendTcDetail("Not implemented.");
+      tr1.writeTo(writer);
+
+      /* TestCase: V2FilterTests_FilterChain_ApiResourceFilter_invokeResourceException */
+      /* Details: "Method doFilter(ResourceRequest, ResourceResponse): If a   */
+      /* PortletException is thrown before invoking the next filter in the    */
+      /* chain, processing does not continue down the chain "                 */
+      TestResult tr2 = tcd.getTestResultFailed(V2FILTERTESTS_FILTERCHAIN_APIRESOURCEFILTER_INVOKERESOURCEEXCEPTION);
+      /* TODO: implement test */
+      tr2.appendTcDetail("Not implemented.");
+      tr2.writeTo(writer);
+
+
+   }
+}