diff --git a/portlet-tck_3.0/V3PortletParametersTests/pom.xml b/portlet-tck_3.0/V3PortletParametersTests/pom.xml
new file mode 100755
index 0000000..6110e87
--- /dev/null
+++ b/portlet-tck_3.0/V3PortletParametersTests/pom.xml
@@ -0,0 +1,135 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--
+    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>portlet-tck</artifactId>
+      <version>3.0-SNAPSHOT</version>
+   </parent>
+
+   <artifactId>tck-V3PortletParametersTests</artifactId>
+   <packaging>war</packaging>
+
+   <dependencies>
+      <dependency>
+         <groupId>org.apache.portals.pluto</groupId>
+         <artifactId>portlet-api</artifactId>
+      </dependency>
+      <dependency>
+         <groupId>org.apache.tomcat</groupId>
+         <artifactId>tomcat-servlet-api</artifactId>
+      </dependency>
+      <dependency>
+         <groupId>javax.portlet</groupId>
+         <artifactId>tck-common</artifactId>
+         <version>${project.version}</version>
+         <scope>compile</scope>
+      </dependency>
+
+      <!-- for tooling purposes -->
+      <dependency>
+         <groupId>org.apache.tomcat</groupId>
+         <artifactId>tomcat-jsp-api</artifactId>
+         <scope>provided</scope>
+      </dependency>
+      <dependency>
+         <groupId>org.apache.tomcat</groupId>
+         <artifactId>tomcat-el-api</artifactId>
+         <scope>provided</scope>
+      </dependency>
+      <dependency>
+         <groupId>org.apache.taglibs</groupId>
+         <artifactId>taglibs-standard-spec</artifactId>
+         <scope>provided</scope>
+      </dependency>
+      <dependency>
+         <groupId>org.apache.taglibs</groupId>
+         <artifactId>taglibs-standard-impl</artifactId>
+         <scope>provided</scope>
+      </dependency>
+      <dependency>
+         <groupId>org.apache.taglibs</groupId>
+         <artifactId>taglibs-standard-jstlel</artifactId>
+         <scope>provided</scope>
+      </dependency>
+      <dependency>
+         <groupId>org.apache.portals.pluto</groupId>
+         <artifactId>pluto-taglib</artifactId>
+         <scope>provided</scope>
+      </dependency>
+   </dependencies>
+
+   <properties>
+      <!-- This module defines all test cases in a file (TCs are not generated from the portlet.xml) -->
+      <additional.testcases.only>true</additional.testcases.only>
+
+      <!-- This module places the portlets on the page through a file. (Page is not generated from the portlet.xml) -->
+      <additional.pagefile.only>true</additional.pagefile.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>
+         
+         <!-- copy page & test case files, renaming properly -->
+         <plugin>
+            <groupId>com.coderplus.maven.plugins</groupId>
+            <artifactId>copy-rename-maven-plugin</artifactId>
+         </plugin>
+      </plugins>
+   </build>
+
+
+   <profiles>
+      <profile>
+         <id>pluto</id>
+
+         <dependencies>
+            <dependency>
+               <groupId>org.apache.taglibs</groupId>
+               <artifactId>taglibs-standard-spec</artifactId>
+               <scope>compile</scope>
+            </dependency>
+            <dependency>
+               <groupId>org.apache.taglibs</groupId>
+               <artifactId>taglibs-standard-impl</artifactId>
+               <scope>compile</scope>
+            </dependency>
+            <dependency>
+               <groupId>org.apache.taglibs</groupId>
+               <artifactId>taglibs-standard-jstlel</artifactId>
+               <scope>compile</scope>
+            </dependency>
+         </dependencies>
+        
+      </profile>
+   </profiles>
+
+</project>
diff --git a/portlet-tck_3.0/V3PortletParametersTests/src/main/docs/ModuleAssertions.csv b/portlet-tck_3.0/V3PortletParametersTests/src/main/docs/ModuleAssertions.csv
new file mode 100644
index 0000000..132beba
--- /dev/null
+++ b/portlet-tck_3.0/V3PortletParametersTests/src/main/docs/ModuleAssertions.csv
@@ -0,0 +1,24 @@
+PARMS outputPath=./portlet-tck_3.0
+//
+// The tool is used with the command: java -jar TestFileGenerator.jar <filespec>
+// Example:                           java -jar target\TestFileGenerator.jar ModuleAssertions.csv
+//
+// The format of this file is as follows:
+// * lines beginning with '//', blank lines, and the header line beginning with
+//   'Class / Section' are ignored.
+// * If the first line begins with 'PARMS', the rest of the line contains parameters for the run.
+//   The output path can be specified as parameter.
+// * A line containing a single word followed by ';;;;' starts a new module.
+// * The tool can generate multiple modules from one input file.
+// * The class name is generated from the module name and the contents of the first and 
+//   second columns. When this combination changes, you get a new portlet.
+//
+// The tool recognizes duplicate test case names. You should make sure that there are none.
+//
+Class / Section;Keywords;Name;Testable;Description
+PortletParametersTests;;;;
+SPEC11;1;getNames;TRUE;Returns a set of strings representing the portlet parameter names
+SPEC11;1;getValue;TRUE;Returns a single portlet parameter value as a string for a given name
+SPEC11;1;getValues;TRUE;Returns all portlet parameter value as a string array for a given name
+SPEC11;1;size;TRUE;Returns the number of portlet parameters available
+SPEC11;1;clone;TRUE;Clones the given portlet parameters returning a mutable copy of the parameters
diff --git a/portlet-tck_3.0/V3PortletParametersTests/src/main/java/javax/portlet/tck/portlets/PortletParametersTests_SPEC11_1.java b/portlet-tck_3.0/V3PortletParametersTests/src/main/java/javax/portlet/tck/portlets/PortletParametersTests_SPEC11_1.java
new file mode 100644
index 0000000..55a4836
--- /dev/null
+++ b/portlet-tck_3.0/V3PortletParametersTests/src/main/java/javax/portlet/tck/portlets/PortletParametersTests_SPEC11_1.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.portlets;
+
+import java.io.*;
+import java.util.*;
+import java.util.logging.*;
+import static java.util.logging.Logger.*;
+import javax.xml.namespace.QName;
+import javax.portlet.*;
+import javax.portlet.annotations.*;
+import javax.portlet.filter.*;
+import javax.servlet.*;
+import javax.servlet.http.*;
+import javax.portlet.tck.beans.*;
+import javax.portlet.tck.constants.*;
+import javax.portlet.tck.util.ModuleTestCaseDetails;
+import static javax.portlet.tck.util.ModuleTestCaseDetails.*;
+import static javax.portlet.tck.constants.Constants.*;
+import static javax.portlet.PortletSession.*;
+import static javax.portlet.ResourceURL.*;
+
+/**
+ * This portlet implements several test cases for the JSR 362 TCK. The test case names
+ * are defined in the /src/main/resources/xml-resources/additionalTCs.xml
+ * file. The build process will integrate the test case names defined in the 
+ * additionalTCs.xml file into the complete list of test case names for execution by the driver.
+ *
+ */
+
+@PortletConfiguration(portletName = "PortletParametersTests_SPEC11_1")
+public class PortletParametersTests_SPEC11_1 implements Portlet {
+   
+   private PortletConfig portletConfig = null;
+
+   @Override
+   public void init(PortletConfig config) throws PortletException {
+      this.portletConfig = config;
+   }
+
+   @Override
+   public void destroy() {
+   }
+
+   @Override
+   public void processAction(ActionRequest portletReq, ActionResponse portletResp) throws PortletException, IOException {
+   }
+
+   @Override
+   public void render(RenderRequest portletReq, RenderResponse portletResp) throws PortletException, IOException {
+
+      PrintWriter writer = portletResp.getWriter();
+      ModuleTestCaseDetails tcd = new ModuleTestCaseDetails();
+
+      /* TestCase: V3PortletParametersTests_SPEC11_1_getNames                       */
+      /* Details: "Returns a set of strings representing the portlet parameter      */
+      /* names"                                                                     */
+      {
+         TestResult result = tcd.getTestResultFailed(V3PORTLETPARAMETERSTESTS_SPEC11_1_GETNAMES);
+         /* TODO: implement test */
+         result.appendTcDetail("Not implemented.");
+         result.writeTo(writer);
+      }
+
+      /* TestCase: V3PortletParametersTests_SPEC11_1_getValue                       */
+      /* Details: "Returns a single portlet parameter value as a string for a given */
+      /* name"                                                                      */
+      {
+         TestResult result = tcd.getTestResultFailed(V3PORTLETPARAMETERSTESTS_SPEC11_1_GETVALUE);
+         /* TODO: implement test */
+         result.appendTcDetail("Not implemented.");
+         result.writeTo(writer);
+      }
+
+      /* TestCase: V3PortletParametersTests_SPEC11_1_getValues                      */
+      /* Details: "Returns all portlet parameter value as a string array for a      */
+      /* given name"                                                                */
+      {
+         TestResult result = tcd.getTestResultFailed(V3PORTLETPARAMETERSTESTS_SPEC11_1_GETVALUES);
+         /* TODO: implement test */
+         result.appendTcDetail("Not implemented.");
+         result.writeTo(writer);
+      }
+
+      /* TestCase: V3PortletParametersTests_SPEC11_1_size                           */
+      /* Details: "Returns the number of portlet parameters available"              */
+      {
+         TestResult result = tcd.getTestResultFailed(V3PORTLETPARAMETERSTESTS_SPEC11_1_SIZE);
+         /* TODO: implement test */
+         result.appendTcDetail("Not implemented.");
+         result.writeTo(writer);
+      }
+
+      /* TestCase: V3PortletParametersTests_SPEC11_1_clone                          */
+      /* Details: "Clones the given portlet parameters returning a mutable copy of  */
+      /* the parameters"                                                            */
+      {
+         TestResult result = tcd.getTestResultFailed(V3PORTLETPARAMETERSTESTS_SPEC11_1_CLONE);
+         /* TODO: implement test */
+         result.appendTcDetail("Not implemented.");
+         result.writeTo(writer);
+      }
+
+   }
+
+}
diff --git a/portlet-tck_3.0/V3PortletParametersTests/src/main/java/javax/portlet/tck/util/ModuleTestCaseDetails.java b/portlet-tck_3.0/V3PortletParametersTests/src/main/java/javax/portlet/tck/util/ModuleTestCaseDetails.java
new file mode 100644
index 0000000..7954d4f
--- /dev/null
+++ b/portlet-tck_3.0/V3PortletParametersTests/src/main/java/javax/portlet/tck/util/ModuleTestCaseDetails.java
@@ -0,0 +1,68 @@
+/*  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.util;
+
+import java.util.HashMap;
+import java.util.Map;
+import javax.portlet.tck.beans.TestCaseDetails;
+
+/**
+ * Defines constants for the test case names and test case details 
+ * for the JSR 362 TCK.
+ * 
+ * Note that the backing map is static and not threadsafe. Operations
+ * that change the map such as put, remove, etc., should not be used
+ * in portlets.
+ * 
+ * @author nick
+ */
+public class ModuleTestCaseDetails extends TestCaseDetails {
+
+   public final static String V3PORTLETPARAMETERSTESTS_SPEC11_1_GETNAMES = "V3PortletParametersTests_SPEC11_1_getNames";
+   public final static String V3PORTLETPARAMETERSTESTS_SPEC11_1_GETVALUE = "V3PortletParametersTests_SPEC11_1_getValue";
+   public final static String V3PORTLETPARAMETERSTESTS_SPEC11_1_GETVALUES = "V3PortletParametersTests_SPEC11_1_getValues";
+   public final static String V3PORTLETPARAMETERSTESTS_SPEC11_1_SIZE = "V3PortletParametersTests_SPEC11_1_size";
+   public final static String V3PORTLETPARAMETERSTESTS_SPEC11_1_CLONE = "V3PortletParametersTests_SPEC11_1_clone";
+
+   
+   private final static Map<String, String> tcd = new HashMap<String, String>();
+   static {
+
+      tcd.put(V3PORTLETPARAMETERSTESTS_SPEC11_1_GETNAMES, "Returns a set of strings representing the portlet parameter names");
+      tcd.put(V3PORTLETPARAMETERSTESTS_SPEC11_1_GETVALUE, "Returns a single portlet parameter value as a string for a given name");
+      tcd.put(V3PORTLETPARAMETERSTESTS_SPEC11_1_GETVALUES, "Returns all portlet parameter value as a string array for a given name");
+      tcd.put(V3PORTLETPARAMETERSTESTS_SPEC11_1_SIZE, "Returns the number of portlet parameters available");
+      tcd.put(V3PORTLETPARAMETERSTESTS_SPEC11_1_CLONE, "Clones the given portlet parameters returning a mutable copy of the parameters");
+
+   }
+
+   /**
+    * Constructor.
+    * 
+    * Passes the static test case names - details map to the superclass
+    * 
+    * Note that the backing map is static and not threadsafe. Operations
+    * that change the map such as put, remove, etc., should not be used
+    * in portlets.
+    */
+   public ModuleTestCaseDetails() {
+     super(tcd); 
+   }
+
+}
diff --git a/portlet-tck_3.0/V3PortletParametersTests/src/main/resources/xml-resources/additionalPages.xml b/portlet-tck_3.0/V3PortletParametersTests/src/main/resources/xml-resources/additionalPages.xml
new file mode 100644
index 0000000..3497a6a
--- /dev/null
+++ b/portlet-tck_3.0/V3PortletParametersTests/src/main/resources/xml-resources/additionalPages.xml
@@ -0,0 +1,38 @@
+<?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.     
+-->
+<pluto-portal-driver xmlns="http://portals.apache.org/pluto/xsd/pluto-portal-driver-config.xsd" xmlns:pa="http://java.sun.com/xml/ns/portlet/portlet-app_2_0.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://portals.apache.org/pluto/xsd/pluto-portal-driver-config.xsd                         http://portals.apache.org/pluto/pluto-portal/1.1/pluto-portal-driver-config.xsd" version="1.1">
+<portal-name>pluto-portal-driver</portal-name>
+<portal-version>2.1.0-SNAPSHOT</portal-version>
+<container-name>Pluto Portal Driver</container-name>
+<supports>
+<portlet-mode>view</portlet-mode>
+<portlet-mode>edit</portlet-mode>
+<portlet-mode>help</portlet-mode>
+<portlet-mode>config</portlet-mode>
+<window-state>normal</window-state>
+<window-state>maximized</window-state>
+<window-state>minimized</window-state>
+</supports>
+<render-config default="About Apache Pluto">
+<page xmlns="" name="V3PortletParametersTests" uri="/WEB-INF/themes/pluto-default-theme.jsp">
+<portlet context="/tck-V3PortletParametersTests-3.0-SNAPSHOT" name="PortletParametersTests_SPEC11_1"/>
+</page>
+</render-config>
+</pluto-portal-driver>
diff --git a/portlet-tck_3.0/V3PortletParametersTests/src/main/resources/xml-resources/additionalTCs.xml b/portlet-tck_3.0/V3PortletParametersTests/src/main/resources/xml-resources/additionalTCs.xml
new file mode 100644
index 0000000..3a1ca8b
--- /dev/null
+++ b/portlet-tck_3.0/V3PortletParametersTests/src/main/resources/xml-resources/additionalTCs.xml
@@ -0,0 +1,28 @@
+<?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.     
+-->
+<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
+<properties>
+<!-- JSR 362 API PortletParametersTests test case names and page mappings -->
+<entry key="V3PortletParametersTests_SPEC11_1_getNames">V3PortletParametersTests</entry>
+<entry key="V3PortletParametersTests_SPEC11_1_getValue">V3PortletParametersTests</entry>
+<entry key="V3PortletParametersTests_SPEC11_1_getValues">V3PortletParametersTests</entry>
+<entry key="V3PortletParametersTests_SPEC11_1_size">V3PortletParametersTests</entry>
+<entry key="V3PortletParametersTests_SPEC11_1_clone">V3PortletParametersTests</entry>
+</properties>
diff --git a/portlet-tck_3.0/deploy/pom.xml b/portlet-tck_3.0/deploy/pom.xml
index 6c4651e..ae8f0b0 100644
--- a/portlet-tck_3.0/deploy/pom.xml
+++ b/portlet-tck_3.0/deploy/pom.xml
@@ -1,4 +1,5 @@
-<?xml version="1.0" encoding="UTF-8"?><!--
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--
     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
@@ -15,361 +16,367 @@
     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>portlet-tck</artifactId>
