JAEKWANG97 opened a new pull request, #10935:
URL: https://github.com/apache/seatunnel/pull/10935
### Purpose of this pull request
Add MQTT Source connector support for streaming jobs.
This PR adds:
- MQTT source factory, options, config, and reader
- JSON/text message deserialization
- source plugin mapping
- English and Chinese connector documents
- unit tests for source config, factory, and reader behavior
This is part of #10753.
### Does this PR introduce _any_ user-facing change?
Yes.
Before this PR, the MQTT connector only supported the sink side in the
current `dev` branch, so users could publish SeaTunnel rows to an MQTT broker
but could not configure `MQTT` as a source connector.
After this PR, users can configure `MQTT` as a source connector in
streaming jobs to subscribe to an MQTT topic and read messages from an MQTT
broker.
Example:
```hocon
env {
parallelism = 1
job.mode = "STREAMING"
}
source {
MQTT {
url = "tcp://broker.example.com:1883"
topic = "iot/sensors/readings"
qos = 1
format = "json"
schema = {
fields {
id = bigint
temperature = double
}
}
plugin_output = "mqtt_source"
}
}
sink {
Console {
plugin_input = "mqtt_source"
}
}
```
This is a user-facing change in the unreleased `dev` branch. It extends
the existing MQTT connector by adding source-side support and documentation.
### How was this patch tested?
Added unit tests for:
- MQTT source config default values and validation
- MQTT source factory option rules
- MQTT source reader message deserialization and queue handling
Fork CI passed:
https://github.com/JAEKWANG97/seatunnel/actions/runs/26322480447
### Check list
* [ ] If any new Jar binary package adding in your PR, please add License
Notice according
[New License
Guide](https://github.com/apache/seatunnel/blob/dev/docs/en/developer/new-license.md)
* [x] If necessary, please update the documentation to describe the new
feature. https://github.com/apache/seatunnel/tree/dev/docs
* [ ] If necessary, please update `incompatible-changes.md` to describe the
incompatibility caused by this PR.
* [ ] If you are contributing the connector code, please check that the
following files are updated:
1. Update
[plugin-mapping.properties](https://github.com/apache/seatunnel/blob/dev/plugin-mapping.properties)
and add new connector information in it
2. Update the pom file of
[seatunnel-dist](https://github.com/apache/seatunnel/blob/dev/seatunnel-dist/pom.xml)
3. Add ci label in
[label-scope-conf](https://github.com/apache/seatunnel/blob/dev/.github/workflows/labeler/label-scope-conf.yml)
4. Add e2e testcase in
[seatunnel-e2e](https://github.com/apache/seatunnel/tree/dev/seatunnel-e2e/seatunnel-connector-v2-e2e/)
5. Update connector
[plugin_config](https://github.com/apache/seatunnel/blob/dev/config/plugin_config)
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]