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:42 UTC

[34/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/V2FilterTests/src/main/java/javax/portlet/tck/portlets/FilterTests_ResourceFilter_ResourceFilter.java
----------------------------------------------------------------------
diff --git a/portlet-tck_3.0/V2FilterTests/src/main/java/javax/portlet/tck/portlets/FilterTests_ResourceFilter_ResourceFilter.java b/portlet-tck_3.0/V2FilterTests/src/main/java/javax/portlet/tck/portlets/FilterTests_ResourceFilter_ResourceFilter.java
deleted file mode 100644
index c5abd60..0000000
--- a/portlet-tck_3.0/V2FilterTests/src/main/java/javax/portlet/tck/portlets/FilterTests_ResourceFilter_ResourceFilter.java
+++ /dev/null
@@ -1,200 +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 FilterTests_ResourceFilter_ResourceFilter_event
- *
- */
-public class FilterTests_ResourceFilter_ResourceFilter implements Portlet, ResourceServingPortlet {
-   private static final String LOG_CLASS = 
-         FilterTests_ResourceFilter_ResourceFilter.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();
-
-      JSR286ApiTestCaseDetails tcd = new JSR286ApiTestCaseDetails();
-
-      // Create result objects for the tests
-
-      /* TestCase: V2FilterTests_ResourceFilter_ResourceFilter_canBeConfigured1 */
-      /* Details: "An ResourceFilter can be configured in the portlet         */
-      /* descriptor"                                                          */
-      TestResult tr0 = tcd.getTestResultFailed(V2FILTERTESTS_RESOURCEFILTER_RESOURCEFILTER_CANBECONFIGURED1);
-      /* TODO: implement test */
-      tr0.appendTcDetail("Not implemented.");
-      tr0.writeTo(writer);
-
-      /* TestCase: V2FilterTests_ResourceFilter_ResourceFilter_canBeConfigured2 */
-      /* Details: "Multiple ResourceFilter classes can be configured in the   */
-      /* portlet descriptor"                                                  */
-      TestResult tr1 = tcd.getTestResultFailed(V2FILTERTESTS_RESOURCEFILTER_RESOURCEFILTER_CANBECONFIGURED2);
-      /* TODO: implement test */
-      tr1.appendTcDetail("Not implemented.");
-      tr1.writeTo(writer);
-
-      /* TestCase: V2FilterTests_ResourceFilter_ResourceFilter_doFilterIsCalled */
-      /* Details: "The doFilter(ResourceRequest, ResourceResponse,            */
-      /* FilterChain): method is called before the processResource method     */
-      /* for the portlet"                                                     */
-      TestResult tr2 = tcd.getTestResultFailed(V2FILTERTESTS_RESOURCEFILTER_RESOURCEFILTER_DOFILTERISCALLED);
-      /* TODO: implement test */
-      tr2.appendTcDetail("Not implemented.");
-      tr2.writeTo(writer);
-
-      /* TestCase: V2FilterTests_ResourceFilter_ResourceFilter_doFilterProcessResource1 */
-      /* Details: "After the doFilter(ResourceRequest, ResourceResponse,      */
-      /* FilterChain): method has sucessfully completed and invokes the       */
-      /* next filter, the processResourceMethod is called"                    */
-      TestResult tr3 = tcd.getTestResultFailed(V2FILTERTESTS_RESOURCEFILTER_RESOURCEFILTER_DOFILTERPROCESSRESOURCE1);
-      /* TODO: implement test */
-      tr3.appendTcDetail("Not implemented.");
-      tr3.writeTo(writer);
-
-      /* TestCase: V2FilterTests_ResourceFilter_ResourceFilter_doFilterProcessResource2 */
-      /* Details: "After the doFilter(ResourceRequest, ResourceResponse,      */
-      /* 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_RESOURCEFILTER_RESOURCEFILTER_DOFILTERPROCESSRESOURCE2);
-      /* TODO: implement test */
-      tr4.appendTcDetail("Not implemented.");
-      tr4.writeTo(writer);
-
-      /* TestCase: V2FilterTests_ResourceFilter_ResourceFilter_doFilterBlock  */
-      /* Details: "If the doFilter(ResourceRequest, ResourceResponse,         */
-      /* FilterChain): method does not invoke the next filter,                */
-      /* processResource is not called"                                       */
-      TestResult tr5 = tcd.getTestResultFailed(V2FILTERTESTS_RESOURCEFILTER_RESOURCEFILTER_DOFILTERBLOCK);
-      /* TODO: implement test */
-      tr5.appendTcDetail("Not implemented.");
-      tr5.writeTo(writer);
-
-      /* TestCase: V2FilterTests_ResourceFilter_ResourceFilter_doFilterException1 */
-      /* Details: "If the doFilter(ResourceRequest, ResourceResponse,         */
-      /* FilterChain): method throws an UnavailableException,                 */
-      /* processResource is not called"                                       */
-      TestResult tr6 = tcd.getTestResultFailed(V2FILTERTESTS_RESOURCEFILTER_RESOURCEFILTER_DOFILTEREXCEPTION1);
-      /* TODO: implement test */
-      tr6.appendTcDetail("Not implemented.");
-      tr6.writeTo(writer);
-
-      /* TestCase: V2FilterTests_ResourceFilter_ResourceFilter_doFilterException2 */
-      /* Details: "If the doFilter(ResourceRequest, ResourceResponse,         */
-      /* FilterChain): method throws an UnavailableException, no further      */
-      /* filter is called"                                                    */
-      TestResult tr7 = tcd.getTestResultFailed(V2FILTERTESTS_RESOURCEFILTER_RESOURCEFILTER_DOFILTEREXCEPTION2);
-      /* TODO: implement test */
-      tr7.appendTcDetail("Not implemented.");
-      tr7.writeTo(writer);
-
-      /* TestCase: V2FilterTests_ResourceFilter_ResourceFilter_doFilterExamine */
-      /* Details: "Method doFilter(ResourceRequest, ResourceResponse,         */
-      /* FilterChain): After the next filter has been successfully invoked,   */
-      /* the ResourceResponse may be examined"                                */
-      TestResult tr8 = tcd.getTestResultFailed(V2FILTERTESTS_RESOURCEFILTER_RESOURCEFILTER_DOFILTEREXAMINE);
-      /* TODO: implement test */
-      tr8.appendTcDetail("Not implemented.");
-      tr8.writeTo(writer);
-
-   }
-
-   @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();
-
-      writer.write("<div id=\"FilterTests_ResourceFilter_ResourceFilter\">no resource output.</div>\n");
-      ResourceURL resurl = portletResp.createResourceURL();
-      resurl.setCacheability(PAGE);
-      writer.write("<script>\n");
-      writer.write("(function () {\n");
-      writer.write("   var xhr = new XMLHttpRequest();\n");
-      writer.write("   xhr.onreadystatechange=function() {\n");
-      writer.write("      if (xhr.readyState==4 && xhr.status==200) {\n");
-      writer.write("         document.getElementById(\"FilterTests_ResourceFilter_ResourceFilter\").innerHTML=xhr.responseText;\n");
-      writer.write("      }\n");
-      writer.write("   };\n");
-      writer.write("   xhr.open(\"GET\",\"" + resurl.toString() + "\",true);\n");
-      writer.write("   xhr.send();\n");
-      writer.write("})();\n");
-      writer.write("</script>\n");
-   }
-
-}

http://git-wip-us.apache.org/repos/asf/portals-pluto/blob/db1071e7/portlet-tck_3.0/V2FilterTests/src/main/resources/xml-resources/additionalTCs.xml
----------------------------------------------------------------------
diff --git a/portlet-tck_3.0/V2FilterTests/src/main/resources/xml-resources/additionalTCs.xml b/portlet-tck_3.0/V2FilterTests/src/main/resources/xml-resources/additionalTCs.xml
index 5aa3dd0..9dc2494 100644
--- a/portlet-tck_3.0/V2FilterTests/src/main/resources/xml-resources/additionalTCs.xml
+++ b/portlet-tck_3.0/V2FilterTests/src/main/resources/xml-resources/additionalTCs.xml
@@ -20,74 +20,70 @@
 <!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
 <properties>
 <!-- JSR 286 API FilterTests test case names and page mappings -->
