Mercurial > dive4elements > river
annotate artifacts/src/main/java/org/dive4elements/river/artifacts/services/ServerInfoService.java @ 6839:fe03337c8011
(issue1353) Add river name handling
author | Andre Heinecke <aheinecke@intevation.de> |
---|---|
date | Thu, 15 Aug 2013 16:05:17 +0200 |
parents | d30ae7275e5a |
children | e4606eae8ea5 |
rev | line source |
---|---|
6457
41152c3a532d
Add ServerInfoService (currently inactive).
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
1 package org.dive4elements.river.artifacts.services; |
41152c3a532d
Add ServerInfoService (currently inactive).
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
2 |
41152c3a532d
Add ServerInfoService (currently inactive).
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
3 import javax.xml.xpath.XPathConstants; |
41152c3a532d
Add ServerInfoService (currently inactive).
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
4 |
41152c3a532d
Add ServerInfoService (currently inactive).
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
5 import org.apache.log4j.Logger; |
41152c3a532d
Add ServerInfoService (currently inactive).
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
6 import org.dive4elements.artifacts.CallMeta; |
41152c3a532d
Add ServerInfoService (currently inactive).
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
7 import org.dive4elements.artifacts.GlobalContext; |
41152c3a532d
Add ServerInfoService (currently inactive).
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
8 import org.dive4elements.artifacts.common.ArtifactNamespaceContext; |
41152c3a532d
Add ServerInfoService (currently inactive).
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
9 import org.dive4elements.artifacts.common.utils.Config; |
41152c3a532d
Add ServerInfoService (currently inactive).
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
10 import org.dive4elements.artifacts.common.utils.XMLUtils; |
41152c3a532d
Add ServerInfoService (currently inactive).
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
11 import org.w3c.dom.Document; |
41152c3a532d
Add ServerInfoService (currently inactive).
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
12 import org.w3c.dom.Element; |
41152c3a532d
Add ServerInfoService (currently inactive).
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
13 |
41152c3a532d
Add ServerInfoService (currently inactive).
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
14 /** |
41152c3a532d
Add ServerInfoService (currently inactive).
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
15 * Through this service the client can retrieve basic information about or |
41152c3a532d
Add ServerInfoService (currently inactive).
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
16 * configuration of the artifact server. |
41152c3a532d
Add ServerInfoService (currently inactive).
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
17 * Currently it only returns the help-url (wiki) to the client. |
41152c3a532d
Add ServerInfoService (currently inactive).
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
18 * |
41152c3a532d
Add ServerInfoService (currently inactive).
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
19 * @author <a href="mailto:christian.lins@intevation.de">Christian Lins</a> |
41152c3a532d
Add ServerInfoService (currently inactive).
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
20 */ |
41152c3a532d
Add ServerInfoService (currently inactive).
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
21 public class ServerInfoService extends D4EService { |
41152c3a532d
Add ServerInfoService (currently inactive).
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
22 |
41152c3a532d
Add ServerInfoService (currently inactive).
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
23 /** The logger used in this service.*/ |
41152c3a532d
Add ServerInfoService (currently inactive).
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
24 private static Logger logger = Logger.getLogger(ServerInfoService.class); |
41152c3a532d
Add ServerInfoService (currently inactive).
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
25 |
41152c3a532d
Add ServerInfoService (currently inactive).
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
26 private static final String XPATH_HELP_URL = "/artifact-database/help-url/text()"; |
41152c3a532d
Add ServerInfoService (currently inactive).
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
27 |
41152c3a532d
Add ServerInfoService (currently inactive).
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
28 @Override |
41152c3a532d
Add ServerInfoService (currently inactive).
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
29 protected Document doProcess(Document data, GlobalContext globalContext, |
41152c3a532d
Add ServerInfoService (currently inactive).
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
30 CallMeta callMeta) { |
41152c3a532d
Add ServerInfoService (currently inactive).
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
31 logger.debug("ServerInfoService.process"); |
41152c3a532d
Add ServerInfoService (currently inactive).
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
32 |
41152c3a532d
Add ServerInfoService (currently inactive).
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
33 Document result = XMLUtils.newDocument(); |
41152c3a532d
Add ServerInfoService (currently inactive).
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
34 |
41152c3a532d
Add ServerInfoService (currently inactive).
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
35 XMLUtils.ElementCreator ec = new XMLUtils.ElementCreator( |
41152c3a532d
Add ServerInfoService (currently inactive).
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
36 result, |
41152c3a532d
Add ServerInfoService (currently inactive).
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
37 ArtifactNamespaceContext.NAMESPACE_URI, |
41152c3a532d
Add ServerInfoService (currently inactive).
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
38 ArtifactNamespaceContext.NAMESPACE_PREFIX); |
41152c3a532d
Add ServerInfoService (currently inactive).
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
39 |
41152c3a532d
Add ServerInfoService (currently inactive).
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
40 Element serverInfo = ec.create("server"); |
41152c3a532d
Add ServerInfoService (currently inactive).
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
41 |
41152c3a532d
Add ServerInfoService (currently inactive).
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
42 String helpUrl = (String) XMLUtils.xpath( |
41152c3a532d
Add ServerInfoService (currently inactive).
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
43 Config.getConfig(), |
41152c3a532d
Add ServerInfoService (currently inactive).
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
44 XPATH_HELP_URL, |
41152c3a532d
Add ServerInfoService (currently inactive).
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
45 XPathConstants.STRING); |
41152c3a532d
Add ServerInfoService (currently inactive).
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
46 |
41152c3a532d
Add ServerInfoService (currently inactive).
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
47 Element info = ec.create("info"); |
41152c3a532d
Add ServerInfoService (currently inactive).
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
48 ec.addAttr(info, "key", "help-url", true); |
41152c3a532d
Add ServerInfoService (currently inactive).
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
49 ec.addAttr(info, "value", helpUrl, true); |
6476
d30ae7275e5a
Minor fix for ServerInfoService.
Christian Lins <christian.lins@intevation.de>
parents:
6457
diff
changeset
|
50 serverInfo.appendChild(info); |
6457
41152c3a532d
Add ServerInfoService (currently inactive).
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
51 |
41152c3a532d
Add ServerInfoService (currently inactive).
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
52 result.appendChild(serverInfo); |
41152c3a532d
Add ServerInfoService (currently inactive).
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
53 |
41152c3a532d
Add ServerInfoService (currently inactive).
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
54 return result; |
41152c3a532d
Add ServerInfoService (currently inactive).
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
55 } |
41152c3a532d
Add ServerInfoService (currently inactive).
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
56 |
41152c3a532d
Add ServerInfoService (currently inactive).
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
57 } |