<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">
    <modelVersion>4.0.0</modelVersion>

    <description>Dependency-Track is an intelligent Software Supply Chain Component Analysis platform that allows organizations to identify and reduce risk from the use of third-party and open source components. This plug-in can publish supported Software Bill-of-Materials (SBOM) formats to Dependency-Track.</description>
    <url>https://github.com/jenkinsci/dependency-track-plugin</url>
    <parent>
        <groupId>org.jenkins-ci.plugins</groupId>
        <artifactId>plugin</artifactId>
        <version>4.88</version>
        <relativePath />
    </parent>

    <artifactId>dependency-track</artifactId>

    <name>OWASP Dependency-Track Plugin</name>
    <version>5.2.0</version>
    <packaging>hpi</packaging>
    <inceptionYear>2018</inceptionYear>
    <organization>
        <name>OWASP</name>
        <url>https://www.owasp.org</url>
    </organization>

    <developers>
        <developer>
            <name>Ronny Perinke</name>
            <id>sephirothj</id>
            <timezone>1</timezone>
        </developer>
    </developers>

    <licenses>
        <license>
            <name>Apache-2.0</name>
            <url>https://www.apache.org/licenses/LICENSE-2.0</url>
        </license>
    </licenses>

    <properties>
        <jenkins.version>2.440.1</jenkins.version>
        <hpi.compatibleSinceVersion>3.0.0</hpi.compatibleSinceVersion>
        <configuration-as-code.version>1836.vccda_4a_122a_a_e</configuration-as-code.version>
        <byte-buddy.version>1.15.3</byte-buddy.version>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <maven.javadoc.skip>true</maven.javadoc.skip>
        <npm.path>npm</npm.path>
        <npm.suffix />
        <spotbugs.excludeFilterFile>spotbugs-excludes.xml</spotbugs.excludeFilterFile>
    </properties>
    
    <profiles>
        <profile>
            <id>windows</id>
            <activation>
                <os>
                    <family>windows</family>
                </os>
            </activation>
            <properties>
                <npm.suffix>.cmd</npm.suffix>
            </properties>
        </profile>
        <profile>
            <id>install-node</id>
            <properties>
                <npm.path>${project.build.directory}/node/npm</npm.path>
            </properties>
            <activation>
                <property>
                    <name>env.JENKINS_URL</name>
                </property>
            </activation>
            <build>
                <plugins>
                    <plugin>
                        <groupId>com.github.eirslett</groupId>
                        <artifactId>frontend-maven-plugin</artifactId>
                        <version>1.15.1</version>
                        <executions>
                            <execution>
                                <id>install node and npm</id>
                                <goals>
                                    <goal>install-node-and-npm</goal>
                                </goals>
                                <phase>initialize</phase>
                                <configuration>
                                    <nodeVersion>v22.11.0</nodeVersion>
                                    <nodeDownloadRoot>https://repo.jenkins-ci.org/nodejs-dist/</nodeDownloadRoot>
                                    <npmRegistryURL>https://repo.jenkins-ci.org/api/npm/npm/</npmRegistryURL>
                                    <installDirectory>${project.build.directory}</installDirectory>
                                </configuration>
                            </execution>
                        </executions>
                    </plugin>
                </plugins>
            </build>
        </profile>
        <profile>
            <id>update-changelog</id>
            <build>
                <plugins>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-antrun-plugin</artifactId>
                        <executions>
                            <execution>
                                <id>update-changelog</id>
                                <goals>
                                    <goal>run</goal>
                                </goals>
                                <configuration>
                                    <target>
                                        <tstamp prefix="build">
                                            <format property="date" pattern="yyyy-MM-dd" />
                                        </tstamp>
                                        <echo level="info" message="Update CHANGELOG with version: v${project.version} - ${build.date}" />
                                        <replace file="CHANGELOG.md" encoding="${project.build.sourceEncoding}" summary="true">
                                            <replacetoken>[Unreleased]</replacetoken>
                                            <replacevalue><![CDATA[Unreleased
### ⚠ Breaking
### ⭐ New Features
### 🐞 Bugs Fixed

## v${project.version} - @build.date@]]></replacevalue>
                                        </replace>
                                        <!-- extra step is required because ${build.date} is not evaluated in previous replacevalue-element -->
                                        <replace file="CHANGELOG.md" encoding="${project.build.sourceEncoding}" token="@build.date@" value="${build.date}" />
                                    </target>
                                </configuration>
                            </execution>
                        </executions>
                    </plugin>
                </plugins>
            </build>
        </profile>
    </profiles>

    <build>
        <pluginManagement>
            <plugins>
                <plugin>
                    <groupId>org.sonarsource.scanner.maven</groupId>
                    <artifactId>sonar-maven-plugin</artifactId>
                    <version>5.0.0.4389</version>
                </plugin>
            </plugins>
        </pluginManagement>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <configuration>
                    <showDeprecation>true</showDeprecation>
                    <showWarnings>true</showWarnings>
                    <compilerArgs>
                        <arg>-Xlint:unchecked</arg>
                    </compilerArgs>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.jacoco</groupId>
                <artifactId>jacoco-maven-plugin</artifactId>
                <executions>
                    <execution>
                        <id>default-prepare-agent</id>
                        <goals>
                            <goal>prepare-agent</goal>
                        </goals>
                    </execution>
                    <execution>
                        <id>default-report</id>
                        <goals>
                            <goal>report</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-release-plugin</artifactId>
                <version>3.1.1</version>
                <configuration>
                    <localCheckout>true</localCheckout>
                    <tagNameFormat>v@{project.version}</tagNameFormat>
                    <preparationProfiles>update-changelog</preparationProfiles>
                    <preparationGoals>clean sync-packagejson-version:sync scm:checkin@checkin-package.json antrun:run@update-changelog scm:checkin@checkin-changelog verify</preparationGoals>
                    <completionGoals>sync-packagejson-version:sync scm:checkin@checkin-package.json</completionGoals>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-clean-plugin</artifactId>
                <configuration>
                    <filesets>
                        <fileset>
                            <directory>node_modules</directory>
                        </fileset>
                        <fileset>
                            <directory>${basedir}</directory>
                            <includes>
                                <include>package-lock.json</include>
                            </includes>
                        </fileset>
                        <fileset>
                            <directory>src/main/webapp/js/libs</directory>
                            <includes>
                                <include>bootstrap-vue.min.js</include>
                                <include>bootstrap-vue-icons.min.js</include>
                                <include>vue.min.js</include>
                                <include>echarts.esm.min.js</include>
                            </includes>
                        </fileset>
                        <fileset>
                            <directory>src/main/webapp/css</directory>
                            <includes>
                                <include>bootstrap.min.css</include>
                                <include>bootstrap-vue.min.css</include>
                            </includes>
                        </fileset>
                    </filesets>
                </configuration>
            </plugin>
            <plugin>
                <groupId>de.ingogriebsch.maven</groupId>
                <artifactId>sync-packagejson-version-maven-plugin</artifactId>
                <version>1.3.0</version>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-scm-plugin</artifactId>
                <version>2.1.0</version>
                <executions>
                    <execution>
                        <id>checkin-package.json</id>
                        <goals>
                            <goal>checkin</goal>
                        </goals>
                        <configuration>
                            <message>[maven-scm-plugin] updating package.json</message>
                            <includes>package.json</includes>
                        </configuration>
                    </execution>
                    <execution>
                        <id>checkin-changelog</id>
                        <goals>
                            <goal>checkin</goal>
                        </goals>
                        <configuration>
                            <message>[maven-scm-plugin] updating CHANGELOG.md</message>
                            <includes>CHANGELOG.md</includes>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>exec-maven-plugin</artifactId>
                <version>3.5.0</version>
                <executions>
                    <execution>
                        <id>npm install</id>
                        <goals>
                            <goal>exec</goal>
                        </goals>
                        <phase>generate-resources</phase>
                        <configuration>
                            <executable>${npm.path}${npm.suffix}</executable>
                            <arguments>install</arguments>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-resources-plugin</artifactId>
                <executions>
                    <execution>
                        <id>copy-js-libs</id>
                        <phase>process-resources</phase>
                        <goals>
                            <goal>copy-resources</goal>
                        </goals>
                        <configuration>
                            <outputDirectory>${basedir}/src/main/webapp/js/libs</outputDirectory>
                            <overwrite>true</overwrite>
                            <nonFilteredFileExtensions>js</nonFilteredFileExtensions>
                            <resources>
                                <resource>
                                    <directory>node_modules/bootstrap-vue/dist</directory>
                                    <includes>
                                        <include>bootstrap-vue.min.js</include>
                                        <include>bootstrap-vue-icons.min.js</include>
                                    </includes>
                                </resource>
                                <resource>
                                    <directory>node_modules/vue/dist</directory>
                                    <includes>
                                        <include>vue.min.js</include>
                                    </includes>
                                </resource>
                                <resource>
                                    <directory>node_modules/echarts/dist</directory>
                                    <includes>
                                        <include>echarts.esm.min.js</include>
                                    </includes>
                                </resource>
                            </resources>
                        </configuration>
                    </execution>
                    <execution>
                        <id>copy-css-libs</id>
                        <phase>process-resources</phase>
                        <goals>
                            <goal>copy-resources</goal>
                        </goals>
                        <configuration>
                            <outputDirectory>${basedir}/src/main/webapp/css</outputDirectory>
                            <overwrite>true</overwrite>
                            <nonFilteredFileExtensions>css</nonFilteredFileExtensions>
                            <resources>
                                <resource>
                                    <directory>node_modules/bootstrap/dist/css</directory>
                                    <includes>
                                        <include>bootstrap.min.css</include>
                                    </includes>
                                </resource>
                                <resource>
                                    <directory>node_modules/bootstrap-vue/dist</directory>
                                    <includes>
                                        <include>bootstrap-vue.min.css</include>
                                    </includes>
                                </resource>
                            </resources>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-enforcer-plugin</artifactId>
                <executions>
                    <execution>
                        <id>enforce npm-managed files exists</id>
                        <goals>
                            <goal>enforce</goal>
                        </goals>
                        <phase>verify</phase>
                        <configuration>
                            <rules>
                                <requireFilesExist>
                                    <files>
                                        <file>${project.build.directory}/${project.build.finalName}/js/libs/bootstrap-vue.min.js</file>
                                        <file>${project.build.directory}/${project.build.finalName}/js/libs/bootstrap-vue-icons.min.js</file>
                                        <file>${project.build.directory}/${project.build.finalName}/js/libs/vue.min.js</file>
                                        <file>${project.build.directory}/${project.build.finalName}/js/libs/echarts.esm.min.js</file>
                                        <file>${project.build.directory}/${project.build.finalName}/css/bootstrap.min.css</file>
                                        <file>${project.build.directory}/${project.build.finalName}/css/bootstrap-vue.min.css</file>
                                    </files>
                                </requireFilesExist>
                            </rules>
                            <fail>true</fail>
                        </configuration>
                    </execution>
                    <execution>
                        <id>display-info</id>
                        <configuration>
                            <rules>
                                <requireUpperBoundDeps>
                                    <excludes>
                                        <exclude>com.google.code.findbugs:annotations</exclude>
                                        <exclude>com.google.code.findbugs:jsr305</exclude>
                                        <exclude>com.google.guava:guava</exclude>
                                        <exclude>commons-logging:commons-logging</exclude>
                                        <exclude>javax.servlet:javax.servlet-api</exclude>
                                        <exclude>javax.servlet:servlet-api</exclude>
                                        <exclude>net.java.dev.jna:jna</exclude>
                                        <exclude>org.kohsuke:access-modifier-annotation</exclude>
                                        <exclude>com.github.spotbugs:spotbugs-annotations</exclude>
                                        <exclude>org.ow2.asm:asm</exclude>
                                        <exclude>net.bytebuddy:byte-buddy</exclude>
                                    </excludes>
                                </requireUpperBoundDeps>
                            </rules>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <artifactId>maven-surefire-plugin</artifactId>
                <configuration>
                    <statelessTestsetReporter implementation="org.apache.maven.plugin.surefire.extensions.junit5.JUnit5Xml30StatelessReporter">
                        <disable>false</disable>
                        <version>3.0</version>
                        <usePhrasedFileName>false</usePhrasedFileName>
                        <usePhrasedTestSuiteClassName>true</usePhrasedTestSuiteClassName>
                        <usePhrasedTestCaseClassName>true</usePhrasedTestCaseClassName>
                        <usePhrasedTestCaseMethodName>true</usePhrasedTestCaseMethodName>
                    </statelessTestsetReporter>
                    <consoleOutputReporter implementation="org.apache.maven.plugin.surefire.extensions.junit5.JUnit5ConsoleOutputReporter">
                        <disable>false</disable>
                        <encoding>${project.reporting.outputEncoding}</encoding>
                        <usePhrasedFileName>false</usePhrasedFileName>
                    </consoleOutputReporter>
                    <statelessTestsetInfoReporter implementation="org.apache.maven.plugin.surefire.extensions.junit5.JUnit5StatelessTestsetInfoReporter">
                        <disable>false</disable>
                        <usePhrasedFileName>false</usePhrasedFileName>
                        <usePhrasedClassNameInRunning>true</usePhrasedClassNameInRunning>
                        <usePhrasedClassNameInTestCaseSummary>true</usePhrasedClassNameInTestCaseSummary>
                    </statelessTestsetInfoReporter>
                </configuration>
            </plugin>
        </plugins>
    </build>

    <distributionManagement>
        <repository>
            <id>maven.jenkins-ci.org</id>
            <url>https://repo.jenkins-ci.org/releases/</url>
        </repository>
        <snapshotRepository>
            <id>maven.jenkins-ci.org</id>
            <url>https://repo.jenkins-ci.org/snapshots/</url>
        </snapshotRepository>
    </distributionManagement>

    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>net.bytebuddy</groupId>
                <artifactId>byte-buddy</artifactId>
                <version>${byte-buddy.version}</version>
            </dependency>
            <dependency>
                <groupId>net.bytebuddy</groupId>
                <artifactId>byte-buddy-agent</artifactId>
                <version>${byte-buddy.version}</version>
            </dependency>
        </dependencies>
    </dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>1.18.36</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>org.jenkins-ci.plugins</groupId>
            <artifactId>credentials</artifactId>
            <version>1378.v81ef4269d764</version>
        </dependency>
        <dependency>
            <groupId>org.jenkins-ci.plugins</groupId>
            <artifactId>plain-credentials</artifactId>
            <version>183.va_de8f1dd5a_2b_</version>
        </dependency>
        <dependency>
            <groupId>io.jenkins.plugins</groupId>
            <artifactId>okhttp-api</artifactId>
            <version>4.11.0-172.vda_da_1feeb_c6e</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.retry</groupId>
            <artifactId>spring-retry</artifactId>
            <version>1.3.4</version>
        </dependency>
        <dependency>
            <groupId>io.jenkins</groupId>
            <artifactId>configuration-as-code</artifactId>
            <version>${configuration-as-code.version}</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>io.jenkins.configuration-as-code</groupId>
            <artifactId>test-harness</artifactId>
            <version>${configuration-as-code.version}</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.assertj</groupId>
            <artifactId>assertj-core</artifactId>
            <version>[3.20.0,)</version>
            <scope>test</scope>
        </dependency>
        <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>io.projectreactor.netty</groupId>
            <artifactId>reactor-netty</artifactId>
            <version>[1.1.0,1.2.99)</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.junit.jupiter</groupId>
            <artifactId>junit-jupiter-engine</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.junit.jupiter</groupId>
            <artifactId>junit-jupiter-params</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>

    <scm>
        <connection>scm:git:${project.scm.url}</connection>
        <url>https://github.com/jenkinsci/dependency-track-plugin.git</url>
        <developerConnection>scm:git:${project.scm.url}</developerConnection>
        <tag>v5.2.0</tag>
    </scm>

    <issueManagement>
        <system>GitHub Issues</system>
        <url>https://github.com/jenkinsci/dependency-track-plugin/issues</url>
    </issueManagement>
    <ciManagement>
        <system>ci.jenkins.io</system>
        <url>https://ci.jenkins.io/job/Plugins/job/dependency-track-plugin</url>
    </ciManagement>

    <repositories>
        <repository>
            <id>repo.jenkins-ci.org</id>
            <url>https://repo.jenkins-ci.org/releases/</url>
        </repository>
    </repositories>

    <pluginRepositories>
        <pluginRepository>
            <id>repo.jenkins-ci.org</id>
            <url>https://repo.jenkins-ci.org/releases/</url>
        </pluginRepository>
    </pluginRepositories>

</project>
