<?xml version="1.0" encoding="UTF-8"?>
<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>com.vaadin</groupId>
        <artifactId>vaadin-parent</artifactId>
        <version>1.1.0</version>
    </parent>
    <artifactId>vaadin-root</artifactId>
    <name>vaadin-root</name>
    <packaging>pom</packaging>
    <version>8.1-SNAPSHOT</version>

    <prerequisites>
        <maven>3.1.0</maven>
    </prerequisites>

    <properties>
        <maven.compiler.source>1.8</maven.compiler.source>
        <maven.compiler.target>1.8</maven.compiler.target>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>

        <!-- Used version numbers for dependencies -->
        <liferay.portal-service.version>6.2.5</liferay.portal-service.version>
        <liferay.portal-kernel.version>2.0.0</liferay.portal-kernel.version>

        <vaadin.gwt.version>2.8.1</vaadin.gwt.version>
        <vaadin.plugin.version>8.1-SNAPSHOT</vaadin.plugin.version>

        <!-- Used in OSGi manifests -->
        <javax.validation.version>1.0.0.GA</javax.validation.version>
        <jsoup.version>1.8.3</jsoup.version>
        <javax.portlet.version>2.0</javax.portlet.version>
        <vaadin.sass.version>0.9.13</vaadin.sass.version>
        <!-- Note that this should be kept in sync with the class Constants -->
        <atmosphere.runtime.version>2.4.5.vaadin2</atmosphere.runtime.version>

        <!-- OSGi -->
        <osgi.execution.environment>JavaSE-1.8</osgi.execution.environment>
        <osgi.bundle.version>${parsedVersion.majorVersion}.${parsedVersion.minorVersion}.${parsedVersion.incrementalVersion}</osgi.bundle.version>
        <osgi.version>6.0.0</osgi.version>
        <osgi.annotation.version>6.0.1</osgi.annotation.version>

        <bnd.version>3.3.0</bnd.version>

        <!-- Dependency unpack directory -->
        <dependency.unpack.directory>${project.build.directory}/dependency-unpack</dependency.unpack.directory>

        <!-- Cannot use 9.3 or 9.4 because they sometimes reset the connection
            too early in case of errors -->
        <!-- See e.g. https://issues.apache.org/jira/browse/SOLR-8453 -->
        <jetty.version>9.2.9.v20150224</jetty.version>
        <phantomjs.version>2.1.1</phantomjs.version>

        <!-- Sonar properties -->
        <sonar.java.source>8</sonar.java.source>
        <sonar.analysis.mode>preview</sonar.analysis.mode>
        <sonar.issuesReport.console.enable>true</sonar.issuesReport.console.enable>
        <sonar.issuesReport.html.enable>true</sonar.issuesReport.html.enable>

        <vaadin.icons.version>3.0.1</vaadin.icons.version>
        <vaadin.testbench.version>5.0.0</vaadin.testbench.version>
    </properties>

    <!-- TODO: remove this after maven plugin has been released -->
    <pluginRepositories>
        <pluginRepository>
            <id>vaadin-prereleases</id>
            <url>http://maven.vaadin.com/vaadin-prereleases</url>
        </pluginRepository>
        <pluginRepository>
            <id>vaadin-snapshots</id>
            <url>https://oss.sonatype.org/content/repositories/vaadin-snapshots/</url>
            <releases>
                <enabled>false</enabled>
            </releases>
            <snapshots>
                <enabled>true</enabled>
            </snapshots>
        </pluginRepository>
    </pluginRepositories>

    <organization>
        <name>Vaadin Ltd</name>
    </organization>
    <url>https://vaadin.com/</url>
    <description>Vaadin Framework Root Pom</description>
    <licenses>
        <license>
            <name>Apache License Version 2.0</name>
            <distribution>repo</distribution>
            <url>http://www.apache.org/licenses/LICENSE-2.0</url>
        </license>
    </licenses>
    <scm>
        <connection>scm:git:git://github.com/vaadin/framework.git</connection>
        <developerConnection>scm:git:git://github.com/vaadin/framework.git</developerConnection>
        <url>https://github.com/vaadin/framework</url>
    </scm>


    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>commons-io</groupId>
                <artifactId>commons-io</artifactId>
                <version>2.4</version>
            </dependency>
            <dependency>
                <groupId>commons-cli</groupId>
                <artifactId>commons-cli</artifactId>
                <version>1.2</version>
            </dependency>
            <dependency>
                <groupId>commons-lang</groupId>
                <artifactId>commons-lang</artifactId>
                <version>2.6</version>
            </dependency>
            <dependency>
                <groupId>commons-codec</groupId>
                <artifactId>commons-codec</artifactId>
                <version>1.5</version>
            </dependency>
            <dependency>
                <groupId>org.slf4j</groupId>
                <artifactId>slf4j-log4j12</artifactId>
                <version>1.6.1</version>
            </dependency>
            <dependency>
                <groupId>com.vaadin</groupId>
                <artifactId>vaadin-sass-compiler</artifactId>
                <version>${vaadin.sass.version}</version>
                <exclusions>
                    <!-- No need to have the minifier included for development 
                        mode on-the-fly compilation -->
                    <exclusion>
                        <groupId>com.yahoo.platform.yui</groupId>
                        <artifactId>yuicompressor</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>com.carrotsearch</groupId>
                <artifactId>smartsprites</artifactId>
                <version>0.2.10</version>
            </dependency>
            <dependency>
                <groupId>com.google.gwt</groupId>
                <artifactId>gwt-dev</artifactId>
                <version>${vaadin.gwt.version}</version>
            </dependency>
            <dependency>
                <groupId>com.google.gwt</groupId>
                <artifactId>gwt-elemental</artifactId>
                <version>${vaadin.gwt.version}</version>
            </dependency>
            <dependency>
                <groupId>com.google.gwt</groupId>
                <artifactId>gwt-servlet</artifactId>
                <version>${vaadin.gwt.version}</version>
            </dependency>
            <dependency>
                <groupId>com.vaadin.external.atmosphere</groupId>
                <artifactId>atmosphere-runtime</artifactId>
                <version>${atmosphere.runtime.version}</version>
            </dependency>
            <dependency>
                <groupId>com.vaadin.external.atmosphere.client</groupId>
                <artifactId>javascript</artifactId>
                <type>war</type>
                <version>2.3.2.vaadin1</version>
            </dependency>
            <dependency>
                <groupId>junit</groupId>
                <artifactId>junit</artifactId>
                <version>4.12</version>
                <exclusions>
                    <exclusion>
                        <artifactId>hamcrest-core</artifactId>
                        <groupId>org.hamcrest</groupId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>org.easymock</groupId>
                <artifactId>easymock</artifactId>
                <version>3.0</version>
            </dependency>
            <dependency>
                <groupId>javax.servlet</groupId>
                <artifactId>javax.servlet-api</artifactId>
                <version>3.0.1</version>
            </dependency>
            <dependency>
                <groupId>javax.portlet</groupId>
                <artifactId>portlet-api</artifactId>
                <version>${javax.portlet.version}</version>
            </dependency>
            <dependency>
                <groupId>com.google.appengine</groupId>
                <artifactId>appengine-api-1.0-sdk</artifactId>
                <version>1.7.7</version>
            </dependency>
            <dependency>
                <groupId>javax.validation</groupId>
                <artifactId>validation-api</artifactId>
                <version>${javax.validation.version}</version>
            </dependency>
            <dependency>
                <groupId>org.hibernate</groupId>
                <artifactId>hibernate-validator</artifactId>
                <version>4.2.0.Final</version>
            </dependency>
            <dependency>
                <groupId>org.jsoup</groupId>
                <artifactId>jsoup</artifactId>
                <version>${jsoup.version}</version>
            </dependency>
            <dependency>
                <groupId>org.mockito</groupId>
                <artifactId>mockito-core</artifactId>
                <version>1.9.5</version>
                <exclusions>
                    <exclusion>
                        <artifactId>hamcrest-core</artifactId>
                        <groupId>org.hamcrest</groupId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>org.hamcrest</groupId>
                <artifactId>hamcrest-all</artifactId>
                <version>1.3</version>
            </dependency>
            <dependency>
                <groupId>org.hsqldb</groupId>
                <artifactId>hsqldb</artifactId>
                <version>2.2.6</version>
            </dependency>
            <dependency>
                <groupId>com.vaadin</groupId>
                <artifactId>vaadin-testbench</artifactId>
                <version>${vaadin.testbench.version}</version>
            </dependency>
            <dependency>
                <groupId>org.eclipse.jetty</groupId>
                <artifactId>jetty-server</artifactId>
                <version>${jetty.version}</version>
            </dependency>
            <dependency>
                <groupId>org.eclipse.jetty</groupId>
                <artifactId>jetty-servlets</artifactId>
                <version>${jetty.version}</version>
            </dependency>
            <dependency>
                <groupId>org.eclipse.jetty.websocket</groupId>
                <artifactId>websocket-server</artifactId>
                <version>${jetty.version}</version>
            </dependency>
            <dependency>
                <groupId>org.eclipse.jetty</groupId>
                <artifactId>jetty-webapp</artifactId>
                <version>${jetty.version}</version>
            </dependency>
            <dependency>
                <groupId>org.eclipse.jetty</groupId>
                <artifactId>jetty-util</artifactId>
                <version>${jetty.version}</version>
            </dependency>
            <dependency>
                <groupId>org.eclipse.jetty</groupId>
                <artifactId>jetty-proxy</artifactId>
                <version>${jetty.version}</version>
            </dependency>
            <dependency>
                <groupId>com.jcraft</groupId>
                <artifactId>jsch</artifactId>
                <version>0.1.52</version>
            </dependency>
            <dependency>
                <groupId>org.eclipse.jgit</groupId>
                <artifactId>org.eclipse.jgit</artifactId>
                <version>3.5.1.201410131835-r</version>
            </dependency>
            <dependency>
                <groupId>com.github.siom79.japicmp</groupId>
                <artifactId>japicmp-maven-plugin</artifactId>
                <version>0.9.1</version>
            </dependency>
            <dependency>
                <groupId>com.vaadin</groupId>
                <artifactId>vaadin-icons</artifactId>
                <version>${vaadin.icons.version}</version>
                <scope>provided</scope>
            </dependency>

            <dependency>
                <groupId>org.osgi</groupId>
                <artifactId>osgi.core</artifactId>
                <version>${osgi.version}</version>
                <scope>provided</scope>
            </dependency>
            <dependency>
                <groupId>org.osgi</groupId>
                <artifactId>osgi.annotation</artifactId>
                <version>${osgi.annotation.version}</version>
                <scope>provided</scope>
            </dependency>
            <dependency>
                <groupId>org.osgi</groupId>
                <artifactId>osgi.cmpn</artifactId>
                <version>${osgi.version}</version>
                <scope>provided</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

    <!-- Common test dependencies -->
    <dependencies>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.mockito</groupId>
            <artifactId>mockito-core</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.hamcrest</groupId>
            <artifactId>hamcrest-all</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.easymock</groupId>
            <artifactId>easymock</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-validator</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>

    <build>
        <pluginManagement>
            <plugins>
                <plugin>
                    <artifactId>maven-clean-plugin</artifactId>
                    <version>3.0.0</version>
                </plugin>
                <plugin>
                    <artifactId>maven-compiler-plugin</artifactId>
                    <version>3.5.1</version>
                </plugin>
                <plugin>
                    <artifactId>maven-deploy-plugin</artifactId>
                    <version>2.8.2</version>
                </plugin>
                <plugin>
                    <artifactId>maven-install-plugin</artifactId>
                    <version>2.5.2</version>
                </plugin>
                <plugin>
                    <artifactId>maven-resources-plugin</artifactId>
                    <!-- Downgraded due to filtering related bug -->
                    <version>2.6</version>
                </plugin>
                <plugin>
                    <artifactId>maven-site-plugin</artifactId>
                    <version>3.5</version>
                </plugin>
                <plugin>
                    <artifactId>maven-jar-plugin</artifactId>
                    <version>2.6</version>
                </plugin>
                <plugin>
                    <artifactId>maven-assembly-plugin</artifactId>
                    <version>2.6</version>
                </plugin>
                <plugin>
                    <artifactId>maven-surefire-plugin</artifactId>
                    <version>2.19.1</version>
                </plugin>
                <plugin>
                    <artifactId>maven-failsafe-plugin</artifactId>
                    <version>2.19.1</version>
                </plugin>
                <plugin>
                    <groupId>com.github.klieber</groupId>
                    <artifactId>phantomjs-maven-plugin</artifactId>
                    <version>0.7</version>
                </plugin>
                <plugin>
                    <artifactId>maven-antrun-plugin</artifactId>
                    <version>1.8</version>
                </plugin>
                <plugin>
                    <groupId>biz.aQute.bnd</groupId>
                    <artifactId>bnd-maven-plugin</artifactId>
                    <version>${bnd.version}</version>
                    <executions>
                        <execution>
                            <goals>
                                <goal>bnd-process</goal>
                            </goals>
                        </execution>
                    </executions>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-dependency-plugin</artifactId>
                    <version>2.10</version>
                    <configuration>
                        <outputDirectory>${dependency.unpack.directory}</outputDirectory>
                        <overWriteReleases>false</overWriteReleases>
                        <overWriteSnapshots>true</overWriteSnapshots>
                    </configuration>
                </plugin>
                <plugin>
                    <groupId>org.codehaus.mojo</groupId>
                    <artifactId>exec-maven-plugin</artifactId>
                    <version>1.4.0</version>
                </plugin>
                <plugin>
                    <groupId>org.codehaus.mojo</groupId>
                    <artifactId>versions-maven-plugin</artifactId>
                    <version>2.3</version>
                </plugin>
                <plugin>
                    <groupId>org.codehaus.mojo</groupId>
                    <artifactId>build-helper-maven-plugin</artifactId>
                    <version>1.10</version>
                </plugin>
                <plugin>
                    <artifactId>maven-source-plugin</artifactId>
                    <version>3.0.0</version>
                </plugin>
                <plugin>
                    <groupId>com.vaadin</groupId>
                    <artifactId>vaadin-maven-plugin</artifactId>
                    <version>${vaadin.plugin.version}</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-checkstyle-plugin</artifactId>
                    <version>2.17</version>
                    <dependencies>
                        <!-- Needed because of a JavadocMethodCheck bug in 
                            6.11 -->
                        <dependency>
                            <groupId>com.puppycrawl.tools</groupId>
                            <artifactId>checkstyle</artifactId>
                            <version>6.17</version>
                        </dependency>
                    </dependencies>
                    <configuration>
                        <configLocation>../checkstyle/vaadin-checkstyle.xml</configLocation>
                        <headerLocation>../checkstyle/header</headerLocation>
                        <suppressionsLocation>../checkstyle/suppressions.xml</suppressionsLocation>
                        <encoding>UTF-8</encoding>
                        <consoleOutput>false</consoleOutput>
                        <failsOnError>false</failsOnError>
                        <linkXRef>false</linkXRef>
                    </configuration>
                </plugin>
                <plugin>
                    <groupId>org.codehaus.mojo</groupId>
                    <artifactId>animal-sniffer-maven-plugin</artifactId>
                    <version>1.15</version>
                </plugin>
                <plugin>
                    <groupId>org.eclipse.m2e</groupId>
                    <artifactId>lifecycle-mapping</artifactId>
                    <version>1.0.0</version>
                    <configuration>
                        <lifecycleMappingMetadata>
                            <pluginExecutions>
                                <pluginExecution>
                                    <pluginExecutionFilter>
                                        <groupId>
                                            org.apache.maven.plugins
                                        </groupId>
                                        <artifactId>
                                            maven-antrun-plugin
                                        </artifactId>
                                        <versionRange>
                                            [1.8,)
                                        </versionRange>
                                        <goals>
                                            <goal>run</goal>
                                        </goals>
                                    </pluginExecutionFilter>
                                    <action>
                                        <ignore></ignore>
                                    </action>
                                </pluginExecution>
                                <pluginExecution>
                                    <pluginExecutionFilter>
                                        <groupId>
                                            com.github.klieber
                                        </groupId>
                                        <artifactId>
                                            phantomjs-maven-plugin
                                        </artifactId>
                                        <versionRange>
                                            [0.7,)
                                        </versionRange>
                                        <goals>
                                            <goal>install</goal>
                                        </goals>
                                    </pluginExecutionFilter>
                                    <action>
                                        <ignore></ignore>
                                    </action>
                                </pluginExecution>
                            </pluginExecutions>
                        </lifecycleMappingMetadata>
                    </configuration>
                </plugin>
            </plugins>
        </pluginManagement>

        <plugins>
            <plugin>
                <groupId>com.marvinformatics.formatter</groupId>
                <artifactId>formatter-maven-plugin</artifactId>
                <version>1.8.1</version>
                <configuration>
                    <configFile>classpath:/eclipse/VaadinJavaConventions.xml</configFile>
                    <!-- Provide a dummy JS config file to avoid errors -->
                    <configJsFile>classpath:/eclipse/VaadinJavaConventions.xml</configJsFile>
                </configuration>
                <dependencies>
                    <dependency>
                        <groupId>${project.groupId}</groupId>
                        <artifactId>vaadin-buildhelpers</artifactId>
                        <version>${project.version}</version>
                    </dependency>
                </dependencies>
            </plugin>
            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>animal-sniffer-maven-plugin</artifactId>
                <executions>
                    <execution>
                        <id>java8compatibility</id>
                        <phase>test</phase>
                        <goals>
                            <goal>check</goal>
                        </goals>
                        <configuration>
                            <signature>
                                <groupId>org.codehaus.mojo.signature</groupId>
                                <artifactId>java18</artifactId>
                                <version>1.0</version>
                            </signature>
                            <ignores>
                                <ignore>com.google.gwt.*</ignore>
                            </ignores>
                        </configuration>
                    </execution>
                </executions>
            </plugin>

            <!-- Unpacked Dependencies as resource -->
            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>build-helper-maven-plugin</artifactId>

                <!-- Needs extra resource folder for unpacked dependencies -->
                <executions>
                    <execution>
                        <id>add-dependency-resources</id>
                        <phase>generate-resources</phase>
                        <goals>
                            <goal>add-resource</goal>
                        </goals>
                        <configuration>
                            <resources>
                                <resource>
                                    <directory>${dependency.unpack.directory}</directory>
                                    <filtering>false</filtering>
                                </resource>
                            </resources>
                        </configuration>
                    </execution>
                    <execution>
                        <id>parse-version</id>
                        <goals>
                            <goal>parse-version</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>

    <profiles>
        <profile>
            <!-- Default build profile that runs all modules. -->
            <id>default</id>
            <activation>
                <activeByDefault>true</activeByDefault>
            </activation>
            <modules>
                <module>buildhelpers</module>
                <module>shared</module>
                <module>push</module>
                <module>server</module>
                <module>client</module>
                <module>client-compiler</module>
                <module>client-compiled</module>
                <module>themes</module>
                <module>uitest</module>
                <module>liferay</module>
                <module>liferay-integration</module>
                <module>osgi-integration</module>
                <module>all</module>
                <module>compatibility-server</module>
                <module>compatibility-server-gae</module>
                <module>compatibility-client</module>
                <module>compatibility-client-compiled</module>
                <module>compatibility-shared</module>
                <module>compatibility-themes</module>
                <module>testbench-api</module>
                <module>bom</module>
            </modules>
        </profile>
        <profile>
            <!-- Profile for running integration tests. Vaadin version to 
                be tested can be defined with property vaadin.version -->
            <id>slowtest</id>
            <modules>
                <module>test</module>
            </modules>
        </profile>
        <profile>
            <!-- This profile builds the assembled parts of the Framework 
                for website release. Should be run after running the release profile -->
            <id>release-assemblies</id>
            <modules>
                <module>liferay</module>
                <module>all</module>
            </modules>
        </profile>
        <profile>
            <!-- Release build only builds artifacts that are deployed or 
                needed by them -->
            <id>release</id>
            <properties>
                <vaadin.plugin.version>${project.version}</vaadin.plugin.version>
            </properties>
            <modules>
                <module>buildhelpers</module>
                <module>shared</module>
                <module>push</module>
                <module>server</module>
                <module>client</module>
                <module>client-compiler</module>
                <module>client-compiled</module>
                <module>themes</module>
                <module>compatibility-server</module>
                <module>compatibility-server-gae</module>
                <module>compatibility-client</module>
                <module>compatibility-client-compiled</module>
                <module>compatibility-shared</module>
                <module>compatibility-themes</module>
                <module>liferay-integration</module>
                <module>osgi-integration</module>
                <!-- Nexus staging bug needs the last module to be deployed. -->
                <module>testbench-api</module>
                <!-- BOM is built and released separately -->
            </modules>

            <build>
                <plugins>
                    <plugin>
                        <artifactId>maven-source-plugin</artifactId>
                        <executions>
                            <execution>
                                <id>sources-jar</id>
                                <phase>package</phase>
                                <goals>
                                    <goal>jar</goal>
                                </goals>
                                <configuration>
                                    <!-- Only include java files -->
                                    <includes>
                                        <include>**/*.java</include>
                                    </includes>
                                </configuration>
                            </execution>
                        </executions>
                    </plugin>
                    <plugin>
                        <artifactId>maven-javadoc-plugin</artifactId>
                        <version>2.10.3</version>
                        <executions>
                            <execution>
                                <id>generate-javadoc</id>
                                <goals>
                                    <goal>jar</goal>
                                </goals>
                                <configuration>
                                    <failOnError>false</failOnError>
                                </configuration>
                            </execution>
                        </executions>
                    </plugin>
                </plugins>
            </build>
        </profile>
        <profile>
            <!-- Pre-release build only builds artifacts that are deployed or 
                needed by them -->
            <id>prerelease</id>
            <properties>
                <vaadin.plugin.version>${project.version}</vaadin.plugin.version>
            </properties>
            <modules>
                <module>buildhelpers</module>
                <module>shared</module>
                <module>push</module>
                <module>server</module>
                <module>client</module>
                <module>client-compiler</module>
                <module>client-compiled</module>
                <module>themes</module>
                <module>compatibility-server</module>
                <module>compatibility-server-gae</module>
                <module>compatibility-client</module>
                <module>compatibility-client-compiled</module>
                <module>compatibility-shared</module>
                <module>compatibility-themes</module>
                <module>liferay-integration</module>
                <module>osgi-integration</module>
                <!-- Nexus staging bug needs the last module to be deployed. -->
                <module>testbench-api</module>
                <!-- BOM is built and released separately -->
            </modules>

            <build>
                <plugins>
                    <plugin>
                        <artifactId>maven-source-plugin</artifactId>
                        <executions>
                            <execution>
                                <id>sources-jar</id>
                                <phase>package</phase>
                                <goals>
                                    <goal>jar</goal>
                                </goals>
                                <configuration>
                                    <!-- Only include java files -->
                                    <includes>
                                        <include>**/*.java</include>
                                    </includes>
                                </configuration>
                            </execution>
                        </executions>
                    </plugin>
                    <plugin>
                        <artifactId>maven-javadoc-plugin</artifactId>
                        <version>2.10.3</version>
                        <executions>
                            <execution>
                                <id>generate-javadoc</id>
                                <goals>
                                    <goal>jar</goal>
                                </goals>
                                <configuration>
                                    <failOnError>false</failOnError>
                                </configuration>
                            </execution>
                        </executions>
                    </plugin>
                </plugins>
            </build>
        </profile>
        <profile>
            <!-- Snapshot build only builds artifacts that are deployed or 
                needed by them -->
            <id>snapshot</id>
            <properties>
                <vaadin.plugin.version>${project.version}</vaadin.plugin.version>
            </properties>
            <modules>
                <module>buildhelpers</module>
                <module>shared</module>
                <module>push</module>
                <module>server</module>
                <module>client</module>
                <module>client-compiler</module>
                <module>client-compiled</module>
                <module>themes</module>
                <module>compatibility-server</module>
                <module>compatibility-server-gae</module>
                <module>compatibility-client</module>
                <module>compatibility-client-compiled</module>
                <module>compatibility-shared</module>
                <module>compatibility-themes</module>
                <module>liferay-integration</module>
                <module>osgi-integration</module>
                <module>testbench-api</module>
                <module>bom</module>
            </modules>

            <build>
                <plugins>
                    <plugin>
                        <artifactId>maven-source-plugin</artifactId>
                        <executions>
                            <execution>
                                <id>sources-jar</id>
                                <phase>package</phase>
                                <goals>
                                    <goal>jar</goal>
                                </goals>
                                <configuration>
                                    <!-- Only include java files -->
                                    <includes>
                                        <include>**/*.java</include>
                                    </includes>
                                </configuration>
                            </execution>
                        </executions>
                    </plugin>
                    <plugin>
                        <artifactId>maven-javadoc-plugin</artifactId>
                        <version>2.10.3</version>
                        <executions>
                            <execution>
                                <id>generate-javadoc</id>
                                <goals>
                                    <goal>jar</goal>
                                </goals>
                                <configuration>
                                    <failOnError>false</failOnError>
                                </configuration>
                            </execution>
                        </executions>
                    </plugin>
                </plugins>
            </build>
        </profile>
        <profile>
            <!-- This profile is disjoint with default profile. It allows 
                to prevent running build for all available modules but restricts a number 
                of modules to specified here only (which allows to avoid long time compilation 
                for projects that are not needed since japicmp works with compiled classes). 
                ! -->
            <id>apicmp</id>
            <modules>
                <module>server</module>
                <module>push</module>
                <module>client</module>
                <module>compatibility-server</module>
                <module>compatibility-server-gae</module>
                <module>compatibility-client</module>
                <module>client-compiler</module>
                <module>shared</module>
                <module>compatibility-shared</module>
                <module>liferay-integration</module>
                <module>osgi-integration</module>
            </modules>
            <repositories>
                <repository>
                    <id>vaadin-prereleases</id>
                    <url>http://maven.vaadin.com/vaadin-prereleases</url>
                </repository>
            </repositories>
            <build>
                <plugins>
                    <plugin>
                        <groupId>com.github.siom79.japicmp</groupId>
                        <artifactId>japicmp-maven-plugin</artifactId>
                        <configuration>
                            <oldVersion>
                                <dependency>
                                    <groupId>${project.groupId}</groupId>
                                    <artifactId>${project.artifactId}</artifactId>
                                    <version>${vaadin.api.reference.version}</version>
                                    <type>jar</type>
                                </dependency>
                            </oldVersion>
                            <newVersion>
                                <file>
                                    <path>${project.build.directory}/${project.artifactId}-${project.version}.${project.packaging}</path>
                                </file>
                            </newVersion>
                            <parameter>
                                <ignoreMissingClasses>true</ignoreMissingClasses>
                                <onlyModified>true</onlyModified>
                                <skipDiffReport>true</skipDiffReport>
                                <skipXmlReport>true</skipXmlReport>
                                <ignoreMissingOldVersion>true</ignoreMissingOldVersion>
                                <ignoreMissingNewVersion>true</ignoreMissingNewVersion>
                            </parameter>
                        </configuration>
                        <executions>
                            <execution>
                                <phase>verify</phase>
                                <goals>
                                    <goal>cmp</goal>
                                </goals>
                            </execution>
                        </executions>
                    </plugin>
                </plugins>
            </build>
        </profile>
        <profile>
            <!-- Testing profile for measurement tests. Use along with default 
                profile -->
            <id>measurements</id>
            <properties>
                <skipTests>true</skipTests>
            </properties>
        </profile>
    </profiles>

</project>