Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/324.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将配置文件迁移到新版本的策略应该是什么?_Java_Apache Commons Config - Fatal编程技术网

Java 将配置文件迁移到新版本的策略应该是什么?

Java 将配置文件迁移到新版本的策略应该是什么?,java,apache-commons-config,Java,Apache Commons Config,我知道这是一个完全依赖于实现的问题,但我想知道迁移配置文件时使用的一般策略 我们有一个从属性/XML文件读取一些配置的产品。在属性文件中配置了一些默认值。客户可以根据自己的需要更改属性。现在假设我们在文件中更改/添加一些属性,客户迁移到新版本。我们应该如何将特定于客户的配置与新添加/更新的属性合并?一种方法是编写一个实用程序来合并文件,但不希望对每个版本都这样做 提前谢谢我想说这都是文档。我不会为迁移工具而烦恼。你肯定有你的软件文档。在该文档中包括配置更改。客户有责任阅读更改日志并应用这些配置更

我知道这是一个完全依赖于实现的问题,但我想知道迁移配置文件时使用的一般策略

我们有一个从属性/XML文件读取一些配置的产品。在属性文件中配置了一些默认值。客户可以根据自己的需要更改属性。现在假设我们在文件中更改/添加一些属性,客户迁移到新版本。我们应该如何将特定于客户的配置与新添加/更新的属性合并?一种方法是编写一个实用程序来合并文件,但不希望对每个版本都这样做


提前谢谢

我想说这都是文档。我不会为迁移工具而烦恼。你肯定有你的软件文档。在该文档中包括配置更改。客户有责任阅读更改日志并应用这些配置更改。如果缺少新配置是必要的,并且没有合理的默认值,则错误消息应清楚地向客户指出缺少的配置。如果缺少的配置具有默认值,则日志中的警告可能会有所帮助。

我们有一个配置继承架构。在发展方面,我们有:

BaseSetup <- Setup <- DevelopmentSetup <-- StagingSystemSetup
                                        |- DeveloperMikeSetup
                                        |- DeveloperSusySetup

BaseSetup我个人要做的是在数据库中临时存储/同步配置副本,然后在部署新版本时填充新调整/更改的配置。@sidgate对我来说,更改应用程序读取的道具就像更改api一样,没有简单的方法来处理这个问题。我会为此编写一个简单的实用程序,但这取决于应用程序的类型以及道具实际更改/引入的内容。这看起来很有用。我需要检查commons config是否提供了一种维护继承的方法,以及我们是否可以合并这些方法。我希望有更多的替代方法,但看起来这是最好的方法。