<?xml version="1.0" encoding="UTF-8"?>
<!--
     Copyright (c) 2017 CEA LIST.
   
     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:
     		CEA LIST - Initial API and implementation
 -->

<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 of this POM -->
	<parent>
		<version>0.7.0-SNAPSHOT</version>
		<groupId>org.eclipse.papyrus.collaborativemodeling</groupId>
		<artifactId>org.eclipse.papyrus.collaborativemodeling.plugins</artifactId>
	</parent>
	
	<!-- Project POM (aggregator) -->
	<groupId>org.eclipse.papyrus.collaborativemodeling</groupId>
	<artifactId>org.eclipse.papyrus.collaborativemodeling.plugins.cdo</artifactId>
	<version>0.7.0-SNAPSHOT</version>
	<packaging>pom</packaging>
	<name>Collaborative Modeling</name>
	<description>Papyrus Collaborative Modeling</description>

	<!-- Children modules to build -->
	<modules>
			
	</modules>
	
	<profiles>
		<!-- Profile dedicated to compile the cdo sources -->
		<profile>
			<id>cdoSources</id>
			<activation>
				<property>
					<name>!skipCdoSources</name>
				</property>
			</activation>
			<modules>
				<module>org.eclipse.papyrus.cdo.core</module>
				<module>org.eclipse.papyrus.cdo.ui</module>
				<module>org.eclipse.papyrus.cdo.ui.customization.properties</module>
				<module>org.eclipse.papyrus.cdo.ui.hyperlink</module>
				<module>org.eclipse.papyrus.cdo.uml.diagram.ui</module>
				<module>org.eclipse.papyrus.cdo.uml.search.ui</module>
				<module>org.eclipse.papyrus.cdo.uml.ui</module>
				<module>org.eclipse.papyrus.cdo.validation.problems</module>
				<module>org.eclipse.papyrus.cdo.validation.problems.edit</module>
				
				<module>org.eclipse.papyrus.extra.cdo.feature</module>
			</modules>
		</profile>
		
		<!-- Profile dedicated to launch the tests -->
		<profile>
			<id>cdoTests</id>
			<activation>
				<activeByDefault>false</activeByDefault>
			</activation>
			<build>
				<plugins>
					<plugin>
						<groupId>org.eclipse.tycho</groupId>
						<artifactId>tycho-surefire-plugin</artifactId>
						<version>${tycho-version}</version>
						<configuration>
							<useUIHarness>true</useUIHarness>
							<useUIThread>true</useUIThread>
							<testFailureIgnore>true</testFailureIgnore>
							<product>org.eclipse.sdk.ide</product>
						</configuration>
					</plugin>
				</plugins>
			</build>			
			<modules>
				<module>org.eclipse.papyrus.cdo.core.tests</module>
				<module>org.eclipse.papyrus.cdo.ui.tests</module>
				<module>org.eclipse.papyrus.cdo.uml.search.ui.tests</module>
				<module>org.eclipse.papyrus.cdo.uml.ui.tests</module>
				<module>org.eclipse.papyrus.cdo.validation.problems.tests</module>
			</modules>
		</profile>
	</profiles>
		
	
</project>	
