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