<?xml version="1.0" encoding="UTF-8"?>

<!--
  Licensed to the Apache Software Foundation (ASF) under one or more
  contributor license agreements.  See the NOTICE file distributed with
  this work for additional information regarding copyright ownership.
  The ASF licenses this file to You under the Apache License, Version 2.0
  (the "License"); you may not use this file except in compliance with
  the License.  You may obtain a copy of the License at

       http://www.apache.org/licenses/LICENSE-2.0

  Unless required by applicable law or agreed to in writing, software
  distributed under the License is distributed on an "AS IS" BASIS,
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  See the License for the specific language governing permissions and
  limitations under the License.
-->

<!--
    POM file.
-->
<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.apache.ignite</groupId>
        <artifactId>ignite-parent</artifactId>
        <version>1</version>
        <relativePath>parent</relativePath>
    </parent>

    <groupId>org.apache.ignite</groupId>
    <artifactId>apache-ignite</artifactId>
    <version>2.0.0</version>
    <packaging>pom</packaging>

    <properties>
        <!--fix <attachartifact>...< /> at apache-release profile if changed-->
        <ignite.zip.pattern>${project.artifactId}-${ignite.edition}-${project.version}-bin</ignite.zip.pattern>
    </properties>

    <scm>
        <url>https://git-wip-us.apache.org/repos/asf/ignite</url>
        <connection>scm:git:https://git-wip-us.apache.org/repos/asf/ignite</connection>
        <developerConnection>scm:git:https://git-wip-us.apache.org/repos/asf/ignite</developerConnection>
        <tag>HEAD</tag>
    </scm>

    <modules>
        <module>modules/apache-license-gen</module>
        <module>modules/tools</module>
        <module>modules/core</module>
        <module>modules/hadoop</module>
        <module>modules/extdata/p2p</module>
        <module>modules/extdata/uri</module>
        <module>modules/clients</module>
        <module>modules/spring</module>
        <module>modules/spring-data</module>
        <module>modules/web</module>
        <module>modules/aop</module>
        <module>modules/urideploy</module>
        <module>modules/indexing</module>
        <module>modules/ssh</module>
        <module>modules/rest-http</module>
        <module>modules/jta</module>
        <module>modules/aws</module>
        <module>modules/log4j</module>
        <module>modules/log4j2</module>
        <module>modules/slf4j</module>
        <module>modules/jcl</module>
        <module>modules/codegen</module>
        <module>modules/gce</module>
        <module>modules/cloud</module>
        <module>modules/mesos</module>
        <module>modules/kafka</module>
        <module>modules/flume</module>
        <module>modules/yarn</module>
        <module>modules/jms11</module>
        <module>modules/twitter</module>
        <module>modules/mqtt</module>
        <module>modules/zookeeper</module>
        <module>modules/camel</module>
        <module>modules/storm</module>
        <module>modules/osgi-paxlogging</module>
        <module>modules/osgi-karaf</module>
        <module>modules/osgi</module>
        <module>modules/web/ignite-appserver-test</module>
        <module>modules/web/ignite-websphere-test</module>
        <module>modules/cassandra</module>
        <module>modules/flink</module>
        <module>modules/kubernetes</module>
        <module>modules/zeromq</module>
        <module>modules/rocketmq</module>
    </modules>

    <profiles>
        <profile>
            <id>all-java</id> <!-- used to update project versions and check all modules compilation -->
            <modules> <!-- sorted alphabetically -->
                <module>examples</module>
                <module>modules/benchmarks</module>
                <module>modules/geospatial</module>
                <module>modules/hibernate-4.2</module>
                <module>modules/hibernate-5.1</module>
                <module>modules/schedule</module>
                <module>modules/web-console/web-agent</module>
                <module>modules/yardstick</module>
            </modules>
        </profile>

        <profile>
            <id>all-scala</id><!-- used to update project versions and check all modules compilation -->
            <modules><!-- sorted alphabetically -->
                <module>modules/scalar-2.10</module>
                <module>modules/scalar</module>
                <module>modules/spark-2.10</module>
                <module>modules/spark</module>
                <module>modules/visor-console-2.10</module>
                <module>modules/visor-console</module>
                <module>modules/visor-plugins</module>
            </modules>
        </profile>

        <profile>
            <id>all-other</id> <!-- used to update project versions and check all modules compilation -->
            <modules> <!-- sorted alphabetically -->
                <module>modules/ml</module> <!-- it uses Java8 and can't be compiled by Java7 used to compile Ignite -->
                <module>modules/web-console</module>
            </modules>
        </profile>

        <profile>
            <id>test</id>
            <build>
                <plugins>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-assembly-plugin</artifactId>
                        <version>2.4</version>
                        <inherited>false</inherited>
                        <executions>
                            <execution>
                                <id>test</id>
                                <phase>prepare-package</phase>
                                <goals>
                                    <goal>single</goal>
                                </goals>
                                <configuration>
                                    <descriptors>
                                        <descriptor>assembly/test.xml</descriptor>
                                    </descriptors>
                                    <outputDirectory>${basedir}</outputDirectory>
                                    <finalName>libs</finalName>
                                    <appendAssemblyId>false</appendAssemblyId>
                                    <runOnlyAtExecutionRoot>true</runOnlyAtExecutionRoot>
                                </configuration>
                            </execution>
                        </executions>
                    </plugin>
                </plugins>
            </build>
        </profile>

        <profile>
            <id>dev-libs</id>
            <activation>
                <activeByDefault>true</activeByDefault>
            </activation>
            <build>
                <plugins>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-antrun-plugin</artifactId>
                        <version>1.7</version>
                        <inherited>false</inherited>
                        <executions>
                            <execution>
                                <id>dev-libs</id>
                                <goals>
                                    <goal>run</goal>
                                </goals>
                                <phase>package</phase>
                                <configuration>
                                    <target>
                                        <copy todir="${basedir}/libs">
                                            <fileset dir="${basedir}/target/release-package/libs" />
                                        </copy>
                                    </target>
                                </configuration>
                            </execution>
                        </executions>
                    </plugin>
                </plugins>
            </build>
        </profile>

        <profile>
            <id>lgpl</id>
            <modules>
                <module>modules/hibernate-4.2</module>
                <module>modules/hibernate-5.1</module>
                <module>modules/hibernate-core</module>
                <module>modules/geospatial</module>
                <module>modules/schedule</module>
            </modules>
        </profile>

        <profile>
            <id>release</id>
            <activation>
                <property>
                    <name>!skipDefault</name><!--activeByDefault-->
                </property>
            </activation>
            <build>
                <plugins>
                    <plugin><!-- skipping generation of dependencies licenses
                     to keep clean /maven-shared-archive-resources/META-INF
                     to prevent license.txt moving to sources.zip -->
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-remote-resources-plugin</artifactId>
                        <executions>
                            <execution>
                                <id>ignite-dependencies</id>
                                <goals>
                                    <goal>process</goal>
                                </goals>
                                <configuration>
                                   <skip>true</skip>
                                </configuration>
                            </execution>
                        </executions>
                    </plugin>

                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-javadoc-plugin</artifactId>
                        <executions>
                            <execution>
                                <id>core-javadoc</id>
                                <goals>
                                    <goal>aggregate</goal>
                                </goals>
                                <phase>process-test-classes</phase>
                                <configuration>
                                    <reportOutputDirectory>${basedir}/target/javadoc</reportOutputDirectory>
                                    <destDir>core</destDir>
                                    <stylesheetfile>${basedir}/assembly/docfiles/javadoc.css</stylesheetfile>
                                    <subpackages>org.apache.ignite -exclude org.apache.ignite.client:org.apache.ignite.codegen:org.apache.ignite.examples:org.apache.ignite.internal:org.apache.ignite.schema:org.apache.ignite.tests:org.apache.ignite.tools:org.apache.ignite.util:org.apache.ignite.spi.discovery.tcp.messages:org.apache.ignite.spi.discovery.tcp.internal:org.apache.ignite.spi.deployment.uri.scanners:org.apache.ignite.spi.deployment.uri.tasks:org.apache.ignite.yardstick:org.apache.ignite.webtest</subpackages>
                                </configuration>
                            </execution>
                        </executions>
                    </plugin>

                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-antrun-plugin</artifactId>
                        <version>1.7</version>
                        <inherited>false</inherited>
                        <dependencies>
                            <dependency>
                                <groupId>org.apache.ignite</groupId>
                                <artifactId>ignite-tools</artifactId>
                                <version>${project.version}</version>
                            </dependency>
                        </dependencies>
                        <executions>
                            <execution>
                                <id>javadoc-postprocessing</id>
                                <goals>
                                    <goal>run</goal>
                                </goals>
                                <phase>prepare-package</phase>
                                <configuration>
                                    <target>
                                        <copy todir="${basedir}/target/javadoc/core">
                                            <fileset dir="assembly/docfiles">
                                                <include name="img/**" />
                                                <include name="*.js" />
                                            </fileset>
                                        </copy>

                                        <taskdef name="doctask" classname="org.apache.ignite.tools.ant.beautifier.GridJavadocAntTask" />

                                        <doctask css="dotted" dir="target/javadoc/core">
                                            <include name="**/*.html" />
                                            <exclude name="overview-frame.html" />
                                            <exclude name="allclasses-frame.html" />
                                            <exclude name="**/class-use/*" />
                                        </doctask>
                                    </target>
                                </configuration>
                            </execution>

                            <execution>
                                <id>release-postprocessing</id>
                                <goals>
                                    <goal>run</goal>
                                </goals>
                                <phase>package</phase>
                                <configuration>
                                    <target>
                                        <replaceregexp byline="true">
                                            <regexp pattern="pushd &quot;%~dp0&quot;/\.\./\.\.(\s*&amp;::.+)?" />
                                            <substitution expression="pushd &quot;%~dp0&quot;/.." />
                                            <fileset dir="${basedir}/target/release-package/bin">
                                                <include name="**/*.bat" />
                                            </fileset>
                                        </replaceregexp>

                                        <replaceregexp byline="true">
                                            <regexp pattern="IGNITE_HOME_TMP=&quot;\$\(dirname &quot;\$\{IGNITE_HOME_TMP\}&quot;\)&quot;(\s*#.*)?" />
                                            <substitution expression="" />
                                            <fileset dir="${basedir}/target/release-package/bin">
                                                <include name="**/*.sh" />
                                            </fileset>
                                        </replaceregexp>

                                        <replaceregexp byline="true">
                                            <regexp pattern="set SCRIPTS_HOME=%IGNITE_HOME%\\bin(\s*&amp;::.*)?" />
                                            <substitution expression="set SCRIPTS_HOME=%IGNITE_HOME%\\\\bin" />
                                            <fileset dir="${basedir}/target/release-package/bin">
                                                <include name="**/*.bat" />
                                            </fileset>
                                        </replaceregexp>

                                        <replaceregexp byline="true">
                                            <regexp pattern="SCRIPTS_HOME=&quot;\$\{IGNITE_HOME_TMP\}/bin&quot;(\s*#.*)?" />
                                            <substitution expression="SCRIPTS_HOME=&quot;$${IGNITE_HOME_TMP}/bin&quot;" />
                                            <fileset dir="${basedir}/target/release-package/bin">
                                                <include name="**/*.sh" />
                                            </fileset>
                                        </replaceregexp>

                                        <replaceregexp byline="true">
                                            <regexp pattern="\. &quot;\$\{SCRIPTS_HOME\}&quot;/include/build-classpath.sh(\s*#.*)?" />
                                            <substitution expression="" />
                                            <fileset dir="${basedir}/target/release-package/bin">
                                                <include name="**/*.sh" />
                                            </fileset>
                                        </replaceregexp>

                                        <replaceregexp byline="true">
                                            <regexp pattern="call &quot;%SCRIPTS_HOME%\\include\\build-classpath.bat&quot;(\s*&amp;::.*)?" />
                                            <substitution expression="" />
                                            <fileset dir="${basedir}/target/release-package/bin">
                                                <include name="**/*.bat" />
                                            </fileset>
                                        </replaceregexp>

                                        <replaceregexp byline="true">
                                            <regexp pattern="ENABLE_ASSERTIONS=.*" />
                                            <substitution expression="ENABLE_ASSERTIONS=&quot;0&quot;" />
                                            <fileset dir="${basedir}/target/release-package/bin">
                                                <include name="**/*.sh" />
                                            </fileset>
                                        </replaceregexp>

                                        <replaceregexp byline="true">
                                            <regexp pattern="ENABLE_ASSERTIONS=.*" />
                                            <substitution expression="ENABLE_ASSERTIONS=0" />
                                            <fileset dir="${basedir}/target/release-package/bin">
                                                <include name="**/*.bat" />
                                            </fileset>
                                        </replaceregexp>

                                        <replaceregexp byline="true">
                                            <regexp pattern="-DIGNITE_UPDATE_NOTIFIER=false" />
                                            <substitution expression="" />
                                            <fileset dir="${basedir}/target/release-package/bin">
                                                <include name="**/*.sh" />
                                                <include name="**/*.bat" />
                                            </fileset>
                                        </replaceregexp>

                                        <replaceregexp file="${basedir}/target/release-package/examples/pom.xml" byline="true">
                                            <regexp pattern="to_be_replaced_by_ignite_version" />
                                            <substitution expression="${project.version}" />
                                        </replaceregexp>

                                        <chmod dir="${basedir}/target/release-package" perm="755" includes="**/*.sh" />

                                        <!--
                                        Line ending bugfix for builds packaged in MS Windows machine to adjust Linux based
                                        end-of-line characters for Linux shell scripts
                                        -->
                                        <fixcrlf srcdir="${basedir}/target/release-package" eol="lf" eof="remove">
                                            <include name="**/*.sh" />
                                        </fixcrlf>

                                        <zip destfile="${basedir}/target/bin/${ignite.zip.pattern}.zip" encoding="UTF-8">
                                            <zipfileset dir="${basedir}/target/release-package" prefix="${ignite.zip.pattern}" filemode="755">
                                                <include name="**/*.sh" />
                                                <include name="**/configure" />
                                                <include name="**/install-sh" />
                                                <include name="**/compile" />
                                                <include name="**/missing" />
                                            </zipfileset>
                                            <zipfileset dir="${basedir}/target/release-package" prefix="${ignite.zip.pattern}">
                                                <exclude name="**/*.sh" />
                                                <exclude name="**/configure" />
                                                <exclude name="**/install-sh" />
                                                <exclude name="**/compile" />
                                                <exclude name="**/missing" />
                                            </zipfileset>
                                        </zip>
                                    </target>
                                </configuration>
                            </execution>
                        </executions>
                    </plugin>

                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-assembly-plugin</artifactId>
                        <version>2.4</version>
                        <inherited>false</inherited>
                        <executions>
                            <execution>
                                <id>dependencies</id>
                                <phase>prepare-package</phase>
                                <goals>
                                    <goal>single</goal>
                                </goals>
                                <configuration>
                                    <descriptors>
                                        <descriptor>${basedir}/assembly/dependencies-${ignite.edition}.xml</descriptor>
                                    </descriptors>
                                    <outputDirectory>${basedir}/target/release-package</outputDirectory>
                                    <finalName>libs</finalName>
                                    <appendAssemblyId>false</appendAssemblyId>
                                </configuration>
                            </execution>

                            <execution>
                                <id>release</id>
                                <phase>prepare-package</phase>
                                <goals>
                                    <goal>single</goal>
                                </goals>
                                <configuration>
                                    <descriptors>
                                        <descriptor>assembly/release-${ignite.edition}.xml</descriptor>
                                    </descriptors>
                                    <finalName>release-package</finalName>
                                    <appendAssemblyId>false</appendAssemblyId>
                                </configuration>
                            </execution>

                            <execution>
                                <id>dependencies-visor-console</id>
                                <phase>prepare-package</phase>
                                <goals>
                                    <goal>single</goal>
                                </goals>
                                <configuration>
                                    <descriptors>
                                        <descriptor>assembly/dependencies-visor-console.xml</descriptor>
                                    </descriptors>
                                    <outputDirectory>target/release-package/bin</outputDirectory>
                                    <finalName>include</finalName>
                                    <appendAssemblyId>false</appendAssemblyId>
                                </configuration>
                            </execution>

                            <execution>
                                <id>scala-scripts</id>
                                <phase>prepare-package</phase>
                                <goals>
                                    <goal>single</goal>
                                </goals>
                                <configuration>
                                    <descriptors>
                                        <descriptor>assembly/release-scala.xml</descriptor>
                                    </descriptors>
                                    <outputDirectory>target/release-package</outputDirectory>
                                    <finalName>bin</finalName>
                                    <appendAssemblyId>false</appendAssemblyId>
                                </configuration>
                            </execution>
                        </executions>
                    </plugin>

                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-deploy-plugin</artifactId>
                        <configuration>
                            <skip>true</skip>
                        </configuration>
                    </plugin>
                </plugins>
            </build>
        </profile>

        <profile>
            <id>yardstick</id>
            <modules>
                <module>modules/yardstick</module>
            </modules>
            <build>
                <plugins>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-antrun-plugin</artifactId>
                        <version>1.7</version>
                        <inherited>false</inherited>
                        <dependencies>
                            <dependency>
                                <groupId>org.apache.ignite</groupId>
                                <artifactId>ignite-tools</artifactId>
                                <version>${project.version}</version>
                            </dependency>
                        </dependencies>
                        <executions>
                            <execution>
                                <id>release-yardstick</id>
                                <goals>
                                    <goal>run</goal>
                                </goals>
                                <phase>prepare-package</phase>
                                <configuration>
                                    <target>
                                        <mkdir dir="${basedir}/target/release-package/benchmarks" />

                                        <copy todir="${basedir}/target/release-package/benchmarks/">
                                            <fileset dir="${basedir}/modules/yardstick/target/assembly/" />
                                        </copy>

                                        <!--todo: only required jars should be exported to /benchmarks/libs during compilation-->
                                        <delete>
                                            <fileset dir="${basedir}/target/release-package/benchmarks/libs/">
                                                <include name="junit-*.jar" />
                                                <include name="ignite-apache-license-gen-*.jar" />
                                                <include name="hamcrest-core-*.jar" />
                                                <include name="tools-*.jar" />
                                            </fileset>
                                        </delete>

                                        <!--todo: config structure should be refactored to be the same at "sources" and "released sources"-->
                                        <delete>
                                            <fileset dir="${basedir}/target/release-package/benchmarks/config/">
                                                <include name="*.*" />
                                                <exclude name="benchmark.properties" />
                                                <exclude name="benchmark-remote.properties" />
                                                <exclude name="benchmark-sample.properties" />
                                                <exclude name="benchmark-remote-sample.properties" />
                                                <exclude name="benchmark-multicast.properties" />
                                                <exclude name="ignite-base-config.xml" />
                                                <exclude name="ignite-localhost-config.xml" />
                                                <exclude name="ignite-remote-config.xml" />
                                                <exclude name="ignite-multicast-config.xml" />
                                            </fileset>
                                        </delete>

                                        <mkdir dir="${basedir}/target/release-package/benchmarks/sources/src" />

                                        <copy todir="${basedir}/target/release-package/benchmarks/sources/src/">
                                            <fileset dir="${basedir}/modules/yardstick/src" />
                                        </copy>

                                        <mkdir dir="${basedir}/target/release-package/benchmarks/sources/config" />

                                        <copy todir="${basedir}/target/release-package/benchmarks/sources/config/">
                                            <fileset dir="${basedir}/target/release-package/benchmarks/config" />
                                        </copy>

                                        <copy file="${basedir}/modules/yardstick/pom-standalone.xml" tofile="${basedir}/target/release-package/benchmarks/sources/pom.xml" />

                                        <replaceregexp byline="true">
                                            <regexp pattern="to_be_replaced_by_ignite_version" />
                                            <substitution expression="${project.version}" />
                                            <fileset dir="${basedir}/target/release-package/benchmarks/sources/">
                                                <include name="pom.xml" />
                                            </fileset>
                                        </replaceregexp>

                                        <copy file="${basedir}/modules/yardstick/README.txt" tofile="${basedir}/target/release-package/benchmarks/README.txt" overwrite="true">
                                        </copy>

                                        <copy file="${basedir}/modules/yardstick/DEVNOTES-standalone.txt" tofile="${basedir}/target/release-package/benchmarks/sources/DEVNOTES.txt" />
                                    </target>
                                </configuration>
                            </execution>
                        </executions>
                    </plugin>
                </plugins>
            </build>
        </profile>

        <profile>
            <id>benchmarks</id>
            <modules>
                <module>modules/benchmarks</module>
            </modules>
        </profile>

        <profile>
            <id>scala</id>

            <activation>
                <property><name>!scala-2.10</name></property>
            </activation>

            <modules>
                <module>modules/scalar</module>
                <module>modules/spark</module>
                <module>modules/visor-console</module>
                <module>modules/visor-plugins</module>
            </modules>
        </profile>

        <profile>
            <id>scala-2.10</id>

            <activation>
                <property><name>scala-2.10</name></property>
            </activation>

            <modules>
                <module>modules/scalar-2.10</module>
                <module>modules/spark-2.10</module>
                <module>modules/visor-console-2.10</module>
                <module>modules/visor-plugins</module>
            </modules>
        </profile>

        <profile>
            <id>ignored-tests</id>
            <modules>
                <module>modules/ignored-tests</module>
            </modules>
        </profile>

        <profile>
            <id>examples</id>
            <modules>
                <module>examples</module>
            </modules>
        </profile>

        <profile>
            <id>apache-release</id>
            <build>
                <plugins>
                    <plugin>
                        <artifactId>maven-assembly-plugin</artifactId>
                        <executions>
                            <execution>
                                <!-- skip default -->
                                <id>source-release-assembly</id>
                                <goals>
                                    <goal>single</goal>
                                </goals>
                                <configuration>
                                    <skipAssembly>true</skipAssembly>
                                </configuration>
                            </execution>
                            <execution>
                                <id>source-release-assembly-ignite</id>
                                <phase>package</phase>
                                <goals>
                                    <goal>single</goal>
                                </goals>
                                <configuration>
                                    <runOnlyAtExecutionRoot>true</runOnlyAtExecutionRoot>
                                    <descriptors>
                                        <descriptor>assembly/release-sources.xml</descriptor>
                                    </descriptors>
                                    <tarLongFileMode>gnu</tarLongFileMode>
                                    <finalName>${project.artifactId}-${project.version}-src</finalName>
                                    <appendAssemblyId>false</appendAssemblyId>
                                </configuration>
                            </execution>
                        </executions>
                    </plugin>

                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-antrun-plugin</artifactId>
                        <executions>
                            <execution>
                                <id>attach-artifact</id><!-- allows to sign *bin.zip files -->
                                <phase>package</phase>
                                <goals>
                                    <goal>run</goal>
                                </goals>
                                <configuration>
                                    <failOnError>false</failOnError>
                                    <target>
                                        <attachartifact file="${basedir}/target/bin/${project.artifactId}-fabric-${project.version}-bin.zip" classifier="fabric" type="zip" />
                                        <attachartifact file="${basedir}/target/bin/${project.artifactId}-hadoop-${project.version}-bin.zip" classifier="hadoop" type="zip" />
                                    </target>
                                </configuration>
                            </execution>
                        </executions>
                    </plugin>

                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-gpg-plugin</artifactId>
                        <executions>
                            <execution>
                                <goals>
                                    <goal>sign</goal>
                                </goals>
                                <configuration>
                                    <ascDirectory>${basedir}</ascDirectory>
                                </configuration>
                            </execution>
                        </executions>
                    </plugin>

                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-remote-resources-plugin</artifactId>
                        <executions>
                            <execution>
                                <goals>
                                    <goal>process</goal>
                                </goals>
                                <configuration>
                                    <!-- no <resourceBundle>, fix unexpected generation of
                                       DEPENDENCIES, LICENSE, NOTICE files-->
                                    <skip>true</skip>
                                </configuration>
                            </execution>
                        </executions>
                    </plugin>
                </plugins>
            </build>
        </profile>

        <profile>
            <id>deploy-ignite-site</id>
            <build>
                <plugins>
                    <plugin>
                        <groupId>net.ju-n.maven.plugins</groupId>
                        <artifactId>checksum-maven-plugin</artifactId>
                        <version>1.2</version>
                        <executions>
                            <execution>
                                <goals>
                                    <goal>files</goal>
                                </goals>
                                <phase>install</phase>
                            </execution>
                        </executions>
                        <configuration>
                            <failOnError>false</failOnError>
                            <fileSets>
                                <fileSet>
                                    <directory>${basedir}/target</directory>
                                    <includes>
                                        <include>${project.artifactId}-${project.version}-src.zip</include>
                                        <include>bin/*.zip</include>
                                    </includes>
                                </fileSet>
                            </fileSets>
                            <algorithms>
                                <algorithm>MD5</algorithm>
                                <algorithm>SHA-1</algorithm>
                            </algorithms>
                        </configuration>
                    </plugin>

                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-antrun-plugin</artifactId>
                        <version>1.7</version>
                        <inherited>false</inherited>
                        <executions>
                            <execution>
                                <id>site-generation</id>
                                <goals>
                                    <goal>run</goal>
                                </goals>
                                <phase>install</phase>
                                <configuration>
                                    <failOnError>false</failOnError>
                                    <target>
                                        <mkdir dir="${basedir}/target/site" />

                                        <copy file="${basedir}/target/${project.artifactId}-${project.version}-src.zip" tofile="${basedir}/target/site/${project.artifactId}-${project.version}-src.zip" failonerror="false" />
                                        <copy file="${basedir}/target/${project.artifactId}-${project.version}-src.zip.asc" tofile="${basedir}/target/site/${project.artifactId}-${project.version}-src.zip.asc" failonerror="false" />
                                        <copy file="${basedir}/target/${project.artifactId}-${project.version}-src.zip.md5" tofile="${basedir}/target/site/${project.artifactId}-${project.version}-src.zip.md5" failonerror="false" />
                                        <copy file="${basedir}/target/${project.artifactId}-${project.version}-src.zip.sha1" tofile="${basedir}/target/site/${project.artifactId}-${project.version}-src.zip.sha1" failonerror="false" />

                                        <copy todir="${basedir}/target/site">
                                            <fileset dir="${basedir}/target/bin">
                                                <include name="**/*" />
                                            </fileset>
                                        </copy>

                                        <!-- appending filename to md5 and sha1 files. to be improved!! -->
                                        <!-- update versions task will replace "  " to " ", so additional echo added. -->
                                        <echo file="${basedir}/target/site/${project.artifactId}-fabric-${project.version}-bin.zip.md5" append="true" message=" " />
                                        <echo file="${basedir}/target/site/${project.artifactId}-fabric-${project.version}-bin.zip.sha1" append="true" message=" " />
                                        <echo file="${basedir}/target/site/${project.artifactId}-hadoop-${project.version}-bin.zip.md5" append="true" message=" " />
                                        <echo file="${basedir}/target/site/${project.artifactId}-hadoop-${project.version}-bin.zip.sha1" append="true" message=" " />
                                        <echo file="${basedir}/target/site/${project.artifactId}-${project.version}-src.zip.md5" append="true" message=" " />
                                        <echo file="${basedir}/target/site/${project.artifactId}-${project.version}-src.zip.sha1" append="true" message=" " />

                                        <echo file="${basedir}/target/site/${project.artifactId}-fabric-${project.version}-bin.zip.md5" append="true" message=" ${project.artifactId}-fabric-${project.version}-bin.zip" />
                                        <echo file="${basedir}/target/site/${project.artifactId}-fabric-${project.version}-bin.zip.sha1" append="true" message=" ${project.artifactId}-fabric-${project.version}-bin.zip" />
                                        <echo file="${basedir}/target/site/${project.artifactId}-hadoop-${project.version}-bin.zip.md5" append="true" message=" ${project.artifactId}-hadoop-${project.version}-bin.zip" />
                                        <echo file="${basedir}/target/site/${project.artifactId}-hadoop-${project.version}-bin.zip.sha1" append="true" message=" ${project.artifactId}-hadoop-${project.version}-bin.zip" />
                                        <echo file="${basedir}/target/site/${project.artifactId}-${project.version}-src.zip.md5" append="true" message=" ${project.artifactId}-${project.version}-src.zip" />
                                        <echo file="${basedir}/target/site/${project.artifactId}-${project.version}-src.zip.sha1" append="true" message=" ${project.artifactId}-${project.version}-src.zip" />
                                    </target>
                                </configuration>
                            </execution>
                        </executions>
                    </plugin>
                </plugins>
            </build>
        </profile>

        <profile>
            <id>web-console</id>
            <modules>
                <module>modules/web-console</module>
                <module>modules/web-console/web-agent</module>
            </modules>
        </profile>

        <profile>
            <id>update-versions</id>
            <!-- updates dotnet & cpp versions -->
            <build>
                <plugins>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-antrun-plugin</artifactId>
                        <version>1.7</version>
                        <executions>
                            <execution>
                                <id>update-versions</id>
                                <goals>
                                    <goal>run</goal>
                                </goals>
                                <phase>validate</phase>
                                <configuration>
                                    <target>
                                        <script language="javascript">
                                            function setClientVersion(ggVer, clientVer) {
                                                var p = project.getProperty(ggVer);

                                                var digitVer = /\d+\.\d+\.\d+/.exec(p);

                                                if (digitVer != null)
                                                {
                                                    // Date of the last major release
                                                    var startDate = new Date(2015,1,1);

                                                    // Number of hours since the last major release
                                                    var buildNum = Math.round((new Date() - startDate)/(3600*1000));
                                                    var ver = digitVer[0] + "." + buildNum;

                                                    project.setProperty(clientVer, ver);
                                                }
                                                else
                                                    project.setProperty(clientVer, p);
                                            }

                                            function fix(dest, source) {
                                                project.setProperty(dest, project.getProperty(source).replace("-SNAPSHOT",
                                                ""));
                                            }

                                            fix('ignite.version.fixed', 'project.version');
                                            fix('new.ignite.version.fixed', 'new.ignite.version');
                                            setClientVersion('ignite.version.fixed', 'old.client.version');
                                            setClientVersion('new.ignite.version.fixed', 'new.client.version');
                                        </script>

                                        <echo message="Update ignite.version in dotnet client" />
                                        <echo message="${new.client.version}" />

                                        <replaceregexp byline="true" encoding="UTF-8">
                                            <regexp pattern="(\[assembly:\s*Assembly\w*Version\w*\(&quot;)\d+\.\d+\.\d+(\.\d+)?(&quot;\)\])" />
                                            <substitution expression="\1${new.client.version}\3" />
                                            <fileset dir="${basedir}/">
                                                <include name="**/AssemblyInfo.cs" />
                                                <include name="**/AssemblyInfo.cpp" />
                                            </fileset>
                                        </replaceregexp>

                                        <replaceregexp byline="true" encoding="UTF-8">
                                            <regexp pattern="(\[assembly:\s*AssemblyInformationalVersion\w*\(&quot;).*?(&quot;\)\])" />
                                            <substitution expression="\1${new.ignite.version.fixed}\2" />
                                            <fileset dir="${basedir}/">
                                                <include name="**/AssemblyInfo.cs" />
                                                <include name="**/AssemblyInfo.cpp" />
                                            </fileset>
                                        </replaceregexp>

                                        <echo message="Update ignite.version in cpp client" />
                                        <replaceregexp byline="true" encoding="UTF-8">
                                            <regexp pattern="(AC_INIT.+\[)\d+\.\d+\.\d+.*?(\].+)" />
                                            <substitution expression="\1${new.client.version}\2" />
                                            <fileset dir="${basedir}/">
                                                <include name="**/configure.ac" />
                                                <include name="**/configure.acrel" />
                                            </fileset>
                                        </replaceregexp>

                                        <replaceregexp byline="true" encoding="UTF-8">
                                            <regexp pattern="(Version=.+)\d+\.\d+\.\d+\.\d+(.+)" />
                                            <substitution expression="\1${new.client.version}\2" />
                                            <fileset dir="${basedir}/">
                                                <include name="**/*.wxs" />
                                            </fileset>
                                        </replaceregexp>

                                        <replaceregexp byline="true" encoding="UTF-8">
                                            <regexp pattern="(define GG_VERSION_STR_WIN &quot;)\d+\.\d+\.\d+(\.\d+)?(&quot;)" />
                                            <substitution expression="\1${new.client.version}\3" />
                                            <fileset dir="${basedir}/">
                                                <include name="**/resource.h" />
                                            </fileset>
                                        </replaceregexp>

                                        <replaceregexp byline="true" encoding="UTF-16">
                                            <regexp pattern="(Version&quot;, &quot;)\d+\.\d+\.\d+\.\d+(&quot;)" />
                                            <substitution expression="\1${new.client.version}\2" />
                                            <fileset dir="${basedir}/">
                                                <include name="**/Resource.rc" />
                                            </fileset>
                                        </replaceregexp>

                                        <script language="javascript">
                                            function setBinVersion(clientVer, binVer) {
                                            var p = project.getProperty(clientVer).replace(".", ",");

                                            if (p.split(',').length == 3)
                                            project.setProperty(binVer, p + ',0');
                                            else
                                            project.setProperty(binVer, p);
                                            }

                                            setBinVersion('old.client.version', 'old.bin.version');
                                            setBinVersion('new.client.version', 'new.bin.version');
                                        </script>

                                        <replaceregexp byline="true" encoding="UTF-8">
                                            <regexp pattern="(define GG_VERSION_BIN_WIN )\d,\d,\d,\d" />
                                            <substitution expression="\1${new.bin.version}" />
                                            <fileset dir="${basedir}/">
                                                <include name="**/resource.h" />
                                            </fileset>
                                        </replaceregexp>

                                        <replaceregexp byline="true" encoding="UTF-16">
                                            <regexp pattern="(VERSION )\d,\d,\d,\d" />
                                            <substitution expression="\1${new.bin.version}" />
                                            <fileset dir="${basedir}/">
                                                <include name="**/Resource.rc" />
                                            </fileset>
                                        </replaceregexp>
                                    </target>
                                </configuration>
                            </execution>
                        </executions>
                    </plugin>
                </plugins>
            </build>
        </profile>

        <profile>
            <id>ml</id>
            <modules>
                <module>modules/ml</module>
            </modules>
        </profile>
    </profiles>

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-clean-plugin</artifactId>
                <executions>
                    <execution>
                        <phase>clean</phase>
                        <goals>
                            <goal>clean</goal>
                        </goals>
                        <configuration>
                            <filesets>
                                <fileset>
                                    <directory>libs</directory>
                                </fileset>
                            </filesets>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>
</project>
