<?xml version="1.0" encoding="UTF-8"?>
<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>com.rackspace.papi.components</groupId>
        <artifactId>filters-support</artifactId>
        <version>6.1.1.0</version>
    </parent>

    <groupId>com.rackspace.papi.components</groupId>
    <artifactId>header-normalization</artifactId>

    <name>Repose Components - Header Normalization</name>
    <description>The HeaderNormalizationFilter uses black-listing and white-listing to prevent and allow (respectively) certain headers
        to pass through to the origin service. These headers are matched by URI regular expressions or HTTP method type.

        Whenever a configuration is updated, every target's blacklist and whitelist are read. Each list is added to a
        list of lists, alongside a regex, http method, and a boolean indicating whether it is a blacklist or whitelist.

        When handleRequest is called, it iterates over each list, and gets all headers to remove from that target.
        (Checks if the headers are blacklist)

        It combines all of these headers to remove into a new list of all headers to remove,
        which lives in FilterDirector.requestHeaderManager().headersToRemove().

        The Header Normalization filter should be placed near the top of the filter chain.</description>

    <packaging>jar</packaging>

    <properties>
        <sonar.jacoco.itReportPath>${project.basedir}/../../../target/jacoco-it.exec</sonar.jacoco.itReportPath>
    </properties>

    <dependencies>
        <dependency>
            <groupId>com.rackspace.papi.core</groupId>
            <artifactId>core-lib</artifactId>
        </dependency>

        <dependency>
            <groupId>com.rackspace.papi.commons</groupId>
            <artifactId>configuration</artifactId>
        </dependency>

        <dependency>
            <groupId>com.rackspace.papi.commons</groupId>
            <artifactId>utilities</artifactId>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.jvnet.jaxb2.maven2</groupId>
                <artifactId>maven-jaxb2-plugin</artifactId>

                <configuration>

                    <specVersion>2.1</specVersion>

                    <schemaIncludes>
                        <include>**/*.xsd</include>
                    </schemaIncludes>
                    <bindingIncludes>
                        <include>**/*.xjb</include>
                    </bindingIncludes>

                    <strict>true</strict>
                    <verbose>false</verbose>

                </configuration>
            </plugin>

        </plugins>
    </build>


</project>
