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

   <name>CDC - MF</name>
   <description>CDC Modelling Framework</description>
   <url>https://www.gitlab.com/cdc-java/cdc-mf</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-mf-bom</module>
      <module>cdc-mf-checks</module>
      <module>cdc-mf-ea</module>
      <module>cdc-mf-html</module>
      <module>cdc-mf-model</module>
      <module>cdc-mf-report</module>
      <module>cdc-mf-tools</module>
      <module>cdc-mf-transform</module>
   </modules>

   <scm>
      <url>https://gitlab.com/cdc-java/cdc-mf</url>
      <connection>scm:git:https://gitlab.com/cdc-java/cdc-mf.git</connection>
      <developerConnection>scm:git:https://gitlab.com/cdc-java/cdc-mf.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.graphs.version>0.71.4</cdc.graphs.version>
      <cdc.gv.version>0.100.4</cdc.gv.version>
      <cdc.io.version>0.54.0</cdc.io.version>
      <cdc.issues.version>0.67.0</cdc.issues.version>
      <cdc.kernel.version>0.52.0</cdc.kernel.version>
      <cdc.office.version>0.61.0</cdc.office.version>
      <cdc.rdb.version>0.52.4</cdc.rdb.version>
      <cdc.tuples.version>1.4.0</cdc.tuples.version>
      <cdc.util.version>0.55.0</cdc.util.version>
      <commons.cli.version>1.9.0</commons.cli.version>
      <commons.text.version>1.13.1</commons.text.version>
      <flexmark.version>0.64.8</flexmark.version>
      <hsqldb.version>2.7.4</hsqldb.version>
      <jackcess.version>4.0.8</jackcess.version>
      <java.version>17</java.version>
      <junit.version>5.12.1</junit.version>
      <log4j.version>2.24.3</log4j.version>
      <maven.checkstyle.version>3.5.0</maven.checkstyle.version>
      <maven.clean.version>3.4.0</maven.clean.version>
      <maven.compiler.version>3.13.0</maven.compiler.version>
      <maven.dependency.version>3.8.0</maven.dependency.version>
      <maven.depgraph.version>4.0.3</maven.depgraph.version>
      <maven.deploy.version>3.1.3</maven.deploy.version>
      <maven.enforcer.version>3.5.0</maven.enforcer.version>
      <maven.gpg.version>3.2.6</maven.gpg.version>
      <maven.install.version>3.1.3</maven.install.version>
      <maven.jacoco.version>0.8.12</maven.jacoco.version>
      <maven.jar.version>3.4.2</maven.jar.version>
      <maven.javadoc.version>3.10.0</maven.javadoc.version>
      <maven.project.info.reports.version>3.7.0</maven.project.info.reports.version>
      <maven.resources.version>3.3.1</maven.resources.version>
      <maven.site.version>4.0.0-M16</maven.site.version>
      <maven.source.version>3.3.1</maven.source.version>
      <maven.surefire.version>3.5.0</maven.surefire.version>
      <maven.version>3.8.8</maven.version>
      <maven.versions.version>2.17.1</maven.versions.version>
      <nexus.staging.maven.version>1.7.0</nexus.staging.maven.version>
      <plantuml.version>1.2025.2</plantuml.version>
      <st4.version>4.3.4</st4.version>
      <ucanaccess.version>5.0.1</ucanaccess.version>
      <xmlunit.version>2.10.0</xmlunit.version>
   </properties>

   <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-text</artifactId>
            <version>${commons.text.version}</version>
         </dependency>
            
         <!-- Log4j -->
         <dependency>
            <groupId>org.apache.logging.log4j</groupId>
            <artifactId>log4j-bom</artifactId>
            <version>${log4j.version}</version>
            <scope>import</scope>
            <type>pom</type>
         </dependency>

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

         <!-- Jackcess -->
         <dependency>
            <groupId>com.healthmarketscience.jackcess</groupId>
            <artifactId>jackcess</artifactId>
            <version>${jackcess.version}</version>
         </dependency>

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

         <!-- ST4 -->
         <dependency>
            <groupId>org.antlr</groupId>
            <artifactId>ST4</artifactId>
            <version>${st4.version}</version>
         </dependency>

         <!-- PlantUML -->
         <dependency>
            <groupId>net.sourceforge.plantuml</groupId>
            <artifactId>plantuml</artifactId>
            <version>${plantuml.version}</version>
         </dependency>

         <!-- Flexmark -->
         <dependency>
            <groupId>com.vladsch.flexmark</groupId>
            <artifactId>flexmark</artifactId>
            <version>${flexmark.version}</version>
         </dependency>
         <dependency>
            <groupId>com.vladsch.flexmark</groupId>
            <artifactId>flexmark-util-ast</artifactId>
            <version>${flexmark.version}</version>
         </dependency>
         <dependency>
            <groupId>com.vladsch.flexmark</groupId>
            <artifactId>flexmark-util-data</artifactId>
            <version>${flexmark.version}</version>
         </dependency>

         <!-- CDC -->
         <dependency>
            <groupId>com.gitlab.cdc-java.tuples</groupId>
            <artifactId>cdc-tuples</artifactId>
            <version>${cdc.tuples.version}</version>
         </dependency>
         <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>
         <dependency>
            <groupId>com.gitlab.cdc-java.kernel</groupId>
            <artifactId>cdc-kernel-bom</artifactId>
            <version>${cdc.kernel.version}</version>
            <scope>import</scope>
            <type>pom</type>
         </dependency>
         <dependency>
            <groupId>com.gitlab.cdc-java.gv</groupId>
            <artifactId>cdc-gv-bom</artifactId>
            <version>${cdc.gv.version}</version>
            <scope>import</scope>
            <type>pom</type>
         </dependency>
         <dependency>
            <groupId>com.gitlab.cdc-java.graphs</groupId>
            <artifactId>cdc-graphs-bom</artifactId>
            <version>${cdc.graphs.version}</version>
            <scope>import</scope>
            <type>pom</type>
         </dependency>
         <dependency>
            <groupId>com.gitlab.cdc-java.office</groupId>
            <artifactId>cdc-office-bom</artifactId>
            <version>${cdc.office.version}</version>
            <scope>import</scope>
            <type>pom</type>
         </dependency>
         <dependency>
            <groupId>com.gitlab.cdc-java.rdb</groupId>
            <artifactId>cdc-rdb-bom</artifactId>
            <version>${cdc.rdb.version}</version>
            <scope>import</scope>
            <type>pom</type>
         </dependency>
         <dependency>
            <groupId>com.gitlab.cdc-java.issues</groupId>
            <artifactId>cdc-issues-bom</artifactId>
            <version>${cdc.issues.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-clean-plugin</artifactId>
               <version>${maven.clean.version}</version>
            </plugin>
            <plugin>
               <groupId>org.apache.maven.plugins</groupId>
               <artifactId>maven-compiler-plugin</artifactId>
               <version>${maven.compiler.version}</version>
               <configuration>
                  <source>${java.version}</source>
                  <target>${java.version}</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-enforcer-plugin</artifactId>
               <version>${maven.enforcer.version}</version>
               <executions>
                  <execution>
                     <id>enforce-versions</id>
                     <goals>
                        <goal>enforce</goal>
                     </goals>
                     <configuration>
                        <rules>
                           <!--banTransitiveDependencies-->
                           <banDuplicatePomDependencyVersions/>
                           <requireMavenVersion>
                              <version>${maven.version}</version>
                           </requireMavenVersion>
                           <requireJavaVersion>
                              <version>${java.version}</version>
                           </requireJavaVersion>
                        </rules>
                     </configuration>
                  </execution>
               </executions>
            </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>
                  <doclint>all,-missing</doclint>
                  <source>${java.version}</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-resources-plugin</artifactId>
               <version>${maven.resources.version}</version>
            </plugin>
            <plugin>
               <groupId>org.apache.maven.plugins</groupId>
               <artifactId>maven-site-plugin</artifactId>
               <version>${maven.site.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-clean-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-enforcer-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-resources-plugin</artifactId>
         </plugin>
         <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-site-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>