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 ProcessingContext header keys have been removed.

    • Deprecated MessageHeaders.fromProcessingContext() and MessageHeaders.toProcessingContext() methods have been removed

    • Deprecated message header keys uowId, requestId, processingEntity and associationId are removed in favor of keys defined in ContextPropagationSettings class. 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.enabled to ipf.connector.correlation.create-indexes

  • ipf.connector.correlation-timestamp-field-name to ipf.connector.correlation.timestamp-field-name

  • ipf.connector.correlation-expiry to ipf.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.

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}/release and POST /api/v1/payment-releaser/transaction/{transactionUnitOfWorkId}/release HTTP endpoints have changed to allow for ProcessingEntity to be provided.

  • Java interfaces implemented by the PaymentReleaserController updated (generated from the updated OpenAPI specification):

    • the prepareReleaseInstruction method takes Mono<PrepareReleaseInstructionRequest> as an argument

    • the releaseInstruction and releaseTransaction methods no longer take Mono<SupportingContext> as an argument

    • the releaseInstruction and releaseTransaction methods take Mono<ReleaseRequest> as a method argument

  • ExecutionInfo java object (returned by processInstruction and processTransaction methods in the PaymentEntriesProcessor interface) has been refactored:

    • introduction of PaymentHandlingInfo paymentHandlingInfo field

    • movement of the ProcessingActionType actionType and SupportingContext supportingData fields from ExecutionInfo object into PaymentHandlingInfo object.

    • addition of ProcessingEntity processingEntity field to PaymentHandlingInfo object.

  • PaymentDataSource java interface method signatures updated:

    • the getPaymentInitiation, getPaymentInstruction, getPaymentTransactions and getPaymentTransaction methods all required a (nullable) ProcessingEntity method argument

Processing Context

  • Deprecated message header keys uowId, requestId, processingEntity and associationId are removed in favor of keys defined in ContextPropagationSettings class. See Migration notes for additional details.

Other changes

Please check the individual pages for this release for any breaking changes in specific components for more details, and those changes that are not covered here.

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.

Developer App

The latest version of the Developer App is 2.4.29

Scaffolder

The latest version of the Scaffolder is 2025.3.0

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