<?xml version="1.0" encoding="UTF-8"?>
<!--

       Copyright 2009-2022 the original author or authors.

       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

          https://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.

-->
<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 https://maven.apache.org/xsd/maven-4.0.0.xsd">

  <modelVersion>4.0.0</modelVersion>

  <parent>
    <groupId>org.mybatis</groupId>
    <artifactId>mybatis-parent</artifactId>
    <version>36</version>
    <relativePath />
  </parent>

  <artifactId>mybatis-guice</artifactId>
  <version>3.18</version>
  <packaging>jar</packaging>

  <name>mybatis-guice</name>
  <description>The MyBatis Guice module is easy-to-use Google Guice bridge for MyBatis sql mapping framework.</description>
  <url>https://mybatis.org/guice/</url>

  <inceptionYear>2009</inceptionYear>

  <contributors>
    <contributor>
      <name>Stephen Friedrich</name>
      <email>stephen.friedrich@fortis-it.eu</email>
    </contributor>

    <contributor>
      <name>Marzia Forli</name>
      <email>marzia.forli@yahoo.com</email>
    </contributor>

    <contributor>
      <name>Nino Martinez Wael</name>
      <email>nino.martinez.wael@gmail.com</email>
    </contributor>

    <contributor>
      <name>Brian Pontarelli</name>
      <url>https://github.com/voidmain</url>
    </contributor>

    <contributor>
      <name>Nathan Maves</name>
      <url>https://github.com/nmaves</url>
    </contributor>
  </contributors>

  <scm>
    <url>http://github.com/mybatis/guice</url>
    <connection>scm:git:ssh://github.com/mybatis/guice.git</connection>
    <developerConnection>scm:git:ssh://git@github.com/mybatis/guice.git</developerConnection>
    <tag>mybatis-guice-3.18</tag>
  </scm>
  <issueManagement>
    <system>GitHub Issue Management</system>
    <url>https://github.com/mybatis/guice/issues</url>
  </issueManagement>
  <ciManagement>
    <system>GitHub Actions</system>
    <url>https://github.com/mybatis/guice/actions</url>
  </ciManagement>
  <distributionManagement>
    <site>
      <id>gh-pages</id>
      <name>Mybatis GitHub Pages</name>
      <url>git:ssh://git@github.com/mybatis/guice.git?gh-pages#</url>
    </site>
  </distributionManagement>

  <properties>
    <clirr.comparisonVersion>3.10</clirr.comparisonVersion>
    <spotbugs.onlyAnalyze>org.mybatis.guice.*</spotbugs.onlyAnalyze>
    <gcu.product>Guice</gcu.product>
    <guice.version>5.1.0</guice.version>
    <annotation-api.version>1.3.5</annotation-api.version>
    <ejb-api.version>3.2.6</ejb-api.version>
    <inject-api.version>1.0.5</inject-api.version>
    <osgi.import>com.alibaba.druid.pool.*;resolution:=optional,com.zaxxer.hikari.*;resolution:=optional,com.mchange.v2.c3p0.*;resolution:=optional,org.apache.commons.dbcp2.*;resolution:=optional,javax.transaction.*;resolution:=optional</osgi.import>
    <spotbugs.omitVisitors>UnreadFields</spotbugs.omitVisitors>
    <module.name>org.mybatis.guice</module.name>

    <!-- Reproducible Builds -->
    <project.build.outputTimestamp>1670028172</project.build.outputTimestamp>
  </properties>

  <dependencies>
    <!--
     | Required dependencies
    -->
    <!--
     | Provided dependencies
    -->
    <dependency>
      <groupId>org.mybatis</groupId>
      <artifactId>mybatis</artifactId>
      <version>3.5.11</version>
      <scope>provided</scope>
    </dependency>

    <dependency>
      <groupId>com.google.inject</groupId>
      <artifactId>guice</artifactId>
      <version>${guice.version}</version>
      <scope>provided</scope>
      <exclusions>
        <exclusion>
          <groupId>javax.inject</groupId>
          <artifactId>javax.inject</artifactId>
        </exclusion>
        <exclusion>
          <groupId>com.google.code.findbugs</groupId>
          <artifactId>jsr305</artifactId>
        </exclusion>
      </exclusions>
    </dependency>
    <dependency>
      <groupId>jakarta.inject</groupId>
      <artifactId>jakarta.inject-api</artifactId>
      <version>${inject-api.version}</version>
      <scope>provided</scope>
    </dependency>
    <dependency>
      <groupId>jakarta.resource</groupId>
      <artifactId>jakarta.resource-api</artifactId>
      <version>1.7.4</version>
      <scope>provided</scope>
    </dependency>
    <dependency>
      <groupId>jakarta.validation</groupId>
      <artifactId>jakarta.validation-api</artifactId>
      <version>2.0.2</version>
      <scope>provided</scope>
    </dependency>

    <!--
     | https://github.com/brettwooldridge/HikariCP
     | Java 8 thru 11 maven artifact:
    -->
    <dependency>
      <groupId>jakarta.ejb</groupId>
      <artifactId>jakarta.ejb-api</artifactId>
      <version>${ejb-api.version}</version>
      <scope>provided</scope>
    </dependency>

    <!--
     | Optional dependencies
    -->
    <dependency>
      <groupId>com.github.spotbugs</groupId>
      <artifactId>spotbugs-annotations</artifactId>
      <version>4.7.3</version>
      <scope>compile</scope>
    </dependency>

    <dependency>
      <groupId>com.mchange</groupId>
      <artifactId>c3p0</artifactId>
      <version>0.9.5.5</version>
      <optional>true</optional>
    </dependency>

    <dependency>
      <groupId>com.alibaba</groupId>
      <artifactId>druid</artifactId>
      <version>1.2.15</version>
      <optional>true</optional>
      <exclusions>
        <exclusion>
          <groupId>javax.annotation</groupId>
          <artifactId>javax.annotation-api</artifactId>
        </exclusion>
      </exclusions>
    </dependency>
    <dependency>
      <groupId>jakarta.annotation</groupId>
      <artifactId>jakarta.annotation-api</artifactId>
      <version>${annotation-api.version}</version>
      <optional>true</optional>
    </dependency>

    <dependency>
      <groupId>org.apache.commons</groupId>
      <artifactId>commons-dbcp2</artifactId>
      <version>2.9.0</version>
      <optional>true</optional>
      <exclusions>
        <exclusion>
          <groupId>commons-logging</groupId>
          <artifactId>commons-logging</artifactId>
        </exclusion>
      </exclusions>
    </dependency>

    <dependency>
      <groupId>com.zaxxer</groupId>
      <artifactId>HikariCP</artifactId>
      <version>4.0.3</version>
      <optional>true</optional>
    </dependency>

    <dependency>
      <groupId>jakarta.transaction</groupId>
      <artifactId>jakarta.transaction-api</artifactId>
      <version>1.3.3</version>
      <optional>true</optional>
    </dependency>

    <!--
     | Test dependencies
    -->
    <dependency>
      <groupId>org.junit.jupiter</groupId>
      <artifactId>junit-jupiter-engine</artifactId>
      <version>5.9.1</version>
      <scope>test</scope>
    </dependency>

    <dependency>
      <groupId>org.mockito</groupId>
      <artifactId>mockito-core</artifactId>
      <version>4.9.0</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.mockito</groupId>
      <artifactId>mockito-junit-jupiter</artifactId>
      <version>4.9.0</version>
      <scope>test</scope>
    </dependency>

    <dependency>
      <groupId>org.hsqldb</groupId>
      <artifactId>hsqldb</artifactId>
      <version>2.7.1</version>
      <scope>test</scope>
    </dependency>

    <dependency>
      <groupId>org.slf4j</groupId>
      <artifactId>jcl-over-slf4j</artifactId>
      <version>2.0.5</version>
      <scope>compile</scope>
    </dependency>
    <dependency>
      <groupId>org.slf4j</groupId>
      <artifactId>slf4j-api</artifactId>
      <version>2.0.5</version>
      <scope>compile</scope>
    </dependency>
    <dependency>
      <groupId>org.slf4j</groupId>
      <artifactId>slf4j-simple</artifactId>
      <version>2.0.5</version>
      <scope>test</scope>
    </dependency>

    <dependency>
      <groupId>org.apache.aries.transaction</groupId>
      <artifactId>org.apache.aries.transaction.manager</artifactId>
      <version>1.3.3</version>
      <scope>test</scope>
    </dependency>

    <dependency>
      <groupId>org.tranql</groupId>
      <artifactId>tranql-connector</artifactId>
      <version>1.8</version>
      <scope>test</scope>
    </dependency>

    <dependency>
      <groupId>org.apache.aries.transaction</groupId>
      <artifactId>org.apache.aries.transaction.jdbc</artifactId>
      <version>2.1.3</version>
      <scope>test</scope>
    </dependency>

    <dependency>
      <groupId>org.apache.aries.transaction</groupId>
      <artifactId>org.apache.aries.transaction.blueprint</artifactId>
      <version>2.3.1</version>
      <scope>test</scope>
    </dependency>

    <dependency>
      <groupId>org.apache.derby</groupId>
      <artifactId>derby</artifactId>
      <version>10.15.2.0</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.derby</groupId>
      <artifactId>derbyshared</artifactId>
      <version>10.15.2.0</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.derby</groupId>
      <artifactId>derbyoptionaltools</artifactId>
      <version>10.15.2.0</version>
      <scope>test</scope>
    </dependency>

    <dependency>
      <groupId>org.apache.geronimo.components</groupId>
      <artifactId>geronimo-connector</artifactId>
      <version>3.1.5</version>
      <scope>test</scope>
      <exclusions>
        <exclusion>
          <groupId>org.apache.geronimo.components</groupId>
          <artifactId>geronimo-transaction</artifactId>
        </exclusion>
        <exclusion>
          <groupId>org.apache.geronimo.specs</groupId>
          <artifactId>geronimo-j2ee-connector_1.6_spec</artifactId>
        </exclusion>
        <exclusion>
          <groupId>org.apache.geronimo.specs</groupId>
          <artifactId>geronimo-validation_1.0_spec</artifactId>
        </exclusion>
      </exclusions>
    </dependency>

    <dependency>
      <groupId>org.apache.tomcat</groupId>
      <artifactId>tomcat-catalina</artifactId>
      <version>9.0.69</version>
      <scope>test</scope>
      <exclusions>
        <exclusion>
          <groupId>org.apache.tomcat</groupId>
          <artifactId>tomcat-annotations-api</artifactId>
        </exclusion>
      </exclusions>
    </dependency>

    <dependency>
      <groupId>com.h2database</groupId>
      <artifactId>h2</artifactId>
      <version>2.1.214</version>
      <scope>test</scope>
    </dependency>

    <dependency>
      <groupId>io.dropwizard.metrics</groupId>
      <artifactId>metrics-core</artifactId>
      <version>4.2.13</version>
      <scope>test</scope>
    </dependency>

    <dependency>
      <groupId>io.dropwizard.metrics</groupId>
      <artifactId>metrics-healthchecks</artifactId>
      <version>4.2.13</version>
      <scope>test</scope>
    </dependency>
  </dependencies>

  <!-- TODO: Allow pull from snapshots while on mybatis parent snapshot, remove once finalized -->
  <repositories>
    <repository>
      <releases>
        <enabled>false</enabled>
      </releases>
      <snapshots>
        <enabled>true</enabled>
      </snapshots>
      <id>oss.sonatype.org-snapshot</id>
      <url>https://oss.sonatype.org/content/repositories/snapshots</url>
    </repository>
  </repositories>

  <build>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-surefire-plugin</artifactId>
        <configuration>
          <systemProperties>
            <property>
              <name>derby.stream.error.file</name>
              <value>${project.build.directory}/derby.log</value>
            </property>
          </systemProperties>
        </configuration>
      </plugin>
    </plugins>
  </build>

</project>
