View Javadoc

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  }