Releases: th2-net/th2-codec-sailfish
5.2.0-dev
What's Changed
- [RM-84412] updated sailfish to 3.3.241 by @Nikita-Smirnov-Exactpro in #221
Full Changelog: 5.1.0-dev...5.2.0-dev
5.1.0-dev
What's Changed
- Migrated to th2 gradle plugin:
0.0.6
by @Nikita-Smirnov-Exactpro in #196
Full Changelog: 5.0.0-dev...5.1.0-dev
Dev-Release 5.0.0-dev
Feature:
- Migrate to th2-codec base.
Please find details about configuration changes in th2-codec README and current README
Updated:
- sailfish:
3.3.169
- common:
5.7.2-dev
- codec:
5.4.1-dev
Release 3.12.3
What's new in codec 3.12.3
The new codec release contains important features and bug fixes.
Features
Error reporting
The new version of the codec reports errors that happened during encoding or decoding as events.
The error event will be attached either to the codec's events (DecodeError
or EncodeError
) or to the event
which ID is specified in parent_event_id
parameter in the message.
This event will have information about the cause of the error and the link to the actual message that caused the error.
The codec groups events into batches and sends them when the timeout is exceeded or batch size has reached the limit.
You can correct the timeout and batch size by those parameters:
- outgoingEventBatchBuildTime - the timeout in seconds during which the codec will hold events and try to group them into a batch;
- maxOutgoingEventBatchSize - the max batch size to accumulate events before sending to the estore
Producing an error message placeholder during decoding
In case any error has occurred during message decoding no decoded result is produced in the previous codec version.
Because of that, components (such as rpt-data-provider) that expect to get an answer for each message they sent to the codec
have to wait for the response timeout to be exceeded. It delays the time when the user sees the decoding results.
The new version of the codec produces an error message placeholder with information about the reason why the message was not decoded.
As a result, the end-user will see the normally decoded message in the UI.
Also, the user will see messages that were not decoded correctly and the reason why it has happened.
Removing trailing zeros
When the field in the dictionary has the type java.math.BigDecimal
the decoded value might have insignificant zeroes at the end.
For example, 1.000. If you don't want to have trailing zeroes in the decoded message you can use stripTrailingZeros
parameter.
spec:
custom-config:
converterParameters:
stripTrailingZeros: true
Ignoring enum values during encoding
Sometimes you need to send a field that has a limited number of possible values with the value that is not in that list.
In the previous codec, you will have to update the dictionary to do that. The new version has a parameter that allows you to enable such functionality.
By default, it does not allow unknown values for those fields.
spec:
custom-config:
converterParameters:
allowUnknownEnumValues: true
Fixes
The filtering by message type
In the previous version, the filtering by message type on pins did not work. The new version contains fixes for that.
Now filters like this works without any changes in the pin definition.
spec:
pins:
# decoder
- name: out_codec_decode_first_session_alias
connection-type: mq
attributes: ['decoder_out', 'parsed', 'publish', 'first_session_alias']
filters:
- metadata:
- field-name: message_type
expected-value: MessageA
operation: NOT_EQUAL