<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <parent>
        <groupId>cn.herodotus.ecosystem</groupId>
        <artifactId>herodotus-ecosystem-parent</artifactId>
        <version>4.1.0.1</version>
        <relativePath>../herodotus-ecosystem-parent/pom.xml</relativePath>
    </parent>

    <artifactId>herodotus-ecosystem-dependencies</artifactId>
    <packaging>pom</packaging>

    <description>Herodotus Ecosystem Dependencies</description>
    <name>${project.artifactId}</name>

    <url>https://github.com/dante-compass/herodotus-ecosystem-build</url>

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

    <organization>
        <name>Herodotus Software</name>
        <url>https://www.herodotus.cn</url>
    </organization>

    <scm>
        <url>https://github.com/dante-compass/herodotus-ecosystem-build</url>
        <connection>scm:git:git@github.com:dante-compass/herodotus-ecosystem-build.git</connection>
        <developerConnection>scm:git:git@github.com:dante-compass/herodotus-ecosystem-build.git</developerConnection>
    </scm>

    <developers>
        <developer>
            <id>herodotus-ecosystem</id>
            <name>码匠君</name>
            <email>herodotus@aliyun.com</email>
            <organization>Dante Compass</organization>
            <organizationUrl>https://github.com/dante-compass</organizationUrl>
        </developer>
    </developers>

    <properties>
        <java.version>25</java.version>
        <resource.delimiter>@</resource.delimiter>
        <maven.compiler.source>${java.version}</maven.compiler.source>
        <maven.compiler.target>${java.version}</maven.compiler.target>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>

        <!--Application Dependencies-->
        <alipay-sdk-java.version>4.40.852.ALL</alipay-sdk-java.version>
        <animated-gif-lib.version>1.4</animated-gif-lib.version>
        <antisamy.version>1.7.8</antisamy.version>
        <bcpkix-jdk18on.version>1.84</bcpkix-jdk18on.version>
        <bcprov-jdk18on.version>1.84</bcprov-jdk18on.version>
        <commons-collections4.version>4.5.0</commons-collections4.version>
        <commons-fileupload.version>1.6.0</commons-fileupload.version>
        <commons-io.version>2.22.0</commons-io.version>
        <commons-text.version>1.15.0</commons-text.version>
        <fastjson2.version>2.0.62</fastjson2.version>
        <guava.version>33.6.0-jre</guava.version>
        <hutool.version>7.0.0-M6</hutool.version>
        <hypersistence-utils-hibernate-73.version>3.15.3</hypersistence-utils-hibernate-73.version>
        <influxdb3-java.version>1.10.0</influxdb3-java.version>
        <jasypt-spring-boot-starter.version>4.0.4</jasypt-spring-boot-starter.version>
        <jetcache.version>2.8.0.RC</jetcache.version>
        <jsonschema-generator.version>5.0.0</jsonschema-generator.version>
        <json-schema-validator.version>3.0.4</json-schema-validator.version>
        <justauth.verison>2.0.0</justauth.verison>
        <langchain4j.version>1.16.3</langchain4j.version>
        <logstash-logback-encoder.version>9.0</logstash-logback-encoder.version>
        <loki-logback-appender.version>2.0.3</loki-logback-appender.version>
        <!--protobuf 要和当前系统内使用 protobuf 的版本相匹配-->
        <loki-protobuf.version>0.0.2_pb4.33.0</loki-protobuf.version>
        <mybatis.version>3.5.19</mybatis.version>
        <mybatis-plus.version>3.5.16</mybatis-plus.version>
        <mvel2.version>2.5.2.Final</mvel2.version>
        <nacos.version>3.2.2</nacos.version>
        <opengauss-jdbc.version>6.0.3-og</opengauss-jdbc.version>
        <operaton-bpm-spring-boot-starter-rest.version>2.2.0-M1</operaton-bpm-spring-boot-starter-rest.version>
        <org.eclipse.paho.version>1.2.5</org.eclipse.paho.version>
        <p6spy.version>3.9.1</p6spy.version>
        <redisson.version>4.6.1</redisson.version>
        <skywalking.version>9.6.0</skywalking.version>
        <sms4j-spring-boot-starter.version>3.3.5</sms4j-spring-boot-starter.version>
        <software.amazon.awssdk.version>2.46.15</software.amazon.awssdk.version>
        <software.amazon.awssdk.crt.version>0.47.1</software.amazon.awssdk.crt.version>
        <springdoc.version>3.0.3</springdoc.version>
        <spring-ai-bom.version>2.0.0</spring-ai-bom.version>
        <spring-boot-admin-dependencies.version>4.1.1</spring-boot-admin-dependencies.version>
        <spring-cloud-dependencies.version>2025.1.2</spring-cloud-dependencies.version>
        <spring-cloud-alibaba-dependencies.version>2025.1.0.0</spring-cloud-alibaba-dependencies.version>
        <spring-cloud-tencent-dependencies.version>2.1.2.0-2025.0.2-RC1</spring-cloud-tencent-dependencies.version>
        <swagger-core.version>2.2.51</swagger-core.version>
        <transmittable-thread-local.version>2.14.5</transmittable-thread-local.version>
        <weixin-java.version>4.8.4-20260612.150047</weixin-java.version>
        <webauthn4j.version>0.31.7.RELEASE</webauthn4j.version>
        <zxing.version>3.5.4</zxing.version>

        <!--Webjars 主要用于内置基于 thymeleaf 的自定义页面-->
        <bootstrap.version>5.3.8</bootstrap.version>
        <estree-walker.version>3.0.3</estree-walker.version>
        <inter-ui.version>4.1.1</inter-ui.version>
        <jquery.version>3.7.1</jquery.version>
        <mdi__font.version>7.4.47</mdi__font.version>
        <quasar.version>2.20.1</quasar.version>
        <sm-crypto-v2.version>1.15.1</sm-crypto-v2.version>
        <sweetalert2.verison>11.26.25</sweetalert2.verison>
        <tabler.version>1.4.0</tabler.version>
        <vue.version>3.5.38</vue.version>

        <!--以下为特殊处理, 统一依赖的不同版本、处理依赖漏洞等。-->
        <audience-annotations.version>0.15.1</audience-annotations.version>
        <classgraph.version>4.8.184</classgraph.version>
        <dom4j.version>2.2.0</dom4j.version>
        <error_prone_annotations.version>2.50.0</error_prone_annotations.version>
        <HdrHistogram.version>2.2.2</HdrHistogram.version>
        <!--sms4j 依赖 hutool 5，但更新频率低，在此进行统一升级和版本控制-->
        <hutool5.version>5.8.46</hutool5.version>
        <jaxb-api.version>2.3.1</jaxb-api.version>
        <javassist.version>3.31.0-GA</javassist.version>
        <joda-time.version>2.14.2</joda-time.version>
        <!--redisson 依赖 Kryo 版本为 5.6.2，去除版本控制后会变成 4.0.4-->
        <kryo.version>5.6.2</kryo.version>
        <objenesis.version>3.5</objenesis.version>
        <snappy-java.version>1.1.10.8</snappy-java.version>
        <!--fix CVE-2024-51504 -->
        <zookeeper.verison>3.9.5</zookeeper.verison>
    </properties>

    <dependencyManagement>
        <dependencies>
            <!--Imports-->
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-dependencies</artifactId>
                <version>${spring-boot-dependencies.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>${spring-cloud-dependencies.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
            <dependency>
                <groupId>com.alibaba.cloud</groupId>
                <artifactId>spring-cloud-alibaba-dependencies</artifactId>
                <version>${spring-cloud-alibaba-dependencies.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
            <!--如果其他 import 方式的 pom 中存在与当前 dependencies 中相同的版本定义，那么需要将当前 dependencies 中版本控制的 import 放在前面，整个工程中依赖的版本就会以当前 dependencies 中的版本为主-->
            <!--例如：spring-cloud-tencent-dependencies 中也有 springdoc.version 定义，所以本 dependencies 就需要将 springdoc-openapi-bom 放在 spring-cloud-tencent-dependencies 前面-->
            <!--相当于本 dependencies 优先控制了 springdoc 版本，那么 spring-cloud-tencent 也会依赖当前 dependencies 中定义的 springdoc 版本 -->
            <!--相反的，如果 spring-cloud-tencent-dependencies 在前，整个工程就会以 spring-cloud-tencent-dependencies 中定义 springdoc.version 版本为主，当前 dependencies 中定义的 springdoc.version 就会失效-->
            <!--下面的 grpc-bom 也是相同原理-->
            <!--springdoc 需要在 spring-cloud-tencent-dependencies 前面，这样才能以当前 dependencies 中的 springdoc 版本控制为主-->
            <dependency>
                <groupId>org.springdoc</groupId>
                <artifactId>springdoc-openapi-bom</artifactId>
                <version>${springdoc.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
            <dependency>
                <groupId>com.tencent.cloud</groupId>
                <artifactId>spring-cloud-tencent-dependencies</artifactId>
                <version>${spring-cloud-tencent-dependencies.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
            <dependency>
                <groupId>de.codecentric</groupId>
                <artifactId>spring-boot-admin-dependencies</artifactId>
                <version>${spring-boot-admin-dependencies.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
            <dependency>
                <groupId>org.springframework.ai</groupId>
                <artifactId>spring-ai-bom</artifactId>
                <version>${spring-ai-bom.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
            <dependency>
                <groupId>software.amazon.awssdk</groupId>
                <artifactId>bom</artifactId>
                <version>${software.amazon.awssdk.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
            <dependency>
                <groupId>software.amazon.awssdk.crt</groupId>
                <artifactId>aws-crt</artifactId>
                <version>${software.amazon.awssdk.crt.version}</version>
            </dependency>
            <dependency>
                <groupId>cn.hutool.v7</groupId>
                <artifactId>hutool-bom</artifactId>
                <version>${hutool.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
            <dependency>
                <groupId>com.github.victools</groupId>
                <artifactId>jsonschema-generator-bom</artifactId>
                <version>${jsonschema-generator.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
            <dependency>
                <groupId>io.github.openfeign.querydsl</groupId>
                <artifactId>querydsl-bom</artifactId>
                <version>${io.github.openfeign.querydsl.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
            <dependency>
                <groupId>com.baomidou</groupId>
                <artifactId>mybatis-plus-bom</artifactId>
                <version>${mybatis-plus.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
            <dependency>
                <groupId>com.alicp.jetcache</groupId>
                <artifactId>jetcache-bom</artifactId>
                <version>${jetcache.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
            <dependency>
                <groupId>dev.langchain4j</groupId>
                <artifactId>langchain4j-bom</artifactId>
                <version>${langchain4j.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>

            <!--基础依赖-->
            <dependency>
                <groupId>com.alipay.sdk</groupId>
                <artifactId>alipay-sdk-java</artifactId>
                <version>${alipay-sdk-java.version}</version>
            </dependency>
            <dependency>
                <groupId>com.madgag</groupId>
                <artifactId>animated-gif-lib</artifactId>
                <version>${animated-gif-lib.version}</version>
            </dependency>
            <dependency>
                <groupId>org.owasp.antisamy</groupId>
                <artifactId>antisamy</artifactId>
                <version>${antisamy.version}</version>
            </dependency>
            <dependency>
                <groupId>org.bouncycastle</groupId>
                <artifactId>bcpkix-jdk18on</artifactId>
                <version>${bcpkix-jdk18on.version}</version>
            </dependency>
            <dependency>
                <groupId>org.bouncycastle</groupId>
                <artifactId>bcprov-jdk18on</artifactId>
                <version>${bcprov-jdk18on.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.commons</groupId>
                <artifactId>commons-collections4</artifactId>
                <version>${commons-collections4.version}</version>
            </dependency>
            <dependency>
                <groupId>commons-fileupload</groupId>
                <artifactId>commons-fileupload</artifactId>
                <version>${commons-fileupload.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.commons</groupId>
                <artifactId>commons-text</artifactId>
                <version>${commons-text.version}</version>
            </dependency>
            <dependency>
                <groupId>commons-io</groupId>
                <artifactId>commons-io</artifactId>
                <version>${commons-io.version}</version>
            </dependency>
            <dependency>
                <groupId>com.alibaba.fastjson2</groupId>
                <artifactId>fastjson2</artifactId>
                <version>${fastjson2.version}</version>
            </dependency>
            <dependency>
                <groupId>com.alibaba.fastjson2</groupId>
                <artifactId>fastjson2-extension</artifactId>
                <version>${fastjson2.version}</version>
            </dependency>
            <dependency>
                <groupId>com.google.guava</groupId>
                <artifactId>guava</artifactId>
                <version>${guava.version}</version>
            </dependency>
            <dependency>
                <groupId>io.hypersistence</groupId>
                <artifactId>hypersistence-utils-hibernate-73</artifactId>
                <version>${hypersistence-utils-hibernate-73.version}</version>
            </dependency>
            <dependency>
                <groupId>com.influxdb</groupId>
                <artifactId>influxdb3-java</artifactId>
                <version>${influxdb3-java.version}</version>
            </dependency>
            <dependency>
                <groupId>com.github.ulisesbocchio</groupId>
                <artifactId>jasypt-spring-boot-starter</artifactId>
                <version>${jasypt-spring-boot-starter.version}</version>
            </dependency>
            <dependency>
                <groupId>com.networknt</groupId>
                <artifactId>json-schema-validator</artifactId>
                <version>${json-schema-validator.version}</version>
            </dependency>
            <dependency>
                <groupId>cn.herodotus.opensteward</groupId>
                <artifactId>JustAuth</artifactId>
                <version>${justauth.verison}</version>
            </dependency>
            <dependency>
                <groupId>net.logstash.logback</groupId>
                <artifactId>logstash-logback-encoder</artifactId>
                <version>${logstash-logback-encoder.version}</version>
            </dependency>
            <dependency>
                <groupId>com.github.loki4j</groupId>
                <artifactId>loki-logback-appender</artifactId>
                <version>${loki-logback-appender.version}</version>
            </dependency>
            <dependency>
                <groupId>com.github.loki4j</groupId>
                <artifactId>loki-protobuf</artifactId>
                <version>${loki-protobuf.version}</version>
            </dependency>
            <dependency>
                <groupId>org.mybatis</groupId>
                <artifactId>mybatis</artifactId>
                <version>${mybatis.version}</version>
            </dependency>
            <dependency>
                <groupId>org.mvel</groupId>
                <artifactId>mvel2</artifactId>
                <version>${mvel2.version}</version>
            </dependency>
            <dependency>
                <groupId>com.alibaba.nacos</groupId>
                <artifactId>nacos-client</artifactId>
                <version>${nacos.version}</version>
            </dependency>
            <dependency>
                <groupId>org.opengauss</groupId>
                <artifactId>opengauss-jdbc</artifactId>
                <version>${opengauss-jdbc.version}</version>
            </dependency>
            <dependency>
                <groupId>org.operaton.bpm.springboot</groupId>
                <artifactId>operaton-bpm-spring-boot-starter-rest</artifactId>
                <version>${operaton-bpm-spring-boot-starter-rest.version}</version>
            </dependency>
            <dependency>
                <groupId>org.eclipse.paho</groupId>
                <artifactId>org.eclipse.paho.mqttv5.client</artifactId>
                <version>${org.eclipse.paho.version}</version>
            </dependency>
            <dependency>
                <groupId>p6spy</groupId>
                <artifactId>p6spy</artifactId>
                <version>${p6spy.version}</version>
            </dependency>
            <dependency>
                <groupId>org.redisson</groupId>
                <artifactId>redisson</artifactId>
                <version>${redisson.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.skywalking</groupId>
                <artifactId>apm-toolkit-logback-1.x</artifactId>
                <version>${skywalking.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.skywalking</groupId>
                <artifactId>apm-toolkit-trace</artifactId>
                <version>${skywalking.version}</version>
            </dependency>
            <dependency>
                <groupId>org.dromara.sms4j</groupId>
                <artifactId>sms4j-spring-boot-starter</artifactId>
                <version>${sms4j-spring-boot-starter.version}</version>
            </dependency>
            <dependency>
                <groupId>io.swagger.core.v3</groupId>
                <artifactId>swagger-core-jakarta</artifactId>
                <version>${swagger-core.version}</version>
            </dependency>
            <dependency>
                <groupId>com.alibaba</groupId>
                <artifactId>transmittable-thread-local</artifactId>
                <version>${transmittable-thread-local.version}</version>
            </dependency>
            <dependency>
                <groupId>com.github.binarywang</groupId>
                <artifactId>weixin-java-miniapp</artifactId>
                <version>${weixin-java.version}</version>
            </dependency>
            <dependency>
                <groupId>com.github.binarywang</groupId>
                <artifactId>weixin-java-mp</artifactId>
                <version>${weixin-java.version}</version>
            </dependency>
            <dependency>
                <groupId>com.github.binarywang</groupId>
                <artifactId>weixin-java-pay</artifactId>
                <version>${weixin-java.version}</version>
            </dependency>
            <dependency>
                <groupId>com.webauthn4j</groupId>
                <artifactId>webauthn4j-core</artifactId>
                <version>${webauthn4j.version}</version>
            </dependency>
            <dependency>
                <groupId>com.google.zxing</groupId>
                <artifactId>core</artifactId>
                <version>${zxing.version}</version>
            </dependency>

            <!--Webjars 主要用于内置基于 thymeleaf 的自定义页面-->
            <dependency>
                <groupId>org.webjars.npm</groupId>
                <artifactId>bootstrap</artifactId>
                <version>${bootstrap.version}</version>
            </dependency>
            <dependency>
                <groupId>org.webjars.npm</groupId>
                <artifactId>inter-ui</artifactId>
                <version>${inter-ui.version}</version>
            </dependency>
            <dependency>
                <groupId>org.webjars.npm</groupId>
                <artifactId>jquery</artifactId>
                <version>${jquery.version}</version>
            </dependency>
            <dependency>
                <groupId>org.webjars.npm</groupId>
                <artifactId>mdi__font</artifactId>
                <version>${mdi__font.version}</version>
            </dependency>
            <dependency>
                <groupId>org.webjars.npm</groupId>
                <artifactId>quasar</artifactId>
                <version>${quasar.version}</version>
            </dependency>
            <dependency>
                <groupId>org.webjars.npm</groupId>
                <artifactId>sm-crypto-v2</artifactId>
                <version>${sm-crypto-v2.version}</version>
            </dependency>
            <dependency>
                <groupId>org.webjars.npm</groupId>
                <artifactId>sweetalert2</artifactId>
                <version>${sweetalert2.verison}</version>
            </dependency>
            <dependency>
                <groupId>org.webjars.npm</groupId>
                <artifactId>tabler__core</artifactId>
                <version>${tabler.version}</version>
            </dependency>
            <dependency>
                <groupId>org.webjars.npm</groupId>
                <artifactId>vue</artifactId>
                <version>${vue.version}</version>
            </dependency>
            <dependency>
                <groupId>org.webjars.npm</groupId>
                <artifactId>estree-walker</artifactId>
                <version>${estree-walker.version}</version>
            </dependency>

            <!--以下为特殊处理, 统一版本处理漏洞等-->
            <!--fastjson 1.x 兼容包，不保证 100% 兼容-->
            <dependency>
                <groupId>com.alibaba</groupId>
                <artifactId>fastjson</artifactId>
                <version>${fastjson2.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.yetus</groupId>
                <artifactId>audience-annotations</artifactId>
                <version>${audience-annotations.version}</version>
            </dependency>
            <!--统一控制classgraph版本，去除大量重复版本依赖-->
            <dependency>
                <groupId>io.github.classgraph</groupId>
                <artifactId>classgraph</artifactId>
                <version>${classgraph.version}</version>
            </dependency>
            <dependency>
                <groupId>org.dom4j</groupId>
                <artifactId>dom4j</artifactId>
                <version>${dom4j.version}</version>
            </dependency>
            <!--统一控制error_prone_annotations版本，去除大量重复版本依赖-->
            <dependency>
                <groupId>com.google.errorprone</groupId>
                <artifactId>error_prone_annotations</artifactId>
                <version>${error_prone_annotations.version}</version>
            </dependency>
            <!--统一控制HdrHistogram版本，去除大量重复版本依赖-->
            <dependency>
                <groupId>org.hdrhistogram</groupId>
                <artifactId>HdrHistogram</artifactId>
                <version>${HdrHistogram.version}</version>
            </dependency>
            <dependency>
                <groupId>cn.hutool</groupId>
                <artifactId>hutool-bom</artifactId>
                <version>${hutool5.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
            <!--统一控制jaxb-api版本，去除大量重复版本依赖-->
            <dependency>
                <groupId>javax.xml.bind</groupId>
                <artifactId>jaxb-api</artifactId>
                <version>${jaxb-api.version}</version>
            </dependency>
            <!--统一控制javassist版本，去除大量重复版本依赖-->
            <dependency>
                <groupId>org.javassist</groupId>
                <artifactId>javassist</artifactId>
                <version>${javassist.version}</version>
            </dependency>
            <!--统一控制joda-time版本，去除重复版本依赖-->
            <dependency>
                <groupId>joda-time</groupId>
                <artifactId>joda-time</artifactId>
                <version>${joda-time.version}</version>
            </dependency>
            <!--统一控制kryo版本，减少不必要的低版本组件引入-->
            <dependency>
                <groupId>com.esotericsoftware</groupId>
                <artifactId>kryo</artifactId>
                <version>${kryo.version}</version>
            </dependency>
            <!--统一控制objenesis版本，去除重复版本依赖-->
            <dependency>
                <groupId>org.objenesis</groupId>
                <artifactId>objenesis</artifactId>
                <version>${objenesis.version}</version>
            </dependency>
            <dependency>
                <groupId>org.xerial.snappy</groupId>
                <artifactId>snappy-java</artifactId>
                <version>${snappy-java.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.zookeeper</groupId>
                <artifactId>zookeeper</artifactId>
                <version>${zookeeper.verison}</version>
            </dependency>
        </dependencies>
    </dependencyManagement>
</project>