/* * Copyright 2008-2009 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package net.hasor.registry.boot; import net.hasor.core.Settings; import net.hasor.core.XmlNode; import net.hasor.core.setting.SettingsWrap; import net.hasor.registry.CenterMode; import net.hasor.registry.RsfCenterSettings; import net.hasor.rsf.InterAddress; import net.hasor.rsf.utils.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import java.io.IOException; import java.util.ArrayList; /** * * @version : 2014年11月12日 * @author 赵永春(zyc@hasor.net) */ class RsfCenterSettingsImpl extends SettingsWrap implements RsfCenterSettings { protected Logger logger = LoggerFactory.getLogger(getClass()); private InterAddress[] centerServerSet = new InterAddress[0]; private int centerRsfTimeout = 6000; private int centerHeartbeatTime = 15000; // private CenterMode centerMode = null; private String appKeyID = null; private String appKeySecret = null; // // public RsfCenterSettingsImpl(Settings settings) throws IOException { super(settings); this.refreshRsfConfig(); } @Override public CenterMode getMode() { return this.centerMode; } // @Override public InterAddress[] getCenterServerSet() { return this.centerServerSet.clone(); } public int getCenterRsfTimeout() { return this.centerRsfTimeout; } @Override public int getHeartbeatTime() { return this.centerHeartbeatTime; } @Override public String getAppKeyID() { return this.appKeyID; } @Override public String getAppKeySecret() { return this.appKeySecret; } // // private void refreshRsfConfig() throws IOException { // this.centerMode = getEnum("hasor.registry.workAt", CenterMode.class, CenterMode.None); // // XmlNode serversNode = getXmlNode("hasor.registry.servers"); ArrayList<InterAddress> addressArrays = new ArrayList<InterAddress>(); String serverOriInfo = serversNode.getText(); if (StringUtils.isNotBlank(serverOriInfo)) { serverOriInfo = serverOriInfo.trim(); String[] serverArrays = serverOriInfo.split(","); for (String serverURL : serverArrays) { if (StringUtils.isBlank(serverURL)) continue; // try { InterAddress interAddress = new InterAddress(serverURL); if (!addressArrays.contains(interAddress)) { addressArrays.add(interAddress); } } catch (Exception e) { logger.error("centerServer {} format error -> {}.", serverURL, e.getMessage()); } } } this.centerServerSet = addressArrays.toArray(new InterAddress[addressArrays.size()]); // // this.centerRsfTimeout = getInteger("hasor.registry.servers.timeout", 6000); this.centerHeartbeatTime = getInteger("hasor.registry.servers.heartbeatTime", 15000); // // this.appKeyID = getString("hasor.registry.security.appKeyID"); this.appKeySecret = getString("hasor.registry.security.appKeySecret"); } }