<?xml version="1.0" encoding="UTF-8"?>
<!--
Licensed to the Apache Software Foundation (ASF) under one or more contributor
license agreements.  See the NOTICE.txt 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>
  <!--
    Mnemosyne is the continuation of Apache OODT, which the ASF retired to the
    Attic in April 2023. The org.apache:apache parent configures ASF release
    staging and Nexus, none of which applies here, so it is not inherited and
    the four plugin versions it used to supply are pinned below.
  -->
  <groupId>ai.mattmann.mnemosyne</groupId>
  <artifactId>oodt-core</artifactId>
  <version>1.11.0</version>
  <packaging>pom</packaging>
  <name>Mnemosyne Core</name>
  <description>Shared build configuration and dependency management for
    Mnemosyne, data pipeline and catalog middleware continuing Apache
    OODT.</description>
  <properties>
    <maven.gpg.plugin.version>3.2.7</maven.gpg.plugin.version>
    <central.publishing.plugin.version>0.11.0</central.publishing.plugin.version>
    <maven.source.plugin.version>3.3.1</maven.source.plugin.version>
    <maven.javadoc.plugin.version>3.11.2</maven.javadoc.plugin.version>
    <maven.enforcer.plugin.version>3.5.0</maven.enforcer.plugin.version>
    <organizationLogo>http://www.apache.org/images/feather.gif</organizationLogo>
    <logo>/images/${project.artifactId}.jpg</logo>
    <xdocVersion>${project.version}</xdocVersion>
    <genDownloadLinks>false</genDownloadLinks>
    <docsSrc>${basedir}/src/site/xdoc</docsSrc>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
    <jena.version>3.0.0</jena.version>
    <wicket.version>1.4.17</wicket.version>
    <jetty.version>6.1.25</jetty.version>
    <sonar.language>java</sonar.language>
    <lucene.version>6.6.5</lucene.version>
    <!-- Docker -->
    <docker.build.disabled>true</docker.build.disabled>
    <docker.image.name/>
    <docker.working.dir>${project.basedir}</docker.working.dir>
  </properties>
  <!--
    No distributionManagement. The previous block was the RADiX template
    placeholder (scp://www.yourcompany.com/) and was never configured.
    Publishing to Maven Central is handled by the release plugin configuration
    rather than a site deployment target.
  -->

  <!-- All dependencies should be listed in core/pom.xml and be ordered alphabetically by package and artifact.
       Once the dependency is in the core pom, it can then be used in other modules without the version tags.
       For example, within core/pom.xml:

        <dependency>
        <groupId>com.amazonaws</groupId>
        <artifactId>aws-java-sdk</artifactId>
        <version>1.7.4</version>
      </dependency>

       Elsewhere in the platform:
       <dependency>
        <groupId>com.amazonaws</groupId>
        <artifactId>aws-java-sdk</artifactId>
      </dependency>

       Where possible the same dependency version should be used across the whole platform but if required the version
       can be overridden in a specific pom and should have a comment explaing why the version has been overridden
  -->
  <dependencyManagement>
    <dependencies>
      <dependency>
        <groupId>com.amazonaws</groupId>
        <artifactId>aws-java-sdk</artifactId>
        <version>1.11.396</version>
      </dependency>
      <dependency>
        <groupId>org.apache.avro</groupId>
        <artifactId>avro-ipc</artifactId>
        <version>1.8.2</version>
      </dependency>
      <dependency>
        <groupId>org.apache.avro</groupId>
        <artifactId>avro</artifactId>
        <version>1.8.2</version>
      </dependency>
      <dependency>
        <groupId>com.google.guava</groupId>
        <artifactId>guava</artifactId>
        <version>19.0</version>
      </dependency>
      <dependency>
        <groupId>com.icegreen</groupId>
        <artifactId>greenmail</artifactId>
        <version>1.5.0</version>
        <scope>test</scope>
      </dependency>
      <dependency>
        <groupId>com.thoughtworks.xstream</groupId>
        <artifactId>xstream</artifactId>
        <version>1.3.1</version>
        <exclusions>
          <exclusion>
            <!-- xom is an optional dependency of xstream. Its also an Apache incompatible license -->
            <groupId>xom</groupId>
            <artifactId>xom</artifactId>
          </exclusion>
        </exclusions>
      </dependency>
      <dependency>
        <groupId>commons-cli</groupId>
        <artifactId>commons-cli</artifactId>
        <version>1.3.1</version>
      </dependency>
      <dependency>
        <groupId>commons-codec</groupId>
        <artifactId>commons-codec</artifactId>
        <version>1.10</version>
      </dependency>
      <dependency>
        <groupId>commons-collections</groupId>
        <artifactId>commons-collections</artifactId>
        <version>3.2.2</version>
      </dependency>
      <dependency>
        <groupId>commons-dbcp</groupId>
        <artifactId>commons-dbcp</artifactId>
        <version>1.4</version>
      </dependency>
      <dependency>
        <groupId>commons-httpclient</groupId>
        <artifactId>commons-httpclient</artifactId>
        <version>3.0</version>
      </dependency>
      <dependency>
       <groupId>org.apache.httpcomponents</groupId>
       <artifactId>httpclient</artifactId>
       <exclusions>
         <exclusion>
           <artifactId>commons-logging</artifactId>
         <groupId>commons-logging</groupId>
       </exclusion>
      </exclusions>
        <version>4.4</version>
      </dependency>
      <dependency>
        <groupId>commons-io</groupId>
        <artifactId>commons-io</artifactId>
        <version>2.5</version>
      </dependency>
      <dependency>
        <groupId>commons-lang</groupId>
        <artifactId>commons-lang</artifactId>
        <version>2.6</version>
      </dependency>
      <dependency>
        <groupId>commons-logging</groupId>
        <artifactId>commons-logging</artifactId>
        <version>1.2</version>
      </dependency>
      <dependency>
        <groupId>commons-pool</groupId>
        <artifactId>commons-pool</artifactId>
        <version>1.6</version>
      </dependency>
      <dependency>
        <groupId>concurrent</groupId>
        <artifactId>concurrent</artifactId>
        <version>1.3.4</version>
      </dependency>
      <dependency>
        <groupId>edu.ucar</groupId>
        <artifactId>netcdf4</artifactId>
        <version>4.5.5</version>
      </dependency>
      <dependency>
        <groupId>edu.ucar</groupId>
        <artifactId>opendap</artifactId>
        <version>2.2.2</version>
      </dependency>
      <dependency>
        <groupId>hsqldb</groupId>
        <artifactId>hsqldb</artifactId>
        <version>1.8.0.7</version>
      </dependency>
      <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>servlet-api</artifactId>
        <version>2.4</version>
      </dependency>
      <dependency>
        <groupId>jgraph</groupId>
        <artifactId>jgraph</artifactId>
        <version>5.13.0.0</version>
      </dependency>
      <dependency>
        <groupId>joda-time</groupId>
        <artifactId>joda-time</artifactId>
        <version>2.9.4</version>
      </dependency>
      <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.12</version>
      </dependency>
      <dependency>
        <groupId>log4j</groupId>
        <artifactId>log4j</artifactId>
        <version>1.2.14</version>
      </dependency>
      <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>6.0.3</version>
      </dependency>
      <dependency>
        <groupId>net.sourceforge.nekohtml</groupId>
        <artifactId>nekohtml</artifactId>
        <version>1.9.22</version>
      </dependency>
      <dependency>
        <groupId>net.alchim31.maven</groupId>
        <artifactId>scala-maven-plugin</artifactId>
        <version>3.2.0</version>
      </dependency>
      <dependency>
        <!--
          Zip4j is released under the Apache License, Version 2.0
          For reference, see: http://www.lingala.net/zip4j/about.php
        -->
        <groupId>net.lingala.zip4j</groupId>
        <artifactId>zip4j</artifactId>
        <version>1.3.2</version>
      </dependency>
      <dependency>
        <groupId>net.sf.json-lib</groupId>
        <artifactId>json-lib</artifactId>
        <version>2.4</version>
        <classifier>jdk15</classifier>
      </dependency>
      <dependency>
        <groupId>net.sf.jung</groupId>
        <artifactId>jung-algorithms</artifactId>
        <version>2.0.1</version>
      </dependency>
      <dependency>
        <groupId>net.sf.jung</groupId>
        <artifactId>jung-api</artifactId>
        <version>2.0.1</version>
      </dependency>
      <dependency>
        <groupId>net.sf.jung</groupId>
        <artifactId>jung-graph-impl</artifactId>
        <version>2.0.1</version>
      </dependency>
      <dependency>
        <groupId>net.sf.jung</groupId>
        <artifactId>jung-visualization</artifactId>
        <version>2.1</version>
      </dependency>
      <dependency>
        <groupId>net.sf.saxon</groupId>
        <artifactId>saxon-dom</artifactId>
        <version>8.7</version>
      </dependency>
      <dependency>
        <groupId>org.apache.commons</groupId>
        <artifactId>commons-compress</artifactId>
        <version>1.12</version>
      </dependency>
      <dependency>
        <groupId>org.apache.curator</groupId>
        <artifactId>curator-recipes</artifactId>
        <version>3.3.0</version>
      </dependency>
      <dependency>
        <groupId>org.apache.curator</groupId>
        <artifactId>curator-test</artifactId>
        <version>3.3.0</version>
        <exclusions>
          <exclusion>
            <groupId>log4j</groupId>
            <artifactId>log4j</artifactId>
          </exclusion>
        </exclusions>
      </dependency>
      <dependency>
        <groupId>org.apache.cxf</groupId>
        <artifactId>cxf-rt-transports-http-jetty</artifactId>
        <version>3.1.6</version>
      </dependency>
      <dependency>
        <groupId>org.apache.cxf</groupId>
        <artifactId>cxf-rt-frontend-jaxrs</artifactId>
        <version>3.1.6</version>
      </dependency>
      <dependency>
        <groupId>org.apache.cxf</groupId>
        <artifactId>cxf-rt-rs-extension-providers</artifactId>
        <version>3.1.6</version>
      </dependency>
      <dependency>
        <groupId>org.apache.cxf</groupId>
        <artifactId>cxf-rt-transports-local</artifactId>
        <version>3.1.6</version>
        <scope>test</scope>
      </dependency>
      <dependency>
        <groupId>org.apache.ftpserver</groupId>
        <artifactId>ftpserver-core</artifactId>
        <version>1.0.6</version>
      </dependency>
      <dependency>
        <groupId>org.apache.geronimo.javamail</groupId>
        <artifactId>geronimo-javamail_1.4_mail</artifactId>
        <version>1.8.4</version>
      </dependency>
      <dependency>
        <groupId>org.apache.geronimo.specs</groupId>
        <artifactId>geronimo-activation_1.1_spec</artifactId>
        <version>1.1</version>
      </dependency>
      <dependency>
        <groupId>org.apache.jena</groupId>
        <artifactId>apache-jena-libs</artifactId>
        <version>${jena.version}</version>
        <type>pom</type>
      </dependency>
      <dependency>
        <groupId>org.apache.lucene</groupId>
        <artifactId>lucene-core</artifactId>
        <version>${lucene.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.lucene</groupId>
        <artifactId>lucene-queryparser</artifactId>
        <version>${lucene.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.lucene</groupId>
        <artifactId>lucene-analyzers-common</artifactId>
        <version>${lucene.version}</version>
      </dependency>
      <dependency>
         <groupId>org.apache.lucene</groupId>
	       <artifactId>lucene-backward-codecs</artifactId>
	       <version>${lucene.version}</version>
      </dependency>

      <dependency>
        <groupId>ai.mattmann.mnemosyne</groupId>
        <artifactId>cas-cli</artifactId>
        <version>${project.parent.version}</version>
      </dependency>
      <dependency>
        <groupId>ai.mattmann.mnemosyne</groupId>
        <artifactId>cas-crawler</artifactId>
        <version>${project.parent.version}</version>
      </dependency>
      <dependency>
        <groupId>ai.mattmann.mnemosyne</groupId>
        <artifactId>cas-filemgr</artifactId>
        <version>${project.parent.version}</version>
      </dependency>
      <dependency>
        <groupId>ai.mattmann.mnemosyne</groupId>
        <artifactId>cas-metadata</artifactId>
        <version>${project.parent.version}</version>
      </dependency>
      <dependency>
        <groupId>ai.mattmann.mnemosyne</groupId>
        <artifactId>cas-product</artifactId>
        <version>${project.parent.version}</version>
        <type>war</type>
      </dependency>
      <dependency>
        <groupId>ai.mattmann.mnemosyne</groupId>
        <artifactId>workflow-services</artifactId>
        <version>${project.parent.version}</version>
        <type>war</type>
      </dependency>
      <dependency>
        <groupId>ai.mattmann.mnemosyne</groupId>
        <artifactId>cas-resource</artifactId>
        <version>${project.parent.version}</version>
      </dependency>
      <dependency>
        <groupId>ai.mattmann.mnemosyne</groupId>
        <artifactId>cas-workflow</artifactId>
        <version>${project.parent.version}</version>
      </dependency>
      <dependency>
        <groupId>ai.mattmann.mnemosyne</groupId>
        <artifactId>curator-services</artifactId>
        <version>${project.parent.version}</version>
        <type>war</type>
      </dependency>
      <dependency>
        <groupId>ai.mattmann.mnemosyne</groupId>
        <artifactId>oodt-commons</artifactId>
        <version>${project.parent.version}</version>
      </dependency>
      <dependency>
        <groupId>ai.mattmann.mnemosyne</groupId>
        <artifactId>oodt-conf</artifactId>
        <version>${project.parent.version}</version>
      </dependency>
      <dependency>
        <groupId>ai.mattmann.mnemosyne</groupId>
        <artifactId>oodt-product</artifactId>
        <version>${project.parent.version}</version>
      </dependency>
      <dependency>
        <groupId>ai.mattmann.mnemosyne</groupId>
        <artifactId>oodt-profile</artifactId>
        <version>${project.parent.version}</version>
      </dependency>
      <dependency>
        <groupId>ai.mattmann.mnemosyne</groupId>
        <artifactId>oodt-reactjs-opsui</artifactId>
        <version>${project.parent.version}</version>
        <type>pom</type>
      </dependency>
      <dependency>
        <groupId>ai.mattmann.mnemosyne</groupId>
        <artifactId>curator-sso</artifactId>
        <version>${project.parent.version}</version>
      </dependency>
      <dependency>
        <groupId>ai.mattmann.mnemosyne</groupId>
        <artifactId>oodt-webapp-components</artifactId>
        <version>${project.parent.version}</version>
      </dependency>
      <dependency>
        <groupId>ai.mattmann.mnemosyne</groupId>
        <artifactId>pcs-core</artifactId>
        <version>${project.parent.version}</version>
      </dependency>
      <dependency>
        <groupId>ai.mattmann.mnemosyne</groupId>
        <artifactId>pcs-input</artifactId>
        <version>${project.parent.version}</version>
      </dependency>
      <dependency>
        <groupId>ai.mattmann.mnemosyne</groupId>
        <artifactId>pcs-opsui</artifactId>
        <version>${project.parent.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.poi</groupId>
        <artifactId>poi</artifactId>
        <version>3.2-FINAL</version>
      </dependency>
      <dependency>
        <groupId>org.apache.solr</groupId>
        <artifactId>solr-core</artifactId>
        <version>1.3.0</version>
      </dependency>
      <dependency>
        <groupId>org.apache.solr</groupId>
        <artifactId>solr-solrj</artifactId>
        <version>1.3.0</version>
      </dependency>
      <dependency>
        <groupId>org.apache.tika</groupId>
        <artifactId>tika-core</artifactId>
        <version>1.13</version>
      </dependency>
      <dependency>
        <groupId>org.apache.tika</groupId>
        <artifactId>tika-parsers</artifactId>
        <version>1.13</version>
      </dependency>
      <dependency>
        <groupId>org.apache.velocity</groupId>
        <artifactId>velocity</artifactId>
        <version>1.7</version>
      </dependency>
      <dependency>
        <groupId>org.apache.wicket</groupId>
        <artifactId>wicket</artifactId>
        <version>${wicket.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.wicket</groupId>
        <artifactId>wicket-extensions</artifactId>
        <version>${wicket.version}</version>
      </dependency>
      <dependency>
        <groupId>org.codehaus.jettison</groupId>
        <artifactId>jettison</artifactId>
        <version>1.3.4</version>
      </dependency>
      <dependency>
        <groupId>org.easymock</groupId>
        <artifactId>easymock</artifactId>
        <version>3.4</version>
        <scope>test</scope>
      </dependency>
      <dependency>
        <groupId>org.hamcrest</groupId>
        <artifactId>hamcrest-all</artifactId>
        <version>1.3</version>
        <scope>test</scope>
      </dependency>
      <dependency>
        <groupId>org.jglobus</groupId>
        <artifactId>gss</artifactId>
        <version>2.0.6</version>
      </dependency>
      <dependency>
        <groupId>org.jglobus</groupId>
        <artifactId>JGlobus-GridFTP</artifactId>
        <version>2.0.0</version>
      </dependency>
      <dependency>
        <groupId>org.mockito</groupId>
        <artifactId>mockito-all</artifactId>
        <version>1.9.5</version>
        <scope>test</scope>
      </dependency>
      <dependency>
        <groupId>org.mortbay.jetty</groupId>
        <artifactId>jetty</artifactId>
        <version>${jetty.version}</version>
      </dependency>
      <dependency>
        <groupId>org.mortbay.jetty</groupId>
        <artifactId>jetty-management</artifactId>
        <version>${jetty.version}</version>
      </dependency>
      <dependency>
        <groupId>org.mortbay.jetty</groupId>
        <artifactId>jetty-util</artifactId>
        <version>${jetty.version}</version>
      </dependency>
      <dependency>
        <groupId>org.python</groupId>
        <artifactId>jython</artifactId>
        <version>2.2-beta1</version>
        <scope>runtime</scope>
      </dependency>
      <dependency>
        <groupId>org.reflections</groupId>
        <artifactId>reflections</artifactId>
        <version>0.9.9-RC1</version>
      </dependency>
      <dependency>
        <groupId>org.safehaus.jug</groupId>
        <artifactId>jug</artifactId>
        <version>2.0.0</version>
        <classifier>asl</classifier>
      </dependency>
      <!-- Logging -->
      <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-api</artifactId>
        <version>1.7.12</version>
      </dependency>
      <!-- Temporary fix to send java.util.Logger logs to SLF4J -->
      <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>jul-to-slf4j</artifactId>
        <version>1.7.12</version>
      </dependency>
      <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-log4j12</artifactId>
        <version>1.7.12</version>
      </dependency>
      <dependency>
        <groupId>org.apache.logging.log4j</groupId>
        <artifactId>log4j-slf4j-impl</artifactId>
        <version>2.11.0</version>
      </dependency>
      <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-beans</artifactId>
        <version>2.5.4</version>
      </dependency>
      <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-context</artifactId>
        <version>2.5.4</version>
      </dependency>
      <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-core</artifactId>
        <version>2.5.4</version>
      </dependency>
      <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-hibernate3</artifactId>
        <version>2.0.8</version>
      </dependency>
      <dependency>
        <groupId>xalan</groupId>
        <artifactId>xalan</artifactId>
        <version>2.7.1</version>
      </dependency>
      <dependency>
        <groupId>xerces</groupId>
        <artifactId>xercesImpl</artifactId>
        <version>2.9.1</version>
      </dependency>
      <dependency>
        <groupId>xmlrpc</groupId>
        <artifactId>xmlrpc</artifactId>
        <version>2.0.1</version>
      </dependency>
      <dependency>
        <groupId>xmlunit</groupId>
        <artifactId>xmlunit</artifactId>
        <version>1.4</version>
      </dependency>
    </dependencies>
  </dependencyManagement>

  <build>
    <sourceDirectory>${basedir}/src/main/java</sourceDirectory>
    <testSourceDirectory>${basedir}/src/test/java</testSourceDirectory>
    <plugins>
      <plugin>
        <groupId>com.atlassian.maven.plugins</groupId>
        <artifactId>maven-clover2-plugin</artifactId>
        <version>4.0.6</version>
        <configuration>
            <license><![CDATA[
oOmRsdEFLXepeoGMXQooikmNPOPmVegiGubXhbERoJfRSL
mi2KPdq<W7KOK3JVlo0fkp2R2Kx279nvrcMRbejDsX7xXm
NMrQVXqQRmonRonRNpputMopoRNNpnNrNQTUUXuusXVWnR
onmqmUUnqrovqvommmmmUUnqrovqvommmmmUU1mXZebUUn
mm
]]></license>
        </configuration>
      </plugin>
      <!--
        Mnemosyne keeps its Java packages as org.apache.oodt.*, so its classes
        share fully-qualified names with the retired org.apache.oodt artifacts
        still published on Maven Central. Maven treats those as unrelated
        artifacts because the groupIds differ, so dependency mediation will not
        collapse them: pull in both and the classpath silently carries two
        copies of every class. This turns that into a build failure.
      -->
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-enforcer-plugin</artifactId>
        <version>${maven.enforcer.plugin.version}</version>
        <executions>
          <execution>
            <id>enforce-no-retired-oodt</id>
            <goals>
              <goal>enforce</goal>
            </goals>
            <configuration>
              <rules>
                <bannedDependencies>
                  <excludes>
                    <exclude>org.apache.oodt:*</exclude>
                  </excludes>
                  <message>
                    org.apache.oodt artifacts are the retired Apache OODT
                    release line, superseded by ai.mattmann.mnemosyne. Both on
                    one classpath means duplicate org.apache.oodt.* classes,
                    resolved by classpath order rather than by Maven.
                  </message>
                </bannedDependencies>
              </rules>
              <fail>true</fail>
            </configuration>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>3.13.0</version>
        <configuration>
          <source>1.8</source>
          <target>1.8</target>
        </configuration>
      </plugin>
      <plugin>
        <artifactId>maven-jar-plugin</artifactId>
        <version>3.4.2</version>
        <configuration>
          <archive>
            <index>true</index>
          </archive>
        </configuration>
      </plugin>
      <plugin>
        <artifactId>maven-eclipse-plugin</artifactId>
        <version>2.6</version>
      </plugin>
      <plugin>
        <artifactId>maven-surefire-plugin</artifactId>
        <version>3.5.3</version>
        <configuration>
          <includes>
            <include>**/*Test*.java</include>
          </includes>
        </configuration>
      </plugin>
      <plugin>
        <artifactId>maven-javadoc-plugin</artifactId>
        <version>${maven.javadoc.plugin.version}</version>
        <configuration>
          <charset>UTF-8</charset>
          <docencoding>UTF-8</docencoding>
          <encoding>UTF-8</encoding>
          <source>8</source>
          <!--
            This javadoc predates JDK 21's stricter doclint. Central requires
            javadoc jars, so a malformed comment must not fail the release.
          -->
          <doclint>none</doclint>
          <!--
            failOnError stays true. With doclint off, malformed comments are
            warnings rather than errors, and a genuine javadoc failure must
            surface: the previous configuration masked one and attached an
            empty jar, which is worse than failing.
          -->
          <failOnError>true</failOnError>
        </configuration>
        <executions>
          <execution>
            <id>attach-javadocs</id>
            <goals>
              <!--
                jar, not javadoc. The javadoc goal generates HTML but attaches
                no artifact; Maven Central requires a -javadoc.jar alongside
                every published artifact.
              -->
              <goal>jar</goal>
            </goals>
            <phase>package</phase>
          </execution>
        </executions>
      </plugin>

      <!--
        Release publishing. Both plugins are confined to the `release` profile
        so that ordinary builds neither require a GPG key nor contact Central.
        Publish with:  mvn -Prelease deploy
      -->

      <!-- Central also requires a -sources.jar for every published artifact. -->
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-source-plugin</artifactId>
        <version>${maven.source.plugin.version}</version>
        <executions>
          <execution>
            <id>attach-sources</id>
            <goals>
              <goal>jar-no-fork</goal>
            </goals>
            <phase>package</phase>
          </execution>
        </executions>
      </plugin>
    </plugins>
  </build>
  <reporting>
    <plugins>
      <!-- FIXME: currently produces a NullPointerException
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-changes-plugin</artifactId>
                <version>2.0</version>
                <configuration>
                    <component>12311070</component>
                    <resolutionIds>1</resolutionIds>
                    <statusIds>5,6</statusIds>
                    <fixVersionIds>${jira.fix.version.ids}</fixVersionIds>
                </configuration>
                <reportSets>
                    <reportSet>
                        <reports>
                            <report>jira-report</report>
                        </reports>
                    </reportSet>
                </reportSets>
            </plugin> -->
      <!-- Produce JavaDoc -->
      <plugin>
        <artifactId>maven-javadoc-plugin</artifactId>
        <version>${maven.javadoc.plugin.version}</version>
        <configuration>
          <charset>UTF-8</charset>
          <docencoding>UTF-8</docencoding>
          <encoding>UTF-8</encoding>
          <aggregate>true</aggregate>
          <source>8</source>
          <doclint>none</doclint>
        </configuration>
      </plugin>
      <!-- Produce Source cross references -->
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-jxr-plugin</artifactId>
        <version>2.1</version>
        <configuration>
          <aggregate>true</aggregate>
        </configuration>
      </plugin>
      <!-- Unit tests report -->
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-surefire-report-plugin</artifactId>
        <version>2.3</version>
      </plugin>
      <!-- "Release Audit" report (checks license headers etc.) -->
      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>rat-maven-plugin</artifactId>
        <version>1.0-alpha-3</version>
      </plugin>
      <!-- FindBugs Report -->
      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>findbugs-maven-plugin</artifactId>
        <version>3.0.0</version>
        <configuration>
          <threshold>Normal</threshold>
          <effort>Default</effort>
        </configuration>
      </plugin>
      <!-- Checkstyle report -->
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-checkstyle-plugin</artifactId>
        <version>2.1</version>
        <configuration>
          <!--configLocation>checkstyle.xml</configLocation-->
          <enableRulesSummary>false</enableRulesSummary>
        </configuration>
      </plugin>
      <!-- Project website generation -->
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-site-plugin</artifactId>
        <version>3.5.1</version>
        <configuration>
          <outputEncoding>UTF-8</outputEncoding>
        </configuration>
      </plugin>
    </plugins>
  </reporting>
  <url>https://github.com/chrismattmann/mnemosyne</url>
  <inceptionYear>1999</inceptionYear>
  <organization>
    <name>Mnemosyne</name>
    <url>https://github.com/chrismattmann/mnemosyne</url>
  </organization>
  <licenses>
    <license>
      <name>Apache 2</name>
      <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
      <distribution>manual</distribution>
      <comments>The standard OSI-approved Apache license, friendly to commercial interests yet open.</comments>
    </license>
  </licenses>
  <developers>
    <developer>
      <id>mattmann</id>
      <name>Chris Mattmann</name>
      <email>chris.mattmann@gmail.com</email>
      <url>https://www.mattmann.ai/</url>
      <roles>
        <role>Project Lead</role>
      </roles>
      <timezone>America/Los_Angeles</timezone>
    </developer>
  </developers>
  <!--
    The dev@ and commits@ oodt.apache.org lists were decommissioned when the
    Apache project moved to the Attic. Discussion happens on GitHub.
  -->
  <scm>
    <connection>scm:git:https://github.com/chrismattmann/mnemosyne.git</connection>
    <developerConnection>scm:git:https://github.com/chrismattmann/mnemosyne.git</developerConnection>
    <url>https://github.com/chrismattmann/mnemosyne</url>
    <tag>HEAD</tag>
  </scm>
  <issueManagement>
    <system>GitHub</system>
    <url>https://github.com/chrismattmann/mnemosyne/issues</url>
  </issueManagement>
  <profiles>
    <!--
      The jdk1.8 profile was removed. It activated on [1.8,) - which includes
      JDK 21 - and pinned maven-javadoc-plugin 2.10.3, a 2015 release that
      cannot run against a modern JDK. Its only purpose was disabling doclint,
      which the main javadoc configuration now does directly.
    -->
    <profile>
      <id>audit</id>
      <activation>
        <activeByDefault>false</activeByDefault>
      </activation>
      <build>
        <plugins>
          <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>rat-maven-plugin</artifactId>
            <version>1.0-alpha-3</version>
            <executions>
              <execution>
                <goals>
                  <goal>check</goal>
                </goals>
                <phase>verify</phase>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
    </profile>
    <profile>
      <id>cve-check</id>
      <activation>
        <activeByDefault>false</activeByDefault>
      </activation>
      <build>
        <plugins>
        <plugin>
          <groupId>org.owasp</groupId>
          <artifactId>dependency-check-maven</artifactId>
          <executions>
            <execution>
              <goals>
                <goal>check</goal>
              </goals>
            </execution>
          </executions>
        </plugin>
        </plugins>
      </build>
    </profile>
    <profile>
      <id>docker</id>
      <activation>
        <activeByDefault>false</activeByDefault>
      </activation>
      <build>
        <plugins>
          <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>exec-maven-plugin</artifactId>
            <version>3.0.0</version>
            <configuration>
              <skip>${docker.build.disabled}</skip>
            </configuration>
            <executions>
              <execution>
                <id>docker-clean</id>
                <phase>install</phase>
                <goals>
                  <goal>exec</goal>
                </goals>
                <configuration>
                  <executable>docker</executable>
                  <workingDirectory>${docker.working.dir}</workingDirectory>
                  <arguments>
                    <argument>build</argument>
                    <argument>-t</argument>
                    <argument>${docker.image.name}</argument>
                    <argument>.</argument>
                  </arguments>
                </configuration>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
    </profile>
    <!--
      Release profile. Signs artifacts and publishes to Maven Central under the
      ai.mattmann namespace, which is verified by DNS TXT record on mattmann.ai.

      Requires:
        - a GPG key whose public half is on a public keyserver
        - a Central Portal user token in ~/.m2/settings.xml under the server id
          `central`
    -->
    <profile>
      <id>release</id>
      <build>
        <plugins>
          <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>
                <configuration>
                  <!-- Non-interactive signing; the passphrase comes from the
                       gpg agent rather than a prompt or a stored property. -->
                  <gpgArguments>
                    <arg>--pinentry-mode</arg>
                    <arg>loopback</arg>
                  </gpgArguments>
                </configuration>
              </execution>
            </executions>
          </plugin>
          <plugin>
            <groupId>org.sonatype.central</groupId>
            <artifactId>central-publishing-maven-plugin</artifactId>
            <version>${central.publishing.plugin.version}</version>
            <extensions>true</extensions>
            <configuration>
              <publishingServerId>central</publishingServerId>
              <!--
                central-publishing stages the entire reactor and does not
                honour maven.deploy.skip, so the modules that must not be
                published are listed here explicitly. Keep this in sync with
                the maven.deploy.skip properties in those modules.
              -->
              <excludeArtifacts>
                <excludeArtifact>oodt</excludeArtifact>
                <excludeArtifact>oodt-deployment</excludeArtifact>
                <excludeArtifact>oodt-webapps</excludeArtifact>
                <excludeArtifact>oodt-reactjs-opsui</excludeArtifact>
                <excludeArtifact>oodt-streaming</excludeArtifact>
                <excludeArtifact>cas-streaming-resource</excludeArtifact>
                <excludeArtifact>oodt-webapp-components</excludeArtifact>
                <excludeArtifact>curator-services</excludeArtifact>
                <excludeArtifact>curator-sso</excludeArtifact>
                <excludeArtifact>cas-curator</excludeArtifact>
                <excludeArtifact>fmbrowser</excludeArtifact>
                <excludeArtifact>wmonitor</excludeArtifact>
                <excludeArtifact>workflow-services</excludeArtifact>
                <excludeArtifact>maven-cas-install-plugin</excludeArtifact>
                <excludeArtifact>archetypes</excludeArtifact>
                <excludeArtifact>radix-archetype</excludeArtifact>
                <excludeArtifact>opsui-archetype</excludeArtifact>
              </excludeArtifacts>
              <!--
                Deliberately not autoPublish. The first release should be
                inspected in the Central Portal and released by hand; once
                published, a version is immutable.
              -->
              <autoPublish>false</autoPublish>
              <waitUntil>validated</waitUntil>
            </configuration>
          </plugin>
        </plugins>
      </build>
    </profile>
  </profiles>
</project>
