
org.caiguoqing.uyuni.rpc.server.Server Maven / Gradle / Ivy
The newest version!
/**
*
*/
package org.caiguoqing.uyuni.rpc.server;
import java.util.HashMap;
import java.util.Map;
import java.util.Map.Entry;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
* @author org.caiguoqing
*
*/
public abstract class Server implements Service {
private Logger logger = LoggerFactory.getLogger(Server.class);
protected Map serviceInstances = new HashMap();
protected ServerConfig config;
protected boolean ifRun = false;
public Server(ServerConfig config){
this.config = config;
}
public String getURL(){
return ":" + config.getPort();
}
private boolean createInstance(){
Map servers = config.getServers();
for(Entry entry : servers.entrySet()){
try {
Class> serviceClass = Class.forName(entry.getValue());
serviceInstances.put(entry.getKey(),serviceClass.newInstance());
} catch (ClassNotFoundException e) {
logger.error("invalid server '" + entry.getValue() + "' class not found");
return false;
} catch (InstantiationException e) {
e.printStackTrace();
return false;
} catch (IllegalAccessException e) {
e.printStackTrace();
return false;
}
}
return true;
}
protected boolean check(){
if(config.getPort() <= 0 || config.getPort() >= 65535) {
logger.error("invalid port " + config.getPort());
return false;
}
if(config.getServers() == null){
logger.error("invalid server null");
return false;
}
return createInstance();
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy