#2 create Zone Nameservers
This commit is contained in:
parent
7e3854810b
commit
2df6123b39
@ -1,8 +1,10 @@
|
|||||||
package dslab.nameserver;
|
package dslab.nameserver;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
import java.rmi.RemoteException;
|
import java.rmi.RemoteException;
|
||||||
|
|
||||||
public class NameServerRemote implements INameserverRemote {
|
public class NameServerRemote implements INameserverRemote, Serializable {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void registerNameserver(String domain, INameserverRemote nameserver) throws RemoteException, AlreadyRegisteredException, InvalidDomainException {
|
public void registerNameserver(String domain, INameserverRemote nameserver) throws RemoteException, AlreadyRegisteredException, InvalidDomainException {
|
||||||
|
|
||||||
|
|||||||
@ -24,9 +24,11 @@ public class Nameserver implements INameserver {
|
|||||||
*/
|
*/
|
||||||
public Nameserver(String componentId, Config config, InputStream in, PrintStream out) {
|
public Nameserver(String componentId, Config config, InputStream in, PrintStream out) {
|
||||||
// only root nameserver creates RMI registry
|
// only root nameserver creates RMI registry
|
||||||
if (componentId.equals("ns-root")) {
|
|
||||||
int registryPort = config.getInt("registry.port");
|
|
||||||
String registryName = config.getString("root_id");
|
String registryName = config.getString("root_id");
|
||||||
|
String registryHost = config.getString("registry.host");
|
||||||
|
int registryPort = config.getInt("registry.port");
|
||||||
|
if (componentId.equals("ns-root")) {
|
||||||
|
// Root Nameserver
|
||||||
INameserverRemote nameserverRemote = new NameServerRemote();
|
INameserverRemote nameserverRemote = new NameServerRemote();
|
||||||
try {
|
try {
|
||||||
INameserverRemote stub = (INameserverRemote) UnicastRemoteObject.exportObject(nameserverRemote, registryPort);
|
INameserverRemote stub = (INameserverRemote) UnicastRemoteObject.exportObject(nameserverRemote, registryPort);
|
||||||
@ -38,8 +40,20 @@ public class Nameserver implements INameserver {
|
|||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
// TODO zone nameservers
|
// Zone Nameserver
|
||||||
System.out.println("Zone Nameserver");
|
String domain = config.getString("domain");
|
||||||
|
try {
|
||||||
|
REGISTRY = LocateRegistry.getRegistry(registryHost, registryPort);
|
||||||
|
INameserverRemote nameserverRemote = (INameserverRemote) REGISTRY.lookup(registryName);
|
||||||
|
nameserverRemote.registerNameserver(domain, new NameServerRemote());
|
||||||
|
} catch (RemoteException | NotBoundException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
} catch (InvalidDomainException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
} catch (AlreadyRegisteredException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
System.out.printf("Zone Nameserver %s started!%n", domain);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user