-<entry key="V2FilterTests_FilterChain_ActionFilter_invokeActionFilter">V2FilterTests</entry>
-<entry key="V2FilterTests_FilterChain_ActionFilter_invokeActionFilter2">V2FilterTests</entry>
-<entry key="V2FilterTests_FilterChain_ActionFilter_invokeActionException">V2FilterTests</entry>
-<entry key="V2FilterTests_FilterChain_ActionFilter_invokeActionException2">V2FilterTests</entry>
-<entry key="V2FilterTests_FilterChain_EventFilter_invokeEventFilter">V2FilterTests</entry>
-<entry key="V2FilterTests_FilterChain_EventFilter_invokeEventFilter2">V2FilterTests</entry>
-<entry key="V2FilterTests_FilterChain_EventFilter_invokeEventException">V2FilterTests</entry>
-<entry key="V2FilterTests_FilterChain_EventFilter_invokeEventException2">V2FilterTests</entry>
-<entry key="V2FilterTests_FilterChain_RenderFilter_invokeRenderFilter">V2FilterTests</entry>
-<entry key="V2FilterTests_FilterChain_RenderFilter_invokeRenderFilter2">V2FilterTests</entry>
-<entry key="V2FilterTests_FilterChain_RenderFilter_invokeRenderException">V2FilterTests</entry>
-<entry key="V2FilterTests_FilterChain_RenderFilter_invokeRenderException2">V2FilterTests</entry>
-<entry key="V2FilterTests_FilterChain_ResourceFilter_invokeResourceFilter">V2FilterTests</entry>
-<entry key="V2FilterTests_FilterChain_ResourceFilter_invokeResourceFilter2">V2FilterTests</entry>
-<entry key="V2FilterTests_FilterChain_ResourceFilter_invokeResourceException">V2FilterTests</entry>
-<entry key="V2FilterTests_FilterChain_ResourceFilter_invokeResourceException2">V2FilterTests</entry>
-<entry key="V2FilterTests_FilterConfig_RenderFilter_getFilterName">V2FilterTests</entry>
-<entry key="V2FilterTests_FilterConfig_RenderFilter_getPortletContext">V2FilterTests</entry>
-<entry key="V2FilterTests_FilterConfig_RenderFilter_getInitParameter1">V2FilterTests</entry>
-<entry key="V2FilterTests_FilterConfig_RenderFilter_getInitParameter2">V2FilterTests</entry>
-<entry key="V2FilterTests_FilterConfig_RenderFilter_getInitParameterNames1">V2FilterTests</entry>
-<entry key="V2FilterTests_FilterConfig_RenderFilter_getInitParameterNames2">V2FilterTests</entry>
-<entry key="V2FilterTests_PortletFilter_ActionFilter_initAction1">V2FilterTests</entry>
-<entry key="V2FilterTests_PortletFilter_ActionFilter_initAction2">V2FilterTests</entry>
-<entry key="V2FilterTests_PortletFilter_ActionFilter_initAction3">V2FilterTests</entry>
-<entry key="V2FilterTests_PortletFilter_EventFilter_initEvent1">V2FilterTests</entry>
-<entry key="V2FilterTests_PortletFilter_EventFilter_initEvent2">V2FilterTests</entry>
-<entry key="V2FilterTests_PortletFilter_EventFilter_initEvent3">V2FilterTests</entry>
-<entry key="V2FilterTests_PortletFilter_RenderFilter_initRender1">V2FilterTests</entry>
-<entry key="V2FilterTests_PortletFilter_RenderFilter_initRender2">V2FilterTests</entry>
-<entry key="V2FilterTests_PortletFilter_RenderFilter_initRender3">V2FilterTests</entry>
-<entry key="V2FilterTests_PortletFilter_ResourceFilter_initResource1">V2FilterTests</entry>
-<entry key="V2FilterTests_PortletFilter_ResourceFilter_initResource2">V2FilterTests</entry>
-<entry key="V2FilterTests_PortletFilter_ResourceFilter_initResource3">V2FilterTests</entry>
-<entry key="V2FilterTests_ActionFilter_ActionFilter_canBeConfigured1">V2FilterTests</entry>
-<entry key="V2FilterTests_ActionFilter_ActionFilter_canBeConfigured2">V2FilterTests</entry>
-<entry key="V2FilterTests_ActionFilter_ActionFilter_doFilterIsCalled">V2FilterTests</entry>
-<entry key="V2FilterTests_ActionFilter_ActionFilter_doFilterProcessAction1">V2FilterTests</entry>
-<entry key="V2FilterTests_ActionFilter_ActionFilter_doFilterProcessAction2">V2FilterTests</entry>
-<entry key="V2FilterTests_ActionFilter_ActionFilter_doFilterBlock">V2FilterTests</entry>
-<entry key="V2FilterTests_ActionFilter_ActionFilter_doFilterException1">V2FilterTests</entry>
-<entry key="V2FilterTests_ActionFilter_ActionFilter_doFilterException2">V2FilterTests</entry>
-<entry key="V2FilterTests_ActionFilter_ActionFilter_doFilterExamine">V2FilterTests</entry>
-<entry key="V2FilterTests_EventFilter_EventFilter_canBeConfigured1">V2FilterTests</entry>
-<entry key="V2FilterTests_EventFilter_EventFilter_canBeConfigured2">V2FilterTests</entry>
-<entry key="V2FilterTests_EventFilter_EventFilter_doFilterIsCalled">V2FilterTests</entry>
-<entry key="V2FilterTests_EventFilter_EventFilter_doFilterProcessEvent1">V2FilterTests</entry>
-<entry key="V2FilterTests_EventFilter_EventFilter_doFilterProcessEvent2">V2FilterTests</entry>
-<entry key="V2FilterTests_EventFilter_EventFilter_doFilterBlock">V2FilterTests</entry>
-<entry key="V2FilterTests_EventFilter_EventFilter_doFilterException1">V2FilterTests</entry>
-<entry key="V2FilterTests_EventFilter_EventFilter_doFilterException2">V2FilterTests</entry>
-<entry key="V2FilterTests_EventFilter_EventFilter_doFilterExamine">V2FilterTests</entry>
-<entry key="V2FilterTests_RenderFilter_RenderFilter_canBeConfigured1">V2FilterTests</entry>
-<entry key="V2FilterTests_RenderFilter_RenderFilter_canBeConfigured2">V2FilterTests</entry>
-<entry key="V2FilterTests_RenderFilter_RenderFilter_doFilterIsCalled">V2FilterTests</entry>
-<entry key="V2FilterTests_RenderFilter_RenderFilter_doFilterProcessRender1">V2FilterTests</entry>
-<entry key="V2FilterTests_RenderFilter_RenderFilter_doFilterProcessRender2">V2FilterTests</entry>
-<entry key="V2FilterTests_RenderFilter_RenderFilter_doFilterBlock">V2FilterTests</entry>
-<entry key="V2FilterTests_RenderFilter_RenderFilter_doFilterException1">V2FilterTests</entry>
-<entry key="V2FilterTests_RenderFilter_RenderFilter_doFilterException2">V2FilterTests</entry>
-<entry key="V2FilterTests_RenderFilter_RenderFilter_doFilterExamine">V2FilterTests</entry>
-<entry key="V2FilterTests_ResourceFilter_ResourceFilter_canBeConfigured1">V2FilterTests</entry>
-<entry key="V2FilterTests_ResourceFilter_ResourceFilter_canBeConfigured2">V2FilterTests</entry>
-<entry key="V2FilterTests_ResourceFilter_ResourceFilter_doFilterIsCalled">V2FilterTests</entry>
-<entry key="V2FilterTests_ResourceFilter_ResourceFilter_doFilterProcessResource1">V2FilterTests</entry>
-<entry key="V2FilterTests_ResourceFilter_ResourceFilter_doFilterProcessResource2">V2FilterTests</entry>
-<entry key="V2FilterTests_ResourceFilter_ResourceFilter_doFilterBlock">V2FilterTests</entry>
-<entry key="V2FilterTests_ResourceFilter_ResourceFilter_doFilterException1">V2FilterTests</entry>
-<entry key="V2FilterTests_ResourceFilter_ResourceFilter_doFilterException2">V2FilterTests</entry>
-<entry key="V2FilterTests_ResourceFilter_ResourceFilter_doFilterExamine">V2FilterTests</entry>
+<entry key="V2FilterTests_FilterChain_ApiActionFilter_invokeActionFilter">V2FilterTests</entry>
+<entry key="V2FilterTests_FilterChain_ApiActionFilter_invokeActionFilter2">V2FilterTests</entry>
+<entry key="V2FilterTests_FilterChain_ApiActionFilter_invokeActionException">V2FilterTests</entry>
+<entry key="V2FilterTests_FilterChain_ApiEventFilter_invokeEventFilter">V2FilterTests</entry>
+<entry key="V2FilterTests_FilterChain_ApiEventFilter_invokeEventFilter2">V2FilterTests</entry>
+<entry key="V2FilterTests_FilterChain_ApiEventFilter_invokeEventException">V2FilterTests</entry>
+<entry key="V2FilterTests_FilterChain_ApiRenderFilter_invokeRenderFilter">V2FilterTests</entry>
+<entry key="V2FilterTests_FilterChain_ApiRenderFilter_invokeRenderFilter2">V2FilterTests</entry>
+<entry key="V2FilterTests_FilterChain_ApiRenderFilter_invokeRenderException">V2FilterTests</entry>
+<entry key="V2FilterTests_FilterChain_ApiResourceFilter_invokeResourceFilter">V2FilterTests</entry>
+<entry key="V2FilterTests_FilterChain_ApiResourceFilter_invokeResourceFilter2">V2FilterTests</entry>
+<entry key="V2FilterTests_FilterChain_ApiResourceFilter_invokeResourceException">V2FilterTests</entry>
+<entry key="V2FilterTests_FilterConfig_ApiRenderFilter_getFilterName">V2FilterTests</entry>
+<entry key="V2FilterTests_FilterConfig_ApiRenderFilter_getPortletContext">V2FilterTests</entry>
+<entry key="V2FilterTests_FilterConfig_ApiRenderFilter_getInitParameter1">V2FilterTests</entry>
+<entry key="V2FilterTests_FilterConfig_ApiRenderFilter_getInitParameter2">V2FilterTests</entry>
+<entry key="V2FilterTests_FilterConfig_ApiRenderFilter_getInitParameterNames1">V2FilterTests</entry>
+<entry key="V2FilterTests_FilterConfig_ApiRenderFilter_getInitParameterNames2">V2FilterTests</entry>
+<entry key="V2FilterTests_PortletFilter_ApiActionFilter_initAction1">V2FilterTests</entry>
+<entry key="V2FilterTests_PortletFilter_ApiActionFilter_initAction2">V2FilterTests</entry>
+<entry key="V2FilterTests_PortletFilter_ApiActionFilter_initAction3">V2FilterTests</entry>
+<entry key="V2FilterTests_PortletFilter_ApiEventFilter_initEvent1">V2FilterTests</entry>
+<entry key="V2FilterTests_PortletFilter_ApiEventFilter_initEvent2">V2FilterTests</entry>
+<entry key="V2FilterTests_PortletFilter_ApiEventFilter_initEvent3">V2FilterTests</entry>
+<entry key="V2FilterTests_PortletFilter_ApiRenderFilter_initRender1">V2FilterTests</entry>
+<entry key="V2FilterTests_PortletFilter_ApiRenderFilter_initRender2">V2FilterTests</entry>
+<entry key="V2FilterTests_PortletFilter_ApiRenderFilter_initRender3">V2FilterTests</entry>
+<entry key="V2FilterTests_PortletFilter_ApiResourceFilter_initResource1">V2FilterTests</entry>
+<entry key="V2FilterTests_PortletFilter_ApiResourceFilter_initResource2">V2FilterTests</entry>
+<entry key="V2FilterTests_PortletFilter_ApiResourceFilter_initResource3">V2FilterTests</entry>
+<entry key="V2FilterTests_ActionFilter_ApiActionFilter_canBeConfigured1">V2FilterTests</entry>
+<entry key="V2FilterTests_ActionFilter_ApiActionFilter_canBeConfigured2">V2FilterTests</entry>
+<entry key="V2FilterTests_ActionFilter_ApiActionFilter_doFilterIsCalled">V2FilterTests</entry>
+<entry key="V2FilterTests_ActionFilter_ApiActionFilter_doFilterProcessAction1">V2FilterTests</entry>
+<entry key="V2FilterTests_ActionFilter_ApiActionFilter_doFilterProcessAction2">V2FilterTests</entry>
+<entry key="V2FilterTests_ActionFilter_ApiActionFilter_doFilterBlock">V2FilterTests</entry>
+<entry key="V2FilterTests_ActionFilter_ApiActionFilter_doFilterException1">V2FilterTests</entry>
+<entry key="V2FilterTests_ActionFilter_ApiActionFilter_doFilterException2">V2FilterTests</entry>
+<entry key="V2FilterTests_ActionFilter_ApiActionFilter_doFilterExamine">V2FilterTests</entry>
+<entry key="V2FilterTests_EventFilter_ApiEventFilter_canBeConfigured1">V2FilterTests</entry>
+<entry key="V2FilterTests_EventFilter_ApiEventFilter_canBeConfigured2">V2FilterTests</entry>
+<entry key="V2FilterTests_EventFilter_ApiEventFilter_doFilterIsCalled">V2FilterTests</entry>
+<entry key="V2FilterTests_EventFilter_ApiEventFilter_doFilterProcessEvent1">V2FilterTests</entry>
+<entry key="V2FilterTests_EventFilter_ApiEventFilter_doFilterProcessEvent2">V2FilterTests</entry>
+<entry key="V2FilterTests_EventFilter_ApiEventFilter_doFilterBlock">V2FilterTests</entry>
+<entry key="V2FilterTests_EventFilter_ApiEventFilter_doFilterException1">V2FilterTests</entry>
+<entry key="V2FilterTests_EventFilter_ApiEventFilter_doFilterException2">V2FilterTests</entry>
+<entry key="V2FilterTests_EventFilter_ApiEventFilter_doFilterExamine">V2FilterTests</entry>
+<entry key="V2FilterTests_RenderFilter_ApiRenderFilter_canBeConfigured1">V2FilterTests</entry>
+<entry key="V2FilterTests_RenderFilter_ApiRenderFilter_canBeConfigured2">V2FilterTests</entry>
+<entry key="V2FilterTests_RenderFilter_ApiRenderFilter_doFilterIsCalled">V2FilterTests</entry>
+<entry key="V2FilterTests_RenderFilter_ApiRenderFilter_doFilterProcessRender1">V2FilterTests</entry>
+<entry key="V2FilterTests_RenderFilter_ApiRenderFilter_doFilterProcessRender2">V2FilterTests</entry>
+<entry key="V2FilterTests_RenderFilter_ApiRenderFilter_doFilterBlock">V2FilterTests</entry>
+<entry key="V2FilterTests_RenderFilter_ApiRenderFilter_doFilterException1">V2FilterTests</entry>
+<entry key="V2FilterTests_RenderFilter_ApiRenderFilter_doFilterException2">V2FilterTests</entry>
+<entry key="V2FilterTests_RenderFilter_ApiRenderFilter_doFilterExamine">V2FilterTests</entry>
+<entry key="V2FilterTests_ResourceFilter_ApiResourceFilter_canBeConfigured1">V2FilterTests</entry>
+<entry key="V2FilterTests_ResourceFilter_ApiResourceFilter_canBeConfigured2">V2FilterTests</entry>
+<entry key="V2FilterTests_ResourceFilter_ApiResourceFilter_doFilterIsCalled">V2FilterTests</entry>
+<entry key="V2FilterTests_ResourceFilter_ApiResourceFilter_doFilterProcessResource1">V2FilterTests</entry>
+<entry key="V2FilterTests_ResourceFilter_ApiResourceFilter_doFilterProcessResource2">V2FilterTests</entry>
+<entry key="V2FilterTests_ResourceFilter_ApiResourceFilter_doFilterBlock">V2FilterTests</entry>
+<entry key="V2FilterTests_ResourceFilter_ApiResourceFilter_doFilterException1">V2FilterTests</entry>
+<entry key="V2FilterTests_ResourceFilter_ApiResourceFilter_doFilterException2">V2FilterTests</entry>
+<entry key="V2FilterTests_ResourceFilter_ApiResourceFilter_doFilterExamine">V2FilterTests</entry>
 </properties>

