Skip to content

Upgrade to JavaPOS 1.16, Support For All Device Classes Specified in UPOS 1.15, Several Bug Fixes And Enhancements

Choose a tag to compare

@mjpcger mjpcger released this 20 Aug 18:55
· 80 commits to master since this release

This release is based on the upcoming JavaPOS release 1.16. A jar file Jpos116Dummy.jar will be provided within this package and should be present in the class path before the JavaPOS 1.15 jar file as long as no official jar file is available for JavaPOS 1.16.

This is the first version that supports all device classes specified in JavaPOS 1.15. In addition, the implementation for device classes Lights and POSPower support new properties and methods as specified in UnifiedPOS Retail Peripheral Architecture, Version 1.16.1 RCSD (can be downloaded on the OMG web site here). If a service implementation based on JavaPOS-SPF neither supports device class Lights nor POSPower, Jpos116Dummy.jar will not be needed.

The following enhancements have been made:

  • Support for device class PointCardRW. Even if not changed in JavaPOS 1.16, usage of Jpos116Dummy.jar allows to use JPOS_TRUE and JPOS_FALSE for property CapCardEntranceSensor. These constants should be added to the next JavaPOS version as workaround for a design error in the PointCardRW device class.
  • Support for secure socket client objects has been added, inclusive embedded logging support as previously supported for communications via TCP, UDP or serial (COM port).
  • Event handling has been changed to allow to follow strictly the FIFO principle by setting StrictFIFOEventHandling to true in jpos.xml. If false or not specified, DataEvent and input ErrorEvent events will not block event handling if DataEventEnabled is false.
  • Enhanced validation of output data in POSPrinter and LineDisplay devices.
  • All device classes where currency values will be passed in String objects use the semantically correct string values now. This means, a currency value of 1.23, stored in a long variable as 12300, will (and must) be passed as "1.23" or "1.2300", not as "12300" whenever passed in a String. To support applications or service objects which pass (and expect) the internal representation, "12300" in Strings, two wrapper classes have been provided for the FiscalPrinter device class: Class FiscalPrinterToIntegerWrapper can be used in cases where the application uses the decimal string representation, but the service object uses the internal representation. Class FiscalPrinterToDecimalWrapper can be used whenever the application uses the internal string string representation, but the service object uses the representation with decimal strings. Keep in mind that the FiscalPrinter device class is the only known device class where internal representation of currency values in strings has been used in past.