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

[20/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/V2EnvironmentTests/src/main/java/javax/portlet/tck/EnvironmentTests/portlets/V2EnvironmentTests_SIG_PortletSessionUtil.java
----------------------------------------------------------------------
diff --git a/portlet-tck_3.0/V2EnvironmentTests/src/main/java/javax/portlet/tck/EnvironmentTests/portlets/V2EnvironmentTests_SIG_PortletSessionUtil.java b/portlet-tck_3.0/V2EnvironmentTests/src/main/java/javax/portlet/tck/EnvironmentTests/portlets/V2EnvironmentTests_SIG_PortletSessionUtil.java
new file mode 100644
index 0000000..68a7cec
--- /dev/null
+++ b/portlet-tck_3.0/V2EnvironmentTests/src/main/java/javax/portlet/tck/EnvironmentTests/portlets/V2EnvironmentTests_SIG_PortletSessionUtil.java
@@ -0,0 +1,140 @@
+/*  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.EnvironmentTests.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 V2EnvironmentTests_SIG_PortletSessionUtil implements Portlet {
+   private static final String LOG_CLASS = 
+         V2EnvironmentTests_SIG_PortletSessionUtil.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(PortletSessionUtil.class);
+
+      // Create result objects for the tests
+
+      /* TestCase: PortletSessionUtil_SIG_constructor */
+      /* Details: "Provides constructor PortletSessionUtil() " */
+      TestResult tr0 = tcd.getTestResultFailed(PORTLETSESSIONUTIL_SIG_CONSTRUCTOR);
+      {
+         Class<?>[] parms = null;
+         tr0.setTcSuccess(cc.hasConstructor(parms));
+      }
+
+      /* TestCase: PortletSessionUtil_SIG_hasDecodeAttributeName */
+      /* Details: "Has a decodeAttributeName(String)  method " */
+      TestResult tr1 = tcd.getTestResultFailed(PORTLETSESSIONUTIL_SIG_HASDECODEATTRIBUTENAME);
+      {
+         String name = "decodeAttributeName";
+         Class<?>[] exceptions = null;
+         Class<?>[] parms = {String.class};
+         tr1.setTcSuccess(cc.hasMethod(name, parms, exceptions));
+      }
+
+      /* TestCase: PortletSessionUtil_SIG_hasDecodeAttributeNameReturns */
+      /* Details: "Method decodeAttributeName(String) returns String " */
+      TestResult tr2 = tcd.getTestResultFailed(PORTLETSESSIONUTIL_SIG_HASDECODEATTRIBUTENAMERETURNS);
+      {
+         String name = "decodeAttributeName";
+         Class<?> retType = String.class;
+         Class<?>[] parms = {String.class};
+         tr2.setTcSuccess(cc.methodHasReturnType(name, retType, parms));
+      }
+
+      /* TestCase: PortletSessionUtil_SIG_hasDecodeScope */
+      /* Details: "Has a decodeScope(String)  method " */
+      TestResult tr3 = tcd.getTestResultFailed(PORTLETSESSIONUTIL_SIG_HASDECODESCOPE);
+      {
+         String name = "decodeScope";
+         Class<?>[] exceptions = null;
+         Class<?>[] parms = {String.class};
+         tr3.setTcSuccess(cc.hasMethod(name, parms, exceptions));
+      }
+
+      /* TestCase: PortletSessionUtil_SIG_hasDecodeScopeReturns */
+      /* Details: "Method decodeScope(String) returns int " */
+      TestResult tr4 = tcd.getTestResultFailed(PORTLETSESSIONUTIL_SIG_HASDECODESCOPERETURNS);
+      {
+         String name = "decodeScope";
+         Class<?> retType = int.class;
+         Class<?>[] parms = {String.class};
+         tr4.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);
+
+
+   }
+
+}
+

http://git-wip-us.apache.org/repos/asf/portals-pluto/blob/bd830576/portlet-tck_3.0/V2EnvironmentTests/src/main/java/javax/portlet/tck/EnvironmentTests/portlets/V2EnvironmentTests_SIG_PreferencesValidator.java
----------------------------------------------------------------------
diff --git a/portlet-tck_3.0/V2EnvironmentTests/src/main/java/javax/portlet/tck/EnvironmentTests/portlets/V2EnvironmentTests_SIG_PreferencesValidator.java b/portlet-tck_3.0/V2EnvironmentTests/src/main/java/javax/portlet/tck/EnvironmentTests/portlets/V2EnvironmentTests_SIG_PreferencesValidator.java
new file mode 100644
index 0000000..af705a7
--- /dev/null
+++ b/portlet-tck_3.0/V2EnvironmentTests/src/main/java/javax/portlet/tck/EnvironmentTests/portlets/V2EnvironmentTests_SIG_PreferencesValidator.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.EnvironmentTests.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 V2EnvironmentTests_SIG_PreferencesValidator implements Portlet {
+   private static final String LOG_CLASS = 
+         V2EnvironmentTests_SIG_PreferencesValidator.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(PreferencesValidator.class);
+
+      // Create result objects for the tests
+
+      /* TestCase: PreferencesValidator_SIG_hasValidate */
+      /* Details: "Has a validate(PortletPreferences) throws ValidatorException method " */
+      TestResult tr0 = tcd.getTestResultFailed(PREFERENCESVALIDATOR_SIG_HASVALIDATE);
+      {
+         String name = "validate";
+         Class<?>[] exceptions = {ValidatorException.class};
+         Class<?>[] parms = {PortletPreferences.class};
+         tr0.setTcSuccess(cc.hasMethod(name, parms, exceptions));
+      }
+
+      /* TestCase: PreferencesValidator_SIG_hasValidateReturns */
+      /* Details: "Method validate(PortletPreferences) returns void " */
+      TestResult tr1 = tcd.getTestResultFailed(PREFERENCESVALIDATOR_SIG_HASVALIDATERETURNS);
+      {
+         String name = "validate";
+         Class<?> retType = void.class;
+         Class<?>[] parms = {PortletPreferences.class};
+         tr1.setTcSuccess(cc.methodHasReturnType(name, retType, parms));
+      }
+
+
+
+      // Write the results to the output stream
+
+      tr0.writeTo(writer);
+      tr1.writeTo(writer);
+
+
+   }
+
+}
+

