V1 Notification Sender Extension Points

Warning

This section covers the V1 extension points, which require additional configuration of payment-status-notification.schema-version = 1.
The V2 extension points documentation can be found here.

NOTE

Any reference to ProducedReport in this documentation page refers to the V1 class com.iconsolutions.ipf.product.notification.api.model.ProducedReport

Additional MDS Object Handler

Currently only PAIN.001 messages are cached by the service, this gives an extension point to cache others, and is by default a no-op.

The V1 AdditionalMdsObjectHandler is contained in the com.iconsolutions.ipf.product.notification.api.handler package.

The default implementation is provided here:

public interface AdditionalMdsObjectHandler {
    default CompletionStage<Void> handle(MdsObjectWrapper<?> object, ProcessingContext context) {
        return CompletableFuture.completedStage(null);
    }
}

Which can be overridden by any client that uses the Notification Service application.

Post Event Processor

It was added as a standalone hook to run post processing for all events, regardless of whether they are configured to run.

The V1 PostEventProcessor is contained in the com.iconsolutions.ipf.product.notification.api.processor package.

The default implementation is provided here:

public interface PostEventProcessor {
    default CompletionStage<Void> handle(ProcessingContext context, ProcessFlowEvent processFlowEvent) {
        return CompletableFuture.completedStage(null);
    }
}

Which can be overridden by any client that uses the Notification Service application.

Message Log Enricher

It was added to provide a customised MessageLogEntryEnricher, so the function can be applied by all SendConnector(s) from the Notification Service when sending notifications.

The V1 NotificationMessageLogExtractor is contained in the com.iconsolutions.ipf.product.notification.api.messagelog package.

The default implementation is provided here:

public interface NotificationMessageLogExtractor {

    default MessageLogEntryEnricher<ProducedReport> enricher() {
        return (connectorMessage, messageLogEntry) -> {
            //noop
        };
    }
}

Which can be overridden by any client that uses the Notification Service application.

Send TransportMessage Converter

It was added to provide a customised SendTransportMessageConverter, so the function can be applied by all SendConnector(s) from the Notification Service when sending notifications.

The V1 NotificationTransportMessageConvertor is contained in the com.iconsolutions.ipf.product.notification.api.mapping package.

The default implementation is provided here:

public interface NotificationTransportMessageConvertor {
    default SendTransportMessageConverter<ProducedReport> convert() {
        return report -> new TransportMessage(SerializationHelper.objectToString(report.getReport()));
    }
}

Which can be overridden by any client that uses the Notification Service application.