<?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>
    <!-- 22-Mar-2019, tatu: 3.0+ extends `oss-parent` directly, skips (now) obsolete
        `jackson-parent` completely
      -->
    <groupId>com.fasterxml</groupId>
    <artifactId>oss-parent</artifactId>
    <version>79</version>
  </parent>

  <groupId>tools.jackson</groupId>
  <artifactId>jackson-bom</artifactId>
  <name>Jackson BOM</name>
  <description>Bill of Materials pom for getting full, complete set of compatible versions
of Jackson 3.x components maintained by FasterXML.com
  </description>
  <version>3.1.2</version>
  <packaging>pom</packaging>

  <modules>
   <module>base</module> <!-- "It's all about that base 'bout that base..." -->
  </modules>

  <organization>
    <name>FasterXML</name>
    <url>http://fasterxml.com/</url>
  </organization>
  <licenses>
    <license>
      <name>Apache License, Version 2.0</name>
      <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
      <distribution>repo</distribution>
    </license>
  </licenses>
  <developers>
    <developer>
      <id>cowtowncoder</id>
      <name>Tatu Saloranta</name>
      <email>tatu@fasterxml.com</email>
    </developer>
  </developers>

  <url>https://github.com/FasterXML/jackson-bom</url>
  <scm>
    <connection>scm:git:git@github.com:FasterXML/jackson-bom.git</connection>
    <developerConnection>scm:git:git@github.com:FasterXML/jackson-bom.git</developerConnection>
    <url>http://github.com/FasterXML/jackson-bom</url>
    <tag>jackson-bom-3.1.2</tag>
  </scm>

  <properties>
    <jackson.version>3.1.2</jackson.version>

    <!-- 10-Jul-2025, tatu: as per [JSTEP-1] Jackson 3.x will NOT contain
	 separate annotations module, but keep using 2.x one, latest 2.x released
         at the time 3.x minor version is released.
      -->
    <jackson.version.annotations>2.21</jackson.version.annotations>

    <jackson.version.core>${jackson.version}</jackson.version.core>
    <jackson.version.databind>${jackson.version}</jackson.version.databind>
    <jackson.version.dataformat>${jackson.version}</jackson.version.dataformat>
    <jackson.version.datatype>${jackson.version}</jackson.version.datatype>
    <jackson.version.jaxrs>${jackson.version}</jackson.version.jaxrs>
    <jackson.version.jakarta.rs>${jackson.version}</jackson.version.jakarta.rs>
    <jackson.version.jacksonjr>${jackson.version}</jackson.version.jacksonjr>

    <jackson.version.module>${jackson.version}</jackson.version.module>
    <jackson.version.module.kotlin>${jackson.version.module}</jackson.version.module.kotlin>
    <jackson.version.module.scala>${jackson.version.module}</jackson.version.module.scala>

    <!-- 3rd party dependency version properties (not managed!) -->
    <jackson.version.dep.woodstox>7.1.1</jackson.version.dep.woodstox>
    <jackson.version.dep.stax2-api>4.2.2</jackson.version.dep.stax2-api>

    <!-- for Reproducible Builds -->
    <project.build.outputTimestamp>2026-04-11T17:16:28Z</project.build.outputTimestamp>
  </properties>

  <distributionManagement>
    <!-- 13-May-2025, tatu: Moving to Central Portal-->
    <repository>
      <id>central</id>
      <name>Sonatype Central Portal Repository (releases)</name>
      <url>https://central.sonatype.com/api/v1/publisher</url>
    </repository>
    <snapshotRepository>
      <id>central-snapshots</id>
      <name>Sonatype Central Portal Repository (snapshots)</name>
      <url>https://central.sonatype.com/repository/maven-snapshots</url>
    </snapshotRepository>
  </distributionManagement>

  <dependencyManagement>
    <dependencies>

      <!-- Core -->

      <!-- 13-Jul-2022, tatu: NOTE! There is one notable exception to renaming
           of packages between Jackson 2.x and 3.0: there is no 3.x version
           of annotations and instead latest 2.x is used instead.
            Hence "old" group id `com.fasterxml.jackson.core`
	-->
      <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-annotations</artifactId>
        <version>${jackson.version.annotations}</version>
      </dependency>
      <dependency>
        <groupId>tools.jackson.core</groupId>
        <artifactId>jackson-core</artifactId>
        <version>${jackson.version.core}</version>
      </dependency>
      <dependency>
        <groupId>tools.jackson.core</groupId>
        <artifactId>jackson-databind</artifactId>
        <version>${jackson.version.databind}</version>
      </dependency>

      <!-- Data Formats -->
      <dependency>
        <groupId>tools.jackson.dataformat</groupId>
        <artifactId>jackson-dataformat-avro</artifactId>
        <version>${jackson.version.dataformat}</version>
      </dependency>
      <dependency>
        <groupId>tools.jackson.dataformat</groupId>
        <artifactId>jackson-dataformat-cbor</artifactId>
        <version>${jackson.version.dataformat}</version>
      </dependency>
      <dependency>
        <groupId>tools.jackson.dataformat</groupId>
        <artifactId>jackson-dataformat-csv</artifactId>
        <version>${jackson.version.dataformat}</version>
      </dependency>
      <dependency>
        <groupId>tools.jackson.dataformat</groupId>
        <artifactId>jackson-dataformat-ion</artifactId>
        <version>${jackson.version.dataformat}</version>
      </dependency>
      <dependency>
        <groupId>tools.jackson.dataformat</groupId>
        <artifactId>jackson-dataformat-properties</artifactId>
        <version>${jackson.version.dataformat}</version>
      </dependency>
      <dependency>
        <groupId>tools.jackson.dataformat</groupId>
        <artifactId>jackson-dataformat-protobuf</artifactId>
        <version>${jackson.version.dataformat}</version>
      </dependency>
      <dependency>
        <groupId>tools.jackson.dataformat</groupId>
        <artifactId>jackson-dataformat-smile</artifactId>
        <version>${jackson.version.dataformat}</version>
      </dependency>
      <dependency>
        <groupId>tools.jackson.dataformat</groupId>
        <artifactId>jackson-dataformat-toml</artifactId>
        <version>${jackson.version.dataformat}</version>
      </dependency>
      <dependency>
        <groupId>tools.jackson.dataformat</groupId>
        <artifactId>jackson-dataformat-xml</artifactId>
        <version>${jackson.version.dataformat}</version>
      </dependency>
      <dependency>
        <groupId>tools.jackson.dataformat</groupId>
        <artifactId>jackson-dataformat-yaml</artifactId>
        <version>${jackson.version.dataformat}</version>
      </dependency>

      <!-- Data Types -->
      <dependency>
        <groupId>tools.jackson.datatype</groupId>
        <artifactId>jackson-datatype-eclipse-collections</artifactId>
        <version>${jackson.version.datatype}</version>
      </dependency>
      <dependency>
        <groupId>tools.jackson.datatype</groupId>
        <artifactId>jackson-datatype-guava</artifactId>
        <version>${jackson.version.datatype}</version>
      </dependency>

      <!-- 05-Nov-2025, tatu: Hibernate modules now converted to 3.0 -->
      <dependency>
        <groupId>tools.jackson.datatype</groupId>
        <artifactId>jackson-datatype-hibernate4</artifactId>
        <version>${jackson.version.datatype}</version>
      </dependency>
      <dependency>
        <groupId>tools.jackson.datatype</groupId>
        <artifactId>jackson-datatype-hibernate5</artifactId>
        <version>${jackson.version.datatype}</version>
      </dependency>
      <dependency>
        <groupId>tools.jackson.datatype</groupId>
        <artifactId>jackson-datatype-hibernate5-jakarta</artifactId>
        <version>${jackson.version.datatype}</version>
      </dependency>
      <dependency>
        <groupId>tools.jackson.datatype</groupId>
        <artifactId>jackson-datatype-hibernate6</artifactId>
        <version>${jackson.version.datatype}</version>
      </dependency>
      <dependency>
        <groupId>tools.jackson.datatype</groupId>
        <artifactId>jackson-datatype-hibernate7</artifactId>
        <version>${jackson.version.datatype}</version>
      </dependency>

      <dependency>
        <groupId>tools.jackson.datatype</groupId>
        <artifactId>jackson-datatype-hppc</artifactId>
        <version>${jackson.version.datatype}</version>
      </dependency>
      <dependency>
        <groupId>tools.jackson.datatype</groupId>
        <artifactId>jackson-datatype-javax-money</artifactId>
        <version>${jackson.version.datatype}</version>
      </dependency>
      <dependency>
        <groupId>tools.jackson.datatype</groupId>
        <artifactId>jackson-datatype-jakarta-jsonp</artifactId>
        <version>${jackson.version.datatype}</version>
      </dependency>
      <dependency>
        <groupId>tools.jackson.datatype</groupId>
        <artifactId>jackson-datatype-jaxrs</artifactId>
        <!-- Should this follow datatype or JAX-RS version info?
          -->
        <version>${jackson.version.datatype}</version>
      </dependency>
      <!-- 19-Mar-2025, tatu: Merged into jackson-databind for Jackson 3.0
      <dependency>
        <groupId>tools.jackson.datatype</groupId>
        <artifactId>jackson-datatype-jdk8</artifactId>
        <version>${jackson.version.datatype}</version>
      </dependency>
      -->
      <dependency>
        <groupId>tools.jackson.datatype</groupId>
        <artifactId>jackson-datatype-joda</artifactId>
        <version>${jackson.version.datatype}</version>
      </dependency>
      <dependency>
        <groupId>tools.jackson.datatype</groupId>
        <artifactId>jackson-datatype-joda-money</artifactId>
        <version>${jackson.version.datatype}</version>
      </dependency>
      <dependency>
        <groupId>tools.jackson.datatype</groupId>
        <artifactId>jackson-datatype-json-org</artifactId>
        <version>${jackson.version.datatype}</version>
      </dependency>
      <!-- 19-Mar-2025, tatu: Merged into jackson-databind for Jackson 3.0 
      <dependency>
        <groupId>tools.jackson.datatype</groupId>
        <artifactId>jackson-datatype-jsr310</artifactId>
        <version>${jackson.version.datatype}</version>
      </dependency>
      -->
      <dependency>
        <groupId>tools.jackson.datatype</groupId>
        <artifactId>jackson-datatype-jsr353</artifactId>
        <version>${jackson.version.datatype}</version>
      </dependency>
      <dependency> <!-- Java Money RI: -->
        <groupId>tools.jackson.datatype</groupId>
        <artifactId>jackson-datatype-moneta</artifactId>
        <version>${jackson.version.datatype}</version>
      </dependency>
      <dependency>
        <groupId>tools.jackson.datatype</groupId>
        <artifactId>jackson-datatype-pcollections</artifactId>
        <version>${jackson.version.datatype}</version>
      </dependency>

      <!-- JAX-RS -->
      <dependency>
        <groupId>tools.jackson.jaxrs</groupId>
        <artifactId>jackson-jaxrs-base</artifactId>
        <version>${jackson.version.jaxrs}</version>
      </dependency>
      <dependency>
        <groupId>tools.jackson.jaxrs</groupId>
        <artifactId>jackson-jaxrs-cbor-provider</artifactId>
        <version>${jackson.version.jaxrs}</version>
      </dependency>
      <dependency>
        <groupId>tools.jackson.jaxrs</groupId>
        <artifactId>jackson-jaxrs-json-provider</artifactId>
        <version>${jackson.version.jaxrs}</version>
      </dependency>
      <dependency>
        <groupId>tools.jackson.jaxrs</groupId>
        <artifactId>jackson-jaxrs-smile-provider</artifactId>
        <version>${jackson.version.jaxrs}</version>
      </dependency>
      <dependency>
        <groupId>tools.jackson.jaxrs</groupId>
        <artifactId>jackson-jaxrs-xml-provider</artifactId>
        <version>${jackson.version.jaxrs}</version>
      </dependency>
      <dependency>
        <groupId>tools.jackson.jaxrs</groupId>
        <artifactId>jackson-jaxrs-yaml-provider</artifactId>
        <version>${jackson.version.jaxrs}</version>
      </dependency>

      <!-- Jakarta-RS (2.13+) -->
      <dependency>
        <groupId>tools.jackson.jakarta.rs</groupId>
        <artifactId>jackson-jakarta-rs-base</artifactId>
        <version>${jackson.version.jakarta.rs}</version>
      </dependency>
      <dependency>
        <groupId>tools.jackson.jakarta.rs</groupId>
        <artifactId>jackson-jakarta-rs-cbor-provider</artifactId>
        <version>${jackson.version.jakarta.rs}</version>
      </dependency>
      <dependency>
        <groupId>tools.jackson.jakarta.rs</groupId>
        <artifactId>jackson-jakarta-rs-json-provider</artifactId>
        <version>${jackson.version.jakarta.rs}</version>
      </dependency>
      <dependency>
        <groupId>tools.jackson.jakarta.rs</groupId>
        <artifactId>jackson-jakarta-rs-smile-provider</artifactId>
        <version>${jackson.version.jakarta.rs}</version>
      </dependency>
      <dependency>
        <groupId>tools.jackson.jakarta.rs</groupId>
        <artifactId>jackson-jakarta-rs-xml-provider</artifactId>
        <version>${jackson.version.jakarta.rs}</version>
      </dependency>
      <dependency>
        <groupId>tools.jackson.jakarta.rs</groupId>
        <artifactId>jackson-jakarta-rs-yaml-provider</artifactId>
        <version>${jackson.version.jakarta.rs}</version>
      </dependency>

      <!-- Jackson Jr. -->
      <dependency>
        <groupId>tools.jackson.jr</groupId>
        <artifactId>jackson-jr-all</artifactId>
        <version>${jackson.version.jacksonjr}</version>
      </dependency>
      <dependency>
        <groupId>tools.jackson.jr</groupId>
        <artifactId>jackson-jr-annotation-support</artifactId>
        <version>${jackson.version.jacksonjr}</version>
      </dependency>
      <dependency>
        <groupId>tools.jackson.jr</groupId>
        <artifactId>jackson-jr-extension-javatime</artifactId>
        <version>${jackson.version.jacksonjr}</version>
      </dependency>
      <dependency>
        <groupId>tools.jackson.jr</groupId>
        <artifactId>jackson-jr-objects</artifactId>
        <version>${jackson.version.jacksonjr}</version>
      </dependency>
      <dependency>
        <groupId>tools.jackson.jr</groupId>
        <artifactId>jackson-jr-retrofit2</artifactId>
        <version>${jackson.version.jacksonjr}</version>
      </dependency>
      <dependency>
        <groupId>tools.jackson.jr</groupId>
        <artifactId>jackson-jr-stree</artifactId>
        <version>${jackson.version.jacksonjr}</version>
      </dependency>

      <!-- Modules, basic -->
      <dependency>
        <groupId>tools.jackson.module</groupId>
        <artifactId>jackson-module-afterburner</artifactId>
        <version>${jackson.version.module}</version>
      </dependency>
      <dependency>
        <groupId>tools.jackson.module</groupId>
        <artifactId>jackson-module-android-record</artifactId>
        <version>${jackson.version.module}</version>
      </dependency>
      <dependency>
        <groupId>tools.jackson.module</groupId>
        <artifactId>jackson-module-blackbird</artifactId>
        <version>${jackson.version.module}</version>
      </dependency>
      <dependency>
        <groupId>tools.jackson.module</groupId>
        <artifactId>jackson-module-guice</artifactId>
        <version>${jackson.version.module}</version>
      </dependency>
      <dependency>
        <groupId>tools.jackson.module</groupId>
        <artifactId>jackson-module-guice7</artifactId>
        <version>${jackson.version.module}</version>
      </dependency>
      <dependency>
        <groupId>tools.jackson.module</groupId>
        <artifactId>jackson-module-jaxb-annotations</artifactId>
        <version>${jackson.version.module}</version>
      </dependency>
      <dependency>
        <groupId>tools.jackson.module</groupId>
        <artifactId>jackson-module-jakarta-xmlbind-annotations</artifactId>
        <version>${jackson.version.module}</version>
      </dependency>

      <!-- 20-Jan-2026, tatu: These two are back in Jackson 3.1 (dropped in 3.0) -->
      <dependency>
        <groupId>tools.jackson.module</groupId>
        <artifactId>jackson-module-jsonSchema</artifactId>
        <version>${jackson.version.module}</version>
      </dependency>
      <dependency>
        <groupId>tools.jackson.module</groupId>
        <artifactId>jackson-module-jsonSchema-jakarta</artifactId>
        <version>${jackson.version.module}</version>
      </dependency>

      <dependency>
        <groupId>tools.jackson.module</groupId>
        <artifactId>jackson-module-kotlin</artifactId>
        <version>${jackson.version.module.kotlin}</version>
      </dependency>
      <dependency>
        <groupId>tools.jackson.module</groupId>
        <artifactId>jackson-module-mrbean</artifactId>
        <version>${jackson.version.module}</version>
      </dependency>
      <dependency>
        <groupId>tools.jackson.module</groupId>
        <artifactId>jackson-module-no-ctor-deser</artifactId>
        <version>${jackson.version.module}</version>
      </dependency>
      <dependency>
        <groupId>tools.jackson.module</groupId>
        <artifactId>jackson-module-osgi</artifactId>
        <version>${jackson.version.module}</version>
      </dependency>

      <!-- 19-Mar-2025, tatu: Merged into jackson-databind for Jackson 3.0
      <dependency>
        <groupId>tools.jackson.module</groupId>
        <artifactId>jackson-module-parameter-names</artifactId>
        <version>${jackson.version.module}</version>
      </dependency>
      -->

      <!-- Language Modules -->

      <!-- Scala 2.11 support is dropped for Jackson 3.0
      <dependency>
        <groupId>tools.jackson.module</groupId>
        <artifactId>jackson-module-scala_2.11</artifactId>
        <version>${jackson.version.module.scala}</version>
      </dependency>
      -->
      <dependency>
        <groupId>tools.jackson.module</groupId>
        <artifactId>jackson-module-scala_2.12</artifactId>
        <version>${jackson.version.module.scala}</version>
      </dependency>
      <dependency>
        <groupId>tools.jackson.module</groupId>
        <artifactId>jackson-module-scala_2.13</artifactId>
        <version>${jackson.version.module.scala}</version>
      </dependency>
      <dependency>
        <groupId>tools.jackson.module</groupId>
        <artifactId>jackson-module-scala_3</artifactId>
        <version>${jackson.version.module.scala}</version>
      </dependency>

      <!-- No managed 3rd-party dependencies -->
    </dependencies>
  </dependencyManagement>

  <!-- Alas, need to include snapshot reference since otherwise can not find
       snapshot of parent... -->
  <repositories>
    <!-- 13-May-2025, tatu: and now moving to Central Portal -->
    <repository>
      <id>central-snapshots</id>
      <name>Sonatype Central Portal (snapshots)</name>
      <url>https://central.sonatype.com/repository/maven-snapshots</url>
      <releases><enabled>false</enabled></releases>
      <snapshots><enabled>true</enabled></snapshots>
    </repository>
  </repositories>

  <build>
    <plugins>
        <!-- 22-May-2025: cannot use defaults form 'base/pom.xml' so duplicated
            here for now
          -->
        <plugin>
          <groupId>org.sonatype.central</groupId>
          <artifactId>central-publishing-maven-plugin</artifactId>
          <extensions>true</extensions>
          <configuration>
            <deploymentName>Deployment-${project.artifactId}</deploymentName>
            <publishingServerId>central</publishingServerId>
          </configuration>
        </plugin>

    </plugins>
  </build>
</project>