http://git-wip-us.apache.org/repos/asf/portals-pluto/blob/db1071e7/portlet-tck_3.0/V2FilterTests/src/main/webapp/WEB-INF/portlet.xml
----------------------------------------------------------------------
diff --git a/portlet-tck_3.0/V2FilterTests/src/main/webapp/WEB-INF/portlet.xml b/portlet-tck_3.0/V2FilterTests/src/main/webapp/WEB-INF/portlet.xml
index 92e9c0b..68a86ea 100644
--- a/portlet-tck_3.0/V2FilterTests/src/main/webapp/WEB-INF/portlet.xml
+++ b/portlet-tck_3.0/V2FilterTests/src/main/webapp/WEB-INF/portlet.xml
@@ -23,243 +23,362 @@
    xmlns:tck="http://www.apache.org/portals/pluto/portlet-tck_3.0"
    version="2.0" id="V2FilterTests">
    <portlet>
-      <portlet-name>FilterTests_FilterChain_ActionFilter</portlet-name>
-      <portlet-class>javax.portlet.tck.portlets.FilterTests_FilterChain_ActionFilter</portlet-class>
+      <portlet-name>FilterTests_FilterChain_ApiActionFilter</portlet-name>
+      <portlet-class>javax.portlet.tck.portlets.FilterTests_FilterChain_ApiActionFilter</portlet-class>
       <expiration-cache>0</expiration-cache>
       <supports>
          <mime-type>text/html</mime-type>
       </supports>
       <supported-locale>en_US</supported-locale>
       <portlet-info>
-         <title>FilterTests_FilterChain_ActionFilter</title>
+         <title>FilterTests_FilterChain_ApiActionFilter</title>
       </portlet-info>
    </portlet>
 
    <portlet>
-      <portlet-name>FilterTests_FilterChain_EventFilter</portlet-name>
-      <portlet-class>javax.portlet.tck.portlets.FilterTests_FilterChain_EventFilter</portlet-class>
+      <portlet-name>FilterTests_FilterChain_ApiEventFilter</portlet-name>
+      <portlet-class>javax.portlet.tck.portlets.FilterTests_FilterChain_ApiEventFilter</portlet-class>
       <expiration-cache>0</expiration-cache>
       <supports>
          <mime-type>text/html</mime-type>
       </supports>
       <supported-locale>en_US</supported-locale>
       <portlet-info>
-         <title>FilterTests_FilterChain_EventFilter</title>
+         <title>FilterTests_FilterChain_ApiEventFilter</title>
       </portlet-info>
       <supported-publishing-event>
-         <qname>tck:FilterTests_FilterChain_EventFilter</qname>
+         <qname>tck:FilterTests_FilterChain_ApiEventFilter</qname>
       </supported-publishing-event>
    </portlet>
 
    <portlet>
