<?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">
	<modelVersion>4.0.0</modelVersion>

	<parent>
		<groupId>javax.portlet</groupId>
		<artifactId>portlet-tck</artifactId>
		<version>3.0-SNAPSHOT</version>
	</parent>

	<artifactId>tck-deploy</artifactId>
	<packaging>jar</packaging>

	<description>
  Each test module produces a war file containing test portlets. This project
  aggregates all test portlet war files into a single directory under 
  target/deploy-files.
  </description>


	<dependencies>

		<!-- List the modules containing test cases in order to aggregate the output -->
		<dependency>
			<groupId>${project.groupId}</groupId>
			<artifactId>tck-TestModule1</artifactId>
			<version>${project.version}</version>
			<type>war</type>
		</dependency>
		<dependency>
			<groupId>${project.groupId}</groupId>
			<artifactId>tck-TestModule2</artifactId>
			<version>${project.version}</version>
			<type>war</type>
		</dependency>
      <dependency>
         <groupId>${project.groupId}</groupId>
         <artifactId>tck-TestModule3-Portlet1</artifactId>
         <version>${project.version}</version>
         <type>war</type>
      </dependency>
      <dependency>
         <groupId>${project.groupId}</groupId>
         <artifactId>tck-TestModule3-Portlet2</artifactId>
         <version>${project.version}</version>
         <type>war</type>
      </dependency>
      <dependency>
         <groupId>${project.groupId}</groupId>
         <artifactId>tck-V2AnnotationTests</artifactId>
         <version>${project.version}</version>
         <type>war</type>
      </dependency>
      <dependency>
         <groupId>${project.groupId}</groupId>
         <artifactId>tck-V2EnvironmentTests</artifactId>
         <version>${project.version}</version>
         <type>war</type>
      </dependency>
      <dependency>
         <groupId>${project.groupId}</groupId>
         <artifactId>tck-V2ExceptionTests</artifactId>
         <version>${project.version}</version>
         <type>war</type>
      </dependency>
      <dependency>
         <groupId>${project.groupId}</groupId>
         <artifactId>tck-V2FilterTests</artifactId>
         <version>${project.version}</version>
         <type>war</type>
      </dependency>
      <dependency>
         <groupId>${project.groupId}</groupId>
         <artifactId>tck-V2PortletTests</artifactId>
         <version>${project.version}</version>
         <type>war</type>
      </dependency>
      <dependency>
         <groupId>${project.groupId}</groupId>
         <artifactId>tck-V2RequestTests</artifactId>
         <version>${project.version}</version>
         <type>war</type>
      </dependency>
      <dependency>
         <groupId>${project.groupId}</groupId>
         <artifactId>tck-V2ResponseTests</artifactId>
         <version>${project.version}</version>
         <type>war</type>
      </dependency>
      <dependency>
         <groupId>${project.groupId}</groupId>
         <artifactId>tck-V2URLTests</artifactId>
         <version>${project.version}</version>
         <type>war</type>
      </dependency>
      <dependency>
         <groupId>${project.groupId}</groupId>
         <artifactId>tck-V2WrapperTests</artifactId>
         <version>${project.version}</version>
         <type>war</type>
      </dependency>
      <dependency>
         <groupId>${project.groupId}</groupId>
         <artifactId>tck-V2AddlEnvironmentTests</artifactId>
         <version>${project.version}</version>
         <type>war</type>
      </dependency>
      <dependency>
         <groupId>${project.groupId}</groupId>
         <artifactId>tck-V2AddlFilterTests</artifactId>
         <version>${project.version}</version>
         <type>war</type>
      </dependency>
      <dependency>
         <groupId>${project.groupId}</groupId>
         <artifactId>tck-V2AddlPortletTests</artifactId>
         <version>${project.version}</version>
         <type>war</type>
      </dependency>
      <dependency>
         <groupId>${project.groupId}</groupId>
         <artifactId>tck-V2AddlRequestTests</artifactId>
         <version>${project.version}</version>
         <type>war</type>
      </dependency>
      <dependency>
         <groupId>${project.groupId}</groupId>
         <artifactId>tck-V2AddlResponseTests</artifactId>
         <version>${project.version}</version>
         <type>war</type>
      </dependency>
      <dependency>
         <groupId>${project.groupId}</groupId>
         <artifactId>tck-V2PortletTagLibraryTests</artifactId>
         <version>${project.version}</version>
         <type>war</type>
      </dependency>
      <dependency>
         <groupId>${project.groupId}</groupId>
         <artifactId>tck-V2PortletTagLibraryTests2</artifactId>
         <version>${project.version}</version>
         <type>war</type>
      </dependency>
      <dependency>
         <groupId>${project.groupId}</groupId>
         <artifactId>tck-V2PortletTagLibraryTests3</artifactId>
         <version>${project.version}</version>
         <type>war</type>
      </dependency>
      <dependency>
         <groupId>${project.groupId}</groupId>
         <artifactId>tck-V2DispatcherTests</artifactId>
         <version>${project.version}</version>
         <type>war</type>
      </dependency>
      <dependency>
         <groupId>${project.groupId}</groupId>
         <artifactId>tck-V2DispatcherTests2</artifactId>
         <version>${project.version}</version>
         <type>war</type>
      </dependency>
      <dependency>
         <groupId>${project.groupId}</groupId>
         <artifactId>tck-V2DispatcherTests3S</artifactId>
         <version>${project.version}</version>
         <type>war</type>
      </dependency>
      <dependency>
         <groupId>${project.groupId}</groupId>
         <artifactId>tck-V2DispatcherTests4</artifactId>
         <version>${project.version}</version>
         <type>war</type>
      </dependency>
      <dependency>
         <groupId>${project.groupId}</groupId>
         <artifactId>tck-V2DispatcherTests5</artifactId>
         <version>${project.version}</version>
         <type>war</type>
      </dependency>
      <dependency>
         <groupId>${project.groupId}</groupId>
         <artifactId>tck-V2DispatcherTests6</artifactId>
         <version>${project.version}</version>
         <type>war</type>
      </dependency>
      <dependency>
         <groupId>${project.groupId}</groupId>
         <artifactId>tck-V2DispatcherReqRespTests1</artifactId>
         <version>${project.version}</version>
         <type>war</type>
      </dependency>
      <dependency>
         <groupId>${project.groupId}</groupId>
         <artifactId>tck-V2DispatcherReqRespTests2</artifactId>
         <version>${project.version}</version>
         <type>war</type>
      </dependency>
      <dependency>
         <groupId>${project.groupId}</groupId>
         <artifactId>tck-V2DispatcherReqRespTests3</artifactId>
         <version>${project.version}</version>
         <type>war</type>
      </dependency>
      <dependency>
         <groupId>${project.groupId}</groupId>
         <artifactId>tck-V2DispatcherReqRespTests4</artifactId>
         <version>${project.version}</version>
         <type>war</type>
      </dependency>
      <dependency>
         <groupId>${project.groupId}</groupId>
         <artifactId>tck-V2DispatcherReqRespTests5S</artifactId>
         <version>${project.version}</version>
         <type>war</type>
      </dependency>
      <dependency>
         <groupId>${project.groupId}</groupId>
         <artifactId>tck-V2SigTestsAction</artifactId>
         <version>${project.version}</version>
         <type>war</type>
      </dependency>
      <dependency>
         <groupId>${project.groupId}</groupId>
         <artifactId>tck-V2SigTestsEnv</artifactId>
         <version>${project.version}</version>
         <type>war</type>
      </dependency>
      <dependency>
         <groupId>${project.groupId}</groupId>
         <artifactId>tck-V2SigTestsEvent</artifactId>
         <version>${project.version}</version>
         <type>war</type>
      </dependency>
      <dependency>
         <groupId>${project.groupId}</groupId>
         <artifactId>tck-V2SigTestsException</artifactId>
         <version>${project.version}</version>
         <type>war</type>
      </dependency>
      <dependency>
         <groupId>${project.groupId}</groupId>
         <artifactId>tck-V2SigTestsFilter</artifactId>
         <version>${project.version}</version>
         <type>war</type>
      </dependency>
      <dependency>
         <groupId>${project.groupId}</groupId>
         <artifactId>tck-V2SigTestsRender</artifactId>
         <version>${project.version}</version>
         <type>war</type>
      </dependency>
      <dependency>
         <groupId>${project.groupId}</groupId>
         <artifactId>tck-V2SigTestsResource</artifactId>
         <version>${project.version}</version>
         <type>war</type>
      </dependency>
      <dependency>
         <groupId>${project.groupId}</groupId>
         <artifactId>tck-V2SigTestsURL</artifactId>
         <version>${project.version}</version>
         <type>war</type>
      </dependency>
      <dependency>
         <groupId>${project.groupId}</groupId>
         <artifactId>tck-V2SigTestsWrapper</artifactId>
         <version>${project.version}</version>
         <type>war</type>
      </dependency>

      <dependency>
         <groupId>${project.groupId}</groupId>
         <artifactId>tck-V3PortletContextTests</artifactId>
         <version>${project.version}</version>
         <type>war</type>
      </dependency>
	  <dependency>
         <groupId>${project.groupId}</groupId>
         <artifactId>tck-V3URLTests</artifactId>
         <version>${project.version}</version>
         <type>war</type>
      </dependency>
	  <dependency>
         <groupId>${project.groupId}</groupId>
         <artifactId>tck-V3RenderStateTests</artifactId>
         <version>${project.version}</version>
         <type>war</type>
      </dependency>
        <dependency>
            <groupId>${project.groupId}</groupId>
            <artifactId>tck-V3PortletConfigTests</artifactId>
            <version>${project.version}</version>
            <type>war</type>
        </dependency>
      <dependency>
         <groupId>${project.groupId}</groupId>
         <artifactId>tck-V3HeaderPortletTests</artifactId>
         <version>${project.version}</version>
         <type>war</type>
      </dependency>

      <dependency>
         <groupId>${project.groupId}</groupId>
         <artifactId>tck-driver</artifactId>
         <version>${project.version}</version>
         <type>jar</type>
      </dependency>
	</dependencies>

	<build>
		<finalName>${project.artifactId}</finalName>

      <resources>
         <resource>
            <directory>target/generated-resources/xml/final</directory>
            <targetPath>../deploy-files</targetPath>
            <includes>
               <include>*.xml</include>
            </includes>
         </resource>
      </resources>

		<plugins>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-dependency-plugin</artifactId>
				<executions>
					<execution>
						<id>copy-wars</id>
						<phase>package</phase>
						<goals>
							<goal>copy-dependencies</goal>
						</goals>
						<configuration>
						   <excludeArtifactIds>tck-driver</excludeArtifactIds>
							<outputDirectory>${project.build.directory}/deploy-files</outputDirectory>
							<excludeTransitive>true</excludeTransitive>
						</configuration>
					</execution>

					<!-- For extracting the page file from the driver -->
					<execution>
						<id>extract-xml-resource</id>
						<phase>generate-sources</phase>
						<goals>
							<goal>unpack-dependencies</goal>
						</goals>
						<configuration>
							<includeArtifactIds>tck-driver</includeArtifactIds>
							<includes>generated-resources/xml/final/${page.file.final.name}</includes>
							<outputDirectory>${project.build.directory}</outputDirectory>
						</configuration>
					</execution>
				</executions>
			</plugin>
		</plugins>
	</build>

</project>