[ISSUE #5233] Preserve common HTTP JSON payloads - #5258
Conversation
There was a problem hiding this comment.
Welcome to the Apache EventMesh community!!
This is your first PR in our project. We're very excited to have you onboard contributing. Your contributions are greatly appreciated!
Please make sure that the changes are covered by tests.
We will be here shortly.
Let us know if you need any help!
Want to get closer to the community?
| WeChat Assistant | WeChat Public Account | Slack |
|---|---|---|
![]() |
![]() |
Join Slack Chat |
Mailing Lists:
| Name | Description | Subscribe | Unsubscribe | Archive |
|---|---|---|---|---|
| Users | User support and questions mailing list | Subscribe | Unsubscribe | Mail Archives |
| Development | Development related discussions | Subscribe | Unsubscribe | Mail Archives |
| Commits | All commits to repositories | Subscribe | Unsubscribe | Mail Archives |
| Issues | Issues or PRs comments and reviews | Subscribe | Unsubscribe | Mail Archives |
|
It has been 60 days since the last activity on this pull request. I am reaching out here to gently remind you that the Apache EventMesh community values every pull request, and please feel free to get in touch with the reviewers at any time. They are available to assist you in advancing the progress of your pull request and offering the latest feedback. If you encounter any challenges during development, seeking support within the community is encouraged. We sincerely appreciate your contributions to Apache EventMesh. |


Fixes #5233
Motivation
The HTTP connector common protocol fails when it receives a JSON object body because the request payload is parsed as a Java
String. A JSON object such as{"name":"Andy"}cannot be deserialized that way, so the connector rejects a valid request body.Modifications
The common HTTP protocol now preserves the raw request body string before enqueuing the
WebhookRequest. A regression test starts the Vert.x route throughCommonProtocol, posts a JSON object, verifies the HTTP 200 response, and checks that the queued request payload is unchanged.Validation:
docker run --rm -v "$PWD":/workspace -w /workspace eclipse-temurin:8-jdk ./gradlew :eventmesh-connectors:eventmesh-connector-http:test --tests org.apache.eventmesh.connector.http.source.protocol.impl.CommonProtocolTest --no-daemon --stacktraceDocumentation