-      <portlet-name>FilterTests_FilterChain_EventFilter_event</portlet-name>
-      <portlet-class>javax.portlet.tck.portlets.FilterTests_FilterChain_EventFilter_event</portlet-class>
+      <portlet-name>FilterTests_FilterChain_ApiEventFilter_event</portlet-name>
+      <portlet-class>javax.portlet.tck.portlets.FilterTests_FilterChain_ApiEventFilter_event</portlet-class>
       <expiration-cache>0</expiration-cache>
       <supports>
          <mime-type>text/html</mime-type>
       </supports>
       <supported-locale>en_US</supported-locale>
       <portlet-info>
-         <title>FilterTests_FilterChain_EventFilter_event</title>
+         <title>FilterTests_FilterChain_ApiEventFilter_event</title>
       </portlet-info>
       <supported-processing-event>
-         <qname>tck:FilterTests_FilterChain_EventFilter</qname>
+         <qname>tck:FilterTests_FilterChain_ApiEventFilter</qname>
       </supported-processing-event>
    </portlet>
 
    <portlet>
-      <portlet-name>FilterTests_FilterChain_RenderFilter</portlet-name>
-      <portlet-class>javax.portlet.tck.portlets.FilterTests_FilterChain_RenderFilter</portlet-class>
+      <portlet-name>FilterTests_FilterChain_ApiRenderFilter</portlet-name>
+      <portlet-class>javax.portlet.tck.portlets.FilterTests_FilterChain_ApiRenderFilter</portlet-class>
       <expiration-cache>0</expiration-cache>
       <supports>
          <mime-type>text/html</mime-type>
       </supports>
       <supported-locale>en_US</supported-locale>
       <portlet-info>
-         <title>FilterTests_FilterChain_RenderFilter</title>
+         <title>FilterTests_FilterChain_ApiRenderFilter</title>
       </portlet-info>
    </portlet>
 
    <portlet>
-      <portlet-name>FilterTests_FilterChain_ResourceFilter</portlet-name>
-      <portlet-class>javax.portlet.tck.portlets.FilterTests_FilterChain_ResourceFilter</portlet-class>
+      <portlet-name>FilterTests_FilterChain_ApiResourceFilter</portlet-name>
+      <portlet-class>javax.portlet.tck.portlets.FilterTests_FilterChain_ApiResourceFilter</portlet-class>
       <expiration-cache>0</expiration-cache>
       <supports>
          <mime-type>text/html</mime-type>
       </supports>
       <supported-locale>en_US</supported-locale>
       <portlet-info>
-         <title>FilterTests_FilterChain_ResourceFilter</title>
+         <title>FilterTests_FilterChain_ApiResourceFilter</title>
       </portlet-info>
    </portlet>
 
    <portlet>
-      <portlet-name>FilterTests_FilterConfig_RenderFilter</portlet-name>
-      <portlet-class>javax.portlet.tck.portlets.FilterTests_FilterConfig_RenderFilter</portlet-class>
+      <portlet-name>FilterTests_FilterConfig_ApiRenderFilter</portlet-name>
+      <portlet-class>javax.portlet.tck.portlets.FilterTests_FilterConfig_ApiRenderFilter</portlet-class>
       <expiration-cache>0</expiration-cache>
       <supports>
          <mime-type>text/html</mime-type>
       </supports>
       <supported-locale>en_US</supported-locale>
       <portlet-info>
-         <title>FilterTests_FilterConfig_RenderFilter</title>
+         <title>FilterTests_FilterConfig_ApiRenderFilter</title>
       </portlet-info>
    </portlet>
 
    <portlet>
-      <portlet-name>FilterTests_PortletFilter_ActionFilter</portlet-name>
-      <portlet-class>javax.portlet.tck.portlets.FilterTests_PortletFilter_ActionFilter</portlet-class>
+      <portlet-name>FilterTests_PortletFilter_ApiActionFilter</portlet-name>
+      <portlet-class>javax.portlet.tck.portlets.FilterTests_PortletFilter_ApiActionFilter</portlet-class>
       <expiration-cache>0</expiration-cache>
       <supports>
          <mime-type>text/html</mime-type>
       </supports>
       <supported-locale>en_US</supported-locale>
       <portlet-info>
-         <title>FilterTests_PortletFilter_ActionFilter</title>
+         <title>FilterTests_PortletFilter_ApiActionFilter</title>
       </portlet-info>
    </portlet>
 
    <portlet>
-      <portlet-name>FilterTests_PortletFilter_EventFilter</portlet-name>
-      <portlet-class>javax.portlet.tck.portlets.FilterTests_PortletFilter_EventFilter</portlet-class>
+      <portlet-name>FilterTests_PortletFilter_ApiEventFilter</portlet-name>
+      <portlet-class>javax.portlet.tck.portlets.FilterTests_PortletFilter_ApiEventFilter</portlet-class>
       <expiration-cache>0</expiration-cache>
       <supports>
          <mime-type>text/html</mime-type>
       </supports>
       <supported-locale>en_US</supported-locale>
       <portlet-info>
-         <title>FilterTests_PortletFilter_EventFilter</title>
+         <title>FilterTests_PortletFilter_ApiEventFilter</title>
       </portlet-info>
       <supported-publishing-event>
-         <qname>tck:FilterTests_PortletFilter_EventFilter</qname>
+         <qname>tck:FilterTests_PortletFilter_ApiEventFilter</qname>
       </supported-publishing-event>
    </portlet>
 
    <portlet>
-      <portlet-name>FilterTests_PortletFilter_EventFilter_event</portlet-name>
-      <portlet-class>javax.portlet.tck.portlets.FilterTests_PortletFilter_EventFilter_event</portlet-class>
+      <portlet-name>FilterTests_PortletFilter_ApiEventFilter_event</portlet-name>
+      <portlet-class>javax.portlet.tck.portlets.FilterTests_PortletFilter_ApiEventFilter_event</portlet-class>
       <expiration-cache>0</expiration-cache>
       <supports>
          <mime-type>text/html</mime-type>
       </supports>
       <supported-locale>en_US</supported-locale>
       <portlet-info>
-         <title>FilterTests_PortletFilter_EventFilter_event</title>
+         <title>FilterTests_PortletFilter_ApiEventFilter_event</title>
       </portlet-info>
       <supported-processing-event>
-         <qname>tck:FilterTests_PortletFilter_EventFilter</qname>
+         <qname>tck:FilterTests_PortletFilter_ApiEventFilter</qname>
       </supported-processing-event>
    </portlet>
 
    <portlet>
-      <portlet-name>FilterTests_PortletFilter_RenderFilter</portlet-name>
-      <portlet-class>javax.portlet.tck.portlets.FilterTests_PortletFilter_RenderFilter</portlet-class>
+      <portlet-name>FilterTests_PortletFilter_ApiRenderFilter</portlet-name>
+      <portlet-class>javax.portlet.tck.portlets.FilterTests_PortletFilter_ApiRenderFilter</portlet-class>
       <expiration-cache>0</expiration-cache>
       <supports>
          <mime-type>text/html</mime-type>
       </supports>
       <supported-locale>en_US</supported-locale>
       <portlet-info>
-         <title>FilterTests_PortletFilter_RenderFilter</title>
+         <title>FilterTests_PortletFilter_ApiRenderFilter</title>
       </portlet-info>
    </portlet>
 
    <portlet>
-      <portlet-name>FilterTests_PortletFilter_ResourceFilter</portlet-name>
-      <portlet-class>javax.portlet.tck.portlets.FilterTests_PortletFilter_ResourceFilter</portlet-class>
+      <portlet-name>FilterTests_PortletFilter_ApiResourceFilter</portlet-name>
+      <portlet-class>javax.portlet.tck.portlets.FilterTests_PortletFilter_ApiResourceFilter</portlet-class>
       <expiration-cache>0</expiration-cache>
       <supports>
          <mime-type>text/html</mime-type>
       </supports>
       <supported-locale>en_US</supported-locale>
       <portlet-info>
-         <title>FilterTests_PortletFilter_ResourceFilter</title>
+         <title>FilterTests_PortletFilter_ApiResourceFilter</title>
       </portlet-info>
    </portlet>
 
    <portlet>
-      <portlet-name>FilterTests_ActionFilter_ActionFilter</portlet-name>
-      <portlet-class>javax.portlet.tck.portlets.FilterTests_ActionFilter_ActionFilter</portlet-class>
+      <portlet-name>FilterTests_ActionFilter_ApiActionFilter</portlet-name>
+      <portlet-class>javax.portlet.tck.portlets.FilterTests_ActionFilter_ApiActionFilter</portlet-class>
       <expiration-cache>0</expiration-cache>
       <supports>
          <mime-type>text/html</mime-type>
       </supports>
       <supported-locale>en_US</supported-locale>
       <portlet-info>
-         <title>FilterTests_ActionFilter_ActionFilter</title>
+         <title>FilterTests_ActionFilter_ApiActionFilter</title>
       </portlet-info>
    </portlet>
 
    <portlet>
