<?xml version="1.0" encoding="UTF-8"?>
<!--#======================================================================= -->
<!--# Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) -->
<!--# All rights reserved. This program and the accompanying materials -->
<!--# are made available under the terms of the Eclipse Public License 2.0  -->
<!--# which accompanies this distribution, and is available at -->
<!--# https://www.eclipse.org/legal/epl-2.0/    -->
<!--#                                           -->
<!--# SPDX-License-Identifier: EPL-2.0          -->
<!--# -->
<!--# Contributors: -->
<!--#     Christophe Loetz (Loetz GmbH&Co.KG) - 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>
		<groupId>org.eclipse.osbp.releng.maven</groupId>
		<artifactId>org.eclipse.osbp.releng.maven.parent.tycho</artifactId>
		<version>0.9.0-SNAPSHOT</version>
		<relativePath/>
	</parent>

	<groupId>org.eclipse.osbp.runtime.web</groupId>
	<artifactId>org.eclipse.osbp.runtime.web.aggregator</artifactId>
	<version>0.9.0-SNAPSHOT</version>
	<packaging>pom</packaging>

	<properties>
        <osbp.gitrepo.name>${project.groupId}</osbp.gitrepo.name>
	</properties>

	<pluginRepositories>
		<pluginRepository>
			<id>vaadin-snapshots</id>
			<url>http://oss.sonatype.org/content/repositories/vaadin-snapshots/</url>
			<releases>
				<enabled>false</enabled>
			</releases>
			<snapshots>
				<enabled>true</enabled>
			</snapshots>
		</pluginRepository>
	</pluginRepositories>

	<modules>
				<module>org.eclipse.osbp.runtime.web.common</module>
				<module>org.eclipse.osbp.runtime.web.ecview.presentation.vaadin</module>
				<module>org.eclipse.osbp.runtime.web.ecview.services.vaadin</module>
				<module>org.eclipse.osbp.runtime.web.atmosphere.fragment</module>
				
				<module>org.eclipse.osbp.runtime.web.feature.ecview.presentation.vaadin</module>
				<module>org.eclipse.osbp.runtime.web.feature.vaadin.addon.osgi</module>
				<module>org.eclipse.osbp.runtime.web.feature.vaadin.common</module>
				<module>org.eclipse.osbp.runtime.web.feature.vaadin.components</module>
				<module>org.eclipse.osbp.runtime.web.feature.vaadin.databinding</module>
				<module>org.eclipse.osbp.runtime.web.feature.vaadin.osgi</module>

				<module>org.eclipse.osbp.runtime.web.vaadin.common</module>
				<module>org.eclipse.osbp.runtime.web.vaadin.components</module>
				<module>org.eclipse.osbp.runtime.web.vaadin.components.widget</module>
				<module>org.eclipse.osbp.runtime.web.vaadin.databinding</module>
				<module>org.eclipse.osbp.runtime.web.vaadin.osgi</module>
				<module>org.eclipse.osbp.runtime.web.vaadin.widgetset</module>

<!-- 				<module>org.eclipse.osbp.runtime.web.common.tests</module> -->
<!-- 				<module>org.eclipse.osbp.runtime.web.ecview.presentation.vaadin.tests</module> -->
<!-- 				<module>org.eclipse.osbp.runtime.web.vaadin.common.tests</module> -->
<!-- 				<module>org.eclipse.osbp.runtime.web.vaadin.databinding.tests</module> -->
<!-- 				<module>org.eclipse.osbp.runtime.web.vaadin.osgi.tests</module> -->
			</modules>

	<profiles>
		<profile>
			<id>build.widgetset</id>
			<activation>
				<activeByDefault>false</activeByDefault>
			</activation>
			<build>
				<defaultGoal>clean verify</defaultGoal>
			</build>
			<modules>
				<module>org.eclipse.osbp.runtime.web.parent</module>
				<module>org.eclipse.osbp.runtime.web.vaadin.widgetset</module>
			</modules>
		</profile>
	</profiles>

	<build>
		<pluginManagement>
			<plugins>
				<plugin>
					<groupId>org.eclipse.tycho</groupId>
					<artifactId>target-platform-configuration</artifactId>
					<version>${tycho-version}</version>
					<configuration>
						<resolver>p2</resolver>
						<pomDependencies>consider</pomDependencies>
						<environments>
							<environment>
								<os>win32</os>
								<ws>win32</ws>
								<arch>x86_64</arch>
							</environment>
							<environment>
								<os>linux</os>
								<ws>gtk</ws>
								<arch>x86</arch>
							</environment>
							<environment>
								<os>linux</os>
								<ws>gtk</ws>
								<arch>x86_64</arch>
							</environment>
							<environment>
								<os>macosx</os>
								<ws>cocoa</ws>
								<arch>x86_64</arch>
							</environment>
						</environments>
					</configuration>
				</plugin>
			</plugins>
		</pluginManagement>
		<plugins>
			<plugin>
				<artifactId>maven-clean-plugin</artifactId>
				<configuration>
					<filesets>
						<fileset>
							<directory>xtend-gen</directory>
							<includes>
								<include>**</include>
							</includes>
						</fileset>
					</filesets>
				</configuration>
			</plugin>
			<plugin>
				<groupId>org.eclipse.xtend</groupId>
				<artifactId>xtend-maven-plugin</artifactId>
				<executions>
					<execution>
						<goals>
							<goal>compile</goal>
							<goal>testCompile</goal>
						</goals>
						<configuration>
							<outputDirectory>xtend-gen</outputDirectory>
						</configuration>
					</execution>
				</executions>
			</plugin>
		</plugins>
	</build>
</project>
