annotate gwt-client/src/main/java/org/dive4elements/river/client/server/ExportServiceImpl.java @ 5861:172338b1407f

GWT client: Added copyright header.
author Sascha L. Teichmann <teichmann@intevation.de>
date Sun, 28 Apr 2013 14:30:15 +0200
parents 5aa05a7a34b7
children ea9eef426962
rev   line source
5861
172338b1407f GWT client: Added copyright header.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
1 /* Copyright (C) 2011, 2012, 2013 by Bundesanstalt für Gewässerkunde
172338b1407f GWT client: Added copyright header.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
2 * Software engineering by Intevation GmbH
172338b1407f GWT client: Added copyright header.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
3 *
172338b1407f GWT client: Added copyright header.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
4 * This file is Free Software under the GNU AGPL (>=v3)
172338b1407f GWT client: Added copyright header.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
5 * and comes with ABSOLUTELY NO WARRANTY! Check out the
172338b1407f GWT client: Added copyright header.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
6 * documentation coming with Dive4Elements River for details.
172338b1407f GWT client: Added copyright header.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
7 */
172338b1407f GWT client: Added copyright header.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
8
5835
821a02bbfb4e Fixed internal java dependencies
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5834
diff changeset
9 package org.dive4elements.river.client.server;
274
71a7533555d0 Added a service to export data from the artifact server.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
10
71a7533555d0 Added a service to export data from the artifact server.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
11 import java.io.OutputStream;
71a7533555d0 Added a service to export data from the artifact server.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
12 import java.io.IOException;
71a7533555d0 Added a service to export data from the artifact server.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
13
71a7533555d0 Added a service to export data from the artifact server.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
14 import org.w3c.dom.Document;
3499
17c66d38f095 FixA: Added AT file export to FixAnalysis W/Q.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1425
diff changeset
15 import org.w3c.dom.Element;
274
71a7533555d0 Added a service to export data from the artifact server.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
16
1367
ab8eb2f544f2 Replaced stdout and stderr logging with log4j loggers in server classes.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 432
diff changeset
17 import org.apache.log4j.Logger;
ab8eb2f544f2 Replaced stdout and stderr logging with log4j loggers in server classes.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 432
diff changeset
18
274
71a7533555d0 Added a service to export data from the artifact server.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
19 import javax.servlet.http.HttpServlet;
71a7533555d0 Added a service to export data from the artifact server.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
20 import javax.servlet.http.HttpServletRequest;
71a7533555d0 Added a service to export data from the artifact server.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
21 import javax.servlet.http.HttpServletResponse;
71a7533555d0 Added a service to export data from the artifact server.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
22
5835
821a02bbfb4e Fixed internal java dependencies
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5834
diff changeset
23 import org.dive4elements.artifacts.common.utils.ClientProtocolUtils;
821a02bbfb4e Fixed internal java dependencies
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5834
diff changeset
24 import org.dive4elements.artifacts.common.utils.XMLUtils;
274
71a7533555d0 Added a service to export data from the artifact server.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
25
5835
821a02bbfb4e Fixed internal java dependencies
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5834
diff changeset
26 import org.dive4elements.artifacts.httpclient.http.HttpClient;
821a02bbfb4e Fixed internal java dependencies
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5834
diff changeset
27 import org.dive4elements.artifacts.httpclient.http.HttpClientImpl;
274
71a7533555d0 Added a service to export data from the artifact server.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
28
71a7533555d0 Added a service to export data from the artifact server.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
29
71a7533555d0 Added a service to export data from the artifact server.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
30 /**
71a7533555d0 Added a service to export data from the artifact server.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
31 * This service is used to request a data export from the artifact server. The
71a7533555d0 Added a service to export data from the artifact server.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
32 * response is directed directly to the output stream, so that a file dialog is
71a7533555d0 Added a service to export data from the artifact server.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
33 * opened.
71a7533555d0 Added a service to export data from the artifact server.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
34 *
71a7533555d0 Added a service to export data from the artifact server.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
35 * @author <a href="mailto:ingo.weinzierl@intevation.de">Ingo Weinzierl</a>
71a7533555d0 Added a service to export data from the artifact server.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
36 */
71a7533555d0 Added a service to export data from the artifact server.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
37 public class ExportServiceImpl
71a7533555d0 Added a service to export data from the artifact server.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
38 extends HttpServlet
71a7533555d0 Added a service to export data from the artifact server.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
39 {
1367
ab8eb2f544f2 Replaced stdout and stderr logging with log4j loggers in server classes.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 432
diff changeset
40 private static final Logger logger =
ab8eb2f544f2 Replaced stdout and stderr logging with log4j loggers in server classes.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 432
diff changeset
41 Logger.getLogger(ExportServiceImpl.class);
ab8eb2f544f2 Replaced stdout and stderr logging with log4j loggers in server classes.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 432
diff changeset
42
ab8eb2f544f2 Replaced stdout and stderr logging with log4j loggers in server classes.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 432
diff changeset
43
274
71a7533555d0 Added a service to export data from the artifact server.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
44 public void doGet(HttpServletRequest req, HttpServletResponse resp) {
1367
ab8eb2f544f2 Replaced stdout and stderr logging with log4j loggers in server classes.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 432
diff changeset
45 logger.info("ExportServiceImpl.doGet");
274
71a7533555d0 Added a service to export data from the artifact server.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
46
71a7533555d0 Added a service to export data from the artifact server.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
47 try {
71a7533555d0 Added a service to export data from the artifact server.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
48 OutputStream out = resp.getOutputStream();
71a7533555d0 Added a service to export data from the artifact server.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
49
3500
def13f23bb27 Removed superfluous import. Removed some inner whitespace. Made debug output conditional.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3499
diff changeset
50 String url = getServletContext().getInitParameter("server-url");
def13f23bb27 Removed superfluous import. Removed some inner whitespace. Made debug output conditional.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3499
diff changeset
51 String uuid = req.getParameter("uuid");
4912
94b95e002fb9 Added filename to export url.
Raimund Renkert <rrenkert@intevation.de>
parents: 3500
diff changeset
52 String name = req.getParameter("name");
3500
def13f23bb27 Removed superfluous import. Removed some inner whitespace. Made debug output conditional.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3499
diff changeset
53 String mode = req.getParameter("mode");
def13f23bb27 Removed superfluous import. Removed some inner whitespace. Made debug output conditional.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3499
diff changeset
54 String type = req.getParameter("type");
def13f23bb27 Removed superfluous import. Removed some inner whitespace. Made debug output conditional.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3499
diff changeset
55 String locale = req.getParameter("locale");
def13f23bb27 Removed superfluous import. Removed some inner whitespace. Made debug output conditional.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3499
diff changeset
56 String km = req.getParameter("km");
4912
94b95e002fb9 Added filename to export url.
Raimund Renkert <rrenkert@intevation.de>
parents: 3500
diff changeset
57 String fn = name + "." + type;
274
71a7533555d0 Added a service to export data from the artifact server.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
58
71a7533555d0 Added a service to export data from the artifact server.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
59 resp.setHeader("Content-Disposition", "attachment;filename=" + fn);
71a7533555d0 Added a service to export data from the artifact server.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
60
3500
def13f23bb27 Removed superfluous import. Removed some inner whitespace. Made debug output conditional.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3499
diff changeset
61 if (logger.isDebugEnabled()) {
def13f23bb27 Removed superfluous import. Removed some inner whitespace. Made debug output conditional.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3499
diff changeset
62 logger.debug("Request " + type + " export.");
def13f23bb27 Removed superfluous import. Removed some inner whitespace. Made debug output conditional.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3499
diff changeset
63 }
3499
17c66d38f095 FixA: Added AT file export to FixAnalysis W/Q.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1425
diff changeset
64
17c66d38f095 FixA: Added AT file export to FixAnalysis W/Q.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1425
diff changeset
65 Document attr = null;
17c66d38f095 FixA: Added AT file export to FixAnalysis W/Q.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1425
diff changeset
66 if (km != null && km.length() > 0) {
17c66d38f095 FixA: Added AT file export to FixAnalysis W/Q.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1425
diff changeset
67 attr = XMLUtils.newDocument();
17c66d38f095 FixA: Added AT file export to FixAnalysis W/Q.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1425
diff changeset
68 XMLUtils.ElementCreator ec =
17c66d38f095 FixA: Added AT file export to FixAnalysis W/Q.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1425
diff changeset
69 new XMLUtils.ElementCreator(attr, null, null);
17c66d38f095 FixA: Added AT file export to FixAnalysis W/Q.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1425
diff changeset
70 Element e = ec.create("km");
17c66d38f095 FixA: Added AT file export to FixAnalysis W/Q.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1425
diff changeset
71 e.setTextContent(km);
17c66d38f095 FixA: Added AT file export to FixAnalysis W/Q.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1425
diff changeset
72 attr.appendChild(e);
17c66d38f095 FixA: Added AT file export to FixAnalysis W/Q.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1425
diff changeset
73 }
274
71a7533555d0 Added a service to export data from the artifact server.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
74 Document request = ClientProtocolUtils.newOutCollectionDocument(
3499
17c66d38f095 FixA: Added AT file export to FixAnalysis W/Q.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1425
diff changeset
75 uuid, mode, type, attr);
1425
bc06a671ef60 Removed the URL parameter from service calls. The service
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1367
diff changeset
76 HttpClient client = new HttpClientImpl(url, locale);
274
71a7533555d0 Added a service to export data from the artifact server.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
77 client.collectionOut(request, uuid, mode, out);
71a7533555d0 Added a service to export data from the artifact server.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
78
71a7533555d0 Added a service to export data from the artifact server.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
79 out.close();
71a7533555d0 Added a service to export data from the artifact server.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
80 out.flush();
71a7533555d0 Added a service to export data from the artifact server.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
81 }
71a7533555d0 Added a service to export data from the artifact server.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
82 catch (IOException ioe) {
1367
ab8eb2f544f2 Replaced stdout and stderr logging with log4j loggers in server classes.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 432
diff changeset
83 logger.error(ioe, ioe);
274
71a7533555d0 Added a service to export data from the artifact server.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
84 }
71a7533555d0 Added a service to export data from the artifact server.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
85 }
71a7533555d0 Added a service to export data from the artifact server.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
86 }
71a7533555d0 Added a service to export data from the artifact server.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
87 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org