View Javadoc

1   package net.sf.crispy.impl.local;
2   
3   import java.util.Hashtable;
4   import java.util.Map;
5   
6   import net.sf.crispy.impl.MiniServer;
7   import net.sf.crispy.util.Util;
8   
9   import org.apache.commons.logging.Log;
10  import org.apache.commons.logging.LogFactory;
11  
12  /**
13   * Simulate a server for local Java Object access.
14   * 
15   * @author Linke
16   *
17   */
18  public class MiniLocalObjectServer implements MiniServer {
19      
20  	protected static final Log log = LogFactory.getLog (MiniLocalObjectServer.class);
21      
22  	private static Map serviceRegistry = new Hashtable();
23  	
24  	public void addService (String pvServiceInterface, String pvServiceObject) {
25  		try {
26  			Object lvServiceObject = Util.createObject(pvServiceObject);
27  			Class clazzInterface = Class.forName(pvServiceInterface);
28  			addService(clazzInterface, lvServiceObject);
29  		} catch (Exception e) {
30  			if (log.isDebugEnabled()) { log.debug("The service-interface: " 
31  					+ pvServiceInterface + " or the service-impl:" + pvServiceObject
32  					+ " can't added." , e); }
33  		}
34  	}
35  
36  	public void addService (Class pvInterface, Object pvServiceObject) {
37  		serviceRegistry.put(pvInterface, pvServiceObject);
38  	}
39  	
40  	public static Object getServiceByInterface (Class pvInterface) {
41  		return serviceRegistry.get(pvInterface);
42  	}
43  	
44  	public static void removeService(Class pvInterface) {
45  		serviceRegistry.remove(pvInterface); 
46  	}
47  	
48  	public void start() { }
49  
50  	public void stop() {
51  		serviceRegistry.clear();
52  	}
53  
54  }