<?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">
  <!-- This module was also published with a richer model, Gradle metadata,  -->
  <!-- which should be used instead. Do not delete the following line which  -->
  <!-- is to indicate to Gradle or any Gradle module metadata file consumer  -->
  <!-- that they should prefer consuming it instead. -->
  <!-- do_not_remove: published-with-gradle-metadata -->
  <modelVersion>4.0.0</modelVersion> 
  <parent>
    <groupId>com.fasterxml.jackson</groupId>
    <!-- this is one of few Jackson modules that depends on parent and NOT jackson-bom -->
    <artifactId>jackson-parent</artifactId>
    <version>2.21</version>
  </parent>

  <groupId>com.fasterxml.jackson.core</groupId>
  <artifactId>jackson-annotations</artifactId>
  <name>Jackson-annotations</name>
  <version>2.21</version>
  <packaging>jar</packaging>
  <description>Core annotations used for value types, used by Jackson data binding package.
  </description>
  <inceptionYear>2008</inceptionYear>
  <licenses>
    <license>
      <name>The Apache Software License, Version 2.0</name>
      <url>https://www.apache.org/licenses/LICENSE-2.0.txt</url>
      <distribution>repo</distribution>
    </license>
  </licenses>

  <url>https://github.com/FasterXML/jackson</url>
  <scm>
    <connection>scm:git:git@github.com:FasterXML/jackson-annotations.git</connection>
    <developerConnection>scm:git:git@github.com:FasterXML/jackson-annotations.git</developerConnection>
    <url>https://github.com/FasterXML/jackson-annotations</url>
    <tag>jackson-annotations-2.21</tag>
  </scm>

  <properties>
    <!-- 04-Mar-2019, tatu: Retain Java6/JDK1.6 compatibility for annotations for Jackson 2.x,
             but use Moditect to get JDK9+ module info support; need newer bundle plugin as well
    -->
    <!-- 10-Jul-2025, tatu: Time to move on; leave at defaults for Java/JDK 8
      -->
    <osgi.export>com.fasterxml.jackson.annotation.*;version=${project.version}</osgi.export>

    <!-- for Reproducible Builds -->
    <project.build.outputTimestamp>2026-01-18T22:46:46Z</project.build.outputTimestamp>
  </properties>

  <dependencies>
      <dependency>
        <groupId>org.junit.jupiter</groupId>
        <artifactId>junit-jupiter</artifactId>
        <version>${version.junit5}</version>
        <scope>test</scope>
    </dependency>
  </dependencies>

  <!-- Alas, need to include snapshot reference since otherwise can not find
       snapshot of parent... -->
  <repositories>
    <!-- 26-May-2025, tatu: Using Sonatype Central Portal, will need this -->
    <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>
      <!-- First: no replacer plugin (no Packaversion.java.in) for this package -->

      <!-- 28-Apr-2025, tatu: Will get these settings from `jackson-bom` in 3.x but
	     2.x does not extend it so...
        -->
      <plugin>
          <groupId>org.cyclonedx</groupId>
          <artifactId>cyclonedx-maven-plugin</artifactId>
          <configuration>
            <classifier>sbom-cyclonedx</classifier>
            <!-- 16-Nov-2025, tatu: Should not skip because new Deploy mechanism
                   `central-publishing-maven-plugin` NOT consider "deploy" apparently
              -->
            <skipNotDeployed>false</skipNotDeployed>
          </configuration>
          <executions>
            <execution>
              <phase>package</phase>
              <goals><goal>makeBom</goal></goals>
            </execution>
          </executions>
      </plugin>

      <plugin>
        <!-- 08-Mar-2019, tatu: Would get these settings from `jackson-bom` except we 
              do not extend it (in 2.x) so...
          -->
        <groupId>org.moditect</groupId>
        <artifactId>moditect-maven-plugin</artifactId>
        <executions>
          <execution>
            <id>add-module-infos</id>
            <phase>package</phase>
            <goals>
              <goal>add-module-info</goal>
            </goals>
            <configuration>
              <overwriteExistingFiles>true</overwriteExistingFiles>
              <module>
                <moduleInfoFile>src/moditect/module-info.java</moduleInfoFile>
              </module>
            </configuration>
          </execution>
        </executions>
      </plugin>

      <!-- 26-May-2025: Enable Sonatype Central Portal publishing -->
      <plugin>
        <groupId>org.sonatype.central</groupId>
        <artifactId>central-publishing-maven-plugin</artifactId>
      </plugin>

      <!-- 20-Oct-2020, tatu: [annotations#178] copy full LICENSE from main dir
        -->
      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>build-helper-maven-plugin</artifactId>
        <executions>
          <execution>
            <id>add-resource</id>
            <phase>generate-resources</phase>
            <goals>
              <goal>add-resource</goal>
            </goals>
            <configuration>
              <resources>
                <resource>
                  <directory>${project.basedir}</directory>
                  <targetPath>META-INF</targetPath>
                  <includes>
                    <include>LICENSE</include>
                  </includes>
                </resource>
              </resources>
            </configuration>
          </execution>
        </executions>
      </plugin>

      <!-- 27-Nov-2022, tatu: Since we don't get defaults from "jackson-base"
	     need to configure Felix-bundle/Maven-jar plugins wrt Reproducible Build
	-->
      <plugin>
        <groupId>org.apache.felix</groupId>
        <artifactId>maven-bundle-plugin</artifactId>
        <executions>
          <execution>
            <id>bundle-manifest</id>
            <phase>process-classes</phase>
            <goals>
              <goal>manifest</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-jar-plugin</artifactId>
        <configuration>
          <archive>
            <manifestFile>${project.build.outputDirectory}/META-INF/MANIFEST.MF</manifestFile>
          </archive>
        </configuration>
      </plugin>

      <!-- 11-Jun-2020, tatu: [annotations#173] add gradle module metadata -->
      <!-- 28-Feb-2025, jjohannes: Apply plugin last as it has to be the last of all 'package phase' plugins -->
      <plugin>
        <groupId>org.gradlex</groupId>
        <artifactId>gradle-module-metadata-maven-plugin</artifactId>
        <version>1.0</version>
        <executions>
          <execution>
            <goals>
              <goal>gmm</goal>
            </goals>
          </execution>
        </executions>
        <!-- 15-Jul-2025, tatu: With annotations 2.x used for both 2.x AND
               3.x should not try to force alignment
          -->
      </plugin>
    </plugins>
  </build>

</project>
