Skip to content

Releases: fmidev/fmi-avi-messageconverter

Fixes to partial time handling

14 May 08:06
Compare
Choose a tag to compare
  • Fix TAF.areAllTimeReferencesComplete() to correctly check all existing (but not absent) time references contain complete times.
  • Fix completion of TAFReferenceImpl time references.
  • Adjust partial/complete time within setter instead of just checking consistency upon build to avoid client errors.

Conversion chain support, bulletin handling improvements, bug fixes

15 May 12:09
Compare
Choose a tag to compare
  • Chaining two or more message conversions using ConversionChainBuilder
  • New utility classes for decoding and encoding bulletin headings (BulletinHeading <-> String)
  • TAFReference builders can now be created from TAF objects
  • TafReference.getValidityTime is now Optional
  • New method BulletinHeading.getExpectedContainedMessageType
  • Fixes for building PartialOrCompleteTimeInstant instances
  • Surface data kind now supported as BulletinHeading data type designator in addition to warnings, forecasts, XML and upper-air data
  • Deprecated the use of ConversionHints message type hints, AviationCodeListUser.MessageType enum values should be used instead
  • New method AviMessageConverter.getConverter for returning a message specific converter for a specification, if available

IssueTime made optional, preparations for more message types

17 Apr 10:30
Compare
Choose a tag to compare
  • Moved the issueTime property from AerodromeWeatherMessage into AviationWeatherMessage interface, and made it optional (getIssueTime() now returns Optional). GenericAviationWeatherMessage no longer needs it's own issueTime
  • Added LOW_WIND, WX_WARNING, ARS, AIREP, SPACE_WEATHER_ADVISORY enum values to MessageTypes in AviationCodeListUser.
  • Upper-air data now supported in bulletin headings
  • FCT_SPACE_WEATHER value added to enum ForecastsDataTypeDesignatorT2 in BulletinHeading

Support for generic meteorological bulletins

29 Mar 13:13
Compare
Choose a tag to compare
  • Added new model classes for GenericMeteorologicalBulletin and GenericAviationWeatherMessage. These enable handling non-specific aviation messages and bulletins, with the raw message content (TAC or IWXXM) and some metadata, such as issue time, valid time and target aerodrome.
  • TAFBulletinHeading and SIGMETBulletinHeading have been replaced with a generic BulletinHeading interface and the corresponding FreeBuilder implementation classes.
  • fi.fmi.avi.model.GTSExchangeFileNameBuilder class is now renamed and refactored to fi.fmi.avi.util.GTSExchangeFileInfo.Builder. The new GTSExchangeFileInfo class now supports also parsing the BulletinHeading, timestamp etc. from the GTS exchange file name (or bulletinID).
  • Issue time information moved from the MeteorologicalBulletin into BulletinHeading.
  • It is now mandatory to give either a partial or complete time info for PartialOrCompleteTimeInstant instances.
  • FreeBuilder version upgraded from 1.14.8 to 2.3.0

SPECI & METAR FreeBuilder consistency

01 Mar 20:26
Compare
Choose a tag to compare

SPECI implementations now built the same way as METARs, both now have their own Impl-classes with a common FreeBuilder builder interface MeteorologicalTerminalAirReportBuilder. This makes it possible to create (build) new instances of MeteorologicalTerminalAirReport regardless of whether they are METARs or SPECIs. Under the hood, the SPECI POJOs no longer rely on using proxy classes and reflection, which should make them more efficient.

Reason for a major version change are the breaking API changes in building a new SPECI implementation POJO: previously it was done using METARImpl.Builder.buildAsSPECI(), now SPECIImpl.Builder.build().

Fix JSON (de)serialization on NumericMeasureImpl

18 Dec 06:40
Compare
Choose a tag to compare

Enforcing 0.0 values to be serialized and not omitted in NumericMeasureImpl, preventing deserialization of a null value.

Serialisability fixes in data models, bulletin heading code isolation

14 Dec 11:54
Compare
Choose a tag to compare

This release fixes a couple of issues in the data model classes. The changes are not big, but some code adoption is required:

  • GeoPosition.getCoordinates() now returns List<Double> instead of a Double array.
  • BulletinHeading has new methods for accessing the data type designator fields (T1 and T2) and the entire data designators abbreviated heading part (T1T2A1A2ii). This also affect the TAFBulletinHeading and SIGMETBulletinHeading classes and their JSON serialisations. GTSExchangeFileNameBuilder now leverages these methods to construct GTS exchange file naming pattern compliant strings.
  • OptionalInt has been replaced by Optional as the return type of BulletinHeading.getBulletinAugmentationNumber() to work better with FreeBuilder class serialisation.

SIGMETBulleting support, pass-through TAC SIGMET

29 Nov 14:21
Compare
Choose a tag to compare
  • Added a temporary SIGMET message type capable in including only the TAC string SIGMET content. This was required for producing text-based SIGMET bulletins. The SIGMET class will probably be replaced with the actual SIGMET message type class in the next release.
  • Added the SIGMETBulletin container message type.
  • Added JSON <-> POJO conversion support for TAFBulletin, SIGMETBulletin and SIGMET
  • Code style and bug fixes

TAFBulletin support and surface wind harmonisation

13 Nov 16:14
Compare
Choose a tag to compare
  • Added support for meteorological bulletins, concrete implementation available for TAFBulletins in this release.
  • 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.
  • Added a convenience method for calculating the Duration of the PartialOfCompleteTimePeriod (if the period is complete)
  • Added computable criticality to ConversionResult.Status

fmi-avi-messageconve

13 Nov 14:42
Compare
Choose a tag to compare
Refactored surface wind model classes:  TrendForecastSurfaceWind and …