<?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/maven-v4_0_0.xsd">

  <modelVersion>4.0.0</modelVersion>

  <groupId>org.apache.zeppelin</groupId>
  <artifactId>zeppelin</artifactId>
  <packaging>pom</packaging>
  <version>0.7.4-SNAPSHOT</version>
  <name>Zeppelin</name>
  <description>Zeppelin project</description>
  <url>http://zeppelin.apache.org</url>

  <parent>
    <groupId>org.apache</groupId>
    <artifactId>apache</artifactId>
    <version>17</version>
  </parent>

  <licenses>
    <license>
      <name>The Apache Software License, Version 2.0</name>
      <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
      <distribution>repo</distribution>
    </license>
  </licenses>

  <scm>
    <url>https://git-wip-us.apache.org/repos/asf/zeppelin.git</url>
    <connection>scm:git:https://git-wip-us.apache.org/repos/asf/zeppelin.git</connection>
    <developerConnection>scm:git:https://git-wip-us.apache.org/repos/asf/zeppelin.git</developerConnection>
  </scm>

  <inceptionYear>2013</inceptionYear>

  <modules>
    <module>zeppelin-interpreter</module>
    <module>zeppelin-zengine</module>
    <module>zeppelin-display</module>
    <module>spark-dependencies</module>
    <module>spark</module>
    <module>markdown</module>
    <module>angular</module>
    <module>shell</module>
    <module>livy</module>
    <module>hbase</module>
    <module>pig</module>
    <module>postgresql</module>
    <module>jdbc</module>
    <module>file</module>
    <module>flink</module>
    <module>ignite</module>
    <module>kylin</module>
    <module>python</module>
    <module>lens</module>
    <module>cassandra</module>
    <module>elasticsearch</module>
    <module>bigquery</module>
    <module>alluxio</module>
    <module>scio</module>
    <module>zeppelin-web</module>
    <module>zeppelin-server</module>
    <module>zeppelin-distribution</module>
  </modules>

  <properties>
    <!-- language versions -->
    <scala.version>2.10.5</scala.version>
    <scala.binary.version>2.10</scala.binary.version>
    <scalatest.version>2.2.4</scalatest.version>
    <scalacheck.version>1.12.5</scalacheck.version>

    <!-- common library versions -->
    <slf4j.version>1.7.10</slf4j.version>
    <log4j.version>1.2.17</log4j.version>
    <libthrift.version>0.9.2</libthrift.version>
    <gson.version>2.2</gson.version>
    <guava.version>15.0</guava.version>
    <jetty.version>9.2.15.v20160210</jetty.version>
    <httpcomponents.core.version>4.4.1</httpcomponents.core.version>
    <httpcomponents.client.version>4.5.1</httpcomponents.client.version>
    <httpcomponents.asyncclient.version>4.0.2</httpcomponents.asyncclient.version>
    <commons.lang.version>2.5</commons.lang.version>
    <commons.configuration.version>1.9</commons.configuration.version>
    <commons.codec.version>1.5</commons.codec.version>
    <commons.io.version>2.4</commons.io.version>
    <commons.collections.version>3.2.1</commons.collections.version>
    <commons.logging.version>1.1.1</commons.logging.version>
    <shiro.version>1.2.3</shiro.version>

    <!-- test library versions -->
    <junit.version>4.12</junit.version>
    <mockito.version>1.10.19</mockito.version>
    <assertj.version>1.7.0</assertj.version>
    <powermock.version>1.6.4</powermock.version>

    <!-- plugin versions -->
    <plugin.compiler.version>3.1</plugin.compiler.version>
    <plugin.resource.version>2.7</plugin.resource.version>
    <plugin.dependency.version>2.8</plugin.dependency.version>
    <plugin.jar.version>2.4</plugin.jar.version>
    <plugin.remote.resource.version>1.5</plugin.remote.resource.version>
    <plugin.scm.version>1.8.1</plugin.scm.version>
    <plugin.enforcer.version>1.3.1</plugin.enforcer.version>
    <plugin.checkstyle.version>2.13</plugin.checkstyle.version>
    <plugin.surefire.version>2.17</plugin.surefire.version>
    <plugin.assembly.version>3.0.0</plugin.assembly.version>
    <plugin.exec.version>1.2.1</plugin.exec.version>
    <plugin.cobertura.version>2.7</plugin.cobertura.version>
    <plugin.clean.version>2.6.1</plugin.clean.version>
    <plugin.lifecycle.mapping.version>1.0.0</plugin.lifecycle.mapping.version>
    <plugin.antrun.version>1.7</plugin.antrun.version>
    <plugin.download.version>1.3.0</plugin.download.version>
    <plugin.deploy.version>2.8.2</plugin.deploy.version>

    <PermGen>64m</PermGen>
    <MaxPermGen>512m</MaxPermGen>
  </properties>

  <dependencyManagement>
    <dependencies>
      <!-- Logging -->
      <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-api</artifactId>
        <version>${slf4j.version}</version>
      </dependency>

      <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-log4j12</artifactId>
        <version>${slf4j.version}</version>
      </dependency>

      <dependency>
        <groupId>log4j</groupId>
        <artifactId>log4j</artifactId>
        <version>${log4j.version}</version>
      </dependency>

      <dependency>
        <groupId>org.apache.thrift</groupId>
        <artifactId>libthrift</artifactId>
        <version>${libthrift.version}</version>
      </dependency>

      <dependency>
        <groupId>org.apache.httpcomponents</groupId>
        <artifactId>httpcore</artifactId>
        <version>${httpcomponents.core.version}</version>
      </dependency>

      <dependency>
        <groupId>org.apache.httpcomponents</groupId>
        <artifactId>httpclient</artifactId>
        <version>${httpcomponents.client.version}</version>
      </dependency>

      <dependency>
        <groupId>org.apache.httpcomponents</groupId>
        <artifactId>httpasyncclient</artifactId>
        <version>${httpcomponents.asyncclient.version}</version>
      </dependency>

      <dependency>
        <groupId>commons-lang</groupId>
        <artifactId>commons-lang</artifactId>
        <version>${commons.lang.version}</version>
      </dependency>

      <dependency>
        <groupId>com.google.code.gson</groupId>
        <artifactId>gson</artifactId>
        <version>${gson.version}</version>
      </dependency>

      <dependency>
        <groupId>commons-configuration</groupId>
        <artifactId>commons-configuration</artifactId>
        <version>${commons.configuration.version}</version>
      </dependency>

      <dependency>
        <groupId>commons-codec</groupId>
        <artifactId>commons-codec</artifactId>
        <version>${commons.codec.version}</version>
      </dependency>

      <dependency>
        <groupId>commons-io</groupId>
        <artifactId>commons-io</artifactId>
        <version>${commons.io.version}</version>
      </dependency>

      <dependency>
        <groupId>commons-collections</groupId>
        <artifactId>commons-collections</artifactId>
        <version>${commons.collections.version}</version>
      </dependency>

      <dependency>
        <groupId>commons-logging</groupId>
        <artifactId>commons-logging</artifactId>
        <version>${commons.logging.version}</version>
      </dependency>

      <dependency>
        <groupId>com.google.guava</groupId>
        <artifactId>guava</artifactId>
        <version>${guava.version}</version>
      </dependency>

      <!-- Apache Shiro -->
      <dependency>
        <groupId>org.apache.shiro</groupId>
        <artifactId>shiro-core</artifactId>
        <version>${shiro.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.shiro</groupId>
        <artifactId>shiro-web</artifactId>
        <version>${shiro.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.shiro</groupId>
        <artifactId>shiro-config-core</artifactId>
        <version>${shiro.version}</version>
      </dependency>

      <!-- Test libraries -->
      <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>${junit.version}</version>
        <scope>test</scope>
      </dependency>

      <dependency>
        <groupId>org.assertj</groupId>
        <artifactId>assertj-core</artifactId>
        <version>${assertj.version}</version>
        <scope>test</scope>
      </dependency>

      <dependency>
        <groupId>org.mockito</groupId>
        <artifactId>mockito-core</artifactId>
        <version>${mockito.version}</version>
        <scope>test</scope>
      </dependency>

      <dependency>
        <groupId>org.mockito</groupId>
        <artifactId>mockito-all</artifactId>
        <version>${mockito.version}</version>
        <scope>test</scope>
      </dependency>

      <dependency>
        <groupId>org.powermock</groupId>
        <artifactId>powermock-api-mockito</artifactId>
        <version>${powermock.version}</version>
        <scope>test</scope>
      </dependency>

      <dependency>
        <groupId>org.powermock</groupId>
        <artifactId>powermock-core</artifactId>
        <version>${powermock.version}</version>
        <scope>test</scope>
      </dependency>

      <dependency>
        <groupId>org.powermock</groupId>
        <artifactId>powermock-module-junit4</artifactId>
        <version>${powermock.version}</version>
        <scope>test</scope>
      </dependency>

      <dependency>
        <groupId>org.powermock</groupId>
        <artifactId>powermock-reflect</artifactId>
        <version>${powermock.version}</version>
        <scope>test</scope>
      </dependency>

    </dependencies>
  </dependencyManagement>

  <build>
    <plugins>
      <plugin>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>${plugin.compiler.version}</version>
        <configuration>
          <source>1.7</source>
          <target>1.7</target>
        </configuration>
      </plugin>

      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>flatten-maven-plugin</artifactId>
        <version>1.0.0</version>
        <configuration>
          <flattenMode>ossrh</flattenMode>
          <updatePomFile>true</updatePomFile>
        </configuration>
        <executions>
          <execution>
            <id>flatten</id>
            <phase>process-resources</phase>
            <goals>
              <goal>flatten</goal>
            </goals>
          </execution>
          <execution>
            <id>flatten.clean</id>
            <phase>clean</phase>
            <goals>
              <goal>clean</goal>
            </goals>
          </execution>
        </executions>
      </plugin>

      <!-- Test coverage plugin -->
      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>cobertura-maven-plugin</artifactId>
        <configuration>
          <formats>
            <format>html</format>
          </formats>
        </configuration>
        <executions>
          <execution>
            <id>cobertura</id>
            <phase>install</phase>
            <goals>
              <goal>cobertura</goal>
            </goals>
            <configuration>
            </configuration>
          </execution>
        </executions>
      </plugin>

      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-checkstyle-plugin</artifactId>
        <configuration>
          <configLocation>_tools/checkstyle.xml</configLocation>
          <enableRSS>false</enableRSS>
        </configuration>
        <executions>
          <execution>
            <id>checkstyle-fail-build</id>
            <phase>validate</phase>
            <goals>
              <goal>check</goal>
            </goals>
            <configuration>
              <failOnViolation>true</failOnViolation>
              <excludes>org/apache/zeppelin/interpreter/thrift/*,org/apache/zeppelin/scio/avro/*</excludes>
            </configuration>
          </execution>
          <execution>
            <id>checkstyle-gen-html-report</id>
            <phase>install</phase>
            <goals>
              <goal>checkstyle-aggregate</goal>
            </goals>
            <configuration>
              <excludes>org/apache/zeppelin/interpreter/thrift/*,org/apache/zeppelin/scio/avro/*</excludes>
            </configuration>
          </execution>
        </executions>
      </plugin>

      <plugin>
        <artifactId>maven-resources-plugin</artifactId>
        <version>${plugin.resource.version}</version>
        <executions>
          <execution>
            <id>copy-resources</id>
            <phase>validate</phase>
            <goals>
              <goal>copy-resources</goal>
            </goals>
            <configuration>
              <outputDirectory>${basedir}/target/site</outputDirectory>
              <resources>
                <resource>
                  <directory>${basedir}/../_tools/site</directory>
                  <filtering>true</filtering>
                  <includes>
                    <include>**/*</include>
                  </includes>
                </resource>
              </resources>
            </configuration>
          </execution>
        </executions>
      </plugin>

      <plugin>
        <artifactId>maven-dependency-plugin</artifactId>
        <executions>
          <execution>
            <id>copy-dependencies</id>
            <phase>process-test-resources</phase>
            <goals>
              <goal>copy-dependencies</goal>
            </goals>
            <configuration>
              <outputDirectory>${project.build.directory}/lib</outputDirectory>
              <overWriteReleases>false</overWriteReleases>
              <overWriteSnapshots>false</overWriteSnapshots>
              <overWriteIfNewer>true</overWriteIfNewer>
              <includeScope>runtime</includeScope>
            </configuration>
          </execution>
        </executions>
      </plugin>

      <plugin>
        <artifactId>maven-jar-plugin</artifactId>
        <version>${plugin.jar.version}</version>
        <configuration>
          <archive>
            <manifest>
              <addClasspath>true</addClasspath>
              <classpathPrefix>lib/</classpathPrefix>
              <mainClass>theMainClass</mainClass>
            </manifest>
          </archive>
        </configuration>
      </plugin>

      <plugin>
        <artifactId>maven-remote-resources-plugin</artifactId>
        <version>${plugin.remote.resource.version}</version>
        <executions>
          <execution>
            <id>process-remote-resources</id>
            <goals>
              <goal>process</goal>
            </goals>
            <configuration>
              <resourceBundles>
                <resourceBundle>org.apache:apache-jar-resource-bundle:1.0</resourceBundle>
              </resourceBundles>
            </configuration>
          </execution>
        </executions>
      </plugin>

      <plugin>
        <artifactId>maven-scm-plugin</artifactId>
        <version>${plugin.scm.version}</version>
        <configuration>
          <connectionType>developerConnection</connectionType>
          <scmVersion>branch-0.1</scmVersion>
          <scmVersionType>branch</scmVersionType>
        </configuration>
      </plugin>

      <plugin>
        <artifactId>maven-enforcer-plugin</artifactId>
        <version>${plugin.enforcer.version}</version>
        <executions>
          <execution>
            <id>enforce</id>
            <configuration>
              <rules>
                <DependencyConvergence/>
              </rules>
              <failFast>true</failFast>
            </configuration>
            <goals>
              <goal>enforce</goal>
            </goals>
          </execution>
        </executions>
      </plugin>

      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-deploy-plugin</artifactId>
        <version>${plugin.deploy.version}</version>
      </plugin>

    <!--TODO(alex): make part of the build and reconcile conflicts
    <plugin>
      <groupId>com.ning.maven.plugins</groupId>
      <artifactId>maven-duplicate-finder-plugin</artifactId>
      <version>1.0.4</version>
      <executions>
        <execution>
          <id>default</id>
          <phase>verify</phase>
          <goals>
            <goal>check</goal>
          </goals>
       </execution>
      </executions>
      <configuration>
        <failBuildInCaseOfConflict>true</failBuildInCaseOfConflict>
      </configuration>
    </plugin>
    -->
    </plugins>

    <pluginManagement>
      <plugins>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-checkstyle-plugin</artifactId>
          <version>${plugin.checkstyle.version}</version>
        </plugin>

        <plugin>
          <artifactId>maven-dependency-plugin</artifactId>
          <version>${plugin.dependency.version}</version>
        </plugin>

        <plugin>
          <artifactId>maven-surefire-plugin</artifactId>
          <version>${plugin.surefire.version}</version>
          <configuration combine.children="append">
            <argLine>-Xmx2g -Xms1g -Dfile.encoding=UTF-8</argLine>
          </configuration>
          <!-- <excludes> <exclude>**/itest/**</exclude> </excludes> <executions>
            <execution> <id>surefire-itest</id> <phase>integration-test</phase> <goals>
            <goal>test</goal> </goals> <configuration> <excludes> <exclude>none</exclude>
            </excludes> <includes> <include>**/itest/**</include> </includes> </configuration>
            </execution> </executions> -->
        </plugin>

        <plugin>
          <artifactId>maven-assembly-plugin</artifactId>
          <version>${plugin.assembly.version}</version>
        </plugin>

        <plugin>
          <groupId>org.codehaus.mojo</groupId>
          <artifactId>exec-maven-plugin</artifactId>
          <version>${plugin.exec.version}</version>
        </plugin>

        <plugin>
          <groupId>org.codehaus.mojo</groupId>
          <artifactId>cobertura-maven-plugin</artifactId>
          <version>${plugin.cobertura.version}</version>
        </plugin>

        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-clean-plugin</artifactId>
          <version>${plugin.clean.version}</version>
          <configuration>
            <filesets>
              <fileset>
                <directory>interpreter</directory>
                <followSymlinks>false</followSymlinks>
                <excludes>
                  <exclude>lib/**</exclude>
                </excludes>
              </fileset>
            </filesets>
          </configuration>
        </plugin>

        <plugin>
          <groupId>org.codehaus.mojo</groupId>
          <artifactId>xml-maven-plugin</artifactId>
          <version>1.0.1</version>
          <executions>
            <execution>
              <phase>verify</phase>
              <goals>
                <goal>validate</goal>
              </goals>
            </execution>
          </executions>
          <configuration>
            <validationSets>
              <validationSet>
                <dir>${project.basedir}</dir>
                <includes>
                  <include>
                    pom.xml
                  </include>
                </includes>
                <systemId>_tools/maven-4.0.0.xsd</systemId>
              </validationSet>
            </validationSets>
          </configuration>
        </plugin>

        <plugin>
          <groupId>com.googlecode.maven-download-plugin</groupId>
          <artifactId>download-maven-plugin</artifactId>
          <version>${plugin.download.version}</version>
        </plugin>

        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-antrun-plugin</artifactId>
          <version>${plugin.antrun.version}</version>
        </plugin>

        <!--This plugin's configuration is used to store Eclipse m2e settings
          only. It has no influence on the Maven build itself. -->
        <plugin>
          <groupId>org.eclipse.m2e</groupId>
          <artifactId>lifecycle-mapping</artifactId>
          <version>${plugin.lifecycle.mapping.version}</version>
          <configuration>
            <lifecycleMappingMetadata>
              <pluginExecutions>
                <pluginExecution>
                  <pluginExecutionFilter>
                    <groupId>
                      org.apache.maven.plugins
                    </groupId>
                    <artifactId>
                      maven-dependency-plugin
                    </artifactId>
                    <versionRange>
                      [2.8,)
                    </versionRange>
                    <goals>
                      <goal>copy-dependencies</goal>
                    </goals>
                  </pluginExecutionFilter>
                  <action>
                    <ignore/>
                  </action>
                </pluginExecution>
                <pluginExecution>
                  <pluginExecutionFilter>
                    <groupId>
                      org.apache.maven.plugins
                    </groupId>
                    <artifactId>
                      maven-checkstyle-plugin
                    </artifactId>
                    <versionRange>
                      [2.13,)
                    </versionRange>
                    <goals>
                      <goal>checkstyle</goal>
                      <goal>check</goal>
                    </goals>
                  </pluginExecutionFilter>
                  <action>
                    <ignore></ignore>
                  </action>
                </pluginExecution>
              </pluginExecutions>
            </lifecycleMappingMetadata>
          </configuration>
        </plugin>

      </plugins>
    </pluginManagement>
  </build>

  <profiles>
    <profile>
      <id>scala-2.10</id>
      <activation>
        <activeByDefault>true</activeByDefault>
      </activation>
      <properties>
        <scala.version>2.10.5</scala.version>
        <scala.binary.version>2.10</scala.binary.version>
      </properties>
    </profile>

    <profile>
      <id>scala-2.11</id>
      <properties>
        <scala.version>2.11.7</scala.version>
        <scala.binary.version>2.11</scala.binary.version>
      </properties>
    </profile>

    <profile>
      <id>vendor-repo</id>
      <repositories>
        <repository>
          <id>cloudera</id>
          <url>https://repository.cloudera.com/artifactory/cloudera-repos/</url>
        </repository>
      </repositories>
    </profile>

    <!-- Geode can be enabled by -Pgeode. see https://issues.apache.org/jira/browse/ZEPPELIN-375 -->
    <profile>
      <id>geode</id>
      <modules>
        <module>geode</module>
      </modules>
    </profile>

    <profile>
      <id>r</id>
      <modules>
        <module>r</module>
      </modules>
    </profile>

    <profile>
      <id>scalding</id>
      <modules>
        <module>scalding</module>
      </modules>
    </profile>

    <profile>
      <id>beam</id>
      <modules>
        <module>beam</module>
      </modules>
    </profile>

    <profile>
      <id>scio</id>
      <modules>
        <module>scio</module>
      </modules>
    </profile>

    <profile>
      <id>examples</id>
      <modules>
        <module>zeppelin-examples</module>
      </modules>
    </profile>

    <profile>
      <id>helium-dev</id>
      <modules>
        <module>helium-dev</module>
      </modules>
    </profile>

    <profile>
      <id>build-distr</id>
      <activation>
        <activeByDefault>false</activeByDefault>
      </activation>
      <build>
        <pluginManagement>
          <plugins>

            <plugin>
              <artifactId>maven-surefire-plugin</artifactId>
              <configuration>
                <skipTests>true</skipTests>
              </configuration>
            </plugin>

            <plugin>
              <artifactId>maven-assembly-plugin</artifactId>
              <executions>
                <execution>
                  <id>make-assembly</id>
                  <phase>package</phase>
                  <goals>
                    <goal>single</goal>
                  </goals>
                </execution>
              </executions>
            </plugin>

          </plugins>
        </pluginManagement>
      </build>
    </profile>

    <profile>
      <id>publish-distr</id>
      <activation>
        <activeByDefault>false</activeByDefault>
      </activation>
      <build>
        <plugins>
          <plugin>
            <artifactId>maven-surefire-plugin</artifactId>
            <configuration>
              <skipTests>true</skipTests>
            </configuration>
          </plugin>

          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-source-plugin</artifactId>
            <version>3.0.0</version>
            <executions>
              <execution>
                <id>attach-sources</id>
                <goals>
                  <goal>jar</goal>
                </goals>
              </execution>
            </executions>
          </plugin>

          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-javadoc-plugin</artifactId>
            <version>2.10.3</version>
            <executions>
              <execution>
                <id>attach-javadocs</id>
                <goals>
                  <goal>jar</goal>
                </goals>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
    </profile>

    <profile>
      <id>release-sign-artifacts</id>
      <activation>
        <property>
          <name>performRelease</name>
          <value>true</value>
        </property>
      </activation>
      <build>
        <plugins>
          <plugin>
            <artifactId>maven-gpg-plugin</artifactId>
            <version>1.6</version>
            <executions>
              <execution>
                <id>sign-artifacts</id>
                <phase>verify</phase>
                <goals>
                  <goal>sign</goal>
                </goals>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
    </profile>

    <profile>
      <id>rat</id>
      <activation>
        <property><name>!skipRat</name></property>
      </activation>
      <build>
        <plugins>
        <plugin>
          <groupId>org.apache.rat</groupId>
          <artifactId>apache-rat-plugin</artifactId>
          <version>0.11</version>
          <configuration>
            <excludes>
              <exclude>**/*.keywords</exclude>
              <exclude>reports/**</exclude>
              <exclude>**/.idea/</exclude>
              <exclude>**/*.iml</exclude>
              <exclude>.git/</exclude>
              <exclude>.github/*</exclude>
              <exclude>.gitignore</exclude>
              <exclude>.repository/</exclude>
              <exclude>.rat-excludes/</exclude>
              <exclude>.Rhistory</exclude>
              <exclude>**/*.diff</exclude>
              <exclude>**/*.patch</exclude>
              <exclude>**/*.avsc</exclude>
              <exclude>**/*.avro</exclude>
              <exclude>**/*.log</exclude>
              <exclude>**/test/resources/**</exclude>
              <exclude>**/.settings/*</exclude>
              <exclude>**/.classpath</exclude>
              <exclude>**/.project</exclude>
              <exclude>**/target/**</exclude>
              <exclude>**/derby.log</exclude>
              <exclude>**/metastore_db/</exclude>
              <exclude>**/logs/**</exclude>
              <exclude>**/run/**</exclude>
              <exclude>**/interpreter/**</exclude>
              <exclude>**/local-repo/**</exclude>
              <exclude>**/null/**</exclude>
              <exclude>**/notebook/**</exclude>
              <exclude>_tools/site/css/*</exclude>
              <exclude>_tools/maven-4.0.0.xsd</exclude>
              <exclude>**/README.md</exclude>
              <exclude>DEPENDENCIES</exclude>
              <exclude>DEPLOY.md</exclude>
              <exclude>STYLE.md</exclude>
              <exclude>Roadmap.md</exclude>
              <exclude>**/licenses/**</exclude>
              <exclude>**/zeppelin-distribution/src/bin_license/**</exclude>
              <exclude>conf/interpreter.json</exclude>
              <exclude>conf/notebook-authorization.json</exclude>
              <exclude>conf/credentials.json</exclude>
              <exclude>conf/zeppelin-env.sh</exclude>
              <exclude>spark-*-bin*/**</exclude>
              <exclude>.spark-dist/**</exclude>
              <exclude>**/interpreter-setting.json</exclude>
              <exclude>**/constants.json</exclude>
              <exclude>scripts/**</exclude>

              <!-- from SQLLine 1.0.2, see ZEPPELIN-2135 -->
              <exclude>**/src/main/java/org/apache/zeppelin/jdbc/SqlCompleter.java</exclude>

              <!-- bundled from bootstrap -->
              <exclude>docs/assets/themes/zeppelin/bootstrap/**</exclude>
              <exclude>docs/assets/themes/zeppelin/css/style.css</exclude>
              <exclude>docs/assets/themes/zeppelin/js/docs.js</exclude>
              <exclude>docs/assets/themes/zeppelin/js/search.js</exclude>
              <exclude>docs/_includes/themes/zeppelin/_jumbotron.html</exclude>
              <exclude>docs/_includes/themes/zeppelin/_navigation.html</exclude>

              <!-- bundled from jekyll-bootstrap -->
              <exclude>docs/404.html</exclude>
              <exclude>docs/_config.yml</exclude>
              <exclude>docs/_includes/JB/**</exclude>
              <exclude>docs/_layouts/**</exclude>
              <exclude>docs/_plugins/**</exclude>
              <exclude>docs/atom.xml</exclude>
              <exclude>docs/_includes/themes/zeppelin/default.html</exclude>
              <exclude>docs/_includes/themes/zeppelin/page.html</exclude>
              <exclude>docs/_includes/themes/zeppelin/post.html</exclude>
              <exclude>docs/_includes/themes/zeppelin/settings.yml</exclude>
              <exclude>docs/Rakefile</exclude>
              <exclude>docs/rss.xml</exclude>
              <exclude>docs/sitemap.txt</exclude>
              <exclude>docs/search_data.json</exclude>
              <exclude>**/dependency-reduced-pom.xml</exclude>

              <!-- bundled from anchor -->
              <exclude>docs/assets/themes/zeppelin/js/anchor.min.js</exclude>

              <!-- bundled from toc -->
              <exclude>docs/assets/themes/zeppelin/js/toc.js</exclude>

              <!-- bundled from lunrjs -->
              <exclude>docs/assets/themes/zeppelin/js/lunr.min.js</exclude>

              <!-- bundled from jekyll -->
              <exclude>docs/assets/themes/zeppelin/css/syntax.css</exclude>

              <!-- docs (website) build target dir -->
              <exclude>docs/_site/**</exclude>
              <exclude>docs/Gemfile.lock</exclude>

              <!-- package.json -->
              <exclude>**/package.json</exclude>

              <!-- compiled R packages (binaries) -->
              <exclude>R/lib/**</exclude>
              <exclude>r/lib/**</exclude>

              <!--R-related files with alternative licenses-->
              <exclude>r/R/rzeppelin/R/globals.R</exclude>
              <exclude>r/R/rzeppelin/R/common.R</exclude>
              <exclude>r/R/rzeppelin/R/protocol.R</exclude>
              <exclude>r/R/rzeppelin/R/rServer.R</exclude>
              <exclude>r/R/rzeppelin/R/scalaInterpreter.R</exclude>
              <exclude>r/R/rzeppelin/R/zzz.R</exclude>
              <exclude>r/src/main/scala/scala/Console.scala</exclude>
              <exclude>r/src/main/scala/org/apache/zeppelin/rinterpreter/rscala/Package.scala</exclude>
              <exclude>r/src/main/scala/org/apache/zeppelin/rinterpreter/rscala/RClient.scala</exclude>
              <!--The following files are mechanical-->
              <exclude>r/R/rzeppelin/DESCRIPTION</exclude>
              <exclude>r/R/rzeppelin/NAMESPACE</exclude>
            </excludes>
          </configuration>

          <executions>
            <execution>
              <id>verify.rat</id>
              <phase>verify</phase>
              <goals>
                <goal>check</goal>
              </goals>
            </execution>
          </executions>
        </plugin>
        </plugins>
      </build>
    </profile>
  </profiles>

</project>
