Skip to content

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