<?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">
  <parent>
    <artifactId>ambari-infra</artifactId>
    <groupId>org.apache.ambari</groupId>
    <version>2.7.5.0.0</version>
  </parent>
  <modelVersion>4.0.0</modelVersion>
  <artifactId>ambari-infra-assembly</artifactId>
  <name>Ambari Infra Assembly</name>

  <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>https://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>https://repo1.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>
  </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>
              <license>2012, Apache Software Foundation</license>
              <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 name="Download Solr">
                    <get
                      src="${solr.tar}"
                      dest="${project.build.directory}/solr.tgz"
                      usetimestamp="true"
                    />
                    <untar
                      src="${project.build.directory}/solr.tgz"
                      dest="${project.build.directory}/"
                      compression="gzip"
                    />
                    <move todir="${project.build.directory}/solr">
                      <fileset dir="${project.build.directory}/solr-${solr.version}"/>
                    </move>

                    <delete file="${project.build.directory}/solr/server/solr-webapp/webapp/WEB-INF/lib/${common-fileupload.old.jar.name}"/>
                    <get src="${common-fileupload.location.url}" dest="target/${common-fileupload.jar.name}" usetimestamp="true"/>
                    <move file="target/${common-fileupload.jar.name}"
                          toDir="${project.build.directory}/solr/server/solr-webapp/webapp/WEB-INF/lib/"/>

                    <copy file="${infra.solr.plugin.dir}/target/ambari-infra-solr-plugin-${project.version}.jar"
                          toDir="${project.build.directory}/solr/server/solr-webapp/webapp/WEB-INF/lib/"/>
                    <copy file="${infra.solr.plugin.dir}/target/libs/ambari-metrics-common-${project.version}.jar"
                          toDir="${project.build.directory}/solr/server/solr-webapp/webapp/WEB-INF/lib/"/>
                    <copy file="${infra.solr.plugin.dir}/target/libs/commons-logging-1.1.1.jar"
                          toDir="${project.build.directory}/solr/server/solr-webapp/webapp/WEB-INF/lib/"/>
                    <chmod file="${project.build.directory}/solr/bin/**" perm="755"/>
                    <chmod file="${project.build.directory}/solr/server/scripts/**" perm="755"/>
                  </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>
            <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 name="Download Solr">
                    <get
                      src="${solr.tar}"
                      dest="${project.build.directory}/solr.tgz"
                      usetimestamp="true"
                    />
                    <untar
                      src="${project.build.directory}/solr.tgz"
                      dest="${project.build.directory}/"
                      compression="gzip"
                    />
                    <move todir="${project.build.directory}/solr">
                      <fileset dir="${project.build.directory}/solr-${solr.version}"/>
                    </move>

                    <delete file="${project.build.directory}/solr/server/solr-webapp/webapp/WEB-INF/lib/${common-fileupload.old.jar.name}"/>
                    <get src="${common-fileupload.location.url}" dest="target/${common-fileupload.jar.name}" usetimestamp="true"/>
                    <move file="target/${common-fileupload.jar.name}"
                          toDir="${project.build.directory}/solr/server/solr-webapp/webapp/WEB-INF/lib/"/>

                    <copy file="${infra.solr.plugin.dir}/target/ambari-infra-solr-plugin-${project.version}.jar"
                          toDir="${project.build.directory}/solr/server/solr-webapp/webapp/WEB-INF/lib/"/>
                    <copy file="${infra.solr.plugin.dir}/target/libs/ambari-metrics-common-${project.version}.jar"
                          toDir="${project.build.directory}/solr/server/solr-webapp/webapp/WEB-INF/lib/"/>
                    <copy file="${infra.solr.plugin.dir}/target/libs/commons-logging-1.1.1.jar"
                          toDir="${project.build.directory}/solr/server/solr-webapp/webapp/WEB-INF/lib/"/>
                    <chmod file="${project.build.directory}/solr/bin/**" perm="755"/>
                    <chmod file="${project.build.directory}/solr/server/scripts/**" perm="755"/>
                  </target>
                </configuration>
              </execution>
            </executions>
          </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>