WIFE Changelog
What's new in WIFE 7.8.5
Jan 5, 2017- SRU 2016:
- Updated the standard compliance to the latest SRU (in production November 2016)
- 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
New in WIFE 5.2 (Apr 30, 2009)
- Added missing hashcode and equals
- Javadocs improvements
- Revised and tested hibernate mappings
- Added getBlockType
- Added length to unparsed text persistence mappings
- Fixed persistence mapping for block2 inheritance
- Updated hibernate libs to version 3.2.6
- Added isOutput
- isInput made concrete, not abstract
- Added abstract isInput() method to SwiftBlock2 for safer casting subblocks when input/output is unknown