<?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.atlassian.jira.plugins</groupId>
        <artifactId>insight-parent-pom</artifactId>
        <version>10.4.7-QR-0010</version>
    </parent>


    <groupId>com.atlassian.servicedesk</groupId>
    <artifactId>insight-rest-api</artifactId>
    <packaging>jar</packaging>

    <name>Assets Public REST APIs</name>

    <properties>
        <public.xsl.directory>${project.build.directory}/public-xsl</public.xsl.directory>
        <public.rest.doc.directory>${project.build.directory}/public-rest-api-docs</public.rest.doc.directory>
        <swagger.doclet.verbose>false</swagger.doclet.verbose>
        <xerces.version>2.12.1</xerces.version>
        <jersey.version>1.19</jersey.version>
        <atlassian.annotations.version>1.1.0</atlassian.annotations.version>
        <atlassian.jersey.restdoc.version>1.0.3</atlassian.jersey.restdoc.version>
        <atlassian.rest.version>6.0.0</atlassian.rest.version>
        <jsr311-api.version>1.1</jsr311-api.version>
        <atlassian.swagger.version>2.1.18</atlassian.swagger.version>
        <swagger-annotations.version>1.6.6</swagger-annotations.version>
    </properties>

    <dependencies>
        <dependency>
            <groupId>com.google.code.gson</groupId>
            <artifactId>gson</artifactId>
        </dependency>
        <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-lang3</artifactId>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>commons-fileupload</groupId>
            <artifactId>commons-fileupload</artifactId>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>com.atlassian.jira</groupId>
            <artifactId>jira-api</artifactId>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>com.google.zxing</groupId>
            <artifactId>core</artifactId>
        </dependency>
        <dependency>
            <groupId>org.dom4j</groupId>
            <artifactId>dom4j</artifactId>
            <scope>provided</scope>
        </dependency>

        <!-- Assets/Insight dependencies -->
        <dependency>
            <groupId>com.atlassian.servicedesk</groupId>
            <artifactId>insight-api-old</artifactId>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>com.atlassian.servicedesk</groupId>
            <artifactId>insight-core-model</artifactId>
        </dependency>
        <dependency>
            <groupId>com.atlassian.servicedesk</groupId>
            <artifactId>insight-core-services</artifactId>
        </dependency>
        <dependency>
            <groupId>com.atlassian.servicedesk</groupId>
            <artifactId>insight-core-utils</artifactId>
        </dependency>
        <dependency>
            <groupId>com.atlassian.servicedesk</groupId>
            <artifactId>insight-core-persistence</artifactId>
        </dependency>
        <dependency>
            <groupId>com.atlassian.servicedesk</groupId>
            <artifactId>insight-core-index</artifactId>
        </dependency>
        <dependency>
            <groupId>com.atlassian.servicedesk</groupId>
            <artifactId>insight-core-iql</artifactId>
        </dependency>

        <!-- javax dependencies -->
        <dependency>
            <groupId>javax.annotation</groupId>
            <artifactId>javax.annotation-api</artifactId>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>javax.inject</groupId>
            <artifactId>javax.inject</artifactId>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>javax.servlet-api</artifactId>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>javax.ws.rs</groupId>
            <artifactId>javax.ws.rs-api</artifactId>
            <version>${javax.ws.version}</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>javax.validation</groupId>
            <artifactId>validation-api</artifactId>
            <scope>provided</scope>
        </dependency>

        <!-- Test dependencies -->
        <dependency>
            <groupId>org.mockito</groupId>
            <artifactId>mockito-core</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.mockito</groupId>
            <artifactId>mockito-junit-jupiter</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.mockito</groupId>
            <artifactId>mockito-inline</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.mockito.kotlin</groupId>
            <artifactId>mockito-kotlin</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.assertj</groupId>
            <artifactId>assertj-core</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.glassfish.jersey.core</groupId>
            <artifactId>jersey-common</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.junit.jupiter</groupId>
            <artifactId>junit-jupiter-params</artifactId>
            <scope>test</scope>
        </dependency>

        <!-- needed for doc generation -->
        <dependency><!-- for some obscure reason it needs to be a module dep and not just a dep of the antrun plugin (ask Min'an) -->
            <groupId>com.atlassian.plugins.rest</groupId>
            <artifactId>atlassian-rest-doclet</artifactId>
            <version>${atlassian.rest.version}</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>javax.ws.rs</groupId>
            <artifactId>jsr311-api</artifactId>
            <version>${jsr311-api.version}</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>javax.xml.bind</groupId>
            <artifactId>jaxb-api</artifactId>
            <version>${jaxb.api.version}</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>com.google.guava</groupId>
            <artifactId>guava</artifactId>
        </dependency>

        <!-- Runtime, com.sun.xml.bind module -->
        <dependency>
            <groupId>org.codehaus.jackson</groupId>
            <artifactId>jackson-jaxrs</artifactId>
            <version>${jackson.jaxrs.version}</version>
        </dependency>
        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-annotations</artifactId>
            <version>${fasterxml.version}</version>
        </dependency>
        <dependency>
            <groupId>com.fasterxml.jackson.module</groupId>
            <artifactId>jackson-module-jaxb-annotations</artifactId>
            <exclusions>
                <exclusion>
                    <groupId>*</groupId>
                    <artifactId>*</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>com.atlassian.plugins.rest</groupId>
            <artifactId>atlassian-rest-common</artifactId>
            <version>${atlassian.rest.version}</version>
            <scope>provided</scope>
            <exclusions>
                <exclusion>
                    <groupId>com.atlassian.plugins.rest</groupId>
                    <artifactId>com.atlassian.jersey-library</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>io.swagger</groupId>
            <artifactId>swagger-annotations</artifactId>
            <version>${swagger-annotations.version}</version>
        </dependency>
        <dependency>
            <groupId>commons-codec</groupId>
            <artifactId>commons-codec</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>com.atlassian.annotations</groupId>
            <artifactId>atlassian-annotations</artifactId>
            <version>${atlassian.annotations.version}</version>
            <scope>compile</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-beans</artifactId>
            <scope>provided</scope>
        </dependency>
    </dependencies>

    <build>
        <pluginManagement>
            <plugins>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-compiler-plugin</artifactId>
                    <version>${maven.compiler.plugin.version}</version>
                    <configuration>
                        <source>${maven.compiler.plugin.source}</source>
                        <target>${maven.compiler.plugin.target}</target>
                    </configuration>
                    <executions>
                        <!-- Replacing default-compile as it is treated specially by maven -->
                        <execution>
                            <id>default-compile</id>
                            <phase>none</phase>
                        </execution>
                        <!-- Replacing default-testCompile as it is treated specially by maven -->
                        <execution>
                            <id>default-testCompile</id>
                            <phase>none</phase>
                        </execution>
                        <execution>
                            <id>java-compile</id>
                            <phase>compile</phase>
                            <goals>
                                <goal>compile</goal>
                            </goals>
                        </execution>
                        <execution>
                            <id>java-test-compile</id>
                            <phase>test-compile</phase>
                            <goals>
                                <goal>testCompile</goal>
                            </goals>
                        </execution>
                    </executions>
                </plugin>
            </plugins>
        </pluginManagement>

        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
            </plugin>
            <plugin>
                <groupId>org.jetbrains.kotlin</groupId>
                <artifactId>kotlin-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

    <profiles>
        <profile>
            <!-- generate, package and deploy the REST APIs documentation -->
            <id>release-profile</id>
            <activation>
                <activeByDefault>false</activeByDefault>
                <property>
                    <name>jira.generateDocs</name>
                </property>
            </activation>
            <properties>
                <maven.javadoc.skip>false</maven.javadoc.skip>
            </properties>
            <build>
                <plugins>
                    <!--Swagger generation-->
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-javadoc-plugin</artifactId>
                        <executions>
                            <execution>
                                <id>generate-swagger-docs</id>
                                <phase>process-classes</phase>
                                <configuration>
                                    <skip>false</skip>
                                    <doclet>com.atlassian.swagger.doclet.SwaggerDoclet</doclet>
                                    <docletArtifacts>
                                        <docletArtifact>
                                            <groupId>com.atlassian.swagger</groupId>
                                            <artifactId>atlassian-swagger-doclet</artifactId>
                                            <version>${atlassian.swagger.version}</version>
                                        </docletArtifact>
                                    </docletArtifacts>

                                    <useStandardDocletOptions>false</useStandardDocletOptions>
                                    <verbose>false</verbose>
                                    <sourcepath>src/main/java</sourcepath>
                                    <subpackages>com.riadalabs</subpackages>
                                    <!-- To help debug this via remote debugging - uncomment here-->
                                    <!--<additionalJOption>-J-agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=5005</additionalJOption>-->
                                    <debug>${swagger.doclet.verbose}</debug>
                                </configuration>
                                <goals>
                                    <goal>javadoc</goal>
                                </goals>
                            </execution>
                            <execution>
                                <id>attach-javadocs</id>
                                <goals>
                                    <goal>jar</goal>
                                </goals>
                                <configuration>
                                    <failOnError>false</failOnError>
                                    <additionalOptions>
                                        <additionalOption>-Xdoclint:none</additionalOption>
                                    </additionalOptions>
                                </configuration>
                            </execution>
                        </executions>
                    </plugin>
                    <!--This is the older WADL -> Html generation-->
                    <plugin>
                        <artifactId>maven-antrun-plugin</artifactId>
                        <version>1.7</version>
                        <executions>
                            <execution>
                                <id>schemaGen-plugin-description</id>
                                <phase>process-classes</phase>
                                <goals>
                                    <goal>run</goal>
                                </goals>
                                <configuration>
                                    <tasks>
                                        <javadoc access="public" sourcepath="${project.basedir}/src/main/java"
                                                 maxmemory="1024m" failonerror="true" useexternalfile="yes">
                                            <package
                                                    name="com.riadalabs.jira.plugins.insight.channel.web.api.rest.services.aql"/>
                                            <package
                                                    name="com.riadalabs.jira.plugins.insight.channel.web.api.rest.services.attachment"/>
                                            <package
                                                    name="com.riadalabs.jira.plugins.insight.channel.web.api.rest.services.comment"/>
                                            <package
                                                    name="com.riadalabs.jira.plugins.insight.channel.web.api.rest.services.icon"/>
                                            <package
                                                    name="com.riadalabs.jira.plugins.insight.channel.web.api.rest.services.objectattribute"/>
                                            <package
                                                    name="com.riadalabs.jira.plugins.insight.channel.web.api.rest.services.objecttickets"/>
                                            <package
                                                    name="com.riadalabs.jira.plugins.insight.channel.web.api.rest.services.object"/>
                                            <package
                                                    name="com.riadalabs.jira.plugins.insight.channel.web.api.rest.services.objectschema"/>
                                            <package
                                                    name="com.riadalabs.jira.plugins.insight.channel.web.api.rest.services.objecttype"/>
                                            <package
                                                    name="com.riadalabs.jira.plugins.insight.channel.web.api.rest.services.objecttypeattribute"/>
                                            <package
                                                    name="com.riadalabs.jira.plugins.insight.channel.web.api.rest.services.progress"/>
                                            <package
                                                    name="com.riadalabs.jira.plugins.insight.channel.web.api.rest.services.qrcode"/>
                                            <package
                                                    name="com.riadalabs.jira.plugins.insight.channel.web.api.rest.services.status"/>
                                            <!-- Uncomment this line to enable remote debugging. <arg line="-J-Xdebug -J-Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=5005" />-->
                                            <classpath>
                                                <path refid="maven.compile.classpath"/>
                                                <pathelement location="${project.build.outputDirectory}"/>
                                            </classpath>
                                            <doclet name="com.sun.jersey.wadl.resourcedoc.ResourceDocletJSON">
                                                <path>
                                                    <path refid="maven.plugin.classpath"/>
                                                    <path refid="maven.compile.classpath"/>
                                                    <path refid="maven.runtime.classpath"/>
                                                    <pathelement location="${project.build.outputDirectory}"/>
                                                </path>
                                                <param name="-output"
                                                       value="${project.build.outputDirectory}/resourcedoc.xml"/>
                                            </doclet>
                                        </javadoc>
                                        <copy file="${project.build.outputDirectory}/resourcedoc.xml"
                                              tofile="${public.xsl.directory}/resourcedoc.xml"/>
                                    </tasks>
                                </configuration>
                            </execution>
                        </executions>
                        <dependencies>
                            <dependency>
                                <groupId>xerces</groupId>
                                <artifactId>xercesImpl</artifactId>
                                <version>${xerces.version}</version>
                            </dependency>
                            <dependency>
                                <groupId>com.atlassian.jersey</groupId>
                                <artifactId>atlassian-jersey-restdoc</artifactId>
                                <version>${atlassian.jersey.restdoc.version}</version>
                            </dependency>
                            <dependency>
                                <groupId>com.sun.jersey.contribs</groupId>
                                <artifactId>wadl-resourcedoc-doclet</artifactId>
                                <version>${jersey.version}</version>
                                <exclusions>
                                    <exclusion>
                                        <groupId>asm</groupId>
                                        <artifactId>asm</artifactId>
                                    </exclusion>
                                </exclusions>
                            </dependency>
                            <dependency>
                                <groupId>org.slf4j</groupId>
                                <artifactId>slf4j-log4j12</artifactId>
                                <version>${slf4j.log4j12.version}</version>
                            </dependency>
                        </dependencies>
                    </plugin>
                    <plugin>
                        <artifactId>maven-resources-plugin</artifactId>
                        <executions>
                            <execution>
                                <id>copy-xsl-resources</id>
                                <phase>validate</phase>
                                <goals>
                                    <goal>copy-resources</goal>
                                </goals>
                                <configuration>
                                    <outputDirectory>${public.xsl.directory}</outputDirectory>
                                    <resources>
                                        <resource>
                                            <directory>${basedir}/src/main/public-rest-doc</directory>
                                            <filtering>true</filtering>
                                            <excludes>
                                                <exclude>static/**</exclude>
                                            </excludes>
                                        </resource>
                                    </resources>
                                </configuration>
                            </execution>
                            <execution>
                                <id>copy-page-resources</id>
                                <phase>validate</phase>
                                <goals>
                                    <goal>copy-resources</goal>
                                </goals>
                                <configuration>
                                    <outputDirectory>${public.rest.doc.directory}</outputDirectory>
                                    <resources>
                                        <resource>
                                            <directory>src/main/public-rest-doc/static</directory>
                                            <filtering>true</filtering>
                                        </resource>
                                    </resources>
                                </configuration>
                            </execution>
                        </executions>
                    </plugin>
                    <plugin>
                        <groupId>com.sun.jersey.contribs</groupId>
                        <artifactId>maven-wadl-plugin</artifactId>
                        <version>1.19</version>
                        <executions>
                            <execution>
                                <id>generate</id>
                                <goals>
                                    <goal>generate</goal>
                                </goals>
                                <phase>prepare-package</phase>
                            </execution>
                        </executions>
                        <dependencies>
                            <dependency>
                                <groupId>org.slf4j</groupId>
                                <artifactId>slf4j-log4j12</artifactId>
                                <version>${slf4j.log4j12.version}</version>
                            </dependency>
                            <dependency>
                                <groupId>xerces</groupId>
                                <artifactId>xercesImpl</artifactId>
                                <version>${xerces.version}</version>
                            </dependency>
                            <dependency>
                                <groupId>com.google.code.gson</groupId>
                                <artifactId>gson</artifactId>
                                <version>${gson.version}</version>
                            </dependency>
                            <dependency>
                                <groupId>org.reflections</groupId>
                                <artifactId>reflections</artifactId>
                                <version>0.9.9</version>
                            </dependency>
                            <dependency><!-- Both atlassian-rest-module and atlassian-rest-doclet depend on this but declare it as provided, so need to respecify here -->
                                <groupId>com.fasterxml.jackson.core</groupId>
                                <artifactId>jackson-annotations</artifactId>
                                <version>${fasterxml.version}</version>
                            </dependency>

                            <dependency>
                                <groupId>org.codehaus.jackson</groupId>
                                <artifactId>jackson-jaxrs</artifactId>
                                <version>${jackson.jaxrs.version}</version>
                            </dependency>
                            <dependency>
                                <groupId>com.fasterxml.jackson.core</groupId>
                                <artifactId>jackson-annotations</artifactId>
                                <version>${fasterxml.version}</version>
                            </dependency>
                            <dependency>
                                <groupId>com.fasterxml.jackson.module</groupId>
                                <artifactId>jackson-module-jaxb-annotations</artifactId>
                                <version>${fasterxml.version}</version>
                                <exclusions>
                                    <exclusion>
                                        <groupId>*</groupId>
                                        <artifactId>*</artifactId>
                                    </exclusion>
                                </exclusions>
                            </dependency>

                            <dependency>
                                <groupId>joda-time</groupId>
                                <artifactId>joda-time</artifactId>
                                <version>${joda.time.version}</version>
                            </dependency>
                            <dependency>
                                <groupId>com.google.guava</groupId>
                                <artifactId>guava</artifactId>
                                <version>${guava.version}</version>
                            </dependency>
                            <dependency>
                                <groupId>javax.activation</groupId>
                                <artifactId>activation</artifactId>
                                <version>${activation.version}</version>
                            </dependency>
                            <dependency>
                                <groupId>javax.xml.bind</groupId>
                                <artifactId>jaxb-api</artifactId>
                                <version>${jaxb.api.version}</version>
                            </dependency>

                            <dependency>
                                <groupId>org.glassfish.jaxb</groupId>
                                <artifactId>jaxb-runtime</artifactId>
                                <version>2.3.0</version>
                            </dependency>

                        </dependencies>
                        <configuration>
                            <wadlFile>${public.xsl.directory}/jira-rest-plugin.wadl</wadlFile>
                            <formatWadlFile>true</formatWadlFile>
                            <baseUri>http://example.com:8080/jira/rest/assets</baseUri>
                            <packagesResourceConfig>
                                <!-- If you add a package here, add it also to com.atlassian.servicedesk.plugins.rest.internal.resource.TestCorsIsAllowedForAllPublicResources.REST_PACKAGES -->
                                <param>com.riadalabs.jira.plugins.insight.channel.web.api.rest.services.aql,
                                    com.riadalabs.jira.plugins.insight.channel.web.api.rest.services.attachment,
                                    com.riadalabs.jira.plugins.insight.channel.web.api.rest.services.comment,
                                    com.riadalabs.jira.plugins.insight.channel.web.api.rest.services.icon,
                                    com.riadalabs.jira.plugins.insight.channel.web.api.rest.services.object,
                                    com.riadalabs.jira.plugins.insight.channel.web.api.rest.services.objectattribute,
                                    com.riadalabs.jira.plugins.insight.channel.web.api.rest.services.objectschema,
                                    com.riadalabs.jira.plugins.insight.channel.web.api.rest.services.objecttickets,
                                    com.riadalabs.jira.plugins.insight.channel.web.api.rest.services.objecttype,
                                    com.riadalabs.jira.plugins.insight.channel.web.api.rest.services.objecttypeattribute,
                                    com.riadalabs.jira.plugins.insight.channel.web.api.rest.services.progress,
                                    com.riadalabs.jira.plugins.insight.channel.web.api.rest.services.qrcode,
                                    com.riadalabs.jira.plugins.insight.channel.web.api.rest.services.status
                                </param>
                            </packagesResourceConfig>
                            <wadlGenerators>
                                <wadlGeneratorDescription>
                                    <className>com.sun.jersey.server.wadl.generators.WadlGeneratorApplicationDoc
                                    </className>
                                    <properties>
                                        <property>
                                            <name>applicationDocsFile</name>
                                            <value>${public.xsl.directory}/application-doc.xml</value>
                                        </property>
                                    </properties>
                                </wadlGeneratorDescription>
                                <wadlGeneratorDescription>
                                    <className>com.sun.jersey.server.wadl.generators.WadlGeneratorGrammarsSupport
                                    </className>
                                    <properties>
                                        <property>
                                            <name>grammarsFile</name>
                                            <value>${public.xsl.directory}/application-grammars.xml</value>
                                        </property>
                                    </properties>
                                </wadlGeneratorDescription>
                                <wadlGeneratorDescription>
                                    <className>
                                        com.atlassian.plugins.rest.doclet.generators.resourcedoc.AtlassianWadlGeneratorResourceDocSupport
                                    </className>
                                    <properties>
                                        <property>
                                            <name>resourceDocFile</name>
                                            <value>${public.xsl.directory}/resourcedoc.xml</value>
                                        </property>
                                    </properties>
                                </wadlGeneratorDescription>
                            </wadlGenerators>
                        </configuration>
                    </plugin>
                    <plugin>
                        <groupId>org.codehaus.mojo</groupId>
                        <artifactId>xml-maven-plugin</artifactId>
                        <version>1.0</version>
                        <executions>
                            <execution>
                                <goals>
                                    <goal>transform</goal>
                                </goals>
                                <phase>package</phase>
                            </execution>
                        </executions>
                        <configuration>
                            <transformationSets>
                                <transformationSet>
                                    <dir>${public.xsl.directory}</dir>
                                    <includes>
                                        <include>jira-rest-plugin.wadl</include>
                                    </includes>
                                    <stylesheet>${public.xsl.directory}/wadl-documentation.xsl</stylesheet>
                                    <outputProperties>
                                        <outputProperty>
                                            <name>indent</name>
                                            <value>no</value>
                                        </outputProperty>
                                    </outputProperties>
                                    <outputDir>${public.rest.doc.directory}</outputDir>
                                    <fileMappers>
                                        <fileMapper
                                                implementation="org.codehaus.plexus.components.io.filemappers.RegExpFileMapper">
                                            <pattern>jira-rest-plugin.wadl</pattern>
                                            <replacement>index.html</replacement>
                                        </fileMapper>
                                    </fileMappers>
                                </transformationSet>
                            </transformationSets>
                        </configuration>
                        <dependencies>
                            <dependency>
                                <groupId>net.sf.saxon</groupId>
                                <artifactId>saxon</artifactId>
                                <version>8.7</version>
                            </dependency>
                        </dependencies>
                    </plugin>
                    <plugin>
                        <artifactId>maven-assembly-plugin</artifactId>
                        <executions>
                            <execution>
                                <id>create-api-zip</id>
                                <phase>package</phase>
                                <goals>
                                    <goal>single</goal>
                                </goals>
                                <configuration>
                                    <attach>true</attach>
                                    <appendAssemblyId>true</appendAssemblyId>
                                    <descriptors>
                                        <descriptor>src/main/assembly/public-rest-api-docs.xml</descriptor>
                                    </descriptors>
                                </configuration>
                            </execution>
                        </executions>
                    </plugin>
                </plugins>
            </build>
        </profile>
    </profiles>
</project>