<?xml version="1.0" encoding="UTF-8"?>
<!-- spotless:off -->
<!--
  ============LICENSE_START=======================================================
  Copyright (C) 2024 Ericsson
  Modifications Copyright (C) 2024 OpenInfra Foundation Europe
  ================================================================================
  Licensed under the Apache License, Version 2.0 (the "License");
  you may not use this file except in compliance with the License.
  You may obtain a copy of the License at

        http://www.apache.org/licenses/LICENSE-2.0

  Unless required by applicable law or agreed to in writing, software
  distributed under the License is distributed on an "AS IS" BASIS,
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  See the License for the specific language governing permissions and
  limitations under the License.

  SPDX-License-Identifier: Apache-2.0
  ============LICENSE_END=========================================================
-->
<!-- spotless:on -->
<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>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>3.2.0</version>
        <relativePath />
    </parent>
    <groupId>org.oran.smo</groupId>
    <artifactId>topology-exposure-inventory</artifactId>
    <version>0.1.0-SNAPSHOT</version>
    <packaging>pom</packaging>

    <licenses>
        <license>
            <name>The Apache Software License, Version 2.0</name>
            <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
        </license>
    </licenses>

    <modules>
        <module>yang-parser</module>
        <module>pgsql-schema-generator</module>
        <module>teiv</module>
    </modules>

    <properties>
        <!-- Set compiler Java version, MUST match the Dockerfile JDK version -->
        <maven.compiler.release>17</maven.compiler.release>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <!-- Versions of co-located functions to use-->
        <version.yang-parser-jar>1.1.0-SNAPSHOT</version.yang-parser-jar> <!--use current master snapshot version -->
        <!-- 3PP Versions -->
        <version.jackson-databind-nullable>0.2.6</version.jackson-databind-nullable>
        <version.lombok>1.18.26</version.lombok>
        <version.logback>6.6</version.logback>
        <!-- Updated from 1.9.0 to comply with CVE-2022-36437 -->
        <version.micrometer>1.10.6</version.micrometer>
        <version.cloudevents-kafka>2.5.0</version.cloudevents-kafka>
        <version.cloudevents-json-jackson>2.5.0</version.cloudevents-json-jackson>
        <version.springdoc-openapi>2.1.0</version.springdoc-openapi>
        <!-- Updated from version 1.33 to comply with CVE-2022-1471 -->
        <version.postgresql>42.5.4</version.postgresql>
        <jooq.version>3.18.6</jooq.version>
        <version.saxpath>1.0-FCS</version.saxpath>
        <!-- External Yang model source prefix URI -->
        <source.3gpp.Rel18_SA103>https://forge.3gpp.org/rep/sa5/MnS/-/raw/Tag_Rel18_SA103/yang-models/</source.3gpp.Rel18_SA103>
        <source.3gpp.Rel18_SA98>https://forge.3gpp.org/rep/sa5/MnS/-/raw/Tag_Rel18_SA98/yang-models/</source.3gpp.Rel18_SA98>
        <source.3gpp.Rel17_SA97>https://forge.3gpp.org/rep/sa5/MnS/-/raw/Tag_Rel17_SA97/yang-models/</source.3gpp.Rel17_SA97>
        <source.3gpp.Rel17_SA91>https://forge.3gpp.org/rep/sa5/MnS/-/raw/Rel-17-SA-91/yang-models/</source.3gpp.Rel17_SA91>
        <source.ietfcatalog>https://www.ietf.org/ietf-ftp/yang/catalogmod/</source.ietfcatalog>

        <!-- Test Dependencies -->
        <version.spring-cloud>2023.0.0</version.spring-cloud>
        <version.mockitoinline>5.2.0</version.mockitoinline>
        <version.testcontainers>1.18.0</version.testcontainers>
        <!-- Plugin Dependencies -->
        <version.openapi-generator-maven-plugin>7.7.0</version.openapi-generator-maven-plugin>
        <version.spotless-plugin>2.30.0</version.spotless-plugin>
        <version.contract-documentation-generator-mvn-plugin>1.0.1</version.contract-documentation-generator-mvn-plugin>
        <version.asciidoctor-maven-plugin>2.2.1</version.asciidoctor-maven-plugin>
        <version.spring-cloud-starter-contract-verifier>3.0.2</version.spring-cloud-starter-contract-verifier>
        <version.reactor-test>3.2.3.RELEASE</version.reactor-test>
        <!-- Updated from 3.0 to comply with CVE-2023-20861, CVE-2022-22971 & 17
            more -->
        <version.license-maven-plugin>4.2</version.license-maven-plugin>
        <version.sonar-maven-plugin>3.9.1.2184</version.sonar-maven-plugin>
        <version.antrun-maven-plugin>3.1.0</version.antrun-maven-plugin>
        <version.antlr>4.13.0</version.antlr>
        <docker-maven-plugin>0.43.4</docker-maven-plugin>
        <!-- JaCoCo plugin for Java Code Coverage -->
        <version.jacoco-maven.plugin>0.8.8</version.jacoco-maven.plugin>
        <!-- Minimum ratio or percentage of instructions to be covered, used by
            JaCoCo plugin. Industry standard is 0.8 or 80% which allows at least 80%
            of the code to be covered by the test cases. -->
        <jacoco-maven-plugin.coveredratio.minimum>0.8</jacoco-maven-plugin.coveredratio.minimum>
    </properties>
    <build>
        <pluginManagement>
            <plugins>
                <plugin>
                    <groupId>com.mycila</groupId>
                    <artifactId>license-maven-plugin</artifactId>
                    <version>${version.license-maven-plugin}</version>
                    <configuration>
                        <licenseSets>
                            <licenseSet>
                                <header>${project.parent.basedir}/license/copyright-2024.txt</header>
                                <validHeaders>
                                    <validHeader>${project.parent.basedir}/license/copyright-2024.txt</validHeader>
                                </validHeaders>
                                <excludes>
                                    <exclude>**/*.html</exclude>
                                    <exclude>**/*.tpl</exclude>
                                    <exclude>**/*.tgz</exclude>
                                    <exclude>**/VERSION*</exclude>
                                    <exclude>license/copyright*</exclude>
                                    <exclude>**/*.txt</exclude>
                                    <exclude>**/*.config</exclude>
                                    <exclude>**/*.yang</exclude>
                                    <exclude>settings.xml</exclude>
                                    <exclude>**/*.openapi-generator-ignore</exclude>
                                    <exclude>**/src/main/resources/v1/.openapi-generator/*</exclude>
                                    <exclude>generated/*</exclude>
                                    <exclude>generated*/</exclude>
                                    <exclude>dependencies/*</exclude>
                                    <exclude>dependencies*/</exclude>
                                    <exclude>teiv/src/main/resources/v1/**/*.html</exclude>
                                    <exclude>teiv/src/main/resources/v1/topology-exposure-inventory-openapi.json</exclude>
                                </excludes>
                            </licenseSet>
                        </licenseSets>
                        <headerDefinitions>
                            <headerDefinition>${project.parent.basedir}/license/javaHeaderDefinition.xml</headerDefinition>
                            <headerDefinition>${project.parent.basedir}/license/xmlHeaderDefinition.xml</headerDefinition>
                        </headerDefinitions>
                        <mapping>
                            <java>JAVADOC_STYLE</java>
                            <groovy>JAVADOC_STYLE</groovy>
                            <g4>JAVADOC_STYLE</g4>
                            <xml>XML_STYLE</xml>
                        </mapping>
                    </configuration>
                </plugin>
                <plugin>
                    <groupId>org.sonarsource.scanner.maven</groupId>
                    <artifactId>sonar-maven-plugin</artifactId>
                    <version>${version.sonar-maven-plugin}</version>
                </plugin>
            </plugins>
        </pluginManagement>
        <plugins>
            <plugin>
                <groupId>com.diffplug.spotless</groupId>
                <artifactId>spotless-maven-plugin</artifactId>
                <version>${version.spotless-plugin}</version>
                <configuration>
                    <formats>
                        <format>
                            <includes>
                                <include>pom.xml</include>
                            </includes>
                            <eclipseWtp>
                                <type>XML</type>
                            </eclipseWtp>
                            <toggleOffOn>
                                <off>spotless:off</off>
                                <on>spotless:on</on>
                            </toggleOffOn>
                            <indent>
                                <spaces>true</spaces>
                                <spacesPerTab>4</spacesPerTab>
                            </indent>
                            <trimTrailingWhitespace />
                            <endWithNewline />
                        </format>
                        <format>
                            <includes>
                                <include>**/*.json</include>
                            </includes>
                            <excludes>
                                <exclude>target/**/*.json</exclude>
                                <exclude>build/**/*.json</exclude>
                                <!--generated -->
                                <exclude>**/resources/v1/topology-exposure-inventory-openapi.json</exclude> 
                            </excludes>
                            <eclipseWtp>
                                <type>JSON</type>
                            </eclipseWtp>
                            <endWithNewline />
                            <indent>
                                <spaces>true</spaces>
                                <spacesPerTab>4</spacesPerTab>
                            </indent>
                            <trimTrailingWhitespace />
                        </format>
                    </formats>
                    <java>
                        <eclipse>
                            <file>${project.parent.basedir}/code_conventions.xml</file>
                        </eclipse>
                        <toggleOffOn>
                            <off>spotless:off</off>
                            <on>spotless:on</on>
                        </toggleOffOn>
                        <trimTrailingWhitespace />
                        <removeUnusedImports />
                        <endWithNewline />
                        <licenseHeader>
                            <file>${project.parent.basedir}/CopyrightSample.txt</file>
                        </licenseHeader>
                    </java>
                    <groovy>
                        <includes>
                            <include>**/*.groovy</include>
                        </includes>
                        <greclipse>
                            <file>${project.parent.basedir}/code_conventions.xml</file>
                        </greclipse>
                        <licenseHeader>
                            <file>${project.parent.basedir}/CopyrightSample.txt</file>
                        </licenseHeader>
                        <endWithNewline />
                    </groovy>
                </configuration>
            </plugin>
        </plugins>
    </build>
</project>
