<?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.
  -->
<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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <parent>
        <artifactId>apache-atlas</artifactId>
        <groupId>org.apache.atlas</groupId>
        <version>3.0.0-SNAPSHOT</version>
        <relativePath>../pom.xml</relativePath>
    </parent>
    <artifactId>atlas-distro</artifactId>
    <description>Apache Atlas Distribution</description>
    <name>Apache Atlas Distribution</name>

    <!-- by default configure hbase and solr with the distribution -->
    <properties>
        <cassandra.embedded>false</cassandra.embedded>
        <elasticsearch.managed>false</elasticsearch.managed>
        <entity.repository.properties>atlas.EntityAuditRepository.impl=org.apache.atlas.repository.audit.HBaseBasedAuditRepository</entity.repository.properties>
        <graph.index.backend>solr</graph.index.backend>
        <graph.index.properties>#Solr
#Solr cloud mode properties
atlas.graph.index.search.solr.mode=cloud
atlas.graph.index.search.solr.zookeeper-url=
atlas.graph.index.search.solr.zookeeper-connect-timeout=60000
atlas.graph.index.search.solr.zookeeper-session-timeout=60000
atlas.graph.index.search.solr.wait-searcher=false

#Solr http mode properties
#atlas.graph.index.search.solr.mode=http
#atlas.graph.index.search.solr.http-urls=http://localhost:8983/solr

# ElasticSearch support (Tech Preview)
# Comment out above solr configuration, and uncomment the following two lines. Additionally, make sure the
# hostname field is set to a comma delimited set of elasticsearch master nodes, or an ELB that fronts the masters.
#
# Elasticsearch does not provide authentication out of the box, but does provide an option with the X-Pack product
# https://www.elastic.co/products/x-pack/security
#
# Alternatively, the JanusGraph documentation provides some tips on how to secure Elasticsearch without additional
# plugins: https://docs.janusgraph.org/latest/elasticsearch.html
#atlas.graph.index.search.hostname=localhost
#atlas.graph.index.search.elasticsearch.client-only=true
        </graph.index.properties>
        <graph.storage.backend>hbase2</graph.storage.backend>
        <graph.storage.properties>#Hbase
#For standalone mode , specify localhost
#for distributed mode, specify zookeeper quorum here
atlas.graph.storage.hostname=
atlas.graph.storage.hbase.regions-per-server=1

#In order to use Cassandra as a backend, comment out the hbase specific properties above, and uncomment the
#the following properties
#atlas.graph.storage.clustername=
#atlas.graph.storage.port=
        </graph.storage.properties>
        <hbase.embedded>false</hbase.embedded>
        <solr.embedded>false</solr.embedded>
    </properties>

    <profiles>
        <profile>
            <id>Windows</id>
            <activation>
                <os>
                    <family>windows</family>
                </os>
            </activation>
            <properties>
                <python.path.l>
                    ${project.basedir}\src\bin;${project.basedir}\src\test\python\scripts;${project.basedir}\src\test\mock
                </python.path.l>
            </properties>
        </profile>

        <profile>
            <id>Linux</id>
            <activation>
                <os>
                    <family>!windows</family>
                </os>
            </activation>
            <properties>
                <python.path.l>
                    ${project.basedir}/src/bin:${project.basedir}/src/test/mock:${project.basedir}/src/test/python/scripts
                </python.path.l>
            </properties>
        </profile>

        <profile>
            <id>dist</id>
            <activation>
                <activeByDefault>false</activeByDefault>
            </activation>
            <build>
                <plugins>
                    <plugin>
                        <artifactId>maven-assembly-plugin</artifactId>
                        <executions>
                            <execution>
                                <goals>
                                    <goal>single</goal>
                                </goals>
                                <phase>package</phase>
                                <configuration>
                                    <skipAssembly>false</skipAssembly>
                                    <descriptors>
                                        <descriptor>src/main/assemblies/atlas-hbase-hook-package.xml</descriptor>
                                        <descriptor>src/main/assemblies/atlas-hive-hook-package.xml</descriptor>
                                        <descriptor>src/main/assemblies/atlas-impala-hook-package.xml</descriptor>
                                        <descriptor>src/main/assemblies/atlas-falcon-hook-package.xml</descriptor>
                                        <descriptor>src/main/assemblies/atlas-sqoop-hook-package.xml</descriptor>
                                        <descriptor>src/main/assemblies/atlas-storm-hook-package.xml</descriptor>
                                        <descriptor>src/main/assemblies/atlas-kafka-hook-package.xml</descriptor>
                                        <descriptor>src/main/assemblies/atlas-server-package.xml</descriptor>
                                        <descriptor>src/main/assemblies/standalone-package.xml</descriptor>
                                        <descriptor>src/main/assemblies/src-package.xml</descriptor>
                                        <descriptor>src/main/assemblies/atlas-repair-index-package.xml</descriptor>
                                        <!--<descriptor>src/main/assemblies/migration-exporter.xml</descriptor>-->
                                        <descriptor>src/main/assemblies/classification-updater.xml</descriptor>
                                    </descriptors>
                                    <finalName>apache-atlas-${project.version}</finalName>
                                    <tarLongFileMode>gnu</tarLongFileMode>
                                </configuration>
                            </execution>
                        </executions>
                    </plugin>
                </plugins>
            </build>
        </profile>

        <!-- profile to configure berkeley and solr with the distribution -->
        <profile>
            <id>berkeley-solr</id>
            <activation>
                <activeByDefault>false</activeByDefault>
            </activation>
            <properties>
                <cassandra.embedded>false</cassandra.embedded>
                <entity.repository.properties>atlas.EntityAuditRepository.impl=org.apache.atlas.repository.audit.NoopEntityAuditRepository</entity.repository.properties>
                <graph.index.backend>solr</graph.index.backend>
                <graph.index.properties>#Solr