-      <portlet-name>FilterTests_EventFilter_EventFilter</portlet-name>
-      <portlet-class>javax.portlet.tck.portlets.FilterTests_EventFilter_EventFilter</portlet-class>
+      <portlet-name>FilterTests_EventFilter_ApiEventFilter</portlet-name>
+      <portlet-class>javax.portlet.tck.portlets.FilterTests_EventFilter_ApiEventFilter</portlet-class>
       <expiration-cache>0</expiration-cache>
       <supports>
          <mime-type>text/html</mime-type>
       </supports>
       <supported-locale>en_US</supported-locale>
       <portlet-info>
-         <title>FilterTests_EventFilter_EventFilter</title>
+         <title>FilterTests_EventFilter_ApiEventFilter</title>
       </portlet-info>
       <supported-publishing-event>
-         <qname>tck:FilterTests_EventFilter_EventFilter</qname>
+         <qname>tck:FilterTests_EventFilter_ApiEventFilter</qname>
       </supported-publishing-event>
    </portlet>
 
    <portlet>
-      <portlet-name>FilterTests_EventFilter_EventFilter_event</portlet-name>
-      <portlet-class>javax.portlet.tck.portlets.FilterTests_EventFilter_EventFilter_event</portlet-class>
+      <portlet-name>FilterTests_EventFilter_ApiEventFilter_event</portlet-name>
+      <portlet-class>javax.portlet.tck.portlets.FilterTests_EventFilter_ApiEventFilter_event</portlet-class>
       <expiration-cache>0</expiration-cache>
       <supports>
          <mime-type>text/html</mime-type>
       </supports>
       <supported-locale>en_US</supported-locale>
       <portlet-info>
-         <title>FilterTests_EventFilter_EventFilter_event</title>
+         <title>FilterTests_EventFilter_ApiEventFilter_event</title>
       </portlet-info>
       <supported-processing-event>
-         <qname>tck:FilterTests_EventFilter_EventFilter</qname>
+         <qname>tck:FilterTests_EventFilter_ApiEventFilter</qname>
       </supported-processing-event>
    </portlet>
 
    <portlet>
-      <portlet-name>FilterTests_RenderFilter_RenderFilter</portlet-name>
-      <portlet-class>javax.portlet.tck.portlets.FilterTests_RenderFilter_RenderFilter</portlet-class>
+      <portlet-name>FilterTests_RenderFilter_ApiRenderFilter</portlet-name>
+      <portlet-class>javax.portlet.tck.portlets.FilterTests_RenderFilter_ApiRenderFilter</portlet-class>
       <expiration-cache>0</expiration-cache>
       <supports>
          <mime-type>text/html</mime-type>
       </supports>
       <supported-locale>en_US</supported-locale>
       <portlet-info>
-         <title>FilterTests_RenderFilter_RenderFilter</title>
+         <title>FilterTests_RenderFilter_ApiRenderFilter</title>
       </portlet-info>
    </portlet>
 
    <portlet>
-      <portlet-name>FilterTests_ResourceFilter_ResourceFilter</portlet-name>
-      <portlet-class>javax.portlet.tck.portlets.FilterTests_ResourceFilter_ResourceFilter</portlet-class>
+      <portlet-name>FilterTests_ResourceFilter_ApiResourceFilter</portlet-name>
+      <portlet-class>javax.portlet.tck.portlets.FilterTests_ResourceFilter_ApiResourceFilter</portlet-class>
       <expiration-cache>0</expiration-cache>
       <supports>
          <mime-type>text/html</mime-type>
       </supports>
       <supported-locale>en_US</supported-locale>
       <portlet-info>
-         <title>FilterTests_ResourceFilter_ResourceFilter</title>
+         <title>FilterTests_ResourceFilter_ApiResourceFilter</title>
       </portlet-info>
    </portlet>
 
+   <filter>
+      <filter-name>FilterTests_ActionFilter_ApiActionFilter_filter</filter-name>
+      <filter-class>javax.portlet.tck.filters.FilterTests_ActionFilter_ApiActionFilter_filter</filter-class>
+      <lifecycle>ACTION_PHASE</lifecycle>
+   </filter>
+   <filter>
+      <filter-name>FilterTests_RenderFilter_ApiRenderFilter_filter</filter-name>
+      <filter-class>javax.portlet.tck.filters.FilterTests_RenderFilter_ApiRenderFilter_filter</filter-class>
+      <lifecycle>RENDER_PHASE</lifecycle>
+   </filter>
+   <filter>
+      <filter-name>FilterTests_PortletFilter_ApiActionFilter_filter</filter-name>
+      <filter-class>javax.portlet.tck.filters.FilterTests_PortletFilter_ApiActionFilter_filter</filter-class>
+      <lifecycle>ACTION_PHASE</lifecycle>
+   </filter>
+   <filter>
+      <filter-name>FilterTests_PortletFilter_ApiRenderFilter_filter</filter-name>
+      <filter-class>javax.portlet.tck.filters.FilterTests_PortletFilter_ApiRenderFilter_filter</filter-class>
+      <lifecycle>RENDER_PHASE</lifecycle>
+   </filter>
+   <filter>
+      <filter-name>FilterTests_PortletFilter_ApiResourceFilter_filter</filter-name>
+      <filter-class>javax.portlet.tck.filters.FilterTests_PortletFilter_ApiResourceFilter_filter</filter-class>
+      <lifecycle>RESOURCE_PHASE</lifecycle>
+   </filter>
+   <filter>
+      <filter-name>FilterTests_ResourceFilter_ApiResourceFilter_filter</filter-name>
+      <filter-class>javax.portlet.tck.filters.FilterTests_ResourceFilter_ApiResourceFilter_filter</filter-class>
+      <lifecycle>RESOURCE_PHASE</lifecycle>
+   </filter>
+   <filter>
+      <filter-name>FilterTests_PortletFilter_ApiEventFilter_filter</filter-name>
+      <filter-class>javax.portlet.tck.filters.FilterTests_PortletFilter_ApiEventFilter_filter</filter-class>
+      <lifecycle>EVENT_PHASE</lifecycle>
+   </filter>
+   <filter>
+      <filter-name>FilterTests_EventFilter_ApiEventFilter_filter</filter-name>
+      <filter-class>javax.portlet.tck.filters.FilterTests_EventFilter_ApiEventFilter_filter</filter-class>
+      <lifecycle>EVENT_PHASE</lifecycle>
+   </filter>
+   <filter>
+      <filter-name>FilterTests_FilterChain_ApiActionFilter_filter</filter-name>
+      <filter-class>javax.portlet.tck.filters.FilterTests_FilterChain_ApiActionFilter_filter</filter-class>
+      <lifecycle>ACTION_PHASE</lifecycle>
+   </filter>
+   <filter>
+      <filter-name>FilterTests_FilterChain_ApiRenderFilter_filter</filter-name>
+      <filter-class>javax.portlet.tck.filters.FilterTests_FilterChain_ApiRenderFilter_filter</filter-class>
+      <lifecycle>RENDER_PHASE</lifecycle>
+   </filter>
+   <filter>
+      <filter-name>FilterTests_FilterChain_ApiResourceFilter_filter</filter-name>
+      <filter-class>javax.portlet.tck.filters.FilterTests_FilterChain_ApiResourceFilter_filter</filter-class>
+      <lifecycle>RESOURCE_PHASE</lifecycle>
+   </filter>
+   <filter>
+      <filter-name>FilterTests_FilterConfig_ApiRenderFilter_filter</filter-name>
+      <filter-class>javax.portlet.tck.filters.FilterTests_FilterConfig_ApiRenderFilter_filter</filter-class>
+      <lifecycle>RENDER_PHASE</lifecycle>
+   </filter>
+   <filter>
+      <filter-name>FilterTests_FilterChain_ApiEventFilter_filter</filter-name>
+      <filter-class>javax.portlet.tck.filters.FilterTests_FilterChain_ApiEventFilter_filter</filter-class>
+      <lifecycle>EVENT_PHASE</lifecycle>
+   </filter>
+
+   <filter-mapping>
+      <filter-name>FilterTests_ActionFilter_ApiActionFilter_filter</filter-name>
+      <portlet-name>FilterTests_ActionFilter_ApiActionFilter</portlet-name>
+   </filter-mapping>
+   <filter-mapping>
+      <filter-name>FilterTests_RenderFilter_ApiRenderFilter_filter</filter-name>
+      <portlet-name>FilterTests_RenderFilter_ApiRenderFilter</portlet-name>
+   </filter-mapping>
+   <filter-mapping>
+      <filter-name>FilterTests_PortletFilter_ApiActionFilter_filter</filter-name>
+      <portlet-name>FilterTests_PortletFilter_ApiActionFilter</portlet-name>
+   </filter-mapping>
+   <filter-mapping>
+      <filter-name>FilterTests_PortletFilter_ApiRenderFilter_filter</filter-name>
+      <portlet-name>FilterTests_PortletFilter_ApiRenderFilter</portlet-name>
+   </filter-mapping>
+   <filter-mapping>
+      <filter-name>FilterTests_PortletFilter_ApiResourceFilter_filter</filter-name>
+      <portlet-name>FilterTests_PortletFilter_ApiResourceFilter</portlet-name>
+   </filter-mapping>
+   <filter-mapping>
+      <filter-name>FilterTests_ResourceFilter_ApiResourceFilter_filter</filter-name>
+      <portlet-name>FilterTests_ResourceFilter_ApiResourceFilter</portlet-name>
+   </filter-mapping>
+   <filter-mapping>
+      <filter-name>FilterTests_PortletFilter_ApiEventFilter_filter</filter-name>
+      <portlet-name>FilterTests_PortletFilter_ApiEventFilter_event</portlet-name>
+   </filter-mapping>
+   <filter-mapping>
+      <filter-name>FilterTests_EventFilter_ApiEventFilter_filter</filter-name>
+      <portlet-name>FilterTests_EventFilter_ApiEventFilter_event</portlet-name>
+   </filter-mapping>
+   <filter-mapping>
+      <filter-name>FilterTests_FilterChain_ApiActionFilter_filter</filter-name>
+      <portlet-name>FilterTests_FilterChain_ApiActionFilter</portlet-name>
+   </filter-mapping>
+   <filter-mapping>
+      <filter-name>FilterTests_FilterChain_ApiRenderFilter_filter</filter-name>
+      <portlet-name>FilterTests_FilterChain_ApiRenderFilter</portlet-name>
+   </filter-mapping>
+   <filter-mapping>
+      <filter-name>FilterTests_FilterChain_ApiResourceFilter_filter</filter-name>
+      <portlet-name>FilterTests_FilterChain_ApiResourceFilter</portlet-name>
+   </filter-mapping>
+   <filter-mapping>
+      <filter-name>FilterTests_FilterConfig_ApiRenderFilter_filter</filter-name>
+      <portlet-name>FilterTests_FilterConfig_ApiRenderFilter</portlet-name>
+   </filter-mapping>
+   <filter-mapping>
+      <filter-name>FilterTests_FilterChain_ApiEventFilter_filter</filter-name>
+      <portlet-name>FilterTests_FilterChain_ApiEventFilter_event</portlet-name>
+   </filter-mapping>
+
    <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>
 

