feat(plugin): enhance plugin configuration management with builder pattern#262
Merged
bittcrafter merged 1 commit intormqtt:masterfrom Aug 23, 2025
Merged
feat(plugin): enhance plugin configuration management with builder pattern#262bittcrafter merged 1 commit intormqtt:masterfrom
bittcrafter merged 1 commit intormqtt:masterfrom
Conversation
…ttern Configuration Improvements: - **Builder Pattern**: Converted `PluginManagerConfig` from enum to struct with builder methods: * `path()` - set plugins directory * `map()` - set configuration map (replaces existing) * `add()` - add individual plugin configuration * `Default` implementation for easy initialization - **Enhanced API**: Added new methods to `ServerContextBuilder`: * `plugins_config_map_add()` - add single plugin config * `plugins_config()` - set complete plugin config with merging - **File Detection**: Improved file path handling with proper: * Path normalization (trimming trailing slashes) * File existence checking before attempting to load * Automatic `.toml` extension addition - **Error Handling**: Better error messages for missing required configurations - **Backward Compatibility**: Maintained all existing API functionality Configuration Loading: - **Priority System**: File-based configs take precedence over map-based - **Flexible Sources**: Support both directory scanning and explicit config maps - **Environment Integration**: Maintained environment variable support Benefits: 1. **More Flexible**: Combine file and map configurations 2. **Easier Setup**: Builder pattern simplifies configuration 3. **Better Errors**: Clear messages for missing configs 4. **Robust File Handling**: Proper path validation and extension management
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Configuration Improvements:
Builder Pattern: Converted
PluginManagerConfigfrom enum to struct with builder methods:path()- set plugins directorymap()- set configuration map (replaces existing)add()- add individual plugin configurationDefaultimplementation for easy initializationEnhanced API: Added new methods to
ServerContextBuilder:plugins_config_map_add()- add single plugin configplugins_config()- set complete plugin config with mergingFile Detection: Improved file path handling with proper:
.tomlextension additionError Handling: Better error messages for missing required configurations
Backward Compatibility: Maintained all existing API functionality
Configuration Loading:
Benefits: