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/07/27 09:05:53 UTC

[17/24] Added the JSR 362 TCK to the Pluto project.

http://git-wip-us.apache.org/repos/asf/portals-pluto/blob/bd830576/portlet-tck_3.0/V2PortletTests/pom.xml
----------------------------------------------------------------------
diff --git a/portlet-tck_3.0/V2PortletTests/pom.xml b/portlet-tck_3.0/V2PortletTests/pom.xml
new file mode 100644
index 0000000..4bac751
--- /dev/null
+++ b/portlet-tck_3.0/V2PortletTests/pom.xml
@@ -0,0 +1,120 @@
+<!--
+    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.     
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+   xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+   <modelVersion>4.0.0</modelVersion>
+
+   <parent>
+      <groupId>javax.portlet</groupId>
+      <artifactId>tck</artifactId>
+      <version>3.0-SNAPSHOT</version>
+   </parent>
+
+   <artifactId>tck-V2PortletTests</artifactId>
+   <packaging>war</packaging>
+
+   <dependencies>
+      <dependency>
+         <groupId>javax.portlet</groupId>
+         <artifactId>portlet-api</artifactId>
+      </dependency>
+      <dependency>
+         <groupId>javax.portlet</groupId>
+         <artifactId>tck-common</artifactId>
+         <version>${project.version}</version>
+         <scope>compile</scope>
+      </dependency>
+   </dependencies>
+
+   <properties>
+
+      <!-- This project contains additional test cases to run with the portlets -->
+      <additional.testcase.uri>file:///${basedir}/src/main/resources/xml-resources/additionalTCs.xml</additional.testcase.uri>
+
+      <!-- Set to true for modules that define all test cases in a file (TCs are not generated from the portlet.xml) -->
+      <additional.testcases.only>true</additional.testcases.only>
+
+   </properties>
+
+   <build>
+      <finalName>${project.artifactId}</finalName>
+      <plugins>
+         <plugin>
+            <groupId>org.apache.maven.plugins</groupId>
+            <artifactId>maven-compiler-plugin</artifactId>
+         </plugin>
+         <plugin>
+            <groupId>org.apache.maven.plugins</groupId>
+            <artifactId>maven-war-plugin</artifactId>
+         </plugin>
+         <!-- Transform the portlet XML into test properties XML file -->
+         <plugin>
+            <groupId>org.apache.maven.plugins</groupId>
+            <artifactId>maven-dependency-plugin</artifactId>
+         </plugin>
+         <plugin>
+            <groupId>org.codehaus.mojo</groupId>
+            <artifactId>xml-maven-plugin</artifactId>
+         </plugin>
+      </plugins>
+   </build>
+
+
+   <profiles>
+      <profile>
+         <id>pluto</id>
+
+         <dependencies>
+            <dependency>
+               <groupId>javax.servlet</groupId>
+               <artifactId>jstl</artifactId>
+            </dependency>
+            <dependency>
+               <groupId>taglibs</groupId>
+               <artifactId>standard</artifactId>
+            </dependency>
+         </dependencies>
+
+         <build>
+            <plugins>
+               <plugin>
+                  <artifactId>maven-war-plugin</artifactId>
+                  <configuration>
+                     <webXml>${project.build.directory}/pluto-resources/web.xml</webXml>
+                  </configuration>
+               </plugin>
+               <!-- bind 'pluto:assemble' goal to 'generate-resources' lifecycle -->
+               <plugin>
+                  <groupId>org.apache.portals.pluto</groupId>
+                  <artifactId>maven-pluto-plugin</artifactId>
+                  <executions>
+                     <execution>
+                        <phase>generate-resources</phase>
+                        <goals>
+                           <goal>assemble</goal>
+                        </goals>
+                     </execution>
+                  </executions>
+               </plugin>
+            </plugins>
+         </build>
+      </profile>
+   </profiles>
+
+</project>

http://git-wip-us.apache.org/repos/asf/portals-pluto/blob/bd830576/portlet-tck_3.0/V2PortletTests/src/main/java/javax/portlet/tck/PortletTests/portlets/V2PortletTests_Event.java
----------------------------------------------------------------------
diff --git a/portlet-tck_3.0/V2PortletTests/src/main/java/javax/portlet/tck/PortletTests/portlets/V2PortletTests_Event.java b/portlet-tck_3.0/V2PortletTests/src/main/java/javax/portlet/tck/PortletTests/portlets/V2PortletTests_Event.java
new file mode 100644
index 0000000..0817649
--- /dev/null
+++ b/portlet-tck_3.0/V2PortletTests/src/main/java/javax/portlet/tck/PortletTests/portlets/V2PortletTests_Event.java
@@ -0,0 +1,123 @@
+/*  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.PortletTests.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.JSR286ApiTestCaseDetails;
+import static javax.portlet.tck.beans.JSR286ApiTestCaseDetails.*;
+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 V2PortletTests_Event implements Portlet {
+   private static final String LOG_CLASS = 
+         V2PortletTests_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 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();
+      JSR286ApiTestCaseDetails tcd = new JSR286ApiTestCaseDetails();
+      ClassChecker cc = new ClassChecker(Event.class);
+
+      // Create result objects for the tests
+
+      /* TestCase: Event_getQName1 */
+      /* Details: "Returns the javax.xml.namespace.QName object for the Event" */
+      TestResult tr0 = tcd.getTestResultFailed(EVENT_GETQNAME1);
+      /* TODO: implement test */
+
+      /* TestCase: Event_getQName2 */
+      /* Details: "Returned value may not be null" */
+      TestResult tr1 = tcd.getTestResultFailed(EVENT_GETQNAME2);
+      /* TODO: implement test */
+
+      /* TestCase: Event_getName1 */
+      /* Details: "Returns a String containing the event local name" */
+      TestResult tr2 = tcd.getTestResultFailed(EVENT_GETNAME1);
+      /* TODO: implement test */
+
+      /* TestCase: Event_getName2 */
+      /* Details: "Returned value may not be null" */
+      TestResult tr3 = tcd.getTestResultFailed(EVENT_GETNAME2);
+      /* TODO: implement test */
+
+      /* TestCase: Event_getValue1 */
+      /* Details: "Returns a java.io.Serializable object representing the event payload" */
+      TestResult tr4 = tcd.getTestResultFailed(EVENT_GETVALUE1);
+      /* TODO: implement test */
+
+      /* TestCase: Event_getValue2 */
+      /* Details: "Returned value is null if the event has no payload" */
+      TestResult tr5 = tcd.getTestResultFailed(EVENT_GETVALUE2);
+      /* 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);
+
+
+   }
+
+}
+

http://git-wip-us.apache.org/repos/asf/portals-pluto/blob/bd830576/portlet-tck_3.0/V2PortletTests/src/main/java/javax/portlet/tck/PortletTests/portlets/V2PortletTests_EventPortlet.java
----------------------------------------------------------------------
diff --git a/portlet-tck_3.0/V2PortletTests/src/main/java/javax/portlet/tck/PortletTests/portlets/V2PortletTests_EventPortlet.java b/portlet-tck_3.0/V2PortletTests/src/main/java/javax/portlet/tck/PortletTests/portlets/V2PortletTests_EventPortlet.java
new file mode 100644
index 0000000..179a090
--- /dev/null
+++ b/portlet-tck_3.0/V2PortletTests/src/main/java/javax/portlet/tck/PortletTests/portlets/V2PortletTests_EventPortlet.java
@@ -0,0 +1,93 @@
+/*  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.PortletTests.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.JSR286ApiTestCaseDetails;
+import static javax.portlet.tck.beans.JSR286ApiTestCaseDetails.*;
+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 V2PortletTests_EventPortlet implements Portlet {
+   private static final String LOG_CLASS = 
+         V2PortletTests_EventPortlet.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();
+      JSR286ApiTestCaseDetails tcd = new JSR286ApiTestCaseDetails();
+      ClassChecker cc = new ClassChecker(EventPortlet.class);
+
+      // Create result objects for the tests
+
+      /* TestCase: EventPortlet_processEvent */
+      /* Details: "The processEvent(EventRequest, EventResponse) is called when an event is targeted to the portlet" */
+      TestResult tr0 = tcd.getTestResultFailed(EVENTPORTLET_PROCESSEVENT);
+      /* TODO: implement test */
+
+
+
+      // Write the results to the output stream
+
+      tr0.writeTo(writer);
+
+
+   }
+
+}
+

