[ 
https://issues.apache.org/jira/browse/CONFIGURATION-532?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13601661#comment-13601661
 ] 

Mike Lucas commented on CONFIGURATION-532:
------------------------------------------

Hi Oliver,
I would be fine with using a != comparison in general, and I agree that it fits 
the javadoc description better. And it's probably the most intuitive -- 
basically you can expect that the file on the filesystem _right now_ is the 
configuration in effect, subject only to the {{refreshDelay}}.

Of course it's also the simplest change and simple is always good!

My only concern would be if there are any users out there who expect it to 
continue to behave as it does now. Perhaps updated javadoc & release notes are 
enough to alleviate that?
                
> FileChangedReloadingStrategy should support reloading of rolled-back (older 
> timestamp) files
> --------------------------------------------------------------------------------------------
>
>                 Key: CONFIGURATION-532
>                 URL: https://issues.apache.org/jira/browse/CONFIGURATION-532
>             Project: Commons Configuration
>          Issue Type: Improvement
>          Components: File reloading
>    Affects Versions: 1.9
>            Reporter: Mike Lucas
>   Original Estimate: 48h
>  Remaining Estimate: 48h
>
> Currently the {{FileChangedReloadingStrategy}} only reloads when the 
> timestamp of the file on the filesystem is _newer_ than the timestamp it had 
> when it was last loaded.
> This may not be the expected behaviour when, for example, an administrator 
> makes a backup copy of the original configuration file before making changes. 
> If the administrator wants to roll back to the original configuration, he may 
> expect that copying/renaming the backup back to the original name, would 
> cause the original configuration to take effect again.
> Another example where the current behaviour is problematic is when using a 
> Deploy System (like we do at my company). We expect to be able to roll-back 
> to a previous configuration by simply redeploying the Config artifact, but 
> because the timestamps reflect when the Config artifact was _built_ (not when 
> it was deployed), this roll-back will not work.
> The current behaviour could be kept as the default, simply adding 
> {{setReloadOnRollback()}} or similarly named method to change the behaviour 
> to reload when the timestamp is either older or newer (i.e. not equal to) the 
> {{lastModified}} variable. Another option would to be to create subclass 
> {{FileChangedOrRolledBackReloadingStrategy}} that overrides the 
> {{hasChanged()}} method.
> In either option the actual change is to use {{!=}} instead of {{>}} in the 
> {{hasChanged}} method's comparison:
> {code}
> return file.lastModified() > lastModified;
> {code}

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to