Added
- Add random IBAN generation for all the ISO 13616-compliant national IBAN formats (#153).
- Add
Iban#getBankIdentifier()
to get the bank identifier from an Iban (#162). - Add
Iban#getBranchIdentifier()
to get the branch identifier from an Iban (#162). - Add
Iban#getAccountNumber()
to get the account number from an Iban (#162). - Add
Iban#getNationalCheckDigit()
to get the national check digit from an Iban (#162). - Make
CreditorIdentifier#REGEX
public (as part of #172). - Make
Iban#REGEX
public (as part of #171). - Make
BbanStructure
public (as part of #153).BbanStructure
is an enum that holds countries BBAN structure as listed in the IBAN registry. - Add
SwiftPatternCharacterRepresentation
to centralize information about SWIFT pattern character representations (as part of #171). - Document alternatives to jbanking (#164).
Changed
- (breaking change) Make
CreditorIdentifier
final (#116). - (breaking change) Rename
Bic#BIC_REGEX
toBic#REGEX
and make it accept untrimmed strings (as part of #170 and #176). - (breaking change) Make
Iban
not accepting values containing spaces anymore (as part of #116). This means
printable or untrimmed IBANs are not considered valid values anymore. Note that this feature was not documented. - (breaking change) Make
IbanCheckDigit#validate
returnfalse
fornull
or less than 5 characters strings (#188). - (breaking change) Make
SwiftPattern#toString
returning only the SWIFT pattern expression (as part of #222).
Prior to this versionSwiftPattern#toString
were returning the SWIFT pattern expression with its corresponding regular expression. - (breaking change) Make
BicFormatException
,CreditorIdentifierFormatException
,IbanFormatException
andSwiftPatternSyntaxException
extendIllegalArgumentException
instead ofRuntimeException
(#220). - (breaking change) Move
IbanCheckDigit
fromfr.marcwrobel.jbanking.iban
tofr.marcwrobel.jbanking.checkdigit
(#174). - (breaking change) Accept untrimmed input strings in
Bic
,CreditorIdentifier
,Iban
,IsoCountry
andIsoCurrency
(#176). In earlier versions only case-insensitive were accepted. - Get rid of regexes to validate BICs (#170). This significantly increased the performances of BIC validation and creation (+200-300%).
- Get rid of regexes to validate Creditor Identifiers (#172). This significantly increased the performances of Creditor Identifiers validation and creation (+100-300%).
- Get rid of regexes to validate IBANs (#171). This significantly increased the performances of IBAN validation and creation (+200-400%).
- Improve javadoc (as part of #170 and #172).
- Add the state funeral of Queen Elizabeth II day to London calendar (#204).
- Add the national day of mourning for Her Majesty The Queen day to Sydney calendar (#204).
- Improve documentation of
Bic
,CreditorIdentifier
,Iban
andSwiftPattern
regarding serialization (as part of #222). - Update documentation to reflect the change from Turkey to Türkiye documented in the ISO 4217 Currency Code Service - Amendment number 173 (#207).
Fixed
- (breaking change)
Iban.isValid(String)
orIbanCheckDigit.validate(String)
returnfalse
instead of raising anIllegalArgumentException
with invalid IBAN check digit (e.g.00
,01
, or99
). - Fix
Bic
,CreditorIdentifier
andIban
documentation (#209). It was not explicit that lowercase characters were accepted.
Removed
- (breaking change) Remove
Bic#BIC_PATTERN
(as part of #170). If you still need to use the BIC regex, you may compile the pattern fromBic#REGEX
, which has been kept for compatibility and documentation purposes.
Internal
- Bump strata-basics from 2.12.5 to 2.12.15 (#179, #204, #210).
- Bump github/codeql-action from 2.1.16 to 2.1.27 (#192, #206, #217).
- Bump actions/setup-java from 3.4.1 to 3.6.0 (#195, #202, #218).
- Bump actions/checkout from 3.0.2 to 3.1.0 (#205).
- Bump development java version from temurin-17.0.3+7 to temurin-17.0.4+101 (#212, #233).
- Bump benchmark java version from temurin-8.0.332+9 to temurin-8.0.345+1 (#233).
- Alphabetically sort
IsoCurrency
,Holidays
andBbanStructure
enums entries (#161). - Add benchmarks that track the evolution of jbanking performances from version to version (#166). Some numbers can be seen here.
- Increase JVM memory for Maven (#184). Sonar analysis fails with
OutOfMemoryError
. - Remove bin/check-links (#129). The script has been moved to https://github.com/marcwrobel/checklinks.
- Configure dependabot to check for update of GitHub actions versions (#189).
- Add OpenSSF scorecard badge to the README (#193).
- Update build workflow to use Java 19 instead of Java 18 (#191).
- Use
Character.digit
instead ofCharacter.getNumericValue
inIbanCheckDigit
as recommended in Error Prone#CharacterGetNumericValue (closes #117). - Add serialization tests for serializable classes (#222).
- Add the
CheckDigit
interface and makeIbanCheckDigit
implements it (#174). - Enums maintenance - 2022/10 (#231).