<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>
  <parent>
    <groupId>org.molgenis</groupId>
    <artifactId>molgenis</artifactId>
    <version>7.2.0-RC2</version>
  </parent>
  <artifactId>molgenis-app</artifactId>
  <packaging>war</packaging>

  <name>app</name>
  <description>Default MOLGENIS application module containing all default plugins.</description>

  <properties>
    <owasp-check-format>HTML</owasp-check-format>
    <dockerfile-maven-version>1.4.0</dockerfile-maven-version>
    <dockerfile.tag>${project.version}</dockerfile.tag>
    <dockerfile.skip>true</dockerfile.skip>
    <dockerfile.repository>registry.hub.docker.com/molgenis/molgenis-app</dockerfile.repository>
  </properties>

  <build>
    <resources>
      <resource>
        <directory>${project.basedir}/src/main/resources</directory>
        <filtering>true</filtering>
      </resource>
    </resources>
    <plugins>
      <!-- Docker image containing the warfile -->
      <!-- Does not run by default but you can explicitly call dockerfile:build dockerfile:tag dockerfile:push -->
      <plugin>
        <groupId>com.spotify</groupId>
        <artifactId>dockerfile-maven-plugin</artifactId>
        <version>${dockerfile-maven-version}</version>
        <executions>
          <execution>
            <id>default-docker</id>
            <phase>package</phase>
            <goals>
              <goal>build</goal>
              <goal>tag</goal>
              <goal>push</goal>
            </goals>
          </execution>
        </executions>
        <configuration>
          <repository>${dockerfile.repository}</repository>
          <tag>${dockerfile.tag}</tag>
          <buildArgs>
            <WAR_FILE>target/${project.build.finalName}.war</WAR_FILE>
          </buildArgs>
          <useMavenSettingsForAuth>true</useMavenSettingsForAuth>
        </configuration>
      </plugin>
      <!-- Reserve network port for jetty -->
      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>build-helper-maven-plugin</artifactId>
        <executions>
          <execution>
            <id>reserve-network-port</id>
            <phase>process-resources</phase>
            <configuration>
              <minPortNumber>8080</minPortNumber>
              <portNames>
                <portName>jetty.http.port</portName>
              </portNames>
              <randomPort>false</randomPort>
            </configuration>
          </execution>
        </executions>
      </plugin>
      <!-- servlet container -->
      <plugin>
        <groupId>org.eclipse.jetty</groupId>
        <artifactId>jetty-maven-plugin</artifactId>
        <version>${jetty-maven-plugin.version}</version>
        <configuration>
          <stopPort>8079</stopPort>
          <stopKey>jetty-stop</stopKey>
          <reload>manual</reload>
          <webAppConfig>
            <contextPath>/</contextPath>
            <baseResource implementation="org.eclipse.jetty.util.resource.ResourceCollection">
              <resourcesAsCSV>${basedir}/src/main/resources</resourcesAsCSV>
            </baseResource>
            <webInfIncludeJarPattern>.*/molgenis-[^/]*\.jar$|.*spring-[^/]*\.jar$
            </webInfIncludeJarPattern>
          </webAppConfig>
        </configuration>
      </plugin>
    </plugins>
    <pluginManagement>
      <plugins>
        <!-- web server -->
        <plugin>
          <groupId>org.mortbay.jetty</groupId>
          <artifactId>jetty-maven-plugin</artifactId>
        </plugin>
        <!--
            Checks (transitive) dependencies for known vulnerabilities.
            > mvn org.owasp:dependency-check-maven:check
            > mvn org.owasp:dependency-check-maven:check -Dowasp-check-format=XML
        -->
        <plugin>
          <groupId>org.owasp</groupId>
          <artifactId>dependency-check-maven</artifactId>
          <version>3.1.2</version>
          <configuration>
            <suppressionFile>owasp-check-suppressions.xml</suppressionFile>
            <format>${owasp-check-format}</format>
          </configuration>
        </plugin>
      </plugins>
    </pluginManagement>
  </build>

  <dependencies>
    <dependency>
      <groupId>org.molgenis</groupId>
      <artifactId>molgenis-app-manager</artifactId>
      <version>${project.version}</version>
    </dependency>
    <dependency>
      <groupId>org.molgenis</groupId>
      <artifactId>molgenis-beacon</artifactId>
      <version>${project.version}</version>
    </dependency>
    <dependency>
      <groupId>org.molgenis</groupId>
      <artifactId>molgenis-bootstrap</artifactId>
      <version>${project.version}</version>
    </dependency>
    <dependency>
      <groupId>org.molgenis</groupId>
      <artifactId>molgenis-core</artifactId>
      <version>${project.version}</version>
    </dependency>
    <dependency>
      <groupId>org.molgenis</groupId>
      <artifactId>molgenis-data</artifactId>
      <version>${project.version}</version>
    </dependency>
    <dependency>
      <groupId>org.molgenis</groupId>
      <artifactId>molgenis-core-ui</artifactId>
      <version>${project.version}</version>
    </dependency>
    <dependency>
      <groupId>org.molgenis</groupId>
      <artifactId>molgenis-security</artifactId>
      <version>${project.version}</version>
    </dependency>
    <dependency>
      <groupId>org.molgenis</groupId>
      <artifactId>molgenis-dataexplorer</artifactId>
      <version>${project.version}</version>
    </dependency>
    <dependency>
      <groupId>org.molgenis</groupId>
      <artifactId>molgenis-data-plugin</artifactId>
      <version>${project.version}</version>
    </dependency>
    <dependency>
      <groupId>org.molgenis</groupId>
      <artifactId>molgenis-data-excel</artifactId>
      <version>${project.version}</version>
    </dependency>
    <dependency>
      <groupId>org.molgenis</groupId>
      <artifactId>molgenis-data-csv</artifactId>
      <version>${project.version}</version>
    </dependency>
    <dependency>
      <groupId>org.molgenis</groupId>
      <artifactId>molgenis-python</artifactId>
      <version>${project.version}</version>
    </dependency>
    <dependency>
      <groupId>org.molgenis</groupId>
      <artifactId>molgenis-r</artifactId>
      <version>${project.version}</version>
    </dependency>
    <dependency>
      <groupId>org.molgenis</groupId>
      <artifactId>molgenis-searchall</artifactId>
      <version>${project.version}</version>
    </dependency>
    <dependency>
      <groupId>org.molgenis</groupId>
      <artifactId>molgenis-data-rest</artifactId>
      <version>${project.version}</version>
    </dependency>
    <dependency>
      <groupId>org.molgenis</groupId>
      <artifactId>molgenis-data-row-edit</artifactId>
      <version>${project.version}</version>
    </dependency>
    <dependency>
      <groupId>org.molgenis</groupId>
      <artifactId>molgenis-jobs</artifactId>
      <version>${project.version}</version>
    </dependency>
    <dependency>
      <groupId>org.molgenis</groupId>
      <artifactId>molgenis-data-vcf</artifactId>
      <version>${project.version}</version>
    </dependency>
    <dependency>
      <groupId>org.molgenis</groupId>
      <artifactId>molgenis-semantic-mapper</artifactId>
      <version>${project.version}</version>
    </dependency>
    <dependency>
      <groupId>org.molgenis</groupId>
      <artifactId>molgenis-data-import</artifactId>
      <version>${project.version}</version>
    </dependency>
    <dependency>
      <groupId>org.molgenis</groupId>
      <artifactId>molgenis-data-elasticsearch</artifactId>
      <version>${project.version}</version>
    </dependency>
    <dependency>
      <groupId>org.molgenis</groupId>
      <artifactId>molgenis-ontology</artifactId>
      <version>${project.version}</version>
    </dependency>
    <dependency>
      <groupId>org.molgenis</groupId>
      <artifactId>molgenis-semantic-search</artifactId>
      <version>${project.version}</version>
    </dependency>
    <dependency>
      <groupId>org.molgenis</groupId>
      <artifactId>molgenis-data-migrate</artifactId>
      <version>${project.version}</version>
    </dependency>
    <dependency>
      <groupId>org.molgenis</groupId>
      <artifactId>molgenis-questionnaires</artifactId>
      <version>${project.version}</version>
    </dependency>
    <dependency>
      <groupId>org.molgenis</groupId>
      <artifactId>molgenis-scripts</artifactId>
      <version>${project.version}</version>
    </dependency>
    <dependency>
      <groupId>org.molgenis</groupId>
      <artifactId>molgenis-scripts-core</artifactId>
      <version>${project.version}</version>
    </dependency>
    <dependency>
      <groupId>org.molgenis</groupId>
      <artifactId>molgenis-file-ingester</artifactId>
      <version>${project.version}</version>
    </dependency>
    <dependency>
      <groupId>org.molgenis</groupId>
      <artifactId>molgenis-genomebrowser</artifactId>
      <version>${project.version}</version>
    </dependency>
    <dependency>
      <groupId>org.molgenis</groupId>
      <artifactId>molgenis-data-i18n</artifactId>
      <version>${project.version}</version>
    </dependency>
    <dependency>
      <groupId>org.molgenis</groupId>
      <artifactId>molgenis-data-icd10</artifactId>
      <version>${project.version}</version>
    </dependency>
    <dependency>
      <groupId>org.molgenis</groupId>
      <artifactId>molgenis-i18n</artifactId>
      <version>${project.version}</version>
    </dependency>
    <dependency>
      <groupId>org.molgenis</groupId>
      <artifactId>molgenis-data-security</artifactId>
      <version>${project.version}</version>
    </dependency>
    <dependency>
      <groupId>org.molgenis</groupId>
      <artifactId>molgenis-data-index</artifactId>
      <version>${project.version}</version>
    </dependency>
    <dependency>
      <groupId>org.molgenis</groupId>
      <artifactId>molgenis-fair</artifactId>
      <version>${project.version}</version>
    </dependency>
    <dependency>
      <groupId>org.molgenis</groupId>
      <artifactId>molgenis-util</artifactId>
      <version>${project.version}</version>
    </dependency>
    <dependency>
      <groupId>org.molgenis</groupId>
      <artifactId>molgenis-settings</artifactId>
      <version>${project.version}</version>
    </dependency>
    <dependency>
      <groupId>org.molgenis</groupId>
      <artifactId>molgenis-settings-ui</artifactId>
      <version>${project.version}</version>
    </dependency>
    <dependency>
      <groupId>org.molgenis</groupId>
      <artifactId>molgenis-swagger</artifactId>
      <version>${project.version}</version>
    </dependency>
    <dependency>
      <groupId>org.molgenis</groupId>
      <artifactId>molgenis-amazon-bucket</artifactId>
      <version>${project.version}</version>
    </dependency>
    <dependency>
      <groupId>org.molgenis</groupId>
      <artifactId>molgenis-navigator</artifactId>
      <version>${project.version}</version>
    </dependency>
    <dependency>
      <groupId>org.molgenis</groupId>
      <artifactId>molgenis-metadata-manager</artifactId>
      <version>${project.version}</version>
    </dependency>
    <dependency>
      <groupId>org.molgenis</groupId>
      <artifactId>molgenis-one-click-importer</artifactId>
      <version>${project.version}</version>
    </dependency>
    <dependency>
      <groupId>org.molgenis</groupId>
      <artifactId>molgenis-web</artifactId>
      <version>${project.version}</version>
    </dependency>
    <dependency>
      <groupId>org.molgenis</groupId>
      <artifactId>molgenis-test</artifactId>
      <version>${project.version}</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>javax.servlet</groupId>
      <artifactId>javax.servlet-api</artifactId>
      <scope>provided</scope>
    </dependency>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-webmvc</artifactId>
    </dependency>
    <dependency>
      <groupId>org.springframework.security</groupId>
      <artifactId>spring-security-config</artifactId>
    </dependency>
    <dependency>
      <groupId>org.molgenis</groupId>
      <artifactId>molgenis-security-ui</artifactId>
      <version>${project.version}</version>
    </dependency>
  </dependencies>
</project>
