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

[14/22] began work on generating the additional spec tests and the portlet tab library tests again in order to improve structure and correct problems in test case names.

http://git-wip-us.apache.org/repos/asf/portals-pluto/blob/23a1c547/portlet-tck_3.0/V2AddlPortletTests/src/main/java/javax/portlet/tck/portlets/AddlPortletTests_SPEC2_5_ActionHandling.java
----------------------------------------------------------------------
diff --git a/portlet-tck_3.0/V2AddlPortletTests/src/main/java/javax/portlet/tck/portlets/AddlPortletTests_SPEC2_5_ActionHandling.java b/portlet-tck_3.0/V2AddlPortletTests/src/main/java/javax/portlet/tck/portlets/AddlPortletTests_SPEC2_5_ActionHandling.java
new file mode 100644
index 0000000..1dc5dd0
--- /dev/null
+++ b/portlet-tck_3.0/V2AddlPortletTests/src/main/java/javax/portlet/tck/portlets/AddlPortletTests_SPEC2_5_ActionHandling.java
@@ -0,0 +1,213 @@
+/*  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.JSR286SpecTestCaseDetails.*;
+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 AddlPortletTests_SPEC2_5_ActionHandling_event
+ *
+ */
+public class AddlPortletTests_SPEC2_5_ActionHandling implements Portlet, ResourceServingPortlet {
+   private static final String LOG_CLASS = 
+         AddlPortletTests_SPEC2_5_ActionHandling.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();
+
+      JSR286SpecTestCaseDetails tcd = new JSR286SpecTestCaseDetails();
+
+      // Create result objects for the tests
+
+      /* TestCase: V2AddlPortletTests_SPEC2_5_ActionHandling_action5          */
+      /* Details: "If the portlet issues a redirect during action             */
+      /* processing, the portlet container allows the processAction method    */
+      /* to complete"                                                         */
+      TestResult tr0 = tcd.getTestResultFailed(V2ADDLPORTLETTESTS_SPEC2_5_ACTIONHANDLING_ACTION5);
+      /* TODO: implement test */
+      tr0.appendTcDetail("Not implemented.");
+      tr0.writeTo(writer);
+
+      /* TestCase: V2AddlPortletTests_SPEC2_5_ActionHandling_action6          */
+      /* Details: "If the portlet issues a redirect during action             */
+      /* processing, the portlet container must send the redirect back to     */
+      /* the user agent and finalize the request processing."                 */
+      TestResult tr1 = tcd.getTestResultFailed(V2ADDLPORTLETTESTS_SPEC2_5_ACTIONHANDLING_ACTION6);
+      /* TODO: implement test */
+      tr1.appendTcDetail("Not implemented.");
+      tr1.writeTo(writer);
+
+      /* TestCase: V2AddlPortletTests_SPEC2_5_ActionHandling_action7          */
+      /* Details: "If the portlet issues a redirect during action             */
+      /* processing, events that were set are not processed"                  */
+      TestResult tr2 = tcd.getTestResultFailed(V2ADDLPORTLETTESTS_SPEC2_5_ACTIONHANDLING_ACTION7);
+      /* TODO: implement test */
+      tr2.appendTcDetail("Not implemented.");
+      tr2.writeTo(writer);
+
+      /* TestCase: V2AddlPortletTests_SPEC2_5_ActionHandling_exception1       */
+      /* Details: "If the portlet throws an PortletException in               */
+      /* processAction, all operations on the ActionResponse, including set   */
+      /* events, must be ignored"                                             */
+      TestResult tr3 = tcd.getTestResultFailed(V2ADDLPORTLETTESTS_SPEC2_5_ACTIONHANDLING_EXCEPTION1);
+      /* TODO: implement test */
+      tr3.appendTcDetail("Not implemented.");
+      tr3.writeTo(writer);
+
+      /* TestCase: V2AddlPortletTests_SPEC2_5_ActionHandling_exception2       */
+      /* Details: "If the portlet throws a RuntimeException in                */
+      /* processAction, all operations on the ActionResponse, including set   */
+      /* events, must be ignored"                                             */
+      TestResult tr4 = tcd.getTestResultFailed(V2ADDLPORTLETTESTS_SPEC2_5_ACTIONHANDLING_EXCEPTION2);
+      /* TODO: implement test */
+      tr4.appendTcDetail("Not implemented.");
+      tr4.writeTo(writer);
+
+      portletReq.getPortletSession().setAttribute(
+                   Constants.RESULT_ATTR_PREFIX + "AddlPortletTests_SPEC2_5_ActionHandling",
+                   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 + "AddlPortletTests_SPEC2_5_ActionHandling", APPLICATION_SCOPE);
+      if (msg != null) {
+         writer.write("<p>" + msg + "</p><br/>\n");
+         ps.removeAttribute(RESULT_ATTR_PREFIX + "AddlPortletTests_SPEC2_5_ActionHandling", APPLICATION_SCOPE);
+      }
+
+      /* TestCase: V2AddlPortletTests_SPEC2_5_ActionHandling_action5          */
+      /* Details: "If the portlet issues a redirect during action             */
+      /* processing, the portlet container allows the processAction method    */
+      /* to complete"                                                         */
+      {
+         PortletURL aurl = portletResp.createActionURL();
+         aurl.setParameters(portletReq.getPrivateParameterMap());
+         TestButton tb = new TestButton("V2AddlPortletTests_SPEC2_5_ActionHandling_action5", aurl);
+         tb.writeTo(writer);
+      }
+
+      /* TestCase: V2AddlPortletTests_SPEC2_5_ActionHandling_action6          */
+      /* Details: "If the portlet issues a redirect during action             */
+      /* processing, the portlet container must send the redirect back to     */
+      /* the user agent and finalize the request processing."                 */
+      {
+         PortletURL aurl = portletResp.createActionURL();
+         aurl.setParameters(portletReq.getPrivateParameterMap());
+         TestButton tb = new TestButton("V2AddlPortletTests_SPEC2_5_ActionHandling_action6", aurl);
+         tb.writeTo(writer);
+      }
+
+      /* TestCase: V2AddlPortletTests_SPEC2_5_ActionHandling_action7          */
+      /* Details: "If the portlet issues a redirect during action             */
+      /* processing, events that were set are not processed"                  */
+      {
+         PortletURL aurl = portletResp.createActionURL();
+         aurl.setParameters(portletReq.getPrivateParameterMap());
+         TestButton tb = new TestButton("V2AddlPortletTests_SPEC2_5_ActionHandling_action7", aurl);
+         tb.writeTo(writer);
+      }
+
+      /* TestCase: V2AddlPortletTests_SPEC2_5_ActionHandling_exception1       */
+      /* Details: "If the portlet throws an PortletException in               */
+      /* processAction, all operations on the ActionResponse, including set   */
+      /* events, must be ignored"                                             */
+      {
+         PortletURL aurl = portletResp.createActionURL();
+         aurl.setParameters(portletReq.getPrivateParameterMap());
+         TestButton tb = new TestButton("V2AddlPortletTests_SPEC2_5_ActionHandling_exception1", aurl);
+         tb.writeTo(writer);
+      }
+
+      /* TestCase: V2AddlPortletTests_SPEC2_5_ActionHandling_exception2       */
+      /* Details: "If the portlet throws a RuntimeException in                */
+      /* processAction, all operations on the ActionResponse, including set   */
+      /* events, must be ignored"                                             */
+      {
+         PortletURL aurl = portletResp.createActionURL();
+         aurl.setParameters(portletReq.getPrivateParameterMap());
+         TestButton tb = new TestButton("V2AddlPortletTests_SPEC2_5_ActionHandling_exception2", aurl);
+         tb.writeTo(writer);
+      }
+
+   }
+
+}

