suvodeep-pyne opened a new pull request, #16662:
URL: https://github.com/apache/pinot/pull/16662
## Summary
- Moved DefaultClusterConfigChangeHandler from pinot-server to pinot-common
to make it available for both controller and broker components
- Refactored AuditConfigManager to use PinotClusterConfigChangeListener
interface instead of Helix's ClusterConfigChangeListener
- Added comprehensive unit tests for
DefaultClusterConfigChangeHandler.getChangedProperties() method
## Motivation
The DefaultClusterConfigChangeHandler was only available in the server
module, but it's needed by both controller and broker components to handle
cluster configuration changes. This PR refactors the class to a common location
and updates the first controller class (AuditConfigManager) to use it.
## Changes
1. Moved `DefaultClusterConfigChangeHandler` from `pinot-server/.../helix/`
to `pinot-common/.../config/`
2. Updated `AuditConfigManager` to implement
`PinotClusterConfigChangeListener` instead of Helix's
`ClusterConfigChangeListener`
3. Integrated `DefaultClusterConfigChangeHandler` in `BaseControllerStarter`
to manage cluster config changes
4. Added `@VisibleForTesting` annotation to `getChangedProperties` method
5. Created comprehensive unit tests for `getChangedProperties` method
covering all edge cases
## Testing
- Added `DefaultClusterConfigChangeHandlerTest` with 10 test cases covering:
- Empty maps
- Added/deleted/updated properties
- Null handling
- Mixed changes
- Updated existing `AuditConfigManagerTest` to work with the new interface
## Impact
- No breaking changes for existing server usage
- Controller components can now use the same cluster config change handling
mechanism
- Foundation for future broker integration
--
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]