-		<version>3.0-SNAPSHOT</version>
-	</parent>
-
-	<artifactId>tck-deploy</artifactId>
-	<packaging>jar</packaging>
-
-	<description>
-  Each test module produces a war file containing test portlets. This project
-  aggregates all test portlet war files into a single directory under 
-  target/deploy-files.
-  </description>
-
-
-	<dependencies>
-
-		<!-- List the modules containing test cases in order to aggregate the output -->
-		<dependency>
-			<groupId>${project.groupId}</groupId>
-			<artifactId>tck-TestModule1</artifactId>
-			<version>${project.version}</version>
-			<type>war</type>
-		</dependency>
-		<dependency>
-			<groupId>${project.groupId}</groupId>
-			<artifactId>tck-TestModule2</artifactId>
-			<version>${project.version}</version>
-			<type>war</type>
-		</dependency>
-      <dependency>
-         <groupId>${project.groupId}</groupId>
-         <artifactId>tck-TestModule3-Portlet1</artifactId>
-         <version>${project.version}</version>
-         <type>war</type>
-      </dependency>
-      <dependency>
-         <groupId>${project.groupId}</groupId>
-         <artifactId>tck-TestModule3-Portlet2</artifactId>
-         <version>${project.version}</version>
-         <type>war</type>
-      </dependency>
-      <dependency>
-         <groupId>${project.groupId}</groupId>
-         <artifactId>tck-V2AnnotationTests</artifactId>
-         <version>${project.version}</version>
-         <type>war</type>
-      </dependency>
-      <dependency>
-         <groupId>${project.groupId}</groupId>
-         <artifactId>tck-V2EnvironmentTests</artifactId>
-         <version>${project.version}</version>
-         <type>war</type>
-      </dependency>
-      <dependency>
-         <groupId>${project.groupId}</groupId>
-         <artifactId>tck-V2ExceptionTests</artifactId>
-         <version>${project.version}</version>
-         <type>war</type>
-      </dependency>
-      <dependency>
-         <groupId>${project.groupId}</groupId>
-         <artifactId>tck-V2FilterTests</artifactId>
-         <version>${project.version}</version>
-         <type>war</type>
-      </dependency>
-      <dependency>
-         <groupId>${project.groupId}</groupId>
-         <artifactId>tck-V2PortletTests</artifactId>
-         <version>${project.version}</version>
-         <type>war</type>
-      </dependency>
-      <dependency>
-         <groupId>${project.groupId}</groupId>
-         <artifactId>tck-V2RequestTests</artifactId>
-         <version>${project.version}</version>
-         <type>war</type>
-      </dependency>
-      <dependency>
-         <groupId>${project.groupId}</groupId>
-         <artifactId>tck-V2ResponseTests</artifactId>
-         <version>${project.version}</version>
-         <type>war</type>
-      </dependency>
-      <dependency>
-         <groupId>${project.groupId}</groupId>
-         <artifactId>tck-V2URLTests</artifactId>
-         <version>${project.version}</version>
-         <type>war</type>
-      </dependency>
-      <dependency>
-         <groupId>${project.groupId}</groupId>
-         <artifactId>tck-V2WrapperTests</artifactId>
-         <version>${project.version}</version>
-         <type>war</type>
-      </dependency>
-      <dependency>
-         <groupId>${project.groupId}</groupId>
-         <artifactId>tck-V2AddlEnvironmentTests</artifactId>
-         <version>${project.version}</version>
-         <type>war</type>
-      </dependency>
-      <dependency>
-         <groupId>${project.groupId}</groupId>
-         <artifactId>tck-V2AddlFilterTests</artifactId>
-         <version>${project.version}</version>
-         <type>war</type>
-      </dependency>
-      <dependency>
-         <groupId>${project.groupId}</groupId>
-         <artifactId>tck-V2AddlPortletTests</artifactId>
-         <version>${project.version}</version>
-         <type>war</type>
-      </dependency>
-      <dependency>
-         <groupId>${project.groupId}</groupId>
-         <artifactId>tck-V2AddlRequestTests</artifactId>
-         <version>${project.version}</version>
-         <type>war</type>
-      </dependency>
-      <dependency>
-         <groupId>${project.groupId}</groupId>
-         <artifactId>tck-V2AddlResponseTests</artifactId>
-         <version>${project.version}</version>
-         <type>war</type>
-      </dependency>
-      <dependency>
-         <groupId>${project.groupId}</groupId>
-         <artifactId>tck-V2PortletTagLibraryTests</artifactId>
-         <version>${project.version}</version>
-         <type>war</type>
-      </dependency>
-      <dependency>
-         <groupId>${project.groupId}</groupId>
-         <artifactId>tck-V2PortletTagLibraryTests2</artifactId>
-         <version>${project.version}</version>
-         <type>war</type>
-      </dependency>
-      <dependency>
-         <groupId>${project.groupId}</groupId>
-         <artifactId>tck-V2PortletTagLibraryTests3</artifactId>
-         <version>${project.version}</version>
-         <type>war</type>
-      </dependency>
-      <dependency>
-         <groupId>${project.groupId}</groupId>
-         <artifactId>tck-V2DispatcherTests</artifactId>
-         <version>${project.version}</version>
-         <type>war</type>
-      </dependency>
-      <dependency>
-         <groupId>${project.groupId}</groupId>
-         <artifactId>tck-V2DispatcherTests2</artifactId>
-         <version>${project.version}</version>
-         <type>war</type>
-      </dependency>
-      <dependency>
-         <groupId>${project.groupId}</groupId>
-         <artifactId>tck-V2DispatcherTests3S</artifactId>
-         <version>${project.version}</version>
-         <type>war</type>
-      </dependency>
-      <dependency>
-         <groupId>${project.groupId}</groupId>
-         <artifactId>tck-V2DispatcherTests4</artifactId>
-         <version>${project.version}</version>
-         <type>war</type>
-      </dependency>
-      <dependency>
-         <groupId>${project.groupId}</groupId>
-         <artifactId>tck-V2DispatcherTests5</artifactId>
-         <version>${project.version}</version>
-         <type>war</type>
-      </dependency>
-      <dependency>
-         <groupId>${project.groupId}</groupId>
-         <artifactId>tck-V2DispatcherTests6</artifactId>
-         <version>${project.version}</version>
-         <type>war</type>
-      </dependency>
-      <dependency>
-         <groupId>${project.groupId}</groupId>
-         <artifactId>tck-V2DispatcherReqRespTests1</artifactId>
-         <version>${project.version}</version>
-         <type>war</type>
-      </dependency>
-      <dependency>
-         <groupId>${project.groupId}</groupId>
-         <artifactId>tck-V2DispatcherReqRespTests2</artifactId>
-         <version>${project.version}</version>
-         <type>war</type>
-      </dependency>
-      <dependency>
-         <groupId>${project.groupId}</groupId>
-         <artifactId>tck-V2DispatcherReqRespTests3</artifactId>
-         <version>${project.version}</version>
-         <type>war</type>
-      </dependency>
-      <dependency>
-         <groupId>${project.groupId}</groupId>
-         <artifactId>tck-V2DispatcherReqRespTests4</artifactId>
-         <version>${project.version}</version>
-         <type>war</type>
-      </dependency>
-      <dependency>
-         <groupId>${project.groupId}</groupId>
-         <artifactId>tck-V2DispatcherReqRespTests5S</artifactId>
-         <version>${project.version}</version>
-         <type>war</type>
-      </dependency>
-      <dependency>
-         <groupId>${project.groupId}</groupId>
-         <artifactId>tck-V2SigTestsAction</artifactId>
-         <version>${project.version}</version>
-         <type>war</type>
-      </dependency>
-      <dependency>
-         <groupId>${project.groupId}</groupId>
-         <artifactId>tck-V2SigTestsEnv</artifactId>
-         <version>${project.version}</version>
-         <type>war</type>
-      </dependency>
-      <dependency>
-         <groupId>${project.groupId}</groupId>
-         <artifactId>tck-V2SigTestsEvent</artifactId>
-         <version>${project.version}</version>
-         <type>war</type>
-      </dependency>
-      <dependency>
-         <groupId>${project.groupId}</groupId>
-         <artifactId>tck-V2SigTestsException</artifactId>
-         <version>${project.version}</version>
-         <type>war</type>
-      </dependency>
-      <dependency>
-         <groupId>${project.groupId}</groupId>
-         <artifactId>tck-V2SigTestsFilter</artifactId>
-         <version>${project.version}</version>
-         <type>war</type>
-      </dependency>
-      <dependency>
-         <groupId>${project.groupId}</groupId>
-         <artifactId>tck-V2SigTestsRender</artifactId>
-         <version>${project.version}</version>
-         <type>war</type>
-      </dependency>
-      <dependency>
-         <groupId>${project.groupId}</groupId>
-         <artifactId>tck-V2SigTestsResource</artifactId>
-         <version>${project.version}</version>
-         <type>war</type>
-      </dependency>
-      <dependency>
-         <groupId>${project.groupId}</groupId>
-         <artifactId>tck-V2SigTestsURL</artifactId>
-         <version>${project.version}</version>
-         <type>war</type>
-      </dependency>
-      <dependency>
-         <groupId>${project.groupId}</groupId>
-         <artifactId>tck-V2SigTestsWrapper</artifactId>
-         <version>${project.version}</version>
-         <type>war</type>
-      </dependency>
-
-      <dependency>
-         <groupId>${project.groupId}</groupId>
-         <artifactId>tck-V3PortletContextTests</artifactId>
-         <version>${project.version}</version>
-         <type>war</type>
-      </dependency>
-	  <dependency>
-         <groupId>${project.groupId}</groupId>
-         <artifactId>tck-V3URLTests</artifactId>
-         <version>${project.version}</version>
-         <type>war</type>
-      </dependency>
-	  <dependency>
-         <groupId>${project.groupId}</groupId>
-         <artifactId>tck-V3RenderStateTests</artifactId>
-         <version>${project.version}</version>
-         <type>war</type>
-      </dependency>
-        <dependency>
-            <groupId>${project.groupId}</groupId>
-            <artifactId>tck-V3PortletConfigTests</artifactId>
-            <version>${project.version}</version>
-            <type>war</type>
-        </dependency>
-      <dependency>
-         <groupId>${project.groupId}</groupId>
-         <artifactId>tck-V3HeaderPortletTests</artifactId>
-         <version>${project.version}</version>
-         <type>war</type>
-      </dependency>
-
-      <dependency>
-         <groupId>${project.groupId}</groupId>
-         <artifactId>tck-driver</artifactId>
-         <version>${project.version}</version>
-         <type>jar</type>
-      </dependency>
-	</dependencies>
-
-	<build>
-		<finalName>${project.artifactId}</finalName>
-
-      <resources>
-         <resource>
-            <directory>target/generated-resources/xml/final</directory>
-            <targetPath>../deploy-files</targetPath>
-            <includes>
-               <include>*.xml</include>
-            </includes>
-         </resource>
-      </resources>
-
-		<plugins>
-			<plugin>
-				<groupId>org.apache.maven.plugins</groupId>
-				<artifactId>maven-dependency-plugin</artifactId>
-				<executions>
-					<execution>
-						<id>copy-wars</id>
-						<phase>package</phase>
-						<goals>
-							<goal>copy-dependencies</goal>
-						</goals>
-						<configuration>
-						   <excludeArtifactIds>tck-driver</excludeArtifactIds>
-							<outputDirectory>${project.build.directory}/deploy-files</outputDirectory>
-							<excludeTransitive>true</excludeTransitive>
-						</configuration>
-					</execution>
-
-					<!-- For extracting the page file from the driver -->
-					<execution>
-						<id>extract-xml-resource</id>
-						<phase>generate-sources</phase>
-						<goals>
-							<goal>unpack-dependencies</goal>
-						</goals>
-						<configuration>
-							<includeArtifactIds>tck-driver</includeArtifactIds>
-							<includes>generated-resources/xml/final/${page.file.final.name}</includes>
-							<outputDirectory>${project.build.directory}</outputDirectory>
-						</configuration>
-					</execution>
-				</executions>
-			</plugin>
-		</plugins>
-	</build>
-
-</project>
\ No newline at end of file
+--><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>portlet-tck</artifactId>
+		<version>3.0-SNAPSHOT</version>
+	</parent>
+
+	<artifactId>tck-deploy</artifactId>
+	<packaging>jar</packaging>
+
+	<description>
+  Each test module produces a war file containing test portlets. This project
+  aggregates all test portlet war files into a single directory under 
+  target/deploy-files.
+  </description>
+
+
+	<dependencies>
+
+		<!-- List the modules containing test cases in order to aggregate the output -->
+		<dependency>
+			<groupId>${project.groupId}</groupId>
+			<artifactId>tck-TestModule1</artifactId>
+			<version>${project.version}</version>
+			<type>war</type>
+		</dependency>
+		<dependency>
+			<groupId>${project.groupId}</groupId>
+			<artifactId>tck-TestModule2</artifactId>
+			<version>${project.version}</version>
+			<type>war</type>
+		</dependency>
+      <dependency>
+         <groupId>${project.groupId}</groupId>
+         <artifactId>tck-TestModule3-Portlet1</artifactId>
+         <version>${project.version}</version>
+         <type>war</type>
+      </dependency>
+      <dependency>
+         <groupId>${project.groupId}</groupId>
+         <artifactId>tck-TestModule3-Portlet2</artifactId>
+         <version>${project.version}</version>
+         <type>war</type>
+      </dependency>
+      <dependency>
+         <groupId>${project.groupId}</groupId>
+         <artifactId>tck-V2AnnotationTests</artifactId>
+         <version>${project.version}</version>
+         <type>war</type>
+      </dependency>
+      <dependency>
+         <groupId>${project.groupId}</groupId>
+         <artifactId>tck-V2EnvironmentTests</artifactId>
+         <version>${project.version}</version>
+         <type>war</type>
+      </dependency>
+      <dependency>
+         <groupId>${project.groupId}</groupId>
+         <artifactId>tck-V2ExceptionTests</artifactId>
+         <version>${project.version}</version>
+         <type>war</type>
+      </dependency>
+      <dependency>
+         <groupId>${project.groupId}</groupId>
+         <artifactId>tck-V2FilterTests</artifactId>
+         <version>${project.version}</version>
+         <type>war</type>
+      </dependency>
+      <dependency>
+         <groupId>${project.groupId}</groupId>
+         <artifactId>tck-V2PortletTests</artifactId>
+         <version>${project.version}</version>
+         <type>war</type>
+      </dependency>
+      <dependency>
+         <groupId>${project.groupId}</groupId>
+         <artifactId>tck-V2RequestTests</artifactId>
+         <version>${project.version}</version>
+         <type>war</type>
+      </dependency>
+      <dependency>
+         <groupId>${project.groupId}</groupId>
+         <artifactId>tck-V2ResponseTests</artifactId>
+         <version>${project.version}</version>
+         <type>war</type>
+      </dependency>
+      <dependency>
+         <groupId>${project.groupId}</groupId>
+         <artifactId>tck-V2URLTests</artifactId>
+         <version>${project.version}</version>
+         <type>war</type>
+      </dependency>
+      <dependency>
+         <groupId>${project.groupId}</groupId>
+         <artifactId>tck-V2WrapperTests</artifactId>
+         <version>${project.version}</version>
+         <type>war</type>
+      </dependency>
+      <dependency>
+         <groupId>${project.groupId}</groupId>
+         <artifactId>tck-V2AddlEnvironmentTests</artifactId>
+         <version>${project.version}</version>
+         <type>war</type>
+      </dependency>
+      <dependency>
+         <groupId>${project.groupId}</groupId>
+         <artifactId>tck-V2AddlFilterTests</artifactId>
+         <version>${project.version}</version>
+         <type>war</type>
+      </dependency>
+      <dependency>
+         <groupId>${project.groupId}</groupId>
+         <artifactId>tck-V2AddlPortletTests</artifactId>
+         <version>${project.version}</version>
+         <type>war</type>
+      </dependency>
+      <dependency>
+         <groupId>${project.groupId}</groupId>
+         <artifactId>tck-V2AddlRequestTests</artifactId>
+         <version>${project.version}</version>
+         <type>war</type>
+      </dependency>
+      <dependency>
+         <groupId>${project.groupId}</groupId>
+         <artifactId>tck-V2AddlResponseTests</artifactId>
+         <version>${project.version}</version>
+         <type>war</type>
+      </dependency>
+      <dependency>
+         <groupId>${project.groupId}</groupId>
+         <artifactId>tck-V2PortletTagLibraryTests</artifactId>
+         <version>${project.version}</version>
+         <type>war</type>
+      </dependency>
+      <dependency>
+         <groupId>${project.groupId}</groupId>
+         <artifactId>tck-V2PortletTagLibraryTests2</artifactId>
+         <version>${project.version}</version>
+         <type>war</type>
+      </dependency>
+      <dependency>
+         <groupId>${project.groupId}</groupId>
+         <artifactId>tck-V2PortletTagLibraryTests3</artifactId>
+         <version>${project.version}</version>
+         <type>war</type>
+      </dependency>
+      <dependency>
+         <groupId>${project.groupId}</groupId>
+         <artifactId>tck-V2DispatcherTests</artifactId>
+         <version>${project.version}</version>
+         <type>war</type>
+      </dependency>
+      <dependency>
+         <groupId>${project.groupId}</groupId>
+         <artifactId>tck-V2DispatcherTests2</artifactId>
+         <version>${project.version}</version>
+         <type>war</type>
+      </dependency>
+      <dependency>
+         <groupId>${project.groupId}</groupId>
+         <artifactId>tck-V2DispatcherTests3S</artifactId>
+         <version>${project.version}</version>
+         <type>war</type>
+      </dependency>
+      <dependency>
+         <groupId>${project.groupId}</groupId>
+         <artifactId>tck-V2DispatcherTests4</artifactId>
+         <version>${project.version}</version>
+         <type>war</type>
+      </dependency>
+      <dependency>
+         <groupId>${project.groupId}</groupId>
+         <artifactId>tck-V2DispatcherTests5</artifactId>
+         <version>${project.version}</version>
+         <type>war</type>
+      </dependency>
+      <dependency>
+         <groupId>${project.groupId}</groupId>
+         <artifactId>tck-V2DispatcherTests6</artifactId>
+         <version>${project.version}</version>
+         <type>war</type>
+      </dependency>
+      <dependency>
+         <groupId>${project.groupId}</groupId>
+         <artifactId>tck-V2DispatcherReqRespTests1</artifactId>
+         <version>${project.version}</version>
+         <type>war</type>
+      </dependency>
+      <dependency>
+         <groupId>${project.groupId}</groupId>
+         <artifactId>tck-V2DispatcherReqRespTests2</artifactId>
+         <version>${project.version}</version>
+         <type>war</type>
+      </dependency>
+      <dependency>
+         <groupId>${project.groupId}</groupId>
+         <artifactId>tck-V2DispatcherReqRespTests3</artifactId>
+         <version>${project.version}</version>
+         <type>war</type>
+      </dependency>
+      <dependency>
+         <groupId>${project.groupId}</groupId>
+         <artifactId>tck-V2DispatcherReqRespTests4</artifactId>
+         <version>${project.version}</version>
+         <type>war</type>
+      </dependency>
+      <dependency>
+         <groupId>${project.groupId}</groupId>
+         <artifactId>tck-V2DispatcherReqRespTests5S</artifactId>
+         <version>${project.version}</version>
+         <type>war</type>
+      </dependency>
+      <dependency>
+         <groupId>${project.groupId}</groupId>
+         <artifactId>tck-V2SigTestsAction</artifactId>
+         <version>${project.version}</version>
+         <type>war</type>
+      </dependency>
+      <dependency>
+         <groupId>${project.groupId}</groupId>
+         <artifactId>tck-V2SigTestsEnv</artifactId>
+         <version>${project.version}</version>
+         <type>war</type>
+      </dependency>
+      <dependency>
+         <groupId>${project.groupId}</groupId>
+         <artifactId>tck-V2SigTestsEvent</artifactId>
+         <version>${project.version}</version>
+         <type>war</type>
+      </dependency>
+      <dependency>
+         <groupId>${project.groupId}</groupId>
+         <artifactId>tck-V2SigTestsException</artifactId>
+         <version>${project.version}</version>
+         <type>war</type>
+      </dependency>
+      <dependency>
+         <groupId>${project.groupId}</groupId>
+         <artifactId>tck-V2SigTestsFilter</artifactId>
+         <version>${project.version}</version>
+         <type>war</type>
+      </dependency>
+      <dependency>
+         <groupId>${project.groupId}</groupId>
+         <artifactId>tck-V2SigTestsRender</artifactId>
+         <version>${project.version}</version>
+         <type>war</type>
+      </dependency>
+      <dependency>
+         <groupId>${project.groupId}</groupId>
+         <artifactId>tck-V2SigTestsResource</artifactId>
+         <version>${project.version}</version>
+         <type>war</type>
+      </dependency>
+      <dependency>
+         <groupId>${project.groupId}</groupId>
+         <artifactId>tck-V2SigTestsURL</artifactId>
+         <version>${project.version}</version>
+         <type>war</type>
+      </dependency>
+      <dependency>
+         <groupId>${project.groupId}</groupId>
+         <artifactId>tck-V2SigTestsWrapper</artifactId>
+         <version>${project.version}</version>
+         <type>war</type>
+      </dependency>
+
+      <dependency>
+         <groupId>${project.groupId}</groupId>
+         <artifactId>tck-V3PortletContextTests</artifactId>
+         <version>${project.version}</version>
+         <type>war</type>
+      </dependency>
+	  <dependency>
+         <groupId>${project.groupId}</groupId>
+         <artifactId>tck-V3URLTests</artifactId>
+         <version>${project.version}</version>
+         <type>war</type>
+      </dependency>
+	  <dependency>
+         <groupId>${project.groupId}</groupId>
+         <artifactId>tck-V3RenderStateTests</artifactId>
+         <version>${project.version}</version>
+         <type>war</type>
+      </dependency>
+        <dependency>
+            <groupId>${project.groupId}</groupId>
+            <artifactId>tck-V3PortletConfigTests</artifactId>
+            <version>${project.version}</version>
+            <type>war</type>
+        </dependency>
+      <dependency>
+         <groupId>${project.groupId}</groupId>
+         <artifactId>tck-V3HeaderPortletTests</artifactId>
+         <version>${project.version}</version>
+         <type>war</type>
+      </dependency>
+      <dependency>
+         <groupId>${project.groupId}</groupId>
+         <artifactId>tck-V3PortletParametersTests</artifactId>
+         <version>${project.version}</version>
+         <type>war</type>
+      </dependency>
+
+      <dependency>
+         <groupId>${project.groupId}</groupId>
+         <artifactId>tck-driver</artifactId>
+         <version>${project.version}</version>
+         <type>jar</type>
+      </dependency>
+	</dependencies>
+
+	<build>
+		<finalName>${project.artifactId}</finalName>
+
+      <resources>
+         <resource>
+            <directory>target/generated-resources/xml/final</directory>
+            <targetPath>../deploy-files</targetPath>
+            <includes>
+               <include>*.xml</include>
+            </includes>
+         </resource>
+      </resources>
+
+		<plugins>
+			<plugin>
+				<groupId>org.apache.maven.plugins</groupId>
+				<artifactId>maven-dependency-plugin</artifactId>
+				<executions>
+					<execution>
+						<id>copy-wars</id>
+						<phase>package</phase>
+						<goals>
+							<goal>copy-dependencies</goal>
+						</goals>
+						<configuration>
+						   <excludeArtifactIds>tck-driver</excludeArtifactIds>
+							<outputDirectory>${project.build.directory}/deploy-files</outputDirectory>
+							<excludeTransitive>true</excludeTransitive>
+						</configuration>
+					</execution>
+
+					<!-- For extracting the page file from the driver -->
+					<execution>
+						<id>extract-xml-resource</id>
+						<phase>generate-sources</phase>
+						<goals>
+							<goal>unpack-dependencies</goal>
+						</goals>
+						<configuration>
+							<includeArtifactIds>tck-driver</includeArtifactIds>
+							<includes>generated-resources/xml/final/${page.file.final.name}</includes>
+							<outputDirectory>${project.build.directory}</outputDirectory>
+						</configuration>
+					</execution>
+				</executions>
+			</plugin>
+		</plugins>
+	</build>
+
+</project>
diff --git a/portlet-tck_3.0/driver/pom.xml b/portlet-tck_3.0/driver/pom.xml
index aac756f..2078064 100644
--- a/portlet-tck_3.0/driver/pom.xml
+++ b/portlet-tck_3.0/driver/pom.xml
@@ -1,4 +1,5 @@
-<?xml version="1.0" encoding="UTF-8"?><!--
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--
     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