http://git-wip-us.apache.org/repos/asf/portals-pluto/blob/23a1c547/portlet-tck_3.0/V2AddlPortletTests/src/main/java/javax/portlet/tck/portlets/AddlPortletTests_SPEC2_5_EventHandling.java
----------------------------------------------------------------------
diff --git a/portlet-tck_3.0/V2AddlPortletTests/src/main/java/javax/portlet/tck/portlets/AddlPortletTests_SPEC2_5_EventHandling.java b/portlet-tck_3.0/V2AddlPortletTests/src/main/java/javax/portlet/tck/portlets/AddlPortletTests_SPEC2_5_EventHandling.java
new file mode 100644
index 0000000..c9fb1db
--- /dev/null
+++ b/portlet-tck_3.0/V2AddlPortletTests/src/main/java/javax/portlet/tck/portlets/AddlPortletTests_SPEC2_5_EventHandling.java
@@ -0,0 +1,126 @@
+/*  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.JSR286SpecTestCaseDetails.*;
+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 AddlPortletTests_SPEC2_5_EventHandling_event
+ *
+ */
+public class AddlPortletTests_SPEC2_5_EventHandling implements Portlet, ResourceServingPortlet {
+   private static final String LOG_CLASS = 
+         AddlPortletTests_SPEC2_5_EventHandling.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,
+             "AddlPortletTests_SPEC2_5_EventHandling");
+      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: V2AddlPortletTests_SPEC2_5_EventHandling_exception4        */
+      /* Details: "If the portlet throws an PortletException in               */
+      /* processEvent, all operations on the EventResponse, including set     */
+      /* events, must be ignored"                                             */
+      {
+         PortletURL aurl = portletResp.createActionURL();
+         aurl.setParameters(portletReq.getPrivateParameterMap());
+         TestButton tb = new TestButton("V2AddlPortletTests_SPEC2_5_EventHandling_exception4", aurl);
+         tb.writeTo(writer);
+      }
+
+      /* TestCase: V2AddlPortletTests_SPEC2_5_EventHandling_exception5        */
+      /* Details: "If the portlet throws a RuntimeException in                */
+      /* processEvent, all operations on the EventResponse, including set     */
+      /* events, must be ignored"                                             */
+      {
+         PortletURL aurl = portletResp.createActionURL();
+         aurl.setParameters(portletReq.getPrivateParameterMap());
+         TestButton tb = new TestButton("V2AddlPortletTests_SPEC2_5_EventHandling_exception5", aurl);
+         tb.writeTo(writer);
+      }
+
+   }
+
+}

