Client Library
Client module which invokes Custom Processing Settings should import cps-client-port and use CustomProcessingSettingsClientPort provided interface to invoke CPS service logic.
Following Maven dependency should be added:
<dependency>
<groupId>com.iconsolutions.ipf.cps</groupId>
<artifactId>cps-client-port</artifactId>
<version>${custom-processing-settings-api.version}</version>
</dependency>
Custom Processing Settings currently supports connector implementation of client port interfaces.
Following Maven dependency should be added:
<dependency>
<groupId>com.iconsolutions.ipf.cps</groupId>
<artifactId>cps-client-connector</artifactId>
<version>${custom-processing-settings-api.version}</version>
</dependency>
How to configure client library
As mentioned, client implementation supports HTTP connector transport. HTTP client configuration:
ipf.custom-processing-settings-api {
http.client {
host = "localhost"
port = "8080"
}
}
The default connector configuration can be overridden. The provided configuration:
ipf.custom-processing-settings-api {
connector {
get-custom-processing-settings = ${ipf.custom-processing-settings-api.default-connector}
}
default-connector {
resiliency-settings {
# Determines the maximum number of retries to be made. Note that this includes the first failed attempt.
max-attempts = 2
# Retry if HTTP error code is in the list
retryable-status-codes = [500, 503]
# Determines the minimum number of calls (within a sliding window period) that need to be made before the circuit breaker can calculate the error rate to determine the transport health.
minimum-number-of-calls = 10
}
}
}
CustomProcessingSettingsClientConnector
Example of how to use this connector:
GetCustomProcessingSettingsCriteria getCustomProcessingSettingsCriteria = GetCustomProcessingSettingsCriteria.builder()
.processingEntity("001")
.settingCategories(List.of("InitiationSettings", "ExecutionSettings"))
.settingName("paymentTypes")
.build();
CompletionStage<Response<CustomProcessingSettingsResponseDto>> response = customProcessingSettingsClientPort.getCustomProcessingSettings(processingContext, supportingContext, getCustomProcessingSettingsCriteria);