All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.caiguoqing.uyuni.common.Uyuni Maven / Gradle / Ivy

The newest version!
/**
 * 
 */
package org.caiguoqing.uyuni.common;

import java.util.List;

import org.caiguoqing.uyuni.config.ConsumerConfig;
import org.caiguoqing.uyuni.config.MonitorConfig;
import org.caiguoqing.uyuni.config.ProtocolConfig;
import org.caiguoqing.uyuni.config.ProviderConfig;
import org.caiguoqing.uyuni.config.RegistryConfig;
import org.caiguoqing.uyuni.config.Scanner;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

/**
 * @author caiguoqing0427
 *
 */
public class Uyuni {
	private Logger logger = LoggerFactory.getLogger(getClass());
	private Scanner scanner = new Scanner();
	private String configFile;
	private List providerConfigs;
	private List consumerConfigs;
	private RegistryConfig registryConfig;
	private MonitorConfig monitorConfig;
	private ProtocolConfig protocolConfig;
	private Consumer consumer;
	private MonitorClient monitorClient = new MonitorClient();
	
	private Uyuni(){
		
	}
	
	public static Uyuni custom(){
		return new Uyuni();
	}
	
	public Uyuni setConfigFile(String configFile){
		this.configFile = configFile;
		return this;
	}
	
	public Uyuni build(){
		if(configFile != null){
			scanner.scan(configFile).parse();
		}else{
			scanner.scan("provider.xml").parse();
			scanner.scan("consumer.xml").parse();
		}
		registryConfig = scanner.getRegistryConfig();
		protocolConfig = scanner.getProtocolConfig();
		providerConfigs = scanner.getProviderConfigs();
		consumerConfigs = scanner.getConsumerConfigs();
		monitorConfig = scanner.getMonitorConfig();
		return this;
	}
	
	public boolean start(){
		boolean flag = false;
		if(providerConfigs != null && providerConfigs.size() > 0){
			Provider provider = new Provider(providerConfigs, 
				registryConfig, protocolConfig);
			provider.init();
			logger.info("provider start");
			flag = true;
		}
		if(consumerConfigs != null && consumerConfigs.size() > 0){
			consumer = new Consumer(consumerConfigs,
				registryConfig,protocolConfig);
			consumer.init();
			logger.info("consumer start");
			flag = true;
		}
		if(monitorConfig != null){
			monitorClient.init(monitorConfig);
			monitorClient.run();
		}
		return flag;
	}
	
	public Object getInstance(String inter){
		return consumer.getInstance(inter);
	}
	
	public Object getInstanceById(String id){
		return consumer.getInstanceById(id);
	}
	
	/**
	 * @param args args
	 */
	public static void main(String[] args) {
		Uyuni.custom().build().start();
	}

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy