<!--/////////////////////////////////////////////////////////////////////////////////////////////////////////////////-->
<!--                                                                                                                 -->
<!--  © 2011-2021 Telenav, Inc.                                                                                      -->
<!--  Licensed under Apache License, Version 2.0                                                                     -->
<!--                                                                                                                 -->
<!--/////////////////////////////////////////////////////////////////////////////////////////////////////////////////-->

<project xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance" xmlns = "http://maven.apache.org/POM/4.0.0"
         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>

    <name>superpom</name>
    <groupId>com.telenav.kivakit</groupId>
    <artifactId>superpom</artifactId>
    <version>1.4.2</version>

    <packaging>pom</packaging>

    <!-- Project -->

    <description>The KivaKit super POM is used by all Telenav Open Source projects that depend directly or indirectly on KivaKit to help ensure consistent builds.</description>
    <url>https://www.telenav.com/</url>
    <inceptionYear>2011</inceptionYear>
    <organization>
        <name>Telenav</name>
        <url>https://www.telenav.com</url>
    </organization>

    <!-- Licensing -->

    <licenses>

        <license>
            <name>Apache License, Version 2.0</name>
            <url>https://www.apache.org/licenses/LICENSE-2.0.txt</url>
            <distribution>repo</distribution>
        </license>

    </licenses>

    <!-- Contributors -->

    <developers>

        <developer>
            <id>jonathanl</id>
            <name>Jonathan Locke (Luo Shibo)</name>
            <email>jonathanl@telenav.com</email>
            <organization>Telenav</organization>
            <organizationUrl>https://www.telenav.com/</organizationUrl>
            <roles>
                <role>lead</role>
                <role>administrator</role>
            </roles>
        </developer>

        <developer>
            <id>haifeng</id>
            <name>Haifeng Zhu</name>
            <email>hfzhu@telenav.com</email>
            <organization>Telenav</organization>
            <organizationUrl>https://www.telenav.com/</organizationUrl>
            <roles>
                <role>developer</role>
                <role>administrator</role>
            </roles>
        </developer>

    </developers>

    <!-- Source Code -->

    <scm>

        <connection>scm:git:https://Telenav/kivakit.git</connection>
        <developerConnection>scm:git:https://Telenav/kivakit.git</developerConnection>
        <url>https://Telenav/kivakit.git</url>

    </scm>

    <!-- Publishing -->

    <distributionManagement>

        <snapshotRepository>
            <id>ossrh</id>
            <url>https://s01.oss.sonatype.org/content/repositories/snapshots</url>
        </snapshotRepository>

        <repository>
            <id>ossrh</id>
            <url>https://s01.oss.sonatype.org/service/local/staging/deploy/maven2/</url>
        </repository>

    </distributionManagement>

    <!-- Repositories -->

    <repositories>

        <repository>
            <snapshots>
                <enabled>false</enabled>
            </snapshots>
            <id>central</id>
            <name>Maven Central</name>
            <url>https://repo1.maven.org/maven2</url>
        </repository>

        <repository>
            <id>ossrh</id>
            <url>https://s01.oss.sonatype.org/content/repositories/snapshots</url>
            <releases>
                <enabled>false</enabled>
            </releases>
            <snapshots>
                <enabled>true</enabled>
            </snapshots>
        </repository>

    </repositories>

    <!-- Properties -->

    <properties>

        <!-- Annotations -->

        <jetbrains.annotations.version>20.1.0</jetbrains.annotations.version>

        <!-- Build -->

        <java.version>11</java.version>

        <maven.version>3.8.1</maven.version>
        <maven-antrun-plugin.version>3.0.0</maven-antrun-plugin.version>
        <maven-compiler-plugin.version>3.8.1</maven-compiler-plugin.version>
        <maven-gpg-plugin.version>1.6</maven-gpg-plugin.version>
        <maven-jar-plugin.version>2.4</maven-jar-plugin.version>
        <maven-javadoc-plugin.version>3.3.1</maven-javadoc-plugin.version>
        <maven-resources-plugin.version>2.7</maven-resources-plugin.version>
        <maven-shade-plugin.version>3.2.4</maven-shade-plugin.version>
        <maven-source-plugin.version>3.2.1</maven-source-plugin.version>
        <maven-exec-plugin.version>3.0.0</maven-exec-plugin.version>
        <maven-protobuf-plugin.version>0.6.1</maven-protobuf-plugin.version>
        <maven-os-plugin.version>1.6.1</maven-os-plugin.version>

        <cactus.version>1.4.0</cactus.version>
        <cactus.download.version>${cactus.version}</cactus.download.version>
        <cactus.downloads.folder>${user.home}/.cactus-build/downloads</cactus.downloads.folder>
        <cactus.url>https://repo1.maven.org/maven2/com/telenav/cactus/cactus-build-metadata/${cactus.download.version}/cactus-build-metadata-${cactus.download.version}.jar</cactus.url>
        <cactus.jar>${cactus.downloads.folder}/cactus-build-metadata-${cactus.download.version}.jar</cactus.jar>

        <lexakai.version>1.0.5</lexakai.version>
        <lexakai.annotations.version>1.0.0</lexakai.annotations.version>
        <nexus-staging-maven-plugin.version>1.6.7</nexus-staging-maven-plugin.version>
        <moditect-maven-plugin.version>1.0.0.RC1</moditect-maven-plugin.version>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>

        <!-- Cluster -->

        <zookeeper.version>3.5.6</zookeeper.version>

        <!-- File Systems -->

        <hdfs.version>3.3.0</hdfs.version>
        <s3.version>2.17.31</s3.version>
        <github.api.version>1.132</github.api.version>
        <ow2.asm.version>8.0.1</ow2.asm.version>
        <ow2.ow2.version>1.5.1</ow2.ow2.version>

        <!-- Java -->

        <jakarta.activation.version>2.0.0</jakarta.activation.version>
        <java.mail.version>1.6.2</java.mail.version>
        <java.activation.version>1.2.0</java.activation.version>
        <javax.servlet.api.version>3.1.0</javax.servlet.api.version>

        <!-- KivaKit Version -->

        <kivakit.version>1.4.2</kivakit.version>

        <!-- Merged JARs -->
        <kivakit.merged.grpc.version>${kivakit.version}</kivakit.merged.grpc.version>
        <kivakit.merged.zookeeper.version>${kivakit.version}</kivakit.merged.zookeeper.version>
        <kivakit.merged.prometheus.version>${kivakit.version}</kivakit.merged.prometheus.version>
        <kivakit.merged.protostuff.version>${kivakit.version}</kivakit.merged.protostuff.version>

        <!-- Parsing -->
        <antlr.version>4.7.2</antlr.version>

        <!-- Protocols -->

        <protobuf.version>3.18.2</protobuf.version>
        <gson.version>2.8.0</gson.version>
        <jettison.version>1.1</jettison.version>
        <protostuff.version>1.1.6</protostuff.version>

        <!-- Serialization -->

        <kryo.version>4.0.2</kryo.version>
        <kryo.serializers.version>0.45</kryo.serializers.version>
        <jdk.serializable.functional.version>1.9.0</jdk.serializable.functional.version>
        <objenesis.version>3.2</objenesis.version>
        <json.smart.version>2.4.8</json.smart.version>

        <!-- SSH -->

        <jsch.version>0.1.55</jsch.version>
        <j2ssh.core.version>0.2.9</j2ssh.core.version>

        <!-- Testing -->

        <junit.version>4.13.2</junit.version>
        <mockito>3.11.2</mockito>

        <!-- User Interface -->

        <flatlaf.version>0.45</flatlaf.version>

        <!-- Utility -->

        <commons.collections.version>3.2.2</commons.collections.version>
        <commons.compress.version>1.21</commons.compress.version>
        <commons.lang3.version>3.7</commons.lang3.version>
        <commons.net.version>3.0.1</commons.net.version>
        <commons.math.version>2.1</commons.math.version>
        <beanutils.version>1.8.3</beanutils.version>
        <guava.version>31.0.1-jre</guava.version>
        <htrace.version>4.2.0-incubating</htrace.version>
        <log4j.version>2.17.1</log4j.version>
        <slf4j.version>2.0.0-alpha6</slf4j.version>
        <yourkit.version>8.0.1</yourkit.version>
        <classgraph.version>4.8.102</classgraph.version>

        <!-- Web -->

        <jetty.version>9.4.44.v20210927</jetty.version>
        <jersey.version>2.33</jersey.version>
        <wicket.version>9.8.0</wicket.version>
        <wicket.jquery.version>9.5.0</wicket.jquery.version>
        <swagger.version>2.1.10</swagger.version>
        <swagger.webjar.version>3.51.2</swagger.webjar.version>
        <httpclient.version>4.5.13</httpclient.version>
        <jakarta.ws.rs.version>2.1.6</jakarta.ws.rs.version>
        <jakarta.servlet.api.version>5.0.0</jakarta.servlet.api.version>
        <netty.version>4.1.66.Final</netty.version>

        <!-- XML -->

        <jaxb.version>2.3.1</jaxb.version>
        <jakarta.xml.version>2.3.2</jakarta.xml.version>
        <jackson.version>2.12.3</jackson.version>
        <xerces.version>2.11.0</xerces.version>

    </properties>

    <!-- Profiles -->

    <profiles>

        <!-- Exclude Slow Tests -->

        <profile>
            <id>test-quick</id>
            <properties>
                <exclude.test.groups>com.telenav.kivakit.core.test.annotations.SlowTests</exclude.test.groups>
                <testQuick>true</testQuick>
            </properties>
        </profile>

        <!-- Attach JARs -->

        <profile>
            <id>attach-jars</id>
            <build>
                <plugins>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-source-plugin</artifactId>
                        <version>${maven-source-plugin.version}</version>
                        <executions>
                            <execution>
                                <id>attach-source-jar</id>
                                <goals>
                                    <goal>jar</goal>
                                </goals>
                            </execution>
                        </executions>
                    </plugin>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-javadoc-plugin</artifactId>
                        <version>${maven-javadoc-plugin.version}</version>
                        <configuration>
                            <show>protected</show>
                            <source>11</source>
                            <sourcepath>src/main/java</sourcepath>
                            <failOnError>false</failOnError>
                            <detectJavaApiLink>false</detectJavaApiLink>
                            <doclint>none</doclint>
                            <nohelp>true</nohelp>
                            <additionalOptions>-notimestamp --show-module-contents all --show-packages all --show-types private</additionalOptions>
                            <destDir>target/attached-javadocs</destDir>
                            <sourceFileIncludes>
                                <sourceFileInclude>**/*.java</sourceFileInclude>
                            </sourceFileIncludes>
                        </configuration>
                        <executions>
                            <execution>
                                <id>attach-javadoc-jar</id>
                                <goals>
                                    <goal>jar</goal>
                                </goals>
                            </execution>
                        </executions>
                    </plugin>
                </plugins>
            </build>
        </profile>

        <!-- Sign Artifacts -->

        <profile>

            <id>sign-artifacts</id>
            <build>
                <plugins>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-gpg-plugin</artifactId>
                        <version>${maven-gpg-plugin.version}</version>
                        <executions>
                            <execution>
                                <id>sign-artifacts</id>
                                <phase>verify</phase>
                                <configuration>
                                    <gpgArguments>
                                        <arg>--pinentry-mode</arg>
                                        <arg>loopback</arg>
                                    </gpgArguments>
                                </configuration>
                                <goals>
                                    <goal>sign</goal>
                                </goals>
                            </execution>
                        </executions>
                    </plugin>
                </plugins>
            </build>

        </profile>

    </profiles>

    <build>

        <!-- Resource Copying -->

        <resources>
            <resource>
                <directory>src/main/java</directory>
                <includes>
                    <include>**/*</include>
                </includes>
                <excludes>
                    <exclude>**/*.java</exclude>
                </excludes>
            </resource>
            <resource>
                <directory>src/main/resources</directory>
                <includes>
                    <include>**/*</include>
                </includes>
            </resource>
        </resources>
        <testResources>
            <testResource>
                <directory>src/test/java</directory>
                <includes>
                    <include>**/*</include>
                </includes>
                <excludes>
                    <exclude>**/*.java</exclude>
                </excludes>
            </testResource>
            <testResource>
                <directory>src/test/resources</directory>
                <includes>
                    <include>**/*</include>
                </includes>
            </testResource>
        </testResources>

        <!-- Plugins -->

        <plugins>

            <!-- Dependencies -->

            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-enforcer-plugin</artifactId>
                <version>3.0.0</version>
                <executions>
                    <execution>
                        <id>enforce</id>
                        <configuration>
                            <rules>
                                <dependencyConvergence/>
                                <requireMavenVersion>
                                    <version>[${maven.version},)</version>
                                    <message>Build requires Maven version ${maven.version}.</message>
                                </requireMavenVersion>
                            </rules>
                        </configuration>
                        <goals>
                            <goal>enforce</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>

            <!-- Build Metadata -->

            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-antrun-plugin</artifactId>
                <version>3.0.0</version>
                <executions>
                    <execution>
                        <id>project-metadata</id>
                        <phase>validate</phase>
                        <configuration>
                            <target name = "build-metadata">
                                <property name = "project.groupId" value = "${project.groupId}"/>
                                <property name = "project.artifactId" value = "${project.artifactId}"/>
                                <property name = "project.version" value = "${project.version}"/>
                                <property name = "project.name" value = "${project.name}"/>
                                <condition property = "source.exists">
                                    <available file = "src" type = "dir"/>
                                </condition>
                                <taskdef resource = "net/sf/antcontrib/antcontrib.properties" classpathref = "maven.plugin.classpath"/>
                                <if>
                                    <equals arg1 = "${maven.multiModuleProjectDirectory}" arg2 = "${project.basedir}"/>
                                    <then>
                                        <mkdir dir = "${cactus.downloads.folder}"/>
                                        <get ignoreerrors = "true" src = "${cactus.url}" dest = "${cactus.jar}"/>
                                    </then>
                                </if>
                                <if>
                                    <equals arg1 = "${source.exists}" arg2 = "true"/>
                                    <then>
                                        <echo file = "src/main/java/project.properties">
                                            project-name = ${project.name}${line.separator}project-version = ${project.version}${line.separator}project-group-id = ${project.groupId}${line.separator}project-artifact-id = ${project.artifactId}
                                        </echo>
                                        <java jar = "${cactus.jar}" failonerror = "true" fork = "true">
                                            <arg value = "src/main/java"/>
                                        </java>
                                    </then>
                                    <else>
                                        <echo file = "${project.basedir}/project.properties">
                                            project-name = ${project.name}${line.separator}project-version = ${project.version}${line.separator}project-group-id = ${project.groupId}${line.separator}project-artifact-id = ${project.artifactId}
                                        </echo>
                                        <java jar = "${cactus.jar}" failonerror = "true" fork = "true">
                                            <arg value = "${project.basedir}"/>
                                        </java>
                                    </else>
                                </if>
                            </target>
                        </configuration>
                        <goals>
                            <goal>run</goal>
                        </goals>
                    </execution>
                </executions>
                <dependencies>
                    <dependency>
                        <groupId>ant-contrib</groupId>
                        <artifactId>ant-contrib</artifactId>
                        <version>20020829</version>
                    </dependency>
                </dependencies>
            </plugin>

        </plugins>

        <pluginManagement>

            <plugins>

                <!-- Compiling -->

                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-compiler-plugin</artifactId>
                    <version>${maven-compiler-plugin.version}</version>
                    <configuration>
                        <source>${java.version}</source>
                        <target>${java.version}</target>
                        <release>${java.version}</release>
                        <compilerArgs>
                            <compilerArg>-Xlint:unchecked</compilerArg>
                            <compilerArg>-Xlint:-requires-transitive-automatic</compilerArg>
                            <compilerArg>-Xlint:deprecation</compilerArg>
                        </compilerArgs>
                    </configuration>
                </plugin>

                <!-- Building -->

                <plugin>
                    <groupId>org.codehaus.mojo</groupId>
                    <artifactId>build-helper-maven-plugin</artifactId>
                    <version>3.2.0</version>
                </plugin>

                <!-- Testing -->

                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-surefire-plugin</artifactId>
                    <version>3.0.0-M5</version>
                    <configuration>
                        <excludedGroups>${exclude.test.groups}</excludedGroups>
                        <systemPropertyVariables>
                            <testQuick>${testQuick}</testQuick>
                        </systemPropertyVariables>
                        <argLine>
                            -Xmx2g
                        </argLine>
                    </configuration>
                </plugin>

                <!-- Documentation -->

                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-javadoc-plugin</artifactId>
                    <version>${maven-javadoc-plugin.version}</version>
                    <configuration>
                        <show>public</show>
                        <source>11</source>
                        <detectJavaApiLink>false</detectJavaApiLink>
                        <doclint>none</doclint>
                        <nohelp>true</nohelp>
                        <reportOutputDirectory>${env.KIVAKIT_ASSETS_HOME}/docs/${env.KIVAKIT_VERSION}/javadoc</reportOutputDirectory>
                        <destDir>${project.name}</destDir>
                        <additionalOptions>-notimestamp --show-module-contents all --show-packages all --show-types private</additionalOptions>
                    </configuration>
                    <executions>
                        <execution>
                            <id>aggregate</id>
                            <phase>site</phase>
                            <goals>
                                <goal>aggregate</goal>
                            </goals>
                        </execution>
                    </executions>
                </plugin>

                <!-- Publishing -->

                <plugin>
                    <groupId>org.sonatype.plugins</groupId>
                    <artifactId>nexus-staging-maven-plugin</artifactId>
                    <version>${nexus-staging-maven-plugin.version}</version>
                    <extensions>true</extensions>
                    <configuration>
                        <serverId>ossrh</serverId>
                        <nexusUrl>https://s01.oss.sonatype.org/</nexusUrl>
                        <autoReleaseAfterClose>false</autoReleaseAfterClose>
                    </configuration>
                </plugin>

            </plugins>

        </pluginManagement>

    </build>

    <dependencyManagement>
        <dependencies>

            <!-- Annotations -->

            <dependency>
                <groupId>com.telenav.lexakai</groupId>
                <artifactId>lexakai-annotations</artifactId>
                <version>${lexakai.annotations.version}</version>
            </dependency>
            <dependency>
                <groupId>org.jetbrains</groupId>
                <artifactId>annotations</artifactId>
                <version>${jetbrains.annotations.version}</version>
            </dependency>
            <dependency>
                <groupId>com.fasterxml.jackson.core</groupId>
                <artifactId>jackson-annotations</artifactId>
                <version>${jackson.version}</version>
            </dependency>
            <dependency>
                <groupId>io.swagger.core.v3</groupId>
                <artifactId>swagger-annotations</artifactId>
                <version>${swagger.version}</version>
            </dependency>

            <!-- Build -->

            <dependency>
                <groupId>com.telenav.cactus</groupId>
                <artifactId>cactus-build-metadata</artifactId>
                <version>${cactus.version}</version>
            </dependency>

            <!-- Cluster -->

            <dependency>
                <groupId>org.apache.zookeeper</groupId>
                <artifactId>zookeeper</artifactId>
                <version>${zookeeper.version}</version>
                <exclusions>
                    <exclusion>
                        <groupId>org.eclipse.jetty</groupId>
                        <artifactId>jetty-servlet</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>

            <!-- FTP -->

            <dependency>
                <groupId>commons-net</groupId>
                <artifactId>commons-net</artifactId>
                <version>${commons.net.version}</version>
            </dependency>

            <!-- GitHub -->

            <dependency>
                <groupId>org.kohsuke</groupId>
                <artifactId>github-api</artifactId>
                <version>${github.api.version}</version>
            </dependency>

            <!-- Hadoop -->

            <dependency>
                <groupId>org.apache.hadoop</groupId>
                <artifactId>hadoop-hdfs</artifactId>
                <version>${hdfs.version}</version>
                <exclusions>
                    <exclusion>
                        <groupId>io.netty</groupId>
                        <artifactId>netty</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>io.netty</groupId>
                        <artifactId>netty-all</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>javax.ws.rs</groupId>
                        <artifactId>jsr311-api</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.ow2.asm</groupId>
                        <artifactId>asm</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>javax.xml.bind</groupId>
                        <artifactId>jaxb-api</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>commons-logging</groupId>
                        <artifactId>commons-logging</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>com.google.code.findbugs</groupId>
                        <artifactId>jsr305</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>com.nimbusds</groupId>
                        <artifactId>nimbus-jose-jwt</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.apache.httpcomponents</groupId>
                        <artifactId>httpclient</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>com.fasterxml.jackson.core</groupId>
                        <artifactId>jackson-databind</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>com.fasterxml.jackson.core</groupId>
                        <artifactId>jackson-core</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.eclipse.jetty</groupId>
                        <artifactId>jetty-util</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>org.apache.hadoop</groupId>
                <artifactId>hadoop-hdfs-client</artifactId>
                <version>${hdfs.version}</version>
                <exclusions>
                    <exclusion>
                        <groupId>commons-logging</groupId>
                        <artifactId>commons-logging</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.apache.httpcomponents</groupId>
                        <artifactId>httpclient</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>com.fasterxml.jackson.core</groupId>
                        <artifactId>jackson-annotations</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>org.apache.hadoop</groupId>
                <artifactId>hadoop-common</artifactId>
                <version>${hdfs.version}</version>
                <exclusions>
                    <exclusion>
                        <groupId>org.eclipse.jetty</groupId>
                        <artifactId>jetty-util</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>javax.enterprise</groupId>
                        <artifactId>cdi-api</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>com.fasterxml.jackson.core</groupId>
                        <artifactId>jackson-databind</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.codehaus.jackson</groupId>
                        <artifactId>jackson-core-asl</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>commons-logging</groupId>
                        <artifactId>commons-logging</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.apache.httpcomponents</groupId>
                        <artifactId>httpclient</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.slf4j</groupId>
                        <artifactId>slf4j-api</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>com.google.guava</groupId>
                        <artifactId>guava</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.codehaus.jackson</groupId>
                        <artifactId>jackson-mapper-asl</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.eclipse.jetty</groupId>
                        <artifactId>jetty-server</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>javax.servlet</groupId>
                        <artifactId>javax.servlet-api</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.eclipse.jetty</groupId>
                        <artifactId>jetty-servlet</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.apache.commons</groupId>
                        <artifactId>commons-compress</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>

            <!-- HTTP -->

            <dependency>
                <groupId>org.apache.httpcomponents</groupId>
                <artifactId>httpclient</artifactId>
                <version>${httpclient.version}</version>
                <exclusions>
                    <exclusion>
                        <groupId>javax.ws.rs</groupId>
                        <artifactId>jsr311-api</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>

            <!-- Java -->

            <dependency>
                <groupId>com.sun.activation</groupId>
                <artifactId>javax.activation</artifactId>
                <version>${java.activation.version}</version>
            </dependency>
            <dependency>
                <groupId>javax.servlet</groupId>
                <artifactId>javax.servlet-api</artifactId>
                <version>${javax.servlet.api.version}</version>
            </dependency>

            <!-- Jersey -->

            <dependency>
                <groupId>org.glassfish.jersey.media</groupId>
                <artifactId>jersey-media-json-jackson</artifactId>
                <version>${jersey.version}</version>
                <exclusions>
                    <exclusion>
                        <groupId>com.fasterxml.jackson.core</groupId>
                        <artifactId>jackson-annotations</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>com.fasterxml.jackson.module</groupId>
                        <artifactId>jackson-module-jaxb-annotations</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>com.fasterxml.jackson.core</groupId>
                        <artifactId>jackson-databind</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>javax.xml.bind</groupId>
                        <artifactId>jaxb-api</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>jakarta.xml.bind</groupId>
                        <artifactId>*</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>jakarta.ws.rs</groupId>
                        <artifactId>*</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>org.glassfish.jersey.containers</groupId>
                <artifactId>jersey-container-servlet</artifactId>
                <version>${jersey.version}</version>
                <exclusions>
                    <exclusion>
                        <groupId>jakarta.activation</groupId>
                        <artifactId>jakarta.activation-api</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>org.glassfish.jersey.core</groupId>
                <artifactId>jersey-client</artifactId>
                <version>${jersey.version}</version>
                <exclusions>
                    <exclusion>
                        <groupId>jakarta.activation</groupId>
                        <artifactId>jakarta.activation-api</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>org.glassfish.jersey.inject</groupId>
                <artifactId>jersey-hk2</artifactId>
                <version>${jersey.version}</version>
            </dependency>

            <!-- JSON -->

            <dependency>
                <groupId>com.google.code.gson</groupId>
                <artifactId>gson</artifactId>
                <version>${gson.version}</version>
            </dependency>

            <!-- KivaKit -->

            <dependency>
                <groupId>com.telenav.kivakit</groupId>
                <artifactId>kivakit-application</artifactId>
                <version>${kivakit.version}</version>
            </dependency>
            <dependency>
                <groupId>com.telenav.kivakit</groupId>
                <artifactId>kivakit-settings-stores-zookeeper</artifactId>
                <version>${kivakit.version}</version>
            </dependency>
            <dependency>
                <groupId>com.telenav.kivakit</groupId>
                <artifactId>kivakit-microservice</artifactId>
                <version>${kivakit.version}</version>
            </dependency>
            <dependency>
                <groupId>com.telenav.kivakit</groupId>
                <artifactId>kivakit-collections</artifactId>
                <version>${kivakit.version}</version>
            </dependency>
            <dependency>
                <groupId>com.telenav.kivakit</groupId>
                <artifactId>kivakit-commandline</artifactId>
                <version>${kivakit.version}</version>
            </dependency>
            <dependency>
                <groupId>com.telenav.kivakit</groupId>
                <artifactId>kivakit-component</artifactId>
                <version>${kivakit.version}</version>
            </dependency>
            <dependency>
                <groupId>com.telenav.kivakit</groupId>
                <artifactId>kivakit-settings</artifactId>
                <version>${kivakit.version}</version>
            </dependency>
            <dependency>
                <groupId>com.telenav.kivakit</groupId>
                <artifactId>kivakit-data-compression</artifactId>
                <version>${kivakit.version}</version>
            </dependency>
            <dependency>
                <groupId>com.telenav.kivakit</groupId>
                <artifactId>kivakit-data-formats-csv</artifactId>
                <version>${kivakit.version}</version>
            </dependency>
            <dependency>
                <groupId>com.telenav.kivakit</groupId>
                <artifactId>kivakit-data-formats-library</artifactId>
                <version>${kivakit.version}</version>
            </dependency>
            <dependency>
                <groupId>com.telenav.kivakit</groupId>
                <artifactId>kivakit-filesystems-hdfs</artifactId>
                <version>${kivakit.version}</version>
            </dependency>
            <dependency>
                <groupId>com.telenav.kivakit</groupId>
                <artifactId>kivakit-filesystems-hdfs-proxy-spi</artifactId>
                <version>${kivakit.version}</version>
            </dependency>
            <dependency>
                <groupId>com.telenav.kivakit</groupId>
                <artifactId>kivakit-filesystems-s3fs</artifactId>
                <version>${kivakit.version}</version>
            </dependency>
            <dependency>
                <groupId>com.telenav.kivakit</groupId>
                <artifactId>kivakit-interfaces</artifactId>
                <version>${kivakit.version}</version>
            </dependency>
            <dependency>
                <groupId>com.telenav.kivakit</groupId>
                <artifactId>kivakit-mixins</artifactId>
                <version>${kivakit.version}</version>
            </dependency>
            <dependency>
                <groupId>com.telenav.kivakit</groupId>
                <artifactId>kivakit-conversion</artifactId>
                <version>${kivakit.version}</version>
            </dependency>
            <dependency>
                <groupId>com.telenav.kivakit</groupId>
                <artifactId>kivakit-extraction</artifactId>
                <version>${kivakit.version}</version>
            </dependency>
            <dependency>
                <groupId>com.telenav.kivakit</groupId>
                <artifactId>kivakit-validation</artifactId>
                <version>${kivakit.version}</version>
            </dependency>
            <dependency>
                <groupId>com.telenav.kivakit</groupId>
                <artifactId>kivakit-core</artifactId>
                <version>${kivakit.version}</version>
            </dependency>
            <dependency>
                <groupId>com.telenav.kivakit</groupId>
                <artifactId>kivakit-logs-server</artifactId>
                <version>${kivakit.version}</version>
            </dependency>
            <dependency>
                <groupId>com.telenav.kivakit</groupId>
                <artifactId>kivakit-logs-file</artifactId>
                <version>${kivakit.version}</version>
            </dependency>
            <dependency>
                <groupId>com.telenav.kivakit</groupId>
                <artifactId>kivakit-math</artifactId>
                <version>${kivakit.version}</version>
            </dependency>
            <dependency>
                <groupId>com.telenav.kivakit</groupId>
                <artifactId>kivakit-metrics-core</artifactId>
                <version>${kivakit.version}</version>
            </dependency>
            <dependency>
                <groupId>com.telenav.kivakit</groupId>
                <artifactId>kivakit-metrics-prometheus</artifactId>
                <version>${kivakit.version}</version>
            </dependency>
            <dependency>
                <groupId>com.telenav.kivakit</groupId>
                <artifactId>kivakit-network-core</artifactId>
                <version>${kivakit.version}</version>
            </dependency>
            <dependency>
                <groupId>com.telenav.kivakit</groupId>
                <artifactId>kivakit-network-email</artifactId>
                <version>${kivakit.version}</version>
            </dependency>
            <dependency>
                <groupId>com.telenav.kivakit</groupId>
                <artifactId>kivakit-network-ftp</artifactId>
                <version>${kivakit.version}</version>
            </dependency>
            <dependency>
                <groupId>com.telenav.kivakit</groupId>
                <artifactId>kivakit-network-http</artifactId>
                <version>${kivakit.version}</version>
            </dependency>
            <dependency>
                <groupId>com.telenav.kivakit</groupId>
                <artifactId>kivakit-network-socket</artifactId>
                <version>${kivakit.version}</version>
            </dependency>
            <dependency>
                <groupId>com.telenav.kivakit</groupId>
                <artifactId>kivakit-primitive-collections</artifactId>
                <version>${kivakit.version}</version>
            </dependency>
            <dependency>
                <groupId>com.telenav.kivakit</groupId>
                <artifactId>kivakit-resource</artifactId>
                <version>${kivakit.version}</version>
            </dependency>
            <dependency>
                <groupId>com.telenav.kivakit</groupId>
                <artifactId>kivakit-security</artifactId>
                <version>${kivakit.version}</version>
            </dependency>
            <dependency>
                <groupId>com.telenav.kivakit</groupId>
                <artifactId>kivakit-serialization-core</artifactId>
                <version>${kivakit.version}</version>
            </dependency>
            <dependency>
                <groupId>com.telenav.kivakit</groupId>
                <artifactId>kivakit-serialization-gson</artifactId>
                <version>${kivakit.version}</version>
            </dependency>
            <dependency>
                <groupId>com.telenav.kivakit</groupId>
                <artifactId>kivakit-serialization-properties</artifactId>
                <version>${kivakit.version}</version>
            </dependency>
            <dependency>
                <groupId>com.telenav.kivakit</groupId>
                <artifactId>kivakit-serialization-kryo</artifactId>
                <version>${kivakit.version}</version>
            </dependency>
            <dependency>
                <groupId>com.telenav.kivakit</groupId>
                <artifactId>kivakit-service-client</artifactId>
                <version>${kivakit.version}</version>
            </dependency>
            <dependency>
                <groupId>com.telenav.kivakit</groupId>
                <artifactId>kivakit-service-registry</artifactId>
                <version>${kivakit.version}</version>
            </dependency>
            <dependency>
                <groupId>com.telenav.kivakit</groupId>
                <artifactId>kivakit-service-server</artifactId>
                <version>${kivakit.version}</version>
            </dependency>
            <dependency>
                <groupId>com.telenav.kivakit</groupId>
                <artifactId>kivakit-ui-desktop</artifactId>
                <version>${kivakit.version}</version>
            </dependency>
            <dependency>
                <groupId>com.telenav.kivakit</groupId>
                <artifactId>kivakit-web-jetty</artifactId>
                <version>${kivakit.version}</version>
            </dependency>
            <dependency>
                <groupId>com.telenav.kivakit</groupId>
                <artifactId>kivakit-web-jersey</artifactId>
                <version>${kivakit.version}</version>
            </dependency>
            <dependency>
                <groupId>com.telenav.kivakit</groupId>
                <artifactId>kivakit-web-swagger</artifactId>
                <version>${kivakit.version}</version>
            </dependency>
            <dependency>
                <groupId>com.telenav.kivakit</groupId>
                <artifactId>kivakit-web-wicket</artifactId>
                <version>${kivakit.version}</version>
            </dependency>

            <!-- Jetty -->

            <dependency>
                <groupId>org.eclipse.jetty</groupId>
                <artifactId>jetty-server</artifactId>
                <version>${jetty.version}</version>
                <exclusions>

                    <!-- Exclude all implementations of jackson annotations -->

                    <exclusion>
                        <groupId>com.fasterxml.jackson.core</groupId>
                        <artifactId>jackson-annotations</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>com.fasterxml.jackson.module</groupId>
                        <artifactId>jackson-module-jaxb-annotations</artifactId>
                    </exclusion>

                    <!-- Exclude all implementations of javax.ws.rs -->

                    <exclusion>
                        <groupId>java.ws.rs</groupId>
                        <artifactId>*</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>javax.ws.rs</groupId>
                        <artifactId>*</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>jakarta.ws.rs</groupId>
                        <artifactId>*</artifactId>
                    </exclusion>

                    <!-- Exclude all implementations of javax.activation -->

                    <exclusion>
                        <groupId>java.activation</groupId>
                        <artifactId>*</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>javax.activation</groupId>
                        <artifactId>*</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>javax.servlet</groupId>
                        <artifactId>*</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>com.sun.activation</groupId>
                        <artifactId>*</artifactId>
                    </exclusion>

                    <!-- Exclude all implementations of xml.bind -->

                    <exclusion>
                        <groupId>java.xml.bind</groupId>
                        <artifactId>*</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>javax.xml.bind</groupId>
                        <artifactId>*</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>jakarta.xml.bind</groupId>
                        <artifactId>*</artifactId>
                    </exclusion>

                </exclusions>
            </dependency>
            <dependency>
                <groupId>org.eclipse.jetty</groupId>
                <artifactId>jetty-webapp</artifactId>
                <version>${jetty.version}</version>
                <exclusions>

                    <!-- Exclude all implementations of jackson annotations -->

                    <exclusion>
                        <groupId>com.fasterxml.jackson.core</groupId>
                        <artifactId>jackson-annotations</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>com.fasterxml.jackson.module</groupId>
                        <artifactId>jackson-module-jaxb-annotations</artifactId>
                    </exclusion>

                    <!-- Exclude all implementations of javax.ws.rs -->

                    <exclusion>
                        <groupId>java.ws.rs</groupId>
                        <artifactId>*</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>javax.ws.rs</groupId>
                        <artifactId>*</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>jakarta.ws.rs</groupId>
                        <artifactId>*</artifactId>
                    </exclusion>

                    <!-- Exclude all implementations of javax.activation -->

                    <exclusion>
                        <groupId>java.activation</groupId>
                        <artifactId>*</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>javax.activation</groupId>
                        <artifactId>*</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>com.sun.activation</groupId>
                        <artifactId>*</artifactId>
                    </exclusion>

                    <!-- Exclude all implementations of xml.bind -->

                    <exclusion>
                        <groupId>java.xml.bind</groupId>
                        <artifactId>*</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>javax.xml.bind</groupId>
                        <artifactId>*</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>jakarta.xml.bind</groupId>
                        <artifactId>*</artifactId>
                    </exclusion>

                </exclusions>

            </dependency>
            <dependency>
                <groupId>jakarta.servlet</groupId>
                <artifactId>jakarta.servlet-api</artifactId>
                <version>${jakarta.servlet.api.version}</version>
            </dependency>

            <!-- Mail -->

            <dependency>
                <groupId>com.sun.mail</groupId>
                <artifactId>javax.mail</artifactId>
                <version>${java.mail.version}</version>
                <exclusions>
                    <exclusion>
                        <groupId>javax.activation</groupId>
                        <artifactId>*</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>

            <!-- Merged JARs -->

            <dependency>
                <groupId>com.telenav.kivakit</groupId>
                <artifactId>kivakit-merged-protostuff</artifactId>
                <version>${kivakit.merged.protostuff.version}</version>
            </dependency>
            <dependency>
                <groupId>com.telenav.kivakit</groupId>
                <artifactId>kivakit-merged-grpc</artifactId>
                <version>${kivakit.merged.grpc.version}</version>
            </dependency>
            <dependency>
                <groupId>com.telenav.kivakit</groupId>
                <artifactId>kivakit-merged-prometheus</artifactId>
                <version>1.4.2</version>
            </dependency>
            <dependency>
                <groupId>com.telenav.kivakit</groupId>
                <artifactId>kivakit-merged-zookeeper</artifactId>
                <version>1.4.2</version>
            </dependency>

            <!-- Parsing -->

            <dependency>
                <groupId>org.antlr</groupId>
                <artifactId>antlr4-runtime</artifactId>
                <version>${antlr.version}</version>
            </dependency>

            <!-- Protocols -->

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

            <!-- S3 -->

            <dependency>
                <groupId>software.amazon.awssdk</groupId>
                <artifactId>s3</artifactId>
                <version>${s3.version}</version>
                <exclusions>
                    <exclusion>
                        <groupId>org.apache.httpcomponents</groupId>
                        <artifactId>httpcore</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>io.netty</groupId>
                        <artifactId>netty-codec-http</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>io.netty</groupId>
                        <artifactId>netty-handler</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>

            <!-- Serialization -->

            <dependency>
                <groupId>com.esotericsoftware</groupId>
                <artifactId>kryo</artifactId>
                <version>${kryo.version}</version>
                <exclusions>
                    <exclusion>
                        <groupId>org.ow2</groupId>
                        <artifactId>asm</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>de.javakaffee</groupId>
                <artifactId>kryo-serializers</artifactId>
                <version>${kryo.serializers.version}</version>
                <exclusions>
                    <exclusion>
                        <groupId>com.esotericsoftware</groupId>
                        <artifactId>kryo</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>org.ow2.asm</groupId>
                <artifactId>asm</artifactId>
                <version>${ow2.asm.version}</version>
            </dependency>
            <dependency>
                <groupId>net.minidev</groupId>
                <artifactId>json-smart</artifactId>
                <version>${json.smart.version}</version>
            </dependency>

            <!-- SSH -->

            <dependency>
                <groupId>com.jcraft</groupId>
                <artifactId>jsch</artifactId>
                <version>${jsch.version}</version>
            </dependency>
            <dependency>
                <groupId>sshtools</groupId>
                <artifactId>j2ssh-core</artifactId>
                <version>${j2ssh.core.version}</version>
            </dependency>

            <!-- Swagger -->

            <dependency>
                <groupId>io.swagger.core.v3</groupId>
                <artifactId>swagger-jaxrs2</artifactId>
                <version>${swagger.version}</version>
                <exclusions>
                    <exclusion>
                        <groupId>jakarta.activation</groupId>
                        <artifactId>jakarta.activation-api</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.javassist</groupId>
                        <artifactId>javassist</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>com.fasterxml.jackson.core</groupId>
                        <artifactId>jackson-core</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>io.github.classgraph</groupId>
                        <artifactId>classgraph</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>com.fasterxml.jackson.core</groupId>
                        <artifactId>jackson-annotations</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>io.swagger.core.v3</groupId>
                <artifactId>swagger-core</artifactId>
                <version>${swagger.version}</version>
                <exclusions>
                    <exclusion>
                        <groupId>jakarta.activation</groupId>
                        <artifactId>jakarta.activation-api</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>com.fasterxml.jackson.core</groupId>
                        <artifactId>jackson-core</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>com.fasterxml.jackson.core</groupId>
                        <artifactId>jackson-annotations</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>io.swagger.core.v3</groupId>
                <artifactId>swagger-models</artifactId>
                <version>${swagger.version}</version>
                <exclusions>
                    <exclusion>
                        <groupId>com.fasterxml.jackson.core</groupId>
                        <artifactId>jackson-annotations</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>org.webjars</groupId>
                <artifactId>swagger-ui</artifactId>
                <version>${swagger.webjar.version}</version>
            </dependency>

            <!-- Test -->

            <dependency>
                <groupId>junit</groupId>
                <artifactId>junit</artifactId>
                <version>${junit.version}</version>
            </dependency>
            <dependency>
                <groupId>org.mockito</groupId>
                <artifactId>mockito-core</artifactId>
                <version>3.11.2</version>
                <scope>test</scope>
                <exclusions>
                    <exclusion>
                        <groupId>org.objenesis</groupId>
                        <artifactId>objenesis</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>

            <!-- User Interface -->

            <dependency>
                <groupId>com.formdev</groupId>
                <artifactId>flatlaf</artifactId>
                <version>${flatlaf.version}</version>
            </dependency>

            <!-- Utility -->

            <dependency>
                <groupId>org.slf4j</groupId>
                <artifactId>slf4j-api</artifactId>
                <version>${slf4j.version}</version>
            </dependency>
            <dependency>
                <groupId>org.slf4j</groupId>
                <artifactId>slf4j-ext</artifactId>
                <version>${slf4j.version}</version>
            </dependency>
            <dependency>
                <groupId>org.slf4j</groupId>
                <artifactId>slf4j-simple</artifactId>
                <version>${slf4j.version}</version>
            </dependency>
            <dependency>
                <groupId>org.slf4j</groupId>
                <artifactId>slf4j-log4j12</artifactId>
                <version>${slf4j.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.commons</groupId>
                <artifactId>commons-lang3</artifactId>
                <version>${commons.lang3.version}</version>
            </dependency>
            <dependency>
                <groupId>commons-collections</groupId>
                <artifactId>commons-collections</artifactId>
                <version>${commons.collections.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-math</artifactId>
                <version>${commons.math.version}</version>
            </dependency>
            <dependency>
                <groupId>io.github.classgraph</groupId>
                <artifactId>classgraph</artifactId>
                <version>${classgraph.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.logging.log4j</groupId>
                <artifactId>log4j-api</artifactId>
                <version>${log4j.version}</version>
                <exclusions>
                    <exclusion>
                        <groupId>org.osgi</groupId>
                        <artifactId>org.osgi.core</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>org.apache.logging.log4j</groupId>
                <artifactId>log4j-1.2-api</artifactId>
                <version>${log4j.version}</version>
                <exclusions>
                    <exclusion>
                        <groupId>org.osgi</groupId>
                        <artifactId>org.osgi.core</artifactId>
                    </exclusion>
                </exclusions>
            </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>

            <!-- Web -->

            <dependency>
                <groupId>org.apache.wicket</groupId>
                <artifactId>wicket-extensions</artifactId>
                <version>${wicket.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.wicket</groupId>
                <artifactId>wicket-core</artifactId>
                <version>${wicket.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.wicket</groupId>
                <artifactId>wicket-util</artifactId>
                <version>${wicket.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.wicket</groupId>
                <artifactId>wicket-request</artifactId>
                <version>${wicket.version}</version>
            </dependency>
            <dependency>
                <groupId>com.googlecode.wicket-jquery-ui</groupId>
                <artifactId>wicket-jquery-ui</artifactId>
                <version>${wicket.jquery.version}</version>
            </dependency>
            <dependency>
                <groupId>com.googlecode.wicket-jquery-ui</groupId>
                <artifactId>wicket-jquery-ui-core</artifactId>
                <version>${wicket.jquery.version}</version>
            </dependency>
            <dependency>
                <groupId>org.danekja</groupId>
                <artifactId>jdk-serializable-functional</artifactId>
                <version>${jdk.serializable.functional.version}</version>
            </dependency>
            <dependency>
                <groupId>io.netty</groupId>
                <artifactId>netty-buffer</artifactId>
                <version>${netty.version}</version>
            </dependency>
            <dependency>
                <groupId>io.netty</groupId>
                <artifactId>netty-common</artifactId>
                <version>${netty.version}</version>
            </dependency>
            <dependency>
                <groupId>io.netty</groupId>
                <artifactId>netty-codec</artifactId>
                <version>${netty.version}</version>
            </dependency>
            <dependency>
                <groupId>io.netty</groupId>
                <artifactId>netty-transport</artifactId>
                <version>${netty.version}</version>
            </dependency>
            <dependency>
                <groupId>io.netty</groupId>
                <artifactId>netty-transport-native-epoll</artifactId>
                <version>${netty.version}</version>
            </dependency>

            <!-- XML -->

            <dependency>
                <groupId>jakarta.xml.bind</groupId>
                <artifactId>jakarta.xml.bind-api</artifactId>
                <version>${jakarta.xml.version}</version>
                <exclusions>
                    <exclusion>
                        <groupId>javax.activation</groupId>
                        <artifactId>javax.activation-api</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>jakarta.ws.rs</groupId>
                <artifactId>jakarta.ws.rs-api</artifactId>
                <version>${jakarta.ws.rs.version}</version>
                <exclusions>
                    <exclusion>
                        <groupId>jakarta.activation</groupId>
                        <artifactId>jakarta.activation-api</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>jakarta.activation</groupId>
                <artifactId>jakarta.activation-api</artifactId>
                <version>${jakarta.activation.version}</version>
            </dependency>
            <dependency>
                <groupId>com.fasterxml.jackson.core</groupId>
                <artifactId>jackson-core</artifactId>
                <version>${jackson.version}</version>
            </dependency>
            <dependency>
                <groupId>com.fasterxml.jackson.core</groupId>
                <artifactId>jackson-databind</artifactId>
                <version>${jackson.version}</version>
            </dependency>
            <dependency>
                <groupId>com.fasterxml.jackson.jaxrs</groupId>
                <artifactId>jackson-jaxrs-json-provider</artifactId>
                <version>${jackson.version}</version>
            </dependency>

        </dependencies>

    </dependencyManagement>

</project>
