-
Notifications
You must be signed in to change notification settings - Fork 4.4k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Improved Configuration and YAML Management #2966
Conversation
/deploypr |
/deploypr |
/deploypr |
🚀 PR Test DeploymentYour PR has been deployed for testing! 🔗 Test URL: http://185.252.234.121:2966 This deployment will be automatically cleaned up when the PR is closed. |
/deploypr |
🚀 PR Test DeploymentYour PR has been deployed for testing! 🔗 Test URL: http://185.252.234.121:2966 This deployment will be automatically cleaned up when the PR is closed. |
/deploypr |
🚀 PR Test DeploymentYour PR has been deployed for testing! 🔗 Test URL: http://185.252.234.121:2966 This deployment will be automatically cleaned up when the PR is closed. |
Description of Changes
What was changed:
Configuration Updates:
Replaced all calls to
GeneralUtils.saveKeyToConfig
with the newGeneralUtils.saveKeyToSettings
method across multiple classes (e.g.,LicenseKeyChecker
,InitialSetup
,SettingsController
, etc.). This update ensures consistent management of configuration settings.File Path and Exception Handling:
Updated file path handling in
SPDFApplication
by creatingPath
objects from string paths and logging these paths for clarity. Also refined exception handling by catching more specific exceptions (e.g., usingIOException
instead of a genericException
).Analytics Flag and Rate Limiting:
Changed the analytics flag in the application properties from a
String
to aBoolean
, and updated related logic inAppConfig
andPostHogService
. The rate-limiting property retrieval inAppConfig
was also refined for clarity.YAML Configuration Management:
Replaced the previous manual, line-based YAML merging logic in
ConfigInitializer
with a newYamlHelper
class. This helper leverages the SnakeYAML engine to load, update, and save YAML configurations more robustly while preserving comments and formatting.Why the change was made:
Improved Maintainability:
Consolidating configuration update logic into a single utility method (
saveKeyToSettings
) reduces code duplication and simplifies future maintenance.Enhanced Robustness:
The new
YamlHelper
class ensures that configuration files are merged accurately and safely, minimizing risks of data loss or format corruption.Better Type Safety and Exception Handling:
Switching the analytics flag to a Boolean and refining exception handling improves code robustness and debugging efficiency.
Clarity and Consistency:
Standardizing file path handling and logging practices enhances code readability across the project.
Challenges encountered:
YAML Merging Complexity:
Integrating the new
YamlHelper
required careful handling to preserve existing settings, comments, and formatting during merges.Type Conversion and Backward Compatibility:
Updating the analytics flag from a string to a Boolean required extensive testing to ensure backward compatibility and proper functionality.
Exception Granularity:
Refactoring exception handling from a generic to a more specific approach involved a detailed review to cover all edge cases.
Closes #<issue_number>
Checklist
Documentation
UI Changes (if applicable)
Testing (if applicable)