diff --git a/api/pom.xml b/api/pom.xml
index 727507b..401609a 100644
--- a/api/pom.xml
+++ b/api/pom.xml
@@ -1,631 +1,631 @@
-<?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.
--->
-<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.myfaces.core</groupId>
-        <artifactId>myfaces-core-project</artifactId>
-        <version>2.3-next-SNAPSHOT</version>
-        <relativePath>../parent/pom.xml</relativePath>
-    </parent>
-
-    <modelVersion>4.0.0</modelVersion>
-
-    <groupId>org.apache.myfaces.core</groupId>
-    <artifactId>myfaces-api</artifactId>
-    <name>Apache MyFaces Core 2.3-next - API</name>
-    <description>
-        The public API classes of the Apache MyFaces Core JSF-2.3-next project
-    </description>
-    <url>http://myfaces.apache.org/core23next/myfaces-api</url>
-
-    <build>
-
-
-        <resources>
-            <!-- standard resources -->
-            <resource>
-                <directory>src/main/resources</directory>
-            </resource>
-
-        </resources>
-
-        <plugins>
-
-            <plugin>
-                <groupId>org.codehaus.mojo</groupId>
-                <artifactId>build-helper-maven-plugin</artifactId>
-                <executions>
-                  <execution>
-                    <id>parse-version</id>
-                    <goals>
-                      <goal>parse-version</goal>
-                    </goals>
-                  </execution>
-                </executions>
-            </plugin>
-
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-checkstyle-plugin</artifactId>
-                <configuration>
-                    <excludes>javax/faces/component/**/*.java</excludes>
-                </configuration>
-            </plugin>
-
-            <plugin>
-                <groupId>org.apache.rat</groupId>
-                <artifactId>apache-rat-plugin</artifactId>
-                <configuration>
-                    <excludes>
-                        <exclude>**/*/README.md</exclude>
-                        <exclude>**/*/MANIFEST.MF</exclude>
-                        <exclude>.git</exclude>
-                        <exclude>.gitignore</exclude>
-                        <exclude>**/target/**/*</exclude>
-                        <exclude>src/main/resources/META-INF/licenses/*-LICENSE.txt</exclude>
-                        <exclude>src/main/resources/META-INF/licenses/*-LICENSE.TXT</exclude>
-                        <exclude>src/main/resources/META-INF/services/**</exclude>
-                        <exclude>DEPENDENCIES</exclude>
-                    </excludes>
-                </configuration>
-                <executions>
-                    <execution>
-                        <phase>verify</phase>
-                        <goals>
-                            <goal>check</goal>
-                        </goals>
-                    </execution>
-                </executions>
-            </plugin>
-
-            <!-- compilation and compression of our javascripts -->
-            <plugin>
-                <groupId>org.apache.myfaces.buildtools</groupId>
-                <artifactId>myfaces-javascript-plugin</artifactId>
-                <extensions>true</extensions>
-                <executions>
-                     <execution>
-                        <id>compile</id>
-                        <goals>
-                            <goal>compile</goal>
-                        </goals>
-                        <phase>process-resources</phase>
-                        <configuration>
-                            <sourceDirectory>${basedir}/src/main/javascript/META-INF/resources</sourceDirectory>
-                            <descriptor>${basedir}/src/assembler/jsfscripts-compiler.xml</descriptor>
-                            <excludes>
-                                <exclude>**/myfaces/_impl/core/jsf-uncompressed.js</exclude>
-                            </excludes>
-                        </configuration>
-                    </execution>
-
-                    <execution>
-                        <id>compile-uncompressed-full</id>
-                        <goals>
-                            <goal>compile</goal>
-                        </goals>
-                        <phase>process-resources</phase>
-                        <configuration>
-                            <sourceDirectory>${basedir}/src/main/javascript/META-INF/resources</sourceDirectory>
-                            <descriptor>${basedir}/src/assembler/jsfscripts-uncompressed-full-compiler.xml</descriptor>
-                            <outputDirectory>${basedir}/target/classes/META-INF/internal-resources/javax.faces/</outputDirectory>
-                            <excludes>
-                                <exclude>**/myfaces/_impl/core/jsf-uncompressed.js</exclude>
-                            </excludes>
-                        </configuration>
-                    </execution>
-
-                    <execution>
-                        <id>compile-minimal</id>
-                        <goals>
-                            <goal>compile</goal>
-                        </goals>
-                        <phase>process-resources</phase>
-                        <configuration>
-                            <sourceDirectory>${basedir}/src/main/javascript/META-INF/resources</sourceDirectory>
-                            <descriptor>${basedir}/src/assembler/jsfscripts-minimal-compiler.xml</descriptor>
-                            <outputDirectory>${basedir}/target/classes/META-INF/internal-resources/javax.faces/</outputDirectory>
-                            <excludes>
-                                <exclude>**/myfaces/_impl/core/jsf-uncompressed.js</exclude>
-                            </excludes>
-                        </configuration>
-                    </execution>
-
-                    <execution>
-                        <id>compile-i18n</id>
-                        <goals>
-                            <goal>compile</goal>
-                        </goals>
-                        <phase>process-resources</phase>
-                        <configuration>
-                            <sourceDirectory>${basedir}/src/main/javascript/META-INF/resources</sourceDirectory>
-                            <descriptor>${basedir}/src/assembler/jsfscripts-i18n-compiler.xml</descriptor>
-                            <outputDirectory>${basedir}/target/classes/META-INF/resources/myfaces/</outputDirectory>
-                            <excludes>
-                                <exclude>**/myfaces/_impl/core/jsf-uncompressed.js</exclude>
-                            </excludes>
-                        </configuration>
-                    </execution>
-
-                    <execution>
-                        <id>compress</id>
-                        <goals>
-                            <goal>compress</goal>
-                        </goals>
-                        <phase>process-resources</phase>
-                        <configuration>
-                            <scripts>target/classes/META-INF/resources/javax.faces/</scripts>
-                            <excludes>
-                                <exclude>jsf-uncompressed.js</exclude>
-                                <exclude>jsf-uncompressed-full.js</exclude>
-                            </excludes>
-                            <compressor>yahooUI</compressor>
-                        </configuration>
-                    </execution>
-
-                    <execution>
-                        <id>compress-extended</id>
-                        <goals>
-                            <goal>compress</goal>
-                        </goals>
-                        <phase>process-resources</phase>
-                        <configuration>
-                            <scripts>target/classes/META-INF/resources/myfaces/</scripts>
-                            <excludes>
-                                <exclude>jsf-uncompressed.js</exclude>
-                                <exclude>jsf-uncompressed-full.js</exclude>
-                            </excludes>
-                            <compressor>yahooUI</compressor>
-                        </configuration>
-                    </execution>
-
-                    <execution>
-                        <id>compress-alternatives</id>
-                        <goals>
-                            <goal>compress</goal>
-                        </goals>
-                        <phase>process-resources</phase>
-                        <configuration>
-                            <scripts>target/classes/META-INF/internal-resources/javax.faces/</scripts>
-                            <excludes>
-                                <exclude>jsf-uncompressed-full.js</exclude>
-                                <exclude>META-INF/**/*.js</exclude>
-                            </excludes>
-                            <compressor>yahooUI</compressor>
-                        </configuration>
-                    </execution>
-                </executions>
-                <configuration>
-                    <optimizationLevel>0</optimizationLevel>
-                    <sourceDirectory>src/main/javascript</sourceDirectory>
-                    <webappDirectory>${basedir}</webappDirectory>
-                    <outputDirectory>${basedir}/target/classes/META-INF/resources/javax.faces/</outputDirectory>
-                </configuration>
-            </plugin>
-
-
-            <!-- we want to use the test cases also in myfacse-impl, thus creating a test-jar -->
-            <plugin>
-                <artifactId>maven-jar-plugin</artifactId>
-                <version>2.2</version>
-                <executions>
-                    <execution>
-                        <goals>
-                            <goal>jar</goal>
-                            <goal>test-jar</goal>
-                        </goals>
-                    </execution>
-                </executions>
-                <configuration>
-                    <archive>
-                        <manifestFile>${project.build.outputDirectory}/META-INF/MANIFEST.MF</manifestFile>
-                    </archive>
-                    <excludes>
-                        <exclude>**/META-INF/resources/myfaces/myfaces/**</exclude>
-                        <exclude>**/META-INF/resources/javax.faces/myfaces/**</exclude>
-                    </excludes>
-                </configuration>
-            </plugin>
-
-            <!--
-                berlios jsunit under apache2 license to cover javascript core routines which
-                do not have to rely on a browser or can work on browser mockups!
-
-                for furhter on dom testing we probably have to integrate html based tests
-                with a browser engine but for the core apis this should be sufficient
-            -->
-            <plugin>
-                <groupId>de.berlios.jsunit</groupId>
-                <artifactId>jsunit-maven2-plugin</artifactId>
-                <version>1.3</version>
-                <executions>
-                    <!-- TODO currently deactivated -->
-                    <!--execution>
-                        <id>test</id>
-                        <goals>
-                            <goal>jsunit-test</goal>
-                        </goals>
-                    </execution-->
-                </executions>
-                <configuration>
-                    <sourceDirectory>src/main/javascript/META-INF/resources</sourceDirectory>
-                    <sources>
-                        <source>../../../../test/javascript/org/apache/myfaces/mockups/BrowserMockups.js</source>
-                        <!--
-                        <source>javax/faces/_util/OpenAjax.js</source>
-                        -->
-                        <source>javax/faces/_util/_JSF2Utils.js</source>
-                        <source>javax/faces/ajax/Ajax.js</source>
-                        <source>../../../../test/javascript/org/apache/myfaces/test/_TestScenario.js</source>
-                    </sources>
-                    <testSourceDirectory>src/test/javascript/org/apache/myfaces</testSourceDirectory>
-                    <reportsDirectory>target/surefire-reports</reportsDirectory>
-                    <testSuites>
-                        <testSuite>
-                            <name>javax.faces.Ajax</name>
-                            <type>TESTSUITES</type>
-                            <includes>
-                                <include>test/MockupTest.js</include>
-                                <include>utils/_JSF2UtilsTests.js</include>
-                                <include>ajax/AjaxTests.js</include>
-                            </includes>
-                        </testSuite>
-                    </testSuites>
-                </configuration>
-            </plugin>
-
-            <!-- myfaces-builder-plugin for metadata and component classes -->
-            <plugin>
-                <groupId>org.apache.myfaces.buildtools</groupId>
-                <artifactId>myfaces-builder-plugin</artifactId>
-                <executions>
-                    <execution>
-                        <goals>
-                            <goal>build-metadata</goal>
-                        </goals>
-                    </execution>
-                    <execution>
-                        <id>makecomp</id>
-                        <configuration>
-                            <jsfVersion>20</jsfVersion>
-                            <templateComponentName>componentClass20.vm</templateComponentName>
-                        </configuration>
-                        <goals>
-                            <goal>make-components</goal>
-                        </goals>
-                    </execution>
-                </executions>
-            </plugin>
-
-            <!-- create manifest.mf for OSGi -->
-            <plugin>
-                <groupId>org.apache.felix</groupId>
-                <artifactId>maven-bundle-plugin</artifactId>
-                <executions>
-                    <execution>
-                        <id>bundle-manifest</id>
-                        <phase>process-classes</phase>
-                        <goals>
-                            <goal>manifest</goal>
-                        </goals>
-                        <configuration>
-                            <instructions>
-                                <Bundle-SymbolicName>org.apache.myfaces.core.api</Bundle-SymbolicName>
-                                <Bundle-Classpath>.</Bundle-Classpath>
-                                <Build-Jdk>${java.version}</Build-Jdk>
-                                <Implementation-Title>${project.name}</Implementation-Title>
-                                <Implementation-Version>${project.version}</Implementation-Version>
-                                <Implementation-Vendor>The Apache Software Foundation</Implementation-Vendor>
-                                <Implementation-Vendor-Id>${project.groupId}</Implementation-Vendor-Id>
-                                <Export-Package>
-                                    *;version="${project.version}"
-                                </Export-Package>
-                                <Import-Package>
-                                    javax.el;version="[1.0.0, 3.1.0)",
-                                    javax.validation*;version="[1.0.0, 2.0.0)",
-                                    javax.servlet;version="[3, 5)",
-                                    javax.servlet.http;version="[3, 5)",
-                                    javax.servlet.jsp;version="[2.1.0, 3.1)",
-                                    javax.servlet.jsp.jstl.core;version="[1.1.2, 2.0.0)",
-                                    javax.servlet.jsp.jstl.sql;version="[1.1.2, 2.0.0)",
-                                    javax.servlet.jsp.tagext;version="[2.1.0, 3.2)",
-                                    javax.faces.*;version="${project.version}"
-                                </Import-Package>
-                                <Require-Bundle>
-                                    org.apache.myfaces.core.impl;bundle-version="${parsedVersion.osgiVersion}"
-                                </Require-Bundle>
-                            </instructions>
-                        </configuration>
-                    </execution>
-                </executions>
-            </plugin>
-
-            <!-- execute tests (JUnit) -->
-            <plugin>
-                <artifactId>maven-surefire-plugin</artifactId>
-            </plugin>
-
-            <!-- generate jandex file for Quarkus but skip classes which depends on JSP dependency -->
-            <plugin>
-                <groupId>org.jboss.jandex</groupId>
-                <artifactId>jandex-maven-plugin</artifactId>
-                <version>1.0.6</version>
-                <executions>
-                  <execution>
-                    <id>make-index</id>
-                    <goals>
-                        <goal>jandex</goal>
-                    </goals>
-                    <configuration>
-                        <fileSets>
-                            <fileSet>
-                                <directory>${project.build.outputDirectory}</directory>
-                                <excludes>
-                                  <exclude>**/*Tag.class</exclude>
-                                </excludes>
-                            </fileSet>
-                        </fileSets>
-                    </configuration>
-                  </execution>
-                </executions>
-            </plugin>
-
-        </plugins>
-
-    </build>
-
-
-    <profiles>
-
-        <!-- TODO jakobk: we could change this to -Papache-release -->
-        <!--
-        - Generate files that are good to have when doing a release to main
-        - repositories, but which are not wanted when doing a quick
-        - "mvn install" before testing some code modifications.
-        -->
-        <profile>
-            <id>generate-assembly</id>
-            <build>
-                <plugins>
-                    <plugin>
-                        <groupId>org.apache.maven.plugins</groupId>
-                        <artifactId>maven-javadoc-plugin</artifactId>
-                        <configuration>
-                            <tags>
-                                <tag>
-                                    <name>JSFJspTag</name>
-                                    <placement>X</placement>
-                                </tag>
-                                <tag>
-                                    <name>JSFJspAttribute</name>
-                                    <placement>X</placement>
-                                </tag>
-                            </tags>
-                        </configuration>
-                        <executions>
-                            <execution>
-                                <id>attach-javadoc</id>
-                                <goals>
-                                    <goal>jar</goal>
-                                </goals>
-                            </execution>
-                        </executions>
-                    </plugin>
-                    <plugin>
-                        <groupId>org.apache.myfaces.buildtools</groupId>
-                        <artifactId>myfaces-jsdoc-plugin</artifactId>
-                        <version>1.0-beta-1</version>
-                        <executions>
-                            <execution>
-                                <id>attach-jsdoc</id>
-                                <goals>
-                                    <goal>jar</goal>
-                                </goals>
-                            </execution>
-                        </executions>
-                    </plugin>
-                </plugins>
-            </build>
-        </profile>
-
-        <!-- This profile verifies the binary compablity with the jsf api of the RI -->
-        <profile>
-            <id>checkCompatibility</id>
-            <build>
-                <plugins>
-                    <plugin>
-                        <groupId>org.codehaus.mojo</groupId>
-                        <artifactId>clirr-maven-plugin</artifactId>
-                        <version>2.8</version>
-                        <configuration>
-                            <comparisonArtifacts>
-                                <comparisonArtifact>
-                                    <groupId>org.glassfish</groupId>
-                                    <artifactId>javax.faces</artifactId>
-                                    <version>2.3.0</version>
-                                </comparisonArtifact>
-                            </comparisonArtifacts>
-                            <includes>
-                                <include>javax/faces/**</include>
-                            </includes>
-                        </configuration>
-                        <executions>
-                            <execution>
-                                <goals>
-                                    <goal>check</goal>
-                                </goals>
-                                <phase>test</phase>
-                            </execution>
-                        </executions>
-                    </plugin>
-                </plugins>
-            </build>
-        </profile>
-
-        <!-- check for Java 1.6 -->
-        <profile>
-            <id>checkJDK</id>
-            <activation>
-                <property>
-                    <name>performRelease</name>
-                    <value>true</value>
-                </property>
-            </activation>
-            <build>
-                <plugins>
-                </plugins>
-            </build>
-        </profile>
-
-        <!--
-            this optional profile generates the jsdoc content from
-            the embedded javascripts
-        -->
-
-        <profile>
-            <id>generateJsDoc</id>
-            <build>
-              <plugins>
-                    <plugin>
-                        <groupId>org.apache.myfaces.buildtools</groupId>
-                        <artifactId>myfaces-jsdoc-plugin</artifactId>
-                        <version>1.0-beta-1</version>
-                        <executions>
-                            <execution>
-                                <phase>generate-resources</phase>
-                                <goals>
-                                    <goal>jsdoc</goal>
-                                </goals>
-                            </execution>
-                        </executions>
-                    </plugin>
-               </plugins>
-            </build>
-        </profile>
-
-    </profiles>
-
-
-    <dependencies>
-        <!-- Java EE APIs -->
-        <dependency>
-            <groupId>org.apache.tomcat</groupId>
-            <artifactId>tomcat-servlet-api</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.tomcat</groupId>
-            <artifactId>tomcat-websocket-api</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.tomcat</groupId>
-            <artifactId>tomcat-el-api</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.geronimo.specs</groupId>
-            <artifactId>geronimo-jsp_2.2_spec</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>javax.servlet</groupId>
-            <artifactId>jstl</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.geronimo.specs</groupId>
-            <artifactId>geronimo-validation_1.0_spec</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.geronimo.specs</groupId>
-            <artifactId>geronimo-jcdi_1.1_spec</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.geronimo.specs</groupId>
-            <artifactId>geronimo-atinject_1.0_spec</artifactId>
-        </dependency>
-
-
-        <!-- builder-annotations like @JSFWebConfigParam -->
-        <dependency>
-            <groupId>org.apache.myfaces.buildtools</groupId>
-            <artifactId>myfaces-builder-annotations</artifactId>
-        </dependency>
-
-        <dependency>
-            <groupId>de.berlios.jsunit</groupId>
-            <artifactId>jsunit-maven2-plugin</artifactId>
-        </dependency>
-    </dependencies>
-
-
-    <reporting>
-        <plugins>
-            <plugin>
-                <artifactId>maven-javadoc-plugin</artifactId>
-                <configuration>
-                    <tags>
-                        <tag>
-                            <name>JSFJspTag</name>
-                            <placement>X</placement>
-                        </tag>
-                        <tag>
-                            <name>JSFJspAttribute</name>
-                            <placement>X</placement>
-                        </tag>
-                    </tags>
-                </configuration>
-            </plugin>
-
-            <plugin>
-               <groupId>org.apache.myfaces.buildtools</groupId>
-                <artifactId>myfaces-jsdoc-plugin</artifactId>
-                <version>1.0-beta-1</version>
-            </plugin>
-
-            <plugin>
-                <artifactId>maven-changelog-plugin</artifactId>
-                <reportSets>
-                    <reportSet>
-                        <id>dual-report</id>
-                        <configuration>
-                            <type>range</type>
-                            <range>30</range>
-                        </configuration>
-                        <reports>
-                            <report>changelog</report>
-                            <report>file-activity</report>
-                            <report>dev-activity</report>
-                        </reports>
-                    </reportSet>
-                </reportSets>
-            </plugin>
-
-            <plugin>
-                <artifactId>maven-jxr-plugin</artifactId>
-            </plugin>
-
-            <plugin>
-                <artifactId>maven-surefire-report-plugin</artifactId>
-            </plugin>
-
-            <plugin>
-                <groupId>org.codehaus.mojo</groupId>
-                <artifactId>taglist-maven-plugin</artifactId>
-            </plugin>
-        </plugins>
-    </reporting>
-
-</project>
+<?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.
+-->
+<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.myfaces.core</groupId>
+        <artifactId>myfaces-core-project</artifactId>
+        <version>2.3-next-M5</version>
+        <relativePath>../parent/pom.xml</relativePath>
+    </parent>
+
+    <modelVersion>4.0.0</modelVersion>
+
+    <groupId>org.apache.myfaces.core</groupId>
+    <artifactId>myfaces-api</artifactId>
+    <name>Apache MyFaces Core 2.3-next - API</name>
+    <description>
+        The public API classes of the Apache MyFaces Core JSF-2.3-next project
+    </description>
+    <url>http://myfaces.apache.org/core23next/myfaces-api</url>
+
+    <build>
+
+
+        <resources>
+            <!-- standard resources -->
+            <resource>
+                <directory>src/main/resources</directory>
+            </resource>
+
+        </resources>
+
+        <plugins>
+
+            <plugin>
+                <groupId>org.codehaus.mojo</groupId>
+                <artifactId>build-helper-maven-plugin</artifactId>
+                <executions>
+                  <execution>
+                    <id>parse-version</id>
+                    <goals>
+                      <goal>parse-version</goal>
+                    </goals>
+                  </execution>
+                </executions>
+            </plugin>
+
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-checkstyle-plugin</artifactId>
+                <configuration>
+                    <excludes>javax/faces/component/**/*.java</excludes>
+                </configuration>
+            </plugin>
+
+            <plugin>
+                <groupId>org.apache.rat</groupId>
+                <artifactId>apache-rat-plugin</artifactId>
+                <configuration>
+                    <excludes>
+                        <exclude>**/*/README.md</exclude>
+                        <exclude>**/*/MANIFEST.MF</exclude>
+                        <exclude>.git</exclude>
+                        <exclude>.gitignore</exclude>
+                        <exclude>**/target/**/*</exclude>
+                        <exclude>src/main/resources/META-INF/licenses/*-LICENSE.txt</exclude>
+                        <exclude>src/main/resources/META-INF/licenses/*-LICENSE.TXT</exclude>
+                        <exclude>src/main/resources/META-INF/services/**</exclude>
+                        <exclude>DEPENDENCIES</exclude>
+                    </excludes>
+                </configuration>
+                <executions>
+                    <execution>
+                        <phase>verify</phase>
+                        <goals>
+                            <goal>check</goal>
+                        </goals>
+                    </execution>
+                </executions>
+            </plugin>
+
+            <!-- compilation and compression of our javascripts -->
+            <plugin>
+                <groupId>org.apache.myfaces.buildtools</groupId>
+                <artifactId>myfaces-javascript-plugin</artifactId>
+                <extensions>true</extensions>
+                <executions>
+                     <execution>
+                        <id>compile</id>
+                        <goals>
+                            <goal>compile</goal>
+                        </goals>
+                        <phase>process-resources</phase>
+                        <configuration>
+                            <sourceDirectory>${basedir}/src/main/javascript/META-INF/resources</sourceDirectory>
+                            <descriptor>${basedir}/src/assembler/jsfscripts-compiler.xml</descriptor>
+                            <excludes>
+                                <exclude>**/myfaces/_impl/core/jsf-uncompressed.js</exclude>
+                            </excludes>
+                        </configuration>
+                    </execution>
+
+                    <execution>
+                        <id>compile-uncompressed-full</id>
+                        <goals>
+                            <goal>compile</goal>
+                        </goals>
+                        <phase>process-resources</phase>
+                        <configuration>
+                            <sourceDirectory>${basedir}/src/main/javascript/META-INF/resources</sourceDirectory>
+                            <descriptor>${basedir}/src/assembler/jsfscripts-uncompressed-full-compiler.xml</descriptor>
+                            <outputDirectory>${basedir}/target/classes/META-INF/internal-resources/javax.faces/</outputDirectory>
+                            <excludes>
+                                <exclude>**/myfaces/_impl/core/jsf-uncompressed.js</exclude>
+                            </excludes>
+                        </configuration>
+                    </execution>
+
+                    <execution>
+                        <id>compile-minimal</id>
+                        <goals>
+                            <goal>compile</goal>
+                        </goals>
+                        <phase>process-resources</phase>
+                        <configuration>
+                            <sourceDirectory>${basedir}/src/main/javascript/META-INF/resources</sourceDirectory>
+                            <descriptor>${basedir}/src/assembler/jsfscripts-minimal-compiler.xml</descriptor>
+                            <outputDirectory>${basedir}/target/classes/META-INF/internal-resources/javax.faces/</outputDirectory>
+                            <excludes>
+                                <exclude>**/myfaces/_impl/core/jsf-uncompressed.js</exclude>
+                            </excludes>
+                        </configuration>
+                    </execution>
+
+                    <execution>
+                        <id>compile-i18n</id>
+                        <goals>
+                            <goal>compile</goal>
+                        </goals>
+                        <phase>process-resources</phase>
+                        <configuration>
+                            <sourceDirectory>${basedir}/src/main/javascript/META-INF/resources</sourceDirectory>
+                            <descriptor>${basedir}/src/assembler/jsfscripts-i18n-compiler.xml</descriptor>
+                            <outputDirectory>${basedir}/target/classes/META-INF/resources/myfaces/</outputDirectory>
+                            <excludes>
+                                <exclude>**/myfaces/_impl/core/jsf-uncompressed.js</exclude>
+                            </excludes>
+                        </configuration>
+                    </execution>
+
+                    <execution>
+                        <id>compress</id>
+                        <goals>
+                            <goal>compress</goal>
+                        </goals>
+                        <phase>process-resources</phase>
+                        <configuration>
+                            <scripts>target/classes/META-INF/resources/javax.faces/</scripts>
+                            <excludes>
+                                <exclude>jsf-uncompressed.js</exclude>
+                                <exclude>jsf-uncompressed-full.js</exclude>
+                            </excludes>
+                            <compressor>yahooUI</compressor>
+                        </configuration>
+                    </execution>
+
+                    <execution>
+                        <id>compress-extended</id>
+                        <goals>
+                            <goal>compress</goal>
+                        </goals>
+                        <phase>process-resources</phase>
+                        <configuration>
+                            <scripts>target/classes/META-INF/resources/myfaces/</scripts>
+                            <excludes>
+                                <exclude>jsf-uncompressed.js</exclude>
+                                <exclude>jsf-uncompressed-full.js</exclude>
+                            </excludes>
+                            <compressor>yahooUI</compressor>
+                        </configuration>
+                    </execution>
+
+                    <execution>
+                        <id>compress-alternatives</id>
+                        <goals>
+                            <goal>compress</goal>
+                        </goals>
+                        <phase>process-resources</phase>
+                        <configuration>
+                            <scripts>target/classes/META-INF/internal-resources/javax.faces/</scripts>
+                            <excludes>
+                                <exclude>jsf-uncompressed-full.js</exclude>
+                                <exclude>META-INF/**/*.js</exclude>
+                            </excludes>
+                            <compressor>yahooUI</compressor>
+                        </configuration>
+                    </execution>
+                </executions>
+                <configuration>
+                    <optimizationLevel>0</optimizationLevel>
+                    <sourceDirectory>src/main/javascript</sourceDirectory>
+                    <webappDirectory>${basedir}</webappDirectory>
+                    <outputDirectory>${basedir}/target/classes/META-INF/resources/javax.faces/</outputDirectory>
+                </configuration>
+            </plugin>
+
+
+            <!-- we want to use the test cases also in myfacse-impl, thus creating a test-jar -->
+            <plugin>
+                <artifactId>maven-jar-plugin</artifactId>
+                <version>2.2</version>
+                <executions>
+                    <execution>
+                        <goals>
+                            <goal>jar</goal>
+                            <goal>test-jar</goal>
+                        </goals>
+                    </execution>
+                </executions>
+                <configuration>
+                    <archive>
+                        <manifestFile>${project.build.outputDirectory}/META-INF/MANIFEST.MF</manifestFile>
+                    </archive>
+                    <excludes>
+                        <exclude>**/META-INF/resources/myfaces/myfaces/**</exclude>
+                        <exclude>**/META-INF/resources/javax.faces/myfaces/**</exclude>
+                    </excludes>
+                </configuration>
+            </plugin>
+
+            <!--
+                berlios jsunit under apache2 license to cover javascript core routines which
+                do not have to rely on a browser or can work on browser mockups!
+
+                for furhter on dom testing we probably have to integrate html based tests
+                with a browser engine but for the core apis this should be sufficient
+            -->
+            <plugin>
+                <groupId>de.berlios.jsunit</groupId>
+                <artifactId>jsunit-maven2-plugin</artifactId>
+                <version>1.3</version>
+                <executions>
+                    <!-- TODO currently deactivated -->
+                    <!--execution>
+                        <id>test</id>
+                        <goals>
+                            <goal>jsunit-test</goal>
+                        </goals>
+                    </execution-->
+                </executions>
+                <configuration>
+                    <sourceDirectory>src/main/javascript/META-INF/resources</sourceDirectory>
+                    <sources>
+                        <source>../../../../test/javascript/org/apache/myfaces/mockups/BrowserMockups.js</source>
+                        <!--
+                        <source>javax/faces/_util/OpenAjax.js</source>
+                        -->
+                        <source>javax/faces/_util/_JSF2Utils.js</source>
+                        <source>javax/faces/ajax/Ajax.js</source>
+                        <source>../../../../test/javascript/org/apache/myfaces/test/_TestScenario.js</source>
+                    </sources>
+                    <testSourceDirectory>src/test/javascript/org/apache/myfaces</testSourceDirectory>
+                    <reportsDirectory>target/surefire-reports</reportsDirectory>
+                    <testSuites>
+                        <testSuite>
+                            <name>javax.faces.Ajax</name>
+                            <type>TESTSUITES</type>
+                            <includes>
+                                <include>test/MockupTest.js</include>
+                                <include>utils/_JSF2UtilsTests.js</include>
+                                <include>ajax/AjaxTests.js</include>
+                            </includes>
+                        </testSuite>
+                    </testSuites>
+                </configuration>
+            </plugin>
+
+            <!-- myfaces-builder-plugin for metadata and component classes -->
+            <plugin>
+                <groupId>org.apache.myfaces.buildtools</groupId>
+                <artifactId>myfaces-builder-plugin</artifactId>
+                <executions>
+                    <execution>
+                        <goals>
+                            <goal>build-metadata</goal>
+                        </goals>
+                    </execution>
+                    <execution>
+                        <id>makecomp</id>
+                        <configuration>
+                            <jsfVersion>20</jsfVersion>
+                            <templateComponentName>componentClass20.vm</templateComponentName>
+                        </configuration>
+                        <goals>
+                            <goal>make-components</goal>
+                        </goals>
+                    </execution>
+                </executions>
+            </plugin>
+
+            <!-- create manifest.mf for OSGi -->
+            <plugin>
+                <groupId>org.apache.felix</groupId>
+                <artifactId>maven-bundle-plugin</artifactId>
+                <executions>
+                    <execution>
+                        <id>bundle-manifest</id>
+                        <phase>process-classes</phase>
+                        <goals>
+                            <goal>manifest</goal>
+                        </goals>
+                        <configuration>
+                            <instructions>
+                                <Bundle-SymbolicName>org.apache.myfaces.core.api</Bundle-SymbolicName>
+                                <Bundle-Classpath>.</Bundle-Classpath>
+                                <Build-Jdk>${java.version}</Build-Jdk>
+                                <Implementation-Title>${project.name}</Implementation-Title>
+                                <Implementation-Version>${project.version}</Implementation-Version>
+                                <Implementation-Vendor>The Apache Software Foundation</Implementation-Vendor>
+                                <Implementation-Vendor-Id>${project.groupId}</Implementation-Vendor-Id>
+                                <Export-Package>
+                                    *;version="${project.version}"
+                                </Export-Package>
+                                <Import-Package>
+                                    javax.el;version="[1.0.0, 3.1.0)",
+                                    javax.validation*;version="[1.0.0, 2.0.0)",
+                                    javax.servlet;version="[3, 5)",
+                                    javax.servlet.http;version="[3, 5)",
+                                    javax.servlet.jsp;version="[2.1.0, 3.1)",
+                                    javax.servlet.jsp.jstl.core;version="[1.1.2, 2.0.0)",
+                                    javax.servlet.jsp.jstl.sql;version="[1.1.2, 2.0.0)",
+                                    javax.servlet.jsp.tagext;version="[2.1.0, 3.2)",
+                                    javax.faces.*;version="${project.version}"
+                                </Import-Package>
+                                <Require-Bundle>
+                                    org.apache.myfaces.core.impl;bundle-version="${parsedVersion.osgiVersion}"
+                                </Require-Bundle>
+                            </instructions>
+                        </configuration>
+                    </execution>
+                </executions>
+            </plugin>
+
+            <!-- execute tests (JUnit) -->
+            <plugin>
+                <artifactId>maven-surefire-plugin</artifactId>
+            </plugin>
+
+            <!-- generate jandex file for Quarkus but skip classes which depends on JSP dependency -->
+            <plugin>
+                <groupId>org.jboss.jandex</groupId>
+                <artifactId>jandex-maven-plugin</artifactId>
+                <version>1.0.6</version>
+                <executions>
+                  <execution>
+                    <id>make-index</id>
+                    <goals>
+                        <goal>jandex</goal>
+                    </goals>
+                    <configuration>
+                        <fileSets>
+                            <fileSet>
+                                <directory>${project.build.outputDirectory}</directory>
+                                <excludes>
+                                  <exclude>**/*Tag.class</exclude>
+                                </excludes>
+                            </fileSet>
+                        </fileSets>
+                    </configuration>
+                  </execution>
+                </executions>
+            </plugin>
+
+        </plugins>
+
+    </build>
+
+
+    <profiles>
+
+        <!-- TODO jakobk: we could change this to -Papache-release -->
+        <!--
+        - Generate files that are good to have when doing a release to main
+        - repositories, but which are not wanted when doing a quick
+        - "mvn install" before testing some code modifications.
+        -->
+        <profile>
+            <id>generate-assembly</id>
+            <build>
+                <plugins>
+                    <plugin>
+                        <groupId>org.apache.maven.plugins</groupId>
+                        <artifactId>maven-javadoc-plugin</artifactId>
+                        <configuration>
+                            <tags>
+                                <tag>
+                                    <name>JSFJspTag</name>
+                                    <placement>X</placement>
+                                </tag>
+                                <tag>
+                                    <name>JSFJspAttribute</name>
+                                    <placement>X</placement>
+                                </tag>
+                            </tags>
+                        </configuration>
+                        <executions>
+                            <execution>
+                                <id>attach-javadoc</id>
+                                <goals>
+                                    <goal>jar</goal>
+                                </goals>
+                            </execution>
+                        </executions>
+                    </plugin>
+                    <plugin>
+                        <groupId>org.apache.myfaces.buildtools</groupId>
+                        <artifactId>myfaces-jsdoc-plugin</artifactId>
+                        <version>1.0-beta-1</version>
+                        <executions>
+                            <execution>
+                                <id>attach-jsdoc</id>
+                                <goals>
+                                    <goal>jar</goal>
+                                </goals>
+                            </execution>
+                        </executions>
+                    </plugin>
+                </plugins>
+            </build>
+        </profile>
+
+        <!-- This profile verifies the binary compablity with the jsf api of the RI -->
+        <profile>
+            <id>checkCompatibility</id>
+            <build>
+                <plugins>
+                    <plugin>
+                        <groupId>org.codehaus.mojo</groupId>
+                        <artifactId>clirr-maven-plugin</artifactId>
+                        <version>2.8</version>
+                        <configuration>
+                            <comparisonArtifacts>
+                                <comparisonArtifact>
+                                    <groupId>org.glassfish</groupId>
+                                    <artifactId>javax.faces</artifactId>
+                                    <version>2.3.0</version>
+                                </comparisonArtifact>
+                            </comparisonArtifacts>
+                            <includes>
+                                <include>javax/faces/**</include>
+                            </includes>
+                        </configuration>
+                        <executions>
+                            <execution>
+                                <goals>
+                                    <goal>check</goal>
+                                </goals>
+                                <phase>test</phase>
+                            </execution>
+                        </executions>
+                    </plugin>
+                </plugins>
+            </build>
+        </profile>
+
+        <!-- check for Java 1.6 -->
+        <profile>
+            <id>checkJDK</id>
+            <activation>
+                <property>
+                    <name>performRelease</name>
+                    <value>true</value>
+                </property>
+            </activation>
+            <build>
+                <plugins>
+                </plugins>
+            </build>
+        </profile>
+
+        <!--
+            this optional profile generates the jsdoc content from
+            the embedded javascripts
+        -->
+
+        <profile>
+            <id>generateJsDoc</id>
+            <build>
+              <plugins>
+                    <plugin>
+                        <groupId>org.apache.myfaces.buildtools</groupId>
+                        <artifactId>myfaces-jsdoc-plugin</artifactId>
+                        <version>1.0-beta-1</version>
+                        <executions>
+                            <execution>
+                                <phase>generate-resources</phase>
+                                <goals>
+                                    <goal>jsdoc</goal>
+                                </goals>
+                            </execution>
+                        </executions>
+                    </plugin>
+               </plugins>
+            </build>
+        </profile>
+
+    </profiles>
+
+
+    <dependencies>
+        <!-- Java EE APIs -->
+        <dependency>
+            <groupId>org.apache.tomcat</groupId>
+            <artifactId>tomcat-servlet-api</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.tomcat</groupId>
+            <artifactId>tomcat-websocket-api</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.tomcat</groupId>
+            <artifactId>tomcat-el-api</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.geronimo.specs</groupId>
+            <artifactId>geronimo-jsp_2.2_spec</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>javax.servlet</groupId>
+            <artifactId>jstl</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.geronimo.specs</groupId>
+            <artifactId>geronimo-validation_1.0_spec</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.geronimo.specs</groupId>
+            <artifactId>geronimo-jcdi_1.1_spec</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.geronimo.specs</groupId>
+            <artifactId>geronimo-atinject_1.0_spec</artifactId>
+        </dependency>
+
+
+        <!-- builder-annotations like @JSFWebConfigParam -->
+        <dependency>
+            <groupId>org.apache.myfaces.buildtools</groupId>
+            <artifactId>myfaces-builder-annotations</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>de.berlios.jsunit</groupId>
+            <artifactId>jsunit-maven2-plugin</artifactId>
+        </dependency>
+    </dependencies>
+
+
+    <reporting>
+        <plugins>
+            <plugin>
+                <artifactId>maven-javadoc-plugin</artifactId>
+                <configuration>
+                    <tags>
+                        <tag>
+                            <name>JSFJspTag</name>
+                            <placement>X</placement>
+                        </tag>
+                        <tag>
+                            <name>JSFJspAttribute</name>
+                            <placement>X</placement>
+                        </tag>
+                    </tags>
+                </configuration>
+            </plugin>
+
+            <plugin>
+               <groupId>org.apache.myfaces.buildtools</groupId>
+                <artifactId>myfaces-jsdoc-plugin</artifactId>
+                <version>1.0-beta-1</version>
+            </plugin>
+
+            <plugin>
+                <artifactId>maven-changelog-plugin</artifactId>
+                <reportSets>
+                    <reportSet>
+                        <id>dual-report</id>
+                        <configuration>
+                            <type>range</type>
+                            <range>30</range>
+                        </configuration>
+                        <reports>
+                            <report>changelog</report>
+                            <report>file-activity</report>
+                            <report>dev-activity</report>
+                        </reports>
+                    </reportSet>
+                </reportSets>
+            </plugin>
+
+            <plugin>
+                <artifactId>maven-jxr-plugin</artifactId>
+            </plugin>
+
+            <plugin>
+                <artifactId>maven-surefire-report-plugin</artifactId>
+            </plugin>
+
+            <plugin>
+                <groupId>org.codehaus.mojo</groupId>
+                <artifactId>taglist-maven-plugin</artifactId>
+            </plugin>
+        </plugins>
+    </reporting>
+
+</project>
diff --git a/assembly/pom.xml b/assembly/pom.xml
index fd23968..5fa2065 100644
--- a/assembly/pom.xml
+++ b/assembly/pom.xml
@@ -27,7 +27,7 @@
     <parent>
         <groupId>org.apache.myfaces.core</groupId>
         <artifactId>myfaces-core-project</artifactId>
-        <version>2.3-next-SNAPSHOT</version>
+        <version>2.3-next-M5</version>
         <relativePath>../parent/pom.xml</relativePath>
     </parent>
 
diff --git a/bundle/pom.xml b/bundle/pom.xml
index 484dd76..d17b1b5 100644
--- a/bundle/pom.xml
+++ b/bundle/pom.xml
@@ -20,7 +20,7 @@
     <parent>
         <groupId>org.apache.myfaces.core</groupId>
         <artifactId>myfaces-core-project</artifactId>
-        <version>2.3-next-SNAPSHOT</version>
+        <version>2.3-next-M5</version>
         <relativePath>../parent/pom.xml</relativePath>
     </parent>
 
diff --git a/extensions/pom.xml b/extensions/pom.xml
index 8f01e88..174472d 100644
--- a/extensions/pom.xml
+++ b/extensions/pom.xml
@@ -20,7 +20,7 @@
     <parent>
         <groupId>org.apache.myfaces.core</groupId>
         <artifactId>myfaces-core-project</artifactId>
-        <version>2.3-next-SNAPSHOT</version>
+        <version>2.3-next-M5</version>
         <relativePath>../parent/pom.xml</relativePath>
     </parent>
 
diff --git a/extensions/quarkus/deployment/pom.xml b/extensions/quarkus/deployment/pom.xml
index 315112c..09d37bb 100644
--- a/extensions/quarkus/deployment/pom.xml
+++ b/extensions/quarkus/deployment/pom.xml
@@ -20,7 +20,7 @@
     <parent>
         <groupId>org.apache.myfaces.core.extensions</groupId>
         <artifactId>myfaces-quarkus</artifactId>
-        <version>2.3-next-SNAPSHOT</version>
+        <version>2.3-next-M5</version>
         <relativePath>../pom.xml</relativePath>
     </parent>
 
diff --git a/extensions/quarkus/pom.xml b/extensions/quarkus/pom.xml
index 874edbf..5cd820f 100644
--- a/extensions/quarkus/pom.xml
+++ b/extensions/quarkus/pom.xml
@@ -20,7 +20,7 @@
     <parent>
         <groupId>org.apache.myfaces.core</groupId>
         <artifactId>myfaces-extensions</artifactId>
-        <version>2.3-next-SNAPSHOT</version>
+        <version>2.3-next-M5</version>
         <relativePath>../pom.xml</relativePath>
     </parent>
 
diff --git a/extensions/quarkus/runtime/pom.xml b/extensions/quarkus/runtime/pom.xml
index 2b37ee9..cebc239 100644
--- a/extensions/quarkus/runtime/pom.xml
+++ b/extensions/quarkus/runtime/pom.xml
@@ -20,7 +20,7 @@
     <parent>
         <groupId>org.apache.myfaces.core.extensions</groupId>
         <artifactId>myfaces-quarkus</artifactId>
-        <version>2.3-next-SNAPSHOT</version>
+        <version>2.3-next-M5</version>
         <relativePath>../pom.xml</relativePath>
     </parent>
 
diff --git a/impl/pom.xml b/impl/pom.xml
index 10dadc7..0a39429 100644
--- a/impl/pom.xml
+++ b/impl/pom.xml
@@ -1,1181 +1,1181 @@
-<?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.
--->
-<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.myfaces.core</groupId>
-        <artifactId>myfaces-core-project</artifactId>
-        <version>2.3-next-SNAPSHOT</version>
-        <relativePath>../parent/pom.xml</relativePath>
-    </parent>
-
-    <modelVersion>4.0.0</modelVersion>
-
-    <groupId>org.apache.myfaces.core</groupId>
-    <artifactId>myfaces-impl</artifactId>
-    <name>Apache MyFaces Core 2.3-next - Impl</name>
-    <description>
-        The private implementation classes of the Apache MyFaces Core JSF-2.3-next Implementation
-    </description>
-    <url>http://myfaces.apache.org/core23next/myfaces-impl</url>
-
-    <properties>
-        <openwebbeans.version>1.6.3</openwebbeans.version>
-    </properties>
-
-    <build>
-
-        <resources>
-            <resource>
-                <directory>src/main/resources</directory>
-                <excludes>
-                    <exclude>**/*.vm</exclude>
-                </excludes>
-            </resource>
-        </resources>
-
-        <plugins>
-
-            <plugin>
-                <artifactId>maven-source-plugin</artifactId>
-                <executions>
-                    <execution>
-                        <id>attach-source</id>
-                        <goals>
-                            <goal>jar</goal>
-                        </goals>
-                    </execution>
-                    <execution>
-                        <id>attach-test-source</id>
-                        <goals>
-                            <goal>test-jar</goal>
-                        </goals>
-                    </execution>
-                </executions>
-            </plugin>
-
-            <!-- license checker needs to exclude some kinds of files -->
-            <plugin>
-                <groupId>org.apache.rat</groupId>
-                <artifactId>apache-rat-plugin</artifactId>
-                <configuration>
-                    <excludes>
-                        <exclude>src/main/resources/META-INF/licenses/*-LICENSE.txt</exclude>
-                        <exclude>src/main/resources/META-INF/licenses/*-LICENSE.TXT</exclude>
-                        <exclude>src/main/resources/META-INF/services/**</exclude>
-
-                        <!-- The xsd files are CDDL+GLP:
-                          Category B: Reciprocal Licenses
-                         "For small amounts of source that is directly consumed by the ASF product
-                          at runtime in source form, and for which that source is unlikely to be
-                          changed anyway (say, by virtue of being specified by a standard), this
-                          action is sufficient. An example of this is the web-facesconfig_1_0.dtd,
-                          whose inclusion is mandated by the JSR 127: JavaServer Faces specification."
-                          http://www.apache.org/legal/3party.html
-                        -->
-                        <exclude>src/main/resources/org/apache/myfaces/resource/javaee_5.xsd</exclude>
-                        <exclude>src/main/resources/org/apache/myfaces/resource/javaee_web_services_client_1_2.xsd</exclude>
-
-                        <!-- This file probably needs a license, but I don't know if it's safe to put it in there -->
-                        <exclude>src/test/resources/org/apache/myfaces/context/nestedScriptCDATA.xml</exclude>
-                        <exclude>src/test/resources/META-INF/openwebbeans/openwebbeans.properties</exclude>
-                    </excludes>
-                </configuration>
-            </plugin>
-
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-checkstyle-plugin</artifactId>
-                <configuration>
-                    <excludes>
-                        org/apache/myfaces/push/WebsocketComponent.java,
-                        org/apache/myfaces/push/WebsocketInit.java,
-                        org/apache/myfaces/taglib/core/*,
-                        org/apache/myfaces/taglib/html/*,
-                        org/apache/myfaces/view/facelets/component/JsfElement.java,
-                        org/apache/myfaces/webapp/WebConfigParamsLogger.java</excludes>
-                </configuration>
-            </plugin>
-
-            <!-- myfaces-build-plugin - we generate a lot of stuff with this plugin (see executions) -->
-            <plugin>
-                <groupId>org.apache.myfaces.buildtools</groupId>
-                <artifactId>myfaces-builder-plugin</artifactId>
-                <executions>
-
-                    <execution>
-                        <id>makemyfacesmetadata</id>
-                        <configuration>
-                            <sourceDirectories>
-                                <dir>${basedir}/src/main/java</dir>
-                                <dir>${project.build.directory}/shared_sources</dir>
-                            </sourceDirectories>
-                        </configuration>
-                        <goals>
-                            <goal>build-metadata</goal>
-                        </goals>
-                    </execution>
-
-                    <execution>
-                        <id>makeWebConfigParamsLogger</id>
-                        <configuration>
-                            <templateFile>WebConfigParamsLogger.vm</templateFile>
-                            <outputDirectory>${project.build.directory}/generated-sources/myfaces-builder-plugin</outputDirectory>
-                            <xmlFile>org/apache/myfaces/webapp/WebConfigParamsLogger.java</xmlFile>
-                            <modelIds>
-                                <modelId>myfaces-api</modelId>
-                                <modelId>myfaces-impl</modelId>
-                            </modelIds>
-                        </configuration>
-                        <goals>
-                            <goal>make-config</goal>
-                        </goals>
-                    </execution>
-
-                    <execution>
-                        <id>makefacesconfig</id>
-                        <configuration>
-                            <templateFile>faces-config20.vm</templateFile>
-                            <xmlFile>META-INF/standard-faces-config.xml</xmlFile>
-                            <xmlBaseFile>src/main/conf/META-INF/standard-faces-config-base.xml</xmlBaseFile>
-                            <modelIds>
-                                <modelId>myfaces-api</modelId>
-                                <modelId>myfaces-impl</modelId>
-                            </modelIds>
-                        </configuration>
-                        <goals>
-                            <goal>make-config</goal>
-                        </goals>
-                    </execution>
-                    <execution>
-                        <id>makecomp</id>
-                        <configuration>
-                            <jsfVersion>20</jsfVersion>
-                            <templateComponentName>componentClass20.vm</templateComponentName>
-                        </configuration>
-                        <goals>
-                            <goal>make-components</goal>
-                        </goals>
-                    </execution>
-                    <execution>
-                        <id>make_tags</id>
-                        <configuration>
-                            <jsfVersion>12</jsfVersion>
-                            <templateTagName>tagClass12.vm</templateTagName>
-                            <packageContains>org.apache</packageContains>
-                            <typePrefix>javax.faces</typePrefix>
-                            <modelIds>
-                                <modelId>myfaces-api</modelId>
-                            </modelIds>
-                        </configuration>
-                        <goals>
-                            <goal>make-tags</goal>
-                        </goals>
-                    </execution>
-
-                    <execution>
-                        <id>makecoretld</id>
-                        <configuration>
-                            <xmlFile>META-INF/myfaces_core.tld</xmlFile>
-                            <templateFile>myfaces_core12.vm</templateFile>
-                            <modelIds>
-                                <modelId>myfaces-api</modelId>
-                                <modelId>myfaces-impl</modelId>
-                            </modelIds>
-                            <params>
-                                <shortname>f</shortname>
-                                <uri>http://java.sun.com/jsf/core</uri>
-                                <displayname>JSF core tag library.</displayname>
-                                <description>This tag library implements the standard JSF core tags.</description>
-                            </params>
-                        </configuration>
-                        <goals>
-                            <goal>make-config</goal>
-                        </goals>
-                    </execution>
-
-                    <execution>
-                        <id>makehtmltld</id>
-                        <configuration>
-                            <xmlFile>META-INF/myfaces_html.tld</xmlFile>
-                            <xmlBaseFile>src/main/conf/META-INF/myfaces_html-base.tld</xmlBaseFile>
-                            <templateFile>myfaces_html12.vm</templateFile>
-                            <params>
-                                <shortname>h</shortname>
-                                <uri>http://java.sun.com/jsf/html</uri>
-                                <displayname>JSF HTML tag library.</displayname>
-                                <description>This tag library implements the standard JSF HTML tags.</description>
-                            </params>
-                            <modelIds>
-                                <modelId>myfaces-api</modelId>
-                            </modelIds>
-                        </configuration>
-                        <goals>
-                            <goal>make-config</goal>
-                        </goals>
-                    </execution>
-
-                    <!--
-                        To generate facelet taglib doc we need to create alternate facelets files
-                        so taglibdoc goal can extract the required information and create html files.
-                        We put this one here temporally but generate-assembly profile should trigger
-                        this execution tasks too.
-                    -->
-                    <execution>
-                        <id>make_core_facelet_tld</id>
-                        <configuration>
-                            <outputDirectory>${project.build.directory}/tlddoc-facelets</outputDirectory>
-                            <xmlFile>myfaces_facelets_core.tld</xmlFile>
-                            <templateFile>myfaces_facelet_core20.vm</templateFile>
-                            <modelIds>
-                                <modelId>myfaces-api</modelId>
-                                <modelId>myfaces-impl</modelId>
-                            </modelIds>
-                            <params>
-                                <shortname>f</shortname>
-                                <uri>http://java.sun.com/jsf/core</uri>
-                                <displayname>JSF Core Facelets Tag Library.</displayname>
-                                <description>This tag library implements the standard JSF core tags for Facelets.</description>
-                            </params>
-                        </configuration>
-                        <goals>
-                            <goal>make-config</goal>
-                        </goals>
-                    </execution>
-
-                    <execution>
-                        <id>make_html_facelet_tld</id>
-                        <configuration>
-                            <outputDirectory>${project.build.directory}/tlddoc-facelets</outputDirectory>
-                            <xmlFile>myfaces_facelets_html.tld</xmlFile>
-                            <xmlBaseFile>src/main/conf/META-INF/myfaces_html-base.tld</xmlBaseFile>
-                            <templateFile>myfaces_facelet_html20.vm</templateFile>
-                            <modelIds>
-                                <modelId>myfaces-api</modelId>
-                                <modelId>myfaces-impl</modelId>
-                            </modelIds>
-                            <params>
-                                <shortname>h</shortname>
-                                <uri>http://java.sun.com/jsf/html</uri>
-                                <displayname>JSF HTML Facelets Tag Library.</displayname>
-                                <description>This tag library implements the standard JSF HTML tags for Facelets.</description>
-                            </params>
-                        </configuration>
-                        <goals>
-                            <goal>make-config</goal>
-                        </goals>
-                    </execution>
-
-                    <execution>
-                        <id>make_c_facelet_tld</id>
-                        <configuration>
-                            <outputDirectory>${project.build.directory}/tlddoc-facelets</outputDirectory>
-                            <xmlFile>myfaces_facelets_c.tld</xmlFile>
-                            <xmlBaseFile>src/main/conf/META-INF/myfaces_html-base.tld</xmlBaseFile>
-                            <templateFile>myfaces_facelet_html20.vm</templateFile>
-                            <modelIds>
-                                <modelId>myfaces-api</modelId>
-                                <modelId>myfaces-impl</modelId>
-                            </modelIds>
-                            <params>
-                                <shortname>c</shortname>
-                                <uri>http://java.sun.com/jsp/jstl/core</uri>
-                                <displayname>JSTL core Facelets Tag Library.</displayname>
-                                <description>JSTL core Facelets Tag Library.</description>
-                            </params>
-                        </configuration>
-                        <goals>
-                            <goal>make-config</goal>
-                        </goals>
-                    </execution>
-
-                    <execution>
-                        <id>make_ui_facelet_tld</id>
-                        <configuration>
-                            <outputDirectory>${project.build.directory}/tlddoc-facelets</outputDirectory>
-                            <xmlFile>myfaces_facelets_ui.tld</xmlFile>
-                            <xmlBaseFile>src/main/conf/META-INF/myfaces_ui-base.tld</xmlBaseFile>
-                            <templateFile>myfaces_facelet_html20.vm</templateFile>
-                            <modelIds>
-                                <modelId>myfaces-api</modelId>
-                                <modelId>myfaces-impl</modelId>
-                            </modelIds>
-                            <params>
-                                <shortname>ui</shortname>
-                                <uri>http://java.sun.com/jsf/facelets</uri>
-                                <displayname>JSF UI Facelets Tag Library.</displayname>
-                                <description>JSF UI Facelets Tag Library.</description>
-                            </params>
-                        </configuration>
-                        <goals>
-                            <goal>make-config</goal>
-                        </goals>
-                    </execution>
-
-                    <execution>
-                        <id>make_composite_facelet_tld</id>
-                        <configuration>
-                            <outputDirectory>${project.build.directory}/tlddoc-facelets</outputDirectory>
-                            <xmlFile>myfaces_facelets_composite.tld</xmlFile>
-                            <xmlBaseFile>src/main/conf/META-INF/myfaces_html-base.tld</xmlBaseFile>
-                            <templateFile>myfaces_facelet_html20.vm</templateFile>
-                            <modelIds>
-                                <modelId>myfaces-api</modelId>
-                                <modelId>myfaces-impl</modelId>
-                            </modelIds>
-                            <params>
-                                <shortname>composite</shortname>
-                                <uri>http://java.sun.com/jsf/composite</uri>
-                                <displayname>JSF Composite Facelets Tag Library.</displayname>
-                                <description>JSF Composite Facelets Tag Library.</description>
-                            </params>
-                        </configuration>
-                        <goals>
-                            <goal>make-config</goal>
-                        </goals>
-                    </execution>
-
-                    <execution>
-                        <id>make_fn_facelet_tld</id>
-                        <configuration>
-                            <outputDirectory>${project.build.directory}/tlddoc-facelets</outputDirectory>
-                            <xmlFile>myfaces_facelet_fn.tld</xmlFile>
-                            <templateFile>myfaces_facelet_html20.vm</templateFile>
-                            <modelIds>
-                                <modelId>myfaces-api</modelId>
-                                <modelId>myfaces-impl</modelId>
-                            </modelIds>
-                            <params>
-                                <shortname>fn</shortname>
-                                <uri>http://java.sun.com/jsp/jstl/functions</uri>
-                                <displayname>JSTL Facelets Function Library.</displayname>
-                                <description>JSTL Facelets Function Library.</description>
-                            </params>
-                        </configuration>
-                        <goals>
-                            <goal>make-config</goal>
-                        </goals>
-                    </execution>
-
-                    <!-- START XSD GENERATION -->
-
-                    <execution>
-                        <id>make_core_facelet_xsd</id>
-                        <configuration>
-                            <xmlFile>META-INF/schema/myfaces_facelets_core_2_1.xsd</xmlFile>
-                            <templateFile>myfaces_facelet_core20_xsd.vm</templateFile>
-                            <modelIds>
-                                <modelId>myfaces-api</modelId>
-                                <modelId>myfaces-impl</modelId>
-                            </modelIds>
-                            <params>
-                                <shortname>f</shortname>
-                                <uri>http://java.sun.com/jsf/core</uri>
-                                <displayname>JSF Core Facelets Tag Library.</displayname>
-                                <tlibversion>2.1</tlibversion>
-                                <description>This tag library implements the standard JSF core tags for Facelets.</description>
-                            </params>
-                        </configuration>
-                        <goals>
-                            <goal>make-config</goal>
-                        </goals>
-                    </execution>
-
-                    <execution>
-                        <id>make_html_facelet_xsd</id>
-                        <configuration>
-                            <xmlFile>META-INF/schema/myfaces_facelets_html_2_1.xsd</xmlFile>
-                            <templateFile>myfaces_facelet_html20_xsd.vm</templateFile>
-                            <modelIds>
-                                <modelId>myfaces-api</modelId>
-                                <modelId>myfaces-impl</modelId>
-                            </modelIds>
-                            <params>
-                                <shortname>h</shortname>
-                                <uri>http://java.sun.com/jsf/html</uri>
-                                <displayname>JSF HTML Facelets Tag Library.</displayname>
-                                <description>This tag library implements the standard JSF HTML tags for Facelets.</description>
-                            </params>
-                        </configuration>
-                        <goals>
-                            <goal>make-config</goal>
-                        </goals>
-                    </execution>
-
-                    <execution>
-                        <id>make_c_facelet_xsd</id>
-                        <configuration>
-                            <xmlFile>META-INF/schema/myfaces_facelets_c_2_1.xsd</xmlFile>
-                            <templateFile>myfaces_facelet_html20_xsd.vm</templateFile>
-                            <modelIds>
-                                <modelId>myfaces-api</modelId>
-                                <modelId>myfaces-impl</modelId>
-                            </modelIds>
-                            <params>
-                                <shortname>c</shortname>
-                                <uri>http://java.sun.com/jsp/jstl/core</uri>
-                                <displayname>JSTL core Facelets Tag Library.</displayname>
-                                <description>JSTL core Facelets Tag Library.</description>
-                            </params>
-                        </configuration>
-                        <goals>
-                            <goal>make-config</goal>
-                        </goals>
-                    </execution>
-
-                    <execution>
-                        <id>make_ui_facelet_xsd</id>
-                        <configuration>
-                            <xmlFile>META-INF/schema/myfaces_facelets_ui_2_1.xsd</xmlFile>
-                            <templateFile>myfaces_facelet_html20_xsd.vm</templateFile>
-                            <modelIds>
-                                <modelId>myfaces-api</modelId>
-                                <modelId>myfaces-impl</modelId>
-                            </modelIds>
-                            <params>
-                                <shortname>ui</shortname>
-                                <uri>http://java.sun.com/jsf/facelets</uri>
-                                <displayname>JSF UI Facelets Tag Library.</displayname>
-                                <description>JSF UI Facelets Tag Library.</description>
-                            </params>
-                        </configuration>
-                        <goals>
-                            <goal>make-config</goal>
-                        </goals>
-                    </execution>
-
-                    <execution>
-                        <id>make_composite_facelet_xsd</id>
-                        <configuration>
-                            <xmlFile>META-INF/schema/myfaces_facelets_composite_2_1.xsd</xmlFile>
-                            <templateFile>myfaces_facelet_html20_xsd.vm</templateFile>
-                            <modelIds>
-                                <modelId>myfaces-api</modelId>
-                                <modelId>myfaces-impl</modelId>
-                            </modelIds>
-                            <params>
-                                <shortname>composite</shortname>
-                                <uri>http://java.sun.com/jsf/composite</uri>
-                                <displayname>JSF Composite Facelets Tag Library.</displayname>
-                                <description>JSF Composite Facelets Tag Library.</description>
-                            </params>
-                        </configuration>
-                        <goals>
-                            <goal>make-config</goal>
-                        </goals>
-                    </execution>
-
-                    <execution>
-                        <id>make_core_facelet_xsd22</id>
-                        <configuration>
-                            <xmlFile>META-INF/schema/myfaces_facelets_core_2_2.xsd</xmlFile>
-                            <templateFile>myfaces_facelet_core20_xsd.vm</templateFile>
-                            <modelIds>
-                                <modelId>myfaces-api</modelId>
-                                <modelId>myfaces-impl</modelId>
-                            </modelIds>
-                            <params>
-                                <shortname>f</shortname>
-                                <uri>http://xmlns.jcp.org/jsf/core</uri>
-                                <displayname>JSF Core Facelets Tag Library.</displayname>
-                                <tlibversion>2.2</tlibversion>
-                                <description>This tag library implements the standard JSF core tags for Facelets.</description>
-                            </params>
-                        </configuration>
-                        <goals>
-                            <goal>make-config</goal>
-                        </goals>
-                    </execution>
-
-                    <execution>
-                        <id>make_html_facelet_xsd22</id>
-                        <configuration>
-                            <xmlFile>META-INF/schema/myfaces_facelets_html_2_2.xsd</xmlFile>
-                            <templateFile>myfaces_facelet_html20_xsd.vm</templateFile>
-                            <modelIds>
-                                <modelId>myfaces-api</modelId>
-                                <modelId>myfaces-impl</modelId>
-                            </modelIds>
-                            <params>
-                                <shortname>h</shortname>
-                                <uri>http://xmlns.jcp.org/jsf/html</uri>
-                                <displayname>JSF HTML Facelets Tag Library.</displayname>
-                                <description>This tag library implements the standard JSF HTML tags for Facelets.</description>
-                            </params>
-                        </configuration>
-                        <goals>
-                            <goal>make-config</goal>
-                        </goals>
-                    </execution>
-
-                    <execution>
-                        <id>make_c_facelet_xsd22</id>
-                        <configuration>
-                            <xmlFile>META-INF/schema/myfaces_facelets_c_2_2.xsd</xmlFile>
-                            <templateFile>myfaces_facelet_html20_xsd.vm</templateFile>
-                            <modelIds>
-                                <modelId>myfaces-api</modelId>
-                                <modelId>myfaces-impl</modelId>
-                            </modelIds>
-                            <params>
-                                <shortname>c</shortname>
-                                <uri>http://xmlns.jcp.org/jsp/jstl/core</uri>
-                                <displayname>JSTL core Facelets Tag Library.</displayname>
-                                <description>JSTL core Facelets Tag Library.</description>
-                            </params>
-                        </configuration>
-                        <goals>
-                            <goal>make-config</goal>
-                        </goals>
-                    </execution>
-
-                    <execution>
-                        <id>make_ui_facelet_xsd22</id>
-                        <configuration>
-                            <xmlFile>META-INF/schema/myfaces_facelets_ui_2_2.xsd</xmlFile>
-                            <templateFile>myfaces_facelet_html20_xsd.vm</templateFile>
-                            <modelIds>
-                                <modelId>myfaces-api</modelId>
-                                <modelId>myfaces-impl</modelId>
-                            </modelIds>
-                            <params>
-                                <shortname>ui</shortname>
-                                <uri>http://xmlns.jcp.org/jsf/facelets</uri>
-                                <displayname>JSF UI Facelets Tag Library.</displayname>
-                                <description>JSF UI Facelets Tag Library.</description>
-                            </params>
-                        </configuration>
-                        <goals>
-                            <goal>make-config</goal>
-                        </goals>
-                    </execution>
-
-                    <execution>
-                        <id>make_composite_facelet_xsd22</id>
-                        <configuration>
-                            <xmlFile>META-INF/schema/myfaces_facelets_composite_2_2.xsd</xmlFile>
-                            <templateFile>myfaces_facelet_html20_xsd.vm</templateFile>
-                            <modelIds>
-                                <modelId>myfaces-api</modelId>
-                                <modelId>myfaces-impl</modelId>
-                            </modelIds>
-                            <params>
-                                <shortname>composite</shortname>
-                                <uri>http://xmlns.jcp.org/jsf/composite</uri>
-                                <displayname>JSF Composite Facelets Tag Library.</displayname>
-                                <description>JSF Composite Facelets Tag Library.</description>
-                            </params>
-                        </configuration>
-                        <goals>
-                            <goal>make-config</goal>
-                        </goals>
-                    </execution>
-
-                    <!-- END XSD GENERATION -->
-                </executions>
-            </plugin>
-
-
-
-            <plugin>
-                <artifactId>maven-jar-plugin</artifactId>
-                <version>2.2</version>
-                <configuration>
-                    <archive>
-                        <manifestFile>${project.build.outputDirectory}/META-INF/MANIFEST.MF</manifestFile>
-                    </archive>
-                </configuration>
-                <!-- generate a -tests.jar too -->
-                <executions>
-                    <execution>
-                        <goals>
-                            <goal>test-jar</goal>
-                        </goals>
-                    </execution>
-                </executions>
-
-            </plugin>
-
-            <!-- run test-cases -->
-            <plugin>
-                <artifactId>maven-surefire-plugin</artifactId>
-                <configuration>
-                    <excludes>
-                        <exclude>**/DefaultViewHandlerSupportTest*</exclude>
-                        <exclude>**/ApplicationImplTest*</exclude>
-                        <exclude>**/FactoryFinderProviderTest*</exclude>
-                    </excludes>
-                    <systemProperties>
-                        <!--
-                        Java 9 introduce CLDR locales as defaults
-                        some tests however fail because the local
-                        checks follow the java conventions.
-                        Setting it to provider should enable locale behavior
-                        across all supported JDKs
-                        -->
-                        <property>
-                            <name>java.locale.providers</name>
-                            <value>COMPAT</value>
-                        </property>
-                    </systemProperties>
-                    <argLine>-Djava.locale.providers=COMPAT</argLine>
-                </configuration>
-
-                <executions>
-                    <execution>
-                        <id>isolateCLTests</id>
-                        <phase>test</phase>
-                        <goals>
-                            <goal>test</goal>
-                        </goals>
-                        <configuration>
-                            <!-- <forkMode>always</forkMode> -->
-                            <forkCount>1</forkCount>
-                            <reuseForks>false</reuseForks>
-                            <includes>
-                                <include>**/FactoryFinderProviderTest*</include>
-                            </includes>
-                            <excludes>
-                                <exclude>**/JspStateManagerImplTest*</exclude>
-                                <exclude>**/DefaultViewHandlerSupportTest*</exclude>
-                                <exclude>**/ApplicationImplTest*</exclude>
-                            </excludes>
-                        </configuration>
-                    </execution>
-                </executions>
-            </plugin>
-
-            <!-- create OSGI-ready manifest.mf -->
-            <plugin>
-                <groupId>org.apache.felix</groupId>
-                <artifactId>maven-bundle-plugin</artifactId>
-                <executions>
-                    <execution>
-                        <id>bundle-manifest</id>
-                        <phase>process-classes</phase>
-                        <goals>
-                            <goal>manifest</goal>
-                        </goals>
-                        <configuration>
-                            <instructions>
-                                <Bundle-SymbolicName>org.apache.myfaces.core.impl</Bundle-SymbolicName>
-                                <Bundle-Classpath>.</Bundle-Classpath>
-                                <Build-Jdk>${java.version}</Build-Jdk>
-                                <Implementation-Title>${project.name}</Implementation-Title>
-                                <Implementation-Version>${project.version}</Implementation-Version>
-                                <Implementation-Vendor>The Apache Software Foundation</Implementation-Vendor>
-                                <Implementation-Vendor-Id>${project.groupId}</Implementation-Vendor-Id>
-                                <Export-Package>
-                                    *;version="${project.version}"
-                                </Export-Package>
-                                <Import-Package>
-                                    !org.apache.myfaces.*,
-                                    javax.annotation,
-                                    javax.crypto,
-                                    javax.crypto.spec,
-                                    javax.ejb;resolution:=optional,
-                                    javax.el;version="[1.0.0, 3.1.0)",
-                                    javax.naming,
-                                    javax.persistence;version="[1.0.0, 2.1)";resolution:=optional,
-                                    javax.portlet;version="[1.0.0, 2.1)";resolution:=optional,
-                                    javax.servlet;version="[3, 5)",
-                                    javax.servlet.http;version="[3, 5)",
-                                    javax.servlet.jsp;version="[2.2.0, 3.1)",
-                                    javax.servlet.jsp.jstl.core;version="[1.1.2, 2.0.0)",
-                                    javax.servlet.jsp.tagext;version="[2.1.0, 3.1)",
-                                    javax.servlet.annotation;version="[3, 5)";resolution:=optional,
-                                    javax.xml.parsers,
-                                    org.apache;resolution:=optional,
-                                    org.w3c.dom,
-                                    org.xml.sax,
-                                    org.xml.sax.helpers,
-                                    org.apache.jasper.compiler;resolution:=optional,
-                                    org.apache.jasper.el;resolution:=optional,
-                                    org.apache.el;resolution:=optional,
-                                    org.apache.tomcat;resolution:=optional,
-                                    javax.faces.*;version="${project.version}",
-                                    *
-                                </Import-Package>
-                            </instructions>
-                        </configuration>
-                    </execution>
-                </executions>
-            </plugin>
-
-        </plugins>
-
-    </build>
-
-
-    <profiles>
-
-        <!--
-          - Whenever the full website is generated, the command
-          -   mvn -Pgenerate-site -Pgenerate-tlddoc site
-          - should be used. This will create the "tlddoc" directory containing
-          - nicely-formatted versions of the docs in the jsp taglib file, ie
-          - docs on all the available tags and their properties.
-        -->
-        <profile>
-            <id>generate-site</id>
-            <build>
-                <plugins>
-
-                    <!-- Generate content for custom tagdoc report -->
-                    <plugin>
-                        <groupId>org.apache.myfaces.buildtools</groupId>
-                        <artifactId>myfaces-builder-plugin</artifactId>
-                        <executions>
-
-                            <execution>
-                                <id>site-tagdoc-content</id>
-                                <configuration>
-                                    <modelIds>
-                                        <modelId>myfaces-api</modelId>
-                                        <modelId>myfaces-impl</modelId>
-                                    </modelIds>
-                                    <taglibs>
-                                        <f>http://xmlns.jcp.org/jsf/core</f>
-                                        <h>http://xmlns.jcp.org/jsf/html</h>
-                                        <ui>http://xmlns.jcp.org/jsf/facelets</ui>
-                                        <c>http://xmlns.jcp.org/jsp/jstl/core</c>
-                                        <fn>http://xmlns.jcp.org/jsp/jstl/functions</fn>
-                                    </taglibs>
-                                </configuration>
-                                <goals>
-                                    <goal>tagdoc-content</goal>
-                                </goals>
-                            </execution>
-
-                            <execution>
-                                <id>site-web-config</id>
-                                <configuration>
-                                    <templateFile>xdoc-web-config.vm</templateFile>
-                                    <outputDirectory>${project.build.directory}/generated-site/xdoc</outputDirectory>
-                                    <xmlFile>webconfig.xml</xmlFile>
-                                    <modelIds>
-                                        <modelId>myfaces-api</modelId>
-                                        <modelId>myfaces-impl</modelId>
-                                    </modelIds>
-                                </configuration>
-                                <goals>
-                                    <goal>make-config</goal>
-                                </goals>
-                            </execution>
-
-                        </executions>
-                    </plugin>
-
-                    <!--
-                        Unfortunately we can't execute the same report twice, so
-                        we have to generate this files outside report generation.
-                    -->
-                    <plugin>
-                        <groupId>net.sourceforge.maven-taglib</groupId>
-                        <artifactId>maven-taglib-plugin</artifactId>
-                        <version>2.4</version>
-                        <executions>
-
-                            <execution>
-                                <id>tlddoc-facelets</id>
-                                <phase>site</phase>
-                                <goals>
-                                    <goal>taglibdoc</goal>
-                                </goals>
-                                <inherited>false</inherited>
-                                <configuration>
-                                    <title>${project.name} Tag library documentation for Facelets</title>
-                                    <srcDir>${basedir}/target/tlddoc-facelets</srcDir>
-                                    <tldDocDir>${basedir}/target/site/tlddoc-facelets</tldDocDir>
-                                </configuration>
-                            </execution>
-
-                            <execution>
-                                <id>tlddoc-jsp</id>
-                                <phase>site</phase>
-                                <goals>
-                                    <goal>taglibdoc</goal>
-                                </goals>
-                                <inherited>false</inherited>
-                                <configuration>
-                                    <taglib.src.dir>${basedir}/target/classes/META-INF</taglib.src.dir>
-                                    <tldDocDir>${basedir}/target/site/tlddoc</tldDocDir>
-                                </configuration>
-                            </execution>
-
-                        </executions>
-                    </plugin>
-
-                </plugins>
-            </build>
-
-            <reporting>
-                <plugins>
-                    <plugin>
-                        <groupId>net.sourceforge.maven-taglib</groupId>
-                        <artifactId>maven-taglib-plugin</artifactId>
-                        <version>2.4</version>
-                        <configuration>
-                            <taglib.src.dir>${basedir}/target/classes/META-INF</taglib.src.dir>
-                            <tldDocDir>${basedir}/target/site/tlddoc</tldDocDir>
-                        </configuration>
-                    </plugin>
-
-                    <!-- trigger tagdoc-index report -->
-                    <plugin>
-                        <groupId>org.apache.myfaces.buildtools</groupId>
-                        <artifactId>myfaces-builder-plugin</artifactId>
-                        <reportSets>
-                            <reportSet>
-                                <configuration>
-                                    <modelIds>
-                                        <modelId>myfaces-api</modelId>
-                                        <modelId>myfaces-impl</modelId>
-                                    </modelIds>
-                                    <taglibs>
-                                        <f>http://xmlns.jcp.org/jsf/core</f>
-                                        <h>http://xmlns.jcp.org/jsf/html</h>
-                                        <ui>http://xmlns.jcp.org/jsf/facelets</ui>
-                                        <c>http://xmlns.jcp.org/jsp/jstl/core</c>
-                                        <fn>http://xmlns.jcp.org/jsp/jstl/functions</fn>
-                                    </taglibs>
-                                </configuration>
-                                <reports>
-                                    <report>tagdoc-index</report>
-                                </reports>
-                            </reportSet>
-                        </reportSets>
-                    </plugin>
-                </plugins>
-            </reporting>
-        </profile>
-
-        <!--
-          - Whenever files are deployed to a snapshot or release repository,
-          -   mvn -Pgenerate-assembly deploy
-          - should be used. This will create additional artifacts that are
-          - useful but too time-consuming to create when just doing a local
-          - "mvn install" operation.
-        -->
-        <profile>
-            <id>generate-assembly</id>
-            <activation>
-                <property>
-                    <name>performRelease</name>
-                    <value>true</value>
-                </property>
-            </activation>
-            <build>
-                <plugins>
-                    <plugin>
-                        <groupId>org.apache.maven.plugins</groupId>
-                        <artifactId>maven-javadoc-plugin</artifactId>
-                        <executions>
-                            <execution>
-                                <id>attach-javadoc</id>
-                                <goals>
-                                    <goal>jar</goal>
-                                </goals>
-                            </execution>
-                        </executions>
-                    </plugin>
-
-                    <plugin>
-                        <groupId>net.sourceforge.maven-taglib</groupId>
-                        <artifactId>maven-taglib-plugin</artifactId>
-                        <version>2.4</version>
-                        <executions>
-                            <execution>
-                                <id>tlddoc-facelets</id>
-                                <!--
-                                    TODO: The phase value should be "site", but since we are not released yet
-                                    and this documentation is used to implement jsf 2.0, we put this one
-                                    on site so just doing mvn -Pgenerate-site install we can create this
-                                    javadoc
-                                -->
-                                <phase>process-resources</phase>
-                                <goals>
-                                    <goal>taglibdoc</goal>
-                                </goals>
-                                <inherited>false</inherited>
-                                <configuration>
-                                    <title>${project.name} Tag library documentation for Facelets</title>
-                                    <srcDir>${basedir}/target/tlddoc-facelets</srcDir>
-                                    <tldDocDir>${basedir}/target/site/tlddoc-facelets</tldDocDir>
-                                </configuration>
-                            </execution>
-
-                            <execution>
-                                <id>tlddoc-jsp</id>
-                                <phase>process-resources</phase>
-                                <goals>
-                                    <goal>taglibdoc</goal>
-                                </goals>
-                                <inherited>false</inherited>
-                                <configuration>
-                                    <taglib.src.dir>${basedir}/target/classes/META-INF</taglib.src.dir>
-                                    <tldDocDir>${basedir}/target/site/tlddoc</tldDocDir>
-                                </configuration>
-                            </execution>
-
-                            <execution>
-                                <id>attach-tlddoc</id>
-                                <goals>
-                                    <goal>taglibdocjar</goal>
-                                </goals>
-                                <configuration>
-                                    <tldDocDir>${basedir}/target/site/tlddoc</tldDocDir>
-                                </configuration>
-                            </execution>
-
-                            <execution>
-                                <id>attach-tlddoc-facelets</id>
-                                <goals>
-                                    <goal>taglibdocjar</goal>
-                                </goals>
-                                <configuration>
-                                    <attach>false</attach>
-                                    <tldDocDir>${basedir}/target/site/tlddoc-facelets</tldDocDir>
-                                    <tlddocJar>${basedir}/target/${project.artifactId}-${project.version}-facelets-tlddoc.jar</tlddocJar>
-                                </configuration>
-                            </execution>
-
-                        </executions>
-                    </plugin>
-
-                    <plugin>
-                        <groupId>org.codehaus.mojo</groupId>
-                        <artifactId>build-helper-maven-plugin</artifactId>
-                        <executions>
-                            <execution>
-                                <id>attach-artifacts</id>
-                                <phase>package</phase>
-                                <goals>
-                                    <goal>attach-artifact</goal>
-                                </goals>
-                                <configuration>
-                                    <artifacts>
-                                        <artifact>
-                                            <file>${basedir}/target/${project.artifactId}-${project.version}-facelets-tlddoc.jar</file>
-                                            <type>jar</type>
-                                            <classifier>facelets-tlddoc</classifier>
-                                        </artifact>
-                                    </artifacts>
-                                </configuration>
-                            </execution>
-                        </executions>
-                    </plugin>
-
-                </plugins>
-            </build>
-        </profile>
-
-    </profiles>
-
-
-    <dependencies>
-        <dependency>
-            <groupId>org.apache.myfaces.core</groupId>
-            <artifactId>myfaces-api</artifactId>
-            <version>${project.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.myfaces.core</groupId>
-            <artifactId>myfaces-test</artifactId>
-            <version>${project.version}</version>
-            <scope>test</scope>
-        </dependency>
-
-        <!-- Java EE APIs -->
-        <dependency>
-            <groupId>org.apache.tomcat</groupId>
-            <artifactId>tomcat-servlet-api</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.tomcat</groupId>
-            <artifactId>tomcat-websocket-api</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.tomcat</groupId>
-            <artifactId>tomcat-el-api</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.geronimo.specs</groupId>
-            <artifactId>geronimo-jsp_2.2_spec</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>javax.servlet</groupId>
-            <artifactId>jstl</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.geronimo.specs</groupId>
-            <artifactId>geronimo-validation_1.0_spec</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.geronimo.specs</groupId>
-            <artifactId>geronimo-annotation_1.2_spec</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.geronimo.specs</groupId>
-            <artifactId>geronimo-jpa_3.0_spec</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.geronimo.specs</groupId>
-            <artifactId>geronimo-ejb_3.0_spec</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.geronimo.specs</groupId>
-            <artifactId>geronimo-jcdi_1.1_spec</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.geronimo.specs</groupId>
-            <artifactId>geronimo-atinject_1.0_spec</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.geronimo.specs</groupId>
-            <artifactId>geronimo-interceptor_1.2_spec</artifactId>
-        </dependency>
-
-        <!-- builder-annotations like @JSFWebConfigParam -->
-        <dependency>
-            <groupId>org.apache.myfaces.buildtools</groupId>
-            <artifactId>myfaces-builder-annotations</artifactId>
-        </dependency>
-
-        <!-- tomcat 7 support (InjectionProvider) -->
-        <dependency>
-            <groupId>org.apache.tomcat</groupId>
-            <artifactId>tomcat-catalina</artifactId>
-        </dependency>
-
-        <dependency>
-            <groupId>junit</groupId>
-            <artifactId>junit</artifactId>
-        </dependency>
-
-        <!-- easymock -->
-        <dependency>
-            <groupId>org.easymock</groupId>
-            <artifactId>easymock</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.easymock</groupId>
-            <artifactId>easymockclassextension</artifactId>
-        </dependency>
-
-        <dependency>
-            <groupId>org.mockito</groupId>
-            <artifactId>mockito-core</artifactId>
-        </dependency>
-
-
-        <!-- We need a real EL implementation for test ui:param tag,
-        because myfaces-test MockExpressionFactory is not designed to
-        handle VariableMapper stuff (see IncludeParamTestCase).-->
-        <dependency>
-            <groupId>org.apache.tomcat</groupId>
-            <artifactId>tomcat-jasper-el</artifactId>
-            <version>9.0.14</version>
-            <scope>test</scope>
-        </dependency>
-
-        <!-- Openwebbeans for CDI Test -->
-        <dependency>
-            <groupId>org.apache.openwebbeans</groupId>
-            <artifactId>openwebbeans-impl</artifactId>
-            <version>${openwebbeans.version}</version>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.openwebbeans</groupId>
-            <artifactId>openwebbeans-jsf</artifactId>
-            <version>${openwebbeans.version}</version>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.openwebbeans</groupId>
-            <artifactId>openwebbeans-web</artifactId>
-            <version>${openwebbeans.version}</version>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.openwebbeans</groupId>
-            <artifactId>openwebbeans-spi</artifactId>
-            <version>${openwebbeans.version}</version>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.openwebbeans</groupId>
-            <artifactId>openwebbeans-resource</artifactId>
-            <version>${openwebbeans.version}</version>
-            <scope>test</scope>
-        </dependency>
-
-        <dependency>
-            <groupId>org.apache.bval</groupId>
-            <artifactId>bval-jsr303</artifactId>
-            <version>0.5</version>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>javax.xml.bind</groupId>
-            <artifactId>jaxb-api</artifactId>
-            <version>2.3.0</version>
-            <scope>test</scope>
-        </dependency>
-
-    </dependencies>
-
-
-    <reporting>
-        <plugins>
-            <plugin>
-                <artifactId>maven-changelog-plugin</artifactId>
-                <reportSets>
-                    <reportSet>
-                        <id>dual-report</id>
-                        <configuration>
-                            <type>range</type>
-                            <range>30</range>
-                        </configuration>
-                        <reports>
-                            <report>changelog</report>
-                            <report>file-activity</report>
-                            <report>dev-activity</report>
-                        </reports>
-                    </reportSet>
-                </reportSets>
-            </plugin>
-
-            <plugin>
-                <artifactId>maven-jxr-plugin</artifactId>
-            </plugin>
-
-            <plugin>
-                <artifactId>maven-surefire-report-plugin</artifactId>
-            </plugin>
-
-            <plugin>
-                <groupId>org.codehaus.mojo</groupId>
-                <artifactId>taglist-maven-plugin</artifactId>
-            </plugin>
-
-        </plugins>
-    </reporting>
-
-</project>
+<?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.
+-->
+<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.myfaces.core</groupId>
+        <artifactId>myfaces-core-project</artifactId>
+        <version>2.3-next-M5</version>
+        <relativePath>../parent/pom.xml</relativePath>
+    </parent>
+
+    <modelVersion>4.0.0</modelVersion>
+
+    <groupId>org.apache.myfaces.core</groupId>
+    <artifactId>myfaces-impl</artifactId>
+    <name>Apache MyFaces Core 2.3-next - Impl</name>
+    <description>
+        The private implementation classes of the Apache MyFaces Core JSF-2.3-next Implementation
+    </description>
+    <url>http://myfaces.apache.org/core23next/myfaces-impl</url>
+
+    <properties>
+        <openwebbeans.version>1.6.3</openwebbeans.version>
+    </properties>
+
+    <build>
+
+        <resources>
+            <resource>
+                <directory>src/main/resources</directory>
+                <excludes>
+                    <exclude>**/*.vm</exclude>
+                </excludes>
+            </resource>
+        </resources>
+
+        <plugins>
+
+            <plugin>
+                <artifactId>maven-source-plugin</artifactId>
+                <executions>
+                    <execution>
+                        <id>attach-source</id>
+                        <goals>
+                            <goal>jar</goal>
+                        </goals>
+                    </execution>
+                    <execution>
+                        <id>attach-test-source</id>
+                        <goals>
+                            <goal>test-jar</goal>
+                        </goals>
+                    </execution>
+                </executions>
+            </plugin>
+
+            <!-- license checker needs to exclude some kinds of files -->
+            <plugin>
+                <groupId>org.apache.rat</groupId>
+                <artifactId>apache-rat-plugin</artifactId>
+                <configuration>
+                    <excludes>
+                        <exclude>src/main/resources/META-INF/licenses/*-LICENSE.txt</exclude>
+                        <exclude>src/main/resources/META-INF/licenses/*-LICENSE.TXT</exclude>
+                        <exclude>src/main/resources/META-INF/services/**</exclude>
+
+                        <!-- The xsd files are CDDL+GLP:
+                          Category B: Reciprocal Licenses
+                         "For small amounts of source that is directly consumed by the ASF product
+                          at runtime in source form, and for which that source is unlikely to be
+                          changed anyway (say, by virtue of being specified by a standard), this
+                          action is sufficient. An example of this is the web-facesconfig_1_0.dtd,
+                          whose inclusion is mandated by the JSR 127: JavaServer Faces specification."
+                          http://www.apache.org/legal/3party.html
+                        -->
+                        <exclude>src/main/resources/org/apache/myfaces/resource/javaee_5.xsd</exclude>
+                        <exclude>src/main/resources/org/apache/myfaces/resource/javaee_web_services_client_1_2.xsd</exclude>
+
+                        <!-- This file probably needs a license, but I don't know if it's safe to put it in there -->
+                        <exclude>src/test/resources/org/apache/myfaces/context/nestedScriptCDATA.xml</exclude>
+                        <exclude>src/test/resources/META-INF/openwebbeans/openwebbeans.properties</exclude>
+                    </excludes>
+                </configuration>
+            </plugin>
+
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-checkstyle-plugin</artifactId>
+                <configuration>
+                    <excludes>
+                        org/apache/myfaces/push/WebsocketComponent.java,
+                        org/apache/myfaces/push/WebsocketInit.java,
+                        org/apache/myfaces/taglib/core/*,
+                        org/apache/myfaces/taglib/html/*,
+                        org/apache/myfaces/view/facelets/component/JsfElement.java,
+                        org/apache/myfaces/webapp/WebConfigParamsLogger.java</excludes>
+                </configuration>
+            </plugin>
+
+            <!-- myfaces-build-plugin - we generate a lot of stuff with this plugin (see executions) -->
+            <plugin>
+                <groupId>org.apache.myfaces.buildtools</groupId>
+                <artifactId>myfaces-builder-plugin</artifactId>
+                <executions>
+
+                    <execution>
+                        <id>makemyfacesmetadata</id>
+                        <configuration>
+                            <sourceDirectories>
+                                <dir>${basedir}/src/main/java</dir>
+                                <dir>${project.build.directory}/shared_sources</dir>
+                            </sourceDirectories>
+                        </configuration>
+                        <goals>
+                            <goal>build-metadata</goal>
+                        </goals>
+                    </execution>
+
+                    <execution>
+                        <id>makeWebConfigParamsLogger</id>
+                        <configuration>
+                            <templateFile>WebConfigParamsLogger.vm</templateFile>
+                            <outputDirectory>${project.build.directory}/generated-sources/myfaces-builder-plugin</outputDirectory>
+                            <xmlFile>org/apache/myfaces/webapp/WebConfigParamsLogger.java</xmlFile>
+                            <modelIds>
+                                <modelId>myfaces-api</modelId>
+                                <modelId>myfaces-impl</modelId>
+                            </modelIds>
+                        </configuration>
+                        <goals>
+                            <goal>make-config</goal>
+                        </goals>
+                    </execution>
+
+                    <execution>
+                        <id>makefacesconfig</id>
+                        <configuration>
+                            <templateFile>faces-config20.vm</templateFile>
+                            <xmlFile>META-INF/standard-faces-config.xml</xmlFile>
+                            <xmlBaseFile>src/main/conf/META-INF/standard-faces-config-base.xml</xmlBaseFile>
+                            <modelIds>
+                                <modelId>myfaces-api</modelId>
+                                <modelId>myfaces-impl</modelId>
+                            </modelIds>
+                        </configuration>
+                        <goals>
+                            <goal>make-config</goal>
+                        </goals>
+                    </execution>
+                    <execution>
+                        <id>makecomp</id>
+                        <configuration>
+                            <jsfVersion>20</jsfVersion>
+                            <templateComponentName>componentClass20.vm</templateComponentName>
+                        </configuration>
+                        <goals>
+                            <goal>make-components</goal>
+                        </goals>
+                    </execution>
+                    <execution>
+                        <id>make_tags</id>
+                        <configuration>
+                            <jsfVersion>12</jsfVersion>
+                            <templateTagName>tagClass12.vm</templateTagName>
+                            <packageContains>org.apache</packageContains>
+                            <typePrefix>javax.faces</typePrefix>
+                            <modelIds>
+                                <modelId>myfaces-api</modelId>
+                            </modelIds>
+                        </configuration>
+                        <goals>
+                            <goal>make-tags</goal>
+                        </goals>
+                    </execution>
+
+                    <execution>
+                        <id>makecoretld</id>
+                        <configuration>
+                            <xmlFile>META-INF/myfaces_core.tld</xmlFile>
+                            <templateFile>myfaces_core12.vm</templateFile>
+                            <modelIds>
+                                <modelId>myfaces-api</modelId>
+                                <modelId>myfaces-impl</modelId>
+                            </modelIds>
+                            <params>
+                                <shortname>f</shortname>
+                                <uri>http://java.sun.com/jsf/core</uri>
+                                <displayname>JSF core tag library.</displayname>
+                                <description>This tag library implements the standard JSF core tags.</description>
+                            </params>
+                        </configuration>
+                        <goals>
+                            <goal>make-config</goal>
+                        </goals>
+                    </execution>
+
+                    <execution>
+                        <id>makehtmltld</id>
+                        <configuration>
+                            <xmlFile>META-INF/myfaces_html.tld</xmlFile>
+                            <xmlBaseFile>src/main/conf/META-INF/myfaces_html-base.tld</xmlBaseFile>
+                            <templateFile>myfaces_html12.vm</templateFile>
+                            <params>
+                                <shortname>h</shortname>
+                                <uri>http://java.sun.com/jsf/html</uri>
+                                <displayname>JSF HTML tag library.</displayname>
+                                <description>This tag library implements the standard JSF HTML tags.</description>
+                            </params>
+                            <modelIds>
+                                <modelId>myfaces-api</modelId>
+                            </modelIds>
+                        </configuration>
+                        <goals>
+                            <goal>make-config</goal>
+                        </goals>
+                    </execution>
+
+                    <!--
+                        To generate facelet taglib doc we need to create alternate facelets files
+                        so taglibdoc goal can extract the required information and create html files.
+                        We put this one here temporally but generate-assembly profile should trigger
+                        this execution tasks too.
+                    -->
+                    <execution>
+                        <id>make_core_facelet_tld</id>
+                        <configuration>
+                            <outputDirectory>${project.build.directory}/tlddoc-facelets</outputDirectory>
+                            <xmlFile>myfaces_facelets_core.tld</xmlFile>
+                            <templateFile>myfaces_facelet_core20.vm</templateFile>
+                            <modelIds>
+                                <modelId>myfaces-api</modelId>
+                                <modelId>myfaces-impl</modelId>
+                            </modelIds>
+                            <params>
+                                <shortname>f</shortname>
+                                <uri>http://java.sun.com/jsf/core</uri>
+                                <displayname>JSF Core Facelets Tag Library.</displayname>
+                                <description>This tag library implements the standard JSF core tags for Facelets.</description>
+                            </params>
+                        </configuration>
+                        <goals>
+                            <goal>make-config</goal>
+                        </goals>
+                    </execution>
+
+                    <execution>
+                        <id>make_html_facelet_tld</id>
+                        <configuration>
+                            <outputDirectory>${project.build.directory}/tlddoc-facelets</outputDirectory>
+                            <xmlFile>myfaces_facelets_html.tld</xmlFile>
+                            <xmlBaseFile>src/main/conf/META-INF/myfaces_html-base.tld</xmlBaseFile>
+                            <templateFile>myfaces_facelet_html20.vm</templateFile>
+                            <modelIds>
+                                <modelId>myfaces-api</modelId>
+                                <modelId>myfaces-impl</modelId>
+                            </modelIds>
+                            <params>
+                                <shortname>h</shortname>
+                                <uri>http://java.sun.com/jsf/html</uri>
+                                <displayname>JSF HTML Facelets Tag Library.</displayname>
+                                <description>This tag library implements the standard JSF HTML tags for Facelets.</description>
+                            </params>
+                        </configuration>
+                        <goals>
+                            <goal>make-config</goal>
+                        </goals>
+                    </execution>
+
+                    <execution>
+                        <id>make_c_facelet_tld</id>
+                        <configuration>
+                            <outputDirectory>${project.build.directory}/tlddoc-facelets</outputDirectory>
+                            <xmlFile>myfaces_facelets_c.tld</xmlFile>
+                            <xmlBaseFile>src/main/conf/META-INF/myfaces_html-base.tld</xmlBaseFile>
+                            <templateFile>myfaces_facelet_html20.vm</templateFile>
+                            <modelIds>
+                                <modelId>myfaces-api</modelId>
+                                <modelId>myfaces-impl</modelId>
+                            </modelIds>
+                            <params>
+                                <shortname>c</shortname>
+                                <uri>http://java.sun.com/jsp/jstl/core</uri>
+                                <displayname>JSTL core Facelets Tag Library.</displayname>
+                                <description>JSTL core Facelets Tag Library.</description>
+                            </params>
+                        </configuration>
+                        <goals>
+                            <goal>make-config</goal>
+                        </goals>
+                    </execution>
+
+                    <execution>
+                        <id>make_ui_facelet_tld</id>
+                        <configuration>
+                            <outputDirectory>${project.build.directory}/tlddoc-facelets</outputDirectory>
+                            <xmlFile>myfaces_facelets_ui.tld</xmlFile>
+                            <xmlBaseFile>src/main/conf/META-INF/myfaces_ui-base.tld</xmlBaseFile>
+                            <templateFile>myfaces_facelet_html20.vm</templateFile>
+                            <modelIds>
+                                <modelId>myfaces-api</modelId>
+                                <modelId>myfaces-impl</modelId>
+                            </modelIds>
+                            <params>
+                                <shortname>ui</shortname>
+                                <uri>http://java.sun.com/jsf/facelets</uri>
+                                <displayname>JSF UI Facelets Tag Library.</displayname>
+                                <description>JSF UI Facelets Tag Library.</description>
+                            </params>
+                        </configuration>
+                        <goals>
+                            <goal>make-config</goal>
+                        </goals>
+                    </execution>
+
+                    <execution>
+                        <id>make_composite_facelet_tld</id>
+                        <configuration>
+                            <outputDirectory>${project.build.directory}/tlddoc-facelets</outputDirectory>
+                            <xmlFile>myfaces_facelets_composite.tld</xmlFile>
+                            <xmlBaseFile>src/main/conf/META-INF/myfaces_html-base.tld</xmlBaseFile>
+                            <templateFile>myfaces_facelet_html20.vm</templateFile>
+                            <modelIds>
+                                <modelId>myfaces-api</modelId>
+                                <modelId>myfaces-impl</modelId>
+                            </modelIds>
+                            <params>
+                                <shortname>composite</shortname>
+                                <uri>http://java.sun.com/jsf/composite</uri>
+                                <displayname>JSF Composite Facelets Tag Library.</displayname>
+                                <description>JSF Composite Facelets Tag Library.</description>
+                            </params>
+                        </configuration>
+                        <goals>
+                            <goal>make-config</goal>
+                        </goals>
+                    </execution>
+
+                    <execution>
+                        <id>make_fn_facelet_tld</id>
+                        <configuration>
+                            <outputDirectory>${project.build.directory}/tlddoc-facelets</outputDirectory>
+                            <xmlFile>myfaces_facelet_fn.tld</xmlFile>
+                            <templateFile>myfaces_facelet_html20.vm</templateFile>
+                            <modelIds>
+                                <modelId>myfaces-api</modelId>
+                                <modelId>myfaces-impl</modelId>
+                            </modelIds>
+                            <params>
+                                <shortname>fn</shortname>
+                                <uri>http://java.sun.com/jsp/jstl/functions</uri>
+                                <displayname>JSTL Facelets Function Library.</displayname>
+                                <description>JSTL Facelets Function Library.</description>
+                            </params>
+                        </configuration>
+                        <goals>
+                            <goal>make-config</goal>
+                        </goals>
+                    </execution>
+
+                    <!-- START XSD GENERATION -->
+
+                    <execution>
+                        <id>make_core_facelet_xsd</id>
+                        <configuration>
+                            <xmlFile>META-INF/schema/myfaces_facelets_core_2_1.xsd</xmlFile>
+                            <templateFile>myfaces_facelet_core20_xsd.vm</templateFile>
+                            <modelIds>
+                                <modelId>myfaces-api</modelId>
+                                <modelId>myfaces-impl</modelId>
+                            </modelIds>
+                            <params>
+                                <shortname>f</shortname>
+                                <uri>http://java.sun.com/jsf/core</uri>
+                                <displayname>JSF Core Facelets Tag Library.</displayname>
+                                <tlibversion>2.1</tlibversion>
+                                <description>This tag library implements the standard JSF core tags for Facelets.</description>
+                            </params>
+                        </configuration>
+                        <goals>
+                            <goal>make-config</goal>
+                        </goals>
+                    </execution>
+
+                    <execution>
+                        <id>make_html_facelet_xsd</id>
+                        <configuration>
+                            <xmlFile>META-INF/schema/myfaces_facelets_html_2_1.xsd</xmlFile>
+                            <templateFile>myfaces_facelet_html20_xsd.vm</templateFile>
+                            <modelIds>
+                                <modelId>myfaces-api</modelId>
+                                <modelId>myfaces-impl</modelId>
+                            </modelIds>
+                            <params>
+                                <shortname>h</shortname>
+                                <uri>http://java.sun.com/jsf/html</uri>
+                                <displayname>JSF HTML Facelets Tag Library.</displayname>
+                                <description>This tag library implements the standard JSF HTML tags for Facelets.</description>
+                            </params>
+                        </configuration>
+                        <goals>
+                            <goal>make-config</goal>
+                        </goals>
+                    </execution>
+
+                    <execution>
+                        <id>make_c_facelet_xsd</id>
+                        <configuration>
+                            <xmlFile>META-INF/schema/myfaces_facelets_c_2_1.xsd</xmlFile>
+                            <templateFile>myfaces_facelet_html20_xsd.vm</templateFile>
+                            <modelIds>
+                                <modelId>myfaces-api</modelId>
+                                <modelId>myfaces-impl</modelId>
+                            </modelIds>
+                            <params>
+                                <shortname>c</shortname>
+                                <uri>http://java.sun.com/jsp/jstl/core</uri>
+                                <displayname>JSTL core Facelets Tag Library.</displayname>
+                                <description>JSTL core Facelets Tag Library.</description>
+                            </params>
+                        </configuration>
+                        <goals>
+                            <goal>make-config</goal>
+                        </goals>
+                    </execution>
+
+                    <execution>
+                        <id>make_ui_facelet_xsd</id>
+                        <configuration>
+                            <xmlFile>META-INF/schema/myfaces_facelets_ui_2_1.xsd</xmlFile>
+                            <templateFile>myfaces_facelet_html20_xsd.vm</templateFile>
+                            <modelIds>
+                                <modelId>myfaces-api</modelId>
+                                <modelId>myfaces-impl</modelId>
+                            </modelIds>
+                            <params>
+                                <shortname>ui</shortname>
+                                <uri>http://java.sun.com/jsf/facelets</uri>
+                                <displayname>JSF UI Facelets Tag Library.</displayname>
+                                <description>JSF UI Facelets Tag Library.</description>
+                            </params>
+                        </configuration>
+                        <goals>
+                            <goal>make-config</goal>
+                        </goals>
+                    </execution>
+
+                    <execution>
+                        <id>make_composite_facelet_xsd</id>
+                        <configuration>
+                            <xmlFile>META-INF/schema/myfaces_facelets_composite_2_1.xsd</xmlFile>
+                            <templateFile>myfaces_facelet_html20_xsd.vm</templateFile>
+                            <modelIds>
+                                <modelId>myfaces-api</modelId>
+                                <modelId>myfaces-impl</modelId>
+                            </modelIds>
+                            <params>
+                                <shortname>composite</shortname>
+                                <uri>http://java.sun.com/jsf/composite</uri>
+                                <displayname>JSF Composite Facelets Tag Library.</displayname>
+                                <description>JSF Composite Facelets Tag Library.</description>
+                            </params>
+                        </configuration>
+                        <goals>
+                            <goal>make-config</goal>
+                        </goals>
+                    </execution>
+
+                    <execution>
+                        <id>make_core_facelet_xsd22</id>
+                        <configuration>
+                            <xmlFile>META-INF/schema/myfaces_facelets_core_2_2.xsd</xmlFile>
+                            <templateFile>myfaces_facelet_core20_xsd.vm</templateFile>
+                            <modelIds>
+                                <modelId>myfaces-api</modelId>
+                                <modelId>myfaces-impl</modelId>
+                            </modelIds>
+                            <params>
+                                <shortname>f</shortname>
+                                <uri>http://xmlns.jcp.org/jsf/core</uri>
+                                <displayname>JSF Core Facelets Tag Library.</displayname>
+                                <tlibversion>2.2</tlibversion>
+                                <description>This tag library implements the standard JSF core tags for Facelets.</description>
+                            </params>
+                        </configuration>
+                        <goals>
+                            <goal>make-config</goal>
+                        </goals>
+                    </execution>
+
+                    <execution>
+                        <id>make_html_facelet_xsd22</id>
+                        <configuration>
+                            <xmlFile>META-INF/schema/myfaces_facelets_html_2_2.xsd</xmlFile>
+                            <templateFile>myfaces_facelet_html20_xsd.vm</templateFile>
+                            <modelIds>
+                                <modelId>myfaces-api</modelId>
+                                <modelId>myfaces-impl</modelId>
+                            </modelIds>
+                            <params>
+                                <shortname>h</shortname>
+                                <uri>http://xmlns.jcp.org/jsf/html</uri>
+                                <displayname>JSF HTML Facelets Tag Library.</displayname>
+                                <description>This tag library implements the standard JSF HTML tags for Facelets.</description>
+                            </params>
+                        </configuration>
+                        <goals>
+                            <goal>make-config</goal>
+                        </goals>
+                    </execution>
+
+                    <execution>
+                        <id>make_c_facelet_xsd22</id>
+                        <configuration>
+                            <xmlFile>META-INF/schema/myfaces_facelets_c_2_2.xsd</xmlFile>
+                            <templateFile>myfaces_facelet_html20_xsd.vm</templateFile>
+                            <modelIds>
+                                <modelId>myfaces-api</modelId>
+                                <modelId>myfaces-impl</modelId>
+                            </modelIds>
+                            <params>
+                                <shortname>c</shortname>
+                                <uri>http://xmlns.jcp.org/jsp/jstl/core</uri>
+                                <displayname>JSTL core Facelets Tag Library.</displayname>
+                                <description>JSTL core Facelets Tag Library.</description>
+                            </params>
+                        </configuration>
+                        <goals>
+                            <goal>make-config</goal>
+                        </goals>
+                    </execution>
+
+                    <execution>
+                        <id>make_ui_facelet_xsd22</id>
+                        <configuration>
+                            <xmlFile>META-INF/schema/myfaces_facelets_ui_2_2.xsd</xmlFile>
+                            <templateFile>myfaces_facelet_html20_xsd.vm</templateFile>
+                            <modelIds>
+                                <modelId>myfaces-api</modelId>
+                                <modelId>myfaces-impl</modelId>
+                            </modelIds>
+                            <params>
+                                <shortname>ui</shortname>
+                                <uri>http://xmlns.jcp.org/jsf/facelets</uri>
+                                <displayname>JSF UI Facelets Tag Library.</displayname>
+                                <description>JSF UI Facelets Tag Library.</description>
+                            </params>
+                        </configuration>
+                        <goals>
+                            <goal>make-config</goal>
+                        </goals>
+                    </execution>
+
+                    <execution>
+                        <id>make_composite_facelet_xsd22</id>
+                        <configuration>
+                            <xmlFile>META-INF/schema/myfaces_facelets_composite_2_2.xsd</xmlFile>
+                            <templateFile>myfaces_facelet_html20_xsd.vm</templateFile>
+                            <modelIds>
+                                <modelId>myfaces-api</modelId>
+                                <modelId>myfaces-impl</modelId>
+                            </modelIds>
+                            <params>
+                                <shortname>composite</shortname>
+                                <uri>http://xmlns.jcp.org/jsf/composite</uri>
+                                <displayname>JSF Composite Facelets Tag Library.</displayname>
+                                <description>JSF Composite Facelets Tag Library.</description>
+                            </params>
+                        </configuration>
+                        <goals>
+                            <goal>make-config</goal>
+                        </goals>
+                    </execution>
+
+                    <!-- END XSD GENERATION -->
+                </executions>
+            </plugin>
+
+
+
+            <plugin>
+                <artifactId>maven-jar-plugin</artifactId>
+                <version>2.2</version>
+                <configuration>
+                    <archive>
+                        <manifestFile>${project.build.outputDirectory}/META-INF/MANIFEST.MF</manifestFile>
+                    </archive>
+                </configuration>
+                <!-- generate a -tests.jar too -->
+                <executions>
+                    <execution>
+                        <goals>
+                            <goal>test-jar</goal>
+                        </goals>
+                    </execution>
+                </executions>
+
+            </plugin>
+
+            <!-- run test-cases -->
+            <plugin>
+                <artifactId>maven-surefire-plugin</artifactId>
+                <configuration>
+                    <excludes>
+                        <exclude>**/DefaultViewHandlerSupportTest*</exclude>
+                        <exclude>**/ApplicationImplTest*</exclude>
+                        <exclude>**/FactoryFinderProviderTest*</exclude>
+                    </excludes>
+                    <systemProperties>
+                        <!--
+                        Java 9 introduce CLDR locales as defaults
+                        some tests however fail because the local
+                        checks follow the java conventions.
+                        Setting it to provider should enable locale behavior
+                        across all supported JDKs
+                        -->
+                        <property>
+                            <name>java.locale.providers</name>
+                            <value>COMPAT</value>
+                        </property>
+                    </systemProperties>
+                    <argLine>-Djava.locale.providers=COMPAT</argLine>
+                </configuration>
+
+                <executions>
+                    <execution>
+                        <id>isolateCLTests</id>
+                        <phase>test</phase>
+                        <goals>
+                            <goal>test</goal>
+                        </goals>
+                        <configuration>
+                            <!-- <forkMode>always</forkMode> -->
+                            <forkCount>1</forkCount>
+                            <reuseForks>false</reuseForks>
+                            <includes>
+                                <include>**/FactoryFinderProviderTest*</include>
+                            </includes>
+                            <excludes>
+                                <exclude>**/JspStateManagerImplTest*</exclude>
+                                <exclude>**/DefaultViewHandlerSupportTest*</exclude>
+                                <exclude>**/ApplicationImplTest*</exclude>
+                            </excludes>
+                        </configuration>
+                    </execution>
+                </executions>
+            </plugin>
+
+            <!-- create OSGI-ready manifest.mf -->
+            <plugin>
+                <groupId>org.apache.felix</groupId>
+                <artifactId>maven-bundle-plugin</artifactId>
+                <executions>
+                    <execution>
+                        <id>bundle-manifest</id>
+                        <phase>process-classes</phase>
+                        <goals>
+                            <goal>manifest</goal>
+                        </goals>
+                        <configuration>
+                            <instructions>
+                                <Bundle-SymbolicName>org.apache.myfaces.core.impl</Bundle-SymbolicName>
+                                <Bundle-Classpath>.</Bundle-Classpath>
+                                <Build-Jdk>${java.version}</Build-Jdk>
+                                <Implementation-Title>${project.name}</Implementation-Title>
+                                <Implementation-Version>${project.version}</Implementation-Version>
+                                <Implementation-Vendor>The Apache Software Foundation</Implementation-Vendor>
+                                <Implementation-Vendor-Id>${project.groupId}</Implementation-Vendor-Id>
+                                <Export-Package>
+                                    *;version="${project.version}"
+                                </Export-Package>
+                                <Import-Package>
+                                    !org.apache.myfaces.*,
+                                    javax.annotation,
+                                    javax.crypto,
+                                    javax.crypto.spec,
+                                    javax.ejb;resolution:=optional,
+                                    javax.el;version="[1.0.0, 3.1.0)",
+                                    javax.naming,
+                                    javax.persistence;version="[1.0.0, 2.1)";resolution:=optional,
+                                    javax.portlet;version="[1.0.0, 2.1)";resolution:=optional,
+                                    javax.servlet;version="[3, 5)",
+                                    javax.servlet.http;version="[3, 5)",
+                                    javax.servlet.jsp;version="[2.2.0, 3.1)",
+                                    javax.servlet.jsp.jstl.core;version="[1.1.2, 2.0.0)",
+                                    javax.servlet.jsp.tagext;version="[2.1.0, 3.1)",
+                                    javax.servlet.annotation;version="[3, 5)";resolution:=optional,
+                                    javax.xml.parsers,
+                                    org.apache;resolution:=optional,
+                                    org.w3c.dom,
+                                    org.xml.sax,
+                                    org.xml.sax.helpers,
+                                    org.apache.jasper.compiler;resolution:=optional,
+                                    org.apache.jasper.el;resolution:=optional,
+                                    org.apache.el;resolution:=optional,
+                                    org.apache.tomcat;resolution:=optional,
+                                    javax.faces.*;version="${project.version}",
+                                    *
+                                </Import-Package>
+                            </instructions>
+                        </configuration>
+                    </execution>
+                </executions>
+            </plugin>
+
+        </plugins>
+
+    </build>
+
+
+    <profiles>
+
+        <!--
+          - Whenever the full website is generated, the command
+          -   mvn -Pgenerate-site -Pgenerate-tlddoc site
+          - should be used. This will create the "tlddoc" directory containing
+          - nicely-formatted versions of the docs in the jsp taglib file, ie
+          - docs on all the available tags and their properties.
+        -->
+        <profile>
+            <id>generate-site</id>
+            <build>
+                <plugins>
+
+                    <!-- Generate content for custom tagdoc report -->
+                    <plugin>
+                        <groupId>org.apache.myfaces.buildtools</groupId>
+                        <artifactId>myfaces-builder-plugin</artifactId>
+                        <executions>
+
+                            <execution>
+                                <id>site-tagdoc-content</id>
+                                <configuration>
+                                    <modelIds>
+                                        <modelId>myfaces-api</modelId>
+                                        <modelId>myfaces-impl</modelId>
+                                    </modelIds>
+                                    <taglibs>
+                                        <f>http://xmlns.jcp.org/jsf/core</f>
+                                        <h>http://xmlns.jcp.org/jsf/html</h>
+                                        <ui>http://xmlns.jcp.org/jsf/facelets</ui>
+                                        <c>http://xmlns.jcp.org/jsp/jstl/core</c>
+                                        <fn>http://xmlns.jcp.org/jsp/jstl/functions</fn>
+                                    </taglibs>
+                                </configuration>
+                                <goals>
+                                    <goal>tagdoc-content</goal>
+                                </goals>
+                            </execution>
+
+                            <execution>
+                                <id>site-web-config</id>
+                                <configuration>
+                                    <templateFile>xdoc-web-config.vm</templateFile>
+                                    <outputDirectory>${project.build.directory}/generated-site/xdoc</outputDirectory>
+                                    <xmlFile>webconfig.xml</xmlFile>
+                                    <modelIds>
+                                        <modelId>myfaces-api</modelId>
+                                        <modelId>myfaces-impl</modelId>
+                                    </modelIds>
+                                </configuration>
+                                <goals>
+                                    <goal>make-config</goal>
+                                </goals>
+                            </execution>
+
+                        </executions>
+                    </plugin>
+
+                    <!--
+                        Unfortunately we can't execute the same report twice, so
+                        we have to generate this files outside report generation.
+                    -->
+                    <plugin>
+                        <groupId>net.sourceforge.maven-taglib</groupId>
+                        <artifactId>maven-taglib-plugin</artifactId>
+                        <version>2.4</version>
+                        <executions>
+
+                            <execution>
+                                <id>tlddoc-facelets</id>
+                                <phase>site</phase>
+                                <goals>
+                                    <goal>taglibdoc</goal>
+                                </goals>
+                                <inherited>false</inherited>
+                                <configuration>
+                                    <title>${project.name} Tag library documentation for Facelets</title>
+                                    <srcDir>${basedir}/target/tlddoc-facelets</srcDir>
+                                    <tldDocDir>${basedir}/target/site/tlddoc-facelets</tldDocDir>
+                                </configuration>
+                            </execution>
+
+                            <execution>
+                                <id>tlddoc-jsp</id>
+                                <phase>site</phase>
+                                <goals>
+                                    <goal>taglibdoc</goal>
+                                </goals>
+                                <inherited>false</inherited>
+                                <configuration>
+                                    <taglib.src.dir>${basedir}/target/classes/META-INF</taglib.src.dir>
+                                    <tldDocDir>${basedir}/target/site/tlddoc</tldDocDir>
+                                </configuration>
+                            </execution>
+
+                        </executions>
+                    </plugin>
+
+                </plugins>
+            </build>
+
+            <reporting>
+                <plugins>
+                    <plugin>
+                        <groupId>net.sourceforge.maven-taglib</groupId>
+                        <artifactId>maven-taglib-plugin</artifactId>
+                        <version>2.4</version>
+                        <configuration>
+                            <taglib.src.dir>${basedir}/target/classes/META-INF</taglib.src.dir>
+                            <tldDocDir>${basedir}/target/site/tlddoc</tldDocDir>
+                        </configuration>
+                    </plugin>
+
+                    <!-- trigger tagdoc-index report -->
+                    <plugin>
+                        <groupId>org.apache.myfaces.buildtools</groupId>
+                        <artifactId>myfaces-builder-plugin</artifactId>
+                        <reportSets>
+                            <reportSet>
+                                <configuration>
+                                    <modelIds>
+                                        <modelId>myfaces-api</modelId>
+                                        <modelId>myfaces-impl</modelId>
+                                    </modelIds>
+                                    <taglibs>
+                                        <f>http://xmlns.jcp.org/jsf/core</f>
+                                        <h>http://xmlns.jcp.org/jsf/html</h>
+                                        <ui>http://xmlns.jcp.org/jsf/facelets</ui>
+                                        <c>http://xmlns.jcp.org/jsp/jstl/core</c>
+                                        <fn>http://xmlns.jcp.org/jsp/jstl/functions</fn>
+                                    </taglibs>
+                                </configuration>
+                                <reports>
+                                    <report>tagdoc-index</report>
+                                </reports>
+                            </reportSet>
+                        </reportSets>
+                    </plugin>
+                </plugins>
+            </reporting>
+        </profile>
+
+        <!--
+          - Whenever files are deployed to a snapshot or release repository,
+          -   mvn -Pgenerate-assembly deploy
+          - should be used. This will create additional artifacts that are
+          - useful but too time-consuming to create when just doing a local
+          - "mvn install" operation.
+        -->
+        <profile>
+            <id>generate-assembly</id>
+            <activation>
+                <property>
+                    <name>performRelease</name>
+                    <value>true</value>
+                </property>
+            </activation>
+            <build>
+                <plugins>
+                    <plugin>
+                        <groupId>org.apache.maven.plugins</groupId>
+                        <artifactId>maven-javadoc-plugin</artifactId>
+                        <executions>
+                            <execution>
+                                <id>attach-javadoc</id>
+                                <goals>
+                                    <goal>jar</goal>
+                                </goals>
+                            </execution>
+                        </executions>
+                    </plugin>
+
+                    <plugin>
+                        <groupId>net.sourceforge.maven-taglib</groupId>
+                        <artifactId>maven-taglib-plugin</artifactId>
+                        <version>2.4</version>
+                        <executions>
+                            <execution>
+                                <id>tlddoc-facelets</id>
+                                <!--
+                                    TODO: The phase value should be "site", but since we are not released yet
+                                    and this documentation is used to implement jsf 2.0, we put this one
+                                    on site so just doing mvn -Pgenerate-site install we can create this
+                                    javadoc
+                                -->
+                                <phase>process-resources</phase>
+                                <goals>
+                                    <goal>taglibdoc</goal>
+                                </goals>
+                                <inherited>false</inherited>
+                                <configuration>
+                                    <title>${project.name} Tag library documentation for Facelets</title>
+                                    <srcDir>${basedir}/target/tlddoc-facelets</srcDir>
+                                    <tldDocDir>${basedir}/target/site/tlddoc-facelets</tldDocDir>
+                                </configuration>
+                            </execution>
+
+                            <execution>
+                                <id>tlddoc-jsp</id>
+                                <phase>process-resources</phase>
+                                <goals>
+                                    <goal>taglibdoc</goal>
+                                </goals>
+                                <inherited>false</inherited>
+                                <configuration>
+                                    <taglib.src.dir>${basedir}/target/classes/META-INF</taglib.src.dir>
+                                    <tldDocDir>${basedir}/target/site/tlddoc</tldDocDir>
+                                </configuration>
+                            </execution>
+
+                            <execution>
+                                <id>attach-tlddoc</id>
+                                <goals>
+                                    <goal>taglibdocjar</goal>
+                                </goals>
+                                <configuration>
+                                    <tldDocDir>${basedir}/target/site/tlddoc</tldDocDir>
+                                </configuration>
+                            </execution>
+
+                            <execution>
+                                <id>attach-tlddoc-facelets</id>
+                                <goals>
+                                    <goal>taglibdocjar</goal>
+                                </goals>
+                                <configuration>
+                                    <attach>false</attach>
+                                    <tldDocDir>${basedir}/target/site/tlddoc-facelets</tldDocDir>
+                                    <tlddocJar>${basedir}/target/${project.artifactId}-${project.version}-facelets-tlddoc.jar</tlddocJar>
+                                </configuration>
+                            </execution>
+
+                        </executions>
+                    </plugin>
+
+                    <plugin>
+                        <groupId>org.codehaus.mojo</groupId>
+                        <artifactId>build-helper-maven-plugin</artifactId>
+                        <executions>
+                            <execution>
+                                <id>attach-artifacts</id>
+                                <phase>package</phase>
+                                <goals>
+                                    <goal>attach-artifact</goal>
+                                </goals>
+                                <configuration>
+                                    <artifacts>
+                                        <artifact>
+                                            <file>${basedir}/target/${project.artifactId}-${project.version}-facelets-tlddoc.jar</file>
+                                            <type>jar</type>
+                                            <classifier>facelets-tlddoc</classifier>
+                                        </artifact>
+                                    </artifacts>
+                                </configuration>
+                            </execution>
+                        </executions>
+                    </plugin>
+
+                </plugins>
+            </build>
+        </profile>
+
+    </profiles>
+
+
+    <dependencies>
+        <dependency>
+            <groupId>org.apache.myfaces.core</groupId>
+            <artifactId>myfaces-api</artifactId>
+            <version>${project.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.myfaces.core</groupId>
+            <artifactId>myfaces-test</artifactId>
+            <version>${project.version}</version>
+            <scope>test</scope>
+        </dependency>
+
+        <!-- Java EE APIs -->
+        <dependency>
+            <groupId>org.apache.tomcat</groupId>
+            <artifactId>tomcat-servlet-api</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.tomcat</groupId>
+            <artifactId>tomcat-websocket-api</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.tomcat</groupId>
+            <artifactId>tomcat-el-api</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.geronimo.specs</groupId>
+            <artifactId>geronimo-jsp_2.2_spec</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>javax.servlet</groupId>
+            <artifactId>jstl</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.geronimo.specs</groupId>
+            <artifactId>geronimo-validation_1.0_spec</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.geronimo.specs</groupId>
+            <artifactId>geronimo-annotation_1.2_spec</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.geronimo.specs</groupId>
+            <artifactId>geronimo-jpa_3.0_spec</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.geronimo.specs</groupId>
+            <artifactId>geronimo-ejb_3.0_spec</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.geronimo.specs</groupId>
+            <artifactId>geronimo-jcdi_1.1_spec</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.geronimo.specs</groupId>
+            <artifactId>geronimo-atinject_1.0_spec</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.geronimo.specs</groupId>
+            <artifactId>geronimo-interceptor_1.2_spec</artifactId>
+        </dependency>
+
+        <!-- builder-annotations like @JSFWebConfigParam -->
+        <dependency>
+            <groupId>org.apache.myfaces.buildtools</groupId>
+            <artifactId>myfaces-builder-annotations</artifactId>
+        </dependency>
+
+        <!-- tomcat 7 support (InjectionProvider) -->
+        <dependency>
+            <groupId>org.apache.tomcat</groupId>
+            <artifactId>tomcat-catalina</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>junit</groupId>
+            <artifactId>junit</artifactId>
+        </dependency>
+
+        <!-- easymock -->
+        <dependency>
+            <groupId>org.easymock</groupId>
+            <artifactId>easymock</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.easymock</groupId>
+            <artifactId>easymockclassextension</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>org.mockito</groupId>
+            <artifactId>mockito-core</artifactId>
+        </dependency>
+
+
+        <!-- We need a real EL implementation for test ui:param tag,
+        because myfaces-test MockExpressionFactory is not designed to
+        handle VariableMapper stuff (see IncludeParamTestCase).-->
+        <dependency>
+            <groupId>org.apache.tomcat</groupId>
+            <artifactId>tomcat-jasper-el</artifactId>
+            <version>9.0.14</version>
+            <scope>test</scope>
+        </dependency>
+
+        <!-- Openwebbeans for CDI Test -->
+        <dependency>
+            <groupId>org.apache.openwebbeans</groupId>
+            <artifactId>openwebbeans-impl</artifactId>
+            <version>${openwebbeans.version}</version>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.openwebbeans</groupId>
+            <artifactId>openwebbeans-jsf</artifactId>
+            <version>${openwebbeans.version}</version>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.openwebbeans</groupId>
+            <artifactId>openwebbeans-web</artifactId>
+            <version>${openwebbeans.version}</version>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.openwebbeans</groupId>
+            <artifactId>openwebbeans-spi</artifactId>
+            <version>${openwebbeans.version}</version>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.openwebbeans</groupId>
+            <artifactId>openwebbeans-resource</artifactId>
+            <version>${openwebbeans.version}</version>
+            <scope>test</scope>
+        </dependency>
+
+        <dependency>
+            <groupId>org.apache.bval</groupId>
+            <artifactId>bval-jsr303</artifactId>
+            <version>0.5</version>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>javax.xml.bind</groupId>
+            <artifactId>jaxb-api</artifactId>
+            <version>2.3.0</version>
+            <scope>test</scope>
+        </dependency>
+
+    </dependencies>
+
+
+    <reporting>
+        <plugins>
+            <plugin>
+                <artifactId>maven-changelog-plugin</artifactId>
+                <reportSets>
+                    <reportSet>
+                        <id>dual-report</id>
+                        <configuration>
+                            <type>range</type>
+                            <range>30</range>
+                        </configuration>
+                        <reports>
+                            <report>changelog</report>
+                            <report>file-activity</report>
+                            <report>dev-activity</report>
+                        </reports>
+                    </reportSet>
+                </reportSets>
+            </plugin>
+
+            <plugin>
+                <artifactId>maven-jxr-plugin</artifactId>
+            </plugin>
+
+            <plugin>
+                <artifactId>maven-surefire-report-plugin</artifactId>
+            </plugin>
+
+            <plugin>
+                <groupId>org.codehaus.mojo</groupId>
+                <artifactId>taglist-maven-plugin</artifactId>
+            </plugin>
+
+        </plugins>
+    </reporting>
+
+</project>
diff --git a/parent/pom.xml b/parent/pom.xml
index b211543..9b3bbb6 100644
--- a/parent/pom.xml
+++ b/parent/pom.xml
@@ -1,521 +1,525 @@
-<?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 imcommons-digesterplied.
- * 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.myfaces</groupId>
-        <artifactId>myfaces</artifactId>
-        <version>19</version>
-        <relativePath />
-    </parent>
-
-    <modelVersion>4.0.0</modelVersion>
-
-    <groupId>org.apache.myfaces.core</groupId>
-    <artifactId>myfaces-core-project</artifactId>
-    <packaging>pom</packaging>
-    <name>Apache MyFaces Core 2.3-next - Parent</name>
-    <description>
-        This project is the home of the MyFaces implementation of the JavaServer Faces 2.3 specification, and
-        consists of an API module (javax.faces.* classes) and an implementation module (org.apache.myfaces.* classes).
-    </description>
-    <version>2.3-next-SNAPSHOT</version>
-    <url>http://myfaces.apache.org/core23next</url>
-
-    <issueManagement>
-        <system>jira</system>
-        <url>https://issues.apache.org/jira/browse/MYFACES</url>
-    </issueManagement>
-
-    <build>
-
-        <!-- Since Maven 3.0, this is required to add scpexe as protocol for deploy. -->
-        <extensions>
-            <extension>
-                <groupId>org.apache.maven.wagon</groupId>
-                <artifactId>wagon-ssh-external</artifactId>
-                <version>1.0-beta-7</version>
-            </extension>
-        </extensions>
-
-        <plugins>
-            <plugin>
-                <artifactId>maven-compiler-plugin</artifactId>
-                <version>3.6.1</version>
-                <configuration>
-                    <source>1.8</source>
-                    <target>1.8</target>
-                </configuration>
-            </plugin>
-
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-checkstyle-plugin</artifactId>
-                <version>2.17</version>
-                <executions>
-                    <execution>
-                        <id>validate</id>
-                        <phase>validate</phase>
-                        <goals>
-                            <goal>check</goal>
-                        </goals>
-                    </execution>
-                </executions>
-                <configuration>
-                    <configLocation>default/myfaces-checks-standard.xml</configLocation>
-                    <headerLocation>default/myfaces-header.txt</headerLocation>
-                </configuration>
-            </plugin>
-
-            <!-- attach -sources.jar to all our modules -->
-            <plugin>
-                <artifactId>maven-source-plugin</artifactId>
-                <version>2.2.1</version>
-                <executions>
-                    <execution>
-                        <id>attach-source</id>
-                        <goals>
-                            <goal>jar</goal>
-                        </goals>
-                    </execution>
-                </executions>
-            </plugin>
-
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-scm-publish-plugin</artifactId>
-                <version>1.0-beta-2</version>
-                <configuration>
-                    <pubScmUrl>${siteScmPublish.url}</pubScmUrl>
-                    <tryUpdate>true</tryUpdate>
-                    <checkoutDirectory>${scmCheckout.path}</checkoutDirectory>
-                    <content>\${siteContent.path}</content>
-                </configuration>
-            </plugin>
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-site-plugin</artifactId>
-                <configuration>
-                    <stagingRepositoryId>myfaces-local-staging</stagingRepositoryId>
-                    <stagingSiteURL>${siteDeploy.url}</stagingSiteURL>
-                </configuration>
-            </plugin>
-
-            <plugin>
-                <artifactId>maven-release-plugin</artifactId>
-                <version>2.5.3</version>
-            </plugin>
-            <plugin>
-                <artifactId>maven-assembly-plugin</artifactId>
-                <version>2.5.4</version>
-            </plugin>
-
-        </plugins>
-
-        <pluginManagement>
-            <plugins>
-
-                <plugin>
-                    <groupId>org.apache.myfaces.buildtools</groupId>
-                    <artifactId>myfaces-faces-plugin</artifactId>
-                    <version>1.0.0</version>
-                </plugin>
-
-                <plugin>
-                    <groupId>org.apache.myfaces.buildtools</groupId>
-                    <artifactId>myfaces-builder-plugin</artifactId>
-                    <version>1.0.10</version>
-                </plugin>
-
-                <plugin>
-                    <artifactId>myfaces-javascript-plugin</artifactId>
-                    <groupId>org.apache.myfaces.buildtools</groupId>
-                    <version>1.0.1</version>
-                </plugin>
-
-                <plugin>
-                    <groupId>org.codehaus.mojo</groupId>
-                    <artifactId>build-helper-maven-plugin</artifactId>
-                    <version>1.9.1</version>
-                </plugin>
-
-                <plugin>
-                    <groupId>org.apache.felix</groupId>
-                    <artifactId>maven-bundle-plugin</artifactId>
-                    <version>3.0.1</version>
-                </plugin>
-
-                <plugin>
-                    <artifactId>maven-surefire-plugin</artifactId>
-                    <version>2.22.2</version>
-                </plugin>
-
-                <plugin>
-                    <artifactId>maven-surefire-report-plugin</artifactId>
-                    <version>2.16</version>
-                </plugin>
-
-                <!-- SITE GENERATION -->
-                <plugin>
-                    <artifactId>maven-javadoc-plugin</artifactId>
-                    <version>3.1.1</version>
-                    <configuration>
-                        <source>8</source>
-                        <additionalJOption>-Xdoclint:none</additionalJOption>
-                        <tags>
-                            <tag>
-                                <name>JSFJspTag</name>
-                                <placement>X</placement>
-                            </tag>
-                            <tag>
-                                <name>JSFJspAttribute</name>
-                                <placement>X</placement>
-                            </tag>
-                        </tags>
-                    </configuration>
-                </plugin>
-                <plugin>
-                    <artifactId>maven-site-plugin</artifactId>
-                    <version>3.3</version>
-                </plugin>
-                <plugin>
-                    <artifactId>maven-jxr-plugin</artifactId>
-                    <version>2.3</version>
-                </plugin>
-                <plugin>
-                    <groupId>org.codehaus.mojo</groupId>
-                    <artifactId>taglist-maven-plugin</artifactId>
-                    <version>2.4</version>
-                </plugin>
-                <plugin>
-                    <artifactId>maven-changelog-plugin</artifactId>
-                    <version>2.2</version>
-                </plugin>
-                <plugin>
-                    <artifactId>maven-pmd-plugin</artifactId>
-                    <version>3.12.0</version>
-                </plugin>
-                <plugin>
-                    <groupId>org.codehaus.mojo</groupId>
-                    <artifactId>findbugs-maven-plugin</artifactId>
-                    <version>3.0.5</version>
-                </plugin>
-                <plugin>
-                    <artifactId>maven-project-info-reports-plugin</artifactId>
-                    <version>3.0.0</version>
-                </plugin>
-            </plugins>
-        </pluginManagement>
-
-    </build>
-
-
-    <profiles>
-
-        <!-- TODO jakobk: we could change this to -Papache-release -->
-        <!--
-            This profile is invoked by -DprepareRelease=true.
-            This allows mvn release:prepare to run successfully on the assembly projects.
-        -->
-        <profile>
-            <id>prepare-release</id>
-            <activation>
-                <property>
-                    <name>prepareRelease</name>
-                </property>
-            </activation>
-            <build>
-                <plugins>
-                    <plugin>
-                        <artifactId>maven-release-plugin</artifactId>
-                        <configuration>
-                            <arguments>-DprepareRelease</arguments>
-                        </configuration>
-                    </plugin>
-                    <plugin>
-                        <groupId>org.apache.rat</groupId>
-                        <artifactId>apache-rat-plugin</artifactId>
-                        <configuration>
-                            <excludes>
-                                <exclude>**/*/MANIFEST.MF</exclude>
-                                <exclude>.git</exclude>
-                                <exclude>.gitignore</exclude>
-                                <exclude>**/target/**/*</exclude>
-                                <exclude>src/main/resources/META-INF/licenses/*-LICENSE.txt</exclude>
-                                <exclude>src/main/resources/META-INF/licenses/*-LICENSE.TXT</exclude>
-                                <exclude>src/main/resources/META-INF/services/**</exclude>
-                                <exclude>DEPENDENCIES</exclude>
-                            </excludes>
-                        </configuration>
-                        <executions>
-                            <execution>
-                                <phase>verify</phase>
-                                <goals>
-                                    <goal>check</goal>
-                                </goals>
-                            </execution>
-                        </executions>
-                    </plugin>
-                </plugins>
-            </build>
-        </profile>
-        <profile>
-            <id>perform-release</id>
-            <activation>
-                <property>
-                    <name>performRelease</name>
-                    <value>true</value>
-                </property>
-            </activation>
-            <build>
-                <plugins>
-                    <plugin>
-                        <artifactId>maven-release-plugin</artifactId>
-                        <configuration>
-                            <arguments>-Papache-release -DperformRelease</arguments>
-                        </configuration>
-                    </plugin>
-                </plugins>
-            </build>
-        </profile>
-    </profiles>
-
-
-    <reporting>
-        <plugins>
-            <plugin>
-                <artifactId>maven-javadoc-plugin</artifactId>
-                <version>3.2.0</version>
-                <configuration>
-                    <source>8</source>
-                </configuration>
-            </plugin>
-            <plugin>
-                <artifactId>maven-pmd-plugin</artifactId>
-                <version>3.12.0</version>
-                <configuration>
-                    <rulesets>
-                        <ruleset>/rulesets/java/basic.xml</ruleset>
-                        <ruleset>/rulesets/java/unusedcode.xml</ruleset>
-                    </rulesets>
-                    <linkXref>true</linkXref>
-                    <minimumTokens>100</minimumTokens>
-                    <targetJdk>1.8</targetJdk>
-                </configuration>
-                <reportSets>
-                    <reportSet>
-                        <reports>
-                            <report>pmd</report>
-                            <report>cpd</report>
-                        </reports>
-                    </reportSet>
-                </reportSets>
-            </plugin>
-            <plugin>
-                <artifactId>maven-project-info-reports-plugin</artifactId>
-                <version>2.9</version>
-            </plugin>
-            <plugin>
-                <groupId>org.codehaus.mojo</groupId>
-                <artifactId>findbugs-maven-plugin</artifactId>
-                <version>3.0.5</version>
-            </plugin>
-        </plugins>
-    </reporting>
-
-
-    <dependencyManagement>
-        <dependencies>
-            <!-- Java EE APIs -->
-            <dependency>
-                <groupId>org.apache.tomcat</groupId>
-                <artifactId>tomcat-servlet-api</artifactId>
-                <version>9.0.14</version>
-                <scope>provided</scope>
-            </dependency>
-            <dependency>
-                <groupId>org.apache.tomcat</groupId>
-                <artifactId>tomcat-websocket-api</artifactId>
-                <version>9.0.14</version>
-                <scope>provided</scope>
-            </dependency>
-            <dependency>
-                <groupId>org.apache.tomcat</groupId>
-                <artifactId>tomcat-el-api</artifactId>
-                <version>9.0.14</version>
-                <scope>provided</scope>
-            </dependency>
-            <dependency>
-                <groupId>org.apache.geronimo.specs</groupId>
-                <artifactId>geronimo-jsp_2.2_spec</artifactId>
-                <version>1.2</version>
-                <scope>provided</scope>
-            </dependency>
-            <dependency>
-                <groupId>javax.servlet</groupId>
-                <artifactId>jstl</artifactId>
-                <version>1.2</version>
-                <scope>provided</scope>
-                <exclusions>
-                    <!-- we already have a jsp-api -->
-                    <exclusion>
-                        <groupId>javax.servlet</groupId>
-                        <artifactId>jsp-api</artifactId>
-                    </exclusion>
-                </exclusions>
-            </dependency>
-            <dependency>
-                <groupId>org.apache.geronimo.specs</groupId>
-                <artifactId>geronimo-annotation_1.2_spec</artifactId>
-                <version>1.0</version>
-                <scope>provided</scope>
-            </dependency>
-            <dependency>
-                <groupId>org.apache.geronimo.specs</groupId>
-                <artifactId>geronimo-validation_1.0_spec</artifactId>
-                <version>1.1</version>
-                <scope>provided</scope>
-            </dependency>
-            <dependency>
-                <groupId>org.apache.geronimo.specs</groupId>
-                <artifactId>geronimo-jpa_3.0_spec</artifactId>
-                <version>1.1.1</version>
-                <scope>provided</scope>
-            </dependency>
-            <dependency>
-                <groupId>org.apache.geronimo.specs</groupId>
-                <artifactId>geronimo-ejb_3.0_spec</artifactId>
-                <version>1.0.1</version>
-                <scope>provided</scope>
-            </dependency>
-            <dependency>
-                <groupId>org.apache.geronimo.specs</groupId>
-                <artifactId>geronimo-jcdi_1.1_spec</artifactId>
-                <version>1.0</version>
-                <scope>provided</scope>
-            </dependency>
-            <dependency>
-                <groupId>org.apache.geronimo.specs</groupId>
-                <artifactId>geronimo-atinject_1.0_spec</artifactId>
-                <version>1.1</version>
-                <scope>provided</scope>
-            </dependency>
-            <dependency>
-                <groupId>org.apache.geronimo.specs</groupId>
-                <artifactId>geronimo-interceptor_1.2_spec</artifactId>
-                <version>1.1</version>
-                <scope>provided</scope>
-            </dependency>
-
-
-            <!-- UTILITY DEPENDENCIES -->
-
-            <!-- builder-annotations like @JSFWebConfigParam -->
-            <dependency>
-                <groupId>org.apache.myfaces.buildtools</groupId>
-                <artifactId>myfaces-builder-annotations</artifactId>
-                <version>1.0.9</version>
-                <scope>provided</scope>
-            </dependency>
-
-            <!-- tomcat 7 support (InjectionProvider) -->
-            <dependency>
-                <groupId>org.apache.tomcat</groupId>
-                <artifactId>tomcat-catalina</artifactId>
-                <version>9.0.14</version>
-                <scope>provided</scope>
-            </dependency>
-
-
-            <dependency>
-                <groupId>junit</groupId>
-                <artifactId>junit</artifactId>
-                <version>4.12</version>
-                <scope>test</scope>
-            </dependency>
-
-            <!-- easymock -->
-            <dependency>
-                <groupId>org.easymock</groupId>
-                <artifactId>easymock</artifactId>
-                <version>2.3</version>
-                <scope>test</scope>
-            </dependency>
-            <dependency>
-                <groupId>org.easymock</groupId>
-                <artifactId>easymockclassextension</artifactId>
-                <version>2.3</version>
-                <scope>test</scope>
-            </dependency>
-
-            <dependency>
-                <groupId>org.mockito</groupId>
-                <artifactId>mockito-core</artifactId>
-                <version>2.23.0</version>
-                <scope>test</scope>
-            </dependency>
-
-            <dependency>
-                <groupId>de.berlios.jsunit</groupId>
-                <artifactId>jsunit-maven2-plugin</artifactId>
-                <version>1.3</version>
-                <scope>test</scope>
-            </dependency>
-
-        </dependencies>
-    </dependencyManagement>
-
-
-    <pluginRepositories>
-        <pluginRepository>
-            <id>apache.snapshots.plugin</id>
-            <name>Apache Snapshot Repository</name>
-            <url>https://repository.apache.org/snapshots</url>
-            <releases>
-                <enabled>false</enabled>
-            </releases>
-        </pluginRepository>
-    </pluginRepositories>
-
-    <!--
-    <distributionManagement>
-        <site>
-            <id>apache.website</id>
-            <name>Apache Website</name>
-            <url>scpexe://people.apache.org/www/myfaces.apache.org/core21/</url>
-        </site>
-    </distributionManagement>-->
-    <distributionManagement>
-        <site>
-            <id>myfaces-local-staging</id>
-            <name>Apache Website</name>
-            <url>scp://localhost/${user.home}/myfaces-site/${siteModule.path}</url>
-        </site>
-    </distributionManagement>
-
-    <properties>
-        <siteModule.path>core23next</siteModule.path>
-        <site.mainDirectory>${user.home}/myfaces-site/checkout</site.mainDirectory>
-        <siteContent.path>${user.home}/myfaces-site/site/${siteModule.path}</siteContent.path>
-        <!-- it's a default location for performance reason (not checkout the content all the time)
-        you can override this value in your settings. -->
-        <scmCheckout.path>\${site.mainDirectory}/${siteModule.path}</scmCheckout.path>
-        <siteDeploy.url>file://${user.home}/myfaces-site/site/${siteModule.path}</siteDeploy.url>
-        <siteScmPublish.url>scm:svn:https://svn.apache.org/repos/asf/myfaces/site/publish/</siteScmPublish.url>
-    </properties>
-</project>
+<?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 imcommons-digesterplied.
+ * 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.myfaces</groupId>
+        <artifactId>myfaces</artifactId>
+        <version>19</version>
+        <relativePath />
+    </parent>
+
+    <modelVersion>4.0.0</modelVersion>
+
+    <groupId>org.apache.myfaces.core</groupId>
+    <artifactId>myfaces-core-project</artifactId>
+    <packaging>pom</packaging>
+    <name>Apache MyFaces Core 2.3-next - Parent</name>
+    <description>
+        This project is the home of the MyFaces implementation of the JavaServer Faces 2.3 specification, and
+        consists of an API module (javax.faces.* classes) and an implementation module (org.apache.myfaces.* classes).
+    </description>
+    <version>2.3-next-M5</version>
+    <url>http://myfaces.apache.org/core23next</url>
+
+    <issueManagement>
+        <system>jira</system>
+        <url>https://issues.apache.org/jira/browse/MYFACES</url>
+    </issueManagement>
+
+    <build>
+
+        <!-- Since Maven 3.0, this is required to add scpexe as protocol for deploy. -->
+        <extensions>
+            <extension>
+                <groupId>org.apache.maven.wagon</groupId>
+                <artifactId>wagon-ssh-external</artifactId>
+                <version>1.0-beta-7</version>
+            </extension>
+        </extensions>
+
+        <plugins>
+            <plugin>
+                <artifactId>maven-compiler-plugin</artifactId>
+                <version>3.6.1</version>
+                <configuration>
+                    <source>1.8</source>
+                    <target>1.8</target>
+                </configuration>
+            </plugin>
+
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-checkstyle-plugin</artifactId>
+                <version>2.17</version>
+                <executions>
+                    <execution>
+                        <id>validate</id>
+                        <phase>validate</phase>
+                        <goals>
+                            <goal>check</goal>
+                        </goals>
+                    </execution>
+                </executions>
+                <configuration>
+                    <configLocation>default/myfaces-checks-standard.xml</configLocation>
+                    <headerLocation>default/myfaces-header.txt</headerLocation>
+                </configuration>
+            </plugin>
+
+            <!-- attach -sources.jar to all our modules -->
+            <plugin>
+                <artifactId>maven-source-plugin</artifactId>
+                <version>2.2.1</version>
+                <executions>
+                    <execution>
+                        <id>attach-source</id>
+                        <goals>
+                            <goal>jar</goal>
+                        </goals>
+                    </execution>
+                </executions>
+            </plugin>
+
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-scm-publish-plugin</artifactId>
+                <version>1.0-beta-2</version>
+                <configuration>
+                    <pubScmUrl>${siteScmPublish.url}</pubScmUrl>
+                    <tryUpdate>true</tryUpdate>
+                    <checkoutDirectory>${scmCheckout.path}</checkoutDirectory>
+                    <content>\${siteContent.path}</content>
+                </configuration>
+            </plugin>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-site-plugin</artifactId>
+                <configuration>
+                    <stagingRepositoryId>myfaces-local-staging</stagingRepositoryId>
+                    <stagingSiteURL>${siteDeploy.url}</stagingSiteURL>
+                </configuration>
+            </plugin>
+
+            <plugin>
+                <artifactId>maven-release-plugin</artifactId>
+                <version>2.5.3</version>
+            </plugin>
+            <plugin>
+                <artifactId>maven-assembly-plugin</artifactId>
+                <version>2.5.4</version>
+            </plugin>
+
+        </plugins>
+
+        <pluginManagement>
+            <plugins>
+
+                <plugin>
+                    <groupId>org.apache.myfaces.buildtools</groupId>
+                    <artifactId>myfaces-faces-plugin</artifactId>
+                    <version>1.0.0</version>
+                </plugin>
+
+                <plugin>
+                    <groupId>org.apache.myfaces.buildtools</groupId>
+                    <artifactId>myfaces-builder-plugin</artifactId>
+                    <version>1.0.10</version>
+                </plugin>
+
+                <plugin>
+                    <artifactId>myfaces-javascript-plugin</artifactId>
+                    <groupId>org.apache.myfaces.buildtools</groupId>
+                    <version>1.0.1</version>
+                </plugin>
+
+                <plugin>
+                    <groupId>org.codehaus.mojo</groupId>
+                    <artifactId>build-helper-maven-plugin</artifactId>
+                    <version>1.9.1</version>
+                </plugin>
+
+                <plugin>
+                    <groupId>org.apache.felix</groupId>
+                    <artifactId>maven-bundle-plugin</artifactId>
+                    <version>3.0.1</version>
+                </plugin>
+
+                <plugin>
+                    <artifactId>maven-surefire-plugin</artifactId>
+                    <version>2.22.2</version>
+                </plugin>
+
+                <plugin>
+                    <artifactId>maven-surefire-report-plugin</artifactId>
+                    <version>2.16</version>
+                </plugin>
+
+                <!-- SITE GENERATION -->
+                <plugin>
+                    <artifactId>maven-javadoc-plugin</artifactId>
+                    <version>3.1.1</version>
+                    <configuration>
+                        <source>8</source>
+                        <additionalJOption>-Xdoclint:none</additionalJOption>
+                        <tags>
+                            <tag>
+                                <name>JSFJspTag</name>
+                                <placement>X</placement>
+                            </tag>
+                            <tag>
+                                <name>JSFJspAttribute</name>
+                                <placement>X</placement>
+                            </tag>
+                        </tags>
+                    </configuration>
+                </plugin>
+                <plugin>
+                    <artifactId>maven-site-plugin</artifactId>
+                    <version>3.3</version>
+                </plugin>
+                <plugin>
+                    <artifactId>maven-jxr-plugin</artifactId>
+                    <version>2.3</version>
+                </plugin>
+                <plugin>
+                    <groupId>org.codehaus.mojo</groupId>
+                    <artifactId>taglist-maven-plugin</artifactId>
+                    <version>2.4</version>
+                </plugin>
+                <plugin>
+                    <artifactId>maven-changelog-plugin</artifactId>
+                    <version>2.2</version>
+                </plugin>
+                <plugin>
+                    <artifactId>maven-pmd-plugin</artifactId>
+                    <version>3.12.0</version>
+                </plugin>
+                <plugin>
+                    <groupId>org.codehaus.mojo</groupId>
+                    <artifactId>findbugs-maven-plugin</artifactId>
+                    <version>3.0.5</version>
+                </plugin>
+                <plugin>
+                    <artifactId>maven-project-info-reports-plugin</artifactId>
+                    <version>3.0.0</version>
+                </plugin>
+            </plugins>
+        </pluginManagement>
+
+    </build>
+
+
+    <profiles>
+
+        <!-- TODO jakobk: we could change this to -Papache-release -->
+        <!--
+            This profile is invoked by -DprepareRelease=true.
+            This allows mvn release:prepare to run successfully on the assembly projects.
+        -->
+        <profile>
+            <id>prepare-release</id>
+            <activation>
+                <property>
+                    <name>prepareRelease</name>
+                </property>
+            </activation>
+            <build>
+                <plugins>
+                    <plugin>
+                        <artifactId>maven-release-plugin</artifactId>
+                        <configuration>
+                            <arguments>-DprepareRelease</arguments>
+                        </configuration>
+                    </plugin>
+                    <plugin>
+                        <groupId>org.apache.rat</groupId>
+                        <artifactId>apache-rat-plugin</artifactId>
+                        <configuration>
+                            <excludes>
+                                <exclude>**/*/MANIFEST.MF</exclude>
+                                <exclude>.git</exclude>
+                                <exclude>.gitignore</exclude>
+                                <exclude>**/target/**/*</exclude>
+                                <exclude>src/main/resources/META-INF/licenses/*-LICENSE.txt</exclude>
+                                <exclude>src/main/resources/META-INF/licenses/*-LICENSE.TXT</exclude>
+                                <exclude>src/main/resources/META-INF/services/**</exclude>
+                                <exclude>DEPENDENCIES</exclude>
+                            </excludes>
+                        </configuration>
+                        <executions>
+                            <execution>
+                                <phase>verify</phase>
+                                <goals>
+                                    <goal>check</goal>
+                                </goals>
+                            </execution>
+                        </executions>
+                    </plugin>
+                </plugins>
+            </build>
+        </profile>
+        <profile>
+            <id>perform-release</id>
+            <activation>
+                <property>
+                    <name>performRelease</name>
+                    <value>true</value>
+                </property>
+            </activation>
+            <build>
+                <plugins>
+                    <plugin>
+                        <artifactId>maven-release-plugin</artifactId>
+                        <configuration>
+                            <arguments>-Papache-release -DperformRelease</arguments>
+                        </configuration>
+                    </plugin>
+                </plugins>
+            </build>
+        </profile>
+    </profiles>
+
+
+    <reporting>
+        <plugins>
+            <plugin>
+                <artifactId>maven-javadoc-plugin</artifactId>
+                <version>3.2.0</version>
+                <configuration>
+                    <source>8</source>
+                </configuration>
+            </plugin>
+            <plugin>
+                <artifactId>maven-pmd-plugin</artifactId>
+                <version>3.12.0</version>
+                <configuration>
+                    <rulesets>
+                        <ruleset>/rulesets/java/basic.xml</ruleset>
+                        <ruleset>/rulesets/java/unusedcode.xml</ruleset>
+                    </rulesets>
+                    <linkXref>true</linkXref>
+                    <minimumTokens>100</minimumTokens>
+                    <targetJdk>1.8</targetJdk>
+                </configuration>
+                <reportSets>
+                    <reportSet>
+                        <reports>
+                            <report>pmd</report>
+                            <report>cpd</report>
+                        </reports>
+                    </reportSet>
+                </reportSets>
+            </plugin>
+            <plugin>
+                <artifactId>maven-project-info-reports-plugin</artifactId>
+                <version>2.9</version>
+            </plugin>
+            <plugin>
+                <groupId>org.codehaus.mojo</groupId>
+                <artifactId>findbugs-maven-plugin</artifactId>
+                <version>3.0.5</version>
+            </plugin>
+        </plugins>
+    </reporting>
+
+
+    <dependencyManagement>
+        <dependencies>
+            <!-- Java EE APIs -->
+            <dependency>
+                <groupId>org.apache.tomcat</groupId>
+                <artifactId>tomcat-servlet-api</artifactId>
+                <version>9.0.14</version>
+                <scope>provided</scope>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.tomcat</groupId>
+                <artifactId>tomcat-websocket-api</artifactId>
+                <version>9.0.14</version>
+                <scope>provided</scope>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.tomcat</groupId>
+                <artifactId>tomcat-el-api</artifactId>
+                <version>9.0.14</version>
+                <scope>provided</scope>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.geronimo.specs</groupId>
+                <artifactId>geronimo-jsp_2.2_spec</artifactId>
+                <version>1.2</version>
+                <scope>provided</scope>
+            </dependency>
+            <dependency>
+                <groupId>javax.servlet</groupId>
+                <artifactId>jstl</artifactId>
+                <version>1.2</version>
+                <scope>provided</scope>
+                <exclusions>
+                    <!-- we already have a jsp-api -->
+                    <exclusion>
+                        <groupId>javax.servlet</groupId>
+                        <artifactId>jsp-api</artifactId>
+                    </exclusion>
+                </exclusions>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.geronimo.specs</groupId>
+                <artifactId>geronimo-annotation_1.2_spec</artifactId>
+                <version>1.0</version>
+                <scope>provided</scope>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.geronimo.specs</groupId>
+                <artifactId>geronimo-validation_1.0_spec</artifactId>
+                <version>1.1</version>
+                <scope>provided</scope>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.geronimo.specs</groupId>
+                <artifactId>geronimo-jpa_3.0_spec</artifactId>
+                <version>1.1.1</version>
+                <scope>provided</scope>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.geronimo.specs</groupId>
+                <artifactId>geronimo-ejb_3.0_spec</artifactId>
+                <version>1.0.1</version>
+                <scope>provided</scope>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.geronimo.specs</groupId>
+                <artifactId>geronimo-jcdi_1.1_spec</artifactId>
+                <version>1.0</version>
+                <scope>provided</scope>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.geronimo.specs</groupId>
+                <artifactId>geronimo-atinject_1.0_spec</artifactId>
+                <version>1.1</version>
+                <scope>provided</scope>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.geronimo.specs</groupId>
+                <artifactId>geronimo-interceptor_1.2_spec</artifactId>
+                <version>1.1</version>
+                <scope>provided</scope>
+            </dependency>
+
+
+            <!-- UTILITY DEPENDENCIES -->
+
+            <!-- builder-annotations like @JSFWebConfigParam -->
+            <dependency>
+                <groupId>org.apache.myfaces.buildtools</groupId>
+                <artifactId>myfaces-builder-annotations</artifactId>
+                <version>1.0.9</version>
+                <scope>provided</scope>
+            </dependency>
+
+            <!-- tomcat 7 support (InjectionProvider) -->
+            <dependency>
+                <groupId>org.apache.tomcat</groupId>
+                <artifactId>tomcat-catalina</artifactId>
+                <version>9.0.14</version>
+                <scope>provided</scope>
+            </dependency>
+
+
+            <dependency>
+                <groupId>junit</groupId>
+                <artifactId>junit</artifactId>
+                <version>4.12</version>
+                <scope>test</scope>
+            </dependency>
+
+            <!-- easymock -->
+            <dependency>
+                <groupId>org.easymock</groupId>
+                <artifactId>easymock</artifactId>
+                <version>2.3</version>
+                <scope>test</scope>
+            </dependency>
+            <dependency>
+                <groupId>org.easymock</groupId>
+                <artifactId>easymockclassextension</artifactId>
+                <version>2.3</version>
+                <scope>test</scope>
+            </dependency>
+
+            <dependency>
+                <groupId>org.mockito</groupId>
+                <artifactId>mockito-core</artifactId>
+                <version>2.23.0</version>
+                <scope>test</scope>
+            </dependency>
+
+            <dependency>
+                <groupId>de.berlios.jsunit</groupId>
+                <artifactId>jsunit-maven2-plugin</artifactId>
+                <version>1.3</version>
+                <scope>test</scope>
+            </dependency>
+
+        </dependencies>
+    </dependencyManagement>
+
+
+    <pluginRepositories>
+        <pluginRepository>
+            <id>apache.snapshots.plugin</id>
+            <name>Apache Snapshot Repository</name>
+            <url>https://repository.apache.org/snapshots</url>
+            <releases>
+                <enabled>false</enabled>
+            </releases>
+        </pluginRepository>
+    </pluginRepositories>
+
+    <!--
+    <distributionManagement>
+        <site>
+            <id>apache.website</id>
+            <name>Apache Website</name>
+            <url>scpexe://people.apache.org/www/myfaces.apache.org/core21/</url>
+        </site>
+    </distributionManagement>-->
+    <distributionManagement>
+        <site>
+            <id>myfaces-local-staging</id>
+            <name>Apache Website</name>
+            <url>scp://localhost/${user.home}/myfaces-site/${siteModule.path}</url>
+        </site>
+    </distributionManagement>
+
+    <properties>
+        <siteModule.path>core23next</siteModule.path>
+        <site.mainDirectory>${user.home}/myfaces-site/checkout</site.mainDirectory>
+        <siteContent.path>${user.home}/myfaces-site/site/${siteModule.path}</siteContent.path>
+        <!-- it's a default location for performance reason (not checkout the content all the time)
+        you can override this value in your settings. -->
+        <scmCheckout.path>\${site.mainDirectory}/${siteModule.path}</scmCheckout.path>
+        <siteDeploy.url>file://${user.home}/myfaces-site/site/${siteModule.path}</siteDeploy.url>
+        <siteScmPublish.url>scm:svn:https://svn.apache.org/repos/asf/myfaces/site/publish/</siteScmPublish.url>
+    </properties>
+
+  <scm>
+    <tag>myfaces-core-module-2.3-next-M5</tag>
+  </scm>
+</project>
diff --git a/pom.xml b/pom.xml
index b7e90d4..b98ed44 100644
--- a/pom.xml
+++ b/pom.xml
@@ -34,7 +34,7 @@
         This project is the home of the MyFaces implementation of the JavaServer Faces 2.3 specification, and
         consists of an API module (javax.faces.* classes) and an implementation module (org.apache.myfaces.* classes).
     </description>
-    <version>2.3-next-SNAPSHOT</version>
+    <version>2.3-next-M5</version>
     <url>http://myfaces.apache.org/core23next</url>
 
     <issueManagement>
@@ -46,7 +46,7 @@
         <connection>scm:git:https://gitbox.apache.org/repos/asf/myfaces.git</connection>
         <developerConnection>scm:git:https://gitbox.apache.org/repos/asf/myfaces.git</developerConnection>
         <url>https://gitbox.apache.org/repos/asf?p=myfaces.git</url>
-        <tag>HEAD</tag>
+        <tag>myfaces-core-module-2.3-next-M5</tag>
     </scm>
 
     <modules>
diff --git a/test/pom.xml b/test/pom.xml
index 4642371..d944bd6 100644
--- a/test/pom.xml
+++ b/test/pom.xml
@@ -1,124 +1,124 @@
-<!--
-/*
- * 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.
- *
- * $Id: pom.xml 1326869 2012-04-17 01:30:30Z lu4242 $
- */
--->
-<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>org.apache.myfaces.core</groupId>
-        <artifactId>myfaces-core-project</artifactId>
-        <version>2.3-next-SNAPSHOT</version>
-        <relativePath>../parent/pom.xml</relativePath>
-    </parent>
-
-    <groupId>org.apache.myfaces.core</groupId>
-    <artifactId>myfaces-test</artifactId>
-    <packaging>jar</packaging>
-    <name>Apache MyFaces Core 2.3-next - Test</name>
-
-    <dependencies>
-        <dependency>
-            <groupId>org.apache.myfaces.core</groupId>
-            <artifactId>myfaces-api</artifactId>
-            <version>${project.version}</version>
-            <scope>provided</scope>
-        </dependency>
-
-        <dependency>
-            <groupId>javax.portlet</groupId>
-            <artifactId>portlet-api</artifactId>
-            <version>1.0</version>
-            <scope>provided</scope>
-        </dependency>
-
-        <!-- Java EE APIs -->
-        <dependency>
-            <groupId>org.apache.tomcat</groupId>
-            <artifactId>tomcat-servlet-api</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.tomcat</groupId>
-            <artifactId>tomcat-el-api</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.geronimo.specs</groupId>
-            <artifactId>geronimo-jsp_2.2_spec</artifactId>
-        </dependency>
-
-        <dependency>
-            <groupId>net.sourceforge.htmlunit</groupId>
-            <artifactId>htmlunit</artifactId>
-            <version>2.33</version>
-            <optional>true</optional>
-        </dependency>
-
-        <!-- For the "org.apache.shale.test.cargo" package, we need to have  -->
-        <!-- JUnit as a compile time dependency, not just scope="test".      -->
-        <dependency>
-            <groupId>junit</groupId>
-            <artifactId>junit</artifactId>
-            <scope>compile</scope>
-        </dependency>
-    </dependencies>
-
-    <build>
-        <plugins>
-            <plugin>
-                <artifactId>maven-source-plugin</artifactId>
-                <executions>
-                    <execution>
-                        <id>attach-source</id>
-                        <goals>
-                            <goal>jar</goal>
-                        </goals>
-                    </execution>
-                </executions>
-            </plugin>
-        </plugins>
-    </build>
-
-    <profiles>
-        <profile>
-            <id>generate-assembly</id>
-            <activation>
-                <property>
-                    <name>performRelease</name>
-                    <value>true</value>
-                </property>
-            </activation>
-            <build>
-                <plugins>
-                    <plugin>
-                        <artifactId>maven-javadoc-plugin</artifactId>
-                        <executions>
-                            <execution>
-                                <id>attach-javadoc</id>
-                                <goals>
-                                    <goal>jar</goal>
-                                </goals>
-                            </execution>
-                        </executions>
-                    </plugin>
-                </plugins>
-            </build>
-        </profile>
-    </profiles>
-
-</project>
+<!--
+/*
+ * 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.
+ *
+ * $Id: pom.xml 1326869 2012-04-17 01:30:30Z lu4242 $
+ */
+-->
+<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>org.apache.myfaces.core</groupId>
+        <artifactId>myfaces-core-project</artifactId>
+        <version>2.3-next-M5</version>
+        <relativePath>../parent/pom.xml</relativePath>
+    </parent>
+
+    <groupId>org.apache.myfaces.core</groupId>
+    <artifactId>myfaces-test</artifactId>
+    <packaging>jar</packaging>
+    <name>Apache MyFaces Core 2.3-next - Test</name>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.apache.myfaces.core</groupId>
+            <artifactId>myfaces-api</artifactId>
+            <version>${project.version}</version>
+            <scope>provided</scope>
+        </dependency>
+
+        <dependency>
+            <groupId>javax.portlet</groupId>
+            <artifactId>portlet-api</artifactId>
+            <version>1.0</version>
+            <scope>provided</scope>
+        </dependency>
+
+        <!-- Java EE APIs -->
+        <dependency>
+            <groupId>org.apache.tomcat</groupId>
+            <artifactId>tomcat-servlet-api</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.tomcat</groupId>
+            <artifactId>tomcat-el-api</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.geronimo.specs</groupId>
+            <artifactId>geronimo-jsp_2.2_spec</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>net.sourceforge.htmlunit</groupId>
+            <artifactId>htmlunit</artifactId>
+            <version>2.33</version>
+            <optional>true</optional>
+        </dependency>
+
+        <!-- For the "org.apache.shale.test.cargo" package, we need to have  -->
+        <!-- JUnit as a compile time dependency, not just scope="test".      -->
+        <dependency>
+            <groupId>junit</groupId>
+            <artifactId>junit</artifactId>
+            <scope>compile</scope>
+        </dependency>
+    </dependencies>
+
+    <build>
+        <plugins>
+            <plugin>
+                <artifactId>maven-source-plugin</artifactId>
+                <executions>
+                    <execution>
+                        <id>attach-source</id>
+                        <goals>
+                            <goal>jar</goal>
+                        </goals>
+                    </execution>
+                </executions>
+            </plugin>
+        </plugins>
+    </build>
+
+    <profiles>
+        <profile>
+            <id>generate-assembly</id>
+            <activation>
+                <property>
+                    <name>performRelease</name>
+                    <value>true</value>
+                </property>
+            </activation>
+            <build>
+                <plugins>
+                    <plugin>
+                        <artifactId>maven-javadoc-plugin</artifactId>
+                        <executions>
+                            <execution>
+                                <id>attach-javadoc</id>
+                                <goals>
+                                    <goal>jar</goal>
+                                </goals>
+                            </execution>
+                        </executions>
+                    </plugin>
+                </plugins>
+            </build>
+        </profile>
+    </profiles>
+
+</project>
