1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.apache.commons.pool2.impl;
18
19 import org.apache.commons.pool2.BasePooledObjectFactory;
20 import org.apache.commons.pool2.ObjectPool;
21 import org.apache.commons.pool2.PooledObject;
22 import org.apache.commons.pool2.PooledObjectFactory;
23 import org.apache.commons.pool2.TestBaseObjectPool;
24
25
26
27 public class TestSoftReferenceObjectPool extends TestBaseObjectPool {
28
29 private static class SimpleFactory extends BasePooledObjectFactory<String> {
30
31 int counter;
32
33 @Override
34 public String create() {
35 return String.valueOf(counter++);
36 }
37
38 @Override
39 public PooledObject<String> wrap(final String value) {
40 return new DefaultPooledObject<>(value);
41 }
42 }
43
44 @Override
45 protected Object getNthObject(final int n) {
46 return String.valueOf(n);
47 }
48
49 @Override
50 protected boolean isFifo() {
51 return false;
52 }
53
54 @Override
55 protected boolean isLifo() {
56 return false;
57 }
58
59 @Override
60 protected <E extends Exception> ObjectPool<String> makeEmptyPool(final int cap) {
61 return (ObjectPool<String>) new SoftReferenceObjectPool<>(new SimpleFactory());
62 }
63
64
65 @Override
66 protected <E extends Exception> ObjectPool<Object> makeEmptyPool(final PooledObjectFactory<Object> factory) {
67 return new SoftReferenceObjectPool<>(factory);
68 }
69 }