<?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">
  <modelVersion>4.0.0</modelVersion>
  <parent>
    <artifactId>drill-root</artifactId>
    <groupId>org.apache.drill</groupId>
    <version>1.0.0-m1-incubating-SNAPSHOT</version>
  </parent>

  <groupId>org.apache.drill</groupId>
  <artifactId>distribution</artifactId>
  <packaging>pom</packaging>
  <name>Packaging and Distribution Assembly</name>

  
  <dependencies>
    <dependency>
      <groupId>org.apache.drill.exec</groupId>
      <artifactId>java-exec</artifactId>
      <version>${project.version}</version>
    </dependency>
    <dependency>
      <groupId>org.apache.drill.exec</groupId>
      <artifactId>netty-bufferl</artifactId>
      <version>4.0.7.Final</version>
    </dependency>
    <dependency>
      <groupId>org.apache.drill.exec</groupId>
      <artifactId>ref</artifactId>
      <version>${project.version}</version>
    </dependency>
    <dependency>
      <groupId>org.apache.drill</groupId>
      <artifactId>common</artifactId>
      <version>${project.version}</version>
    </dependency>
    <dependency>
      <groupId>org.apache.drill</groupId>
      <artifactId>sqlparser</artifactId>
      <version>${project.version}</version>
    </dependency>
    <dependency>
      <groupId>com.google.protobuf</groupId>
      <artifactId>protobuf-java</artifactId>
      <version>2.4.1</version>
    </dependency>
    <dependency>
      <groupId>de.huxhorn.lilith</groupId>
      <artifactId>de.huxhorn.lilith.logback.appender.multiplex-classic</artifactId>
      <version>0.9.42.1</version>
      <scope>test</scope>
    </dependency>
  </dependencies>

  <build>
    <plugins>
      <plugin>
        <groupId>org.apache.rat</groupId>
        <artifactId>apache-rat-plugin</artifactId>
        <inherited>true</inherited>
        <configuration>
          <excludes>
            <exclude>**/conffiles</exclude>
            <exclude>**/control</exclude>
            <exclude>**/*.json</exclude>
            <exclude>**/hadoop-excludes.txt</exclude>
          </excludes>
        </configuration>
      </plugin>
    
      <plugin>
        <artifactId>maven-assembly-plugin</artifactId>
        <executions>
          <execution>
            <id>distro-assembly</id>
            <phase>package</phase>
            <goals>
              <goal>single</goal>
            </goals>
            <configuration>
              <descriptors>
                <descriptor>src/assemble/bin.xml</descriptor>
              </descriptors>
              <finalName>apache-drill-${project.version}</finalName>
              <tarLongFileMode>gnu</tarLongFileMode>
            </configuration>
          </execution>
        </executions>
      </plugin>
    </plugins>
  </build>



  <profiles>
    <!-- START SNIPPET: release-profile -->
    <profile>
      <id>drill-release</id>
      <build>
        <plugins>
          <!-- We want to deploy the artifact to a staging location for perusal -->
          <plugin>
            <inherited>true</inherited>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-deploy-plugin</artifactId>
            <configuration>
              <updateReleaseInfo>true</updateReleaseInfo>
            </configuration>
          </plugin>
          <!-- We want to sign the artifact, the POM, and all attached artifacts -->
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-gpg-plugin</artifactId>
            <configuration>
              <passphrase>${gpg.passphrase}</passphrase>
              <useAgent>${gpg.useagent}</useAgent>
            </configuration>
            <executions>
              <execution>
                <goals>
                  <goal>sign</goal>
                </goals>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
    </profile>
    <!-- END SNIPPET: release-profile -->
    
    <profile>
      <id>rpm</id>
      <build>
        <plugins>
          <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>rpm-maven-plugin</artifactId>
            <version>2.1-alpha-3</version>
            <executions>
              <execution>
                <id>generate-rpm</id>
                <goals>
                  <goal>rpm</goal>
                </goals>
              </execution>
            </executions>
            <configuration>
              <copyright>2013 ASF</copyright>
              <group>Apache Software Foundation</group>
              <prefix>/opt</prefix>
              <release>SNAPSHOT</release>
              <version>1.0</version>
              <name>drill</name>
              <mappings>
                <mapping>
                  <directory>/opt/drill/bin</directory>
                  <sources>
                    <source>
                      <location>target/drill-${project.version}-bin/drill-${project.version}/bin</location>
                    </source>
                  </sources>
                </mapping>
                <mapping>
                  <directory>/opt/drill/lib</directory>
                  <sources>
                    <source>
                      <location>target/drill-${project.version}-bin/drill-${project.version}/lib</location>
                    </source>
                  </sources>
                </mapping>
                <mapping>
                  <directory>/opt/drill/jars</directory>
                  <sources>
                    <source>
                      <location>target/drill-${project.version}-bin/drill-${project.version}/jars</location>
                    </source>
                  </sources>
                </mapping>
                <mapping>
                  <directory>/etc/drill/conf</directory>
                  <sources>
                    <source>
                      <location>target/drill-${project.version}-bin/drill-${project.version}/conf</location>
                    </source>
                  </sources>
                  <configuration>true</configuration>
                </mapping>
                <mapping>
                  <directory>/etc/init.d/</directory>
                  <sources>
                    <source>
                      <location>src/resources/drillbit</location>
                    </source>
                  </sources>
                  <directoryIncluded>false</directoryIncluded>
                </mapping>
              </mappings>
            </configuration>
          </plugin>
        </plugins>
      </build>
    </profile>
    <profile>
      <id>deb</id>
      <build>
        <plugins>
          <plugin>
            <artifactId>jdeb</artifactId>
            <groupId>org.vafer</groupId>
            <version>1.0</version>
            <executions>
              <execution>
                <phase>package</phase>
                <goals>
                  <goal>jdeb</goal>
                </goals>
                <configuration>
                  <deb>target/drill-${project.version}.deb</deb>
                  <dataSet>
                    <data>
                      <src>target/drill-${project.version}-bin/drill-${project.version}/lib</src>
                      <type>directory</type>
                      <mapper>
                        <type>perm</type>
                        <prefix>/opt/drill/lib/</prefix>
                      </mapper>
                    </data>
                    <data>
                      <src>target/drill-${project.version}-bin/drill-${project.version}/jars</src>
                      <type>directory</type>
                      <mapper>
                        <type>perm</type>
                        <prefix>/opt/drill/jars/</prefix>
                      </mapper>
                    </data>
                    <data>
                      <src>target/drill-${project.version}-bin/drill-${project.version}/bin</src>
                      <type>directory</type>
                      <mapper>
                        <type>perm</type>
                        <prefix>/opt/drill/bin/</prefix>
                        <filemode>755</filemode>
                      </mapper>
                    </data>
                    <data>
                      <src>target/drill-${project.version}-bin/drill-${project.version}/conf</src>
                      <type>directory</type>
                      <mapper>
                        <type>perm</type>
                        <prefix>/etc/drill/conf</prefix>
                        <filemode>755</filemode>
                      </mapper>
                    </data>
                    <data>
                      <src>src/resources/drillbit</src>
                      <dst>/etc/init.d/drillbit</dst>
                      <type>file</type>
                      <mapper>
                        <type>perm</type>
                        <filemode>755</filemode>
                      </mapper>
                    </data>
                  </dataSet>
                </configuration>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
    </profile>
  </profiles>

</project>
