Background
Currently, in the AURON codebase, many feature flag configurations (e.g., auron.enable.hudi.scan, auron.enable.orc.scan, etc.) are referenced as hardcoded strings scattered throughout the implementation code.
For example:
`
case _: FileSourceScanExec if !enableScan =>
"Conversion disabled: spark.auron.enable.scan=false."
`
Problem
Using hardcoded strings for configuration keys introduces several issues:
Maintainability risk – If a configuration key name needs to be changed, developers must manually search and replace all occurrences, which is error-prone.
Typo vulnerability – Hardcoded strings are prone to spelling mistakes that cannot be caught at compile time (e.g., "auron.enable.hu di.scan" with an extra space).
Code inconsistency – Some parts of the codebase use the typed .key() approach, while others still rely on raw strings, leading to inconsistent coding patterns.
Refactoring difficulty – IDE refactoring tools cannot automatically rename hardcoded string literals, making large-scale changes tedious and risky.
Scope of Changes
This refactoring should cover all auron.enable.* configuration keys in the codebase, including but not limited to:
auron.enable.hudi.scan
auron.enable.orc.scan
auron.enable.parquet.scan
Any other auron.enable.* feature flags currently defined as typed constants
Background
Currently, in the AURON codebase, many feature flag configurations (e.g., auron.enable.hudi.scan, auron.enable.orc.scan, etc.) are referenced as hardcoded strings scattered throughout the implementation code.
For example:
`
case _: FileSourceScanExec if !enableScan =>
`
Problem
Using hardcoded strings for configuration keys introduces several issues:
Maintainability risk – If a configuration key name needs to be changed, developers must manually search and replace all occurrences, which is error-prone.
Typo vulnerability – Hardcoded strings are prone to spelling mistakes that cannot be caught at compile time (e.g., "auron.enable.hu di.scan" with an extra space).
Code inconsistency – Some parts of the codebase use the typed .key() approach, while others still rely on raw strings, leading to inconsistent coding patterns.
Refactoring difficulty – IDE refactoring tools cannot automatically rename hardcoded string literals, making large-scale changes tedious and risky.
Scope of Changes
This refactoring should cover all auron.enable.* configuration keys in the codebase, including but not limited to:
auron.enable.hudi.scan
auron.enable.orc.scan
auron.enable.parquet.scan
Any other auron.enable.* feature flags currently defined as typed constants