http://git-wip-us.apache.org/repos/asf/portals-pluto/blob/23a1c547/portlet-tck_3.0/V2AddlPortletTests/src/main/java/javax/portlet/tck/portlets/AddlPortletTests_SPEC2_5_EventHandling_event.java
----------------------------------------------------------------------
diff --git a/portlet-tck_3.0/V2AddlPortletTests/src/main/java/javax/portlet/tck/portlets/AddlPortletTests_SPEC2_5_EventHandling_event.java b/portlet-tck_3.0/V2AddlPortletTests/src/main/java/javax/portlet/tck/portlets/AddlPortletTests_SPEC2_5_EventHandling_event.java
new file mode 100644
index 0000000..3db4030
--- /dev/null
+++ b/portlet-tck_3.0/V2AddlPortletTests/src/main/java/javax/portlet/tck/portlets/AddlPortletTests_SPEC2_5_EventHandling_event.java
@@ -0,0 +1,127 @@
+/*  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.JSR286SpecTestCaseDetails.*;
+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 AddlPortletTests_SPEC2_5_EventHandling_event implements Portlet, EventPortlet, ResourceServingPortlet {
+   private static final String LOG_CLASS = 
+         AddlPortletTests_SPEC2_5_EventHandling_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();
+
+      JSR286SpecTestCaseDetails tcd = new JSR286SpecTestCaseDetails();
+
+      // Create result objects for the tests
+
+      /* TestCase: V2AddlPortletTests_SPEC2_5_EventHandling_exception4        */
+      /* Details: "If the portlet throws an PortletException in               */
+      /* processEvent, all operations on the EventResponse, including set     */
+      /* events, must be ignored"                                             */
+      TestResult tr0 = tcd.getTestResultFailed(V2ADDLPORTLETTESTS_SPEC2_5_EVENTHANDLING_EXCEPTION4);
+      /* TODO: implement test */
+      tr0.appendTcDetail("Not implemented.");
+      tr0.writeTo(writer);
+
+      /* TestCase: V2AddlPortletTests_SPEC2_5_EventHandling_exception5        */
+      /* Details: "If the portlet throws a RuntimeException in                */
+      /* processEvent, all operations on the EventResponse, including set     */
+      /* events, must be ignored"                                             */
+      TestResult tr1 = tcd.getTestResultFailed(V2ADDLPORTLETTESTS_SPEC2_5_EVENTHANDLING_EXCEPTION5);
+      /* TODO: implement test */
+      tr1.appendTcDetail("Not implemented.");
+      tr1.writeTo(writer);
+
+      portletReq.getPortletSession().setAttribute(
+                   Constants.RESULT_ATTR_PREFIX + "AddlPortletTests_SPEC2_5_EventHandling",
+                   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>AddlPortletTests_SPEC2_5_EventHandling_event</p>\n");
+
+      String msg = (String) portletReq.getPortletSession()
+            .getAttribute(RESULT_ATTR_PREFIX + "AddlPortletTests_SPEC2_5_EventHandling", 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/23a1c547/portlet-tck_3.0/V2AddlPortletTests/src/main/java/javax/portlet/tck/portlets/AddlPortletTests_SPEC2_5_GenericPortlet.java
----------------------------------------------------------------------
diff --git a/portlet-tck_3.0/V2AddlPortletTests/src/main/java/javax/portlet/tck/portlets/AddlPortletTests_SPEC2_5_GenericPortlet.java b/portlet-tck_3.0/V2AddlPortletTests/src/main/java/javax/portlet/tck/portlets/AddlPortletTests_SPEC2_5_GenericPortlet.java
deleted file mode 100644
index cb67c5e..0000000
--- a/portlet-tck_3.0/V2AddlPortletTests/src/main/java/javax/portlet/tck/portlets/AddlPortletTests_SPEC2_5_GenericPortlet.java
+++ /dev/null
@@ -1,127 +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.IOException;
-import java.io.PrintWriter;
-
-import java.util.Enumeration;
-import java.util.Locale;
-import java.util.logging.Level;
-import java.util.logging.Logger;
-
-import javax.portlet.*;
-import javax.portlet.filter.*;
-import javax.portlet.tck.beans.ClassChecker;
-import javax.portlet.tck.beans.TestCaseDetails;
-import javax.portlet.tck.beans.JSR286SpecTestCaseDetails;
-import static javax.portlet.tck.beans.JSR286SpecTestCaseDetails.*;
-import javax.portlet.tck.beans.TestResult;
-
-/**
- * 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.
- */
-public class AddlPortletTests_SPEC2_5_GenericPortlet implements Portlet {
-   private static final String LOG_CLASS = 
-         AddlPortletTests_SPEC2_5_GenericPortlet.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 actionRequest, ActionResponse actionResponse)
-         throws PortletException, IOException {
-   }
-
-   @Override
-   public void render(RenderRequest renderRequest, RenderResponse renderResponse)
-         throws PortletException, IOException {
-      
-      if (LOGGER.isLoggable(Level.FINE)) {
-         LOGGER.logp(Level.FINE, LOG_CLASS, "render", "Entry");
-      }
-
-      PrintWriter writer = renderResponse.getWriter();
-      JSR286SpecTestCaseDetails tcd = new JSR286SpecTestCaseDetails();
-
-      // Create result objects for the tests
-
-      /* TestCase: SPEC2_5_GenericPortlet_actionDispatching2                  */
-      /* Details: "If the ActionRequest.ACTION_NAME parameter is not set on   */
-      /* the action URL, the GenericPortlet processAction method will throw   */
-      /* a PortletException"                                                  */
-      TestResult tr0 = tcd.getTestResultFailed(SPEC2_5_GENERICPORTLET_ACTIONDISPATCHING2);
-      /* TODO: implement test */
-
-      /* TestCase: SPEC2_5_GenericPortlet_eventDispatching1                   */
-      /* Details: "The GenericPortlet processEvent method will dispatch the   */
-      /* request to a subclass method annotated with the tag                  */
-      /* @ProcessEvent(qname=<eventname>), where <eventname> must be in the   */
-      /* format provided by Qname.toString()"                                 */
-      TestResult tr1 = tcd.getTestResultFailed(SPEC2_5_GENERICPORTLET_EVENTDISPATCHING1);
-      /* TODO: implement test */
-
-      /* TestCase: SPEC2_5_GenericPortlet_eventDispatching2                   */
-      /* Details: "The GenericPortlet processEvent method will dispatch the   */
-      /* request to a subclass method annotated with the tag                  */
-      /* @ProcessEvent(name=<event_name_local_part>)"                         */
-      TestResult tr2 = tcd.getTestResultFailed(SPEC2_5_GENERICPORTLET_EVENTDISPATCHING2);
-      /* TODO: implement test */
-
-      /* TestCase: SPEC2_5_GenericPortlet_renderDispatching8                  */
-      /* Details: "getTitle - If a ResourceBundle containing the title        */
-      /* string is defined in the deployment descriptor, that title string    */
-      /* will be used"                                                        */
-      TestResult tr3 = tcd.getTestResultFailed(SPEC2_5_GENERICPORTLET_RENDERDISPATCHING8);
-      /* TODO: implement test */
-
-      /* TestCase: SPEC2_5_GenericPortlet_renderDispatching9                  */
-      /* Details: "getTitle - If a ResourceBundle containing the title        */
-      /* string is not defined in the deployment descriptor, the title        */
-      /* defined in the portlet descriptor <title> element is used"           */
-      TestResult tr4 = tcd.getTestResultFailed(SPEC2_5_GENERICPORTLET_RENDERDISPATCHING9);
-      /* TODO: implement test */
-
-
-
-      // Write the results to the output stream
-
-      tr0.writeTo(writer);
-      tr1.writeTo(writer);
-      tr2.writeTo(writer);
-      tr3.writeTo(writer);
-      tr4.writeTo(writer);
-
-
-   }
-
-}
-

http://git-wip-us.apache.org/repos/asf/portals-pluto/blob/23a1c547/portlet-tck_3.0/V2AddlPortletTests/src/main/java/javax/portlet/tck/portlets/AddlPortletTests_SPEC2_5_Initialization.java
----------------------------------------------------------------------
diff --git a/portlet-tck_3.0/V2AddlPortletTests/src/main/java/javax/portlet/tck/portlets/AddlPortletTests_SPEC2_5_Initialization.java b/portlet-tck_3.0/V2AddlPortletTests/src/main/java/javax/portlet/tck/portlets/AddlPortletTests_SPEC2_5_Initialization.java
index 1ef9d42..9c3dfea 100644
--- a/portlet-tck_3.0/V2AddlPortletTests/src/main/java/javax/portlet/tck/portlets/AddlPortletTests_SPEC2_5_Initialization.java
+++ b/portlet-tck_3.0/V2AddlPortletTests/src/main/java/javax/portlet/tck/portlets/AddlPortletTests_SPEC2_5_Initialization.java
@@ -18,29 +18,34 @@
 
 package javax.portlet.tck.portlets;
 
-import java.io.IOException;
-import java.io.PrintWriter;
-
-import java.util.Enumeration;
-import java.util.Locale;
-import java.util.logging.Level;
-import java.util.logging.Logger;
-
+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.portlet.tck.beans.ClassChecker;
-import javax.portlet.tck.beans.TestCaseDetails;
-import javax.portlet.tck.beans.JSR286SpecTestCaseDetails;
+import javax.servlet.*;
+import javax.servlet.http.*;
+import javax.portlet.tck.beans.*;
+import javax.portlet.tck.constants.*;
 import static javax.portlet.tck.beans.JSR286SpecTestCaseDetails.*;
-import javax.portlet.tck.beans.TestResult;
+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 AddlPortletTests_SPEC2_5_Initialization_event
+ *
  */
-public class AddlPortletTests_SPEC2_5_Initialization implements Portlet {
+public class AddlPortletTests_SPEC2_5_Initialization implements Portlet, ResourceServingPortlet {
    private static final String LOG_CLASS = 
          AddlPortletTests_SPEC2_5_Initialization.class.getName();
    private final Logger LOGGER = Logger.getLogger(LOG_CLASS);
@@ -57,37 +62,52 @@ public class AddlPortletTests_SPEC2_5_Initialization implements Portlet {
    }
 
    @Override
-   public void processAction(ActionRequest actionRequest, ActionResponse actionResponse)
+   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 renderRequest, RenderResponse renderResponse)
+   public void render(RenderRequest portletReq, RenderResponse portletResp)
          throws PortletException, IOException {
-      
-      if (LOGGER.isLoggable(Level.FINE)) {
-         LOGGER.logp(Level.FINE, LOG_CLASS, "render", "Entry");
-      }
+      LOGGER.entering(LOG_CLASS, "main portlet render entry");
+
+      long tid = Thread.currentThread().getId();
+      portletReq.setAttribute(THREADID_ATTR, tid);
+
+      PrintWriter writer = portletResp.getWriter();
 
-      PrintWriter writer = renderResponse.getWriter();
       JSR286SpecTestCaseDetails tcd = new JSR286SpecTestCaseDetails();
 
       // Create result objects for the tests
 
-      /* TestCase: SPEC2_5_Initialization_initialization6                     */
+      /* TestCase: V2AddlPortletTests_SPEC2_5_Initialization_initialization6  */
       /* Details: "A RuntimeException thrown during initialization must be    */
       /* handled as a PortletException"                                       */
-      TestResult tr0 = tcd.getTestResultFailed(SPEC2_5_INITIALIZATION_INITIALIZATION6);
+      TestResult tr0 = tcd.getTestResultFailed(V2ADDLPORTLETTESTS_SPEC2_5_INITIALIZATION_INITIALIZATION6);
       /* TODO: implement test */
-
-
-
-      // Write the results to the output stream
-
+      tr0.appendTcDetail("Not implemented.");
       tr0.writeTo(writer);
 
-
    }
 
 }
-

http://git-wip-us.apache.org/repos/asf/portals-pluto/blob/23a1c547/portlet-tck_3.0/V2AddlPortletTests/src/main/java/javax/portlet/tck/portlets/AddlPortletTests_SPEC2_5_RenderGenericPortlet.java
----------------------------------------------------------------------
diff --git a/portlet-tck_3.0/V2AddlPortletTests/src/main/java/javax/portlet/tck/portlets/AddlPortletTests_SPEC2_5_RenderGenericPortlet.java b/portlet-tck_3.0/V2AddlPortletTests/src/main/java/javax/portlet/tck/portlets/AddlPortletTests_SPEC2_5_RenderGenericPortlet.java
new file mode 100644
index 0000000..f163888
--- /dev/null
+++ b/portlet-tck_3.0/V2AddlPortletTests/src/main/java/javax/portlet/tck/portlets/AddlPortletTests_SPEC2_5_RenderGenericPortlet.java
@@ -0,0 +1,151 @@
+/*  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.JSR286SpecTestCaseDetails.*;
+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 AddlPortletTests_SPEC2_5_RenderGenericPortlet_event
+ *
+ */
+public class AddlPortletTests_SPEC2_5_RenderGenericPortlet implements Portlet, ResourceServingPortlet {
+   private static final String LOG_CLASS = 
+         AddlPortletTests_SPEC2_5_RenderGenericPortlet.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();
+
+      JSR286SpecTestCaseDetails tcd = new JSR286SpecTestCaseDetails();
+
+      // Create result objects for the tests
+
+      /* TestCase: V2AddlPortletTests_SPEC2_5_RenderGenericPortlet_actionDispatching2 */
+      /* Details: "If the ActionRequest.ACTION_NAME parameter is not set on   */
+      /* the action URL, the GenericPortlet processAction method will throw   */
+      /* a PortletException"                                                  */
+      TestResult tr0 = tcd.getTestResultFailed(V2ADDLPORTLETTESTS_SPEC2_5_RENDERGENERICPORTLET_ACTIONDISPATCHING2);
+      /* TODO: implement test */
+      tr0.appendTcDetail("Not implemented.");
+      tr0.writeTo(writer);
+
+      /* TestCase: V2AddlPortletTests_SPEC2_5_RenderGenericPortlet_eventDispatching1 */
+      /* Details: "The GenericPortlet processEvent method will dispatch the   */
+      /* request to a subclass method annotated with the tag                  */
+      /* @ProcessEvent(qname=<eventname>), where <eventname> must be in the   */
+      /* format provided by Qname.toString()"                                 */
+      TestResult tr1 = tcd.getTestResultFailed(V2ADDLPORTLETTESTS_SPEC2_5_RENDERGENERICPORTLET_EVENTDISPATCHING1);
+      /* TODO: implement test */
+      tr1.appendTcDetail("Not implemented.");
+      tr1.writeTo(writer);
+
+      /* TestCase: V2AddlPortletTests_SPEC2_5_RenderGenericPortlet_eventDispatching2 */
+      /* Details: "The GenericPortlet processEvent method will dispatch the   */
+      /* request to a subclass method annotated with the tag                  */
+      /* @ProcessEvent(name=<event_name_local_part>)"                         */
+      TestResult tr2 = tcd.getTestResultFailed(V2ADDLPORTLETTESTS_SPEC2_5_RENDERGENERICPORTLET_EVENTDISPATCHING2);
+      /* TODO: implement test */
+      tr2.appendTcDetail("Not implemented.");
+      tr2.writeTo(writer);
+
+      /* TestCase: V2AddlPortletTests_SPEC2_5_RenderGenericPortlet_renderDispatching8 */
+      /* Details: "getTitle - If a ResourceBundle containing the title        */
+      /* string is defined in the deployment descriptor, that title string    */
+      /* will be used"                                                        */
+      TestResult tr3 = tcd.getTestResultFailed(V2ADDLPORTLETTESTS_SPEC2_5_RENDERGENERICPORTLET_RENDERDISPATCHING8);
+      /* TODO: implement test */
+      tr3.appendTcDetail("Not implemented.");
+      tr3.writeTo(writer);
+
+      /* TestCase: V2AddlPortletTests_SPEC2_5_RenderGenericPortlet_renderDispatching9 */
+      /* Details: "getTitle - If a ResourceBundle containing the title        */
+      /* string is not defined in the deployment descriptor, the title        */
+      /* defined in the portlet descriptor <title> element is used"           */
+      TestResult tr4 = tcd.getTestResultFailed(V2ADDLPORTLETTESTS_SPEC2_5_RENDERGENERICPORTLET_RENDERDISPATCHING9);
+      /* TODO: implement test */
+      tr4.appendTcDetail("Not implemented.");
+      tr4.writeTo(writer);
+
+   }
+
+}

