<?xml version="1.0" encoding="UTF-8"?>
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <modelVersion>4.0.0</modelVersion>
  <parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>3.4.1</version>
  </parent>
  <groupId>org.qubership</groupId>
  <artifactId>qip-runtime-catalog</artifactId>
  <version>0.2.0</version>
  <name>QIP Runtime Catalog</name>
  <licenses>
    <license>
      <name>Apache License, Version 2.0</name>
      <url>https://www.apache.org/licenses/LICENSE-2.0</url>
    </license>
  </licenses>
  <distributionManagement>
    <repository>
      <id>central</id>
      <name>Central Maven Repository</name>
    </repository>
  </distributionManagement>
  <properties>
    <jackson-bom.version>2.17.0</jackson-bom.version>
    <google-guava.version>32.1.3-jre</google-guava.version>
    <qip-checkstyle-revision>0.0.2</qip-checkstyle-revision>
    <antlr4.version>4.13.1</antlr4.version>
    <flatten-maven-plugin.version>1.5.0</flatten-maven-plugin.version>
    <spring-cloud.version>2024.0.0</spring-cloud.version>
    <values-schema-json-plugin.version>1.1.1</values-schema-json-plugin.version>
    <springdoc.version>2.6.0</springdoc.version>
    <mapstruct.version>1.5.5.Final</mapstruct.version>
    <commons-lang3.version>3.14.0</commons-lang3.version>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <postgres-driver.version>42.7.2</postgres-driver.version>
    <kubernetes-client-java.version>19.0.2</kubernetes-client-java.version>
    <handlebars.version>4.3.1</handlebars.version>
    <atlasmap.version>2.5.2</atlasmap.version>
    <jacoco-plugin.version>0.8.11</jacoco-plugin.version>
    <json.version>20231013</json.version>
    <catalog-library.revision>0.2.0</catalog-library.revision>
    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
    <revision>0.2.0</revision>
    <wire.version>4.9.3</wire.version>
    <lombok.version>1.18.30</lombok.version>
    <commons-text.version>1.11.0</commons-text.version>
    <okio.version>3.6.0</okio.version>
    <mockito-inline.version>5.2.0</mockito-inline.version>
    <logback-gelf.version>5.0.1</logback-gelf.version>
    <lombok-mapstruct-binding.version>0.2.0</lombok-mapstruct-binding.version>
    <dhatim.fastexcel.version>0.16.4</dhatim.fastexcel.version>
  </properties>
  <dependencyManagement>
    <dependencies>
      <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-dependencies</artifactId>
        <version>${spring-cloud.version}</version>
        <type>pom</type>
        <scope>import</scope>
      </dependency>
      <dependency>
        <groupId>com.fasterxml.jackson</groupId>
        <artifactId>jackson-bom</artifactId>
        <version>${jackson-bom.version}</version>
        <type>pom</type>
        <scope>import</scope>
      </dependency>
      <dependency>
        <groupId>org.springdoc</groupId>
        <artifactId>springdoc-openapi-starter-webmvc-ui</artifactId>
        <version>${springdoc.version}</version>
      </dependency>
      <dependency>
        <groupId>org.qubership</groupId>
        <artifactId>qip-catalog-library</artifactId>
        <version>${catalog-library.revision}</version>
      </dependency>
      <dependency>
        <groupId>org.postgresql</groupId>
        <artifactId>postgresql</artifactId>
        <version>${postgres-driver.version}</version>
      </dependency>
      <dependency>
        <groupId>org.projectlombok</groupId>
        <artifactId>lombok</artifactId>
        <version>${lombok.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.commons</groupId>
        <artifactId>commons-lang3</artifactId>
        <version>${commons-lang3.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.commons</groupId>
        <artifactId>commons-text</artifactId>
        <version>${commons-text.version}</version>
      </dependency>
      <dependency>
        <groupId>de.siegmar</groupId>
        <artifactId>logback-gelf</artifactId>
        <version>${logback-gelf.version}</version>
      </dependency>
      <dependency>
        <groupId>io.atlasmap</groupId>
        <artifactId>atlas-core</artifactId>
        <version>${atlasmap.version}</version>
      </dependency>
      <dependency>
        <groupId>io.atlasmap</groupId>
        <artifactId>atlas-json-model</artifactId>
        <version>${atlasmap.version}</version>
      </dependency>
      <dependency>
        <groupId>io.atlasmap</groupId>
        <artifactId>atlas-json-module</artifactId>
        <version>${atlasmap.version}</version>
      </dependency>
      <dependency>
        <groupId>io.atlasmap</groupId>
        <artifactId>atlas-xml-model</artifactId>
        <version>${atlasmap.version}</version>
      </dependency>
      <dependency>
        <groupId>io.atlasmap</groupId>
        <artifactId>atlas-xml-module</artifactId>
        <version>${atlasmap.version}</version>
      </dependency>
      <dependency>
        <groupId>com.github.jknack</groupId>
        <artifactId>handlebars</artifactId>
        <version>${handlebars.version}</version>
      </dependency>
      <dependency>
        <groupId>org.json</groupId>
        <artifactId>json</artifactId>
        <version>${json.version}</version>
      </dependency>
      <dependency>
        <groupId>org.mockito</groupId>
        <artifactId>mockito-core</artifactId>
        <version>${mockito-inline.version}</version>
        <scope>test</scope>
      </dependency>
      <dependency>
        <groupId>org.mockito</groupId>
        <artifactId>mockito-inline</artifactId>
        <version>${mockito-inline.version}</version>
        <scope>test</scope>
      </dependency>
      <dependency>
        <groupId>io.kubernetes</groupId>
        <artifactId>client-java-api-fluent</artifactId>
        <version>${kubernetes-client-java.version}</version>
      </dependency>
      <dependency>
        <groupId>io.kubernetes</groupId>
        <artifactId>client-java</artifactId>
        <version>${kubernetes-client-java.version}</version>
      </dependency>
      <dependency>
        <groupId>io.micrometer</groupId>
        <artifactId>micrometer-registry-prometheus</artifactId>
        <version>${micrometer.version}</version>
      </dependency>
      <dependency>
        <groupId>com.google.guava</groupId>
        <artifactId>guava</artifactId>
        <version>${google-guava.version}</version>
      </dependency>
      <dependency>
        <groupId>com.squareup.okio</groupId>
        <artifactId>okio-jvm</artifactId>
        <version>${okio.version}</version>
      </dependency>
      <dependency>
        <groupId>com.squareup.okio</groupId>
        <artifactId>okio-fakefilesystem-jvm</artifactId>
        <version>${okio.version}</version>
      </dependency>
      <dependency>
        <groupId>org.dhatim</groupId>
        <artifactId>fastexcel</artifactId>
        <version>${dhatim.fastexcel.version}</version>
      </dependency>
    </dependencies>
  </dependencyManagement>
  <dependencies>
    <dependency>
      <groupId>org.qubership</groupId>
      <artifactId>qip-catalog-library</artifactId>
    </dependency>
    <dependency>
      <groupId>org.flywaydb</groupId>
      <artifactId>flyway-database-postgresql</artifactId>
    </dependency>
    <dependency>
      <groupId>org.springframework.cloud</groupId>
      <artifactId>spring-cloud-starter-consul-config</artifactId>
    </dependency>
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-actuator</artifactId>
    </dependency>
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-actuator-autoconfigure</artifactId>
    </dependency>
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-test</artifactId>
    </dependency>
    <dependency>
      <groupId>org.springdoc</groupId>
      <artifactId>springdoc-openapi-starter-webmvc-ui</artifactId>
    </dependency>
    <dependency>
      <groupId>org.springframework.retry</groupId>
      <artifactId>spring-retry</artifactId>
    </dependency>
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-validation</artifactId>
    </dependency>
    <dependency>
      <groupId>org.postgresql</groupId>
      <artifactId>postgresql</artifactId>
    </dependency>
    <dependency>
      <groupId>org.apache.commons</groupId>
      <artifactId>commons-lang3</artifactId>
    </dependency>
    <dependency>
      <groupId>org.apache.commons</groupId>
      <artifactId>commons-text</artifactId>
    </dependency>
    <dependency>
      <groupId>de.siegmar</groupId>
      <artifactId>logback-gelf</artifactId>
    </dependency>
    <dependency>
      <groupId>io.atlasmap</groupId>
      <artifactId>atlas-core</artifactId>
    </dependency>
    <dependency>
      <groupId>io.atlasmap</groupId>
      <artifactId>atlas-json-model</artifactId>
    </dependency>
    <dependency>
      <groupId>io.atlasmap</groupId>
      <artifactId>atlas-json-module</artifactId>
    </dependency>
    <dependency>
      <groupId>io.atlasmap</groupId>
      <artifactId>atlas-xml-model</artifactId>
    </dependency>
    <dependency>
      <groupId>io.atlasmap</groupId>
      <artifactId>atlas-xml-module</artifactId>
    </dependency>
    <dependency>
      <groupId>com.github.jknack</groupId>
      <artifactId>handlebars</artifactId>
    </dependency>
    <dependency>
      <groupId>org.json</groupId>
      <artifactId>json</artifactId>
    </dependency>
    <dependency>
      <groupId>org.junit.jupiter</groupId>
      <artifactId>junit-jupiter-engine</artifactId>
    </dependency>
    <dependency>
      <groupId>org.xmlunit</groupId>
      <artifactId>xmlunit-core</artifactId>
    </dependency>
    <dependency>
      <groupId>org.xmlunit</groupId>
      <artifactId>xmlunit-matchers</artifactId>
    </dependency>
    <dependency>
      <groupId>org.mockito</groupId>
      <artifactId>mockito-core</artifactId>
    </dependency>
    <dependency>
      <groupId>org.mockito</groupId>
      <artifactId>mockito-inline</artifactId>
    </dependency>
    <dependency>
      <groupId>io.kubernetes</groupId>
      <artifactId>client-java-api-fluent</artifactId>
    </dependency>
    <dependency>
      <groupId>io.kubernetes</groupId>
      <artifactId>client-java</artifactId>
    </dependency>
    <dependency>
      <groupId>io.micrometer</groupId>
      <artifactId>micrometer-registry-prometheus</artifactId>
    </dependency>
    <dependency>
      <groupId>com.fasterxml.jackson.datatype</groupId>
      <artifactId>jackson-datatype-jsr310</artifactId>
    </dependency>
    <dependency>
      <groupId>com.squareup.okio</groupId>
      <artifactId>okio-jvm</artifactId>
    </dependency>
    <dependency>
      <groupId>com.squareup.okio</groupId>
      <artifactId>okio-fakefilesystem-jvm</artifactId>
    </dependency>
    <dependency>
      <groupId>org.dhatim</groupId>
      <artifactId>fastexcel</artifactId>
    </dependency>
    <dependency>
      <groupId>io.opentelemetry</groupId>
      <artifactId>opentelemetry-api</artifactId>
    </dependency>
    <dependency>
      <groupId>io.opentelemetry</groupId>
      <artifactId>opentelemetry-extension-trace-propagators</artifactId>
    </dependency>
    <dependency>
      <groupId>io.micrometer</groupId>
      <artifactId>micrometer-tracing-bridge-otel</artifactId>
    </dependency>
    <dependency>
      <groupId>io.opentelemetry</groupId>
      <artifactId>opentelemetry-exporter-otlp</artifactId>
    </dependency>
  </dependencies>
  <build>
    <testResources>
      <testResource>
        <directory>${pom.basedir}/src/test/resources</directory>
      </testResource>
      <testResource>
        <directory>${pom.basedir}/src/main/resources</directory>
      </testResource>
    </testResources>
    <plugins>
      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>flatten-maven-plugin</artifactId>
        <version>${flatten-maven-plugin.version}</version>
        <executions>
          <execution>
            <id>flatten</id>
            <phase>process-resources</phase>
            <goals>
              <goal>flatten</goal>
            </goals>
          </execution>
          <execution>
            <id>flatten.clean</id>
            <phase>clean</phase>
            <goals>
              <goal>clean</goal>
            </goals>
          </execution>
        </executions>
        <configuration>
          <updatePomFile>true</updatePomFile>
          <flattenMode>resolveCiFriendliesOnly</flattenMode>
        </configuration>
      </plugin>
      <plugin>
        <groupId>org.jacoco</groupId>
        <artifactId>jacoco-maven-plugin</artifactId>
        <version>${jacoco-plugin.version}</version>
        <executions>
          <execution>
            <id>prepare-agent</id>
            <goals>
              <goal>prepare-agent</goal>
            </goals>
            <configuration>
              <append>true</append>
            </configuration>
          </execution>
          <execution>
            <id>report</id>
            <goals>
              <goal>report</goal>
            </goals>
          </execution>
        </executions>
        <configuration>
          <outputDirectory>target/jacoco-ut</outputDirectory>
        </configuration>
      </plugin>
      <plugin>
        <groupId>org.antlr</groupId>
        <artifactId>antlr4-maven-plugin</artifactId>
        <version>${antlr4.version}</version>
        <executions>
          <execution>
            <id>antlr</id>
            <goals>
              <goal>antlr4</goal>
            </goals>
          </execution>
        </executions>
        <configuration>
          <visitor>true</visitor>
        </configuration>
      </plugin>
      <plugin>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-maven-plugin</artifactId>
        <executions>
          <execution>
            <goals>
              <goal>build-info</goal>
            </goals>
          </execution>
          <execution>
            <id>repackage</id>
            <configuration>
              <classifier>exec</classifier>
            </configuration>
          </execution>
        </executions>
        <configuration>
          <mainClass>org.qubership.integration.platform.runtime.catalog.RuntimeCatalogApplicationRunner</mainClass>
          <skip>false</skip>
          <profiles>
            <profile>development</profile>
          </profiles>
          <jvmArguments>-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=18085</jvmArguments>
        </configuration>
      </plugin>
      <plugin>
        <artifactId>maven-dependency-plugin</artifactId>
        <executions>
          <execution>
            <phase>prepare-package</phase>
            <goals>
              <goal>list</goal>
            </goals>
            <configuration>
              <outputFile>${project.build.directory}/classes/maven-dependency-list.txt</outputFile>
              <includeScope>runtime</includeScope>
              <sort>true</sort>
            </configuration>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <artifactId>maven-compiler-plugin</artifactId>
        <configuration>
          <source>21</source>
          <target>21</target>
          <annotationProcessorPaths>
            <path>
              <groupId>org.projectlombok</groupId>
              <artifactId>lombok</artifactId>
              <version>${lombok.version}</version>
            </path>
            <path>
              <groupId>org.projectlombok</groupId>
              <artifactId>lombok-mapstruct-binding</artifactId>
              <version>${lombok-mapstruct-binding.version}</version>
            </path>
            <path>
              <groupId>org.mapstruct</groupId>
              <artifactId>mapstruct-processor</artifactId>
              <version>${mapstruct.version}</version>
            </path>
          </annotationProcessorPaths>
        </configuration>
      </plugin>
      <plugin>
        <artifactId>maven-surefire-plugin</artifactId>
      </plugin>
      <plugin>
        <groupId>org.sonatype.central</groupId>
        <artifactId>central-publishing-maven-plugin</artifactId>
        <version>0.6.0</version>
        <extensions>true</extensions>
        <configuration>
          <publishingServerId>central</publishingServerId>
          <autoPublish>true</autoPublish>
          <waitUntil>published</waitUntil>
        </configuration>
      </plugin>
      <plugin>
        <artifactId>maven-gpg-plugin</artifactId>
        <version>3.2.7</version>
        <executions>
          <execution>
            <id>sign-artifacts</id>
            <phase>verify</phase>
            <goals>
              <goal>sign</goal>
            </goals>
          </execution>
        </executions>
        <configuration>
          <gpgArguments>
            <arg>--pinentry-mode</arg>
            <arg>loopback</arg>
          </gpgArguments>
        </configuration>
      </plugin>
      <plugin>
        <artifactId>maven-source-plugin</artifactId>
        <version>3.3.0</version>
        <executions>
          <execution>
            <id>attach-sources</id>
            <goals>
              <goal>jar-no-fork</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <artifactId>maven-javadoc-plugin</artifactId>
        <version>3.7.0</version>
        <executions>
          <execution>
            <id>attach-javadocs</id>
            <goals>
              <goal>jar</goal>
            </goals>
          </execution>
        </executions>
        <configuration>
          <failOnError>false</failOnError>
          <doclint>none</doclint>
        </configuration>
      </plugin>
      <plugin>
        <artifactId>maven-checkstyle-plugin</artifactId>
        <executions>
          <execution>
            <phase>compile</phase>
            <goals>
              <goal>check</goal>
            </goals>
          </execution>
        </executions>
        <dependencies>
          <dependency>
            <groupId>com.puppycrawl.tools</groupId>
            <artifactId>checkstyle</artifactId>
            <version>9.3</version>
          </dependency>
          <dependency>
            <groupId>org.qubership</groupId>
            <artifactId>qip-checkstyle</artifactId>
            <version>${qip-checkstyle-revision}</version>
          </dependency>
        </dependencies>
        <configuration>
          <configLocation>checkstyle.xml</configLocation>
          <consoleOutput>true</consoleOutput>
          <violationSeverity>warning</violationSeverity>
          <failOnViolation>true</failOnViolation>
          <linkXRef>false</linkXRef>
          <maxAllowedViolations>0</maxAllowedViolations>
          <excludeGeneratedSources>true</excludeGeneratedSources>
          <includeTestSourceDirectory>true</includeTestSourceDirectory>
        </configuration>
      </plugin>
    </plugins>
  </build>
</project>
