<?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.
-->
<!-- Run this file like this - mvn apache-rat:check -->
<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">

    <parent>
      <groupId>org.apache</groupId>
      <artifactId>apache</artifactId>
      <version>18</version>
    </parent>
  
    <modelVersion>4.0.0</modelVersion>
    <groupId>org.apache.qpid</groupId>
    <artifactId>qpid-dispatch</artifactId>
    <version>1.13.0-SNAPSHOT</version>
    <name>QpidDispatch</name>
    <inceptionYear>2018</inceptionYear>
    <url>https://qpid.apache.org</url>   
    
    <prerequisites>
        <maven>3.0.4</maven>
    </prerequisites>
  
    <description>
      Qpid Dispatch Router
    </description>
    
    <properties>
        <maven.compiler.source>1.8</maven.compiler.source>
        <maven.compiler.target>1.8</maven.compiler.target>
    </properties>   
    
    <build>
        <defaultGoal>verify</defaultGoal>
        <pluginManagement>
            <plugins>
                <plugin>
                    <groupId>org.apache.rat</groupId>
                    <artifactId>apache-rat-plugin</artifactId>
                    <version>0.12</version>
                    <executions>
                      <execution>
                        <phase>verify</phase>
                        <goals>
                          <goal>check</goal>
                        </goals>
                      </execution>
                   </executions>
              </plugin>
            </plugins>
        </pluginManagement>        
        <plugins>
            <plugin>
                <groupId>org.apache.rat</groupId>
                <artifactId>apache-rat-plugin</artifactId>
                <configuration>
                    <excludes>
                      <exclude>.travis.yml</exclude>
                      <exclude>CMakeCache.txt</exclude>
                      <exclude>.gitmodules</exclude>
                      <exclude>.gitignore</exclude>
                      <exclude>.autotools</exclude>
                      <exclude>**/angular-patternfly.min.js</exclude>
                      <exclude>**/angular-patternfly.min.css</exclude>
                      <exclude>**/d3.v3.min.js</exclude>
                      <exclude>**/jquery.tipsy.js</exclude>
                      <exclude>**/jquery.tipsy.js</exclude>
                      <exclude>**/zd3-queue.min.js</exclude>
                      <exclude>**/d3.min.js</exclude>
                      <exclude>**/tooltipsy.min.js</exclude>
                      <exclude>**/font-awesome.min.css</exclude>
                      <exclude>**/jquery-ui.css</exclude>
                      <exclude>**/jquery.tipsy.css</exclude>
    	              <exclude>**/vendor.min.js</exclude>
		      <exclude>**/vendor.min.css</exclude>
                      <exclude>**/jquery.dynatree.min.js</exclude>
                      <exclude>**/slider.js</exclude>
                      <exclude>**/ui-grid.js</exclude>
                      <exclude>**/system_tests_http.txt</exclude>
                      <exclude>**/build/</exclude>
                      <exclude>**/target/</exclude>
                      <exclude>**/install/</exclude>
                      <exclude>**/*.lock</exclude>
                      <exclude>**/MANIFEST.in</exclude>
                      <exclude>**/valgrind.supp</exclude>
                      <exclude>**/tsan.supp</exclude>
                      <exclude>**/asan.supp</exclude>
                      <exclude>**/lsan.supp</exclude>
                      <exclude>**/*.json.in</exclude>
                      <exclude>**/*.json</exclude>
                      <exclude>**/*.svg</exclude>
                      <exclude>**/rhea-min.js</exclude>
                      <exclude>**/VERSION.txt</exclude>
                      <exclude>**/v3_ca.ext</exclude>
                      <exclude>**/system_test.dir/**</exclude>
                      <exclude>**/server-password-file.txt</exclude>
                      <exclude>**/server-password-file-bad.txt</exclude>
                      <exclude>**/client-password-file.txt</exclude>
		      <exclude>**/password.txt</exclude>
                      <exclude>**/*.pkcs12</exclude>
                      <exclude>**/.idea/**</exclude> <!-- This is for ignoring the intellij idea project files -->
                      <exclude>**/*~</exclude> <!-- This is for files created by emacs -->
                      <exclude>.pydevproject</exclude> <!-- PyCharm project file -->
                      <exclude>.cproject</exclude>
                      <exclude>**/qpid-proton/**</exclude>
                      <exclude>**/CMakeFiles/**</exclude>
                      <exclude>**/licenses/**</exclude>
                      <exclude>qpid-proton/**</exclude>
                      <exclude>libuv/**</exclude>
                      <exclude>libwebsockets/**</exclude>
                      <exclude>tools/scraper/test_data/**</exclude>
                </excludes>
        </configuration>            
            </plugin>
        </plugins>        
    </build>  
</project>
