back Changelog for Prowide Core (WIFE) - Latest Version - Download

Version 7.8.9 LTS maintenance version for current SRU2016 - May 2017

  • Yearly revision of deprecation phase Deprecation Policy
  • Added convenient isType(int) to SwiftMessage
  • Fixed amounts() in AmountContainer fields

Version 7.8.8 - March 2017

New API

  • Added hashcode and equals to MxId
  • Added MUR generation in block 3
  • Added a multi-purpose SwiftMessageComparator for MT, as an abstraction of the existing AckMessageComparator
  • Added helper API to remove empty sequences in block 4
  • Added ACK/NAK identifier constants and API in AbstractSwiftMessage
  • Added getDateAsCalendar in MIR/MOR
  • Added MtCategory enum for MT message categories and convenient category API in SwiftMessage
  • Added support for system and service messages in metadata gathered from SwiftMesasge in MtSwiftMessage
  • Added isServiceMessage in SwiftMessage
  • Added static factory method parse to SwiftMessage
  • Added new fields in AbstractSwiftMessage to hold main currency and amount, automatically set for most MTs from fields 32a, 33a, 34a, 19a and 62a
  • Added conversion to and from LT address in SwiftFormatUtils
  • (CR #10) Added comprehensive implementation of MT and Field classes for system messages (category 0)
  • Added custom name for internal loop sequences in MTs 110, 360, 361, 604, 605, 609, 824, 920, 935, 940, 942, 971 and 973
  • Added more options to retrieve information from the status trail in AbstractSwiftMessage

Fixes

  • Reduced visibility from public to protected for MTs inner sequence classes mutable fields; START, END, TAIL.
  • Fixed analyze and strip API in MxParser to support nested Document elements
  • Fixed MT500 removed invalid fields after GENL linkage sequence
  • Fixed AckMessageComparator to cover all fields in block 2 input and output
  • Fixed getSender and getReceiver for service messages in SwiftMessage
  • Fixed MT600, removed invalid fields 26F, 34G, 31C in sequence A
  • Fixed parse for DATE1 (MMDD) to handle properly leap years
  • Fixed RJEWriter to avoid writing the split character '$' and the end of the file, afterwards the last message

Enhancements

  • Expanded helper API in AckSystemMessage
  • TagListBlock tags field made private instead of package protected
  • Enabled mutability of LogicalTerminalAddress objects, allowing setting the branch from superclass BIC
  • Enhanced parser for fields 11R, 11S and 37H (NPE prevention)
  • Removed invalid generated code for internal loops (non-sequence) in MTs: 110, 201, 360, 361, 559, 604, 605, 609, 824, 920, 935, 940, 942, 971, 973
  • Enhanced from() and to() methods in BusinessHeader to catch more options

Version 7.8.7 - December 2016

Fixed MT schemes

  • Fixed getMessageType in MT103_STP, MT102_STP, MT103_REMIT, MT202COV and MT205COV to return the number without the validation flag (as expected per javadoc definition)
  • MT518 fixed fieldset for Field 70
  • MT330 fixed qualifier in Field 22
  • MT513 and MT514 Field 11 moved outside previous fieldset
  • MT541 to MT547 Field 90[A,B] changed to fieldset.
  • MT564 fixed fieldset items in Field93[B,C]
  • MT565 to MT567 Sequence D, fixed field 13
  • MT609 and MT798_763 fixed qualifiers in Field 29

Enhancements

  • When creating MT instances, the validation flag (STP, REMIT, COV) will be automatically created as block 3 field 119 when applies for the created MT
  • Log warning when creating MTnnn objects from invalid message types, for example calling MT103.parse(fin) and passing FIN content for an MT 202
  • Ignore validation flag (STP, REMIT, COV) if it is not valid for the message type, when creating MT object from SwiftMessage (to avoid ClassNotFoundException)
  • Enhanced semantic in AckMessageComparator when a blocks are null or empty (see javadoc for details on how blank blocks are handled in comparison)

Version 7.8.6 - November 2016

Fixes

  • MxParser; IOB exception prevention in strip methods when XML has empty header or document
  • Prevention for IOB exception in ensureEOLS when converting MT message from model into FIN text

Enhancements

  • Expanded API in SwiftParser with static parse methods for each MT block
  • Expanded API in SwiftWriter to serialize any MT block into its native SWIFT representation, also made visit API in SwiftMessage static

New API

  • Added getSubBlockByTagNames and getSubBlocksByTagNames in SwiftTagListBlock to retrieve subblocks based on comprehensive list or tag names
  • Added API in BusinessHeader to create valid BAH from simple parameters
  • Added API in BIC to get the branch and institution
  • Added API to match message identifier by regex, for example fin.*STP
  • Added API to strip header and document portion of Mx message in XML format
  • Added analizeMessage in MxParser, lightweight API to retrieve structure information from an MX messages
  • Added enumerations for message priority and delivery monitoring in MT block 2
  • Added json() to AbstractMT
  • Added getComponentLabel(int) in Field classes
  • Added updateFrom AbstractMT to MtSwiftMessage
  • Added reference as class attribute in AbstractSwiftMessage (set by subclasses)
  • Added FileFormat attribute to AbstractSwiftMessage for clear identification of content in implementing subclasses
  • Added constructor of MxSwiftMessage from AbstracMX
  • Added API to get BIC codes from DN in Mx messages
  • Added MtId class, analogous to the existing MxId for MX messages
  • SwiftParser parsing of block 4 published as static public method
  • Added AbstractMessage as base class for specific MTnnn and MXmmm model hierarchy
  • Added MessageStandardType with MT and MX values and ServiceIdType for header service id values
  • Added nextSwiftMessage in RJE/PPC readers for system messages support
  • Added valuesNumeric to MT enumeration MtType
  • Added getValueDisplay with optional locale parameter to display formatted field and individual components values
  • Added MTVariant enum and getVariant API in swift messages
  • Added CONDITIONAL_QUALIFIER component number as static class field for all generic fields (fields implementing the GenericField interface)
  • Added BusinessHeader serialization into xml and Element objects
  • Added business header parse from Element object in MxParser
  • Added RJEReader and RJEWriter to create MT message files in RJE format
  • Added PPCWriter to create MT message files in DOS-PPC format (also enhanced API for the existing PPCFileReader)
  • Added path() API in MxNode
  • Added MtType, an enumeration of all available MTnnn implementations
  • Added parse to Field classes to update field components from full value
  • Added append lists of Tag or Field to TagListBlock
  • Added support for attributes in MxNode
  • Added generic setters for attributes in header blocks 1 and 2 using qualified names (#setField)
  • Added write XML method for MX business header
  • Added validName as static method in Field, to validate field names
  • Added getField static API in Field to create new instances with reflection given the field name and value
  • Added reference(msg) to SwiftMessageUtils to get the sender reference from messages that contain a reference field
  • Added SwiftMessageRevision to the swift messages model, to hold and track changes in swift messages

Fixes

  • Fixed parser for field 98H
  • Fixed field 61 parse allowing EC and ED as credit/debit mark subfield
  • Fixed from() and to() methods in BusinessHeader to return the BIC code for both possible header types
  • FIxed serialization of component 1 in field 50F
  • Fixed parser and serialization in Field98F
  • Fixed SwiftMessage.toJson single quote to double quote in timestamp field
  • Fixed getLabel when used with the parameters combination of a valid mt and a null sequence
  • Fixed getValue in Field61
  • Added proper implementation for isOptional(component) in Field61
  • Fixed components trim to null in parser for several fields when the component value is not present
  • Fixed separators trim in getLine API
  • Fixed setComponentN(Number) when component is not a SWIFT amount, Number is now serialized as an integer (without decimal separator)
  • Fixed MT parser to allow additional lines in a field start with colon ':'
  • Fixed field 32R second component changed from currency to string to allow codewords 'FOZ', 'GOZ', 'GRM', 'KLO', 'LIT', 'LOT', 'OTH', 'PND', 'TAL', 'TOL', 'TON', 'TOZ', 'UNT'
  • Fixed field 33B first component changed from currency to string to allow codeword 'PCT' used in MT601
  • Fixed API inconsistencies in MtSwiftMessage when updating from SwiftMessage objects
  • Bugfix MT506 added mandatory field 28E

Enhancements

  • Added missing getters for Sequence E1 in MT300
  • Changed MX messages detection in MxParser to lighter implementation using Stax
  • Normalized Input/Output Outgoing/Incoming API in AbstractMT and SwiftMessage
  • SwiftMessage.toJson changed timestamp format to the recommended ISO 8601
  • MxSwiftMessage meta-data (sender, receiver, reference, identifier) read and set from raw XML content
  • Added support in XmlParser for the field version of Core proprietary XML format for MTs, the parser now reads both formats seamlessly
  • Better header API in MxSwiftMessage to support both ISO and SWIFT business headers
  • Elaborated identifier in MtSwiftMessage, using fin.msgtype[.mug|variant] instead of just the message type
  • Added comprehensive sequence names into pw_swift_label property files
  • Added translations of pw_swift_label property files to FR, DE and IT (complementing the existent EN, ES and RU files)
  • Completed pw_swift_label property files for all field + mt + sequence combinations
  • Complete application header parsing in MxParser
  • Better application header detection in MxParser based on namespaces
  • Added component labels for field 13K
  • Fields 11R and 11S component 3 split into two independent components
  • In Field61, component 6 was splitted into two independent components to hold the "transaction type" and the "identification code" as stated in the standard definition for function SUB-6
  • Added SwiftParserConfiguration to encapsulate several parsing options, allowing fast parsing of AbstractMT by reading the text block in raw format
top

Prowide Integrator


Prowide Integrator

SWIFT message development toolkit

For organizations looking for reduced efforts in the implementation and maintenance of its SWIFT software infrastructure.

Prowide Enterprise


Prowide Enterprise

Ready to use SWIFT platform

For organizations looking for an off-the-shelf SWIFT message management application tailored to its own specific needs.