http://git-wip-us.apache.org/repos/asf/portals-pluto/blob/bd830576/portlet-tck_3.0/V2EnvironmentTests/src/main/resources/xml-resources/additionalTCs.xml
----------------------------------------------------------------------
diff --git a/portlet-tck_3.0/V2EnvironmentTests/src/main/resources/xml-resources/additionalTCs.xml b/portlet-tck_3.0/V2EnvironmentTests/src/main/resources/xml-resources/additionalTCs.xml
new file mode 100644
index 0000000..b8a7d5f
--- /dev/null
+++ b/portlet-tck_3.0/V2EnvironmentTests/src/main/resources/xml-resources/additionalTCs.xml
@@ -0,0 +1,375 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+    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.     
+-->
+<!--
+   Defines the test cases for this module.
+   For this module, the test case names are not automatically generated from.
+   the deployment descriptor, so edit this file to add new test cases.
+   This allows a portlet to define multiple test cases.
+-->
+<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
+<properties>
+<!-- JSR 286 API EnvironmentTests test case names and page mappings -->
+<entry key="CacheControl_getExpirationTime1">V2EnvironmentTests_CacheControl</entry>
+<entry key="CacheControl_getExpirationTime2">V2EnvironmentTests_CacheControl</entry>
+<entry key="CacheControl_getExpirationTime3">V2EnvironmentTests_CacheControl</entry>
+<entry key="CacheControl_setExpirationTime1">V2EnvironmentTests_CacheControl</entry>
+<entry key="CacheControl_setExpirationTime2">V2EnvironmentTests_CacheControl</entry>
+<entry key="CacheControl_setExpirationTime3">V2EnvironmentTests_CacheControl</entry>
+<entry key="CacheControl_isPublicScope1">V2EnvironmentTests_CacheControl</entry>
+<entry key="CacheControl_isPublicScope2">V2EnvironmentTests_CacheControl</entry>
+<entry key="CacheControl_isPublicScope3">V2EnvironmentTests_CacheControl</entry>
+<entry key="CacheControl_isPublicScope4">V2EnvironmentTests_CacheControl</entry>
+<entry key="CacheControl_isPublicScope5">V2EnvironmentTests_CacheControl</entry>
+<entry key="CacheControl_setPublicScope1">V2EnvironmentTests_CacheControl</entry>
+<entry key="CacheControl_setPublicScope2">V2EnvironmentTests_CacheControl</entry>
+<entry key="CacheControl_getETag1">V2EnvironmentTests_CacheControl</entry>
+<entry key="CacheControl_getETag2">V2EnvironmentTests_CacheControl</entry>
+<entry key="CacheControl_setETag1">V2EnvironmentTests_CacheControl</entry>
+<entry key="CacheControl_setETag2">V2EnvironmentTests_CacheControl</entry>
+<entry key="CacheControl_setETag3">V2EnvironmentTests_CacheControl</entry>
+<entry key="CacheControl_useCachedContent1">V2EnvironmentTests_CacheControl</entry>
+<entry key="CacheControl_useCachedContent2">V2EnvironmentTests_CacheControl</entry>
+<entry key="CacheControl_useCachedContent3">V2EnvironmentTests_CacheControl</entry>
+<entry key="CacheControl_setUseCachedContent1">V2EnvironmentTests_CacheControl</entry>
+<entry key="CacheControl_setUseCachedContent2">V2EnvironmentTests_CacheControl</entry>
+<entry key="CacheControl_SIG_hasGetExpirationTime">V2EnvironmentTests_SIG_CacheControl</entry>
+<entry key="CacheControl_SIG_hasGetExpirationTimeReturns">V2EnvironmentTests_SIG_CacheControl</entry>
+<entry key="CacheControl_SIG_hasSetExpirationTime">V2EnvironmentTests_SIG_CacheControl</entry>
+<entry key="CacheControl_SIG_hasSetExpirationTimeReturns">V2EnvironmentTests_SIG_CacheControl</entry>
+<entry key="CacheControl_SIG_hasIsPublicScope">V2EnvironmentTests_SIG_CacheControl</entry>
+<entry key="CacheControl_SIG_hasIsPublicScopeReturns">V2EnvironmentTests_SIG_CacheControl</entry>
+<entry key="CacheControl_SIG_hasSetPublicScope">V2EnvironmentTests_SIG_CacheControl</entry>
+<entry key="CacheControl_SIG_hasSetPublicScopeReturns">V2EnvironmentTests_SIG_CacheControl</entry>
+<entry key="CacheControl_SIG_hasGetETag">V2EnvironmentTests_SIG_CacheControl</entry>
+<entry key="CacheControl_SIG_hasGetETagReturns">V2EnvironmentTests_SIG_CacheControl</entry>
+<entry key="CacheControl_SIG_hasSetETag">V2EnvironmentTests_SIG_CacheControl</entry>
+<entry key="CacheControl_SIG_hasSetETagReturns">V2EnvironmentTests_SIG_CacheControl</entry>
+<entry key="CacheControl_SIG_hasUseCachedContent">V2EnvironmentTests_SIG_CacheControl</entry>
+<entry key="CacheControl_SIG_hasUseCachedContentReturns">V2EnvironmentTests_SIG_CacheControl</entry>
+<entry key="CacheControl_SIG_hasSetUseCachedContent">V2EnvironmentTests_SIG_CacheControl</entry>
+<entry key="CacheControl_SIG_hasSetUseCachedContentReturns">V2EnvironmentTests_SIG_CacheControl</entry>
+<entry key="PortalContext_fieldMARKUP_HEAD_ELEMENT_SUPPORT">V2EnvironmentTests_PortalContext</entry>
+<entry key="PortalContext_getProperty1">V2EnvironmentTests_PortalContext</entry>
+<entry key="PortalContext_getProperty2">V2EnvironmentTests_PortalContext</entry>
+<entry key="PortalContext_getProperty3">V2EnvironmentTests_PortalContext</entry>
+<entry key="PortalContext_getPropertyNames1">V2EnvironmentTests_PortalContext</entry>
+<entry key="PortalContext_getPropertyNames2">V2EnvironmentTests_PortalContext</entry>
+<entry key="PortalContext_getSupportedPortletModes1">V2EnvironmentTests_PortalContext</entry>
+<entry key="PortalContext_getSupportedPortletModes2">V2EnvironmentTests_PortalContext</entry>
+<entry key="PortalContext_getSupportedPortletModes3">V2EnvironmentTests_PortalContext</entry>
+<entry key="PortalContext_getSupportedPortletModes4">V2EnvironmentTests_PortalContext</entry>
+<entry key="PortalContext_getSupportedWindowStates1">V2EnvironmentTests_PortalContext</entry>
+<entry key="PortalContext_getSupportedWindowStates2">V2EnvironmentTests_PortalContext</entry>
+<entry key="PortalContext_getSupportedWindowStates3">V2EnvironmentTests_PortalContext</entry>
+<entry key="PortalContext_getSupportedWindowStates4">V2EnvironmentTests_PortalContext</entry>
+<entry key="PortalContext_getPortalInfo1">V2EnvironmentTests_PortalContext</entry>
+<entry key="PortalContext_getPortalInfo2">V2EnvironmentTests_PortalContext</entry>
+<entry key="PortalContext_getPortalInfo3">V2EnvironmentTests_PortalContext</entry>
+<entry key="PortalContext_getPortalInfo4">V2EnvironmentTests_PortalContext</entry>
+<entry key="PortalContext_getPortalInfo5">V2EnvironmentTests_PortalContext</entry>
+<entry key="PortalContext_SIG_fieldMARKUP_HEAD_ELEMENT_SUPPORT">V2EnvironmentTests_SIG_PortalContext</entry>
+<entry key="PortalContext_SIG_hasGetProperty">V2EnvironmentTests_SIG_PortalContext</entry>
+<entry key="PortalContext_SIG_hasGetPropertyReturns">V2EnvironmentTests_SIG_PortalContext</entry>
+<entry key="PortalContext_SIG_hasGetPropertyNames">V2EnvironmentTests_SIG_PortalContext</entry>
+<entry key="PortalContext_SIG_hasGetPropertyNamesReturns">V2EnvironmentTests_SIG_PortalContext</entry>
+<entry key="PortalContext_SIG_hasGetSupportedPortletModes">V2EnvironmentTests_SIG_PortalContext</entry>
+<entry key="PortalContext_SIG_hasGetSupportedPortletModesReturns">V2EnvironmentTests_SIG_PortalContext</entry>
+<entry key="PortalContext_SIG_hasGetSupportedWindowStates">V2EnvironmentTests_SIG_PortalContext</entry>
+<entry key="PortalContext_SIG_hasGetSupportedWindowStatesReturns">V2EnvironmentTests_SIG_PortalContext</entry>
+<entry key="PortalContext_SIG_hasGetPortalInfo">V2EnvironmentTests_SIG_PortalContext</entry>
+<entry key="PortalContext_SIG_hasGetPortalInfoReturns">V2EnvironmentTests_SIG_PortalContext</entry>
+<entry key="PortletContext_getServerInfo">V2EnvironmentTests_PortletContext</entry>
+<entry key="PortletContext_getServerInfo1">V2EnvironmentTests_PortletContext</entry>
+<entry key="PortletContext_getServerInfo2">V2EnvironmentTests_PortletContext</entry>
+<entry key="PortletContext_getServerInfo3">V2EnvironmentTests_PortletContext</entry>
+<entry key="PortletContext_getServerInfo4">V2EnvironmentTests_PortletContext</entry>
+<entry key="PortletContext_getServerInfo5">V2EnvironmentTests_PortletContext</entry>
+<entry key="PortletContext_getRequestDispatcher1">V2EnvironmentTests_PortletContext</entry>
+<entry key="PortletContext_getRequestDispatcher2">V2EnvironmentTests_PortletContext</entry>
+<entry key="PortletContext_getRequestDispatcher3">V2EnvironmentTests_PortletContext</entry>
+<entry key="PortletContext_getNamedDispatcher1">V2EnvironmentTests_PortletContext</entry>
+<entry key="PortletContext_getNamedDispatcher2">V2EnvironmentTests_PortletContext</entry>
+<entry key="PortletContext_getResourceAsStream1">V2EnvironmentTests_PortletContext</entry>
+<entry key="PortletContext_getResourceAsStream2">V2EnvironmentTests_PortletContext</entry>
+<entry key="PortletContext_getResourceAsStream3">V2EnvironmentTests_PortletContext</entry>
+<entry key="PortletContext_getMajorVersion">V2EnvironmentTests_PortletContext</entry>
+<entry key="PortletContext_getMinorVersion">V2EnvironmentTests_PortletContext</entry>
+<entry key="PortletContext_getMimeType1">V2EnvironmentTests_PortletContext</entry>
+<entry key="PortletContext_getMimeType2">V2EnvironmentTests_PortletContext</entry>
+<entry key="PortletContext_getMimeType3">V2EnvironmentTests_PortletContext</entry>
+<entry key="PortletContext_getMimeType4">V2EnvironmentTests_PortletContext</entry>
+<entry key="PortletContext_getMimeType5">V2EnvironmentTests_PortletContext</entry>
+<entry key="PortletContext_getRealPath1">V2EnvironmentTests_PortletContext</entry>
+<entry key="PortletContext_getRealPath2">V2EnvironmentTests_PortletContext</entry>
+<entry key="PortletContext_getRealPath3">V2EnvironmentTests_PortletContext</entry>
+<entry key="PortletContext_getResourcePaths1">V2EnvironmentTests_PortletContext</entry>
+<entry key="PortletContext_getResourcePaths2">V2EnvironmentTests_PortletContext</entry>
+<entry key="PortletContext_getResourcePaths3">V2EnvironmentTests_PortletContext</entry>
+<entry key="PortletContext_getResourcePaths4">V2EnvironmentTests_PortletContext</entry>
+<entry key="PortletContext_getResource1">V2EnvironmentTests_PortletContext</entry>
+<entry key="PortletContext_getResource2">V2EnvironmentTests_PortletContext</entry>
+<entry key="PortletContext_getResource3">V2EnvironmentTests_PortletContext</entry>
+<entry key="PortletContext_getResource4">V2EnvironmentTests_PortletContext</entry>
+<entry key="PortletContext_getAttribute1">V2EnvironmentTests_PortletContext</entry>
+<entry key="PortletContext_getAttribute2">V2EnvironmentTests_PortletContext</entry>
+<entry key="PortletContext_getAttribute3">V2EnvironmentTests_PortletContext</entry>
+<entry key="PortletContext_getAttributeNames1">V2EnvironmentTests_PortletContext</entry>
+<entry key="PortletContext_getAttributeNames2">V2EnvironmentTests_PortletContext</entry>
+<entry key="PortletContext_getInitParameter1">V2EnvironmentTests_PortletContext</entry>
+<entry key="PortletContext_getInitParameter2">V2EnvironmentTests_PortletContext</entry>
+<entry key="PortletContext_getInitParameter3">V2EnvironmentTests_PortletContext</entry>
+<entry key="PortletContext_getInitParameterNames1">V2EnvironmentTests_PortletContext</entry>
+<entry key="PortletContext_getInitParameterNames2">V2EnvironmentTests_PortletContext</entry>
+<entry key="PortletContext_logA">V2EnvironmentTests_PortletContext</entry>
+<entry key="PortletContext_logB">V2EnvironmentTests_PortletContext</entry>
+<entry key="PortletContext_removeAttribute1">V2EnvironmentTests_PortletContext</entry>
+<entry key="PortletContext_removeAttribute2">V2EnvironmentTests_PortletContext</entry>
+<entry key="PortletContext_setAttribute1">V2EnvironmentTests_PortletContext</entry>
+<entry key="PortletContext_setAttribute2">V2EnvironmentTests_PortletContext</entry>
+<entry key="PortletContext_setAttribute3">V2EnvironmentTests_PortletContext</entry>
+<entry key="PortletContext_setAttribute4">V2EnvironmentTests_PortletContext</entry>
+<entry key="PortletContext_getPortletContextName1">V2EnvironmentTests_PortletContext</entry>
+<entry key="PortletContext_getPortletContextName2">V2EnvironmentTests_PortletContext</entry>
+<entry key="PortletContext_getPortletContextName3">V2EnvironmentTests_PortletContext</entry>
+<entry key="PortletContext_getContainerRuntimeOptions1">V2EnvironmentTests_PortletContext</entry>
+<entry key="PortletContext_getContainerRuntimeOptions2">V2EnvironmentTests_PortletContext</entry>
+<entry key="PortletContext_SIG_hasGetServerInfo">V2EnvironmentTests_SIG_PortletContext</entry>
+<entry key="PortletContext_SIG_hasGetServerInfoReturns">V2EnvironmentTests_SIG_PortletContext</entry>
+<entry key="PortletContext_SIG_hasGetRequestDispatcher">V2EnvironmentTests_SIG_PortletContext</entry>
+<entry key="PortletContext_SIG_hasGetRequestDispatcherReturns">V2EnvironmentTests_SIG_PortletContext</entry>
+<entry key="PortletContext_SIG_hasGetNamedDispatcher">V2EnvironmentTests_SIG_PortletContext</entry>
+<entry key="PortletContext_SIG_hasGetNamedDispatcherReturns">V2EnvironmentTests_SIG_PortletContext</entry>
+<entry key="PortletContext_SIG_hasGetResourceAsStream">V2EnvironmentTests_SIG_PortletContext</entry>
+<entry key="PortletContext_SIG_hasGetResourceAsStreamReturns">V2EnvironmentTests_SIG_PortletContext</entry>
+<entry key="PortletContext_SIG_hasGetMajorVersion">V2EnvironmentTests_SIG_PortletContext</entry>
+<entry key="PortletContext_SIG_hasGetMajorVersionReturns">V2EnvironmentTests_SIG_PortletContext</entry>
+<entry key="PortletContext_SIG_hasGetMinorVersion">V2EnvironmentTests_SIG_PortletContext</entry>
+<entry key="PortletContext_SIG_hasGetMinorVersionReturns">V2EnvironmentTests_SIG_PortletContext</entry>
+<entry key="PortletContext_SIG_hasGetMimeType">V2EnvironmentTests_SIG_PortletContext</entry>
+<entry key="PortletContext_SIG_hasGetMimeTypeReturns">V2EnvironmentTests_SIG_PortletContext</entry>
+<entry key="PortletContext_SIG_hasGetRealPath">V2EnvironmentTests_SIG_PortletContext</entry>
+<entry key="PortletContext_SIG_hasGetRealPathReturns">V2EnvironmentTests_SIG_PortletContext</entry>
+<entry key="PortletContext_SIG_hasGetResourcePaths">V2EnvironmentTests_SIG_PortletContext</entry>
+<entry key="PortletContext_SIG_hasGetResourcePathsReturns">V2EnvironmentTests_SIG_PortletContext</entry>
+<entry key="PortletContext_SIG_hasGetResource">V2EnvironmentTests_SIG_PortletContext</entry>
+<entry key="PortletContext_SIG_hasGetResourceReturns">V2EnvironmentTests_SIG_PortletContext</entry>
+<entry key="PortletContext_SIG_hasGetAttribute">V2EnvironmentTests_SIG_PortletContext</entry>
+<entry key="PortletContext_SIG_hasGetAttributeReturns">V2EnvironmentTests_SIG_PortletContext</entry>
+<entry key="PortletContext_SIG_hasGetAttributeNames">V2EnvironmentTests_SIG_PortletContext</entry>
+<entry key="PortletContext_SIG_hasGetAttributeNamesReturns">V2EnvironmentTests_SIG_PortletContext</entry>
+<entry key="PortletContext_SIG_hasGetInitParameter">V2EnvironmentTests_SIG_PortletContext</entry>
+<entry key="PortletContext_SIG_hasGetInitParameterReturns">V2EnvironmentTests_SIG_PortletContext</entry>
+<entry key="PortletContext_SIG_hasGetInitParameterNames">V2EnvironmentTests_SIG_PortletContext</entry>
+<entry key="PortletContext_SIG_hasGetInitParameterNamesReturns">V2EnvironmentTests_SIG_PortletContext</entry>
+<entry key="PortletContext_SIG_hasLog">V2EnvironmentTests_SIG_PortletContext</entry>
+<entry key="PortletContext_SIG_hasLogReturns">V2EnvironmentTests_SIG_PortletContext</entry>
+<entry key="PortletContext_SIG_hasLogA">V2EnvironmentTests_SIG_PortletContext</entry>
+<entry key="PortletContext_SIG_hasLogReturnsA">V2EnvironmentTests_SIG_PortletContext</entry>
+<entry key="PortletContext_SIG_hasRemoveAttribute">V2EnvironmentTests_SIG_PortletContext</entry>
+<entry key="PortletContext_SIG_hasRemoveAttributeReturns">V2EnvironmentTests_SIG_PortletContext</entry>
+<entry key="PortletContext_SIG_hasSetAttribute">V2EnvironmentTests_SIG_PortletContext</entry>
+<entry key="PortletContext_SIG_hasSetAttributeReturns">V2EnvironmentTests_SIG_PortletContext</entry>
+<entry key="PortletContext_SIG_hasGetPortletContextName">V2EnvironmentTests_SIG_PortletContext</entry>
+<entry key="PortletContext_SIG_hasGetPortletContextNameReturns">V2EnvironmentTests_SIG_PortletContext</entry>
+<entry key="PortletContext_SIG_hasGetContainerRuntimeOptions">V2EnvironmentTests_SIG_PortletContext</entry>
+<entry key="PortletContext_SIG_hasGetContainerRuntimeOptionsReturns">V2EnvironmentTests_SIG_PortletContext</entry>
+<entry key="PortletPreferences_isReadOnly1">V2EnvironmentTests_PortletPreferences</entry>
+<entry key="PortletPreferences_isReadOnly2">V2EnvironmentTests_PortletPreferences</entry>
+<entry key="PortletPreferences_isReadOnly3">V2EnvironmentTests_PortletPreferences</entry>
+<entry key="PortletPreferences_isReadOnly4">V2EnvironmentTests_PortletPreferences</entry>
+<entry key="PortletPreferences_getValue1">V2EnvironmentTests_PortletPreferences</entry>
+<entry key="PortletPreferences_getValue2">V2EnvironmentTests_PortletPreferences</entry>
+<entry key="PortletPreferences_getValue3">V2EnvironmentTests_PortletPreferences</entry>
+<entry key="PortletPreferences_getValue4">V2EnvironmentTests_PortletPreferences</entry>
+<entry key="PortletPreferences_getValues1">V2EnvironmentTests_PortletPreferences</entry>
+<entry key="PortletPreferences_getValues2">V2EnvironmentTests_PortletPreferences</entry>
+<entry key="PortletPreferences_getValues3">V2EnvironmentTests_PortletPreferences</entry>
+<entry key="PortletPreferences_getValues4">V2EnvironmentTests_PortletPreferences</entry>
+<entry key="PortletPreferences_setValue1">V2EnvironmentTests_PortletPreferences</entry>
+<entry key="PortletPreferences_setValue2">V2EnvironmentTests_PortletPreferences</entry>
+<entry key="PortletPreferences_setValue3">V2EnvironmentTests_PortletPreferences</entry>
+<entry key="PortletPreferences_setValue4">V2EnvironmentTests_PortletPreferences</entry>
+<entry key="PortletPreferences_setValue5">V2EnvironmentTests_PortletPreferences</entry>
+<entry key="PortletPreferences_setValues1">V2EnvironmentTests_PortletPreferences</entry>
+<entry key="PortletPreferences_setValues2">V2EnvironmentTests_PortletPreferences</entry>
+<entry key="PortletPreferences_setValues3">V2EnvironmentTests_PortletPreferences</entry>
+<entry key="PortletPreferences_setValues4">V2EnvironmentTests_PortletPreferences</entry>
+<entry key="PortletPreferences_setValues5">V2EnvironmentTests_PortletPreferences</entry>
+<entry key="PortletPreferences_setValues6">V2EnvironmentTests_PortletPreferences</entry>
+<entry key="PortletPreferences_getNames1">V2EnvironmentTests_PortletPreferences</entry>
+<entry key="PortletPreferences_getNames2">V2EnvironmentTests_PortletPreferences</entry>
+<entry key="PortletPreferences_getMap1">V2EnvironmentTests_PortletPreferences</entry>
+<entry key="PortletPreferences_getMap2">V2EnvironmentTests_PortletPreferences</entry>
+<entry key="PortletPreferences_reset1">V2EnvironmentTests_PortletPreferences</entry>
+<entry key="PortletPreferences_reset2">V2EnvironmentTests_PortletPreferences</entry>
+<entry key="PortletPreferences_reset3">V2EnvironmentTests_PortletPreferences</entry>
+<entry key="PortletPreferences_store1">V2EnvironmentTests_PortletPreferences</entry>
+<entry key="PortletPreferences_store2">V2EnvironmentTests_PortletPreferences</entry>
+<entry key="PortletPreferences_store3">V2EnvironmentTests_PortletPreferences</entry>
+<entry key="PortletPreferences_store4">V2EnvironmentTests_PortletPreferences</entry>
+<entry key="PortletPreferences_store5">V2EnvironmentTests_PortletPreferences</entry>
+<entry key="PortletPreferences_store6">V2EnvironmentTests_PortletPreferences</entry>
+<entry key="PortletPreferences_store7">V2EnvironmentTests_PortletPreferences</entry>
+<entry key="PortletPreferences_SIG_hasIsReadOnly">V2EnvironmentTests_SIG_PortletPreferences</entry>
+<entry key="PortletPreferences_SIG_hasIsReadOnlyReturns">V2EnvironmentTests_SIG_PortletPreferences</entry>
+<entry key="PortletPreferences_SIG_hasGetValue">V2EnvironmentTests_SIG_PortletPreferences</entry>
+<entry key="PortletPreferences_SIG_hasGetValueReturns">V2EnvironmentTests_SIG_PortletPreferences</entry>
+<entry key="PortletPreferences_SIG_hasGetValues">V2EnvironmentTests_SIG_PortletPreferences</entry>
+<entry key="PortletPreferences_SIG_hasGetValuesReturns">V2EnvironmentTests_SIG_PortletPreferences</entry>
+<entry key="PortletPreferences_SIG_hasSetValue">V2EnvironmentTests_SIG_PortletPreferences</entry>
+<entry key="PortletPreferences_SIG_hasSetValueReturns">V2EnvironmentTests_SIG_PortletPreferences</entry>
+<entry key="PortletPreferences_SIG_hasSetValues">V2EnvironmentTests_SIG_PortletPreferences</entry>
+<entry key="PortletPreferences_SIG_hasSetValuesReturns">V2EnvironmentTests_SIG_PortletPreferences</entry>
+<entry key="PortletPreferences_SIG_hasGetNames">V2EnvironmentTests_SIG_PortletPreferences</entry>
+<entry key="PortletPreferences_SIG_hasGetNamesReturns">V2EnvironmentTests_SIG_PortletPreferences</entry>
+<entry key="PortletPreferences_SIG_hasGetMap">V2EnvironmentTests_SIG_PortletPreferences</entry>
+<entry key="PortletPreferences_SIG_hasGetMapReturns">V2EnvironmentTests_SIG_PortletPreferences</entry>
+<entry key="PortletPreferences_SIG_hasReset">V2EnvironmentTests_SIG_PortletPreferences</entry>
+<entry key="PortletPreferences_SIG_hasResetReturns">V2EnvironmentTests_SIG_PortletPreferences</entry>
+<entry key="PortletPreferences_SIG_hasStore">V2EnvironmentTests_SIG_PortletPreferences</entry>
+<entry key="PortletPreferences_SIG_hasStoreReturns">V2EnvironmentTests_SIG_PortletPreferences</entry>
+<entry key="PreferencesValidator_canBeConfigured">V2EnvironmentTests_PreferencesValidator</entry>
+<entry key="PreferencesValidator_validate1">V2EnvironmentTests_PreferencesValidator</entry>
+<entry key="PreferencesValidator_validate2">V2EnvironmentTests_PreferencesValidator</entry>
+<entry key="PreferencesValidator_SIG_hasValidate">V2EnvironmentTests_SIG_PreferencesValidator</entry>
+<entry key="PreferencesValidator_SIG_hasValidateReturns">V2EnvironmentTests_SIG_PreferencesValidator</entry>
+<entry key="PortletRequestDispatcher_includeA1">V2EnvironmentTests_PortletRequestDispatcher</entry>
+<entry key="PortletRequestDispatcher_includeA2">V2EnvironmentTests_PortletRequestDispatcher</entry>
+<entry key="PortletRequestDispatcher_includeA3">V2EnvironmentTests_PortletRequestDispatcher</entry>
+<entry key="PortletRequestDispatcher_includeA4">V2EnvironmentTests_PortletRequestDispatcher</entry>
+<entry key="PortletRequestDispatcher_includeB1">V2EnvironmentTests_PortletRequestDispatcher</entry>
+<entry key="PortletRequestDispatcher_includeB2">V2EnvironmentTests_PortletRequestDispatcher</entry>
+<entry key="PortletRequestDispatcher_includeB3">V2EnvironmentTests_PortletRequestDispatcher</entry>
+<entry key="PortletRequestDispatcher_includeB4">V2EnvironmentTests_PortletRequestDispatcher</entry>
+<entry key="PortletRequestDispatcher_forward1">V2EnvironmentTests_PortletRequestDispatcher</entry>
+<entry key="PortletRequestDispatcher_forward2">V2EnvironmentTests_PortletRequestDispatcher</entry>
+<entry key="PortletRequestDispatcher_forward3">V2EnvironmentTests_PortletRequestDispatcher</entry>
+<entry key="PortletRequestDispatcher_forward4">V2EnvironmentTests_PortletRequestDispatcher</entry>
+<entry key="PortletRequestDispatcher_forward5">V2EnvironmentTests_PortletRequestDispatcher</entry>
+<entry key="PortletRequestDispatcher_SIG_hasInclude">V2EnvironmentTests_SIG_PortletRequestDispatcher</entry>
+<entry key="PortletRequestDispatcher_SIG_hasIncludeReturns">V2EnvironmentTests_SIG_PortletRequestDispatcher</entry>
+<entry key="PortletRequestDispatcher_SIG_hasIncludeA">V2EnvironmentTests_SIG_PortletRequestDispatcher</entry>
+<entry key="PortletRequestDispatcher_SIG_hasIncludeReturnsA">V2EnvironmentTests_SIG_PortletRequestDispatcher</entry>
+<entry key="PortletRequestDispatcher_SIG_hasForward">V2EnvironmentTests_SIG_PortletRequestDispatcher</entry>
+<entry key="PortletRequestDispatcher_SIG_hasForwardReturns">V2EnvironmentTests_SIG_PortletRequestDispatcher</entry>
+<entry key="PortletSession_fieldAPPLICATION_SCOPE">V2EnvironmentTests_PortletSession</entry>
+<entry key="PortletSession_fieldPORTLET_SCOPE">V2EnvironmentTests_PortletSession</entry>
+<entry key="PortletSession_getAttributeA1">V2EnvironmentTests_PortletSession</entry>
+<entry key="PortletSession_getAttributeA2">V2EnvironmentTests_PortletSession</entry>
+<entry key="PortletSession_getAttributeA3">V2EnvironmentTests_PortletSession</entry>
+<entry key="PortletSession_getAttributeA4">V2EnvironmentTests_PortletSession</entry>
+<entry key="PortletSession_getAttributeB1">V2EnvironmentTests_PortletSession</entry>
+<entry key="PortletSession_getAttributeB2">V2EnvironmentTests_PortletSession</entry>
+<entry key="PortletSession_getAttributeB3">V2EnvironmentTests_PortletSession</entry>
+<entry key="PortletSession_getAttributeB4">V2EnvironmentTests_PortletSession</entry>
+<entry key="PortletSession_getAttributeNamesA1">V2EnvironmentTests_PortletSession</entry>
+<entry key="PortletSession_getAttributeNamesA2">V2EnvironmentTests_PortletSession</entry>
+<entry key="PortletSession_getAttributeNamesB1">V2EnvironmentTests_PortletSession</entry>
+<entry key="PortletSession_getAttributeNamesB2">V2EnvironmentTests_PortletSession</entry>
+<entry key="PortletSession_getCreationTime1">V2EnvironmentTests_PortletSession</entry>
+<entry key="PortletSession_getCreationTime2">V2EnvironmentTests_PortletSession</entry>
+<entry key="PortletSession_getId">V2EnvironmentTests_PortletSession</entry>
+<entry key="PortletSession_getLastAccessedTime">V2EnvironmentTests_PortletSession</entry>
+<entry key="PortletSession_getMaxInactiveInterval">V2EnvironmentTests_PortletSession</entry>
+<entry key="PortletSession_invalidate1">V2EnvironmentTests_PortletSession</entry>
+<entry key="PortletSession_invalidate2">V2EnvironmentTests_PortletSession</entry>
+<entry key="PortletSession_isNew1">V2EnvironmentTests_PortletSession</entry>
+<entry key="PortletSession_isNew2">V2EnvironmentTests_PortletSession</entry>
+<entry key="PortletSession_removeAttributeA1">V2EnvironmentTests_PortletSession</entry>
+<entry key="PortletSession_removeAttributeA2">V2EnvironmentTests_PortletSession</entry>
+<entry key="PortletSession_removeAttributeA3">V2EnvironmentTests_PortletSession</entry>
+<entry key="PortletSession_removeAttributeA4">V2EnvironmentTests_PortletSession</entry>
+<entry key="PortletSession_removeAttributeB1">V2EnvironmentTests_PortletSession</entry>
+<entry key="PortletSession_removeAttributeB2">V2EnvironmentTests_PortletSession</entry>
+<entry key="PortletSession_removeAttributeB3">V2EnvironmentTests_PortletSession</entry>
+<entry key="PortletSession_removeAttributeB4">V2EnvironmentTests_PortletSession</entry>
+<entry key="PortletSession_setAttributeA1">V2EnvironmentTests_PortletSession</entry>
+<entry key="PortletSession_setAttributeA2">V2EnvironmentTests_PortletSession</entry>
+<entry key="PortletSession_setAttributeA3">V2EnvironmentTests_PortletSession</entry>
+<entry key="PortletSession_setAttributeA4">V2EnvironmentTests_PortletSession</entry>
+<entry key="PortletSession_setAttributeA5">V2EnvironmentTests_PortletSession</entry>
+<entry key="PortletSession_setAttributeA6">V2EnvironmentTests_PortletSession</entry>
+<entry key="PortletSession_setAttributeA7">V2EnvironmentTests_PortletSession</entry>
+<entry key="PortletSession_setAttributeA8">V2EnvironmentTests_PortletSession</entry>
+<entry key="PortletSession_setAttributeB1">V2EnvironmentTests_PortletSession</entry>
+<entry key="PortletSession_setAttributeB2">V2EnvironmentTests_PortletSession</entry>
+<entry key="PortletSession_setAttributeB3">V2EnvironmentTests_PortletSession</entry>
+<entry key="PortletSession_setAttributeB4">V2EnvironmentTests_PortletSession</entry>
+<entry key="PortletSession_setAttributeB5">V2EnvironmentTests_PortletSession</entry>
+<entry key="PortletSession_setAttributeB6">V2EnvironmentTests_PortletSession</entry>
+<entry key="PortletSession_setAttributeB7">V2EnvironmentTests_PortletSession</entry>
+<entry key="PortletSession_setAttributeB8">V2EnvironmentTests_PortletSession</entry>
+<entry key="PortletSession_setMaxInactiveInterval1">V2EnvironmentTests_PortletSession</entry>
+<entry key="PortletSession_setMaxInactiveInterval2">V2EnvironmentTests_PortletSession</entry>
+<entry key="PortletSession_getPortletContext">V2EnvironmentTests_PortletSession</entry>
+<entry key="PortletSession_getAttributeMapA1">V2EnvironmentTests_PortletSession</entry>
+<entry key="PortletSession_getAttributeMapA2">V2EnvironmentTests_PortletSession</entry>
+<entry key="PortletSession_getAttributeMapB1">V2EnvironmentTests_PortletSession</entry>
+<entry key="PortletSession_getAttributeMapB2">V2EnvironmentTests_PortletSession</entry>
+<entry key="PortletSession_SIG_fieldAPPLICATION_SCOPE">V2EnvironmentTests_SIG_PortletSession</entry>
+<entry key="PortletSession_SIG_fieldPORTLET_SCOPE">V2EnvironmentTests_SIG_PortletSession</entry>
+<entry key="PortletSession_SIG_hasGetAttribute">V2EnvironmentTests_SIG_PortletSession</entry>
+<entry key="PortletSession_SIG_hasGetAttributeReturns">V2EnvironmentTests_SIG_PortletSession</entry>
+<entry key="PortletSession_SIG_hasGetAttributeA">V2EnvironmentTests_SIG_PortletSession</entry>
+<entry key="PortletSession_SIG_hasGetAttributeReturnsA">V2EnvironmentTests_SIG_PortletSession</entry>
+<entry key="PortletSession_SIG_hasGetAttributeNames">V2EnvironmentTests_SIG_PortletSession</entry>
+<entry key="PortletSession_SIG_hasGetAttributeNamesReturns">V2EnvironmentTests_SIG_PortletSession</entry>
+<entry key="PortletSession_SIG_hasGetAttributeNamesA">V2EnvironmentTests_SIG_PortletSession</entry>
+<entry key="PortletSession_SIG_hasGetAttributeNamesReturnsA">V2EnvironmentTests_SIG_PortletSession</entry>
+<entry key="PortletSession_SIG_hasGetCreationTime">V2EnvironmentTests_SIG_PortletSession</entry>
+<entry key="PortletSession_SIG_hasGetCreationTimeReturns">V2EnvironmentTests_SIG_PortletSession</entry>
+<entry key="PortletSession_SIG_hasGetId">V2EnvironmentTests_SIG_PortletSession</entry>
+<entry key="PortletSession_SIG_hasGetIdReturns">V2EnvironmentTests_SIG_PortletSession</entry>
+<entry key="PortletSession_SIG_hasGetLastAccessedTime">V2EnvironmentTests_SIG_PortletSession</entry>
+<entry key="PortletSession_SIG_hasGetLastAccessedTimeReturns">V2EnvironmentTests_SIG_PortletSession</entry>
+<entry key="PortletSession_SIG_hasGetMaxInactiveInterval">V2EnvironmentTests_SIG_PortletSession</entry>
+<entry key="PortletSession_SIG_hasGetMaxInactiveIntervalReturns">V2EnvironmentTests_SIG_PortletSession</entry>
+<entry key="PortletSession_SIG_hasInvalidate">V2EnvironmentTests_SIG_PortletSession</entry>
+<entry key="PortletSession_SIG_hasInvalidateReturns">V2EnvironmentTests_SIG_PortletSession</entry>
+<entry key="PortletSession_SIG_hasIsNew">V2EnvironmentTests_SIG_PortletSession</entry>
+<entry key="PortletSession_SIG_hasIsNewReturns">V2EnvironmentTests_SIG_PortletSession</entry>
+<entry key="PortletSession_SIG_hasRemoveAttribute">V2EnvironmentTests_SIG_PortletSession</entry>
+<entry key="PortletSession_SIG_hasRemoveAttributeReturns">V2EnvironmentTests_SIG_PortletSession</entry>
+<entry key="PortletSession_SIG_hasRemoveAttributeA">V2EnvironmentTests_SIG_PortletSession</entry>
+<entry key="PortletSession_SIG_hasRemoveAttributeReturnsA">V2EnvironmentTests_SIG_PortletSession</entry>
+<entry key="PortletSession_SIG_hasSetAttribute">V2EnvironmentTests_SIG_PortletSession</entry>
+<entry key="PortletSession_SIG_hasSetAttributeReturns">V2EnvironmentTests_SIG_PortletSession</entry>
+<entry key="PortletSession_SIG_hasSetAttributeA">V2EnvironmentTests_SIG_PortletSession</entry>
+<entry key="PortletSession_SIG_hasSetAttributeReturnsA">V2EnvironmentTests_SIG_PortletSession</entry>
+<entry key="PortletSession_SIG_hasSetMaxInactiveInterval">V2EnvironmentTests_SIG_PortletSession</entry>
+<entry key="PortletSession_SIG_hasSetMaxInactiveIntervalReturns">V2EnvironmentTests_SIG_PortletSession</entry>
+<entry key="PortletSession_SIG_hasGetPortletContext">V2EnvironmentTests_SIG_PortletSession</entry>
+<entry key="PortletSession_SIG_hasGetPortletContextReturns">V2EnvironmentTests_SIG_PortletSession</entry>
+<entry key="PortletSession_SIG_hasGetAttributeMap">V2EnvironmentTests_SIG_PortletSession</entry>
+<entry key="PortletSession_SIG_hasGetAttributeMapReturns">V2EnvironmentTests_SIG_PortletSession</entry>
+<entry key="PortletSession_SIG_hasGetAttributeMapA">V2EnvironmentTests_SIG_PortletSession</entry>
+<entry key="PortletSession_SIG_hasGetAttributeMapReturnsA">V2EnvironmentTests_SIG_PortletSession</entry>
+<entry key="PortletSessionUtil_decodeAttributeName1">V2EnvironmentTests_PortletSessionUtil</entry>
+<entry key="PortletSessionUtil_decodeAttributeName2">V2EnvironmentTests_PortletSessionUtil</entry>
+<entry key="PortletSessionUtil_decodeScope1">V2EnvironmentTests_PortletSessionUtil</entry>
+<entry key="PortletSessionUtil_decodeScope2">V2EnvironmentTests_PortletSessionUtil</entry>
+<entry key="PortletSessionUtil_decodeScope3">V2EnvironmentTests_PortletSessionUtil</entry>
+<entry key="PortletSessionUtil_SIG_constructor">V2EnvironmentTests_SIG_PortletSessionUtil</entry>
+<entry key="PortletSessionUtil_SIG_hasDecodeAttributeName">V2EnvironmentTests_SIG_PortletSessionUtil</entry>
+<entry key="PortletSessionUtil_SIG_hasDecodeAttributeNameReturns">V2EnvironmentTests_SIG_PortletSessionUtil</entry>
+<entry key="PortletSessionUtil_SIG_hasDecodeScope">V2EnvironmentTests_SIG_PortletSessionUtil</entry>
+<entry key="PortletSessionUtil_SIG_hasDecodeScopeReturns">V2EnvironmentTests_SIG_PortletSessionUtil</entry>
+
+</properties>

