<?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.hawq</groupId>
  <artifactId>hawq</artifactId>
  <version>2.5</version>
  <packaging>pom</packaging>

  <build>  
    <pluginManagement>
      <plugins>
        <plugin>
          <groupId>org.apache.rat</groupId>
          <artifactId>apache-rat-plugin</artifactId>
          <version>0.12</version>
          <configuration>
            <consoleOutput>true</consoleOutput>
            <excludes>

              <!-- stream benchmark under BSD-like license with a few
                   exceptions around benchmarking results -->

              <exclude>tools/bin/src/stream/*</exclude> 

              <!-- PyGreSQL an open-source Python module that
                   interfaces to a PostgreSQL database under the
                   Python Software Foundation License -->

              <exclude>tools/bin/pythonSrc/PyGreSQL-4.0/**</exclude>

              <!-- Open-source Python modules with MIT license -->

              <exclude>tools/bin/pythonSrc/lockfile-0.9.1/**</exclude>
              <exclude>tools/bin/pythonSrc/PSI-0.3b2_gp/**</exclude>
              <exclude>tools/bin/ext/simplejson/**</exclude>
              <exclude>tools/bin/ext/yaml/**</exclude>

              <!-- CMake BSD 3-clause license -->

              <exclude>depends/libhdfs3/CMake/**</exclude>
              <exclude>depends/libyarn/CMake/**</exclude>
              <exclude>depends/dbcommon/CMake/**</exclude>
              <exclude>depends/storage/CMake/**</exclude>>
              <exclude>depends/univplan/CMake/**</exclude>
              
              <!-- Open-source Python modules with BSD license -->
              
              <exclude>tools/bin/pythonSrc/pychecker-0.8.18/**</exclude>
              <exclude>tools/bin/pythonSrc/unittest2-0.5.1/**</exclude>
              <exclude>tools/bin/ext/figleaf/**</exclude>
              <exclude>tools/bin/ext/pg8000/**</exclude>
              <exclude>depends/dbcommon/test/parallel/**</exclude>
              <exclude>depends/storage/test/parallel/**</exclude>
              <exclude>depends/univplan/test/parallel/**</exclude>

              <!-- BZIP2 license (4 clause BSD) -->

              <exclude>src/include/port/win32_msvc/bzlib.h</exclude>

              <!-- Google license (3 clause BSD) -->

              <exclude>depends/thirdparty/googletest/**</exclude>
              
              <!-- Oraface Project BSD license
                   https://github.com/orafce -->

              <exclude>contrib/orafce/*</exclude>

              <!-- Pexpect a Python module for spawning child
                   applications and controlling them automatically,
                   BSD license -->

              <exclude>tools/bin/lib/pexpect.py</exclude>

              <!-- Open-source Python modules with ISC license -->

              <exclude>tools/bin/pythonSrc/pexpect-4.2/**</exclude>
              <exclude>tools/bin/pythonSrc/ptyprocess-0.5.1/**</exclude>

              <!-- These files came from PostgreSQL but they don't
                   have markers to identify that -->

              <exclude>src/bin/gpfdist/src/gpfdist/glob.c</exclude>
              <exclude>src/bin/gpfdist/src/gpfdist/include/glob.h</exclude>
              <exclude>src/include/port/win32_msvc/glob.h</exclude>
              <exclude>aclocal.m4</exclude>
              <exclude>GNUmakefile.in</exclude>
              <exclude>configure.in</exclude> 
              <exclude>configure</exclude>
              <exclude>Makefile</exclude>
              <exclude>config/*</exclude> <!-- This one is tricky since it is actually GPL -->
              <exclude>src/makefiles/*</exclude>
              <exclude>src/DEVELOPERS</exclude>
              <exclude>src/backend/catalog/Makefile</exclude>
              <exclude>src/backend/port/beos/*.c</exclude>
              <exclude>src/backend/port/tas/*.s</exclude>
              <exclude>src/backend/regex/re_syntax.n</exclude>
              <exclude>src/backend/utils/mb/conversion_procs/regress_epilogue</exclude>
              <exclude>src/backend/utils/mb/conversion_procs/regress_prolog</exclude>
              <exclude>src/backend/utils/mb/Unicode/ISO10646-GB18030.TXT</exclude>
              <exclude>src/backend/utils/misc/check_guc</exclude>
              <exclude>src/backend/port/hpux/tas.c.template</exclude>
              <exclude>src/backend/utils/mb/conversion_procs/proc.mk</exclude>
              <exclude>src/include/pg_config.h.win32</exclude>
              <exclude>src/bin/scripts/common.h</exclude>
              <exclude>src/include/pg_config.h.in</exclude>
              <exclude>src/bin/initdb/*</exclude>
              <exclude>src/bin/initlocation/*</exclude>
              <exclude>src/bin/ipcclean/*</exclude>
              <exclude>src/bin/pg_*/**/*</exclude>
              <exclude>src/bin/psql/**/*</exclude>
              <exclude>src/bin/scripts/*.c</exclude>
              <exclude>src/interfaces/**/*</exclude>
              <exclude>src/tools/**/*</exclude>
              <exclude>src/tutorial/*</exclude>
              <exclude>src/pl/**/*</exclude>
              <exclude>src/port/*</exclude>
              <exclude>src/template/*</exclude>

              <!-- src/test/bench -->

              <exclude>src/test/bench/query*</exclude>

              <!-- PostgreSQL src/test/regress -->
              
              <exclude>src/test/regress/**/*.in</exclude>
              <exclude>src/test/regress/**/*.mdp</exclude>
              <exclude>src/test/regress/**/*.xml</exclude>
              <exclude>src/test/regress/data/fixedwidth/fixedwidth_3chars_line_delimiter.tbl</exclude>
              <exclude>src/test/regress/data/fixedwidth/fixedwidth_big.tbl</exclude>
              <exclude>src/test/regress/data/fixedwidth/fixedwidth_no_line_delimiter.tbl</exclude>
              <exclude>src/test/regress/data/fixedwidth/fixedwidth_out.tbl</exclude>
              <exclude>src/test/regress/data/fixedwidth/fixedwidth_small_blankfields.tbl</exclude>
              <exclude>src/test/regress/data/fixedwidth/fixedwidth_small_blankfields_and_nulls.tbl</exclude>
              <exclude>src/test/regress/data/fixedwidth/fixedwidth_small_correct.tbl</exclude>
              <exclude>src/test/regress/data/fixedwidth/fixedwidth_small_error_fieldtoolong.tbl</exclude>
              <exclude>src/test/regress/data/fixedwidth/fixedwidth_small_error_fieldtype.tbl</exclude>
              <exclude>src/test/regress/data/fixedwidth/fixedwidth_small_error_rejectlimitcrossed.tbl</exclude>
              <exclude>src/test/regress/data/fixedwidth/fixedwidth_small_error_rejectlimitnotcrossed.tbl</exclude>
              <exclude>src/test/regress/data/fixedwidth/fixedwidth_small_error_toofewfields.tbl</exclude>
              <exclude>src/test/regress/data/fixedwidth/fixedwidth_small_error_toomanyfields.tbl</exclude>
              <exclude>src/test/regress/data/fixedwidth/fixedwidth_small_nulldefined.tbl</exclude>
              <exclude>src/test/regress/data/nation.tbl</exclude>
              <exclude>src/test/regress/data/nation_error50.tbl</exclude>
              <exclude>src/test/regress/data/region.tbl</exclude>
              <exclude>src/test/regress/expected_statuses</exclude>
                            
              <!-- src/test/feature -->

              <exclude>src/test/feature/ExternalSource/data/nation.tbl</exclude>
              <exclude>src/test/feature/ExternalSource/data/nation_error50.tbl</exclude>
              <exclude>src/test/feature/ExternalSource/data/region.tbl</exclude>
              <exclude>src/test/feature/ManagementTool/test_hawq_register_hawq.paq</exclude>
              <exclude>src/test/feature/ManagementTool/test_hawq_register_hive.paq</exclude>
              <exclude>src/test/feature/ManagementTool/data/parquet200/dat.paq</exclude>
              <exclude>src/test/feature/ManagementTool/data/parquet200sum/a.paq</exclude>
              <exclude>src/test/feature/ManagementTool/data/parquet200sum/b.paq</exclude>
              <exclude>src/test/feature/ManagementTool/test_hawq_register_data_types.paq</exclude>
              <exclude>src/test/feature/ManagementTool/test_hawq_register_not_paq</exclude>
              <exclude>src/test/feature/ManagementTool/test_hawq_register_null.paq</exclude>
              <exclude>src/test/feature/ManagementTool/usage2case2/10</exclude>
              <exclude>src/test/feature/ManagementTool/usage2case2/11</exclude>
              <exclude>src/test/feature/ManagementTool/usage2case2/12</exclude>
              <exclude>src/test/feature/ManagementTool/usage2case2/13</exclude>
              <exclude>src/test/feature/ManagementTool/usage2case2/8</exclude>
              <exclude>src/test/feature/ManagementTool/usage2case2/9</exclude>
              
              <exclude>src/test/feature/UDF/ans/function_basics.ans.orca</exclude>
              <exclude>src/test/feature/UDF/ans/function_basics.ans.planner</exclude>
              <exclude>src/test/feature/UDF/ans/function_basics.ranger.ans.orca</exclude>
              <exclude>src/test/feature/UDF/ans/function_basics.ranger.ans.planner</exclude>

              <exclude>src/test/locale/**/Makefile</exclude>
              <exclude>src/test/locale/**/runall</exclude>
              <exclude>src/test/locale/de_DE.ISO8859-1/test-de-select.sql.in</exclude>
              <exclude>src/test/locale/de_DE.ISO8859-1/test-de-sort.in</exclude>
              <exclude>src/test/locale/de_DE.ISO8859-1/test-de-upper.sql.in</exclude>
              <exclude>src/test/locale/de_DE.ISO8859-1/test-de.sql.in</exclude>
              <exclude>src/test/locale/gr_GR.ISO8859-7/test-gr-select.sql.in</exclude>
              <exclude>src/test/locale/gr_GR.ISO8859-7/test-gr-sort.in</exclude>
              <exclude>src/test/locale/gr_GR.ISO8859-7/test-gr.sql.in</exclude>
              <exclude>src/test/locale/koi8-r/test-koi8-select.sql.in</exclude>
              <exclude>src/test/locale/koi8-r/test-koi8-sort.in</exclude>
              <exclude>src/test/locale/koi8-r/test-koi8.sql.in</exclude>
              <exclude>src/test/locale/koi8-to-win1251/test-koi8-select.sql.in</exclude>
              <exclude>src/test/locale/koi8-to-win1251/test-koi8-sort.in</exclude>
              <exclude>src/test/locale/koi8-to-win1251/test-koi8.sql.in</exclude>

              <!-- src/test/performance test files -->

              <exclude>src/test/performance/results/PgSQL.970926</exclude>
              <exclude>src/test/performance/sqls/connection</exclude>
              <exclude>src/test/performance/sqls/crtsimple</exclude>
              <exclude>src/test/performance/sqls/crtsimpleidx</exclude>
              <exclude>src/test/performance/sqls/drpsimple</exclude>
              <exclude>src/test/performance/sqls/orbsimple</exclude>
              <exclude>src/test/performance/sqls/slcsimple</exclude>
              <exclude>src/test/performance/sqls/vacuum</exclude>
              <exclude>src/test/regress/resultmap</exclude>

              <exclude>src/timezone/**/*</exclude>
              <exclude>doc/src/sgml/fixrtf</exclude>
              <exclude>doc/**/*.sgml</exclude>
              <exclude>contrib/vexecutor/*</exclude>
              <exclude>contrib/pgcrypto/*</exclude>

              <!-- Files which are not easy to have license headers. -->

              <exclude>depends/libhdfs3/test/data/*</exclude>
              <exclude>depends/libhdfs3/debian/**</exclude>
              <exclude>depends/dbcommon/test/data/*</exclude>
              <exclude>depends/storage/test/data/*</exclude>
              <exclude>depends/univplan/test/data/*</exclude>

              <!-- Following files are licensed to ASF via the initial HAWQ SGA,
                   however it is tricky to maintain headers in them -->

              <exclude>depends/libyarn/test/data/*</exclude>
              <exclude>contrib/hawq-hadoop/hawq-mapreduce-common/src/test/resources/**/*.yaml</exclude>
              <exclude>contrib/hawq-hadoop/hawq-mapreduce-tool/test-data/**/*.yaml</exclude>

              <exclude>contrib/hawq-hadoop/hawq-mapreduce-tool/src/test/resources/dataset</exclude>
              <exclude>contrib/hawq-ambari-plugin/build.properties</exclude>
              <exclude>contrib/hawq-ambari-plugin/README.md</exclude>

              <exclude>src/backend/access/index/caql.files</exclude>
              <exclude>src/backend/gpopt/library.ver</exclude>
              <exclude>src/backend/utils/misc/etc/slaves</exclude>

              <exclude>tools/bin/.rcfile</exclude>
              <exclude>tools/bin/postgresql_conf_gp_additions</exclude>
              <exclude>tools/doc/**/*</exclude>
              <exclude>tools/demo/gpfdist_transform/*.yaml</exclude>
              <exclude>tools/bin/gppylib/operations/madlib_depcheck/changelist.yaml</exclude>

              <!-- Finally we exclude a few file types (based on
                   extension) for which comments are tough to
                   maintain. Note that this is a combination of files
                   licensed to ASF and files that came from PostgreSQL
                   and other projects (under compatible licenses).
                   You may need to engage in software archaeology to
                   find out the origins of these.
              -->

              <exclude>.git/**</exclude>
              <exclude>**/*.md</exclude>
              <exclude>**/*.md5</exclude>
              <exclude>**/*.json</exclude>
              <exclude>**/*.ans</exclude>
              <exclude>**/*.sql</exclude>
              <exclude>**/*.out</exclude>
              <exclude>**/*.po</exclude>
              <exclude>**/*.map</exclude>
              <exclude>**/*.stderr</exclude>
              <exclude>**/*.stdout</exclude>
              <exclude>**/*.source</exclude>
              <exclude>**/*.txt</exclude>
              <exclude>**/*.data</exclude>
              <exclude>**/*.csv</exclude>
              <exclude>**/*.pm</exclude>
              <exclude>**/*.1</exclude>
              <exclude>**/*.sample</exclude>
              <exclude>**/*.pgc</exclude>
              <exclude>**/*.cnf</exclude>
              <exclude>**/*.stx</exclude>
              <exclude>**/*.gdb</exclude>
              <exclude>**/*.patch</exclude>
              <exclude>**/*.commit</exclude>
              <exclude>**/*.cfg</exclude>
              <exclude>**/__init__.py</exclude>
              <exclude>**/*README*</exclude>
            </excludes>
            <licenses>
              <license implementation="org.apache.rat.analysis.license.SimplePatternBasedLicense">
                <licenseFamilyName>PostgreSQL License</licenseFamilyName>
                <licenseFamilyCategory>PGSQL</licenseFamilyCategory>
                <patterns>
                  <pattern>$PostgreSQL:</pattern>
                  <pattern>PostgreSQL Global Development Group</pattern>
                </patterns>
            </license>
            </licenses>
            <licenseFamilies>
              <licenseFamily implementation="org.apache.rat.license.SimpleLicenseFamily">
                <familyName>PostgreSQL License</familyName>
              </licenseFamily>
              <licenseFamily implementation="org.apache.rat.license.SimpleLicenseFamily">
                <familyName>Apache License Version 2.0</familyName>
              </licenseFamily>
            </licenseFamilies>
          </configuration>
        </plugin>
      </plugins>
    </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>
  </build>
</project>
