Work in progress!

 

Although, there is already a large set of wrappers available for Odysseus, there is often the need to create a new specific adapter for a specific source. To ease the creation of new wrapper, we created an adapter framework.

There are two kinds of generic wrapper:

To avoid redundant coding, the wrappers are built from basic elements (handler), each representing a specific function in the wrapping process.

In a source, the information is send from the transport handler, via the protocol handler to the datahandler.

The wrapper can also be used at sink side, i.e. to send data from Odysseus to other systems. In this case, the information is send from the datahandler via the protocol handler to the transport handler. Each handler can provide both ways, i.e. retrieving and sending of data but is not required to. So some handler may only be used in sources, while other only in sinks.

This document explains how to write new wrappers using this generic wrappers.

Creating a new Transport Handler

To create a new TransportHandler, the Interface ITransportHandler must be implemented or the class AbstractTransportHandler be extended.

Depending on the way, the handler works, different methods need to be implemented.

Independent of Push/Pull

 

 

public ITransportHandler createInstance(IProtocolHandler<?> protocolHandler, Map<String, String> options);

This method must return a new initialized transport handler.

 

 

Source-Generic PUll

 

 

Source-Generic Push

Sink-Generic Pull

Sink-Generic Push

 

 

 

 

OSGi, Registering, Declarative service

Creating a new Protocol Handler