Package com.thenetcircle.comsumerdispatcher.config

Source Code of com.thenetcircle.comsumerdispatcher.config.DispatcherConfig

package com.thenetcircle.comsumerdispatcher.config;

import java.util.List;
import java.util.Map;

import com.thenetcircle.comsumerdispatcher.distribution.DistributedConfigLoader;
import com.thenetcircle.comsumerdispatcher.distribution.DistributionManager;
import com.thenetcircle.comsumerdispatcher.job.JobExecutor;

public class DispatcherConfig {

  private static DispatcherConfig _self = null;
  private List<JobExecutor> allJobs = null;
  private Map<String, QueueConf> servers = null;
  private MonitorConf monitorConf = null;

  public static synchronized DispatcherConfig getInstance() {
    if (null == _self) {
      _self = new DispatcherConfig();
    }
    return _self;
  }
 
  public void loadConfig(String configFilePath) throws Exception {
    ConfigLoader cLoader = null;
    if (null == configFilePath) {
      cLoader = new DistributedConfigLoader(DistributionManager.getInstance().getZk());
    } else {
      cLoader = new FileConfigLoader(configFilePath);
    }
   
    setServers(cLoader.loadServers());// go first
    setAllJobs(cLoader.loadAllJobs());
    setMonitorConf(cLoader.loadJmxConfig());
  }
 
  public List<JobExecutor> getAllJobs() {
    return this.allJobs;
  }
 
  public Map<String, QueueConf> getServers() {
    return this.servers;
  }
 
  public MonitorConf getMonitorConf() {
    return monitorConf;
  }
 
  public void setAllJobs(List<JobExecutor> allJobs) {
    this.allJobs = allJobs;
  }

  public void setServers(Map<String, QueueConf> servers) {
    this.servers = servers;
  }

  public void setMonitorConf(MonitorConf monitorConf) {
    this.monitorConf = monitorConf;
  }

  private DispatcherConfig() {
  }
}
TOP

Related Classes of com.thenetcircle.comsumerdispatcher.config.DispatcherConfig

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.