//package test.net.hasor.land.election; //import net.hasor.core.*; //import net.hasor.land.bootstrap.LandContext; //import net.hasor.land.election.CollectVoteResult; //import net.hasor.land.election.ElectionService; //import net.hasor.land.election.LeaderBeatData; //import net.hasor.land.election.LeaderBeatResult; //import net.hasor.land.utils.TermUtils; //import net.hasor.rsf.InterAddress; //import net.hasor.rsf.RsfClient; //import net.hasor.rsf.RsfContext; //import net.hasor.rsf.RsfResult; //import net.hasor.rsf.utils.StringUtils; // //import java.net.URISyntaxException; //import java.util.HashMap; //import java.util.Map; //import java.util.Random; ///** // * 投票测试基类 // * Created by yongchun.zyc on 2017/2/27. // */ //public abstract class AbstractElectionServiceVoted implements ElectionService, Module { // @Inject // private LandContext landContext; // @Inject // private Settings settings; // @Inject // private RsfContext rsfContext; // @InjectSettings("test.curTerm") // private String curTerm; // private Map<String, InterAddress> allServiceNodes; // // // // // @Init // public void init() throws URISyntaxException { // // .集群信息 // String services = this.settings.getString("hasor.land.servers"); // this.allServiceNodes = new HashMap<String, InterAddress>(); // if (StringUtils.isNotBlank(services)) { // String[] serverArrays = services.split(","); // for (String serverInfo : serverArrays) { // serverInfo = serverInfo.trim(); // String[] infos = serverInfo.split(":"); // if (infos.length != 3) { // continue; // } // String serverID = serverInfo.substring(0, infos[0].length()); // String serverTarget = serverInfo.substring(serverID.length() + 1); // allServiceNodes.put(serverID, new InterAddress("rsf://" + serverTarget + "/default")); // } // } // } // // // protected boolean testTerm(String testTerm) { // return TermUtils.gtFirst(this.curTerm, testTerm); // } // // // @Override // public RsfResult responseVote(CollectVoteResult voteData) { // return null; // } // @Override // public RsfResult heartbeatForLeader(LeaderBeatData leaderBeatData) { // return null; // } // @Override // public RsfResult heartbeatResponse(LeaderBeatResult leaderBeatResult) { // return null; // } // // // // // // // protected RsfResult voteOK(String serviceID) { // InterAddress interAddress = this.allServiceNodes.get(serviceID); // RsfClient rsfClient = this.rsfContext.getRsfClient(interAddress); // ElectionService wrapper = rsfClient.wrapper(ElectionService.class); // // // try { // Thread.sleep(new Random(System.currentTimeMillis()).nextInt(1000)); // } catch (Exception e) { // } // // // CollectVoteResult voteResult = new CollectVoteResult(); // voteResult.setServerID(this.landContext.getServerID()); // voteResult.setRemoteTerm("1"); // voteResult.setVoteGranted(true); // wrapper.responseVote(voteResult); // return null; // } // protected RsfResult voteFailed(String serviceID) { // InterAddress interAddress = this.allServiceNodes.get(serviceID); // RsfClient rsfClient = this.rsfContext.getRsfClient(interAddress); // ElectionService wrapper = rsfClient.wrapper(ElectionService.class); // // // CollectVoteResult voteResult = new CollectVoteResult(); // voteResult.setServerID(this.landContext.getServerID()); // voteResult.setRemoteTerm("1"); // voteResult.setVoteGranted(false); // wrapper.responseVote(voteResult); // return null; // } // @Override // public void loadModule(ApiBinder apiBinder) throws Throwable { // apiBinder.bindType(LandContext.class).asEagerSingleton(); // } //}