http://git-wip-us.apache.org/repos/asf/portals-pluto/blob/bd830576/portlet-tck_3.0/V2PortletTests/src/main/java/javax/portlet/tck/PortletTests/portlets/V2PortletTests_GenericPortlet.java
----------------------------------------------------------------------
diff --git a/portlet-tck_3.0/V2PortletTests/src/main/java/javax/portlet/tck/PortletTests/portlets/V2PortletTests_GenericPortlet.java b/portlet-tck_3.0/V2PortletTests/src/main/java/javax/portlet/tck/PortletTests/portlets/V2PortletTests_GenericPortlet.java
new file mode 100644
index 0000000..7b36353
--- /dev/null
+++ b/portlet-tck_3.0/V2PortletTests/src/main/java/javax/portlet/tck/PortletTests/portlets/V2PortletTests_GenericPortlet.java
@@ -0,0 +1,435 @@
+/*  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.PortletTests.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.JSR286ApiTestCaseDetails;
+import static javax.portlet.tck.beans.JSR286ApiTestCaseDetails.*;
+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 V2PortletTests_GenericPortlet implements Portlet {
+   private static final String LOG_CLASS = 
+         V2PortletTests_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();
+      JSR286ApiTestCaseDetails tcd = new JSR286ApiTestCaseDetails();
+      ClassChecker cc = new ClassChecker(GenericPortlet.class);
+
+      // Create result objects for the tests
+
+      /* TestCase: GenericPortlet_implementsPortlet2 */
+      /* Details: "All tests described for the Portlet execute correctly with the GenericPortlet" */
+      TestResult tr0 = tcd.getTestResultFailed(GENERICPORTLET_IMPLEMENTSPORTLET2);
+      /* TODO: implement test */
+
+      /* TestCase: GenericPortlet_implementsEventPortlet2 */
+      /* Details: "All tests described for the EventPortlet execute correctly with the GenericPortlet" */
+      TestResult tr1 = tcd.getTestResultFailed(GENERICPORTLET_IMPLEMENTSEVENTPORTLET2);
+      /* TODO: implement test */
+
+      /* TestCase: GenericPortlet_implementsResourceServingPortlet2 */
+      /* Details: "All tests described for the ResourceServingPortlet execute correctly with the GenericPortlet" */
+      TestResult tr2 = tcd.getTestResultFailed(GENERICPORTLET_IMPLEMENTSRESOURCESERVINGPORTLET2);
+      /* TODO: implement test */
+
+      /* TestCase: GenericPortlet_implementsPortletConfig2 */
+      /* Details: "All tests described for the PortletConfig execute correctly with the GenericPortlet" */
+      TestResult tr3 = tcd.getTestResultFailed(GENERICPORTLET_IMPLEMENTSPORTLETCONFIG2);
+      /* TODO: implement test */
+
+      /* TestCase: GenericPortlet_initA */
+      /* Details: "Called when the portlet is initialized" */
+      TestResult tr4 = tcd.getTestResultFailed(GENERICPORTLET_INITA);
+      /* TODO: implement test */
+
+      /* TestCase: GenericPortlet_initB */
+      /* Details: "Called when the portlet is initialized" */
+      TestResult tr5 = tcd.getTestResultFailed(GENERICPORTLET_INITB);
+      /* TODO: implement test */
+
+      /* TestCase: GenericPortlet_processAction1 */
+      /* Details: "If overridden, the Portlet.processAction tests execute correctly" */
+      TestResult tr6 = tcd.getTestResultFailed(GENERICPORTLET_PROCESSACTION1);
+      /* TODO: implement test */
+
+      /* TestCase: GenericPortlet_processAction2 */
+      /* Details: "Dispatches to @ProcessAction annotated method matching the ActionRequest.ACTION_NAME parameter" */
+      TestResult tr7 = tcd.getTestResultFailed(GENERICPORTLET_PROCESSACTION2);
+      /* TODO: implement test */
+
+      /* TestCase: GenericPortlet_processAction3 */
+      /* Details: "Throws PortletException if no matching @ProcessAction annotated method found" */
+      TestResult tr8 = tcd.getTestResultFailed(GENERICPORTLET_PROCESSACTION3);
+      /* TODO: implement test */
+
+      /* TestCase: GenericPortlet_render1 */
+      /* Details: "If overridden, Portlet.render tests execute correctly" */
+      TestResult tr9 = tcd.getTestResultFailed(GENERICPORTLET_RENDER1);
+      /* TODO: implement test */
+
+      /* TestCase: GenericPortlet_render2 */
+      /* Details: "If RENDER_PART=null, Calls the doHeaders(RenderRequest, RenderResponse) method" */
+      TestResult tr10 = tcd.getTestResultFailed(GENERICPORTLET_RENDER2);
+      /* TODO: implement test */
+
+      /* TestCase: GenericPortlet_render3 */
+      /* Details: "If RENDER_PART=null, Sets the title on RenderResponse with the value returned by the getTitle(RenderRequest) method" */
+      TestResult tr11 = tcd.getTestResultFailed(GENERICPORTLET_RENDER3);
+      /* TODO: implement test */
+
+      /* TestCase: GenericPortlet_render4 */
+      /* Details: "If RENDER_PART=null, Retrieves the next possible portlet modes from the PortletConfig and sets them on the RenderResponse" */
+      TestResult tr12 = tcd.getTestResultFailed(GENERICPORTLET_RENDER4);
+      /* TODO: implement test */
+
+      /* TestCase: GenericPortlet_render5 */
+      /* Details: "If RENDER_PART=null, Calls the DoDispatch(RenderRequest, RenderResponse) method " */
+      TestResult tr13 = tcd.getTestResultFailed(GENERICPORTLET_RENDER5);
+      /* TODO: implement test */
+
+      /* TestCase: GenericPortlet_render6 */
+      /* Details: "If RENDER_PART=RENDER_HEADERS, Calls the doHeaders(RenderRequest, RenderResponse) method" */
+      TestResult tr14 = tcd.getTestResultFailed(GENERICPORTLET_RENDER6);
+      /* TODO: implement test */
+
+      /* TestCase: GenericPortlet_render7 */
+      /* Details: "If RENDER_PART=RENDER_HEADERS, Sets the title on RenderResponse with the value returned by the getTitle(RenderRequest) method" */
+      TestResult tr15 = tcd.getTestResultFailed(GENERICPORTLET_RENDER7);
+      /* TODO: implement test */
+
+      /* TestCase: GenericPortlet_render8 */
+      /* Details: "If RENDER_PART=RENDER_HEADERS, Retrieves the next possible portlet modes from the PortletConfig and sets them on the RenderResponse" */
+      TestResult tr16 = tcd.getTestResultFailed(GENERICPORTLET_RENDER8);
+      /* TODO: implement test */
+
+      /* TestCase: GenericPortlet_render9 */
+      /* Details: "If RENDER_PART=RENDER_MARKUP, Calls the DoDispatch(RenderRequest, RenderResponse) method " */
+      TestResult tr17 = tcd.getTestResultFailed(GENERICPORTLET_RENDER9);
+      /* TODO: implement test */
+
+      /* TestCase: GenericPortlet_render10 */
+      /* Details: "If RENDER_PART=<any other value>, throws PortletException " */
+      TestResult tr18 = tcd.getTestResultFailed(GENERICPORTLET_RENDER10);
+      /* TODO: implement test */
+
+      /* TestCase: GenericPortlet_getTitle1 */
+      /* Details: "If overridden, the String returned by this method is used as the portlet title" */
+      TestResult tr19 = tcd.getTestResultFailed(GENERICPORTLET_GETTITLE1);
+      /* TODO: implement test */
+
+      /* TestCase: GenericPortlet_getTitle2 */
+      /* Details: "Returns a String containing the title from the portlet resource bundle under the key \"javax.portlet.title\"" */
+      TestResult tr20 = tcd.getTestResultFailed(GENERICPORTLET_GETTITLE2);
+      /* TODO: implement test */
+
+      /* TestCase: GenericPortlet_getTitle3 */
+      /* Details: "Returns null if no title is available from the portlet resource bundle" */
+      TestResult tr21 = tcd.getTestResultFailed(GENERICPORTLET_GETTITLE3);
+      /* TODO: implement test */
+
+      /* TestCase: GenericPortlet_doDispatch1 */
+      /* Details: "If overridden, is called when markup is to be generated" */
+      TestResult tr22 = tcd.getTestResultFailed(GENERICPORTLET_DODISPATCH1);
+      /* TODO: implement test */
+
+      /* TestCase: GenericPortlet_doDispatch2 */
+      /* Details: "Else, If the WindowState is minimized, no markup method is called and no markup is generated" */
+      TestResult tr23 = tcd.getTestResultFailed(GENERICPORTLET_DODISPATCH2);
+      /* TODO: implement test */
+
+      /* TestCase: GenericPortlet_doDispatch3 */
+      /* Details: "Else, the @RenderMode annotated method matching the current PortletMode is called " */
+      TestResult tr24 = tcd.getTestResultFailed(GENERICPORTLET_DODISPATCH3);
+      /* TODO: implement test */
+
+      /* TestCase: GenericPortlet_doDispatch4 */
+      /* Details: "Else, If the current render mode is \"view\", the doView(RenderRequest, RenderResponse) method is called  " */
+      TestResult tr25 = tcd.getTestResultFailed(GENERICPORTLET_DODISPATCH4);
+      /* TODO: implement test */
+
+      /* TestCase: GenericPortlet_doDispatch5 */
+      /* Details: "Else, If the current render mode is \"edit\", the doEdit(RenderRequest, RenderResponse) method is called  " */
+      TestResult tr26 = tcd.getTestResultFailed(GENERICPORTLET_DODISPATCH5);
+      /* TODO: implement test */
+
+      /* TestCase: GenericPortlet_doDispatch6 */
+      /* Details: "Else, If the current render mode is \"help\", the doHelp(RenderRequest, RenderResponse) method is called  " */
+      TestResult tr27 = tcd.getTestResultFailed(GENERICPORTLET_DODISPATCH6);
+      /* TODO: implement test */
+
+      /* TestCase: GenericPortlet_doDispatch7 */
+      /* Details: "Else, Throws a PortletException" */
+      TestResult tr28 = tcd.getTestResultFailed(GENERICPORTLET_DODISPATCH7);
+      /* TODO: implement test */
+
+      /* TestCase: GenericPortlet_doView1 */
+      /* Details: "If overridden, is called when a render request in view mode occurs" */
+      TestResult tr29 = tcd.getTestResultFailed(GENERICPORTLET_DOVIEW1);
+      /* TODO: implement test */
+
+      /* TestCase: GenericPortlet_doView2 */
+      /* Details: "If not overridden, throws a PortletException" */
+      TestResult tr30 = tcd.getTestResultFailed(GENERICPORTLET_DOVIEW2);
+      /* TODO: implement test */
+
+      /* TestCase: GenericPortlet_doEdit1 */
+      /* Details: "If overridden, is called when a render request in edit mode occurs" */
+      TestResult tr31 = tcd.getTestResultFailed(GENERICPORTLET_DOEDIT1);
+      /* TODO: implement test */
+
+      /* TestCase: GenericPortlet_doEdit2 */
+      /* Details: "If not overridden, throws a PortletException" */
+      TestResult tr32 = tcd.getTestResultFailed(GENERICPORTLET_DOEDIT2);
+      /* TODO: implement test */
+
+      /* TestCase: GenericPortlet_doHelp1 */
+      /* Details: "If overridden, is called when a render request in help mode occurs" */
+      TestResult tr33 = tcd.getTestResultFailed(GENERICPORTLET_DOHELP1);
+      /* TODO: implement test */
+
+      /* TestCase: GenericPortlet_doHelp2 */
+      /* Details: "If not overridden, throws a PortletException" */
+      TestResult tr34 = tcd.getTestResultFailed(GENERICPORTLET_DOHELP2);
+      /* TODO: implement test */
+
+      /* TestCase: GenericPortlet_getPortletConfig */
+      /* Details: "Returns the PortletConfig object for the portlet" */
+      TestResult tr35 = tcd.getTestResultFailed(GENERICPORTLET_GETPORTLETCONFIG);
+      /* TODO: implement test */
+
+      /* TestCase: GenericPortlet_destroy */
+      /* Details: "Called by the portlet container to indicate to a portlet that the portlet is being taken out of service. " */
+      TestResult tr36 = tcd.getTestResultFailed(GENERICPORTLET_DESTROY);
+      /* TODO: implement test */
+
+      /* TestCase: GenericPortlet_getPortletName */
+      /* Details: "The tests described for the corresponding PortletConfig method execute correctly" */
+      TestResult tr37 = tcd.getTestResultFailed(GENERICPORTLET_GETPORTLETNAME);
+      /* TODO: implement test */
+
+      /* TestCase: GenericPortlet_getPortletContext */
+      /* Details: "The tests described for the corresponding PortletConfig method execute correctly" */
+      TestResult tr38 = tcd.getTestResultFailed(GENERICPORTLET_GETPORTLETCONTEXT);
+      /* TODO: implement test */
+
+      /* TestCase: GenericPortlet_getResourceBundle */
+      /* Details: "The tests described for the corresponding PortletConfig method execute correctly" */
+      TestResult tr39 = tcd.getTestResultFailed(GENERICPORTLET_GETRESOURCEBUNDLE);
+      /* TODO: implement test */
+
+      /* TestCase: GenericPortlet_getInitParameter */
+      /* Details: "The tests described for the corresponding PortletConfig method execute correctly" */
+      TestResult tr40 = tcd.getTestResultFailed(GENERICPORTLET_GETINITPARAMETER);
+      /* TODO: implement test */
+
+      /* TestCase: GenericPortlet_getInitParameterNames */
+      /* Details: "The tests described for the corresponding PortletConfig method execute correctly" */
+      TestResult tr41 = tcd.getTestResultFailed(GENERICPORTLET_GETINITPARAMETERNAMES);
+      /* TODO: implement test */
+
+      /* TestCase: GenericPortlet_getProcessingEventQNames */
+      /* Details: "The tests described for the corresponding PortletConfig method execute correctly" */
+      TestResult tr42 = tcd.getTestResultFailed(GENERICPORTLET_GETPROCESSINGEVENTQNAMES);
+      /* TODO: implement test */
+
+      /* TestCase: GenericPortlet_getPublishingEventQNames */
+      /* Details: "The tests described for the corresponding PortletConfig method execute correctly" */
+      TestResult tr43 = tcd.getTestResultFailed(GENERICPORTLET_GETPUBLISHINGEVENTQNAMES);
+      /* TODO: implement test */
+
+      /* TestCase: GenericPortlet_getSupportedLocales */
+      /* Details: "The tests described for the corresponding PortletConfig method execute correctly" */
+      TestResult tr44 = tcd.getTestResultFailed(GENERICPORTLET_GETSUPPORTEDLOCALES);
+      /* TODO: implement test */
+
+      /* TestCase: GenericPortlet_getContainerRuntimeOptions */
+      /* Details: "The tests described for the corresponding PortletConfig method execute correctly" */
+      TestResult tr45 = tcd.getTestResultFailed(GENERICPORTLET_GETCONTAINERRUNTIMEOPTIONS);
+      /* TODO: implement test */
+
+      /* TestCase: GenericPortlet_serveResource1 */
+      /* Details: "Is called when a ResourceURL targeting the portlet is triggered" */
+      TestResult tr46 = tcd.getTestResultFailed(GENERICPORTLET_SERVERESOURCE1);
+      /* TODO: implement test */
+
+      /* TestCase: GenericPortlet_serveResource2 */
+      /* Details: "Forwards the request to the ResourceID value if the method is not overridden and if the resource ID is not null" */
+      TestResult tr47 = tcd.getTestResultFailed(GENERICPORTLET_SERVERESOURCE2);
+      /* TODO: implement test */
+
+      /* TestCase: GenericPortlet_serveResource3 */
+      /* Details: "Does nothing if the method is not overridden and if the resource ID is null" */
+      TestResult tr48 = tcd.getTestResultFailed(GENERICPORTLET_SERVERESOURCE3);
+      /* TODO: implement test */
+
+      /* TestCase: GenericPortlet_processEvent1 */
+      /* Details: "Is called when an Event targeting the portlet occurs" */
+      TestResult tr49 = tcd.getTestResultFailed(GENERICPORTLET_PROCESSEVENT1);
+      /* TODO: implement test */
+
+      /* TestCase: GenericPortlet_processEvent2 */
+      /* Details: "The @ProcessEvent annotated method matching the current Event is called " */
+      TestResult tr50 = tcd.getTestResultFailed(GENERICPORTLET_PROCESSEVENT2);
+      /* TODO: implement test */
+
+      /* TestCase: GenericPortlet_processEvent3 */
+      /* Details: "If there is no matching annotated method, sets the render parameters on the EventResponse to equal the EventRequest parameters" */
+      TestResult tr51 = tcd.getTestResultFailed(GENERICPORTLET_PROCESSEVENT3);
+      /* TODO: implement test */
+
+      /* TestCase: GenericPortlet_doHeaders1 */
+      /* Details: "Is called during generic portlet render request processing  " */
+      TestResult tr52 = tcd.getTestResultFailed(GENERICPORTLET_DOHEADERS1);
+      /* TODO: implement test */
+
+      /* TestCase: GenericPortlet_doHeaders2 */
+      /* Details: "The default implementation does nothing" */
+      TestResult tr53 = tcd.getTestResultFailed(GENERICPORTLET_DOHEADERS2);
+      /* TODO: implement test */
+
+      /* TestCase: GenericPortlet_getNextPossiblePortletModes1 */
+      /* Details: "Is called during generic portlet render request processing" */
+      TestResult tr54 = tcd.getTestResultFailed(GENERICPORTLET_GETNEXTPOSSIBLEPORTLETMODES1);
+      /* TODO: implement test */
+
+      /* TestCase: GenericPortlet_getNextPossiblePortletModes2 */
+      /* Details: "The default implementation returns null" */
+      TestResult tr55 = tcd.getTestResultFailed(GENERICPORTLET_GETNEXTPOSSIBLEPORTLETMODES2);
+      /* TODO: implement test */
+
+      /* TestCase: GenericPortlet_getPublicRenderParameterNames */
+      /* Details: "The tests described for the corresponding PortletConfig method execute correctly" */
+      TestResult tr56 = tcd.getTestResultFailed(GENERICPORTLET_GETPUBLICRENDERPARAMETERNAMES);
+      /* TODO: implement test */
+
+      /* TestCase: GenericPortlet_getDefaultNamespace */
+      /* Details: "The tests described for the corresponding PortletConfig method execute correctly" */
+      TestResult tr57 = tcd.getTestResultFailed(GENERICPORTLET_GETDEFAULTNAMESPACE);
+      /* 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);
+      tr18.writeTo(writer);
+      tr19.writeTo(writer);
+      tr20.writeTo(writer);
+      tr21.writeTo(writer);
+      tr22.writeTo(writer);
+      tr23.writeTo(writer);
+      tr24.writeTo(writer);
+      tr25.writeTo(writer);
+      tr26.writeTo(writer);
+      tr27.writeTo(writer);
+      tr28.writeTo(writer);
+      tr29.writeTo(writer);
+      tr30.writeTo(writer);
+      tr31.writeTo(writer);
+      tr32.writeTo(writer);
+      tr33.writeTo(writer);
+      tr34.writeTo(writer);
+      tr35.writeTo(writer);
+      tr36.writeTo(writer);
+      tr37.writeTo(writer);
+      tr38.writeTo(writer);
+      tr39.writeTo(writer);
+      tr40.writeTo(writer);
+      tr41.writeTo(writer);
+      tr42.writeTo(writer);
+      tr43.writeTo(writer);
+      tr44.writeTo(writer);
+      tr45.writeTo(writer);
+      tr46.writeTo(writer);
+      tr47.writeTo(writer);
+      tr48.writeTo(writer);
+      tr49.writeTo(writer);
+      tr50.writeTo(writer);
+      tr51.writeTo(writer);
+      tr52.writeTo(writer);
+      tr53.writeTo(writer);
+      tr54.writeTo(writer);
+      tr55.writeTo(writer);
+      tr56.writeTo(writer);
+      tr57.writeTo(writer);
+
+
+   }
+
+}
+

http://git-wip-us.apache.org/repos/asf/portals-pluto/blob/bd830576/portlet-tck_3.0/V2PortletTests/src/main/java/javax/portlet/tck/PortletTests/portlets/V2PortletTests_Portlet.java
----------------------------------------------------------------------
diff --git a/portlet-tck_3.0/V2PortletTests/src/main/java/javax/portlet/tck/PortletTests/portlets/V2PortletTests_Portlet.java b/portlet-tck_3.0/V2PortletTests/src/main/java/javax/portlet/tck/PortletTests/portlets/V2PortletTests_Portlet.java
new file mode 100644
index 0000000..e184832
--- /dev/null
+++ b/portlet-tck_3.0/V2PortletTests/src/main/java/javax/portlet/tck/PortletTests/portlets/V2PortletTests_Portlet.java
@@ -0,0 +1,123 @@
+/*  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.PortletTests.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.JSR286ApiTestCaseDetails;
+import static javax.portlet.tck.beans.JSR286ApiTestCaseDetails.*;
+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 V2PortletTests_Portlet implements Portlet {
+   private static final String LOG_CLASS = 
+         V2PortletTests_Portlet.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();
+      JSR286ApiTestCaseDetails tcd = new JSR286ApiTestCaseDetails();
+      ClassChecker cc = new ClassChecker(Portlet.class);
+
+      // Create result objects for the tests
+
+      /* TestCase: Portlet_init1 */
+      /* Details: "The init(PortletConfig) method is called for a portlet defined in the deployment descriptor" */
+      TestResult tr0 = tcd.getTestResultFailed(PORTLET_INIT1);
+      /* TODO: implement test */
+
+      /* TestCase: Portlet_init2 */
+      /* Details: "If the init method throws a PortletException, the portlet wil not be placed in service" */
+      TestResult tr1 = tcd.getTestResultFailed(PORTLET_INIT2);
+      /* TODO: implement test */
+
+      /* TestCase: Portlet_processAction */
+      /* Details: "The processAction(ActionRequest, ActionResponse) method is called when an action URL for the portlet is triggered" */
+      TestResult tr2 = tcd.getTestResultFailed(PORTLET_PROCESSACTION);
+      /* TODO: implement test */
+
+      /* TestCase: Portlet_render1 */
+      /* Details: "The render(RenderRequest, RenderResponse) method is called when the portlet is to be rendered" */
+      TestResult tr3 = tcd.getTestResultFailed(PORTLET_RENDER1);
+      /* TODO: implement test */
+
+      /* TestCase: Portlet_render2 */
+      /* Details: "The render(RenderRequest, RenderResponse) method is called when a Render URL for the portlet is triggered" */
+      TestResult tr4 = tcd.getTestResultFailed(PORTLET_RENDER2);
+      /* TODO: implement test */
+
+      /* TestCase: Portlet_destroy */
+      /* Details: "The destroy() method is called when the portlet is to be taken out of service" */
+      TestResult tr5 = tcd.getTestResultFailed(PORTLET_DESTROY);
+      /* 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);
+
+
+   }
+
+}
+

http://git-wip-us.apache.org/repos/asf/portals-pluto/blob/bd830576/portlet-tck_3.0/V2PortletTests/src/main/java/javax/portlet/tck/PortletTests/portlets/V2PortletTests_PortletConfig.java
----------------------------------------------------------------------
diff --git a/portlet-tck_3.0/V2PortletTests/src/main/java/javax/portlet/tck/PortletTests/portlets/V2PortletTests_PortletConfig.java b/portlet-tck_3.0/V2PortletTests/src/main/java/javax/portlet/tck/PortletTests/portlets/V2PortletTests_PortletConfig.java
new file mode 100644
index 0000000..12ae41a
--- /dev/null
+++ b/portlet-tck_3.0/V2PortletTests/src/main/java/javax/portlet/tck/PortletTests/portlets/V2PortletTests_PortletConfig.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.PortletTests.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.JSR286ApiTestCaseDetails;
+import static javax.portlet.tck.beans.JSR286ApiTestCaseDetails.*;
+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 V2PortletTests_PortletConfig implements Portlet {
+   private static final String LOG_CLASS = 
+         V2PortletTests_PortletConfig.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();
+      JSR286ApiTestCaseDetails tcd = new JSR286ApiTestCaseDetails();
+      ClassChecker cc = new ClassChecker(portletConfig.getClass());
+
+      // Create result objects for the tests
+
+      /* TestCase: PortletConfig_getPortletName */
+      /* Details: "Returns a String containing the portlet name" */
+      TestResult tr0 = tcd.getTestResultFailed(PORTLETCONFIG_GETPORTLETNAME);
+      /* TODO: implement test */
+
+      /* TestCase: PortletConfig_getPortletContext */
+      /* Details: "Returns the PortletContext object associated with the portlet" */
+      TestResult tr1 = tcd.getTestResultFailed(PORTLETCONFIG_GETPORTLETCONTEXT);
+      /* TODO: implement test */
+
+      /* TestCase: PortletConfig_getResourceBundle */
+      /* Details: "Returns the ResourceBundle for the specified locale" */
+      TestResult tr2 = tcd.getTestResultFailed(PORTLETCONFIG_GETRESOURCEBUNDLE);
+      /* TODO: implement test */
+
+      /* TestCase: PortletConfig_getInitParameter1 */
+      /* Details: "Returns a String containing the initialization parameter value for the given name" */
+      TestResult tr3 = tcd.getTestResultFailed(PORTLETCONFIG_GETINITPARAMETER1);
+      /* TODO: implement test */
+
+      /* TestCase: PortletConfig_getInitParameter2 */
+      /* Details: "Returns null if the specified initialization parameter does not exist" */
+      TestResult tr4 = tcd.getTestResultFailed(PORTLETCONFIG_GETINITPARAMETER2);
+      /* TODO: implement test */
+
+      /* TestCase: PortletConfig_getInitParameter3 */
+      /* Details: "Throws IllegalArgumentException if the name parameter is null" */
+      TestResult tr5 = tcd.getTestResultFailed(PORTLETCONFIG_GETINITPARAMETER3);
+      /* TODO: implement test */
+
+      /* TestCase: PortletConfig_getInitParameterNames1 */
+      /* Details: "Returns an java.util.Enumeration<java.lang.String> containing the names of the initialization parameters" */
+      TestResult tr6 = tcd.getTestResultFailed(PORTLETCONFIG_GETINITPARAMETERNAMES1);
+      /* TODO: implement test */
+
+      /* TestCase: PortletConfig_getInitParameterNames2 */
+      /* Details: "Returns an empty Enumeration if there are no initialization parameters available " */
+      TestResult tr7 = tcd.getTestResultFailed(PORTLETCONFIG_GETINITPARAMETERNAMES2);
+      /* TODO: implement test */
+
+      /* TestCase: PortletConfig_getPublicRenderParameterNames1 */
+      /* Details: "Returns an java.util.Enumeration<java.lang.String> containing the names of the public render parameters" */
+      TestResult tr8 = tcd.getTestResultFailed(PORTLETCONFIG_GETPUBLICRENDERPARAMETERNAMES1);
+      /* TODO: implement test */
+
+      /* TestCase: PortletConfig_getPublicRenderParameterNames2 */
+      /* Details: "Returns an empty Enumeration if there are no public render parameters are defined " */
+      TestResult tr9 = tcd.getTestResultFailed(PORTLETCONFIG_GETPUBLICRENDERPARAMETERNAMES2);
+      /* TODO: implement test */
+
+      /* TestCase: PortletConfig_getDefaultNamespace1 */
+      /* Details: "Returns a String containing the default namespace for events and public render parameters as defined in the deployment descriptor" */
+      TestResult tr10 = tcd.getTestResultFailed(PORTLETCONFIG_GETDEFAULTNAMESPACE1);
+      /* TODO: implement test */
+
+      /* TestCase: PortletConfig_getDefaultNamespace2 */
+      /* Details: "Returns XMLConstants.NULL_NS_URI if no default namespace is defined in the deployment descriptor " */
+      TestResult tr11 = tcd.getTestResultFailed(PORTLETCONFIG_GETDEFAULTNAMESPACE2);
+      /* TODO: implement test */
+
+      /* TestCase: PortletConfig_getPublishingEventQNames1 */
+      /* Details: "Returns an java.util.Enumeration<java.lang.String> containing the publishing event qnames as defined in the deployment descriptor" */
+      TestResult tr12 = tcd.getTestResultFailed(PORTLETCONFIG_GETPUBLISHINGEVENTQNAMES1);
+      /* TODO: implement test */
+
+      /* TestCase: PortletConfig_getPublishingEventQNames2 */
+      /* Details: "Returns an empty Enumeration if there are no processing events are defined" */
+      TestResult tr13 = tcd.getTestResultFailed(PORTLETCONFIG_GETPUBLISHINGEVENTQNAMES2);
+      /* TODO: implement test */
+
+      /* TestCase: PortletConfig_getProcessingEventQNames1 */
+      /* Details: "Returns an java.util.Enumeration<java.lang.String> containing the processing event qnames as defined in the deployment descriptor" */
+      TestResult tr14 = tcd.getTestResultFailed(PORTLETCONFIG_GETPROCESSINGEVENTQNAMES1);
+      /* TODO: implement test */
+
+      /* TestCase: PortletConfig_getProcessingEventQNames2 */
+      /* Details: "Returns an empty Enumeration if there are no processing events are defined" */
+      TestResult tr15 = tcd.getTestResultFailed(PORTLETCONFIG_GETPROCESSINGEVENTQNAMES2);
+      /* TODO: implement test */
+
+      /* TestCase: PortletConfig_getSupportedLocales1 */
+      /* Details: "Returns an java.util.Enumeration<java.lang.String> containing the names of the supported locales as defined in the deployment descriptor" */
+      TestResult tr16 = tcd.getTestResultFailed(PORTLETCONFIG_GETSUPPORTEDLOCALES1);
+      /* TODO: implement test */
+
+      /* TestCase: PortletConfig_getSupportedLocales2 */
+      /* Details: "Returns an empty Enumeration if there are no supported locales are defined" */
+      TestResult tr17 = tcd.getTestResultFailed(PORTLETCONFIG_GETSUPPORTEDLOCALES2);
+      /* TODO: implement test */
+
+      /* TestCase: PortletConfig_getContainerRuntimeOptions1 */
+      /* Details: "Returns an java.util.Map<java.lang.String,java.lang.String[]> object containing the container runtime options as defined in the deployment descriptor" */
+      TestResult tr18 = tcd.getTestResultFailed(PORTLETCONFIG_GETCONTAINERRUNTIMEOPTIONS1);
+      /* TODO: implement test */
+
+      /* TestCase: PortletConfig_getContainerRuntimeOptions2 */
+      /* Details: "If the same option is defined at the portlet application and at the portlet level, the definition at the portlet level takes precedence" */
+      TestResult tr19 = tcd.getTestResultFailed(PORTLETCONFIG_GETCONTAINERRUNTIMEOPTIONS2);
+      /* TODO: implement test */
+
+      /* TestCase: PortletConfig_getContainerRuntimeOptions3 */
+      /* Details: "If the portlet container does not support a runtime option defined in the portlet descriptor, that option will not be returned in this map" */
+      TestResult tr20 = tcd.getTestResultFailed(PORTLETCONFIG_GETCONTAINERRUNTIMEOPTIONS3);
+      /* TODO: implement test */
+
+      /* TestCase: PortletConfig_getContainerRuntimeOptions4 */
+      /* Details: "Returns an empty map if no container runtime options have been defined " */
+      TestResult tr21 = tcd.getTestResultFailed(PORTLETCONFIG_GETCONTAINERRUNTIMEOPTIONS4);
+      /* 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);
+      tr18.writeTo(writer);
+      tr19.writeTo(writer);
+      tr20.writeTo(writer);
+      tr21.writeTo(writer);
+
+
+   }
+
+}
+

http://git-wip-us.apache.org/repos/asf/portals-pluto/blob/bd830576/portlet-tck_3.0/V2PortletTests/src/main/java/javax/portlet/tck/PortletTests/portlets/V2PortletTests_PortletMode.java
----------------------------------------------------------------------
diff --git a/portlet-tck_3.0/V2PortletTests/src/main/java/javax/portlet/tck/PortletTests/portlets/V2PortletTests_PortletMode.java b/portlet-tck_3.0/V2PortletTests/src/main/java/javax/portlet/tck/PortletTests/portlets/V2PortletTests_PortletMode.java
new file mode 100644
index 0000000..7e521ee
--- /dev/null
+++ b/portlet-tck_3.0/V2PortletTests/src/main/java/javax/portlet/tck/PortletTests/portlets/V2PortletTests_PortletMode.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.PortletTests.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.JSR286ApiTestCaseDetails;
+import static javax.portlet.tck.beans.JSR286ApiTestCaseDetails.*;
+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 V2PortletTests_PortletMode implements Portlet {
+   private static final String LOG_CLASS = 
+         V2PortletTests_PortletMode.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();
+      JSR286ApiTestCaseDetails tcd = new JSR286ApiTestCaseDetails();
+      ClassChecker cc = new ClassChecker(PortletMode.class);
+
+      // Create result objects for the tests
+
+      /* TestCase: PortletMode_fieldEDIT */
+      /* Details: "Has PortletMode field EDIT with value of PortletMode.EDIT " */
+      TestResult tr0 = tcd.getTestResultFailed(PORTLETMODE_FIELDEDIT);
+      {
+         tr0.setTcSuccess(cc.hasField("EDIT", "PortletMode.EDIT"));
+      }
+
+      /* TestCase: PortletMode_fieldHELP */
+      /* Details: "Has PortletMode field HELP with value of PortletMode.HELP " */
+      TestResult tr1 = tcd.getTestResultFailed(PORTLETMODE_FIELDHELP);
+      {
+         tr1.setTcSuccess(cc.hasField("HELP", "PortletMode.HELP"));
+      }
+
+      /* TestCase: PortletMode_fieldVIEW */
+      /* Details: "Has PortletMode field VIEW with value of PortletMode.VIEW " */
+      TestResult tr2 = tcd.getTestResultFailed(PORTLETMODE_FIELDVIEW);
+      {
+         tr2.setTcSuccess(cc.hasField("VIEW", "PortletMode.VIEW"));
+      }
+
+      /* TestCase: PortletMode_toString */
+      /* Details: "Returns a String representation of the portlet mode" */
+      TestResult tr3 = tcd.getTestResultFailed(PORTLETMODE_TOSTRING);
+      /* TODO: implement test */
+
+      /* TestCase: PortletMode_hashCode */
+      /* Details: "Returns an int containing the has code for the portlet mode" */
+      TestResult tr4 = tcd.getTestResultFailed(PORTLETMODE_HASHCODE);
+      /* TODO: implement test */
+
+      /* TestCase: PortletMode_equals */
+      /* Details: "Returns true if the PortletMode equals the specified PortletMode" */
+      TestResult tr5 = tcd.getTestResultFailed(PORTLETMODE_EQUALS);
+      /* 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);
+
+
+   }
+
+}
+

http://git-wip-us.apache.org/repos/asf/portals-pluto/blob/bd830576/portlet-tck_3.0/V2PortletTests/src/main/java/javax/portlet/tck/PortletTests/portlets/V2PortletTests_ResourceServingPortlet.java
----------------------------------------------------------------------
diff --git a/portlet-tck_3.0/V2PortletTests/src/main/java/javax/portlet/tck/PortletTests/portlets/V2PortletTests_ResourceServingPortlet.java b/portlet-tck_3.0/V2PortletTests/src/main/java/javax/portlet/tck/PortletTests/portlets/V2PortletTests_ResourceServingPortlet.java
new file mode 100644
index 0000000..f3a7fb0
--- /dev/null
+++ b/portlet-tck_3.0/V2PortletTests/src/main/java/javax/portlet/tck/PortletTests/portlets/V2PortletTests_ResourceServingPortlet.java
@@ -0,0 +1,93 @@
+/*  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.PortletTests.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.JSR286ApiTestCaseDetails;
+import static javax.portlet.tck.beans.JSR286ApiTestCaseDetails.*;
+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 V2PortletTests_ResourceServingPortlet implements Portlet {
+   private static final String LOG_CLASS = 
+         V2PortletTests_ResourceServingPortlet.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();
+      JSR286ApiTestCaseDetails tcd = new JSR286ApiTestCaseDetails();
+      ClassChecker cc = new ClassChecker(ResourceServingPortlet.class);
+
+      // Create result objects for the tests
+
+      /* TestCase: ResourceServingPortlet_serveResource */
+      /* Details: "The serveResource(ResourceRequest, ResourceResponse) is called to allow the portlet to generate resource content " */
+      TestResult tr0 = tcd.getTestResultFailed(RESOURCESERVINGPORTLET_SERVERESOURCE);
+      /* TODO: implement test */
+
+
+
+      // Write the results to the output stream
+
+      tr0.writeTo(writer);
+
+
+   }
+
+}
+

