<!-- 
	If you are behind a proxy try the following command:
		'mvn -Dhttp.proxyHost=164.22.255.145 -Dhttp.proxyPort=8181 -U validate'
	or create in ${user.home}/.m2/repository a file "settings.xml"
	with this proxy setting.
 -->

<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>
  <groupId>com.github.oboehm</groupId>
  <artifactId>gdv-xport</artifactId>
  <packaging>pom</packaging>
  <version>7.2.3</version>
  <name>GDV.XPort</name>

  <modules>
    <module>lib</module>
    <module>service</module>
<!--    <module>deprecated</module>-->
  </modules>

  <url>http://www.aosd.de/gdv.xport/</url>

  <organization>
    <name>AOSD Labs</name>
    <url>http://www.aosd.de/</url>
  </organization>

  <!-- see http://maven.apache.org/pom.html#Licenses -->
  <licenses>
    <license>
      <name>The Apache Software License, Version 2.0</name>
      <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
    </license>
  </licenses>



  <properties>

    <patterntesting.version>2.4.0</patterntesting.version>
    <spring-boot.version>3.2.2</spring-boot.version>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <java.version>11</java.version>
    <maven.compiler.source>11</maven.compiler.source>
    <maven.compiler.target>11</maven.compiler.target>

    <main.class>gdv.xport.Main</main.class>

    <!-- Sonar -->
    <sonar.java.coveragePlugin>jacoco</sonar.java.coveragePlugin>

  </properties>



  <build>

    <resources>
      <resource>
        <directory>src/main/resources</directory>
        <includes>
          <include>**/*.properties</include>
        </includes>
        <filtering>true</filtering>
      </resource>
      <resource>
        <directory>src/main/resources</directory>
        <excludes>
          <exclude>**/*.properties</exclude>
        </excludes>
        <filtering>false</filtering>
      </resource>
    </resources>

    <!--
        Dependency management for plugins which are used in different places
        in the POM.
     -->
    <pluginManagement>
      <plugins>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-changes-plugin</artifactId>
          <version>2.12.1</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-compiler-plugin</artifactId>
          <version>3.8.1</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-source-plugin</artifactId>
          <version>3.2.1</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-javadoc-plugin</artifactId>
          <version>3.6.3</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-jar-plugin</artifactId>
          <version>3.3.0</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-war-plugin</artifactId>
          <version>3.3.2</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-install-plugin</artifactId>
          <version>3.1.0</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-jxr-plugin</artifactId>
          <version>2.5</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-project-info-reports-plugin</artifactId>
          <version>2.9</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-shade-plugin</artifactId>
          <version>3.2.1</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-site-plugin</artifactId>
          <version>3.7</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-surefire-plugin</artifactId>
          <version>3.1.2</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-failsafe-plugin</artifactId>
          <version>3.1.2</version>
        </plugin>
        <plugin>
          <groupId>org.codehaus.mojo</groupId>
          <artifactId>aspectj-maven-plugin</artifactId>
          <version>1.9</version>
        </plugin>
        <plugin>
          <groupId>org.sonarsource.scanner.maven</groupId>
          <artifactId>sonar-maven-plugin</artifactId>
          <version>3.9.1.2184</version>
        </plugin>
        <plugin>
          <groupId>org.jacoco</groupId>
          <artifactId>jacoco-maven-plugin</artifactId>
          <version>0.8.10</version>
        </plugin>
        <plugin>
          <groupId>org.codehaus.mojo</groupId>
          <artifactId>license-maven-plugin</artifactId>
          <version>1.13</version>
        </plugin>
        <plugin>
          <groupId>org.codehaus.mojo</groupId>
          <artifactId>clirr-maven-plugin</artifactId>
          <version>2.8</version>
        </plugin>
      </plugins>
    </pluginManagement>


  	<plugins>

      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-enforcer-plugin</artifactId>
        <version>3.3.0</version>
        <executions>
          <execution>
            <id>enforce-versions</id>
            <goals>
              <goal>enforce</goal>
            </goals>
            <configuration>
              <rules>
                <bannedPlugins>
                  <!-- will only display a warning but does not fail the build. -->
                  <level>WARN</level>
                  <excludes>
                    <exclude>org.apache.maven.plugins:maven-verifier-plugin</exclude>
                  </excludes>
                  <message>Please consider using the maven-invoker-plugin (http://maven.apache.org/plugins/maven-invoker-plugin/)!</message>
                </bannedPlugins>
                <requireMavenVersion>
                  <version>3.0</version>
                </requireMavenVersion>
                <requireJavaVersion>
                  <version>1.8</version>
                </requireJavaVersion>
              </rules>
            </configuration>
          </execution>
        </executions>
      </plugin>

      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>versions-maven-plugin</artifactId>
        <version>2.17.0</version>
        <configuration>
          <ignoredVersions>.*-M.*,.*-alpha.*,.*-beta.*</ignoredVersions>
        </configuration>
      </plugin>

      <!--
          Maven Site Plugin
          call 'mvn site:site' to generate web site
          see http://maven.apache.org/plugins/maven-site-plugin/examples/creating-content.html
      -->
      <plugin>
        <artifactId>maven-site-plugin</artifactId>
        <configuration>
          <locales>de</locales>
          <outputEncoding>UTF-8</outputEncoding>
        </configuration>
      </plugin>
      <!-- Unit Tests -->
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-surefire-plugin</artifactId>
        <configuration>
          <argLine>-XX:MaxMetaspaceSize=64m</argLine>
          <systemProperties>
            <property>
              <name>gdv.VU-Nummer</name>
              <value>4711</value>
            </property>
          </systemProperties>
        </configuration>
      </plugin>
      <!-- Integrations-Tests -->
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-failsafe-plugin</artifactId>
        <configuration>
          <argLine>-XX:MaxMetaspaceSize=64m</argLine>
          <!-- disable parallel execution so that JaCoCo listener can properly work -->
          <parallel>none</parallel>
          <forkCount>1</forkCount>
          <perCoreThreadCount>false</perCoreThreadCount>
          <reuseForks>true</reuseForks>
          <childDelegation>false</childDelegation>
          <!--
            Der Eintrag mit classesDirectory ist ein Workaround fuer Spring-Boot,
            damit die Integrations-Tests auch wirklich ausegefuert werden,
            s. https://github.com/spring-projects/spring-boot/issues/6254
          -->
          <classesDirectory>${project.build.outputDirectory}</classesDirectory>
          <systemPropertyVariables>
            <patterntesting.integrationTest>true</patterntesting.integrationTest>
            <includes>
              <include>**/*IT.java</include>
            </includes>
          </systemPropertyVariables>
        </configuration>
        <executions>
          <execution>
            <goals>
              <goal>integration-test</goal>
            </goals>
            <phase>integration-test</phase>
          </execution>
        </executions>
      </plugin>
      <!-- Sonar -->
      <plugin>
        <groupId>org.sonarsource.scanner.maven</groupId>
        <artifactId>sonar-maven-plugin</artifactId>
      </plugin>

      <!-- Code Coverage  -->
      <plugin>
        <groupId>org.jacoco</groupId>
        <artifactId>jacoco-maven-plugin</artifactId>
        <configuration>
          <append>true</append>
        </configuration>
        <executions>
          <execution>
            <id>default-prepare-agent</id>
            <goals>
              <goal>prepare-agent</goal>
            </goals>
          </execution>
          <execution>
            <id>default-report</id>
            <goals>
              <goal>report</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <groupId>org.eluder.coveralls</groupId>
        <artifactId>coveralls-maven-plugin</artifactId>
        <version>4.3.0</version>
      </plugin>

  	</plugins>
  	
  </build>



  <reporting>

    <plugins>

      <!-- Project Reports (like dependencies) -->
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-project-info-reports-plugin</artifactId>
        <version>3.4.2</version>
      </plugin>

      <!--
          Changes
          see http://maven.apache.org/plugins/maven-changes-plugin/usage.html
       -->
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-changes-plugin</artifactId>
        <reportSets>
          <reportSet>
            <reports>
              <report>changes-report</report>
            </reports>
          </reportSet>
        </reportSets>
      </plugin>

      <!--
          Javadoc
          see http://maven.apache.org/plugins/maven-javadoc-plugin/javadoc-mojo.html
      -->
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-javadoc-plugin</artifactId>
        <configuration>
          <source>${java.version}</source>
          <show>protected</show>
          <links>
            <link>http://docs.oracle.com/javase/17/docs/api/</link>
            <link>http://www.eclipse.org/aspectj/doc/released/runtime-api</link>
          </links>
          <failOnError>false</failOnError>
        </configuration>
      </plugin>

      <!-- Incompatiblity Report -->
      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>clirr-maven-plugin</artifactId>
        <configuration>
          <!-- Compare the current code against last release -->
          <comparisonVersion>4.2.0</comparisonVersion>
        </configuration>
      </plugin>

    </plugins>

  </reporting>


  <dependencyManagement>

    <dependencies>

      <!-- Apache Commons -->
      <dependency>
        <groupId>commons-cli</groupId>
        <artifactId>commons-cli</artifactId>
        <version>1.9.0</version>
      </dependency>
      <dependency>
        <groupId>org.apache.httpcomponents.client5</groupId>
        <artifactId>httpclient5</artifactId>
        <version>5.3.1</version>
      </dependency>
      <dependency>
        <groupId>org.apache.httpcomponents.client5</groupId>
        <artifactId>httpclient5-fluent</artifactId>
        <version>5.4</version>
      </dependency>
      <dependency>
        <groupId>commons-io</groupId>
        <artifactId>commons-io</artifactId>
        <version>2.17.0</version>
      </dependency>
      <dependency>
        <groupId>org.apache.commons</groupId>
        <artifactId>commons-lang3</artifactId>
        <version>3.17.0</version>
      </dependency>
      <dependency>
        <groupId>org.apache.commons</groupId>
        <artifactId>commons-text</artifactId>
        <version>1.12.0</version>
      </dependency>

      <!-- Testing -->
      <dependency>
        <groupId>org.junit.jupiter</groupId>
        <artifactId>junit-jupiter</artifactId>
        <version>5.11.3</version>
      </dependency>
      <dependency>
        <groupId>org.junit.jupiter</groupId>
        <artifactId>junit-jupiter-api</artifactId>
        <version>5.11.3</version>
      </dependency>
      <dependency>
        <groupId>org.junit.jupiter</groupId>
        <artifactId>junit-jupiter-params</artifactId>
        <version>5.11.3</version>
      </dependency>
      <dependency>
        <groupId>org.junit.jupiter</groupId>
        <artifactId>junit-jupiter-engine</artifactId>
        <version>5.11.3</version>
      </dependency>
      <dependency>
        <groupId>org.junit.vintage</groupId>
        <artifactId>junit-vintage-engine</artifactId>
        <version>5.11.3</version>
      </dependency>
      <dependency>
        <groupId>org.junit.platform</groupId>
        <artifactId>junit-platform-commons</artifactId>
        <version>1.11.3</version>
      </dependency>
      <dependency>
        <groupId>org.junit.platform</groupId>
        <artifactId>junit-platform-engine</artifactId>
        <version>1.11.3</version>
      </dependency>
      <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.13.2</version>
      </dependency>
      <dependency>
        <groupId>org.testcontainers</groupId>
        <artifactId>testcontainers</artifactId>
        <version>1.20.2</version>
      </dependency>
      <dependency>
        <groupId>org.testcontainers</groupId>
        <artifactId>postgresql</artifactId>
        <version>1.20.2</version>
      </dependency>

      <!-- Logging -->
      <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-api</artifactId>
        <version>2.0.16</version>
      </dependency>
      <dependency>
        <groupId>org.apache.logging.log4j</groupId>
        <artifactId>log4j-api</artifactId>
        <version>2.24.2</version>
      </dependency>
      <dependency>
        <groupId>org.apache.logging.log4j</groupId>
        <artifactId>log4j-core</artifactId>
        <version>2.24.2</version>
      </dependency>
      <dependency>
        <groupId>org.hsqldb</groupId>
        <artifactId>hsqldb</artifactId>
        <version>2.6.1</version>
        <classifier>jdk8</classifier>
      </dependency>
      <dependency>
        <groupId>org.postgresql</groupId>
        <artifactId>postgresql</artifactId>
        <version>42.7.4</version>
      </dependency>

      <!-- Testing -->
      <dependency>
        <groupId>org.patterntesting</groupId>
        <artifactId>patterntesting-rt</artifactId>
        <version>${patterntesting.version}</version>
      </dependency>
      <dependency>
        <groupId>io.github.netmikey.logunit</groupId>
        <artifactId>logunit-core</artifactId>
        <version>2.0.0</version>
      </dependency>
      <dependency>
        <groupId>io.github.netmikey.logunit</groupId>
        <artifactId>logunit-log4j2</artifactId>
        <version>2.0.0</version>
      </dependency>

      <!-- Import dependency management from Spring Boot -->
      <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>${spring-boot.version}</version>
        <type>pom</type>
        <scope>import</scope>
      </dependency>
      <dependency>
        <groupId>org.springdoc</groupId>
        <artifactId>springdoc-openapi-starter-webmvc-ui</artifactId>
        <version>2.3.0</version>
      </dependency>

      <!-- Thymeleaf + WebJars (see https://igorski.co/java/spring-boot/layout-dialect-spring-boot-2/) -->
      <dependency>
        <groupId>nz.net.ultraq.thymeleaf</groupId>
        <artifactId>thymeleaf-layout-dialect</artifactId>
        <version>3.3.0</version>
      </dependency>
      <dependency>
        <groupId>org.thymeleaf</groupId>
        <artifactId>thymeleaf</artifactId>
        <version>3.1.2.RELEASE</version>
      </dependency>
      <dependency>
        <groupId>org.thymeleaf</groupId>
        <artifactId>thymeleaf-spring6</artifactId>
        <version>3.1.2.RELEASE</version>
      </dependency>
      <dependency>
        <groupId>org.webjars</groupId>
        <artifactId>bootstrap</artifactId>
        <version>5.3.3</version>
      </dependency>
      <dependency>
        <groupId>org.webjars</groupId>
        <artifactId>jquery</artifactId>
        <version>3.7.1</version>
      </dependency>

      <!-- Object Validation Framework (OVal) -->
      <dependency>
        <groupId>net.sf.oval</groupId>
        <artifactId>oval</artifactId>
        <version>3.2.1</version>
      </dependency>
      <dependency>
        <groupId>de.jfachwert</groupId>
        <artifactId>jfachwert</artifactId>
        <version>6.0.1</version>
      </dependency>
      <dependency>
        <groupId>javax.validation</groupId>
        <artifactId>validation-api</artifactId>
        <version>2.0.1.Final</version>
      </dependency>

      <!-- for JsonFormatter -->
      <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-core</artifactId>
        <version>2.18.2</version>
      </dependency>
      <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-annotations</artifactId>
        <version>2.18.2</version>
      </dependency>
      <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-databind</artifactId>
        <version>2.18.2</version>
      </dependency>
      <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-dataformat-xml</artifactId>
        <version>2.18.2</version>
      </dependency>
      <dependency>
        <groupId>com.fasterxml.jackson.jaxrs</groupId>
        <artifactId>jackson-jaxrs-base</artifactId>
        <version>2.18.2</version>
      </dependency>

    </dependencies>

  </dependencyManagement>


  <!-- More Project Information -->

  <description>
    gdv.xport ist zum einen eine Java-Bibliothek, die den Umgang mit dem GDV-Format erleichtert.
    Sie erleichtert den Export und Export dieses Datenformats.
    Zum Anderen stellt gdv.xport auch Services zur Verfuegung,
    um ueber REST-Schnittstellen auf die Bibliotheks-Funktionen zugreifen zu koennen.
  </description>

  <inceptionYear>2009</inceptionYear>

  <developers>
    <developer>
      <name>Oliver Boehm</name>
      <id>oboehm</id>
      <email>ob@jugs.org</email>
      <organization>Java User Group Stuttgart</organization>
      <organizationUrl>http://www.jugs.org</organizationUrl>
      <url>http://www.aosd.de</url>
      <roles>
        <role>Java Developer</role>
      </roles>
    </developer>
    <developer>
      <name>Ralf Klemmer</name>
      <id>ralfklemmer</id>
      <email>r_klemmer@gmx.de</email>
      <roles>
        <role>Java Developer</role>
      </roles>
    </developer>
    <developer>
      <name>Andre Janus</name>
      <id>ajanus</id>
      <email>mail@andre-janus.de</email>
      <roles>
        <role>Java Developer</role>
      </roles>
    </developer>
    <developer>
      <name>Dawid Stoewe</name>
      <id>DaStoDev</id>
      <email>david_stoewe@yahoo.de</email>
      <roles>
        <role>Java Developer</role>
      </roles>
    </developer>
    <developer>
      <name>Ken Schosinsky</name>
      <id>schosin</id>
      <roles>
        <role>Java Developer</role>
      </roles>
      <url>https://github.com/schosin</url>
    </developer>
  </developers>
  <contributors>
    <contributor>
      <name>Igor Narodetskyi</name>
      <email>i.narodetskyi@autofleetcontrol.de</email>
      <roles>
        <role>Java Developer</role>
      </roles>
    </contributor>
    <contributor>
      <name>Frank Berger</name>
      <email>Frank.Berger@talanx.com</email>
      <roles>
        <role>Java Developer</role>
      </roles>
    </contributor>
    <contributor>
      <name>NiasSt90</name>
      <url>https://github.com/NiasSt90</url>
      <roles>
        <role>Java Developer</role>
      </roles>
    </contributor>
    <contributor>
      <name>MarkusFieber</name>
      <url>https://github.com/MarkusFieber</url>
      <roles>
        <role>Java Developer</role>
      </roles>
    </contributor>
    <contributor>
      <name>Jan-Benedikt Jagusch</name>
      <url>https://github.com/janjagusch</url>
      <roles>
        <role>Maintainer (Dockerfile)</role>
      </roles>
    </contributor>
    <contributor>
      <name>Klaus-Dieter Junke</name>
      <roles>
        <role>COBOL Expert</role>
      </roles>
    </contributor>
    <contributor>
      <name>Andy Teubner</name>
      <url>https://github.com/andyfined</url>
      <roles>
        <role>Lektor</role>
      </roles>
    </contributor>
    <contributor>
      <name>Markus Neidhardt</name>
      <url>https://github.com/markusneidhart</url>
      <roles>
        <role>Java Developer</role>
      </roles>
    </contributor>
  </contributors>
  
  <scm>
    <connection>scm:git:git://github.com/oboehm/gdv.xport.git</connection>
    <url>https://github.com/oboehm/gdv.xport</url>
  </scm>
  
  <issueManagement>
    <system>github</system>
    <url>https://github.com/oboehm/gdv.xport/issues</url>
  </issueManagement>
  
  <ciManagement>
    <system>Travis CI</system>
    <url>https://travis-ci.com/github/oboehm/gdv.xport</url>
  </ciManagement>

  <!--
      Erzeugung der Projekt-Seite
      Aufruf: mvn site-deploy
   -->
  <distributionManagement>
    <site>
      <id>local</id>
      <name>Projekt-Seite</name>
      <url>file:/tmp/gdv-xport</url>
    </site>
  </distributionManagement>
  
  <mailingLists>
    <mailingList>
      <name>gdv-xport</name>
      <archive>https://groups.google.com/forum/#!forum/gdv-xport</archive>
    </mailingList>
  </mailingLists>



</project>