http://git-wip-us.apache.org/repos/asf/portals-pluto/blob/db1071e7/portlet-tck_3.0/V2PortletTests/src/main/java/javax/portlet/tck/portlets/PortletTests_EventPortlet_ApiEvent.java
----------------------------------------------------------------------
diff --git a/portlet-tck_3.0/V2PortletTests/src/main/java/javax/portlet/tck/portlets/PortletTests_EventPortlet_ApiEvent.java b/portlet-tck_3.0/V2PortletTests/src/main/java/javax/portlet/tck/portlets/PortletTests_EventPortlet_ApiEvent.java
new file mode 100644
index 0000000..a97e62b
--- /dev/null
+++ b/portlet-tck_3.0/V2PortletTests/src/main/java/javax/portlet/tck/portlets/PortletTests_EventPortlet_ApiEvent.java
@@ -0,0 +1,114 @@
+/*  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *    http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES 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 PortletTests_EventPortlet_ApiEvent_event
+ *
+ */
+public class PortletTests_EventPortlet_ApiEvent implements Portlet, ResourceServingPortlet {
+   private static final String LOG_CLASS = 
+         PortletTests_EventPortlet_ApiEvent.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();
+
+      QName eventQName = new QName(TCKNAMESPACE,
+             "PortletTests_EventPortlet_ApiEvent");
+      portletResp.setEvent(eventQName, "Hi!");
+   }
+
+   @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();
+
+      /* TestCase: V2PortletTests_EventPortlet_ApiEvent_processEvent          */
+      /* Details: "Method processEvent(EventRequest, EventResponse): is       */
+      /* called when an event is targeted to the portlet"                     */
+      {
+         PortletURL aurl = portletResp.createActionURL();
+         aurl.setParameters(portletReq.getPrivateParameterMap());
+         TestButton tb = new TestButton("V2PortletTests_EventPortlet_ApiEvent_processEvent", aurl);
+         tb.writeTo(writer);
+      }
+
+   }
+
+}

http://git-wip-us.apache.org/repos/asf/portals-pluto/blob/db1071e7/portlet-tck_3.0/V2PortletTests/src/main/java/javax/portlet/tck/portlets/PortletTests_EventPortlet_ApiEvent_event.java
----------------------------------------------------------------------
diff --git a/portlet-tck_3.0/V2PortletTests/src/main/java/javax/portlet/tck/portlets/PortletTests_EventPortlet_ApiEvent_event.java b/portlet-tck_3.0/V2PortletTests/src/main/java/javax/portlet/tck/portlets/PortletTests_EventPortlet_ApiEvent_event.java
new file mode 100644
index 0000000..a87e27d
--- /dev/null
+++ b/portlet-tck_3.0/V2PortletTests/src/main/java/javax/portlet/tck/portlets/PortletTests_EventPortlet_ApiEvent_event.java
@@ -0,0 +1,117 @@
+/*  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *    http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES 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.constants.Constants.*;
+import static javax.portlet.tck.beans.JSR286ApiTestCaseDetails.*;
+import static javax.portlet.PortletSession.*;
+
+/**
+ * This is the event processing portlet for the test cases. This portlet processes events, 
+ * but does not publish them. Events are published in the main portlet for the test cases. 
+ */
+public class PortletTests_EventPortlet_ApiEvent_event implements Portlet, EventPortlet, ResourceServingPortlet {
+   private static final String LOG_CLASS = 
+         PortletTests_EventPortlet_ApiEvent_event.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, "event companion processAction - ERROR!!");
+   }
+
+   @Override
+   public void serveResource(ResourceRequest portletReq, ResourceResponse portletResp)
+         throws PortletException, IOException {
+      LOGGER.entering(LOG_CLASS, "event companion serveResource - ERROR!!");
+   }
+
+   @Override
+   public void processEvent(EventRequest portletReq, EventResponse portletResp)
+         throws PortletException, IOException {
+      LOGGER.entering(LOG_CLASS, "event companion processEvent");
+
+
+      portletResp.setRenderParameters(portletReq);
+
+      long tid = Thread.currentThread().getId();
+      portletReq.setAttribute(THREADID_ATTR, tid);
+
+      StringWriter writer = new StringWriter();
+
+      JSR286ApiTestCaseDetails tcd = new JSR286ApiTestCaseDetails();
+
+      // Create result objects for the tests
+
+      /* TestCase: V2PortletTests_EventPortlet_ApiEvent_processEvent          */
+      /* Details: "Method processEvent(EventRequest, EventResponse): is       */
+      /* called when an event is targeted to the portlet"                     */
+      TestResult tr0 = tcd.getTestResultFailed(V2PORTLETTESTS_EVENTPORTLET_APIEVENT_PROCESSEVENT);
+      /* TODO: implement test */
+      tr0.appendTcDetail("Not implemented.");
+      tr0.writeTo(writer);
+
+      portletReq.getPortletSession().setAttribute(
+                   Constants.RESULT_ATTR_PREFIX + "PortletTests_EventPortlet_ApiEvent",
+                   writer.toString(), APPLICATION_SCOPE);
+
+   }
+
+   @Override
+   public void render(RenderRequest portletReq, RenderResponse portletResp)
+         throws PortletException, IOException {
+      
+      LOGGER.entering(LOG_CLASS, "event companion render");
+
+      portletResp.setContentType("text/html");
+      PrintWriter writer = portletResp.getWriter();
+      writer.write("<h3>Event Companion Portlet </h3>\n");
+      writer.write("<p>PortletTests_EventPortlet_ApiEvent_event</p>\n");
+
+      String msg = (String) portletReq.getPortletSession()
+            .getAttribute(RESULT_ATTR_PREFIX + "PortletTests_EventPortlet_ApiEvent", APPLICATION_SCOPE);
+      msg = (msg==null) ? "Not ready. click test case link." : msg;
+      writer.write("<p>" + msg + "</p>\n");
+
+   }
+
+}

http://git-wip-us.apache.org/repos/asf/portals-pluto/blob/db1071e7/portlet-tck_3.0/V2PortletTests/src/main/java/javax/portlet/tck/portlets/PortletTests_EventPortlet_Event.java
----------------------------------------------------------------------
diff --git a/portlet-tck_3.0/V2PortletTests/src/main/java/javax/portlet/tck/portlets/PortletTests_EventPortlet_Event.java b/portlet-tck_3.0/V2PortletTests/src/main/java/javax/portlet/tck/portlets/PortletTests_EventPortlet_Event.java
deleted file mode 100644
index cb29318..0000000
--- a/portlet-tck_3.0/V2PortletTests/src/main/java/javax/portlet/tck/portlets/PortletTests_EventPortlet_Event.java
+++ /dev/null
@@ -1,114 +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 PortletTests_EventPortlet_Event_event
- *
- */
-public class PortletTests_EventPortlet_Event implements Portlet, ResourceServingPortlet {
-   private static final String LOG_CLASS = 
-         PortletTests_EventPortlet_Event.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();
-
-      QName eventQName = new QName(TCKNAMESPACE,
-             "PortletTests_EventPortlet_Event");
-      portletResp.setEvent(eventQName, "Hi!");
-   }
-
-   @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();
-
-      /* TestCase: V2PortletTests_EventPortlet_Event_processEvent             */
-      /* Details: "Method processEvent(EventRequest, EventResponse): is       */
-      /* called when an event is targeted to the portlet"                     */
-      {
-         PortletURL aurl = portletResp.createActionURL();
-         aurl.setParameters(portletReq.getPrivateParameterMap());
-         TestButton tb = new TestButton("V2PortletTests_EventPortlet_Event_processEvent", aurl);
-         tb.writeTo(writer);
-      }
-
-   }
-
-}