http://git-wip-us.apache.org/repos/asf/portals-pluto/blob/bd830576/portlet-tck_3.0/V2PortletTests/src/main/java/javax/portlet/tck/PortletTests/portlets/V2PortletTests_SIG_Event.java
----------------------------------------------------------------------
diff --git a/portlet-tck_3.0/V2PortletTests/src/main/java/javax/portlet/tck/PortletTests/portlets/V2PortletTests_SIG_Event.java b/portlet-tck_3.0/V2PortletTests/src/main/java/javax/portlet/tck/PortletTests/portlets/V2PortletTests_SIG_Event.java
new file mode 100644
index 0000000..868620f
--- /dev/null
+++ b/portlet-tck_3.0/V2PortletTests/src/main/java/javax/portlet/tck/PortletTests/portlets/V2PortletTests_SIG_Event.java
@@ -0,0 +1,153 @@
+/*  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.PortletTests.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.JSR286ApiTestCaseDetails;
+import static javax.portlet.tck.beans.JSR286ApiTestCaseDetails.*;
+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 V2PortletTests_SIG_Event implements Portlet {
+   private static final String LOG_CLASS = 
+         V2PortletTests_SIG_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 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();
+      JSR286ApiTestCaseDetails tcd = new JSR286ApiTestCaseDetails();
+      ClassChecker cc = new ClassChecker(Event.class);
+
+      // Create result objects for the tests
+
+      /* TestCase: Event_SIG_hasGetQName */
+      /* Details: "Has a getQName()  method " */
+      TestResult tr0 = tcd.getTestResultFailed(EVENT_SIG_HASGETQNAME);
+      {
+         String name = "getQName";
+         Class<?>[] exceptions = null;
+         Class<?>[] parms = null;
+         tr0.setTcSuccess(cc.hasMethod(name, parms, exceptions));
+      }
+
+      /* TestCase: Event_SIG_hasGetQNameReturns */
+      /* Details: "Method getQName() returns javax.xml.namespace.QName " */
+      TestResult tr1 = tcd.getTestResultFailed(EVENT_SIG_HASGETQNAMERETURNS);
+      {
+         String name = "getQName";
+         Class<?> retType = javax.xml.namespace.QName.class;
+         Class<?>[] parms = null;
+         tr1.setTcSuccess(cc.methodHasReturnType(name, retType, parms));
+      }
+
+      /* TestCase: Event_SIG_hasGetName */
+      /* Details: "Has a getName()  method " */
+      TestResult tr2 = tcd.getTestResultFailed(EVENT_SIG_HASGETNAME);
+      {
+         String name = "getName";
+         Class<?>[] exceptions = null;
+         Class<?>[] parms = null;
+         tr2.setTcSuccess(cc.hasMethod(name, parms, exceptions));
+      }
+
+      /* TestCase: Event_SIG_hasGetNameReturns */
+      /* Details: "Method getName() returns String " */
+      TestResult tr3 = tcd.getTestResultFailed(EVENT_SIG_HASGETNAMERETURNS);
+      {
+         String name = "getName";
+         Class<?> retType = String.class;
+         Class<?>[] parms = null;
+         tr3.setTcSuccess(cc.methodHasReturnType(name, retType, parms));
+      }
+
+      /* TestCase: Event_SIG_hasGetValue */
+      /* Details: "Has a getValue()  method " */
+      TestResult tr4 = tcd.getTestResultFailed(EVENT_SIG_HASGETVALUE);
+      {
+         String name = "getValue";
+         Class<?>[] exceptions = null;
+         Class<?>[] parms = null;
+         tr4.setTcSuccess(cc.hasMethod(name, parms, exceptions));
+      }
+
+      /* TestCase: Event_SIG_hasGetValueReturns */
+      /* Details: "Method getValue() returns java.io.Serializable " */
+      TestResult tr5 = tcd.getTestResultFailed(EVENT_SIG_HASGETVALUERETURNS);
+      {
+         String name = "getValue";
+         Class<?> retType = java.io.Serializable.class;
+         Class<?>[] parms = null;
+         tr5.setTcSuccess(cc.methodHasReturnType(name, retType, parms));
+      }
+
+
+
+      // 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);
+
+
+   }
+
+}
+

