Skip to content

Conversation

@bittcrafter
Copy link
Collaborator

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

…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
@bittcrafter bittcrafter merged commit ec2f789 into rmqtt:master Aug 23, 2025
10 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant