qqeasonchen opened a new pull request, #5394:
URL: https://github.com/apache/eventmesh/pull/5394

   ### What changes?
   
   Completes the **16 incomplete connector implementations** under 
`eventmesh-connector-plugin/` on the new architecture. All follow the 
new-architecture `SourceConnector`/`SinkConnector` contract 
(`init`/`resume`/`poll`/`commit` + `init`/`put`/`commit`); external-system 
logic is ported from the master-branch (openconnect) implementations where 
available.
   
   | # | Plugin | Side | Implementation |
   |---|--------|------|----------------|
   | 1 | canal | source | canal TCP client (`getWithoutAck` → CloudEvent; batch 
ack on `commit`) |
   | 2 | canal | sink | all-or-nothing JDBC batch (rollback + throw on failure 
→ redelivery) |
   | 3 | chatgpt | source | HTTP prompt endpoint (JDK HttpServer) + OpenAI REST 
completion, no SDK |
   | 4 | dingtalk | source | outgoing-callback webhook receiver w/ HMAC-SHA256 
signature verification |
   | 5 | lark | source | event-subscription callback receiver w/ 
url_verification challenge |
   | 6 | slack | source | Events API receiver w/ v0 HMAC signature verification 
+ challenge |
   | 7 | wechat | source | Official Account callback (GET SHA-1 echostr 
verification + POST XML) |
   | 8 | wecom | source | WeCom callback receiver (URL challenge + JSON events) 
|
   | 9 | mcp | source | JSON-RPC 2.0 notification receiver |
   | 10 | mcp | sink | JSON-RPC 2.0 forward over HTTP (2xx = ack, throw 
otherwise) |
   | 11 | openfunction | source | function output push receiver |
   | 12 | openfunction | sink | function HTTP trigger invoke (Knative-serving 
style, Ce-* headers) |
   | 13 | pravega | source | `EventStreamReader` via reader-group (native 
offsets; reconnect on rebalance) |
   | 14 | pravega | sink | `EventStreamWriter` (auto scope/stream creation; 
write + join) |
   | 15 | prometheus | sink | Pushgateway text-exposition push (batched single 
request) |
   | 16 | spring | sink | injectable `EventForwarder` bridge (fail-fast until 
the Spring context wires it) |
   
   ### Design notes
   
   - **Push-style sources** (IM webhooks, chatgpt, openfunction, mcp): a small 
JDK `HttpServer` receives platform callbacks into a buffer; `poll()` drains it 
— matching the ConnectorRuntime §8 poll/commit loop without threads inside the 
connector.
   - **At-least-once semantics preserved everywhere**: sinks throw on failure 
(no ACK → EventMesh redelivers); canal source acks the canal batch only after 
EventMesh accepted the publish.
   - **No heavyweight SDKs**: OpenAI/IM integrations use plain 
`HttpURLConnection`; only canal (`canal.client/protocol 1.1.7`) and pravega 
(`pravega-client 0.11.0`) get real clients (both versions match master). JSON 
plugins add `jackson-databind 2.18.0` (already the repo-managed version).
   
   ### Verification
   
   - [x] `compileJava` green on all 12 touched modules (JDK 21)
   - [x] `checkstyleMain` 0 violations on all 12 modules (canonical ASF header, 
ImportOrder groups, VariableDeclarationUsageDistance)
   - [x] No existing tests touched (modified modules have only 
`src/test/resources` configs, no test classes)
   - [x] All blobs LF-only (no CRLF autocrlf drift)
   
   Follow-up (out of scope): unit tests per new implementation, `resume()` 
offset wiring for push-style sources.
   


-- 
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]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to