Mercurial > dive4elements > river
annotate gwt-client/src/main/java/org/dive4elements/river/client/server/ServerInfoServiceImpl.java @ 8858:a805211690f7 3.2.x
Fix license headers.
author | Tom Gottfried <tom@intevation.de> |
---|---|
date | Thu, 18 Jan 2018 20:52:41 +0100 |
parents | 238fc722f87a |
children | 0a5239a1e46e |
rev | line source |
---|---|
8858 | 1 /* Copyright (C) 2011, 2012, 2013 by Bundesanstalt für Gewässerkunde |
2 * Software engineering by Intevation GmbH | |
3 * | |
4 * This file is Free Software under the GNU AGPL (>=v3) | |
5 * and comes with ABSOLUTELY NO WARRANTY! Check out the | |
6 * documentation coming with Dive4Elements River for details. | |
7 */ | |
8 | |
6475
b0b0ba6e7bb0
Add client side servlets and service stubs for ServerInfoService.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
9 package org.dive4elements.river.client.server; |
b0b0ba6e7bb0
Add client side servlets and service stubs for ServerInfoService.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
10 |
b0b0ba6e7bb0
Add client side servlets and service stubs for ServerInfoService.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
11 import java.util.HashMap; |
b0b0ba6e7bb0
Add client side servlets and service stubs for ServerInfoService.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
12 import java.util.Map; |
b0b0ba6e7bb0
Add client side servlets and service stubs for ServerInfoService.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
13 |
b0b0ba6e7bb0
Add client side servlets and service stubs for ServerInfoService.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
14 import javax.xml.xpath.XPathConstants; |
b0b0ba6e7bb0
Add client side servlets and service stubs for ServerInfoService.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
15 |
b0b0ba6e7bb0
Add client side servlets and service stubs for ServerInfoService.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
16 import org.apache.log4j.Logger; |
b0b0ba6e7bb0
Add client side servlets and service stubs for ServerInfoService.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
17 import org.dive4elements.artifacts.common.ArtifactNamespaceContext; |
b0b0ba6e7bb0
Add client side servlets and service stubs for ServerInfoService.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
18 import org.dive4elements.artifacts.common.utils.XMLUtils; |
b0b0ba6e7bb0
Add client side servlets and service stubs for ServerInfoService.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
19 import org.dive4elements.artifacts.httpclient.http.HttpClient; |
b0b0ba6e7bb0
Add client side servlets and service stubs for ServerInfoService.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
20 import org.dive4elements.artifacts.httpclient.http.HttpClientImpl; |
b0b0ba6e7bb0
Add client side servlets and service stubs for ServerInfoService.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
21 import org.dive4elements.river.client.client.services.ServerInfoService; |
b0b0ba6e7bb0
Add client side servlets and service stubs for ServerInfoService.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
22 import org.w3c.dom.Document; |
b0b0ba6e7bb0
Add client side servlets and service stubs for ServerInfoService.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
23 import org.w3c.dom.Element; |
b0b0ba6e7bb0
Add client side servlets and service stubs for ServerInfoService.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
24 import org.w3c.dom.NodeList; |
b0b0ba6e7bb0
Add client side servlets and service stubs for ServerInfoService.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
25 |
b0b0ba6e7bb0
Add client side servlets and service stubs for ServerInfoService.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
26 public class ServerInfoServiceImpl extends RemoteServiceServlet implements |
b0b0ba6e7bb0
Add client side servlets and service stubs for ServerInfoService.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
27 ServerInfoService { |
b0b0ba6e7bb0
Add client side servlets and service stubs for ServerInfoService.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
28 |
b0b0ba6e7bb0
Add client side servlets and service stubs for ServerInfoService.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
29 // This works only because currently there is only one info transmitted |
b0b0ba6e7bb0
Add client side servlets and service stubs for ServerInfoService.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
30 private static final String XPATH_INFO = "/art:server/art:info"; |
b0b0ba6e7bb0
Add client side servlets and service stubs for ServerInfoService.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
31 |
8203
238fc722f87a
sed 's/logger/log/g' src/**/*.java
Sascha L. Teichmann <teichmann@intevation.de>
parents:
6475
diff
changeset
|
32 private final Logger log = Logger.getLogger(ServerInfoServiceImpl.class); |
6475
b0b0ba6e7bb0
Add client side servlets and service stubs for ServerInfoService.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
33 |
b0b0ba6e7bb0
Add client side servlets and service stubs for ServerInfoService.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
34 @Override |
b0b0ba6e7bb0
Add client side servlets and service stubs for ServerInfoService.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
35 public Map<String, String> getConfig(String locale) { |
b0b0ba6e7bb0
Add client side servlets and service stubs for ServerInfoService.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
36 Map<String, String> infoMap = new HashMap<String, String>(); |
b0b0ba6e7bb0
Add client side servlets and service stubs for ServerInfoService.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
37 String url = getServletContext().getInitParameter("server-url"); |
b0b0ba6e7bb0
Add client side servlets and service stubs for ServerInfoService.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
38 |
b0b0ba6e7bb0
Add client side servlets and service stubs for ServerInfoService.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
39 Document doc = XMLUtils.newDocument(); |
b0b0ba6e7bb0
Add client side servlets and service stubs for ServerInfoService.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
40 |
b0b0ba6e7bb0
Add client side servlets and service stubs for ServerInfoService.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
41 XMLUtils.ElementCreator ec = new XMLUtils.ElementCreator( |
b0b0ba6e7bb0
Add client side servlets and service stubs for ServerInfoService.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
42 doc, |
b0b0ba6e7bb0
Add client side servlets and service stubs for ServerInfoService.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
43 ArtifactNamespaceContext.NAMESPACE_URI, |
b0b0ba6e7bb0
Add client side servlets and service stubs for ServerInfoService.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
44 ArtifactNamespaceContext.NAMESPACE_PREFIX); |
b0b0ba6e7bb0
Add client side servlets and service stubs for ServerInfoService.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
45 |
b0b0ba6e7bb0
Add client side servlets and service stubs for ServerInfoService.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
46 doc.appendChild(ec.create("action")); |
b0b0ba6e7bb0
Add client side servlets and service stubs for ServerInfoService.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
47 |
b0b0ba6e7bb0
Add client side servlets and service stubs for ServerInfoService.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
48 HttpClient client = new HttpClientImpl(url, locale); |
b0b0ba6e7bb0
Add client side servlets and service stubs for ServerInfoService.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
49 |
b0b0ba6e7bb0
Add client side servlets and service stubs for ServerInfoService.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
50 try { |
b0b0ba6e7bb0
Add client side servlets and service stubs for ServerInfoService.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
51 Document res = client.callService(url, "server-info", doc); |
b0b0ba6e7bb0
Add client side servlets and service stubs for ServerInfoService.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
52 |
b0b0ba6e7bb0
Add client side servlets and service stubs for ServerInfoService.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
53 NodeList info = (NodeList) XMLUtils.xpath(res, |
b0b0ba6e7bb0
Add client side servlets and service stubs for ServerInfoService.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
54 XPATH_INFO, |
b0b0ba6e7bb0
Add client side servlets and service stubs for ServerInfoService.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
55 XPathConstants.NODESET, |
b0b0ba6e7bb0
Add client side servlets and service stubs for ServerInfoService.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
56 ArtifactNamespaceContext.INSTANCE); |
b0b0ba6e7bb0
Add client side servlets and service stubs for ServerInfoService.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
57 |
b0b0ba6e7bb0
Add client side servlets and service stubs for ServerInfoService.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
58 for (int n = 0; n < info.getLength(); n++) { |
b0b0ba6e7bb0
Add client side servlets and service stubs for ServerInfoService.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
59 Element el = (Element)info.item(n); |
b0b0ba6e7bb0
Add client side servlets and service stubs for ServerInfoService.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
60 String key = el.getAttributeNS( |
b0b0ba6e7bb0
Add client side servlets and service stubs for ServerInfoService.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
61 ArtifactNamespaceContext.NAMESPACE_URI, "key"); |
b0b0ba6e7bb0
Add client side servlets and service stubs for ServerInfoService.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
62 String val = el.getAttributeNS( |
b0b0ba6e7bb0
Add client side servlets and service stubs for ServerInfoService.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
63 ArtifactNamespaceContext.NAMESPACE_URI, "value"); |
b0b0ba6e7bb0
Add client side servlets and service stubs for ServerInfoService.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
64 infoMap.put(key, val); |
b0b0ba6e7bb0
Add client side servlets and service stubs for ServerInfoService.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
65 |
8203
238fc722f87a
sed 's/logger/log/g' src/**/*.java
Sascha L. Teichmann <teichmann@intevation.de>
parents:
6475
diff
changeset
|
66 log.debug("ServerInfoServiceImpl: " + key + "=" + val); |
6475
b0b0ba6e7bb0
Add client side servlets and service stubs for ServerInfoService.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
67 } |
b0b0ba6e7bb0
Add client side servlets and service stubs for ServerInfoService.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
68 } |
b0b0ba6e7bb0
Add client side servlets and service stubs for ServerInfoService.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
69 catch (Exception ex) { |
8203
238fc722f87a
sed 's/logger/log/g' src/**/*.java
Sascha L. Teichmann <teichmann@intevation.de>
parents:
6475
diff
changeset
|
70 log.error(ex, ex); |
6475
b0b0ba6e7bb0
Add client side servlets and service stubs for ServerInfoService.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
71 } |
b0b0ba6e7bb0
Add client side servlets and service stubs for ServerInfoService.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
72 |
b0b0ba6e7bb0
Add client side servlets and service stubs for ServerInfoService.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
73 return infoMap; |
b0b0ba6e7bb0
Add client side servlets and service stubs for ServerInfoService.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
74 } |
b0b0ba6e7bb0
Add client side servlets and service stubs for ServerInfoService.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
75 |
b0b0ba6e7bb0
Add client side servlets and service stubs for ServerInfoService.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
76 |
b0b0ba6e7bb0
Add client side servlets and service stubs for ServerInfoService.
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
77 } |