Maven Central Repository

ao-payments-api

Used in 2 components

Overview

Payment processing API supporting multiple payment gateways.

Snippets

<dependency>
    <groupId>com.aoapps</groupId>
    <artifactId>ao-payments-api</artifactId>
    <version>3.0.0</version>
</dependency>

Maven POM File

<?xml version="1.0" encoding="UTF-8"?>
<!--
ao-payments-api - Payment processing API supporting multiple payment gateways.
Copyright (C) 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023  AO Industries, Inc.
    support@aoindustries.com
    7262 Bull Pen Cir
    Mobile, AL 36695

This file is part of ao-payments-api.

ao-payments-api 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-payments-api 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-payments-api.  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.21.0<!-- -POST-SNAPSHOT --></version>
    <relativePath>../../parent/pom.xml</relativePath>
  </parent>

  <groupId>com.aoapps</groupId><artifactId>ao-payments-api</artifactId><version>3.0.0</version>
  <packaging>bundle</packaging>

  <properties>
    <project.build.outputTimestamp>2023-02-11T20:09:23Z</project.build.outputTimestamp>
    <module.name>com.aoapps.payments.api</module.name>
    <javadoc.breadcrumbs><![CDATA[<a target="${javadoc.target}" href="https://oss.aoapps.com/">AO OSS</a>
/ <a target="${javadoc.target}" href="https://oss.aoapps.com/payments/">Payments</a>
/ <a target="${javadoc.target}" href="${project.url}">API</a>]]></javadoc.breadcrumbs>
    <!-- SonarQube -->
    <sonar.projectKey>${project.groupId}:${project.artifactId}</sonar.projectKey>
    <sonar.organization>ao-apps</sonar.organization>
    <sonar.host.url>https://sonarcloud.io</sonar.host.url>
    <!-- Dependencies -->
    <commons-lang3.version>3.12.0</commons-lang3.version>
  </properties>

  <name>AO Payments API</name>
  <url>https://oss.aoapps.com/payments/api/</url>
  <description>Payment processing API supporting multiple payment gateways.</description>
  <inceptionYear>2007</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-payments-api.git</connection>
    <developerConnection>scm:git:git@github.com:ao-apps/ao-payments-api.git</developerConnection>
    <url>https://github.com/ao-apps/ao-payments-api</url>
    <tag>ao-payments-api-3.0.0</tag>
  </scm>

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

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

  <repositories>
    <!-- Repository required here, too, so can find parent -->
    <repository>
      <id>sonatype-nexus-snapshots-s01</id>
      <name>Sonatype Nexus Snapshots S01</name>
      <url>https://s01.oss.sonatype.org/content/repositories/snapshots</url>
      <releases>
        <enabled>false</enabled>
      </releases>
      <snapshots>
        <checksumPolicy>fail</checksumPolicy>
      </snapshots>
    </repository>
  </repositories>

  <build>
    <resources>
      <!-- Default Resources -->
      <resource>
        <directory>src/main/resources</directory>
      </resource>
      <resource>
        <directory>src/main/resources-filtered</directory>
        <filtering>true</filtering>
      </resource>
      <!-- Additional Resources -->
      <resource>
        <directory>src/main/sql</directory>
        <!-- Packaged as "sql" artifact below -->
        <excludes><exclude>**</exclude></excludes>
      </resource>
    </resources>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId><artifactId>maven-resources-plugin</artifactId>
        <executions>
          <execution>
            <id>sql-resources</id><phase>process-resources</phase><goals><goal>copy-resources</goal></goals>
            <configuration>
              <resources>
                <resource>
                  <directory>src/main/sql</directory>
                </resource>
              </resources>
              <outputDirectory>${project.build.directory}/sql</outputDirectory>
            </configuration>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId><artifactId>maven-jar-plugin</artifactId>
        <executions>
          <execution>
            <id>sql-jar</id><phase>package</phase><goals><goal>jar</goal></goals>
            <configuration>
              <classesDirectory>${project.build.directory}/sql</classesDirectory>
              <!-- Could pull directly from source, without above sql-resources,
                   but this seems to match Maven style better:
              <classesDirectory>src/main/sql</classesDirectory>
              -->
              <classifier>sql</classifier>
            </configuration>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <groupId>com.github.spotbugs</groupId><artifactId>spotbugs-maven-plugin</artifactId>
        <configuration>
          <!-- TODO: Clean-up SpotBugs -->
          <failOnError>false</failOnError>
        </configuration>
      </plugin>
    </plugins>
  </build>

  <profiles>
    <profile>
      <id>offlineLinks</id><activation><file><exists>src/main/java</exists></file></activation>
      <build>
        <plugins>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId><artifactId>maven-dependency-plugin</artifactId>
            <executions>
              <execution>
                <id>unpack.offlineLinks</id><phase>prepare-package</phase><goals><goal>unpack</goal></goals>
                <configuration>
                  <artifactItems>
                    <!-- Direct -->
                    <artifactItem>
                      <groupId>com.aoapps</groupId><artifactId>ao-collections</artifactId><classifier>javadoc</classifier>
                      <includes>element-list, package-list</includes>
                      <outputDirectory>${project.build.directory}/offlineLinks/com.aoapps/ao-collections</outputDirectory>
                    </artifactItem>
                    <artifactItem>
                      <groupId>com.aoapps</groupId><artifactId>ao-lang</artifactId><classifier>javadoc</classifier>
                      <includes>element-list, package-list</includes>
                      <outputDirectory>${project.build.directory}/offlineLinks/com.aoapps/ao-lang</outputDirectory>
                    </artifactItem>
                    <artifactItem>
                      <groupId>org.apache.commons</groupId><artifactId>commons-lang3</artifactId><classifier>javadoc</classifier>
                      <includes>element-list, package-list</includes>
                      <outputDirectory>${project.build.directory}/offlineLinks/org.apache.commons/commons-lang3</outputDirectory>
                    </artifactItem>
                    <artifactItem>
                      <groupId>commons-validator</groupId><artifactId>commons-validator</artifactId><classifier>javadoc</classifier>
                      <includes>element-list, package-list</includes>
                      <outputDirectory>${project.build.directory}/offlineLinks/commons-validator/commons-validator</outputDirectory>
                    </artifactItem>
                    <!-- Test Direct -->
                    <artifactItem>
                      <groupId>junit</groupId><artifactId>junit</artifactId><classifier>javadoc</classifier>
                      <includes>element-list, package-list</includes>
                      <outputDirectory>${project.build.directory}/offlineLinks/junit/junit</outputDirectory>
                    </artifactItem>
                  </artifactItems>
                </configuration>
              </execution>
            </executions>
          </plugin>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId><artifactId>maven-javadoc-plugin</artifactId>
            <configuration>
              <offlineLinks combine.children="append">
                <!-- Direct -->
                <offlineLink>
                  <url>https://oss.aoapps.com/collections/apidocs/</url>
                  <location>${project.build.directory}/offlineLinks/com.aoapps/ao-collections</location>
                </offlineLink>
                <offlineLink>
                  <url>https://oss.aoapps.com/lang/apidocs/</url>
                  <location>${project.build.directory}/offlineLinks/com.aoapps/ao-lang</location>
                </offlineLink>
                <offlineLink>
                  <url>https://javadoc.io/doc/org.apache.commons/commons-lang3/${commons-lang3.version}/</url>
                  <location>${project.build.directory}/offlineLinks/org.apache.commons/commons-lang3</location>
                </offlineLink>
                <offlineLink>
                  <url>https://commons.apache.org/proper/commons-validator/apidocs/</url>
                  <location>${project.build.directory}/offlineLinks/commons-validator/commons-validator</location>
                </offlineLink>
                <!-- Test Direct -->
                <offlineLink>
                  <url>https://junit.org/junit4/javadoc/latest/</url>
                  <location>${project.build.directory}/offlineLinks/junit/junit</location>
                </offlineLink>
              </offlineLinks>
            </configuration>
          </plugin>
        </plugins>
      </build>
    </profile>
    <profile>
      <id>release</id>
      <properties>
        <!--
          Releases use "Automatic-Module-Name" instead of "module-info.java"
          since has direct dependencies that are not yet modularized.

          Newer plugins are failing on release builds:
          error: -\-add-modules ALL-MODULE-PATH can only be used when compiling the unnamed module or when compiling in the context of an automatic module

          This is caused by the project being detected as a modular build, despite the exclusions via Private-Package
          and the added Automatic-Module-Name manifest entry.

          Specifically exclusing module-info.java from javadoc does not solve the issue.

          Could be related:
          https://issues.apache.org/jira/browse/MJAVADOC-586
          https://bugs.openjdk.org/browse/JDK-8252531 (we also run javadoc in package phase)

          Workaround by using old version of maven-javadoc-plugin also used by reactor builds.
        -->
        <maven-javadoc-plugin.version>${maven-javadoc-plugin.version.reactor}</maven-javadoc-plugin.version>
        <copy-element-list-to-package-list-before-javadoc.phase>prepare-package</copy-element-list-to-package-list-before-javadoc.phase>
      </properties>
      <build>
        <plugins>
          <plugin>
            <groupId>org.apache.felix</groupId><artifactId>maven-bundle-plugin</artifactId>
            <configuration>
              <instructions>
                <!--
                  Releases use "Automatic-Module-Name" instead of "module-info.java"
                  since has direct dependencies that are not yet modularized.
                -->
                <Automatic-Module-Name>${module.name}</Automatic-Module-Name>
                <Private-Package>!.</Private-Package>
              </instructions>
            </configuration>
          </plugin>
        </plugins>
      </build>
    </profile>
  </profiles>

  <dependencyManagement>
    <dependencies>
      <!-- Direct -->
      <dependency>
        <groupId>com.aoapps</groupId><artifactId>ao-collections</artifactId><version>3.0.0<!-- ${POST-SNAPSHOT} --></version>
      </dependency>
      <dependency>
        <groupId>com.aoapps</groupId><artifactId>ao-lang</artifactId><version>5.3.0<!-- ${POST-SNAPSHOT} --></version>
      </dependency>
      <dependency>
        <groupId>org.apache.commons</groupId><artifactId>commons-lang3</artifactId><version>${commons-lang3.version}</version>
      </dependency>
      <dependency>
        <groupId>commons-validator</groupId><artifactId>commons-validator</artifactId><version>1.7</version>
      </dependency>
      <!-- Transitive -->
      <dependency>
        <groupId>commons-beanutils</groupId><artifactId>commons-beanutils</artifactId><version>1.9.4</version>
      </dependency>
      <dependency>
        <groupId>commons-collections</groupId><artifactId>commons-collections</artifactId><version>3.2.2</version>
      </dependency>
      <dependency>
        <groupId>commons-digester</groupId><artifactId>commons-digester</artifactId><version>2.1</version>
      </dependency>
      <dependency>
        <groupId>commons-logging</groupId><artifactId>commons-logging</artifactId><version>1.2</version>
      </dependency>
      <!-- Test Direct -->
      <dependency>
        <groupId>junit</groupId><artifactId>junit</artifactId><version>4.13.2</version>
      </dependency>
      <!-- Test Transitive -->
      <dependency>
        <groupId>org.hamcrest</groupId><artifactId>hamcrest</artifactId><version>2.2</version>
      </dependency>
      <dependency>
        <!-- Shim for junit 4.13.2 -->
        <groupId>org.hamcrest</groupId><artifactId>hamcrest-core</artifactId><version>2.2</version>
      </dependency>
    </dependencies>
  </dependencyManagement>

  <dependencies>
    <!-- Direct -->
    <dependency>
      <groupId>com.aoapps</groupId><artifactId>ao-collections</artifactId>
    </dependency>
    <dependency>
      <groupId>com.aoapps</groupId><artifactId>ao-lang</artifactId>
    </dependency>
    <dependency>
      <groupId>org.apache.commons</groupId><artifactId>commons-lang3</artifactId>
    </dependency>
    <dependency>
      <groupId>commons-validator</groupId><artifactId>commons-validator</artifactId>
    </dependency>
    <!-- Test Direct -->
    <dependency>
      <groupId>junit</groupId><artifactId>junit</artifactId>
      <scope>test</scope>
    </dependency>
  </dependencies>
</project>