<?xml version="1.0" encoding="UTF-8"?>
<!--
  ~ Licensed to the Apache Software Foundation (ASF) under one
  ~ or more contributor license agreements.  See the NOTICE file
  ~ distributed with this work for additional information
  ~ regarding copyright ownership.  The ASF licenses this file
  ~ to you under the Apache License, Version 2.0 (the
  ~ "License"); you may not use this file except in compliance
  ~ with the License.  You may obtain a copy of the License at
  ~
  ~  http://www.apache.org/licenses/LICENSE-2.0
  ~
  ~ Unless required by applicable law or agreed to in writing,
  ~ software distributed under the License is distributed on an
  ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
  ~ KIND, either express or implied.  See the License for the
  ~ specific language governing permissions and limitations
  ~ under the License.
  -->
<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>

  <parent>
    <groupId>org.apache.archiva</groupId>
    <artifactId>archiva-parent</artifactId>
    <version>19-SNAPSHOT</version>
  </parent>

  <groupId>org.apache.archiva.redback</groupId>
  <artifactId>redback</artifactId>
  <version>3.0.0-SNAPSHOT</version>

  <packaging>pom</packaging>
  <name>Apache Archiva Redback</name>

  <url>http://archiva.apache.org/redback/core</url>
  <inceptionYear>2006</inceptionYear>

  <issueManagement>
    <system>Jira</system>
    <url>http://jira.codehaus.org/browse/REDBACK</url>
  </issueManagement>

  <modules>
    <module>redback-authentication</module>
    <module>redback-authorization</module>
    <module>redback-configuration</module>
    <module>redback-common</module>
    <module>redback-policy</module>
    <module>redback-rbac</module>
    <module>redback-system</module>
    <module>redback-keys</module>
    <module>redback-users</module>
    <module>redback-data-management</module>
    <module>redback-integrations</module>
  </modules>

  <scm>
    <connection>scm:git:https://gitbox.apache.org/repos/asf/archiva-redback-core.git</connection>
    <developerConnection>scm:git:https://gitbox.apache.org/repos/asf/archiva-redback-core.git</developerConnection>
    <url>https://github.com/apache/archiva-redback-core</url>
    <tag>HEAD</tag>
  </scm>

  <distributionManagement>
    <site>
      <id>apache.website</id>
      <url>${siteRepositoryUrl}</url>
    </site>
  </distributionManagement>

  <properties>
    <site.staging.base>${project.basedir}</site.staging.base>
    <springVersion>4.3.10.RELEASE</springVersion>
    <commons-collections.version>4.1</commons-collections.version>

    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <gpg.useagent>true</gpg.useagent>
    <cxf.version>3.0.3</cxf.version>
    <openjpa.version>2.4.1</openjpa.version>

    <junit.platform.version>1.5.2</junit.platform.version>
    <junit.jupiter.version>5.5.2</junit.jupiter.version>

    <!--
    <redbackTestJdbcUrl>jdbc:derby:memory:users-test;create=true</redbackTestJdbcUrl>
    <redbackTestJdbcDriver>org.apache.derby.jdbc.EmbeddedDriver</redbackTestJdbcDriver>
     -->
    <redbackTestJdbcUrl>jdbc:hsqldb:mem:redback-test</redbackTestJdbcUrl>
    <redbackTestJdbcDriver>org.hsqldb.jdbcDriver</redbackTestJdbcDriver>

    <openjpa.Log>DefaultLevel=INFO,Runtime=ERROR,Tool=ERROR,SQL=ERROR,Schema=ERROR,MetaData=ERROR</openjpa.Log>

    <scmPubCheckoutDirectory>${basedir}/.site-content</scmPubCheckoutDirectory>
    <!-- The git repository, where the site content is placed -->
    <siteRepositoryUrl>scm:git:https://gitbox.apache.org/repos/asf/archiva-web-content.git</siteRepositoryUrl>

    <site.staging.base>${project.basedir}</site.staging.base>

  </properties>

  <repositories>
    <repository>
      <id>archiva.snapshots</id>
      <name>Archiva VM Snapshots Repository</name>
      <url>https://archiva-repository.apache.org/archiva/repository/snapshots</url>
      <releases>
        <enabled>false</enabled>
      </releases>
      <snapshots>
        <enabled>true</enabled>
      </snapshots>
    </repository>
    <repository>
      <id>apache.snapshots</id>
      <url>https://repository.apache.org/content/groups/snapshots-group</url>
      <releases>
        <enabled>false</enabled>
      </releases>
      <snapshots>
        <enabled>true</enabled>
      </snapshots>
    </repository>
  </repositories>

  <pluginRepositories>
    <pluginRepository>
      <id>apache.snapshots</id>
      <name>Apache Snapshots</name>
      <url>https://repository.apache.org/content/groups/snapshots/</url>
      <releases>
        <enabled>false</enabled>
      </releases>
      <snapshots>
        <enabled>true</enabled>
      </snapshots>
    </pluginRepository>
  </pluginRepositories>

  <dependencyManagement>
    <dependencies>
      <dependency>
        <groupId>org.apache.archiva.redback</groupId>
        <artifactId>redback-configuration</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.archiva.redback</groupId>
        <artifactId>redback-system</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.archiva.redback</groupId>
        <artifactId>redback-policy</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.archiva.redback</groupId>
        <artifactId>redback-common-ldap</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.archiva.redback</groupId>
        <artifactId>redback-authentication-api</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.archiva.redback</groupId>
        <artifactId>redback-keys-api</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.archiva.redback</groupId>
        <artifactId>redback-keys-tests</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.archiva.redback</groupId>
        <artifactId>redback-keys-cached</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.archiva.redback</groupId>
        <artifactId>redback-keys-memory</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.archiva.redback</groupId>
        <artifactId>redback-keys-jpa</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.archiva.redback</groupId>
        <artifactId>redback-authentication-users</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.archiva.redback</groupId>
        <artifactId>redback-authentication-ldap</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.archiva.redback</groupId>
        <artifactId>redback-authentication-memory</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.archiva.redback</groupId>
        <artifactId>redback-authentication-keys</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.archiva.redback</groupId>
        <artifactId>redback-authorization-api</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.archiva.redback</groupId>
        <artifactId>redback-users-api</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.archiva.redback</groupId>
        <artifactId>redback-users-jpa</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.archiva.redback</groupId>
        <artifactId>redback-users-memory</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.archiva.redback</groupId>
        <artifactId>redback-users-configurable</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.archiva.redback</groupId>
        <artifactId>redback-users-ldap</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.archiva.redback</groupId>
        <artifactId>redback-users-cached</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.archiva.redback</groupId>
        <artifactId>redback-users-tests</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.archiva.redback</groupId>
        <artifactId>redback-authorization-rbac</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.archiva.redback</groupId>
        <artifactId>redback-rbac-model</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.archiva.redback</groupId>
        <artifactId>redback-rbac-tests</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.archiva.redback</groupId>
        <artifactId>redback-rbac-memory</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.archiva.redback</groupId>
        <artifactId>redback-rbac-cached</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.archiva.redback</groupId>
        <artifactId>redback-rbac-jpa</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.archiva.redback</groupId>
        <artifactId>redback-rbac-role-manager</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.archiva.redback</groupId>
        <artifactId>redback-common-test-resources</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.archiva.redback</groupId>
        <artifactId>redback-data-management</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.archiva.redback</groupId>
        <artifactId>redback-common-integrations</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.archiva.redback</groupId>
        <artifactId>redback-integrations-security</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.archiva.redback</groupId>
        <artifactId>redback-common-jpa</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.archiva.redback</groupId>
        <artifactId>redback-common-configuration-api</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>servlet-api</artifactId>
        <version>2.5</version>
        <scope>provided</scope>
      </dependency>
      <dependency>
        <groupId>org.apache.archiva.redback.components.cache</groupId>
        <artifactId>spring-cache-api</artifactId>
        <version>${redback.comp.spring-cache.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.archiva.redback.components.cache</groupId>
        <artifactId>spring-cache-ehcache</artifactId>
        <version>${redback.comp.spring-cache.version}</version>
      </dependency>
      <dependency>
        <groupId>net.sf.ehcache</groupId>
        <artifactId>ehcache</artifactId>
        <version>2.7.5</version>
      </dependency>
      <dependency>
        <groupId>org.apache.archiva.components</groupId>
        <artifactId>archiva-components-expression-evaluator</artifactId>
        <version>${archiva.comp.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.archiva.redback.components.registry</groupId>
        <artifactId>spring-registry-api</artifactId>
        <version>${redback.comp.spring-registry.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.archiva.redback.components.registry</groupId>
        <artifactId>spring-registry-commons</artifactId>
        <version>${redback.comp.spring-registry.version}</version>
      </dependency>
      <!-- Other -->
      <dependency>
        <groupId>org.apache.commons</groupId>
        <artifactId>commons-lang3</artifactId>
        <version>${commons.lang3.version}</version>
      </dependency>
      <dependency>
        <groupId>commons-digester</groupId>
        <artifactId>commons-digester</artifactId>
        <version>1.8.1</version>
      </dependency>
      <dependency>
        <groupId>commons-io</groupId>
        <artifactId>commons-io</artifactId>
        <version>2.4</version>
      </dependency>
      <dependency>
        <groupId>commons-collections</groupId>
        <artifactId>commons-collections</artifactId>
        <!-- commons-configuration requires this version. -->
        <version>3.2</version>
      </dependency>
      <dependency>
        <groupId>commons-codec</groupId>
        <artifactId>commons-codec</artifactId>
        <version>${commons.codec.version}</version>
      </dependency>

      <dependency>
        <groupId>org.apache.commons</groupId>
        <artifactId>commons-collections4</artifactId>
        <version>${commons-collections.version}</version>
      </dependency>
      <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-api</artifactId>
        <version>${slf4j.version}</version>
      </dependency>
      <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-simple</artifactId>
        <version>${slf4j.version}</version>
        <scope>test</scope>
      </dependency>
      <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-log4j12</artifactId>
        <version>${slf4j.version}</version>
        <scope>test</scope>
      </dependency>
      <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>jul-to-slf4j</artifactId>
        <version>${slf4j.version}</version>
        <scope>test</scope>
      </dependency>
      <dependency>
        <groupId>org.easymock</groupId>
        <artifactId>easymock</artifactId>
        <version>2.2</version>
        <scope>test</scope>
      </dependency>
      <dependency>
        <groupId>org.hsqldb</groupId>
        <artifactId>hsqldb</artifactId>
        <version>2.3.2</version>
        <scope>test</scope>
      </dependency>
      <!-- spring -->
      <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-core</artifactId>
        <version>${springVersion}</version>
      </dependency>
      <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-aop</artifactId>
        <version>${springVersion}</version>
      </dependency>
      <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-web</artifactId>
        <version>${springVersion}</version>
      </dependency>
      <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-beans</artifactId>
        <version>${springVersion}</version>
      </dependency>
      <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-context</artifactId>
        <version>${springVersion}</version>
      </dependency>
      <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-context-support</artifactId>
        <version>${springVersion}</version>
      </dependency>
      <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-expression</artifactId>
        <version>${springVersion}</version>
      </dependency>
      <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-test</artifactId>
        <version>${springVersion}</version>
      </dependency>
      <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-tx</artifactId>
        <version>${springVersion}</version>
      </dependency>
      <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-orm</artifactId>
        <version>${springVersion}</version>
      </dependency>
      <dependency>
        <groupId>javax.annotation</groupId>
        <artifactId>jsr250-api</artifactId>
        <version>1.0</version>
      </dependency>
      <dependency>
        <groupId>javax.inject</groupId>
        <artifactId>javax.inject</artifactId>
        <version>1</version>
      </dependency>
      <dependency>
        <groupId>org.apache.archiva.redback</groupId>
        <artifactId>redback-rest-api</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.archiva.redback</groupId>
        <artifactId>redback-rest-services</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>com.google.guava</groupId>
        <artifactId>guava</artifactId>
        <version>13.0.1</version>
      </dependency>
      <!--
      using apacheds client api rather than com.sun.jndi.ldap
      issue is apacheds client doesn't getDirContext
      so this need to rewrite a lot !
      <dependency>
        <groupId>org.apache.directory.shared</groupId>
        <artifactId>shared-ldap-client-api</artifactId>
        <version>1.0.0-M7</version>
      </dependency>
      -->
      <dependency>
        <groupId>org.apache.archiva.components</groupId>
        <artifactId>archiva-components-spring-apacheds</artifactId>
        <version>${archiva.comp.version}</version>
      </dependency>
      <!--
      <dependency>
        <groupId>javax.mail</groupId>
        <artifactId>mail</artifactId>
        <version>1.4</version>
      </dependency>
      -->
      <dependency>
        <groupId>javax.xml.stream</groupId>
        <artifactId>stax-api</artifactId>
        <version>1.0-2</version>
      </dependency>
      <dependency>
        <groupId>javax.ws.rs</groupId>
        <artifactId>javax.ws.rs-api</artifactId>
        <version>2.0</version>
      </dependency>
      <!--
      <dependency>
        <groupId>org.codehaus.jackson</groupId>
        <artifactId>jackson-jaxrs</artifactId>
        <version>${jacksonVersion}</version>
      </dependency>
      <dependency>
        <groupId>org.codehaus.jackson</groupId>
        <artifactId>jackson-xc</artifactId>
        <version>${jacksonVersion}</version>
      </dependency>
      -->
      <dependency>
        <groupId>com.fasterxml.jackson.jaxrs</groupId>
        <artifactId>jackson-jaxrs-json-provider</artifactId>
        <version>${jacksonVersion}</version>
      </dependency>
      <dependency>
        <groupId>com.fasterxml.jackson.jaxrs</groupId>
        <artifactId>jackson-jaxrs-xml-provider</artifactId>
        <version>${jacksonVersion}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.cxf</groupId>
        <artifactId>cxf-rt-frontend-jaxrs</artifactId>
        <version>${cxf.version}</version>
      </dependency>

      <dependency>
        <groupId>org.apache.cxf</groupId>
        <artifactId>cxf-rt-rs-client</artifactId>
        <version>${cxf.version}</version>
      </dependency>

      <dependency>
        <groupId>org.apache.cxf</groupId>
        <artifactId>cxf-rt-rs-extension-providers</artifactId>
        <version>${cxf.version}</version>
      </dependency>

      <dependency>
        <groupId>javax.mail</groupId>
        <artifactId>mail</artifactId>
        <version>1.4</version>
        <scope>provided</scope>
      </dependency>

      <!-- JUNIT 5 -->
      <dependency>
        <groupId>org.junit.platform</groupId>
        <artifactId>junit-platform-launcher</artifactId>
        <version>${junit.platform.version}</version>
        <scope>test</scope>
      </dependency>
      <dependency>
        <groupId>org.junit.platform</groupId>
        <artifactId>junit-platform-console-standalone</artifactId>
        <version>${junit.platform.version}</version>
        <scope>test</scope>
      </dependency>
      <dependency>
        <groupId>org.junit.jupiter</groupId>
        <artifactId>junit-jupiter-engine</artifactId>
        <version>${junit.jupiter.version}</version>
        <scope>test</scope>
      </dependency>
      <dependency>
        <groupId>org.junit.vintage</groupId>
        <artifactId>junit-vintage-engine</artifactId>
        <version>${junit.jupiter.version}</version>
        <scope>test</scope>
      </dependency>


      <dependency>
        <groupId>xmlunit</groupId>
        <artifactId>xmlunit</artifactId>
        <version>1.3</version>
      </dependency>
      <dependency>
        <groupId>org.assertj</groupId>
        <artifactId>assertj-core</artifactId>
        <version>1.7.1</version>
      </dependency>
      <dependency>
        <groupId>org.freemarker</groupId>
        <artifactId>freemarker</artifactId>
        <version>2.3.29</version>
      </dependency>

      <!-- Dependencies for JDK >=9 update -->
      <dependency>
        <groupId>javax.annotation</groupId>
        <artifactId>javax.annotation-api</artifactId>
        <version>1.3.2</version>
      </dependency>

      <dependency>
        <groupId>javax.xml.bind</groupId>
        <artifactId>jaxb-api</artifactId>
        <version>2.3.0</version>
      </dependency>

      <dependency>
        <groupId>commons-beanutils</groupId>
        <artifactId>commons-beanutils</artifactId>
        <version>${commons-beanutils.version}</version>
        <exclusions>
          <exclusion>
            <groupId>commons-logging</groupId>
            <artifactId>commons-logging</artifactId>
          </exclusion>
        </exclusions>
      </dependency>

      <dependency>
        <groupId>org.apache.logging.log4j</groupId>
        <artifactId>log4j-api</artifactId>
        <version>2.9.1</version>
        <scope>test</scope>
      </dependency>

      <dependency>
        <groupId>org.apache.logging.log4j</groupId>
        <artifactId>log4j-core</artifactId>
        <version>2.9.1</version>
        <scope>test</scope>
      </dependency>

      <dependency>
        <groupId>org.apache.logging.log4j</groupId>
        <artifactId>log4j-slf4j-impl</artifactId>
        <version>2.9.1</version>
        <scope>test</scope>
      </dependency>

      <dependency>
        <groupId>org.apache.logging.log4j</groupId>
        <artifactId>log4j-jcl</artifactId>
        <version>2.9.1</version>
      </dependency>
    </dependencies>
  </dependencyManagement>

  <build>
    <pluginManagement>
      <plugins>
        <plugin>
          <groupId>org.codehaus.modello</groupId>
          <artifactId>modello-maven-plugin</artifactId>
          <version>1.7</version>
          <configuration>
            <!-- cause issue with datamanagement module -->
            <useJava5>false</useJava5>
          </configuration>
        </plugin>
        <!--        <plugin>
                  <groupId>org.apache.maven.plugins</groupId>
                  <artifactId>maven-scm-publish-plugin</artifactId>
                  <configuration>
                    <content>${project.build.directory}/staging</content>
                    <checkinComment>Apache Redback Core site deployment</checkinComment>
                    <tryUpdate>true</tryUpdate>
                    <pubScmUrl>scm:svn:https://svn.apache.org/repos/asf/archiva/site-content/redback/core</pubScmUrl>
                  </configuration>
                </plugin>-->
        <plugin>
          <groupId>org.apache.openjpa</groupId>
          <artifactId>openjpa-maven-plugin</artifactId>
          <version>${openjpa.version}</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-site-plugin</artifactId>
          <configuration>
            <skipDeploy>true</skipDeploy>
          </configuration>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-dependency-plugin</artifactId>
          <version>3.1.1</version>
          <configuration>
            <ignoredUnusedDeclaredDependencies>org.junit.platform:junit-platform-launcher,org.junit.jupiter:junit-jupiter-engine,org.junit.vintage:junit-vintage-engine</ignoredUnusedDeclaredDependencies>
          </configuration>
        </plugin>
      </plugins>
    </pluginManagement>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-scm-publish-plugin</artifactId>
        <inherited>false</inherited>
        <configuration>
          <checkinComment>Apache Archiva versioned module docs for ${project.version}</checkinComment>
          <skipDeletedFiles>true</skipDeletedFiles>
          <content>${project.build.directory}/staging/</content>
          <tryUpdate>true</tryUpdate>
          <!--
                    <ignorePathsToDelete>
                      <path>%regex[^(?!docs/).*$]</path>
                    </ignorePathsToDelete>
          -->
        </configuration>
        <executions>
          <execution>
            <id>scm-publish</id>
            <phase>site-deploy</phase>
            <goals>
              <goal>publish-scm</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-site-plugin</artifactId>
        <inherited>true</inherited>
        <configuration>
          <skipDeploy>true</skipDeploy>
          <stagingDirectory>${site.staging.base}/target/staging/redback/core/</stagingDirectory>
        </configuration>
        <executions>
          <execution>
            <id>attach-descriptor</id>
            <goals>
              <goal>attach-descriptor</goal>
            </goals>
          </execution>
          <!--
          <execution>
            <id>site-generate-resources</id>
            <phase>generate-resources</phase>
            <goals>
              <goal>site</goal>
            </goals>
          </execution>
          -->
          <execution>
            <id>stage-for-scm-publish</id>
            <phase>post-site</phase>
            <goals>
              <goal>stage</goal>
            </goals>
            <configuration>
              <skipDeploy>false</skipDeploy>
            </configuration>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-jar-plugin</artifactId>
        <configuration>
          <archive>
            <manifest>
              <addDefaultImplementationEntries>true</addDefaultImplementationEntries>
            </manifest>
          </archive>
        </configuration>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-surefire-plugin</artifactId>
        <configuration>
          <argLine>-Xmx256m -Xms256m</argLine>
          <runOrder>alphabetical</runOrder>
        </configuration>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-release-plugin</artifactId>
        <configuration>
          <useReleaseProfile>false</useReleaseProfile>
          <goals>deploy</goals>
          <preparationGoals>clean install</preparationGoals>
          <arguments>-Prelease</arguments>
          <autoVersionSubmodules>true</autoVersionSubmodules>
        </configuration>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-enforcer-plugin</artifactId>
        <executions>
          <execution>
            <goals>
              <goal>enforce</goal>
            </goals>
            <configuration>
              <rules>
                <bannedDependencies>
                  <excludes>
                    <exclude>org.codehaus.plexus:plexus-container-default</exclude>
                    <exclude>org.codehaus.plexus:plexus-component-api</exclude>
                    <exclude>org.codehaus.plexus.registry:plexus-registry-api</exclude>
                    <exclude>org.codehaus.plexus.registry:plexus-registry-commons</exclude>
                    <exclude>org.codehaus.plexus.cache:plexus-cache-api</exclude>
                    <exclude>org.codehaus.plexus.cache:plexus-cache-ehcache</exclude>
                    <exclude>org.codehaus.plexus:plexus-log4j-logging</exclude>
                    <exclude>org.codehaus.plexus:plexus-spring</exclude>
                    <exclude>org.codehaus.plexus:plexus-jdo2</exclude>
                    <exclude>org.codehaus.plexus:plexus-apacheds</exclude>
                    <exclude>org.codehaus.plexus:plexus-velocity</exclude>
                    <exclude>net.sf.ehcache:ehcache-core</exclude>
                    <exclude>velocity:velocity</exclude>
                    <exclude>stax:stax-api</exclude>
                  </excludes>
                </bannedDependencies>
              </rules>
            </configuration>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <groupId>org.apache.rat</groupId>
        <artifactId>apache-rat-plugin</artifactId>
        <configuration>
          <excludes>
            <exclude>.gitignore</exclude>
            <exclude>DEPENDENCIES</exclude>
            <exclude>README.*</exclude>
            <exclude>*.sh</exclude>
            <exclude>.git/**</exclude>
            <exclude>build-number.txt</exclude>
            <!-- IntelliJ IDEA files -->
            <exclude>.idea/**</exclude>
            <exclude>**/*.iml</exclude>
            <!-- Eclipse files -->
            <exclude>.project</exclude>
            <exclude>.classpath</exclude>
            <exclude>.settings/**</exclude>
            <exclude>.site-content/**</exclude>
            <exclude>.java-version</exclude>
            <exclude>patch.diff</exclude>
            <exclude>.repository</exclude>
            <exclude>.travis.yml</exclude>
            <exclude>.repository/**</exclude>
            <exclude>**/.site-content/**</exclude>
            <exclude>**/git-sparse-checkout-pattern</exclude>

            <!-- Netbeans files -->
            <exclude>nb-configuration.xml</exclude>
            <exclude>Jenkinsfile</exclude>

          </excludes>
        </configuration>
        <executions>
          <execution>
            <id>rat-check</id>
            <goals>
              <goal>check</goal>
            </goals>
            <phase>verify</phase>
          </execution>
        </executions>
      </plugin>

    </plugins>
  </build>

  <reporting>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-project-info-reports-plugin</artifactId>
        <version>${maven-project-info-reports-plugin.version}</version>
        <reportSets>
          <reportSet>
            <reports>
              <report>index</report>
              <report>team</report>
              <report>licenses</report>
            </reports>
          </reportSet>
        </reportSets>
      </plugin>
      <!--
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-surefire-report-plugin</artifactId>
        <version>${surefireVersion}</version>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-checkstyle-plugin</artifactId>
        <version>${checkstyleVersion}</version>
        <inherited>false</inherited>
        <configuration>
          <configLocation>config/maven_checks.xml</configLocation>
          <headerLocation>config/maven-header.txt</headerLocation>
        </configuration>
        <reportSets>
          <reportSet>
            <reports>
              <report>checkstyle-aggregate</report>
            </reports>
          </reportSet>
        </reportSets>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-jxr-plugin</artifactId>
        <version>${jxrVersion}</version>
        <inherited>false</inherited>
        <reportSets>
          <reportSet>
            <id>aggregate</id>
            <reports>
              <report>aggregate</report>
            </reports>
          </reportSet>
        </reportSets>
      </plugin>
            -->
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-javadoc-plugin</artifactId>
        <version>${javadocPluginVersion}</version>
        <inherited>false</inherited>
        <configuration>
          <javadocVersion>1.8</javadocVersion>
          <source>1.8</source>
          <doclint>none</doclint>
        </configuration>
        <reportSets>
          <reportSet>
            <id>aggregate</id>
            <inherited>false</inherited>
            <reports>
              <report>aggregate</report>
            </reports>
          </reportSet>
        </reportSets>

      </plugin>

    </plugins>
  </reporting>

  <profiles>
    <profile>
      <id>release</id>
      <build>
        <plugins>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-assembly-plugin</artifactId>
            <executions>
              <execution>
                <id>source-release-assembly</id>
                <phase>package</phase>
                <goals>
                  <goal>single</goal>
                </goals>
                <configuration>
                  <runOnlyAtExecutionRoot>true</runOnlyAtExecutionRoot>
                  <descriptorRefs>
                    <descriptorRef>${sourceReleaseAssemblyDescriptor}</descriptorRef>
                  </descriptorRefs>
                  <tarLongFileMode>posix</tarLongFileMode>
                </configuration>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
    </profile>
    <profile>
      <id>modernizer</id>
      <build>
        <plugins>
          <plugin>
            <groupId>org.gaul</groupId>
            <artifactId>modernizer-maven-plugin</artifactId>
            <version>1.9.0</version>
            <configuration>
              <javaVersion>1.8</javaVersion>
            </configuration>
            <executions>
              <execution>
                <id>modernizer</id>
                <goals>
                  <goal>modernizer</goal>
                </goals>
                <phase>process-test-classes</phase>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
    </profile>

    <!--
This runs a sparse git checkout for the web site content repository that contains only the doc directory.
The profile is activated only, if the checkout directory does not exist.
The executor runs a shell script.
-->
    <profile>
      <id>site-checkout</id>
      <activation>

        <file>
          <missing>${scmPubCheckoutDirectory}</missing>
        </file>
      </activation>
      <build>
        <plugins>
          <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>exec-maven-plugin</artifactId>
            <version>1.6.0</version>
            <inherited>false</inherited>
            <executions>
              <execution>
                <id>prepare-checkout</id>
                <phase>pre-site</phase>
                <goals>
                  <goal>exec</goal>
                </goals>
                <configuration>
                  <executable>checkoutSite.sh</executable>
                  <workingDirectory>${project.basedir}</workingDirectory>
                  <arguments>
                    <argument>-d</argument>
                    <argument>${scmPubCheckoutDirectory}</argument>
                    <argument>${siteRepositoryUrl}</argument>
                  </arguments>
                </configuration>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
    </profile>

  </profiles>

</project>
