<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/xsd/maven-4.0.0.xsd">
	<modelVersion>4.0.0</modelVersion>
	<parent>
		<groupId>org.eclipse.papyrus.sysml</groupId>
		<artifactId>org.eclipse.papyrus.sysml14.releng</artifactId>
		<version>1.3.1-SNAPSHOT</version>
	</parent>
	<artifactId>org.eclipse.papyrus.sysml14.rcptt.tests</artifactId>
	<packaging>rcpttTest</packaging>

	<name>org.eclipse.papyrus.sysml14.rcptt.tests</name>
	<description>This plugin declare the functional tests based on Eclipse RCPTT for the SysML 1.4 application.</description>

    <dependencies>
	    <dependency>
	    	<groupId>org.eclipse.papyrus.tools</groupId>
			<artifactId>org.eclipse.papyrus.tools.rcptt</artifactId>
    		<type>rcpttTest</type>
	    </dependency>
    </dependencies>

	<licenses>
		<license>
			<name>Eclipse Public License 2.0</name>
			<url>https://www.eclipse.org/legal/epl-2.0/</url>
			<distribution>repo</distribution>
		</license>
	</licenses>

	<build>
		<plugins>
			<plugin>
				<groupId>org.eclipse.rcptt</groupId>
				<artifactId>rcptt-maven-plugin</artifactId>
				<version>2.3.0</version>
				<extensions>true</extensions>
			</plugin>
		</plugins>
	</build>
	<profiles>
		<profile>
			<id>documentation</id>
			<activation>
				<activeByDefault>false</activeByDefault>
			</activation>
			<build>
				<plugins>
					<!--use to copy to site the rcptt reports -->
					<plugin>
						<groupId>org.apache.maven.plugins</groupId>
						<artifactId>maven-resources-plugin</artifactId>
						<executions>
							<execution>
								<id>copy-resources</id>
								<phase>site</phase>
								<goals>
									<goal>copy-resources</goal>
								</goals>
								<configuration>
									<outputDirectory>${basedir}/target/site/results</outputDirectory>
									<resources>
										<resource>
											<directory>target/results</directory>
											<filtering>false</filtering>
										</resource>
									</resources>
								</configuration>
							</execution>
						</executions>
					</plugin>
				</plugins>
			</build>
		</profile>
	</profiles>
</project>
