1 package org.apache.commons.jcs3.auxiliary.remote;
2
3 import java.io.IOException;
4 import java.rmi.registry.Registry;
5 import java.util.concurrent.ConcurrentHashMap;
6 import java.util.concurrent.ConcurrentMap;
7
8 import org.apache.commons.jcs3.auxiliary.remote.behavior.IRemoteCacheAttributes;
9 import org.apache.commons.jcs3.engine.behavior.ICompositeCacheManager;
10 import org.apache.commons.jcs3.engine.behavior.IElementSerializer;
11 import org.apache.commons.jcs3.engine.logging.behavior.ICacheEventLogger;
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34 public class TestRemoteCacheFactory extends RemoteCacheFactory
35 {
36
37 protected ConcurrentMap<RemoteLocation, RemoteCacheManager> managers;
38
39
40
41
42
43
44
45
46
47
48 @Override
49 public RemoteCacheManager getManager( final IRemoteCacheAttributes cattr )
50 {
51 final RemoteCacheAttributes rca = (RemoteCacheAttributes) cattr.clone();
52 if (rca.getRemoteLocation() == null)
53 {
54 rca.setRemoteLocation("", Registry.REGISTRY_PORT);
55 }
56
57 return managers.get(rca.getRemoteLocation());
58 }
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75 @Override
76 public RemoteCacheManager getManager( final IRemoteCacheAttributes cattr,
77 final ICompositeCacheManager cacheMgr,
78 final ICacheEventLogger cacheEventLogger,
79 final IElementSerializer elementSerializer )
80 {
81 final RemoteCacheAttributes rca = (RemoteCacheAttributes) cattr.clone();
82 if (rca.getRemoteLocation() == null)
83 {
84 rca.setRemoteLocation("", Registry.REGISTRY_PORT);
85 }
86
87 return managers.computeIfAbsent(rca.getRemoteLocation(), key -> {
88
89 return new TestRemoteCacheManager(rca, cacheMgr, null, cacheEventLogger, elementSerializer);
90 });
91 }
92
93
94
95
96 @Override
97 public void initialize()
98 {
99 managers = new ConcurrentHashMap<>();
100 }
101
102
103
104
105 @Override
106 public void dispose()
107 {
108 managers.values().forEach(RemoteCacheManager::release);
109 managers.clear();
110 }
111
112
113 public class TestRemoteCacheManager extends RemoteCacheManager
114 {
115 protected TestRemoteCacheManager(IRemoteCacheAttributes cattr, ICompositeCacheManager cacheMgr, RemoteCacheMonitor monitor, ICacheEventLogger cacheEventLogger,
116 IElementSerializer elementSerializer)
117 {
118 super(cattr, cacheMgr, monitor, cacheEventLogger, elementSerializer);
119 }
120
121 @Override
122 protected void lookupRemoteService() throws IOException
123 {
124
125 }
126
127 @Override
128 public void removeRemoteCacheListener(IRemoteCacheAttributes cattr) throws IOException
129 {
130
131 }
132 }
133 }