#Solr cloud mode properties
atlas.graph.index.search.solr.mode=cloud
atlas.graph.index.search.solr.zookeeper-url=localhost:2181
atlas.graph.index.search.solr.zookeeper-connect-timeout=60000
atlas.graph.index.search.solr.zookeeper-session-timeout=60000
atlas.graph.index.search.solr.wait-searcher=false

#Solr http mode properties
#atlas.graph.index.search.solr.mode=http
#atlas.graph.index.search.solr.http-urls=http://localhost:8983/solr
                </graph.index.properties>
                <graph.storage.backend>berkeleyje</graph.storage.backend>
                <graph.storage.properties>#Berkeley
atlas.graph.storage.directory=${sys:atlas.home}/data/berkeley
atlas.graph.storage.lock.clean-expired=true
atlas.graph.storage.lock.expiry-time=500
atlas.graph.storage.lock.wait-time=300
                </graph.storage.properties>
                <hbase.embedded>false</hbase.embedded>
                <solr.dir>${project.build.directory}/solr</solr.dir>
                <solr.embedded>true</solr.embedded>
                <solr.folder>solr-${solr.version}</solr.folder>
                <solr.tar>https://archive.apache.org/dist/lucene/solr/${solr.version}/solr-${solr.version}.tgz</solr.tar>
                <zk.dir>${project.build.directory}/zk</zk.dir>
                <zk.folder>apache-zookeeper-${zookeeper.version}-bin</zk.folder>
                <zk.tar>https://archive.apache.org/dist/zookeeper/zookeeper-${zookeeper.version}/apache-zookeeper-${zookeeper.version}-bin.tar.gz</zk.tar>
            </properties>
            <build>
                <plugins>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-antrun-plugin</artifactId>
                        <version>1.7</version>
                        <executions>
                            <!-- package solr -->
                            <execution>
                                <id>solr</id>
                                <phase>generate-resources</phase>
                                <goals>
                                    <goal>run</goal>
                                </goals>
                                <configuration>
                                    <target name="Download SOLR">
                                        <mkdir dir="${solr.dir}" />
                                        <mkdir dir="${project.basedir}/solr" />
                                        <get src="${solr.tar}" dest="${project.basedir}/solr/${solr.folder}.tgz" usetimestamp="true" verbose="true" skipexisting="true" />
                                        <untar src="${project.basedir}/solr/${solr.folder}.tgz" dest="${project.build.directory}/solr.temp" compression="gzip" />
                                        <copy todir="${solr.dir}">
                                            <fileset dir="${project.build.directory}/solr.temp/${solr.folder}">
                                                <include name="**/*" />
                                            </fileset>
                                        </copy>
                                    </target>
                                </configuration>
                            </execution>
                            <!-- package zookeeper -->
                            <execution>
                                <id>zk</id>
                                <phase>generate-resources</phase>
                                <goals>
                                    <goal>run</goal>
                                </goals>
                                <configuration>
                                    <target name="Download zookeeper">
                                        <mkdir dir="${zk.dir}" />
                                        <mkdir dir="${project.basedir}/zk" />
                                        <get src="${zk.tar}" dest="${project.basedir}/zk/${zk.folder}.tgz" usetimestamp="true" verbose="true" skipexisting="true" />
                                        <untar src="${project.basedir}/zk/${zk.folder}.tgz" dest="${project.build.directory}/zk.temp" compression="gzip" />
                                        <copy todir="${zk.dir}">
                                            <fileset dir="${project.build.directory}/zk.temp/${zk.folder}">
                                                <include name="**/*" />
                                            </fileset>
                                        </copy>
                                    </target>
                                </configuration>
                            </execution>
                        </executions>
                    </plugin>
                </plugins>
            </build>
        </profile>

        <!-- profile to configure berkeley and elasticsearch with the distribution -->
        <profile>
            <id>berkeley-elasticsearch</id>
            <activation>
                <activeByDefault>false</activeByDefault>
            </activation>
            <properties>
                <cassandra.embedded>false</cassandra.embedded>
                <elasticsearch.dir>${project.build.directory}/elasticsearch</elasticsearch.dir>
                <elasticsearch.folder>elasticsearch-${elasticsearch.version}</elasticsearch.folder>
                <elasticsearch.managed>true</elasticsearch.managed>
                <elasticsearch.tar>https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-${elasticsearch.version}-linux-x86_64.tar.gz</elasticsearch.tar>
                <entity.repository.properties>atlas.EntityAuditRepository.impl=org.apache.atlas.repository.audit.NoopEntityAuditRepository</entity.repository.properties>
                <graph.index.backend>elasticsearch</graph.index.backend>
                <graph.index.properties>#ElasticSearch
