import java.rmi.*;
import java.rmi.server.*;
import java.net.*;
import java.util.*;

public class TimeServerImpl extends UnicastRemoteObject implements TimeServer {

    final static String server = "buda.cs.uchicago.edu";

    public TimeServerImpl() throws RemoteException {
        super();
    }
    
    public Date time() throws RemoteException {
        GregorianCalendar c = new GregorianCalendar();
        return c.getTime();
    }

    public static void main(String args[]) {

        if (System.getSecurityManager() == null) { 
            System.setSecurityManager(new RMISecurityManager()); 
        } 

        try {
            TimeServerImpl ts = new TimeServerImpl();
            Naming.rebind("//"+server+"/TimeServer", ts);
            System.out.println("Time Server ready on "+server+" ...");
            }
        catch(RemoteException e) {
            System.out.println("matei: " + e);
        }
        catch(MalformedURLException e) {
            System.out.println("matei: " + e);
        }
    }
}


