<?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.portals.pluto</groupId>
		<artifactId>pluto</artifactId>
		<version>3.1.1</version>
		<relativePath>../pom.xml</relativePath>
	</parent>
	<modelVersion>4.0.0</modelVersion>
	<groupId>javax.portlet</groupId>
	<artifactId>portlet-tck</artifactId>
	<version>3.0.3</version>
	<name>Portlet API Technology Compatibility Kit</name>
	<packaging>pom</packaging>
	<licenses>
		<license>
			<name>apache_v2</name>
			<url>http://www.apache.org/licenses/LICENSE-2.0.html</url>
		</license>
	</licenses>
	<scm>
		<connection>scm:git:https://git-wip-us.apache.org/repos/asf/portals-pluto.git</connection>
		<developerConnection>scm:git:https://git-wip-us.apache.org/repos/asf/portals-pluto.git</developerConnection>
		<url>https://github.com/apache/portals-pluto</url>
		<tag>portlet-tck-3.0.3</tag>
	</scm>
	<properties>
		<pluto.test.version>3.1.1</pluto.test.version>
		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
		<!-- To automatically generate a list of test cases, each module transforms the portlet.xml file -->
		<!-- using an XSLT transformation. -->
		<!-- Configuration used by XML transformations -->
		<!-- test.file.xslt Name of stylesheet in ${project.build.directory}/xml-resources/ dirs -->
		<!-- test.file.dir location of generated xml files in individual modules for tests -->
		<!-- test.file.name per-module name of xml file containing list of covered test cases -->
		<test.file.xsl>test.xsl</test.file.xsl>
		<test.file.dir>generated-resources/xml/module</test.file.dir>
		<test.file.name>${project.artifactId}-tests.xml</test.file.name>
		<!-- page.file.xsl Name of stylesheet used to create page definititions -->
		<!-- page.file.name per-module name of xml file containing page definitions for test -->
		<page.file.xsl>plutoSinglePortletPage.xsl</page.file.xsl>
		<page.file.name>${project.artifactId}-pages.xml</page.file.name>
		<page.file.final.xsl>plutoPageCombiner.xsl</page.file.final.xsl>
		<page.file.final.name>pluto-portal-driver-config.xml</page.file.final.name>
		<!-- test.context.base context string used when addressing test pages. Used by module stylesheet -->
		<test.context.base>pluto/portal/</test.context.base>
		<!-- test.list.xsl Name of stylesheet to combine test case lists from subproject -->
		<!-- test.list.dir location of finished xml file containing complete test case list -->
		<!-- test.list.name name of xml file containing complete test case list -->
		<test.list.xsl>testCombiner.xsl</test.list.xsl>
		<test.list.dir>generated-resources/xml/final</test.list.dir>
		<test.list.name>test.xml</test.list.name>
		<test.list.file>${project.build.directory}/classes/${test.list.dir}/${test.list.name}</test.list.file>
		<!-- The name of the file containing the test cases to be ignored -->
		<test.ignore.list.name>ignoredTestCases.xml</test.ignore.list.name>
		<test.ignore.list.file>${project.build.directory}/classes/${test.list.dir}/${test.ignore.list.name}</test.ignore.list.file>
		<test.non.exclusive.file />
		<!-- This variable is used by the test driver to determine how test 
         page links are to be found. Values: generateURLs the driver generates URLs 
         based on config information. followLinks the driver looks for links containing 
         the page name and clicks them in order to access the test pages. In this 
         case, the portal must produce navigation links to each of the test pages. 
         If configured to generate URLs, the driver generates URLs of the form: http://<test.server.host>:<test.server.port>/<test.context.base><test.page.name> 
         where <test.page.name> is the name of the test page generated by the individual 
         modules -->
		<test.url.strategy>followLinks</test.url.strategy>
		<!-- Configuration of portlet container under test for generated URLs -->
		<!-- (only needed if test.url.strategy=generateURLs) -->
		<test.server.host>localhost</test.server.host>
		<test.server.port>8080</test.server.port>
		<!-- Configuration of URL to login page -->
		<test.server.login.url>http://${test.server.host}:${test.server.port}/pluto/portal/About Apache Pluto</test.server.login.url>
		<!-- HTML field IDs and values for username & password to enable automatic  login -->
		<!-- User specified must be in 'tckuser' role. Please configure 'tckuser' role for the specified user in tomcat-users.xml -->
		<test.server.username.id>j_username</test.server.username.id>
		<test.server.username>pluto</test.server.username>
		<test.server.password.id>j_password</test.server.password.id>
		<test.server.password>pluto</test.server.password>
		<!-- Specifies the browser to be used by selenium WebDriver for running the tests. -->
		<!-- Can be used with firefox or HTMLUnit without setting the test.browser.webDriver property. -->
		<!-- Use of Chrome or IE requires the webDriver to be downloaded and available. Set the -->
		<!-- test.browser.webDriver property to point to the appropriate WebDriver server. -->
		<test.browser>firefox</test.browser>
		<test.browser>HTMLUnit</test.browser>
		<!-- Lines commented out below illustrate how the chromedriver web driver can be configured -->
		<test.browser>chrome</test.browser>
		<test.browser.webDriver>c:/ntutil/chromedriver.exe</test.browser.webDriver>
		<!-- commented outline below shows configuration for the Internet Explorer driver -->
		<!-- test.browser.webDriver>C:\ntutil\IEDriverServer_x64_2.42.0\IEDriverServer.exe</test.browser.webDriver -->
		<!-- Configuration for phantomJS driver -->
		<!-- To use phantomJS, remove the comment marks around the following two lines.
      <test.browser>phantomjs</test.browser>
      <test.browser.webDriver>${phantomjs.binary}</test.browser.webDriver>
       -->
		<!-- Specify timeout in seconds for the driver to wait for page load. must be an integer. -->
		<test.timeout>3</test.timeout>
		<!-- Set in subprojects containing additional test case file. default is no additional file (false) -->
		<additional.testcase.uri>false</additional.testcase.uri>
		<!-- Set to true for modules that define all test cases in a file (TCs are not generated from the portlet.xml) -->
		<additional.testcases.only>false</additional.testcases.only>
		<!-- Set to true for modules that define all test pages in a file (page file is not generated from the portlet.xml) -->
		<additional.pagefile.only>false</additional.pagefile.only>
		<portlet.descriptor.dir>src/main/webapp/WEB-INF</portlet.descriptor.dir>
	</properties>
	<modules>
		<module>common</module>
		<module>TestModule1</module>
		<module>TestModule2</module>
		<module>TestModule3</module>
		<module>TestModule3-portlet1</module>
		<module>TestModule3-portlet2</module>
		<module>V2AnnotationTests</module>
		<module>V2EnvironmentTests</module>
		<module>V2ExceptionTests</module>
		<module>V2FilterTests</module>
		<module>V2PortletTests</module>
		<module>V2RequestTests</module>
		<module>V2ResponseTests</module>
		<module>V2URLTests</module>
		<module>V2WrapperTests</module>
		<module>V2AddlEnvironmentTests</module>
		<module>V2AddlFilterTests</module>
		<module>V2AddlPortletTests</module>
		<module>V2AddlRequestTests</module>
		<module>V2AddlResponseTests</module>
		<module>V2PortletTagLibraryTests</module>
		<module>V2PortletTagLibraryTests2</module>
		<module>V2PortletTagLibraryTests3</module>
		<module>V2DispatcherTests</module>
		<module>V2DispatcherTests2</module>
		<module>V2DispatcherTests3S</module>
		<module>V2DispatcherTests4</module>
		<module>V2DispatcherTests5</module>
		<module>V2DispatcherTests6</module>
		<module>V2DispatcherReqRespTests1</module>
		<module>V2DispatcherReqRespTests2</module>
		<module>V2DispatcherReqRespTests3</module>
		<module>V2DispatcherReqRespTests4</module>
		<module>V2DispatcherReqRespTests5S</module>
		<module>V2SigTestsAction</module>
		<module>V2SigTestsEnv</module>
		<module>V2SigTestsEvent</module>
		<module>V2SigTestsException</module>
		<module>V2SigTestsFilter</module>
		<module>V2SigTestsRender</module>
		<module>V2SigTestsResource</module>
		<module>V2SigTestsURL</module>
		<module>V2SigTestsWrapper</module>
		<module>V3PortletContextTests</module>
		<module>V3PortletConfigTests</module>
		<module>V3URLTests</module>
		<module>V3RenderStateTests</module>
		<module>V3HeaderPortletTests</module>
		<module>V3PortletParametersTests</module>
		<module>V3AnnotationPortletArtifactValidityTests</module>
		<module>V3AnnotationPortletApplicationConfigTests</module>
		<module>V3AnnotationPortletAppConfigOverrideTests</module>
		<module>V3AnnotationPortletConfigTests</module>
		<module>V3PortletHubTests</module>
		<module>V3ResourceAsyncTests</module>
		<module>deploy</module>
		<module>driver</module>
	</modules>
	<dependencyManagement>
		<dependencies>
			<!-- the portlet tag library -->
			<dependency>
				<groupId>org.apache.portals.pluto</groupId>
				<artifactId>pluto-taglib</artifactId>
				<version>${pluto.test.version}</version>
				<scope>provided</scope>
			</dependency>
		</dependencies>
	</dependencyManagement>
	<build>
		<finalName>${project.artifactId}</finalName>
		<pluginManagement>
			<plugins>
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-jar-plugin</artifactId>
					<configuration>
						<skipIfEmpty>true</skipIfEmpty>
					</configuration>
				</plugin>
				<!-- For Performing xml translations to create test.xml files -->
				<plugin>
					<groupId>org.codehaus.mojo</groupId>
					<artifactId>xml-maven-plugin</artifactId>
					<version>1.0</version>
					<executions>
						<!-- For generating test case list from portlet.xml and additionalTCs.xml files -->
						<execution>
							<id>generate-testcases</id>
							<phase>generate-resources</phase>
							<goals>
								<goal>transform</goal>
							</goals>
							<configuration>
								<skip>${additional.testcases.only}</skip>
								<transformationSets>
									<!-- automatically generate test case list for module -->
									<transformationSet>
										<dir>${portlet.descriptor.dir}</dir>
										<includes>
											<include>portlet.xml</include>
										</includes>
										<outputDir>${project.build.directory}/${test.file.dir}</outputDir>
										<fileMappers>
											<fileMapper implementation="org.codehaus.plexus.components.io.filemappers.MergeFileMapper">
												<targetName>${test.file.name}</targetName>
											</fileMapper>
										</fileMappers>
										<parameters>
											<parameter>
												<name>additionalTCs</name>
												<value>${additional.testcase.uri}</value>
											</parameter>
											<parameter>
												<name>copyOnly</name>
												<value>${additional.testcases.only}</value>
											</parameter>
										</parameters>
										<stylesheet>${project.build.directory}/xml-resources/${test.file.xsl}</stylesheet>
									</transformationSet>
								</transformationSets>
							</configuration>
						</execution>
						<!-- For generating page file from portlet.xml -->
						<execution>
							<id>generate-pagefile</id>
							<phase>generate-resources</phase>
							<goals>
								<goal>transform</goal>
							</goals>
							<configuration>
								<skip>${additional.pagefile.only}</skip>
								<transformationSets>
									<!-- Automatically generate page file for the module -->
									<transformationSet>
										<dir>${portlet.descriptor.dir}</dir>
										<includes>
											<include>portlet.xml</include>
										</includes>
										<outputDir>${project.build.directory}/${test.file.dir}</outputDir>
										<fileMappers>
											<fileMapper implementation="org.codehaus.plexus.components.io.filemappers.MergeFileMapper">
												<targetName>${page.file.name}</targetName>
											</fileMapper>
										</fileMappers>
										<parameters>
											<parameter>
												<name>portlet-app-context</name>
												<value>${project.artifactId}-${project.version}</value>
											</parameter>
										</parameters>
										<stylesheet>${project.build.directory}/xml-resources/${page.file.xsl}</stylesheet>
									</transformationSet>
								</transformationSets>
							</configuration>
						</execution>
					</executions>
				</plugin>
				<!-- For extracting the XML transformation stylesheets from common module -->
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-dependency-plugin</artifactId>
					<version>2.8</version>
					<executions>
						<execution>
							<id>xml-resource-dependencies</id>
							<phase>generate-sources</phase>
							<goals>
								<goal>unpack-dependencies</goal>
							</goals>
							<configuration>
								<includeArtifactIds>tck-common</includeArtifactIds>
								<includes>xml-resources/**</includes>
								<outputDirectory>${project.build.directory}</outputDirectory>
							</configuration>
						</execution>
					</executions>
				</plugin>
				<!-- For copying the page & testcase files for V3 module build -->
				<plugin>
					<groupId>com.coderplus.maven.plugins</groupId>
					<artifactId>copy-rename-maven-plugin</artifactId>
					<version>1.0.1</version>
					<executions>
						<execution>
							<id>copy-files</id>
							<phase>generate-sources</phase>
							<goals>
								<goal>copy</goal>
							</goals>
							<configuration>
								<fileSets>
									<fileSet>
										<sourceFile>src/main/resources/xml-resources/additionalTCs.xml</sourceFile>
										<destinationFile>target/${test.file.dir}/${project.artifactId}-tests.xml</destinationFile>
									</fileSet>
									<fileSet>
										<sourceFile>src/main/resources/xml-resources/additionalPages.xml</sourceFile>
										<destinationFile>target/${test.file.dir}/${project.artifactId}-pages.xml</destinationFile>
									</fileSet>
								</fileSets>
							</configuration>
						</execution>
					</executions>
				</plugin>
				<!-- Don't attach source or javadoc archive (for release plugin)-->
				<plugin>
					<artifactId>maven-source-plugin</artifactId>
					<configuration>
						<attach>false</attach>
					</configuration>
				</plugin>
				<plugin>
					<artifactId>maven-javadoc-plugin</artifactId>
					<configuration>
						<skip>true</skip>
					</configuration>
				</plugin>
			</plugins>
		</pluginManagement>
		<plugins>
			<!-- skip legal file checking for now -->
			<plugin>
				<groupId>org.codehaus.mojo</groupId>
				<artifactId>ianal-maven-plugin</artifactId>
				<executions>
					<execution>
						<goals>
							<goal>verify-legal-files</goal>
						</goals>
						<configuration>
							<skip>true</skip>
						</configuration>
					</execution>
				</executions>
			</plugin>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-javadoc-plugin</artifactId>
				<configuration>
					<doctitle>
                  JSR 362 Portlet Specification 3.0 TCK Working
                  Document
               </doctitle>
					<windowtitle>
                  JSR 362 Portlet Specification 3.0 TCK
                  Working Document
               </windowtitle>
					<stylesheetfile>${javadoc.css.file}</stylesheetfile>
					<!-- link to Java EE APIs for cross-references -->
					<links>
						<link>http://docs.oracle.com/javaee/7/api/</link>
					</links>
					<docfilessubdirs>true</docfilessubdirs>
					<bottom><![CDATA[Java Portlet Specification V3.0 Working Document.
                  See the <a href="doc-files/NOTICE.txt">Copyright</a> and 
                  <a href="doc-files/LICENSE.txt">License</a> provided with this distribution.
                  Use is subject to
                  <a href="http://www.apache.org/licenses/LICENSE-2.0">license terms</a>.]]></bottom>
				</configuration>
				<executions>
					<execution>
						<id>aggregate</id>
						<goals>
							<goal>aggregate</goal>
						</goals>
						<phase>site</phase>
					</execution>
				</executions>
			</plugin>
			<!-- configure excludes for maven rat plugin -->
			<plugin>
				<groupId>org.apache.rat</groupId>
				<artifactId>apache-rat-plugin</artifactId>
				<configuration>
					<excludes>**/JSR286*.csv</excludes>
				</configuration>
			</plugin>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-deploy-plugin</artifactId>
				<configuration>
					<skip>true</skip>
				</configuration>
			</plugin>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-gpg-plugin</artifactId>
				<configuration>
					<skip>true</skip>
				</configuration>
			</plugin>
		</plugins>
	</build>
	<reporting>
		<plugins>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-surefire-report-plugin</artifactId>
				<version>2.17</version>
				<configuration>
					<aggregate>true</aggregate>
					<reportsDirectories>
						<reportsDirectory>${project.build.directory}/surefire-reports</reportsDirectory>
						<reportsDirectory>${project.build.directory}/jasmine</reportsDirectory>
					</reportsDirectories>
				</configuration>
			</plugin>
		</plugins>
	</reporting>
	<profiles>
		<profile>
			<id>pluto</id>
			<activation>
				<activeByDefault>true</activeByDefault>
			</activation>
			<properties>
				<test.tck.driver>**/javax/portlet/tck/driver/TCKTestDriver.java</test.tck.driver>
			</properties>
			<dependencies>
				<dependency>
					<groupId>org.slf4j</groupId>
					<artifactId>slf4j-api</artifactId>
					<scope>provided</scope>
				</dependency>
				<dependency>
					<groupId>org.slf4j</groupId>
					<artifactId>slf4j-jdk14</artifactId>
					<scope>provided</scope>
				</dependency>
			</dependencies>
			<build>
				<plugins>
					<plugin>
						<groupId>org.apache.maven.plugins</groupId>
						<artifactId>maven-war-plugin</artifactId>
						<configuration>
							<archiveClasses>false</archiveClasses>
							<failOnMissingWebXml>false</failOnMissingWebXml>
							<packagingExcludes>
                        WEB-INF/liferay/portlet.xml,
                        WEB-INF/liferay-portlet.xml,
                        WEB-INF/classes/log4j.properties
                     </packagingExcludes>
							<webResources>
								<webResource>
									<filtering>true</filtering>
									<directory>${project.build.directory}/${test.file.dir}</directory>
									<includes>
										<include>${project.artifactId}-pages.xml</include>
										<include>${project.artifactId}-tests.xml</include>
									</includes>
									<targetPath>${test.file.dir}</targetPath>
								</webResource>
							</webResources>
						</configuration>
					</plugin>
				</plugins>
			</build>
		</profile>
		<profile>
			<id>liferay</id>
			<properties>
				<test.tck.driver>**/javax/portlet/tck/driver/TCKLiferayTestDriver.java</test.tck.driver>
				<test.server.login.url>http://${test.server.host}:${test.server.port}/group/portlet-tck</test.server.login.url>
			</properties>
			<dependencies>
				<dependency>
					<groupId>org.slf4j</groupId>
					<artifactId>slf4j-api</artifactId>
					<scope>provided</scope>
				</dependency>
			</dependencies>
			<build>
				<plugins>
					<plugin>
						<groupId>org.apache.maven.plugins</groupId>
						<artifactId>maven-war-plugin</artifactId>
						<configuration>
							<archiveClasses>false</archiveClasses>
							<failOnMissingWebXml>false</failOnMissingWebXml>
							<packagingExcludes>
                        WEB-INF/pluto/portlet.xml,
                        WEB-INF/classes/logging.properties
                     </packagingExcludes>
							<webResources>
								<webResource>
									<filtering>true</filtering>
									<directory>${project.build.directory}/${test.file.dir}</directory>
									<includes>
										<include>${project.artifactId}-pages.xml</include>
										<include>${project.artifactId}-tests.xml</include>
									</includes>
									<targetPath>${test.file.dir}</targetPath>
								</webResource>
							</webResources>
						</configuration>
					</plugin>
				</plugins>
			</build>
		</profile>
	</profiles>
</project>
