// CountManager implementation import java.rmi.*; import java.rmi.registry.*; import java.rmi.server.*; import java.util.*; public class CManagerImpl extends UnicastRemoteObject implements CountManager { private Hashtable counters = new Hashtable(); public CManagerImpl() throws RemoteException { } public Count getCount(String nome) throws RemoteException { Count rem = null; if (counters.containsKey(nome)) rem = (Count) counters.get(nome); else { rem = new CountImpl(); counters.put(nome,rem); System.out.println("New counter: " + nome); } return rem; } public static void main(String[] args) { try { String serviceName = "CountFactory"; CManagerImpl myCM = new CManagerImpl(); Registry r = LocateRegistry.getRegistry(); r.bind(serviceName, myCM); System.out.println("CountFactory ready."); } catch (Exception e) { e.printStackTrace(); } } }