<?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 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.widgetset</groupId>
		<artifactId>org.eclipse.osbp.vaadin.widgetset.aggregator</artifactId>
		<version>0.9.0-SNAPSHOT</version>
		<relativePath>..</relativePath>
	</parent>
	<artifactId>org.eclipse.osbp.themes</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>
		<dependency>
			<groupId>com.vaadin</groupId>
			<artifactId>vaadin-client-compiler</artifactId>
			<scope>provided</scope>
			<version>${vaadin-version}</version>
		</dependency>
		<dependency>
            <groupId>commons-io</groupId>
            <artifactId>commons-io</artifactId>
            <version>2.4</version>
        </dependency> 
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>servlet-api</artifactId>
            <version>2.5</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
        	<groupId>org.eclipse.osbp.vaadin.addons</groupId>
        	<artifactId>org.eclipse.osbp.vaadin.addons.absolutelayout</artifactId>
        	<version>0.9.0-SNAPSHOT</version>
        	<type>eclipse-plugin</type>
        </dependency>
        <dependency>
        	<groupId>org.eclipse.osbp.vaaclipse</groupId>
        	<artifactId>org.eclipse.osbp.vaaclipse.widgets</artifactId>
        	<version>0.9.0-SNAPSHOT</version>
        	<type>eclipse-plugin</type>
        </dependency>
        <dependency>
        	<groupId>org.eclipse.osbp.dependencies</groupId>
        	<artifactId>org.eclipse.osbp.dependencies.bundle.vaadin.addon.easyuploads</artifactId>
        	<version>7.4.2-SNAPSHOT</version>
        	<type>eclipse-plugin</type>
        </dependency>
    </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>false</strict>
                    <logLevel>WARN</logLevel>
                    <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><!--$NO-MVN-MAN-VER$-->
                <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>
