lymerin opened a new pull request, #7497: URL: https://github.com/apache/shenyu/pull/7497
Fixes #7471 ### Problem - Editing an existing TCP proxy selector's `forwardPort` or `props` updates the database, but Admin only publishes upstream changes. - The TCP handler and factory also skip existing selector names without comparing listener configuration. ### Impact The gateway continues listening on the old port with the old properties after an Admin update. This affects existing TCP proxy selectors; upstream changes can still take effect independently. ### Changes - Publish `PROXY_SELECTOR/UPDATE` after the Admin transaction commits. - Cache listener configuration and skip updates only when the port and properties match. Treat null properties as empty configuration. - Recreate changed listeners while preserving upstream data. Start the replacement first for port changes; release the old listener first for same-port property changes and restore its configuration on startup failure. - Serialize lifecycle operations for the same selector while allowing different selectors to proceed independently. - Add focused coverage for transaction commit/rollback, subscriber-driven port replacement, property updates, and both update failure paths. Preserve existing concurrency and creation-retry regressions. ### Validation - All 37 targeted tests passed, with zero failures, errors, or skipped tests. - Checkstyle passed with zero violations. - Full `clean install` passed. ### Checklist Make sure that: - [x] You have read the [[contribution guidelines](https://shenyu.apache.org/community/contributor-guide)](https://shenyu.apache.org/community/contributor-guide). - [x] You submit test cases (unit or integration tests) that back your changes. - [x] Your local test passed `./mvnw clean install -Dmaven.javadoc.skip=true`. -- 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]