@@ -15,584 +16,591 @@
     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>portlet-tck</artifactId>
-      <version>3.0-SNAPSHOT</version>
-   </parent>
-
-   <artifactId>tck-driver</artifactId>
-   <packaging>jar</packaging>
-
-   <description>
-   This project builds the Junit / Selenium driver for the portlet API tck.
-   </description>
-
-   <dependencies>
-      <dependency>
-         <groupId>junit</groupId>
-         <artifactId>junit</artifactId>
-         <scope>compile</scope>
-      </dependency>
-      <dependency>
-         <groupId>org.seleniumhq.selenium</groupId>
-         <artifactId>selenium-java</artifactId>
-         <scope>compile</scope>
-      </dependency>
-      <dependency>
-         <groupId>org.seleniumhq.selenium</groupId>
-         <artifactId>htmlunit-driver</artifactId>
-         <scope>compile</scope>
-      </dependency>
-      
+--><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>portlet-tck</artifactId>
+      <version>3.0-SNAPSHOT</version>
+   </parent>
+
+   <artifactId>tck-driver</artifactId>
+   <packaging>jar</packaging>
+
+   <description>
+   This project builds the Junit / Selenium driver for the portlet API tck.
+   </description>
+
+   <dependencies>
+      <dependency>
+         <groupId>junit</groupId>
+         <artifactId>junit</artifactId>
+         <scope>compile</scope>
+      </dependency>
+      <dependency>
+         <groupId>org.seleniumhq.selenium</groupId>
+         <artifactId>selenium-java</artifactId>
+         <scope>compile</scope>
+      </dependency>
+      <dependency>
+         <groupId>org.seleniumhq.selenium</groupId>
+         <artifactId>htmlunit-driver</artifactId>
+         <scope>compile</scope>
+      </dependency>
+      
       <!-- PhantomJs Headless browser - Use if the default headless browser of Selenium is not working.
            In order to use - 
               1. Download PhantomJs - http://phantomjs.org/download.html
-              2. Configure driver to use PhantomJs in TCKSimpleTestDriver->setUpBeforeClass() method --> 
+              2. Configure driver to use PhantomJs in TCKSimpleTestDriver->setUpBeforeClass() method --> 
       <!-- 
       <dependency>
             <groupId>com.github.detro.ghostdriver</groupId>
             <artifactId>phantomjsdriver</artifactId>
             <version>1.0.4</version>
       </dependency>
