Releases: fmidev/fmi-avi-messageconverter
Releases · fmidev/fmi-avi-messageconverter
Bugfix release
Adapt to bug fixes in fmi-avi-messageconverter-iwxxm-2.0.1 and fmi-avi-messageconverter-tac-3.0.2.
SWX Advisory Model
- Added model classes for SWX Advisory messages.
- Some reordering and generalization of model classes.
New weather code
Added support for +DS (heavy duststorm) weather code.
SIGMET model
Added SIGMET model that can be serialized to IWXXM using fmi-avi-messageconverter-iwxxm-1.0.0.
Bulletin heading decoding/encoding improvements
Previously private functionality in BulletinHeadingDecoder and BulletinHeadingEncoder is now available via public methods.
Allow bulletin number 0 in bulletin heading
Allow bulletin number 0
in BulletinHeadingImpl
.
Various small enhancements
- Enable deserialization of non-standard TAC bulletin heading augmentation indicators (BBB) by mapping to standard indicators (
ConversionHints.KEY_BULLETIN_HEADING_AUGMENTATION_INDICATOR_EXTENSION
). - Alternative TAC bulletin serialization mode to preserve whitespaces within messages (
ConversionHints.KEY_WHITESPACE_SERIALIZATION_MODE
). - BulletinHeadingEncoder is now capable of producing headings for XML messages.
- New
Aerodrome.getFieldElevationUom()
property. - Connect DataTypeDesignatorT1.AVIATION_INFORMATION_IN_XML to XMLDataTypeDesignatorT2
Minor fixes on data designators
This release fixes null handling of data designator classes making use of Optional types. Additionally data designator classes are made Serializable.
Extendability of bulletin data designators
This release complements 3.8.0 by enabling the use of custom (non-WMO GTS manual) data designator values in bulletin headings. Change details:
- The bulletin related model classes have been moved into package
fi.fmi.avi.model.bulletin
andfi.fmi.avi.model.bulletin.immutable
. - BulletinHeading.DataDesignatorT1 and BulletinHeading.DataDesignatorT2 enums have been refactored into separate classes DataDesignatorT1 and DataDesignatorT2 with public static fields representing the know (standard) values of the data designators. Code using these enums needs to be refactored to use the new classes instead:
- fi.fmi.avi.model.BulletinHeading.DataDesignatorT1 to fi.fmi.avi.model.bulletin.DataDesignatorT1,
- fi.fmi.avi.model.BulletinHeading.DataDesignatorT2 to fi.fmi.avi.model.bulletin.DataDesignatorT2,
- fi.fmi.avi.model.BulletinHeading.ForecastDataTypeDesignatorT2 to fi.fmi.avi.model.bulletin.DataDesignatorT2.ForecastDataTypeDesignatorT2,
- fi.fmi.avi.model.BulletinHeading.WarningsDataTypeDesignatorT2 to fi.fmi.avi.model.bulletin.DataDesignatorT2.WarningsDataTypeDesignatorT2,
- fi.fmi.avi.model.BulletinHeading.SurfaceDataTypeDesignatorT2 to fi.fmi.avi.model.bulletin.DataDesignatorT2.SurfaceDataTypeDesignatorT2,
- fi.fmi.avi.model.BulletinHeading.UpperAirDataTypeDesignatorT2 to fi.fmi.avi.model.bulletin.DataDesignatorT2.UpperAirDataTypeDesignatorT2,
- fi.fmi.avi.model.BulletinHeading.XMLDataTypeDesignatorT2 to fi.fmi.avi.model.bulletin.DataDesignatorT2.XMLDataTypeDesignatorT2,
- Custom T1 data designator can be created using the constructor for DataDesignatorT1. If the designator character is not one of the standard ones, the designator will have the name "EXTENSION_[code]".
- Custom T2 data designator can be created using the constructor for DataDesignatorT2. These designators will always have names "EXTENSION_[code]".
- Both the DataDesignatorT1 and DataDesignatorT2 uses reflection to automatically infer the names and the codes of the known designator values from the static fields of these classes to drive the convenience methods fromCode and fromName.
MessageType extendability
- Refactoring to change message type specific code from hard-code into Spring configuration to make it possible to add new message types in extending projects. The fi.fmi.avi.model.AviationCodeListUser.MessageType enum is replaced by fi.fmi.avi.model.MessageType class. New message types can now be created in runtime code using MessageType constructor. In practice this means that '==' comparisons with MessageType no longer work reliably, equals should be used instead. The message type also can no longer be used as a casing condition in switch statements.
- GTSExchangeFileInfo now produces timestamps with second precision by default.