/** * Dianping.com Inc. * Copyright (c) 2003-2013 All Rights Reserved. */ package com.dianping.pigeon.remoting.provider.config.spring; import org.apache.commons.lang.builder.ReflectionToStringBuilder; import org.apache.commons.lang.builder.ToStringStyle; import com.dianping.pigeon.log.Logger; import com.dianping.pigeon.config.ConfigManagerLoader; import com.dianping.pigeon.log.LoggerLoader; import com.dianping.pigeon.remoting.ServiceFactory; import com.dianping.pigeon.remoting.common.util.Constants; import com.dianping.pigeon.remoting.provider.config.ServerConfig; public class ServerBean { private static final Logger logger = LoggerLoader.getLogger(ServerBean.class); private int port = ServerConfig.DEFAULT_PORT; private int httpPort = ServerConfig.DEFAULT_HTTP_PORT; private boolean autoSelectPort = true; private int corePoolSize = Constants.PROVIDER_POOL_CORE_SIZE; private int maxPoolSize = Constants.PROVIDER_POOL_MAX_SIZE; private int workQueueSize = Constants.PROVIDER_POOL_QUEUE_SIZE; private String suffix = ConfigManagerLoader.getConfigManager().getGroup(); private volatile ServerConfig serverConfig; public boolean isAutoSelectPort() { return autoSelectPort; } public void setAutoSelectPort(boolean autoSelectPort) { this.autoSelectPort = autoSelectPort; } public int getHttpPort() { return httpPort; } public void setHttpPort(int httpPort) { this.httpPort = httpPort; } public int getPort() { return port; } public void setPort(int port) { if (port != 4040) { this.port = port; } } public int getCorePoolSize() { return corePoolSize; } public void setCorePoolSize(int corePoolSize) { this.corePoolSize = corePoolSize; } public int getMaxPoolSize() { return maxPoolSize; } public void setMaxPoolSize(int maxPoolSize) { this.maxPoolSize = maxPoolSize; } public int getWorkQueueSize() { return workQueueSize; } public void setWorkQueueSize(int workQueueSize) { this.workQueueSize = workQueueSize; } public String getSuffix() { return suffix; } public void setSuffix(String suffix) { this.suffix = suffix; } public ServerConfig init() throws Exception { if (serverConfig == null) { synchronized (this) { if (serverConfig == null) { serverConfig = new ServerConfig(); serverConfig.setPort(port); serverConfig.setSuffix(suffix); serverConfig.setAutoSelectPort(autoSelectPort); serverConfig.setCorePoolSize(corePoolSize); serverConfig.setMaxPoolSize(maxPoolSize); serverConfig.setWorkQueueSize(workQueueSize); ServiceFactory.startupServer(serverConfig); } } } return serverConfig; } @Override public String toString() { return ReflectionToStringBuilder.toString(this, ToStringStyle.SHORT_PREFIX_STYLE); } }