<?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 v1.0 -->
<!--# which accompanies this distribution, and is available at -->
<!--# http://www.eclipse.org/legal/epl-v10.html -->
<!--# -->
<!--# Contributors: -->
<!--# Christophe Loetz  (Loetz GmbH&Co.KG) - Initial implementation 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.xtext.messagedsl</groupId>
    <artifactId>org.eclipse.osbp.xtext.messagedsl.aggregator</artifactId>
    <version>0.9.0-SNAPSHOT</version>
    <packaging>pom</packaging>

    <url>${osbp.site.repository.url}</url>
    <scm>
        <url>${osbp.scm.url}</url>
        <connection>${osbp.scm.connection}</connection>
        <developerConnection>${osbp.scm.connection.dev}</developerConnection>
        <tag>HEAD</tag>
    </scm>
    <distributionManagement>
        <site>
            <id>gh-pages</id>
            <name>OSBP GitHub Pages</name>
            <url>${distribution.site.url}</url>
        </site>
    </distributionManagement>

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

    <modules>
        <module>org.eclipse.osbp.xtext.messagedsl</module>
        <module>org.eclipse.osbp.xtext.messagedsl.tests</module>
        <module>org.eclipse.osbp.xtext.messagedsl.ide</module>
        <module>org.eclipse.osbp.xtext.messagedsl.ui</module>
        <module>org.eclipse.osbp.xtext.messagedsl.feature</module>
    </modules>

    <build>
        <pluginManagement>
            <plugins>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-javadoc-plugin</artifactId>
                    <configuration>
                        <skip>true</skip>
                    </configuration>
                </plugin>
                <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>
    </build>
    <dependencies>
		<dependency>
			<groupId>org.eclipse.osbp.dependencies</groupId>
			<artifactId>
				org.eclipse.osbp.dependencies.bundle.activemq.all.osgi
			</artifactId>
			<version>5.14.5-SNAPSHOT</version>
		</dependency>
    </dependencies>
</project>
