Substitutable Components

The solution proposed relies on IPF Core components, however the interactions between the components are abstracted into a single interface allowing you to substitute alternative components.

For example, the Payment Warehouse is accessed through a single interface, the PaymentWarehouse interface. You could implement your own concrete class of this interface and use that.

The key interfaces are outlined below:

Payment Warehouse

The com.iconsolutions.ipf.core.warehouse.port.PaymentWarehouse found in the Maven artefact:

<dependency>
    <groupId>com.iconsolutions.ipf.core.warehouse</groupId>
    <artifactId>payment-warehouse-api-port</artifactId>
</dependency>

Payment Releaser

The com.iconsolutions.ipf.core.releaser.PaymentReleaser found in the Maven artefact:

<dependency>
    <groupId>com.iconsolutions.ipf.core.releaser</groupId>
    <artifactId>ipf-payment-releaser-api-port</artifactId>
</dependency>

Persistent Scheduler

The com.iconsolutions.ipf.core.platform.scheduler.persistent.api.SchedulingInterface found in the Maven artefact:

<dependency>
    <groupId>com.iconsolutions.ipf.core.platform/groupId>
    <artifactId>scheduler-api</artifactId>
</dependency>