Skip to content

Releases: prowide/prowide-core

SRU2020-9.1.7

14 Sep 19:09
Compare
Choose a tag to compare

RELEASE 9.1.7 - September 2021

  • (PW-664) Parser enhancement to be lenient on LF before block identifier
  • MultiLineField: preserve starting component separator when getting lines with offset
  • Added user assigned country codes (example "XE") as valid codes in the IsoUtils country validation

SRU2020-9.1.6

21 Jul 16:14
Compare
Choose a tag to compare

RELEASE 9.1.6 - July 2021

  • MT564: Minor scheme fix, 92a TAXR and WITL can be repeated in CASHMOVE (E2)
  • (JIRA-627) fixed Narrative.builder() to compute "//" size in the lines wrapping
  • (JIRA-581) the MultiLineField API now preserves any starting and trailing spaces in field lines
  • MT565: fixed repetition of sequence B2 (multiple to single)
  • MT548: Minor scheme fix, added letter option "C" in field "98C:SCTS" in sequence "C1a1B1"
  • Added "ignore block 3" and "ignore priority" options to the SwiftMessageComparator
  • Added field classes for SCORE messages: 12[H,K,L], 20E, 25F, 29[D,F], 31R, 78B (to be used in the proprietary payload of the MT798 envelop)
  • Enhanced parser for LogicalTerminalAddress when the parameter has 9 characters

SRU2020-9.1.5

04 Jun 23:35
6272450
Compare
Choose a tag to compare

RELEASE 9.1.5 - June 2021

  • (JIRA-534) allowed null value for the Tag constructor
  • Fixed the getSequence API in MT classes when the sequence boundary field is repetitive, in some scenarios produced invalid results
  • (JIRA-519) Field92H: Added "Rate Status" accessors
  • (JIRA-519) Field92J: Replaced "Narrative" accessors by "Rate Status" accessors

SRU2020-9.1.4

26 Apr 01:07
Compare
Choose a tag to compare

RELEASE 9.1.4 - April 2021

  • Fixed getConditionalQualifier in fields 69C, 69D and 92H
  • Fixed field 41D isOptional(component) method
  • (JIRA-510) Fixed parser of field 90L
  • (JIRA-508) Fixed validator pattern in field 98K
  • Added MultiLineField interface implementation to fields: 45C, 45L and 49Z
  • Removed MultiLineField interface implementation to field 77H since its value is always a single line
  • (JIRA-501) Added getNarrative(deli), getNameAndAddress(deli) and similar getters in Field classes to get a concatenation of the relevant components with a specific delimiter
  • (JIRA-501) Fixed the getNarrative(), getNameAndAddress() and similar getters in Field classes to do a simple join of the relevant components, without CRLF and without components value trim
  • (JIRA-505) Fixed SwiftFormatUtils#decimalsInAmount(BigDecimal)
  • NPE prevention in AbstractMT.getFields() when the parsed FIN content is invalid
  • Added UETRUtils to generate the GPI unique end-to-end transaction reference, mandatory for several payment messages
  • Added customizable strategies to set the MtSwiftMessage metadata fields: reference, main amount, value date, etc...
  • Added field classes for SCORE messages: 13E, 21S, 21T, 27A, 29P, 29S, 29U, 49Z (to be used in the proprietary payload of the MT798 envelop)
  • (JIRA-451) Added backward compatible implementation in setComponent* and SetNarrative* API of narrative container fields: 29A, 37N, 70, 71B, 71D, 72Z, 72, 73A, 73, 74, 75, 76, 77A, 77B, 77D, 77
  • (JIRA-445) Added backward compatible fromJson for narrative container fields: 29A, 37N, 45B, 46B, 49M, 49N, 70, 71B, 71D, 72Z, 72, 73A, 73, 74, 75, 76, 77A, 77B, 77D, 77J, 77
  • Added Direction to the SwiftBlock2Field enumeration
  • Added more message type cases to the SwiftMessageUtils valueDate
  • Minor fixes in MT530 model: fields B/22F and C/90[A,B]

SRU2020-9.1.3

28 Dec 16:09
Compare
Choose a tag to compare

RELEASE 9.1.3 - December 2020

  • Changed SwiftMessage#isGpi() to be true for: 103, 199, 299, 192, 196, 202COV or 205COV (mandatory outgoing GPI types)
  • Removed the indexes from the AbstractSwiftMessage JPA mapping (can be created directly in the DB as needed)
  • Added options in the MT message comparator to ignore the LT identifier or test flag when comparing header LT addresses
  • Added asTestBic in BIC to create a test BIC by setting the second component of the location to zero
  • Added API in the SwiftBlock2Output to set the MIR date and receiver date time fields from Calendar object