http://git-wip-us.apache.org/repos/asf/portals-pluto/blob/23a1c547/portlet-tck_3.0/V2AddlPortletTests/src/main/java/javax/portlet/tck/portlets/AddlPortletTests_SPEC2_5_RenderHandling.java
----------------------------------------------------------------------
diff --git a/portlet-tck_3.0/V2AddlPortletTests/src/main/java/javax/portlet/tck/portlets/AddlPortletTests_SPEC2_5_RenderHandling.java b/portlet-tck_3.0/V2AddlPortletTests/src/main/java/javax/portlet/tck/portlets/AddlPortletTests_SPEC2_5_RenderHandling.java
new file mode 100644
index 0000000..d140015
--- /dev/null
+++ b/portlet-tck_3.0/V2AddlPortletTests/src/main/java/javax/portlet/tck/portlets/AddlPortletTests_SPEC2_5_RenderHandling.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.JSR286SpecTestCaseDetails.*;
+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 AddlPortletTests_SPEC2_5_RenderHandling_event
+ *
+ */
+public class AddlPortletTests_SPEC2_5_RenderHandling implements Portlet, ResourceServingPortlet {
+   private static final String LOG_CLASS = 
+         AddlPortletTests_SPEC2_5_RenderHandling.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();
+
+      JSR286SpecTestCaseDetails tcd = new JSR286SpecTestCaseDetails();
+
+      // Create result objects for the tests
+
+      /* TestCase: V2AddlPortletTests_SPEC2_5_RenderHandling_render1          */
+      /* Details: "If the client request is triggered by a render URL, the    */
+      /* portlet container must invoke the render method for all portlets     */
+      /* on the page that do not have valid cache entries"                    */
+      TestResult tr0 = tcd.getTestResultFailed(V2ADDLPORTLETTESTS_SPEC2_5_RENDERHANDLING_RENDER1);
+      /* TODO: implement test */
+      tr0.appendTcDetail("Not implemented.");
+      tr0.writeTo(writer);
+
+   }
+
+}

