<?xml version="1.0" encoding="UTF-8"?>
<!-- Copyright (c) 2023, 2024, Oracle and/or its affiliates. -->
<!-- Licensed under the Universal Permissive License v 1.0 as shown at https://oss.oracle.com/licenses/upl. -->
<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>
  <groupId>com.oracle.database.spring</groupId>
  <artifactId>oracle-spring-boot-starters</artifactId>
  <version>24.2.0</version>

  <parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>3.2.7</version>
    <relativePath/> <!-- lookup parent from repository -->
  </parent>

  <packaging>pom</packaging>

  <name>Oracle Spring Boot Starters - General parent module</name>
  <description>
    Global parent pom.xml to be used by Oracle Spring Boot Starters modules.
  </description>
  <url>https://github.com/oracle/microservices-datadriven/tree/main/spring/oracle-spring-boot-starters</url>

  <organization>
    <name>Oracle America, Inc.</name>
    <url>https://www.oracle.com</url>
  </organization>

  <developers>
    <developer>
      <name>Oracle</name>
      <email>obaas_ww at oracle.com</email>
      <organization>Oracle America, Inc.</organization>
      <organizationUrl>https://www.oracle.com</organizationUrl>
    </developer>
  </developers>

  <licenses>
    <license>
      <name>The Universal Permissive License (UPL), Version 1.0</name>
      <url>https://oss.oracle.com/licenses/upl/</url>
      <distribution>repo</distribution>
    </license>
  </licenses>

  <scm>
    <url>https://github.com/oracle/spring-cloud-oracle</url>
    <connection>scm:git:https://github.com/oracle/spring-cloud-oracle.git</connection>
    <developerConnection>scm:git:git@github.com:oracle/spring-cloud-oracle.git</developerConnection>
  </scm>

  <modules>
    <module>oracle-spring-boot-starter-ucp</module>
    <module>oracle-spring-boot-starter-aqjms</module>
    <module>oracle-spring-boot-starter-json-collections</module>
    <module>oracle-spring-boot-starter-samples</module>
  </modules>

  <properties>
    <spring-boot-dependencies.version>3.2.7</spring-boot-dependencies.version>
    <spring-framework-bom.version>6.1.10</spring-framework-bom.version>

    <java.version>17</java.version>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
    <project.root>${basedir}</project.root>
    <maven.compiler.target>${java.version}</maven.compiler.target>
    <maven.compiler.source>${java.version}</maven.compiler.source>

    <ojdbc.version>23.5.0.24.07</ojdbc.version>
    <oracledb-messaging.version>23.3.1.0</oracledb-messaging.version>
    <jta.version>2.0.1</jta.version>
    <micrometer.version>1.11.5</micrometer.version>
    <micrometer-tracing.version>1.1.6</micrometer-tracing.version>
    <junit5.version>5.9.3</junit5.version>
    <testcontainers.version>1.20.1</testcontainers.version>
    <jackson.version>2.15.3</jackson.version>
    <jakarta.json-api.version>2.1.3</jakarta.json-api.version>
    <jakarta.json.bind-api.version>3.0.1</jakarta.json.bind-api.version>
    <orajsoda.version>1.1.7.3</orajsoda.version>
    <parrson.version>1.1.7</parrson.version>
    <yasson.version>3.0.4</yasson.version>

    <build-helper-maven-plugin.version>3.6.0</build-helper-maven-plugin.version>
    <maven-source-plugin.version>3.3.1</maven-source-plugin.version>
    <maven-javadoc-plugin.version>3.7.0</maven-javadoc-plugin.version>
    <maven-jar-plugin.version>3.4.1</maven-jar-plugin.version>

    <!-- Distribution management -->
    <repository.id>artifactory</repository.id>
    <repository.name>spring-cloud-oci-releases</repository.name>
    <repository.url>changeme</repository.url>
  </properties>

  <dependencyManagement>
    <dependencies>
      <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-configuration-processor</artifactId>
        <version>${spring-boot-dependencies.version}</version>
      </dependency>
      <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-jdbc</artifactId>
        <version>${spring-boot-dependencies.version}</version>
      </dependency>
      <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-framework-bom</artifactId>
        <version>${spring-framework-bom.version}</version>
        <type>pom</type>
        <scope>import</scope>
      </dependency>
      <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot</artifactId>
        <version>${spring-boot-dependencies.version}</version>
        <type>pom</type>
        <scope>import</scope>
      </dependency>
      <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-dependencies</artifactId>
        <version>${spring-boot-dependencies.version}</version>
        <type>pom</type>
        <scope>import</scope>
      </dependency>
      <dependency>
        <groupId>com.oracle.database.jdbc</groupId>
        <artifactId>ojdbc11</artifactId>
        <version>${ojdbc.version}</version>
      </dependency>
      <dependency>
        <groupId>com.oracle.database.jdbc</groupId>
        <artifactId>ucp</artifactId>
        <version>${ojdbc.version}</version>
      </dependency>
      <dependency>
        <groupId>com.oracle.database.messaging</groupId>
        <artifactId>aqapi-jakarta</artifactId>
        <version>${oracledb-messaging.version}</version>
        <type>pom</type>
        <scope>import</scope>
      </dependency>
      <dependency>
        <groupId>jakarta.transaction</groupId>
        <artifactId>jakarta.transaction-api</artifactId>
        <version>${jta.version}</version>
        <type>pom</type>
        <scope>import</scope>
      </dependency>
      <dependency>
        <groupId>io.micrometer</groupId>
        <artifactId>micrometer-bom</artifactId>
        <version>${micrometer.version}</version>
        <type>pom</type>
        <scope>import</scope>
      </dependency>
      <dependency>
        <groupId>io.micrometer</groupId>
        <artifactId>micrometer-tracing-bom</artifactId>
        <version>${micrometer-tracing.version}</version>
        <type>pom</type>
        <scope>import</scope>
      </dependency>
      <dependency>
        <groupId>com.fasterxml.jackson</groupId>
        <artifactId>jackson-bom</artifactId>
        <version>${jackson.version}</version>
        <type>pom</type>
        <scope>import</scope>
      </dependency>
      <dependency>
        <groupId>org.junit</groupId>
        <artifactId>junit-bom</artifactId>
        <version>${junit5.version}</version>
        <type>pom</type>
        <scope>import</scope>
      </dependency>
      <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter</artifactId>
        <scope>compile</scope>
        <version>${spring-boot-dependencies.version}</version>
      </dependency>
      <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
        <scope>compile</scope>
        <version>${spring-boot-dependencies.version}</version>
      </dependency>

      <dependency>
        <groupId>com.oracle.database.soda</groupId>
        <artifactId>orajsoda</artifactId>
        <version>${orajsoda.version}</version>
      </dependency>

      <dependency>
        <groupId>jakarta.json</groupId>
        <artifactId>jakarta.json-api</artifactId>
        <version>${jakarta.json-api.version}</version>
      </dependency>

      <dependency>
        <groupId>org.eclipse.parsson</groupId>
        <artifactId>parsson</artifactId>
        <version>${parrson.version}</version>
      </dependency>

      <dependency>
        <groupId>jakarta.json.bind</groupId>
        <artifactId>jakarta.json.bind-api</artifactId>
        <version>${jakarta.json.bind-api.version}</version>
      </dependency>

      <dependency>
        <groupId>org.eclipse</groupId>
        <artifactId>yasson</artifactId>
        <version>${yasson.version}</version>
      </dependency>

      <!-- Test -->
      <dependency>
        <groupId>org.junit.jupiter</groupId>
        <artifactId>junit-jupiter</artifactId>
        <scope>test</scope>
      </dependency>

      <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-test</artifactId>
        <scope>test</scope>
      </dependency>

      <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
        <version>${spring-boot-dependencies.version}</version>
        <scope>test</scope>
      </dependency>

      <dependency>
        <groupId>org.testcontainers</groupId>
        <artifactId>junit-jupiter</artifactId>
        <version>${testcontainers.version}</version>
        <scope>test</scope>
      </dependency>

      <dependency>
        <groupId>org.testcontainers</groupId>
        <artifactId>testcontainers</artifactId>
        <version>${testcontainers.version}</version>
        <scope>test</scope>
      </dependency>

      <dependency>
        <groupId>org.testcontainers</groupId>
        <artifactId>oracle-free</artifactId>
        <version>${testcontainers.version}</version>
        <scope>test</scope>
      </dependency>

      <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-data-jdbc</artifactId>
        <version>${spring-boot-dependencies.version}</version>
        <scope>test</scope>
      </dependency>

      <dependency>
        <groupId>org.projectlombok</groupId>
        <artifactId>lombok</artifactId>
        <version>${lombok.version}</version>
        <scope>provided</scope>
      </dependency>
    </dependencies>
  </dependencyManagement>


  <build>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>${maven-compiler-plugin.version}</version>
        <configuration>
          <release>${java.version}</release>
        </configuration>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-javadoc-plugin</artifactId>
        <version>${maven-javadoc-plugin.version}</version>
        <configuration>
          <skip>false</skip>
          <author>true</author>
          <header>${project.name}</header>
          <reportOutputDirectory>${project.build.directory}/site/${project.version}/apidocs</reportOutputDirectory>
          <excludePackageNames>com.oracle.cloud.spring.sample.*</excludePackageNames>
        </configuration>
        <executions>
          <execution>
            <phase>deploy</phase>
            <id>attach-javadocs</id>
            <goals>
              <goal>jar</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-source-plugin</artifactId>
        <version>${maven-source-plugin.version}</version>
        <executions>
          <execution>
            <phase>deploy</phase>
            <id>attach-sources</id>
            <goals>
              <goal>jar</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>build-helper-maven-plugin</artifactId>
        <version>${build-helper-maven-plugin.version}</version>
        <executions>
          <execution>
            <id>attach-artifacts</id>
            <phase>deploy</phase>
            <goals>
              <goal>attach-artifact</goal>
            </goals>
            <configuration>
              <artifacts>
                <artifact>
                  <!--suppress UnresolvedMavenProperty -->
                  <file>${session.executionRootDirectory}/LICENSE.txt</file>
                  <type>txt</type>
                  <classifier>LICENSE</classifier>
                </artifact>
                <artifact>
                  <!--suppress UnresolvedMavenProperty -->
                  <file>${session.executionRootDirectory}/THIRD_PARTY_LICENSES.txt</file>
                  <type>txt</type>
                  <classifier>THIRD_PARTY_LICENSES</classifier>
                </artifact>
              </artifacts>
            </configuration>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <artifactId>maven-deploy-plugin</artifactId>
        <executions>
          <execution>
            <id>deploy</id>
            <phase>deploy</phase>
            <goals>
              <goal>deploy</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
    </plugins>
    <pluginManagement>
      <plugins>
        <plugin>
          <groupId>org.springframework.boot</groupId>
          <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
      </plugins>
    </pluginManagement>
  </build>

  <distributionManagement>
    <repository>
      <id>${repository.id}</id>
      <name>${repository.name}</name>
      <url>${repository.url}</url>
    </repository>
    <snapshotRepository>
      <id>${repository.id}</id>
      <name>${repository.name}</name>
      <url>${repository.url}</url>
    </snapshotRepository>
  </distributionManagement>
</project>
