<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.kernel</groupId>
   <artifactId>cdc-kernel</artifactId>
   <version>0.21.1</version>
   <packaging>pom</packaging>

   <name>CDC - Kernel</name>
   <description>Kernel libraries.</description>
   <url>https://www.gitlab.com/cdc-java/cdc-kernel</url>

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

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

   <modules>
      <module>cdc-kernel-app</module>
      <module>cdc-kernel-args</module>
      <module>cdc-kernel-args-io</module>
      <module>cdc-kernel-benches</module>
      <module>cdc-kernel-bom</module>
      <module>cdc-kernel-converters</module>
      <module>cdc-kernel-converters-io</module>
      <module>cdc-kernel-demos</module>
      <module>cdc-kernel-enums</module>
      <module>cdc-kernel-informers</module>
      <module>cdc-kernel-informers-io</module>
      <module>cdc-kernel-prefs</module>
      <module>cdc-kernel-report</module>
      <module>cdc-kernel-rids</module>
      <module>cdc-kernel-validation</module>
      <module>cdc-kernel-validation-io</module>
   </modules>
   
   <scm>
      <url>https://gitlab.com/cdc-java/cdc-kernel</url>
      <connection>scm:git:https://gitlab.com/cdc-java/cdc-kernel.git</connection>
      <developerConnection>scm:git:https://gitlab.com/cdc-java/cdc-kernel.git</developerConnection>
      <tag>HEAD</tag>
   </scm>

   <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>

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

      <cdc.io.version>0.24.0</cdc.io.version>
      <cdc.util.version>0.29.0</cdc.util.version>
      <jmh.version>1.36</jmh.version>
      <junit.version>5.9.2</junit.version>
      <log4j.version>2.19.0</log4j.version>
      <maven.checkstyle.version>3.1.2</maven.checkstyle.version>
      <maven.compiler.version>3.10.1</maven.compiler.version>
      <maven.dependency.version>3.3.0</maven.dependency.version>
      <maven.depgraph.version>4.0.1</maven.depgraph.version>
      <maven.deploy.version>3.0.0-M2</maven.deploy.version>
      <maven.gpg.version>3.0.1</maven.gpg.version>
      <maven.install.version>3.0.0-M1</maven.install.version>
      <maven.jacoco.version>0.8.8</maven.jacoco.version>
      <maven.jar.version>3.2.2</maven.jar.version>
      <maven.javadoc.version>3.4.0</maven.javadoc.version>
      <maven.project.info.reports.version>3.0.0</maven.project.info.reports.version>
      <maven.source.version>3.2.1</maven.source.version>
      <maven.surefire.version>3.0.0-M6</maven.surefire.version>
      <maven.versions.version>2.7</maven.versions.version>
      <nexus.staging.maven.version>1.6.13</nexus.staging.maven.version>
   </properties>

   <dependencyManagement>
      <dependencies>
         <!-- 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>

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

         <!-- JMH -->
         <dependency>
            <groupId>org.openjdk.jmh</groupId>
            <artifactId>jmh-core</artifactId>
            <version>${jmh.version}</version>
         </dependency>
         <dependency>
            <groupId>org.openjdk.jmh</groupId>
            <artifactId>jmh-generator-annprocess</artifactId>
            <version>${jmh.version}</version>
         </dependency>

         <!-- CDC -->
         <dependency>
            <groupId>com.gitlab.cdc-java.util</groupId>
            <artifactId>cdc-util-bom</artifactId>
            <version>${cdc.util.version}</version>
            <scope>import</scope>
            <type>pom</type>
         </dependency>
         <dependency>
            <groupId>com.gitlab.cdc-java.io</groupId>
            <artifactId>cdc-io-bom</artifactId>
            <version>${cdc.io.version}</version>
            <scope>import</scope>
            <type>pom</type>
         </dependency>
      </dependencies>
   </dependencyManagement>

   <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>11</source>
                  <target>11</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-deploy-plugin</artifactId>
               <version>${maven.deploy.version}</version>
               <configuration>
                  <skip>true</skip>
               </configuration>
            </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>
               <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>
                  <archive>
                     <manifest>
                        <addDefaultImplementationEntries>true</addDefaultImplementationEntries>
                        <addBuildEnvironmentEntries>true</addBuildEnvironmentEntries>
                     </manifest>
                  </archive>
               </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>
                  <source>11</source>
               </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>
            <plugin>
               <groupId>org.codehaus.mojo</groupId>
               <artifactId>versions-maven-plugin</artifactId>
               <version>${maven.versions.version}</version>
            </plugin>
            <plugin>
               <groupId>org.jacoco</groupId>
               <artifactId>jacoco-maven-plugin</artifactId>
               <version>${maven.jacoco.version}</version>
               <executions>
                  <execution>
                     <id>prepare-agent</id>
                     <goals>
                        <goal>prepare-agent</goal>
                     </goals>
                  </execution>
               </executions>
            </plugin>
            <plugin>
               <groupId>org.sonatype.plugins</groupId>
               <artifactId>nexus-staging-maven-plugin</artifactId>
               <version>${nexus.staging.maven.version}</version>
               <extensions>true</extensions>
               <executions>
                  <execution>
                     <id>default-deploy</id>
                     <phase>deploy</phase>
                     <goals>
                        <goal>deploy</goal>
                     </goals>
                  </execution>
               </executions>
               <configuration>
                  <serverId>ossrh</serverId>
                  <nexusUrl>https://oss.sonatype.org/</nexusUrl>
                  <autoReleaseAfterClose>false</autoReleaseAfterClose>
                  <skipStagingRepositoryClose>true</skipStagingRepositoryClose>
               </configuration>
            </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>
         <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>versions-maven-plugin</artifactId>
         </plugin>
         <plugin>
            <groupId>org.jacoco</groupId>
            <artifactId>jacoco-maven-plugin</artifactId>
         </plugin>
         <plugin>
            <groupId>org.sonatype.plugins</groupId>
            <artifactId>nexus-staging-maven-plugin</artifactId>
         </plugin>
      </plugins>
   </build>
</project>