Configuration System Initialization Process
来源:互联网 发布:软件测试加班 编辑:程序博客网 时间:2024/05/18 11:02
When open a graph, we need to pass a configuration file.
public static HugeGraph open(String shortcutOrFile) { return open(getLocalConfiguration(shortcutOrFile)); }
private static ReadConfiguration getLocalConfiguration(String shortcutOrFile) { File file = new File(shortcutOrFile); if (file.exists()) return getLocalConfiguration(file); else { // ... } }
private static ReadConfiguration getLocalConfiguration(File file) { PropertiesConfiguration configuration = new PropertiesConfiguration(file); // ... return new CommonsConfiguration(configuration); }
PropertiesConfiguration is a class in apache common jar, we do not delve into it in order to reduce complexity.
Then pass the PropertiesConfiguration object to GraphDatabaseConfiguration.
public static HugeGraph open(ReadConfiguration configuration) { return new StandardHugeGraph(new GraphDatabaseConfiguration(configuration)); }
The constructor mehtod of GraphDatabaseConfiguration.
public GraphDatabaseConfiguration(ReadConfiguration localConfig) { this.configurationAtOpen = localConfig; BasicConfiguration localbc = new BasicConfiguration(ROOT_NS,localConfig, BasicConfiguration.Restriction.NONE); ModifiableConfiguration overwrite = new ModifiableConfiguration(ROOT_NS,new CommonsConfiguration(), BasicConfiguration.Restriction.NONE);//... }
- BasicConfiguration localbc = new BasicConfiguration(ROOT_NS,localConfig, BasicConfiguration.Restriction.NONE);
The definition of BasicConfiguration.Restriction.
public enum Restriction { LOCAL, GLOBAL, NONE }
public BasicConfiguration(ConfigNamespace root, ReadConfiguration config, Restriction restriction) { super(root); Preconditions.checkNotNull(config); Preconditions.checkNotNull(restriction); this.config = config; this.restriction = restriction; }
super(root) call the constructor method of AbstractConfiguration.
protected AbstractConfiguration(ConfigNamespace root) { Preconditions.checkNotNull(root); Preconditions.checkArgument(!root.isUmbrella(),"Root cannot be an umbrella namespace"); this.root = root; }
KCVSConfiguration
KCVSConfiguration kcvsConfig=Backend.getStandaloneGlobalConfiguration(storeManager,localbc);...globalConfig = kcvsConfig.asReadConfiguration();
ModifiableConfiguration overwrite Introduction
Configuration combinedConfig = new MixedConfiguration(ROOT_NS,globalConfig,localConfig); ... this.configuration = new MergedConfiguration(overwrite,combinedConfig); preLoadConfiguration();
MixedConfiguration Introduction
MergedConfiguration
preLoadConfiguration()
The configuration initialize is over.
The architecture of config
MergedConfiguration
- overwrite: dynamic generated runtime information like graph uuid
- combinedConfig
- globalConfig
- localConfig
0 0
- Configuration System Initialization Process
- System initialization
- Android Initialization Process
- Android Initialization Process
- Android Initialization Process
- Android Initialization Process
- Android Initialization Process
- Android Initialization Process
- Talking about Android Initialization Process
- RH131 Unit1 System Initialization
- slackware System Initialization
- system initialization conclusion
- Operating System Initialization
- Linux Init and System Initialization
- Dispatcher initialization failed Unable to load configuration
- 14.3.1 InnoDB Initialization and Startup Configuration
- Dispatcher initialization failed:Unable to load configuration
- Dispatcher initialization failed Unable to load configuration.
- 如何判断smmu是否初始化成功呢?
- Datatables 自定义按钮
- c和c++中动态内存分配
- Ansible 系列之 Playbooks 剧本 (1)
- 万万没想到吧?三星竟然已悄悄展出S8
- Configuration System Initialization Process
- 今天先说说看到的 上海商创网络科技有限公司被刷屏
- tomcat7 catalina.out切割
- 【自定义控件】圆形时钟
- 崩溃的小问题
- PAT_A 1124. Raffle for Weibo Followers (20)
- 一些炫酷的插件源码分享
- 各式各样的图片三方框架
- Java内存模型JMM