// CountServer.java, versao para execucao remota
import java.rmi.*;
import java.rmi.server.*;
import java.rmi.registry.*;

public class CountServer {
    public static void main(String[] args) {
	// Criar e instalar o gerenciador de seguranca RMI
	System.setSecurityManager(new RMISecurityManager());

	try {
	    // Criar o objeto de servico
	    CountImpl srvCount = new CountImpl();
	    // Obter localizacao do servico de registro
	    Registry r;
	    int hasPort = args[0].indexOf(':');
	    if (hasPort == -1) 
		r = LocateRegistry.getRegistry(args[0]);
	    else {
		String host = args[0].substring(0, hasPort);
		int port = Integer.parseInt(args[0].substring(hasPort+1));
		r = LocateRegistry.getRegistry(host, port);
	    }
	    // Registrar o servico
	    String serviceName = args[1];
	    r.rebind(serviceName, srvCount);
	    System.out.println("Servidor "+ serviceName + " pronto.");
	}
	catch (ArrayIndexOutOfBoundsException ai) {
	    System.err.println("Uso: java CountServer <locreg> <servname>");
	    System.err.println("\t <locreg> - host ou host:port para registro RMI");
	    System.err.println("\t <servname> - nome do servico no registro");
	}
	catch (Exception e) {
	  e.printStackTrace();
	}
    }
}