<?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/maven-v4_0_0.xsd">

    <modelVersion>4.0.0</modelVersion>

    <parent>
        <artifactId>oss-parent</artifactId>
        <groupId>org.sonatype.oss</groupId>
        <version>7</version>
    </parent>

    <groupId>org.jooq</groupId>
    <artifactId>jooq-parent</artifactId>
    <version>3.14.16</version>
    <packaging>pom</packaging>

    <name>jOOQ Parent</name>

    <description>
        jOOQ effectively combines complex SQL, typesafety, source code generation, active records,
        stored procedures, advanced data types, and Java in a fluent, intuitive DSL.
    </description>

    <url>http://www.jooq.org</url>

    <properties>

        <!-- These in-memory DBs are used by jOOQ-meta-extensions and a variety of integration tests -->
        <h2.version>1.4.200</h2.version>
        <sqlite.version>3.32.3.2</sqlite.version>
        <derby.version>10.14.2.0</derby.version>
        <hsqldb.version>2.5.1</hsqldb.version>

        <!-- From JDK 11 onwards, we need to depend on the JAXB API explicitly -->
        <jaxb.version>2.3.1</jaxb.version>
        <javax.activation.version>1.2.0</javax.activation.version>

        <!-- Kotlin versions -->
        <kotlin.version>1.3.71</kotlin.version>

        <!-- DefaultRecordMapper and jOOQ-meta-extensions can read JPA annotations -->
        <javax.persistence-api.version>2.2</javax.persistence-api.version>

        <!-- Examples and/or extension modules use these dependencies -->
        <hibernate.version>5.4.31.Final</hibernate.version>
        <liquibase.version>3.8.8</liquibase.version>
        <spring.version>5.3.7</spring.version>
        <spring.boot.version>2.4.0</spring.boot.version>
        <errorprone.version>2.9.0</errorprone.version>
    </properties>

    <licenses>
        <license>
            <name>Apache License, Version 2.0</name>
            <url>http://www.jooq.org/inc/LICENSE.txt</url>
            <distribution>repo</distribution>
        </license>







    </licenses>

    <scm>
        <developerConnection>https://github.com/jOOQ/jOOQ.git</developerConnection>
        <url>https://github.com/jOOQ/jOOQ.git</url>
        <connection>git://github.com/jOOQ/jOOQ.git</connection>
    </scm>

    <issueManagement>
        <system>GitHub</system>
        <url>http://github.com/jOOQ/jOOQ/issues</url>
    </issueManagement>

    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.jooq</groupId>
                <artifactId>jooq</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.jooq</groupId>
                <artifactId>jooq-codegen</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.jooq</groupId>
                <artifactId>jooq-codegen-maven</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.jooq</groupId>
                <artifactId>jooq-meta</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.jooq</groupId>
                <artifactId>jooq-meta-extensions</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.jooq</groupId>
                <artifactId>jooq-meta-extensions-hibernate</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.jooq</groupId>
                <artifactId>jooq-meta-extensions-liquibase</artifactId>
                <version>${project.version}</version>
            </dependency>

            <dependency>
                <groupId>org.jetbrains</groupId>
                <artifactId>annotations</artifactId>
                <version>19.0.0</version>
            </dependency>

            <dependency>
                <groupId>org.jooq</groupId>
                <artifactId>jooq-kotlin</artifactId>
                <version>${project.version}</version>
            </dependency>

            <dependency>
                <groupId>org.jetbrains.kotlin</groupId>
                <artifactId>kotlin-stdlib</artifactId>
                <version>${kotlin.version}</version>
            </dependency>
            <dependency>
                <groupId>org.jetbrains.kotlin</groupId>
                <artifactId>kotlin-stdlib-jdk8</artifactId>
                <version>${kotlin.version}</version>
            </dependency>

            <!-- Needed for mapping into Kotlin data classes -->
            <dependency>
                <groupId>org.jetbrains.kotlin</groupId>
                <artifactId>kotlin-reflect</artifactId>
                <version>${kotlin.version}</version>
            </dependency>

            <dependency>
                <groupId>org.jooq</groupId>
                <artifactId>jooq-scala_2.13</artifactId>
                <version>${project.version}</version>
            </dependency>



















            <dependency>
                <groupId>org.jooq</groupId>
                <artifactId>jooq-xtend</artifactId>
                <version>${project.version}</version>
            </dependency>

            <dependency>
                <groupId>org.eclipse.xtend</groupId>
                <artifactId>org.eclipse.xtend.lib</artifactId>
                <version>2.22.0</version>
            </dependency>

            <!-- From JDK 9 onwards, the JAXB dependency needs to be made explicit -->
            <!-- The dependency can cause trouble in older JDKs, so it needs to be
                 excluded from pre-java-9 builds: https://github.com/jOOQ/jOOQ/issues/7649 -->
            <dependency>
                <groupId>javax.xml.bind</groupId>
                <artifactId>jaxb-api</artifactId>
                <version>${jaxb.version}</version>
            </dependency>








































            <!-- Optional logging dependency -->
            <dependency>
                <groupId>org.slf4j</groupId>
                <artifactId>slf4j-api</artifactId>
                <version>1.8.0-beta4</version>
                <scope>provided</scope>
                <optional>true</optional>
            </dependency>

            <!-- Optional JPA dependency -->
            <dependency>
                <groupId>javax.persistence</groupId>
                <artifactId>javax.persistence-api</artifactId>
                <version>${javax.persistence-api.version}</version>
                <scope>provided</scope>
                <optional>true</optional>
            </dependency>

            <dependency>
                <groupId>junit</groupId>
                <artifactId>junit</artifactId>
                <version>4.13.1</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>org.scalatest</groupId>
                <artifactId>scalatest_2.10</artifactId>
                <version>3.0.8</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>org.scalatest</groupId>
                <artifactId>scalatest_2.11</artifactId>
                <version>3.0.8</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>org.scalatest</groupId>
                <artifactId>scalatest_2.12</artifactId>
                <version>3.0.8</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>org.scalatest</groupId>
                <artifactId>scalatest_2.13</artifactId>
                <version>3.0.8</version>
                <scope>test</scope>
            </dependency>

            <!-- Some projects will need an H2 database for testing, or to create temporary in-memory databases -->
            <dependency>
                <groupId>com.h2database</groupId>
                <artifactId>h2</artifactId>
                <version>${h2.version}</version>
            </dependency>
            <dependency>
                <groupId>org.xerial</groupId>
                <artifactId>sqlite-jdbc</artifactId>
                <version>${sqlite.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.derby</groupId>
                <artifactId>derby</artifactId>
                <version>${derby.version}</version>
            </dependency>
            <dependency>
                <groupId>org.hsqldb</groupId>
                <artifactId>hsqldb</artifactId>
                <version>${hsqldb.version}</version>
            </dependency>

            <!-- jooq-meta-extensions and integration tests have this dependency -->
            <dependency>
                <groupId>org.hibernate</groupId>
                <artifactId>hibernate-core</artifactId>
                <version>${hibernate.version}</version>
            </dependency>
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-context</artifactId>
                <version>${spring.version}</version>
            </dependency>
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-jdbc</artifactId>
                <version>${spring.version}</version>
            </dependency>
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-orm</artifactId>
                <version>${spring.version}</version>
            </dependency>
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-test</artifactId>
                <version>${spring.version}</version>
            </dependency>

            <!-- jooq-meta-extensions and integration tests have this dependency -->
            <dependency>
                <groupId>org.liquibase</groupId>
                <artifactId>liquibase-core</artifactId>
                <version>${liquibase.version}</version>
            </dependency>

            <!-- checker framework and error prone dependency for use with jOOQ-checker -->
            <dependency>
                <groupId>org.checkerframework</groupId>
                <artifactId>checker</artifactId>
                <version>2.5.6</version>
            </dependency>

            <dependency>
                <groupId>com.google.errorprone</groupId>
                <artifactId>error_prone_core</artifactId>
                <version>${errorprone.version}</version>
                <scope>provided</scope>
            </dependency>
            <dependency>
                <groupId>com.google.errorprone</groupId>
                <artifactId>error_prone_annotation</artifactId>
                <version>${errorprone.version}</version>
                <scope>provided</scope>
            </dependency>
            <dependency>
                <groupId>com.google.errorprone</groupId>
                <artifactId>error_prone_refaster</artifactId>
                <version>${errorprone.version}</version>
            </dependency>
            <dependency>
                <groupId>com.google.auto.service</groupId>
                <artifactId>auto-service</artifactId>
                <version>1.0-rc6</version>
                <optional>true</optional>
            </dependency>
            <dependency>
                <groupId>com.google.auto.service</groupId>
                <artifactId>auto-service-annotations</artifactId>
                <version>1.0-rc6</version>
                <optional>true</optional>
            </dependency>

            <!-- Maven plugin dependencies -->
            <dependency>
                <groupId>org.apache.maven</groupId>
                <artifactId>maven-plugin-api</artifactId>
                <version>3.8.2</version>
            </dependency>
            <dependency>
                <groupId>org.apache.maven</groupId>
                <artifactId>maven-core</artifactId>
                <version>3.8.2</version>

                <!-- junit 4.8.2 sneaking in here -->
                <exclusions>
                    <exclusion>
                        <groupId>junit</groupId>
                        <artifactId>junit</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>org.apache.maven.plugin-tools</groupId>
                <artifactId>maven-plugin-annotations</artifactId>
                <version>3.6.1</version>
            </dependency>
        </dependencies>
    </dependencyManagement>

    <build>
        <finalName>${project.artifactId}-${project.version}</finalName>
        <pluginManagement>
            <plugins>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-compiler-plugin</artifactId>
                    <version>3.8.1</version>

                    <configuration>
                        <!-- When compilers say false, they mean true ...
                             https://issues.apache.org/jira/browse/MCOMPILER-209 -->
                        <useIncrementalCompilation>false</useIncrementalCompilation>
                        <fork>true</fork>
                        <maxmem>512m</maxmem>
                        <meminitial>256m</meminitial>
                        <encoding>UTF-8</encoding>




                        <!-- IntelliJ needs these https://youtrack.jetbrains.com/issue/IDEA-195472 -->
                        <source>1.8</source>
                        <target>1.8</target>

                        <debug>true</debug>
                        <debuglevel>lines,vars,source</debuglevel>
                        <!-- [#2413] Make compiler warnings a bit more visible
                             But don't fail (yet) -->
                        <compilerArgs>
                            <arg>-Xlint:varargs</arg>
                        </compilerArgs>
                    </configuration>
                </plugin>

                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-source-plugin</artifactId>
                    <version>3.1.0</version>
                    <inherited>true</inherited>
                    <executions>
                        <execution>
                            <id>attach-sources</id>
                            <goals>
                                <goal>jar</goal>
                            </goals>
                        </execution>
                    </executions>
                    <configuration>
                        <excludeResources>true</excludeResources>
                        <useDefaultExcludes>true</useDefaultExcludes>
                    </configuration>
                </plugin>

                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-javadoc-plugin</artifactId>
                    <version>3.2.0</version>
                    <inherited>true</inherited>
                    <executions>
                        <execution>
                            <id>bundle-sources</id>
                            <phase>package</phase>
                            <goals>
                                <goal>jar</goal>
                            </goals>
                        </execution>
                    </executions>
                    <configuration>
                        <maxmemory>1024</maxmemory>
                        <encoding>UTF-8</encoding>
                        <show>protected</show>
                        <notree>true</notree>

                        <!-- Avoid running into Java 8's very restrictive doclint issues -->
                        <additionalparam>-Xdoclint:none</additionalparam>
                        <additionalOptions>-Xdoclint:none</additionalOptions>
                    </configuration>
                </plugin>

                <plugin>
                    <groupId>org.apache.felix</groupId>
                    <artifactId>maven-bundle-plugin</artifactId>
                    <version>4.2.1</version>

                    <!-- [#10150] Required to build on JDK 15 -->
                    <dependencies>
                        <dependency>
                            <groupId>biz.aQute.bnd</groupId>
                            <artifactId>biz.aQute.bndlib</artifactId>
                            <version>5.1.2</version>
                        </dependency>
                    </dependencies>
                </plugin>

                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-plugin-plugin</artifactId>
                    <version>3.6.0</version>
                </plugin>

                <plugin>
                    <groupId>org.codehaus.mojo</groupId>
                    <artifactId>sql-maven-plugin</artifactId>
                    <version>1.5</version>
                </plugin>

                <plugin>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-maven-plugin</artifactId>
                    <version>${spring.boot.version}</version>
                </plugin>

                <plugin>
                    <groupId>net.alchim31.maven</groupId>
                    <artifactId>scala-maven-plugin</artifactId>
                    <version>4.3.0</version>
                </plugin>

                <plugin>
                    <artifactId>kotlin-maven-plugin</artifactId>
                    <groupId>org.jetbrains.kotlin</groupId>
                    <version>${kotlin.version}</version>

                    <executions>
                        <execution>
                            <id>compile</id>
                            <phase>process-sources</phase>
                            <goals>
                                <goal>compile</goal>
                            </goals>
                            <configuration>
                                <sourceDirs>
                                    <source>src/main/java</source>
                                    <source>src/main/kotlin</source>
                                    <source>src/main/resources</source>
                                </sourceDirs>
                            </configuration>
                        </execution>















                    </executions>
                </plugin>

                <plugin>
                    <groupId>org.eclipse.xtend</groupId>
                    <artifactId>xtend-maven-plugin</artifactId>
                    <version>2.22.0</version>

                    <configuration>
                        <encoding>UTF-8</encoding>
                    </configuration>
                </plugin>

                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-surefire-plugin</artifactId>
                    <version>2.22.2</version>
                    <configuration>
                        <testNGArtifactName>none:none</testNGArtifactName>
                    </configuration>
                </plugin>

                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-jar-plugin</artifactId>
                    <version>3.1.2</version>

                    <configuration>
                        <archive>
                            <manifestEntries>
                                <Built-By>Data Geekery GmbH</Built-By>
                            </manifestEntries>
                        </archive>
                    </configuration>
                </plugin>

                <plugin>
                    <groupId>org.jooq</groupId>
                    <artifactId>jooq-codegen-maven</artifactId>
                    <version>${project.version}</version>
                </plugin>

                <plugin>
                    <groupId>org.owasp</groupId>
                    <artifactId>dependency-check-maven</artifactId>
                    <version>6.3.1</version>
                    <configuration>
                        <failBuildOnCVSS>0</failBuildOnCVSS>
                        <skipTestScope>true</skipTestScope>

                        <!-- CVE-2020-29582: 5.3. No fix is available in kotlin 1.3. Please upgrade to jOOQ 3.15 -->
                        <excludes>
                        	<exclude>org.jetbrains.kotlin:*:jar:1.3.71</exclude>
                        </excludes>
                    </configuration>
                </plugin>
            </plugins>
        </pluginManagement>

        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
            </plugin>

            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-resources-plugin</artifactId>
                <version>3.1.0</version>
                <configuration>
                    <encoding>UTF-8</encoding>
                </configuration>
            </plugin>
        </plugins>
    </build>

    <modules>
        <module>jOOQ</module>








        <module>jOOQ-checker</module>

        <module>jOOQ-meta</module>
        <module>jOOQ-meta-extensions</module>
        <module>jOOQ-meta-extensions-hibernate</module>
        <module>jOOQ-meta-extensions-liquibase</module>
        <module>jOOQ-codegen</module>
        <module>jOOQ-codegen-maven</module>
        <module>jOOQ-kotlin</module>
        <module>jOOQ-scala_2.13</module>





        <module>jOOQ-xtend</module>

















    </modules>

    <profiles>
        <profile>
            <id>owasp-check</id>
            <build>
                <plugins>
                    <plugin>
                        <groupId>org.owasp</groupId>
                        <artifactId>dependency-check-maven</artifactId>
                        <executions>
                            <execution>
                                <goals>
                                    <goal>check</goal>
                                </goals>
                            </execution>
                        </executions>
                    </plugin>
                </plugins>
            </build>

            <reporting>
                <plugins>
                    <plugin>
                        <groupId>org.owasp</groupId>
                        <artifactId>dependency-check-maven</artifactId>
                    </plugin>
                </plugins>
            </reporting>
        </profile>

        <profile>
            <id>default</id>
            <activation>
                <activeByDefault>true</activeByDefault>
            </activation>
        </profile>

        <profile>
            <id>all-modules</id>
            <modules>
                <!-- all modules which are not already listed as submodules -->
                <module>jOOQ-examples</module>









            </modules>
        </profile>


        <profile>
            <id>release-java-8</id>
            <build>
                <plugins>
                    <!-- Validate jOOQ's JDK 1.8 API compliance -->
                    <plugin>
                        <groupId>org.codehaus.mojo</groupId>
                        <artifactId>animal-sniffer-maven-plugin</artifactId>
                        <version>1.18</version>
                        <executions>
                            <execution>
                                <phase>test</phase>
                                <goals>
                                    <goal>check</goal>
                                </goals>
                                <configuration>
                                    <signature>
                                        <groupId>org.codehaus.mojo.signature</groupId>
                                        <artifactId>java18</artifactId>
                                        <version>1.0</version>
                                    </signature>
                                </configuration>
                            </execution>
                        </executions>
                    </plugin>
                </plugins>
            </build>
        </profile>

        <profile>
            <id>release-java-6</id>
            <build>
                <plugins>
                    <!-- Validate jOOQ's JDK 1.6 API compliance -->
                    <plugin>
                        <groupId>org.codehaus.mojo</groupId>
                        <artifactId>animal-sniffer-maven-plugin</artifactId>
                        <version>1.18</version>
                        <executions>
                            <execution>
                                <phase>test</phase>
                                <goals>
                                    <goal>check</goal>
                                </goals>
                                <configuration>
                                    <signature>
                                        <groupId>org.codehaus.mojo.signature</groupId>
                                        <artifactId>java16</artifactId>
                                        <version>1.1</version>
                                    </signature>
                                </configuration>
                            </execution>
                        </executions>
                    </plugin>
                </plugins>
            </build>
        </profile>

        <profile>
            <id>release-oss</id>
            <build>
                <plugins>
                    <!-- This is required by Maven Central -->
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-gpg-plugin</artifactId>
                        <version>3.0.1</version>
                        <executions>
                            <execution>
                                <id>sign-artifacts</id>
                                <phase>verify</phase>
                                <goals>
                                    <goal>sign</goal>
                                </goals>
                                <configuration>
                                    <gpgArguments>
                                        <arg>--pinentry-mode</arg>
                                        <arg>loopback</arg>
                                    </gpgArguments>
                                </configuration>
                            </execution>
                        </executions>
                    </plugin>

                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-source-plugin</artifactId>
                    </plugin>

                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-javadoc-plugin</artifactId>
                    </plugin>
                </plugins>
            </build>
        </profile>




































































































    </profiles>
</project>
