<?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.vaadin.emf</groupId>
		<artifactId>org.eclipse.osbp.vaadin.emf.aggregator</artifactId>
		<version>0.9.0-SNAPSHOT</version>
		<relativePath>..</relativePath>
	</parent>
	<artifactId>org.eclipse.osbp.vaadin.emf</artifactId>
	<packaging>eclipse-plugin</packaging>

	<properties>
		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
		<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
		<vaadin-version>${vaadin.version}</vaadin-version>
		<vaadin.plugin.version>${vaadin.version}</vaadin.plugin.version>
		<jdkVersion>1.8</jdkVersion>
	</properties>
	<pluginRepositories>
		<pluginRepository>
			<id>rubygems-releases</id>
			<url>http://rubygems-proxy.torquebox.org/releases</url>
		</pluginRepository>
	</pluginRepositories>

	<dependencies>
    </dependencies>

    <build>
        <sourceDirectory>src</sourceDirectory>
        <resources>
            <resource>
                <directory>src</directory>
                <!-- <excludes> -->
                <!-- <exclude>**/*.java</exclude> -->
                <!-- </excludes> -->
            </resource>
        </resources>
        <plugins>
            <plugin>
                <groupId>nl.geodienstencentrum.maven</groupId>
                <artifactId>sass-maven-plugin</artifactId>
                <executions>
                    <execution>
                        <phase>process-sources</phase>
                        <!-- <goals> -->
                        <!-- <goal>update-stylesheets</goal> -->
                        <!-- </goals> -->
                    </execution>
                </executions>
                <configuration>
                    <resources>
                        <resource>
                            <source>
                                <directory>${basedir}/scss</directory>
                                <includes>
                                    <include>styles.scss</include>
                                </includes>
                                <excludes>
                                    <!-- <exclude>_addons.scss</exclude> -->
                                    <!-- <exclude>_variables.scss</exclude> -->
                                    <!-- <exclude>osbee.scss</exclude> -->
                                    <!-- <exclude>style_notes.scss</exclude> -->
                                    <!-- <exclude>scss/removed_files/*</exclude> -->
                                    <!-- <exclude>**/osbp_legacy/*</exclude> -->
                                    <!-- <exclude>**/osbp_legacy/icons/*</exclude> -->
                                    <!-- <exclude>**/fontello.scss</exclude> -->
                                </excludes>
                            </source>
                            <relativeOutputDirectory/>
                            <destination>${basedir}/VAADIN/themes/osbee2</destination>
                        </resource>
                    </resources>
                    <sassOptions>
                        <always_update>true</always_update>
                        <style>:compressed</style>
                        <debug_info>true</debug_info>
                    </sassOptions>
                    <!-- <rubyVersion>2.0</rubyVersion> -->
                    <!-- <useCompass>true</useCompass> -->
                </configuration>
            </plugin>
        
            <!-- <plugin> -->
            <!-- <groupId>org.jasig.maven</groupId> -->
            <!-- <artifactId>sass-maven-plugin</artifactId> -->
            <!-- <version>1.1.1</version> -->
            <!-- <executions> -->
            <!-- <execution> -->
            <!-- <id>package</id> -->
            <!-- <phase>generate-sources</phase> -->
            <!-- <goals> -->
            <!-- <goal>update-stylesheets</goal> -->
            <!-- </goals> -->
            <!-- </execution> -->
            <!-- </executions> -->
            <!-- <configuration> -->
            <!-- <resources> -->
            <!-- <resource> -->
            <!-- <source> -->
            <!-- <directory>${basedir}/scss</directory> -->
            <!-- </source> -->
            <!-- <destination>${basedir}/VAADIN/themes/orgOsbeeDefaultTheme</destination> -->
            <!-- </resource> -->
            <!-- </resources> -->
            <!-- <useCompass>true</useCompass> -->
            <!-- </configuration> -->
            <!-- </plugin> -->
            <plugin>
                <groupId>com.vaadin</groupId>
                <artifactId>vaadin-maven-plugin</artifactId>
                <version>${vaadin.plugin.version}</version>
                <configuration>
                    <extraJvmArgs>-Xmx1024M -Xss1024k</extraJvmArgs>
                    <!-- <runTarget>mobilemail</runTarget> -->
                    <!-- We are doing "inplace" but into subdir VAADIN/widgetsets. This 
						way compatible with Vaadin eclipse plugin. -->
                    <webappDirectory>${basedir}/VAADIN/widgetsets
                    </webappDirectory>
                    <hostedWebapp>${basedir}/VAADIN/widgetsets
                    </hostedWebapp>
                    <noServer>true</noServer>
                    <gwtSdkFirstInClasspath>true</gwtSdkFirstInClasspath>
                    <!-- Remove draftCompile when project is ready -->
                    <draftCompile>true</draftCompile>
                    <strict>true</strict>
                    <compileReport>false</compileReport>
                    <style>PRETTY</style>
                    <runTarget>http://localhost:8080/</runTarget>
                    <!-- Remove these when going to release dependencies -->
                    <force>true</force>
                </configuration>
                <executions>
                    <execution>
                        <goals>
                            <goal>resources</goal>
                            <goal>compile</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
            <!-- As we are doing "inplace" GWT compilation, ensure the widgetset -->
            <!-- directory is cleaned properly -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-clean-plugin</artifactId>
                <version>3.0.0</version>
                <configuration>
                    <filesets>
                        <fileset>
                            <directory>VAADIN/gwt-unitCache</directory>
                        </fileset>
                        <fileset>
                            <directory>VAADIN/widgetsets</directory>
                        </fileset>
                    </filesets>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-failsafe-plugin</artifactId>
                <version>2.19</version>
                <executions>
                    <execution>
                        <goals>
                            <goal>integration-test</goal>
                            <goal>verify</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        
        
        </plugins>
        <pluginManagement>
            <plugins>
                <!--This plugin's configuration is used to store Eclipse m2e settings 
					only. It has no influence on the Maven build itself. -->
                <plugin>
                    <groupId>org.eclipse.m2e</groupId>
                    <artifactId>lifecycle-mapping</artifactId>
                    <version>1.0.0</version>
                    <configuration>
                        <lifecycleMappingMetadata>
                            <pluginExecutions>
                                <pluginExecution>
                                    <pluginExecutionFilter>
                                        <groupId>com.vaadin</groupId>
                                        <artifactId>vaadin-maven-plugin</artifactId>
                                        <versionRange>[2.3.0-1,)</versionRange>
                                        <goals>
                                            <goal>resources</goal>
                                        </goals>
                                    </pluginExecutionFilter>
                                    <action>
                                        <ignore/>
                                    </action>
                                </pluginExecution>
                                <pluginExecution>
                                    <pluginExecutionFilter>
                                        <groupId>com.vaadin</groupId>
                                        <artifactId>vaadin-maven-plugin</artifactId>
                                        <versionRange>[1.0.2,)</versionRange>
                                        <goals>
                                            <goal>update-widgetset</goal>
                                        </goals>
                                    </pluginExecutionFilter>
                                    <action>
                                        <ignore/>
                                    </action>
                                </pluginExecution>
                            </pluginExecutions>
                        </lifecycleMappingMetadata>
                    </configuration>
                </plugin>
                <plugin>
                    <groupId>nl.geodienstencentrum.maven</groupId>
                    <artifactId>sass-maven-plugin</artifactId>
                    <version>2.16</version>
                </plugin>
            </plugins>
        </pluginManagement>
    </build>

</project>