http://git-wip-us.apache.org/repos/asf/portals-pluto/blob/23a1c547/portlet-tck_3.0/V2AddlPortletTests/src/main/java/javax/portlet/tck/portlets/AddlPortletTests_SPEC2_5_RequestHandling.java
----------------------------------------------------------------------
diff --git a/portlet-tck_3.0/V2AddlPortletTests/src/main/java/javax/portlet/tck/portlets/AddlPortletTests_SPEC2_5_RequestHandling.java b/portlet-tck_3.0/V2AddlPortletTests/src/main/java/javax/portlet/tck/portlets/AddlPortletTests_SPEC2_5_RequestHandling.java
deleted file mode 100644
index 860d82f..0000000
--- a/portlet-tck_3.0/V2AddlPortletTests/src/main/java/javax/portlet/tck/portlets/AddlPortletTests_SPEC2_5_RequestHandling.java
+++ /dev/null
@@ -1,181 +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.IOException;
-import java.io.PrintWriter;
-
-import java.util.Enumeration;
-import java.util.Locale;
-import java.util.logging.Level;
-import java.util.logging.Logger;
-
-import javax.portlet.*;
-import javax.portlet.filter.*;
-import javax.portlet.tck.beans.ClassChecker;
-import javax.portlet.tck.beans.TestCaseDetails;
-import javax.portlet.tck.beans.JSR286SpecTestCaseDetails;
-import static javax.portlet.tck.beans.JSR286SpecTestCaseDetails.*;
-import javax.portlet.tck.beans.TestResult;
-
-/**
- * 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.
- */
-public class AddlPortletTests_SPEC2_5_RequestHandling implements Portlet {
-   private static final String LOG_CLASS = 
-         AddlPortletTests_SPEC2_5_RequestHandling.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 actionRequest, ActionResponse actionResponse)
-         throws PortletException, IOException {
-   }
-
-   @Override
-   public void render(RenderRequest renderRequest, RenderResponse renderResponse)
-         throws PortletException, IOException {
-      
-      if (LOGGER.isLoggable(Level.FINE)) {
-         LOGGER.logp(Level.FINE, LOG_CLASS, "render", "Entry");
-      }
-
-      PrintWriter writer = renderResponse.getWriter();
-      JSR286SpecTestCaseDetails tcd = new JSR286SpecTestCaseDetails();
-
-      // Create result objects for the tests
-
-      /* TestCase: SPEC2_5_RequestHandling_action2                            */
-      /* Details: "During action processing, the portlet container waits      */
-      /* for the processAction method to complete before processing any       */
-      /* events that were set"                                                */
-      TestResult tr0 = tcd.getTestResultFailed(SPEC2_5_REQUESTHANDLING_ACTION2);
-      /* TODO: implement test */
-
-      /* TestCase: SPEC2_5_RequestHandling_action5                            */
-      /* Details: "If the portlet issues a redirect during action             */
-      /* processing, the portlet container allows the processAction method    */
-      /* to complete"                                                         */
-      TestResult tr1 = tcd.getTestResultFailed(SPEC2_5_REQUESTHANDLING_ACTION5);
-      /* TODO: implement test */
-
-      /* TestCase: SPEC2_5_RequestHandling_action6                            */
-      /* Details: "If the portlet issues a redirect during action             */
-      /* processing, the portlet container must send the redirect back to     */
-      /* the user agent and finalize the request processing."                 */
-      TestResult tr2 = tcd.getTestResultFailed(SPEC2_5_REQUESTHANDLING_ACTION6);
-      /* TODO: implement test */
-
-      /* TestCase: SPEC2_5_RequestHandling_action7                            */
-      /* Details: "If the portlet issues a redirect during action             */
-      /* processing, events that were set are not processed"                  */
-      TestResult tr3 = tcd.getTestResultFailed(SPEC2_5_REQUESTHANDLING_ACTION7);
-      /* TODO: implement test */
-
-      /* TestCase: SPEC2_5_RequestHandling_render1                            */
-      /* Details: "If the client request is triggered by a render URL, the    */
-      /* portlet container must invoke the render method for all portlets     */
-      /* on the page that do not have valid cache entries"                    */
-      TestResult tr4 = tcd.getTestResultFailed(SPEC2_5_REQUESTHANDLING_RENDER1);
-      /* TODO: implement test */
-
-      /* TestCase: SPEC2_5_RequestHandling_render3                            */
-      /* Details: "If the client request is triggered by a render URL, the    */
-      /* portlet container must not invoke the processAction method for any   */
-      /* portlet on the page"                                                 */
-      TestResult tr5 = tcd.getTestResultFailed(SPEC2_5_REQUESTHANDLING_RENDER3);
-      /* TODO: implement test */
-
-      /* TestCase: SPEC2_5_RequestHandling_resource1                          */
-      /* Details: "If the client request is triggered by a resource URL,      */
-      /* the portlet container must invoke the serveResource method for the   */
-      /* target portlet if its content does not have a valid cache entry"     */
-      TestResult tr6 = tcd.getTestResultFailed(SPEC2_5_REQUESTHANDLING_RESOURCE1);
-      /* TODO: implement test */
-
-      /* TestCase: SPEC2_5_RequestHandling_resource3                          */
-      /* Details: "If the client request is triggered by a resource URL,      */
-      /* the portlet container must not invoke the processAction method for   */
-      /* any portlet on the page"                                             */
-      TestResult tr7 = tcd.getTestResultFailed(SPEC2_5_REQUESTHANDLING_RESOURCE3);
-      /* TODO: implement test */
-
-      /* TestCase: SPEC2_5_RequestHandling_exception1                         */
-      /* Details: "If the portlet throws an PortletException in               */
-      /* processAction, all operations on the ActionResponse, including set   */
-      /* events, must be ignored"                                             */
-      TestResult tr8 = tcd.getTestResultFailed(SPEC2_5_REQUESTHANDLING_EXCEPTION1);
-      /* TODO: implement test */
-
-      /* TestCase: SPEC2_5_RequestHandling_exception2                         */
-      /* Details: "If the portlet throws a RuntimeException in                */
-      /* processAction, all operations on the ActionResponse, including set   */
-      /* events, must be ignored"                                             */
-      TestResult tr9 = tcd.getTestResultFailed(SPEC2_5_REQUESTHANDLING_EXCEPTION2);
-      /* TODO: implement test */
-
-      /* TestCase: SPEC2_5_RequestHandling_exception4                         */
-      /* Details: "If the portlet throws an PortletException in               */
-      /* processEvent, all operations on the EventResponse, including set     */
-      /* events, must be ignored"                                             */
-      TestResult tr10 = tcd.getTestResultFailed(SPEC2_5_REQUESTHANDLING_EXCEPTION4);
-      /* TODO: implement test */
-
-      /* TestCase: SPEC2_5_RequestHandling_exception5                         */
-      /* Details: "If the portlet throws a RuntimeException in                */
-      /* processEvent, all operations on the EventResponse, including set     */
-      /* events, must be ignored"                                             */
-      TestResult tr11 = tcd.getTestResultFailed(SPEC2_5_REQUESTHANDLING_EXCEPTION5);
-      /* TODO: implement test */
-
-
-
-      // Write the results to the output stream
-
-      tr0.writeTo(writer);
-      tr1.writeTo(writer);
-      tr2.writeTo(writer);
-      tr3.writeTo(writer);
-      tr4.writeTo(writer);
-      tr5.writeTo(writer);
-      tr6.writeTo(writer);
-      tr7.writeTo(writer);
-      tr8.writeTo(writer);
-      tr9.writeTo(writer);
-      tr10.writeTo(writer);
-      tr11.writeTo(writer);
-
-
-   }
-
-}
-

