Release Notes for IPF-2025.3.0
This page details everything required to get going on IPF Release 2025.3.0 made available on 21st November.
Change Spotlight
-
Springboot versions uplifted to 3.5.7
-
Processing Context
-
Deprecated
ProcessingContextheader keys have been removed. -
Deprecated
MessageHeaders.fromProcessingContext()andMessageHeaders.toProcessingContext()methods have been removed -
Deprecated message header keys
uowId,requestId,processingEntityandassociationIdare removed in favor of keys defined inContextPropagationSettingsclass. See Migration notes for additional details.
-
-
Representation of sequential and hierarchical flows are now improved in the Dashboard (PAY-11543)
-
Netowl is upgraded to version 4.9.11.0 in Identity Resolution. As a result, Netowl provides different matching score in some cases in comparison to the previous version.
Fix Spotlight
-
Now able to define a receive connector which tries to correlate a message with an existing flow, otherwise it performs identification and stores the new processing context in the correlation service. (PAY-12881)
-
Persistent scheduler jobs now execute and are re-hydrated after node shutdown (PAY-15061)
Breaking Changes
IPF JSON Serialization Inclusion
Customisation of IPF serialization inclusions via akka.serialization.jackson.serialization-helper.serialization-inclusion=ALWAYS (The default is NON_NULL) no longer works. To keep this behaviour, define a custom module that configures the underlying ObjectMapper instance, e.g.
akka.serialization.jackson.serialization-helper {
jackson-modules += "com.foo.bar.JsonIncludeOverrideModule"
}
public final class JsonIncludeOverrideModule extends SimpleModule {
@Override
public void setupModule(final SetupContext context) {
super.setupModule(context);
final ObjectMapper objectMapper = context.getOwner();
objectMapper.setSerializationInclusion(JsonInclude.Include.ALWAYS);
}
}
Correlation Index Creation
Renamed Connector correlation index creation properties:
-
ipf.correlation.index-creation.enabledtoipf.connector.correlation.create-indexes -
ipf.connector.correlation-timestamp-field-nametoipf.connector.correlation.timestamp-field-name -
ipf.connector.correlation-expirytoipf.connector.correlation.time-to-live -
Please refer to the connector documentation for more details.
Persistent Scheduler Failure Commands
-
Failure commands have different semantics in the latest release of persistent scheduler.
-
In previous versions of persistent scheduler, a background task was periodically polling the database for jobs whose executions were not triggered on time; when such a job was found, its current execution was marked as failed, and its failure command (if configured) was triggered.
-
Please refer to the migration steps
-
Payment Entries Processor (formerly Payment Releaser)
The following changes were made so the Payments Entries Processor can match warehoused payments against supplied ProcessingEntity:
-
OpenAPI specification updated, generating updated Java interfaces:
-
Request body for both
POST /api/v1/payment-releaser/instruction/{instructionUnitOfWorkID}/releaseandPOST /api/v1/payment-releaser/transaction/{transactionUnitOfWorkId}/releaseHTTP endpoints have changed to allow forProcessingEntityto be provided.
-
-
Java interfaces implemented by the
PaymentReleaserControllerupdated (generated from the updated OpenAPI specification):-
the
prepareReleaseInstructionmethod takesMono<PrepareReleaseInstructionRequest>as an argument -
the
releaseInstructionandreleaseTransactionmethods no longer takeMono<SupportingContext>as an argument -
the
releaseInstructionandreleaseTransactionmethods takeMono<ReleaseRequest>as a method argument
-
-
ExecutionInfojava object (returned byprocessInstructionandprocessTransactionmethods in thePaymentEntriesProcessorinterface) has been refactored:-
introduction of
PaymentHandlingInfo paymentHandlingInfofield -
movement of the
ProcessingActionType actionTypeandSupportingContext supportingDatafields fromExecutionInfoobject intoPaymentHandlingInfoobject. -
addition of
ProcessingEntity processingEntityfield toPaymentHandlingInfoobject.
-
-
PaymentDataSourcejava interface method signatures updated:-
the
getPaymentInitiation,getPaymentInstruction,getPaymentTransactionsandgetPaymentTransactionmethods all required a (nullable)ProcessingEntitymethod argument
-
Processing Context
-
Deprecated message header keys
uowId,requestId,processingEntityandassociationIdare removed in favor of keys defined inContextPropagationSettingsclass. See Migration notes for additional details.
Advance Warning of API Removal
Transaction Inquiry API
As of 2025.4.0 Transaction Inquiry API will no longer be supported and will be removed from IPF SDK.
The use of this API has been discouraged since the introduction of ODS API, and the latest stable version of ODS Inquiry API should be used instead.
Release Details
Binaries
The core binaries are available from IPF-Releases.
Lightbend Telemetry (formerly known as "Cinnamon") binaries are available from IPF Lightbend.
Akka/Alpakka binaries from 2.9.x onwards are no longer on Maven Central and are available from the Akka Library Repository which Icon mirror.
To enable the new mirror, add the following to your settings.xml in the <repositories> section:
<repository>
<id>akka-repository</id>
<name>Akka library repository</name>
<url>https://nexus.ipf.iconsolutions.com/repository/akka-repository</url>
</repository>
Some MPS dependencies are also mirrored by Icon and can be found by adding the following repository to the same section:
<repository>
<id>icon-thirdparty</id>
<name>IPF icon-thirdparty repository</name>
<url>https://nexus.ipf.iconsolutions.com/repository/icon-thirdparty</url>
</repository>
Add the following to your <servers> section for each new repository:
<server>
<id>Repository_name_here</id>
<username>xxxx</username>
<password>xxxx</password>
</server>
Where xxxx is the username and password repectively provided to you by Icon.
2025.3.0 Jar/Pom list
The Jars and Poms for 2025.1.0 and the associated versions are listed here: 2025-3-artifacts.xlsx
2025.3.0 Dependency List
The 3rd party dependencies, and their current verions are listed here