Modules¶
Each module provides a cohesive set of functions. The naming convention for a module is fusion-{function}-{type}, for example fusion-core-data would refer to core functions which are related to data.
API Module¶
sdmx-core has a strong focus on Java Interfaces. The Interface provides the contract between the user and the implementation. Interfaces are fully documented so that behaviour is well understood without needing to dig into and reverse engineer the implementation. sdmx-core dedicates a number of modules solely for interfaces, not implementation code (no classes).
| Module | Description |
|---|---|
| fusion-api | Generic Interfaces which are not coupled to the SDMX domain. Examples include Cache, IEmailEngine |
| fusion-api-dao | Database specific Interfaces |
| fusion-api-sdmx | SDMX specific Interfaces. Amongst other things, this module includes the SDMX domain objects such as CodelistBean, ConceptBean and so on. |
| fusion-api-service | Interfaces which web services call. This decouples modules that provide the web service implementations from the need to include web service dependencies in the POM. |
Core Module¶
The core modules provide the core functionality, such as the ability to read, write, and validate data.
These modules consist of business logic and may contain local model object and interface definitions. The core modules are:
| Module | Description |
|---|---|
| fusion-core-dao | Core database related code. |
| fusion-core-data | Data related functionality |
| fusion-core-sdmx | Contains a mix of data and structure related functionality, it is required to resolve circular dependency problems that would otherwise exist between the core data and core structure modules |
| fusion-core-structure | Structural metadata functionality |
| fusion-core-xlsx | Excel support for structures, and related reports |
SDMX Modules¶
SDMX modules contain format-specific modules, such as CSV, XML, and JSON, and modules that introduce support for specific use cases such as integration of sdmx structures with a Kafka messaging service.
| Module | Description |
|---|---|
| fusion-sdmx-csv | Reading and writing SDMX CSV data and metadata |
| fusion-sdmx-edi | Reading and writing SDMX EDI data and metadata |
| fusion-sdmx-im | SDMX Information Model. |
| fusion-sdmx-json | Reading and writing SDMX JSON data and metadata |
| fusion-sdmx-kafka | Sending Kafka messages for SDMX events |
| fusion-sdmx-ml | Reading and writing SDMX XML data and metadata |
| fusion-sdmx-publicationtable | Custom extension to the SDMX Information Model. Publication Tables are used in data dissemination. |
| fusion-sdmx-reporttemplate | Custom extension to the SDMX Information Model. Reporting Templates are used in data collection, generating Excel files for reporting data. |
| fusion-sdmx-rest | SDMX REST API, querying and receiving calls |
| fusion-sdmx-search | Lucene search engine for SDMX structures |
| fusion-sdmx-security | Authentication and Authorisation for SDMX metadata |
| fusion-sdmx-vtl | Parsing VTL |
Utility Modules¶
Utility modules provide utility functions, which are typically public static methods, for specific tasks, for example email, date/time, input output, database related, json related.
| Module | Description |
|---|---|
| fusion-utils | Generic utility functions, such as date, io, logging, regex |
| fusion-utils-hibernate | Utilities for Hibernate (ORM mapping) |
| fusion-utils-http | GET and POST requests to http endpoints |
| fusion-utils-json | Reading and writing JSON and YAML |
| fusion-utils-mail | Sending Emails |
| fusion-utils-mongodb | Utilities for MongoDB NoSQL database |
| fusion-utils-sdmx | SDMX related utilities |
| fusion-utils-spring | Utilities for the spring Java framework |
| fusion-utils-xlsx | Reading and Writing Excel |