1 package net.sf.ehcache.writer;
2
3 import java.util.Collection;
4 import java.util.HashMap;
5 import java.util.Map;
6
7 import net.sf.ehcache.CacheEntry;
8 import net.sf.ehcache.CacheException;
9 import net.sf.ehcache.Element;
10
11 public class TestCacheWriterSlow extends AbstractTestCacheWriter {
12 private final Map<Object, Element> writtenElements = new HashMap<Object, Element>();
13 private final Map<Object, Element> deletedElements = new HashMap<Object, Element>();
14
15 public TestCacheWriterSlow() {
16 }
17
18 public Map<Object, Element> getWrittenElements() {
19 return writtenElements;
20 }
21
22 public Map<Object, Element> getDeletedElements() {
23 return deletedElements;
24 }
25
26 @Override
27 public synchronized void write(Element element) throws CacheException {
28 try {
29 Thread.sleep(5000);
30 } catch (InterruptedException e) {
31 throw new CacheException(e);
32 }
33 writtenElements.put(element.getObjectKey(), element);
34 }
35
36 @Override
37 public synchronized void writeAll(Collection<Element> elements) throws CacheException {
38 try {
39 Thread.sleep(5000);
40 } catch (InterruptedException e) {
41 throw new CacheException(e);
42 }
43 for (Element element : elements) {
44 writtenElements.put(element.getObjectKey() + "-batched", element);
45 }
46 }
47
48 @Override
49 public synchronized void delete(CacheEntry entry) throws CacheException {
50 try {
51 Thread.sleep(5000);
52 } catch (InterruptedException e) {
53 throw new CacheException(e);
54 }
55 deletedElements.put(entry.getKey(), entry.getElement());
56 }
57
58 @Override
59 public synchronized void deleteAll(Collection<CacheEntry> entries) throws CacheException {
60 try {
61 Thread.sleep(5000);
62 } catch (InterruptedException e) {
63 throw new CacheException(e);
64 }
65 for (CacheEntry entry : entries) {
66 deletedElements.put(entry.getKey() + "-batched", entry.getElement());
67 }
68 }
69 }