<?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>com.azure</groupId>
    <artifactId>azure-client-sdk-parent</artifactId>
    <version>1.7.0</version><!-- {x-version-update;com.azure:azure-client-sdk-parent;current} -->
    <relativePath>../../parents/azure-client-sdk-parent</relativePath>
  </parent>

  <name>Microsoft Azure client library for Cognitive Search</name>
  <description>This package contains the Microsoft Azure AI Search client library</description>

  <groupId>com.azure</groupId>
  <artifactId>azure-search-documents</artifactId>
  <version>11.7.6</version> <!-- {x-version-update;com.azure:azure-search-documents;current} -->
  <packaging>jar</packaging>

  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
    <!-- Coverage used to be higher but between additional, unused generated client APIs and unused models' JSON serialization it has been lowered. -->
    <!-- In the future this will be cleaned up and coverage should be increased again. -->
    <jacoco.min.linecoverage>0.56</jacoco.min.linecoverage>
    <jacoco.min.branchcoverage>0.47</jacoco.min.branchcoverage>
    <!-- Configures the Java 9+ run to perform the required module exports, opens, and reads that are necessary for testing but shouldn't be part of the module-info. -->
    <javaModulesSurefireArgLine>
      --add-exports com.azure.core/com.azure.core.implementation.http=ALL-UNNAMED
      --add-exports com.azure.core/com.azure.core.implementation.util=ALL-UNNAMED
      --add-exports com.azure.core/com.azure.core.implementation.jackson=ALL-UNNAMED

      --add-opens com.azure.core/com.azure.core.util=ALL-UNNAMED
      --add-opens com.azure.search.documents/com.azure.search.documents=ALL-UNNAMED
      --add-opens com.azure.search.documents/com.azure.search.documents.indexes=ALL-UNNAMED
      --add-opens com.azure.search.documents/com.azure.search.documents.models=ALL-UNNAMED
      --add-opens com.azure.search.documents/com.azure.search.documents.implementation=ALL-UNNAMED
      --add-opens com.azure.search.documents/com.azure.search.documents.implementation.models=ALL-UNNAMED
      --add-opens com.azure.search.documents/com.azure.search.documents.test.environment.models=com.fasterxml.jackson.databind
      --add-opens com.azure.search.documents/com.azure.search.documents.test.environment.models=ALL-UNNAMED

      --add-opens com.azure.search.documents/com.azure.search.documents=com.fasterxml.jackson.databind
      --add-opens com.azure.search.documents/com.azure.search.documents.implementation.models=com.fasterxml.jackson.databind

      --add-reads com.azure.search.documents=com.azure.core.serializer.json.jackson
      --add-reads com.azure.core=ALL-UNNAMED
      --add-reads com.azure.core.test=ALL-UNNAMED
      --add-reads com.azure.core.http.netty=ALL-UNNAMED
    </javaModulesSurefireArgLine>

    <spotbugs.includeTests>true</spotbugs.includeTests>

    <checkstyle.suppressionsLocation>checkstyle-suppressions.xml</checkstyle.suppressionsLocation>

    <spotbugs.skip>false</spotbugs.skip>
    <spotbugs.excludeFilterFile>spotbugs-exclude.xml</spotbugs.excludeFilterFile>
  </properties>

  <dependencies>
    <dependency>
      <groupId>com.azure</groupId>
      <artifactId>azure-core</artifactId>
      <version>1.55.3</version> <!-- {x-version-update;com.azure:azure-core;dependency} -->
    </dependency>
    <dependency>
      <groupId>com.azure</groupId>
      <artifactId>azure-json</artifactId>
      <version>1.5.0</version> <!-- {x-version-update;com.azure:azure-json;dependency} -->
    </dependency>
    <dependency>
      <groupId>com.azure</groupId>
      <artifactId>azure-core-http-netty</artifactId>
      <version>1.15.11</version> <!-- {x-version-update;com.azure:azure-core-http-netty;dependency} -->
    </dependency>
    <dependency>
      <groupId>com.azure</groupId>
      <artifactId>azure-core-serializer-json-jackson</artifactId>
      <version>1.5.8</version> <!-- {x-version-update;com.azure:azure-core-serializer-json-jackson;dependency} -->
    </dependency>

    <!-- Added this dependency to include necessary annotations used by reactor core.
    Without this dependency, javadoc throws a warning as it cannot find enum When.MAYBE
    which is used in @Nullable annotation in reactor core classes -->
    <dependency>
      <groupId>com.google.code.findbugs</groupId>
      <artifactId>jsr305</artifactId>
      <version>3.0.2</version> <!-- {x-version-update;com.google.code.findbugs:jsr305;external_dependency} -->
      <scope>provided</scope>
    </dependency>

    <!-- Test dependencies -->
    <dependency>
      <groupId>com.azure</groupId>
      <artifactId>azure-core-test</artifactId>
      <version>1.27.0-beta.8</version> <!-- {x-version-update;com.azure:azure-core-test;dependency} -->
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>com.azure</groupId>
      <artifactId>azure-identity</artifactId>
      <version>1.15.4</version> <!-- {x-version-update;com.azure:azure-identity;dependency} -->
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>com.azure</groupId>
      <artifactId>azure-ai-openai</artifactId>
      <version>1.0.0-beta.15</version> <!-- {x-version-update;com.azure:azure-ai-openai;dependency} -->
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.junit.jupiter</groupId>
      <artifactId>junit-jupiter-api</artifactId>
      <version>5.11.2</version> <!-- {x-version-update;org.junit.jupiter:junit-jupiter-api;external_dependency} -->
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.junit.jupiter</groupId>
      <artifactId>junit-jupiter-engine</artifactId>
      <version>5.11.2</version> <!-- {x-version-update;org.junit.jupiter:junit-jupiter-engine;external_dependency} -->
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.junit.jupiter</groupId>
      <artifactId>junit-jupiter-params</artifactId>
      <version>5.11.2</version> <!-- {x-version-update;org.junit.jupiter:junit-jupiter-params;external_dependency} -->
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>io.projectreactor</groupId>
      <artifactId>reactor-test</artifactId>
      <version>3.4.41</version> <!-- {x-version-update;io.projectreactor:reactor-test;external_dependency} -->
      <scope>test</scope>
    </dependency>
  </dependencies>
</project>
