svn-gvsig-desktop / branches / v10 / extensions / extPublishGeoserver / src / org / gvsig / publish / geoserver / model / Geoserver.java @ 22616
History | View | Annotate | Download (11.3 KB)
1 | 18416 | jvhigon | /* gvSIG. Sistema de Información Geográfica de la Generalitat Valenciana
|
---|---|---|---|
2 | *
|
||
3 | * Copyright (C) 2004-2006 IVER T.I. and Generalitat Valenciana.
|
||
4 | *
|
||
5 | * This program is free software; you can redistribute it and/or
|
||
6 | * modify it under the terms of the GNU General Public License
|
||
7 | * as published by the Free Software Foundation; either version 2
|
||
8 | * of the License, or (at your option) any later version.
|
||
9 | *
|
||
10 | * This program is distributed in the hope that it will be useful,
|
||
11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||
12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||
13 | * GNU General Public License for more details.
|
||
14 | *
|
||
15 | * You should have received a copy of the GNU General Public License
|
||
16 | * along with this program; if not, write to the Free Software
|
||
17 | * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,USA.
|
||
18 | *
|
||
19 | * For more information, contact:
|
||
20 | *
|
||
21 | * Generalitat Valenciana
|
||
22 | * Conselleria d'Infraestructures i Transport
|
||
23 | * Av. Blasco Ibañez, 50
|
||
24 | * 46010 VALENCIA
|
||
25 | * SPAIN
|
||
26 | *
|
||
27 | * +34 963862235
|
||
28 | * gvsig@gva.es
|
||
29 | * www.gvsig.gva.es
|
||
30 | *
|
||
31 | * or
|
||
32 | *
|
||
33 | * IVER T.I. S.A
|
||
34 | * Salamanca 50
|
||
35 | * 46005 Valencia
|
||
36 | * Spain
|
||
37 | *
|
||
38 | * +34 963163400
|
||
39 | * dac@iver.es
|
||
40 | */
|
||
41 | package org.gvsig.publish.geoserver.model; |
||
42 | |||
43 | 19432 | jvhigon | import java.io.File; |
44 | |||
45 | 21528 | jvhigon | import org.gvsig.publish.PublishLogger; |
46 | 22551 | jvhigon | import org.gvsig.publish.exceptions.PublishException; |
47 | 19432 | jvhigon | import org.gvsig.publish.geoserver.conf.GSConfiguration; |
48 | 18416 | jvhigon | import org.gvsig.publish.serversmodel.Server; |
49 | |||
50 | 19432 | jvhigon | import com.iver.andami.PluginServices; |
51 | 21528 | jvhigon | import com.iver.utiles.XMLEntity; |
52 | 19432 | jvhigon | /**
|
53 | 21528 | jvhigon | * This class represents the server Geoserver.
|
54 | 22256 | jvhigon | *
|
55 | 19432 | jvhigon | * @author jvhigon
|
56 | *
|
||
57 | */
|
||
58 | 18416 | jvhigon | public class Geoserver extends Server { |
59 | /*
|
||
60 | * Constant to identify the server
|
||
61 | */
|
||
62 | 22256 | jvhigon | public static final String REGISTER_TAG = "Geoserver"; |
63 | |||
64 | //constants
|
||
65 | public static final String LOG_SEVERE="SEVERE"; |
||
66 | public static final String LOG_WARNING="WARNING"; |
||
67 | public static final String LOG_INFO="INFO"; |
||
68 | public static final String LOG_CONFIG="CONFIG"; |
||
69 | public static final String LOG_FINNER="FINNER"; |
||
70 | public static final String LOG_FINNEST="FINNEST"; |
||
71 | |||
72 | 19432 | jvhigon | //Attributes
|
73 | 22256 | jvhigon | private boolean loginToFile=false; |
74 | private double jaiMemoryCapacity=0.5; |
||
75 | private double jaiMemoryThreshold=0.75; |
||
76 | private int jaiTileThreads=7; |
||
77 | private int jaiTilePriority=5; |
||
78 | private boolean jaiRecycling=true; |
||
79 | private boolean ImageIOCache=false; |
||
80 | private boolean JaiJPEGNative=true; |
||
81 | private boolean jaiPNGNative=true; |
||
82 | private boolean verbose=false; |
||
83 | private boolean verboseExceptions=false; |
||
84 | private int numDecimals=8; |
||
85 | private String logginLevel=LOG_INFO; |
||
86 | private int maxFeatures=2000; |
||
87 | private String charset="UTF-8"; |
||
88 | private String adminUser="admin"; |
||
89 | private String adminPassword="geoserver"; |
||
90 | |||
91 | private File configDirectory; |
||
92 | private GSConfiguration configuration=null; |
||
93 | |||
94 | 18416 | jvhigon | /**
|
95 | 22256 | jvhigon | * Constructor.
|
96 | *
|
||
97 | 18416 | jvhigon | */
|
98 | public Geoserver() {
|
||
99 | 22256 | jvhigon | super();
|
100 | 18416 | jvhigon | } |
101 | |||
102 | /**
|
||
103 | * TODO:
|
||
104 | */
|
||
105 | public void postInitialize() { |
||
106 | // TODO Auto-generated method stub
|
||
107 | |||
108 | } |
||
109 | 19901 | jvhigon | /*
|
110 | * (non-Javadoc)
|
||
111 | * @see com.iver.utiles.IPersistance#getClassName()
|
||
112 | 18416 | jvhigon | */
|
113 | 19901 | jvhigon | public String getClassName() { |
114 | return "Geoserver"; |
||
115 | 18416 | jvhigon | } |
116 | |||
117 | 19432 | jvhigon | public File getConfigDirectory() { |
118 | return configDirectory;
|
||
119 | } |
||
120 | |||
121 | public void setConfigDirectory(File configDirectory) { |
||
122 | this.configDirectory = configDirectory;
|
||
123 | } |
||
124 | |||
125 | /**
|
||
126 | *
|
||
127 | * @see org.gvsig.publish.serversmodel.Server#publish()
|
||
128 | */
|
||
129 | 21528 | jvhigon | public String publish() throws PublishException { |
130 | 22256 | jvhigon | //generate server configuration
|
131 | checkParameters(); |
||
132 | configuration = new GSConfiguration(this); |
||
133 | //generate services configuration
|
||
134 | super.publish();
|
||
135 | //write configuration
|
||
136 | 22616 | jvhigon | configuration.toXML(); |
137 | 22430 | jvhigon | return "publishgs_publish_message"; |
138 | 19432 | jvhigon | } |
139 | /**
|
||
140 | * check a minimum of parameters for publishing
|
||
141 | *
|
||
142 | * @throws PublishException
|
||
143 | */
|
||
144 | private void checkParameters()throws PublishException{ |
||
145 | //check config directory
|
||
146 | //TODO: this code never is executed
|
||
147 | if (configDirectory == null){ |
||
148 | throw new PublishException("config_dir_not_defined"); |
||
149 | } |
||
150 | //check user
|
||
151 | 22256 | jvhigon | if (getAdminUser() == null){ |
152 | 19432 | jvhigon | throw new PublishException("user_not_defined"); |
153 | } |
||
154 | //check password
|
||
155 | 22256 | jvhigon | if (getAdminPassword() == null){ |
156 | 19432 | jvhigon | throw new PublishException("password_not_defined"); |
157 | } |
||
158 | //check if there is anything to publish
|
||
159 | 22551 | jvhigon | if (getPublication().getProjectInfo() == null){ |
160 | 19432 | jvhigon | throw new PublishException(PluginServices.getText(this,"nothing_to_publish")); |
161 | } |
||
162 | } |
||
163 | 19901 | jvhigon | /*
|
164 | * (non-Javadoc)
|
||
165 | * @see org.gvsig.publish.serversmodel.Server#getId()
|
||
166 | */
|
||
167 | public String getId() { |
||
168 | return "geoserver"; |
||
169 | } |
||
170 | /*
|
||
171 | * (non-Javadoc)
|
||
172 | * @see org.gvsig.publish.serversmodel.Server#getRegisterTag()
|
||
173 | */
|
||
174 | public String getRegisterTag() { |
||
175 | return REGISTER_TAG;
|
||
176 | } |
||
177 | /*
|
||
178 | * (non-Javadoc)
|
||
179 | * @see org.gvsig.publish.IPublishPersistence#getVersion()
|
||
180 | */
|
||
181 | public int getVersion() { |
||
182 | return 1; |
||
183 | } |
||
184 | 21528 | jvhigon | /* (non-Javadoc)
|
185 | * @see org.gvsig.publish.serversmodel.Server#getXMLEntity()
|
||
186 | */
|
||
187 | 22256 | jvhigon | |
188 | 21528 | jvhigon | public XMLEntity getXMLEntity() {
|
189 | XMLEntity xml=super.getXMLEntity();
|
||
190 | //put version and name
|
||
191 | xml.setName(getClassName()); |
||
192 | xml.putProperty("version", getVersion());
|
||
193 | //put properties
|
||
194 | xml.putProperty("configdir", getConfigDirectory());
|
||
195 | //put config properties
|
||
196 | 22256 | jvhigon | xml.putProperty("max_features", getMaxFeatures());
|
197 | xml.putProperty("login_level", getLogginLevel());
|
||
198 | 21528 | jvhigon | return xml;
|
199 | } |
||
200 | /* (non-Javadoc)
|
||
201 | * @see org.gvsig.publish.serversmodel.Server#setXMLEntity(com.iver.utiles.XMLEntity)
|
||
202 | */
|
||
203 | 22256 | jvhigon | |
204 | 21528 | jvhigon | public void setXMLEntity(XMLEntity xml) { |
205 | //check version
|
||
206 | int version = xml.getIntProperty("version"); |
||
207 | if (version != getVersion()){
|
||
208 | PublishLogger.getLog().error("ERROR: " + getClassName() + ": the version doesn't match!"); |
||
209 | return;
|
||
210 | } |
||
211 | super.setXMLEntity(xml);
|
||
212 | //set properties
|
||
213 | String file = xml.getStringProperty("configdir"); |
||
214 | if (file !=null) |
||
215 | setConfigDirectory(new File(file)); |
||
216 | //set config properties
|
||
217 | 22256 | jvhigon | setMaxFeatures(xml.getIntProperty("max_features"));
|
218 | setLogginLevel(xml.getStringProperty("login_level"));
|
||
219 | 21528 | jvhigon | } |
220 | 22256 | jvhigon | |
221 | /**
|
||
222 | * Return loginToFile
|
||
223 | * @return boolean
|
||
224 | */
|
||
225 | public boolean isLoginToFile() { |
||
226 | return loginToFile;
|
||
227 | } |
||
228 | |||
229 | /**
|
||
230 | * @param loginToFile the loginToFile to set
|
||
231 | */
|
||
232 | public void setLoginToFile(boolean loginToFile) { |
||
233 | this.loginToFile = loginToFile;
|
||
234 | } |
||
235 | |||
236 | /**
|
||
237 | * @return the jaiMemoryCapacity
|
||
238 | */
|
||
239 | public double getJaiMemoryCapacity() { |
||
240 | return jaiMemoryCapacity;
|
||
241 | } |
||
242 | |||
243 | /**
|
||
244 | * @param jaiMemoryCapacity the jaiMemoryCapacity to set
|
||
245 | */
|
||
246 | public void setJaiMemoryCapacity(double jaiMemoryCapacity) { |
||
247 | this.jaiMemoryCapacity = jaiMemoryCapacity;
|
||
248 | } |
||
249 | |||
250 | /**
|
||
251 | * @return the jaiMemoryThreshold
|
||
252 | */
|
||
253 | public double getJaiMemoryThreshold() { |
||
254 | return jaiMemoryThreshold;
|
||
255 | } |
||
256 | |||
257 | /**
|
||
258 | * @param jaiMemoryThreshold the jaiMemoryThreshold to set
|
||
259 | */
|
||
260 | public void setJaiMemoryThreshold(double jaiMemoryThreshold) { |
||
261 | this.jaiMemoryThreshold = jaiMemoryThreshold;
|
||
262 | } |
||
263 | |||
264 | /**
|
||
265 | * @return the jaiTileThreads
|
||
266 | */
|
||
267 | public int getJaiTileThreads() { |
||
268 | return jaiTileThreads;
|
||
269 | } |
||
270 | |||
271 | /**
|
||
272 | * @param jaiTileThreads the jaiTileThreads to set
|
||
273 | */
|
||
274 | public void setJaiTileThreads(int jaiTileThreads) { |
||
275 | this.jaiTileThreads = jaiTileThreads;
|
||
276 | } |
||
277 | |||
278 | /**
|
||
279 | * @return the jaiTilePriority
|
||
280 | */
|
||
281 | public int getJaiTilePriority() { |
||
282 | return jaiTilePriority;
|
||
283 | } |
||
284 | |||
285 | /**
|
||
286 | * @param jaiTilePriority the jaiTilePriority to set
|
||
287 | */
|
||
288 | public void setJaiTilePriority(int jaiTilePriority) { |
||
289 | this.jaiTilePriority = jaiTilePriority;
|
||
290 | } |
||
291 | |||
292 | /**
|
||
293 | * @return the jaiRecycling
|
||
294 | */
|
||
295 | public boolean isJaiRecycling() { |
||
296 | return jaiRecycling;
|
||
297 | } |
||
298 | |||
299 | /**
|
||
300 | * @param jaiRecycling the jaiRecycling to set
|
||
301 | */
|
||
302 | public void setJaiRecycling(boolean jaiRecycling) { |
||
303 | this.jaiRecycling = jaiRecycling;
|
||
304 | } |
||
305 | |||
306 | /**
|
||
307 | * @return the imageIOCache
|
||
308 | */
|
||
309 | public boolean isImageIOCache() { |
||
310 | return ImageIOCache;
|
||
311 | } |
||
312 | |||
313 | /**
|
||
314 | * @param imageIOCache the imageIOCache to set
|
||
315 | */
|
||
316 | public void setImageIOCache(boolean imageIOCache) { |
||
317 | ImageIOCache = imageIOCache; |
||
318 | } |
||
319 | |||
320 | /**
|
||
321 | * @return the jaiJPEGNative
|
||
322 | */
|
||
323 | public boolean isJaiJPEGNative() { |
||
324 | return JaiJPEGNative;
|
||
325 | } |
||
326 | |||
327 | /**
|
||
328 | * @param jaiJPEGNative the jaiJPEGNative to set
|
||
329 | */
|
||
330 | public void setJaiJPEGNative(boolean jaiJPEGNative) { |
||
331 | JaiJPEGNative = jaiJPEGNative; |
||
332 | } |
||
333 | |||
334 | /**
|
||
335 | * @return the jaiPNGNative
|
||
336 | */
|
||
337 | public boolean isJaiPNGNative() { |
||
338 | return jaiPNGNative;
|
||
339 | } |
||
340 | |||
341 | /**
|
||
342 | * @param jaiPNGNative the jaiPNGNative to set
|
||
343 | */
|
||
344 | public void setJaiPNGNative(boolean jaiPNGNative) { |
||
345 | this.jaiPNGNative = jaiPNGNative;
|
||
346 | } |
||
347 | |||
348 | /**
|
||
349 | * @return the verbose
|
||
350 | */
|
||
351 | public boolean isVerbose() { |
||
352 | return verbose;
|
||
353 | } |
||
354 | |||
355 | /**
|
||
356 | * Whether newlines and indents should be returned in
|
||
357 | * XML responses. Default is false
|
||
358 | * @param verbose
|
||
359 | */
|
||
360 | public void setVerbose(boolean verbose) { |
||
361 | this.verbose = verbose;
|
||
362 | } |
||
363 | |||
364 | /**
|
||
365 | * @return the verboseExceptions
|
||
366 | */
|
||
367 | public boolean isVerboseExceptions() { |
||
368 | return verboseExceptions;
|
||
369 | } |
||
370 | |||
371 | /**
|
||
372 | * @param verboseExceptions the verboseExceptions to set
|
||
373 | */
|
||
374 | public void setVerboseExceptions(boolean verboseExceptions) { |
||
375 | this.verboseExceptions = verboseExceptions;
|
||
376 | } |
||
377 | |||
378 | /**
|
||
379 | * @return the numDecimals
|
||
380 | */
|
||
381 | public int getNumDecimals() { |
||
382 | return numDecimals;
|
||
383 | } |
||
384 | |||
385 | |||
386 | /**
|
||
387 | * Sets the max number of decimal places past the zero returned in
|
||
388 | * a GetFeature response. Default is 4
|
||
389 | * @param mynumDecimals
|
||
390 | */
|
||
391 | public void setNumDecimals(int numDecimals) { |
||
392 | this.numDecimals = numDecimals;
|
||
393 | } |
||
394 | |||
395 | /**
|
||
396 | * Return LoginLevel
|
||
397 | * @return string SEVERE, WARNING, INFO, CONFIG, FINER, FINEST
|
||
398 | */
|
||
399 | public String getLogginLevel() { |
||
400 | return logginLevel;
|
||
401 | } |
||
402 | |||
403 | /**
|
||
404 | * Defines the logging level. Common options are SEVERE,
|
||
405 | * WARNING, INFO, CONFIG, FINER, FINEST, in order of
|
||
406 | * Increasing statements logged.
|
||
407 | * @see {@link Geoserver#LOG_CONFIG} , {@link Geoserver#LOG_INFO} , ...
|
||
408 | * @param level SEVERE, WARNING, INFO, CONFIG, FINER, FINEST
|
||
409 | *
|
||
410 | */
|
||
411 | public void setLogginLevel(String logginLevel) { |
||
412 | this.logginLevel = logginLevel;
|
||
413 | } |
||
414 | |||
415 | /**
|
||
416 | * @return the maxFeatures
|
||
417 | */
|
||
418 | public int getMaxFeatures() { |
||
419 | return maxFeatures;
|
||
420 | } |
||
421 | |||
422 | /**
|
||
423 | * Sets the max number of features the WFS service can return
|
||
424 | * @param maxFeatures the maxFeatures to set
|
||
425 | */
|
||
426 | public void setMaxFeatures(int maxFeatures) { |
||
427 | this.maxFeatures = maxFeatures;
|
||
428 | } |
||
429 | |||
430 | /**
|
||
431 | * This could use some more testing
|
||
432 | * from international users, but what it does is sets the encoding
|
||
433 | * globally for all postgis database connections (the charset tag
|
||
434 | * in FeatureTypeConfig), as well as specifying the encoding in the return
|
||
435 | * config.xml header and mime type. The default is UTF-8. Also be warned
|
||
436 | * that GeoServer does not check if the CharSet is valid before
|
||
437 | * attempting to use it, so it will fail miserably if a bad charset
|
||
438 | * is used.
|
||
439 | * @return charset
|
||
440 | */
|
||
441 | |||
442 | public String getCharset() { |
||
443 | return charset;
|
||
444 | } |
||
445 | |||
446 | |||
447 | /**
|
||
448 | * @param charset the charset to set
|
||
449 | */
|
||
450 | public void setCharset(String charset) { |
||
451 | this.charset = charset;
|
||
452 | } |
||
453 | |||
454 | /**
|
||
455 | * @return the administrator user
|
||
456 | */
|
||
457 | public String getAdminUser() { |
||
458 | return adminUser;
|
||
459 | } |
||
460 | |||
461 | /**
|
||
462 | * Defines the user name of the administrator for log in
|
||
463 | * to the web based administration tool.
|
||
464 | * @param user
|
||
465 | */
|
||
466 | |||
467 | public void setAdminUser(String user) { |
||
468 | this.adminUser = user;
|
||
469 | } |
||
470 | |||
471 | /**
|
||
472 | * @return the password
|
||
473 | */
|
||
474 | public String getAdminPassword() { |
||
475 | return adminPassword;
|
||
476 | } |
||
477 | |||
478 | /**
|
||
479 | * @param password the password to set
|
||
480 | */
|
||
481 | public void setAdminPassword(String password) { |
||
482 | this.adminPassword = password;
|
||
483 | } |
||
484 | |||
485 | /**
|
||
486 | * @return the configuration
|
||
487 | */
|
||
488 | public GSConfiguration getConfiguration() {
|
||
489 | return configuration;
|
||
490 | } |
||
491 | |||
492 | /**
|
||
493 | * @param configuration the configuration to set
|
||
494 | */
|
||
495 | public void setConfiguration(GSConfiguration configuration) { |
||
496 | this.configuration = configuration;
|
||
497 | } |
||
498 | |||
499 | 18416 | jvhigon | } |