http://git-wip-us.apache.org/repos/asf/portals-pluto/blob/bd830576/portlet-tck_3.0/V2PortletTests/src/main/java/javax/portlet/tck/PortletTests/portlets/V2PortletTests_SIG_EventPortlet.java
----------------------------------------------------------------------
diff --git a/portlet-tck_3.0/V2PortletTests/src/main/java/javax/portlet/tck/PortletTests/portlets/V2PortletTests_SIG_EventPortlet.java b/portlet-tck_3.0/V2PortletTests/src/main/java/javax/portlet/tck/PortletTests/portlets/V2PortletTests_SIG_EventPortlet.java
new file mode 100644
index 0000000..67dc433
--- /dev/null
+++ b/portlet-tck_3.0/V2PortletTests/src/main/java/javax/portlet/tck/PortletTests/portlets/V2PortletTests_SIG_EventPortlet.java
@@ -0,0 +1,109 @@
+/*  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.PortletTests.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.JSR286ApiTestCaseDetails;
+import static javax.portlet.tck.beans.JSR286ApiTestCaseDetails.*;
+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 V2PortletTests_SIG_EventPortlet implements Portlet {
+   private static final String LOG_CLASS = 
+         V2PortletTests_SIG_EventPortlet.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();
+      JSR286ApiTestCaseDetails tcd = new JSR286ApiTestCaseDetails();
+      ClassChecker cc = new ClassChecker(EventPortlet.class);
+
+      // Create result objects for the tests
+
+      /* TestCase: EventPortlet_SIG_hasProcessEvent */
+      /* Details: "Has a processEvent(EventRequest, EventResponse) throws PortletException, java.io.IOException method " */
+      TestResult tr0 = tcd.getTestResultFailed(EVENTPORTLET_SIG_HASPROCESSEVENT);
+      {
+         String name = "processEvent";
+         Class<?>[] exceptions = {PortletException.class, java.io.IOException.class};
+         Class<?>[] parms = {EventRequest.class, EventResponse.class};
+         tr0.setTcSuccess(cc.hasMethod(name, parms, exceptions));
+      }
+
+      /* TestCase: EventPortlet_SIG_hasProcessEventReturns */
+      /* Details: "Method processEvent(EventRequest, EventResponse) returns void " */
+      TestResult tr1 = tcd.getTestResultFailed(EVENTPORTLET_SIG_HASPROCESSEVENTRETURNS);
+      {
+         String name = "processEvent";
+         Class<?> retType = void.class;
+         Class<?>[] parms = {EventRequest.class, EventResponse.class};
+         tr1.setTcSuccess(cc.methodHasReturnType(name, retType, parms));
+      }
+
+
+
+      // Write the results to the output stream
+
+      tr0.writeTo(writer);
+      tr1.writeTo(writer);
+
+
+   }
+
+}
+