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 the concepts for the publish-subscribe messaging integration using Apache Kafka. Implemented using spring-kafka.
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.