Groupfor compatibility with
java.security.acl.Groupremoved since Java 14.
- Minimum Java version changed from 1.8 to 11.
Now supports Java 9+ modules. Due to still having filename-based automatic module dependencies,
*-SNAPSHOT versions include
module-info.classwhile releases include the
Automatic-Module-Namemanifest entry. To minimize the difference between these modes,
module-info.javadoes not perform any transitive requires.
- Maven artifact relocated from
- Package renamed from
- SQL schema renamed from
- Fixed typo in constants
CreditCard.setMaskedCardNumber(String)is now public.
TransactionRequest.DEFAULT_DUPLICATE_WINDOWis now public.
- Defined SQLSTATE values for all SQLException.
Split development-only classes into a new sub-project in
devel/. This sub-project is used only for development and is never deployed to artifact repositories.
- Resolved editor warnings.
Now registering exception types for use with
Throwables.newSurrogate(…)that supports creating new instances of throwables in order to have caller stack trace. When wrapped, the original throwable is the cause of the new throwable. When not wrapped, the original throwable is used directly and caller stack trace is lost.
This is used to maintain exception types and states across thread boundaries, such as when an exception cause is obtained from an
Fixed French translations properly encode
''inside resource bundles.
- Minimum Java version changed from 1.7 to 1.8.
Reduced use of property substitutions in
pom.xml. This is to help 3rd-party parsers that fail to perform full Maven-compatible substitutions.
- Updated dependencies.
- Minimum Java version changed from 1.6 to 1.7.
- New error code: TransactionResult.ErrorCode.RATE_LIMIT.
- Finished delayed capture persistence implementation.
- Masked card numbers now keep up to the first six digits instead of only four. The number of first digits kept may be lower, depending on card type. This allows for more complete card type determination per Issuer identification number (IIN).
- Authorization results now include an optional replacement masked card number. This facilitates the handling of card details that are updated by a provider. When updated, the new masked card number is persisted. The persisted value is then used to correctly represent the stored card to the user.
- New function CreditCard.getCardNumberDisplay(String) to format masked card numbers for display.
- Fixed CreditCard.setCustomerTaxId(String) to validate argument as documented.
expirationYearare now persisted and remain available for display. Previously, the expiration dates were only sent off to the payment processor. Payment processors may also provide replacement expiration date in the same fashion as the replacement masked card number.
- New function CreditCard.getExpirationDisplay(Byte,Short) to format expiration dates for display.
- Increased maximum future card expiration year from +12 years to +20 years.
- Added SQL implementation in alternate "sql" classifier.
- Persistent storage may now be synchronized against the provider in the background, allowing replacement masked card numbers and expirations to be persisted in a timely manner. This is in addition to the replacement values made available during authorization.
- Using managed dependencies:
- This project uses managed dependencies.
- This project's managed dependencies may also be imported by other projects.
- Please note: the next major release of this project will be renamed to
- Updated dependencies.
- New AO OSS Parent POM to simplify
- Project documentation moved to per-project book in SemanticCMS format.
- Added changelog as top-level project link.
- Improved Javadoc formatting.
- Improved README formatting.
- Project moved to GitHub and Maven.