<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/maven-v4_0_0.xsd">
    <parent>
        <groupId>com.atlassian.jira</groupId>
        <artifactId>jira-plugins</artifactId>
        <version>10.0.0-QR-20240313081051</version>
    </parent>
    <modelVersion>4.0.0</modelVersion>

    <artifactId>jira-diagnostics-plugin</artifactId>
    <name>Atlassian Jira - Plugins - Diagnostics Plugin</name>
    <description>Atlassian Diagnostics integration plugin</description>
    <packaging>atlassian-plugin</packaging>

    <properties>
        <atlassian.plugin.key>com.atlassian.jira.diagnostics</atlassian.plugin.key>
        <xsl.directory>${project.build.directory}/xsl</xsl.directory>
        <send.mail.disabled>true</send.mail.disabled>
        <atlassian.dev.mode>true</atlassian.dev.mode>
    </properties>

    <dependencies>
        <!-- Compile scope -->
        <dependency>
            <groupId>com.atlassian.profiling</groupId>
            <artifactId>atlassian-profiling-micrometer</artifactId>
            <scope>compile</scope>
        </dependency>
        <dependency>
            <groupId>com.google.code.gson</groupId>
            <artifactId>gson</artifactId>
            <scope>compile</scope>
        </dependency>
        <dependency>
            <groupId>io.micrometer</groupId>
            <artifactId>micrometer-core</artifactId>
            <scope>compile</scope>
        </dependency>
        <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-lang3</artifactId>
            <scope>compile</scope>
        </dependency>
        <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-math3</artifactId>
            <version>3.6.1</version>
            <scope>compile</scope>
        </dependency>
        <dependency>
            <groupId>com.atlassian.plugins</groupId>
            <artifactId>atlassian-plugins-osgi-javaconfig</artifactId>
            <scope>compile</scope>
        </dependency>

        <!-- Provided scope -->
        <dependency>
            <groupId>com.atlassian.diagnostics</groupId>
            <artifactId>atlassian-diagnostics-api</artifactId>
            <version>${atlassian.diagnostics.version}</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>com.atlassian.diagnostics</groupId>
            <artifactId>atlassian-diagnostics-core</artifactId>
            <version>${atlassian.diagnostics.version}</version>
            <scope>provided</scope>
            <exclusions>
                <exclusion>
                    <groupId>com.atlassian.scheduler</groupId>
                    <artifactId>atlassian-scheduler-api</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>com.atlassian.diagnostics</groupId>
            <artifactId>atlassian-diagnostics-platform</artifactId>
            <version>${atlassian.diagnostics.version}</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>com.atlassian.plugins</groupId>
            <artifactId>atlassian-plugins-osgi</artifactId>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>com.atlassian.scheduler.caesium</groupId>
            <artifactId>atlassian-scheduler-caesium</artifactId>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>com.atlassian.scheduler</groupId>
            <artifactId>atlassian-scheduler-core</artifactId>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>com.atlassian.activeobjects</groupId>
            <artifactId>activeobjects-plugin</artifactId>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>com.atlassian.jira</groupId>
            <artifactId>jira-core</artifactId>
            <version>${project.version}</version>
            <scope>provided</scope>
            <exclusions>
                <exclusion>
                    <groupId>org.springframework.security</groupId>
                    <artifactId>spring-security-core</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>org.apache.commons</groupId>
                    <artifactId>commons-lang3</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>com.atlassian.p4package</groupId>
                    <artifactId>atlassian-p4package</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>com.atlassian.modzdetector</groupId>
                    <artifactId>modz-detector</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>com.atlassian.jira</groupId>
            <artifactId>jira-api</artifactId>
            <version>${project.version}</version>
            <scope>provided</scope>
            <exclusions>
                <exclusion>
                    <groupId>org.apache.commons</groupId>
                    <artifactId>commons-lang3</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>javax.servlet-api</artifactId>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>com.google.guava</groupId>
            <artifactId>guava</artifactId>
            <scope>provided</scope>
        </dependency>

        <!-- Test scope -->
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.mockito</groupId>
            <artifactId>mockito-core</artifactId>
            <version>${mockito.version}</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.assertj</groupId>
            <artifactId>assertj-core</artifactId>
            <version>${assertj.version}</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.hamcrest</groupId>
            <artifactId>hamcrest-all</artifactId>
            <version>${hamcrest.version}</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.hamcrest</groupId>
            <artifactId>hamcrest-core</artifactId>
            <version>${hamcrest.version}</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.hamcrest</groupId>
            <artifactId>hamcrest-library</artifactId>
            <version>${hamcrest.version}</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>com.atlassian.jira</groupId>
            <artifactId>jira-tests</artifactId>
        </dependency>
    </dependencies>
    <build>
        <resources>
            <resource>
                <directory>src/main/resources</directory>
                <filtering>true</filtering>
                <includes>
                    <include>atlassian-plugin.xml</include>
                </includes>
            </resource>
            <resource>
                <directory>src/main/resources</directory>
                <filtering>false</filtering>
                <excludes>
                    <exclude>atlassian-plugin.xml</exclude>
                </excludes>
            </resource>
        </resources>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
                <configuration>
                    <argLine>${jira.user.extra.jvmargs}</argLine>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.twdata.maven</groupId>
                <artifactId>maven-cli-plugin</artifactId>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-dependency-plugin</artifactId>
                <executions>
                    <execution>
                        <id>src-dependencies</id>
                        <phase>prepare-package</phase>
                        <goals>
                            <!-- use copy-dependencies instead if you don't want to explode the sources -->
                            <goal>unpack-dependencies</goal>
                        </goals>
                        <configuration>
                            <includes>**/atlassian-diagnostics*.properties</includes>
                            <failOnMissingClassifierArtifact>false</failOnMissingClassifierArtifact>
                            <outputDirectory>${project.build.directory}/classes</outputDirectory>
                            <includeTypes>jar</includeTypes>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <groupId>com.atlassian.maven.plugins</groupId>
                <artifactId>amps-maven-plugin</artifactId>
                <configuration>
                    <instructions>
                        <Atlassian-Plugin-Key>${atlassian.plugin.key}</Atlassian-Plugin-Key>
                        <Spring-Context>*</Spring-Context>
                        <Export-Package>
                            !io.micrometer.*,
                            !com.atlassian.profiling.*,
                            !com.atlassian.util.profiling,
                            !com.atlassian.util.profiling.*,
                            com.atlassian.jira.diagnostics,
                            com.atlassian.jira.diagnostics.*,
                        </Export-Package>
                        <Import-Package>
                            !io.micrometer.*,
                            !com.atlassian.profiling.*,
                            !com.atlassian.util.profiling,
                            !com.atlassian.util.profiling.*,
                            javax.xml.bind*;version="2.1.0",
                            javax.annotation,
                            javax.management,
                            com.sun.management.*;resolution:="optional",
                            net.java.ao.*,
                            com.atlassian.sal.api.*,
                            com.atlassian.activeobjects.external,
                            com.atlassian.analytics.api.annotations,
                            com.atlassian.cache.*,
                            com.atlassian.diagnostics,
                            com.atlassian.diagnostics.*,
                            com.atlassian.plugin.event.events,
                            com.atlassian.jira.cluster,
                            com.atlassian.jira.component,
                            com.atlassian.jira.config,
                            com.atlassian.jira.config.properties,
                            com.atlassian.jira.config.util,
                            com.atlassian.jira.database.measure,
                            com.atlassian.jira.diagnostics,
                            com.atlassian.jira.diagnostics.*,
                            com.atlassian.jira.i18n,
                            com.atlassian.jira.instrumentation,
                            com.atlassian.jira.ipd.*,
                            com.atlassian.jira.issue.search.metrics,
                            com.atlassian.jira.license,
                            com.atlassian.jira.ofbiz,
                            com.atlassian.jira.scheduler.*;resolution:="optional",
                            com.atlassian.jira.security,
                            com.atlassian.jira.util.dbc,
                            com.atlassian.jira.util.thread,
                            com.atlassian.instrumentation,
                            com.atlassian.event.api,
                            com.atlassian.scheduler.caesium.spi,
                            com.atlassian.scheduler.core,
                            com.atlassian.query,
                            com.atlassian.scheduler,
                            com.atlassian.plugin,
                            com.atlassian.plugin.metadata,
                            com.atlassian.plugin.util,
                            com.google.common.collect,
                            com.google.common.base,
                            com.google.common.hash,
                            com.google.common.util.concurrent,
                            io.atlassian.util.concurrent,
                            org.codehaus.jackson,
                            org.codehaus.jackson.map,
                            org.codehaus.jackson.map.module,
                            org.eclipse.gemini.blueprint.context,
                            org.eclipse.gemini.blueprint.service.exporter,
                            org.eclipse.gemini.blueprint.service.exporter.support,
                            org.eclipse.gemini.blueprint.service.importer.support,
                            org.osgi.framework,
                            org.slf4j,
                            org.springframework.context,
                            org.springframework.context.annotation,
                            org.springframework.cglib.core,
                            org.springframework.cglib.proxy,
                            org.springframework.cglib.reflect,
                            org.springframework.beans,
                            org.springframework.beans.factory,
                            org.springframework.beans.factory.annotation,
                            org.springframework.scheduling.annotation,
                            org.springframework.stereotype
                        </Import-Package>
                        <!-- Don't use the * in Import-Package, not even with ;resolution="optional", the bind maven
                            plugin goes crazy and adds heaps of unused stuff, e.g. mongodb, logback, caffeine -->
                    </instructions>
                    <skipManifestValidation>true</skipManifestValidation>
                </configuration>
            </plugin>
        </plugins>
    </build>
</project>
