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

support for multiple business objects inside one jms message #4539

Open
wants to merge 43 commits into
base: main
Choose a base branch
from

Conversation

artur-jablonski
Copy link

Hi.

I came across a use case where application sends multiple "business-objects" in one JMS message and also gets batched response back. That is, a response can contain multiple business objects, but there is no guarantee that all business objects from request will be inside one response. Actually it's rather unlikely to happen.

Each business object has unique id that is also send back in response.

I tried to use Gatling for performance testing of this application, but it looks like the assumption is that one JMS message can only contain one id.

I hacked around and modified the code and made it work, but this is breaking change as the JmsMessageMatcher interface changed as it's returning Seq[String] now instead of single String.

Can someone have a look and perhaps suggest how to add support for such feature in a backward compatible manner?

I was thinking perhaps to create new "batched" interface of matcher and provide some implicit conversion from the current Interface to the new "batched" interface. Any better ideas?

slandelle and others added 30 commits February 22, 2024 22:08
Motivation:

Sad, but latest Apache 2 Akka suffers from (IMO non-sensical) vulnerability that we don't want to get reported in our own libraries.
Motivation:

We've been issuing a WARN log for many versions.
Time to pull the trigger.
Motivation:

Users can be interested in messages received in the background instead of having to perform a check in a blocking way.

Modifications:

* add `HttpProtocol#wsUnmatchedInboundMessageBufferSize` to define the size of the buffer to store unmatched messages, defaulting to 0.
* add `Ws#processUnmatchedMessages` to pass a function and process buffered messages. Messages are sorted by timestamp asc. This operation resets the buffer so the same messages are not provided multiple times.
* clear the buffer when sending a message (we expect interest to change then)
Motivation:

Users can be interested in messages received in the background instead of having to perform a check in a blocking way.

Modifications:

* add `HttpProtocol#sseUnmatchedInboundMessageBufferSize` to define the size of the buffer to store unmatched messages, defaulting to 0.
* add `Sse#processUnmatchedMessages` to pass a function and process buffered messages. Messages are sorted by timestamp asc. This operation resets the buffer so the same messages are not provided multiple times.
* clear the buffer when sending a message (we expect interest to change then)
Original link refers to gatling.io/docs/current/. Actual docs location is docs.gatling.io
Motivation:
Improve doc by using meaningful values

Modifications:
Replace dedicated host example values

Result:
Better doc for a better world
Motivation:

Should be handled in the build plugins, not Gatling itself, in particular now that we've dropped the original bundle.
Motivation:

The run description is passed as program arg in a forked process, so it can cause trouble if not encoded. We're going with Base64 (already committed in the maven plugin).
The `Engine` class is still using plain as it doesn't fork a process.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Development

Successfully merging this pull request may close these issues.

None yet