atlas.graph.index.search.hostname=localhost
atlas.graph.index.search.elasticsearch.client-only=true
                </graph.index.properties>
                <graph.storage.backend>berkeleyje</graph.storage.backend>
                <graph.storage.properties>#Berkeley
atlas.graph.storage.directory=${sys:atlas.home}/data/berkeley
atlas.graph.storage.lock.clean-expired=true
atlas.graph.storage.lock.expiry-time=500
atlas.graph.storage.lock.wait-time=300
                </graph.storage.properties>
            </properties>
            <build>
                <plugins>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-antrun-plugin</artifactId>
                        <version>1.7</version>
                        <executions>
                            <!-- package elasticsearch -->
                            <execution>
                                <id>elasticsearch</id>
                                <phase>generate-resources</phase>
                                <goals>
                                    <goal>run</goal>
                                </goals>
                                <configuration>
                                    <target name="Download Elasticsearch">
                                        <mkdir dir="${elasticsearch.dir}" />
                                        <mkdir dir="${project.basedir}/elasticsearch" />
                                        <get src="${elasticsearch.tar}" dest="${project.basedir}/elasticsearch/${elasticsearch.folder}.tar.gz" usetimestamp="true" verbose="true" skipexisting="true" />
                                        <untar src="${project.basedir}/elasticsearch/${elasticsearch.folder}.tar.gz" dest="${project.build.directory}/elasticsearch.temp" compression="gzip" />
                                        <copy todir="${elasticsearch.dir}">
                                            <fileset dir="${project.build.directory}/elasticsearch.temp/${elasticsearch.folder}">
                                                <include name="**/*" />
                                            </fileset>
                                        </copy>
                                    </target>
                                </configuration>
                            </execution>
                        </executions>
                    </plugin>
                </plugins>
            </build>
        </profile>

        <!-- profile to configure external hbase and solr  with the distribution -->
        <profile>
            <id>external-hbase-solr</id>
            <activation>
                <activeByDefault>true</activeByDefault>
            </activation>
        </profile>

        <!-- profile to package and configure embedded hbase and solr with the distribution -->
        <profile>
            <id>embedded-hbase-solr</id>
            <activation>
                <activeByDefault>false</activeByDefault>
            </activation>
            <properties>
                <cassandra.embedded>false</cassandra.embedded>
                <graph.index.properties>#Solr
#Solr cloud mode properties
atlas.graph.index.search.solr.mode=cloud
atlas.graph.index.search.solr.zookeeper-url=localhost:2181
atlas.graph.index.search.solr.zookeeper-connect-timeout=60000
atlas.graph.index.search.solr.zookeeper-session-timeout=60000
atlas.graph.index.search.solr.wait-searcher=false

