<?xml version="1.0" encoding="UTF-8"?>
<!--
  Licensed to the Apache Software Foundation (ASF) under one or more
  contributor license agreements.  See the NOTICE file distributed with
  this work for additional information regarding copyright ownership.
  The ASF licenses this file to You under the Apache License, Version 2.0
  (the "License"); you may not use this file except in compliance with
  the License.  You may obtain a copy of the License at

      http://www.apache.org/licenses/LICENSE-2.0

  Unless required by applicable law or agreed to in writing, software
  distributed under the License is distributed on an "AS IS" BASIS,
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  See the License for the specific language governing permissions and
  limitations under the License.
  -->
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <parent>
        <groupId>org.apache</groupId>
        <artifactId>apache</artifactId>
        <version>27</version>
        <relativePath/>
    </parent>

    <groupId>org.apache.dubbo</groupId>
    <artifactId>dubbo-dependencies-bom</artifactId>
    <version>${revision}</version>
    <packaging>pom</packaging>

    <name>dubbo-dependencies-bom</name>
    <description>Dubbo dependencies BOM</description>
    <url>https://github.com/apache/dubbo</url>
    <inceptionYear>2011</inceptionYear>
    <licenses>
        <license>
            <name>Apache License, Version 2.0</name>
            <url>http://www.apache.org/licenses/LICENSE-2.0</url>
            <distribution>repo</distribution>
        </license>
    </licenses>

    <scm>
        <url>https://github.com/apache/dubbo</url>
        <connection>scm:git:https://github.com/apache/dubbo.git</connection>
        <developerConnection>scm:git:https://github.com/apache/dubbo.git</developerConnection>
        <tag>HEAD</tag>
    </scm>
    <mailingLists>
        <mailingList>
            <name>Development List</name>
            <subscribe>dev-subscribe@dubbo.apache.org</subscribe>
            <unsubscribe>dev-unsubscribe@dubbo.apache.org</unsubscribe>
            <post>dev@dubbo.apache.org</post>
        </mailingList>
        <mailingList>
            <name>Commits List</name>
            <subscribe>commits-subscribe@dubbo.apache.org</subscribe>
            <unsubscribe>commits-unsubscribe@dubbo.apache.org</unsubscribe>
            <post>commits@dubbo.apache.org</post>
        </mailingList>
        <mailingList>
            <name>Issues List</name>
            <subscribe>issues-subscribe@dubbo.apache.org</subscribe>
            <unsubscribe>issues-unsubscribe@dubbo.apache.org</unsubscribe>
            <post>issues@dubbo.apache.org</post>
        </mailingList>
    </mailingLists>
    <developers>
        <developer>
            <id>dubbo.io</id>
            <name>The Dubbo Project Contributors</name>
            <email>dev-subscribe@dubbo.apache.org</email>
            <url>http://dubbo.apache.org/</url>
        </developer>
    </developers>

    <organization>
        <name>The Apache Software Foundation</name>
        <url>http://www.apache.org/</url>
    </organization>

    <issueManagement>
        <system>Github Issues</system>
        <url>https://github.com/apache/dubbo/issues</url>
    </issueManagement>

    <properties>
        <!-- Common libs -->
        <!-- <spring_version>4.3.30.RELEASE</spring_version> -->
        <spring_version>5.2.20.RELEASE</spring_version>
        <javassist_version>3.29.2-GA</javassist_version>
        <bytebuddy.version>1.12.22</bytebuddy.version>
        <netty_version>3.2.5.Final</netty_version>
        <netty4_version>4.1.72.Final</netty4_version>
        <mina_version>2.1.5</mina_version>
        <grizzly_version>2.4.4</grizzly_version>
        <httpclient_version>4.5.13</httpclient_version>
        <httpcore_version>4.4.6</httpcore_version>
        <fastjson_version>1.2.83</fastjson_version>
        <fastjson2_version>2.0.23</fastjson2_version>
        <zookeeper_version>3.4.14</zookeeper_version>
        <curator_version>4.3.0</curator_version>
        <curator_test_version>2.12.0</curator_test_version>
        <jedis_version>3.6.0</jedis_version>
        <consul_version>1.4.2</consul_version>
        <consul_process_version>2.0.0</consul_process_version>
        <consul_client_version>1.3.7</consul_client_version>
        <xmemcached_version>1.3.6</xmemcached_version>
        <cxf_version>3.1.15</cxf_version>
        <thrift_version>0.15.0</thrift_version>
        <hessian_version>4.0.38</hessian_version>
        <protobuf-java_version>3.19.6</protobuf-java_version>
        <javax_annotation-api_version>1.3.2</javax_annotation-api_version>
        <servlet_version>3.1.0</servlet_version>
        <jetty_version>9.4.50.v20221201</jetty_version>
        <validation_new_version>3.0.1</validation_new_version>
        <validation_version>1.1.0.Final</validation_version>
        <hibernate_validator_version>5.4.3.Final</hibernate_validator_version>
        <hibernate_validator_new_version>7.0.4.Final</hibernate_validator_new_version>
        <jel_version>3.0.1-b12</jel_version>
        <jcache_version>1.0.0</jcache_version>
        <kryo_version>4.0.2</kryo_version>
        <kryo_serializers_version>0.42</kryo_serializers_version>
        <fst_version>2.48-jdk-6</fst_version>
        <avro_version>1.8.2</avro_version>
        <apollo_client_version>2.0.1</apollo_client_version>
        <snakeyaml_version>1.32</snakeyaml_version>
        <commons_lang3_version>3.8.1</commons_lang3_version>
        <protostuff_version>1.5.9</protostuff_version>
        <envoy_api_version>0.1.23</envoy_api_version>
        <micrometer.version>1.7.4</micrometer.version>
        <t_digest.version>3.3</t_digest.version>
        <prometheus_client.version>0.10.0</prometheus_client.version>
        <reactive.version>1.0.4</reactive.version>
        <reactor.version>3.4.19</reactor.version>

        <rs_api_version>2.1.1</rs_api_version>
        <resteasy_version>3.15.3.Final</resteasy_version>
        <tomcat_embed_version>8.5.78</tomcat_embed_version>
        <jetcd_version>0.5.3</jetcd_version>
        <nacos_version>2.1.2</nacos_version>
        <grpc.version>1.41.0</grpc.version>
        <grpc_contrib_verdion>0.8.1</grpc_contrib_verdion>
        <jprotoc_version>1.2.1</jprotoc_version>
        <!-- Log libs -->
        <slf4j_version>1.7.36</slf4j_version>
        <jcl_version>1.2</jcl_version>
        <log4j_version>1.2.17</log4j_version>
        <logback_version>1.2.11</logback_version>
        <!-- Fix the bug of log4j refer:https://github.com/apache/logging-log4j2/pull/608 -->
        <log4j2_version>2.17.2</log4j2_version>
        <commons_io_version>2.11.0</commons_io_version>

        <embedded_redis_version>0.10.0</embedded_redis_version>

        <!-- Eureka -->
        <eureka.version>1.10.18</eureka.version>

        <!-- Fabric8 for Kubernetes -->
        <fabric8_kubernetes_version>6.1.1</fabric8_kubernetes_version>

        <!-- Alibaba -->
        <alibaba_spring_context_support_version>1.0.8</alibaba_spring_context_support_version>

        <jaxb_version>2.2.7</jaxb_version>
        <activation_version>1.2.0</activation_version>
        <test_container_version>1.15.3</test_container_version>
        <etcd_launcher_version>0.5.3</etcd_launcher_version>
        <hessian_lite_version>3.2.13</hessian_lite_version>
        <swagger_version>1.5.24</swagger_version>

        <snappy_java_version>1.1.8.4</snappy_java_version>
        <bouncycastle-bcprov_version>1.70</bouncycastle-bcprov_version>
        <metrics_version>2.0.1</metrics_version>
        <sofa_registry_version>5.2.0</sofa_registry_version>
        <gson_version>2.8.9</gson_version>
        <jackson_version>2.14.0</jackson_version>
        <jsonrpc_version>1.2.0</jsonrpc_version>
        <mortbay_jetty_version>6.1.26</mortbay_jetty_version>
        <portlet_version>2.0</portlet_version>
        <maven_flatten_version>1.1.0</maven_flatten_version>
        <commons_compress_version>1.21</commons_compress_version>
        <revision>3.2.0-beta.4</revision>
    </properties>

    <dependencyManagement>
        <dependencies>
            <!-- Common libs -->
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-framework-bom</artifactId>
                <version>${spring_version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
            <dependency>
                <groupId>io.netty</groupId>
                <artifactId>netty-bom</artifactId>
                <version>${netty4_version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
            <dependency>
                <groupId>io.netty</groupId>
                <artifactId>netty-all</artifactId>
                <version>${netty4_version}</version>
            </dependency>
            <dependency>
                <groupId>org.javassist</groupId>
                <artifactId>javassist</artifactId>
                <version>${javassist_version}</version>
            </dependency>
            <dependency>
                <groupId>net.bytebuddy</groupId>
                <artifactId>byte-buddy</artifactId>
                <version>${bytebuddy.version}</version>
            </dependency>
            <dependency>
                <groupId>org.jboss.netty</groupId>
                <artifactId>netty</artifactId>
                <version>${netty_version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.mina</groupId>
                <artifactId>mina-core</artifactId>
                <version>${mina_version}</version>
            </dependency>
            <dependency>
                <groupId>org.glassfish.grizzly</groupId>
                <artifactId>grizzly-core</artifactId>
                <version>${grizzly_version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.httpcomponents</groupId>
                <artifactId>httpclient</artifactId>
                <version>${httpclient_version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.httpcomponents</groupId>
                <artifactId>httpcore</artifactId>
                <version>${httpcore_version}</version>
            </dependency>
            <dependency>
                <groupId>com.alibaba</groupId>
                <artifactId>fastjson</artifactId>
                <version>${fastjson_version}</version>
            </dependency>
            <dependency>
                <groupId>com.alibaba.fastjson2</groupId>
                <artifactId>fastjson2</artifactId>
                <version>${fastjson2_version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.zookeeper</groupId>
                <artifactId>zookeeper</artifactId>
                <version>${zookeeper_version}</version>
                <exclusions>
                    <exclusion>
                        <groupId>io.netty</groupId>
                        <artifactId>netty</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>org.apache.curator</groupId>
                <artifactId>curator-framework</artifactId>
                <version>${curator_version}</version>
                <exclusions>
                    <exclusion>
                        <groupId>org.apache.zookeeper</groupId>
                        <artifactId>zookeeper</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>org.apache.curator</groupId>
                <artifactId>curator-x-discovery</artifactId>
                <version>${curator_version}</version>
                <exclusions>
                    <exclusion>
                        <groupId>org.apache.zookeeper</groupId>
                        <artifactId>zookeeper</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>redis.clients</groupId>
                <artifactId>jedis</artifactId>
                <version>${jedis_version}</version>
            </dependency>
            <dependency>
                <groupId>com.ecwid.consul</groupId>
                <artifactId>consul-api</artifactId>
                <version>${consul_version}</version>
            </dependency>
            <dependency>
                <groupId>com.pszymczyk.consul</groupId>
                <artifactId>embedded-consul</artifactId>
                <version>${consul_process_version}</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>com.orbitz.consul</groupId>
                <artifactId>consul-client</artifactId>
                <version>${consul_client_version}</version>
            </dependency>
            <!-- Eureka -->
            <dependency>
                <groupId>com.netflix.eureka</groupId>
                <artifactId>eureka-client</artifactId>
                <version>${eureka.version}</version>
            </dependency>
            <dependency>
                <groupId>com.netflix.eureka</groupId>
                <artifactId>eureka-core</artifactId>
                <version>${eureka.version}</version>
            </dependency>

            <!-- Alibaba -->
            <dependency>
                <groupId>com.alibaba.spring</groupId>
                <artifactId>spring-context-support</artifactId>
                <version>${alibaba_spring_context_support_version}</version>
            </dependency>

            <dependency>
                <groupId>com.googlecode.xmemcached</groupId>
                <artifactId>xmemcached</artifactId>
                <version>${xmemcached_version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.cxf</groupId>
                <artifactId>cxf-rt-frontend-simple</artifactId>
                <version>${cxf_version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.cxf</groupId>
                <artifactId>cxf-rt-transports-http</artifactId>
                <version>${cxf_version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.thrift</groupId>
                <artifactId>libthrift</artifactId>
                <version>${thrift_version}</version>
            </dependency>
            <dependency>
                <groupId>com.caucho</groupId>
                <artifactId>hessian</artifactId>
                <version>${hessian_version}</version>
            </dependency>
            <dependency>
                <groupId>com.alibaba</groupId>
                <artifactId>hessian-lite</artifactId>
                <version>${hessian_lite_version}</version>
            </dependency>
            <dependency>
                <groupId>com.google.protobuf</groupId>
                <artifactId>protobuf-java</artifactId>
                <version>${protobuf-java_version}</version>
            </dependency>
            <dependency>
                <groupId>com.google.protobuf</groupId>
                <artifactId>protobuf-java-util</artifactId>
                <version>${protobuf-java_version}</version>
            </dependency>
            <dependency>
                <groupId>org.bouncycastle</groupId>
                <artifactId>bcprov-jdk15on</artifactId>
                <version>${bouncycastle-bcprov_version}</version>
            </dependency>
            <dependency>
                <groupId>org.bouncycastle</groupId>
                <artifactId>bcpkix-jdk15on</artifactId>
                <version>${bouncycastle-bcprov_version}</version>
            </dependency>
            <dependency>
                <groupId>org.bouncycastle</groupId>
                <artifactId>bcprov-ext-jdk15on</artifactId>
                <version>${bouncycastle-bcprov_version}</version>
            </dependency>

            <!-- Common Annotations API -->
            <dependency>
                <groupId>javax.annotation</groupId>
                <artifactId>javax.annotation-api</artifactId>
                <version>${javax_annotation-api_version}</version>
            </dependency>
            <!-- Servlet API -->
            <dependency>
                <groupId>javax.servlet</groupId>
                <artifactId>javax.servlet-api</artifactId>
                <version>${servlet_version}</version>
            </dependency>
            <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.mortbay.jetty</groupId>
                <artifactId>jetty</artifactId>
                <version>${mortbay_jetty_version}</version>
                <optional>true</optional>
            </dependency>
            <dependency>
                <groupId>javax.validation</groupId>
                <artifactId>validation-api</artifactId>
                <version>${validation_version}</version>
            </dependency>
            <dependency>
                <groupId>org.hibernate</groupId>
                <artifactId>hibernate-validator</artifactId>
                <version>${hibernate_validator_version}</version>
            </dependency>
            <dependency>
                <groupId>org.glassfish</groupId>
                <artifactId>javax.el</artifactId>
                <version>${jel_version}</version>
            </dependency>
            <dependency>
                <groupId>jakarta.validation</groupId>
                <artifactId>jakarta.validation-api</artifactId>
                <version>${validation_new_version}</version>
            </dependency>
            <dependency>
                <groupId>org.hibernate.validator</groupId>
                <artifactId>hibernate-validator</artifactId>
                <version>${hibernate_validator_new_version}</version>
            </dependency>
            <dependency>
                <groupId>javax.cache</groupId>
                <artifactId>cache-api</artifactId>
                <version>${jcache_version}</version>
            </dependency>
            <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>de.ruedigermoeller</groupId>
                <artifactId>fst</artifactId>
                <version>${fst_version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.avro</groupId>
                <artifactId>avro</artifactId>
                <version>${avro_version}</version>
            </dependency>
            <dependency>
                <groupId>io.protostuff</groupId>
                <artifactId>protostuff-core</artifactId>
                <version>${protostuff_version}</version>
            </dependency>
            <dependency>
                <groupId>io.protostuff</groupId>
                <artifactId>protostuff-runtime</artifactId>
                <version>${protostuff_version}</version>
            </dependency>
            <dependency>
                <groupId>javax.ws.rs</groupId>
                <artifactId>javax.ws.rs-api</artifactId>
                <version>${rs_api_version}</version>
            </dependency>
            <dependency>
                <groupId>org.jboss.resteasy</groupId>
                <artifactId>resteasy-jaxrs</artifactId>
                <version>${resteasy_version}</version>
            </dependency>
            <dependency>
                <groupId>org.jboss.resteasy</groupId>
                <artifactId>resteasy-client</artifactId>
                <version>${resteasy_version}</version>
            </dependency>
            <dependency>
                <groupId>org.jboss.resteasy</groupId>
                <artifactId>resteasy-netty4</artifactId>
                <version>${resteasy_version}</version>
                <exclusions>
                    <exclusion>
                        <groupId>io.netty</groupId>
                        <artifactId>netty-all</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>org.jboss.resteasy</groupId>
                <artifactId>resteasy-jdk-http</artifactId>
                <version>${resteasy_version}</version>
            </dependency>
            <dependency>
                <groupId>org.jboss.resteasy</groupId>
                <artifactId>resteasy-jackson-provider</artifactId>
                <version>${resteasy_version}</version>
            </dependency>
            <dependency>
                <groupId>org.jboss.resteasy</groupId>
                <artifactId>resteasy-jaxb-provider</artifactId>
                <version>${resteasy_version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.tomcat.embed</groupId>
                <artifactId>tomcat-embed-core</artifactId>
                <version>${tomcat_embed_version}</version>
            </dependency>
            <dependency>
                <groupId>io.etcd</groupId>
                <artifactId>jetcd-core</artifactId>
                <version>${jetcd_version}</version>
                <exclusions>
                    <exclusion>
                        <groupId>io.netty</groupId>
                        <artifactId>netty-codec-http2</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>io.netty</groupId>
                        <artifactId>netty-handler-proxy</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <!-- Log libs -->
            <dependency>
                <groupId>org.slf4j</groupId>
                <artifactId>slf4j-api</artifactId>
                <version>${slf4j_version}</version>
            </dependency>
            <dependency>
                <groupId>commons-logging</groupId>
                <artifactId>commons-logging</artifactId>
                <version>${jcl_version}</version>
            </dependency>
            <dependency>
                <groupId>commons-io</groupId>
                <artifactId>commons-io</artifactId>
                <version>${commons_io_version}</version>
            </dependency>
            <dependency>
                <groupId>log4j</groupId>
                <artifactId>log4j</artifactId>
                <version>${log4j_version}</version>
            </dependency>
            <dependency>
                <groupId>ch.qos.logback</groupId>
                <artifactId>logback-classic</artifactId>
                <version>${logback_version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.logging.log4j</groupId>
                <artifactId>log4j-api</artifactId>
                <version>${log4j2_version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.logging.log4j</groupId>
                <artifactId>log4j-core</artifactId>
                <version>${log4j2_version}</version>
            </dependency>
            <dependency>
                <groupId>com.ctrip.framework.apollo</groupId>
                <artifactId>apollo-client</artifactId>
                <version>${apollo_client_version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.curator</groupId>
                <artifactId>curator-recipes</artifactId>
                <version>${curator_version}</version>
                <exclusions>
                    <exclusion>
                        <groupId>org.apache.zookeeper</groupId>
                        <artifactId>zookeeper</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>org.yaml</groupId>
                <artifactId>snakeyaml</artifactId>
                <version>${snakeyaml_version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.commons</groupId>
                <artifactId>commons-lang3</artifactId>
                <version>${commons_lang3_version}</version>
            </dependency>
            <dependency>
                <groupId>io.envoyproxy.controlplane</groupId>
                <artifactId>api</artifactId>
                <version>${envoy_api_version}</version>
            </dependency>

            <!-- for dubbo-rpc-webservice -->
            <dependency>
                <groupId>javax.xml.bind</groupId>
                <artifactId>jaxb-api</artifactId>
                <version>${jaxb_version}</version>
            </dependency>
            <dependency>
                <groupId>com.sun.xml.bind</groupId>
                <artifactId>jaxb-impl</artifactId>
                <version>${jaxb_version}</version>
            </dependency>
            <dependency>
                <groupId>com.sun.xml.bind</groupId>
                <artifactId>jaxb-core</artifactId>
                <version>${jaxb_version}</version>
            </dependency>
            <dependency>
                <groupId>javax.activation</groupId>
                <artifactId>javax.activation-api</artifactId>
                <version>${activation_version}</version>
            </dependency>
            <dependency>
                <groupId>com.sun.activation</groupId>
                <artifactId>javax.activation</artifactId>
                <version>${activation_version}</version>
            </dependency>

            <!-- swagger -->
            <dependency>
                <groupId>io.swagger</groupId>
                <artifactId>swagger-annotations</artifactId>
                <version>${swagger_version}</version>
            </dependency>
            <dependency>
                <groupId>io.swagger</groupId>
                <artifactId>swagger-jaxrs</artifactId>
                <version>${swagger_version}</version>
            </dependency>

            <dependency>
                <groupId>com.alibaba.middleware</groupId>
                <artifactId>metrics-core-api</artifactId>
                <version>${metrics_version}</version>
            </dependency>
            <dependency>
                <groupId>com.alibaba.middleware</groupId>
                <artifactId>metrics-core-impl</artifactId>
                <version>${metrics_version}</version>
            </dependency>
            <dependency>
                <groupId>com.alibaba.middleware</groupId>
                <artifactId>metrics-common</artifactId>
                <version>${metrics_version}</version>
            </dependency>

            <dependency>
                <groupId>com.alibaba.middleware</groupId>
                <artifactId>metrics-rest</artifactId>
                <version>${metrics_version}</version>
            </dependency>

            <!-- for dubbo-registry-sofa -->
            <dependency>
                <groupId>com.alipay.sofa</groupId>
                <artifactId>registry-client-all</artifactId>
                <version>${sofa_registry_version}</version>
            </dependency>
            <dependency>
                <groupId>com.alipay.sofa</groupId>
                <artifactId>registry-test</artifactId>
                <version>${sofa_registry_version}</version>
                <scope>test</scope>
            </dependency>

            <!-- Test lib -->
            <dependency>
                <groupId>com.github.codemonstur</groupId>
                <artifactId>embedded-redis</artifactId>
                <version>${embedded_redis_version}</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-test</artifactId>
                <version>${spring_version}</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>com.google.code.gson</groupId>
                <artifactId>gson</artifactId>
                <version>${gson_version}</version>
            </dependency>
            <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-annotations</artifactId>
                <version>${jackson_version}</version>
            </dependency>
            <dependency>
                <groupId>com.fasterxml.jackson.core</groupId>
                <artifactId>jackson-core</artifactId>
                <version>${jackson_version}</version>
            </dependency>
            <dependency>
                <groupId>com.fasterxml.jackson.datatype</groupId>
                <artifactId>jackson-datatype-jsr310</artifactId>
                <version>${jackson_version}</version>
            </dependency>
            <dependency>
                <groupId>com.github.briandilley.jsonrpc4j</groupId>
                <artifactId>jsonrpc4j</artifactId>
                <version>${jsonrpc_version}</version>
            </dependency>
            <dependency>
                <groupId>javax.portlet</groupId>
                <artifactId>portlet-api</artifactId>
                <version>${portlet_version}</version>
            </dependency>
            <!-- for dubbo-configcenter-etcd -->
            <dependency>
                <groupId>io.etcd</groupId>
                <artifactId>jetcd-launcher</artifactId>
                <version>${etcd_launcher_version}</version>
                <exclusions>
                    <exclusion>
                        <groupId>com.github.spotbugs</groupId>
                        <artifactId>spotbugs-annotations</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>org.testcontainers</groupId>
                <artifactId>testcontainers</artifactId>
                <version>${test_container_version}</version>
            </dependency>
            <dependency>
                <groupId>com.alibaba.nacos</groupId>
                <artifactId>nacos-client</artifactId>
                <version>${nacos_version}</version>
            </dependency>
            <!-- grpc related dependencies -->
            <dependency>
                <groupId>io.grpc</groupId>
                <artifactId>grpc-core</artifactId>
                <version>${grpc.version}</version>
            </dependency>
            <dependency>
                <groupId>io.grpc</groupId>
                <artifactId>grpc-netty-shaded</artifactId>
                <version>${grpc.version}</version>
            </dependency>
            <dependency>
                <groupId>io.grpc</groupId>
                <artifactId>grpc-netty</artifactId>
                <version>${grpc.version}</version>
            </dependency>
            <dependency>
                <groupId>io.grpc</groupId>
                <artifactId>grpc-protobuf</artifactId>
                <version>${grpc.version}</version>
            </dependency>
            <dependency>
                <groupId>io.grpc</groupId>
                <artifactId>grpc-stub</artifactId>
                <version>${grpc.version}</version>
            </dependency>
            <dependency>
                <groupId>io.grpc</groupId>
                <artifactId>grpc-grpclb</artifactId>
                <version>${grpc.version}</version>
            </dependency>
            <dependency>
                <groupId>io.grpc</groupId>
                <artifactId>grpc-context</artifactId>
                <version>${grpc.version}</version>
            </dependency>
            <dependency>
                <groupId>com.salesforce.servicelibs</groupId>
                <artifactId>grpc-contrib</artifactId>
                <version>${grpc_contrib_verdion}</version>
            </dependency>
            <dependency>
                <groupId>com.salesforce.servicelibs</groupId>
                <artifactId>jprotoc</artifactId>
                <version>${jprotoc_version}</version>
            </dependency>
            <dependency>
                <groupId>io.fabric8</groupId>
                <artifactId>kubernetes-client</artifactId>
                <version>${fabric8_kubernetes_version}</version>
            </dependency>
            <dependency>
                <groupId>io.fabric8</groupId>
                <artifactId>kubernetes-server-mock</artifactId>
                <scope>test</scope>
                <version>${fabric8_kubernetes_version}</version>
            </dependency>
            <!-- tri compress support-->
            <dependency>
                <groupId>org.apache.commons</groupId>
                <artifactId>commons-compress</artifactId>
                <version>${commons_compress_version}</version>
            </dependency>
            <dependency>
                <groupId>org.xerial.snappy</groupId>
                <artifactId>snappy-java</artifactId>
                <version>${snappy_java_version}</version>
                <optional>true</optional>
            </dependency>
            <!-- metrics related dependencies-->
            <dependency>
                <groupId>io.micrometer</groupId>
                <artifactId>micrometer-core</artifactId>
                <version>${micrometer.version}</version>
            </dependency>
            <dependency>
                <groupId>io.micrometer</groupId>
                <artifactId>micrometer-registry-prometheus</artifactId>
                <version>${micrometer.version}</version>
            </dependency>
            <dependency>
                <groupId>com.tdunning</groupId>
                <artifactId>t-digest</artifactId>
                <version>${t_digest.version}</version>
            </dependency>
            <dependency>
                <groupId>io.prometheus</groupId>
                <artifactId>simpleclient</artifactId>
                <version>${prometheus_client.version}</version>
            </dependency>
            <dependency>
                <groupId>io.prometheus</groupId>
                <artifactId>simpleclient_pushgateway</artifactId>
                <version>${prometheus_client.version}</version>
            </dependency>
            <!-- reactive related dependencies -->
            <dependency>
                <groupId>org.reactivestreams</groupId>
                <artifactId>reactive-streams</artifactId>
                <version>${reactive.version}</version>
            </dependency>
            <dependency>
                <groupId>io.projectreactor</groupId>
                <artifactId>reactor-core</artifactId>
                <version>${reactor.version}</version>
            </dependency>
        </dependencies>
    </dependencyManagement>

    <build>
        <plugins>
            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>flatten-maven-plugin</artifactId>
                <version>${maven_flatten_version}</version>
                <configuration>
                    <updatePomFile>true</updatePomFile>
                    <flattenMode>resolveCiFriendliesOnly</flattenMode>
                </configuration>
                <executions>
                    <execution>
                        <id>flatten</id>
                        <phase>process-resources</phase>
                        <goals>
                            <goal>flatten</goal>
                        </goals>
                    </execution>
                    <execution>
                        <id>flatten.clean</id>
                        <phase>clean</phase>
                        <goals>
                            <goal>clean</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>

    <profiles>
        <profile>
            <id>curator5</id>
            <activation>
                <jdk>[17,)</jdk>
            </activation>
            <properties>
                <zookeeper_version>3.7.0</zookeeper_version>
                <curator_version>5.1.0</curator_version>
            </properties>
        </profile>
        <profile>
            <id>release</id>
            <build>
                <plugins>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-gpg-plugin</artifactId>
                        <executions>
                            <execution>
                                <phase>verify</phase>
                                <goals>
                                    <goal>sign</goal>
                                </goals>
                            </execution>
                        </executions>
                    </plugin>
                </plugins>
            </build>
        </profile>
    </profiles>

</project>
