1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.mybatis.guice.datasource.dbcp;
17
18 import jakarta.inject.Named;
19 import jakarta.inject.Provider;
20
21 import javax.sql.ConnectionPoolDataSource;
22 import javax.sql.DataSource;
23
24 import org.apache.commons.dbcp2.datasources.SharedPoolDataSource;
25
26
27
28
29 public final class SharedPoolDataSourceProvider implements Provider<DataSource> {
30
31 private final SharedPoolDataSource dataSource = new SharedPoolDataSource();
32
33 @com.google.inject.Inject(optional = true)
34 public void setConnectionPoolDataSource(ConnectionPoolDataSource cpds) {
35 dataSource.setConnectionPoolDataSource(cpds);
36 }
37
38 @com.google.inject.Inject(optional = true)
39 public void setDataSourceName(@Named("DBCP.name") String name) {
40 dataSource.setDataSourceName(name);
41 }
42
43 @com.google.inject.Inject(optional = true)
44 public void setDefaultAutoCommit(@Named("JDBC.autoCommit") boolean autoCommit) {
45 dataSource.setDefaultAutoCommit(autoCommit);
46 }
47
48 @com.google.inject.Inject(optional = true)
49 public void setDefaultReadOnly(@Named("DBCP.defaultReadOnly") boolean defaultReadOnly) {
50 dataSource.setDefaultReadOnly(defaultReadOnly);
51 }
52
53 @com.google.inject.Inject(optional = true)
54 public void setDefaultTransactionIsolation(
55 @Named("DBCP.defaultTransactionIsolation") int defaultTransactionIsolation) {
56 dataSource.setDefaultTransactionIsolation(defaultTransactionIsolation);
57 }
58
59 @com.google.inject.Inject(optional = true)
60 public void setDescription(@Named("DBCP.description") String description) {
61 dataSource.setDescription(description);
62 }
63
64 @com.google.inject.Inject(optional = true)
65 public void setJndiEnvironment(@Named("DBCP.jndi.key") String key, @Named("DBCP.jndi.value") String value) {
66 dataSource.setJndiEnvironment(key, value);
67 }
68
69 @com.google.inject.Inject(optional = true)
70 public void setLoginTimeout(@Named("JDBC.loginTimeout") int loginTimeout) {
71 dataSource.setLoginTimeout(loginTimeout);
72 }
73
74 @com.google.inject.Inject(optional = true)
75 public void setDefaultMinEvictableIdleTimeMillis(
76 @Named("DBCP.defaultMinEvictableIdleTimeMillis") int defaultMinEvictableIdleTimeMillis) {
77 dataSource.setDefaultMinEvictableIdleTimeMillis(defaultMinEvictableIdleTimeMillis);
78 }
79
80 @com.google.inject.Inject(optional = true)
81 public void setDefaultNumTestsPerEvictionRun(
82 @Named("DBCP.defaultNumTestsPerEvictionRun") int defaultNumTestsPerEvictionRun) {
83 dataSource.setDefaultNumTestsPerEvictionRun(defaultNumTestsPerEvictionRun);
84 }
85
86 @com.google.inject.Inject(optional = true)
87 public void setRollbackAfterValidation(@Named("DBCP.rollbackAfterValidation") boolean rollbackAfterValidation) {
88 dataSource.setRollbackAfterValidation(rollbackAfterValidation);
89 }
90
91 @com.google.inject.Inject(optional = true)
92 public void setDefaultTestOnBorrow(@Named("DBCP.defaultTestOnBorrow") boolean defaultTestOnBorrow) {
93 dataSource.setDefaultTestOnBorrow(defaultTestOnBorrow);
94 }
95
96 @com.google.inject.Inject(optional = true)
97 public void setDefaultTestOnReturn(@Named("DBCP.defaultTestOnReturn") boolean defaultTestOnReturn) {
98 dataSource.setDefaultTestOnReturn(defaultTestOnReturn);
99 }
100
101 @com.google.inject.Inject(optional = true)
102 public void setDefaultTestWhileIdle(@Named("DBCP.defaultTestWhileIdle") boolean defaultTestWhileIdle) {
103 dataSource.setDefaultTestWhileIdle(defaultTestWhileIdle);
104 }
105
106 @com.google.inject.Inject(optional = true)
107 public void setDefaultTimeBetweenEvictionRunsMillis(
108 @Named("DBCP.defaultTimeBetweenEvictionRunsMillis") int defaultTimeBetweenEvictionRunsMillis) {
109 dataSource.setDefaultTimeBetweenEvictionRunsMillis(defaultTimeBetweenEvictionRunsMillis);
110 }
111
112 @com.google.inject.Inject(optional = true)
113 public void setValidationQuery(@Named("DBCP.validationQuery") String validationQuery) {
114 dataSource.setValidationQuery(validationQuery);
115 }
116
117
118
119
120
121
122
123 @com.google.inject.Inject(optional = true)
124 public void setDefaultMaxTotal(@Named("DBCP.defaultMaxTotal") final int defaultMaxTotal) {
125 dataSource.setDefaultMaxTotal(defaultMaxTotal);
126 }
127
128
129
130
131
132
133
134 @com.google.inject.Inject(optional = true)
135 public void setDefaultMaxIdle(@Named("DBCP.defaultMaxIdle") final int defaultMaxIdle) {
136 dataSource.setDefaultMaxIdle(defaultMaxIdle);
137 }
138
139
140
141
142
143
144
145 @com.google.inject.Inject(optional = true)
146 public void setDefaultMaxWaitMillis(@Named("DBCP.defaultMaxWaitMillis") final int defaultMaxWaitMillis) {
147 dataSource.setDefaultMaxWaitMillis(defaultMaxWaitMillis);
148 }
149
150 @Override
151 public DataSource get() {
152 return dataSource;
153 }
154
155 }