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:30:01 UTC

[53/63] [abbrv] Completed rework of the tests derived from the API documentation. Implemented some of the test cases:

http://git-wip-us.apache.org/repos/asf/portals-pluto/blob/2f638d7a/portlet-tck_3.0/V2WrapperTests/src/main/java/javax/portlet/tck/portlets/WrapperTests_ActionResponseWrapper_ApiAction.java
----------------------------------------------------------------------
diff --git a/portlet-tck_3.0/V2WrapperTests/src/main/java/javax/portlet/tck/portlets/WrapperTests_ActionResponseWrapper_ApiAction.java b/portlet-tck_3.0/V2WrapperTests/src/main/java/javax/portlet/tck/portlets/WrapperTests_ActionResponseWrapper_ApiAction.java
new file mode 100644
index 0000000..89ad5a4
--- /dev/null
+++ b/portlet-tck_3.0/V2WrapperTests/src/main/java/javax/portlet/tck/portlets/WrapperTests_ActionResponseWrapper_ApiAction.java
@@ -0,0 +1,443 @@
+/*  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *    http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES 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 WrapperTests_ActionResponseWrapper_ApiAction_event
+ *
+ */
+public class WrapperTests_ActionResponseWrapper_ApiAction implements Portlet, ResourceServingPortlet {
+   private static final String LOG_CLASS = 
+         WrapperTests_ActionResponseWrapper_ApiAction.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();
+
+      ActionResponseWrapperChecker wc = new ActionResponseWrapperChecker(portletResp);
+      ActionResponseWrapper wpr = new ActionResponseWrapper(portletResp);
+      wpr.setResponse(wc);
+      JSR286ApiTestCaseDetails tcd = new JSR286ApiTestCaseDetails();
+
+      // Create result objects for the tests
+
+      ClassChecker cc = new ClassChecker(ActionResponseWrapper.class);
+
+      /* TestCase: V2WrapperTests_ActionResponseWrapper_ApiAction_sendRedirectA */
+      /* Details: "Method sendRedirect(String): Calls wrapped method"         */
+      TestResult tr0 = tcd.getTestResultFailed(V2WRAPPERTESTS_ACTIONRESPONSEWRAPPER_APIACTION_SENDREDIRECTA);
+      try {
+         String parm1 = "val1";
+         Object[] args = {parm1};
+         wc.prepare(tr0, "sendRedirect", args);
+         wpr.sendRedirect(parm1);
+      } catch(Exception e) {tr0.appendTcDetail(e.toString());}
+      tr0.writeTo(writer);
+
+      /* TestCase: V2WrapperTests_ActionResponseWrapper_ApiAction_sendRedirectB */
+      /* Details: "Method sendRedirect(String, String): Calls wrapped         */
+      /* method"                                                              */
+      TestResult tr1 = tcd.getTestResultFailed(V2WRAPPERTESTS_ACTIONRESPONSEWRAPPER_APIACTION_SENDREDIRECTB);
+      try {
+         String parm1 = "val1";
+         String parm2 = "val2";
+         Object[] args = {parm1, parm2};
+         wc.prepare(tr1, "sendRedirect", args);
+         wpr.sendRedirect(parm1, parm2);
+      } catch(Exception e) {tr1.appendTcDetail(e.toString());}
+      tr1.writeTo(writer);
+
+      /* TestCase: V2WrapperTests_ActionResponseWrapper_ApiAction_setEventA   */
+      /* Details: "Method setEvent(javax.xml.namespace.QName,                 */
+      /* java.io.Serializable): Calls wrapped method"                         */
+      TestResult tr2 = tcd.getTestResultFailed(V2WRAPPERTESTS_ACTIONRESPONSEWRAPPER_APIACTION_SETEVENTA);
+      try {
+         javax.xml.namespace.QName parm1 = new javax.xml.namespace.QName("bob");
+         String parm2 = "val2";
+         Object[] args = {parm1, parm2};
+         wc.prepare(tr2, "setEvent", args);
+         wpr.setEvent(parm1, parm2);
+      } catch(Exception e) {tr2.appendTcDetail(e.toString());}
+      tr2.writeTo(writer);
+
+      /* TestCase: V2WrapperTests_ActionResponseWrapper_ApiAction_setEventB   */
+      /* Details: "Method setEvent(String, java.io.Serializable): Calls       */
+      /* wrapped method"                                                      */
+      TestResult tr3 = tcd.getTestResultFailed(V2WRAPPERTESTS_ACTIONRESPONSEWRAPPER_APIACTION_SETEVENTB);
+      try {
+         String parm1 = "val1";
+         String parm2 = "val2";
+         Object[] args = {parm1, parm2};
+         wc.prepare(tr3, "setEvent", args);
+         wpr.setEvent(parm1, parm2);
+      } catch(Exception e) {tr3.appendTcDetail(e.toString());}
+      tr3.writeTo(writer);
+
+      /* TestCase: V2WrapperTests_ActionResponseWrapper_ApiAction_setPortletMode */
+      /* Details: "Method setPortletMode(PortletMode): Calls wrapped          */
+      /* method"                                                              */
+      TestResult tr4 = tcd.getTestResultFailed(V2WRAPPERTESTS_ACTIONRESPONSEWRAPPER_APIACTION_SETPORTLETMODE);
+      try {
+         PortletMode parm1 = PortletMode.EDIT;
+         Object[] args = {parm1};
+         wc.prepare(tr4, "setPortletMode", args);
+         wpr.setPortletMode(parm1);
+      } catch(Exception e) {tr4.appendTcDetail(e.toString());}
+      tr4.writeTo(writer);
+
+      /* TestCase: V2WrapperTests_ActionResponseWrapper_ApiAction_setRenderParameterA */
+      /* Details: "Method setRenderParameter(String, String): Calls wrapped   */
+      /* method"                                                              */
+      TestResult tr5 = tcd.getTestResultFailed(V2WRAPPERTESTS_ACTIONRESPONSEWRAPPER_APIACTION_SETRENDERPARAMETERA);
+      try {
+         String parm1 = "val1";
+         String parm2 = "val2";
+         Object[] args = {parm1, parm2};
+         wc.prepare(tr5, "setRenderParameter", args);
+         wpr.setRenderParameter(parm1, parm2);
+      } catch(Exception e) {tr5.appendTcDetail(e.toString());}
+      tr5.writeTo(writer);
+
+      /* TestCase: V2WrapperTests_ActionResponseWrapper_ApiAction_setRenderParameterB */
+      /* Details: "Method setRenderParameter(String, String[]): Calls         */
+      /* wrapped method"                                                      */
+      TestResult tr6 = tcd.getTestResultFailed(V2WRAPPERTESTS_ACTIONRESPONSEWRAPPER_APIACTION_SETRENDERPARAMETERB);
+      try {
+         String parm1 = "val1";
+         String[] parm2 = {"val1", "val2"};
+         Object[] args = {parm1, parm2};
+         wc.prepare(tr6, "setRenderParameter", args);
+         wpr.setRenderParameter(parm1, parm2);
+      } catch(Exception e) {tr6.appendTcDetail(e.toString());}
+      tr6.writeTo(writer);
+
+      /* TestCase: V2WrapperTests_ActionResponseWrapper_ApiAction_setRenderParameters */
+      /* Details: "Method setRenderParameters(java.util.Map): Calls wrapped   */
+      /* method"                                                              */
+      TestResult tr7 = tcd.getTestResultFailed(V2WRAPPERTESTS_ACTIONRESPONSEWRAPPER_APIACTION_SETRENDERPARAMETERS);
+      try {
+         Map<String, String[]> parm1 = new HashMap<String, String[]>();
+         parm1.put("iparm1", new String[] {"val3", "val4"});
+         parm1.put("iparm2", new String[] {"val5", "val6"});
+         Object[] args = {parm1};
+         wc.prepare(tr7, "setRenderParameters", args);
+         wpr.setRenderParameters(parm1);
+      } catch(Exception e) {tr7.appendTcDetail(e.toString());}
+      tr7.writeTo(writer);
+
+      /* TestCase: V2WrapperTests_ActionResponseWrapper_ApiAction_setWindowState */
+      /* Details: "Method setWindowState(WindowState): Calls wrapped          */
+      /* method"                                                              */
+      TestResult tr8 = tcd.getTestResultFailed(V2WRAPPERTESTS_ACTIONRESPONSEWRAPPER_APIACTION_SETWINDOWSTATE);
+      try {
+         WindowState parm1 = WindowState.NORMAL;
+         Object[] args = {parm1};
+         wc.prepare(tr8, "setWindowState", args);
+         wpr.setWindowState(parm1);
+      } catch(Exception e) {tr8.appendTcDetail(e.toString());}
+      tr8.writeTo(writer);
+
+      /* TestCase: V2WrapperTests_ActionResponseWrapper_ApiAction_getResponse */
+      /* Details: "Method getResponse(): Returns wrapped ActionResponse       */
+      /* object"                                                              */
+      TestResult tr9 = tcd.getTestResultFailed(V2WRAPPERTESTS_ACTIONRESPONSEWRAPPER_APIACTION_GETRESPONSE);
+      try {
+         // The retrieved request / response object should be the wrapper checker instance
+         ActionResponse r = wpr.getResponse();
+         tr9.setTcSuccess(r == wc);
+      } catch(Exception e) {tr9.appendTcDetail(e.toString());}
+      tr9.writeTo(writer);
+
+      /* TestCase: V2WrapperTests_ActionResponseWrapper_ApiAction_setResponse */
+      /* Details: "Method setResponse(ActionResponse): Allows wrapped         */
+      /* ActionResponse object to be set"                                     */
+      TestResult tr10 = tcd.getTestResultFailed(V2WRAPPERTESTS_ACTIONRESPONSEWRAPPER_APIACTION_SETRESPONSE);
+      try {
+         // tested by method set up 
+         tr10.setTcSuccess(true);
+      } catch(Exception e) {tr10.appendTcDetail(e.toString());}
+      tr10.writeTo(writer);
+
+      /* TestCase: V2WrapperTests_ActionResponseWrapper_ApiAction_getPortletMode */
+      /* Details: "Method getPortletMode(): Calls wrapped method"             */
+      TestResult tr11 = tcd.getTestResultFailed(V2WRAPPERTESTS_ACTIONRESPONSEWRAPPER_APIACTION_GETPORTLETMODE);
+      try {
+         Object[] args = {};
+         wc.prepare(tr11, "getPortletMode", args);
+         wc.checkRetval(wpr.getPortletMode());
+      } catch(Exception e) {tr11.appendTcDetail(e.toString());}
+      tr11.writeTo(writer);
+
+      /* TestCase: V2WrapperTests_ActionResponseWrapper_ApiAction_getRenderParameterMap1 */
+      /* Details: "Method getRenderParameterMap(): Calls wrapped method"      */
+      TestResult tr12 = tcd.getTestResultFailed(V2WRAPPERTESTS_ACTIONRESPONSEWRAPPER_APIACTION_GETRENDERPARAMETERMAP1);
+      try {
+         Object[] args = {};
+         wc.prepare(tr12, "getRenderParameterMap", args);
+         wc.checkRetval(wpr.getRenderParameterMap());
+      } catch(Exception e) {tr12.appendTcDetail(e.toString());}
+      tr12.writeTo(writer);
+
+      /* TestCase: V2WrapperTests_ActionResponseWrapper_ApiAction_getWindowState */
+      /* Details: "Method getWindowState(): Calls wrapped method"             */
+      TestResult tr13 = tcd.getTestResultFailed(V2WRAPPERTESTS_ACTIONRESPONSEWRAPPER_APIACTION_GETWINDOWSTATE);
+      try {
+         Object[] args = {};
+         wc.prepare(tr13, "getWindowState", args);
+         wc.checkRetval(wpr.getWindowState());
+      } catch(Exception e) {tr13.appendTcDetail(e.toString());}
+      tr13.writeTo(writer);
+
+      /* TestCase: V2WrapperTests_ActionResponseWrapper_ApiAction_removePublicRenderParameter */
+      /* Details: "Method removePublicRenderParameter(String): Calls          */
+      /* wrapped method"                                                      */
+      TestResult tr14 = tcd.getTestResultFailed(V2WRAPPERTESTS_ACTIONRESPONSEWRAPPER_APIACTION_REMOVEPUBLICRENDERPARAMETER);
+      try {
+         String parm1 = "val1";
+         Object[] args = {parm1};
+         wc.prepare(tr14, "removePublicRenderParameter", args);
+         wpr.removePublicRenderParameter(parm1);
+      } catch(Exception e) {tr14.appendTcDetail(e.toString());}
+      tr14.writeTo(writer);
+
+      portletReq.getPortletSession().setAttribute(
+                   Constants.RESULT_ATTR_PREFIX + "WrapperTests_ActionResponseWrapper_ApiAction",
+                   writer.toString(), APPLICATION_SCOPE);
+   }
+
+   @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();
+
+      PortletSession ps = portletReq.getPortletSession();
+      String msg = (String) ps.getAttribute(RESULT_ATTR_PREFIX + "WrapperTests_ActionResponseWrapper_ApiAction", APPLICATION_SCOPE);
+      if (msg != null) {
+         writer.write("<p>" + msg + "</p><br/>\n");
+         ps.removeAttribute(RESULT_ATTR_PREFIX + "WrapperTests_ActionResponseWrapper_ApiAction", APPLICATION_SCOPE);
+      }
+
+      /* TestCase: V2WrapperTests_ActionResponseWrapper_ApiAction_sendRedirectA */
+      /* Details: "Method sendRedirect(String): Calls wrapped method"         */
+      {
+         PortletURL aurl = portletResp.createActionURL();
+         aurl.setParameters(portletReq.getPrivateParameterMap());
+         TestButton tb = new TestButton("V2WrapperTests_ActionResponseWrapper_ApiAction_sendRedirectA", aurl);
+         tb.writeTo(writer);
+      }
+
+      /* TestCase: V2WrapperTests_ActionResponseWrapper_ApiAction_sendRedirectB */
+      /* Details: "Method sendRedirect(String, String): Calls wrapped         */
+      /* method"                                                              */
+      {
+         PortletURL aurl = portletResp.createActionURL();
+         aurl.setParameters(portletReq.getPrivateParameterMap());
+         TestButton tb = new TestButton("V2WrapperTests_ActionResponseWrapper_ApiAction_sendRedirectB", aurl);
+         tb.writeTo(writer);
+      }
+
+      /* TestCase: V2WrapperTests_ActionResponseWrapper_ApiAction_setEventA   */
+      /* Details: "Method setEvent(javax.xml.namespace.QName,                 */
+      /* java.io.Serializable): Calls wrapped method"                         */
+      {
+         PortletURL aurl = portletResp.createActionURL();
+         aurl.setParameters(portletReq.getPrivateParameterMap());
+         TestButton tb = new TestButton("V2WrapperTests_ActionResponseWrapper_ApiAction_setEventA", aurl);
+         tb.writeTo(writer);
+      }
+
+      /* TestCase: V2WrapperTests_ActionResponseWrapper_ApiAction_setEventB   */
+      /* Details: "Method setEvent(String, java.io.Serializable): Calls       */
+      /* wrapped method"                                                      */
+      {
+         PortletURL aurl = portletResp.createActionURL();
+         aurl.setParameters(portletReq.getPrivateParameterMap());
+         TestButton tb = new TestButton("V2WrapperTests_ActionResponseWrapper_ApiAction_setEventB", aurl);
+         tb.writeTo(writer);
+      }
+
+      /* TestCase: V2WrapperTests_ActionResponseWrapper_ApiAction_setPortletMode */
+      /* Details: "Method setPortletMode(PortletMode): Calls wrapped          */
+      /* method"                                                              */
+      {
+         PortletURL aurl = portletResp.createActionURL();
+         aurl.setParameters(portletReq.getPrivateParameterMap());
+         TestButton tb = new TestButton("V2WrapperTests_ActionResponseWrapper_ApiAction_setPortletMode", aurl);
+         tb.writeTo(writer);
+      }
+
+      /* TestCase: V2WrapperTests_ActionResponseWrapper_ApiAction_setRenderParameterA */
+      /* Details: "Method setRenderParameter(String, String): Calls wrapped   */
+      /* method"                                                              */
+      {
+         PortletURL aurl = portletResp.createActionURL();
+         aurl.setParameters(portletReq.getPrivateParameterMap());
+         TestButton tb = new TestButton("V2WrapperTests_ActionResponseWrapper_ApiAction_setRenderParameterA", aurl);
+         tb.writeTo(writer);
+      }
+
+      /* TestCase: V2WrapperTests_ActionResponseWrapper_ApiAction_setRenderParameterB */
+      /* Details: "Method setRenderParameter(String, String[]): Calls         */
+      /* wrapped method"                                                      */
+      {
+         PortletURL aurl = portletResp.createActionURL();
+         aurl.setParameters(portletReq.getPrivateParameterMap());
+         TestButton tb = new TestButton("V2WrapperTests_ActionResponseWrapper_ApiAction_setRenderParameterB", aurl);
+         tb.writeTo(writer);
+      }
+
+      /* TestCase: V2WrapperTests_ActionResponseWrapper_ApiAction_setRenderParameters */
+      /* Details: "Method setRenderParameters(java.util.Map): Calls wrapped   */
+      /* method"                                                              */
+      {
+         PortletURL aurl = portletResp.createActionURL();
+         aurl.setParameters(portletReq.getPrivateParameterMap());
+         TestButton tb = new TestButton("V2WrapperTests_ActionResponseWrapper_ApiAction_setRenderParameters", aurl);
+         tb.writeTo(writer);
+      }
+
+      /* TestCase: V2WrapperTests_ActionResponseWrapper_ApiAction_setWindowState */
+      /* Details: "Method setWindowState(WindowState): Calls wrapped          */
+      /* method"                                                              */
+      {
+         PortletURL aurl = portletResp.createActionURL();
+         aurl.setParameters(portletReq.getPrivateParameterMap());
+         TestButton tb = new TestButton("V2WrapperTests_ActionResponseWrapper_ApiAction_setWindowState", aurl);
+         tb.writeTo(writer);
+      }
+
+      /* TestCase: V2WrapperTests_ActionResponseWrapper_ApiAction_getResponse */
+      /* Details: "Method getResponse(): Returns wrapped ActionResponse       */
+      /* object"                                                              */
+      {
+         PortletURL aurl = portletResp.createActionURL();
+         aurl.setParameters(portletReq.getPrivateParameterMap());
+         TestButton tb = new TestButton("V2WrapperTests_ActionResponseWrapper_ApiAction_getResponse", aurl);
+         tb.writeTo(writer);
+      }
+
+      /* TestCase: V2WrapperTests_ActionResponseWrapper_ApiAction_setResponse */
+      /* Details: "Method setResponse(ActionResponse): Allows wrapped         */
+      /* ActionResponse object to be set"                                     */
+      {
+         PortletURL aurl = portletResp.createActionURL();
+         aurl.setParameters(portletReq.getPrivateParameterMap());
+         TestButton tb = new TestButton("V2WrapperTests_ActionResponseWrapper_ApiAction_setResponse", aurl);
+         tb.writeTo(writer);
+      }
+
+      /* TestCase: V2WrapperTests_ActionResponseWrapper_ApiAction_getPortletMode */
+      /* Details: "Method getPortletMode(): Calls wrapped method"             */
+      {
+         PortletURL aurl = portletResp.createActionURL();
+         aurl.setParameters(portletReq.getPrivateParameterMap());
+         TestButton tb = new TestButton("V2WrapperTests_ActionResponseWrapper_ApiAction_getPortletMode", aurl);
+         tb.writeTo(writer);
+      }
+
+      /* TestCase: V2WrapperTests_ActionResponseWrapper_ApiAction_getRenderParameterMap1 */
+      /* Details: "Method getRenderParameterMap(): Calls wrapped method"      */
+      {
+         PortletURL aurl = portletResp.createActionURL();
+         aurl.setParameters(portletReq.getPrivateParameterMap());
+         TestButton tb = new TestButton("V2WrapperTests_ActionResponseWrapper_ApiAction_getRenderParameterMap1", aurl);
+         tb.writeTo(writer);
+      }
+
+      /* TestCase: V2WrapperTests_ActionResponseWrapper_ApiAction_getWindowState */
+      /* Details: "Method getWindowState(): Calls wrapped method"             */
+      {
+         PortletURL aurl = portletResp.createActionURL();
+         aurl.setParameters(portletReq.getPrivateParameterMap());
+         TestButton tb = new TestButton("V2WrapperTests_ActionResponseWrapper_ApiAction_getWindowState", aurl);
+         tb.writeTo(writer);
+      }
+
+      /* TestCase: V2WrapperTests_ActionResponseWrapper_ApiAction_removePublicRenderParameter */
+      /* Details: "Method removePublicRenderParameter(String): Calls          */
+      /* wrapped method"                                                      */
+      {
+         PortletURL aurl = portletResp.createActionURL();
+         aurl.setParameters(portletReq.getPrivateParameterMap());
+         TestButton tb = new TestButton("V2WrapperTests_ActionResponseWrapper_ApiAction_removePublicRenderParameter", aurl);
+         tb.writeTo(writer);
+      }
+
+   }
+
+}

