<?xml version="1.0" encoding="UTF-8"?>
<!--
 <copyright>
Copyright (c) 2012 itemis AG.
All rights reserved. This program and the accompanying materials
are made available under the terms of the Eclipse Public License v1.0
which accompanies this distribution, and is available at
http://www.eclipse.org/legal/epl-v10.html

Contributors:
    Mark Broerkens - initial API and implementation
 </copyright>

-->
<project
	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
	xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
	<modelVersion>4.0.0</modelVersion>
	<parent>
		<groupId>org.eclipse.sphinx.releng</groupId>
		<artifactId>org.eclipse.sphinx.releng.parent</artifactId>
		<version>0.12.0-SNAPSHOT</version>
		<relativePath>../../releng/org.eclipse.sphinx.releng.builds/parent/pom.xml</relativePath>
	</parent>
	<groupId>org.eclipse.sphinx.tests</groupId>
	<artifactId>org.eclipse.sphinx.tests.emf.serialization.generators</artifactId>
	<version>0.12.0-SNAPSHOT</version>
	<properties>
    	<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  	</properties>
	<packaging>eclipse-test-plugin</packaging>
	<build>
		<sourceDirectory>src</sourceDirectory>
		<testOutputDirectory>work</testOutputDirectory>
		<plugins>
			<plugin>
				<groupId>org.eclipse.tycho</groupId>
				<artifactId>tycho-surefire-plugin</artifactId>
				<configuration>
					<includes>
						<include>**/*Tests.class</include>
					</includes>
				</configuration>
			</plugin>
		</plugins>
	</build>
</project>