Skip to content

Releases: th2-net/th2-codec-sailfish

5.2.0-dev

05 Aug 06:35
d4a258b
Compare
Choose a tag to compare
5.2.0-dev Pre-release
Pre-release

What's Changed

Full Changelog: 5.1.0-dev...5.2.0-dev

5.1.0-dev

01 May 12:14
f7fb8a1
Compare
Choose a tag to compare
5.1.0-dev Pre-release
Pre-release

What's Changed

Full Changelog: 5.0.0-dev...5.1.0-dev

Dev-Release 5.0.0-dev

29 Dec 10:17
a4904cc
Compare
Choose a tag to compare
Dev-Release 5.0.0-dev Pre-release
Pre-release

Feature:

Updated:

  • sailfish: 3.3.169
  • common: 5.7.2-dev
  • codec: 5.4.1-dev

Release 3.12.3

13 Dec 06:22
62aa8ae
Compare
Choose a tag to compare

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