http://git-wip-us.apache.org/repos/asf/portals-pluto/blob/2f638d7a/portlet-tck_3.0/V2WrapperTests/src/main/java/javax/portlet/tck/portlets/WrapperTests_ActionResponseWrapper_ApiRender.java
----------------------------------------------------------------------
diff --git a/portlet-tck_3.0/V2WrapperTests/src/main/java/javax/portlet/tck/portlets/WrapperTests_ActionResponseWrapper_ApiRender.java b/portlet-tck_3.0/V2WrapperTests/src/main/java/javax/portlet/tck/portlets/WrapperTests_ActionResponseWrapper_ApiRender.java
deleted file mode 100644
index 9c8bdfc..0000000
--- a/portlet-tck_3.0/V2WrapperTests/src/main/java/javax/portlet/tck/portlets/WrapperTests_ActionResponseWrapper_ApiRender.java
+++ /dev/null
@@ -1,229 +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 WrapperTests_ActionResponseWrapper_ApiRender_event
- *
- */
-public class WrapperTests_ActionResponseWrapper_ApiRender implements Portlet, ResourceServingPortlet {
-   private static final String LOG_CLASS = 
-         WrapperTests_ActionResponseWrapper_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: V2WrapperTests_ActionResponseWrapper_ApiRender_sendRedirectA */
-      /* Details: "Method sendRedirect(String): Calls wrapped method"         */
-      TestResult tr0 = tcd.getTestResultFailed(V2WRAPPERTESTS_ACTIONRESPONSEWRAPPER_APIRENDER_SENDREDIRECTA);
-      /* TODO: implement test */
-      tr0.appendTcDetail("Not implemented.");
-      tr0.writeTo(writer);
-
-      /* TestCase: V2WrapperTests_ActionResponseWrapper_ApiRender_sendRedirectB */
-      /* Details: "Method sendRedirect(String, String): Calls wrapped         */
-      /* method"                                                              */
-      TestResult tr1 = tcd.getTestResultFailed(V2WRAPPERTESTS_ACTIONRESPONSEWRAPPER_APIRENDER_SENDREDIRECTB);
-      /* TODO: implement test */
-      tr1.appendTcDetail("Not implemented.");
-      tr1.writeTo(writer);
-
-      /* TestCase: V2WrapperTests_ActionResponseWrapper_ApiRender_setEventA   */
-      /* Details: "Method setEvent(javax.xml.namespace.QName,                 */
-      /* java.io.Serializable): Calls wrapped method"                         */
-      TestResult tr2 = tcd.getTestResultFailed(V2WRAPPERTESTS_ACTIONRESPONSEWRAPPER_APIRENDER_SETEVENTA);
-      /* TODO: implement test */
-      tr2.appendTcDetail("Not implemented.");
-      tr2.writeTo(writer);
-
-      /* TestCase: V2WrapperTests_ActionResponseWrapper_ApiRender_setEventB   */
-      /* Details: "Method setEvent(String, java.io.Serializable): Calls       */
-      /* wrapped method"                                                      */
-      TestResult tr3 = tcd.getTestResultFailed(V2WRAPPERTESTS_ACTIONRESPONSEWRAPPER_APIRENDER_SETEVENTB);
-      /* TODO: implement test */
-      tr3.appendTcDetail("Not implemented.");
-      tr3.writeTo(writer);
-
-      /* TestCase: V2WrapperTests_ActionResponseWrapper_ApiRender_setPortletMode */
-      /* Details: "Method setPortletMode(PortletMode): Calls wrapped          */
-      /* method"                                                              */
-      TestResult tr4 = tcd.getTestResultFailed(V2WRAPPERTESTS_ACTIONRESPONSEWRAPPER_APIRENDER_SETPORTLETMODE);
-      /* TODO: implement test */
-      tr4.appendTcDetail("Not implemented.");
-      tr4.writeTo(writer);
-
-      /* TestCase: V2WrapperTests_ActionResponseWrapper_ApiRender_setRenderParameterA */
-      /* Details: "Method setRenderParameter(String, String): Calls wrapped   */
-      /* method"                                                              */
-      TestResult tr5 = tcd.getTestResultFailed(V2WRAPPERTESTS_ACTIONRESPONSEWRAPPER_APIRENDER_SETRENDERPARAMETERA);
-      /* TODO: implement test */
-      tr5.appendTcDetail("Not implemented.");
-      tr5.writeTo(writer);
-
-      /* TestCase: V2WrapperTests_ActionResponseWrapper_ApiRender_setRenderParameterB */
-      /* Details: "Method setRenderParameter(String, String[]): Calls         */
-      /* wrapped method"                                                      */
-      TestResult tr6 = tcd.getTestResultFailed(V2WRAPPERTESTS_ACTIONRESPONSEWRAPPER_APIRENDER_SETRENDERPARAMETERB);
-      /* TODO: implement test */
-      tr6.appendTcDetail("Not implemented.");
-      tr6.writeTo(writer);
-
-      /* TestCase: V2WrapperTests_ActionResponseWrapper_ApiRender_setRenderParameters */
-      /* Details: "Method setRenderParameters(java.util.Map): Calls wrapped   */
-      /* method"                                                              */
-      TestResult tr7 = tcd.getTestResultFailed(V2WRAPPERTESTS_ACTIONRESPONSEWRAPPER_APIRENDER_SETRENDERPARAMETERS);
-      /* TODO: implement test */
-      tr7.appendTcDetail("Not implemented.");
-      tr7.writeTo(writer);
-
-      /* TestCase: V2WrapperTests_ActionResponseWrapper_ApiRender_setWindowState */
-      /* Details: "Method setWindowState(WindowState): Calls wrapped          */
-      /* method"                                                              */
-      TestResult tr8 = tcd.getTestResultFailed(V2WRAPPERTESTS_ACTIONRESPONSEWRAPPER_APIRENDER_SETWINDOWSTATE);
-      /* TODO: implement test */
-      tr8.appendTcDetail("Not implemented.");
-      tr8.writeTo(writer);
-
-      /* TestCase: V2WrapperTests_ActionResponseWrapper_ApiRender_getResponse */
-      /* Details: "Method getResponse(): Returns wrapped ActionResponse       */
-      /* object"                                                              */
-      TestResult tr9 = tcd.getTestResultFailed(V2WRAPPERTESTS_ACTIONRESPONSEWRAPPER_APIRENDER_GETRESPONSE);
-      /* TODO: implement test */
-      tr9.appendTcDetail("Not implemented.");
-      tr9.writeTo(writer);
-
-      /* TestCase: V2WrapperTests_ActionResponseWrapper_ApiRender_setResponse */
-      /* Details: "Method setResponse(ActionResponse): Allows wrapped         */
-      /* ActionResponse object to be set"                                     */
-      TestResult tr10 = tcd.getTestResultFailed(V2WRAPPERTESTS_ACTIONRESPONSEWRAPPER_APIRENDER_SETRESPONSE);
-      /* TODO: implement test */
-      tr10.appendTcDetail("Not implemented.");
-      tr10.writeTo(writer);
-
-      /* TestCase: V2WrapperTests_ActionResponseWrapper_ApiRender_getPortletMode */
-      /* Details: "Method getPortletMode(): Calls wrapped method"             */
-      TestResult tr11 = tcd.getTestResultFailed(V2WRAPPERTESTS_ACTIONRESPONSEWRAPPER_APIRENDER_GETPORTLETMODE);
-      /* TODO: implement test */
-      tr11.appendTcDetail("Not implemented.");
-      tr11.writeTo(writer);
-
-      /* TestCase: V2WrapperTests_ActionResponseWrapper_ApiRender_getRenderParameterMap1 */
-      /* Details: "Method getRenderParameterMap(): Calls wrapped method"      */
-      TestResult tr12 = tcd.getTestResultFailed(V2WRAPPERTESTS_ACTIONRESPONSEWRAPPER_APIRENDER_GETRENDERPARAMETERMAP1);
-      /* TODO: implement test */
-      tr12.appendTcDetail("Not implemented.");
-      tr12.writeTo(writer);
-
-      /* TestCase: V2WrapperTests_ActionResponseWrapper_ApiRender_getRenderParameterMap2 */
-      /* Details: "Method getRenderParameterMap(): Returns                    */
-      /* java.util.Map&lt;java.lang.String,java.lang.String[]&gt; object"     */
-      TestResult tr13 = tcd.getTestResultFailed(V2WRAPPERTESTS_ACTIONRESPONSEWRAPPER_APIRENDER_GETRENDERPARAMETERMAP2);
-      /* TODO: implement test */
-      tr13.appendTcDetail("Not implemented.");
-      tr13.writeTo(writer);
-
-      /* TestCase: V2WrapperTests_ActionResponseWrapper_ApiRender_getWindowState */
-      /* Details: "Method getWindowState(): Calls wrapped method"             */
-      TestResult tr14 = tcd.getTestResultFailed(V2WRAPPERTESTS_ACTIONRESPONSEWRAPPER_APIRENDER_GETWINDOWSTATE);
-      /* TODO: implement test */
-      tr14.appendTcDetail("Not implemented.");
-      tr14.writeTo(writer);
-
-      /* TestCase: V2WrapperTests_ActionResponseWrapper_ApiRender_removePublicRenderParameter */
-      /* Details: "Method removePublicRenderParameter(String): Calls          */
-      /* wrapped method"                                                      */
-      TestResult tr15 = tcd.getTestResultFailed(V2WRAPPERTESTS_ACTIONRESPONSEWRAPPER_APIRENDER_REMOVEPUBLICRENDERPARAMETER);
-      /* TODO: implement test */
-      tr15.appendTcDetail("Not implemented.");
-      tr15.writeTo(writer);
-
-   }
-
-}

