Git Product home page Git Product logo

prowide-iso20022's Introduction

alt tag

Prowide ISO 20022 is an open source Java framework for managing ISO 20022 messages.

This project is a complement for the Prowide Core library: https://github.com/prowide/prowide-core

What's included?

  • Java model for ISO 20022 MX (for example: pacs.008.001.02, for all ISO 20022 message categories and types)
  • Parser from ISO 20022 XML into Java
  • Builder API from Java to ISO 20022 XML
  • Conversion to/from JSON

For SWIFT messages validation, restricted ISO versions (such as SEPA, CBPR+, TARGET), GUI application and more, please check our complementary commercial offerings at https://www.prowidesoftware.com/

Documentation

Distribution

This repository exposes the source code for the maintenance and LTS yearly releases. Latest public binary DOWNLOAD is available at https://www.prowidesoftware.com/download

SRU updates are made available on October (one month before SWIFT production date) for the general public, and 6 months in advance for subscribed customers.

License

Apache License 2.0

SWIFT is a trademark of S.W.I.F.T. SCRL. (www.swift.com)

Dependencies

This project depends on https://github.com/prowide/prowide-core The dependency is explicit in the pom so Maven/Gradle should resolve it.

The project also needs the javax.xml.bind in runtime. Until Java 8 this package is part of the JDK. If you use Java above 8 you might need to activate the required modules in the JDK; or add these dependencies (or an equivalent implementation) to your application:

implementation 'javax.xml.bind:jaxb-api:2.3.1'
implementation 'com.sun.xml.bind:jaxb-impl:2.3.3'

Build

The projects uses https://github.com/prowide/prowide-core as included build, so in order to build the library you need to clone the Prowide Core repository as well.

For better build performance local configurations can be setup in a gradle.properties file such as:

org.gradle.jvmargs=-Xms512m -Xmx7g
org.gradle.parallel=true

Run ./gradlew idea or ./gradlew eclipse to generate local settings and reload the project in your IDE

To compile and test all modules: ./gradlew build

Modules

The project is huge because it contains the cmoplete set of jaxb generated the project is divided into multiple subprojects though as follows:

  • iso20022-core: main common code and base classes for all modules, including API for headers
  • model-common-types: common business types dictionary for many message categories
  • model-[category]-mx: the Document classes for each specific category (entry point for each message type)
  • model-[category]-types: business types dictionary for each specific category

The dependencies being:

iso20022-core
  \-- model-common-types
model-[category]-types
  \-- model-common-types
model-[category]-mx
  +-- iso20022-core
  +-- model-[category]-types
  \-- model-common-types

Artifacts

The root project creates an uber jar named pw-iso20022-SRUYYYY-version.jar with the library API for all ISO20022 message categories: pacs, camt, xsys, sese, etc... So if you need to process many different message types or you want to keep your dependencies simple, you can just take the single jar output. This is also the jar published in Maven Central.

If instead of depending on the uber jar you want to have a subset of the library for some message types you can just take the base and common jars and the specific category modules. For instance to use ony the pacs and camt messages, you need:

  • iso20022-core -> pw-iso20022-core-SRUYYYY-version.jar
  • model-common-types -> pw-iso20022-common-types-SRUYYYY-version.jar
  • model-pacs-mx -> pw-iso20022-pacs-mx-SRUYYYY-version.jar
  • model-pacs-types -> pw-iso20022-pacs-types-SRUYYYY-version.jar
  • model-camt-mx -> pw-iso20022-camt-mx-SRUYYYY-version.jar
  • model-camt-types -> pw-iso20022-camt-types-SRUYYYY-version.jar

prowide-iso20022's People

Contributors

zubri avatar fernandodesarriera avatar fernando-prowide avatar ptorres-prowide avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.