<?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>submarine</artifactId>
    <groupId>org.apache.submarine</groupId>
    <version>0.5.0-SNAPSHOT</version>
    <relativePath>../../pom.xml</relativePath>
  </parent>
  <modelVersion>4.0.0</modelVersion>
  <packaging>jar</packaging>

  <name>Submarine: Spark Security</name>
  <artifactId>submarine-spark-security</artifactId>

  <properties>
    <antlr4.version>4.7</antlr4.version>
    <eclipse.jpa.version>2.5.2</eclipse.jpa.version>
    <gson.version>2.2.4</gson.version>
    <httpcomponents.httpclient.version>4.5.3</httpcomponents.httpclient.version>
    <httpcomponents.httpcore.version>4.4.6</httpcomponents.httpcore.version>
    <httpcomponents.httpmime.version>4.5.3</httpcomponents.httpmime.version>
    <javax.persistence.version>2.1.0</javax.persistence.version>
    <jersey-bundle.version>1.19.3</jersey-bundle.version>
    <noggit.version>0.6</noggit.version>
    <ranger.spark.package>submarine_spark_ranger_project</ranger.spark.package>
    <ranger.version>1.1.0</ranger.version>
    <ranger.major.version>1</ranger.major.version>
    <scala.version>2.11.8</scala.version>
    <scala.binary.version>2.11</scala.binary.version>
    <scalatest.version>2.2.6</scalatest.version>
    <solr.version>5.5.4</solr.version>
    <spark.version>2.3.4</spark.version>
    <spark.scope>provided</spark.scope>
    <gethostname4j.version>0.0.2</gethostname4j.version>
    <gethostname4j.scope>test</gethostname4j.scope>
    <jna.version>5.2.0</jna.version>
    <jna-platform.version>5.2.0</jna-platform.version>
    <jna.scope>test</jna.scope>
    <codehaus.jackson.version>1.9.13</codehaus.jackson.version>
  </properties>
  <dependencies>
    <dependency>
      <groupId>org.scala-lang</groupId>
      <artifactId>scala-library</artifactId>
      <version>${scala.version}</version>
      <scope>provided</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.spark</groupId>
      <artifactId>spark-catalyst_${scala.binary.version}</artifactId>
      <version>${spark.version}</version>
      <scope>${spark.scope}</scope>
      <exclusions>
        <exclusion>
          <groupId>org.spark-project.spark</groupId>
          <artifactId>*</artifactId>
        </exclusion>
        <exclusion>
          <groupId>org.scala-lang.modules</groupId>
          <artifactId>*</artifactId>
        </exclusion>
      </exclusions>
    </dependency>
    <dependency>
      <groupId>org.apache.spark</groupId>
      <artifactId>spark-hive_${scala.binary.version}</artifactId>
      <version>${spark.version}</version>
      <scope>${spark.scope}</scope>
      <exclusions>
        <exclusion>
          <groupId>org.spark-project.spark</groupId>
          <artifactId>*</artifactId>
        </exclusion>
      </exclusions>
    </dependency>
    <dependency>
      <groupId>org.apache.ranger</groupId>
      <artifactId>ranger-plugins-common</artifactId>
      <version>${ranger.version}</version>
      <exclusions>
        <exclusion>
          <groupId>*</groupId>
          <artifactId>*</artifactId>
        </exclusion>
      </exclusions>
    </dependency>
    <dependency>
      <groupId>org.apache.ranger</groupId>
      <artifactId>ranger-plugins-cred</artifactId>
      <version>${ranger.version}</version>
      <exclusions>
        <exclusion>
          <groupId>*</groupId>
          <artifactId>*</artifactId>
        </exclusion>
      </exclusions>
    </dependency>
    <dependency>
      <groupId>org.apache.ranger</groupId>
      <artifactId>ranger-plugins-audit</artifactId>
      <version>${ranger.version}</version>
      <exclusions>
        <exclusion>
          <groupId>*</groupId>
          <artifactId>*</artifactId>
        </exclusion>
      </exclusions>
    </dependency>
    <dependency>
      <groupId>org.apache.hive</groupId>
      <artifactId>hive-exec</artifactId>
      <version>2.3.4</version>
      <exclusions>
        <exclusion>
          <groupId>*</groupId>
          <artifactId>*</artifactId>
        </exclusion>
      </exclusions>
    </dependency>
    <dependency>
      <groupId>org.eclipse.persistence</groupId>
      <artifactId>eclipselink</artifactId>
      <version>${eclipse.jpa.version}</version>
      <exclusions>
        <exclusion>
          <groupId>*</groupId>
          <artifactId>*</artifactId>
        </exclusion>
      </exclusions>
    </dependency>
    <dependency>
      <groupId>com.google.code.gson</groupId>
      <artifactId>gson</artifactId>
      <version>${gson.version}</version>
      <exclusions>
        <exclusion>
          <groupId>*</groupId>
          <artifactId>*</artifactId>
        </exclusion>
      </exclusions>
    </dependency>
    <dependency>
      <groupId>org.eclipse.persistence</groupId>
      <artifactId>javax.persistence</artifactId>
      <version>${javax.persistence.version}</version>
      <exclusions>
        <exclusion>
          <groupId>*</groupId>
          <artifactId>*</artifactId>
        </exclusion>
      </exclusions>
    </dependency>
    <dependency>
      <groupId>org.apache.httpcomponents</groupId>
      <artifactId>httpcore</artifactId>
      <version>${httpcomponents.httpcore.version}</version>
      <exclusions>
        <exclusion>
          <groupId>*</groupId>
          <artifactId>*</artifactId>
        </exclusion>
      </exclusions>
    </dependency>
    <dependency>
      <groupId>org.apache.httpcomponents</groupId>
      <artifactId>httpmime</artifactId>
      <version>${httpcomponents.httpmime.version}</version>
      <exclusions>
        <exclusion>
          <groupId>*</groupId>
          <artifactId>*</artifactId>
        </exclusion>
      </exclusions>
    </dependency>
    <dependency>
      <groupId>org.apache.httpcomponents</groupId>
      <artifactId>httpclient</artifactId>
      <version>${httpcomponents.httpclient.version}</version>
      <exclusions>
        <exclusion>
          <groupId>*</groupId>
          <artifactId>*</artifactId>
        </exclusion>
      </exclusions>
    </dependency>
    <dependency>
      <groupId>com.sun.jersey</groupId>
      <artifactId>jersey-bundle</artifactId>
      <version>${jersey-bundle.version}</version>
      <exclusions>
        <exclusion>
          <groupId>*</groupId>
          <artifactId>*</artifactId>
        </exclusion>
      </exclusions>
    </dependency>
    <dependency>
      <groupId>org.noggit</groupId>
      <artifactId>noggit</artifactId>
      <version>${noggit.version}</version>
      <exclusions>
        <exclusion>
          <groupId>*</groupId>
          <artifactId>*</artifactId>
        </exclusion>
      </exclusions>
    </dependency>
    <dependency>
      <groupId>org.apache.solr</groupId>
      <artifactId>solr-solrj</artifactId>
      <version>${solr.version}</version>
      <exclusions>
        <exclusion>
          <groupId>*</groupId>
          <artifactId>*</artifactId>
        </exclusion>
      </exclusions>
    </dependency>

    <dependency>
      <groupId>org.antlr</groupId>
      <artifactId>antlr4-runtime</artifactId>
      <version>${antlr4.version}</version>
    </dependency>

    <!-- unit tests-->
    <dependency>
      <groupId>org.scalatest</groupId>
      <artifactId>scalatest_${scala.binary.version}</artifactId>
      <version>3.0.3</version>
    </dependency>

    <dependency>
      <groupId>org.apache.spark</groupId>
      <artifactId>spark-core_${scala.binary.version}</artifactId>
      <version>${spark.version}</version>
      <type>test-jar</type>
    </dependency>

    <dependency>
      <groupId>org.apache.spark</groupId>
      <artifactId>spark-hive_${scala.binary.version}</artifactId>
      <version>${spark.version}</version>
      <type>test-jar</type>
    </dependency>

    <dependency>
      <groupId>com.kstruct</groupId>
      <artifactId>gethostname4j</artifactId>
      <version>${gethostname4j.version}</version>
      <scope>${gethostname4j.scope}</scope>
    </dependency>

    <dependency>
      <groupId>net.java.dev.jna</groupId>
      <artifactId>jna</artifactId>
      <version>${jna.version}</version>
      <scope>${jna.scope}</scope>
    </dependency>

    <dependency>
      <groupId>net.java.dev.jna</groupId>
      <artifactId>jna-platform</artifactId>
      <version>${jna-platform.version}</version>
      <scope>${jna.scope}</scope>
    </dependency>

    <dependency>
      <groupId>org.codehaus.jackson</groupId>
      <artifactId>jackson-jaxrs</artifactId>
      <version>${codehaus.jackson.version}</version>
      <scope>compile</scope>
    </dependency>

  </dependencies>

  <build>
    <outputDirectory>target/scala-${scala.binary.version}/classes</outputDirectory>
    <testOutputDirectory>target/scala-${scala.binary.version}/test-classes</testOutputDirectory>
    <testResources>
      <testResource>
        <directory>${project.basedir}/src/test/resources</directory>
      </testResource>
    </testResources>
    <plugins>
      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>build-helper-maven-plugin</artifactId>
        <executions>
          <execution>
            <id>add-source</id>
            <phase>generate-sources</phase>
            <goals>
              <goal>add-source</goal>
            </goals>
            <configuration>
              <sources>
                <source>ranger-${ranger.major.version}/src/main/scala</source>
                <source>target/generated-sources/antlr4</source>
              </sources>
            </configuration>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <groupId>net.alchim31.maven</groupId>
        <artifactId>scala-maven-plugin</artifactId>
        <version>3.2.2</version>
        <executions>
          <execution>
            <id>eclipse-add-source</id>
            <goals>
              <goal>add-source</goal>
            </goals>
          </execution>
          <execution>
            <id>scala-compile-first</id>
            <goals>
              <goal>compile</goal>
            </goals>
          </execution>
          <execution>
            <id>scala-test-compile-first</id>
            <goals>
              <goal>testCompile</goal>
            </goals>
          </execution>
        </executions>
        <configuration>
          <scalaVersion>${scala.version}</scalaVersion>
          <recompileMode>incremental</recompileMode>
          <useZincServer>true</useZincServer>
          <args>
            <arg>-unchecked</arg>
            <arg>-deprecation</arg>
            <arg>-feature</arg>
            <arg>-explaintypes</arg>
            <arg>-Yno-adapted-args</arg>
          </args>
          <jvmArgs>
            <jvmArg>-Xms1024m</jvmArg>
            <jvmArg>-Xmx1024m</jvmArg>
            <jvmArg>-XX:ReservedCodeCacheSize=512M</jvmArg>
          </jvmArgs>
          <javacArgs>
            <javacArg>-source</javacArg>
            <javacArg>${java.version}</javacArg>
            <javacArg>-target</javacArg>
            <javacArg>${java.version}</javacArg>
            <javacArg>-Xlint:all,-serial,-path,-try</javacArg>
          </javacArgs>
        </configuration>
      </plugin>

      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-shade-plugin</artifactId>
        <version>${plugin.shade.version}</version>
        <configuration>
          <shadedArtifactAttached>false</shadedArtifactAttached>
          <artifactSet>
            <includes>
              <include>com.google.code.gson:gson</include>
              <include>com.sun.jersey:jersey-bundle</include>
              <include>com.kstruct:gethostname4j</include>
              <include>net.java.dev.jna:jna</include>
              <include>net.java.dev.jna:jna-platform</include>
              <include>org.apache.httpcomponents:httpclient</include>
              <include>org.apache.httpcomponents:httpcore</include>
              <include>org.apache.httpcomponents:httpmime</include>
              <include>org.apache.ranger:ranger-plugins-common</include>
              <include>org.apache.ranger:ranger-plugins-cred</include>
              <include>org.apache.ranger:ranger-plugins-audit</include>
              <include>org.apache.solr:solr-solrj</include>
              <include>org.codehaus.jackson:jackson-core-asl</include>
              <include>org.codehaus.jackson:jackson-jaxrs</include>
              <include>org.codehaus.jackson:jackson-mapper-asl</include>
              <include>org.codehaus.jackson:jackson-xc</include>
              <include>org.eclipse.persistence:eclipselink</include>
              <include>org.eclipse.persistence:javax.persistence</include>
              <include>org.apache.hive:hive-exec</include>
              <include>org.noggit:noggit</include>
            </includes>
          </artifactSet>
          <filters>
            <filter>
              <artifact>org.apache.hive:hive-exec</artifact>
              <includes>
                <!-- Extract masking functions from higher version Apache Hive-->
                <include>org/apache/hadoop/hive/ql/udf/generic/**Mask**</include>
                <include>org/apache/hadoop/hive/ql/udf/generic/**Transform**</include>
              </includes>
            </filter>
          </filters>
          <relocations>
            <relocation>
              <pattern>com.sun.jersey</pattern>
              <shadedPattern>${ranger.spark.package}.com.sun.jersey</shadedPattern>
            </relocation>
            <relocation>
              <pattern>com.sun.research</pattern>
              <shadedPattern>${ranger.spark.package}.com.sun.research</shadedPattern>
            </relocation>
            <relocation>
              <pattern>com.sun.ws</pattern>
              <shadedPattern>${ranger.spark.package}.com.sun.ws</shadedPattern>
            </relocation>
            <relocation>
              <pattern>jersey.repackaged</pattern>
              <shadedPattern>${ranger.spark.package}.jersey.repackaged</shadedPattern>
            </relocation>
            <relocation>
              <pattern>javax.ws.rs</pattern>
              <shadedPattern>${ranger.spark.package}.javax.ws.rs</shadedPattern>
            </relocation>
            <relocation>
              <pattern>org.codehaus</pattern>
              <shadedPattern>${ranger.spark.package}.org.codehaus</shadedPattern>
            </relocation>
          </relocations>
        </configuration>
        <executions>
          <execution>
            <phase>package</phase>
            <goals>
              <goal>shade</goal>
            </goals>
            <configuration>
              <transformers>
                <transformer implementation="org.apache.maven.plugins.shade.resource.ServicesResourceTransformer"/>
              </transformers>
            </configuration>
          </execution>
        </executions>
      </plugin>

      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-enforcer-plugin</artifactId>
        <configuration>
          <skip>true</skip>
        </configuration>
      </plugin>

      <!-- disable surefire -->
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-surefire-plugin</artifactId>
        <configuration>
          <skipTests>true</skipTests>
        </configuration>
      </plugin>
      <!-- enable scalatest -->
      <plugin>
        <groupId>org.scalatest</groupId>
        <artifactId>scalatest-maven-plugin</artifactId>
        <version>1.0</version>
        <configuration>
          <reportsDirectory>${project.build.directory}/surefire-reports</reportsDirectory>
          <junitxml>.</junitxml>
          <filereports>TestSuite.txt</filereports>
        </configuration>
        <executions>
          <execution>
            <id>test</id>
            <goals>
              <goal>test</goal>
            </goals>
          </execution>
        </executions>
      </plugin>

      <plugin>
        <groupId>org.antlr</groupId>
        <artifactId>antlr4-maven-plugin</artifactId>
        <version>${antlr4.version}</version>
        <executions>
          <execution>
            <goals>
              <goal>antlr4</goal>
            </goals>
          </execution>
        </executions>
        <configuration>
          <visitor>true</visitor>
          <sourceDirectory>./src/main/antlr4</sourceDirectory>
          <treatWarningsAsErrors>true</treatWarningsAsErrors>
        </configuration>
      </plugin>

      <plugin>
        <groupId>org.jacoco</groupId>
        <artifactId>jacoco-maven-plugin</artifactId>
        <version>0.8.0</version>
        <configuration>
        </configuration>
        <executions>
          <execution>
            <id>pre-test</id>
            <goals>
              <goal>prepare-agent</goal>
            </goals>
          </execution>
          <execution>
            <id>report</id>
            <phase>test</phase>
            <goals>
              <goal>report</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
    </plugins>
  </build>

  <profiles>
    <profile>
      <id>spark-2.3</id>
      <properties>
        <spark.version>2.3.4</spark.version>
        <scalatest.version>3.0.3</scalatest.version>
      </properties>
    </profile>

    <profile>
      <id>spark-2.4</id>
      <properties>
        <spark.version>2.4.5</spark.version>
        <scalatest.version>3.0.3</scalatest.version>
      </properties>
    </profile>

    <profile>
      <id>ranger-1.0</id>
      <properties>
        <eclipse.jpa.version>2.5.2</eclipse.jpa.version>
        <gson.version>2.2.4</gson.version>
        <httpcomponents.httpclient.version>4.2.5</httpcomponents.httpclient.version>
        <httpcomponents.httpcore.version>4.2.4</httpcomponents.httpcore.version>
        <httpcomponents.httpmime.version>4.5.3</httpcomponents.httpmime.version>
        <javax.persistence.version>2.1.0</javax.persistence.version>
        <jersey-bundle.version>1.19.3</jersey-bundle.version>
        <noggit.version>0.6</noggit.version>
        <ranger.version>1.0.0</ranger.version>
        <solr.version>5.5.4</solr.version>
      </properties>
    </profile>

    <profile>
      <id>ranger-1.1</id>
      <properties>
        <eclipse.jpa.version>2.5.2</eclipse.jpa.version>
        <gson.version>2.2.4</gson.version>
        <httpcomponents.httpclient.version>4.5.3</httpcomponents.httpclient.version>
        <httpcomponents.httpcore.version>4.4.6</httpcomponents.httpcore.version>
        <httpcomponents.httpmime.version>4.5.3</httpcomponents.httpmime.version>
        <javax.persistence.version>2.1.0</javax.persistence.version>
        <jersey-bundle.version>1.19.3</jersey-bundle.version>
        <noggit.version>0.6</noggit.version>
        <ranger.version>1.1.0</ranger.version>
        <solr.version>5.5.4</solr.version>
      </properties>
    </profile>

    <profile>
      <id>ranger-1.2</id>
      <properties>
        <eclipse.jpa.version>2.5.2</eclipse.jpa.version>
        <gson.version>2.2.4</gson.version>
        <httpcomponents.httpclient.version>4.5.3</httpcomponents.httpclient.version>
        <httpcomponents.httpcore.version>4.4.1</httpcomponents.httpcore.version>
        <httpcomponents.httpmime.version>4.5.3</httpcomponents.httpmime.version>
        <javax.persistence.version>2.1.0</javax.persistence.version>
        <jersey-bundle.version>1.19.3</jersey-bundle.version>
        <noggit.version>0.6</noggit.version>
        <ranger.version>1.2.0</ranger.version>
        <solr.version>5.5.4</solr.version>
      </properties>
    </profile>

    <profile>
      <id>ranger-2.0</id>
      <properties>
        <httpcomponents.httpclient.version>4.5.3</httpcomponents.httpclient.version>
        <httpcomponents.httpcore.version>4.4.6</httpcomponents.httpcore.version>
        <httpcomponents.httpmime.version>4.5.3</httpcomponents.httpmime.version>
        <ranger.version>2.0.0</ranger.version>
        <ranger.major.version>2</ranger.major.version>
        <solr.version>7.7.1</solr.version>
        <gethostname4j.scope>compile</gethostname4j.scope>
        <jna.scope>compile</jna.scope>
      </properties>
    </profile>

  </profiles>
</project>
