1 import java.net.InetAddress; 2 import java.rmi.RemoteException; 3 import java.util.HashMap; 4 import java.util.concurrent.ConcurrentHashMap; 5 import java.util.concurrent.locks.ReentrantLock; 6 7 import javax.rmi.PortableRemoteObject; 8 9 public class HelloImpl extends PortableRemoteObject implements HelloInterface { 10 public HelloImpl() throws java.rmi.RemoteException { 11 super(); // invoke rmi linking and remote object initialization 12 } 13 14 public String sayHello(String from) throws java.rmi.RemoteException { 15 System.out.println("Hello from " + from + "!!"); 16 System.out.flush(); 17 String reply = "Hello from us to you " + from; 18 return reply; 19 } 20 21 @Override 22 public String sayHelloToTest(Test test) throws RemoteException { 23 return "Test says Hello"; 24 } 25 26 @Override 27 public String sayHelloWithInetAddress(InetAddress ipAddr) 28 throws RemoteException { 29 String response = "Hello with InetAddress " + ipAddr.toString(); 30 return response; 31 } 32 33 @Override 34 public String sayHelloWithHashMap(ConcurrentHashMap<String, String> receivedHashMap) 35 throws RemoteException { 36 int hashMapSize = 0; 37 38 hashMapSize = receivedHashMap.size(); 39 String response = "Hello with hashMapSize == " + hashMapSize; 40 return response; 41 } 42 43 @Override 44 public String sayHelloWithHashMap2(HashMap<String, String> receivedHashMap) 45 throws RemoteException { 46 int hashMapSize = 0; 47 48 hashMapSize = receivedHashMap.size(); 49 String response = "Hello with hashMapSize == " + hashMapSize; 50 return response; 51 } 52 53 @Override 54 public String sayHelloWithReentrantLock(ReentrantLock receivedLock) 55 throws RemoteException { 56 57 String response = "Hello with lock == " + receivedLock.isLocked(); 58 return response; 59 } 60 }