http://git-wip-us.apache.org/repos/asf/portals-pluto/blob/23a1c547/portlet-tck_3.0/V2AddlPortletTests/src/main/java/javax/portlet/tck/portlets/AddlPortletTests_SPEC2_5_ResourceHandling.java
----------------------------------------------------------------------
diff --git a/portlet-tck_3.0/V2AddlPortletTests/src/main/java/javax/portlet/tck/portlets/AddlPortletTests_SPEC2_5_ResourceHandling.java b/portlet-tck_3.0/V2AddlPortletTests/src/main/java/javax/portlet/tck/portlets/AddlPortletTests_SPEC2_5_ResourceHandling.java
new file mode 100644
index 0000000..a12c044
--- /dev/null
+++ b/portlet-tck_3.0/V2AddlPortletTests/src/main/java/javax/portlet/tck/portlets/AddlPortletTests_SPEC2_5_ResourceHandling.java
@@ -0,0 +1,129 @@
+/*  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.JSR286SpecTestCaseDetails.*;
+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 AddlPortletTests_SPEC2_5_ResourceHandling_event
+ *
+ */
+public class AddlPortletTests_SPEC2_5_ResourceHandling implements Portlet, ResourceServingPortlet {
+   private static final String LOG_CLASS = 
+         AddlPortletTests_SPEC2_5_ResourceHandling.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();
+
+      JSR286SpecTestCaseDetails tcd = new JSR286SpecTestCaseDetails();
+
+      // Create result objects for the tests
+
+      /* TestCase: V2AddlPortletTests_SPEC2_5_ResourceHandling_resource1      */
+      /* Details: "If the client request is triggered by a resource URL,      */
+      /* the portlet container must invoke the serveResource method for the   */
+      /* target portlet if its content does not have a valid cache entry"     */
+      TestResult tr0 = tcd.getTestResultFailed(V2ADDLPORTLETTESTS_SPEC2_5_RESOURCEHANDLING_RESOURCE1);
+      /* TODO: implement test */
+      tr0.appendTcDetail("Not implemented.");
+      tr0.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=\"AddlPortletTests_SPEC2_5_ResourceHandling\">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(\"AddlPortletTests_SPEC2_5_ResourceHandling\").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/23a1c547/portlet-tck_3.0/V2AddlPortletTests/src/main/java/javax/portlet/tck/portlets/AddlPortletTests_SPEC2_6_Config.java
----------------------------------------------------------------------
diff --git a/portlet-tck_3.0/V2AddlPortletTests/src/main/java/javax/portlet/tck/portlets/AddlPortletTests_SPEC2_6_Config.java b/portlet-tck_3.0/V2AddlPortletTests/src/main/java/javax/portlet/tck/portlets/AddlPortletTests_SPEC2_6_Config.java
deleted file mode 100644
index 47e03bd..0000000
--- a/portlet-tck_3.0/V2AddlPortletTests/src/main/java/javax/portlet/tck/portlets/AddlPortletTests_SPEC2_6_Config.java
+++ /dev/null
@@ -1,239 +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.IOException;
-import java.io.PrintWriter;
-
-import java.util.Enumeration;
-import java.util.Locale;
-import java.util.logging.Level;
-import java.util.logging.Logger;
-
-import javax.portlet.*;
-import javax.portlet.filter.*;
-import javax.portlet.tck.beans.ClassChecker;
-import javax.portlet.tck.beans.TestCaseDetails;
-import javax.portlet.tck.beans.JSR286SpecTestCaseDetails;
-import static javax.portlet.tck.beans.JSR286SpecTestCaseDetails.*;
-import javax.portlet.tck.beans.TestResult;
-
-/**
- * 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.
- */
-public class AddlPortletTests_SPEC2_6_Config implements Portlet {
-   private static final String LOG_CLASS = 
-         AddlPortletTests_SPEC2_6_Config.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 actionRequest, ActionResponse actionResponse)
-         throws PortletException, IOException {
-   }
-
-   @Override
-   public void render(RenderRequest renderRequest, RenderResponse renderResponse)
-         throws PortletException, IOException {
-      
-      if (LOGGER.isLoggable(Level.FINE)) {
-         LOGGER.logp(Level.FINE, LOG_CLASS, "render", "Entry");
-      }
-
-      PrintWriter writer = renderResponse.getWriter();
-      JSR286SpecTestCaseDetails tcd = new JSR286SpecTestCaseDetails();
-
-      // Create result objects for the tests
-
-      /* TestCase: SPEC2_6_Config_getResourceBundle1                          */
-      /* Details: "The resource bundle defined in the deployment descriptor   */
-      /* <resource-bundle> element can be obtained through the                */
-      /* PortletConfig object"                                                */
-      TestResult tr0 = tcd.getTestResultFailed(SPEC2_6_CONFIG_GETRESOURCEBUNDLE1);
-      /* TODO: implement test */
-
-      /* TestCase: SPEC2_6_Config_getResourceBundle2                          */
-      /* Details: "If the resource bundle contains a                          */
-      /* \"javax.portlet.title\" property, the value defined in the bundle    */
-      /* is returned by the corresponding getString method call"              */
-      TestResult tr1 = tcd.getTestResultFailed(SPEC2_6_CONFIG_GETRESOURCEBUNDLE2);
-      /* TODO: implement test */
-
-      /* TestCase: SPEC2_6_Config_getResourceBundle3                          */
-      /* Details: "If the resource bundle contains a                          */
-      /* \"javax.portlet.short-title\" property, the value defined in the     */
-      /* bundle is returned by the corresponding getString method call"       */
-      TestResult tr2 = tcd.getTestResultFailed(SPEC2_6_CONFIG_GETRESOURCEBUNDLE3);
-      /* TODO: implement test */
-
-      /* TestCase: SPEC2_6_Config_getResourceBundle4                          */
-      /* Details: "If the resource bundle contains a                          */
-      /* \"javax.portlet.keywords\" property, the value defined in the        */
-      /* bundle is returned by the corresponding getString method call"       */
-      TestResult tr3 = tcd.getTestResultFailed(SPEC2_6_CONFIG_GETRESOURCEBUNDLE4);
-      /* TODO: implement test */
-
-      /* TestCase: SPEC2_6_Config_getResourceBundle5                          */
-      /* Details: "If the resource bundle does not contain a                  */
-      /* \"javax.portlet.title\" property, the value defined in the           */
-      /* deployment descriptor <title> element is returned by the             */
-      /* corresponding getString method call"                                 */
-      TestResult tr4 = tcd.getTestResultFailed(SPEC2_6_CONFIG_GETRESOURCEBUNDLE5);
-      /* TODO: implement test */
-
-      /* TestCase: SPEC2_6_Config_getResourceBundle6                          */
-      /* Details: "If the resource bundle does not contain a                  */
-      /* \"javax.portlet.short-title\" property, the value defined in the     */
-      /* deployment descriptor <short-title> element is returned by the       */
-      /* corresponding getString method call"                                 */
-      TestResult tr5 = tcd.getTestResultFailed(SPEC2_6_CONFIG_GETRESOURCEBUNDLE6);
-      /* TODO: implement test */
-
-      /* TestCase: SPEC2_6_Config_getResourceBundle7                          */
-      /* Details: "If the resource bundle does not contain a                  */
-      /* \"javax.portlet.keywords\" property, the value defined in the        */
-      /* deployment descriptor <keywords> element is returned by the          */
-      /* corresponding getString method call"                                 */
-      TestResult tr6 = tcd.getTestResultFailed(SPEC2_6_CONFIG_GETRESOURCEBUNDLE7);
-      /* TODO: implement test */
-
-      /* TestCase: SPEC2_6_Config_getResourceBundle8                          */
-      /* Details: "If no resource bundle is defined, the value defined in     */
-      /* the deployment descriptor <title> element is returned by the         */
-      /* corresponding getString method call"                                 */
-      TestResult tr7 = tcd.getTestResultFailed(SPEC2_6_CONFIG_GETRESOURCEBUNDLE8);
-      /* TODO: implement test */
-
-      /* TestCase: SPEC2_6_Config_getResourceBundle9                          */
-      /* Details: "If no resource bundle is defined, the value defined in     */
-      /* the deployment descriptor <short-title> element is returned by the   */
-      /* corresponding getString method call"                                 */
-      TestResult tr8 = tcd.getTestResultFailed(SPEC2_6_CONFIG_GETRESOURCEBUNDLE9);
-      /* TODO: implement test */
-
-      /* TestCase: SPEC2_6_Config_getResourceBundle10                         */
-      /* Details: "If no resource bundle is defined, the value defined in     */
-      /* the deployment descriptor <keywords> element is returned by the      */
-      /* corresponding getString method call"                                 */
-      TestResult tr9 = tcd.getTestResultFailed(SPEC2_6_CONFIG_GETRESOURCEBUNDLE10);
-      /* TODO: implement test */
-
-      /* TestCase: SPEC2_6_Config_getPublishingEventQnames3                   */
-      /* Details: "getPublishingEventQnames - If the event was defined        */
-      /* using the <name> element rather than the <qname> element, default    */
-      /* namespace defined with the <default-namespace> element must be       */
-      /* added as the event namespace"                                        */
-      TestResult tr10 = tcd.getTestResultFailed(SPEC2_6_CONFIG_GETPUBLISHINGEVENTQNAMES3);
-      /* TODO: implement test */
-
-      /* TestCase: SPEC2_6_Config_getPublishingEventQnames4                   */
-      /* Details: "getPublishingEventQnames - If the event was defined        */
-      /* using the <name> element rather than the <qname> element and there   */
-      /* is no default namespace defined, the value                           */
-      /* XMLConstants.NULL_NS_URI must be added as the event namespace"       */
-      TestResult tr11 = tcd.getTestResultFailed(SPEC2_6_CONFIG_GETPUBLISHINGEVENTQNAMES4);
-      /* TODO: implement test */
-
-      /* TestCase: SPEC2_6_Config_getProcessingEventQnames3                   */
-      /* Details: "getProcessingEventQnames - If the event was defined        */
-      /* using the <name> element rather than the <qname> element, default    */
-      /* namespace defined with the <default-namespace> element must be       */
-      /* added as the event namespace"                                        */
-      TestResult tr12 = tcd.getTestResultFailed(SPEC2_6_CONFIG_GETPROCESSINGEVENTQNAMES3);
-      /* TODO: implement test */
-
-      /* TestCase: SPEC2_6_Config_getProcessingEventQnames4                   */
-      /* Details: "getProcessingEventQnames - If the event was defined        */
-      /* using the <name> element rather than the <qname> element and there   */
-      /* is no default namespace defined, the value                           */
-      /* XMLConstants.NULL_NS_URI must be added as the event namespace"       */
-      TestResult tr13 = tcd.getTestResultFailed(SPEC2_6_CONFIG_GETPROCESSINGEVENTQNAMES4);
-      /* TODO: implement test */
-
-      /* TestCase: SPEC2_6_Config_getContainerRuntimeOptions6                 */
-      /* Details: "The returned Map contains values defined in the            */
-      /* deployment descriptor <container-runtime-option> elements at the     */
-      /* portlet application level"                                           */
-      TestResult tr14 = tcd.getTestResultFailed(SPEC2_6_CONFIG_GETCONTAINERRUNTIMEOPTIONS6);
-      /* TODO: implement test */
-
-      /* TestCase: SPEC2_6_Config_getContainerRuntimeOptions7                 */
-      /* Details: "The returned Map contains values defined in the            */
-      /* deployment descriptor <container-runtime-option> elements at the     */
-      /* portlet level"                                                       */
-      TestResult tr15 = tcd.getTestResultFailed(SPEC2_6_CONFIG_GETCONTAINERRUNTIMEOPTIONS7);
-      /* TODO: implement test */
-
-      /* TestCase: SPEC2_6_Config_getContainerRuntimeOptions8                 */
-      /* Details: "If the deployment descriptor contains                      */
-      /* <container-runtime-option> elements defined at both the portlet      */
-      /* and the portlet application levels, the returned Map contains a      */
-      /* merger of all values"                                                */
-      TestResult tr16 = tcd.getTestResultFailed(SPEC2_6_CONFIG_GETCONTAINERRUNTIMEOPTIONS8);
-      /* TODO: implement test */
-
-      /* TestCase: SPEC2_6_Config_getContainerRuntimeOptions9                 */
-      /* Details: "If the deployment descriptor contains                      */
-      /* <container-runtime-option> elements of the same name defined at      */
-      /* both the portlet and the portlet application levels, the returned    */
-      /* Map contains a the value defined at the portlet level"               */
-      TestResult tr17 = tcd.getTestResultFailed(SPEC2_6_CONFIG_GETCONTAINERRUNTIMEOPTIONS9);
-      /* TODO: implement test */
-
-
-
-      // Write the results to the output stream
-
-      tr0.writeTo(writer);
-      tr1.writeTo(writer);
-      tr2.writeTo(writer);
-      tr3.writeTo(writer);
-      tr4.writeTo(writer);
-      tr5.writeTo(writer);
-      tr6.writeTo(writer);
-      tr7.writeTo(writer);
-      tr8.writeTo(writer);
-      tr9.writeTo(writer);
-      tr10.writeTo(writer);
-      tr11.writeTo(writer);
-      tr12.writeTo(writer);
-      tr13.writeTo(writer);
-      tr14.writeTo(writer);
-      tr15.writeTo(writer);
-      tr16.writeTo(writer);
-      tr17.writeTo(writer);
-
-
-   }
-
-}
-