-	  -->
-       
-      <!-- Dependency on common module for element ID suffixes -->
-      <dependency>
-         <groupId>javax.portlet</groupId>
-         <artifactId>tck-common</artifactId>
-         <version>${project.version}</version>
-         <scope>compile</scope>
-      </dependency>
-
-
-      <!-- List the modules containing test cases in order to aggregate the output -->
-      <dependency>
-         <groupId>${project.groupId}</groupId>
-         <artifactId>tck-TestModule1</artifactId>
-         <version>${project.version}</version>
-         <type>war</type>
-      </dependency>
-      <dependency>
-         <groupId>${project.groupId}</groupId>
-         <artifactId>tck-TestModule2</artifactId>
-         <version>${project.version}</version>
-         <type>war</type>
-      </dependency>
-      <dependency>
-         <groupId>${project.groupId}</groupId>
-         <artifactId>tck-TestModule3</artifactId>
-         <version>${project.version}</version>
-         <type>war</type>
-      </dependency>
-      <dependency>
-         <groupId>${project.groupId}</groupId>
-         <artifactId>tck-V2AnnotationTests</artifactId>
-         <version>${project.version}</version>
-         <type>war</type>
-      </dependency>
-      <dependency>
-         <groupId>${project.groupId}</groupId>
-         <artifactId>tck-V2EnvironmentTests</artifactId>
-         <version>${project.version}</version>
-         <type>war</type>
-      </dependency>
-      <dependency>
-         <groupId>${project.groupId}</groupId>
-         <artifactId>tck-V2ExceptionTests</artifactId>
-         <version>${project.version}</version>
-         <type>war</type>
-      </dependency>
-      <dependency>
-         <groupId>${project.groupId}</groupId>
-         <artifactId>tck-V2FilterTests</artifactId>
-         <version>${project.version}</version>
-         <type>war</type>
-      </dependency>
-      <dependency>
-         <groupId>${project.groupId}</groupId>
-         <artifactId>tck-V2PortletTests</artifactId>
-         <version>${project.version}</version>
-         <type>war</type>
-      </dependency>
-      <dependency>
-         <groupId>${project.groupId}</groupId>
-         <artifactId>tck-V2RequestTests</artifactId>
-         <version>${project.version}</version>
-         <type>war</type>
-      </dependency>
-      <dependency>
-         <groupId>${project.groupId}</groupId>
-         <artifactId>tck-V2ResponseTests</artifactId>
-         <version>${project.version}</version>
-         <type>war</type>
-      </dependency>
-      <dependency>
-         <groupId>${project.groupId}</groupId>
-         <artifactId>tck-V2URLTests</artifactId>
-         <version>${project.version}</version>
-         <type>war</type>
-      </dependency>
-      <dependency>
-         <groupId>${project.groupId}</groupId>
-         <artifactId>tck-V2WrapperTests</artifactId>
-         <version>${project.version}</version>
-         <type>war</type>
-      </dependency>
-      <dependency>
-         <groupId>${project.groupId}</groupId>
-         <artifactId>tck-V2AddlEnvironmentTests</artifactId>
-         <version>${project.version}</version>
-         <type>war</type>
-      </dependency>
-      <dependency>
-         <groupId>${project.groupId}</groupId>
-         <artifactId>tck-V2AddlFilterTests</artifactId>
-         <version>${project.version}</version>
-         <type>war</type>
-      </dependency>
-      <dependency>
-         <groupId>${project.groupId}</groupId>
-         <artifactId>tck-V2AddlPortletTests</artifactId>
-         <version>${project.version}</version>
-         <type>war</type>
-      </dependency>
-      <dependency>
-         <groupId>${project.groupId}</groupId>
-         <artifactId>tck-V2AddlRequestTests</artifactId>
-         <version>${project.version}</version>
-         <type>war</type>
-      </dependency>
-      <dependency>
-         <groupId>${project.groupId}</groupId>
-         <artifactId>tck-V2AddlResponseTests</artifactId>
-         <version>${project.version}</version>
-         <type>war</type>
-      </dependency>
-      <dependency>
-         <groupId>${project.groupId}</groupId>
-         <artifactId>tck-V2PortletTagLibraryTests</artifactId>
-         <version>${project.version}</version>
-         <type>war</type>
-      </dependency>
-      <dependency>
-         <groupId>${project.groupId}</groupId>
-         <artifactId>tck-V2PortletTagLibraryTests2</artifactId>
-         <version>${project.version}</version>
-         <type>war</type>
-      </dependency>
-      <dependency>
-         <groupId>${project.groupId}</groupId>
-         <artifactId>tck-V2PortletTagLibraryTests3</artifactId>
-         <version>${project.version}</version>
-         <type>war</type>
-      </dependency>
-      <dependency>
-         <groupId>${project.groupId}</groupId>
-         <artifactId>tck-V2DispatcherTests</artifactId>
-         <version>${project.version}</version>
-         <type>war</type>
-      </dependency>
-      <dependency>
-         <groupId>${project.groupId}</groupId>
-         <artifactId>tck-V2DispatcherTests2</artifactId>
-         <version>${project.version}</version>
-         <type>war</type>
-      </dependency>
-      <dependency>
-         <groupId>${project.groupId}</groupId>
-         <artifactId>tck-V2DispatcherTests3S</artifactId>
-         <version>${project.version}</version>
-         <type>war</type>
-      </dependency>
-      <dependency>
-         <groupId>${project.groupId}</groupId>
-         <artifactId>tck-V2DispatcherTests4</artifactId>
-         <version>${project.version}</version>
-         <type>war</type>
-      </dependency>
-      <dependency>
-         <groupId>${project.groupId}</groupId>
-         <artifactId>tck-V2DispatcherTests5</artifactId>
-         <version>${project.version}</version>
-         <type>war</type>
-      </dependency>
-      <dependency>
-         <groupId>${project.groupId}</groupId>
-         <artifactId>tck-V2DispatcherTests6</artifactId>
-         <version>${project.version}</version>
-         <type>war</type>
-      </dependency>
-      <dependency>
-         <groupId>${project.groupId}</groupId>
-         <artifactId>tck-V2DispatcherReqRespTests1</artifactId>
-         <version>${project.version}</version>
-         <type>war</type>
-      </dependency>
-      <dependency>
-         <groupId>${project.groupId}</groupId>
-         <artifactId>tck-V2DispatcherReqRespTests2</artifactId>
-         <version>${project.version}</version>
-         <type>war</type>
-      </dependency>
-      <dependency>
-         <groupId>${project.groupId}</groupId>
-         <artifactId>tck-V2DispatcherReqRespTests3</artifactId>
-         <version>${project.version}</version>
-         <type>war</type>
-      </dependency>
-      <dependency>
-         <groupId>${project.groupId}</groupId>
-         <artifactId>tck-V2DispatcherReqRespTests4</artifactId>
-         <version>${project.version}</version>
-         <type>war</type>
-      </dependency>
-      <dependency>
-         <groupId>${project.groupId}</groupId>
-         <artifactId>tck-V2DispatcherReqRespTests5S</artifactId>
-         <version>${project.version}</version>
-         <type>war</type>
-      </dependency>
-      <dependency>
-         <groupId>${project.groupId}</groupId>
-         <artifactId>tck-V2SigTestsAction</artifactId>
-         <version>${project.version}</version>
-         <type>war</type>
-      </dependency>
-      <dependency>
-         <groupId>${project.groupId}</groupId>
-         <artifactId>tck-V2SigTestsEnv</artifactId>
-         <version>${project.version}</version>
-         <type>war</type>
-      </dependency>
-      <dependency>
-         <groupId>${project.groupId}</groupId>
-         <artifactId>tck-V2SigTestsEvent</artifactId>
-         <version>${project.version}</version>
-         <type>war</type>
-      </dependency>
-      <dependency>
-         <groupId>${project.groupId}</groupId>
-         <artifactId>tck-V2SigTestsException</artifactId>
-         <version>${project.version}</version>
-         <type>war</type>
-      </dependency>
-      <dependency>
-         <groupId>${project.groupId}</groupId>
-         <artifactId>tck-V2SigTestsFilter</artifactId>
-         <version>${project.version}</version>
-         <type>war</type>
-      </dependency>
-      <dependency>
-         <groupId>${project.groupId}</groupId>
-         <artifactId>tck-V2SigTestsRender</artifactId>
-         <version>${project.version}</version>
-         <type>war</type>
-      </dependency>
-      <dependency>
-         <groupId>${project.groupId}</groupId>
-         <artifactId>tck-V2SigTestsResource</artifactId>
-         <version>${project.version}</version>
-         <type>war</type>
-      </dependency>
-      <dependency>
-         <groupId>${project.groupId}</groupId>
-         <artifactId>tck-V2SigTestsURL</artifactId>
-         <version>${project.version}</version>
-         <type>war</type>
-      </dependency>
-      <dependency>
-         <groupId>${project.groupId}</groupId>
-         <artifactId>tck-V2SigTestsWrapper</artifactId>
-         <version>${project.version}</version>
-         <type>war</type>
-      </dependency>
-      <dependency>
-         <groupId>${project.groupId}</groupId>
-         <artifactId>tck-V3PortletContextTests</artifactId>
-         <version>${project.version}</version>
-         <type>war</type>
-      </dependency>
-      <dependency>
-         <groupId>${project.groupId}</groupId>
-         <artifactId>tck-V3PortletConfigTests</artifactId>
-         <version>${project.version}</version>
-         <type>war</type>
-      </dependency>
-	  <dependency>
-         <groupId>${project.groupId}</groupId>
-         <artifactId>tck-V3URLTests</artifactId>
-         <version>${project.version}</version>
-         <type>war</type>
-      </dependency>
-	  <dependency>
-         <groupId>${project.groupId}</groupId>
-         <artifactId>tck-V3RenderStateTests</artifactId>
-         <version>${project.version}</version>
-         <type>war</type>
-      </dependency>
-   <dependency>
-         <groupId>${project.groupId}</groupId>
-         <artifactId>tck-V3HeaderPortletTests</artifactId>
-         <version>${project.version}</version>
-         <type>war</type>
-      </dependency>
-   </dependencies>
-
-   <properties>
-      <additional.testcases.only>true</additional.testcases.only>
-      <additional.pagefile.only>true</additional.pagefile.only>
-   </properties>
-
-   <build>
-      <finalName>${project.artifactId}</finalName>
-
-      <resources>
-         <resource>
-            <directory>src/main/resources/xml-resources</directory>
-            <targetPath>../${test.file.dir}</targetPath>
-            <includes>
-               <include>*</include>
-            </includes>
-         </resource>
-      </resources>
-
-      <plugins>
-
-         <!-- For extracting the XML transformation stylesheets from common module -->
-         <plugin>
-            <groupId>org.apache.maven.plugins</groupId>
-            <artifactId>maven-dependency-plugin</artifactId>
-            <executions>
-               <execution>
-                  <id>xml-resource-dependencies</id>
-                  <phase>generate-sources</phase>
-                  <goals>
-                     <goal>unpack-dependencies</goal>
-                  </goals>
-                  <configuration>
-                     <includeArtifactIds>
-                        tck-TestModule1,
-                        tck-TestModule2,
-                        tck-TestModule3,
-                        tck-V2AnnotationTests,
-                        tck-V2EnvironmentTests,
-                        tck-V2ExceptionTests,
-                        tck-V2FilterTests,
-                        tck-V2PortletTests,
-                        tck-V2RequestTests,
-                        tck-V2ResponseTests,
-                        tck-V2URLTests,
-                        tck-V2WrapperTests,
-                        tck-V2AddlEnvironmentTests,
-                        tck-V2AddlFilterTests,
-                        tck-V2AddlPortletTests,
-                        tck-V2AddlRequestTests,
-                        tck-V2AddlResponseTests,
-                        tck-V2SigTestsAction,
-                        tck-V2SigTestsEnv,
-                        tck-V2SigTestsEvent,
-                        tck-V2SigTestsException,
-                        tck-V2SigTestsFilter,
-                        tck-V2SigTestsRender,
-                        tck-V2SigTestsResource,
-                        tck-V2SigTestsURL,
-                        tck-V2SigTestsWrapper,
-                        tck-V2PortletTagLibraryTests,
-                        tck-V2PortletTagLibraryTests2,
-                        tck-V2PortletTagLibraryTests3,
-                        tck-V2DispatcherReqRespTests1,
-                        tck-V2DispatcherReqRespTests2,
-                        tck-V2DispatcherReqRespTests3,
-                        tck-V2DispatcherReqRespTests4,
-                        tck-V2DispatcherReqRespTests5S,
-                        tck-V2DispatcherTests,
-                        tck-V2DispatcherTests2,
-                        tck-V2DispatcherTests4,
-                        tck-V2DispatcherTests5,
-                        tck-V2DispatcherTests6,
-                        tck-V2DispatcherTests3S,
-                        
-                        tck-V3PortletContextTests,
-                        tck-V3PortletConfigTests,
-						tck-V3URLTests,
-						tck-V3RenderStateTests
-                        ,tck-V3HeaderPortletTests
-                     </includeArtifactIds>
-                     <includes>${test.file.dir}/*.xml</includes>
-                     <outputDirectory>${project.build.directory}</outputDirectory>
-                  </configuration>
-               </execution>
-            </executions>
-         </plugin>
-
-         <!-- For Performing xml translations to create test.xml files -->
-         <plugin>
-            <groupId>org.codehaus.mojo</groupId>
-            <artifactId>xml-maven-plugin</artifactId>
-            <version>1.0</version>
-            <executions>
-               <execution>
-                  <phase>process-resources</phase>
-                  <goals>
-                     <goal>transform</goal>
-                  </goals>
-               </execution>
-            </executions>
-            <configuration>
-               <transformationSets>
-
-                  <!-- Combine several test list files into a single module -->
-                  <transformationSet>
-                     <dir>${project.build.directory}/${test.file.dir}</dir>
-                     <includes>
-                        <include>testFiles.xml</include>
-                     </includes>
-                     <outputDir>${project.build.directory}/classes/${test.list.dir}</outputDir>
-                     <fileMappers>
-                        <fileMapper implementation="org.codehaus.plexus.components.io.filemappers.MergeFileMapper">
-                           <targetName>${test.list.name}</targetName>
-                        </fileMapper>
-                     </fileMappers>
-                     <stylesheet>${project.build.directory}/${test.file.dir}/${test.list.xsl}</stylesheet>
-                  </transformationSet>
-
+	  -->
+       
+      <!-- Dependency on common module for element ID suffixes -->
+      <dependency>
+         <groupId>javax.portlet</groupId>
+         <artifactId>tck-common</artifactId>
+         <version>${project.version}</version>
+         <scope>compile</scope>
+      </dependency>
+
+
+      <!-- List the modules containing test cases in order to aggregate the output -->
+      <dependency>
+         <groupId>${project.groupId}</groupId>
+         <artifactId>tck-TestModule1</artifactId>
+         <version>${project.version}</version>
+         <type>war</type>
+      </dependency>
+      <dependency>
+         <groupId>${project.groupId}</groupId>
+         <artifactId>tck-TestModule2</artifactId>
+         <version>${project.version}</version>
+         <type>war</type>
+      </dependency>
+      <dependency>
+         <groupId>${project.groupId}</groupId>
+         <artifactId>tck-TestModule3</artifactId>
+         <version>${project.version}</version>
+         <type>war</type>
+      </dependency>
+      <dependency>
+         <groupId>${project.groupId}</groupId>
+         <artifactId>tck-V2AnnotationTests</artifactId>
+         <version>${project.version}</version>
+         <type>war</type>
+      </dependency>
+      <dependency>
+         <groupId>${project.groupId}</groupId>
+         <artifactId>tck-V2EnvironmentTests</artifactId>
+         <version>${project.version}</version>
+         <type>war</type>
+      </dependency>
+      <dependency>
+         <groupId>${project.groupId}</groupId>
+         <artifactId>tck-V2ExceptionTests</artifactId>
+         <version>${project.version}</version>
+         <type>war</type>
+      </dependency>
+      <dependency>
+         <groupId>${project.groupId}</groupId>
+         <artifactId>tck-V2FilterTests</artifactId>
+         <version>${project.version}</version>
+         <type>war</type>
+      </dependency>
+      <dependency>
+         <groupId>${project.groupId}</groupId>
+         <artifactId>tck-V2PortletTests</artifactId>
+         <version>${project.version}</version>
+         <type>war</type>
+      </dependency>
+      <dependency>
+         <groupId>${project.groupId}</groupId>
+         <artifactId>tck-V2RequestTests</artifactId>
+         <version>${project.version}</version>
+         <type>war</type>
+      </dependency>
+      <dependency>
+         <groupId>${project.groupId}</groupId>
+         <artifactId>tck-V2ResponseTests</artifactId>
+         <version>${project.version}</version>
+         <type>war</type>
+      </dependency>
+      <dependency>
+         <groupId>${project.groupId}</groupId>
+         <artifactId>tck-V2URLTests</artifactId>
+         <version>${project.version}</version>
+         <type>war</type>
+      </dependency>
+      <dependency>
+         <groupId>${project.groupId}</groupId>
+         <artifactId>tck-V2WrapperTests</artifactId>
+         <version>${project.version}</version>
+         <type>war</type>
+      </dependency>
+      <dependency>
+         <groupId>${project.groupId}</groupId>
+         <artifactId>tck-V2AddlEnvironmentTests</artifactId>
+         <version>${project.version}</version>
+         <type>war</type>
+      </dependency>
+      <dependency>
+         <groupId>${project.groupId}</groupId>
+         <artifactId>tck-V2AddlFilterTests</artifactId>
+         <version>${project.version}</version>
+         <type>war</type>
+      </dependency>
+      <dependency>
+         <groupId>${project.groupId}</groupId>
+         <artifactId>tck-V2AddlPortletTests</artifactId>
+         <version>${project.version}</version>
+         <type>war</type>
+      </dependency>
+      <dependency>
+         <groupId>${project.groupId}</groupId>
+         <artifactId>tck-V2AddlRequestTests</artifactId>
+         <version>${project.version}</version>
+         <type>war</type>
+      </dependency>
+      <dependency>
+         <groupId>${project.groupId}</groupId>
+         <artifactId>tck-V2AddlResponseTests</artifactId>
+         <version>${project.version}</version>
+         <type>war</type>
+      </dependency>
+      <dependency>
+         <groupId>${project.groupId}</groupId>
+         <artifactId>tck-V2PortletTagLibraryTests</artifactId>
+         <version>${project.version}</version>
+         <type>war</type>
+      </dependency>
+      <dependency>
+         <groupId>${project.groupId}</groupId>
+         <artifactId>tck-V2PortletTagLibraryTests2</artifactId>
+         <version>${project.version}</version>
+         <type>war</type>
+      </dependency>
+      <dependency>
+         <groupId>${project.groupId}</groupId>
+         <artifactId>tck-V2PortletTagLibraryTests3</artifactId>
+         <version>${project.version}</version>
+         <type>war</type>
+      </dependency>
+      <dependency>
+         <groupId>${project.groupId}</groupId>
+         <artifactId>tck-V2DispatcherTests</artifactId>
+         <version>${project.version}</version>
+         <type>war</type>
+      </dependency>
+      <dependency>
+         <groupId>${project.groupId}</groupId>
+         <artifactId>tck-V2DispatcherTests2</artifactId>
+         <version>${project.version}</version>
+         <type>war</type>
+      </dependency>
+      <dependency>
+         <groupId>${project.groupId}</groupId>
+         <artifactId>tck-V2DispatcherTests3S</artifactId>
+         <version>${project.version}</version>
+         <type>war</type>
+      </dependency>
+      <dependency>
+         <groupId>${project.groupId}</groupId>
+         <artifactId>tck-V2DispatcherTests4</artifactId>
+         <version>${project.version}</version>
+         <type>war</type>
+      </dependency>
+      <dependency>
+         <groupId>${project.groupId}</groupId>
+         <artifactId>tck-V2DispatcherTests5</artifactId>
+         <version>${project.version}</version>
+         <type>war</type>
+      </dependency>
+      <dependency>
+         <groupId>${project.groupId}</groupId>
+         <artifactId>tck-V2DispatcherTests6</artifactId>
+         <version>${project.version}</version>
+         <type>war</type>
+      </dependency>
+      <dependency>
+         <groupId>${project.groupId}</groupId>
+         <artifactId>tck-V2DispatcherReqRespTests1</artifactId>
+         <version>${project.version}</version>
+         <type>war</type>
+      </dependency>
+      <dependency>
+         <groupId>${project.groupId}</groupId>
+         <artifactId>tck-V2DispatcherReqRespTests2</artifactId>
+         <version>${project.version}</version>
+         <type>war</type>
+      </dependency>
+      <dependency>
+         <groupId>${project.groupId}</groupId>
+         <artifactId>tck-V2DispatcherReqRespTests3</artifactId>
+         <version>${project.version}</version>
+         <type>war</type>
+      </dependency>
+      <dependency>
+         <groupId>${project.groupId}</groupId>
+         <artifactId>tck-V2DispatcherReqRespTests4</artifactId>
+         <version>${project.version}</version>
+         <type>war</type>
+      </dependency>
+      <dependency>
+         <groupId>${project.groupId}</groupId>
+         <artifactId>tck-V2DispatcherReqRespTests5S</artifactId>
+         <version>${project.version}</version>
+         <type>war</type>
+      </dependency>
+      <dependency>
+         <groupId>${project.groupId}</groupId>
+         <artifactId>tck-V2SigTestsAction</artifactId>
+         <version>${project.version}</version>
+         <type>war</type>
+      </dependency>
+      <dependency>
+         <groupId>${project.groupId}</groupId>
+         <artifactId>tck-V2SigTestsEnv</artifactId>
+         <version>${project.version}</version>
+         <type>war</type>
+      </dependency>
+      <dependency>
+         <groupId>${project.groupId}</groupId>
+         <artifactId>tck-V2SigTestsEvent</artifactId>
+         <version>${project.version}</version>
+         <type>war</type>
+      </dependency>
+      <dependency>
+         <groupId>${project.groupId}</groupId>
+         <artifactId>tck-V2SigTestsException</artifactId>
+         <version>${project.version}</version>
+         <type>war</type>
+      </dependency>
+      <dependency>
+         <groupId>${project.groupId}</groupId>
+         <artifactId>tck-V2SigTestsFilter</artifactId>
+         <version>${project.version}</version>
+         <type>war</type>
+      </dependency>
+      <dependency>
+         <groupId>${project.groupId}</groupId>
+         <artifactId>tck-V2SigTestsRender</artifactId>
+         <version>${project.version}</version>
+         <type>war</type>
+      </dependency>
+      <dependency>
+         <groupId>${project.groupId}</groupId>
+         <artifactId>tck-V2SigTestsResource</artifactId>
+         <version>${project.version}</version>
+         <type>war</type>
+      </dependency>
+      <dependency>
+         <groupId>${project.groupId}</groupId>
+         <artifactId>tck-V2SigTestsURL</artifactId>
+         <version>${project.version}</version>
+         <type>war</type>
+      </dependency>
+      <dependency>
+         <groupId>${project.groupId}</groupId>
+         <artifactId>tck-V2SigTestsWrapper</artifactId>
+         <version>${project.version}</version>
+         <type>war</type>
+      </dependency>
+      <dependency>
+         <groupId>${project.groupId}</groupId>
+         <artifactId>tck-V3PortletContextTests</artifactId>
+         <version>${project.version}</version>
+         <type>war</type>
+      </dependency>
+      <dependency>
+         <groupId>${project.groupId}</groupId>
+         <artifactId>tck-V3PortletConfigTests</artifactId>
+         <version>${project.version}</version>
+         <type>war</type>
+      </dependency>
+	  <dependency>
+         <groupId>${project.groupId}</groupId>
+         <artifactId>tck-V3URLTests</artifactId>
+         <version>${project.version}</version>
+         <type>war</type>
+      </dependency>
+	  <dependency>
+         <groupId>${project.groupId}</groupId>
+         <artifactId>tck-V3RenderStateTests</artifactId>
+         <version>${project.version}</version>
+         <type>war</type>
+      </dependency>
+   <dependency>
+         <groupId>${project.groupId}</groupId>
+         <artifactId>tck-V3HeaderPortletTests</artifactId>
+         <version>${project.version}</version>
+         <type>war</type>
+      </dependency>
+   <dependency>
+         <groupId>${project.groupId}</groupId>
+         <artifactId>tck-V3PortletParametersTests</artifactId>
+         <version>${project.version}</version>
+         <type>war</type>
+      </dependency>
+   </dependencies>
+
+   <properties>
+      <additional.testcases.only>true</additional.testcases.only>
+      <additional.pagefile.only>true</additional.pagefile.only>
+   </properties>
+
+   <build>
+      <finalName>${project.artifactId}</finalName>
+
+      <resources>
+         <resource>
+            <directory>src/main/resources/xml-resources</directory>
+            <targetPath>../${test.file.dir}</targetPath>
+            <includes>
+               <include>*</include>
+            </includes>
+         </resource>
+      </resources>
+
+      <plugins>
+
+         <!-- For extracting the XML transformation stylesheets from common module -->
+         <plugin>
+            <groupId>org.apache.maven.plugins</groupId>
+            <artifactId>maven-dependency-plugin</artifactId>
+            <executions>
+               <execution>
+                  <id>xml-resource-dependencies</id>
+                  <phase>generate-sources</phase>
+                  <goals>
+                     <goal>unpack-dependencies</goal>
+                  </goals>
+                  <configuration>
+                     <includeArtifactIds>
+                        tck-TestModule1,
+                        tck-TestModule2,
+                        tck-TestModule3,
+                        tck-V2AnnotationTests,
+                        tck-V2EnvironmentTests,
+                        tck-V2ExceptionTests,
+                        tck-V2FilterTests,
+                        tck-V2PortletTests,
+                        tck-V2RequestTests,
+                        tck-V2ResponseTests,
+                        tck-V2URLTests,
+                        tck-V2WrapperTests,
+                        tck-V2AddlEnvironmentTests,
+                        tck-V2AddlFilterTests,
+                        tck-V2AddlPortletTests,
+                        tck-V2AddlRequestTests,
+                        tck-V2AddlResponseTests,
+                        tck-V2SigTestsAction,
+                        tck-V2SigTestsEnv,
+                        tck-V2SigTestsEvent,
+                        tck-V2SigTestsException,
+                        tck-V2SigTestsFilter,
+                        tck-V2SigTestsRender,
+                        tck-V2SigTestsResource,
+                        tck-V2SigTestsURL,
+                        tck-V2SigTestsWrapper,
+                        tck-V2PortletTagLibraryTests,
+                        tck-V2PortletTagLibraryTests2,
+                        tck-V2PortletTagLibraryTests3,
+                        tck-V2DispatcherReqRespTests1,
+                        tck-V2DispatcherReqRespTests2,
+                        tck-V2DispatcherReqRespTests3,
+                        tck-V2DispatcherReqRespTests4,
+                        tck-V2DispatcherReqRespTests5S,
+                        tck-V2DispatcherTests,
+                        tck-V2DispatcherTests2,
+                        tck-V2DispatcherTests4,
+                        tck-V2DispatcherTests5,
+                        tck-V2DispatcherTests6,
+                        tck-V2DispatcherTests3S,
+                        
+                        tck-V3PortletContextTests,
+                        tck-V3PortletConfigTests,
+						tck-V3URLTests,
+						tck-V3RenderStateTests
+                        ,tck-V3HeaderPortletTests
+                        ,tck-V3PortletParametersTests
+                     </includeArtifactIds>
+                     <includes>${test.file.dir}/*.xml</includes>
+                     <outputDirectory>${project.build.directory}</outputDirectory>
+                  </configuration>
+               </execution>
+            </executions>
+         </plugin>
+
+         <!-- For Performing xml translations to create test.xml files -->
+         <plugin>
+            <groupId>org.codehaus.mojo</groupId>
+            <artifactId>xml-maven-plugin</artifactId>
+            <version>1.0</version>
+            <executions>
+               <execution>
+                  <phase>process-resources</phase>
+                  <goals>
+                     <goal>transform</goal>
+                  </goals>
+               </execution>
+            </executions>
+            <configuration>
+               <transformationSets>
+
+                  <!-- Combine several test list files into a single module -->
+                  <transformationSet>
+                     <dir>${project.build.directory}/${test.file.dir}</dir>
+                     <includes>
+                        <include>testFiles.xml</include>
+                     </includes>
+                     <outputDir>${project.build.directory}/classes/${test.list.dir}</outputDir>
+                     <fileMappers>
+                        <fileMapper implementation="org.codehaus.plexus.components.io.filemappers.MergeFileMapper">
+                           <targetName>${test.list.name}</targetName>
+                        </fileMapper>
+                     </fileMappers>
+                     <stylesheet>${project.build.directory}/${test.file.dir}/${test.list.xsl}</stylesheet>
+                  </transformationSet>
+
                   <!-- Combine several page files into a single page file containing 
-                     all test portal pages -->
-                  <transformationSet>
-                     <dir>${project.build.directory}/${test.file.dir}</dir>
-                     <includes>
-                        <include>pageFiles.xml</include>
-                     </includes>
-                     <outputDir>${project.build.directory}/classes/${test.list.dir}</outputDir>
-                     <fileMappers>
-                        <fileMapper implementation="org.codehaus.plexus.components.io.filemappers.MergeFileMapper">
-                           <targetName>${page.file.final.name}</targetName>
-                        </fileMapper>
-                     </fileMappers>
-                     <stylesheet>${project.build.directory}/${test.file.dir}/${page.file.final.xsl}</stylesheet>
-                  </transformationSet>
-
-               </transformationSets>
-            </configuration>
-         </plugin>
-
-         <plugin>
-            <groupId>org.apache.maven.plugins</groupId>
-            <artifactId>maven-compiler-plugin</artifactId>
-         </plugin>
-         <plugin>
-            <groupId>org.apache.maven.plugins</groupId>
-            <artifactId>maven-jar-plugin</artifactId>
-            <configuration>
-               <archive>
-                  <manifest>
-                     <mainClass>example.Selenium2Example</mainClass>
-                  </manifest>
-               </archive>
-            </configuration>
-         </plugin>
-      </plugins>
-   </build>
-
-
-   <!-- To build the tests, use "mvn clean install" from the parent directory. -->
-   <!-- To run all of the tests, use "mvn test -Prun-tck" from the driver directory. -->
-   
-   <!-- To a subset of the tests, use "mvn test -Prun-tck -Dtest.module=<match string>" from the driver directory. -->
-   <!-- the driver will then execute all tests whose test case name contains the specified string. -->
-   <!-- Example: "mvn test -Prun-tck -Dtest.module=PortletRequest" will execute all PortletRequest TCs. -->
-   
-   <profiles>
-      <profile>
-         <id>run-tck</id>
-         <build>
-            <plugins>
-
-               <!-- For running the test driver -->
-               <plugin>
-                  <groupId>org.apache.maven.plugins</groupId>
-                  <artifactId>maven-surefire-plugin</artifactId>
-                  <version>2.17</version>
-                  <configuration>
-                     <testClassesDirectory>${project.build.directory}/classes</testClassesDirectory>
-                     <includes>
-                        <include>**/javax/**</include>
-                     </includes>
-                     <useFile>true</useFile>
-                     <argLine>-Xms512m -Xmx512m</argLine>
-                     <systemProperties>
-                        <property>
-                           <name>test.server.login.url</name>
-                           <value>${test.server.login.url}</value>
-                        </property>
-                        <property>
-                           <name>test.context.base</name>
-                           <value>${test.context.base}</value>
-                        </property>
-                        <property>
-                           <name>test.url.strategy</name>
-                           <value>${test.url.strategy}</value>
-                        </property>
-                        <property>
-                           <name>test.server.host</name>
-                           <value>${test.server.host}</value>
-                        </property>
-                        <property>
-                           <name>test.server.port</name>
-                           <value>${test.server.port}</value>
-                        </property>
-                        <property>
-                           <name>test.server.username.id</name>
-                           <value>${test.server.username.id}</value>
-                        </property>
-                        <property>
-                           <name>test.server.username</name>
-                           <value>${test.server.username}</value>
-                        </property>
-                        <property>
-                           <name>test.server.password.id</name>
-                           <value>${test.server.password.id}</value>
-                        </property>
-                        <property>
-                           <name>test.server.password</name>
-                           <value>${test.server.password}</value>
-                        </property>
-                        <property>
-                           <name>test.list.file</name>
-                           <value>${project.build.directory}/classes/${test.list.dir}/${test.list.name}</value>
-                        </property>
-                        <property>
-                           <name>test.browser</name>
-                           <value>${test.browser}</value>
-                        </property>
-                        <property>
-                           <name>test.browser.webDriver</name>
-                           <value>${test.browser.webDriver}</value>
-                        </property>
-                        <property>
-                           <name>test.module</name>
-                           <value>${test.module}</value>
-                        </property>
-                        <property>
-                           <name>test.debug</name>
-                           <value>false</value>
-                        </property>
-                        <property>
-                           <name>test.timeout</name>
-                           <value>${test.timeout}</value>
-                        </property>
-                     </systemProperties>
-                  </configuration>
-               </plugin>
-
-            </plugins>
-         </build>
-      </profile>
-   </profiles>
-
-
-</project>
\ No newline at end of file
+                     all test portal pages -->
+                  <transformationSet>
+                     <dir>${project.build.directory}/${test.file.dir}</dir>
+                     <includes>
+                        <include>pageFiles.xml</include>
+                     </includes>
+                     <outputDir>${project.build.directory}/classes/${test.list.dir}</outputDir>
+                     <fileMappers>
+                        <fileMapper implementation="org.codehaus.plexus.components.io.filemappers.MergeFileMapper">
+                           <targetName>${page.file.final.name}</targetName>
+                        </fileMapper>
+                     </fileMappers>
+                     <stylesheet>${project.build.directory}/${test.file.dir}/${page.file.final.xsl}</stylesheet>
+                  </transformationSet>
+
+               </transformationSets>
+            </configuration>
+         </plugin>
+
+         <plugin>
+            <groupId>org.apache.maven.plugins</groupId>
+            <artifactId>maven-compiler-plugin</artifactId>
+         </plugin>
+         <plugin>
+            <groupId>org.apache.maven.plugins</groupId>
+            <artifactId>maven-jar-plugin</artifactId>
+            <configuration>
+               <archive>
+                  <manifest>
+                     <mainClass>example.Selenium2Example</mainClass>
+                  </manifest>
+               </archive>
+            </configuration>
+         </plugin>
+      </plugins>
+   </build>
+
+
+   <!-- To build the tests, use "mvn clean install" from the parent directory. -->
+   <!-- To run all of the tests, use "mvn test -Prun-tck" from the driver directory. -->
+   
+   <!-- To a subset of the tests, use "mvn test -Prun-tck -Dtest.module=<match string>" from the driver directory. -->
+   <!-- the driver will then execute all tests whose test case name contains the specified string. -->
+   <!-- Example: "mvn test -Prun-tck -Dtest.module=PortletRequest" will execute all PortletRequest TCs. -->
+   
+   <profiles>
+      <profile>
+         <id>run-tck</id>
+         <build>
+            <plugins>
+
+               <!-- For running the test driver -->
+               <plugin>
+                  <groupId>org.apache.maven.plugins</groupId>
+                  <artifactId>maven-surefire-plugin</artifactId>
+                  <version>2.17</version>
+                  <configuration>
+                     <testClassesDirectory>${project.build.directory}/classes</testClassesDirectory>
+                     <includes>
+                        <include>**/javax/**</include>
+                     </includes>
+                     <useFile>true</useFile>
+                     <argLine>-Xms512m -Xmx512m</argLine>
+                     <systemProperties>
+                        <property>
+                           <name>test.server.login.url</name>
+                           <value>${test.server.login.url}</value>
+                        </property>
+                        <property>
+                           <name>test.context.base</name>
+                           <value>${test.context.base}</value>
+                        </property>
+                        <property>
+                           <name>test.url.strategy</name>
+                           <value>${test.url.strategy}</value>
+                        </property>
+                        <property>
+                           <name>test.server.host</name>
+                           <value>${test.server.host}</value>
+                        </property>
+                        <property>
+                           <name>test.server.port</name>
+                           <value>${test.server.port}</value>
+                        </property>
+                        <property>
+                           <name>test.server.username.id</name>
+                           <value>${test.server.username.id}</value>
+                        </property>
+                        <property>
+                           <name>test.server.username</name>
+                           <value>${test.server.username}</value>
+                        </property>
+                        <property>
+                           <name>test.server.password.id</name>
+                           <value>${test.server.password.id}</value>
+                        </property>
+                        <property>
+                           <name>test.server.password</name>
+                           <value>${test.server.password}</value>
+                        </property>
+                        <property>
+                           <name>test.list.file</name>
+                           <value>${project.build.directory}/classes/${test.list.dir}/${test.list.name}</value>
+                        </property>
+                        <property>
+                           <name>test.browser</name>
+                           <value>${test.browser}</value>
+                        </property>
+                        <property>
+                           <name>test.browser.webDriver</name>
+                           <value>${test.browser.webDriver}</value>
+                        </property>
+                        <property>
+                           <name>test.module</name>
+                           <value>${test.module}</value>
+                        </property>
+                        <property>
+                           <name>test.debug</name>
+                           <value>false</value>
+                        </property>
+                        <property>
+                           <name>test.timeout</name>
+                           <value>${test.timeout}</value>
+                        </property>
+                     </systemProperties>
+                  </configuration>
+               </plugin>
+
+            </plugins>
+         </build>
+      </profile>
+   </profiles>
+
+
+</project>
diff --git a/portlet-tck_3.0/driver/src/main/resources/xml-resources/pageFiles.xml b/portlet-tck_3.0/driver/src/main/resources/xml-resources/pageFiles.xml
index fc193b1..efa1696 100644
--- a/portlet-tck_3.0/driver/src/main/resources/xml-resources/pageFiles.xml
+++ b/portlet-tck_3.0/driver/src/main/resources/xml-resources/pageFiles.xml
@@ -1,4 +1,5 @@
-<?xml version="1.0" encoding="UTF-8"?><!--
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--
     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
@@ -18,50 +19,51 @@
 --><!--
    Lists the page files from the individual modules that will be combined
    together to form the final page file with all pages for the TCK. 
- --><fl:filelist xmlns:fl="http://www.apache.org/2014/javax/portlet/tck/filelist">
-   <fl:file>tck-TestModule1-pages.xml</fl:file>
-   <fl:file>tck-TestModule2-pages.xml</fl:file>
-   <fl:file>tck-TestModule3-pages.xml</fl:file>
-   <fl:file>tck-V2AnnotationTests-pages.xml</fl:file>
-   <fl:file>tck-V2EnvironmentTests-pages.xml</fl:file>
-   <fl:file>tck-V2ExceptionTests-pages.xml</fl:file>
-   <fl:file>tck-V2FilterTests-pages.xml</fl:file>
-   <fl:file>tck-V2PortletTests-pages.xml</fl:file>
-   <fl:file>tck-V2RequestTests-pages.xml</fl:file>
-   <fl:file>tck-V2ResponseTests-pages.xml</fl:file>
-   <fl:file>tck-V2URLTests-pages.xml</fl:file>
-   <fl:file>tck-V2WrapperTests-pages.xml</fl:file>
-   <fl:file>tck-V2AddlEnvironmentTests-pages.xml</fl:file>
-   <fl:file>tck-V2AddlFilterTests-pages.xml</fl:file>
-   <fl:file>tck-V2AddlPortletTests-pages.xml</fl:file>
-   <fl:file>tck-V2AddlRequestTests-pages.xml</fl:file>
-   <fl:file>tck-V2AddlResponseTests-pages.xml</fl:file>
-   <fl:file>tck-V2PortletTagLibraryTests-pages.xml</fl:file>
-   <fl:file>tck-V2PortletTagLibraryTests2-pages.xml</fl:file>
-   <fl:file>tck-V2PortletTagLibraryTests3-pages.xml</fl:file>
-   <fl:file>tck-V2DispatcherTests-pages.xml</fl:file>
-   <fl:file>tck-V2DispatcherTests2-pages.xml</fl:file>
-   <fl:file>tck-V2DispatcherTests3S-pages.xml</fl:file>
-   <fl:file>tck-V2DispatcherTests4-pages.xml</fl:file>
-   <fl:file>tck-V2DispatcherTests5-pages.xml</fl:file>
-   <fl:file>tck-V2DispatcherTests6-pages.xml</fl:file>
-   <fl:file>tck-V2DispatcherReqRespTests1-pages.xml</fl:file>
-   <fl:file>tck-V2DispatcherReqRespTests2-pages.xml</fl:file>
-   <fl:file>tck-V2DispatcherReqRespTests3-pages.xml</fl:file>
-   <fl:file>tck-V2DispatcherReqRespTests4-pages.xml</fl:file>
-   <fl:file>tck-V2DispatcherReqRespTests5S-pages.xml</fl:file>
-   <fl:file>tck-V2SigTestsAction-pages.xml</fl:file>
-   <fl:file>tck-V2SigTestsEnv-pages.xml</fl:file>
-   <fl:file>tck-V2SigTestsEvent-pages.xml</fl:file>
-   <fl:file>tck-V2SigTestsException-pages.xml</fl:file>
-   <fl:file>tck-V2SigTestsFilter-pages.xml</fl:file>
-   <fl:file>tck-V2SigTestsRender-pages.xml</fl:file>
-   <fl:file>tck-V2SigTestsResource-pages.xml</fl:file>
-   <fl:file>tck-V2SigTestsURL-pages.xml</fl:file>
-   <fl:file>tck-V2SigTestsWrapper-pages.xml</fl:file>
-   <fl:file>tck-V3PortletContextTests-pages.xml</fl:file>
-   <fl:file>tck-V3PortletConfigTests-pages.xml</fl:file>
-   <fl:file>tck-V3URLTests-pages.xml</fl:file>
-   <fl:file>tck-V3RenderStateTests-pages.xml</fl:file>
-<fl:file>tck-V3HeaderPortletTests-pages.xml</fl:file>
-</fl:filelist>
\ No newline at end of file
+ --><fl:filelist xmlns:fl="http://www.apache.org/2014/javax/portlet/tck/filelist">
+   <fl:file>tck-TestModule1-pages.xml</fl:file>
+   <fl:file>tck-TestModule2-pages.xml</fl:file>
+   <fl:file>tck-TestModule3-pages.xml</fl:file>
+   <fl:file>tck-V2AnnotationTests-pages.xml</fl:file>
+   <fl:file>tck-V2EnvironmentTests-pages.xml</fl:file>
+   <fl:file>tck-V2ExceptionTests-pages.xml</fl:file>
+   <fl:file>tck-V2FilterTests-pages.xml</fl:file>
+   <fl:file>tck-V2PortletTests-pages.xml</fl:file>
+   <fl:file>tck-V2RequestTests-pages.xml</fl:file>
+   <fl:file>tck-V2ResponseTests-pages.xml</fl:file>
+   <fl:file>tck-V2URLTests-pages.xml</fl:file>
+   <fl:file>tck-V2WrapperTests-pages.xml</fl:file>
+   <fl:file>tck-V2AddlEnvironmentTests-pages.xml</fl:file>
+   <fl:file>tck-V2AddlFilterTests-pages.xml</fl:file>
+   <fl:file>tck-V2AddlPortletTests-pages.xml</fl:file>
+   <fl:file>tck-V2AddlRequestTests-pages.xml</fl:file>
+   <fl:file>tck-V2AddlResponseTests-pages.xml</fl:file>
+   <fl:file>tck-V2PortletTagLibraryTests-pages.xml</fl:file>
+   <fl:file>tck-V2PortletTagLibraryTests2-pages.xml</fl:file>
+   <fl:file>tck-V2PortletTagLibraryTests3-pages.xml</fl:file>
+   <fl:file>tck-V2DispatcherTests-pages.xml</fl:file>
+   <fl:file>tck-V2DispatcherTests2-pages.xml</fl:file>
+   <fl:file>tck-V2DispatcherTests3S-pages.xml</fl:file>
+   <fl:file>tck-V2DispatcherTests4-pages.xml</fl:file>
+   <fl:file>tck-V2DispatcherTests5-pages.xml</fl:file>
+   <fl:file>tck-V2DispatcherTests6-pages.xml</fl:file>
+   <fl:file>tck-V2DispatcherReqRespTests1-pages.xml</fl:file>
+   <fl:file>tck-V2DispatcherReqRespTests2-pages.xml</fl:file>
+   <fl:file>tck-V2DispatcherReqRespTests3-pages.xml</fl:file>
+   <fl:file>tck-V2DispatcherReqRespTests4-pages.xml</fl:file>
+   <fl:file>tck-V2DispatcherReqRespTests5S-pages.xml</fl:file>
+   <fl:file>tck-V2SigTestsAction-pages.xml</fl:file>
+   <fl:file>tck-V2SigTestsEnv-pages.xml</fl:file>
+   <fl:file>tck-V2SigTestsEvent-pages.xml</fl:file>
+   <fl:file>tck-V2SigTestsException-pages.xml</fl:file>
+   <fl:file>tck-V2SigTestsFilter-pages.xml</fl:file>
+   <fl:file>tck-V2SigTestsRender-pages.xml</fl:file>
+   <fl:file>tck-V2SigTestsResource-pages.xml</fl:file>
+   <fl:file>tck-V2SigTestsURL-pages.xml</fl:file>
+   <fl:file>tck-V2SigTestsWrapper-pages.xml</fl:file>
+   <fl:file>tck-V3PortletContextTests-pages.xml</fl:file>
+   <fl:file>tck-V3PortletConfigTests-pages.xml</fl:file>
+   <fl:file>tck-V3URLTests-pages.xml</fl:file>
+   <fl:file>tck-V3RenderStateTests-pages.xml</fl:file>
+<fl:file>tck-V3HeaderPortletTests-pages.xml</fl:file>
+<fl:file>tck-V3PortletParametersTests-pages.xml</fl:file>
+</fl:filelist>
diff --git a/portlet-tck_3.0/driver/src/main/resources/xml-resources/testFiles.xml b/portlet-tck_3.0/driver/src/main/resources/xml-resources/testFiles.xml
index f495bc4..3fc0445 100644
--- a/portlet-tck_3.0/driver/src/main/resources/xml-resources/testFiles.xml
+++ b/portlet-tck_3.0/driver/src/main/resources/xml-resources/testFiles.xml
@@ -1,4 +1,5 @@
-<?xml version="1.0" encoding="UTF-8"?><!--
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--
     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
@@ -18,50 +19,51 @@
 --><!--
    Lists the test files from the individual modules that will be combined
    together to form the final list file containing all test cases for the TCK. 
- --><fl:filelist xmlns:fl="http://www.apache.org/2014/javax/portlet/tck/filelist">
-   <fl:file>tck-TestModule1-tests.xml</fl:file>
-   <fl:file>tck-TestModule2-tests.xml</fl:file>
-   <fl:file>tck-TestModule3-tests.xml</fl:file>
-   <fl:file>tck-V2AnnotationTests-tests.xml</fl:file>
-   <fl:file>tck-V2EnvironmentTests-tests.xml</fl:file>
-   <fl:file>tck-V2ExceptionTests-tests.xml</fl:file>
-   <fl:file>tck-V2FilterTests-tests.xml</fl:file>
-   <fl:file>tck-V2PortletTests-tests.xml</fl:file>
-   <fl:file>tck-V2RequestTests-tests.xml</fl:file>
-   <fl:file>tck-V2ResponseTests-tests.xml</fl:file>
-   <fl:file>tck-V2URLTests-tests.xml</fl:file>
-   <fl:file>tck-V2WrapperTests-tests.xml</fl:file>
-   <fl:file>tck-V2AddlEnvironmentTests-tests.xml</fl:file>
-   <fl:file>tck-V2AddlFilterTests-tests.xml</fl:file>
-   <fl:file>tck-V2AddlPortletTests-tests.xml</fl:file>
-   <fl:file>tck-V2AddlRequestTests-tests.xml</fl:file>
-   <fl:file>tck-V2AddlResponseTests-tests.xml</fl:file>
-   <fl:file>tck-V2PortletTagLibraryTests-tests.xml</fl:file>
-   <fl:file>tck-V2PortletTagLibraryTests2-tests.xml</fl:file>
-   <fl:file>tck-V2PortletTagLibraryTests3-tests.xml</fl:file>
-   <fl:file>tck-V2DispatcherTests-tests.xml</fl:file>
-   <fl:file>tck-V2DispatcherTests2-tests.xml</fl:file>
-   <fl:file>tck-V2DispatcherTests3S-tests.xml</fl:file>
-   <fl:file>tck-V2DispatcherTests4-tests.xml</fl:file>
-   <fl:file>tck-V2DispatcherTests5-tests.xml</fl:file>
-   <fl:file>tck-V2DispatcherTests6-tests.xml</fl:file>
-   <fl:file>tck-V2DispatcherReqRespTests1-tests.xml</fl:file>
-   <fl:file>tck-V2DispatcherReqRespTests2-tests.xml</fl:file>
-   <fl:file>tck-V2DispatcherReqRespTests3-tests.xml</fl:file>
-   <fl:file>tck-V2DispatcherReqRespTests4-tests.xml</fl:file>
-   <fl:file>tck-V2DispatcherReqRespTests5S-tests.xml</fl:file>
-   <fl:file>tck-V2SigTestsAction-tests.xml</fl:file>
-   <fl:file>tck-V2SigTestsEnv-tests.xml</fl:file>
-   <fl:file>tck-V2SigTestsEvent-tests.xml</fl:file>
-   <fl:file>tck-V2SigTestsException-tests.xml</fl:file>
-   <fl:file>tck-V2SigTestsFilter-tests.xml</fl:file>
-   <fl:file>tck-V2SigTestsRender-tests.xml</fl:file>
-   <fl:file>tck-V2SigTestsResource-tests.xml</fl:file>
-   <fl:file>tck-V2SigTestsURL-tests.xml</fl:file>
-   <fl:file>tck-V2SigTestsWrapper-tests.xml</fl:file>
-   <fl:file>tck-V3PortletContextTests-tests.xml</fl:file>
-   <fl:file>tck-V3PortletConfigTests-tests.xml</fl:file>
-   <fl:file>tck-V3URLTests-tests.xml</fl:file>
-   <fl:file>tck-V3RenderStateTests-tests.xml</fl:file>
-<fl:file>tck-V3HeaderPortletTests-tests.xml</fl:file>
-</fl:filelist>
\ No newline at end of file
+ --><fl:filelist xmlns:fl="http://www.apache.org/2014/javax/portlet/tck/filelist">
+   <fl:file>tck-TestModule1-tests.xml</fl:file>
+   <fl:file>tck-TestModule2-tests.xml</fl:file>
+   <fl:file>tck-TestModule3-tests.xml</fl:file>
+   <fl:file>tck-V2AnnotationTests-tests.xml</fl:file>
+   <fl:file>tck-V2EnvironmentTests-tests.xml</fl:file>
+   <fl:file>tck-V2ExceptionTests-tests.xml</fl:file>
+   <fl:file>tck-V2FilterTests-tests.xml</fl:file>
+   <fl:file>tck-V2PortletTests-tests.xml</fl:file>
+   <fl:file>tck-V2RequestTests-tests.xml</fl:file>
+   <fl:file>tck-V2ResponseTests-tests.xml</fl:file>
+   <fl:file>tck-V2URLTests-tests.xml</fl:file>
+   <fl:file>tck-V2WrapperTests-tests.xml</fl:file>
+   <fl:file>tck-V2AddlEnvironmentTests-tests.xml</fl:file>
+   <fl:file>tck-V2AddlFilterTests-tests.xml</fl:file>
+   <fl:file>tck-V2AddlPortletTests-tests.xml</fl:file>
+   <fl:file>tck-V2AddlRequestTests-tests.xml</fl:file>
+   <fl:file>tck-V2AddlResponseTests-tests.xml</fl:file>
+   <fl:file>tck-V2PortletTagLibraryTests-tests.xml</fl:file>
+   <fl:file>tck-V2PortletTagLibraryTests2-tests.xml</fl:file>
+   <fl:file>tck-V2PortletTagLibraryTests3-tests.xml</fl:file>
+   <fl:file>tck-V2DispatcherTests-tests.xml</fl:file>
+   <fl:file>tck-V2DispatcherTests2-tests.xml</fl:file>
+   <fl:file>tck-V2DispatcherTests3S-tests.xml</fl:file>
+   <fl:file>tck-V2DispatcherTests4-tests.xml</fl:file>
+   <fl:file>tck-V2DispatcherTests5-tests.xml</fl:file>
+   <fl:file>tck-V2DispatcherTests6-tests.xml</fl:file>
+   <fl:file>tck-V2DispatcherReqRespTests1-tests.xml</fl:file>
+   <fl:file>tck-V2DispatcherReqRespTests2-tests.xml</fl:file>
+   <fl:file>tck-V2DispatcherReqRespTests3-tests.xml</fl:file>
+   <fl:file>tck-V2DispatcherReqRespTests4-tests.xml</fl:file>
+   <fl:file>tck-V2DispatcherReqRespTests5S-tests.xml</fl:file>
+   <fl:file>tck-V2SigTestsAction-tests.xml</fl:file>
+   <fl:file>tck-V2SigTestsEnv-tests.xml</fl:file>
+   <fl:file>tck-V2SigTestsEvent-tests.xml</fl:file>
+   <fl:file>tck-V2SigTestsException-tests.xml</fl:file>
+   <fl:file>tck-V2SigTestsFilter-tests.xml</fl:file>
+   <fl:file>tck-V2SigTestsRender-tests.xml</fl:file>
+   <fl:file>tck-V2SigTestsResource-tests.xml</fl:file>
+   <fl:file>tck-V2SigTestsURL-tests.xml</fl:file>
+   <fl:file>tck-V2SigTestsWrapper-tests.xml</fl:file>
+   <fl:file>tck-V3PortletContextTests-tests.xml</fl:file>
+   <fl:file>tck-V3PortletConfigTests-tests.xml</fl:file>
+   <fl:file>tck-V3URLTests-tests.xml</fl:file>
+   <fl:file>tck-V3RenderStateTests-tests.xml</fl:file>
+<fl:file>tck-V3HeaderPortletTests-tests.xml</fl:file>
+<fl:file>tck-V3PortletParametersTests-tests.xml</fl:file>
+</fl:filelist>
diff --git a/portlet-tck_3.0/pom.xml b/portlet-tck_3.0/pom.xml
index 00d71b3..70c7836 100644
--- a/portlet-tck_3.0/pom.xml
+++ b/portlet-tck_3.0/pom.xml
@@ -1,4 +1,5 @@
-<?xml version="1.0" encoding="UTF-8"?><!--
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--
     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
@@ -15,65 +16,65 @@
     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">
-   
-   <parent>
-      <groupId>org.apache.portals.pluto</groupId>
-      <artifactId>pluto</artifactId>
-      <version>3.0-SNAPSHOT</version>
-   </parent>
-   
-   <modelVersion>4.0.0</modelVersion>
-   
-   <groupId>javax.portlet</groupId>
-   <artifactId>portlet-tck</artifactId>
-   <name>Portlet API Technology Compatibility Kit</name>
-   <packaging>pom</packaging>
-
-   <licenses>
-      <license>
-         <name>apache_v2</name>
-         <url>http://www.apache.org/licenses/LICENSE-2.0.html</url>
-      </license>
-   </licenses>
-
-   <scm>
-      <connection>scm:git:https://git-wip-us.apache.org/repos/asf/portals-pluto.git</connection>
-      <developerConnection>scm:git:https://git-wip-us.apache.org/repos/asf/portals-pluto.git</developerConnection>
-      <url>https://github.com/apache/portals-pluto</url>
-   </scm>
-
-   <properties>
-      <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
-
-      <!-- To automatically generate a list of test cases, each module transforms the portlet.xml file -->
-      <!-- using an XSLT transformation. -->
-
-      <!-- Configuration used by XML transformations -->
-      <!-- test.file.xslt Name of stylesheet in ${project.build.directory}/xml-resources/ dirs -->
-      <!-- test.file.dir location of generated xml files in individual modules for tests -->
-      <!-- test.file.name per-module name of xml file containing list of covered test cases -->
-      <test.file.xsl>test.xsl</test.file.xsl>
-      <test.file.dir>generated-resources/xml/module</test.file.dir>
-      <test.file.name>${project.artifactId}-tests.xml</test.file.name>
-
-      <!-- page.file.xsl Name of stylesheet used to create page definititions -->
-      <!-- page.file.name per-module name of xml file containing page definitions for test -->
-      <page.file.xsl>plutoSinglePortletPage.xsl</page.file.xsl>
-      <page.file.name>${project.artifactId}-pages.xml</page.file.name>
-      <page.file.final.xsl>plutoPageCombiner.xsl</page.file.final.xsl>
-      <page.file.final.name>pluto-portal-driver-config.xml</page.file.final.name>
-
-      <!-- test.context.base context string used when addressing test pages. Used by module stylesheet -->
-      <test.context.base>pluto/portal/</test.context.base>
-
-      <!-- test.list.xsl Name of stylesheet to combine test case lists from subproject -->
-      <!-- test.list.dir location of finished xml file containing complete test case list -->
-      <!-- test.list.name name of xml file containing complete test case list -->
-      <test.list.xsl>testCombiner.xsl</test.list.xsl>
-      <test.list.dir>generated-resources/xml/final</test.list.dir>
-      <test.list.name>test.xml</test.list.name>
-
+--><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">
+   
+   <parent>
+      <groupId>org.apache.portals.pluto</groupId>
+      <artifactId>pluto</artifactId>
+      <version>3.0-SNAPSHOT</version>
+   </parent>
+   
+   <modelVersion>4.0.0</modelVersion>
+   
+   <groupId>javax.portlet</groupId>
+   <artifactId>portlet-tck</artifactId>
+   <name>Portlet API Technology Compatibility Kit</name>
+   <packaging>pom</packaging>
+
+   <licenses>
+      <license>
+         <name>apache_v2</name>
+         <url>http://www.apache.org/licenses/LICENSE-2.0.html</url>
+      </license>
+   </licenses>
+
+   <scm>
+      <connection>scm:git:https://git-wip-us.apache.org/repos/asf/portals-pluto.git</connection>
+      <developerConnection>scm:git:https://git-wip-us.apache.org/repos/asf/portals-pluto.git</developerConnection>
+      <url>https://github.com/apache/portals-pluto</url>
+   </scm>
+
+   <properties>
+      <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+
+      <!-- To automatically generate a list of test cases, each module transforms the portlet.xml file -->
+      <!-- using an XSLT transformation. -->
+
+      <!-- Configuration used by XML transformations -->
+      <!-- test.file.xslt Name of stylesheet in ${project.build.directory}/xml-resources/ dirs -->
+      <!-- test.file.dir location of generated xml files in individual modules for tests -->
+      <!-- test.file.name per-module name of xml file containing list of covered test cases -->
+      <test.file.xsl>test.xsl</test.file.xsl>
+      <test.file.dir>generated-resources/xml/module</test.file.dir>
+      <test.file.name>${project.artifactId}-tests.xml</test.file.name>
+
+      <!-- page.file.xsl Name of stylesheet used to create page definititions -->
+      <!-- page.file.name per-module name of xml file containing page definitions for test -->
+      <page.file.xsl>plutoSinglePortletPage.xsl</page.file.xsl>
+      <page.file.name>${project.artifactId}-pages.xml</page.file.name>
+      <page.file.final.xsl>plutoPageCombiner.xsl</page.file.final.xsl>
+      <page.file.final.name>pluto-portal-driver-config.xml</page.file.final.name>
+
+      <!-- test.context.base context string used when addressing test pages. Used by module stylesheet -->
+      <test.context.base>pluto/portal/</test.context.base>
+
+      <!-- test.list.xsl Name of stylesheet to combine test case lists from subproject -->
+      <!-- test.list.dir location of finished xml file containing complete test case list -->
+      <!-- test.list.name name of xml file containing complete test case list -->
+      <test.list.xsl>testCombiner.xsl</test.list.xsl>
+      <test.list.dir>generated-resources/xml/final</test.list.dir>
+      <test.list.name>test.xml</test.list.name>
+
       <!-- This variable is used by the test driver to determine how test 
          page links are to be found. Values: generateURLs the driver generates URLs 
          based on config information. followLinks the driver looks for links containing 
@@ -81,374 +82,375 @@
          case, the portal must produce navigation links to each of the test pages. 
          If configured to generate URLs, the driver generates URLs of the form: http://<test.server.host>:<test.server.port>/<test.context.base><test.page.name> 
          where <test.page.name> is the name of the test page generated by the individual 
-         modules -->
-      <test.url.strategy>followLinks</test.url.strategy>
-
-      <!-- Configuration of URL to login page -->
-      <test.server.login.url>http://localhost:8080/pluto/portal/About Apache Pluto</test.server.login.url>
-
-      <!-- Configuration of portlet container under test for generated URLs -->
-      <!-- (only needed if test.url.strategy=generateURLs) -->
-      <test.server.host>localhost</test.server.host>
-      <test.server.port>8080</test.server.port>
-
-      <!-- HTML field IDs and values for username & password to enable automatic  login -->
-      <test.server.username.id>j_username</test.server.username.id>
-      <test.server.username>pluto</test.server.username>
-      <test.server.password.id>j_password</test.server.password.id>
-      <test.server.password>pluto</test.server.password>
-
-      <!-- Specifies the browser to be used by selenium WebDriver for running the tests. -->
-      <!-- Can be used with firefox or HTMLUnit without setting the test.browser.webDriver property. -->
-      <!-- Use of Chrome or IE requires the webDriver to be downloaded and available. Set the -->
-      <!-- test.browser.webDriver property to point to the appropriate WebDriver server. -->
-      <test.browser>firefox</test.browser>
-      <test.browser>HTMLUnit</test.browser>
-      <!-- commented outline below shows configuration for the Internet Explorer driver -->
-      <!-- test.browser.webDriver>C:\ntutil\IEDriverServer_x64_2.42.0\IEDriverServer.exe</test.browser.webDriver -->
-
-      <!-- Specify timeout in seconds for the driver to wait for page load. must be an integer. -->
-      <test.timeout>3</test.timeout>
-
-      <!-- Set in subprojects containing additional test case file. default is no additional file (false) -->
-      <additional.testcase.uri>false</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>false</additional.testcases.only>
-      
-      <!-- Set to true for modules that define all test pages in a file (page file is not generated from the portlet.xml) -->
-      <additional.pagefile.only>false</additional.pagefile.only>
-
-   </properties>
-
-   <modules>
-      <module>common</module>
-      <module>TestModule1</module>
-      <module>TestModule2</module>
-      <module>TestModule3</module>
-      <module>TestModule3-portlet1</module>
-      <module>TestModule3-portlet2</module>
-      <module>V2AnnotationTests</module>
-      <module>V2EnvironmentTests</module>
-      <module>V2ExceptionTests</module>
-      <module>V2FilterTests</module>
-      <module>V2PortletTests</module>
-      <module>V2RequestTests</module>
-      <module>V2ResponseTests</module>
-      <module>V2URLTests</module>
-      <module>V2WrapperTests</module>
-      <module>V2AddlEnvironmentTests</module>
-      <module>V2AddlFilterTests</module>
-      <module>V2AddlPortletTests</module>
-      <module>V2AddlRequestTests</module>
-      <module>V2AddlResponseTests</module>
-      <module>V2PortletTagLibraryTests</module>
-      <module>V2PortletTagLibraryTests2</module>
-      <module>V2PortletTagLibraryTests3</module>
-      <module>V2DispatcherTests</module>
-      <module>V2DispatcherTests2</module>
-      <module>V2DispatcherTests3S</module>
-      <module>V2DispatcherTests4</module>
-      <module>V2DispatcherTests5</module>
-      <module>V2DispatcherTests6</module>
-      <module>V2DispatcherReqRespTests1</module>
-      <module>V2DispatcherReqRespTests2</module>
-      <module>V2DispatcherReqRespTests3</module>
-      <module>V2DispatcherReqRespTests4</module>
-      <module>V2DispatcherReqRespTests5S</module>
-      <module>V2SigTestsAction</module>
-      <module>V2SigTestsEnv</module>
-      <module>V2SigTestsEvent</module>
-      <module>V2SigTestsException</module>
-      <module>V2SigTestsFilter</module>
-      <module>V2SigTestsRender</module>
-      <module>V2SigTestsResource</module>
-      <module>V2SigTestsURL</module>
-      <module>V2SigTestsWrapper</module>
-      <module>V3PortletContextTests</module>
-      <module>V3PortletConfigTests</module>
-	  <module>V3URLTests</module>
-	  <module>V3RenderStateTests</module>
-      <module>V3HeaderPortletTests</module>
-      <module>deploy</module>
-      <module>driver</module>
-   </modules>
-
-   <dependencyManagement>
-      <dependencies>
-
-         <!-- the portlet tag library -->
-         <dependency>
-            <groupId>org.apache.portals.pluto</groupId>
-            <artifactId>pluto-taglib</artifactId>
-            <version>${project.version}</version>
-            <scope>provided</scope>
-         </dependency>
-
-         <!-- For creating and executing tests -->
-         <dependency>
-            <groupId>junit</groupId>
-            <artifactId>junit</artifactId>
-            <version>4.11</version>
-            <scope>test</scope>
-         </dependency>
-         <dependency>
-            <groupId>org.seleniumhq.selenium</groupId>
-            <artifactId>selenium-java</artifactId>
-            <version>2.53.0</version>
-            <scope>test</scope>
-         </dependency>
-         <dependency>
-            <groupId>org.seleniumhq.selenium</groupId>
-            <artifactId>htmlunit-driver</artifactId>
-            <version>2.21</version>
-            <scope>test</scope>
-         </dependency>
-      </dependencies>
-   </dependencyManagement>
-
-   <build>
-      <finalName>${project.artifactId}</finalName>
-
-      <pluginManagement>
-         <plugins>
-            <plugin>
-               <groupId>org.apache.maven.plugins</groupId>
-               <artifactId>maven-jar-plugin</artifactId>
-               <configuration>
-                  <skipIfEmpty>true</skipIfEmpty>
-               </configuration>
-            </plugin>
-            <plugin>
-               <groupId>org.apache.maven.plugins</groupId>
-               <artifactId>maven-war-plugin</artifactId>
-               <configuration>
-                  <archiveClasses>false</archiveClasses>
-                  <failOnMissingWebXml>false</failOnMissingWebXml>
-                  <webResources>
-                     <webResource>
-                        <directory>${project.build.directory}/${test.file.dir}</directory>
-                        <targetPath>${test.file.dir}</targetPath>
-                     </webResource>
-                  </webResources>
-               </configuration>
-            </plugin>
-
-            <!-- For Performing xml translations to create test.xml files -->
-            <plugin>
-               <groupId>org.codehaus.mojo</groupId>
-               <artifactId>xml-maven-plugin</artifactId>
-               <version>1.0</version>
-               <executions>
-               
-                  <!-- For generating test case list from portlet.xml and additionalTCs.xml files -->
-                  <execution>
-                     <id>generate-testcases</id>
-                     <phase>generate-resources</phase>
-                     <goals>
-                        <goal>transform</goal>
-                     </goals>
-                     <configuration>
-                        <skip>${additional.testcases.only}</skip>
-                        <transformationSets>
-                     
-                           <!-- automatically generate test case list for module -->
-                           <transformationSet>
-                              <dir>src/main/webapp/WEB-INF</dir>
-                              <includes>
-                                 <include>portlet.xml</include>
-                              </includes>
-                              <outputDir>${project.build.directory}/${test.file.dir}</outputDir>
-                              <fileMappers>
-                                 <fileMapper implementation="org.codehaus.plexus.components.io.filemappers.MergeFileMapper">
-                                    <targetName>${test.file.name}</targetName>
-                                 </fileMapper>
-                              </fileMappers>
-                              <parameters>
-                                 <parameter>
-                                    <name>additionalTCs</name>
-                                    <value>${additional.testcase.uri}</value>
-                                 </parameter>
-                                 <parameter>
-                                    <name>copyOnly</name>
-                                    <value>${additional.testcases.only}</value>
-                                 </parameter>
-                              </parameters>
-                              <stylesheet>${project.build.directory}/xml-resources/${test.file.xsl}</stylesheet>
-                           </transformationSet>
-                     
-                        </transformationSets>
-                     </configuration>
-                  </execution>
-                  
-                  <!-- For generating page file from portlet.xml -->
-                  <execution>
-                     <id>generate-pagefile</id>
-                     <phase>generate-resources</phase>
-                     <goals>
-                        <goal>transform</goal>
-                     </goals>
-                     <configuration>
-                        <skip>${additional.pagefile.only}</skip>
-                        <transformationSets>
-                     
-                           <!-- Automatically generate page file for the module -->
-                           <transformationSet>
-                              <dir>src/main/webapp/WEB-INF</dir>
-                              <includes>
-                                 <include>portlet.xml</include>
-                              </includes>
-                              <outputDir>${project.build.directory}/${test.file.dir}</outputDir>
-                              <fileMappers>
-                                 <fileMapper implementation="org.codehaus.plexus.components.io.filemappers.MergeFileMapper">
-                                    <targetName>${page.file.name}</targetName>
-                                 </fileMapper>
-                              </fileMappers>
-                              <parameters>
-                                 <parameter>
-                                    <name>portlet-app-context</name>
-                                    <value>${project.artifactId}-${project.version}</value>
-                                 </parameter>
-                              </parameters>
-                              <stylesheet>${project.build.directory}/xml-resources/${page.file.xsl}</stylesheet>
-                           </transformationSet>
-                     
-                        </transformationSets>
-                     </configuration>
-                  </execution>
-               </executions>
-            </plugin>
-
-            <!-- For extracting the XML transformation stylesheets from common module -->
-            <plugin>
-               <groupId>org.apache.maven.plugins</groupId>
-               <artifactId>maven-dependency-plugin</artifactId>
-               <version>2.8</version>
-               <executions>
-                  <execution>
-                     <id>xml-resource-dependencies</id>
-                     <phase>generate-sources</phase>
-                     <goals>
-                        <goal>unpack-dependencies</goal>
-                     </goals>
-                     <configuration>
-                        <includeArtifactIds>tck-common</includeArtifactIds>
-                        <includes>xml-resources/**</includes>
-                        <outputDirectory>${project.build.directory}</outputDirectory>
-                     </configuration>
-                  </execution>
-               </executions>
-            </plugin>
-            
-            <!-- For copying the page & testcase files for V3 module build -->
-            <plugin>
-               <groupId>com.coderplus.maven.plugins</groupId>
-               <artifactId>copy-rename-maven-plugin</artifactId>
-               <version>1.0.1</version>
-               <executions>
-                  <execution>
-                     <id>copy-files</id>
-                     <phase>generate-sources</phase>
-                     <goals>
-                        <goal>copy</goal>
-                     </goals>
-                     <configuration>
-                        <fileSets>
-                           <fileSet>
-                              <sourceFile>src/main/resources/xml-resources/additionalTCs.xml</sourceFile>
-                              <destinationFile>target/${test.file.dir}/${project.artifactId}-tests.xml</destinationFile>
-                           </fileSet>
-                           <fileSet>
-                              <sourceFile>src/main/resources/xml-resources/additionalPages.xml</sourceFile>
-                              <destinationFile>target/${test.file.dir}/${project.artifactId}-pages.xml</destinationFile>
-                           </fileSet>                
-                        </fileSets>
-                     </configuration>
-                  </execution>
-               </executions>
-            </plugin>
-             
-         </plugins>
-      </pluginManagement>
-
-      <plugins>
-      
-         <!-- skip legal file checking for now -->
-         <plugin>
-            <groupId>org.codehaus.mojo</groupId>
-            <artifactId>ianal-maven-plugin</artifactId>
-            <executions>
-               <execution>
-                  <goals>
-                     <goal>verify-legal-files</goal>
-                  </goals>
-                  <configuration>
-                     <skip>true</skip>
-                  </configuration>
-               </execution>
-            </executions>
-         </plugin>
-      
-         <plugin>
-            <groupId>org.apache.maven.plugins</groupId>
-            <artifactId>maven-javadoc-plugin</artifactId>
-            <configuration>
-               <doctitle>
-                  JSR 362 Portlet Specification 3.0 TCK Working
-                  Document
-               </doctitle>
-               <windowtitle>
-                  JSR 362 Portlet Specification 3.0 TCK
-                  Working Document
-               </windowtitle>
-               <stylesheetfile>${javadoc.css.file}</stylesheetfile>
-               <!-- link to Java EE APIs for cross-references -->
-               <links>
-                  <link>http://docs.oracle.com/javaee/7/api/</link>
-               </links>
-               <docfilessubdirs>true</docfilessubdirs>
-               <bottom>
-               <![CDATA[Java Portlet Specification V3.0 Working Document.
-                  See the <a href="doc-files/NOTICE.txt">Copyright</a> and 
-                  <a href="doc-files/LICENSE.txt">License</a> provided with this distribution.
-                  Use is subject to
-                  <a href="http://www.apache.org/licenses/LICENSE-2.0">license terms</a>.]]>
-               </bottom>
-            </configuration>
-            <executions>
-               <execution>
-                  <id>aggregate</id>
-                  <goals>
-                     <goal>aggregate</goal>
-                  </goals>
-                  <phase>site</phase>
-               </execution>
-            </executions>
-         </plugin>
-      </plugins>
-   </build>
-
-   <reporting>
-      <plugins>
-         <plugin>
-            <groupId>org.apache.maven.plugins</groupId>
-            <artifactId>maven-surefire-report-plugin</artifactId>
-            <version>2.17</version>
-            <configuration>
-               <aggregate>true</aggregate>
-               <reportsDirectories>
-                  <reportsDirectory>${project.build.directory}/surefire-reports</reportsDirectory>
-                  <reportsDirectory>${project.build.directory}/jasmine</reportsDirectory>
-               </reportsDirectories>
-            </configuration>
-         </plugin>
-      </plugins>
-   </reporting>
-
-   <profiles>
-      <profile>
-         <id>pluto</id>
-      </profile>
-   </profiles>
-
-</project>
\ No newline at end of file
+         modules -->
+      <test.url.strategy>followLinks</test.url.strategy>
+
+      <!-- Configuration of URL to login page -->
+      <test.server.login.url>http://localhost:8080/pluto/portal/About Apache Pluto</test.server.login.url>
+
+      <!-- Configuration of portlet container under test for generated URLs -->
+      <!-- (only needed if test.url.strategy=generateURLs) -->
+      <test.server.host>localhost</test.server.host>
+      <test.server.port>8080</test.server.port>
+
+      <!-- HTML field IDs and values for username & password to enable automatic  login -->
+      <test.server.username.id>j_username</test.server.username.id>
+      <test.server.username>pluto</test.server.username>
+      <test.server.password.id>j_password</test.server.password.id>
+      <test.server.password>pluto</test.server.password>
+
+      <!-- Specifies the browser to be used by selenium WebDriver for running the tests. -->
+      <!-- Can be used with firefox or HTMLUnit without setting the test.browser.webDriver property. -->
+      <!-- Use of Chrome or IE requires the webDriver to be downloaded and available. Set the -->
+      <!-- test.browser.webDriver property to point to the appropriate WebDriver server. -->
+      <test.browser>firefox</test.browser>
+      <test.browser>HTMLUnit</test.browser>
+      <!-- commented outline below shows configuration for the Internet Explorer driver -->
+      <!-- test.browser.webDriver>C:\ntutil\IEDriverServer_x64_2.42.0\IEDriverServer.exe</test.browser.webDriver -->
+
+      <!-- Specify timeout in seconds for the driver to wait for page load. must be an integer. -->
+      <test.timeout>3</test.timeout>
+
+      <!-- Set in subprojects containing additional test case file. default is no additional file (false) -->
+      <additional.testcase.uri>false</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>false</additional.testcases.only>
+      
+      <!-- Set to true for modules that define all test pages in a file (page file is not generated from the portlet.xml) -->
+      <additional.pagefile.only>false</additional.pagefile.only>
+
+   </properties>
+
+   <modules>
+      <module>common</module>
+      <module>TestModule1</module>
+      <module>TestModule2</module>
+      <module>TestModule3</module>
+      <module>TestModule3-portlet1</module>
+      <module>TestModule3-portlet2</module>
+      <module>V2AnnotationTests</module>
+      <module>V2EnvironmentTests</module>
+      <module>V2ExceptionTests</module>
+      <module>V2FilterTests</module>
+      <module>V2PortletTests</module>
+      <module>V2RequestTests</module>
+      <module>V2ResponseTests</module>
+      <module>V2URLTests</module>
+      <module>V2WrapperTests</module>
+      <module>V2AddlEnvironmentTests</module>
+      <module>V2AddlFilterTests</module>
+      <module>V2AddlPortletTests</module>
+      <module>V2AddlRequestTests</module>
+      <module>V2AddlResponseTests</module>
+      <module>V2PortletTagLibraryTests</module>
+      <module>V2PortletTagLibraryTests2</module>
+      <module>V2PortletTagLibraryTests3</module>
+      <module>V2DispatcherTests</module>
+      <module>V2DispatcherTests2</module>
+      <module>V2DispatcherTests3S</module>
+      <module>V2DispatcherTests4</module>
+      <module>V2DispatcherTests5</module>
+      <module>V2DispatcherTests6</module>
+      <module>V2DispatcherReqRespTests1</module>
+      <module>V2DispatcherReqRespTests2</module>
+      <module>V2DispatcherReqRespTests3</module>
+      <module>V2DispatcherReqRespTests4</module>
+      <module>V2DispatcherReqRespTests5S</module>
+      <module>V2SigTestsAction</module>
+      <module>V2SigTestsEnv</module>
+      <module>V2SigTestsEvent</module>
+      <module>V2SigTestsException</module>
+      <module>V2SigTestsFilter</module>
+      <module>V2SigTestsRender</module>
+      <module>V2SigTestsResource</module>
+      <module>V2SigTestsURL</module>
+      <module>V2SigTestsWrapper</module>
+      <module>V3PortletContextTests</module>
+      <module>V3PortletConfigTests</module>
+	  <module>V3URLTests</module>
+	  <module>V3RenderStateTests</module>
+      <module>V3HeaderPortletTests</module>
+      <module>V3PortletParametersTests</module>
+      <module>deploy</module>
+      <module>driver</module>
+   </modules>
+
+   <dependencyManagement>
+      <dependencies>
+
+         <!-- the portlet tag library -->
+         <dependency>
+            <groupId>org.apache.portals.pluto</groupId>
+            <artifactId>pluto-taglib</artifactId>
+            <version>${project.version}</version>
+            <scope>provided</scope>
+         </dependency>
+
+         <!-- For creating and executing tests -->
+         <dependency>
+            <groupId>junit</groupId>
+            <artifactId>junit</artifactId>
+            <version>4.11</version>
+            <scope>test</scope>
+         </dependency>
+         <dependency>
+            <groupId>org.seleniumhq.selenium</groupId>
+            <artifactId>selenium-java</artifactId>
+            <version>2.53.0</version>
+            <scope>test</scope>
+         </dependency>
+         <dependency>
+            <groupId>org.seleniumhq.selenium</groupId>
+            <artifactId>htmlunit-driver</artifactId>
+            <version>2.21</version>
+            <scope>test</scope>
+         </dependency>
+      </dependencies>
+   </dependencyManagement>
+
+   <build>
+      <finalName>${project.artifactId}</finalName>
+
+      <pluginManagement>
+         <plugins>
+            <plugin>
+               <groupId>org.apache.maven.plugins</groupId>
+               <artifactId>maven-jar-plugin</artifactId>
+               <configuration>
+                  <skipIfEmpty>true</skipIfEmpty>
+               </configuration>
+            </plugin>
+            <plugin>
+               <groupId>org.apache.maven.plugins</groupId>
+               <artifactId>maven-war-plugin</artifactId>
+               <configuration>
+                  <archiveClasses>false</archiveClasses>
+                  <failOnMissingWebXml>false</failOnMissingWebXml>
+                  <webResources>
+                     <webResource>
+                        <directory>${project.build.directory}/${test.file.dir}</directory>
+                        <targetPath>${test.file.dir}</targetPath>
+                     </webResource>
+                  </webResources>
+               </configuration>
+            </plugin>
+
+            <!-- For Performing xml translations to create test.xml files -->
+            <plugin>
+               <groupId>org.codehaus.mojo</groupId>
+               <artifactId>xml-maven-plugin</artifactId>
+               <version>1.0</version>
+               <executions>
+               
+                  <!-- For generating test case list from portlet.xml and additionalTCs.xml files -->
+                  <execution>
+                     <id>generate-testcases</id>
+                     <phase>generate-resources</phase>
+                     <goals>
+                        <goal>transform</goal>
+                     </goals>
+                     <configuration>
+                        <skip>${additional.testcases.only}</skip>
+                        <transformationSets>
+                     
+                           <!-- automatically generate test case list for module -->
+                           <transformationSet>
+                              <dir>src/main/webapp/WEB-INF</dir>
+                              <includes>
+                                 <include>portlet.xml</include>
+                              </includes>
+                              <outputDir>${project.build.directory}/${test.file.dir}</outputDir>
+                              <fileMappers>
+                                 <fileMapper implementation="org.codehaus.plexus.components.io.filemappers.MergeFileMapper">
+                                    <targetName>${test.file.name}</targetName>
+                                 </fileMapper>
+                              </fileMappers>
+                              <parameters>
+                                 <parameter>
+                                    <name>additionalTCs</name>
+                                    <value>${additional.testcase.uri}</value>
+                                 </parameter>
+                                 <parameter>
+                                    <name>copyOnly</name>
+                                    <value>${additional.testcases.only}</value>
+                                 </parameter>
+                              </parameters>
+                              <stylesheet>${project.build.directory}/xml-resources/${test.file.xsl}</stylesheet>
+                           </transformationSet>
+                     
+                        </transformationSets>
+                     </configuration>
+                  </execution>
+                  
+                  <!-- For generating page file from portlet.xml -->
+                  <execution>
+                     <id>generate-pagefile</id>
+                     <phase>generate-resources</phase>
+                     <goals>
+                        <goal>transform</goal>
+                     </goals>
+                     <configuration>
+                        <skip>${additional.pagefile.only}</skip>
+                        <transformationSets>
+                     
+                           <!-- Automatically generate page file for the module -->
+                           <transformationSet>
+                              <dir>src/main/webapp/WEB-INF</dir>
+                              <includes>
+                                 <include>portlet.xml</include>
+                              </includes>
+                              <outputDir>${project.build.directory}/${test.file.dir}</outputDir>
+                              <fileMappers>
+                                 <fileMapper implementation="org.codehaus.plexus.components.io.filemappers.MergeFileMapper">
+                                    <targetName>${page.file.name}</targetName>
+                                 </fileMapper>
+                              </fileMappers>
+                              <parameters>
+                                 <parameter>
+                                    <name>portlet-app-context</name>
+                                    <value>${project.artifactId}-${project.version}</value>
+                                 </parameter>
+                              </parameters>
+                              <stylesheet>${project.build.directory}/xml-resources/${page.file.xsl}</stylesheet>
+                           </transformationSet>
+                     
+                        </transformationSets>
+                     </configuration>
+                  </execution>
+               </executions>
+            </plugin>
+
+            <!-- For extracting the XML transformation stylesheets from common module -->
+            <plugin>
+               <groupId>org.apache.maven.plugins</groupId>
+               <artifactId>maven-dependency-plugin</artifactId>
+               <version>2.8</version>
+               <executions>
+                  <execution>
+                     <id>xml-resource-dependencies</id>
+                     <phase>generate-sources</phase>
+                     <goals>
+                        <goal>unpack-dependencies</goal>
+                     </goals>
+                     <configuration>
+                        <includeArtifactIds>tck-common</includeArtifactIds>
+                        <includes>xml-resources/**</includes>
+                        <outputDirectory>${project.build.directory}</outputDirectory>
+                     </configuration>
+                  </execution>
+               </executions>
+            </plugin>
+            
+            <!-- For copying the page & testcase files for V3 module build -->
+            <plugin>
+               <groupId>com.coderplus.maven.plugins</groupId>
+               <artifactId>copy-rename-maven-plugin</artifactId>
+               <version>1.0.1</version>
+               <executions>
+                  <execution>
+                     <id>copy-files</id>
+                     <phase>generate-sources</phase>
+                     <goals>
+                        <goal>copy</goal>
+                     </goals>
+                     <configuration>
+                        <fileSets>
+                           <fileSet>
+                              <sourceFile>src/main/resources/xml-resources/additionalTCs.xml</sourceFile>
+                              <destinationFile>target/${test.file.dir}/${project.artifactId}-tests.xml</destinationFile>
+                           </fileSet>
+                           <fileSet>
+                              <sourceFile>src/main/resources/xml-resources/additionalPages.xml</sourceFile>
+                              <destinationFile>target/${test.file.dir}/${project.artifactId}-pages.xml</destinationFile>
+                           </fileSet>                
+                        </fileSets>
+                     </configuration>
+                  </execution>
+               </executions>
+            </plugin>
+             
+         </plugins>
+      </pluginManagement>
+
+      <plugins>
+      
+         <!-- skip legal file checking for now -->
+         <plugin>
+            <groupId>org.codehaus.mojo</groupId>
+            <artifactId>ianal-maven-plugin</artifactId>
+            <executions>
+               <execution>
+                  <goals>
+                     <goal>verify-legal-files</goal>
+                  </goals>
+                  <configuration>
+                     <skip>true</skip>
+                  </configuration>
+               </execution>
+            </executions>
+         </plugin>
+      
+         <plugin>
+            <groupId>org.apache.maven.plugins</groupId>
+            <artifactId>maven-javadoc-plugin</artifactId>
+            <configuration>
+               <doctitle>
+                  JSR 362 Portlet Specification 3.0 TCK Working
+                  Document
+               </doctitle>
+               <windowtitle>
+                  JSR 362 Portlet Specification 3.0 TCK
+                  Working Document
+               </windowtitle>
+               <stylesheetfile>${javadoc.css.file}</stylesheetfile>
+               <!-- link to Java EE APIs for cross-references -->
+               <links>
+                  <link>http://docs.oracle.com/javaee/7/api/</link>
+               </links>
+               <docfilessubdirs>true</docfilessubdirs>
+               <bottom>
+               <![CDATA[Java Portlet Specification V3.0 Working Document.
+                  See the <a href="doc-files/NOTICE.txt">Copyright</a> and 
+                  <a href="doc-files/LICENSE.txt">License</a> provided with this distribution.
+                  Use is subject to
+                  <a href="http://www.apache.org/licenses/LICENSE-2.0">license terms</a>.]]>
+               </bottom>
+            </configuration>
+            <executions>
+               <execution>
+                  <id>aggregate</id>
+                  <goals>
+                     <goal>aggregate</goal>
+                  </goals>
+                  <phase>site</phase>
+               </execution>
+            </executions>
+         </plugin>
+      </plugins>
+   </build>
+
+   <reporting>
+      <plugins>
+         <plugin>
+            <groupId>org.apache.maven.plugins</groupId>
+            <artifactId>maven-surefire-report-plugin</artifactId>
+            <version>2.17</version>
+            <configuration>
+               <aggregate>true</aggregate>
+               <reportsDirectories>
+                  <reportsDirectory>${project.build.directory}/surefire-reports</reportsDirectory>
+                  <reportsDirectory>${project.build.directory}/jasmine</reportsDirectory>
+               </reportsDirectories>
+            </configuration>
+         </plugin>
+      </plugins>
+   </reporting>
+
+   <profiles>
+      <profile>
+         <id>pluto</id>
+      </profile>
+   </profiles>
+
+</project>
