<?xml version="1.0" encoding="UTF-8"?>
<!--
ao-oss - Open-source tools to assist developers in writing better software faster.
Copyright (C) 2021, 2022, 2023, 2024, 2025, 2026  AO Industries, Inc.
    support@aoindustries.com
    7262 Bull Pen Cir
    Mobile, AL 36695

This file is part of ao-oss.

ao-oss is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

ao-oss is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU Lesser General Public License for more details.

You should have received a copy of the GNU Lesser General Public License
along with ao-oss.  If not, see <https://www.gnu.org/licenses/>.
-->
<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>com.aoapps</groupId><artifactId>ao-oss-parent</artifactId><version>1.29.0-SNAPSHOT</version>
    <relativePath>parent/pom.xml</relativePath>
  </parent>

  <groupId>com.aoapps</groupId><artifactId>ao-oss</artifactId><version>1.0.0-SNAPSHOT</version>
  <packaging>pom</packaging>

  <properties>
    <!-- Must be set to ${git.commit.time} for snapshots or ISO 8601 timestamp for releases. -->
    <project.build.outputTimestamp>${git.commit.time}</project.build.outputTimestamp>
  </properties>

  <name>AO OSS</name>
  <url>https://oss.aoapps.com/</url>
  <description>Open-source tools to assist developers in writing better software faster.</description>
  <inceptionYear>2021</inceptionYear>

  <licenses>
    <license>
      <name>GNU General Lesser Public License (LGPL) version 3.0</name>
      <url>https://www.gnu.org/licenses/lgpl-3.0.txt</url>
      <distribution>repo</distribution>
    </license>
  </licenses>

  <organization>
    <name>AO Industries, Inc.</name>
    <url>https://aoindustries.com/</url>
  </organization>

  <developers>
    <developer>
      <name>AO Industries, Inc.</name>
      <email>support@aoindustries.com</email>
      <url>https://aoindustries.com/</url>
      <organization>AO Industries, Inc.</organization>
      <organizationUrl>https://aoindustries.com/</organizationUrl>
    </developer>
  </developers>

  <scm>
    <connection>scm:git:git://github.com/ao-apps/ao-oss.git</connection>
    <developerConnection>scm:git:git@github.com:ao-apps/ao-oss.git</developerConnection>
    <url>https://github.com/ao-apps/ao-oss</url>
    <tag>HEAD</tag>
  </scm>

  <issueManagement>
    <system>GitHub Issues</system>
    <url>https://github.com/ao-apps/ao-oss/issues</url>
  </issueManagement>

  <ciManagement>
    <system>Jenkins</system>
    <url>https://jenkins.aoindustries.com/job/ao/job/oss/job/index/</url>
  </ciManagement>
  <!-- Only one allowed in POM:
  <ciManagement>
    <system>GitHub Actions</system>
    <url>https://github.com/ao-apps/ao-oss/actions</url>
  </ciManagement>
  -->

  <repositories>
    <!-- Repository required here, too, so can find parent -->
    <repository>
      <id>aoapps-snapshots</id>
      <name>AOApps Snapshot Repository</name>
      <url>https://snapshots.maven.aoapps.com/</url>
      <releases>
        <enabled>false</enabled>
      </releases>
      <snapshots>
        <checksumPolicy>fail</checksumPolicy>
      </snapshots>
    </repository>
  </repositories>

  <build>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId><artifactId>maven-antrun-plugin</artifactId>
        <executions>
          <execution>
            <!--
              Verify the two copies of pgp-keys-map.list (required to avoid cyclic dependency) match.
              See http://maven.40175.n5.nabble.com/trying-to-find-testing-plugin-which-can-compare-two-files-td75639.html
            -->
            <id>verify-pgp-keys-map-match</id><phase>initialize</phase><goals><goal>run</goal></goals>
            <configuration>
              <target>
                <available
                  file="${project.basedir}/parent/src/main/resources/com/aoapps/pgp/keys/map/pgp-keys-map.list"
                  property="isActualAvailable"
                />
                <fail
                  unless="isActualAvailable"
                  message="${project.basedir}/parent/src/main/resources/com/aoapps/pgp/keys/map/pgp-keys-map.list does not exist!"
                />
                <available
                  file="${project.basedir}/pgp-keys-map/src/main/resources/com/aoapps/pgp/keys/map/pgp-keys-map.list"
                  property="isExpectedAvailable"
                />
                <fail
                  unless="isExpectedAvailable"
                  message="${project.basedir}/pgp-keys-map/src/main/resources/com/aoapps/pgp/keys/map/pgp-keys-map.list does not exist!"
                />
                <condition property="files.match">
                  <filesmatch
                    file1="${project.basedir}/parent/src/main/resources/com/aoapps/pgp/keys/map/pgp-keys-map.list"
                    file2="${project.basedir}/pgp-keys-map/src/main/resources/com/aoapps/pgp/keys/map/pgp-keys-map.list"
                  />
                </condition>
                <fail
                  unless="files.match"
                  message="${project.basedir}/parent/src/main/resources/com/aoapps/pgp/keys/map/pgp-keys-map.list does not match ${project.basedir}/pgp-keys-map/src/main/resources/com/aoapps/pgp/keys/map/pgp-keys-map.list!"
                />
              </target>
            </configuration>
          </execution>
        </executions>
      </plugin>
    </plugins>
  </build>

  <modules>
    <module>ant-tasks</module>
    <module>appcluster</module>
    <module>cdn</module>
    <module>checkstyle-config</module>
    <module>collections</module>
    <module>collections-transformers</module>
    <module>concurrent</module>
    <module>cron</module>
    <module>dao</module>
    <module>dbc</module>
    <module>encoding</module>
    <module>encoding/devel</module>
    <module>encoding-taglib/devel</module>
    <module>encoding-taglib-javaee/devel</module>
    <module>fluent-html</module>
    <module>fluent-html-any</module>
    <module>fluent-html-any/devel</module>
    <module>fluent-html-util</module>
    <module>hodgepodge</module>
    <module>hodgepodge/devel</module>
    <module>io-buffer</module>
    <module>io-filesystems</module>
    <module>io-filesystems-posix</module>
    <module>io-posix</module>
    <module>javadoc-offline</module>
    <module>javadoc-resources</module>
    <module>lang</module>
    <module>lang/devel</module>
    <module>messaging</module>
    <module>net-types</module>
    <module>net-types/devel</module>
    <module>parent</module>
    <module>payments</module>
    <module>persistence</module>
    <module>pgp-keys-map</module>
    <module>security</module>
    <module>servlet-util/devel</module>
    <module>servlet-util-javaee/devel</module>
    <module>sql</module>
    <module>sql/devel</module>
    <module>sql-failfast</module>
    <module>sql-pool</module>
    <module>sql-tracker</module>
    <module>sql-wrapper</module>
    <module>taglib/devel</module>
    <module>taglib-javaee/devel</module>
    <module>tempfiles</module>
    <module>tld-parser</module>
    <module>tlds</module>
    <module>web-resources</module>
  </modules>

  <profiles>
    <profile>
      <id>jenkins</id>
      <build>
        <plugins>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId><artifactId>maven-antrun-plugin</artifactId>
            <executions>
              <execution>
                <!-- TODO: Check-out parent and pgp-keys-maps submodules then activate this again -->
                <id>verify-pgp-keys-map-match</id><phase>none</phase>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
    </profile>
    <profile>
      <id>javaee</id>
      <activation>
        <property>
          <name>javaee.skip</name>
          <value>!true</value>
        </property>
      </activation>
      <modules>
        <module>encoding-servlet-javaee</module>
        <module>encoding-taglib-javaee</module>
        <module>error-pages-javaee</module>
        <module>fluent-html-servlet-javaee</module>
        <module>mime-mappings-javaee</module>
        <module>servlet-filter-javaee</module>
        <module>servlet-last-modified-javaee</module>
        <module>servlet-subrequest-javaee</module>
        <module>servlet-util-javaee</module>
        <module>style-javaee</module>
        <module>taglib-javaee</module>
        <module>tempfiles-servlet-javaee</module>
        <module>javaee-web-api-bom</module>
      </modules>
    </profile>
    <profile>
      <id>jakartaee</id>
      <activation>
        <property>
          <name>jakartaee.skip</name>
          <value>!true</value>
        </property>
      </activation>
      <modules>
        <module>book</module>
        <module>ant-tasks/book</module>
        <module>badges</module>
        <module>badges/book</module>
        <module>checkstyle-config/book</module>
        <module>collections/book</module>
        <module>collections-transformers/book</module>
        <module>concurrent/book</module>
        <module>cron/book</module>
        <module>dbc/book</module>
        <module>encoding/book</module>
        <module>encoding-servlet</module>
        <module>encoding-servlet/book</module>
        <module>encoding-taglib</module>
        <module>encoding-taglib/book</module>
        <module>error-pages</module>
        <module>error-pages/book</module>
        <module>fluent-html/book</module>
        <module>fluent-html-any/book</module>
        <module>fluent-html-servlet</module>
        <module>fluent-html-servlet/book</module>
        <module>fluent-html-util/book</module>
        <module>hodgepodge/book</module>
        <module>io-buffer/book</module>
        <module>io-filesystems/book</module>
        <module>io-filesystems-posix/book</module>
        <module>io-posix/book</module>
        <module>javadoc-offline/book</module>
        <module>javadoc-resources/book</module>
        <module>lang/book</module>
        <module>mime-mappings</module>
        <module>mime-mappings/book</module>
        <module>net-types/book</module>
        <module>parent/book</module>
        <module>persistence/book</module>
        <module>pgp-keys-map/book</module>
        <module>security/book</module>
        <module>servlet-filter</module>
        <module>servlet-filter/book</module>
        <module>servlet-last-modified</module>
        <module>servlet-last-modified/book</module>
        <module>servlet-subrequest</module>
        <module>servlet-subrequest/book</module>
        <module>servlet-util</module>
        <module>servlet-util/book</module>
        <module>sql/book</module>
        <module>sql-failfast/book</module>
        <module>sql-pool/book</module>
        <module>sql-tracker/book</module>
        <module>sql-wrapper/book</module>
        <module>style</module>
        <module>style/book</module>
        <module>taglib</module>
        <module>taglib/book</module>
        <module>tempfiles/book</module>
        <module>tempfiles-servlet</module>
        <module>tempfiles-servlet/book</module>
        <module>tld-parser/book</module>
        <module>tlds/book</module>
        <module>web-framework</module>
        <module>web-framework/book</module>
        <module>jakartaee-web-profile-bom</module>
        <module>jakartaee-web-profile-bom/book</module>
        <module>website</module>
      </modules>
    </profile>
  </profiles>
</project>
