<?xml version="1.0" encoding="UTF-8"?>
<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>de.micromata.mgc</groupId>
  <artifactId>de.micromata.mgc.rootpom</artifactId>
  <version>3.1.3</version><!-- MGC -->
  <packaging>pom</packaging>

  <name>${project.groupId}:${project.artifactId}</name>
  <description>Micromata Genome Commons is a set of Java libraries to build mostly webserver based applications.
  </description>
  <url>https://github.com/micromata/mgc</url>

  <prerequisites>
    <maven>3.3.3</maven>
  </prerequisites>

  <organization>
    <name>Micromata GmbH</name>
    <url>https://labs.micromata.de</url>
  </organization>

  <inceptionYear>2016</inceptionYear>

  <developers>
    <developer>
      <id>r.kommer</id>
      <name>Roger Kommer</name>
      <email>kommer@extern.micromata.de/kommer@artefaktur.com</email>
      <organization>Micromata GmbH</organization>
      <organizationUrl>http://www.micromata.com</organizationUrl>
      <roles>
        <role>architect</role>
        <role>developer</role>
      </roles>
      <timezone>-1</timezone>
    </developer>
    <developer>
      <id>s.hardt</id>
      <name>Sebastian Hardt</name>
      <email>s.hardt@micromata.de</email>
      <organization>Micromata GmbH</organization>
      <organizationUrl>http://www.micromata.com</organizationUrl>
      <roles>
        <role>developer</role>
      </roles>
      <timezone>-1</timezone>
    </developer>
  </developers>


  <contributors>
  </contributors>

  <licenses>
    <license>
      <name>Apache 2.0</name>
      <url>/LICENSE.txt</url>
      <comments>All rights reserved.</comments>
      <distribution>manual</distribution>
    </license>
  </licenses>

  <scm>
    <url>https://github.com/micromata/mgc/tree/master</url>
    <connection>scm:git:git://github.com/micromata/mgc.git</connection>
    <developerConnection>scm:git:ssh://github.com:micromata/mgc.git</developerConnection>
    <tag>mgc-3.1.0</tag>
  </scm>

  <issueManagement>
    <system>GITHUB</system>
    <url>https://github.com/micromata/mgc/issues</url>
  </issueManagement>

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

    <!-- BUILD CONFIGURATION -->
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <project.build.sourceVersion>1.8</project.build.sourceVersion>
    <project.build.targetVersion>1.8</project.build.targetVersion>

    <log4j.version>1.2.17</log4j.version>

    <!-- Version 5.4.2 doesn't work with Intellij. Tested 03/28/2019. -->
    <junit.jupiter.version>5.3.2</junit.jupiter.version>
    <junit-platform.version>1.3.2</junit-platform.version>
    <junit.version>4.12</junit.version>

    <!-- COMMONS VERSIONS -->
    <commons-lang3.version>3.7</commons-lang3.version>
    <commons-io.version>2.6</commons-io.version>
    <commons-beanutils.version>1.9.3</commons-beanutils.version>
    <commons-collections.version>4.1</commons-collections.version>
    <commons-text.version>1.3</commons-text.version>
    <commons-codec.version>1.11</commons-codec.version>
    <commons-dbcp2.version>2.2.0</commons-dbcp2.version>

    <org.codehaus.groovy.groovy-all.version>2.4.12</org.codehaus.groovy.groovy-all.version>

    <!-- JAVAX VERSIONS -->
    <javax.servlet.api.version>3.1.0</javax.servlet.api.version>
    <javax.servlet.jsp.api.version>2.3.1</javax.servlet.jsp.api.version>
    <javax.mail.version>1.6.1</javax.mail.version>

    <jetty.version>9.3.23.v20180228</jetty.version>

    <org.hibernate-search-orm.version>5.11.2.Final</org.hibernate-search-orm.version>
    <!-- old 4.1.9.Final -->
    <org.hibernate.core.version>5.4.3.Final</org.hibernate.core.version>

    <spring.version>5.1.8.RELEASE</spring.version>
    <spring-boot.version>2.1.6.RELEASE</spring-boot.version>

    <org.apache.derby.version>10.14.2.0</org.apache.derby.version>

    <hsqldb.version>2.3.3</hsqldb.version>
    <spring-boot.jetty.version>9.2.14.v20151106</spring-boot.jetty.version>
    <minimal-json.version>0.9.5</minimal-json.version>
    <xstream.version>1.4.10</xstream.version>
    <javax.transaction-api.version>1.3</javax.transaction-api.version>
    <activation.version>1.1.1</activation.version>


    <!-- MAVEN PLUGINS VERSIONS -->
    <maven-compiler-plugin.version>3.7.0</maven-compiler-plugin.version>
    <license-maven-plugin.version>3.0</license-maven-plugin.version>
    <maven-install-plugin.version>2.5.2</maven-install-plugin.version>
    <maven-clean-plugin.version>3.1.0</maven-clean-plugin.version>
    <maven-resources-plugin.version>3.1.0</maven-resources-plugin.version>
    <maven-surefire-plugin-version>3.0.0-M3</maven-surefire-plugin-version>
    <maven-jar-plugin.version>3.1.0</maven-jar-plugin.version>
    <maven-source-plugin.version>3.0.1</maven-source-plugin.version>
    <spring-boot-maven-plugin.version>${spring-boot.version}</spring-boot-maven-plugin.version>
    <maven-enforcer-plugin.version>1.4.1</maven-enforcer-plugin.version>
    <import-enforcer-plugin.version>0.8.0</import-enforcer-plugin.version>
    <maven-javadoc-plugin.version>3.1.1</maven-javadoc-plugin.version>
    <maven-gpg-plugin.version>1.6</maven-gpg-plugin.version>
    <!-- EO MAVEN PLUGINS VERSIONS -->


  </properties>


  <modules>
    <module>de.micromata.mgc.common</module>
    <module>de.micromata.mgc.common.test</module>
    <module>de.micromata.mgc.util.xml</module>
    <module>de.micromata.mgc.logging</module>
    <module>de.micromata.mgc.logging.spi.ifiles</module>
    <module>de.micromata.mgc.jdbc.trace</module>
    <module>de.micromata.mgc.jpa.emgr</module>
    <module>de.micromata.mgc.jpa.tabattr</module>
    <module>de.micromata.mgc.jpa.history</module>
    <module>de.micromata.mgc.jpa.normsearch</module>
    <module>de.micromata.mgc.jpa.hibernatesearch</module>
    <module>de.micromata.mgc.jpa.spring</module>
    <module>de.micromata.mgc.jpa.xmldump</module>
    <module>de.micromata.mgc.jpa.logging</module>
    <module>de.micromata.mgc.email</module>
    <module>de.micromata.mgc.application</module>
    <module>de.micromata.mgc.application.webserver</module>
    <module>de.micromata.mgc.application.jetty</module>
    <module>de.micromata.mgc.application.springboot</module>
    <module>de.micromata.mgc.javafx.launcher</module>
    <module>de.micromata.mgc.chronos</module>
    <module>de.micromata.mgc.chronos.jpa</module>
    <module>samples</module>
  </modules>

  <profiles>
    <profile>
      <id>release</id>
      <modules>
        <module>de.micromata.mgc.common</module>
        <module>de.micromata.mgc.common.test</module>
        <module>de.micromata.mgc.util.xml</module>
        <module>de.micromata.mgc.logging</module>
        <module>de.micromata.mgc.logging.spi.ifiles</module>
        <module>de.micromata.mgc.jdbc.trace</module>
        <module>de.micromata.mgc.jpa.emgr</module>
        <module>de.micromata.mgc.jpa.tabattr</module>
        <module>de.micromata.mgc.jpa.history</module>
        <module>de.micromata.mgc.jpa.normsearch</module>
        <module>de.micromata.mgc.jpa.hibernatesearch</module>
        <module>de.micromata.mgc.jpa.spring</module>
        <module>de.micromata.mgc.jpa.xmldump</module>
        <module>de.micromata.mgc.jpa.logging</module>
        <module>de.micromata.mgc.email</module>
        <module>de.micromata.mgc.application</module>
        <module>de.micromata.mgc.application.webserver</module>
        <module>de.micromata.mgc.application.jetty</module>
        <module>de.micromata.mgc.application.springboot</module>
        <module>de.micromata.mgc.javafx.launcher</module>
        <module>de.micromata.mgc.chronos</module>
        <module>de.micromata.mgc.chronos.jpa</module>
      </modules>
      <build>
        <plugins>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-source-plugin</artifactId>
            <version>${maven-source-plugin.version}</version>
            <executions>
              <execution>
                <inherited>true</inherited>
                <id>attach-sources</id>
                <phase>verify</phase>
                <goals>
                  <goal>jar</goal>
                </goals>
              </execution>
            </executions>
            <configuration>
              <attach>true</attach>
            </configuration>
          </plugin>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-javadoc-plugin</artifactId>
            <version>${maven-javadoc-plugin.version}</version>
            <executions>
              <execution>
                <id>attach-javadocs</id>
                <goals>
                  <goal>jar</goal>
                </goals>
              </execution>
            </executions>
          </plugin>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-gpg-plugin</artifactId>
            <version>${maven-gpg-plugin.version}</version>
            <executions>
              <execution>
                <id>sign-artifacts</id>
                <phase>verify</phase>
                <goals>
                  <goal>sign</goal>
                </goals>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
    </profile>
  </profiles>

  <build>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>${maven-compiler-plugin.version}</version>
        <configuration>
          <source>${project.build.sourceVersion}</source>
          <target>${project.build.targetVersion}</target>
          <encoding>${project.build.sourceEncoding}</encoding>
        </configuration>
      </plugin>
      <plugin>
        <artifactId>maven-surefire-plugin</artifactId>
        <version>${maven-surefire-plugin-version}</version>
        <dependencies>
          <dependency>
            <groupId>org.apache.maven.surefire</groupId>
            <artifactId>surefire-junit-platform</artifactId>
            <version>${maven-surefire-plugin-version}</version>
          </dependency>
        </dependencies>
        <configuration>
          <testFailureIgnore>false</testFailureIgnore>
        </configuration>
      </plugin>

      <plugin>
        <!-- use license:format or license:update to patch java lisence header -->
        <groupId>com.mycila</groupId>
        <artifactId>license-maven-plugin</artifactId>
        <version>${license-maven-plugin.version}</version>
        <configuration>
          <header>distribution/JavaHeader.txt</header>
          <properties>
            <owner>Micromata GmbH</owner>
            <email>info@micromata.de</email>
          </properties>
          <mapping>
            <java>DOUBLESLASH_STYLE</java>
          </mapping>
          <includes>
            <include>**/*.java</include>
          </includes>
        </configuration>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-install-plugin</artifactId>
        <version>${maven-install-plugin.version}</version>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-clean-plugin</artifactId>
        <version>${maven-clean-plugin.version}</version>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-resources-plugin</artifactId>
        <version>${maven-resources-plugin.version}</version>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-jar-plugin</artifactId>
        <version>${maven-jar-plugin.version}</version>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-enforcer-plugin</artifactId>
        <version>${maven-enforcer-plugin.version}</version>
        <dependencies>
          <dependency>
            <groupId>de.skuzzle.enforcer</groupId>
            <artifactId>restrict-imports-enforcer-rule</artifactId>
            <version>${import-enforcer-plugin.version}</version>
          </dependency>
        </dependencies>
        <executions>
          <execution>
            <id>check-imports</id>
            <phase>process-sources</phase>
            <goals>
              <goal>enforce</goal>
            </goals>
            <configuration>
              <rules>
                <restrictImports implementation="de.skuzzle.enforcer.restrictimports.RestrictImports">
                  <reason>we don't want StringUtils other than those from commons-lang3</reason>
                  <bannedImport>org.springframework.util.StringUtils</bannedImport>
                </restrictImports>

                <restrictImports implementation="de.skuzzle.enforcer.restrictimports.RestrictImports">
                  <reason>we don't want commons-lang -- use commons-lang3</reason>
                  <bannedImport>org.apache.commons.lang.**</bannedImport>
                </restrictImports>

                <restrictImports implementation="de.skuzzle.enforcer.restrictimports.RestrictImports">
                  <reason>we don't want commons-collections -- use commons-collections4</reason>
                  <bannedImport>org.apache.commons.collections.**</bannedImport>
                </restrictImports>
              </rules>
            </configuration>
          </execution>
          <execution>
            <id>enforce-java</id>
            <goals>
              <goal>enforce</goal>
            </goals>
            <configuration>
              <rules>
                <requireJavaVersion>
                  <version>1.8.0-151</version>
                </requireJavaVersion>
                <requireMavenVersion>
                  <version>3.3.3</version>
                </requireMavenVersion>
              </rules>
            </configuration>
          </execution>
        </executions>
      </plugin>
    </plugins>
  </build>

</project>
