package com.meidusa.amoeba.manager.client; import java.io.IOException; import java.net.InetSocketAddress; import java.nio.channels.SelectionKey; import java.nio.channels.SocketChannel; import java.util.Map; import java.util.concurrent.TimeUnit; import com.meidusa.amoeba.config.DBServerConfig; import com.meidusa.amoeba.heartbeat.HeartbeatDelayed; import com.meidusa.amoeba.heartbeat.HeartbeatManager; import com.meidusa.amoeba.heartbeat.Status; import com.meidusa.amoeba.net.Connection; import com.meidusa.amoeba.net.ConnectionFactory; import com.meidusa.amoeba.net.ConnectionManager; import com.meidusa.amoeba.util.Initialisable; import com.meidusa.amoeba.util.InitialisationException; public class DBServerConfigRemoteLoader implements Initialisable{ private ConnectionManager manager; private ConnectionFactory connectionFactory; private String ipAddress; private int port; private Connection connection; public ConnectionManager getManager() { return manager; } public void setManager(ConnectionManager manager) { this.manager = manager; } public ConnectionFactory getConnectionFactory() { return connectionFactory; } public void setConnectionFactory(ConnectionFactory connectionFactory) { this.connectionFactory = connectionFactory; } public String getIpAddress() { return ipAddress; } public void setIpAddress(String ipAddress) { this.ipAddress = ipAddress; } public int getPort() { return port; } public void setPort(int port) { this.port = port; } public Map<String,DBServerConfig> loadConfig(){ return null; } @Override public void init() throws InitialisationException { try { SocketChannel channel = SocketChannel.open(new InetSocketAddress(ipAddress,port)); connection = connectionFactory.createConnection(channel, System.currentTimeMillis()); this.manager.postRegisterNetEventHandler(connection, SelectionKey.OP_READ); HeartbeatManager.addHeartbeat(new HeartbeatDelayed(2, TimeUnit.SECONDS){ @Override public Status doCheck() { return null; } @Override public String getName() { return "Amoeba Managed Server Heartbeat"; } }); } catch (IOException e) { throw new InitialisationException("cannot create connect to host="+ipAddress+":"+port,e); } } }