http://git-wip-us.apache.org/repos/asf/portals-pluto/blob/bd830576/portlet-tck_3.0/V2EnvironmentTests/src/main/webapp/WEB-INF/portlet.xml
----------------------------------------------------------------------
diff --git a/portlet-tck_3.0/V2EnvironmentTests/src/main/webapp/WEB-INF/portlet.xml b/portlet-tck_3.0/V2EnvironmentTests/src/main/webapp/WEB-INF/portlet.xml
new file mode 100644
index 0000000..d056e32
--- /dev/null
+++ b/portlet-tck_3.0/V2EnvironmentTests/src/main/webapp/WEB-INF/portlet.xml
@@ -0,0 +1,379 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+    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.     
+-->
+<portlet-app xmlns="http://java.sun.com/xml/ns/portlet/portlet-app_2_0.xsd"
+   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+   xsi:schemaLocation="http://java.sun.com/xml/ns/portlet/portlet-app_2_0.xsd http://java.sun.com/xml/ns/portlet/portlet-app_2_0.xsd"
+   version="2.0" id="javax.portlet-tck-EnvironmentTests">
+
+   <portlet>
+      <portlet-name>V2EnvironmentTests_CacheControl</portlet-name>
+      <portlet-class>javax.portlet.tck.EnvironmentTests.portlets.V2EnvironmentTests_CacheControl</portlet-class>
+
+      <init-param>
+         <name>TestParameter</name>
+         <value>TestValue</value>
+      </init-param>
+
+      <expiration-cache>0</expiration-cache>
+
+      <supports>
+         <mime-type>text/html</mime-type>
+      </supports>
+
+      <supported-locale>en_US</supported-locale>
+
+      <portlet-info>
+         <title>V2EnvironmentTests_CacheControl</title>
+      </portlet-info>
+   </portlet>
+
+   <portlet>
+      <portlet-name>V2EnvironmentTests_SIG_CacheControl</portlet-name>
+      <portlet-class>javax.portlet.tck.EnvironmentTests.portlets.V2EnvironmentTests_SIG_CacheControl</portlet-class>
+
+      <init-param>
+         <name>TestParameter</name>
+         <value>TestValue</value>
+      </init-param>
+
+      <expiration-cache>0</expiration-cache>
+
+      <supports>
+         <mime-type>text/html</mime-type>
+      </supports>
+
+      <supported-locale>en_US</supported-locale>
+
+      <portlet-info>
+         <title>V2EnvironmentTests_SIG_CacheControl</title>
+      </portlet-info>
+   </portlet>
+
+   <portlet>
+      <portlet-name>V2EnvironmentTests_PortalContext</portlet-name>
+      <portlet-class>javax.portlet.tck.EnvironmentTests.portlets.V2EnvironmentTests_PortalContext</portlet-class>
+
+      <init-param>
+         <name>TestParameter</name>
+         <value>TestValue</value>
+      </init-param>
+
+      <expiration-cache>0</expiration-cache>
+
+      <supports>
+         <mime-type>text/html</mime-type>
+      </supports>
+
+      <supported-locale>en_US</supported-locale>
+
+      <portlet-info>
+         <title>V2EnvironmentTests_PortalContext</title>
+      </portlet-info>
+   </portlet>
+
+   <portlet>
+      <portlet-name>V2EnvironmentTests_SIG_PortalContext</portlet-name>
+      <portlet-class>javax.portlet.tck.EnvironmentTests.portlets.V2EnvironmentTests_SIG_PortalContext</portlet-class>
+
+      <init-param>
+         <name>TestParameter</name>
+         <value>TestValue</value>
+      </init-param>
+
+      <expiration-cache>0</expiration-cache>
+
+      <supports>
+         <mime-type>text/html</mime-type>
+      </supports>
+
+      <supported-locale>en_US</supported-locale>
+
+      <portlet-info>
+         <title>V2EnvironmentTests_SIG_PortalContext</title>
+      </portlet-info>
+   </portlet>
+
+   <portlet>
+      <portlet-name>V2EnvironmentTests_PortletContext</portlet-name>
+      <portlet-class>javax.portlet.tck.EnvironmentTests.portlets.V2EnvironmentTests_PortletContext</portlet-class>
+
+      <init-param>
+         <name>TestParameter</name>
+         <value>TestValue</value>
+      </init-param>
+
+      <expiration-cache>0</expiration-cache>
+
+      <supports>
+         <mime-type>text/html</mime-type>
+      </supports>
+
+      <supported-locale>en_US</supported-locale>
+
+      <portlet-info>
+         <title>V2EnvironmentTests_PortletContext</title>
+      </portlet-info>
+   </portlet>
+
+   <portlet>
+      <portlet-name>V2EnvironmentTests_SIG_PortletContext</portlet-name>
+      <portlet-class>javax.portlet.tck.EnvironmentTests.portlets.V2EnvironmentTests_SIG_PortletContext</portlet-class>
+
+      <init-param>
+         <name>TestParameter</name>
+         <value>TestValue</value>
+      </init-param>
+
+      <expiration-cache>0</expiration-cache>
+
+      <supports>
+         <mime-type>text/html</mime-type>
+      </supports>
+
+      <supported-locale>en_US</supported-locale>
+
+      <portlet-info>
+         <title>V2EnvironmentTests_SIG_PortletContext</title>
+      </portlet-info>
+   </portlet>
+
+   <portlet>
+      <portlet-name>V2EnvironmentTests_PortletPreferences</portlet-name>
+      <portlet-class>javax.portlet.tck.EnvironmentTests.portlets.V2EnvironmentTests_PortletPreferences</portlet-class>
+
+      <init-param>
+         <name>TestParameter</name>
+         <value>TestValue</value>
+      </init-param>
+
+      <expiration-cache>0</expiration-cache>
+
+      <supports>
+         <mime-type>text/html</mime-type>
+      </supports>
+
+      <supported-locale>en_US</supported-locale>
+
+      <portlet-info>
+         <title>V2EnvironmentTests_PortletPreferences</title>
+      </portlet-info>
+   </portlet>
+
+   <portlet>
+      <portlet-name>V2EnvironmentTests_SIG_PortletPreferences</portlet-name>
+      <portlet-class>javax.portlet.tck.EnvironmentTests.portlets.V2EnvironmentTests_SIG_PortletPreferences</portlet-class>
+
+      <init-param>
+         <name>TestParameter</name>
+         <value>TestValue</value>
+      </init-param>
+
+      <expiration-cache>0</expiration-cache>
+
+      <supports>
+         <mime-type>text/html</mime-type>
+      </supports>
+
+      <supported-locale>en_US</supported-locale>
+
+      <portlet-info>
+         <title>V2EnvironmentTests_SIG_PortletPreferences</title>
+      </portlet-info>
+   </portlet>
+
+   <portlet>
+      <portlet-name>V2EnvironmentTests_PreferencesValidator</portlet-name>
+      <portlet-class>javax.portlet.tck.EnvironmentTests.portlets.V2EnvironmentTests_PreferencesValidator</portlet-class>
+
+      <init-param>
+         <name>TestParameter</name>
+         <value>TestValue</value>
+      </init-param>
+
+      <expiration-cache>0</expiration-cache>
+
+      <supports>
+         <mime-type>text/html</mime-type>
+      </supports>
+
+      <supported-locale>en_US</supported-locale>
+
+      <portlet-info>
+         <title>V2EnvironmentTests_PreferencesValidator</title>
+      </portlet-info>
+   </portlet>
+
+   <portlet>
+      <portlet-name>V2EnvironmentTests_SIG_PreferencesValidator</portlet-name>
+      <portlet-class>javax.portlet.tck.EnvironmentTests.portlets.V2EnvironmentTests_SIG_PreferencesValidator</portlet-class>
+
+      <init-param>
+         <name>TestParameter</name>
+         <value>TestValue</value>
+      </init-param>
+
+      <expiration-cache>0</expiration-cache>
+
+      <supports>
+         <mime-type>text/html</mime-type>
+      </supports>
+
+      <supported-locale>en_US</supported-locale>
+
+      <portlet-info>
+         <title>V2EnvironmentTests_SIG_PreferencesValidator</title>
+      </portlet-info>
+   </portlet>
+
+   <portlet>
+      <portlet-name>V2EnvironmentTests_PortletRequestDispatcher</portlet-name>
+      <portlet-class>javax.portlet.tck.EnvironmentTests.portlets.V2EnvironmentTests_PortletRequestDispatcher</portlet-class>
+
+      <init-param>
+         <name>TestParameter</name>
+         <value>TestValue</value>
+      </init-param>
+
+      <expiration-cache>0</expiration-cache>
+
+      <supports>
+         <mime-type>text/html</mime-type>
+      </supports>
+
+      <supported-locale>en_US</supported-locale>
+
+      <portlet-info>
+         <title>V2EnvironmentTests_PortletRequestDispatcher</title>
+      </portlet-info>
+   </portlet>
+
+   <portlet>
+      <portlet-name>V2EnvironmentTests_SIG_PortletRequestDispatcher</portlet-name>
+      <portlet-class>javax.portlet.tck.EnvironmentTests.portlets.V2EnvironmentTests_SIG_PortletRequestDispatcher</portlet-class>
+
+      <init-param>
+         <name>TestParameter</name>
+         <value>TestValue</value>
+      </init-param>
+
+      <expiration-cache>0</expiration-cache>
+
+      <supports>
+         <mime-type>text/html</mime-type>
+      </supports>
+
+      <supported-locale>en_US</supported-locale>
+
+      <portlet-info>
+         <title>V2EnvironmentTests_SIG_PortletRequestDispatcher</title>
+      </portlet-info>
+   </portlet>
+
+   <portlet>
+      <portlet-name>V2EnvironmentTests_PortletSession</portlet-name>
+      <portlet-class>javax.portlet.tck.EnvironmentTests.portlets.V2EnvironmentTests_PortletSession</portlet-class>
+
+      <init-param>
+         <name>TestParameter</name>
+         <value>TestValue</value>
+      </init-param>
+
+      <expiration-cache>0</expiration-cache>
+
+      <supports>
+         <mime-type>text/html</mime-type>
+      </supports>
+
+      <supported-locale>en_US</supported-locale>
+
+      <portlet-info>
+         <title>V2EnvironmentTests_PortletSession</title>
+      </portlet-info>
+   </portlet>
+
+   <portlet>
+      <portlet-name>V2EnvironmentTests_SIG_PortletSession</portlet-name>
+      <portlet-class>javax.portlet.tck.EnvironmentTests.portlets.V2EnvironmentTests_SIG_PortletSession</portlet-class>
+
+      <init-param>
+         <name>TestParameter</name>
+         <value>TestValue</value>
+      </init-param>
+
+      <expiration-cache>0</expiration-cache>
+
+      <supports>
+         <mime-type>text/html</mime-type>
+      </supports>
+
+      <supported-locale>en_US</supported-locale>
+
+      <portlet-info>
+         <title>V2EnvironmentTests_SIG_PortletSession</title>
+      </portlet-info>
+   </portlet>
+
+   <portlet>
+      <portlet-name>V2EnvironmentTests_PortletSessionUtil</portlet-name>
+      <portlet-class>javax.portlet.tck.EnvironmentTests.portlets.V2EnvironmentTests_PortletSessionUtil</portlet-class>
+
+      <init-param>
+         <name>TestParameter</name>
+         <value>TestValue</value>
+      </init-param>
+
+      <expiration-cache>0</expiration-cache>
+
+      <supports>
+         <mime-type>text/html</mime-type>
+      </supports>
+
+      <supported-locale>en_US</supported-locale>
+
+      <portlet-info>
+         <title>V2EnvironmentTests_PortletSessionUtil</title>
+      </portlet-info>
+   </portlet>
+
+   <portlet>
+      <portlet-name>V2EnvironmentTests_SIG_PortletSessionUtil</portlet-name>
+      <portlet-class>javax.portlet.tck.EnvironmentTests.portlets.V2EnvironmentTests_SIG_PortletSessionUtil</portlet-class>
+
+      <init-param>
+         <name>TestParameter</name>
+         <value>TestValue</value>
+      </init-param>
+
+      <expiration-cache>0</expiration-cache>
+
+      <supports>
+         <mime-type>text/html</mime-type>
+      </supports>
+
+      <supported-locale>en_US</supported-locale>
+
+      <portlet-info>
+         <title>V2EnvironmentTests_SIG_PortletSessionUtil</title>
+      </portlet-info>
+   </portlet>
+
+
+
+</portlet-app>

