<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.gemini.naming</groupId>
		<artifactId>org.eclipse.gemini.naming.parent</artifactId>
		<version>1.1.0-SNAPSHOT</version>
	</parent>

	<artifactId>org.eclipse.gemini.naming.utests</artifactId>
	<packaging>jar</packaging>
	<name>Gemini Naming Unit Tests</name>

	<build>
		<plugins>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-surefire-plugin</artifactId>
				<version>2.11</version>
					<configuration>
						<includes>
							<include>**/*TestCase.class</include>
						</includes>
					</configuration>
			</plugin>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-dependency-plugin</artifactId>
				<executions>
					<execution>
						<id>copy gemini naming classes</id>
						<phase>generate-test-resources</phase>
						<goals>
							<goal>unpack</goal>
						</goals>
						<configuration>
							<artifactItems>
								<artifactItem>
									<groupId>${project.groupId}</groupId>
									<artifactId>org.eclipse.gemini.naming</artifactId>
									<version>${project.version}</version>
										<outputDirectory>${project.build.directory}/test-classes</outputDirectory>
									<overWrite>true</overWrite>
								</artifactItem>
							</artifactItems>
						</configuration>
					</execution>
				</executions>
			</plugin>
		</plugins>
	</build>
</project>