SRU2020-9.1.2

24 Oct 17:16
Compare
Choose a tag to compare

RELEASE 9.1.2 - October 2020

  • Fixed set of MUR when an MtSwiftMessage is created from an acknowledge (service 21 message)
  • Changed AbstractSwiftMessage JPA mapping to EAGER load the status trail and the properties
  • Added a new MessageDirection enum as alternative to the legacy MessageIOType

RELEASE 9.1.1 - September 2020

  • Fixed parser for fields 94L and 95L
  • Added MurMessageComparator to match ACKs based on the MUR
  • Changed the SwiftMessage#getMUR to retrieve field 108 from either block 3 or block 4 (system messages)
  • Enhanced the AckMessageComparator to still match on differences in block 2 optional fields or block 4 EOL characters
  • Minor refactor in MtSwiftMessage update from model (SwiftMessage)
  • Added a trim to the content parsed from the RJE reader
  • Fixed setPdm in MtSwiftMessage that was over writing the pde field
  • Minor changes in the MtSwiftMessage to avoid log warnings when setting metadata from message model
  • Added convenient field getters in the ServiceMessage21 (ACK/NAK) model class and made the getMtId() return "gpa.021"

RELEASE 9.1.0 - May 2020

  • SWIFT Standard release update 2020 (live 22 November 2020)
  • Yearly revision of deprecation phase (see http://www.prowidesoftware.com/resources/deprecation-policy)
  • Enhanced components namings in field 98[DEGH]
  • Added rich API to parse and build narrative fields: 29A, 37N, 45B, 46B, 49M, 49N, 70, 71B, 71D, 72Z, 72, 73A, 73, 74, 75, 76, 77A, 77B, 77D, 77J, 77
  • Mx related classes moved to the prowide-iso20022 project (open source since October 2020)

SRU2019-8.0.2

07 May 01:06
Compare
Choose a tag to compare

RELEASE 8.0.2 - April 2019

  • Added IBAN validation for Seychelles
  • Added field setters API in the SwiftBlock5
  • Added SwiftBlock5Field enumeration with commonly used block 5 trailer fields
  • (CR #235) Added SafeXmlUtils to disallow XXE in all XML parsing code
  • Fixed parser for fields 70[C,D,E,G], 94E, 95V when first line second component contains slashes
  • Changed default root element for Mx from message to RequestPayload
  • Fixed month day parsing in SwiftFormatUtils for leap years
  • Added MxParser#containsLegacyHeader() to check weather the message uses the legacy SWIFT header or the ISO business header
  • Added MtSwiftMessage constructor from AbstractMT
  • Fixed parser to preserve trailing lines in field values, even if the lines are empty (empty trailing lines were trimmed before)
  • (CR #203) Enhanced parser for party fields, explicit /D/ and /C/ is parsed as mark, otherwise any content following the / is parsed as account
  • Fixed field 108 order and overwrite if exist logic in SwiftBlock3#generateMUR
  • (CR #207) Added optional parameter in SwiftWriter and FINWriterVisitor to control whether field values should be trimmed

SRU2019-8.0.1

07 May 01:09
Compare
Choose a tag to compare

RELEASE 8.0.1 - October 2019

  • Added SwiftMessageUtils#currencyAmount to retrieve the main currency and amount from a message
  • (CR #192) Fixed ConversionService#getFIN(SwiftMessage) to avoid altering the message parameter when removing empty blocks
  • Added an optional SwiftWriter#writeMessage with ignoreEmptyBlocks parameter
  • SwiftMessage#setUserBlocks(List) made public
  • Removed the trim to field values in the XML to enable consistent round trip conversion between FIN and XML
  • Explicit UTF-8 encoding was added where necessary to ensure portability
  • Added MultiLineField implementation to 45D, 49G, 49M and 49N

RELEASE 8.0.0 - May 2019

  • JRE requirement increased to Java 1.8
  • SWIFT Standard release update 2019 (live 17 November 2019)
  • Yearly revision of deprecation phase (see http://www.prowidesoftware.com/resources/deprecation-policy)
  • Added common hierarchy for option J party fieldsRELEASE 8.0.1 - October 2019 - LTS version for SRU2019
  • Added SwiftMessageUtils#currencyAmount to retrieve the main currency and amount from a message
  • (CR #192) Fixed ConversionService#getFIN(SwiftMessage) to avoid altering the message parameter when removing empty blocks
  • Added an optional SwiftWriter#writeMessage with ignoreEmptyBlocks parameter
  • SwiftMessage#setUserBlocks(List) made public
  • Removed the trim to field values in the XML to enable consistent round trip conversion between FIN and XML
  • Explicit UTF-8 encoding was added where necessary to ensure portability
  • Added MultiLineField implementation to 45D, 49G, 49M and 49N

RELEASE 8.0.0 - May 2019

SRU2018-7.10.4

07 May 01:10
Compare
Choose a tag to compare

RELEASE 7.10.4 - May 2019

  • Updated dependencies: apache-commons-lang 3.7 -> 3.8.1
  • Updated dependencies: apache-text 1.3 -> 1.6
  • Added copy constructors to MT header blocks
  • Added setDate(Calendar) to MIR object
  • (Issue #25) Fixed padding in PPCWriter
  • Added helper API SwiftTagListBlock#splitByTagName to get sub-blocks by field boundary
  • Fixed IOB exception in SwiftBlock2Output#setMIR in lenient mode
  • SwiftParser#tagStarts changed to protected to allow overwriting in custom parsers for non-compliant messages
  • Moved getMessageType from MtSwiftMessage to parent class AbstractSwiftMessage
  • Added getVariant and getMtId to MtSwiftMessage; added getMxId to MxSwiftMessage
  • Added setMUR in SwiftMessage
  • Added helper method in SwiftWriter to ensure break lines of any String has CRLF
  • Added setSignature and getSignature to SwiftMessage and AbstractMT to set and retrieve MDG tag in S block (LAU computation available in Prowide Integrator)
  • Added propertyValue to AbstractSwiftMessage to check if a property is set with a given value
  • Changed IsoUtils implementation to use Currency.getAvailableCurrencies() in the initialization
  • Deprecated AckSystemMessage in favor of ServiceMessage21
  • Fixed negative index bug in AbstractSwiftMessage#getPreviousStatusInfo when message has less than two statuses in the trail
  • Fixed getLines API in Fields that in some cases was trimming the first line starting slash from the result
  • Fixed eventual NPE produced in MxSwiftMessage#updateFromMessage() when creating MxSwiftMessage from XML document
  • Fixed column length for "variant" in MxSwiftMessage persistence mapping
  • Added a fields() method in SwiftTagListBlock to get all block Tag objects as Field objects
  • Added API to field 50F and 59F to get structured content for the line numbers

SRU2018-7.10.3

25 Oct 23:55
49bb018
Compare
Choose a tag to compare

RELEASE 7.10.3 - October 2018

  • License changed from LGPL to the more permissive Apache License 2.0
  • Fixed serialization of field 48
  • Completed SwiftMessageUtils#currencyAmount for missing MTs
  • Fixed NPE in SwiftBlock4.removeEmptySequences with fields 15A as sequence boundary
  • (Issue #15) MxParser.java typo analiseMessage -> analyseMessage
  • Added getFields() to MT classes
  • Added bean validation annotations for BIC, IBAN, ISO country and currency
  • Enhanced the BIC internal model to allow accessor for all subfields
  • Enhanced the BIC validation with enum to report the specific validation problem found
  • Changed the default SwiftParser behavior to lenient, meaning by default it will not throw any IllegalArgumentException when headers size is invalid
  • Fixed FIN writer to preserve trailing spaces in tag value
  • Added JPA annotations to the SWIFT model intended for persistence (AbstractSwiftMessage and subclasses)
  • Removed the old Hibernate XML mapping AbstractSwiftMessage.hbm.xml (in favor of generic JPA annotations in model)
  • Added SwiftTagListBlock#removeSubBlocks to remove all instances of a given subblock
  • (Issue #13) Fixed SwifttagListBlock#removeSubBlock
  • Added JsonSerializable interface to all model classes implementing toJson()
  • Added toJson and fromJson to MT and Field classes
  • Added toJson and fromJson to the MtSwiftMessage and MxSwiftMessage model
  • Added field 434 in SwiftBlock3Builder

RELEASE 7.10.2 - May 2018

  • Revamped the JSON API implementation using Gson, added missing fromJson methods

RELEASE 7.10.1 - April 2018

  • FIN writer: reverted the trim in tag values introduced in 7.8.9

RELEASE 7.10.0 - April 2018

  • SWIFT Standard release update 2018
  • JRE requirement increased to Java 1.7
  • Dependencies: updated apache commons-lang from 2.6 to 3.7
  • Yearly revision of deprecation phase (see http://www.prowidesoftware.com/resources/deprecation-policy)
  • Added API in SwiftMessage for the SWIFT gpi service: getters and setters for the service type identifier and UETR
  • Added an automatically generated UETR when creating new MT instances for 103, 103 STP, 103 REMIT, 202, 202 COV, 205, or 205 COV
  • Added API in SwiftMessage to set the variant (STP, REMIT, COV)
  • New helper API for block 3 (SwiftBlock3Builder) to ensure only expected fields are added and in proper order