Overview
Module Structure
The following diagram illustrates the Maven modules of group de.faktorzehn.fscd-adapter along with their dependencies.
The module fscd-adapter-webapp is not supposed to be used as dependency but serves as template for project-specific implementations.
Modules
jco-library
A library built on top of SAP JCo to facilitate executing Remote Function Calls (RFC), including
-
JcoConnectionthat lazily connects to aJCoDestinationthat is configurable viaJcoProperties(a SpringConfigurationProperties) instead of JCo.destinationfiles, -
JcoFunctionExecutorandJCoFunctionExecutorFactoryto executeJCoFunctionsin a consistent way, -
JcoTransactionManager, an implementation of Spring’sPlatformTransactionManagerto manage transactions across multiple RFCs, -
DomainValueSourceand itsPropertiesDomainValueSourceimplementation using resource bundles (.propertiesfiles) to resolve domain texts, -
JcoRecordReaderandJcoRecordWriterto read and writeJCoRecords, -
JcoTableIterableto iterateJCoTables, and -
JcoHelperwith various static utility methods.
jco-extapi
Contains general domain objects that are not specific to FS-CD, such as IdName, CurrencyAmount or Operation.
fscd-adapter-extapi
Contains the adapter’s domain model, e.g. AccountBalance and Posting, used by module fscd-adapter-business.
Additionally, the domain objects serve as the adapter’s external API (DTOs) utilized in the REST services of the extservices module.
For details see the OpenAPI documentation.
| You can also use IntelliJ’s diagram tool to visualize the domain model. |
fscd-adapter-business
Contains the core business logic of the adapter encapsulated in service interfaces, for instance FscdAccountBalanceService and FscdPostingService as well as implementations using SAP Java Connector (JCo), for example JcoAccountBalanceService and JcoPostingService.
fscd-adapter-extservices
Contains REST services.
Implemented with spring-web.
For details see the OpenAPI documentation.
fscd-adapter-extapi-client
Provides FscdAdapterClient, a Java client for the REST services of module extservices implemented using WebClient of spring-webflux.
fscd-adapter-kafka
Contains shared concepts for the publish-subscribe messaging integration using Apache Kafka.
Implemented using spring-kafka.
fscd-adapter-kafka-ics-core
Provides event implementation and mapping code for ics events based on the fscd-adapter-kafka concepts. Supported events are:
-
payment-transferred -
payment-failed -
receivable-transferred -
reserve-changed
fscd-adapter-kafka-ipm-core
Provides a baseline event implementation and mapping code for the editing-finished event based on the fscd-adapter-kafka concepts.
Additional mappings are needed based on the given IPM.
See the following two modules fscd-adapter-kafka-ipm-basis and fscd-adapter-kafka-ipm-base.
fscd-adapter-kafka-ipm-basis
Depends on fscd-adapter-kafka-ipm-core and provides additional mapping logic needed for ipm-basis.
fscd-adapter-kafka-ipm-base
Depends on fscd-adapter-kafka-ipm-core and provides additional mapping logic needed for ipm-base.
fscd-adapter-web
Contains components for the webapp. Implemented using linkki.
fscd-adapter-webapp
Bundles the modules into and configures the Spring Boot application. Its sources can serve as a template for project-specific implementations.
Bill of Material
The module de.faktorzehn.fscd-adapter:fscd-adapter-bom provides a Maven bill of material (BOM) that can be imported into a project’s dependency management.