<?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>23</version>
    </parent>

    <groupId>org.apache.knox</groupId>
    <artifactId>gateway</artifactId>
    <version>3.0.0</version>
    <packaging>pom</packaging>

    <name>gateway</name>
    <description>The Apache Knox Project</description>
    <url>https://knox.apache.org/</url>

    <scm>
        <connection>scm:git:https://gitbox.apache.org/repos/asf/knox.git</connection>
        <developerConnection>scm:git:https://gitbox.apache.org/repos/asf/knox.git</developerConnection>
        <url>https://gitbox.apache.org/repos/asf/knox.git</url>
    </scm>

    <mailingLists>
        <mailingList>
            <name>Apache Knox User List</name>
            <subscribe>user-subscribe@knox.apache.org</subscribe>
            <unsubscribe>user-unsubscribe@knox.apache.org</unsubscribe>
            <post>user@knox.apache.org</post>
            <archive>https://mail-archives.apache.org/mod_mbox/knox-user/</archive>
        </mailingList>
        <mailingList>
            <name>Apache Knox Development List</name>
            <subscribe>dev-subscribe@knox.apache.org</subscribe>
            <unsubscribe>dev-unsubscribe@knox.apache.org</unsubscribe>
            <post>dev@knox.apache.org</post>
            <archive>https://mail-archives.apache.org/mod_mbox/knox-dev/</archive>
        </mailingList>
    </mailingLists>

    <modules>
        <module>build-tools</module>
        <module>gateway-test-utils</module>
        <module>gateway-util-common</module>
        <module>gateway-util-configinjector</module>
        <module>gateway-util-launcher</module>
        <module>gateway-util-urltemplate</module>
        <module>gateway-demo-ldap</module>
        <module>gateway-demo-ldap-launcher</module>
        <module>gateway-i18n</module>
        <module>gateway-i18n-logging-log4j</module>
        <module>gateway-i18n-logging-sl4j</module>
        <module>gateway-spi</module>
        <module>gateway-spi-common</module>
        <module>gateway-shim-opensaml-security-api</module>
        <module>gateway-discovery-ambari</module>
        <module>gateway-discovery-cm</module>
        <module>gateway-performance-test</module>
        <module>gateway-server</module>
        <module>gateway-server-launcher</module>
        <module>gateway-server-xforwarded-filter</module>
        <module>gateway-provider-rewrite</module>
        <module>gateway-provider-rewrite-common</module>
        <module>gateway-provider-rewrite-func-hostmap-static</module>
        <module>gateway-provider-rewrite-func-service-registry</module>
        <module>gateway-provider-rewrite-func-inbound-query-param</module>
        <module>gateway-provider-rewrite-step-secure-query</module>
        <module>gateway-provider-rewrite-step-encrypt-uri</module>
        <module>gateway-provider-security-jwt</module>
        <module>gateway-provider-security-webappsec</module>
        <module>gateway-provider-security-preauth</module>
        <module>gateway-provider-security-k8s</module>
        <module>gateway-provider-security-hadoopauth</module>
        <module>gateway-provider-security-clientcert</module>
        <module>gateway-provider-security-shiro</module>
        <module>gateway-provider-security-pac4j</module>
        <module>gateway-provider-security-authz-acls</module>
        <module>gateway-provider-security-authz-path-acls</module>
        <module>gateway-provider-security-authz-composite</module>
        <module>gateway-provider-security-authc-remote</module>
        <module>gateway-provider-security-authc-anon</module>
        <module>gateway-provider-identity-assertion-common</module>
        <module>gateway-provider-identity-assertion-concat</module>
        <module>gateway-provider-identity-assertion-hadoop-groups</module>
        <module>gateway-provider-identity-assertion-regex</module>
        <module>gateway-provider-identity-assertion-switchcase</module>
        <module>gateway-provider-identity-assertion-pseudo</module>
        <module>gateway-provider-identity-assertion-no-doas</module>
        <module>gateway-provider-jersey</module>
        <module>gateway-provider-ha</module>
        <module>gateway-service-admin</module>
        <module>gateway-service-as</module>
        <module>gateway-service-auth</module>
        <module>gateway-service-hbase</module>
        <module>gateway-service-hive</module>
        <module>gateway-service-impala</module>
        <module>gateway-service-knoxsso</module>
        <module>gateway-service-knoxssout</module>
        <module>gateway-service-knoxtoken</module>
        <module>gateway-service-livy</module>
        <module>gateway-service-jkg</module>
        <module>gateway-service-health</module>
        <module>gateway-service-webhdfs</module>
        <module>gateway-service-tgs</module>
        <module>gateway-service-rm</module>
        <module>gateway-service-storm</module>
        <module>gateway-service-remoteconfig</module>
        <module>gateway-service-restcatalog</module>
        <module>gateway-service-definitions</module>
        <module>gateway-shell</module>
        <module>gateway-shell-launcher</module>
        <module>knox-cli-launcher</module>
        <module>hadoop-examples</module>
        <module>gateway-release</module>
        <module>gateway-test</module>
        <module>gateway-service-vault</module>
        <module>gateway-service-test</module>
        <module>gateway-test-release</module>
        <module>gateway-applications</module>
        <module>gateway-shell-samples</module>
        <module>gateway-shell-release</module>
        <module>gateway-test-release-utils</module>
        <module>gateway-service-nifi</module>
        <module>gateway-service-nifi-registry</module>
        <module>gateway-docker</module>
        <module>gateway-service-hashicorp-vault</module>
        <module>gateway-release-common</module>
        <module>gateway-topology-simple</module>
        <module>gateway-topology-hadoop-xml</module>
        <module>gateway-service-metadata</module>
        <module>gateway-service-session</module>
        <module>gateway-openapi-ui</module>
    </modules>

    <properties>
        <!-- Ensure that source and target version are overridden from base ASF POM.
             This is also used by forbiddenapis to ensure correct signatures are loaded. -->
        <maven.compiler.source>17</maven.compiler.source>
        <maven.compiler.target>17</maven.compiler.target>

        <!-- Dependencies sorted alphabetically -->
        <apacheds.directory.api.version>2.1.8</apacheds.directory.api.version>
        <apacheds.directory.server.version>2.0.0.AM27</apacheds.directory.server.version>
        <apacheds-jdbm.version>2.0.0-M5</apacheds-jdbm.version>
        <apache-rat-plugin.version>0.13</apache-rat-plugin.version>
        <ant-nodeps.version>1.8.1</ant-nodeps.version>
        <asm.version>9.0</asm.version>
        <aspectj.version>1.9.25.1</aspectj.version>
        <asynchttpclient.version>4.1.5</asynchttpclient.version>
        <bcprov-jdk18on.version>1.84</bcprov-jdk18on.version>
        <bcpkix-jdk18on.version>1.84</bcpkix-jdk18on.version>
        <ben-manes.caffeine.version>2.8.8</ben-manes.caffeine.version>
        <buildnumber-maven-plugin.version>1.4</buildnumber-maven-plugin.version>
        <cglib.version>3.3.0</cglib.version>
        <checkstyle.version>8.38</checkstyle.version>
        <cloudera-manager.version>7.13.1</cloudera-manager.version>
        <cloudera-manager-api-swagger.version>${cloudera-manager.version}</cloudera-manager-api-swagger.version>
        <commons-beanutils.version>1.11.0</commons-beanutils.version>
        <commons-cli.version>1.4</commons-cli.version>
        <commons-codec.version>1.15</commons-codec.version>
        <commons-collections.version>3.2.2</commons-collections.version>
        <commons-collections4.version>4.5.0</commons-collections4.version>
        <commons-compress.version>1.26.0</commons-compress.version>
        <commons-configuration2.version>2.15.0</commons-configuration2.version>
        <commons-digester3.version>3.2</commons-digester3.version>
        <commons-io.version>2.17.0</commons-io.version>
        <commons-lang3.version>3.18.0</commons-lang3.version>
        <commons-logging.version>1.3.5</commons-logging.version>
        <commons-math3.version>3.6.1</commons-math3.version>
        <commons-net.version>3.9.0</commons-net.version>
        <commons-pool2.version>2.7.0</commons-pool2.version>
        <commons-text.version>1.10.0</commons-text.version>
        <cors-filter.version>2.9.1</cors-filter.version>
        <cryptacular.version>1.3.0</cryptacular.version>
        <curator.version>5.4.0</curator.version>
        <dependency-check-maven.version>6.0.3</dependency-check-maven.version>
        <derby.db.version>10.14.2.0</derby.db.version> <!-- 10.15.1.3 requires Java 9 -->
        <hsql.db.version>2.7.1</hsql.db.version>
        <dockerfile-maven-plugin.version>1.4.13</dockerfile-maven-plugin.version>
        <dom4j.version>2.1.3</dom4j.version>
        <easymock.version>5.2.0</easymock.version>
        <eclipselink.version>2.7.8</eclipselink.version>
        <ehcache.version>3.3.1</ehcache.version>
        <error_prone_annotations.version>2.41.0</error_prone_annotations.version>
        <exec-maven-plugin.version>3.0.0</exec-maven-plugin.version>
        <fastinfoset.version>1.2.18</fastinfoset.version>
        <forbiddenapis.version>3.9</forbiddenapis.version>
        <findsecbugs-plugin.version>1.11.0</findsecbugs-plugin.version>
        <fabric8.kubernetes-client.version>7.7.0</fabric8.kubernetes-client.version>
        <frontend-maven-plugin.version>1.15.1</frontend-maven-plugin.version>
        <gethostname4j.version>1.0.0</gethostname4j.version>  <!-- See here: https://github.com/mattsheppard/gethostname4j -->
        <glassfish-jaxb.version>4.0.5</glassfish-jaxb.version>
        <gson.version>2.10.1</gson.version>
        <gsonfire.version>1.9.0</gsonfire.version>
        <groovy.version>5.0.4</groovy.version>
        <guava.version>32.1.3-jre</guava.version>
        <hadoop.version>3.4.1</hadoop.version>
        <hamcrest.version>2.2</hamcrest.version>
        <hamcrest-json.version>0.2</hamcrest-json.version>
        <httpclient.version>4.5.13</httpclient.version>
        <httpclient5.version>5.4.3</httpclient5.version>
        <httpcore.version>4.4.14</httpcore.version>
        <httpcore5.version>5.3.6</httpcore5.version>
        <jackson.version>2.18.9</jackson.version>
        <jacoco-maven-plugin.version>0.8.13</jacoco-maven-plugin.version>
        <jakarta.activation-api.version>1.2.1</jakarta.activation-api.version>
        <com.sun.activation.version>1.2.2</com.sun.activation.version>
        <javax.annotation-api.version>1.3.2</javax.annotation-api.version>
        <javax.inject.version>2.4.0</javax.inject.version>
        <javax.json.version>1.1.3</javax.json.version>
        <javax.servlet-api.version>4.0.1</javax.servlet-api.version>
        <javax.ws.rs-api.version>2.0</javax.ws.rs-api.version>
        <javax.websocket-api.version>1.1</javax.websocket-api.version>
        <jaxws-ri.version>2.3.3</jaxws-ri.version>
        <java-support.version>8.3.1</java-support.version>
        <javassist.version>3.27.0-GA</javassist.version>
        <jboss-logging.version>3.4.1.Final</jboss-logging.version>
        <jee-pac4j.version>8.0.3</jee-pac4j.version>
        <jericho-html.version>3.4</jericho-html.version>
        <jersey.version>2.47</jersey.version>
        <jetty.version>12.0.38</jetty.version>
        <jline.version>3.30.6</jline.version>
        <jna.version>5.18.1</jna.version>
        <joda-time.version>2.10.8</joda-time.version>
        <json-path.version>2.9.0</json-path.version>
        <json-smart.version>2.5.2</json-smart.version>
        <jakarta.annotation-api.version>1.3.4</jakarta.annotation-api.version>
        <junit.version>4.13.2</junit.version>
        <kotlin-stdlib.version>1.9.10</kotlin-stdlib.version>
        <libpam4j.version>1.11</libpam4j.version>
        <log4j2.version>2.26.0</log4j2.version>
        <maven-checkstyle-plugin.version>3.1.1</maven-checkstyle-plugin.version>
        <maven-compiler-plugin.version>3.8.1</maven-compiler-plugin.version>
        <maven-dependency-plugin.version>3.6.1</maven-dependency-plugin.version>
        <maven-enforcer-plugin.version>3.0.0-M3</maven-enforcer-plugin.version>
        <maven-pmd-plugin.version>3.28.0</maven-pmd-plugin.version>
        <metrics.version>4.2.38</metrics.version>
        <mina.version>2.2.8</mina.version>
        <netty.version>4.1.137.Final</netty.version>
        <nimbus-jose-jwt.version>10.9.1</nimbus-jose-jwt.version>
        <nodejs.version>v22.20.0</nodejs.version>
        <okhttp.version>4.12.0</okhttp.version>
        <opensaml.version>5.2.2</opensaml.version>
        <pac4j.version>6.5.3</pac4j.version>
        <postgresql.version>42.7.12</postgresql.version>
        <mysql.version>8.0.28</mysql.version>
        <mariadb.connector.version>3.3.0</mariadb.connector.version>
        <okio.version>3.6.0</okio.version>
        <oracle.version>23.26.0.0.0</oracle.version>
        <protobuf.version>3.25.8</protobuf.version>
        <powermock.version>2.0.9</powermock.version>
        <purejavacomm.version>0.0.11.1</purejavacomm.version>
        <pty4j.version>0.12.4</pty4j.version>
        <rest-assured.version>6.0.0</rest-assured.version>
        <shiro.version>2.2.1</shiro.version>
        <shrinkwrap.version>1.2.6</shrinkwrap.version>
        <shrinkwrap.descriptors.version>2.0.0</shrinkwrap.descriptors.version>
        <slf4j.version>2.0.13</slf4j.version>
        <spotbugs.version>4.9.3</spotbugs.version>
        <spotbugs-maven-plugin.version>4.9.3.0</spotbugs-maven-plugin.version>
        <spring.version>6.2.11</spring.version>
        <spring-vault.version>3.2.0</spring-vault.version>
        <stax-ex.version>1.8.3</stax-ex.version>
        <stax2-api.version>4.2.1</stax2-api.version>
        <system-stubs-junit4.version>1.1.0</system-stubs-junit4.version>
        <swagger-annotations.version>1.6.2</swagger-annotations.version>
        <swagger-maven-plugin.version>3.1.7</swagger-maven-plugin.version>
        <taglibs-standard.version>1.2.5</taglibs-standard.version>
        <testcontainers.version>1.15.1</testcontainers.version>
        <txw2.version>2.4.0-b180830.0438</txw2.version>
        <velocity.version>2.4.1</velocity.version>
        <woodstox-core.version>6.4.0</woodstox-core.version>
        <xmlsec.version>4.0.4</xmlsec.version>
        <xmltool.version>3.3</xmltool.version>
        <xml-jaxb.version>2.3.1</xml-jaxb.version>
        <xml-matchers.version>0.10</xml-matchers.version>
        <zookeeper.version>3.8.6</zookeeper.version>
        <docker-maven-plugin.version>0.45.0</docker-maven-plugin.version>
        <docker.platforms>linux/amd64,linux/arm64</docker.platforms>
        <snakeyaml.version>2.4</snakeyaml.version>
        <xml-maven-plugin.version>1.1.0</xml-maven-plugin.version>
        <jakarta.xml.bind.version>4.0.2</jakarta.xml.bind.version>
        <jakarta.xml.ws.version>4.0.2</jakarta.xml.ws.version>
        <jakarta.activation.version>2.0.1</jakarta.activation.version>
        <jakarta.json.version>2.1.3</jakarta.json.version>
        <eclipse.parsson.version>1.1.7</eclipse.parsson.version>
        <objenesis.version>3.3</objenesis.version>
        <moxy.version>4.0.2</moxy.version>
        <maven.surefire.plugin.version>3.5.3</maven.surefire.plugin.version>
        <maven.failsafe.plugin.version>3.5.3</maven.failsafe.plugin.version>
    </properties>
    <repositories>
        <repository>
            <id>jetbrains-pty4j</id>
            <name>jetbrains-intellij-dependencies</name>
            <url>https://packages.jetbrains.team/maven/p/ij/intellij-dependencies</url>
        </repository>
    </repositories>
    <profiles>
        <profile>
            <id>package</id>
            <build>
                <plugins>
                    <plugin>
                        <inherited>false</inherited>
                        <artifactId>maven-assembly-plugin</artifactId>
                        <executions>
                            <execution>
                                <id>source</id>
                                <phase>package</phase>
                                <goals>
                                    <goal>single</goal>
                                </goals>
                                <configuration>
                                    <finalName>knox-${project.version}</finalName>
                                    <outputDirectory>target/${project.version}</outputDirectory>
                                    <descriptors>
                                        <descriptor>src/assembly.xml</descriptor>
                                    </descriptors>
                                    <tarLongFileMode>gnu</tarLongFileMode>
                                </configuration>
                            </execution>
                        </executions>
                    </plugin>
                </plugins>
            </build>
            <properties>
                <failsafe.group>org.apache.knox.test.category.VerifyTest</failsafe.group>
            </properties>
        </profile>
        <profile>
            <id>release</id>
            <properties>
                <failsafe.group>org.apache.knox.test.category.VerifyTest,org.apache.knox.test.category.ReleaseTest</failsafe.group>
            </properties>
        </profile>
        <profile>
            <id>dev</id>
            <activation>
                <activeByDefault>true</activeByDefault>
            </activation>
            <properties>
                <failsafe.group>org.apache.knox.test.category.VerifyTest</failsafe.group>
            </properties>
        </profile>
        <profile>
            <id>owasp</id>
            <!--
            These repositories are defined by dependencies but the owasp dependency check
            plugin doesn't pull in these repositories. This then causes failures when
            trying to download commonj and saml dependencies.
            -->
            <repositories>
                <repository>
                    <id>jboss-puplic</id>
                    <url>https://repository.jboss.org/nexus/content/repositories/public</url>
                    <snapshots>
                        <enabled>false</enabled>
                    </snapshots>
                    <releases>
                        <enabled>true</enabled>
                    </releases>
                </repository>
                <repository>
                    <id>shib-release</id>
                    <url>https://build.shibboleth.net/maven/releases</url>
                    <snapshots>
                        <enabled>false</enabled>
                    </snapshots>
                    <releases>
                        <enabled>true</enabled>
                    </releases>
                </repository>
            </repositories>
            <build>
                <plugins>
                    <plugin>
                        <groupId>org.owasp</groupId>
                        <artifactId>dependency-check-maven</artifactId>
                        <version>${dependency-check-maven.version}</version>
                        <configuration>
                            <suppressionFiles>
                                <suppressionFile>build-tools/dependency-check/suppressions.xml</suppressionFile>
                            </suppressionFiles>
                        </configuration>
                        <executions>
                            <execution>
                                <goals>
                                    <goal>aggregate</goal>
                                </goals>
                            </execution>
                        </executions>
                        <dependencies>
                            <dependency>
                                <groupId>org.apache.knox</groupId>
                                <artifactId>build-tools</artifactId>
                                <version>3.0.0</version>
                            </dependency>
                        </dependencies>
                    </plugin>
                </plugins>
            </build>
        </profile>
        <profile>
            <id>build-ui</id>

            <activation>
                <property>
                    <name>!skipUi</name>
                </property>
            </activation>

            <properties>
                <failsafe.group>org.apache.knox.test.category.VerifyTest</failsafe.group>
            </properties>

            <modules>
                <module>gateway-admin-ui</module>
                <module>knox-homepage-ui</module>
                <module>knox-token-management-ui</module>
                <module>knox-webshell-ui</module>
                <module>knox-token-generation-ui</module>
            </modules>
        </profile>
    </profiles>


    <build>
        <pluginManagement>
            <plugins>
                <plugin>
                    <groupId>dev.dimlight</groupId>
                    <artifactId>shellcheck-maven-plugin</artifactId>
                    <version>0.3.1</version>
                    <executions>
                        <execution>
                            <id>shellcheck_verification</id>
                            <phase>validate</phase>
                            <goals>
                                <goal>check</goal>
                            </goals>
                            <configuration>
                                <args>
                                    <arg>-x</arg>
                                    <arg>--source-path=${project.parent.basedir}/gateway-release-common/home/bin</arg>
                                </args>
                                <failBuildIfWarnings>true</failBuildIfWarnings>
                                <binaryResolutionMethod>download</binaryResolutionMethod>
                            </configuration>
                        </execution>
                    </executions>
                </plugin>
                <plugin>
                    <groupId>org.codehaus.mojo</groupId>
                    <artifactId>xml-maven-plugin</artifactId>
                    <version>${xml-maven-plugin.version}</version>
                    <executions>
                        <execution>
                            <phase>verify</phase>
                            <goals>
                                <goal>validate</goal>
                            </goals>
                        </execution>
                    </executions>
                    <configuration>
                        <validationSets>
                            <validationSet>
                                <dir>src/main/resources/services</dir>
                                <includes>
                                    <include>**/*.xml</include>
                                </includes>
                            </validationSet>
                        </validationSets>
                    </configuration>
                </plugin>
            </plugins>
        </pluginManagement>
        <plugins>
            <plugin>
                <groupId>org.apache.rat</groupId>
                <artifactId>apache-rat-plugin</artifactId>
                <version>${apache-rat-plugin.version}</version>
                <executions>
                    <execution>
                        <phase>verify</phase>
                        <goals>
                            <goal>check</goal>
                        </goals>
                    </execution>
                </executions>
                <configuration>
                    <excludeSubProjects>false</excludeSubProjects>
                    <excludes>
                        <exclude>.git/**</exclude>
                        <exclude>.pc/**</exclude>
                        <exclude>debian/**</exclude>
                        <exclude>.github/**</exclude>
                        <exclude>.gitignore/**</exclude>
                        <exclude>.svn/**</exclude>
                        <exclude>.idea/**</exclude>
                        <exclude>dev-support/**</exclude>
                        <exclude>test-patch/**</exclude>
                        <exclude>**/.gitignore/**</exclude>
                        <exclude>**/.project/**</exclude>
                        <exclude>**/.settings/**</exclude>
                        <exclude>**/.classpath/**</exclude>
                        <exclude>**/.checkstyle/**</exclude>
                        <exclude>src/stage.txt</exclude>
                        <exclude>src/vote.txt</exclude>
                        <exclude>**/*.iml</exclude>
                        <exclude>**/*.json</exclude>
                        <exclude>**/target/**</exclude>
                        <exclude>**/install/**</exclude>
                        <exclude>**/candidate/**</exclude>
                        <exclude>**/patch/**</exclude>
                        <exclude>**/CHANGES</exclude>
                        <exclude>**/ISSUES</exclude>
                        <exclude>**/patchprocess/**</exclude>
                        <exclude>**/test/resources/**</exclude>
                        <exclude>**/main/resources/**/*.json</exclude>
                        <exclude>**/home/samples/*.jar</exclude>
                        <exclude>**/.externalToolBuilders/*</exclude>
                        <exclude>*.patch</exclude>
                        <exclude>**/applications/**/jquery.**</exclude>
                        <exclude>**/applications/**/bootstrap.min.**</exclude>
                        <exclude>**/applications/**/bootstrap-icons.min.**</exclude>
                        <exclude>**/applications/**/fonts/**</exclude>
                        <exclude>**/applications/**/libs/**</exclude>
                        <exclude>**/applications/**/assets/**</exclude>
                        <exclude>**/applications/**/*.bundle.*</exclude>
                        <exclude>**/node_modules/**</exclude>
                        <exclude>**/admin-ui/**/*.json</exclude>
                        <exclude>**/admin-ui/**/*.js</exclude>
                        <exclude>**/admin-ui/**/*.css</exclude>
                        <exclude>**/admin-ui/**/*.html</exclude>
                        <exclude>**/home/**/*.json</exclude>
                        <exclude>**/home/**/*.js</exclude>
                        <exclude>**/home/**/*.css</exclude>
                        <exclude>**/home/**/*.html</exclude>
                        <exclude>atlassian-ide-plugin.xml</exclude>
                        <exclude>**/PULL_REQUEST_TEMPLATE*</exclude>
                        <exclude>**/new-service-definition-template.xml</exclude>
                        <exclude>**/token-management/**/assets/**</exclude>
                        <exclude>**/knox-site/**</exclude>
                        <!-- Ignore shade-generated POM -->
                        <exclude>**/dependency-reduced-pom.xml</exclude>
                        <exclude>**/.angular/**</exclude>
                        <exclude>**/eslint.config.js</exclude>
                    </excludes>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>buildnumber-maven-plugin</artifactId>
                <version>${buildnumber-maven-plugin.version}</version>
                <executions>
                    <execution>
                        <phase>validate</phase>
                        <goals>
                            <goal>create</goal>
                        </goals>
                    </execution>
                </executions>
                <configuration>
                    <revisionOnScmFailure>${project.version}</revisionOnScmFailure>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-resources-plugin</artifactId>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>${maven-compiler-plugin.version}</version>
                <!-- If you are looking to change source/target,
                     change the maven.compiler.{source,target} property -->
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
                <version>${maven.surefire.plugin.version}</version>
                <configuration>
                    <argLine>@{argLine} --add-exports java.base/sun.security.x509=ALL-UNNAMED --add-exports java.base/sun.security.pkcs=ALL-UNNAMED --add-exports java.naming/com.sun.jndi.ldap=ALL-UNNAMED --add-opens java.base/sun.security.util=ALL-UNNAMED</argLine>
                    <excludedGroups>
                        org.apache.knox.test.category.SlowTests,org.apache.knox.test.category.ManualTests,org.apache.knox.test.category.VerifyTest,org.apache.knox.test.category.ReleaseTest
                    </excludedGroups>
                    <systemPropertyVariables>
                        <project.version>${project.version}</project.version>
                        <derby.stream.error.file>/dev/null</derby.stream.error.file>
                    </systemPropertyVariables>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-failsafe-plugin</artifactId>
                <configuration>
                    <argLine>@{argLine} --add-exports java.base/sun.security.x509=ALL-UNNAMED --add-exports java.base/sun.security.pkcs=ALL-UNNAMED --add-exports java.naming/com.sun.jndi.ldap=ALL-UNNAMED --add-opens java.base/sun.security.util=ALL-UNNAMED --add-opens java.base/java.lang=ALL-UNNAMED --add-opens java.base/java.lang.reflect=ALL-UNNAMED --add-opens java.base/java.io=ALL-UNNAMED --add-opens java.base/java.util=ALL-UNNAMED --add-opens java.base/java.net=ALL-UNNAMED --add-opens java.base/java.security=ALL-UNNAMED --add-opens java.base/java.util.concurrent=ALL-UNNAMED --add-opens java.base/java.util.concurrent.atomic=ALL-UNNAMED</argLine>
                    <groups>${failsafe.group}</groups>
                </configuration>
                <executions>
                    <execution>
                        <goals>
                            <goal>integration-test</goal>
                            <goal>verify</goal>
                        </goals>
                        <configuration>
                            <includes>
                                <include>**/*.java</include>
                            </includes>
                            <systemPropertyVariables>
                                <derby.stream.error.file>/dev/null</derby.stream.error.file>
                            </systemPropertyVariables>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-enforcer-plugin</artifactId>
                <version>${maven-enforcer-plugin.version}</version>
                <executions>
                    <execution>
                        <id>enforce-maven</id>
                        <goals>
                            <goal>enforce</goal>
                        </goals>
                        <configuration>
                            <rules>
                                <requireMavenVersion>
                                    <version>[3.8.1,)</version>
                                </requireMavenVersion>
                                <requireJavaVersion>
                                    <version>[17,18)</version>
                                </requireJavaVersion>
                                <bannedDependencies>
                                    <excludes>
                                        <exclude>log4j:log4j</exclude>
                                    </excludes>
                                </bannedDependencies>
                            </rules>
                        </configuration>
                    </execution>
                    <execution>
                        <id>enforce-dependencies</id>
                        <goals>
                            <goal>enforce</goal>
                        </goals>
                        <configuration>
                            <rules>
                                <dependencyConvergence/>
                            </rules>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <groupId>com.github.spotbugs</groupId>
                <artifactId>spotbugs-maven-plugin</artifactId>
                <version>${spotbugs-maven-plugin.version}</version>
                <configuration>
                    <threshold>High</threshold>
                    <failOnError>true</failOnError>
                    <excludeFilterFile>build-tools/spotbugs-filter.xml</excludeFilterFile>
                    <plugins>
                        <plugin>
                            <groupId>com.h3xstream.findsecbugs</groupId>
                            <artifactId>findsecbugs-plugin</artifactId>
                            <version>${findsecbugs-plugin.version}</version> <!-- Auto-update to the latest stable -->
                        </plugin>
                    </plugins>
                    <fork>false</fork>
                </configuration>
                <executions>
                    <execution>
                        <goals>
                            <goal>check</goal>
                        </goals>
                    </execution>
                </executions>
                <dependencies>
                    <dependency>
                        <groupId>org.apache.knox</groupId>
                        <artifactId>build-tools</artifactId>
                        <version>3.0.0</version>
                    </dependency>
                    <!-- overwrite dependency on spotbugs if you want to specify the version of spotbugs -->
                    <dependency>
                        <groupId>com.github.spotbugs</groupId>
                        <artifactId>spotbugs</artifactId>
                        <version>${spotbugs.version}</version>
                    </dependency>
                </dependencies>
            </plugin>
            <plugin>
                <groupId>de.thetaphi</groupId>
                <artifactId>forbiddenapis</artifactId>
                <version>${forbiddenapis.version}</version>
                <configuration>
                    <failOnViolation>true</failOnViolation>
                    <!-- if the used Java version is too new, don't fail, just do nothing: -->
                    <failOnUnsupportedJava>false</failOnUnsupportedJava>
                    <!-- prevent failing if a module doesn't have all signature dependencies like commons-io -->
                    <ignoreSignaturesOfMissingClasses>true</ignoreSignaturesOfMissingClasses>
                    <bundledSignatures>
                        <!--
                          This will automatically choose the right
                          signatures based on 'maven.compiler.target':
                        -->
                        <bundledSignature>jdk-unsafe</bundledSignature>
                        <bundledSignature>jdk-deprecated</bundledSignature>
                        <!-- disallow undocumented classes like sun.misc.Unsafe: -->
                        <bundledSignature>jdk-non-portable</bundledSignature>
                        <!-- disallow unsafe commons-io classes -->
                        <bundledSignature>commons-io-unsafe-${commons-io.version}</bundledSignature>
                    </bundledSignatures>
                    <signaturesArtifacts>
                        <signaturesArtifact>
                            <groupId>org.apache.knox</groupId>
                            <artifactId>build-tools</artifactId>
                            <version>3.0.0</version>
                            <type>jar</type>
                            <path>build-tools/forbiddenapis/signatures.txt</path>
                        </signaturesArtifact>
                    </signaturesArtifacts>
                </configuration>
                <executions>
                    <execution>
                        <goals>
                            <goal>check</goal>
                            <goal>testCheck</goal>
                        </goals>
                    </execution>
                 </executions>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-checkstyle-plugin</artifactId>
                <version>${maven-checkstyle-plugin.version}</version>
                <executions>
                    <execution>
                        <id>validate</id>
                        <phase>validate</phase>
                        <configuration>
                            <configLocation>build-tools/checkstyle/checker.xml</configLocation>
                            <suppressionsLocation>build-tools/checkstyle/suppressions.xml</suppressionsLocation>
                            <consoleOutput>true</consoleOutput>
                            <failOnViolation>true</failOnViolation>
                            <includeTestSourceDirectory>true</includeTestSourceDirectory>
                        </configuration>
                        <goals>
                            <goal>check</goal>
                        </goals>
                    </execution>
                </executions>
                <dependencies>
                    <dependency>
                        <groupId>org.apache.knox</groupId>
                        <artifactId>build-tools</artifactId>
                        <version>3.0.0</version>
                    </dependency>
                    <dependency>
                        <groupId>com.puppycrawl.tools</groupId>
                        <artifactId>checkstyle</artifactId>
                        <version>${checkstyle.version}</version>
                    </dependency>
                </dependencies>
            </plugin>
            <!-- Needed to ensure maven-assembly-plugin and maven-shade-plugin
                 run before antrun plugin in gateway-shell-release -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-shade-plugin</artifactId>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-assembly-plugin</artifactId>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-dependency-plugin</artifactId>
                <version>${maven-dependency-plugin.version}</version>
                <executions>
                    <execution>
                        <id>analyze-dependencies</id>
                        <goals>
                            <goal>analyze-only</goal>
                        </goals>
                        <configuration>
                            <failOnWarning>true</failOnWarning>
                            <ignoredUnusedDeclaredDependencies>
                                <ignoredUnusedDeclaredDependency>*</ignoredUnusedDeclaredDependency>
                            </ignoredUnusedDeclaredDependencies>
                            <ignoredNonTestScopedDependencies>
                                <ignoredNonTestScopedDependency>org.eclipse.jetty:jetty-servlet</ignoredNonTestScopedDependency>
                                <ignoredNonTestScopedDependency>org.apache.knox:gateway-util-urltemplate</ignoredNonTestScopedDependency>
                                <ignoredNonTestScopedDependency>org.jboss.shrinkwrap.descriptors:shrinkwrap-descriptors-api-base</ignoredNonTestScopedDependency>
                                <ignoredNonTestScopedDependency>org.apache.knox:gateway-spi</ignoredNonTestScopedDependency>
                                <ignoredNonTestScopedDependency>com.nimbusds:nimbus-jose-jwt</ignoredNonTestScopedDependency>
                                <ignoredNonTestScopedDependency>org.apache.httpcomponents:httpcore</ignoredNonTestScopedDependency>
                                <ignoredNonTestScopedDependency>org.apache.knox:gateway-server</ignoredNonTestScopedDependency>
                                <ignoredNonTestScopedDependency>org.apache.mina:mina-core</ignoredNonTestScopedDependency>
                            </ignoredNonTestScopedDependencies>
                            <ignoredUsedUndeclaredDependencies>
                                <ignoredUsedUndeclaredDependency>org.eclipse.jetty.toolchain:jetty-servlet-api</ignoredUsedUndeclaredDependency>
                                <ignoredUsedUndeclaredDependency>org.glassfish.hk2.external:jakarta.inject</ignoredUsedUndeclaredDependency>
                                <ignoredUsedUndeclaredDependency>jakarta.ws.rs:jakarta.ws.rs-api</ignoredUsedUndeclaredDependency>
                                <ignoredUsedUndeclaredDependency>jakarta.annotation:jakarta.annotation-api</ignoredUsedUndeclaredDependency>
                            </ignoredUsedUndeclaredDependencies>
                            <skip>${maven.dependency.skip}</skip>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <groupId>org.jacoco</groupId>
                <artifactId>jacoco-maven-plugin</artifactId>
                <version>${jacoco-maven-plugin.version}</version>
                <executions>
                    <execution>
                        <id>default-prepare-agent</id>
                        <goals>
                            <goal>prepare-agent</goal>
                        </goals>
                    </execution>
                    <execution>
                        <id>default-prepare-agent-integration</id>
                        <goals>
                            <goal>prepare-agent-integration</goal>
                        </goals>
                    </execution>
                    <execution>
                        <id>default-report</id>
                        <goals>
                            <goal>report</goal>
                        </goals>
                    </execution>
                    <execution>
                        <id>default-report-integration</id>
                        <goals>
                            <goal>report-integration</goal>
                        </goals>
                    </execution>
                    <execution>
                        <id>default-check</id>
                        <goals>
                            <goal>check</goal>
                        </goals>
                        <configuration>
                            <rules>
                                <rule>
                                    <element>BUNDLE</element>
                                    <limits>
                                        <limit>
                                            <counter>COMPLEXITY</counter>
                                            <value>COVEREDRATIO</value>
                                            <minimum>0.00</minimum>
                                        </limit>
                                    </limits>
                                </rule>
                            </rules>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-pmd-plugin</artifactId>
                <version>${maven-pmd-plugin.version}</version>
                <configuration>
                    <rulesets>
                        <ruleset>build-tools/pmd/pmd-ruleset.xml</ruleset>
                    </rulesets>
                    <analysisCache>true</analysisCache>
                    <printFailingErrors>true</printFailingErrors>
                    <includeTests>true</includeTests>
                    <linkXRef>false</linkXRef>
                    <targetJdk>17</targetJdk>
                </configuration>
                <executions>
                    <execution>
                        <goals>
                            <goal>check</goal>
                        </goals>
                    </execution>
                </executions>
                <dependencies>
                    <dependency>
                        <groupId>org.apache.knox</groupId>
                        <artifactId>build-tools</artifactId>
                        <version>3.0.0</version>
                    </dependency>
                </dependencies>
            </plugin>
        </plugins>
    </build>

    <reporting>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-site-plugin</artifactId>
                <configuration>
                    <generateReports>true</generateReports>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-javadoc-plugin</artifactId>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-report-plugin</artifactId>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-project-info-reports-plugin</artifactId>
                <reportSets>
                    <reportSet>
                        <reports>
                            <report>index</report>
                        </reports>
                    </reportSet>
                </reportSets>
            </plugin>
            <plugin>
                <groupId>org.jacoco</groupId>
                <artifactId>jacoco-maven-plugin</artifactId>
                <reportSets>
                    <reportSet>
                        <reports>
                            <!-- select non-aggregate reports -->
                            <report>report</report>
                        </reports>
                    </reportSet>
                </reportSets>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-pmd-plugin</artifactId>
                <configuration>
                    <rulesets>
                        <ruleset>build-tools/pmd/pmd-ruleset.xml</ruleset>
                    </rulesets>
                    <includeTests>true</includeTests>
                    <linkXRef>false</linkXRef>
                    <targetJdk>17</targetJdk>
                </configuration>
            </plugin>
        </plugins>
    </reporting>

    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.apache.knox</groupId>
                <artifactId>gateway-util-common</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.knox</groupId>
                <artifactId>gateway-util-configinjector</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.knox</groupId>
                <artifactId>gateway-util-launcher</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.knox</groupId>
                <artifactId>gateway-util-urltemplate</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.knox</groupId>
                <artifactId>gateway-i18n</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.knox</groupId>
                <artifactId>gateway-i18n-logging-sl4j</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.knox</groupId>
                <artifactId>gateway-i18n-logging-log4j</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.knox</groupId>
                <artifactId>gateway-performance-test</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.knox</groupId>
                <artifactId>gateway-spi</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.knox</groupId>
                <artifactId>gateway-spi-common</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.knox</groupId>
                <artifactId>gateway-provider-security-jwt</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.knox</groupId>
                <artifactId>gateway-provider-security-pac4j</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.knox</groupId>
                <artifactId>gateway-provider-security-webappsec</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.knox</groupId>
                <artifactId>gateway-provider-security-clientcert</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.knox</groupId>
                <artifactId>gateway-provider-security-preauth</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.knox</groupId>
                <artifactId>gateway-provider-security-k8s</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.knox</groupId>
                <artifactId>gateway-provider-security-hadoopauth</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.knox</groupId>
                <artifactId>gateway-provider-security-authc-anon</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.knox</groupId>
                <artifactId>gateway-provider-security-authc-remote</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.knox</groupId>
                <artifactId>gateway-provider-security-shiro</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.knox</groupId>
                <artifactId>gateway-provider-security-authz-acls</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.knox</groupId>
                <artifactId>gateway-provider-security-authz-path-acls</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.knox</groupId>
                <artifactId>gateway-provider-security-authz-composite</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.knox</groupId>
                <artifactId>gateway-provider-identity-assertion-common</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.knox</groupId>
                <artifactId>gateway-provider-identity-assertion-concat</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.knox</groupId>
                <artifactId>gateway-provider-identity-assertion-pseudo</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.knox</groupId>
                <artifactId>gateway-provider-identity-assertion-hadoop-groups</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.knox</groupId>
                <artifactId>gateway-provider-identity-assertion-regex</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.knox</groupId>
                <artifactId>gateway-provider-identity-assertion-switchcase</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.knox</groupId>
                <artifactId>gateway-provider-identity-assertion-no-doas</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.knox</groupId>
                <artifactId>gateway-provider-rewrite</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.knox</groupId>
                <artifactId>gateway-provider-rewrite-common</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.knox</groupId>
                <artifactId>gateway-provider-rewrite-func-hostmap-static</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.knox</groupId>
                <artifactId>gateway-provider-rewrite-func-service-registry</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.knox</groupId>
                <artifactId>gateway-provider-rewrite-func-inbound-query-param</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.knox</groupId>
                <artifactId>gateway-provider-rewrite-step-secure-query</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.knox</groupId>
                <artifactId>gateway-provider-rewrite-step-encrypt-uri</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.knox</groupId>
                <artifactId>gateway-provider-jersey</artifactId>
                <version>${project.version}</version>
                <exclusions>
                    <exclusion>
                        <groupId>jakarta.annotation</groupId>
                        <artifactId>jakarta.annotation-api</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>

            <dependency>
                <groupId>org.apache.knox</groupId>
                <artifactId>gateway-provider-ha</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.knox</groupId>
                <artifactId>gateway-service-tgs</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.knox</groupId>
                <artifactId>gateway-service-vault</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.knox</groupId>
                <artifactId>gateway-service-knoxssout</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.knox</groupId>
                <artifactId>gateway-service-knoxsso</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.knox</groupId>
                <artifactId>gateway-service-knoxtoken</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.knox</groupId>
                <artifactId>gateway-service-health</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.knox</groupId>
                <artifactId>gateway-service-admin</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.knox</groupId>
                <artifactId>gateway-service-remoteconfig</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.knox</groupId>
                <artifactId>gateway-service-test</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.knox</groupId>
                <artifactId>gateway-service-as</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.knox</groupId>
                <artifactId>gateway-service-auth</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.knox</groupId>
                <artifactId>gateway-service-hbase</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.knox</groupId>
                <artifactId>gateway-service-hive</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.knox</groupId>
                <artifactId>gateway-service-impala</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.knox</groupId>
                <artifactId>gateway-service-webhdfs</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.knox</groupId>
                <artifactId>gateway-service-rm</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.knox</groupId>
                <artifactId>gateway-service-storm</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.knox</groupId>
                <artifactId>gateway-service-livy</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.knox</groupId>
                <artifactId>gateway-service-jkg</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.knox</groupId>
                <artifactId>gateway-service-definitions</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.knox</groupId>
                <artifactId>gateway-service-nifi</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.knox</groupId>
                <artifactId>gateway-service-nifi-registry</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.knox</groupId>
                <artifactId>gateway-service-restcatalog</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.knox</groupId>
                <artifactId>gateway-server</artifactId>
                <version>${project.version}</version>
                <exclusions>
                    <exclusion>
                        <groupId>org.eclipse.angus</groupId>
                        <artifactId>angus-mail</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>com.sun.xml.ws</groupId>
                        <artifactId>jaxws-rt</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>com.sun.xml.ws</groupId>
                        <artifactId>jaxws-ri</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>org.apache.knox</groupId>
                <artifactId>gateway-server-launcher</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.knox</groupId>
                <artifactId>gateway-server-xforwarded-filter</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.knox</groupId>
                <artifactId>knox-cli-launcher</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.knox</groupId>
                <artifactId>gateway-shell</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.knox</groupId>
                <artifactId>gateway-shell-launcher</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.knox</groupId>
                <artifactId>hadoop-examples</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.knox</groupId>
                <artifactId>gateway-discovery-ambari</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.knox</groupId>
                <artifactId>gateway-discovery-cm</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.knox</groupId>
                <artifactId>gateway-release</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.knox</groupId>
                <artifactId>gateway-applications</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.knox</groupId>
                <artifactId>gateway-admin-ui</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.knox</groupId>
                <artifactId>gateway-shell-release</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.knox</groupId>
                <artifactId>gateway-shell-samples</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.knox</groupId>
                <artifactId>gateway-service-hashicorp-vault</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.knox</groupId>
                <artifactId>gateway-release-common</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.knox</groupId>
                <artifactId>gateway-topology-simple</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.knox</groupId>
                <artifactId>gateway-topology-hadoop-xml</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.knox</groupId>
                <artifactId>gateway-service-metadata</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.knox</groupId>
                <artifactId>gateway-service-session</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.knox</groupId>
                <artifactId>knox-homepage-ui</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.knox</groupId>
                <artifactId>knox-webshell-ui</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.knox</groupId>
                <artifactId>gateway-openapi-ui</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.knox</groupId>
                <artifactId>knox-token-management-ui</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.knox</groupId>
                <artifactId>knox-token-generation-ui</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.glassfish.jersey.containers</groupId>
                <artifactId>jersey-container-servlet-core</artifactId>
                <version>${jersey.version}</version>
            </dependency>
            <dependency>
                <groupId>org.glassfish.jersey.containers</groupId>
                <artifactId>jersey-container-servlet</artifactId>
                <version>${jersey.version}</version>
            </dependency>
            <dependency>
                <groupId>org.glassfish.jersey.core</groupId>
                <artifactId>jersey-server</artifactId>
                <version>${jersey.version}</version>
            </dependency>

            <dependency>
                <groupId>org.glassfish.jersey.inject</groupId>
                <artifactId>jersey-hk2</artifactId>
                <version>${jersey.version}</version>
            </dependency>

            <dependency>
                <groupId>com.fasterxml.jackson</groupId>
                <artifactId>jackson-bom</artifactId>
                <version>${jackson.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>

            <dependency>
                <groupId>org.eclipse.jetty</groupId>
                <artifactId>jetty-bom</artifactId>
                <version>${jetty.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
            <dependency>
                <groupId>org.eclipse.jetty.ee8</groupId>
                <artifactId>jetty-ee8-servlet</artifactId>
                <version>${jetty.version}</version>
            </dependency>
            <dependency>
                <groupId>org.eclipse.jetty.ee8</groupId>
                <artifactId>jetty-ee8-nested</artifactId>
                <version>${jetty.version}</version>
            </dependency>
            <dependency>
                <groupId>org.eclipse.jetty.ee8</groupId>
                <artifactId>jetty-ee8-servlets</artifactId>
                <version>${jetty.version}</version>
            </dependency>
            <dependency>
                <groupId>org.eclipse.jetty.ee8</groupId>
                <artifactId>jetty-ee8-webapp</artifactId>
                <version>${jetty.version}</version>
            </dependency>
            <dependency>
                <groupId>org.eclipse.jetty.ee8</groupId>
                <artifactId>jetty-ee8-annotations</artifactId>
                <version>${jetty.version}</version>
            </dependency>
            <dependency>
                <groupId>org.eclipse.jetty.ee8</groupId>
                <artifactId>jetty-ee8-apache-jsp</artifactId>
                <version>${jetty.version}</version>
            </dependency>
            <dependency>
                <groupId>org.eclipse.jetty.ee8</groupId>
                <artifactId>jetty-ee8-glassfish-jstl</artifactId>
                <version>${jetty.version}</version>
            </dependency>
            <dependency>
                <groupId>org.eclipse.jetty.websocket</groupId>
                <artifactId>jetty-websocket-jetty-server</artifactId>
                <version>${jetty.version}</version>
            </dependency>
            <dependency>
                <groupId>org.eclipse.jetty.websocket</groupId>
                <artifactId>jetty-websocket-jetty-api</artifactId>
                <version>${jetty.version}</version>
            </dependency>
            <dependency>
                <groupId>org.eclipse.jetty.ee8.websocket</groupId>
                <artifactId>jetty-ee8-websocket-javax-server</artifactId>
                <version>${jetty.version}</version>
            </dependency>
            <dependency>
                <groupId>org.eclipse.jetty.ee8.websocket</groupId>
                <artifactId>jetty-ee8-websocket-javax-client</artifactId>
                <version>${jetty.version}</version>
            </dependency>
            <dependency>
                <groupId>org.eclipse.jetty.ee8.websocket</groupId>
                <artifactId>jetty-ee8-websocket-servlet</artifactId>
                <version>${jetty.version}</version>
            </dependency>

            <dependency>
                <groupId>io.netty</groupId>
                <artifactId>netty-bom</artifactId>
                <version>${netty.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>

            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-framework-bom</artifactId>
                <version>${spring.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>

            <dependency>
                <groupId>com.nimbusds</groupId>
                <artifactId>nimbus-jose-jwt</artifactId>
                <version>${nimbus-jose-jwt.version}</version>
            </dependency>

            <dependency>
                <groupId>net.minidev</groupId>
                <artifactId>json-smart</artifactId>
                <version>${json-smart.version}</version>
            </dependency>

            <dependency>
                <groupId>javax.annotation</groupId>
                <artifactId>javax.annotation-api</artifactId>
                <version>${javax.annotation-api.version}</version>
            </dependency>
            <dependency>
                <groupId>org.glassfish.hk2.external</groupId>
                <artifactId>javax.inject</artifactId>
                <version>${javax.inject.version}</version>
            </dependency>
            <dependency>
                <groupId>javax.servlet</groupId>
                <artifactId>javax.servlet-api</artifactId>
                <version>${javax.servlet-api.version}</version>
            </dependency>
            <dependency>
                <groupId>javax.ws.rs</groupId>
                <artifactId>javax.ws.rs-api</artifactId>
                <version>${javax.ws.rs-api.version}</version>
            </dependency>

            <dependency>
                <groupId>jakarta.xml.bind</groupId>
                <artifactId>jakarta.xml.bind-api</artifactId>
                <version>${jakarta.xml.bind.version}</version>
            </dependency>
            <dependency>
                <groupId>jakarta.activation</groupId>
                <artifactId>jakarta.activation-api</artifactId>
                <version>${jakarta.activation-api.version}</version>
            </dependency>
            <dependency>
                <groupId>org.glassfish.jaxb</groupId>
                <artifactId>jaxws-rt</artifactId>
                <version>${jakarta.xml.ws.version}</version>
            </dependency>


            <!-- JDK 17 -->
            <!--
            <dependency>
                <groupId>javax.xml.bind</groupId>
                <artifactId>jaxb-api</artifactId>
                <version>${xml-jaxb.version}</version>
            </dependency>
            -->
            <dependency>
                <groupId>org.glassfish.jaxb</groupId>
                <artifactId>jaxb-runtime</artifactId>
                <version>${xml-jaxb.version}</version>
            </dependency>
            <dependency>
                <groupId>com.sun.xml.bind</groupId>
                <artifactId>jaxb-impl</artifactId>
                <version>${xml-jaxb.version}</version>
                <exclusions>
                    <exclusion>
                        <groupId>org.eclipse.angus</groupId>
                        <artifactId>angus-activation</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>

            <dependency>
                <groupId>com.sun.activation</groupId>
                <artifactId>jakarta.activation</artifactId>
                <version>${jakarta.activation.version}</version>
            </dependency>
            <dependency>
                <groupId>org.glassfish.jaxb</groupId>
                <artifactId>txw2</artifactId>
                <version>${txw2.version}</version>
            </dependency>

            <dependency>
                <groupId>org.eclipse.persistence</groupId>
                <artifactId>org.eclipse.persistence.core</artifactId>
                <version>${moxy.version}</version>
            </dependency>
            <dependency>
                <groupId>org.eclipse.persistence</groupId>
                <artifactId>org.eclipse.persistence.moxy</artifactId>
                <version>${moxy.version}</version>
            </dependency>

            <dependency>
                <groupId>com.sun.xml.fastinfoset</groupId>
                <artifactId>FastInfoset</artifactId>
                <version>${fastinfoset.version}</version>
            </dependency>

            <dependency>
                <groupId>org.jvnet.staxex</groupId>
                <artifactId>stax-ex</artifactId>
                <version>${stax-ex.version}</version>
            </dependency>

            <!--
            <dependency>
                <groupId>org.eclipse.persistence</groupId>
                <artifactId>eclipselink</artifactId>
                <version>${eclipselink.version}</version>
            </dependency>
            -->
            <dependency>
                <groupId>javax.json</groupId>
                <artifactId>javax.json-api</artifactId>
                <version>${javax.json.version}</version>
            </dependency>
            <dependency>
                <groupId>org.glassfish</groupId>
                <artifactId>javax.json</artifactId>
                <version>${javax.json.version}</version>
            </dependency>
            <dependency>
                <groupId>jakarta.json</groupId>
                <artifactId>jakarta.json-api</artifactId>
                <version>${jakarta.json.version}</version>
            </dependency>
            <dependency>
                <groupId>org.eclipse.parsson</groupId>
                <artifactId>parsson</artifactId>
                <version>${eclipse.parsson.version}</version>
            </dependency>

            <dependency>
                <groupId>com.thetransactioncompany</groupId>
                <artifactId>cors-filter</artifactId>
                <version>${cors-filter.version}</version>
            </dependency>

            <dependency>
                <groupId>org.apache.groovy</groupId>
                <artifactId>groovy</artifactId>
                <version>${groovy.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.groovy</groupId>
                <artifactId>groovy-groovysh</artifactId>
                <version>${groovy.version}</version>
                <exclusions>
                    <exclusion>
                        <groupId>org.ow2.asm</groupId>
                        <artifactId>*</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>org.apache.groovy</groupId>
                <artifactId>groovy-xml</artifactId>
                <version>${groovy.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.groovy</groupId>
                <artifactId>groovy-json</artifactId>
                <version>${groovy.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.groovy</groupId>
                <artifactId>groovy-swing</artifactId>
                <version>${groovy.version}</version>
            </dependency>

            <dependency>
                <groupId>org.jline</groupId>
                <artifactId>jansi</artifactId>
                <version>${jline.version}</version>
            </dependency>
            <dependency>
                <groupId>org.jline</groupId>
                <artifactId>jline-builtins</artifactId>
                <version>${jline.version}</version>
            </dependency>
            <dependency>
                <groupId>org.jline</groupId>
                <artifactId>jline-console</artifactId>
                <version>${jline.version}</version>
            </dependency>
            <dependency>
                <groupId>org.jline</groupId>
                <artifactId>jline-reader</artifactId>
                <version>${jline.version}</version>
            </dependency>
            <dependency>
                <groupId>org.jline</groupId>
                <artifactId>jline-terminal</artifactId>
                <version>${jline.version}</version>
            </dependency>

            <dependency>
                <groupId>org.apache.httpcomponents.client5</groupId>
                <artifactId>httpclient5</artifactId>
                <version>${httpclient5.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.httpcomponents.core5</groupId>
                <artifactId>httpcore5</artifactId>
                <version>${httpcore5.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.httpcomponents</groupId>
                <artifactId>httpclient</artifactId>
                <version>${httpclient.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.httpcomponents</groupId>
                <artifactId>httpcore</artifactId>
                <version>${httpcore.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.httpcomponents</groupId>
                <artifactId>httpasyncclient</artifactId>
                <version>${asynchttpclient.version}</version>
                <exclusions>
                    <exclusion>
                        <groupId>org.apache.httpcomponents</groupId>
                        <artifactId>httpcore</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.apache.httpcomponents</groupId>
                        <artifactId>httpcore-nio</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>

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

            <dependency>
                <groupId>joda-time</groupId>
                <artifactId>joda-time</artifactId>
                <version>${joda-time.version}</version>
            </dependency>


            <dependency>
                <groupId>com.squareup.okhttp3</groupId>
                <artifactId>okhttp</artifactId>
                <version>${okhttp.version}</version>
            </dependency>
            <dependency>
                <groupId>com.squareup.okhttp3</groupId>
                <artifactId>logging-interceptor</artifactId>
                <version>${okhttp.version}</version>
            </dependency>
            <dependency>
                <groupId>com.squareup.okio</groupId>
                <artifactId>okio</artifactId>
                <version>${okio.version}</version>
            </dependency>
            <dependency>
                <groupId>org.jetbrains.kotlin</groupId>
                <artifactId>kotlin-stdlib-jdk8</artifactId>
                <version>${kotlin-stdlib.version}</version>
                <exclusions>
                    <exclusion>
                        <groupId>org.jetbrains</groupId>
                        <artifactId>annotations</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>io.gsonfire</groupId>
                <artifactId>gson-fire</artifactId>
                <version>${gsonfire.version}</version>
            </dependency>
            <dependency>
                <groupId>com.google.code.gson</groupId>
                <artifactId>gson</artifactId>
                <version>${gson.version}</version>
            </dependency>
            <dependency>
                <groupId>com.google.errorprone</groupId>
                <artifactId>error_prone_annotations</artifactId>
                <version>${error_prone_annotations.version}</version>
            </dependency>

            <dependency>
                <groupId>com.kstruct</groupId>
                <artifactId>gethostname4j</artifactId>
                <version>${gethostname4j.version}</version>
                <exclusions>
                     <exclusion>
                          <groupId>net.java.dev.jna</groupId>
                          <artifactId>jna-platform</artifactId>
                     </exclusion>
                </exclusions>
            </dependency>

            <dependency>
                <groupId>com.google.protobuf</groupId>
                <artifactId>protobuf-java</artifactId>
                <version>${protobuf.version}</version>
            </dependency>

            <dependency>
                <groupId>org.apache.hadoop</groupId>
                <artifactId>hadoop-auth</artifactId>
                <version>${hadoop.version}</version>
                <exclusions>
                    <exclusion>
                        <groupId>log4j</groupId>
                        <artifactId>log4j</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.slf4j</groupId>
                        <artifactId>slf4j-api</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.slf4j</groupId>
                        <artifactId>slf4j-log4j12</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.slf4j</groupId>
                        <artifactId>slf4j-reload4j</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>

            <dependency>
                <groupId>org.apache.hadoop</groupId>
                <artifactId>hadoop-annotations</artifactId>
                <version>${hadoop.version}</version>
                <exclusions>
                    <exclusion>
                        <groupId>jdk.tools</groupId>
                        <artifactId>jdk.tools</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>

            <dependency>
                <groupId>org.apache.hadoop</groupId>
                <artifactId>hadoop-mapreduce-client-core</artifactId>
                <version>${hadoop.version}</version>
		        <scope>provided</scope>
                <exclusions>
                    <exclusion>
                        <groupId>jdk.tools</groupId>
                        <artifactId>jdk.tools</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>log4j</groupId>
                        <artifactId>log4j</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.slf4j</groupId>
                        <artifactId>slf4j-api</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.slf4j</groupId>
                        <artifactId>slf4j-log4j12</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.codehaus.jackson</groupId>
                        <artifactId>jackson-core-asl</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.codehaus.jackson</groupId>
                        <artifactId>jackson-mapper-asl</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.apache.hadoop</groupId>
                        <artifactId>hadoop-yarn-common</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>ch.qos.reload4j</groupId>
                        <artifactId>reload4j</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>

            <dependency>
                <groupId>org.apache.hadoop</groupId>
                <artifactId>hadoop-common</artifactId>
                <version>${hadoop.version}</version>
                <exclusions>
                    <exclusion>
                        <groupId>com.google.code.findbugs</groupId>
                        <artifactId>jsr305</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>com.google.protobuf</groupId>
                        <artifactId>protobuf-java</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>com.jcraft</groupId>
                        <artifactId>jsch</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>com.sun.jersey</groupId>
                        <artifactId>jersey-core</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>com.sun.jersey</groupId>
                        <artifactId>jersey-json</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>com.github.pjfanning</groupId>
                        <artifactId>jersey-json</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>com.sun.jersey</groupId>
                        <artifactId>jersey-server</artifactId>
                    </exclusion>

                    <exclusion>
                        <groupId>commons-cli</groupId>
                        <artifactId>commons-cli</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>commons-codec</groupId>
                        <artifactId>commons-codec</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>commons-el</groupId>
                        <artifactId>commons-el</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>commons-httpclient</groupId>
                        <artifactId>commons-httpclient</artifactId>
                    </exclusion>

                    <exclusion>
                        <groupId>javax.servlet</groupId>
                        <artifactId>servlet-api</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>javax.servlet.jsp</groupId>
                        <artifactId>jsp-api</artifactId>
                    </exclusion>

                    <exclusion>
                        <groupId>log4j</groupId>
                        <artifactId>log4j</artifactId>
                    </exclusion>

                    <exclusion>
                        <groupId>net.java.dev.jets3t</groupId>
                        <artifactId>jets3t</artifactId>
                    </exclusion>

                    <exclusion>
                        <groupId>org.apache.avro</groupId>
                        <artifactId>avro</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.apache.commons</groupId>
                        <artifactId>commons-compress</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.apache.commons</groupId>
                        <artifactId>commons-math</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>jdk.tools</groupId>
                        <artifactId>jdk.tools</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.apache.hadoop</groupId>
                        <artifactId>hadoop-annotations</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.apache.hadoop</groupId>
                        <artifactId>hadoop-auth</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.apache.zookeeper</groupId>
                        <artifactId>zookeeper</artifactId>
                    </exclusion>

                    <exclusion>
                        <groupId>org.codehaus.jackson</groupId>
                        <artifactId>jackson-core-asl</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.codehaus.jackson</groupId>
                        <artifactId>jackson-mapper-asl</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.mortbay.jetty</groupId>
                        <artifactId>jetty</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.mortbay.jetty</groupId>
                        <artifactId>jetty-util</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.slf4j</groupId>
                        <artifactId>slf4j-api</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.slf4j</groupId>
                        <artifactId>slf4j-log4j12</artifactId>
                    </exclusion>

                    <exclusion>
                        <groupId>tomcat</groupId>
                        <artifactId>jasper-compiler</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>tomcat</groupId>
                        <artifactId>jasper-runtime</artifactId>
                    </exclusion>

                    <exclusion>
                        <groupId>xmlenc</groupId>
                        <artifactId>xmlenc</artifactId>
                    </exclusion>

                    <exclusion>
                        <groupId>com.sun.jersey</groupId>
                        <artifactId>jersey-servlet</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.slf4j</groupId>
                        <artifactId>slf4j-reload4j</artifactId>
                    </exclusion>

                    <exclusion>
                        <groupId>io.netty</groupId>
                        <artifactId>*</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>

            <dependency>
                <groupId>org.apache.hadoop</groupId>
                <artifactId>hadoop-hdfs-client</artifactId>
                <version>${hadoop.version}</version>
            </dependency>

            <dependency>
                <groupId>org.codehaus.woodstox</groupId>
                <artifactId>stax2-api</artifactId>
                <version>${stax2-api.version}</version>
            </dependency>
            <dependency>
                <groupId>com.fasterxml.woodstox</groupId>
                <artifactId>woodstox-core</artifactId>
                <version>${woodstox-core.version}</version>
            </dependency>

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

            <dependency>
                <groupId>commons-beanutils</groupId>
                <artifactId>commons-beanutils</artifactId>
                <version>${commons-beanutils.version}</version>
            </dependency>
            <dependency>
                <groupId>commons-cli</groupId>
                <artifactId>commons-cli</artifactId>
                <version>${commons-cli.version}</version>
            </dependency>
            <dependency>
                <groupId>commons-codec</groupId>
                <artifactId>commons-codec</artifactId>
                <version>${commons-codec.version}</version>
            </dependency>
            <dependency>
                <groupId>commons-collections</groupId>
                <artifactId>commons-collections</artifactId>
                <version>${commons-collections.version}</version>
            </dependency>
            <dependency>
                <!-- Converge commons-collections4: ApacheDS pulls 4.4 transitively while
                     directory-api 2.1.8 pulls 4.5.0. Pin to the newer, backward-compatible 4.5.0. -->
                <groupId>org.apache.commons</groupId>
                <artifactId>commons-collections4</artifactId>
                <version>${commons-collections4.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.commons</groupId>
                <artifactId>commons-compress</artifactId>
                <version>${commons-compress.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.commons</groupId>
                <artifactId>commons-configuration2</artifactId>
                <version>${commons-configuration2.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.commons</groupId>
                <artifactId>commons-digester3</artifactId>
                <version>${commons-digester3.version}</version>
                <exclusions>
                    <exclusion>
                        <groupId>cglib</groupId>
                        <artifactId>cglib</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>commons-io</groupId>
                <artifactId>commons-io</artifactId>
                <version>${commons-io.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.commons</groupId>
                <artifactId>commons-lang3</artifactId>
                <version>${commons-lang3.version}</version>
            </dependency>
	    <dependency>
                <groupId>commons-logging</groupId>
                <artifactId>commons-logging</artifactId>
                <version>${commons-logging.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.commons</groupId>
                <artifactId>commons-math3</artifactId>
                <version>${commons-math3.version}</version>
            </dependency>
            <dependency>
                <groupId>commons-net</groupId>
                <artifactId>commons-net</artifactId>
                <version>${commons-net.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.commons</groupId>
                <artifactId>commons-pool2</artifactId>
                <version>${commons-pool2.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.commons</groupId>
                <artifactId>commons-text</artifactId>
                <version>${commons-text.version}</version>
            </dependency>

            <dependency>
                <groupId>org.jboss.shrinkwrap</groupId>
                <artifactId>shrinkwrap-api</artifactId>
                <version>${shrinkwrap.version}</version>
            </dependency>
            <dependency>
                <groupId>org.jboss.shrinkwrap</groupId>
                <artifactId>shrinkwrap-impl-base</artifactId>
                <version>${shrinkwrap.version}</version>
            </dependency>
            <dependency>
                <groupId>org.jboss.shrinkwrap.descriptors</groupId>
                <artifactId>shrinkwrap-descriptors-api-base</artifactId>
                <version>${shrinkwrap.descriptors.version}</version>
            </dependency>
            <dependency>
                <groupId>org.jboss.shrinkwrap.descriptors</groupId>
                <artifactId>shrinkwrap-descriptors-api-javaee</artifactId>
                <version>${shrinkwrap.descriptors.version}</version>
            </dependency>
            <dependency>
                <groupId>org.jboss.shrinkwrap.descriptors</groupId>
                <artifactId>shrinkwrap-descriptors-impl-javaee</artifactId>
                <version>${shrinkwrap.descriptors.version}</version>
            </dependency>

            <dependency>
                <groupId>org.apache.directory.server</groupId>
                <artifactId>apacheds-jdbm</artifactId>
                <version>${apacheds-jdbm.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.directory.server</groupId>
                <artifactId>apacheds-core</artifactId>
                <version>${apacheds.directory.server.version}</version>
                <exclusions>
                    <exclusion>
                        <groupId>org.bouncycastle</groupId>
                        <artifactId>bcprov-jdk15on</artifactId>
                    </exclusion>
                    <!-- ApacheDS 2.0.0.AM27 pulls the legacy jdk15on BouncyCastle; Knox
                         standardizes on the jdk18on artifacts (same packages). -->
                    <exclusion>
                        <groupId>org.bouncycastle</groupId>
                        <artifactId>bcpkix-jdk15on</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.bouncycastle</groupId>
                        <artifactId>bcutil-jdk15on</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>org.apache.directory.server</groupId>
                <artifactId>apacheds-core-annotations</artifactId>
                <version>${apacheds.directory.server.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.directory.server</groupId>
                <artifactId>apacheds-core-api</artifactId>
                <version>${apacheds.directory.server.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.directory.server</groupId>
                <artifactId>apacheds-i18n</artifactId>
                <version>${apacheds.directory.server.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.directory.server</groupId>
                <artifactId>apacheds-protocol-shared</artifactId>
                <version>${apacheds.directory.server.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.directory.server</groupId>
                <artifactId>apacheds-protocol-ldap</artifactId>
                <version>${apacheds.directory.server.version}</version>
                <exclusions>
                    <exclusion>
                        <groupId>org.bouncycastle</groupId>
                        <artifactId>bcprov-jdk15on</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.bouncycastle</groupId>
                        <artifactId>bcpkix-jdk15on</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.bouncycastle</groupId>
                        <artifactId>bcutil-jdk15on</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>org.apache.directory.server</groupId>
                <artifactId>apacheds-ldif-partition</artifactId>
                <version>${apacheds.directory.server.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.directory.server</groupId>
                <artifactId>apacheds-jdbm-partition</artifactId>
                <version>${apacheds.directory.server.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.directory.server</groupId>
                <artifactId>apacheds-interceptors-authn</artifactId>
                <version>${apacheds.directory.server.version}</version>
            </dependency>

            <dependency>
                <groupId>org.apache.directory.api</groupId>
                <artifactId>api-ldap-client-api</artifactId>
                <version>${apacheds.directory.api.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.directory.api</groupId>
                <artifactId>api-ldap-codec-standalone</artifactId>
                <version>${apacheds.directory.api.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.directory.api</groupId>
                <artifactId>api-ldap-model</artifactId>
                <version>${apacheds.directory.api.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.directory.api</groupId>
                <artifactId>api-ldap-schema-data</artifactId>
                <version>${apacheds.directory.api.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.directory.api</groupId>
                <artifactId>api-util</artifactId>
                <version>${apacheds.directory.api.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.directory.api</groupId>
                <artifactId>api-ldap-codec-core</artifactId>
                <version>${apacheds.directory.api.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.directory.api</groupId>
                <artifactId>api-asn1-api</artifactId>
                <version>${apacheds.directory.api.version}</version>
            </dependency>
            <!-- Pin the remaining directory-api artifacts (pulled transitively by ApacheDS) to
                 the same version to avoid a mixed directory-api classpath. -->
            <dependency>
                <groupId>org.apache.directory.api</groupId>
                <artifactId>api-asn1-ber</artifactId>
                <version>${apacheds.directory.api.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.directory.api</groupId>
                <artifactId>api-i18n</artifactId>
                <version>${apacheds.directory.api.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.directory.api</groupId>
                <artifactId>api-ldap-net-mina</artifactId>
                <version>${apacheds.directory.api.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.directory.api</groupId>
                <artifactId>api-ldap-extras-aci</artifactId>
                <version>${apacheds.directory.api.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.directory.api</groupId>
                <artifactId>api-ldap-extras-codec</artifactId>
                <version>${apacheds.directory.api.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.directory.api</groupId>
                <artifactId>api-ldap-extras-codec-api</artifactId>
                <version>${apacheds.directory.api.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.directory.api</groupId>
                <artifactId>api-ldap-extras-sp</artifactId>
                <version>${apacheds.directory.api.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.directory.api</groupId>
                <artifactId>api-ldap-extras-trigger</artifactId>
                <version>${apacheds.directory.api.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.directory.api</groupId>
                <artifactId>api-ldap-extras-util</artifactId>
                <version>${apacheds.directory.api.version}</version>
            </dependency>

            <dependency>
                <groupId>org.apache.mina</groupId>
                <artifactId>mina-core</artifactId>
                <version>${mina.version}</version>
            </dependency>

            <dependency>
                <groupId>org.apache.logging.log4j</groupId>
                <artifactId>log4j-bom</artifactId>
                <version>${log4j2.version}</version>
                <scope>import</scope>
                <type>pom</type>
            </dependency>

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

            <dependency>
                <groupId>org.apache.logging.log4j</groupId>
                <artifactId>log4j-slf4j2-impl</artifactId>
                <version>${log4j2.version}</version>
            </dependency>
            <dependency>
                <groupId>org.slf4j</groupId>
                <artifactId>slf4j-api</artifactId>
                <version>${slf4j.version}</version>
            </dependency>

            <dependency>
                <groupId>com.google.guava</groupId>
                <artifactId>guava</artifactId>
                <version>${guava.version}</version>
                <exclusions>
                    <exclusion>
                        <groupId>com.google.code.findbugs</groupId>
                        <artifactId>jsr305</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>

            <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>
            <dependency>
                <groupId>org.apache.shiro</groupId>
                <artifactId>shiro-cache</artifactId>
                <version>${shiro.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.shiro</groupId>
                <artifactId>shiro-crypto-core</artifactId>
                <version>${shiro.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.shiro</groupId>
                <artifactId>shiro-crypto-hash</artifactId>
                <version>${shiro.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.shiro</groupId>
                <artifactId>shiro-lang</artifactId>
                <version>${shiro.version}</version>
            </dependency>

            <dependency>
                <groupId>org.ehcache</groupId>
                <artifactId>ehcache</artifactId>
                <version>${ehcache.version}</version>
            </dependency>

            <dependency>
                <groupId>org.kohsuke</groupId>
                <artifactId>libpam4j</artifactId>
                <version>${libpam4j.version}</version>
            </dependency>

            <dependency>
                <groupId>net.java.dev.jna</groupId>
                <artifactId>jna</artifactId>
                <version>${jna.version}</version>
            </dependency>

            <dependency>
                <groupId>org.apache.zookeeper</groupId>
                <artifactId>zookeeper</artifactId>
                <version>${zookeeper.version}</version>
                <exclusions>
                    <exclusion>
                        <groupId>com.google.code.findbugs</groupId>
                        <artifactId>jsr305</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.slf4j</groupId>
                        <artifactId>slf4j-api</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.slf4j</groupId>
                        <artifactId>slf4j-log4j12</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>log4j</groupId>
                        <artifactId>log4j</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>ch.qos.logback</groupId>
                        <artifactId>logback-core</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>ch.qos.logback</groupId>
                        <artifactId>logback-classic</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>io.netty</groupId>
                        <artifactId>*</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>org.apache.zookeeper</groupId>
                <artifactId>zookeeper-jute</artifactId>
                <version>${zookeeper.version}</version>
            </dependency>

            <dependency>
                <groupId>org.apache.curator</groupId>
                <artifactId>curator-framework</artifactId>
                <version>${curator.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.curator</groupId>
                <artifactId>curator-recipes</artifactId>
                <version>${curator.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.curator</groupId>
                <artifactId>curator-client</artifactId>
                <version>${curator.version}</version>
            </dependency>

            <!-- Html pull parser.  EPLv1 license -->
            <dependency>
                <groupId>net.htmlparser.jericho</groupId>
                <artifactId>jericho-html</artifactId>
                <version>${jericho-html.version}</version>
            </dependency>

            <dependency>
                <groupId>org.apache.knox</groupId>
                <artifactId>gateway-demo-ldap</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.knox</groupId>
                <artifactId>gateway-demo-ldap-launcher</artifactId>
                <version>${project.version}</version>
            </dependency>

            <dependency>
                <groupId>org.bouncycastle</groupId>
                <artifactId>bcprov-jdk18on</artifactId>
                <version>${bcprov-jdk18on.version}</version>
            </dependency>
            <dependency>
                <groupId>org.bouncycastle</groupId>
                <artifactId>bcpkix-jdk18on</artifactId>
                <version>${bcpkix-jdk18on.version}</version>
            </dependency>
            <dependency>
                <groupId>org.ow2.asm</groupId>
                <artifactId>asm</artifactId>
                <version>${asm.version}</version>
            </dependency>
            <dependency>
                <groupId>org.ow2.asm</groupId>
                <artifactId>asm-commons</artifactId>
                <version>${asm.version}</version>
            </dependency>

            <dependency>
                <groupId>org.apache.taglibs</groupId>
                <artifactId>taglibs-standard-spec</artifactId>
                <version>${taglibs-standard.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.taglibs</groupId>
                <artifactId>taglibs-standard-impl</artifactId>
                <version>${taglibs-standard.version}</version>
            </dependency>

            <!-- Websocket support -->
            <dependency>
                <groupId>javax.websocket</groupId>
                <artifactId>javax.websocket-api</artifactId>
                <version>${javax.websocket-api.version}</version>
            </dependency>
            <dependency>
                <groupId>javax.websocket</groupId>
                <artifactId>javax.websocket-client-api</artifactId>
                <version>${javax.websocket-api.version}</version>
            </dependency>

            <dependency>
                <groupId>io.dropwizard.metrics</groupId>
                <artifactId>metrics-core</artifactId>
                <version>${metrics.version}</version>
            </dependency>
            <dependency>
                <groupId>io.dropwizard.metrics</groupId>
                <artifactId>metrics-json</artifactId>
                <version>${metrics.version}</version>
            </dependency>
            <dependency>
                <groupId>io.dropwizard.metrics</groupId>
                <artifactId>metrics-servlets</artifactId>
                <version>${metrics.version}</version>
            </dependency>
            <dependency>
                <groupId>io.dropwizard.metrics</groupId>
                <artifactId>metrics-httpclient</artifactId>
                <version>${metrics.version}</version>
            </dependency>
            <dependency>
                <groupId>io.dropwizard.metrics</groupId>
                <artifactId>metrics-graphite</artifactId>
                <version>${metrics.version}</version>
            </dependency>
            <dependency>
                <groupId>io.dropwizard.metrics</groupId>
                <artifactId>metrics-jetty12</artifactId>
                <version>${metrics.version}</version>
            </dependency>
            <dependency>
                <groupId>io.dropwizard.metrics</groupId>
                <artifactId>metrics-jmx</artifactId>
                <version>${metrics.version}</version>
            </dependency>
            <dependency>
                <groupId>io.dropwizard.metrics</groupId>
                <artifactId>metrics-jvm</artifactId>
                <version>${metrics.version}</version>
            </dependency>
            <dependency>
                <groupId>io.swagger</groupId>
                <artifactId>swagger-annotations</artifactId>
                <version>${swagger-annotations.version}</version>
            </dependency>
            <dependency>
                <groupId>org.yaml</groupId>
                <artifactId>snakeyaml</artifactId>
                <version>${snakeyaml.version}</version>
            </dependency>
            <dependency>
                <groupId>org.postgresql</groupId>
                <artifactId>postgresql</artifactId>
                <version>${postgresql.version}</version>
                <exclusions>
                    <exclusion>
                        <groupId>org.checkerframework</groupId>
                        <artifactId>checker-qual</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>mysql</groupId>
                <artifactId>mysql-connector-java</artifactId>
                <version>${mysql.version}</version>
                <scope>provided</scope>
            </dependency>
            <dependency>
                <groupId>com.oracle.database.jdbc</groupId>
                <artifactId>ojdbc11</artifactId>
                <version>${oracle.version}</version>
                <scope>provided</scope>
            </dependency>
            <dependency>
                <groupId>org.mariadb.jdbc</groupId>
                <artifactId>mariadb-java-client</artifactId>
                <version>3.3.5</version>
                <exclusions>
                    <exclusion>
                       <groupId>com.github.waffle</groupId>
                       <artifactId>waffle-jna</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>

            <!-- Webshell support -->
            <dependency>
                <groupId>org.jetbrains.pty4j</groupId>
                <artifactId>pty4j</artifactId>
                <version>${pty4j.version}</version>
                <exclusions>
                    <exclusion>
                        <groupId>log4j</groupId>
                        <artifactId>log4j</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>org.jetbrains.pty4j</groupId>
                <artifactId>purejavacomm</artifactId>
                <version>${purejavacomm.version}</version>
            </dependency>
            <!-- pac4j Dependencies -->
            <dependency>
                <groupId>org.pac4j</groupId>
                <artifactId>pac4j-cas</artifactId>
                <version>${pac4j.version}</version>
                <exclusions>
                    <exclusion>
                        <groupId>org.bouncycastle</groupId>
                        <artifactId>bcpkix-jdk15on</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>org.pac4j</groupId>
                <artifactId>pac4j-config</artifactId>
                <version>${pac4j.version}</version>
                <exclusions>
                    <exclusion>
                        <groupId>xalan</groupId>
                        <artifactId>xalan</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>org.pac4j</groupId>
                <artifactId>pac4j-core</artifactId>
                <version>${pac4j.version}</version>
            </dependency>
            <dependency>
                <groupId>org.pac4j</groupId>
                <artifactId>pac4j-javaee</artifactId>
                <version>${pac4j.version}</version>
            </dependency>
            <dependency>
                <groupId>org.pac4j</groupId>
                <artifactId>pac4j-http</artifactId>
                <version>${pac4j.version}</version>
            </dependency>
            <dependency>
                <groupId>org.pac4j</groupId>
                <artifactId>pac4j-oauth</artifactId>
                <version>${pac4j.version}</version>
            </dependency>
            <dependency>
                <groupId>org.pac4j</groupId>
                <artifactId>pac4j-oidc</artifactId>
                <version>${pac4j.version}</version>
            </dependency>
            <dependency>
                <groupId>org.pac4j</groupId>
                <artifactId>pac4j-saml</artifactId>
                <version>${pac4j.version}</version>
                <exclusions>
                    <exclusion>
                        <groupId>com.google.code.findbugs</groupId>
                        <artifactId>jsr305</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>ch.qos.logback</groupId>
                        <artifactId>logback-classic</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>xalan</groupId>
                        <artifactId>xalan</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.springframework</groupId>
                        <artifactId>spring-core</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>dom4j</groupId>
                        <artifactId>dom4j</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>

            <dependency>
                <groupId>org.dom4j</groupId>
                <artifactId>dom4j</artifactId>
                <version>${dom4j.version}</version>
            </dependency>

            <dependency>
                <groupId>org.pac4j</groupId>
                <artifactId>javaee-pac4j</artifactId>
                <version>${jee-pac4j.version}</version>
            </dependency>

            <!-- harmonize pac4j-saml dependencies -->
            <dependency>
                <groupId>org.opensaml</groupId>
                <artifactId>opensaml-core</artifactId>
                <version>${opensaml.version}</version>
            </dependency>
            <dependency>
                <groupId>org.opensaml</groupId>
                <artifactId>opensaml-core-api</artifactId>
                <version>${opensaml.version}</version>
            </dependency>
            <dependency>
                <groupId>org.opensaml</groupId>
                <artifactId>opensaml-security-api</artifactId>
                <version>${opensaml.version}</version>
            </dependency>
            <!-- FIPS shim: shaded opensaml-security-api with the non-FIPS
                 BouncyCastle NamedCurve SPI stripped out. Modules that need
                 opensaml-security-api on the classpath should depend on this
                 instead and exclude the upstream artifact from pac4j-saml. -->
            <dependency>
                <groupId>org.apache.knox</groupId>
                <artifactId>gateway-shim-opensaml-security-api</artifactId>
                <version>${project.version}</version>
                <exclusions>
                    <exclusion>
                        <groupId>org.opensaml</groupId>
                        <artifactId>opensaml-security-api</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>org.opensaml</groupId>
                <artifactId>opensaml-security-impl</artifactId>
                <version>${opensaml.version}</version>
            </dependency>
            <dependency>
                <groupId>org.opensaml</groupId>
                <artifactId>opensaml-messaging-api</artifactId>
                <version>${opensaml.version}</version>
            </dependency>
            <dependency>
                <groupId>org.opensaml</groupId>
                <artifactId>opensaml-storage-api</artifactId>
                <version>${opensaml.version}</version>
            </dependency>
            <dependency>
                <groupId>org.opensaml</groupId>
                <artifactId>opensaml-profile-api</artifactId>
                <version>${opensaml.version}</version>
            </dependency>

            <dependency>
                <groupId>org.opensaml</groupId>
                <artifactId>opensaml-storage-impl</artifactId>
                <version>${opensaml.version}</version>
            </dependency>
            <dependency>
                <groupId>org.javassist</groupId>
                <artifactId>javassist</artifactId>
                <version>${javassist.version}</version>
            </dependency>
            <dependency>
                <groupId>org.jboss.logging</groupId>
                <artifactId>jboss-logging</artifactId>
                <version>${jboss-logging.version}</version>
            </dependency>

            <dependency>
                <groupId>org.opensaml</groupId>
                <artifactId>opensaml-xmlsec-api</artifactId>
                <version>${opensaml.version}</version>
            </dependency>
            <dependency>
                <groupId>org.opensaml</groupId>
                <artifactId>opensaml-xmlsec-impl</artifactId>
                <version>${opensaml.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.santuario</groupId>
                <artifactId>xmlsec</artifactId>
                <version>${xmlsec.version}</version>
            </dependency>
            <dependency>
                <groupId>org.cryptacular</groupId>
                <artifactId>cryptacular</artifactId>
                <version>${cryptacular.version}</version>
            </dependency>
            <dependency>
                <groupId>net.shibboleth.utilities</groupId>
                <artifactId>java-support</artifactId>
                <version>${java-support.version}</version>
            </dependency>

            <dependency>
                <groupId>org.springframework.vault</groupId>
                <artifactId>spring-vault-core</artifactId>
                <version>${spring-vault.version}</version>
            </dependency>

            <dependency>
                <groupId>org.aspectj</groupId>
                <artifactId>aspectjrt</artifactId>
                <version>${aspectj.version}</version>
            </dependency>
            <dependency>
                <groupId>org.aspectj</groupId>
                <artifactId>aspectjweaver</artifactId>
                <version>${aspectj.version}</version>
            </dependency>

            <dependency>
                <groupId>de.thetaphi</groupId>
                <artifactId>forbiddenapis</artifactId>
                <version>${forbiddenapis.version}</version>
            </dependency>
            <dependency>
                <groupId>jakarta.annotation</groupId>
                <artifactId>jakarta.annotation-api</artifactId>
                <version>${jakarta.annotation-api.version}</version>
            </dependency>
            <dependency>
                <groupId>com.cloudera.api.swagger</groupId>
                <artifactId>cloudera-manager-api-swagger</artifactId>
                <version>${cloudera-manager-api-swagger.version}</version>  <!-- or CM version 6.0 and above -->
            </dependency>
            <dependency>
                <groupId>com.github.ben-manes.caffeine</groupId>
                <artifactId>caffeine</artifactId>
                <version>${ben-manes.caffeine.version}</version>
                <exclusions>
                    <exclusion>
                        <groupId>org.checkerframework</groupId>
                        <artifactId>checker-qual</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>io.fabric8</groupId>
                <artifactId>kubernetes-client</artifactId>
                <version>${fabric8.kubernetes-client.version}</version>
            </dependency>
            <dependency>
                <groupId>io.fabric8</groupId>
                <artifactId>kubernetes-client-api</artifactId>
                <version>${fabric8.kubernetes-client.version}</version>
            </dependency>
            <dependency>
                <groupId>io.fabric8</groupId>
                <artifactId>kubernetes-model-core</artifactId>
                <version>${fabric8.kubernetes-client.version}</version>
            </dependency>
            <dependency>
                <groupId>io.fabric8</groupId>
                <artifactId>docker-maven-plugin</artifactId>
                <version>${docker-maven-plugin.version}</version>
                <exclusions>
                    <exclusion>
                        <groupId>com.google.cloud.tools</groupId>
                        <artifactId>jib-core</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-assembly-plugin</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>com.github.jnr</groupId>
                        <artifactId>jnr-unixsocket</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.yaml</groupId>
                        <artifactId>snakeyaml</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.bouncycastle</groupId>
                        <artifactId>bcpkix-jdk15on</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>

            <!-- ********** ********** ********** ********** ********** ********** -->
            <!-- ********** Test Dependencies                           ********** -->
            <!-- ********** ********** ********** ********** ********** ********** -->
            <dependency>
                <groupId>org.apache.knox</groupId>
                <artifactId>gateway-test-utils</artifactId>
                <version>${project.version}</version>
                <scope>test</scope>
            </dependency>

            <dependency>
                <groupId>org.hamcrest</groupId>
                <artifactId>hamcrest</artifactId>
                <version>${hamcrest.version}</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>org.hamcrest</groupId>
                <artifactId>hamcrest-core</artifactId>
                <version>${hamcrest.version}</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>org.hamcrest</groupId>
                <artifactId>hamcrest-library</artifactId>
                <version>${hamcrest.version}</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>uk.co.datumedge</groupId>
                <artifactId>hamcrest-json</artifactId>
                <version>${hamcrest-json.version}</version>
                <scope>test</scope>
            </dependency>

            <!-- must be before Junit otherwise it is messes up the hamcrest dependencies -->
            <dependency>
                <groupId>io.rest-assured</groupId>
                <artifactId>rest-assured</artifactId>
                <version>${rest-assured.version}</version>
                <scope>test</scope>
                <exclusions>
                    <exclusion>
                        <groupId>javax.activation</groupId>
                        <artifactId>activation</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>io.rest-assured</groupId>
                <artifactId>json-path</artifactId>
                <version>${rest-assured.version}</version>
                <scope>test</scope>
            </dependency>

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

            <dependency>
                <groupId>org.easymock</groupId>
                <artifactId>easymock</artifactId>
                <version>${easymock.version}</version>
                <scope>test</scope>
            </dependency>

            <dependency>
                <groupId>org.powermock</groupId>
                <artifactId>powermock-module-junit4</artifactId>
                <version>${powermock.version}</version>
                <scope>test</scope>
                <exclusions>
                    <exclusion>
                        <groupId>org.objenesis</groupId>
                        <artifactId>objenesis</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>org.powermock</groupId>
                <artifactId>powermock-api-easymock</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>
                <exclusions>
                    <exclusion>
                        <groupId>org.objenesis</groupId>
                        <artifactId>objenesis</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>

            <dependency>
                <groupId>org.apache.derby</groupId>
                <artifactId>derby</artifactId>
                <version>${derby.db.version}</version>
            </dependency>

            <dependency>
                <groupId>org.apache.derby</groupId>
                <artifactId>derbyclient</artifactId>
                <version>${derby.db.version}</version>
            </dependency>

            <dependency>
                <groupId>org.apache.derby</groupId>
                <artifactId>derbynet</artifactId>
                <version>${derby.db.version}</version>
            </dependency>

            <dependency>
                <groupId>org.apache.velocity</groupId>
                <artifactId>velocity-engine-core</artifactId>
                <version>${velocity.version}</version>
            </dependency>

            <dependency>
                <groupId>com.mycila.xmltool</groupId>
                <artifactId>xmltool</artifactId>
                <version>${xmltool.version}</version>
                <scope>test</scope>
            </dependency>

            <dependency>
                <groupId>org.xmlmatchers</groupId>
                <artifactId>xml-matchers</artifactId>
                <version>${xml-matchers.version}</version>
                <scope>test</scope>
            </dependency>

            <dependency>
                <groupId>com.jayway.jsonpath</groupId>
                <artifactId>json-path</artifactId>
                <version>${json-path.version}</version>
            </dependency>
            <dependency>
                <groupId>com.jayway.jsonpath</groupId>
                <artifactId>json-path-assert</artifactId>
                <version>${json-path.version}</version>
                <scope>test</scope>
            </dependency>

            <dependency>
                <groupId>org.apache.curator</groupId>
                <artifactId>curator-test</artifactId>
                <version>${curator.version}</version>
                <scope>test</scope>
                <exclusions>
                    <exclusion>
                        <groupId>org.xerial.snappy</groupId>
                        <artifactId>snappy-java</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.junit.jupiter</groupId>
                        <artifactId>junit-jupiter-api</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>

            <dependency>
                <groupId>org.testcontainers</groupId>
                <artifactId>testcontainers</artifactId>
                <version>${testcontainers.version}</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>org.testcontainers</groupId>
                <artifactId>vault</artifactId>
                <version>${testcontainers.version}</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>org.hsqldb</groupId>
                <artifactId>hsqldb</artifactId>
                <version>${hsql.db.version}</version>
                <classifier>jdk8</classifier>
            </dependency>
            <dependency>
                <groupId>uk.org.webcompere</groupId>
                <artifactId>system-stubs-junit4</artifactId>
                <version>${system-stubs-junit4.version}</version>
                <scope>test</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

    <dependencies>
        <dependency>
            <groupId>org.hamcrest</groupId>
            <artifactId>hamcrest</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.hamcrest</groupId>
            <artifactId>hamcrest-core</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.hamcrest</groupId>
            <artifactId>hamcrest-library</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.easymock</groupId>
            <artifactId>easymock</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.objenesis</groupId>
            <artifactId>objenesis</artifactId>
            <version>${objenesis.version}</version>
            <scope>test</scope>
        </dependency>
    </dependencies>
</project>