http://git-wip-us.apache.org/repos/asf/portals-pluto/blob/2f638d7a/portlet-tck_3.0/V2WrapperTests/src/main/java/javax/portlet/tck/portlets/WrapperTests_EventRequestWrapper_ApiEvent.java
----------------------------------------------------------------------
diff --git a/portlet-tck_3.0/V2WrapperTests/src/main/java/javax/portlet/tck/portlets/WrapperTests_EventRequestWrapper_ApiEvent.java b/portlet-tck_3.0/V2WrapperTests/src/main/java/javax/portlet/tck/portlets/WrapperTests_EventRequestWrapper_ApiEvent.java
new file mode 100644
index 0000000..aebe1f1
--- /dev/null
+++ b/portlet-tck_3.0/V2WrapperTests/src/main/java/javax/portlet/tck/portlets/WrapperTests_EventRequestWrapper_ApiEvent.java
@@ -0,0 +1,142 @@
+/*  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *    http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES 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 WrapperTests_EventRequestWrapper_ApiEvent_event
+ *
+ */
+public class WrapperTests_EventRequestWrapper_ApiEvent implements Portlet, ResourceServingPortlet {
+   private static final String LOG_CLASS = 
+         WrapperTests_EventRequestWrapper_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,
+             "WrapperTests_EventRequestWrapper_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: V2WrapperTests_EventRequestWrapper_ApiEvent_getRequest     */
+      /* Details: "Method getRequest(): Returns wrapped EventRequest          */
+      /* object"                                                              */
+      {
+         PortletURL aurl = portletResp.createActionURL();
+         aurl.setParameters(portletReq.getPrivateParameterMap());
+         TestButton tb = new TestButton("V2WrapperTests_EventRequestWrapper_ApiEvent_getRequest", aurl);
+         tb.writeTo(writer);
+      }
+
+      /* TestCase: V2WrapperTests_EventRequestWrapper_ApiEvent_setRequest     */
+      /* Details: "Method setRequest(EventRequest): Allows wrapped            */
+      /* EventRequest object to be set"                                       */
+      {
+         PortletURL aurl = portletResp.createActionURL();
+         aurl.setParameters(portletReq.getPrivateParameterMap());
+         TestButton tb = new TestButton("V2WrapperTests_EventRequestWrapper_ApiEvent_setRequest", aurl);
+         tb.writeTo(writer);
+      }
+
+      /* TestCase: V2WrapperTests_EventRequestWrapper_ApiEvent_getEvent1      */
+      /* Details: "Method getEvent(): Calls wrapped method"                   */
+      {
+         PortletURL aurl = portletResp.createActionURL();
+         aurl.setParameters(portletReq.getPrivateParameterMap());
+         TestButton tb = new TestButton("V2WrapperTests_EventRequestWrapper_ApiEvent_getEvent1", aurl);
+         tb.writeTo(writer);
+      }
+
+      /* TestCase: V2WrapperTests_EventRequestWrapper_ApiEvent_getMethod      */
+      /* Details: "Method getMethod(): Calls wrapped method"                  */
+      {
+         PortletURL aurl = portletResp.createActionURL();
+         aurl.setParameters(portletReq.getPrivateParameterMap());
+         TestButton tb = new TestButton("V2WrapperTests_EventRequestWrapper_ApiEvent_getMethod", aurl);
+         tb.writeTo(writer);
+      }
+
+   }
+
+}

