Releases: fmidev/fmi-avi-messageconverter-iwxxm
Package renaming for the bulletin handling classes
Now depends on fmi-avi-messageconverter:3.9.0
MessageType refactoring
No API changes
Dependency upgrade
Now depends on fmi-avi-messageconverter:3.7.1. No code changes.
Dependency upgrade, code style fixes
Now depends on fmi-avi-messageconverter 3.7.0. No changes in the functionality
IssueTime change
Adopted the TAF IWXXM serialisation code for the now Optional issueTime property
Bulletin serializer refactoring, GenericMeteorologicalBulletin parsing
- Added support for parsing WMO Collect / IWXXM bulletins into GenericMeteorologicalBulletin POJOs. Any IWXXM 2.1 contained messages are allowed, but the message metadata (issue & valid time, aerodrome) is only parsed from TAFs and SIGMETs for now.
- TimeInstant valued phenomenon times are now correctly handled for METAR/SPECI TRENDs, (issue #19)
- Moved all bulletin parsing and serialization classes to package fi.fmi.avi.converter.iwxxm.bulletin
- Various property container classes used for passing the parsed object values from the scanners to parsers no longer have a mandatory reference to the JAXB parent instance. Empty constructors must be used instead.
- Fixed the invalid bulletin identifier format (missing issue time)
Dependency upgrade
Now depends on fmi-avi-messageconverter:3.4.0. No code changes
Work-around for XML Schema resolving
Validating and parsing IWXXM documents requires XML Schema validation, and thus loading the used XML Schema files in memory. This library does this by using the schema file copies contained in the jar files where also JAXB the generated Java code and Class files are located.
Part of the Xerces XML parser used for resolving the used XML Schemas requires that the protocols of the system identifiers of XML Schema resources to resolve are explicitly allowed using the system property javax.xml.accessExternalSchema
when a SecurityManager is enabled. In the case of this library, this does not add to the security of the application, as the XML Schema contents are already loaded into memory by the class fi.fmi.avi.converter.iwxxm.IWXXMSchemaResourceResolver when this check is done. However, if the javax.xml.accessExternalSchema
property does not contain both file
and http
protocols when the code is run in an application with a SecurityManager enabled, the schema loading fails.
This version contains a work-around for this issue:
- If System.getSecurityManager() returns a non-null value when loading the class fi.fmi.avi.converter.iwxxm.IWXXMConverterBase, the XMLConstants.FEATURE_SECURE_PROCESSING is set to
true
for the SchemaFactory used for XML Schema validation on both parsing and serialising of the IWXXM messages, and the global system propertyjavax.xml.accessExternalSchema
is set to valuefile,http
. - Else the XMLConstants.FEATURE_SECURE_PROCESSING is set to
false
for the IWXXM document validation operations, which in turn suppresses the problematic protocol checking.
Note: the code System.setProperty("javax.xml.accessExternalSchema", "file,http")
may allow loading external assumed XML Schema resources using either the file
or http
protocols in the applications using this version of the library even if the SecurityManager is enabled.
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