<?xml version="1.0" encoding="UTF-8"?>
<!--
 Licensed to Diennea S.r.l. under one
 or more contributor license agreements. See the NOTICE file
 distributed with this work for additional information
 regarding copyright ownership. Diennea S.r.l. licenses this file
 to you 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

 http://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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>org.herddb</groupId>
    <artifactId>herddb-parent</artifactId>
    <version>0.24.0</version>
    <packaging>pom</packaging>
    <name>Herd DB</name>
    <url>http://herddb.org</url>
    <description>A Distributed Embeddable Shared-Nothing Database</description>
    <licenses>
        <license>
            <name>Apache License, Version 2.0</name>
            <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
            <distribution>repo</distribution>
        </license>
    </licenses>
    <scm>
        <url>https://github.com/diennea/herddb.git</url>
        <connection>scm:git:https://github.com/diennea/herddb.git</connection>
        <developerConnection>scm:git:https://github.com/diennea/herddb.git</developerConnection>
        <tag>v0.24.0</tag>
    </scm>
    <developers>
        <developer>
            <id>eolivelli</id>
            <name>Enrico Olivelli</name>
            <organization>Diennea</organization>
        </developer>
        <developer>
            <id>alessandro.luccaroni</id>
            <name>Alessandro Luccaroni</name>
            <organization>Diennea</organization>
        </developer>
        <developer>
            <id>diana.clementi</id>
            <name>Diana clementi</name>
            <organization>Diennea</organization>
        </developer>
        <developer>
            <id>diego.salvi</id>
            <name>Diego Salvi</name>
            <organization>Diennea</organization>
        </developer>
        <developer>
            <id>matteo.casadei</id>
            <name>Matteo Casadei</name>
            <organization>Diennea</organization>
        </developer>
        <developer>
            <id>nicolo.boschi</id>
            <name>Nicolò Boschi</name>
            <organization>Diennea</organization>
        </developer>
        <developer>
            <id>francesco.caliumi</id>
            <name>Francesco Caliumi</name>
            <organization>Diennea</organization>
        </developer>
        <developer>
            <id>amitvc</id>
            <name>Amit Chavan</name>
        </developer>
    </developers>
    <issueManagement>
        <url>https://github.com/diennea/herddb/issues</url>
    </issueManagement>
    <properties>
        <project.build.sourceEncoding>utf-8</project.build.sourceEncoding>
        <maven.compiler.source>1.8</maven.compiler.source>
        <maven.compiler.target>1.8</maven.compiler.target>
        <libs.netty4>4.1.72.Final</libs.netty4>
        <libs.netty4ssl>2.0.46.Final</libs.netty4ssl>
        <!-- needed in tests for TLS certificate autogeneration on jdk-15+ -->
        <libs.bouncycastle>1.65</libs.bouncycastle>
        <libs.calcite>1.28.0</libs.calcite>
        <libs.commonslang>2.6</libs.commonslang>
        <libs.jackson.mapper>2.12.3</libs.jackson.mapper>
        <libs.zookeeper>3.6.2</libs.zookeeper>
        <libs.jsqlparser>3.2</libs.jsqlparser>
        <libs.curator>5.1.0</libs.curator>
        <libs.guava>31.0.1-jre</libs.guava>
        <libs.slf4j>1.7.29</libs.slf4j>
        <libs.commonscollections>3.2.2</libs.commonscollections>
        <libs.lz4>1.3.0</libs.lz4>
        <libs.bookkeeper>4.14.3</libs.bookkeeper>
        <libs.jersey>2.26</libs.jersey>
        <libs.jcipi-annotations>1.0</libs.jcipi-annotations>
        <libs.spotbugsannotations>3.1.8</libs.spotbugsannotations>
        <libs.spotbugsmaven>4.0.4</libs.spotbugsmaven>
        <fbs.version>1.9.0</fbs.version>
        <checkstyle.version>8.30</checkstyle.version>
    </properties>

    <dependencies>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.13.1</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>net.jcip</groupId>
            <artifactId>jcip-annotations</artifactId>
            <version>${libs.jcipi-annotations}</version>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>com.github.spotbugs</groupId>
            <artifactId>spotbugs-annotations</artifactId>
            <version>${libs.spotbugsannotations}</version>
            <scope>provided</scope>
            <optional>true</optional>
            <exclusions>
                <exclusion>
                    <groupId>com.google.code.findbugs</groupId>
                    <artifactId>jsr305</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
    </dependencies>

    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>commons-lang</groupId>
                <artifactId>commons-lang</artifactId>
                <version>${libs.commonslang}</version>
            </dependency>
            <dependency>
                <groupId>io.netty</groupId>
                <artifactId>netty-transport</artifactId>
                <version>${libs.netty4}</version>
            </dependency>
            <dependency>
                <groupId>io.netty</groupId>
                <artifactId>netty-codec</artifactId>
                <version>${libs.netty4}</version>
            </dependency>
            <dependency>
                <groupId>io.netty</groupId>
                <artifactId>netty-handler</artifactId>
                <version>${libs.netty4}</version>
            </dependency>
            <dependency>
                <groupId>io.netty</groupId>
                <artifactId>netty-common</artifactId>
                <version>${libs.netty4}</version>
            </dependency>
            <dependency>
                <groupId>io.netty</groupId>
                <artifactId>netty-buffer</artifactId>
                <version>${libs.netty4}</version>
            </dependency>
            <dependency>
                <groupId>org.bouncycastle</groupId>
                <artifactId>bcpkix-jdk15on</artifactId>
                <version>${libs.bouncycastle}</version>
            </dependency>
            <dependency>
                <groupId>io.netty</groupId>
                <artifactId>netty-transport-native-epoll</artifactId>
                <version>${libs.netty4}</version>
                <classifier>linux-x86_64</classifier>
            </dependency>
            <dependency>
                <groupId>io.netty</groupId>
                <artifactId>netty-transport-native-unix-common</artifactId>
                <version>${libs.netty4}</version>
            </dependency>
            <dependency>
                <groupId>io.netty</groupId>
                <artifactId>netty-tcnative-boringssl-static</artifactId>
                <version>${libs.netty4ssl}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.calcite</groupId>
                <artifactId>calcite-linq4j</artifactId>
                <version>${libs.calcite}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.calcite</groupId>
                <artifactId>calcite-core</artifactId>
                <version>${libs.calcite}</version>
                <exclusions>
                    <exclusion>
                        <groupId>net.minidev</groupId>
                        <artifactId>*</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.apiguardian</groupId>
                        <artifactId>*</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>com.fasterxml.jackson.core</groupId>
                <artifactId>jackson-databind</artifactId>
                <version>${libs.jackson.mapper}</version>
            </dependency>
            <dependency>
                <groupId>com.fasterxml.jackson.core</groupId>
                <artifactId>jackson-core</artifactId>
                <version>${libs.jackson.mapper}</version>
            </dependency>
            <dependency>
                <groupId>com.fasterxml.jackson.core</groupId>
                <artifactId>jackson-annotations</artifactId>
                <version>${libs.jackson.mapper}</version>
            </dependency>
            <dependency>
                <groupId>com.github.jsqlparser</groupId>
                <artifactId>jsqlparser</artifactId>
                <version>${libs.jsqlparser}</version>
            </dependency>
            <dependency>
                <groupId>io.dropwizard.metrics</groupId>
                <artifactId>metrics-core</artifactId>
                <version>3.2.5</version>
            </dependency>
            <dependency>
                <groupId>org.xerial.snappy</groupId>
                <artifactId>snappy-java</artifactId>
                <version>1.1.7</version>
            </dependency>
            <dependency>
                <groupId>org.apache.zookeeper</groupId>
                <artifactId>zookeeper</artifactId>
                <version>${libs.zookeeper}</version>
                <exclusions>
                    <exclusion>
                        <artifactId>slf4j-log4j12</artifactId>
                        <groupId>org.slf4j</groupId>
                    </exclusion>
                    <exclusion>
                        <artifactId>*</artifactId>
                        <groupId>io.netty</groupId>
                    </exclusion>
                    <exclusion>
                        <artifactId>jline</artifactId>
                        <groupId>jline</groupId>
                    </exclusion>
                    <exclusion>
                        <artifactId>*</artifactId>
                        <groupId>org.apache.yetus</groupId>
                    </exclusion>
                    <exclusion>
                        <artifactId>*</artifactId>
                        <groupId>com.googlecode.json-simple</groupId>
                    </exclusion>
                    <exclusion>
                        <artifactId>*</artifactId>
                        <groupId>log4j</groupId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>org.apache.zookeeper</groupId>
                <artifactId>zookeeper-jute</artifactId>
                <version>${libs.zookeeper}</version>
            </dependency>
            <dependency>
                <groupId>org.slf4j</groupId>
                <artifactId>slf4j-api</artifactId>
                <version>${libs.slf4j}</version>
            </dependency>
            <dependency>
                <groupId>org.slf4j</groupId>
                <artifactId>slf4j-jdk14</artifactId>
                <version>${libs.slf4j}</version>
            </dependency>
            <dependency>
                <groupId>net.jpountz.lz4</groupId>
                <artifactId>lz4</artifactId>
                <version>${libs.lz4}</version>
                <type>jar</type>
            </dependency>
            <dependency>
                <groupId>org.apache.curator</groupId>
                <artifactId>curator-test</artifactId>
                <version>${libs.curator}</version>
            </dependency>
            <dependency>
                <groupId>commons-collections</groupId>
                <artifactId>commons-collections</artifactId>
                <version>${libs.commonscollections}</version>
            </dependency>
            <dependency>
                <groupId>com.google.guava</groupId>
                <artifactId>guava</artifactId>
                <version>${libs.guava}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.bookkeeper.stats</groupId>
                <artifactId>bookkeeper-stats-api</artifactId>
                <version>${libs.bookkeeper}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.bookkeeper.stats</groupId>
                <artifactId>prometheus-metrics-provider</artifactId>
                <version>${libs.bookkeeper}</version>
                <exclusions>
                    <exclusion>
                        <groupId>org.slf4j</groupId>
                        <artifactId>slf4j-log4j12</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>org.apache.bookkeeper</groupId>
                <artifactId>bookkeeper-common</artifactId>
                <version>${libs.bookkeeper}</version>
                <classifier>tests</classifier>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>org.apache.bookkeeper</groupId>
                <artifactId>bookkeeper-common</artifactId>
                <version>${libs.bookkeeper}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.bookkeeper</groupId>
                <artifactId>bookkeeper-server</artifactId>
                <version>${libs.bookkeeper}</version>
                <exclusions>
                    <exclusion>
                        <groupId>org.slf4j</groupId>
                        <artifactId>slf4j-log4j12</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>netty</groupId>
                        <artifactId>io.netty</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>io.netty</groupId>
                        <artifactId>*</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>commons-logging</groupId>
                        <artifactId>commons-logging</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>commons-digester</groupId>
                        <artifactId>commons-digester</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>commons-beanutils-core</groupId>
                        <artifactId>commons-beanutils</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>commons-cli</groupId>
                        <artifactId>commons-cli</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>jna</groupId>
                        <artifactId>net.java.dev.jna</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.apache.zookeeper</groupId>
                        <artifactId>*</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.rocksdb</groupId>
                        <artifactId>*</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>com.beust</groupId>
                        <artifactId>jcommander</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>org.apache.bookkeeper</groupId>
                <artifactId>bookkeeper-server</artifactId>
                <version>${libs.bookkeeper}</version>
                <classifier>tests</classifier>
                <scope>test</scope>
                <exclusions>
                    <exclusion>
                        <groupId>org.slf4j</groupId>
                        <artifactId>slf4j-log4j12</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>netty</groupId>
                        <artifactId>io.netty</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>commons-logging</groupId>
                        <artifactId>commons-logging</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>commons-digester</groupId>
                        <artifactId>commons-digester</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>commons-beanutils-core</groupId>
                        <artifactId>commons-beanutils</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>commons-cli</groupId>
                        <artifactId>commons-cli</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>jna</groupId>
                        <artifactId>net.java.dev.jna</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>commons-logging</groupId>
                <artifactId>commons-logging</artifactId>
                <version>1.2</version>
            </dependency>
            <dependency>
                <groupId>commons-cli</groupId>
                <artifactId>commons-cli</artifactId>
                <version>1.3.1</version>
            </dependency>
            <dependency>
                <groupId>org.apache.hadoop</groupId>
                <artifactId>hadoop-minikdc</artifactId>
                <version>3.1.1</version>
                <exclusions>
                    <exclusion>
                        <groupId>org.slf4j</groupId>
                        <artifactId>slf4j-log4j12</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>commons-io</groupId>
                <artifactId>commons-io</artifactId>
                <version>2.7</version>
            </dependency>
            <dependency>
                <groupId>org.codehaus.groovy</groupId>
                <artifactId>groovy-all</artifactId>
                <version>2.4.6</version>
                <classifier>indy</classifier>
            </dependency>
            <dependency>
                <groupId>org.jline</groupId>
                <artifactId>jline</artifactId>
                <version>3.1.1</version>
            </dependency>
            <dependency>
                <groupId>commons-dbcp</groupId>
                <artifactId>commons-dbcp</artifactId>
                <version>1.4</version>
            </dependency>
            <dependency>
                <groupId>org.apache.commons</groupId>
                <artifactId>commons-pool2</artifactId>
                <version>2.6.1</version>
            </dependency>
        </dependencies>
    </dependencyManagement>
    <build>
        <pluginManagement>
            <plugins>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-checkstyle-plugin</artifactId>
                    <version>3.1.1</version>
                    <dependencies>
                        <dependency>
                            <groupId>com.puppycrawl.tools</groupId>
                            <artifactId>checkstyle</artifactId>
                            <version>${checkstyle.version}</version>
                        </dependency>
                    </dependencies>
                    <configuration>
                        <configLocation>checkstyle.xml</configLocation>
                        <suppressionsLocation>suppressions.xml</suppressionsLocation>
                        <encoding>UTF-8</encoding>
                        <consoleOutput>true</consoleOutput>
                        <failOnViolation>true</failOnViolation>
                        <includeResources>false</includeResources>
                        <includeTestSourceDirectory>true</includeTestSourceDirectory>
                        <includeTestResources>false</includeTestResources>
                    </configuration>
                    <executions>
                        <execution>
                            <id>checkstyle</id>
                            <phase>validate</phase>
                            <goals>
                                <goal>check</goal>
                            </goals>
                        </execution>
                    </executions>
                </plugin>
                <plugin>
                    <groupId>org.apache.rat</groupId>
                    <artifactId>apache-rat-plugin</artifactId>
                    <version>0.13</version>
                    <configuration>
                        <consoleOutput>true</consoleOutput>
         		<licenses>
            			<license implementation="org.apache.rat.analysis.license.SimplePatternBasedLicense">
              			<licenseFamilyCategory>MIT</licenseFamilyCategory>
              			<licenseFamilyName>MIT License</licenseFamilyName>
              			<notes />
              			<patterns>
					<pattern>Licensed under the MIT license</pattern>
                			<pattern>Released under the MIT license</pattern>
                			<pattern>Licensed under MIT</pattern>
					<pattern>MIT License</pattern>
					<pattern>License: MIT</pattern>
              			</patterns>
            			</license>
          		</licenses>
			<licenseFamilies>
				<licenseFamily implementation="org.apache.rat.license.SimpleLicenseFamily">
				<familyName>MIT License</familyName>
				</licenseFamily>
			</licenseFamilies>
                        <excludes>
				<!-- Intellij -->
				<exclude>**/.idea/**</exclude>

				<!-- Git -->
				<exclude>.git/**/*</exclude>
				<exclude>.github/**/*</exclude>
				<exclude>**/.gitignore</exclude>

				<!-- Built directory -->
				<exclude>**/target/**/*</exclude>

				<!-- Project files -->
				<exclude>**/README.md</exclude>
				<exclude>**/docs/*.graphml</exclude>
				<exclude>nbproject/**</exclude>
				<exclude>**/nbactions.xml</exclude>
				<exclude>**/nb-configuration.xml</exclude>
				<exclude>**/dependency-reduced-pom.xml</exclude>

				<!-- Website markdonw -->
				<exclude>src/site/markdown/index.md</exclude>

				<!-- java.sql.Driver -->
				<exclude>src/main/resources/META-INF/services/java.sql.Driver</exclude>

				<!-- IDE files (eclipse & intellij) -->
				<exclude>**/.classpath</exclude>
				<exclude>**/.project</exclude>
				<exclude>**/.checkstyle</exclude>
				<exclude>**/.settings/*</exclude>
				<exclude>**/*.iml</exclude>
				<exclude>**/*.iws</exclude>
				<exclude>**/*.ipr</exclude>

				<!-- Oracle BSD license -->
				<exclude>jmh/**</exclude>

				<!-- datatables MIT license -->
				<exclude>src/main/webapp/js/jquery.dataTables.min.js</exclude>
                                
				<!-- Travis stuff -->
				<exclude>.travis/*</exclude>
                        </excludes>
                    </configuration>
                </plugin>
            </plugins>
        </pluginManagement>
    </build>

    <profiles>
        <profile>
            <id>default</id>
            <activation>
                <activeByDefault>true</activeByDefault>
            </activation>
            <modules>
                <module>herddb-utils</module>
                <module>herddb-mock</module>
                <module>herddb-net</module>
                <module>herddb-core</module>
                <module>herddb-jdbc</module>
                <module>herddb-collections</module>
                <module>herddb-ui</module>
                <module>herddb-services</module>
                <module>herddb-cli</module>
                <module>herddb-bench</module>
                <module>herddb-website</module>
                <module>herddb-site-skin</module>
                <module>herddb-backward-compatibility</module>
                <module>herddb-thirdparty</module>
                <module>herddb-docker</module>
            </modules>
            <distributionManagement>
                <repository>
                    <!-- temporary with are hosted at Majordodo house -->
                    <id>dev.majordodo.org</id>
                    <name>Majordodo Public Repository</name>
                    <url>https://dev.majordodo.org/nexus/content/repositories/releases/</url>
                </repository>
                <snapshotRepository>
                    <id>dev.majordodo.org.snapshots</id>
                    <name>Majordodo Public Repository</name>
                    <url>https://dev.majordodo.org/nexus/content/repositories/snapshots/</url>
                </snapshotRepository>
            </distributionManagement>
            <build>
                <plugins>
                    <plugin>
                        <groupId>com.github.spotbugs</groupId>
                        <artifactId>spotbugs-maven-plugin</artifactId>
                        <version>${libs.spotbugsmaven}</version>
                        <configuration>
                            <excludeFilterFile>excludeFindBugsFilter.xml</excludeFilterFile>
                        </configuration>
                    </plugin>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-surefire-plugin</artifactId>
                        <version>3.0.0-M5</version>
                        <configuration>
                            <reuseForks>false</reuseForks>
                            <forkedProcessTimeoutInSeconds>1800</forkedProcessTimeoutInSeconds>
                            <argLine>-Dzookeeper.forceSync=no -Dio.netty.tryReflectionSetAccessible=true -Xmx2G -XX:+UseG1GC -Djava.io.tmpdir=${project.build.directory} --add-opens=java.base/java.nio=ALL-UNNAMED  --add-opens=java.base/java.io=ALL-UNNAMED  --add-opens=java.base/java.lang=ALL-UNNAMED</argLine>
                            <trimStackTrace>false</trimStackTrace>
                        </configuration>
                    </plugin>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-compiler-plugin</artifactId>
                        <version>3.8.0</version>
                        <configuration>
                            <release>8</release>
                            <encoding>${project.build.sourceEncoding}</encoding>
                        </configuration>
                    </plugin>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-resources-plugin</artifactId>
                        <version>3.1.0</version>
                        <configuration>
                            <encoding>${project.build.sourceEncoding}</encoding>
                        </configuration>
                    </plugin>
                </plugins>
            </build>
        </profile>
        <profile>
            <id>fb-contrib</id>
            <activation>
                <activeByDefault>false</activeByDefault>
            </activation>
            <build>
                <plugins>
                    <plugin>
                        <groupId>com.github.spotbugs</groupId>
                        <artifactId>spotbugs-maven-plugin</artifactId>
                        <version>${libs.spotbugsmaven}</version>
                        <configuration>
                            <plugins>
                                <plugin>
                                    <groupId>com.mebigfatguy.fb-contrib</groupId>
                                    <artifactId>fb-contrib</artifactId>
                                    <version>7.0.5</version>
                                </plugin>
                            </plugins>
                        </configuration>
                    </plugin>
                </plugins>
            </build>
        </profile>

        <profile>
            <!-- Maven Central updloads -->
            <id>ossrh</id>
            <activation>
                <activeByDefault>false</activeByDefault>
            </activation>
            <modules>
                <module>herddb-utils</module>
                <module>herddb-mock</module>
                <module>herddb-net</module>
                <module>herddb-core</module>
                <module>herddb-jdbc</module>
                <module>herddb-collections</module>
            </modules>
            <distributionManagement>
                <snapshotRepository>
                    <id>ossrh</id>
                    <url>https://oss.sonatype.org/content/repositories/snapshots</url>
                </snapshotRepository>
            </distributionManagement>
            <build>
                <plugins>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-surefire-plugin</artifactId>
                        <version>3.0.0-M5</version>
                        <configuration>
                            <reuseForks>false</reuseForks>
                            <trimStackTrace>false</trimStackTrace>
                        </configuration>
                    </plugin>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-compiler-plugin</artifactId>
                        <version>3.8.0</version>
                        <configuration>
                            <encoding>${project.build.sourceEncoding}</encoding>
                        </configuration>
                    </plugin>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-resources-plugin</artifactId>
                        <version>3.1.0</version>
                        <configuration>
                            <encoding>${project.build.sourceEncoding}</encoding>
                        </configuration>
                    </plugin>
                    <plugin>
                        <groupId>org.sonatype.plugins</groupId>
                        <artifactId>nexus-staging-maven-plugin</artifactId>
                        <version>1.6.8</version>
                        <extensions>true</extensions>
                        <configuration>
                            <serverId>ossrh</serverId>
                            <nexusUrl>https://oss.sonatype.org/</nexusUrl>
                            <autoReleaseAfterClose>true</autoReleaseAfterClose>
                        </configuration>
                    </plugin>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-source-plugin</artifactId>
                        <version>3.0.1</version>
                        <executions>
                            <execution>
                                <id>attach-sources</id>
                                <phase>package</phase>
                                <goals>
                                    <goal>jar-no-fork</goal>
                                </goals>
                            </execution>
                        </executions>
                    </plugin>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-javadoc-plugin</artifactId>
                        <version>3.1.1</version>
                        <executions>
                            <execution>
                                <id>attach-javadocs</id>
                                <phase>package</phase>
                                <goals>
                                    <goal>jar</goal>
                                </goals>
                            </execution>
                        </executions>
                    </plugin>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-gpg-plugin</artifactId>
                        <version>1.6</version>
                        <executions>
                            <execution>
                                <id>sign-artifacts</id>
                                <phase>verify</phase>
                                <goals>
                                    <goal>sign</goal>
                                </goals>
                            </execution>
                        </executions>
                    </plugin>
                </plugins>
            </build>
        </profile>
        <profile>
            <id>jenkins</id>
            <activation>
                <activeByDefault>false</activeByDefault>
            </activation>
            <modules>
                <module>herddb-utils</module>
                <module>herddb-mock</module>
                <module>herddb-net</module>
                <module>herddb-core</module>
                <module>herddb-jdbc</module>
                <module>herddb-collections</module>
                <module>herddb-services</module>
                <module>herddb-cli</module>
                <module>herddb-ui</module>
                <module>herddb-website</module>
                <module>herddb-site-skin</module>
                <module>herddb-thirdparty</module>
                <module>herddb-backward-compatibility</module>
                <module>herddb-docker</module>
            </modules>
            <build>
                <pluginManagement>
                    <plugins>
                        <plugin>
                            <artifactId>maven-jar-plugin</artifactId>
                            <version>3.1.2</version>
                        </plugin>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-javadoc-plugin</artifactId>
                        <version>3.1.1</version>
                        <configuration>
                            <detectJavaApiLink>false</detectJavaApiLink>
                        </configuration>
                    </plugin>
                    </plugins>
                </pluginManagement>
                <plugins>
                    <plugin>
                        <groupId>org.eluder.coveralls</groupId>
                        <artifactId>coveralls-maven-plugin</artifactId>
                        <version>4.3.0</version>
                        <dependencies>
                            <dependency>
                                <groupId>javax.xml.bind</groupId>
                                <artifactId>jaxb-api</artifactId>
                                <version>2.3.1</version>
                            </dependency>
                        </dependencies>
                    </plugin>
                    <plugin>
                        <groupId>org.jacoco</groupId>
                        <artifactId>jacoco-maven-plugin</artifactId>
                        <version>0.8.6</version>
                        <executions>
                            <execution>
                                <goals>
                                    <goal>prepare-agent</goal>
                                </goals>
                            </execution>
                        </executions>
                        <configuration>
                            <excludes>
                                <!-- JaCoCo does not work with multi-release jars -->
                                <!-- https://stackoverflow.com/questions/50163426/jacoco-cannot-exclude-classes/50294239#50294239 -->
                                <exclude>META-INF/versions/10/herddb/utils/OpenFileUtils.class</exclude>
                                <exclude>META-INF/versions/10/herddb/utils/CompareBytesUtils.class</exclude>
                            </excludes>
                        </configuration>
                    </plugin>
                    <plugin>
                        <groupId>com.github.spotbugs</groupId>
                        <artifactId>spotbugs-maven-plugin</artifactId>
                        <version>${libs.spotbugsmaven}</version>
                        <configuration>
                            <excludeFilterFile>excludeFindBugsFilter.xml</excludeFilterFile>
                        </configuration>
                    </plugin>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-surefire-plugin</artifactId>
                        <version>3.0.0-M5</version>
                        <configuration>
                            <reuseForks>false</reuseForks>
                            <argLine> --add-opens=java.base/java.nio=ALL-UNNAMED  --add-opens=java.base/java.io=ALL-UNNAMED  --add-opens=java.base/java.lang=ALL-UNNAMED -Xmx2G -XX:+UseG1GC  @{argLine}</argLine>
                            <trimStackTrace>false</trimStackTrace>
                            <forkedProcessTimeoutInSeconds>900</forkedProcessTimeoutInSeconds>
                        </configuration>
                    </plugin>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-compiler-plugin</artifactId>
                        <version>3.8.1</version>
                        <configuration>
                            <encoding>${project.build.sourceEncoding}</encoding>
                        </configuration>
                    </plugin>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-resources-plugin</artifactId>
                        <version>3.1.0</version>
                        <configuration>
                            <encoding>${project.build.sourceEncoding}</encoding>
                        </configuration>
                    </plugin>
                </plugins>
            </build>
        </profile>
        <profile>
            <id>website</id>
            <modules>
                <module>herddb-site-skin</module>
                <module>herddb-website</module>
            </modules>
        </profile>
    </profiles>
</project>