http://git-wip-us.apache.org/repos/asf/portals-pluto/blob/bd830576/portlet-tck_3.0/V2EnvironmentTests/src/main/webapp/WEB-INF/web.xml
----------------------------------------------------------------------
diff --git a/portlet-tck_3.0/V2EnvironmentTests/src/main/webapp/WEB-INF/web.xml b/portlet-tck_3.0/V2EnvironmentTests/src/main/webapp/WEB-INF/web.xml
new file mode 100644
index 0000000..85ab4d5
--- /dev/null
+++ b/portlet-tck_3.0/V2EnvironmentTests/src/main/webapp/WEB-INF/web.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+    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.     
+-->
+<web-app id="WebApp_ID" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
+	<display-name>javax.portlet-tck-EnvironmentTests</display-name>
+</web-app>
+

http://git-wip-us.apache.org/repos/asf/portals-pluto/blob/bd830576/portlet-tck_3.0/V2ExceptionTests/pom.xml
----------------------------------------------------------------------
diff --git a/portlet-tck_3.0/V2ExceptionTests/pom.xml b/portlet-tck_3.0/V2ExceptionTests/pom.xml
new file mode 100644
index 0000000..e1cff77
--- /dev/null
+++ b/portlet-tck_3.0/V2ExceptionTests/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-V2ExceptionTests</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/V2ExceptionTests/src/main/java/javax/portlet/tck/ExceptionTests/portlets/V2ExceptionTests_PortletModeException.java
----------------------------------------------------------------------
diff --git a/portlet-tck_3.0/V2ExceptionTests/src/main/java/javax/portlet/tck/ExceptionTests/portlets/V2ExceptionTests_PortletModeException.java b/portlet-tck_3.0/V2ExceptionTests/src/main/java/javax/portlet/tck/ExceptionTests/portlets/V2ExceptionTests_PortletModeException.java
new file mode 100644
index 0000000..3491594
--- /dev/null
+++ b/portlet-tck_3.0/V2ExceptionTests/src/main/java/javax/portlet/tck/ExceptionTests/portlets/V2ExceptionTests_PortletModeException.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.ExceptionTests.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 V2ExceptionTests_PortletModeException implements Portlet {
+   private static final String LOG_CLASS = 
+         V2ExceptionTests_PortletModeException.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(PortletModeException.class);
+
+      // Create result objects for the tests
+
+      /* TestCase: PortletModeException_hasGetMode2 */
+      /* Details: "Returns the PortletMode object causing this exception" */
+      TestResult tr0 = tcd.getTestResultFailed(PORTLETMODEEXCEPTION_HASGETMODE2);
+      /* 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/V2ExceptionTests/src/main/java/javax/portlet/tck/ExceptionTests/portlets/V2ExceptionTests_SIG_PortletException.java
----------------------------------------------------------------------
diff --git a/portlet-tck_3.0/V2ExceptionTests/src/main/java/javax/portlet/tck/ExceptionTests/portlets/V2ExceptionTests_SIG_PortletException.java b/portlet-tck_3.0/V2ExceptionTests/src/main/java/javax/portlet/tck/ExceptionTests/portlets/V2ExceptionTests_SIG_PortletException.java
new file mode 100644
index 0000000..5f5bba5
--- /dev/null
+++ b/portlet-tck_3.0/V2ExceptionTests/src/main/java/javax/portlet/tck/ExceptionTests/portlets/V2ExceptionTests_SIG_PortletException.java
@@ -0,0 +1,131 @@
+/*  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.ExceptionTests.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 V2ExceptionTests_SIG_PortletException implements Portlet {
+   private static final String LOG_CLASS = 
+         V2ExceptionTests_SIG_PortletException.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(PortletException.class);
+
+      // Create result objects for the tests
+
+      /* TestCase: PortletException_SIG_extendsException */
+      /* Details: "Extends Exception " */
+      TestResult tr0 = tcd.getTestResultFailed(PORTLETEXCEPTION_SIG_EXTENDSEXCEPTION);
+      {
+         tr0.setTcSuccess(cc.hasSuperclass(Exception.class));
+      }
+
+      /* TestCase: PortletException_SIG_constructor */
+      /* Details: "Provides constructor PortletException() " */
+      TestResult tr1 = tcd.getTestResultFailed(PORTLETEXCEPTION_SIG_CONSTRUCTOR);
+      {
+         Class<?>[] parms = null;
+         tr1.setTcSuccess(cc.hasConstructor(parms));
+      }
+
+      /* TestCase: PortletException_SIG_constructorA */
+      /* Details: "Provides constructor PortletException(String) " */
+      TestResult tr2 = tcd.getTestResultFailed(PORTLETEXCEPTION_SIG_CONSTRUCTORA);
+      {
+         Class<?>[] parms = {String.class};
+         tr2.setTcSuccess(cc.hasConstructor(parms));
+      }
+
+      /* TestCase: PortletException_SIG_constructorB */
+      /* Details: "Provides constructor PortletException(String, Throwable) " */
+      TestResult tr3 = tcd.getTestResultFailed(PORTLETEXCEPTION_SIG_CONSTRUCTORB);
+      {
+         Class<?>[] parms = {String.class, Throwable.class};
+         tr3.setTcSuccess(cc.hasConstructor(parms));
+      }
+
+      /* TestCase: PortletException_SIG_constructorC */
+      /* Details: "Provides constructor PortletException(Throwable) " */
+      TestResult tr4 = tcd.getTestResultFailed(PORTLETEXCEPTION_SIG_CONSTRUCTORC);
+      {
+         Class<?>[] parms = {Throwable.class};
+         tr4.setTcSuccess(cc.hasConstructor(parms));
+      }
+
+
+
+      // 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/bd830576/portlet-tck_3.0/V2ExceptionTests/src/main/java/javax/portlet/tck/ExceptionTests/portlets/V2ExceptionTests_SIG_PortletModeException.java
----------------------------------------------------------------------
diff --git a/portlet-tck_3.0/V2ExceptionTests/src/main/java/javax/portlet/tck/ExceptionTests/portlets/V2ExceptionTests_SIG_PortletModeException.java b/portlet-tck_3.0/V2ExceptionTests/src/main/java/javax/portlet/tck/ExceptionTests/portlets/V2ExceptionTests_SIG_PortletModeException.java
new file mode 100644
index 0000000..7798600
--- /dev/null
+++ b/portlet-tck_3.0/V2ExceptionTests/src/main/java/javax/portlet/tck/ExceptionTests/portlets/V2ExceptionTests_SIG_PortletModeException.java
@@ -0,0 +1,144 @@
+/*  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.ExceptionTests.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 V2ExceptionTests_SIG_PortletModeException implements Portlet {
+   private static final String LOG_CLASS = 
+         V2ExceptionTests_SIG_PortletModeException.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(PortletModeException.class);
+
+      // Create result objects for the tests
+
+      /* TestCase: PortletModeException_SIG_extendsPortletException */
+      /* Details: "Extends PortletException " */
+      TestResult tr0 = tcd.getTestResultFailed(PORTLETMODEEXCEPTION_SIG_EXTENDSPORTLETEXCEPTION);
+      {
+         tr0.setTcSuccess(cc.hasSuperclass(PortletException.class));
+      }
+
+      /* TestCase: PortletModeException_SIG_constructor */
+      /* Details: "Provides constructor PortletModeException(String, PortletMode) " */
+      TestResult tr1 = tcd.getTestResultFailed(PORTLETMODEEXCEPTION_SIG_CONSTRUCTOR);
+      {
+         Class<?>[] parms = {String.class, PortletMode.class};
+         tr1.setTcSuccess(cc.hasConstructor(parms));
+      }
+
+      /* TestCase: PortletModeException_SIG_constructorA */
+      /* Details: "Provides constructor PortletModeException(String, Throwable, PortletMode) " */
+      TestResult tr2 = tcd.getTestResultFailed(PORTLETMODEEXCEPTION_SIG_CONSTRUCTORA);
+      {
+         Class<?>[] parms = {String.class, Throwable.class, PortletMode.class};
+         tr2.setTcSuccess(cc.hasConstructor(parms));
+      }
+
+      /* TestCase: PortletModeException_SIG_constructorB */
+      /* Details: "Provides constructor PortletModeException(Throwable, PortletMode) " */
+      TestResult tr3 = tcd.getTestResultFailed(PORTLETMODEEXCEPTION_SIG_CONSTRUCTORB);
+      {
+         Class<?>[] parms = {Throwable.class, PortletMode.class};
+         tr3.setTcSuccess(cc.hasConstructor(parms));
+      }
+
+      /* TestCase: PortletModeException_SIG_hasGetMode */
+      /* Details: "Has a getMode()  method " */
+      TestResult tr4 = tcd.getTestResultFailed(PORTLETMODEEXCEPTION_SIG_HASGETMODE);
+      {
+         String name = "getMode";
+         Class<?>[] exceptions = null;
+         Class<?>[] parms = null;
+         tr4.setTcSuccess(cc.hasMethod(name, parms, exceptions));
+      }
+
+      /* TestCase: PortletModeException_SIG_hasGetModeReturns */
+      /* Details: "Method getMode() returns PortletMode " */
+      TestResult tr5 = tcd.getTestResultFailed(PORTLETMODEEXCEPTION_SIG_HASGETMODERETURNS);
+      {
+         String name = "getMode";
+         Class<?> retType = PortletMode.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/V2ExceptionTests/src/main/java/javax/portlet/tck/ExceptionTests/portlets/V2ExceptionTests_SIG_PortletSecurityException.java
----------------------------------------------------------------------
diff --git a/portlet-tck_3.0/V2ExceptionTests/src/main/java/javax/portlet/tck/ExceptionTests/portlets/V2ExceptionTests_SIG_PortletSecurityException.java b/portlet-tck_3.0/V2ExceptionTests/src/main/java/javax/portlet/tck/ExceptionTests/portlets/V2ExceptionTests_SIG_PortletSecurityException.java
new file mode 100644
index 0000000..9fd695f
--- /dev/null
+++ b/portlet-tck_3.0/V2ExceptionTests/src/main/java/javax/portlet/tck/ExceptionTests/portlets/V2ExceptionTests_SIG_PortletSecurityException.java
@@ -0,0 +1,122 @@
+/*  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.ExceptionTests.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 V2ExceptionTests_SIG_PortletSecurityException implements Portlet {
+   private static final String LOG_CLASS = 
+         V2ExceptionTests_SIG_PortletSecurityException.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(PortletSecurityException.class);
+
+      // Create result objects for the tests
+
+      /* TestCase: PortletSecurityException_SIG_extendsPortletException */
+      /* Details: "Extends PortletException " */
+      TestResult tr0 = tcd.getTestResultFailed(PORTLETSECURITYEXCEPTION_SIG_EXTENDSPORTLETEXCEPTION);
+      {
+         tr0.setTcSuccess(cc.hasSuperclass(PortletException.class));
+      }
+
+      /* TestCase: PortletSecurityException_SIG_constructor */
+      /* Details: "Provides constructor PortletSecurityException(String) " */
+      TestResult tr1 = tcd.getTestResultFailed(PORTLETSECURITYEXCEPTION_SIG_CONSTRUCTOR);
+      {
+         Class<?>[] parms = {String.class};
+         tr1.setTcSuccess(cc.hasConstructor(parms));
+      }
+
+      /* TestCase: PortletSecurityException_SIG_constructorA */
+      /* Details: "Provides constructor PortletSecurityException(String, Throwable) " */
+      TestResult tr2 = tcd.getTestResultFailed(PORTLETSECURITYEXCEPTION_SIG_CONSTRUCTORA);
+      {
+         Class<?>[] parms = {String.class, Throwable.class};
+         tr2.setTcSuccess(cc.hasConstructor(parms));
+      }
+
+      /* TestCase: PortletSecurityException_SIG_constructorB */
+      /* Details: "Provides constructor PortletSecurityException(Throwable) " */
+      TestResult tr3 = tcd.getTestResultFailed(PORTLETSECURITYEXCEPTION_SIG_CONSTRUCTORB);
+      {
+         Class<?>[] parms = {Throwable.class};
+         tr3.setTcSuccess(cc.hasConstructor(parms));
+      }
+
+
+
+      // Write the results to the output stream
+
+      tr0.writeTo(writer);
+      tr1.writeTo(writer);
+      tr2.writeTo(writer);
+      tr3.writeTo(writer);
+
+
+   }
+
+}
+

