Details
-
Fix
-
Status: Released (View Workflow)
-
Minor
-
Resolution: Fixed
-
2.8.0
-
None
Description
Current Situation
- YADE allows defining Java property files (SystemPropertyFiles) at two levels:
- General section (applies to all transfers)
- General / SystemPropertyFiles / ...
- Profile section (applies per transfer)
- Profiles / Profile / SystemPropertyFiles / ...
- General section (applies to all transfers)
- Expected (MUST) Behaviour
- Java property files are processed in a defined sequence.
- Property values are merged in order of processing.
- If a key is already set, it is overwritten by later property files.
- Processing order:
- Global (General) SystemPropertyFiles
- Profile-specific SystemPropertyFiles (per transfer)
- The processing order defines precedence:
- Global properties are applied first
- Profile properties are applied afterwards
- Later property files override earlier ones on a key-by-key basis
- YADE 2.x Behaviour (Issue)
- YADE 2.x supports reading SystemPropertyFiles from both:
- General section
- Profile section
- However, Profile-level SystemPropertyFiles do not follow the expected merging behavior.
- Instead of merging with General SystemPropertyFiles based on processing order, the Profile configuration completely replaces the General configuration.
- This means:
- General SystemPropertyFiles are discarded when Profile SystemPropertyFiles are defined
- YADE 2.x supports reading SystemPropertyFiles from both:
Desired Behaviour
- SystemPropertyFiles from General and Profile sections should be merged in processing order using key-based overwrite semantics, without replacing the General configuration.
Patch
- Use the cumulative patch provided with
YADE-659.
Test Instructions
- Enable DEBUG logging to obtain detailed information about configuration processing.
- Test SystemPropertyFiles using a simple INI-style configuration, for example: xxx=yyy
- Configure this in both locations:
- General section
- Profile section
- Use identical and different keys to verify the expected merging and overriding behavior.