<?xml version="1.0" encoding="UTF-8"?>
<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.components</groupId>
		<artifactId>org.eclipse.papyrus.components.parent</artifactId>
		<version>0.0.27</version>
	</parent>
	
	<groupId>org.eclipse.papyrus.robotics</groupId>
	<artifactId>org.eclipse.papyrus.robotics.parent</artifactId>
	<version>0.8.0-SNAPSHOT</version>
	<packaging>pom</packaging>
	<name>RobMoSys</name>
	<description>A Papyrus component for code generation and deployment</description>
	<url>https://eclipse.org/papyrus/components/robmosys</url>
	<inceptionYear>2018</inceptionYear>

	<modules>
		<module>plugins</module>
		<module>releng</module>
		<module>targetplatform</module>
	</modules>

	<properties>		
		<component.shortname>robmosys</component.shortname>
		<component.hudson.tabname>RobMoSys</component.hudson.tabname>
		<component.fullartifactId>org.eclipse.papyrus.robotics</component.fullartifactId>
			<component.bugzilla.name>RobMoSys</component.bugzilla.name>
			<component.package.rootname>org.eclipse.papyrus.robotics</component.package.rootname>
		<component.rcp.name>org.eclipse.papyrus.robotics.rcp</component.rcp.name>
		<component.apibaseline.url>http://download.eclipse.org/modeling/mdt/papyrus/components/robmosys/</component.apibaseline.url>
		<eclipse.targetrelease>2020-06</eclipse.targetrelease>
		<target.version>0.8.0-SNAPSHOT</target.version>
		<tycho.scmUrl>scm:git:git://git.eclipse.org/gitroot/papyrus/org.eclipse.papyrus-robotics.git</tycho.scmUrl>
	</properties>

	<ciManagement>
		<system>Hudson</system>
		<url>https://hudson.eclipse.org/papyrus/view/${component.hudson.tabname}/</url>
	</ciManagement>
	<issueManagement>
		<url>https://bugs.eclipse.org/bugs/buglist.cgi?product=Papyrus&amp;component=${component.bugzilla.name}</url>
		<system>Bugzilla</system>
	</issueManagement>

	<build>
		<plugins>
			<plugin>
				<groupId>org.eclipse.xtend</groupId>
				<artifactId>xtend-maven-plugin</artifactId>
			</plugin>
			<plugin>
				<groupId>org.eclipse.tycho</groupId>
				<artifactId>tycho-surefire-plugin</artifactId>
				<!-- override configuration in parent pom (without broken equinox.ds dependency) -->
				<configuration combine.self="override">>
					<!-- This will override the failure in the components configuration 
						and enable the build to go through Be careful as a yellow ball is more forgettable 
						than a broken build though ;p -->
					<failIfNoTests>true</failIfNoTests>
					<useUIHarness>true</useUIHarness>
					<useUIThread>true</useUIThread>
					<!--<showEclipseLog>true</showEclipseLog> -->
					<!--<testFailureIgnore>true</testFailureIgnore> -->
					<jvmArgs>
						<args>${ui.test.vmargs}</args>
					</jvmArgs>
					<bundleStartLevel>
						<bundle>
							<id>${component.servicetype}</id>
							<level>6</level>
							<autoStart>true</autoStart>
						</bundle>
						<bundle>
							<id>org.eclipse.equinox.launcher</id>
							<level>4</level>
							<autoStart>true</autoStart>
						</bundle>
					</bundleStartLevel>
				</configuration>
			</plugin>
		</plugins>
	</build>

	<developers>
		<developer>
			<name>Ansgar RADERMACHER</name>
			<organization>CEA Tech LIST</organization>
			<organizationUrl>http://www-list.cea.fr/</organizationUrl>
			<id>ar</id>
		</developer>
		<developer>
			<name>Matteo Morelli</name>
			<organization>CEA Tech LIST</organization>
			<organizationUrl>http://www-list.cea.fr/</organizationUrl>
			<id>mm</id>
		</developer>
	</developers>

	<licenses>
		<license>
			<name>Eclipse Public License</name>
			<url>https://www.eclipse.org/legal/epl-2.0/</url>
			<distribution>repo</distribution>
		</license>
	</licenses>
	
	<distributionManagement>
		<site>
			<id>git.eclipse.org.server</id>
			<url>scm:git:https://git.eclipse.org/gitroot/www.eclipse.org/papyrus/components/${component.shortname}</url>
		</site>
	</distributionManagement>

	<scm>
		<url>https://git.eclipse.org/c/papyrus/org.eclipse.papyrus-${component.shortname}.git</url>
		<connection>scm:git:git://git.eclipse.org/gitroot/papyrus/org.eclipse.papyrus-${component.shortname}.git</connection>
	</scm>

	<repositories>
		<repository>
				<id>pap.repo.eclipse.org</id>
				<name>Papyrus Repository - Releases</name>
				<url>https://repo.eclipse.org/content/repositories/papyrus-releases/</url>
			</repository>
			<repository>
				<id>paps.repo.eclipse.org</id>
				<name>Papyrus Repository - Snapshots</name>
				<url>https://repo.eclipse.org/content/repositories/papyrus-snapshots/</url>
			</repository>
	</repositories>
	
</project>
