<?xml version="1.0"?>
<!--
   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-logsearch</artifactId>
    <groupId>org.apache.ambari</groupId>
    <version>2.7.1.0.0</version>
  </parent>
  <name>Ambari Logsearch Assembly</name>
  <url>http://maven.apache.org</url>
  <modelVersion>4.0.0</modelVersion>
  <properties>
    <mapping.base.path>/usr/lib</mapping.base.path>
    <logsearch.portal.package.name>ambari-logsearch-portal</logsearch.portal.package.name>
    <logsearch.portal.mapping.path>${mapping.base.path}/ambari-logsearch-portal</logsearch.portal.mapping.path>
    <logsearch.server.dir>${project.basedir}/../ambari-logsearch-server</logsearch.server.dir>
    <logsearch.logfeeder.package.name>ambari-logsearch-logfeeder</logsearch.logfeeder.package.name>
    <logsearch.logfeeder.mapping.path>${mapping.base.path}/ambari-logsearch-logfeeder</logsearch.logfeeder.mapping.path>
    <logsearch.logfeeder.dir>${project.basedir}/../ambari-logsearch-logfeeder</logsearch.logfeeder.dir>
    <logsearch.portal.conf.mapping.path>/etc/${logsearch.portal.package.name}/conf</logsearch.portal.conf.mapping.path>
    <logsearch.logfeeder.conf.mapping.path>/etc/${logsearch.logfeeder.package.name}/conf
    </logsearch.logfeeder.conf.mapping.path>
  </properties>
  <artifactId>ambari-logsearch-assembly</artifactId>
  <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>logsearch-portal</id>
                <phase>package</phase>
                <goals>
                  <goal>rpm</goal>
                </goals>
                <configuration>
                  <group>Development</group>
                  <name>${logsearch.portal.package.name}</name>
                  <postinstallScriptlet>
                    <scriptFile>${project.basedir}/src/main/package/rpm/portal/postinstall.sh</scriptFile>
                    <fileEncoding>utf-8</fileEncoding>
                  </postinstallScriptlet>
                  <postremoveScriptlet>
                    <scriptFile>${project.basedir}/src/main/package/rpm/portal/postremove.sh</scriptFile>
                    <fileEncoding>utf-8</fileEncoding>
                  </postremoveScriptlet>
                  <preinstallScriptlet>
                    <scriptFile>${project.basedir}/src/main/package/rpm/portal/preinstall.sh</scriptFile>
                    <fileEncoding>utf-8</fileEncoding>
                  </preinstallScriptlet>
                  <mappings>
                    <mapping>
                      <directory>${logsearch.portal.mapping.path}</directory>
                      <sources>
                        <source>
                          <location>${logsearch.server.dir}/target/package</location>
                          <excludes>
                            <exclude>libs/checkstyle*.jar</exclude>
                          </excludes>
                        </source>
                      </sources>
                    </mapping>
                  </mappings>
                </configuration>
              </execution>
              <execution>
                <id>logsearch-logfeeder</id>
                <phase>package</phase>
                <goals>
                  <goal>rpm</goal>
                </goals>
                <configuration>
                  <group>Development</group>
                  <name>${logsearch.logfeeder.package.name}</name>
                  <postinstallScriptlet>
                    <scriptFile>${project.basedir}/src/main/package/rpm/logfeeder/postinstall.sh</scriptFile>
                    <fileEncoding>utf-8</fileEncoding>
                  </postinstallScriptlet>
                  <postremoveScriptlet>
                    <scriptFile>${project.basedir}/src/main/package/rpm/logfeeder/postremove.sh</scriptFile>
                    <fileEncoding>utf-8</fileEncoding>
                  </postremoveScriptlet>
                  <preinstallScriptlet>
                    <scriptFile>${project.basedir}/src/main/package/rpm/logfeeder/preinstall.sh</scriptFile>
                    <fileEncoding>utf-8</fileEncoding>
                  </preinstallScriptlet>
                  <mappings>
                    <mapping>
                      <directory>${logsearch.logfeeder.mapping.path}</directory>
                      <sources>
                        <source>
                          <location>${logsearch.logfeeder.dir}/target/package</location>
                          <excludes>
                            <exclude>libs/checkstyle*.jar</exclude>
                          </excludes>
                        </source>
                      </sources>
                    </mapping>
                  </mappings>
                </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>portal/postinst</exclude>
                        <exclude>portal/postrm</exclude>
                        <exclude>portal/preinstall</exclude>
                        <exclude>logfeeder/postinst</exclude>
                        <exclude>logfeeder/postrm</exclude>
                        <exclude>logfeeder/preinstall</exclude>
                      </excludes>
                      <filtering>false</filtering>
                    </resource>
                    <resource>
                      <directory>${project.basedir}/src/main/package/deb</directory>
                      <includes>
                        <include>portal/postinst</include>
                        <include>portal/postrm</include>
                        <include>portal/preinstall</include>
                        <include>logfeeder/postinst</include>
                        <include>logfeeder/postrm</include>
                        <include>logfeeder/preinstall</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>
                <id>jdeb-portal</id>
                <phase>package</phase>
                <goals>
                  <goal>jdeb</goal>
                </goals>
                <configuration>
                  <controlDir>${basedir}/src/main/package/deb/portal</controlDir>
                  <deb>${basedir}/target/${logsearch.portal.package.name}_${package-version}-${package-release}.deb
                  </deb>
                  <skip>false</skip>
                  <skipPOMs>false</skipPOMs>
                  <dataSet>
                    <data>
                      <src>${logsearch.server.dir}/target/ambari-logsearch-portal.tar.gz</src>
                      <type>archive</type>
                      <mapper>
                        <prefix>${logsearch.portal.mapping.path}</prefix>
                        <type>perm</type>
                        <user>root</user>
                        <group>root</group>
                      </mapper>
                      <excludes>
                        libs/checkstyle*.jar
                      </excludes>
                    </data>
                  </dataSet>
                </configuration>
              </execution>

              <execution>
                <id>jdeb-logfeeder</id>
                <phase>package</phase>
                <goals>
                  <goal>jdeb</goal>
                </goals>
                <configuration>
                  <controlDir>${basedir}/src/main/package/deb/logfeeder</controlDir>
                  <deb>${basedir}/target/${logsearch.logfeeder.package.name}_${package-version}-${package-release}.deb
                  </deb>
                  <skip>false</skip>
                  <skipPOMs>false</skipPOMs>
                  <dataSet>
                    <data>
                      <src>${logsearch.logfeeder.dir}/target/ambari-logsearch-logfeeder.tgz</src>
                      <type>archive</type>
                      <mapper>
                        <prefix>${logsearch.logfeeder.mapping.path}</prefix>
                        <type>perm</type>
                        <user>root</user>
                        <group>root</group>
                      </mapper>
                      <excludes>
                        libs/checkstyle*.jar
                      </excludes>
                    </data>
                  </dataSet>
                </configuration>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
    </profile>
  </profiles>

  <dependencies>
    <dependency>
      <groupId>org.apache.ambari</groupId>
      <artifactId>ambari-logsearch-server</artifactId>
      <version>${project.version}</version>
    </dependency>
    <dependency>
      <groupId>org.apache.ambari</groupId>
      <artifactId>ambari-logsearch-web</artifactId>
      <version>${project.version}</version>
    </dependency>
    <dependency>
      <groupId>org.apache.ambari</groupId>
      <artifactId>ambari-logsearch-logfeeder</artifactId>
      <version>${project.version}</version>
    </dependency>
  </dependencies>

</project>