#Solr http mode properties
#atlas.graph.index.search.solr.mode=http
#atlas.graph.index.search.solr.http-urls=http://localhost:8983/solr
                </graph.index.properties>
                <graph.storage.properties>#Hbase
#For standalone mode , specify localhost
#for distributed mode, specify zookeeper quorum here
atlas.graph.storage.hostname=localhost
atlas.graph.storage.hbase.regions-per-server=1
                </graph.storage.properties>
                <hbase.dir>${project.build.directory}/hbase</hbase.dir>
                <hbase.embedded>true</hbase.embedded>
                <hbase.folder>hbase-${hbase.version}</hbase.folder>
                <hbase.tar>https://archive.apache.org/dist/hbase/${hbase.version}/hbase-${hbase.version}-bin.tar.gz</hbase.tar>
                <solr.dir>${project.build.directory}/solr</solr.dir>
                <solr.embedded>true</solr.embedded>
                <solr.folder>solr-${solr.version}</solr.folder>
                <solr.tar>https://archive.apache.org/dist/lucene/solr/${solr.version}/solr-${solr.version}.tgz</solr.tar>
            </properties>
            <build>
                <plugins>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-antrun-plugin</artifactId>
                        <version>1.7</version>
                        <executions>
                            <!-- package hbase -->
                            <execution>
                                <id>hbase</id>
                                <phase>generate-resources</phase>
                                <goals>
                                    <goal>run</goal>
                                </goals>
                                <configuration>
                                    <target name="Download HBase">
                                        <mkdir dir="${hbase.dir}" />
                                        <mkdir dir="${project.basedir}/hbase" />
                                        <get src="${hbase.tar}" dest="${project.basedir}/hbase/${hbase.folder}.tar.gz" usetimestamp="true" verbose="true" skipexisting="true" />
                                        <untar src="${project.basedir}/hbase/${hbase.folder}.tar.gz" dest="${project.build.directory}/hbase.temp" compression="gzip" />
                                        <copy todir="${hbase.dir}">
                                            <fileset dir="${project.build.directory}/hbase.temp/${hbase.folder}">
                                                <include name="**/*" />
                                            </fileset>
                                        </copy>
                                    </target>
                                </configuration>
                            </execution>
                            <!-- package solr -->
                            <execution>
                                <id>solr</id>
                                <phase>generate-resources</phase>
                                <goals>
                                    <goal>run</goal>
                                </goals>
                                <configuration>
                                    <target name="Download SOLR">
                                        <mkdir dir="${solr.dir}" />
                                        <mkdir dir="${project.basedir}/solr" />
                                        <get src="${solr.tar}" dest="${project.basedir}/solr/${solr.folder}.tgz" usetimestamp="true" verbose="true" skipexisting="true" />
                                        <untar src="${project.basedir}/solr/${solr.folder}.tgz" dest="${project.build.directory}/solr.temp" compression="gzip" />
                                        <copy todir="${solr.dir}">
                                            <fileset dir="${project.build.directory}/solr.temp/${solr.folder}">
                                                <include name="**/*" />
                                            </fileset>
                                        </copy>
                                    </target>
                                </configuration>
                            </execution>
                        </executions>
                    </plugin>
                </plugins>
            </build>
        </profile>
        <!-- profile to package and configure embedded cassandra and solr with the distribution -->
        <profile>
            <id>embedded-cassandra-solr</id>
            <activation>
                <activeByDefault>false</activeByDefault>
            </activation>
            <properties>
                <cassandra.embedded>true</cassandra.embedded>
                <entity.repository.properties>atlas.EntityAuditRepository.impl=org.apache.atlas.repository.audit.CassandraBasedAuditRepository</entity.repository.properties>
                <graph.index.properties>#Solr
#Solr cloud mode properties
atlas.graph.index.search.solr.mode=cloud
atlas.graph.index.search.solr.zookeeper-url=localhost:2181
atlas.graph.index.search.solr.zookeeper-connect-timeout=60000
atlas.graph.index.search.solr.zookeeper-session-timeout=60000
atlas.graph.index.search.solr.wait-searcher=false

#Solr http mode properties
#atlas.graph.index.search.solr.mode=http
#atlas.graph.index.search.solr.http-urls=http://localhost:8983/solr
                </graph.index.properties>
                <graph.storage.backend>embeddedcassandra</graph.storage.backend>
                <graph.storage.properties>#Cassandra
