Concept of the Jaspar Framework Version 1

The concept for version 1 is deprecated. If you need it for old driver implementations, you find the old concept here.

Concept of the Jaspar Framework Version 2

The concept for version 2.0 is deprecated. If you need it for old driver implementations, you find the old concept here.

Concept of the Jaspar Framework Version 3

While a physical device can sometimes be split into several device classes, this is not so easy for the driver that must perform the communication with the device: Since there is only one physical device, all commands must go via one specific software module that all logical devices must share. Therefore, my concept is as follows: In addition, Jaspar contains classes that encapsulates serial IO and IO via TCP derived from a class named UniqueIOProcessor2. These classes (SerialIOProcessor2 and TcpClientIOProcessor2) allow easy read and write operations, inclusive automatically generated logging output. Furthermore, a helper class named SyncObject allows synchronization between several threads inclusive timeout control. The latter class will be used within the Jaspar framework, for example for asynchronous processing and can be used by driver implementations as well.
To simplify string parsing for Display and Printer devices, a List<Object> will be passed instead of a String parameter in print and display methods. Such a list contains specific objects, each describing one part of the original String object. For details, see documentation of classes JposPrinter and JposDisplay.

An overview over the general structure of JavaPOS services created with Jaspar can be found here.

Deprecated methods For backward compatibility, a lot of methods and classes have been marked as deprecated. Even if these methods and classes shall not be used in future, they remain present for unspecified time. Use of some of these classes and methods can be read in the old concept. Use of deprecated classes and methods that are not described within the old concept are only for internal use and must not be used by any device implementation.