<?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>
        <groupId>org.apache</groupId>
        <artifactId>apache</artifactId>
        <version>10</version>
  </parent>
  <groupId>org.apache.ranger</groupId>
  <artifactId>ranger</artifactId>
  <version>0.4.1</version>
  <description>Security for Enforcing Enterprise Policies</description>
  <packaging>pom</packaging>
  <name>ranger</name>
  <url>http://ranger.incubator.apache.org/</url>
  <licenses>
    <license>
      <name>Apache 2.0 License</name>
      <url>http://www.apache.org/licenses/LICENSE-2.0.html</url>
      <distribution>repo</distribution>
    </license>
  </licenses>
  <scm>
    <connection>scm:git:git@github.com:apache/incubator-ranger.git</connection>
    <developerConnection>scm:git:https://git-wip-us.apache.org/repos/asf/incubator-ranger.git</developerConnection>
    <url>scm:git:git@github.com:apache/incubator-ranger.git</url>
    <tag>ranger-0.4.0-rc3</tag>
  </scm>
  <issueManagement>
    <system>JIRA</system>
    <url>https://issues.apache.org/jira/browse/ranger</url>
  </issueManagement>
  <prerequisites>
	<maven>2.2.1</maven>
  </prerequisites>

  <mailingLists>
    <mailingList>
      <name>Dev Mailing List</name>
      <post>dev@ranger.incubator.apache.org</post>
      <subscribe>dev-subscribe@ranger.incubator.apache.org</subscribe>
      <unsubscribe>dev-unsubscribe@ranger.incubator.apache.org</unsubscribe>
    </mailingList>

    <mailingList>
      <name>User Mailing List</name>
      <post>user@ranger.incubator.apache.org</post>
      <subscribe>user-subscribe@ranger.incubator.apache.org</subscribe>
      <unsubscribe>user-unsubscribe@ranger.incubator.apache.org</unsubscribe>
    </mailingList>

    <mailingList>
      <name>Commits Mailing List</name>
      <post>commits@ranger.incubator.apache.org</post>
      <subscribe>commits-subscribe@ranger.incubator.apache.org</subscribe>
      <unsubscribe>commits-unsubscribe@ranger.incubator.apache.org</unsubscribe>
    </mailingList>
  </mailingLists>

  <modules>
  <module>agents-audit</module>
  <module>agents-common</module>
  <module>agents-cred</module>
  <module>agents-impl</module>
  <module>agents-installer</module>
  <module>credentialbuilder</module>
  <module>embededwebserver</module>
  <module>hbase-agent</module>
  <module>hdfs-agent</module>
  <module>hive-agent</module>
  <module>knox-agent</module>
  <module>storm-agent</module>
  <module>lookup-client</module>
  <module>security-admin</module>
  <module>ugsync</module>
  <module>unixauthclient</module>
  <module>unixauthservice</module>
  </modules>
  <properties>
        <javac.source.version>1.7</javac.source.version>
        <javac.target.version>1.7</javac.target.version>
		<antlr.version>3.5.2</antlr.version>
		<aopalliance.version>1.0</aopalliance.version>
		<asm.version>3.1</asm.version>
		<c3p0.version>0.9.1.2</c3p0.version>
		<cglib.version>2.2.0-b23</cglib.version>
		<codehaus.jackson.version>1.8.1</codehaus.jackson.version>
		<commons.beanutils.collections.version>1.8.3</commons.beanutils.collections.version>
		<commons.beanutils.core.version>1.8.3</commons.beanutils.core.version>
		<commons.cli.version>1.2</commons.cli.version>
		<commons.codec.version>1.9</commons.codec.version>
		<commons.collections.version>3.2.1</commons.collections.version>
		<commons.compress.version>1.8.1</commons.compress.version>
		<commons.configuration.version>1.10</commons.configuration.version>
		<commons.dbcp.version>1.4</commons.dbcp.version>
		<commons.digester.version>2.1</commons.digester.version>
		<commons.httpclient.version>3.1</commons.httpclient.version>
		<commons.io.version>2.4</commons.io.version>
		<commons.lang.version>2.6</commons.lang.version>
		<commons.logging.version>1.2</commons.logging.version>
		<commons.math.version>2.2</commons.math.version>
		<commons.net.version>3.3</commons.net.version>
		<commons.pool.version>1.6</commons.pool.version>
		<eclipse.jpa.version>2.5.2-M1</eclipse.jpa.version>
		<googlecode.log4jdbc.version>1.2</googlecode.log4jdbc.version>
		<google.guava.version>17.0</google.guava.version>
		<gson.version>2.2.4</gson.version>
		<guava.version>11.0.2</guava.version>
		<hadoop-auth.version>2.6.0</hadoop-auth.version>
		<hadoop-common.version>2.6.0</hadoop-common.version>
		<hadoop.version>2.6.0</hadoop.version>
		<hamcrest.all.version>1.3</hamcrest.all.version>
		<hbase.version>0.99.2</hbase.version>
		<hive.version>0.14.0</hive.version>
		<calcite.version>0.9.2-incubating</calcite.version>
		<tez.version>0.5.2</tez.version>
		<javassist.version>3.12.1.GA</javassist.version>
		<javax.persistence.version>2.1.0</javax.persistence.version>
		<javax.servlet.version>3.1.0</javax.servlet.version>
		<jericho.html.version>3.3</jericho.html.version>
		<jersey-bundle.version>1.17.1</jersey-bundle.version>
		<junit.version>4.11</junit.version>
		<mockito.version>1.8.4</mockito.version>
		<hamcrest-version>1.3</hamcrest-version>
		<knox.gateway.version>0.5.0</knox.gateway.version>
		<local.lib.dir>${project.basedir}/../lib/local</local.lib.dir>
		<log4j.version>1.2.17</log4j.version>
		<mysql-connector-java.version>5.1.31</mysql-connector-java.version>
		<owasp-java-html-sanitizer.version>r239</owasp-java-html-sanitizer.version>
		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
		<security-agent-install-dir>hadoop-security/plugins</security-agent-install-dir>
		<slf4j-api.version>1.7.5</slf4j-api.version>
		<springframework.spring.version>2.5.6</springframework.spring.version>
		<!--
		<springframework.spring.version>3.1.3.RELEASE</springframework.spring.version>
		-->
		<springframework.security.version>3.1.3.RELEASE</springframework.security.version>
		<springframework.test.version>3.1.3.RELEASE</springframework.test.version>
		<springframework.version>3.1.3.RELEASE</springframework.version>
		<spring-ldap-core.version>1.3.1.RELEASE</spring-ldap-core.version>
		<sun.jersey.bundle.version>1.4</sun.jersey.bundle.version>
		<sun.jersey.core.version>1.4</sun.jersey.core.version>
		<sun.jersey.spring.version>1.4</sun.jersey.spring.version>
		<tomcat.commons.el.version>5.5.23</tomcat.commons.el.version>
		<tomcat.embed.version>7.0.55</tomcat.embed.version>
		<velocity.version>1.7</velocity.version>
		<powermock.version>1.5.6</powermock.version>
		<distMgmtStagingId>apache.staging.https</distMgmtStagingId>
    	<distMgmtStagingName>Apache Release Distribution Repository</distMgmtStagingName>
    	<distMgmtStagingUrl>https://repository.apache.org/service/local/staging/deploy/maven2</distMgmtStagingUrl>
  </properties>
  <profiles>
        <profile>
        <id>windows</id>
        <modules>
              <module>winpkg</module>
        </modules>
        <build>
            <plugins>
                <plugin>
                    <groupId>com.google.code.maven-replacer-plugin</groupId>
                    <artifactId>replacer</artifactId>
                    <version>1.5.2</version>
                    <executions>
                        <execution>
                            <goals>
                                <goal>replace</goal>
                            </goals>
                        </execution>
                    </executions>
                    <configuration>
                        <includes>
                            <include>winpkg/src/scripts/*</include>
                        </includes>
                    <replacements>
                        <replacement>
                            <token>@ranger.version@</token>
                            <value>${project.version}</value>
                        </replacement>
                    </replacements>
                    </configuration>
                </plugin>
            </plugins>
        </build>
    </profile>
     <profile>
          <id>linux</id>
          <activation>
              <os>
                  <family>linux</family>
              </os>
          </activation>
         <modules>
            <module>unixauthnative</module>
          </modules>
      </profile>
  </profiles>
  <distributionManagement>
        <repository>
            <id>${distMgmtStagingId}</id>
            <name>${distMgmtStagingName}</name>
            <url>${distMgmtStagingUrl}</url>
        </repository>
  </distributionManagement>
  <repositories>
          <repository>
            <id>apache.snapshots.https</id>
            <name>Apache Development Snapshot Repository</name>
            <url>https://repository.apache.org/content/repositories/snapshots</url>
            <snapshots>
                <enabled>true</enabled>
            </snapshots>
          </repository>
          <repository>
            <id>apache.public.https</id>
            <name>Apache Development Snapshot Repository</name>
            <url>https://repository.apache.org/content/repositories/public</url>
            <releases>
            	<enabled>true</enabled>
            </releases>
            <snapshots>
                <enabled>false</enabled>
            </snapshots>
          </repository>
  </repositories>
	<dependencyManagement>
		<dependencies>
			<dependency>
				<groupId>junit</groupId>
				<artifactId>junit</artifactId>
				<version>${junit.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.powermock</groupId>
				<artifactId>powermock-module-junit4</artifactId>
				<version>${powermock.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.hamcrest</groupId>
				<artifactId>hamcrest-integration</artifactId>
				<version>${hamcrest-version}</version>
				<scope>test</scope>
			</dependency>
		</dependencies>
	</dependencyManagement>
  <build>
  	<pluginManagement>
    <plugins>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-enforcer-plugin</artifactId>
          <version>1.3.1</version>
          <executions>
            <execution>
              <id>enforce-versions</id>
              <goals>
                <goal>enforce</goal>
              </goals>
              <configuration>
                <rules>
                  <requireMavenVersion>
                    <version>3.0.4</version>
                  </requireMavenVersion>
                  <requireJavaVersion>
                    <version>${java.version}</version>
                  </requireJavaVersion>
                </rules>
              </configuration>
            </execution>
          </executions>
        </plugin>
        <plugin>
          <groupId>org.codehaus.mojo</groupId>
          <artifactId>build-helper-maven-plugin</artifactId>
          <version>1.8</version>
        </plugin>
      <plugin>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>3.2</version>
        <configuration>
		  <useIncrementalCompilation>false</useIncrementalCompilation>
          <source>${javac.source.version}</source>
          <target>${javac.target.version}</target>
           <encoding>UTF-8</encoding>
            <maxmem>1024m</maxmem>
            <fork>true</fork>
        </configuration>
      </plugin>
      <plugin>
		    <groupId>org.apache.maven.plugins</groupId>
		    <artifactId>maven-resources-plugin</artifactId>
		    <version>2.4.3</version>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-surefire-plugin</artifactId>
        <version>2.17</version>
        <configuration>
           <skipTests>${skipTests}</skipTests>
           <encoding>UTF-8</encoding>
           <systemProperties>
              <property>
                <name>catalina.base</name>
                <value>${project.build.directory}</value>
              </property>
           </systemProperties>
        </configuration>
      </plugin>
      <plugin>
         <artifactId>maven-assembly-plugin</artifactId>
         <version>2.2-beta-5</version>
         <configuration>
           <descriptors>
             <descriptor>src/main/assembly/hdfs-agent.xml</descriptor>
             <descriptor>src/main/assembly/hive-agent.xml</descriptor>
             <descriptor>src/main/assembly/hbase-agent.xml</descriptor>
             <descriptor>src/main/assembly/knox-agent.xml</descriptor>
             <descriptor>src/main/assembly/storm-agent.xml</descriptor>
             <descriptor>src/main/assembly/admin-web.xml</descriptor>
             <descriptor>src/main/assembly/usersync.xml</descriptor>
             <descriptor>src/main/assembly/ranger-src.xml</descriptor>
           </descriptors>
         </configuration>
      </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-jar-plugin</artifactId>
          <version>2.4</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-antrun-plugin</artifactId>
          <version>1.7</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-shade-plugin</artifactId>
          <version>2.2</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-source-plugin</artifactId>
          <version>2.2.1</version>
          <configuration>
            <attach>true</attach>
          </configuration>
          <executions>
            <execution>
              <id>create-source-jar</id>
              <goals>
                <goal>jar-no-fork</goal>
              </goals>
            </execution>
          </executions>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-clean-plugin</artifactId>
          <version>2.5</version>
          <configuration>
            <filesets>
              <fileset>
                <directory>work</directory>
              </fileset>
              <fileset>
                <directory>checkpoint</directory>
              </fileset>
            </filesets>
          </configuration>
        </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-release-plugin</artifactId>
        <version>2.5</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>1.0.0</version>
            <configuration>
                <lifecycleMappingMetadata>
                    <pluginExecutions>
                        <pluginExecution>
                            <pluginExecutionFilter>
                                <groupId>org.apache.maven.plugins</groupId>
                                <artifactId>maven-antrun-plugin</artifactId>
                                <versionRange>[1.0,)</versionRange>
                                <goals>
                                    <goal>run</goal>
                                </goals>
                            </pluginExecutionFilter>
                            <action>
                                <execute />
                            </action>
                        </pluginExecution>
                    </pluginExecutions>
                </lifecycleMappingMetadata>
            </configuration>
        </plugin>
	
    </plugins>
    
    </pluginManagement>
    <plugins>

    <plugin>
      <groupId>org.apache.rat</groupId>
      <artifactId>apache-rat-plugin</artifactId>
      <version>0.11</version>
      <executions>
          <execution>
            <phase>verify</phase>
            <goals>
              <goal>check</goal>
            </goals>
          </execution>
      </executions>
      <configuration>
        <excludeSubProjects>false</excludeSubProjects>
        <excludes>

		  <exclude>**/dependency-reduced-pom.xml</exclude>
          <exclude>**/robots.txt</exclude>
          <exclude>**/MANIFEST.MF</exclude>
          <exclude>**/bootstrap.min.js</exclude>

          <exclude>**/src/main/webapp/fonts/**</exclude>
          <exclude>**/src/main/webapp/libs/**</exclude>

          <exclude>.git/**</exclude>
          <exclude>.pc/**</exclude>
          <exclude>debian/**</exclude>
          <exclude>.gitignore/**</exclude>
          <exclude>.svn/**</exclude>
          <exclude>.idea/**</exclude>
          <exclude>dev-support/**</exclude>
          <exclude>**/.gitignore/**</exclude>
          <exclude>**/.project/**</exclude>
          <exclude>**/.settings/**</exclude>
          <exclude>**/.classpath/**</exclude>
          <exclude>**/*.iml</exclude>
          <exclude>**/target/**</exclude>
          <exclude>**/bin/**</exclude>
          <exclude>**/CHANGES</exclude>
          <exclude>**/ISSUES</exclude>
          <exclude>**/patchprocess/**</exclude>
          <exclude>**/test/resources/**</exclude>
          <exclude>**/main/resources/**/*.json</exclude>
          <exclude>**/.externalToolBuilders/*</exclude>
          <exclude>*.patch</exclude>
          <exclude>atlassian-ide-plugin.xml</exclude>
        </excludes>

      </configuration>
    </plugin>

      <plugin>
         <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-antrun-plugin</artifactId>
         <version>1.7</version>
         <executions>
           <execution>
             <phase>process-resources</phase>
             <configuration>
               <target>
                  <echo message="${project.version}" file="${project.build.directory}/version" />
               </target>
             </configuration>
             <goals>
               <goal>run</goal>
             </goals>
           </execution>
         </executions>
      </plugin>
      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>findbugs-maven-plugin</artifactId>
<!--
        <configuration>
          <excludeFilterFile>${basedir}/dev-support/findbugsExcludeFile.xml
          </excludeFilterFile>
        </configuration>
-->
      </plugin>
    </plugins>
  </build>
</project>
