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

  <groupId>com.azure.spring</groupId>
  <artifactId>spring-cloud-azure-resourcemanager</artifactId>
  <version>5.3.0</version> <!-- {x-version-update;com.azure.spring:spring-cloud-azure-resourcemanager;current} -->

  <name>Spring Cloud Azure Resource Manager</name>
  <description>Spring Cloud Azure Resource Manager</description>
  <url>https://microsoft.github.io/spring-cloud-azure</url>
  <developers>
    <developer>
      <name>Spring Cloud Azure</name>
      <email>SpringIntegSupport@microsoft.com</email>
    </developer>
  </developers>
  <scm>
    <connection>scm:git:git@github.com:Azure/azure-sdk-for-java.git</connection>
    <developerConnection>scm:git:ssh://git@github.com:Azure/azure-sdk-for-java.git</developerConnection>
    <url>https://github.com/Azure/azure-sdk-for-java</url>
  </scm>
  <issueManagement>
    <system>GitHub</system>
    <url>https://github.com/Azure/azure-sdk-for-java/issues</url>
  </issueManagement>
  <properties>
    <!-- Enables fail on deprecated API usage. -->
    <compiler.failondeprecatedstatus/>
  </properties>
  <dependencies>
    <dependency>
      <groupId>com.azure.spring</groupId>
      <artifactId>spring-cloud-azure-core</artifactId>
      <version>5.3.0</version> <!-- {x-version-update;com.azure.spring:spring-cloud-azure-core;current} -->
    </dependency>

    <dependency>
      <groupId>com.azure.resourcemanager</groupId>
      <artifactId>azure-resourcemanager</artifactId>
      <version>2.28.0</version> <!-- {x-version-update;com.azure.resourcemanager:azure-resourcemanager;dependency} -->
    </dependency>

    <dependency>
      <groupId>org.mockito</groupId>
      <artifactId>mockito-core</artifactId>
      <version>4.11.0</version><!-- {x-version-update;org.mockito:mockito-core;external_dependency} -->
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.junit.jupiter</groupId>
      <artifactId>junit-jupiter</artifactId>
      <version>5.9.2</version> <!-- {x-version-update;org.junit.jupiter:junit-jupiter;external_dependency} -->
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-test</artifactId>
      <version>6.0.7</version> <!-- {x-version-update;org.springframework:spring-test;external_dependency} -->
      <scope>test</scope>
    </dependency>

    <!-- Used to eliminate warnings when generate Java Docs.
        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>
  </dependencies>

  <build>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>3.10.1</version> <!-- {x-version-update;org.apache.maven.plugins:maven-compiler-plugin;external_dependency} -->
        <executions>
          <!-- disabled - the executing this after default-compile will generate module-info with major class version 55 (i.e Java 11) -->
          <execution>
            <id>base-modules-compile</id>
            <phase>none</phase>
          </execution>
          <!-- disabled - compile without module-info for Java 8 -->
          <execution>
            <id>base-compile</id>
            <phase>none</phase>
          </execution>
          <!-- disabled - compile with Java 8 -->
          <execution>
            <id>base-testCompile</id>
            <phase>none</phase>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-jar-plugin</artifactId>
        <version>3.1.2</version> <!-- {x-version-update;org.apache.maven.plugins:maven-jar-plugin;external_dependency} -->
        <configuration>
          <archive>
            <manifestEntries>
              <Automatic-Module-Name>com.azure.spring.cloud.resourcemanager</Automatic-Module-Name>
            </manifestEntries>
          </archive>
        </configuration>
        <!-- START: Empty Java Doc & Sources -->
        <!-- The following code will generate an empty javadoc/sources with just a README.md. This is necessary
             to pass the required checks on Maven. The way this works is by setting the classesDirectory
             to a directory that only contains the README.md, which we need to copy. If the classesDirectory
             is set to the root, where the README.md lives, it still won't have javadocs/sources but the jar file
             will contain a bunch of files that shouldn't be there. The faux sources directory is deleted
             and recreated with the README.md being copied every time to guarantee that, when building locally,
             it'll have the latest copy of the README.md file.
        -->
        <executions>
          <execution>
            <id>empty-javadoc-jar-with-readme</id>
            <phase>package</phase>
            <goals>
              <goal>jar</goal>
            </goals>
            <configuration>
              <classifier>javadoc</classifier>
              <classesDirectory>${project.basedir}/javadocTemp</classesDirectory>
            </configuration>
          </execution>
          <execution>
            <id>empty-source-jar-with-readme</id>
            <phase>package</phase>
            <goals>
              <goal>jar</goal>
            </goals>
            <configuration>
              <classifier>sources</classifier>
              <classesDirectory>${project.basedir}/sourceTemp</classesDirectory>
            </configuration>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-antrun-plugin</artifactId>
        <version>1.8</version> <!-- {x-version-update;org.apache.maven.plugins:maven-antrun-plugin;external_dependency} -->
        <executions>
          <execution>
            <id>copy-readme-to-javadocTemp-and-sourceTemp</id>
            <phase>prepare-package</phase>
            <configuration>
              <target>
                <echo>Deleting existing ${project.basedir}/javadocTemp and
                  ${project.basedir}/sourceTemp</echo>
                <delete includeEmptyDirs="true" quiet="true">
                  <fileset dir="${project.basedir}/javadocTemp"/>
                  <fileset dir="${project.basedir}/sourceTemp"/>
                </delete>
                <echo>Copying ${project.basedir}/../README.md to
                  ${project.basedir}/javadocTemp/README.md
                </echo>
                <copy file="${project.basedir}/../README.md" tofile="${project.basedir}/javadocTemp/README.md" failonerror="false"/>
                <echo>Copying ${project.basedir}/../README.md to
                  ${project.basedir}/sourceTemp/README.md
                </echo>
                <copy file="${project.basedir}/../README.md" tofile="${project.basedir}/sourceTemp/README.md" failonerror="false"/>
              </target>
            </configuration>
            <goals>
              <goal>run</goal>
            </goals>
          </execution>
        </executions>
        <!-- END: Empty Java Doc & Sources -->
      </plugin>
    </plugins>
  </build>

</project>
