Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Megre dev version 1 to master #72

Merged
merged 78 commits into from
Jun 20, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
78 commits
Select commit Hold shift + click to select a range
61309aa
[TH2-4644] Bump 'conn-dirty-tcp-core' to '3.0.0' for books and pages …
cordwelt Jan 23, 2023
10f975e
update common version
Feb 3, 2023
05fabd2
Wait for logout to be sent
cordwelt Feb 14, 2023
6ac6d49
[TH2-4765] Increment sequence on logon/logout response (#20)
isengrims Feb 15, 2023
80cf80d
Merge branch 'dev-version-0' into merge
Feb 15, 2023
66a0638
Merge pull request #21 from th2-net/merge
isengrims Feb 15, 2023
2be206a
update readme
Feb 16, 2023
671063e
Merge pull request #23 from th2-net/trigger-version-0
isengrims Feb 16, 2023
6a55848
trigger pipeline (#27)
isengrims Feb 17, 2023
3fa04fb
Bump rebuild
Nikita-Smirnov-Exactpro Feb 17, 2023
5ca89f9
pass book name into query for lwdp (#28)
isengrims Feb 21, 2023
ed3bf20
bump versions (#30)
isengrims Feb 23, 2023
3e041c1
Merge remote-tracking branch 'origin/version-0' into dev-version-0
Nikita-Smirnov-Exactpro Feb 23, 2023
8b81fd9
correct heartbeat/test request handling (#29)
isengrims Feb 23, 2023
ddc06a1
disable reconnect when session is in non-active state (#32)
isengrims Mar 8, 2023
a6344f6
Fix sequence reset (#36)
isengrims Mar 9, 2023
124a75a
fix dev release (#37)
isengrims Mar 9, 2023
3e4ba8c
[TH2-4680] Add 'SendingTimeFormat' option
kakhaberakhvlediani Mar 13, 2023
857e276
Correct server sequence increment (#39)
isengrims Mar 21, 2023
1ac7d7c
Merge dev version 0 into dev version 1 (#34)
isengrims Mar 21, 2023
66a9c4b
[TS-1306] Handle silent sequence reset. (#40)
isengrims Mar 29, 2023
e21a816
Merge branch 'dev-version-0' into ts-1306-v2
Mar 29, 2023
a8b9d11
trigger build
Mar 29, 2023
2c4a1a4
take timestamp from id
Mar 29, 2023
4994f37
bump version
Mar 29, 2023
8cfd3cd
migrated to transport protocol
May 23, 2023
85c4d64
using EventId.toProto() extension function
May 23, 2023
36026d1
README.md updated
May 23, 2023
c0015c7
update readme
May 24, 2023
908d244
README.md updated
May 24, 2023
7f7163e
README.md updated
May 24, 2023
403875d
version updated
May 24, 2023
fa89c6f
Merge branch 'ts-1306-v2' into TH2-4912
May 24, 2023
8c85395
README.md updated
May 24, 2023
89e07f4
[TS-1306-v2] Handle server start after shutdown without sequence rese…
isengrims May 31, 2023
99ead77
conn-dirty-tcp-core (bugfix)
Jun 5, 2023
fb115ac
conn-dirty-tcp-core update (bugfix)
Jun 6, 2023
90bba78
conn-dirty-tcp-core update (bugfix)
Jun 7, 2023
c34c26e
conn-dirty-tcp-core update (bugfix)
Jun 7, 2023
a11ced1
common update
Jun 7, 2023
34bf5bd
Scheduling fix (#47)
isengrims Jun 9, 2023
6ef6a57
[TS-1290-v2] Recovery from cradle. (#45)
isengrims Jun 28, 2023
e9723ed
[TH2-4997] Updated core lib (#52)
Nikita-Smirnov-Exactpro Jul 20, 2023
2216770
fix recovery process
Jul 25, 2023
d8ca209
update README
Jul 25, 2023
a2e0ee9
Merge remote-tracking branch 'origin/fix_recovery' into TH2-4912
Nikita-Smirnov-Exactpro Aug 7, 2023
1f02cee
Test request handler (#56)
isengrims Aug 11, 2023
e54a635
[TH2-4912] Used release versions
Nikita-Smirnov-Exactpro Aug 14, 2023
8fce744
[TH2-4912] Build dev-release by tag
Nikita-Smirnov-Exactpro Aug 14, 2023
5a62f03
Fix recovery (#57)
isengrims Aug 15, 2023
a0612e6
[TH2-5035] Updated libraries
Nikita-Smirnov-Exactpro Aug 15, 2023
b8e32ab
[TH2-5035] used dev releases
Nikita-Smirnov-Exactpro Aug 15, 2023
226b57b
[TH2-5026] Improve logging. (#55)
isengrims Aug 29, 2023
1888667
[TH2-5050] Add connection timeout for message sending (#60)
OptimumCode Sep 6, 2023
5087f11
Correct test for session enabling
OptimumCode Sep 7, 2023
689bf6c
[TH2-5014] Ungracefull disconnect based on message property. (#62)
isengrims Sep 15, 2023
10254a9
[TH2-4912] migrate all requests to group requests (#58)
Nikita-Smirnov-Exactpro Aug 11, 2023
d0e3c20
Update grpc provider lib
OptimumCode Sep 15, 2023
a1ba8c6
Remove deprecations from build.gradle file
OptimumCode Sep 15, 2023
2d8467f
Disable automatic dev releases for branches with name dev-version-* (…
isengrims Sep 18, 2023
7657e82
Merge branch 'dev-version-1' into reset_heartbeats_1.4.1-dev
Sep 15, 2023
867290c
Reset heartbeats task on business message
Sep 15, 2023
9922837
Correct common util version
OptimumCode Sep 18, 2023
0cfd35f
Use timeout for opening connection after termination on manual logout…
OptimumCode Sep 18, 2023
0f8bc0d
Remove duplicated dependency
OptimumCode Sep 19, 2023
08f42dc
Merge pull request #63 from th2-net/reset_heartbeats_1.4.1-dev
OptimumCode Sep 19, 2023
f7d6a97
Merge remote-tracking branch 'origin/dev-version-1' into TH2-4912
OptimumCode Sep 19, 2023
6f8d220
[TH2-5076] Use UTC timezone for sending time tag and for in MessageLo…
Nikita-Smirnov-Exactpro Sep 21, 2023
cf736dd
Update dependencies
OptimumCode Sep 21, 2023
d19592c
Merge remote-tracking branch 'origin/dev-version-1' into TH2-4912
OptimumCode Oct 9, 2023
20689ec
Use dev release for dirty-tcp-core
OptimumCode Oct 9, 2023
27c30e2
Merge pull request #43 from th2-net/TH2-4912
OptimumCode Oct 13, 2023
5403fa1
[TH2-5050] Decrease timeout for sending on each attempt (#67)
OptimumCode Oct 24, 2023
f79f830
[TH2-5102] Add message property with operation time (#66)
OptimumCode Oct 30, 2023
65e2032
Increment version (#68)
OptimumCode Oct 30, 2023
166fd1e
[TH2-2212] subscriptions recovery on failure (#70)
lumber1000 Apr 11, 2024
a4768f5
build fix (#71)
lumber1000 Apr 16, 2024
5c447b9
[TH2-4991] Optional book per session configuration (#51)
isengrims Jun 20, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 15 additions & 0 deletions .github/workflows/build-dev-release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
name: Build and publish dev release Docker image to Github Container Registry ghcr.io

on: workflow_dispatch

jobs:
build:
uses: th2-net/.github/.github/workflows/compound-java.yml@main
with:
build-target: 'Docker'
devRelease: true
createTag: true
docker-username: ${{ github.actor }}
secrets:
docker-password: ${{ secrets.GITHUB_TOKEN }}
nvd-api-key: ${{ secrets.NVD_APIKEY }}
Original file line number Diff line number Diff line change
@@ -1,20 +1,15 @@
name: Build and publish Docker distributions to Github Container Registry ghcr.io
name: Build and publish release Docker image to Github Container Registry ghcr.io

on:
push:
branches:
- master
- version-*
paths:
- gradle.properties
# - package_info.json
on: workflow_dispatch

jobs:
build-job:
build:
uses: th2-net/.github/.github/workflows/compound-java.yml@main
with:
build-target: 'Docker'
devRelease: false
createTag: true
docker-username: ${{ github.actor }}
secrets:
docker-password: ${{ secrets.GITHUB_TOKEN }}

nvd-api-key: ${{ secrets.NVD_APIKEY }}
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
name: Dev build and publish Docker distributions to Github Container Registry ghcr.io
name: Build and publish Docker image to Github Container Registry ghcr.io

on:
push:
Expand All @@ -17,3 +17,4 @@ jobs:
docker-username: ${{ github.actor }}
secrets:
docker-password: ${{ secrets.GITHUB_TOKEN }}
nvd-api-key: ${{ secrets.NVD_APIKEY }}
28 changes: 14 additions & 14 deletions .github/workflows/ci-unwelcome-words.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,17 +7,17 @@ jobs:
test:
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v3
with:
ref: ${{ github.sha }}
- name: Checkout tool
uses: actions/checkout@v3
with:
repository: exactpro-th2/ci-github-action
ref: master
token: ${{ secrets.PAT_CI_ACTION }}
path: ci-github-action
- name: Run CI action
uses: ./ci-github-action
with:
ref: ${{ github.sha }}
- uses: actions/checkout@v4
with:
ref: ${{ github.sha }}
- name: Checkout tool
uses: actions/checkout@v4
with:
repository: exactpro-th2/ci-github-action
ref: master
token: ${{ secrets.PAT_CI_ACTION }}
path: ci-github-action
- name: Run CI action
uses: ./ci-github-action
with:
ref: ${{ github.sha }}
2 changes: 1 addition & 1 deletion Dockerfile
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
FROM gradle:7.1-jdk11 AS build
FROM gradle:7.6-jdk11 AS build
ARG release_version
COPY ./ .
RUN gradle --no-daemon clean build dockerPrepare -Prelease_version=${release_version}
Expand Down
142 changes: 135 additions & 7 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# th2-conn-dirty-fix (0.0.5)
# th2-conn-dirty-fix (1.7.0)

This microservice allows sending and receiving messages via FIX protocol

Expand All @@ -12,6 +12,7 @@ This microservice allows sending and receiving messages via FIX protocol

## Session settings

+ *sessionGroup* - session group for incoming/outgoing th2 messages (equal to session alias by default)
+ *sessionAlias* - session alias for incoming/outgoing th2 messages
+ *handler* - handler settings
+ *mangler* - mangler settings
Expand Down Expand Up @@ -40,11 +41,21 @@ This microservice allows sending and receiving messages via FIX protocol
+ *disconnectRequestDelay* - the interval for the shutdown request
+ *resetSeqNumFlag* - resetting sequence number in initial Logon message (when conn started)
+ *resetOnLogon* - resetting the sequence number in Logon in other cases (e.g. disconnect)
+ *stateFilePath* - path to file where sequences will be saved to use with next login attempts. It is useful when acceptor does not support sequence reset. (`nullable`)
+ *loadSequencesFromCradle* - defines if sequences will be loaded from cradle to use them in logon message.
+ *loadMissedMessagesFromCradle* - defines how retransmission will be handled. If true, then requested through `ResendRequest` messages (or messages requested on Logon with `NextExpectedSeqNum`) will be loaded from cradle.
+ *sessionStartTime* - UTC time when session starts. (`nullable`)
+ *sessionEndTime* - UTC time when session ends. required if startSessionTime is filled.
+ *sendingDateTimeFormat* - `SendingTime` field format for outgoing messages. (`nullable`, `default format` in this case is `"yyyyMMdd-HH:mm:ss.SSSSSSSSS"`)
+ *useNextExpectedSeqNum* - session management based on next expected sequence number. (`false` by default)
+ *saveAdminMessages* - defines if admin messages will be saved to internal outgoing buffer. (`false` by default)
+ *resetStateOnServerReset* - whether to reset the server sequence after receiving logout with text `Next Expected MSN too high, MSN to be sent is x but received y`.
+ *logoutOnIncorrectServerSequence* - whether to logout session when server send message with sequence number less than expected. If `false` then internal conn sequence will be reset to sequence number from server message.
+ *connectionTimeoutOnSend* - timeout in milliseconds for sending message from queue thread
(please read about [acknowledgment timeout](https://www.rabbitmq.com/consumers.html#acknowledgement-timeout) to understand the problem).
_Default, 30000 mls._ Each failed sending attempt decreases the timeout in half (but not less than _minConnectionTimeoutOnSend_).
The timeout is reset to the original value after a successful sending attempt.
If connection is not established within the specified timeout an error will be reported.
+ *minConnectionTimeoutOnSend* - minimum value for the sending message timeout in milliseconds. _Default value is 1000 mls._

### Security settings

Expand Down Expand Up @@ -220,11 +231,12 @@ metadata:
name: fix-client
spec:
image-name: ghcr.io/th2-net/th2-conn-dirty-fix
image-version: 0.0.1
image-version: 1.0.0
type: th2-conn
custom-config:
maxBatchSize: 1000
maxFlushTime: 1000
batchByGroup: true
publishSentEvents: true
publishConnectEvents: true
sessions:
Expand Down Expand Up @@ -273,6 +285,9 @@ spec:
- remove: { tag: 110, matches: (.*) }
update-checksum: false
pins:
- name: to_data_provider
connection-type: grpc-client
service-class: com.exactpro.th2.dataprovider.grpc.DataProviderService
- name: to_send
connection-type: mq
attributes:
Expand Down Expand Up @@ -320,22 +335,135 @@ spec:

# Changelog

## 1.7.0
* Added support for th2 transport protocol
* Added configuration option for non-default book per session.
* Migrated to th2 gradle plugin `0.0.8`
* Updated:
* common: `5.13.1-dev`
* conn-dirty-tcp-core: `3.6.0-dev`

## 1.6.1

* Channel subscriptions recovery on failure
* Updated bom: `4.6.1-dev`
* Updated common: `5.10.0-dev`
* Updated common-utils: `2.2.3-dev`
* Updated conn-dirty-tcp-core: `3.5.0-dev`

## 1.5.1

* Property `th2.operation_timestamp` is added to metadata to each message
* Use mutable map for metadata when sending a messages from the handler
* Fix error when new property with operation timestamp added to the immutable map

## 1.5.0

* `minConnectionTimeoutOnSend` parameter is added.
* Sending timeout now decreases in half on each failed attempt (but not less than `minConnectionTimeoutOnSend`).

## 1.4.2
* Ungraceful session disconnect support.
* Removed NPE when session is reset by schedule.
* Use UTC time zone for sending time tag

## 1.4.1
* Timeout on send from queue thread
* Parameter `connectionTimeoutOnSend` was added

## 1.4.0
* Updated bom: `4.5.0-dev`
* Updated common: `5.4.0-dev`
* Updated common-utils: `2.2.0-dev`
* Updated grpc-lw-data-provider: `2.1.0-dev`
* Updated kotlin: `1.8.22`
* Added support for th2 transport protocol

## 1.3.2
* Improve logging: log session group and session alias for each log message.

## 1.3.1
* fix multiple consequent SOH characters

## 1.3.0
* Added handling for incoming test request messages
* Fixed resetSeqNum flag handling on incoming logon messages.
* Added option to automatically reset server sequence when internal conn sequence doesn't match with sequence that server sent.

## 1.2.1
* fix multiple consequent SOH characters

## 1.2.0
* loading requested messages from cradle.

## 1.1.1
* fix scheduling: hasn't worked for some ranges.

## 1.1.0
* state reset option on server update.

## 1.0.2
* dev releases
* apply changes from version-0

## 1.0.1
* Add bookId to lw data provider query

## 1.0.0
* Bump `conn-dirty-tcp-core` to `3.0.0` for books and pages support

## 0.3.0
* Ability to recover messages from cradle.

## 0.2.0
* optional state reset on silent server reset.

## 0.1.1
* correct sequence numbers increments.
* update conn-dirty-tcp-core to `2.3.0`

## 0.1.0
* correct handling of sequence reset with `endSeqNo = 0`
* Skip messages mangling on error in `demo-fix-mangler` with error event instead of throwing exception.
* allow unconditional rule application

## 0.0.10
* disable reconnect when session is in not-active state.

## 0.0.9
* correct heartbeat and test request handling

## 0.0.8

* th2-common upgrade to `3.44.1`
* th2-bom upgrade to `4.2.0`

## 0.0.7

* wait for acceptor logout response on close
* load sequences from lwdp

## 0.0.6

* wait for logout to be sent

## 0.0.5

* copy messages before putting them into cache

## 0.0.4

* Session management based on NextExpectedSeqNum field.
* Recovery handling
* outgoing messages are now saved
* if message wasn't saved sequence reset message with gap fill mode flag is sent.
* outgoing messages are now saved
* if message wasn't saved sequence reset message with gap fill mode flag is sent.
* Session start and Session end configuration to handle sequence reset by exchange schedule.

## 0.0.3

* Added new password option into settings
* Provided ability to specify encrypt algorithm for reading key from file and encrypting password and new password fields
* Provided ability to specify encrypt algorithm for reading key from file and encrypting password and new password fields

## 0.0.2

* Supported the password encryption via `RSA` algorithm.
* Supported the password encryption via `RSA` algorithm.
Loading