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