/*
* 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.server.manager;
import net.hasor.core.AppContext;
import net.hasor.core.Init;
import net.hasor.core.Inject;
import net.hasor.core.Singleton;
import net.hasor.registry.server.adapter.DataAdapter;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
* 负责启动时将服务器的信息登记到数据库。
* @version : 2015年8月19日
* @author 赵永春(zyc@hasor.net)
*/
@Deprecated
@Singleton
public class InitServerManager {
protected Logger logger = LoggerFactory.getLogger(getClass());
@Inject
private AppContext appContext;
@Inject
private DataAdapter dataAdapter;
private long serverID;
//
@Init
public void init() throws Throwable {
// logger.info("init rsf-center to db.");
// //
// // -Server信息
// RsfContext rsfContext = this.appContext.getInstance(RsfContext.class);
// InterAddress rsfHost = rsfContext.bindAddress();
// //
// // -预先查询ServerDO
// Result<ServerDO> queryResult = this.dataAdapter.queryServerByHost(rsfHost.getHost(), rsfHost.getPort());
// if (queryResult == null || !queryResult.isSuccess()) {
// throw new IllegalStateException("init server info to db failed -> query error ," + queryResult.firstMessage());
// }
// //
// // -RsfContext到ServerDO的转换
// DataChainContext<RsfContext, ServerDO> dataChainContext = new DataChainContext<RsfContext, ServerDO>() {
// };
// // dataChainContext.addDataFilter("dataFilter", this.appContext.getInstance(RsfContext2ServerDODataFilter.class));
// ServerDO serverDO = dataChainContext.doChain(rsfContext, queryResult.getResult());
// //
// // -根据预查结果决定是新增还是更新
// if (queryResult.getResult() == null) {
// Result<Long> insertResult = this.dataAdapter.insertServer(serverDO);
// if (insertResult == null || !insertResult.isSuccess() || insertResult.getResult() == null || insertResult.getResult() <= 0) {
// IllegalStateException err = null;
// if (insertResult != null) {
// err = new IllegalStateException("init server info to db failed -> insert Server error ," + queryResult.firstMessage());
// } else {
// err = new IllegalStateException("init server info to db failed -> insert Result is null.");
// }
// this.logger.error(err.getMessage(), err);
// throw err;
// }
// } else {
// Result<Boolean> updateResult = this.dataAdapter.updateServer(serverDO);
// if (updateResult == null || !updateResult.isSuccess() || updateResult.getResult() == null || !updateResult.getResult()) {
// IllegalStateException err = null;
// if (updateResult != null) {
// err = new IllegalStateException("init server info to db failed -> update Server error ," + queryResult.firstMessage());
// } else {
// err = new IllegalStateException("init server info to db failed -> update Result is null.");
// }
// this.logger.error(err.getMessage(), err);
// throw err;
// }
// }
// //
// // -记录盐值和serverID
// this.serverID = serverDO.getId();
// //
}
public void beatServer() throws IllegalStateException {
// Date beatDate = new Date();
// logger.info("rsfCenter beat -> {}", DateCenterUtils.timestamp(beatDate));
// Result<Boolean> beatResult = this.dataAdapter.beatOfServer(this.serverID, beatDate);
// //
// if (beatResult == null || !beatResult.isSuccess() || beatResult.getResult() == null || !beatResult.getResult()) {
// IllegalStateException err = null;
// if (beatResult != null) {
// err = new IllegalStateException("beatOfServer to db failed -> update Server error ," + beatResult.firstMessage());
// } else {
// err = new IllegalStateException("beatOfServer to db failed -> update Result is null.");
// }
// throw err;
// } else {
// this.logger.info("beatOfServer to db success -> serverID= " + this.serverID);
// }
// //
}
}