1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package net.sf.ehcache.distribution;
18
19 import net.sf.ehcache.CacheException;
20 import net.sf.ehcache.CacheManager;
21 import net.sf.ehcache.util.PropertyUtil;
22
23 import java.net.UnknownHostException;
24 import java.util.Properties;
25
26
27
28
29
30
31
32
33
34
35
36
37
38 public class RMICacheManagerPeerListenerFactory extends CacheManagerPeerListenerFactory {
39
40
41
42
43
44 public static final Integer DEFAULT_SOCKET_TIMEOUT_MILLIS = new Integer(120000);
45
46 private static final String HOSTNAME = "hostName";
47 private static final String PORT = "port";
48 private static final String SOCKET_TIMEOUT_MILLIS = "socketTimeoutMillis";
49
50
51
52
53
54 public final CacheManagerPeerListener createCachePeerListener(CacheManager cacheManager, Properties properties)
55 throws CacheException {
56 String hostName = PropertyUtil.extractAndLogProperty(HOSTNAME, properties);
57 String portString = PropertyUtil.extractAndLogProperty(PORT, properties);
58 Integer port = null;
59 if (portString != null && portString.length() != 0) {
60 port = new Integer(portString);
61 } else {
62 port = new Integer(0);
63 }
64 String socketTimeoutMillisString = PropertyUtil.extractAndLogProperty(SOCKET_TIMEOUT_MILLIS, properties);
65 Integer socketTimeoutMillis;
66 if (socketTimeoutMillisString == null || socketTimeoutMillisString.length() == 0) {
67 socketTimeoutMillis = DEFAULT_SOCKET_TIMEOUT_MILLIS;
68 } else {
69 socketTimeoutMillis = new Integer(socketTimeoutMillisString);
70 }
71 return doCreateCachePeerListener(hostName, port, cacheManager, socketTimeoutMillis);
72 }
73
74
75
76
77
78
79
80
81
82 protected CacheManagerPeerListener doCreateCachePeerListener(String hostName, Integer port, CacheManager cacheManager,
83 Integer socketTimeoutMillis) {
84 try {
85 return new RMICacheManagerPeerListener(hostName, port, cacheManager, socketTimeoutMillis);
86 } catch (UnknownHostException e) {
87 throw new CacheException("Unable to create CacheManagerPeerListener. Initial cause was " + e.getMessage(), e);
88 }
89 }
90 }