http://git-wip-us.apache.org/repos/asf/portals-pluto/blob/2f638d7a/portlet-tck_3.0/V2WrapperTests/src/main/java/javax/portlet/tck/portlets/WrapperTests_EventRequestWrapper_ApiEvent_event.java
----------------------------------------------------------------------
diff --git a/portlet-tck_3.0/V2WrapperTests/src/main/java/javax/portlet/tck/portlets/WrapperTests_EventRequestWrapper_ApiEvent_event.java b/portlet-tck_3.0/V2WrapperTests/src/main/java/javax/portlet/tck/portlets/WrapperTests_EventRequestWrapper_ApiEvent_event.java
new file mode 100644
index 0000000..c611aa2
--- /dev/null
+++ b/portlet-tck_3.0/V2WrapperTests/src/main/java/javax/portlet/tck/portlets/WrapperTests_EventRequestWrapper_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 WrapperTests_EventRequestWrapper_ApiEvent_event implements Portlet, EventPortlet, ResourceServingPortlet {
+   private static final String LOG_CLASS = 
+         WrapperTests_EventRequestWrapper_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();
+
+      EventRequestWrapperChecker wc = new EventRequestWrapperChecker(portletReq);
+      EventRequestWrapper wpr = new EventRequestWrapper(portletReq);
+      wpr.setRequest(wc);
+      JSR286ApiTestCaseDetails tcd = new JSR286ApiTestCaseDetails();
+
+      // Create result objects for the tests
+
+      ClassChecker cc = new ClassChecker(EventRequestWrapper.class);
+
+      /* TestCase: V2WrapperTests_EventRequestWrapper_ApiEvent_getRequest     */
+      /* Details: "Method getRequest(): Returns wrapped EventRequest          */
+      /* object"                                                              */
+      TestResult tr0 = tcd.getTestResultFailed(V2WRAPPERTESTS_EVENTREQUESTWRAPPER_APIEVENT_GETREQUEST);
+      try {
+         // The retrieved request / response object should be the wrapper checker instance
+         EventRequest r = wpr.getRequest();
+         tr0.setTcSuccess(r == wc);
+      } catch(Exception e) {tr0.appendTcDetail(e.toString());}
+      tr0.writeTo(writer);
+
+      /* TestCase: V2WrapperTests_EventRequestWrapper_ApiEvent_setRequest     */
+      /* Details: "Method setRequest(EventRequest): Allows wrapped            */
+      /* EventRequest object to be set"                                       */
+      TestResult tr1 = tcd.getTestResultFailed(V2WRAPPERTESTS_EVENTREQUESTWRAPPER_APIEVENT_SETREQUEST);
+      try {
+         // tested by method set up 
+         tr1.setTcSuccess(true);
+      } catch(Exception e) {tr1.appendTcDetail(e.toString());}
+      tr1.writeTo(writer);
+
+      /* TestCase: V2WrapperTests_EventRequestWrapper_ApiEvent_getEvent1      */
+      /* Details: "Method getEvent(): Calls wrapped method"                   */
+      TestResult tr2 = tcd.getTestResultFailed(V2WRAPPERTESTS_EVENTREQUESTWRAPPER_APIEVENT_GETEVENT1);
+      try {
+         Object[] args = {};
+         wc.prepare(tr2, "getEvent", args);
+         wc.checkRetval(wpr.getEvent());
+      } catch(Exception e) {tr2.appendTcDetail(e.toString());}
+      tr2.writeTo(writer);
+
+      /* TestCase: V2WrapperTests_EventRequestWrapper_ApiEvent_getMethod      */
+      /* Details: "Method getMethod(): Calls wrapped method"                  */
+      TestResult tr3 = tcd.getTestResultFailed(V2WRAPPERTESTS_EVENTREQUESTWRAPPER_APIEVENT_GETMETHOD);
+      try {
+         Object[] args = {};
+         wc.prepare(tr3, "getMethod", args);
+         wc.checkRetval(wpr.getMethod());
+      } catch(Exception e) {tr3.appendTcDetail(e.toString());}
+      tr3.writeTo(writer);
+
+      portletReq.getPortletSession().setAttribute(
+                   Constants.RESULT_ATTR_PREFIX + "WrapperTests_EventRequestWrapper_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>WrapperTests_EventRequestWrapper_ApiEvent_event</p>\n");
+
+      String msg = (String) portletReq.getPortletSession()
+            .getAttribute(RESULT_ATTR_PREFIX + "WrapperTests_EventRequestWrapper_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/2f638d7a/portlet-tck_3.0/V2WrapperTests/src/main/java/javax/portlet/tck/portlets/WrapperTests_EventRequestWrapper_ApiRender.java
----------------------------------------------------------------------
diff --git a/portlet-tck_3.0/V2WrapperTests/src/main/java/javax/portlet/tck/portlets/WrapperTests_EventRequestWrapper_ApiRender.java b/portlet-tck_3.0/V2WrapperTests/src/main/java/javax/portlet/tck/portlets/WrapperTests_EventRequestWrapper_ApiRender.java
deleted file mode 100644
index f4837de..0000000
--- a/portlet-tck_3.0/V2WrapperTests/src/main/java/javax/portlet/tck/portlets/WrapperTests_EventRequestWrapper_ApiRender.java
+++ /dev/null
@@ -1,142 +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 WrapperTests_EventRequestWrapper_ApiRender_event
- *
- */
-public class WrapperTests_EventRequestWrapper_ApiRender implements Portlet, ResourceServingPortlet {
-   private static final String LOG_CLASS = 
-         WrapperTests_EventRequestWrapper_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: V2WrapperTests_EventRequestWrapper_ApiRender_getRequest    */
-      /* Details: "Method getRequest(): Returns wrapped EventRequest          */
-      /* object"                                                              */
-      TestResult tr0 = tcd.getTestResultFailed(V2WRAPPERTESTS_EVENTREQUESTWRAPPER_APIRENDER_GETREQUEST);
-      /* TODO: implement test */
-      tr0.appendTcDetail("Not implemented.");
-      tr0.writeTo(writer);
-
-      /* TestCase: V2WrapperTests_EventRequestWrapper_ApiRender_setRequest    */
-      /* Details: "Method setRequest(EventRequest): Allows wrapped            */
-      /* EventRequest object to be set"                                       */
-      TestResult tr1 = tcd.getTestResultFailed(V2WRAPPERTESTS_EVENTREQUESTWRAPPER_APIRENDER_SETREQUEST);
-      /* TODO: implement test */
-      tr1.appendTcDetail("Not implemented.");
-      tr1.writeTo(writer);
-
-      /* TestCase: V2WrapperTests_EventRequestWrapper_ApiRender_getEvent1     */
-      /* Details: "Method getEvent(): Calls wrapped method"                   */
-      TestResult tr2 = tcd.getTestResultFailed(V2WRAPPERTESTS_EVENTREQUESTWRAPPER_APIRENDER_GETEVENT1);
-      /* TODO: implement test */
-      tr2.appendTcDetail("Not implemented.");
-      tr2.writeTo(writer);
-
-      /* TestCase: V2WrapperTests_EventRequestWrapper_ApiRender_getEvent2     */
-      /* Details: "Method getEvent(): Returns Event object"                   */
-      TestResult tr3 = tcd.getTestResultFailed(V2WRAPPERTESTS_EVENTREQUESTWRAPPER_APIRENDER_GETEVENT2);
-      /* TODO: implement test */
-      tr3.appendTcDetail("Not implemented.");
-      tr3.writeTo(writer);
-
-      /* TestCase: V2WrapperTests_EventRequestWrapper_ApiRender_getMethod     */
-      /* Details: "Method getMethod(): Calls wrapped method"                  */
-      TestResult tr4 = tcd.getTestResultFailed(V2WRAPPERTESTS_EVENTREQUESTWRAPPER_APIRENDER_GETMETHOD);
-      /* TODO: implement test */
-      tr4.appendTcDetail("Not implemented.");
-      tr4.writeTo(writer);
-
-   }
-
-}

http://git-wip-us.apache.org/repos/asf/portals-pluto/blob/2f638d7a/portlet-tck_3.0/V2WrapperTests/src/main/java/javax/portlet/tck/portlets/WrapperTests_EventResponseWrapper_ApiEvent.java
----------------------------------------------------------------------
diff --git a/portlet-tck_3.0/V2WrapperTests/src/main/java/javax/portlet/tck/portlets/WrapperTests_EventResponseWrapper_ApiEvent.java b/portlet-tck_3.0/V2WrapperTests/src/main/java/javax/portlet/tck/portlets/WrapperTests_EventResponseWrapper_ApiEvent.java
new file mode 100644
index 0000000..c64e76c
--- /dev/null
+++ b/portlet-tck_3.0/V2WrapperTests/src/main/java/javax/portlet/tck/portlets/WrapperTests_EventResponseWrapper_ApiEvent.java
@@ -0,0 +1,241 @@
+/*  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *    http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES 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 WrapperTests_EventResponseWrapper_ApiEvent_event
+ *
+ */
+public class WrapperTests_EventResponseWrapper_ApiEvent implements Portlet, ResourceServingPortlet {
+   private static final String LOG_CLASS = 
+         WrapperTests_EventResponseWrapper_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,
+             "WrapperTests_EventResponseWrapper_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: V2WrapperTests_EventResponseWrapper_ApiEvent_setEventA     */
+      /* Details: "Method setEvent(javax.xml.namespace.QName,                 */
+      /* java.io.Serializable): Calls wrapped method"                         */
+      {
+         PortletURL aurl = portletResp.createActionURL();
+         aurl.setParameters(portletReq.getPrivateParameterMap());
+         TestButton tb = new TestButton("V2WrapperTests_EventResponseWrapper_ApiEvent_setEventA", aurl);
+         tb.writeTo(writer);
+      }
+
+      /* TestCase: V2WrapperTests_EventResponseWrapper_ApiEvent_setEventB     */
+      /* Details: "Method setEvent(String, java.io.Serializable): Calls       */
+      /* wrapped method"                                                      */
+      {
+         PortletURL aurl = portletResp.createActionURL();
+         aurl.setParameters(portletReq.getPrivateParameterMap());
+         TestButton tb = new TestButton("V2WrapperTests_EventResponseWrapper_ApiEvent_setEventB", aurl);
+         tb.writeTo(writer);
+      }
+
+      /* TestCase: V2WrapperTests_EventResponseWrapper_ApiEvent_setPortletMode */
+      /* Details: "Method setPortletMode(PortletMode): Calls wrapped          */
+      /* method"                                                              */
+      {
+         PortletURL aurl = portletResp.createActionURL();
+         aurl.setParameters(portletReq.getPrivateParameterMap());
+         TestButton tb = new TestButton("V2WrapperTests_EventResponseWrapper_ApiEvent_setPortletMode", aurl);
+         tb.writeTo(writer);
+      }
+
+      /* TestCase: V2WrapperTests_EventResponseWrapper_ApiEvent_setRenderParameterA */
+      /* Details: "Method setRenderParameter(String, String): Calls wrapped   */
+      /* method"                                                              */
+      {
+         PortletURL aurl = portletResp.createActionURL();
+         aurl.setParameters(portletReq.getPrivateParameterMap());
+         TestButton tb = new TestButton("V2WrapperTests_EventResponseWrapper_ApiEvent_setRenderParameterA", aurl);
+         tb.writeTo(writer);
+      }
+
+      /* TestCase: V2WrapperTests_EventResponseWrapper_ApiEvent_setRenderParameterB */
+      /* Details: "Method setRenderParameter(String, String[]): Calls         */
+      /* wrapped method"                                                      */
+      {
+         PortletURL aurl = portletResp.createActionURL();
+         aurl.setParameters(portletReq.getPrivateParameterMap());
+         TestButton tb = new TestButton("V2WrapperTests_EventResponseWrapper_ApiEvent_setRenderParameterB", aurl);
+         tb.writeTo(writer);
+      }
+
+      /* TestCase: V2WrapperTests_EventResponseWrapper_ApiEvent_setRenderParametersA */
+      /* Details: "Method setRenderParameters(EventRequest): Calls wrapped    */
+      /* method"                                                              */
+      {
+         PortletURL aurl = portletResp.createActionURL();
+         aurl.setParameters(portletReq.getPrivateParameterMap());
+         TestButton tb = new TestButton("V2WrapperTests_EventResponseWrapper_ApiEvent_setRenderParametersA", aurl);
+         tb.writeTo(writer);
+      }
+
+      /* TestCase: V2WrapperTests_EventResponseWrapper_ApiEvent_setRenderParametersB */
+      /* Details: "Method setRenderParameters(EventRequest): Calls wrapped    */
+      /* method"                                                              */
+      {
+         PortletURL aurl = portletResp.createActionURL();
+         aurl.setParameters(portletReq.getPrivateParameterMap());
+         TestButton tb = new TestButton("V2WrapperTests_EventResponseWrapper_ApiEvent_setRenderParametersB", aurl);
+         tb.writeTo(writer);
+      }
+
+      /* TestCase: V2WrapperTests_EventResponseWrapper_ApiEvent_setWindowState */
+      /* Details: "Method setWindowState(WindowState): Calls wrapped          */
+      /* method"                                                              */
+      {
+         PortletURL aurl = portletResp.createActionURL();
+         aurl.setParameters(portletReq.getPrivateParameterMap());
+         TestButton tb = new TestButton("V2WrapperTests_EventResponseWrapper_ApiEvent_setWindowState", aurl);
+         tb.writeTo(writer);
+      }
+
+      /* TestCase: V2WrapperTests_EventResponseWrapper_ApiEvent_getResponse   */
+      /* Details: "Method getResponse(): Returns wrapped EventResponse        */
+      /* object"                                                              */
+      {
+         PortletURL aurl = portletResp.createActionURL();
+         aurl.setParameters(portletReq.getPrivateParameterMap());
+         TestButton tb = new TestButton("V2WrapperTests_EventResponseWrapper_ApiEvent_getResponse", aurl);
+         tb.writeTo(writer);
+      }
+
+      /* TestCase: V2WrapperTests_EventResponseWrapper_ApiEvent_setResponse   */
+      /* Details: "Method setResponse(EventResponse): Allows wrapped          */
+      /* EventResponse object to be set"                                      */
+      {
+         PortletURL aurl = portletResp.createActionURL();
+         aurl.setParameters(portletReq.getPrivateParameterMap());
+         TestButton tb = new TestButton("V2WrapperTests_EventResponseWrapper_ApiEvent_setResponse", aurl);
+         tb.writeTo(writer);
+      }
+
+      /* TestCase: V2WrapperTests_EventResponseWrapper_ApiEvent_getPortletMode */
+      /* Details: "Method getPortletMode(): Calls wrapped method"             */
+      {
+         PortletURL aurl = portletResp.createActionURL();
+         aurl.setParameters(portletReq.getPrivateParameterMap());
+         TestButton tb = new TestButton("V2WrapperTests_EventResponseWrapper_ApiEvent_getPortletMode", aurl);
+         tb.writeTo(writer);
+      }
+
+      /* TestCase: V2WrapperTests_EventResponseWrapper_ApiEvent_getRenderParameterMap1 */
+      /* Details: "Method getRenderParameterMap(): Calls wrapped method"      */
+      {
+         PortletURL aurl = portletResp.createActionURL();
+         aurl.setParameters(portletReq.getPrivateParameterMap());
+         TestButton tb = new TestButton("V2WrapperTests_EventResponseWrapper_ApiEvent_getRenderParameterMap1", aurl);
+         tb.writeTo(writer);
+      }
+
+      /* TestCase: V2WrapperTests_EventResponseWrapper_ApiEvent_getWindowState */
+      /* Details: "Method getWindowState(): Calls wrapped method"             */
+      {
+         PortletURL aurl = portletResp.createActionURL();
+         aurl.setParameters(portletReq.getPrivateParameterMap());
+         TestButton tb = new TestButton("V2WrapperTests_EventResponseWrapper_ApiEvent_getWindowState", aurl);
+         tb.writeTo(writer);
+      }
+
+      /* TestCase: V2WrapperTests_EventResponseWrapper_ApiEvent_removePublicRenderParameter */
+      /* Details: "Method removePublicRenderParameter(String): Calls          */
+      /* wrapped method"                                                      */
+      {
+         PortletURL aurl = portletResp.createActionURL();
+         aurl.setParameters(portletReq.getPrivateParameterMap());
+         TestButton tb = new TestButton("V2WrapperTests_EventResponseWrapper_ApiEvent_removePublicRenderParameter", aurl);
+         tb.writeTo(writer);
+      }
+
+   }
+
+}