http://git-wip-us.apache.org/repos/asf/portals-pluto/blob/bd830576/portlet-tck_3.0/V2ExceptionTests/src/main/java/javax/portlet/tck/ExceptionTests/portlets/V2ExceptionTests_SIG_ReadOnlyException.java
----------------------------------------------------------------------
diff --git a/portlet-tck_3.0/V2ExceptionTests/src/main/java/javax/portlet/tck/ExceptionTests/portlets/V2ExceptionTests_SIG_ReadOnlyException.java b/portlet-tck_3.0/V2ExceptionTests/src/main/java/javax/portlet/tck/ExceptionTests/portlets/V2ExceptionTests_SIG_ReadOnlyException.java
new file mode 100644
index 0000000..2893250
--- /dev/null
+++ b/portlet-tck_3.0/V2ExceptionTests/src/main/java/javax/portlet/tck/ExceptionTests/portlets/V2ExceptionTests_SIG_ReadOnlyException.java
@@ -0,0 +1,122 @@
+/*  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.ExceptionTests.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 V2ExceptionTests_SIG_ReadOnlyException implements Portlet {
+   private static final String LOG_CLASS = 
+         V2ExceptionTests_SIG_ReadOnlyException.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(ReadOnlyException.class);
+
+      // Create result objects for the tests
+
+      /* TestCase: ReadOnlyException_SIG_extendsPortletException */
+      /* Details: "Extends PortletException " */
+      TestResult tr0 = tcd.getTestResultFailed(READONLYEXCEPTION_SIG_EXTENDSPORTLETEXCEPTION);
+      {
+         tr0.setTcSuccess(cc.hasSuperclass(PortletException.class));
+      }
+
+      /* TestCase: ReadOnlyException_SIG_constructor */
+      /* Details: "Provides constructor ReadOnlyException(String) " */
+      TestResult tr1 = tcd.getTestResultFailed(READONLYEXCEPTION_SIG_CONSTRUCTOR);
+      {
+         Class<?>[] parms = {String.class};
+         tr1.setTcSuccess(cc.hasConstructor(parms));
+      }
+
+      /* TestCase: ReadOnlyException_SIG_constructorA */
+      /* Details: "Provides constructor ReadOnlyException(String, Throwable) " */
+      TestResult tr2 = tcd.getTestResultFailed(READONLYEXCEPTION_SIG_CONSTRUCTORA);
+      {
+         Class<?>[] parms = {String.class, Throwable.class};
+         tr2.setTcSuccess(cc.hasConstructor(parms));
+      }
+
+      /* TestCase: ReadOnlyException_SIG_constructorB */
+      /* Details: "Provides constructor ReadOnlyException(Throwable) " */
+      TestResult tr3 = tcd.getTestResultFailed(READONLYEXCEPTION_SIG_CONSTRUCTORB);
+      {
+         Class<?>[] parms = {Throwable.class};
+         tr3.setTcSuccess(cc.hasConstructor(parms));
+      }
+
+
+
+      // Write the results to the output stream
+
+      tr0.writeTo(writer);
+      tr1.writeTo(writer);
+      tr2.writeTo(writer);
+      tr3.writeTo(writer);
+
+
+   }
+
+}
+