<?xml version="1.0" encoding="UTF-8"?>
<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">
    <parent>
        <artifactId>bithon</artifactId>
        <groupId>org.bithon</groupId>
        <version>1.0.0-RELEASE</version>
        <relativePath>../../pom.xml</relativePath>
    </parent>
    <modelVersion>4.0.0</modelVersion>
    <artifactId>component-db</artifactId>

    <properties>
        <maven.compiler.source>8</maven.compiler.source>
        <maven.compiler.target>8</maven.compiler.target>
        <mysql.version>8.0.20</mysql.version>
    </properties>

    <dependencies>
        <!-- JOOQ -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-jooq</artifactId>
            <version>${spring.boot.version}</version>
        </dependency>

        <!-- JDBC -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-jdbc</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>
    </dependencies>

    <build>
        <finalName>${project.name}</finalName>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.1</version>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                    <encoding>UTF-8</encoding>
                </configuration>
            </plugin>

            <!-- 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?useSSL=false</url>
                        <user>root</user>
                        <password>123456</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.component.db.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>