atlas.graph.storage.conf-file=${sys:atlas.home}/conf/cassandra.yml
                </graph.storage.properties>
                <hbase.embedded>false</hbase.embedded>
                <solr.embedded>true</solr.embedded>
                <solr.dir>${project.build.directory}/solr</solr.dir>
                <solr.folder>solr-${solr.version}</solr.folder>
                <solr.tar>https://archive.apache.org/dist/lucene/solr/${solr.version}/solr-${solr.version}.tgz</solr.tar>
                <zk.dir>${project.build.directory}/zk</zk.dir>
                <zk.folder>apache-zookeeper-${zookeeper.version}-bin</zk.folder>
                <zk.tar>https://archive.apache.org/dist/zookeeper/zookeeper-${zookeeper.version}/apache-zookeeper-${zookeeper.version}-bin.tar.gz</zk.tar>
            </properties>
            <build>
                <plugins>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-antrun-plugin</artifactId>
                        <version>1.7</version>
                        <executions>
                            <!-- package solr -->
                            <execution>
                                <id>solr</id>
                                <phase>generate-resources</phase>
                                <goals>
                                    <goal>run</goal>
                                </goals>
                                <configuration>
                                    <target name="Download SOLR">
                                        <mkdir dir="${solr.dir}" />
                                        <mkdir dir="${project.basedir}/solr" />
                                        <get src="${solr.tar}" dest="${project.basedir}/solr/${solr.folder}.tgz" usetimestamp="true" verbose="true" skipexisting="true" />
                                        <untar src="${project.basedir}/solr/${solr.folder}.tgz" dest="${project.build.directory}/solr.temp" compression="gzip" />
                                        <copy todir="${solr.dir}">
                                            <fileset dir="${project.build.directory}/solr.temp/${solr.folder}">
                                                <include name="**/*" />
                                            </fileset>
                                        </copy>
                                    </target>
                                </configuration>
                            </execution>
                            <!-- package zookeeper -->
                            <execution>
                                <id>zk</id>
                                <phase>generate-resources</phase>
                                <goals>
                                    <goal>run</goal>
                                </goals>
                                <configuration>
                                    <target name="Download zookeeper">
                                        <mkdir dir="${zk.dir}" />
                                        <mkdir dir="${project.basedir}/zk" />
                                        <get src="${zk.tar}" dest="${project.basedir}/zk/${zk.folder}.tgz" usetimestamp="true" verbose="true" skipexisting="true" />
                                        <untar src="${project.basedir}/zk/${zk.folder}.tgz" dest="${project.build.directory}/zk.temp" compression="gzip" />
                                        <copy todir="${zk.dir}">
                                            <fileset dir="${project.build.directory}/zk.temp/${zk.folder}">
                                                <include name="**/*" />
                                            </fileset>
                                        </copy>
                                    </target>
                                </configuration>
                            </execution>
                        </executions>
                    </plugin>
                </plugins>
            </build>
        </profile>
    </profiles>

    <build>
        <outputDirectory>target</outputDirectory>
        <resources>
            <resource>
                <directory>src/bin</directory>
                <filtering>true</filtering>
                <includes>
                    <include>**/*.py</include>
                </includes>
                <targetPath>bin</targetPath>
            </resource>
            <resource>
                <directory>src/conf</directory>
                <filtering>true</filtering>
                <targetPath>conf</targetPath>
            </resource>
        </resources>
        <plugins>
            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>exec-maven-plugin</artifactId>
                <version>1.2.1</version>
                <inherited>false</inherited>
                <executions>
                    <execution>
                        <configuration>
                            <skip>${skipTests}</skip>
                            <executable>python</executable>
                            <workingDirectory>src/test/python</workingDirectory>
                            <arguments>
                                <argument>unitTests.py</argument>
                            </arguments>
                            <environmentVariables>
                                <PYTHONPATH>${python.path.l}</PYTHONPATH>
                            </environmentVariables>
                        </configuration>
                        <id>python-test</id>
                        <phase>test</phase>
                        <goals>
                            <goal>exec</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>

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

    <!--Add a dependency here to ensure this module is the final one built-->
    <dependencies>
        <dependency>
            <groupId>org.apache.atlas</groupId>
            <artifactId>storm-bridge</artifactId>
        </dependency>
    </dependencies>
</project>
