<?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">
  <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>

  <groupId>com.azure.spring</groupId>
  <artifactId>azure-spring-boot-starter-storage</artifactId>
  <version>3.6.0</version> <!-- {x-version-update;com.azure.spring:azure-spring-boot-starter-storage;current} -->

  <name>Azure Spring Boot Starter for Azure Storage</name>
  <description>Spring Boot Starter for Azure Storage</description>
  <url>https://github.com/Azure/azure-sdk-for-java</url>

  <dependencies>
    <dependency>
      <groupId>com.azure.spring</groupId>
      <artifactId>azure-spring-boot</artifactId>
      <version>3.6.0</version> <!-- {x-version-update;com.azure.spring:azure-spring-boot;current} -->
    </dependency>

    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-validation</artifactId>
      <version>2.5.0</version> <!-- {x-version-update;org.springframework.boot:spring-boot-starter-validation;external_dependency} -->
    </dependency>

    <!--  Storage  -->
    <dependency>
      <groupId>com.azure</groupId>
      <artifactId>azure-storage-blob</artifactId>
      <version>12.12.0</version>  <!-- {x-version-update;com.azure:azure-storage-blob;dependency} -->
    </dependency>

    <dependency>
      <groupId>com.azure</groupId>
      <artifactId>azure-storage-file-share</artifactId>
      <version>12.10.0</version> <!-- {x-version-update;com.azure:azure-storage-file-share;dependency} -->
    </dependency>
  </dependencies>

  <build>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-enforcer-plugin</artifactId>
        <version>3.0.0-M3</version> <!-- {x-version-update;org.apache.maven.plugins:maven-enforcer-plugin;external_dependency} -->
        <configuration>
          <rules>
            <bannedDependencies>
              <includes>
                <include>org.springframework.boot:spring-boot-starter-validation:[2.5.0]</include> <!-- {x-include-update;org.springframework.boot:spring-boot-starter-validation;external_dependency} -->
              </includes>
            </bannedDependencies>
          </rules>
        </configuration>
      </plugin>
      <!-- BEGIN: Empty Java Doc & Sources -->
      <!-- The following code will generate an empty javadoc 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 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.
      -->
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-javadoc-plugin</artifactId>
        <version>3.1.1</version> <!-- {x-version-update;org.apache.maven.plugins:maven-javadoc-plugin;external_dependency} -->
        <executions>
          <execution>
            <id>attach-javadocs</id>
            <goals>
              <goal>jar</goal>
            </goals>
            <configuration>
              <skip>true</skip>
            </configuration>
          </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} -->
        <executions>
          <!-- BEGIN: Empty Java Doc -->
          <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>
          <!-- END: Empty Java Doc -->
          <!-- BEGIN: Empty Sources -->
          <execution>
            <id>empty-sources-jar-with-readme</id>
            <phase>package</phase>
            <goals>
              <goal>jar</goal>
            </goals>
            <configuration>
              <classifier>sources</classifier>
              <classesDirectory>${project.basedir}/sourceTemp</classesDirectory>
            </configuration>
          </execution>
          <!-- END: Empty Sources -->
        </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</id>
            <phase>prepare-package</phase>
            <configuration>
              <target>
                <echo>Deleting existing ${project.basedir}/javadocTemp</echo>
                <delete includeEmptyDirs="true" quiet="true">
                  <fileset dir="${project.basedir}/javadocTemp"/>
                </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"/>
              </target>
            </configuration>
            <goals>
              <goal>run</goal>
            </goals>
          </execution>
          <execution>
            <id>copy-readme-to-sourceTemp</id>
            <phase>prepare-package</phase>
            <configuration>
              <target>
                <echo>Deleting existing ${project.basedir}/sourceTemp</echo>
                <delete includeEmptyDirs="true" quiet="true">
                  <fileset dir="${project.basedir}/sourceTemp"/>
                </delete>
                <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"/>
              </target>
            </configuration>
            <goals>
              <goal>run</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-source-plugin</artifactId>
        <version>3.0.1</version> <!-- {x-version-update;org.apache.maven.plugins:maven-source-plugin;external_dependency} -->
        <executions>
          <execution>
            <id>attach-sources</id>
            <phase>none</phase> <!-- The way to skip the sources attach is to set the phase to none, the skip config doesn't work for sources -->
          </execution>
        </executions>
      </plugin>
      <!-- END: Empty Java Doc & Sources -->
    </plugins>
  </build>
</project>
