<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>com.gitlab.cdc-java.util</groupId>
   <artifactId>cdc-util</artifactId>
   <version>0.0.17</version>
   <packaging>pom</packaging>

   <name>CDC - Util</name>
   <description>Set of utilities projects used to build more advanced tools.</description>
   <url>https://www.gitlab.com/cdc-java/cdc-util</url>

   <properties>
      <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>

      <commons.cli.version>1.4</commons.cli.version>
      <commons.compress.version>1.18</commons.compress.version>
      <derby.version>10.14.2.0</derby.version>
      <google.brotli>0.1.2</google.brotli>
      <jol.version>0.9</jol.version>
      <junit.version>5.4.0</junit.version>
      <log4j.version>2.11.2</log4j.version>
      <maven.checkstyle.version>3.0.0</maven.checkstyle.version>
      <maven.compiler.version>3.8.0</maven.compiler.version>
      <maven.depgraph.version>3.3.0</maven.depgraph.version>
      <maven.dependency.version>3.1.1</maven.dependency.version>
      <maven.gpg.version>1.6</maven.gpg.version>
      <maven.install.version>2.5.2</maven.install.version>
      <maven.jar.version>3.1.1</maven.jar.version>
      <maven.javadoc.version>3.0.1</maven.javadoc.version>
      <maven.project.info.reports.version>3.0.0</maven.project.info.reports.version>
      <maven.source.version>3.0.1</maven.source.version>
      <maven.surefire.version>2.22.1</maven.surefire.version>
      <postgresql.version>42.2.5</postgresql.version>
      <saxon.he.version>9.9.1-2</saxon.he.version>
      <tukaani.xz.version>1.8</tukaani.xz.version>
      <ucanaccess.version>4.0.4</ucanaccess.version>
   </properties>

   <developers>
      <developer>
         <id>dc14</id>
         <name>Damien Carbonne</name>
         <email>damien.carbonne@gmail.com</email>
         <timezone>Europe/Paris</timezone>
      </developer>
   </developers>

   <scm>
      <url>https://gitlab.com/cdc-java/cdc-util</url>
      <connection>scm:git:https://gitlab.com/cdc-java/cdc-util.git</connection>
      <developerConnection>scm:git:https://gitlab.com/cdc-java/cdc-util.git</developerConnection>
      <tag>HEAD</tag>
   </scm>

   <licenses>
      <license>
         <name>GNU GENERAL PUBLIC LICENSE</name>
         <url>http://www.gnu.org/licenses/gpl-3.0.html</url>
         <distribution>manual</distribution>
      </license>
      <license>
         <name>GNU LESSER GENERAL PUBLIC LICENSE</name>
         <url>http://www.gnu.org/licenses/lgpl-3.0.html</url>
         <distribution>manual</distribution>
      </license>
   </licenses>

   <distributionManagement>
      <snapshotRepository>
         <id>ossrh</id>
         <url>https://oss.sonatype.org/content/repositories/snapshots</url>
      </snapshotRepository>
      <repository>
         <id>ossrh</id>
         <url>https://oss.sonatype.org/service/local/staging/deploy/maven2/</url>
      </repository>
   </distributionManagement>

   <build>
      <pluginManagement>
         <plugins>
            <plugin>
               <groupId>org.apache.maven.plugins</groupId>
               <artifactId>maven-checkstyle-plugin</artifactId>
               <version>${maven.checkstyle.version}</version>
               <configuration>
                  <configLocation>cdc-checks.xml</configLocation>
               </configuration>
            </plugin>
            <plugin>
               <groupId>org.apache.maven.plugins</groupId>
               <artifactId>maven-compiler-plugin</artifactId>
               <version>${maven.compiler.version}</version>
               <configuration>
                  <source>1.8</source>
                  <target>1.8</target>
               </configuration>
            </plugin>
            <plugin>
               <groupId>com.github.ferstl</groupId>
               <artifactId>depgraph-maven-plugin</artifactId>
               <version>${maven.depgraph.version}</version>
               <executions>
                  <execution>
                     <goals>
                        <goal>aggregate</goal>
                     </goals>
                     <configuration>
                        <createImage>true</createImage>
                        <imageFormat>pdf</imageFormat>
                        <showGroupIds>true</showGroupIds>
                        <showVersions>true</showVersions>
                        <mergeScopes>true</mergeScopes>
                        <customStyleConfiguration>depgraph-styles.json</customStyleConfiguration>
                     </configuration>
                  </execution>
               </executions>
            </plugin>
            <plugin>
               <groupId>org.apache.maven.plugins</groupId>
               <artifactId>maven-dependency-plugin</artifactId>
               <version>${maven.dependency.version}</version>
            </plugin>
            <plugin>
               <groupId>org.apache.maven.plugins</groupId>
               <artifactId>maven-gpg-plugin</artifactId>
               <version>${maven.gpg.version}</version>
               <executions>
                  <execution>
                     <id>sign-artifacts</id>
                     <phase>verify</phase>
                     <goals>
                        <goal>sign</goal>
                     </goals>
                     <configuration>
                        <keyname>${gpg.keyname}</keyname>
                        <passphraseServerId>${gpg.keyname}</passphraseServerId>
                     </configuration>
                  </execution>
               </executions>
            </plugin>
            <plugin>
               <groupId>org.apache.maven.plugins</groupId>
               <artifactId>maven-install-plugin</artifactId>
               <version>${maven.install.version}</version>
               <configuration>
                  <createChecksum>true</createChecksum>
               </configuration>
               <executions>
                  <execution>
                     <goals>
                        <goal>install</goal>
                     </goals>
                  </execution>
               </executions>
            </plugin>
            <plugin>
               <groupId>org.apache.maven.plugins</groupId>
               <artifactId>maven-jar-plugin</artifactId>
               <version>${maven.jar.version}</version>
               <configuration>
                  <skipIfEmpty>true</skipIfEmpty>
                  <excludes>
                     <exclude>**/log4j2.xml</exclude>
                  </excludes>
               </configuration>
               <executions>
                  <execution>
                     <goals>
                        <goal>test-jar</goal>
                     </goals>
                  </execution>
               </executions>
            </plugin>
            <plugin>
               <groupId>org.apache.maven.plugins</groupId>
               <artifactId>maven-javadoc-plugin</artifactId>
               <version>${maven.javadoc.version}</version>
               <configuration>
                  <show>package</show>
                  <quiet>true</quiet>
               </configuration>
               <executions>
                  <execution>
                     <goals>
                        <goal>jar</goal>
                     </goals>
                  </execution>
               </executions>
            </plugin>
            <plugin>
               <groupId>org.apache.maven.plugins</groupId>
               <artifactId>maven-project-info-reports-plugin</artifactId>
               <version>${maven.project.info.reports.version}</version>
            </plugin>
            <plugin>
               <groupId>org.apache.maven.plugins</groupId>
               <artifactId>maven-source-plugin</artifactId>
               <version>${maven.source.version}</version>
               <executions>
                  <execution>
                     <id>attach-sources</id>
                     <goals>
                        <goal>jar</goal>
                     </goals>
                  </execution>
                  <execution>
                     <id>attach-test-sources</id>
                     <goals>
                        <goal>test-jar</goal>
                     </goals>
                  </execution>
               </executions>
            </plugin>
            <plugin>
               <groupId>org.apache.maven.plugins</groupId>
               <artifactId>maven-surefire-plugin</artifactId>
               <version>${maven.surefire.version}</version>
            </plugin>
         </plugins>
      </pluginManagement>

      <plugins>
         <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-checkstyle-plugin</artifactId>
         </plugin>
         <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
         </plugin>
         <plugin>
            <groupId>com.github.ferstl</groupId>
            <artifactId>depgraph-maven-plugin</artifactId>
         </plugin>
         <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-dependency-plugin</artifactId>
         </plugin>
         <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-gpg-plugin</artifactId>
         </plugin>
         <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-install-plugin</artifactId>
         </plugin>
         <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-jar-plugin</artifactId>
         </plugin>
         <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-javadoc-plugin</artifactId>
         </plugin>
         <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-source-plugin</artifactId>
         </plugin>
         <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-surefire-plugin</artifactId>
         </plugin>
      </plugins>
   </build>

   <dependencyManagement>
      <dependencies>
         <!-- Commons -->
         <dependency>
            <groupId>commons-cli</groupId>
            <artifactId>commons-cli</artifactId>
            <version>${commons.cli.version}</version>
         </dependency>
         <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-compress</artifactId>
            <version>${commons.compress.version}</version>
         </dependency>

         <!-- Derby -->
         <dependency>
            <groupId>org.apache.derby</groupId>
            <artifactId>derby</artifactId>
            <version>${derby.version}</version>
            <scope>runtime</scope>
         </dependency>

         <!-- Google Brotli -->
         <dependency>
            <groupId>org.brotli</groupId>
            <artifactId>dec</artifactId>
            <version>${google.brotli}</version>
            <scope>runtime</scope>
         </dependency>

         <!-- JOL -->
         <dependency>
            <groupId>org.openjdk.jol</groupId>
            <artifactId>jol-core</artifactId>
            <version>${jol.version}</version>
         </dependency>

         <!-- JUnit -->
         <dependency>
            <groupId>org.junit</groupId>
            <artifactId>junit-bom</artifactId>
            <version>${junit.version}</version>
            <scope>import</scope>
            <type>pom</type>
         </dependency>

         <!-- Log4j -->
         <dependency>
            <groupId>org.apache.logging.log4j</groupId>
            <artifactId>log4j-api</artifactId>
            <version>${log4j.version}</version>
         </dependency>
         <dependency>
            <groupId>org.apache.logging.log4j</groupId>
            <artifactId>log4j-core</artifactId>
            <version>${log4j.version}</version>
            <scope>runtime</scope>
         </dependency>
         <dependency>
            <groupId>org.apache.logging.log4j</groupId>
            <artifactId>log4j-iostreams</artifactId>
            <version>${log4j.version}</version>
         </dependency>

         <!-- PostgreSQL -->
         <dependency>
            <groupId>org.postgresql</groupId>
            <artifactId>postgresql</artifactId>
            <version>${postgresql.version}</version>
            <scope>runtime</scope>
         </dependency>

         <!-- Saxon HE -->
         <dependency>
            <groupId>net.sf.saxon</groupId>
            <artifactId>Saxon-HE</artifactId>
            <version>${saxon.he.version}</version>
            <scope>runtime</scope>
         </dependency>

         <!-- Tukaani XY -->
         <dependency>
            <groupId>org.tukaani</groupId>
            <artifactId>xz</artifactId>
            <version>1.8</version>
            <scope>runtime</scope>
         </dependency>

         <!-- UCanAccess -->
         <dependency>
            <groupId>net.sf.ucanaccess</groupId>
            <artifactId>ucanaccess</artifactId>
            <version>${ucanaccess.version}</version>
            <scope>runtime</scope>
         </dependency>
      </dependencies>
   </dependencyManagement>

   <modules>
      <module>args</module>
      <module>bom</module>
      <module>converters</module>
      <module>core</module>
      <module>csv</module>
      <module>data</module>
      <module>enums</module>
      <module>graphs</module>
      <module>gv</module>
      <module>informers</module>
      <module>prefs</module>
      <module>pstrings</module>
      <module>rdb</module>
      <module>validation</module>
      <module>xml</module>
   </modules>
</project>