Skip to content
This repository has been archived by the owner on Dec 11, 2022. It is now read-only.

java-ebms-adapter/ebms-adapter-core

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

license Apache%202 blue ebms adapter core

Introduction

This project concerns a library that implements the ebMS2 communication standard.

It can easily be used through Spring DI (within a Java project) or through its SOAP interface. Another project in this group forms an example of its use within a Tomcat web application.

A database is needed for storing CPAs (Collaboration Protocol Agreement) and messages (because the adapter implements reliable messaging). Support for several databases is built-in.

Table 1. Supported databases
DB Minimal version

HSQLDB

2.2.9

MySQL

5.5

MariaDB

5.5

PostgreSQL

9

MSSQL

2008 R2

Oracle DB

11

To simplify CPA administration, adapter configuration and to enable easy testing and traffic inspection, the ebMS Admin Console is also available.

Features

Implemented

  • Core Functionality

    • Security Module

      • Signature

      • Encryption

    • Error Handling Module

    • SyncReply Module

  • Additional Features

    • Reliable Messaging Module

    • Message Status Service

    • Message Service Handler Ping Service

  • HTTP(S) Protocol

  • Separate Error and Acknowledgement Messages

Not implemented

  • Core Functionality

    • Packaging

  • Additional Features

    • Message Order Module

    • Multi-Hop Module

  • Multiple Delivery Channels per Action

Remarks

  • Duplicate messages will always be eliminated

  • Only standalone MSH level messages are supported

  • Only acts as ToPartyMSH, not as nextMSH

  • Only 1 (allPurpose) Channel per Action is supported

  • Manifest can only refer to payload data included as part of the message as payload document(s) contained in a Payload Container

  • Extendable to support other communciation protocols

Prerequisites

Download and copy the following libraries:

  • c3p0-0.9.1.2.jar

  • Depending on your database, use:

    • hsqldb-2.2.9.jar

    • mysql-connector-java-5.1.18.jar

    • mariadb-java-client-1.1.9.jar

    • postgresql-9.1-901.jdbc3.jar or postgresql-9.1-901.jdbc4.jar

    • jtds-1.2.4.jar or sqljdbc4-201004.jar

    • ojdbc6-11.2.0.1.0.jar (and orai18n-11.2.0.1.0.jar)

Usage

You can use the ebMS Adapter in your own application by adding its JAR as a dependency. Use nl/clockwork/ebms/main.xml as a starting point. You will have to generate your own CPAs and implement a specific application flow for your purposes.

At the defined endpoint the application will receive an object of type EbMSMessageContent that contains:

  • EbMSMessageContext (needed to reply on this message)

  • properties (contain the properties from the ebMS Header defined in application property ebms.message.header.properties

  • attachments (the actual ebMS Message Content)

The application can instantiate a new message or reply to a received message by calling the EbMSMessageService. It should wrap the content of the message in an object of type EbMSMessageContent as an attachment. If the message is a response to a previously received message you have to include the EbMSMessageContext of the previous message. The ebMS Adapter will then correlate these messages. If the message is a new message you should leave the EbMSMessageContext empty.

History

This project was originally started in 2011 on SourceForge.