<?xml version="1.0" encoding="UTF-8"?>
<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://maven.apache.org/POM/4.0.0"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
  <parent>
    <groupId>org.bithon</groupId>
    <artifactId>bithon</artifactId>
    <version>1.1.0-RELEASE</version>
    <relativePath>../../pom.xml</relativePath>
  </parent>

  <modelVersion>4.0.0</modelVersion>
  <artifactId>bithon-storage-jdbc</artifactId>
  <name>storage-jdbc</name>
  <description>Bithon Storage over JDBC</description>

  <properties>
    <mysql.version>8.0.20</mysql.version>
  </properties>

  <dependencies>
    <dependency>
      <groupId>org.bithon</groupId>
      <artifactId>bithon-server-collector</artifactId>
    </dependency>

    <!-- JOOQ -->
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-jooq</artifactId>
      <version>${spring.boot.version}</version>
      <exclusions>
        <exclusion>
          <groupId>org.apache.tomcat</groupId>
          <artifactId>tomcat-jdbc</artifactId>
        </exclusion>
        <exclusion>
          <groupId>com.zaxxer</groupId>
          <artifactId>HikariCP</artifactId>
        </exclusion>
      </exclusions>
    </dependency>
    <dependency>
      <groupId>com.alibaba</groupId>
      <artifactId>druid-spring-boot-starter</artifactId>
      <version>1.1.16</version>
    </dependency>

    <!-- JDBC -->
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-jdbc</artifactId>
      <version>${spring.boot.version}</version>
    </dependency>

    <!-- Built in H2 Database -->
    <dependency>
      <groupId>com.h2database</groupId>
      <artifactId>h2</artifactId>
      <version>1.4.200</version>
    </dependency>

    <dependency>
      <groupId>org.bithon</groupId>
      <artifactId>component-commons</artifactId>
    </dependency>
  </dependencies>

  <build>
    <finalName>${project.artifactId}</finalName>

    <plugins>

      <!-- Load Schema -->
      <!--            <plugin>-->
      <!--                <groupId>org.codehaus.mojo</groupId>-->
      <!--                <artifactId>sql-maven-plugin</artifactId>-->

      <!--                <configuration>-->
      <!--                    <skip>${maven.test.skip}</skip>-->
      <!--                    <forkMode>always</forkMode>-->
      <!--                    <driver>com.mysql.cj.jdbc.Driver</driver>-->
      <!--                    <url>jdbc:mysql://localhost:3306/bithon?useSSL=false</url>-->
      <!--                    <username>root</username>-->
      <!--                    <password>123456</password>-->
      <!--                </configuration>-->

      <!--                <executions>-->
      <!--                    <execution>-->
      <!--                        <id>create-database-mysql</id>-->
      <!--                        <phase>process-resources</phase>-->
      <!--                        <goals>-->
      <!--                            <goal>execute</goal>-->
      <!--                        </goals>-->
      <!--                        <configuration>-->
      <!--                            &lt;!&ndash; See http://stackoverflow.com/a/13082837/521799 &ndash;&gt;-->
      <!--                            <delimiterType>row</delimiterType>-->
      <!--                            <autocommit>true</autocommit>-->
      <!--                            <srcFiles>-->
      <!--                                <srcFile>src/main/resources/database.sql</srcFile>-->
      <!--                            </srcFiles>-->
      <!--                        </configuration>-->
      <!--                    </execution>-->
      <!--                </executions>-->

      <!--                <dependencies>-->
      <!--                    <dependency>-->
      <!--                        <groupId>mysql</groupId>-->
      <!--                        <artifactId>mysql-connector-java</artifactId>-->
      <!--                        <version>${mysql.version}</version>-->
      <!--                    </dependency>-->
      <!--                </dependencies>-->
      <!--            </plugin>-->

      <!-- The jOOQ code generator plugin -->
      <plugin>
        <groupId>org.jooq</groupId>
        <artifactId>jooq-codegen-maven</artifactId>
        <version>3.12.4</version>
        <configuration>
          <jdbc>
            <driver>com.mysql.cj.jdbc.Driver</driver>
            <url>jdbc:mysql://localhost:3306/bithon_codegen?useSSL=false</url>
            <user>root</user>
            <password></password>
          </jdbc>
          <generator>
            <database>
              <name>org.jooq.meta.mysql.MySQLDatabase</name>
              <inputSchema>bithon_codegen</inputSchema><!-- database -->
              <includes>.*</includes><!-- table whitelist, regex -->
              <dateAsTimestamp>false</dateAsTimestamp>
              <outputSchemaToDefault>true</outputSchemaToDefault>
              <forcedTypes>
                <forcedType>
                  <name>BOOLEAN</name>
                  <includeTypes>TINYINT\(2\)</includeTypes>
                </forcedType>
              </forcedTypes>
              <!-- <unsignedTypes>false</unsignedTypes> -->
            </database>
            <generate>
              <globalSchemaReferences>false</globalSchemaReferences>
              <globalTableReferences>true</globalTableReferences>
              <deprecated>false</deprecated>
              <instanceFields>true</instanceFields>
              <keys>true</keys>
              <pojos>true</pojos>
              <indexes>true</indexes>
              <generatedAnnotation>false</generatedAnnotation>
            </generate>
            <target>
              <packageName>org.bithon.server.storage.jdbc.jooq</packageName>
              <directory>src/main/java</directory>
            </target>
          </generator>
        </configuration>
        <dependencies>
          <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>${mysql.version}</version>
          </dependency>
        </dependencies>
      </plugin>
    </plugins>
  </build>
</project>
