Prowide Integrator MyFormat - CHANGELOG
10.3.13 - June 2026
- (PW-3299)
MappingTable.validate()now accepts XML namespace declaration selectors (@xmlnsand@xmlns:<prefix>) as valid MX target paths when declared on the message root or on a valid element path. The host element path is still validated, so declarations on a non-existent branch are rejected. Overriding the output namespace of a generated MX through a mapping rule (e.g. emitting a CIPS namespace such asurn:cips:std:cips:2025:tech:xsd:cips.111.001.05) no longer reports a false validation error - Fix: a
RuntimeExceptionthrown by a transformer is now caught and logged, returning the source content unaltered instead of aborting the whole message translation. - Fix: explicit UTF-8 charset in
CsvFileReaderandJsonReader, made staticPatternfieldsfinalinFixedLenSelectorField,JsonSelectorPathsDef,MatrixFieldsDefandMatrixSelector
10.3.12 - June 2026
- Added validation of the configurable main table name and
CustomColumnNamesinMappingTableDatabaseLoader. Values that are not valid SQL identifiers are now rejected and reported viagetProblems()instead of being used to build the query.
10.3.11 - May 2026
- Upgraded Apache POI 4.1.2 → 5.4.0. Fixes CVE-2024-25710, CVE-2024-26308 (commons-compress), CVE-2022-42889 (commons-text), CVE-2025-48924 (commons-lang3), and refreshes
xmlbeans/commons-collections4baselines. - POI 5.x routes log output via Log4j 2 API (pulled transitively). Spring Boot apps bridge automatically through
spring-boot-starter-logging; non-Spring SLF4J users should addorg.apache.logging.log4j:log4j-to-slf4j.
10.3.10 - May 2026
- Fixed CSV smart-quote in
ParseUtils.buildExprList: a first-cell value containing the configured separator is now correctly quoted
10.3.9 -May 2026
- (PW-3134) Added new SETUP command
selfClosingEmptyTagsfor XML and MX writers. When enabled, empty XML elements are rendered as self-closing tags (<tag/>) instead of the default expanded format (<tag></tag>). Enable withtable.add(new MappingRule("\"true\"", "selfClosingEmptyTags", WriteMode.SETUP)) - (PW-3134) Fixed null-safety in
MxWriter.message()when JAXB serialization returns null - (PW-3134) Fixed typed overloads in
XmlWriterandMxWriterto delegate SETUP commands correctly - Upgraded Apache POI from 3.17 to 4.1.2 to resolve CVE-2021-23926 (XXE vulnerability in xmlbeans 2.6.0)
10.3.8 - February 2026
- Added verbose/debug mode for translations via new
TranslationOptions,TranslationResult, andRuleExecutionLogclasses - Added new
MyFormatEngine.translate()overloads acceptingTranslationOptionsand returningTranslationResultwith per-rule execution logs - Added new CSV SETUP command
removeEmptyRowsto automatically remove empty rows from CSV output. - Added new SETUP command
emptyToNullfor CSV, Fixed-Length, JSON, XML and MX writers. When enabled, if the writer'smessage()result is empty it returnsnullinstead. - Added runtime variable resolution in FOREACH literal value selectors. Variables stored via
WriteMode.VARIABLEare now resolved in the double-quoted second parameter combined withaddRowto pre-populate columns across all iterated rows - Migrated deprecated
StringUtilsmethods toStrings.CSequivalents (equals, startsWith, endsWith, contains, replace, indexOf, lastIndexOf, remove, removeEnd)
10.3.7 - February 2026
- Fixed
MxWriterto support inner (relative) paths as target selectors (e.g.,//PmtId/TxId). Previously only source selectors supported inner paths.
10.3.6 - January 2026
- Added unparsed transformations in
MappingRuleto store the raw value when importing aMappingTablefrom Excel/csv/db - Added new transformation
ifMatchesReplace(regex, replacement)- returns replacement if input matches regex, otherwise returns original value unchanged - Added new transformation
ifNotMatchesReplace(regex, replacement)- returns replacement if input does NOT match regex, otherwise returns original value unchanged (inverse of ifMatchesReplace) - Added new transformation
regexExtract(regex, group)
10.3.5 - January 2026
- Added support for mapping table loading from CSV in
MappingTableCSVLoader - Added support for single-quoted strings in transformation parameters (e.g.,
Replace(',', ';'))
10.3.4 - December 2025
- Added
updateWithFindparameter toMtWriterto find and update the first matching field instead of the last one - Added runtime variables support with
WriteMode.VARIABLEfor storing and reusing values in source selectors, CONCAT expressions, and transformation parameters (e.g.,prepend($prefix),replace($search, $replacement)) - Added support for
$variablesin CONCAT expressions (e.g.,CONCAT($var1, "-", $var2)) - Added new
ReadMode.FOREACH_CONCATto iterate over repetitive elements and concatenate results into a single string - FOREACH_CONCAT syntax:
FOREACH_CONCAT(selector, separator)orFOREACH_CONCAT(selector, separator, includeNulls) - Added validation in
MappingValidatorfor variable targets, sources, and FOREACH_CONCAT parameters
10.3.3 - November 2025
- Added support for XLSX format in
MappingTableExcelLoaderalongside existing XLS support
10.3.2 - August 2025
- Added
setElementmethod to BaseMxBuilder to set a given value to the specified valid path.
10.3.1 - June 2025
- (PW-2343) Fixed the
MxWriternamespace declaration manipulation to work also for xsys messages where more than one namespace is present
10.3.0 - May 2025
- SWIFT Standard release update 2025 (live 22 November 2025)
- Yearly revision of deprecation phase (see https://dev.prowidesoftware.com/SRU2024/getting-started/deprecation/)
10.2.9 - April 2025
- (PW-2343) Added support for xsys messages in the
MxWriter - Feat: added a constructor with all parameter options in the
MappingRule
10.2.8 - March 2025
- Added support for single tag XML elements, instead of only nested elements, in the XML writer.
10.2.7 - February 2025
- Added support for inner (relative) paths for XML and MX selectors (for example: //GrpHdr/MsgId)
10.2.6 - November 2024
- Added MT sequence paths validation for source and target selectors in the conversion from or to MT
10.2.5 - November 2024
- Enhanced selectors for JSON with support for filters and path def in the selector
- Added new method for transforming MappingTable into DML SQL statements
10.2.4 - September 2024
- (PW-2005) Enhanced the write modes APPEND and UPDATE for MT, to enable updates of fields regardless of the creation order
10.2.3 - August 2024
- Added transformations
defaultStringIfPresentandgetCountryDescription - Enhanced transformation
logicalTerminalAddress - Revamped the
JsonWriterimplementation (using XML as intermediate internal representation) - Fixed MxWriter AppHdr namespace generation when an option rather than BAH v2 is used
- Added support for BAH version 4 (head.001.001.04) in the
MxWriterand MX messages builders
10.2.2 - August 2024
- (PW-1792) Added a camt.050 message builder utility with initial support for generic ISO 20022, T2 and SIC
- (PW-1792) Added a camt.053 message builder utility with initial support for generic ISO 20022, T2 and CBPR+
- (PW-1792) Added a pacs.008 message builder utility with initial support for generic ISO 20022, CBPR+, T2 and SIC
10.2.1 - June 2024
- (PW-1792) Added a pacs.009 message builder utility with initial support for generic ISO 20022, CBPR+, T2 and SIC
- (PW-1889) Added API in the MtWriter, MxWriter and XmlWriter to check if a given selector already exists in the written content
- Added a convenient write method with default write mode in the
MessageWriterinterface
10.2.0 - May 2024
- SWIFT Standard release update 2024 (live 16 November 2024)
- Yearly revision of deprecation phase (see https://dev.prowidesoftware.com/SRU2024/getting-started/deprecation/)
10.1.6 - April 2024
- (PW-1833) Fixed base64 encoding handling for jakarta.xml.bind-api:4.0.2 compatibility
10.1.5 - December 2023
- Added schema paths validation for source and target selectors in the conversion from or to MX
10.1.4 - October 2023
- (PW-1604) Added
concatfunction toMatrixReaderin order to allow retrieving multiples source value duringforeachiterations
10.1.3 - October 2023
- (PW-1642) Changed the mapping validator to enable literal() in the source selector, this makes sense when combined with a defaultString(value) transformation
10.1.2 - September 2023
- (PW-1118) Changed
MtReaderin order to include null value items inreadManyresults whenvalueSelectoris used
10.1.1 - July 2023
- Enhancements to fully support propagation of foreach indexes into the target selectors, including Line, such asf A[2]/B[{n}]/B1[3]/23A[{m}]/Line[{o}]
10.1.0 - June 2023
- Migration to Java 11
- Migration to Jakarta EE 10
9.4.0 - May 2023
- SWIFT Standard release update 2023 (live 19 November 2023)
- Yearly revision of deprecation phase (see https://dev.prowidesoftware.com/SRU2022/getting-started/deprecation/)
9.3.14 - May 2023
- (PW-1370) Fixed the MxReader so that it can properly extract content from /AppHdr and /Document paths in conversions from MX
- (PW-1232) Changed the CSV writer to be more lenient; enabling empty rows, auto extend by default when using addRows, and single separator in the whole CSV
- Internal implementation enhancement
9.3.13 - April 2023
- Refactored the MappingTable spreadsheet loader to use the new MappingTableExcelLoader
- Refactored the MappingValidator in order to optimize the Rules Parsing, Validation and Process steps
9.3.12 - March 2023
- Fixed transformation toTimeZone when both source and target zone identifiers are used as parameters
9.3.11 - March 2023
- Internal implementation enhancement in the SETUP commands API
9.3.10 - February 2023
- (PW-1174) Added SETUP function to indicate the appHdrType for MX messages in the externalized configuration (spreadsheet or DB)
- Added support for Zone Ids such as "America/Argentina" to the offset parameters in the transformation functions
9.3.9 - February 2023
- Added transformation now() to get the current datetime in local timezone, formatted as yyyy-MM-dd'T'HH
ss.SSSZ (ISO 8601)
- Added transformation now(utcOffset)to get the current datetime in the specified time-zone, formatted as yyyy-MM-dd'T'HH
ss.SSSZ (ISO 8601)
- Added transformation uetr() to generates a new random UETR (unique end to end reference) used in both MT and ISO 20022 messages
- Added transformation toTimeZone(dateTimeFormat, targetOffset) to transform a given datetime in local time and convert it to the target UTC timezone
- Added transformation toTimeZone(dateTimeFormat, sourceOffset, targetOffset) to transform an input datetime from a specific UTC timezone to another
- MtPath enhancement to enable using component names (labels) in the selector expressions instead of component numbers
9.3.8 - January 2023
- Enhanced selector validation, checking that value selectors (secondary selector in expression) do not contain variables
- Added support for JSON as source and target formats for the conversion
9.3.7 - December 2022
- (PW-1118) minor fixes and added "@main" to MtReader to work with main message (when processing an attachment)
- Minor internal code enhancements
- Fixed error text formatting in transformations validation
9.3.6 - December 2022
- (PW-1105) Added support in the CSV writer setup to pass "\t" as parameter to require the tab character as separator
- Added a constraint for the CsvFieldsDef to match the pattern ([A-Za-z0-9_]*) and thus avoid mapping selector parsing issues
9.3.5 - November 2022
- Updated Apache Commons Text dependency to 1.10 to fix reported CVE
- Added SETUP functions to indicate the source and target formats in the externalized configuration (spreadsheet or DB)
- Added SETUP functions to indicate the target MT type or target MX type in the externalized configuration (spreadsheet or DB)
- Added SETUP function to set up the mapping name in the externalized configuration (spreadsheet or DB)
- Added support in the MtWriter to generate automatically the field 15 in the sequences separated by 15a
9.3.4 - October 2022
- Added API in the MxWriter to configure the specific AppHdr version to use when creating MX messages as output
- Set the default AppHdr version when creating MX messages to ISO Business Application Header v2
- Added ifElse power function to facilitate conditional mappings
9.3.3 - October 2022
- (PW-1064) Fallback option to system classloader in resource loading
9.3.2 - September 2022
- Added transformation functions logicalTerminalAddress, logicalTerminalAddressSend and logicalTerminalAddressReceive
- Added transformation function sum
9.3.1 - August 2022
- (PW-1010) Added an automatic sanitization when converting into MT, to fix start of line characters and some missing components
9.3.0 - May 2022
- SWIFT Standard release update 2022 (live 20 November 2022)
- Yearly revision of deprecation phase (see http://www.prowidesoftware.com/resources/deprecation-policy)
9.2.6 - May 2022
- (PW-813) Internal enhancement to fix CVE
- Deprecation API review
9.2.5 - April 2022
- Minor fix in the database loader, to set the table name with the configuration name parameter
- Fixed mapping table validation when there are SETUP commands in the mappings
- Minor internal code enhancements
- Prowide Integrator SDK and Prowide Core updates
9.2.4 - January 2022
- Prowide Integrator SDK and Prowide Core updates
9.2.3 - December 2021
- Added com.prowidesoftware.integrator.myformat as automatic module name in the MANIFEST for JPMS support
9.2.2 - June 2021
- Added support to read and write block 5 fields with selectors such as "b5/CHK"
9.2.1 - June 2021
- (PW-527) Additional change in the XML and MX reader to trim indentation and trailing spaces from elements while preserving line feeds
- (PW-527) Changed the XML and MX reader to preserve whitespaces from elements content
- (PW-527) Added transformation functions wrapLinesPreserve and wrapLinesPreservePrepend
9.2.0 - May 2021
- SWIFT Standard release update 2021 (live 21 November 2021)
- Yearly revision of deprecation phase (see http://www.prowidesoftware.com/resources/deprecation-policy)
9.1.8 - April 2021
- (PW-502) Added MappingTableDatabaseLoader for more flexible data base access and querying when load the mappings
9.1.7 - March 2021
- (PW-480) Fixed mapping into block 2 using whole block value as input data
9.1.6 - February 2021
- Added validation of the new SETUP commands: separator, smartQuotes, smartEscapes, addFieldNames and columnNames
9.1.5 - January 2021
- Fixed CSV writer with APPEND mode
- Added SETUP commands to the externalized mapping into CSV: separator, smartQuotes, smartEscapes, addFieldNames and columnNames
9.1.4 - January 2021
- Fixed semantic of the MtReader to return null content if the MT selector targets a missing field component
- Fixed transformation "rightPad"
- Fixed transformation "formatDecimal" when input number contains decimal separator and no decimal digits (valid case in MT amounts)
- Fixed transformation "fixed" to avoud setting the default value if the input content is null (not found in source)
- Fixed transformations "append", "prepend", "replaceIfEquals" and "wrap" to avoid generating value if input is null
- Fixed transformations "indexOf", "indexOfIgnoreCase", "lastIndexOf" and "lastIndexOfIgnoreCase" when found substring is at index 0
- Enhanced number parse exception handling in transformations using or expecting integers and decimal numbers
9.1.3 - December 2020
- License check review
9.1.2 - November 2020
- (CR-27) Added support for forced double quotes for CSVWriter
- (CR-27) Added support for disable smart escaping (ex: comma inside double quotes are not escaped) for CSVWriter
- (CR-27) Added support to generate header column with field names for CSVWriter
- (CR-29) Added support in the MtWriter to create internal loop (sequences without 16R and 16S boundary) present for example in MT940
- (CR-28) Added support in the MtWriter to create block 1 and block 2 from whole value strings (not targeting individual fields)
- (CR-28) Added support in the MtReader to retrieve the whole block 1 or block 2 value with selectors "b1" and "b2"
- Minor fix in formatDecimal transformation when default locale has comma for decimal separator
9.1.1 - September 2020
- (PW-334) Added backward compatibility support for custom("MyCustomTransformer") in the mapping transformations
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)
9.0.1 - May 2020
- Internal implementation changes to the use the new AppHdr model in the SDK
9.0.0 - May 2020
- MyFormat module extracted to its own jar in the distribution, with its own version from now on
8.0.7 - May 2020
- Added a CsvReader constructor parsing a whole csv where the first row is used as field definition for the mappings
- Fixed index in CsvFieldsDef constructor to be zero-based instead of one-based
8.0.6 - February 2020
- (PW-237) Added ifMatches and IfNotMatches power functions to facilitate conditional mappings
8.0.3 - September 2019
- (PW-179) Added support for custom transformations in externalized mapping tables
- Added support for header rows skip configuration in CsvReader
8.0.2 - August 2019
- Added support in the CsvFileReader for the header offset parameter, rows are now skipped directly by the Iterator
8.0.1 - July 2019
- Fixed XML and MX writer to avoid creating empty elements if the source content is null
- Fixed bug in MX/XML writer when creating more than 100 target elements in a rule with variables
- Added support for foreach when converting from MT
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)
7.10.9 - May 2019
- Enhanced selectors for CSV with support for repetition, variables and filters.
- Added support for FIXED-LENGTH files as source and target message format.
- Added API to load the mappings from a database, providing a data source or a context name for JNDI lookup
- Added automatic sequence creation in conversions to MT, for example /E/E1/95Q will create E and E1 boundary fields
- Fixed block 3 fields order when target is MT and the writer has a pre-filled block 3
- Added CONCAT function in source selector to combine the result of a list of selectors in a single rule
- Added wrapLinesPrepend transformation to split content in to lines, with both fixed length and a prefix
- Added support for FOREACH in the mappings to process a list of source elements in a single rule
- Added support for parameterized predicates in the selector to map repetitions from source to target message
- Added the token LITERAL as alternative to indicate a source content is a plain literal instead of a selector
- Enhanced reporting in the mapping rules validation, detail message when the selectors are invalid
7.10.8 - March 2019
- Updated dependencies: apache-commons-lang 3.7 -> 3.8.1
- Updated dependencies: apache-text 1.3 -> 1.6
- Fixed obfuscation to keep directories in jar
- Added transformation: abbreviate, unwrap, wrapLines, remove and replace functions based on regex
- Added support for custom transformation functions
- When using the CsvFileReader, the iteration counter variable can be used in both target and source selectors
- Fixed handling of row header offset in CsvFileReader
- Fixed CSV selector for empty column values (consecutive split characters without values)
7.10.7 - January 2019
- Added a constructor with AbstractMT in the MtWriter to initialize the writer with a pre-filled message
- Added MessageReaderIterator to do n to 1 translations from multiple rows in CSV to single consolidated output
- Added constructors to create MxWriter from existing AbstractMX message and from MxType identifier
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)
7.9.7 - January 2018
- Changes in the distribution package:
- Command line tools in the bic directory changed from jar files to wrapper scripts
- Dependencies directory renamed to lib
- Removed the BUILD id timestamp from the jar files
- Added constructor from stream in XlsReader
7.9.4 - November 2017
- JRE requirement backported to Java 1.6
7.9 - May 2017
- SWIFT Standard release update 2017 (live 19 November 2017 for MT and 18 November for MX)
7.8.9 - May 2017
- Yearly revision of deprecation phase (see http://www.prowidesoftware.com/resources/deprecation-policy)
7.8.6 - November 2016
- JRE requirement increased to Java 1.7 (only for Integrator SDK and modules, Core still works on 1.5)
7.8.5 - October 2016
- Added out-of-the-box translation from MT300 into MxFxtr014
- Added transformation to perform content replacement based on map of tuples
- Added transformation to create fixed values
- Added transformations for BIC related operations (bic8, bic11, branch, country, etc...)
7.8.3 - Jul 2016
- Generic XML API moved to SDK