http://git-wip-us.apache.org/repos/asf/portals-pluto/blob/23a1c547/portlet-tck_3.0/V2AddlPortletTests/src/main/java/javax/portlet/tck/portlets/AddlPortletTests_SPEC2_6_RenderConfig.java
----------------------------------------------------------------------
diff --git a/portlet-tck_3.0/V2AddlPortletTests/src/main/java/javax/portlet/tck/portlets/AddlPortletTests_SPEC2_6_RenderConfig.java b/portlet-tck_3.0/V2AddlPortletTests/src/main/java/javax/portlet/tck/portlets/AddlPortletTests_SPEC2_6_RenderConfig.java
new file mode 100644
index 0000000..edc593b
--- /dev/null
+++ b/portlet-tck_3.0/V2AddlPortletTests/src/main/java/javax/portlet/tck/portlets/AddlPortletTests_SPEC2_6_RenderConfig.java
@@ -0,0 +1,219 @@
+/*  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.JSR286SpecTestCaseDetails.*;
+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 AddlPortletTests_SPEC2_6_RenderConfig_event
+ *
+ */
+public class AddlPortletTests_SPEC2_6_RenderConfig implements Portlet, ResourceServingPortlet {
+   private static final String LOG_CLASS = 
+         AddlPortletTests_SPEC2_6_RenderConfig.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();
+
+      JSR286SpecTestCaseDetails tcd = new JSR286SpecTestCaseDetails();
+
+      // Create result objects for the tests
+
+      /* TestCase: V2AddlPortletTests_SPEC2_6_RenderConfig_getResourceBundle1 */
+      /* Details: "The resource bundle defined in the deployment descriptor   */
+      /* <resource-bundle> element can be obtained through the                */
+      /* PortletConfig object"                                                */
+      TestResult tr0 = tcd.getTestResultFailed(V2ADDLPORTLETTESTS_SPEC2_6_RENDERCONFIG_GETRESOURCEBUNDLE1);
+      /* TODO: implement test */
+      tr0.appendTcDetail("Not implemented.");
+      tr0.writeTo(writer);
+
+      /* TestCase: V2AddlPortletTests_SPEC2_6_RenderConfig_getResourceBundle2 */
+      /* Details: "If the resource bundle contains a                          */
+      /* \"javax.portlet.title\" property, the value defined in the bundle    */
+      /* is returned by the corresponding getString method call"              */
+      TestResult tr1 = tcd.getTestResultFailed(V2ADDLPORTLETTESTS_SPEC2_6_RENDERCONFIG_GETRESOURCEBUNDLE2);
+      /* TODO: implement test */
+      tr1.appendTcDetail("Not implemented.");
+      tr1.writeTo(writer);
+
+      /* TestCase: V2AddlPortletTests_SPEC2_6_RenderConfig_getResourceBundle3 */
+      /* Details: "If the resource bundle contains a                          */
+      /* \"javax.portlet.short-title\" property, the value defined in the     */
+      /* bundle is returned by the corresponding getString method call"       */
+      TestResult tr2 = tcd.getTestResultFailed(V2ADDLPORTLETTESTS_SPEC2_6_RENDERCONFIG_GETRESOURCEBUNDLE3);
+      /* TODO: implement test */
+      tr2.appendTcDetail("Not implemented.");
+      tr2.writeTo(writer);
+
+      /* TestCase: V2AddlPortletTests_SPEC2_6_RenderConfig_getResourceBundle4 */
+      /* Details: "If the resource bundle contains a                          */
+      /* \"javax.portlet.keywords\" property, the value defined in the        */
+      /* bundle is returned by the corresponding getString method call"       */
+      TestResult tr3 = tcd.getTestResultFailed(V2ADDLPORTLETTESTS_SPEC2_6_RENDERCONFIG_GETRESOURCEBUNDLE4);
+      /* TODO: implement test */
+      tr3.appendTcDetail("Not implemented.");
+      tr3.writeTo(writer);
+
+      /* TestCase: V2AddlPortletTests_SPEC2_6_RenderConfig_getPublishingEventQnames3 */
+      /* Details: "getPublishingEventQnames - If the event was defined        */
+      /* using the <name> element rather than the <qname> element, default    */
+      /* namespace defined with the <default-namespace> element must be       */
+      /* added as the event namespace"                                        */
+      TestResult tr4 = tcd.getTestResultFailed(V2ADDLPORTLETTESTS_SPEC2_6_RENDERCONFIG_GETPUBLISHINGEVENTQNAMES3);
+      /* TODO: implement test */
+      tr4.appendTcDetail("Not implemented.");
+      tr4.writeTo(writer);
+
+      /* TestCase: V2AddlPortletTests_SPEC2_6_RenderConfig_getPublishingEventQnames4 */
+      /* Details: "getPublishingEventQnames - If the event was defined        */
+      /* using the <name> element rather than the <qname> element and there   */
+      /* is no default namespace defined, the value                           */
+      /* XMLConstants.NULL_NS_URI must be added as the event namespace"       */
+      TestResult tr5 = tcd.getTestResultFailed(V2ADDLPORTLETTESTS_SPEC2_6_RENDERCONFIG_GETPUBLISHINGEVENTQNAMES4);
+      /* TODO: implement test */
+      tr5.appendTcDetail("Not implemented.");
+      tr5.writeTo(writer);
+
+      /* TestCase: V2AddlPortletTests_SPEC2_6_RenderConfig_getProcessingEventQnames3 */
+      /* Details: "getProcessingEventQnames - If the event was defined        */
+      /* using the <name> element rather than the <qname> element, default    */
+      /* namespace defined with the <default-namespace> element must be       */
+      /* added as the event namespace"                                        */
+      TestResult tr6 = tcd.getTestResultFailed(V2ADDLPORTLETTESTS_SPEC2_6_RENDERCONFIG_GETPROCESSINGEVENTQNAMES3);
+      /* TODO: implement test */
+      tr6.appendTcDetail("Not implemented.");
+      tr6.writeTo(writer);
+
+      /* TestCase: V2AddlPortletTests_SPEC2_6_RenderConfig_getProcessingEventQnames4 */
+      /* Details: "getProcessingEventQnames - If the event was defined        */
+      /* using the <name> element rather than the <qname> element and there   */
+      /* is no default namespace defined, the value                           */
+      /* XMLConstants.NULL_NS_URI must be added as the event namespace"       */
+      TestResult tr7 = tcd.getTestResultFailed(V2ADDLPORTLETTESTS_SPEC2_6_RENDERCONFIG_GETPROCESSINGEVENTQNAMES4);
+      /* TODO: implement test */
+      tr7.appendTcDetail("Not implemented.");
+      tr7.writeTo(writer);
+
+      /* TestCase: V2AddlPortletTests_SPEC2_6_RenderConfig_getContainerRuntimeOptions6 */
+      /* Details: "The returned Map contains values defined in the            */
+      /* deployment descriptor <container-runtime-option> elements at the     */
+      /* portlet application level"                                           */
+      TestResult tr8 = tcd.getTestResultFailed(V2ADDLPORTLETTESTS_SPEC2_6_RENDERCONFIG_GETCONTAINERRUNTIMEOPTIONS6);
+      /* TODO: implement test */
+      tr8.appendTcDetail("Not implemented.");
+      tr8.writeTo(writer);
+
+      /* TestCase: V2AddlPortletTests_SPEC2_6_RenderConfig_getContainerRuntimeOptions7 */
+      /* Details: "The returned Map contains values defined in the            */
+      /* deployment descriptor <container-runtime-option> elements at the     */
+      /* portlet level"                                                       */
+      TestResult tr9 = tcd.getTestResultFailed(V2ADDLPORTLETTESTS_SPEC2_6_RENDERCONFIG_GETCONTAINERRUNTIMEOPTIONS7);
+      /* TODO: implement test */
+      tr9.appendTcDetail("Not implemented.");
+      tr9.writeTo(writer);
+
+      /* TestCase: V2AddlPortletTests_SPEC2_6_RenderConfig_getContainerRuntimeOptions8 */
+      /* Details: "If the deployment descriptor contains                      */
+      /* <container-runtime-option> elements defined at both the portlet      */
+      /* and the portlet application levels, the returned Map contains a      */
+      /* merger of all values"                                                */
+      TestResult tr10 = tcd.getTestResultFailed(V2ADDLPORTLETTESTS_SPEC2_6_RENDERCONFIG_GETCONTAINERRUNTIMEOPTIONS8);
+      /* TODO: implement test */
+      tr10.appendTcDetail("Not implemented.");
+      tr10.writeTo(writer);
+
+      /* TestCase: V2AddlPortletTests_SPEC2_6_RenderConfig_getContainerRuntimeOptions9 */
+      /* Details: "If the deployment descriptor contains                      */
+      /* <container-runtime-option> elements of the same name defined at      */
+      /* both the portlet and the portlet application levels, the returned    */
+      /* Map contains a the value defined at the portlet level"               */
+      TestResult tr11 = tcd.getTestResultFailed(V2ADDLPORTLETTESTS_SPEC2_6_RENDERCONFIG_GETCONTAINERRUNTIMEOPTIONS9);
+      /* TODO: implement test */
+      tr11.appendTcDetail("Not implemented.");
+      tr11.writeTo(writer);
+
+   }
+
+}