<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>
  <artifactId>sorm4j</artifactId>
  <name>sorm4j</name>
  <description>Simple micro Object-Relation Mapper for Java</description>
  <url>https://github.com/yuu-nkjm/sorm4j</url>
  <parent>
    <groupId>org.nkjmlab</groupId>
    <artifactId>sorm4j-parent</artifactId>
    <version>1.4.7</version>
  </parent>
  <properties>
    <slf4j-version>1.7.30</slf4j-version>
    <javassist-version>3.27.0-GA</javassist-version>
    <jaxb-api-version-in-plugin>2.3.1</jaxb-api-version-in-plugin>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <downloadSources>true</downloadSources>
    <downloadJavadocs>true</downloadJavadocs>
  </properties>
  <dependencies>
    <!-- https://mvnrepository.com/artifact/org.apache.logging.log4j/log4j-api -->
    <dependency>
      <groupId>org.apache.logging.log4j</groupId>
      <artifactId>log4j-api</artifactId>
      <version>2.17.2</version>
      <optional>true</optional>
    </dependency>
    <!-- https://mvnrepository.com/artifact/org.slf4j/slf4j-api -->
    <dependency>
      <groupId>org.slf4j</groupId>
      <artifactId>slf4j-api</artifactId>
      <version>${slf4j-version}</version>
      <optional>true</optional>
    </dependency>
    <!-- https://mvnrepository.com/artifact/org.junit.jupiter/junit-jupiter-engine -->
    <dependency>
      <groupId>org.junit.jupiter</groupId>
      <artifactId>junit-jupiter-engine</artifactId>
      <version>5.8.2</version>
      <scope>test</scope>
    </dependency>
    <!-- https://mvnrepository.com/artifact/org.assertj/assertj-core -->
    <dependency>
      <groupId>org.assertj</groupId>
      <artifactId>assertj-core</artifactId>
      <version>3.22.0</version>
      <scope>test</scope>
    </dependency>
    <!-- https://mvnrepository.com/artifact/org.javassist/javassist -->
    <dependency>
      <groupId>org.javassist</groupId>
      <artifactId>javassist</artifactId>
      <version>${javassist-version}</version>
      <scope>test</scope>
    </dependency>
    <!-- https://mvnrepository.com/artifact/org.mockito/mockito-core -->
    <dependency>
      <groupId>org.mockito</groupId>
      <artifactId>mockito-core</artifactId>
      <version>4.4.0</version>
      <scope>test</scope>
    </dependency>
    <!-- https://mvnrepository.com/artifact/org.apache.logging.log4j/log4j-slf4j-impl -->
    <dependency>
      <groupId>org.apache.logging.log4j</groupId>
      <artifactId>log4j-slf4j-impl</artifactId>
      <version>2.17.2</version>
      <scope>test</scope>
    </dependency>
    <!-- https://mvnrepository.com/artifact/com.h2database/h2 -->
    <dependency>
      <groupId>com.h2database</groupId>
      <artifactId>h2</artifactId>
      <version>2.1.210</version>
      <scope>test</scope>
    </dependency>
    <!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
    <dependency>
      <groupId>mysql</groupId>
      <artifactId>mysql-connector-java</artifactId>
      <version>8.0.28</version>
      <scope>test</scope>
    </dependency>
    <!-- https://mvnrepository.com/artifact/org.postgresql/postgresql -->
    <dependency>
      <groupId>org.postgresql</groupId>
      <artifactId>postgresql</artifactId>
      <version>42.3.3</version>
      <scope>test</scope>
    </dependency>
    <!-- https://mvnrepository.com/artifact/com.microsoft.sqlserver/mssql-jdbc -->
    <dependency>
      <groupId>com.microsoft.sqlserver</groupId>
      <artifactId>mssql-jdbc</artifactId>
      <version>10.2.0.jre17</version>
      <scope>test</scope>
    </dependency>
    <!-- https://mvnrepository.com/artifact/com.oracle.database.jdbc/ojdbc10 -->
    <dependency>
      <groupId>com.oracle.database.jdbc</groupId>
      <artifactId>ojdbc10</artifactId>
      <version>19.14.0.0</version>
      <scope>test</scope>
    </dependency>
  </dependencies>
  <build>
    <plugins>
      <plugin>
        <!-- configured in pluginManagement -->
        <groupId>org.jacoco</groupId>
        <artifactId>jacoco-maven-plugin</artifactId>
      </plugin>
      <!-- https://mvnrepository.com/artifact/org.codehaus.mojo/cobertura-maven-plugin -->
      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>cobertura-maven-plugin</artifactId>
        <version>2.7</version>
        <configuration>
          <format>xml</format>
          <maxmem>256m</maxmem>
          <aggregate>true</aggregate>
        </configuration>
      </plugin>
      <!-- for execute test -->
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-surefire-plugin</artifactId>
        <version>3.0.0-M5</version>
        <configuration>
          <additionalClasspathElements>
            <additionalClasspathElement>src/test/java/</additionalClasspathElement>
          </additionalClasspathElements>
          <argLine>
            --add-opens java.base/java.lang=ALL-UNNAMED
            --add-opens org.nkjmlab.sorm4j/org.nkjmlab.sorm4j=ALL-UNNAMED
            --add-opens org.nkjmlab.sorm4j/org.nkjmlab.sorm4j.annotation=ALL-UNNAMED
            --add-opens org.nkjmlab.sorm4j/org.nkjmlab.sorm4j.common=ALL-UNNAMED
            --add-opens org.nkjmlab.sorm4j/org.nkjmlab.sorm4j.context=ALL-UNNAMED
            --add-opens org.nkjmlab.sorm4j/org.nkjmlab.sorm4j.mapping=ALL-UNNAMED
            --add-opens org.nkjmlab.sorm4j/org.nkjmlab.sorm4j.result=ALL-UNNAMED
            --add-opens org.nkjmlab.sorm4j/org.nkjmlab.sorm4j.sql=ALL-UNNAMED
            --add-opens org.nkjmlab.sorm4j/org.nkjmlab.sorm4j.table=ALL-UNNAMED
            --add-opens org.nkjmlab.sorm4j/org.nkjmlab.sorm4j.util.command=ALL-UNNAMED
            --add-opens org.nkjmlab.sorm4j/org.nkjmlab.sorm4j.util.h2.sql=ALL-UNNAMED
            --add-opens org.nkjmlab.sorm4j/org.nkjmlab.sorm4j.util.logger=ALL-UNNAMED
            --add-opens org.nkjmlab.sorm4j/org.nkjmlab.sorm4j.util.sql=ALL-UNNAMED
            --add-opens org.nkjmlab.sorm4j/org.nkjmlab.sorm4j.util.table_def=ALL-UNNAMED
            --add-opens org.nkjmlab.sorm4j/org.nkjmlab.sorm4j.util.table_def.annotation=ALL-UNNAMED
            --add-opens org.nkjmlab.sorm4j/org.nkjmlab.sorm4j.internal=ALL-UNNAMED
            --add-opens org.nkjmlab.sorm4j/org.nkjmlab.sorm4j.internal.common=ALL-UNNAMED
            --add-opens org.nkjmlab.sorm4j/org.nkjmlab.sorm4j.internal.mapping=ALL-UNNAMED
            --add-opens org.nkjmlab.sorm4j/org.nkjmlab.sorm4j.internal.mapping.multirow=ALL-UNNAMED
            --add-opens org.nkjmlab.sorm4j/org.nkjmlab.sorm4j.internal.result=ALL-UNNAMED
            --add-opens org.nkjmlab.sorm4j/org.nkjmlab.sorm4j.internal.sql=ALL-UNNAMED
            --add-opens org.nkjmlab.sorm4j/org.nkjmlab.sorm4j.internal.util=ALL-UNNAMED
            --add-opens org.nkjmlab.sorm4j/org.nkjmlab.sorm4j.engine=ALL-UNNAMED
            --add-opens org.nkjmlab.sorm4j/repackage.net.sf.persist.tests.common=ALL-UNNAMED
            --add-opens org.nkjmlab.sorm4j/repackage.net.sf.persist.tests.engine.h2=ALL-UNNAMED
            --add-opens org.nkjmlab.sorm4j/repackage.net.sf.persist.tests.engine.mysql=ALL-UNNAMED
            --add-opens org.nkjmlab.sorm4j/repackage.net.sf.persist.tests.engine.oracle=ALL-UNNAMED
            --add-opens org.nkjmlab.sorm4j/repackage.net.sf.persist.tests.engine.postgresql=ALL-UNNAMED
            --add-opens org.nkjmlab.sorm4j/repackage.net.sf.persist.tests.engine.sqlserver=ALL-UNNAMED
            ${argLine}
          </argLine>
        </configuration>
      </plugin>
    </plugins>

    <pluginManagement>
      <plugins>
        <!-- https://mvnrepository.com/artifact/org.jacoco/jacoco-maven-plugin -->
        <plugin>
          <groupId>org.jacoco</groupId>
          <artifactId>jacoco-maven-plugin</artifactId>
          <version>0.8.7</version>
          <executions>
            <execution>
              <id>jacoco-initialize</id>
              <goals>
                <goal>prepare-agent</goal>
              </goals>
            </execution>
            <execution>
              <id>jacoco-site</id>
              <phase>test</phase>
              <goals>
                <goal>report</goal>
              </goals>
            </execution>
          </executions>
        </plugin>
        <!-- https://mvnrepository.com/artifact/org.eluder.coveralls/coveralls-maven-plugin -->
        <plugin>
          <groupId>org.eluder.coveralls</groupId>
          <artifactId>coveralls-maven-plugin</artifactId>
          <version>4.3.0</version>
          <dependencies>
            <!-- https://mvnrepository.com/artifact/javax.xml.bind/jaxb-api -->
            <dependency>
              <groupId>javax.xml.bind</groupId>
              <artifactId>jaxb-api</artifactId>
              <version>${jaxb-api-version-in-plugin}</version>
            </dependency>
          </dependencies>
        </plugin>
      </plugins>
    </pluginManagement>
    <testResources>
      <testResource>
        <directory>src/test/resources</directory>
      </testResource>
      <testResource>
        <directory>src/test/java</directory>
        <includes>
          <include>**</include>
        </includes>
        <excludes>
          <exclude>**/*.java</exclude>
        </excludes>
      </testResource>
    </testResources>
  </build>
</project>