<?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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <parent>
    <artifactId>ambari-infra</artifactId>
    <groupId>org.apache.ambari</groupId>
    <version>${revision}</version>
  </parent>
  <modelVersion>4.0.0</modelVersion>
  <artifactId>ambari-infra-assembly</artifactId>
  <name>Ambari Infra Assembly</name>
  <url>http://maven.apache.org</url>

  <properties>
    <mapping.base.path>/usr/lib</mapping.base.path>
    <!-- original url: <solr.tar>http://archive.apache.org/dist/lucene/solr/${solr.version}/solr-${solr.version}.tgz</solr.tar> -->
    <solr.tar>http://public-repo-1.hortonworks.com/ARTIFACTS/dist/lucene/solr/${solr.version}/solr-${solr.version}.tgz</solr.tar>
    <solr.mapping.path>${mapping.base.path}/ambari-infra-solr</solr.mapping.path>
    <solr.package.name>ambari-infra-solr</solr.package.name>
    <solr.client.package.name>ambari-infra-solr-client</solr.client.package.name>
    <solr.client.mapping.path>${mapping.base.path}/${solr.client.package.name}</solr.client.mapping.path>
    <solr.client.dir>${project.basedir}/../ambari-infra-solr-client</solr.client.dir>
    <infra.solr.plugin.dir>${project.basedir}/../ambari-infra-solr-plugin</infra.solr.plugin.dir>
    <infra-manager.package.name>ambari-infra-manager</infra-manager.package.name>
    <infra-manager.dir>${project.basedir}/../ambari-infra-manager</infra-manager.dir>
    <infra-manager.mapping.path>${mapping.base.path}/${infra-manager.package.name}</infra-manager.mapping.path>
    <infra-manager.conf.mapping.path>${infra-manager.mapping.path}/conf</infra-manager.conf.mapping.path>
    <common-fileupload.location.url>http://central.maven.org/maven2/commons-fileupload/commons-fileupload/1.3.3/commons-fileupload-1.3.3.jar</common-fileupload.location.url>
    <common-fileupload.jar.name>commons-fileupload-1.3.3.jar</common-fileupload.jar.name>
    <common-fileupload.old.jar.name>commons-fileupload-1.3.2.jar</common-fileupload.old.jar.name>
    <jenkins.docker.folder>../jenkins/containers</jenkins.docker.folder>
  </properties>

  <profiles>

    <profile>
      <id>rpm</id>
      <properties>
        <download.solr>true</download.solr>
      </properties>
      <activation>
        <property>
          <name>build-rpm</name>
        </property>
      </activation>
      <build>
        <plugins>
          <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>rpm-maven-plugin</artifactId>
            <version>2.1.4</version>
            <configuration>
              <copyright>2012, Apache Software Foundation</copyright>
              <group>Development</group>
              <description>Maven Recipe: RPM Package.</description>
              <autoRequires>false</autoRequires>
              <prefix>/</prefix>
              <needarch>noarch</needarch>
              <targetOS>linux</targetOS>

              <version>${package-version}</version>
              <release>${package-release}</release>

              <defaultUsername>root</defaultUsername>
              <defaultGroupname>root</defaultGroupname>
            </configuration>
            <executions>
              <execution>
                <id>infra-solr</id>
                <phase>package</phase>
                <goals>
                  <goal>rpm</goal>
                </goals>
                <configuration>
                  <group>Development</group>
                  <name>${solr.package.name}</name>
                  <mappings>
                    <mapping>
                      <directory>${solr.mapping.path}</directory>
                      <sources>
                        <source>
                          <location>${project.build.directory}/solr</location>
                        </source>
                      </sources>
                    </mapping>
                  </mappings>
                </configuration>
              </execution>
              <execution>
                <id>infra-solr-client</id>
                <phase>package</phase>
                <goals>
                  <goal>rpm</goal>
                </goals>
                <configuration>
                  <group>Development</group>
                  <name>${solr.client.package.name}</name>
                  <needarch>noarch</needarch>
                  <targetOS>linux</targetOS>
                  <postinstallScriptlet>
                    <scriptFile>${project.basedir}/src/main/package/rpm/solr-client/postinstall.sh</scriptFile>
                    <fileEncoding>utf-8</fileEncoding>
                  </postinstallScriptlet>
                  <mappings>
                    <mapping>
                      <directory>${solr.client.mapping.path}</directory>
                      <sources>
                        <source>
                          <location>${solr.client.dir}/target/package</location>
                          <excludes>
                            <exclude>libs/checkstyle*.jar</exclude>
                          </excludes>
                        </source>
                      </sources>
                    </mapping>
                  </mappings>
                </configuration>
              </execution>
              <execution>
                <id>infra-manager</id>
                <phase>package</phase>
                <goals>
                  <goal>rpm</goal>
                </goals>
                <configuration>
                  <group>Development</group>
                  <name>${infra-manager.package.name}</name>
                  <postinstallScriptlet>
                    <scriptFile>${project.basedir}/src/main/package/rpm/manager/postinstall.sh</scriptFile>
                    <fileEncoding>utf-8</fileEncoding>
                  </postinstallScriptlet>
                  <postremoveScriptlet>
                    <scriptFile>${project.basedir}/src/main/package/rpm/manager/postremove.sh</scriptFile>
                    <fileEncoding>utf-8</fileEncoding>
                  </postremoveScriptlet>
                  <mappings>
                    <mapping>
                      <directory>${infra-manager.mapping.path}</directory>
                      <sources>
                        <source>
                          <location>${infra-manager.dir}/target/package</location>
                        </source>
                      </sources>
                    </mapping>
                  </mappings>
                </configuration>
              </execution>
            </executions>
          </plugin>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-antrun-plugin</artifactId>
            <version>1.7</version>
            <executions>
              <execution>
                <phase>generate-resources</phase>
                <goals>
                  <goal>run</goal>
                </goals>
                <configuration>
                  <target>
                    <ant antfile="build.xml">
                      <target name="package"/>
                    </ant>
                  </target>
                </configuration>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
    </profile>
    <profile>
      <id>deb</id>

      <activation>
        <property>
          <name>build-deb</name>
        </property>
      </activation>

      <build>
        <plugins>
          <plugin>
            <artifactId>maven-resources-plugin</artifactId>
            <version>2.7</version>

            <executions>
              <execution>
                <id>copy-resources</id>
                <phase>package</phase>
                <goals>
                  <goal>copy-resources</goal>
                </goals>
                <configuration>
                  <outputDirectory>${project.build.directory}/resources/deb</outputDirectory>
                  <resources>
                    <resource>
                      <directory>${project.basedir}/src/main/package/deb</directory>
                      <excludes>
                        <exclude>solr/postinst</exclude>
                        <exclude>solr-client/postinst</exclude>
                      </excludes>
                      <filtering>false</filtering>
                    </resource>
                    <resource>
                      <directory>${project.basedir}/src/main/package/deb</directory>
                      <includes>
                        <include>solr/postinst</include>
                        <include>solr-client/postinst</include>
                      </includes>
                      <filtering>true</filtering>
                    </resource>
                  </resources>
                </configuration>
              </execution>
            </executions>
          </plugin>
          <plugin>
            <groupId>org.vafer</groupId>
            <artifactId>jdeb</artifactId>
            <version>1.4</version>
            <executions>
              <execution>
                <phase>package</phase>
                <id>jdeb-solr</id>
                <goals>
                  <goal>jdeb</goal>
                </goals>
                <configuration>
                  <controlDir>${basedir}/src/main/package/deb/solr</controlDir>
                  <deb>${basedir}/target/${solr.package.name}_${package-version}-${package-release}.deb</deb>
                  <skip>false</skip>
                  <skipPOMs>false</skipPOMs>
                  <dataSet>
                    <data>
                      <src>${project.build.directory}/solr</src>
                      <type>directory</type>
                      <mapper>
                        <type>perm</type>
                        <user>root</user>
                        <group>root</group>
                        <prefix>${solr.mapping.path}</prefix>
                      </mapper>
                      <excludes>
                        bin/**,server/scripts/**
                      </excludes>
                    </data>
                    <data>
                      <src>${project.build.directory}/solr</src>
                      <type>directory</type>
                      <mapper>
                        <type>perm</type>
                        <user>root</user>
                        <group>root</group>
                        <filemode>755</filemode>
                        <prefix>${solr.mapping.path}</prefix>
                      </mapper>
                      <includes>
                        bin/**,server/scripts/**
                      </includes>
                    </data>
                  </dataSet>
                </configuration>
              </execution>

              <execution>
                <phase>package</phase>
                <id>jdeb-solr-client</id>
                <goals>
                  <goal>jdeb</goal>
                </goals>
                <configuration>
                  <controlDir>${basedir}/src/main/package/deb/solr-client</controlDir>
                  <deb>${basedir}/target/${solr.client.package.name}_${package-version}-${package-release}.deb</deb>
                  <skip>false</skip>
                  <skipPOMs>false</skipPOMs>
                  <dataSet>
                    <data>
                      <src>${solr.client.dir}/target/ambari-infra-solr-client.tar.gz</src>
                      <type>archive</type>
                      <mapper>
                        <type>perm</type>
                        <user>root</user>
                        <group>root</group>
                        <prefix>${solr.client.mapping.path}</prefix>
                      </mapper>
                      <excludes>libs/checkstyle*.jar</excludes>
                    </data>
                  </dataSet>
                </configuration>
              </execution>

              <execution>
                <phase>package</phase>
                <id>jdeb-infra-manager</id>
                <goals>
                  <goal>jdeb</goal>
                </goals>
                <configuration>
                  <controlDir>${basedir}/src/main/package/deb/manager</controlDir>
                  <deb>${basedir}/target/${infra-manager.package.name}_${package-version}-${package-release}.deb</deb>
                  <skip>false</skip>
                  <skipPOMs>false</skipPOMs>
                  <dataSet>
                    <data>
                      <src>${infra-manager.dir}/target/ambari-infra-manager.tar.gz</src>
                      <type>archive</type>
                      <mapper>
                        <type>perm</type>
                        <user>root</user>
                        <group>root</group>
                        <prefix>${infra-manager.mapping.path}</prefix>
                      </mapper>
                    </data>
                  </dataSet>
                </configuration>
              </execution>
            </executions>
          </plugin>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-antrun-plugin</artifactId>
            <version>1.7</version>
            <executions>
              <execution>
                <phase>generate-resources</phase>
                <goals>
                  <goal>run</goal>
                </goals>
                <configuration>
                  <target>
                    <ant antfile="build.xml">
                      <target name="package"/>
                    </ant>
                  </target>
                </configuration>
              </execution>
            </executions>
          </plugin>
          <plugin>
            <groupId>io.fabric8</groupId>
            <artifactId>docker-maven-plugin</artifactId>
            <configuration>
              <verbose>true</verbose>
              <images>
                <image>
                  <name>apache/ambari-infra-solr:latest</name>
                  <build>
                    <dockerFileDir>${project.build.directory}/docker-infra-solr</dockerFileDir>
                  </build>
                </image>
              </images>
            </configuration>
          </plugin>
        </plugins>
      </build>
    </profile>
  </profiles>

  <dependencies>
    <dependency>
      <groupId>org.apache.ambari</groupId>
      <artifactId>ambari-infra-solr-client</artifactId>
      <version>${project.version}</version>
    </dependency>
    <dependency>
      <groupId>org.apache.ambari</groupId>
      <artifactId>ambari-infra-solr-plugin</artifactId>
      <version>${project.version}</version>
    </dependency>
    <dependency>
      <groupId>org.apache.ambari</groupId>
      <artifactId>ambari-infra-manager</artifactId>
      <version>${project.version}</version>
    </dependency>
  </dependencies>


</project>