http://git-wip-us.apache.org/repos/asf/portals-pluto/blob/db1071e7/portlet-tck_3.0/V2PortletTests/src/main/java/javax/portlet/tck/portlets/PortletTests_EventPortlet_Event_event.java
----------------------------------------------------------------------
diff --git a/portlet-tck_3.0/V2PortletTests/src/main/java/javax/portlet/tck/portlets/PortletTests_EventPortlet_Event_event.java b/portlet-tck_3.0/V2PortletTests/src/main/java/javax/portlet/tck/portlets/PortletTests_EventPortlet_Event_event.java
deleted file mode 100644
index 40f53b1..0000000
--- a/portlet-tck_3.0/V2PortletTests/src/main/java/javax/portlet/tck/portlets/PortletTests_EventPortlet_Event_event.java
+++ /dev/null
@@ -1,117 +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.constants.Constants.*;
-import static javax.portlet.tck.beans.JSR286ApiTestCaseDetails.*;
-import static javax.portlet.PortletSession.*;
-
-/**
- * This is the event processing portlet for the test cases. This portlet processes events, 
- * but does not publish them. Events are published in the main portlet for the test cases. 
- */
-public class PortletTests_EventPortlet_Event_event implements Portlet, EventPortlet, ResourceServingPortlet {
-   private static final String LOG_CLASS = 
-         PortletTests_EventPortlet_Event_event.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, "event companion processAction - ERROR!!");
-   }
-
-   @Override
-   public void serveResource(ResourceRequest portletReq, ResourceResponse portletResp)
-         throws PortletException, IOException {
-      LOGGER.entering(LOG_CLASS, "event companion serveResource - ERROR!!");
-   }
-
-   @Override
-   public void processEvent(EventRequest portletReq, EventResponse portletResp)
-         throws PortletException, IOException {
-      LOGGER.entering(LOG_CLASS, "event companion processEvent");
-
-
-      portletResp.setRenderParameters(portletReq);
-
-      long tid = Thread.currentThread().getId();
-      portletReq.setAttribute(THREADID_ATTR, tid);
-
-      StringWriter writer = new StringWriter();
-
-      JSR286ApiTestCaseDetails tcd = new JSR286ApiTestCaseDetails();
-
-      // Create result objects for the tests
-
-      /* TestCase: V2PortletTests_EventPortlet_Event_processEvent             */
-      /* Details: "Method processEvent(EventRequest, EventResponse): is       */
-      /* called when an event is targeted to the portlet"                     */
-      TestResult tr0 = tcd.getTestResultFailed(V2PORTLETTESTS_EVENTPORTLET_EVENT_PROCESSEVENT);
-      /* TODO: implement test */
-      tr0.appendTcDetail("Not implemented.");
-      tr0.writeTo(writer);
-
-      portletReq.getPortletSession().setAttribute(
-                   Constants.RESULT_ATTR_PREFIX + "PortletTests_EventPortlet_Event",
-                   writer.toString(), APPLICATION_SCOPE);
-
-   }
-
-   @Override
-   public void render(RenderRequest portletReq, RenderResponse portletResp)
-         throws PortletException, IOException {
-      
-      LOGGER.entering(LOG_CLASS, "event companion render");
-
-      portletResp.setContentType("text/html");
-      PrintWriter writer = portletResp.getWriter();
-      writer.write("<h3>Event Companion Portlet </h3>\n");
-      writer.write("<p>PortletTests_EventPortlet_Event_event</p>\n");
-
-      String msg = (String) portletReq.getPortletSession()
-            .getAttribute(RESULT_ATTR_PREFIX + "PortletTests_EventPortlet_Event", APPLICATION_SCOPE);
-      msg = (msg==null) ? "Not ready. click test case link." : msg;
-      writer.write("<p>" + msg + "</p>\n");
-
-   }
-
-}

http://git-wip-us.apache.org/repos/asf/portals-pluto/blob/db1071e7/portlet-tck_3.0/V2PortletTests/src/main/java/javax/portlet/tck/portlets/PortletTests_Event_ApiEvent.java
----------------------------------------------------------------------
diff --git a/portlet-tck_3.0/V2PortletTests/src/main/java/javax/portlet/tck/portlets/PortletTests_Event_ApiEvent.java b/portlet-tck_3.0/V2PortletTests/src/main/java/javax/portlet/tck/portlets/PortletTests_Event_ApiEvent.java
new file mode 100644
index 0000000..42fda42
--- /dev/null
+++ b/portlet-tck_3.0/V2PortletTests/src/main/java/javax/portlet/tck/portlets/PortletTests_Event_ApiEvent.java
@@ -0,0 +1,162 @@
+/*  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *    http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES 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 PortletTests_Event_ApiEvent_event
+ *
+ */
+public class PortletTests_Event_ApiEvent implements Portlet, ResourceServingPortlet {
+   private static final String LOG_CLASS = 
+         PortletTests_Event_ApiEvent.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();
+
+      QName eventQName = new QName(TCKNAMESPACE,
+             "PortletTests_Event_ApiEvent");
+      portletResp.setEvent(eventQName, "Hi!");
+   }
+
+   @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();
+
+      /* TestCase: V2PortletTests_Event_ApiEvent_getQName1                    */
+      /* Details: "Method getQName(): Returns the javax.xml.namespace.QName   */
+      /* object for the Event"                                                */
+      {
+         PortletURL aurl = portletResp.createActionURL();
+         aurl.setParameters(portletReq.getPrivateParameterMap());
+         TestButton tb = new TestButton("V2PortletTests_Event_ApiEvent_getQName1", aurl);
+         tb.writeTo(writer);
+      }
+
+      /* TestCase: V2PortletTests_Event_ApiEvent_getQName2                    */
+      /* Details: "Method getQName(): Returned value may not be null"         */
+      {
+         PortletURL aurl = portletResp.createActionURL();
+         aurl.setParameters(portletReq.getPrivateParameterMap());
+         TestButton tb = new TestButton("V2PortletTests_Event_ApiEvent_getQName2", aurl);
+         tb.writeTo(writer);
+      }
+
+      /* TestCase: V2PortletTests_Event_ApiEvent_getName1                     */
+      /* Details: "Method getName(): Returns a String containing the event    */
+      /* local name"                                                          */
+      {
+         PortletURL aurl = portletResp.createActionURL();
+         aurl.setParameters(portletReq.getPrivateParameterMap());
+         TestButton tb = new TestButton("V2PortletTests_Event_ApiEvent_getName1", aurl);
+         tb.writeTo(writer);
+      }
+
+      /* TestCase: V2PortletTests_Event_ApiEvent_getName2                     */
+      /* Details: "Method getName(): Returned value may not be null"          */
+      {
+         PortletURL aurl = portletResp.createActionURL();
+         aurl.setParameters(portletReq.getPrivateParameterMap());
+         TestButton tb = new TestButton("V2PortletTests_Event_ApiEvent_getName2", aurl);
+         tb.writeTo(writer);
+      }
+
+      /* TestCase: V2PortletTests_Event_ApiEvent_getValue1                    */
+      /* Details: "Method getValue(String, String): Returns a                 */
+      /* java.io.Serializable object representing the event payload"          */
+      {
+         PortletURL aurl = portletResp.createActionURL();
+         aurl.setParameters(portletReq.getPrivateParameterMap());
+         TestButton tb = new TestButton("V2PortletTests_Event_ApiEvent_getValue1", aurl);
+         tb.writeTo(writer);
+      }
+
+      /* TestCase: V2PortletTests_Event_ApiEvent_getValue2                    */
+      /* Details: "Method getValue(String, String): Returned value is null    */
+      /* if the event has no payload"                                         */
+      {
+         PortletURL aurl = portletResp.createActionURL();
+         aurl.setParameters(portletReq.getPrivateParameterMap());
+         TestButton tb = new TestButton("V2PortletTests_Event_ApiEvent_getValue2", aurl);
+         tb.writeTo(writer);
+      }
+
+   }
+
+}

