But this is precisely the scenario in mind when the original RecSourceT code 
was put in for core. Otherwise, it's not possible to support the use of an old 
configuration with the new code. The default values of B and C will take 
precedence over value set for A in records.config even if neither B nor C is 
mentioned in the actual configuration of ATS. Even you write "Fallback to A 
would make sense if B and C are not present" but without this change, you can't 
do that.
 

    On Monday, November 21, 2016 3:37 PM, James Peach <jpe...@apache.org> wrote:
 

 
> On Nov 21, 2016, at 1:22 PM, Alan Carroll 
> <solidwallofc...@yahoo-inc.com.INVALID> wrote:
> 
> The use case is providing backwards compatibility. Suppose a plugin uses 
> config value A. A newer version, in order to support additional features, 
> uses values B and C. It would be nice to be able to detect that neither B nor 
> C were explicitly set by the administrator in records.config and therefore 
> the plugin should fall back and use A. It is also required to *not* fall back 
> to A if the administrator explicitly set B or C to the default value. 
> Therefore checking the retrieved value against the default value is 
> insufficient. One might use a bogus default value then, but now there's a 
> problem if none of A,B, or C was set.

I don’t think this is sane :)

There’s no effective difference between a default value and a configured value. 
Mentioning a configuration value in `records.config` doesn’t mean “really make 
this so”, it just sets that value. So the newer plugin should just use B and C. 
Fallback to A would make sense if B and C are not present (eg. the value is a 
NULL string or some designared int), but this is specific to the plugin and 
unrelated to where the configuration value was set. Ad default is just as 
legitimate as an explicit configuration.

"It is also required to *not* fall back to A if the administrator explicitly 
set B or C to the default value”

This requirement leads to extremely confusing behavior and IMHO it is best to 
not go there.
   

Reply via email to