1 package fr.ifremer.quadrige3.synchro.server.config;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28 import org.hibernate.dialect.HSQLDialect;
29 import org.hibernate.spatial.dialect.oracle.OracleSpatial10gDialect;
30 import org.nuiton.config.ConfigOptionDef;
31 import org.nuiton.version.Version;
32
33 import java.net.URL;
34
35 import static org.nuiton.i18n.I18n.n;
36
37
38
39
40
41
42
43 public enum SynchroServerConfigurationOption implements ConfigOptionDef {
44
45
46
47
48
49
50
51
52
53
54
55 SERVER_DATASOURCE_TYPE(
56 "quadrige3.synchro.server.datasource.type",
57 n("quadrige3.config.option.synchro.server.datasource.type.description"),
58 "local",
59 String.class),
60
61 SERVER_JDBC_USERNAME(
62 "quadrige3.synchro.server.jdbc.username",
63 n("quadrige3.config.option.synchro.server.jdbc.username.description"),
64 "",
65 String.class),
66
67 SERVER_JDBC_PASSWORD(
68 "quadrige3.synchro.server.jdbc.password",
69 n("quadrige3.config.option.synchro.server.jdbc.password.description"),
70 "",
71 String.class),
72
73 SERVER_JDBC_SCHEMA(
74 "quadrige3.synchro.server.jdbc.schema",
75 n("quadrige3.config.option.synchro.server.jdbc.schema.description"),
76 "",
77 String.class),
78
79 SERVER_JDBC_CATALOG(
80 "quadrige3.synchro.server.jdbc.catalog",
81 n("quadrige3.config.option.synchro.server.jdbc.catalog.description"),
82 "",
83 String.class),
84
85 SERVER_JDBC_URL(
86 "quadrige3.synchro.server.jdbc.url",
87 n("quadrige3.config.option.synchro.server.jdbc.url.description"),
88 "jdbc:oracle:thin:@HOST:1521:SID",
89 String.class),
90
91 SERVER_JDBC_DRIVER(
92 "quadrige3.synchro.server.jdbc.driver",
93 n("quadrige3.config.option.synchro.server.jdbc.driver.description"),
94 "oracle.jdbc.driver.OracleDriver",
95 Class.class),
96
97 SERVER_JDBC_MAX_POOL_SIZE(
98 "quadrige3.synchro.server.jdbc.maxPoolSize",
99 n("quadrige3.config.option.synchro.server.jdbc.maxPoolSize.description"),
100 "10",
101 Integer.class),
102
103 SERVER_JDBC_MIN_IDLE(
104 "quadrige3.synchro.server.jdbc.minIdle",
105 n("quadrige3.config.option.synchro.server.jdbc.minIdle.description"),
106 "1",
107 Integer.class),
108
109 SERVER_HIBERNATE_DIALECT(
110 "quadrige3.synchro.server.hibernate.dialect",
111 n("quadrige3.config.option.synchro.server.hibernate.dialect.description"),
112 OracleSpatial10gDialect.class.getName(),
113 Class.class),
114
115 CLIENT_JDBC_USERNAME(
116 "quadrige3.synchro.client.jdbc.username",
117 n("quadrige3.config.option.synchro.client.jdbc.username.description"),
118 "sa",
119 String.class),
120
121 CLIENT_JDBC_PASSWORD(
122 "quadrige3.synchro.client.jdbc.password",
123 n("quadrige3.config.option.synchro.client.jdbc.password.description"),
124 "",
125 String.class),
126
127 CLIENT_JDBC_SCHEMA(
128 "quadrige3.synchro.client.jdbc.schema",
129 n("quadrige3.config.option.synchro.client.jdbc.schema.description"),
130 "PUBLIC",
131 String.class),
132
133 CLIENT_JDBC_CATALOG(
134 "quadrige3.synchro.client.jdbc.catalog",
135 n("quadrige3.config.option.synchro.client.jdbc.catalog.description"),
136 "",
137 String.class),
138
139 CLIENT_JDBC_URL(
140 "quadrige3.synchro.client.jdbc.url",
141 n("quadrige3.config.option.synchro.client.jdbc.url.description"),
142 "jdbc:hsqldb:file:/tmp/quadrige3",
143 String.class),
144
145 CLIENT_JDBC_DRIVER(
146 "quadrige3.synchro.client.jdbc.driver",
147 n("quadrige3.config.option.synchro.client.jdbc.driver.description"),
148 "org.hsqldb.jdbcDriver",
149 Class.class),
150
151 CLIENT_HIBERNATE_DIALECT(
152 "quadrige3.synchro.client.hibernate.dialect",
153 n("quadrige3.config.option.synchro.client.hibernate.dialect.description"),
154 HSQLDialect.class.getName(),
155 Class.class),
156
157 SYNCHRO_MIN_COMPATIBLE_VERSION(
158 "quadrige3.synchro.server.minCompatibleVersion",
159 "quadrige3.synchro.server.config.option.minCompatibleVersion.description",
160 null,
161 Version.class,
162 false),
163
164 SYNCHRO_CORE_POOL_SIZE(
165 "quadrige3.synchro.server.corePoolSize",
166 "quadrige3.synchro.server.config.option.corePoolSize.description",
167 "${quadrige3.synchro.server.maxPoolSize}",
168 Integer.class,
169 false),
170 SYNCHRO_MAX_POOL_SIZE(
171 "quadrige3.synchro.server.maxPoolSize",
172 "quadrige3.synchro.server.config.option.maxPoolSize.description",
173 "5",
174 Integer.class,
175 false),
176 SYNCHRO_QUEUE_CAPACITY(
177 "quadrige3.synchro.server.queueCapacity",
178 "quadrige3.synchro.server.config.option.queueCapacity.description",
179 "50",
180 Integer.class,
181 false),
182 SYNCHRO_STATUS_TIME_TO_IDLE(
183 "quadrige3.synchro.server.status.timeToIdle",
184 "quadrige3.synchro.server.config.option.status.timeToIdle.description",
185 "180",
186 Integer.class,
187 false),
188 SYNCHRO_SERVICE_LAZY(
189 "quadrige3.synchro.server.service.lazy",
190 "quadrige3.synchro.server.config.option.service.lazy.description",
191 Boolean.FALSE.toString(),
192 Boolean.class,
193 false),
194 UI_BASE_URL(
195 "quadrige3.synchro.server.baseUrl",
196 "quadrige3.synchro.server.config.option.baseUrl.description",
197 "http://localhost:8080/",
198 URL.class,
199 false),
200 UI_SECURITY_TYPE(
201 "quadrige3.synchro.server.security.type",
202 "quadrige3.synchro.server.config.option.security.type.description",
203 "mock",
204 String.class,
205 false),
206 SECURITY_LDAP_BASEDN(
207 "quadrige3.synchro.server.security.ldap.baseDn",
208 "quadrige3.synchro.server.config.option.security.ldap.baseDn.description",
209 "",
210 String.class,
211 false),
212 SECURITY_LDAP_URL(
213 "quadrige3.synchro.server.security.ldap.url",
214 "quadrige3.synchro.server.config.option.security.ldap.url.description",
215 "",
216 URL.class,
217 false),
218 SECURITY_AD_URL(
219 "quadrige3.synchro.server.security.ad.url",
220 "quadrige3.synchro.server.config.option.security.ad.url.description",
221 "",
222 URL.class,
223 false),
224 SECURITY_AD_DOMAIN(
225 "quadrige3.synchro.server.security.ad.domain",
226 "quadrige3.synchro.server.config.option.security.ad.domain.description",
227 "",
228 URL.class,
229 false),
230 SECURITY_MOCK_USERNAME(
231 "quadrige3.synchro.server.security.mock.username",
232 "quadrige3.synchro.server.config.option.security.mock.username.description",
233 "demo",
234 String.class,
235 false),
236 SECURITY_MOCK_PASSWORD(
237 "quadrige3.synchro.server.security.mock.password",
238 "quadrige3.synchro.server.config.option.security.mock.password.description",
239 "demo",
240 String.class,
241 false),
242 SECURITY_MOCK_USER_ID(
243 "quadrige3.synchro.server.security.mock.userId",
244 "quadrige3.synchro.server.config.option.security.mock.userId.description",
245 "263",
246 Integer.class,
247 false),
248 TIMEZONE(
249 "quadrige3.synchro.server.timezone",
250 "quadrige3.synchro.server.config.option.timezone.description",
251 "",
252 String.class,
253 false),
254
255 SYNCHRO_EXPORT_FINALIZE_PROCEDURES(
256 "quadrige3.synchro.server.export.finalize.procedures",
257 "quadrige3.synchro.server.config.option.export.finalize.procedures.description",
258 "",
259 String.class,
260 false),
261
262
263 ;
264
265
266
267
268 private final String key;
269
270
271
272
273 private final String description;
274
275
276
277
278 private final Class<?> type;
279
280
281
282
283 private String defaultValue;
284
285
286
287
288 private boolean isTransient;
289
290
291
292
293 private boolean isFinal;
294
295 SynchroServerConfigurationOption(String key,
296 String description,
297 String defaultValue,
298 Class<?> type,
299 boolean isTransient) {
300 this.key = key;
301 this.description = description;
302 this.defaultValue = defaultValue;
303 this.type = type;
304 this.isTransient = isTransient;
305 this.isFinal = isTransient;
306 }
307
308 SynchroServerConfigurationOption(String key,
309 String description,
310 String defaultValue,
311 Class<?> type) {
312 this(key, description, defaultValue, type, true);
313 }
314
315 @Override
316 public String getKey() {
317 return key;
318 }
319
320 @Override
321 public Class<?> getType() {
322 return type;
323 }
324
325 @Override
326 public String getDescription() {
327 return description;
328 }
329
330 @Override
331 public String getDefaultValue() {
332 return defaultValue;
333 }
334
335 @Override
336 public boolean isTransient() {
337 return isTransient;
338 }
339
340 @Override
341 public boolean isFinal() {
342 return isFinal;
343 }
344
345 @Override
346 public void setDefaultValue(String defaultValue) {
347 this.defaultValue = defaultValue;
348 }
349
350 @Override
351 public void setTransient(boolean newValue) {
352
353 }
354
355 @Override
356 public void setFinal(boolean newValue) {
357
358 }
359 }