http://git-wip-us.apache.org/repos/asf/portals-pluto/blob/db1071e7/portlet-tck_3.0/V2PortletTests/src/main/java/javax/portlet/tck/portlets/PortletTests_Event_ApiEvent_event.java
----------------------------------------------------------------------
diff --git a/portlet-tck_3.0/V2PortletTests/src/main/java/javax/portlet/tck/portlets/PortletTests_Event_ApiEvent_event.java b/portlet-tck_3.0/V2PortletTests/src/main/java/javax/portlet/tck/portlets/PortletTests_Event_ApiEvent_event.java
new file mode 100644
index 0000000..43ea2a0
--- /dev/null
+++ b/portlet-tck_3.0/V2PortletTests/src/main/java/javax/portlet/tck/portlets/PortletTests_Event_ApiEvent_event.java
@@ -0,0 +1,155 @@
+/*  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *    http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES 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.constants.Constants.*;
+import static javax.portlet.tck.beans.JSR286ApiTestCaseDetails.*;
+import static javax.portlet.PortletSession.*;
+
+/**
+ * This is the event processing portlet for the test cases. This portlet processes events, 
+ * but does not publish them. Events are published in the main portlet for the test cases. 
+ */
+public class PortletTests_Event_ApiEvent_event implements Portlet, EventPortlet, ResourceServingPortlet {
+   private static final String LOG_CLASS = 
+         PortletTests_Event_ApiEvent_event.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, "event companion processAction - ERROR!!");
+   }
+
+   @Override
+   public void serveResource(ResourceRequest portletReq, ResourceResponse portletResp)
+         throws PortletException, IOException {
+      LOGGER.entering(LOG_CLASS, "event companion serveResource - ERROR!!");
+   }
+
+   @Override
+   public void processEvent(EventRequest portletReq, EventResponse portletResp)
+         throws PortletException, IOException {
+      LOGGER.entering(LOG_CLASS, "event companion processEvent");
+
+
+      portletResp.setRenderParameters(portletReq);
+
+      long tid = Thread.currentThread().getId();
+      portletReq.setAttribute(THREADID_ATTR, tid);
+
+      StringWriter writer = new StringWriter();
+
+      JSR286ApiTestCaseDetails tcd = new JSR286ApiTestCaseDetails();
+
+      // Create result objects for the tests
+
+      /* TestCase: V2PortletTests_Event_ApiEvent_getQName1                    */
+      /* Details: "Method getQName(): Returns the javax.xml.namespace.QName   */
+      /* object for the Event"                                                */
+      TestResult tr0 = tcd.getTestResultFailed(V2PORTLETTESTS_EVENT_APIEVENT_GETQNAME1);
+      /* TODO: implement test */
+      tr0.appendTcDetail("Not implemented.");
+      tr0.writeTo(writer);
+
+      /* TestCase: V2PortletTests_Event_ApiEvent_getQName2                    */
+      /* Details: "Method getQName(): Returned value may not be null"         */
+      TestResult tr1 = tcd.getTestResultFailed(V2PORTLETTESTS_EVENT_APIEVENT_GETQNAME2);
+      /* TODO: implement test */
+      tr1.appendTcDetail("Not implemented.");
+      tr1.writeTo(writer);
+
+      /* TestCase: V2PortletTests_Event_ApiEvent_getName1                     */
+      /* Details: "Method getName(): Returns a String containing the event    */
+      /* local name"                                                          */
+      TestResult tr2 = tcd.getTestResultFailed(V2PORTLETTESTS_EVENT_APIEVENT_GETNAME1);
+      /* TODO: implement test */
+      tr2.appendTcDetail("Not implemented.");
+      tr2.writeTo(writer);
+
+      /* TestCase: V2PortletTests_Event_ApiEvent_getName2                     */
+      /* Details: "Method getName(): Returned value may not be null"          */
+      TestResult tr3 = tcd.getTestResultFailed(V2PORTLETTESTS_EVENT_APIEVENT_GETNAME2);
+      /* TODO: implement test */
+      tr3.appendTcDetail("Not implemented.");
+      tr3.writeTo(writer);
+
+      /* TestCase: V2PortletTests_Event_ApiEvent_getValue1                    */
+      /* Details: "Method getValue(String, String): Returns a                 */
+      /* java.io.Serializable object representing the event payload"          */
+      TestResult tr4 = tcd.getTestResultFailed(V2PORTLETTESTS_EVENT_APIEVENT_GETVALUE1);
+      /* TODO: implement test */
+      tr4.appendTcDetail("Not implemented.");
+      tr4.writeTo(writer);
+
+      /* TestCase: V2PortletTests_Event_ApiEvent_getValue2                    */
+      /* Details: "Method getValue(String, String): Returned value is null    */
+      /* if the event has no payload"                                         */
+      TestResult tr5 = tcd.getTestResultFailed(V2PORTLETTESTS_EVENT_APIEVENT_GETVALUE2);
+      /* TODO: implement test */
+      tr5.appendTcDetail("Not implemented.");
+      tr5.writeTo(writer);
+
+      portletReq.getPortletSession().setAttribute(
+                   Constants.RESULT_ATTR_PREFIX + "PortletTests_Event_ApiEvent",
+                   writer.toString(), APPLICATION_SCOPE);
+
+   }
+
+   @Override
+   public void render(RenderRequest portletReq, RenderResponse portletResp)
+         throws PortletException, IOException {
+      
+      LOGGER.entering(LOG_CLASS, "event companion render");
+
+      portletResp.setContentType("text/html");
+      PrintWriter writer = portletResp.getWriter();
+      writer.write("<h3>Event Companion Portlet </h3>\n");
+      writer.write("<p>PortletTests_Event_ApiEvent_event</p>\n");
+
+      String msg = (String) portletReq.getPortletSession()
+            .getAttribute(RESULT_ATTR_PREFIX + "PortletTests_Event_ApiEvent", APPLICATION_SCOPE);
+      msg = (msg==null) ? "Not ready. click test case link." : msg;
+      writer.write("<p>" + msg + "</p>\n");
+
+   }
+
+}

http://git-wip-us.apache.org/repos/asf/portals-pluto/blob/db1071e7/portlet-tck_3.0/V2PortletTests/src/main/java/javax/portlet/tck/portlets/PortletTests_Event_Event.java
----------------------------------------------------------------------
diff --git a/portlet-tck_3.0/V2PortletTests/src/main/java/javax/portlet/tck/portlets/PortletTests_Event_Event.java b/portlet-tck_3.0/V2PortletTests/src/main/java/javax/portlet/tck/portlets/PortletTests_Event_Event.java
deleted file mode 100644
index b44c271..0000000
--- a/portlet-tck_3.0/V2PortletTests/src/main/java/javax/portlet/tck/portlets/PortletTests_Event_Event.java
+++ /dev/null
@@ -1,162 +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 PortletTests_Event_Event_event
- *
- */
-public class PortletTests_Event_Event implements Portlet, ResourceServingPortlet {
-   private static final String LOG_CLASS = 
-         PortletTests_Event_Event.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();
-
-      QName eventQName = new QName(TCKNAMESPACE,
-             "PortletTests_Event_Event");
-      portletResp.setEvent(eventQName, "Hi!");
-   }
-
-   @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();
-
-      /* TestCase: V2PortletTests_Event_Event_getQName1                       */
-      /* Details: "Method getQName(): Returns the javax.xml.namespace.QName   */
-      /* object for the Event"                                                */
-      {
-         PortletURL aurl = portletResp.createActionURL();
-         aurl.setParameters(portletReq.getPrivateParameterMap());
-         TestButton tb = new TestButton("V2PortletTests_Event_Event_getQName1", aurl);
-         tb.writeTo(writer);
-      }
-
-      /* TestCase: V2PortletTests_Event_Event_getQName2                       */
-      /* Details: "Method getQName(): Returned value may not be null"         */
-      {
-         PortletURL aurl = portletResp.createActionURL();
-         aurl.setParameters(portletReq.getPrivateParameterMap());
-         TestButton tb = new TestButton("V2PortletTests_Event_Event_getQName2", aurl);
-         tb.writeTo(writer);
-      }
-
-      /* TestCase: V2PortletTests_Event_Event_getName1                        */
-      /* Details: "Method getName(): Returns a String containing the event    */
-      /* local name"                                                          */
-      {
-         PortletURL aurl = portletResp.createActionURL();
-         aurl.setParameters(portletReq.getPrivateParameterMap());
-         TestButton tb = new TestButton("V2PortletTests_Event_Event_getName1", aurl);
-         tb.writeTo(writer);
-      }
-
-      /* TestCase: V2PortletTests_Event_Event_getName2                        */
-      /* Details: "Method getName(): Returned value may not be null"          */
-      {
-         PortletURL aurl = portletResp.createActionURL();
-         aurl.setParameters(portletReq.getPrivateParameterMap());
-         TestButton tb = new TestButton("V2PortletTests_Event_Event_getName2", aurl);
-         tb.writeTo(writer);
-      }
-
-      /* TestCase: V2PortletTests_Event_Event_getValue1                       */
-      /* Details: "Method getValue(String, String): Returns a                 */
-      /* java.io.Serializable object representing the event payload"          */
-      {
-         PortletURL aurl = portletResp.createActionURL();
-         aurl.setParameters(portletReq.getPrivateParameterMap());
-         TestButton tb = new TestButton("V2PortletTests_Event_Event_getValue1", aurl);
-         tb.writeTo(writer);
-      }
-
-      /* TestCase: V2PortletTests_Event_Event_getValue2                       */
-      /* Details: "Method getValue(String, String): Returned value is null    */
-      /* if the event has no payload"                                         */
-      {
-         PortletURL aurl = portletResp.createActionURL();
-         aurl.setParameters(portletReq.getPrivateParameterMap());
-         TestButton tb = new TestButton("V2PortletTests_Event_Event_getValue2", aurl);
-         tb.writeTo(writer);
-      }
-
-   }
-
-}