<?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>tools.jackson</groupId>
    <!-- In 3.0+, extends `jackson-base` just like all other components; 2.x did not -->
    <artifactId>jackson-base</artifactId>
    <version>3.0.0-rc2</version>
  </parent>

  <groupId>com.fasterxml.jackson.core</groupId>
  <artifactId>jackson-annotations</artifactId>
  <name>Jackson-annotations</name>
  <version>3.0-rc2</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>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
      <distribution>repo</distribution>
    </license>
  </licenses>

  <url>http://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>http://github.com/FasterXML/jackson-annotations</url>
    <tag>jackson-annotations-3.0-rc2</tag>
  </scm>

  <properties>
    <!-- 11-Jan-2025, tatu: [annotations#272] JDK 17 for Jackson 3.x
          (up from Jackson 2.x Java 1.6 baseline for annotations)
      -->
    <javac.src.version>17</javac.src.version>
    <javac.target.version>17</javac.target.version>
    
    <osgi.export>com.fasterxml.jackson.annotation.*;version=${project.version}</osgi.export>

    <!-- 11-Jun-2020, tatu: Mismatch between jackson-bom, annotations versions
           need to override, no easy way to just "drop the patch level".. and although
https://stackoverflow.com/questions/16302247/maven-property-project-artifact-selectedversion-majorversion
           shows a possible to get major, minor version and even qualifier, not sure if that'd
           be easy enough to make work with SNAPSHOT/release change.
      -->
    <!-- 08-Mar-2025, tatu: This will be a problem... so easy to forget to update.
	   Already happened with 3.0 -rc1 where dependency was left as -SNAPSHOT
      -->
    <bom4gmm.version>3.0.0-rc2</bom4gmm.version>

    <!-- for Reproducible Builds -->
    <project.build.outputTimestamp>2025-03-28T22:32:44Z</project.build.outputTimestamp>
  </properties>

  <dependencies>
    <dependency>
      <groupId>org.junit.jupiter</groupId>
      <artifactId>junit-jupiter</artifactId>
      <scope>test</scope>
    </dependency>
  </dependencies>

  <!-- Alas, need to include snapshot reference since otherwise can not find
       snapshot of parent... -->
  <!-- 13-Jul-2022, tatu: This gets tricky; we need to publish via OLD repo, as per
         here, but resolve dependency of "jackson-base" from the NEW repo.
    -->
  <distributionManagement>
    <snapshotRepository>
      <id>sonatype-nexus-snapshots</id>
      <name>Sonatype Nexus Snapshots</name>
      <url>https://oss.sonatype.org/content/repositories/snapshots</url>
    </snapshotRepository>
    <repository>
      <id>sonatype-nexus-staging</id>
      <name>Nexus Release Repository</name>
      <url>https://oss.sonatype.org/service/local/staging/deploy/maven2/</url>
    </repository>
  </distributionManagement>

  <!-- ... so this is the new repo to get "jackson-base"
    -->
  <repositories>
    <repository>
      <id>sonatype-nexus-new-snapshots</id>
      <name>Sonatype Nexus Snapshots</name>
      <url>https://s01.oss.sonatype.org/content/repositories/snapshots</url>
      <releases><enabled>false</enabled></releases>
      <snapshots><enabled>true</enabled></snapshots>
    </repository>
  </repositories>

  <build>
    <plugins>
      <!-- 08-Nov-2019, tatu: Copied from
           https://github.com/stephenc/git-timestamp-maven-plugin/blob/master/pom.xml#L327-L337
         -->
      <plugin>
        <groupId>org.sonatype.plugins</groupId>
        <artifactId>nexus-staging-maven-plugin</artifactId>
        <version>1.7.0</version>
        <extensions>true</extensions>
        <configuration>
          <serverId>sonatype-nexus-staging</serverId>
          <nexusUrl>https://oss.sonatype.org/</nexusUrl>
	  <!-- 07-Mar-2025, tatu: NOTE! "OLD" staging profile since we are
                still under "com.fasterxml" unlike all other components
            -->
          <stagingProfileId>b34f19b9cc6224</stagingProfileId>
        </configuration>
      </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>
        <executions>
          <execution>
            <goals>
              <goal>gmm</goal>
            </goals>
          </execution>
        </executions>
        <configuration>
          <platformDependencies>
            <dependency>
              <groupId>com.fasterxml.jackson</groupId>
              <artifactId>jackson-bom</artifactId>
              <version>${bom4gmm.version}</version>
            </dependency>
          </platformDependencies>
        </configuration>
      </plugin>
    </plugins>
  </build>
</project>
