Releases: fmidev/fmi-avi-messageconverter-tac
Releases · fmidev/fmi-avi-messageconverter-tac
TAF NSW parsing bugfix
- NSW token no longer allowed in TAF base weather: conversion of such now returns status WITH_ERRORS and a ConversionIssue of Severity.ERROR and Type.SYNTAX
- Adopted code for issueTime becoming Optional
Support for generic meteorological bulletins
- Added conversions from GTS meteorological bulletin text into GenericMeteorologicalBulletin and vice versa.
- Capsulated the LexemeImpl, LexemeSequenceImpl and LexemeSequenceBuilderImpl back inside LexingFactoryImpl.
- Moved findNext methods from static methods of AbstractTACParser into instance methods of Lexeme.
- LexemeSequenceImpl no longer uses an internal LinkedList, but Lexeme next and prev navigation.
- Many setter methods removed from the Lexeme interface to protect from unintentional use.
- New method AviMessageLexer.recognizeMessageType(String) added.
- Improved LexemeSequence handling (decide where the separator token will be in splitting, white-space token trimming).
- The token lexers are no longer selected by the TAC code String of the first token, but using a more flexible RecognizingAviMessageTokenLexer.SuitabilityTester. This allows detecting message types where the first token is not always the same.
- Prevent incomplete wind lexeme to be identified as fractional horizontal visibility.
- Added checks for detecting multiple surface wind and horizontal visibility tokens within the same group.
- Adopted to the BulletinHeading changes in fmi-avi-messageconverter version 3.5.0
SPECI & METAR parsing consistency
METAR and SPECI TAC parsers now leverage the new common MeteorologicalTerminalAirReportBuilder
builder interface introduced in the fmi-avi-messageconverter:3.4.0 release.
Dependency upgrade
Upgrade fmi-avi-messageconverter to version 3.3.1.
Compatibility with fmi-avi-messageconverter:3.3.0
Fixes required to handle the changes in fmi-avi-messageconverter:3.3.0
SIGMETBulletin serialization
- Added capability to convert SIGMETBulletins to WMO GTS Bulletin text format (String).
- Refactored the existing TAFBulletin serialisation code to extract common bits.
- Moved message type specific code into separate packages for clarity.
Surface wind harmonisation applied and bugfixes
- Refactored surface wind model classes: TrendForecastSurfaceWind and TAFSurfaceWind interfaces have been removed and replaced with a common SurfaceWind interface. METAR observations use ObservedSurfaceWind interface which now extends SurfaceWind.
- Wind speed units now properly converted "MPS" <-> "m/s"
- Fixed an issue in METAR TAC parsing where the variable wind direction in trend section caused an IllegalStateException to be thrown. Now the entire wind element is skipped in this case and a conversion ERROR reported as it should have.
TAF bulletin serialisation
- Added support for converting TAF bulletin Java object into Strings following the GTS Meteorological Bulletin syntax (WMO-No.386, ed. 2015)
- Adopted to changes in the fmi-avi-messageconverter release 3.0.0:
- Missing observed cloud layer info better handled for METARs
- Fixed a bug of not populating prevailing visibility when directional visibility was given as 'NDV' in TAC
Miscellaneous fixes
Reflecting changes in fmi-avi-messageconverter 2.1.0 release.
Immutable model classes
This major version depends on the fmi-avi-messageconverter:2.0.0 and has been refactored to use its immutable model classes.
Note: Weather code values moved to class fi.fmi.model.immutable.WeatherImpl in project fmi-avi-messageconverter
Bugfixes: relational operators for mean wind speed and gust speed were not supported