1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 package edu.internet2.middleware.shibboleth.common.attribute.resolver.provider.dataConnector;
19
20 import edu.vt.middleware.ldap.Ldap;
21 import edu.vt.middleware.ldap.pool.BlockingLdapPool;
22 import edu.vt.middleware.ldap.pool.LdapFactory;
23 import edu.vt.middleware.ldap.pool.LdapPool;
24 import edu.vt.middleware.ldap.pool.LdapPoolConfig;
25 import edu.vt.middleware.ldap.pool.SoftLimitLdapPool;
26
27
28
29
30 public class LdapPoolVTStrategy implements LdapPoolStrategy {
31
32
33 private LdapPool<Ldap> ldapPool;
34
35
36 private LdapPoolConfig ldapPoolConfig;
37
38
39 private LdapFactory<Ldap> ldapFactory;
40
41
42 private boolean blockWhenEmpty;
43
44
45
46
47 public LdapPoolVTStrategy() {}
48
49
50 public void setLdapPoolConfig(LdapPoolConfig config) {
51 ldapPoolConfig = config;
52 }
53
54
55 public void setLdapFactory(LdapFactory<Ldap> factory) {
56 ldapFactory = factory;
57 }
58
59
60 public void setBlockWhenEmpty(boolean block) {
61 blockWhenEmpty = block;
62 }
63
64
65 public void initialize() {
66 ldapPoolConfig.setPruneTimerPeriod(ldapPoolConfig.getValidateTimerPeriod());
67 if (blockWhenEmpty) {
68 ldapPool = new BlockingLdapPool(ldapPoolConfig, ldapFactory);
69 } else {
70 ldapPool = new SoftLimitLdapPool(ldapPoolConfig, ldapFactory);
71 }
72 ldapPool.initialize();
73 }
74
75
76 public Ldap checkOut() throws Exception {
77 return ldapPool.checkOut();
78 }
79
80
81 public void checkIn(Ldap l) throws Exception {
82 ldapPool.checkIn(l);
83 }
84 }