<?xml version="1.0" encoding="UTF-8"?>
<!--
 ~ Copyright 2023 AntGroup CO., Ltd.
 ~
 ~ Licensed 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.
 -->

<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">

    <parent>
        <groupId>com.antgroup.tugraph</groupId>
        <artifactId>geaflow-parent</artifactId>
        <version>0.5.0</version>
    </parent>

    <modelVersion>4.0.0</modelVersion>

    <artifactId>geaflow</artifactId>
    <packaging>pom</packaging>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <testng.version>6.14.2</testng.version>
        <mockito.version>1.10.19</mockito.version>
        <mockito.inline.version>3.5.15</mockito.inline.version>
        <jmh.version>1.11.2</jmh.version>
        <guava.version>20.0</guava.version>
        <gson.version>2.2.4</gson.version>
        <commons.io.version>2.6</commons.io.version>
        <commons.lang3.version>3.3.2</commons.lang3.version>
        <commons.collections.version>3.2.2</commons.collections.version>
        <slf4j.version>1.7.15</slf4j.version>
        <log4j.version>1.2.17</log4j.version>
        <log4j.slf4j.version>2.17.1</log4j.slf4j.version>
        <fastjson.version>1.2.71_noneautotype</fastjson.version>
        <hikaricp.version>4.0.3</hikaricp.version>
        <sqlite.version>3.40.0.0</sqlite.version>
        <zstd.version>1.4.3-1</zstd.version>
        <rocksdb.version>7.7.3</rocksdb.version>
        <snappy.version>1.1.8.4</snappy.version>
        <lz4.version>1.2.0</lz4.version>
        <grpc.version>1.15.1</grpc.version>
        <kryo.version>4.0.2</kryo.version>
        <kryo.serializers.version>0.42</kryo.serializers.version>
        <protobuf.version>3.8.0</protobuf.version>
        <hadoop.version>2.7.4</hadoop.version>
        <zookeeper.version>3.5.6</zookeeper.version>
        <netty.version>4.1.30.Final</netty.version>
        <pangu.dfs.version>1.0.4.2ant02-82e3b7d</pangu.dfs.version>
        <kotlin.version>1.5.10</kotlin.version>
        <oss.sdk.version>2.2.0</oss.sdk.version>
        <httpclient.version>4.4.1</httpclient.version>
        <okhttp.version>4.10.0</okhttp.version>
        <okio.version>2.8.0</okio.version>
        <kotlin.compiler.incremental>true</kotlin.compiler.incremental>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <metrics.version>4.2.0</metrics.version>
        <high-scale-lib>1.0.0</high-scale-lib>
        <jedis.version>3.3.0</jedis.version>
        <jedis-mock.version>1.0.4</jedis-mock.version>
        <yaml.version>1.29</yaml.version>
        <jetty.version>9.4.43.v20210629</jetty.version>
        <jersey.version>2.40</jersey.version>
        <joda-time.version>2.12.1</joda-time.version>
        <jackson.version>2.11.2</jackson.version>
        <jackson.core.version>2.13.4</jackson.core.version>
        <maven.version>3.6.3</maven.version>
        <curator.version>3.2.1</curator.version>
        <brpc.version>3.0.5</brpc.version>
        <jctools.version>2.1.2</jctools.version>
        <prometheus.version>0.16.0</prometheus.version>
    </properties>

    <modules>
        <module>geaflow-common</module>
        <module>geaflow-model</module>
        <module>geaflow-state</module>
        <module>geaflow-core</module>
        <module>geaflow-dsl</module>
        <module>geaflow-deploy</module>
        <module>geaflow-utils</module>
        <module>geaflow-examples</module>
        <module>geaflow-metrics</module>
        <module>geaflow-plugins</module>
        <module>geaflow-collection</module>
        <module>geaflow-dashboard</module>
        <module>geaflow-analytics-service</module>
        <module>geaflow-infer</module>
    </modules>

    <dependencyManagement>
        <dependencies>
            <!-- guava -->
            <dependency>
                <groupId>com.google.guava</groupId>
                <artifactId>guava</artifactId>
                <version>${guava.version}</version>
            </dependency>
            <dependency>
                <groupId>com.google.code.gson</groupId>
                <artifactId>gson</artifactId>
                <version>${gson.version}</version>
            </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-collections</groupId>
                <artifactId>commons-collections</artifactId>
                <version>${commons.collections.version}</version>
            </dependency>

            <!-- compress -->
            <dependency>
                <groupId>com.github.luben</groupId>
                <artifactId>zstd-jni</artifactId>
                <version>${zstd.version}</version>
            </dependency>
            <dependency>
                <groupId>org.xerial.snappy</groupId>
                <artifactId>snappy-java</artifactId>
                <version>${snappy.version}</version>
            </dependency>
            <dependency>
                <groupId>net.jpountz.lz4</groupId>
                <artifactId>lz4</artifactId>
                <version>${lz4.version}</version>
            </dependency>

            <dependency>
                <groupId>it.unimi.dsi</groupId>
                <artifactId>fastutil</artifactId>
                <version>8.5.8</version>
            </dependency>

            <!-- java runtime compiler -->
            <dependency>
                <groupId>org.codehaus.janino</groupId>
                <artifactId>janino</artifactId>
                <version>3.0.9</version>
            </dependency>

            <!-- hadoop -->
            <dependency>
                <groupId>org.apache.hadoop</groupId>
                <artifactId>hadoop-client</artifactId>
                <version>${hadoop.version}</version>
                <exclusions>
                    <exclusion>
                        <groupId>org.mortbay.jetty</groupId>
                        <artifactId>*</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>javax.servlet</groupId>
                        <artifactId>servlet-api</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>com.sun.jersey</groupId>
                        <artifactId>jersey-core</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>

            <!-- serialize -->
            <dependency>
                <groupId>com.esotericsoftware</groupId>
                <artifactId>kryo</artifactId>
                <version>${kryo.version}</version>
            </dependency>
            <dependency>
                <groupId>de.javakaffee</groupId>
                <artifactId>kryo-serializers</artifactId>
                <version>${kryo.serializers.version}</version>
            </dependency>
            <dependency>
                <groupId>com.alibaba</groupId>
                <artifactId>fastjson</artifactId>
                <version>${fastjson.version}</version>
            </dependency>

            <!-- grpc -->
            <dependency>
                <groupId>io.grpc</groupId>
                <artifactId>grpc-all</artifactId>
                <version>${grpc.version}</version>
                <exclusions>
                    <exclusion>
                        <groupId>com.google.protobuf</groupId>
                        <artifactId>protobuf-java</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>com.google.protobuf</groupId>
                <artifactId>protobuf-java</artifactId>
                <version>${protobuf.version}</version>
            </dependency>

            <!-- oss -->
            <dependency>
                <groupId>com.aliyun.oss</groupId>
                <artifactId>aliyun-sdk-oss</artifactId>
                <version>${oss.sdk.version}</version>
            </dependency>

            <!-- jars for log4j -->
            <dependency>
                <groupId>org.slf4j</groupId>
                <artifactId>slf4j-api</artifactId>
                <version>${slf4j.version}</version>
            </dependency>
            <dependency>
                <groupId>org.slf4j</groupId>
                <artifactId>slf4j-log4j12</artifactId>
                <version>${slf4j.version}</version>
            </dependency>
            <dependency>
                <groupId>log4j</groupId>
                <artifactId>log4j</artifactId>
                <version>${log4j.version}</version>
            </dependency>

            <dependency>
                <groupId>org.apache.logging.log4j</groupId>
                <artifactId>log4j-slf4j-impl</artifactId>
                <version>${log4j.slf4j.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.logging.log4j</groupId>
                <artifactId>log4j-core</artifactId>
                <version>${log4j.slf4j.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.logging.log4j</groupId>
                <artifactId>log4j-api</artifactId>
                <version>${log4j.slf4j.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>${httpclient.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.httpcomponents</groupId>
                <artifactId>httpmime</artifactId>
                <version>${httpclient.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.httpcomponents</groupId>
                <artifactId>httpcore-nio</artifactId>
                <version>${httpclient.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.httpcomponents</groupId>
                <artifactId>fluent-hc</artifactId>
                <version>${httpclient.version}</version>
            </dependency>
            <dependency>
                <groupId>com.squareup.okhttp3</groupId>
                <artifactId>okhttp</artifactId>
                <version>${okhttp.version}</version>
            </dependency>
            <dependency>
                <groupId>com.squareup.okhttp3</groupId>
                <artifactId>mockwebserver</artifactId>
                <version>${okhttp.version}</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>com.squareup.okio</groupId>
                <artifactId>okio</artifactId>
                <version>${okio.version}</version>
            </dependency>

            <dependency>
                <groupId>io.dropwizard.metrics</groupId>
                <artifactId>metrics-core</artifactId>
                <version>${metrics.version}</version>
            </dependency>

            <dependency>
                <groupId>io.prometheus</groupId>
                <artifactId>simpleclient_pushgateway</artifactId>
                <version>${prometheus.version}</version>
            </dependency>

            <!-- redis -->
            <dependency>
                <groupId>redis.clients</groupId>
                <artifactId>jedis</artifactId>
                <version>${jedis.version}</version>
            </dependency>
            <dependency>
                <groupId>com.github.fppt</groupId>
                <artifactId>jedis-mock</artifactId>
                <version>${jedis-mock.version}</version>
                <scope>test</scope>
            </dependency>
            <!-- redis end -->

            <!-- jetty -->
            <dependency>
                <groupId>org.eclipse.jetty</groupId>
                <artifactId>jetty-server</artifactId>
                <version>${jetty.version}</version>
            </dependency>
            <dependency>
                <groupId>org.eclipse.jetty</groupId>
                <artifactId>jetty-servlet</artifactId>
                <version>${jetty.version}</version>
            </dependency>
            <dependency>
                <groupId>org.eclipse.jetty</groupId>
                <artifactId>jetty-proxy</artifactId>
                <version>${jetty.version}</version>
            </dependency>
            <dependency>
                <groupId>org.glassfish.jersey.core</groupId>
                <artifactId>jersey-server</artifactId>
                <version>${jersey.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-jetty-http</artifactId>
                <version>${jersey.version}</version>
            </dependency>
            <dependency>
                <groupId>org.glassfish.jersey.media</groupId>
                <artifactId>jersey-media-json-jackson</artifactId>
                <version>${jersey.version}</version>
            </dependency>
            <dependency>
                <groupId>org.glassfish.jersey.inject</groupId>
                <artifactId>jersey-hk2</artifactId>
                <version>${jersey.version}</version>
            </dependency>

            <!-- test -->
            <dependency>
                <groupId>org.testng</groupId>
                <artifactId>testng</artifactId>
                <version>${testng.version}</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>org.mockito</groupId>
                <artifactId>mockito-all</artifactId>
                <version>${mockito.version}</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>org.mockito</groupId>
                <artifactId>mockito-inline</artifactId>
                <version>${mockito.inline.version}</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <artifactId>netty-all</artifactId>
                <groupId>io.netty</groupId>
                <version>${netty.version}</version>
            </dependency>

            <!-- performance test -->
            <dependency>
                <groupId>org.openjdk.jmh</groupId>
                <artifactId>jmh-parent</artifactId>
                <version>${jmh.version}</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>org.openjdk.jmh</groupId>
                <artifactId>jmh-core</artifactId>
                <version>${jmh.version}</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>org.openjdk.jmh</groupId>
                <artifactId>jmh-generator-annprocess</artifactId>
                <version>${jmh.version}</version>
                <scope>test</scope>
            </dependency>

            <dependency>
                <groupId>org.apache.curator</groupId>
                <artifactId>curator-test</artifactId>
                <version>${curator.version}</version>
                <scope>test</scope>
            </dependency>

            <!-- yaml test -->
            <dependency>
                <groupId>org.yaml</groupId>
                <artifactId>snakeyaml</artifactId>
                <version>${yaml.version}</version>
            </dependency>

            <!-- geaflow -->
            <dependency>
                <groupId>com.antgroup.tugraph</groupId>
                <artifactId>geaflow-rpc-proto</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>com.antgroup.tugraph</groupId>
                <artifactId>geaflow-collection</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>com.antgroup.tugraph</groupId>
                <artifactId>geaflow-api</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>com.antgroup.tugraph</groupId>
                <artifactId>geaflow-common</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>com.antgroup.tugraph</groupId>
                <artifactId>geaflow-core-common</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>com.antgroup.tugraph</groupId>
                <artifactId>geaflow-model</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>com.antgroup.tugraph</groupId>
                <artifactId>geaflow-operator</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>com.antgroup.tugraph</groupId>
                <artifactId>geaflow-dsl-runtime</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>com.antgroup.tugraph</groupId>
                <artifactId>geaflow-metrics-common</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>com.antgroup.tugraph</groupId>
                <artifactId>geaflow-metrics-reporter</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>com.antgroup.tugraph</groupId>
                <artifactId>geaflow-metrics-slf4j</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>com.antgroup.tugraph</groupId>
                <artifactId>geaflow-metrics-influxdb</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>com.antgroup.tugraph</groupId>
                <artifactId>geaflow-metrics-prometheus</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>com.antgroup.tugraph</groupId>
                <artifactId>geaflow-stats-metrics</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>com.antgroup.tugraph</groupId>
                <artifactId>geaflow-cluster</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>com.antgroup.tugraph</groupId>
                <artifactId>geaflow-cluster-runner</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>com.antgroup.tugraph</groupId>
                <artifactId>geaflow-on-ray-community</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>com.antgroup.tugraph</groupId>
                <artifactId>geaflow-on-local</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>com.antgroup.tugraph</groupId>
                <artifactId>geaflow-on-k8s</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>com.antgroup.tugraph</groupId>
                <artifactId>geaflow-utils</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>com.antgroup.tugraph</groupId>
                <artifactId>geaflow-runtime</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>com.antgroup.tugraph</groupId>
                <artifactId>geaflow-shuffle</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>com.antgroup.tugraph</groupId>
                <artifactId>geaflow-examples</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>com.antgroup.tugraph</groupId>
                <artifactId>geaflow-plan</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>com.antgroup.tugraph</groupId>
                <artifactId>geaflow-runtime-common</artifactId>
                <version>${project.version}</version>
            </dependency>

            <dependency>
                <groupId>com.antgroup.tugraph</groupId>
                <artifactId>geaflow-pdata</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>com.antgroup.tugraph</groupId>
                <artifactId>geaflow-pipeline</artifactId>
                <version>${project.version}</version>
            </dependency>

            <dependency>
                <groupId>com.antgroup.tugraph</groupId>
                <artifactId>geaflow-processor</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>com.antgroup.tugraph</groupId>
                <artifactId>geaflow-runtime-core</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>com.antgroup.tugraph</groupId>
                <artifactId>geaflow-store-memory</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>com.antgroup.tugraph</groupId>
                <artifactId>geaflow-store-rocksdb</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>com.antgroup.tugraph</groupId>
                <artifactId>geaflow-store-cstore</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>com.antgroup.tugraph</groupId>
                <artifactId>geaflow-store-redis</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>com.antgroup.tugraph</groupId>
                <artifactId>geaflow-store-jdbc</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>com.antgroup.tugraph</groupId>
                <artifactId>geaflow-dashboard</artifactId>
                <version>${project.version}</version>
            </dependency>

            <!-- meta server -->
            <dependency>
                <groupId>com.antgroup.tugraph</groupId>
                <artifactId>geaflow-metaserver-common</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>com.antgroup.tugraph</groupId>
                <artifactId>geaflow-metaserver-engine</artifactId>
                <version>${project.version}</version>
            </dependency>
            <!-- end -->
            <!-- state -->
            <dependency>
                <groupId>com.antgroup.tugraph</groupId>
                <artifactId>geaflow-state-common</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>com.antgroup.tugraph</groupId>
                <artifactId>geaflow-state-strategy</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>com.antgroup.tugraph</groupId>
                <artifactId>geaflow-view-meta</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>com.antgroup.tugraph</groupId>
                <artifactId>geaflow-state-api</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>com.antgroup.tugraph</groupId>
                <artifactId>geaflow-state-impl</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>com.antgroup.tugraph</groupId>
                <artifactId>geaflow-store-api</artifactId>
                <version>${project.version}</version>
            </dependency>
            <!-- end -->

            <!-- analytics -->
            <dependency>
                <groupId>com.antgroup.tugraph</groupId>
                <artifactId>geaflow-analytics-service-common</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>com.antgroup.tugraph</groupId>
                <artifactId>geaflow-analytics-service-server</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>com.antgroup.tugraph</groupId>
                <artifactId>geaflow-analytics-service-client</artifactId>
                <version>${project.version}</version>
            </dependency>
            <!-- end -->

            <dependency>
                <groupId>com.antgroup.tugraph</groupId>
                <artifactId>geaflow-file-common</artifactId>
                <version>${project.version}</version>
            </dependency>

            <dependency>
                <groupId>com.antgroup.tugraph</groupId>
                <artifactId>geaflow-file-dfs</artifactId>
                <version>${project.version}</version>
            </dependency>

            <dependency>
                <groupId>com.antgroup.tugraph</groupId>
                <artifactId>geaflow-file-oss</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>com.antgroup.tugraph</groupId>
                <artifactId>geaflow-highavailability</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>com.antgroup.tugraph</groupId>
                <artifactId>geaflow-service-discovery-api</artifactId>
                <version>${project.version}</version>
            </dependency>

            <dependency>
                <groupId>com.antgroup.tugraph</groupId>
                <artifactId>geaflow-service-discovery-zookeeper</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>com.antgroup.tugraph</groupId>
                <artifactId>geaflow-service-discovery-redis</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>joda-time</groupId>
                <artifactId>joda-time</artifactId>
                <version>${joda-time.version}</version>
            </dependency>

            <dependency>
                <groupId>com.antgroup.tugraph</groupId>
                <artifactId>geaflow-infer</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <artifactId>jctools-core</artifactId>
                <groupId>org.jctools</groupId>
                <version>${jctools.version}</version>
            </dependency>
            <!-- jackson -->
            <dependency>
                <groupId>com.fasterxml.jackson.core</groupId>
                <artifactId>jackson-databind</artifactId>
                <version>${jackson.version}</version>
            </dependency>
            <dependency>
                <groupId>com.fasterxml.jackson.core</groupId>
                <artifactId>jackson-core</artifactId>
                <version>${jackson.core.version}</version>
            </dependency>

            <!-- brpc -->
            <dependency>
                <groupId>com.baidu</groupId>
                <artifactId>brpc-java-communication</artifactId>
                <version>${brpc.version}</version>
            </dependency>
            <dependency>
                <groupId>com.baidu</groupId>
                <artifactId>brpc-java</artifactId>
                <version>${brpc.version}</version>
            </dependency>
        </dependencies>
    </dependencyManagement>

    <dependencies>
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-api</artifactId>
        </dependency>
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-log4j12</artifactId>
        </dependency>
        <dependency>
            <groupId>log4j</groupId>
            <artifactId>log4j</artifactId>
        </dependency>

        <dependency>
            <groupId>org.apache.logging.log4j</groupId>
            <artifactId>log4j-slf4j-impl</artifactId>
        </dependency>
        <dependency>
            <groupId>org.apache.logging.log4j</groupId>
            <artifactId>log4j-core</artifactId>
        </dependency>
        <dependency>
            <groupId>org.apache.logging.log4j</groupId>
            <artifactId>log4j-api</artifactId>
        </dependency>

        <dependency>
            <groupId>org.testng</groupId>
            <artifactId>testng</artifactId>
        </dependency>
        <dependency>
            <groupId>org.mockito</groupId>
            <artifactId>mockito-all</artifactId>
        </dependency>
    </dependencies>
</project>