http://git-wip-us.apache.org/repos/asf/portals-pluto/blob/2f638d7a/portlet-tck_3.0/V2WrapperTests/src/main/java/javax/portlet/tck/portlets/WrapperTests_EventResponseWrapper_ApiEvent_event.java
----------------------------------------------------------------------
diff --git a/portlet-tck_3.0/V2WrapperTests/src/main/java/javax/portlet/tck/portlets/WrapperTests_EventResponseWrapper_ApiEvent_event.java b/portlet-tck_3.0/V2WrapperTests/src/main/java/javax/portlet/tck/portlets/WrapperTests_EventResponseWrapper_ApiEvent_event.java
new file mode 100644
index 0000000..62c4ef1
--- /dev/null
+++ b/portlet-tck_3.0/V2WrapperTests/src/main/java/javax/portlet/tck/portlets/WrapperTests_EventResponseWrapper_ApiEvent_event.java
@@ -0,0 +1,277 @@
+/*  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *    http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES 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 WrapperTests_EventResponseWrapper_ApiEvent_event implements Portlet, EventPortlet, ResourceServingPortlet {
+   private static final String LOG_CLASS = 
+         WrapperTests_EventResponseWrapper_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();
+
+      EventResponseWrapperChecker wc = new EventResponseWrapperChecker(portletResp);
+      EventResponseWrapper wpr = new EventResponseWrapper(portletResp);
+      wpr.setResponse(wc);
+      JSR286ApiTestCaseDetails tcd = new JSR286ApiTestCaseDetails();
+
+      // Create result objects for the tests
+
+      ClassChecker cc = new ClassChecker(EventResponseWrapper.class);
+
+      /* TestCase: V2WrapperTests_EventResponseWrapper_ApiEvent_setEventA     */
+      /* Details: "Method setEvent(javax.xml.namespace.QName,                 */
+      /* java.io.Serializable): Calls wrapped method"                         */
+      TestResult tr0 = tcd.getTestResultFailed(V2WRAPPERTESTS_EVENTRESPONSEWRAPPER_APIEVENT_SETEVENTA);
+      try {
+         javax.xml.namespace.QName parm1 = new javax.xml.namespace.QName("bob");
+         String parm2 = "val2";
+         Object[] args = {parm1, parm2};
+         wc.prepare(tr0, "setEvent", args);
+         wpr.setEvent(parm1, parm2);
+      } catch(Exception e) {tr0.appendTcDetail(e.toString());}
+      tr0.writeTo(writer);
+
+      /* TestCase: V2WrapperTests_EventResponseWrapper_ApiEvent_setEventB     */
+      /* Details: "Method setEvent(String, java.io.Serializable): Calls       */
+      /* wrapped method"                                                      */
+      TestResult tr1 = tcd.getTestResultFailed(V2WRAPPERTESTS_EVENTRESPONSEWRAPPER_APIEVENT_SETEVENTB);
+      try {
+         String parm1 = "val1";
+         String parm2 = "val2";
+         Object[] args = {parm1, parm2};
+         wc.prepare(tr1, "setEvent", args);
+         wpr.setEvent(parm1, parm2);
+      } catch(Exception e) {tr1.appendTcDetail(e.toString());}
+      tr1.writeTo(writer);
+
+      /* TestCase: V2WrapperTests_EventResponseWrapper_ApiEvent_setPortletMode */
+      /* Details: "Method setPortletMode(PortletMode): Calls wrapped          */
+      /* method"                                                              */
+      TestResult tr2 = tcd.getTestResultFailed(V2WRAPPERTESTS_EVENTRESPONSEWRAPPER_APIEVENT_SETPORTLETMODE);
+      try {
+         PortletMode parm1 = PortletMode.EDIT;
+         Object[] args = {parm1};
+         wc.prepare(tr2, "setPortletMode", args);
+         wpr.setPortletMode(parm1);
+      } catch(Exception e) {tr2.appendTcDetail(e.toString());}
+      tr2.writeTo(writer);
+
+      /* TestCase: V2WrapperTests_EventResponseWrapper_ApiEvent_setRenderParameterA */
+      /* Details: "Method setRenderParameter(String, String): Calls wrapped   */
+      /* method"                                                              */
+      TestResult tr3 = tcd.getTestResultFailed(V2WRAPPERTESTS_EVENTRESPONSEWRAPPER_APIEVENT_SETRENDERPARAMETERA);
+      try {
+         String parm1 = "val1";
+         String parm2 = "val2";
+         Object[] args = {parm1, parm2};
+         wc.prepare(tr3, "setRenderParameter", args);
+         wpr.setRenderParameter(parm1, parm2);
+      } catch(Exception e) {tr3.appendTcDetail(e.toString());}
+      tr3.writeTo(writer);
+
+      /* TestCase: V2WrapperTests_EventResponseWrapper_ApiEvent_setRenderParameterB */
+      /* Details: "Method setRenderParameter(String, String[]): Calls         */
+      /* wrapped method"                                                      */
+      TestResult tr4 = tcd.getTestResultFailed(V2WRAPPERTESTS_EVENTRESPONSEWRAPPER_APIEVENT_SETRENDERPARAMETERB);
+      try {
+         String parm1 = "val1";
+         String[] parm2 = {"val1", "val2"};
+         Object[] args = {parm1, parm2};
+         wc.prepare(tr4, "setRenderParameter", args);
+         wpr.setRenderParameter(parm1, parm2);
+      } catch(Exception e) {tr4.appendTcDetail(e.toString());}
+      tr4.writeTo(writer);
+
+      /* TestCase: V2WrapperTests_EventResponseWrapper_ApiEvent_setRenderParametersA */
+      /* Details: "Method setRenderParameters(EventRequest): Calls wrapped    */
+      /* method"                                                              */
+      TestResult tr5 = tcd.getTestResultFailed(V2WRAPPERTESTS_EVENTRESPONSEWRAPPER_APIEVENT_SETRENDERPARAMETERSA);
+      try {
+         EventRequest parm1 = portletReq;
+         Object[] args = {parm1};
+         wc.prepare(tr5, "setRenderParameters", args);
+         wpr.setRenderParameters(parm1);
+      } catch(Exception e) {tr5.appendTcDetail(e.toString());}
+      tr5.writeTo(writer);
+
+      /* TestCase: V2WrapperTests_EventResponseWrapper_ApiEvent_setRenderParametersB */
+      /* Details: "Method setRenderParameters(EventRequest): Calls wrapped    */
+      /* method"                                                              */
+      TestResult tr6 = tcd.getTestResultFailed(V2WRAPPERTESTS_EVENTRESPONSEWRAPPER_APIEVENT_SETRENDERPARAMETERSB);
+      try {
+         EventRequest parm1 = portletReq;
+         Object[] args = {parm1};
+         wc.prepare(tr6, "setRenderParameters", args);
+         wpr.setRenderParameters(parm1);
+      } catch(Exception e) {tr6.appendTcDetail(e.toString());}
+      tr6.writeTo(writer);
+
+      /* TestCase: V2WrapperTests_EventResponseWrapper_ApiEvent_setWindowState */
+      /* Details: "Method setWindowState(WindowState): Calls wrapped          */
+      /* method"                                                              */
+      TestResult tr7 = tcd.getTestResultFailed(V2WRAPPERTESTS_EVENTRESPONSEWRAPPER_APIEVENT_SETWINDOWSTATE);
+      try {
+         WindowState parm1 = WindowState.NORMAL;
+         Object[] args = {parm1};
+         wc.prepare(tr7, "setWindowState", args);
+         wpr.setWindowState(parm1);
+      } catch(Exception e) {tr7.appendTcDetail(e.toString());}
+      tr7.writeTo(writer);
+
+      /* TestCase: V2WrapperTests_EventResponseWrapper_ApiEvent_getResponse   */
+      /* Details: "Method getResponse(): Returns wrapped EventResponse        */
+      /* object"                                                              */
+      TestResult tr8 = tcd.getTestResultFailed(V2WRAPPERTESTS_EVENTRESPONSEWRAPPER_APIEVENT_GETRESPONSE);
+      try {
+         // The retrieved request / response object should be the wrapper checker instance
+         EventResponse r = wpr.getResponse();
+         tr8.setTcSuccess(r == wc);
+      } catch(Exception e) {tr8.appendTcDetail(e.toString());}
+      tr8.writeTo(writer);
+
+      /* TestCase: V2WrapperTests_EventResponseWrapper_ApiEvent_setResponse   */
+      /* Details: "Method setResponse(EventResponse): Allows wrapped          */
+      /* EventResponse object to be set"                                      */
+      TestResult tr9 = tcd.getTestResultFailed(V2WRAPPERTESTS_EVENTRESPONSEWRAPPER_APIEVENT_SETRESPONSE);
+      try {
+         // tested by method set up 
+         tr9.setTcSuccess(true);
+      } catch(Exception e) {tr9.appendTcDetail(e.toString());}
+      tr9.writeTo(writer);
+
+      /* TestCase: V2WrapperTests_EventResponseWrapper_ApiEvent_getPortletMode */
+      /* Details: "Method getPortletMode(): Calls wrapped method"             */
+      TestResult tr10 = tcd.getTestResultFailed(V2WRAPPERTESTS_EVENTRESPONSEWRAPPER_APIEVENT_GETPORTLETMODE);
+      try {
+         Object[] args = {};
+         wc.prepare(tr10, "getPortletMode", args);
+         wc.checkRetval(wpr.getPortletMode());
+      } catch(Exception e) {tr10.appendTcDetail(e.toString());}
+      tr10.writeTo(writer);
+
+      /* TestCase: V2WrapperTests_EventResponseWrapper_ApiEvent_getRenderParameterMap1 */
+      /* Details: "Method getRenderParameterMap(): Calls wrapped method"      */
+      TestResult tr11 = tcd.getTestResultFailed(V2WRAPPERTESTS_EVENTRESPONSEWRAPPER_APIEVENT_GETRENDERPARAMETERMAP1);
+      try {
+         Object[] args = {};
+         wc.prepare(tr11, "getRenderParameterMap", args);
+         wc.checkRetval(wpr.getRenderParameterMap());
+      } catch(Exception e) {tr11.appendTcDetail(e.toString());}
+      tr11.writeTo(writer);
+
+      /* TestCase: V2WrapperTests_EventResponseWrapper_ApiEvent_getWindowState */
+      /* Details: "Method getWindowState(): Calls wrapped method"             */
+      TestResult tr12 = tcd.getTestResultFailed(V2WRAPPERTESTS_EVENTRESPONSEWRAPPER_APIEVENT_GETWINDOWSTATE);
+      try {
+         Object[] args = {};
+         wc.prepare(tr12, "getWindowState", args);
+         wc.checkRetval(wpr.getWindowState());
+      } catch(Exception e) {tr12.appendTcDetail(e.toString());}
+      tr12.writeTo(writer);
+
+      /* TestCase: V2WrapperTests_EventResponseWrapper_ApiEvent_removePublicRenderParameter */
+      /* Details: "Method removePublicRenderParameter(String): Calls          */
+      /* wrapped method"                                                      */
+      TestResult tr13 = tcd.getTestResultFailed(V2WRAPPERTESTS_EVENTRESPONSEWRAPPER_APIEVENT_REMOVEPUBLICRENDERPARAMETER);
+      try {
+         String parm1 = "val1";
+         Object[] args = {parm1};
+         wc.prepare(tr13, "removePublicRenderParameter", args);
+         wpr.removePublicRenderParameter(parm1);
+      } catch(Exception e) {tr13.appendTcDetail(e.toString());}
+      tr13.writeTo(writer);
+
+      portletReq.getPortletSession().setAttribute(
+                   Constants.RESULT_ATTR_PREFIX + "WrapperTests_EventResponseWrapper_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>WrapperTests_EventResponseWrapper_ApiEvent_event</p>\n");
+
+      String msg = (String) portletReq.getPortletSession()
+            .getAttribute(RESULT_ATTR_PREFIX + "WrapperTests_EventResponseWrapper_ApiEvent", APPLICATION_SCOPE);
+      msg = (msg==null) ? "Not ready. click test case link." : msg;
+      writer.write("<p>" + msg + "</p>\n");
+
+   }
+
+}