annotate gnv/src/main/java/de/intevation/gnv/action/WMSAction.java @ 970:d91ffd0e8239

Some small xpath changes for wms output regarding rev1134 (issue198). gnv/trunk@1135 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Ingo Weinzierl <ingo.weinzierl@intevation.de>
date Thu, 27 May 2010 16:51:52 +0000
parents f550bd27a3f1
children d1ed5c51c0de
rev   line source
570
cbd397712ecf Render an OpenLayers map with the layer even published after triggering shapefile and mapfile creation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
1 package de.intevation.gnv.action;
cbd397712ecf Render an OpenLayers map with the layer even published after triggering shapefile and mapfile creation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
2
683
d49e8695786c Ordered imports. Removed needless imports. Removed empty headers.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 681
diff changeset
3 import de.intevation.gnv.action.sessionmodel.DiagrammOptions;
d49e8695786c Ordered imports. Removed needless imports. Removed empty headers.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 681
diff changeset
4 import de.intevation.gnv.action.sessionmodel.SessionModel;
d49e8695786c Ordered imports. Removed needless imports. Removed empty headers.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 681
diff changeset
5 import de.intevation.gnv.action.sessionmodel.SessionModelFactory;
d49e8695786c Ordered imports. Removed needless imports. Removed empty headers.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 681
diff changeset
6
d49e8695786c Ordered imports. Removed needless imports. Removed empty headers.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 681
diff changeset
7 import de.intevation.gnv.artifactdatabase.client.ArtifactDatabaseClient;
d49e8695786c Ordered imports. Removed needless imports. Removed empty headers.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 681
diff changeset
8 import de.intevation.gnv.artifactdatabase.client.ArtifactDatabaseClientFactory;
d49e8695786c Ordered imports. Removed needless imports. Removed empty headers.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 681
diff changeset
9
d49e8695786c Ordered imports. Removed needless imports. Removed empty headers.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 681
diff changeset
10 import de.intevation.gnv.artifactdatabase.objects.ArtifactObject;
d49e8695786c Ordered imports. Removed needless imports. Removed empty headers.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 681
diff changeset
11 import de.intevation.gnv.artifactdatabase.objects.DefaultInputParameter;
d49e8695786c Ordered imports. Removed needless imports. Removed empty headers.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 681
diff changeset
12 import de.intevation.gnv.artifactdatabase.objects.InputParameter;
d49e8695786c Ordered imports. Removed needless imports. Removed empty headers.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 681
diff changeset
13 import de.intevation.gnv.artifactdatabase.objects.OutputMode;
d49e8695786c Ordered imports. Removed needless imports. Removed empty headers.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 681
diff changeset
14 import de.intevation.gnv.artifactdatabase.objects.OutputParameter;
d49e8695786c Ordered imports. Removed needless imports. Removed empty headers.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 681
diff changeset
15
d49e8695786c Ordered imports. Removed needless imports. Removed empty headers.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 681
diff changeset
16 import de.intevation.gnv.util.XMLUtils;
d49e8695786c Ordered imports. Removed needless imports. Removed empty headers.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 681
diff changeset
17
680
ba3370dbc8c5 Parse time to live of a wms-layer from meta document and show it in html gui (issue197).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 677
diff changeset
18 import java.text.DateFormat;
683
d49e8695786c Ordered imports. Removed needless imports. Removed empty headers.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 681
diff changeset
19
668
ccd47d9887ec Added an options panel for wms customization (issue198).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 585
diff changeset
20 import java.util.ArrayList;
ccd47d9887ec Added an options panel for wms customization (issue198).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 585
diff changeset
21 import java.util.Collection;
680
ba3370dbc8c5 Parse time to live of a wms-layer from meta document and show it in html gui (issue197).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 677
diff changeset
22 import java.util.Date;
668
ccd47d9887ec Added an options panel for wms customization (issue198).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 585
diff changeset
23 import java.util.Iterator;
ccd47d9887ec Added an options panel for wms customization (issue198).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 585
diff changeset
24
570
cbd397712ecf Render an OpenLayers map with the layer even published after triggering shapefile and mapfile creation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
25 import javax.servlet.http.HttpServletRequest;
cbd397712ecf Render an OpenLayers map with the layer even published after triggering shapefile and mapfile creation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
26 import javax.servlet.http.HttpServletResponse;
cbd397712ecf Render an OpenLayers map with the layer even published after triggering shapefile and mapfile creation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
27
cbd397712ecf Render an OpenLayers map with the layer even published after triggering shapefile and mapfile creation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
28 import org.apache.log4j.Logger;
683
d49e8695786c Ordered imports. Removed needless imports. Removed empty headers.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 681
diff changeset
29
570
cbd397712ecf Render an OpenLayers map with the layer even published after triggering shapefile and mapfile creation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
30 import org.apache.struts.action.ActionForm;
cbd397712ecf Render an OpenLayers map with the layer even published after triggering shapefile and mapfile creation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
31 import org.apache.struts.action.ActionForward;
cbd397712ecf Render an OpenLayers map with the layer even published after triggering shapefile and mapfile creation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
32 import org.apache.struts.action.ActionMapping;
585
2e690cb2247c Show information about MapServer path and layer name after publishing calculated shapefiles as wms. Use MapServer settings configured in conf.xml to feed OpenLayers client.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 570
diff changeset
33
683
d49e8695786c Ordered imports. Removed needless imports. Removed empty headers.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 681
diff changeset
34 import org.w3c.dom.Document;
570
cbd397712ecf Render an OpenLayers map with the layer even published after triggering shapefile and mapfile creation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
35
cbd397712ecf Render an OpenLayers map with the layer even published after triggering shapefile and mapfile creation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
36 /**
690
254f062e334b Added JavaDoc.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 684
diff changeset
37 * This controller is used to publish the results of the current artifact as
254f062e334b Added JavaDoc.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 684
diff changeset
38 * WMS. The wms export mode of the artifact server is triggered which feeds a
254f062e334b Added JavaDoc.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 684
diff changeset
39 * MapServer with the given shapefiles (path to the shapefiles is stored in the
254f062e334b Added JavaDoc.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 684
diff changeset
40 * artifact). After calling this controller, the shapefiles are ready to be
254f062e334b Added JavaDoc.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 684
diff changeset
41 * queried as WMS layers.
254f062e334b Added JavaDoc.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 684
diff changeset
42 *
684
57fa8019fbdc Bring @author javadoc tags in form '@author <a href="john.doe@example.com">John Doe</a>'
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 683
diff changeset
43 * @author <a href="mailto:ingo.weinzierl@intevation.de">Ingo Weinzierl</a>
570
cbd397712ecf Render an OpenLayers map with the layer even published after triggering shapefile and mapfile creation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
44 */
cbd397712ecf Render an OpenLayers map with the layer even published after triggering shapefile and mapfile creation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
45 public class WMSAction extends DescribeUIAction {
585
2e690cb2247c Show information about MapServer path and layer name after publishing calculated shapefiles as wms. Use MapServer settings configured in conf.xml to feed OpenLayers client.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 570
diff changeset
46
2e690cb2247c Show information about MapServer path and layer name after publishing calculated shapefiles as wms. Use MapServer settings configured in conf.xml to feed OpenLayers client.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 570
diff changeset
47 public static final String XPATH_MAPSERVER_PATH =
2e690cb2247c Show information about MapServer path and layer name after publishing calculated shapefiles as wms. Use MapServer settings configured in conf.xml to feed OpenLayers client.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 570
diff changeset
48 "/art:meta/art:mapserver/art:server/text()";
2e690cb2247c Show information about MapServer path and layer name after publishing calculated shapefiles as wms. Use MapServer settings configured in conf.xml to feed OpenLayers client.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 570
diff changeset
49
2e690cb2247c Show information about MapServer path and layer name after publishing calculated shapefiles as wms. Use MapServer settings configured in conf.xml to feed OpenLayers client.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 570
diff changeset
50 public static final String XPATH_MAPSERVER_MAPFILE =
2e690cb2247c Show information about MapServer path and layer name after publishing calculated shapefiles as wms. Use MapServer settings configured in conf.xml to feed OpenLayers client.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 570
diff changeset
51 "/art:meta/art:mapserver/art:map/text()";
2e690cb2247c Show information about MapServer path and layer name after publishing calculated shapefiles as wms. Use MapServer settings configured in conf.xml to feed OpenLayers client.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 570
diff changeset
52
668
ccd47d9887ec Added an options panel for wms customization (issue198).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 585
diff changeset
53 public static final String XPATH_LAYER_TITLE =
ccd47d9887ec Added an options panel for wms customization (issue198).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 585
diff changeset
54 "/art:meta/art:layer/art:title/text()";
ccd47d9887ec Added an options panel for wms customization (issue198).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 585
diff changeset
55
970
d91ffd0e8239 Some small xpath changes for wms output regarding rev1134 (issue198).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 705
diff changeset
56 public static final String XPATH_LAYER_NAME =
d91ffd0e8239 Some small xpath changes for wms output regarding rev1134 (issue198).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 705
diff changeset
57 "/art:meta/art:layer/art:name/text()";
d91ffd0e8239 Some small xpath changes for wms output regarding rev1134 (issue198).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 705
diff changeset
58
d91ffd0e8239 Some small xpath changes for wms output regarding rev1134 (issue198).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 705
diff changeset
59 public static final String XPATH_TTL =
d91ffd0e8239 Some small xpath changes for wms output regarding rev1134 (issue198).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 705
diff changeset
60 "/art:meta/art:mapserver/art:ttl/text()";
680
ba3370dbc8c5 Parse time to live of a wms-layer from meta document and show it in html gui (issue197).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 677
diff changeset
61
570
cbd397712ecf Render an OpenLayers map with the layer even published after triggering shapefile and mapfile creation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
62 /**
cbd397712ecf Render an OpenLayers map with the layer even published after triggering shapefile and mapfile creation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
63 * the logger, used to log exceptions and additonaly information
cbd397712ecf Render an OpenLayers map with the layer even published after triggering shapefile and mapfile creation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
64 */
cbd397712ecf Render an OpenLayers map with the layer even published after triggering shapefile and mapfile creation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
65 private static Logger logger = Logger.getLogger(WMSAction.class);
cbd397712ecf Render an OpenLayers map with the layer even published after triggering shapefile and mapfile creation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
66
cbd397712ecf Render an OpenLayers map with the layer even published after triggering shapefile and mapfile creation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
67 /**
cbd397712ecf Render an OpenLayers map with the layer even published after triggering shapefile and mapfile creation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
68 * Constructor
cbd397712ecf Render an OpenLayers map with the layer even published after triggering shapefile and mapfile creation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
69 */
cbd397712ecf Render an OpenLayers map with the layer even published after triggering shapefile and mapfile creation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
70 public WMSAction() {
cbd397712ecf Render an OpenLayers map with the layer even published after triggering shapefile and mapfile creation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
71 super();
cbd397712ecf Render an OpenLayers map with the layer even published after triggering shapefile and mapfile creation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
72 }
cbd397712ecf Render an OpenLayers map with the layer even published after triggering shapefile and mapfile creation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
73
cbd397712ecf Render an OpenLayers map with the layer even published after triggering shapefile and mapfile creation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
74 @Override
cbd397712ecf Render an OpenLayers map with the layer even published after triggering shapefile and mapfile creation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
75 public ActionForward execute(ActionMapping mapping, ActionForm form,
cbd397712ecf Render an OpenLayers map with the layer even published after triggering shapefile and mapfile creation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
76 HttpServletRequest request,
cbd397712ecf Render an OpenLayers map with the layer even published after triggering shapefile and mapfile creation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
77 HttpServletResponse response) throws Exception {
cbd397712ecf Render an OpenLayers map with the layer even published after triggering shapefile and mapfile creation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
78 logger.debug("WMSAction.execute");
cbd397712ecf Render an OpenLayers map with the layer even published after triggering shapefile and mapfile creation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
79 try {
cbd397712ecf Render an OpenLayers map with the layer even published after triggering shapefile and mapfile creation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
80 SessionModel sm = SessionModelFactory.getInstance().getSessionModel(
cbd397712ecf Render an OpenLayers map with the layer even published after triggering shapefile and mapfile creation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
81 request);
668
ccd47d9887ec Added an options panel for wms customization (issue198).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 585
diff changeset
82
ccd47d9887ec Added an options panel for wms customization (issue198).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 585
diff changeset
83 OutputMode outputMode = sm.getOutputMode("wms");
ccd47d9887ec Added an options panel for wms customization (issue198).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 585
diff changeset
84 Collection<InputParameter> ips = null;
ccd47d9887ec Added an options panel for wms customization (issue198).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 585
diff changeset
85 if (outputMode != null) {
ccd47d9887ec Added an options panel for wms customization (issue198).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 585
diff changeset
86 Collection<OutputParameter> inputParameter =
ccd47d9887ec Added an options panel for wms customization (issue198).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 585
diff changeset
87 outputMode.getOutputParameters();
ccd47d9887ec Added an options panel for wms customization (issue198).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 585
diff changeset
88
ccd47d9887ec Added an options panel for wms customization (issue198).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 585
diff changeset
89 if (inputParameter != null) {
ccd47d9887ec Added an options panel for wms customization (issue198).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 585
diff changeset
90 ips = new ArrayList<InputParameter>(inputParameter.size());
ccd47d9887ec Added an options panel for wms customization (issue198).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 585
diff changeset
91 Iterator<OutputParameter> it = inputParameter.iterator();
ccd47d9887ec Added an options panel for wms customization (issue198).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 585
diff changeset
92 DiagrammOptions diagrammOptions = new DiagrammOptions();
ccd47d9887ec Added an options panel for wms customization (issue198).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 585
diff changeset
93
ccd47d9887ec Added an options panel for wms customization (issue198).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 585
diff changeset
94 int params = 0;
ccd47d9887ec Added an options panel for wms customization (issue198).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 585
diff changeset
95 while (it.hasNext()) {
ccd47d9887ec Added an options panel for wms customization (issue198).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 585
diff changeset
96 String name = it.next().getName();
ccd47d9887ec Added an options panel for wms customization (issue198).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 585
diff changeset
97 String[] values = request.getParameterValues(name);
ccd47d9887ec Added an options panel for wms customization (issue198).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 585
diff changeset
98 String value = request.getParameter(name);
ccd47d9887ec Added an options panel for wms customization (issue198).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 585
diff changeset
99 InputParameter ip = new DefaultInputParameter(name,
705
f550bd27a3f1 Html characters in strings inserted by the user are quoted (issue221).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 690
diff changeset
100 encode(values));
668
ccd47d9887ec Added an options panel for wms customization (issue198).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 585
diff changeset
101 ips.add(ip);
ccd47d9887ec Added an options panel for wms customization (issue198).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 585
diff changeset
102
ccd47d9887ec Added an options panel for wms customization (issue198).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 585
diff changeset
103 if (value != null) {
ccd47d9887ec Added an options panel for wms customization (issue198).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 585
diff changeset
104 ++params;
705
f550bd27a3f1 Html characters in strings inserted by the user are quoted (issue221).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 690
diff changeset
105 diagrammOptions.setValue(name, encode(value));
668
ccd47d9887ec Added an options panel for wms customization (issue198).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 585
diff changeset
106 }
ccd47d9887ec Added an options panel for wms customization (issue198).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 585
diff changeset
107 }
ccd47d9887ec Added an options panel for wms customization (issue198).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 585
diff changeset
108
ccd47d9887ec Added an options panel for wms customization (issue198).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 585
diff changeset
109 if (params > 0) {
ccd47d9887ec Added an options panel for wms customization (issue198).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 585
diff changeset
110 sm.setDiagrammOptions(diagrammOptions);
ccd47d9887ec Added an options panel for wms customization (issue198).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 585
diff changeset
111 }
ccd47d9887ec Added an options panel for wms customization (issue198).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 585
diff changeset
112 }
ccd47d9887ec Added an options panel for wms customization (issue198).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 585
diff changeset
113 }
ccd47d9887ec Added an options panel for wms customization (issue198).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 585
diff changeset
114
570
cbd397712ecf Render an OpenLayers map with the layer even published after triggering shapefile and mapfile creation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
115 ArtifactObject artifact = sm.getCurrentArtifact();
cbd397712ecf Render an OpenLayers map with the layer even published after triggering shapefile and mapfile creation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
116
cbd397712ecf Render an OpenLayers map with the layer even published after triggering shapefile and mapfile creation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
117 ArtifactDatabaseClientFactory factory =
cbd397712ecf Render an OpenLayers map with the layer even published after triggering shapefile and mapfile creation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
118 ArtifactDatabaseClientFactory.getInstance();
cbd397712ecf Render an OpenLayers map with the layer even published after triggering shapefile and mapfile creation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
119 ArtifactDatabaseClient adc = factory.getArtifactDatabaseClient(
cbd397712ecf Render an OpenLayers map with the layer even published after triggering shapefile and mapfile creation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
120 getLocale(request));
cbd397712ecf Render an OpenLayers map with the layer even published after triggering shapefile and mapfile creation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
121 ArtifactObject artifactfactory = sm.getSelectedArtifactFactory();
cbd397712ecf Render an OpenLayers map with the layer even published after triggering shapefile and mapfile creation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
122
cbd397712ecf Render an OpenLayers map with the layer even published after triggering shapefile and mapfile creation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
123 // do wms publishing
668
ccd47d9887ec Added an options panel for wms customization (issue198).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 585
diff changeset
124 Document meta = adc.publishWMS(artifactfactory,artifact,ips);
585
2e690cb2247c Show information about MapServer path and layer name after publishing calculated shapefiles as wms. Use MapServer settings configured in conf.xml to feed OpenLayers client.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 570
diff changeset
125 String mapserverPath = XMLUtils.getStringXPath(
2e690cb2247c Show information about MapServer path and layer name after publishing calculated shapefiles as wms. Use MapServer settings configured in conf.xml to feed OpenLayers client.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 570
diff changeset
126 meta, XPATH_MAPSERVER_PATH);
2e690cb2247c Show information about MapServer path and layer name after publishing calculated shapefiles as wms. Use MapServer settings configured in conf.xml to feed OpenLayers client.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 570
diff changeset
127 String mapfilePath = XMLUtils.getStringXPath(
2e690cb2247c Show information about MapServer path and layer name after publishing calculated shapefiles as wms. Use MapServer settings configured in conf.xml to feed OpenLayers client.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 570
diff changeset
128 meta, XPATH_MAPSERVER_MAPFILE);
668
ccd47d9887ec Added an options panel for wms customization (issue198).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 585
diff changeset
129 String layer = XMLUtils.getStringXPath(
970
d91ffd0e8239 Some small xpath changes for wms output regarding rev1134 (issue198).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 705
diff changeset
130 meta, XPATH_LAYER_NAME);
680
ba3370dbc8c5 Parse time to live of a wms-layer from meta document and show it in html gui (issue197).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 677
diff changeset
131 String tmpTTL = XMLUtils.getStringXPath(
970
d91ffd0e8239 Some small xpath changes for wms output regarding rev1134 (issue198).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 705
diff changeset
132 meta, XPATH_TTL);
668
ccd47d9887ec Added an options panel for wms customization (issue198).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 585
diff changeset
133 layer = layer != null ? layer : artifact.getId();
585
2e690cb2247c Show information about MapServer path and layer name after publishing calculated shapefiles as wms. Use MapServer settings configured in conf.xml to feed OpenLayers client.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 570
diff changeset
134
680
ba3370dbc8c5 Parse time to live of a wms-layer from meta document and show it in html gui (issue197).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 677
diff changeset
135 String ttl = null;
ba3370dbc8c5 Parse time to live of a wms-layer from meta document and show it in html gui (issue197).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 677
diff changeset
136 if (tmpTTL != null) {
ba3370dbc8c5 Parse time to live of a wms-layer from meta document and show it in html gui (issue197).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 677
diff changeset
137 DateFormat df = DateFormat.getDateTimeInstance(
ba3370dbc8c5 Parse time to live of a wms-layer from meta document and show it in html gui (issue197).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 677
diff changeset
138 DateFormat.LONG,
ba3370dbc8c5 Parse time to live of a wms-layer from meta document and show it in html gui (issue197).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 677
diff changeset
139 DateFormat.LONG,
ba3370dbc8c5 Parse time to live of a wms-layer from meta document and show it in html gui (issue197).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 677
diff changeset
140 request.getLocale());
681
15ac78a91d1b Removed trailing whitespace.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 680
diff changeset
141
680
ba3370dbc8c5 Parse time to live of a wms-layer from meta document and show it in html gui (issue197).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 677
diff changeset
142 try {
ba3370dbc8c5 Parse time to live of a wms-layer from meta document and show it in html gui (issue197).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 677
diff changeset
143 long tmp = Long.parseLong(tmpTTL);
ba3370dbc8c5 Parse time to live of a wms-layer from meta document and show it in html gui (issue197).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 677
diff changeset
144 ttl = df.format(new Date(tmp));
ba3370dbc8c5 Parse time to live of a wms-layer from meta document and show it in html gui (issue197).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 677
diff changeset
145 }
ba3370dbc8c5 Parse time to live of a wms-layer from meta document and show it in html gui (issue197).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 677
diff changeset
146 catch (NumberFormatException nfe) {
ba3370dbc8c5 Parse time to live of a wms-layer from meta document and show it in html gui (issue197).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 677
diff changeset
147 logger.error("Error while parsing time to live.");
ba3370dbc8c5 Parse time to live of a wms-layer from meta document and show it in html gui (issue197).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 677
diff changeset
148 logger.error(nfe,nfe);
ba3370dbc8c5 Parse time to live of a wms-layer from meta document and show it in html gui (issue197).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 677
diff changeset
149
ba3370dbc8c5 Parse time to live of a wms-layer from meta document and show it in html gui (issue197).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 677
diff changeset
150 ttl = "";
ba3370dbc8c5 Parse time to live of a wms-layer from meta document and show it in html gui (issue197).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 677
diff changeset
151 }
ba3370dbc8c5 Parse time to live of a wms-layer from meta document and show it in html gui (issue197).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 677
diff changeset
152 }
ba3370dbc8c5 Parse time to live of a wms-layer from meta document and show it in html gui (issue197).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 677
diff changeset
153
668
ccd47d9887ec Added an options panel for wms customization (issue198).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 585
diff changeset
154 if (logger.isDebugEnabled()) {
ccd47d9887ec Added an options panel for wms customization (issue198).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 585
diff changeset
155 logger.debug("Mapserver path: " + mapserverPath);
ccd47d9887ec Added an options panel for wms customization (issue198).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 585
diff changeset
156 logger.debug("Mapfile path: " + mapfilePath);
970
d91ffd0e8239 Some small xpath changes for wms output regarding rev1134 (issue198).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 705
diff changeset
157 logger.debug("Layer: " + layer);
680
ba3370dbc8c5 Parse time to live of a wms-layer from meta document and show it in html gui (issue197).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 677
diff changeset
158 logger.debug("Layer ttl: " + ttl);
668
ccd47d9887ec Added an options panel for wms customization (issue198).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 585
diff changeset
159 }
ccd47d9887ec Added an options panel for wms customization (issue198).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 585
diff changeset
160
ccd47d9887ec Added an options panel for wms customization (issue198).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 585
diff changeset
161 request.setAttribute("wms", true);
585
2e690cb2247c Show information about MapServer path and layer name after publishing calculated shapefiles as wms. Use MapServer settings configured in conf.xml to feed OpenLayers client.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 570
diff changeset
162 request.setAttribute("mapserver", mapserverPath);
2e690cb2247c Show information about MapServer path and layer name after publishing calculated shapefiles as wms. Use MapServer settings configured in conf.xml to feed OpenLayers client.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 570
diff changeset
163 request.setAttribute("mapfile", mapfilePath);
668
ccd47d9887ec Added an options panel for wms customization (issue198).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 585
diff changeset
164 request.setAttribute("layer", layer);
680
ba3370dbc8c5 Parse time to live of a wms-layer from meta document and show it in html gui (issue197).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 677
diff changeset
165 request.setAttribute("ttl", ttl);
681
15ac78a91d1b Removed trailing whitespace.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 680
diff changeset
166 if (mapserverPath != null &&
676
707e142e7d44 Improved ExceptionHandling during WMS-Publishing.
Tim Englich <tim.englich@intevation.de>
parents: 668
diff changeset
167 mapfilePath != null &&
707e142e7d44 Improved ExceptionHandling during WMS-Publishing.
Tim Englich <tim.englich@intevation.de>
parents: 668
diff changeset
168 layer != null){
677
8315b0a40329 Improved ExceptionHandling during WMS-Publishing.
Tim Englich <tim.englich@intevation.de>
parents: 676
diff changeset
169 request.setAttribute("wms_published", Boolean.TRUE);
676
707e142e7d44 Improved ExceptionHandling during WMS-Publishing.
Tim Englich <tim.englich@intevation.de>
parents: 668
diff changeset
170 return super.execute(mapping, form, request, response);
707e142e7d44 Improved ExceptionHandling during WMS-Publishing.
Tim Englich <tim.englich@intevation.de>
parents: 668
diff changeset
171 }else{
970
d91ffd0e8239 Some small xpath changes for wms output regarding rev1134 (issue198).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 705
diff changeset
172 return super.execute(mapping, form, request, response);
676
707e142e7d44 Improved ExceptionHandling during WMS-Publishing.
Tim Englich <tim.englich@intevation.de>
parents: 668
diff changeset
173 }
570
cbd397712ecf Render an OpenLayers map with the layer even published after triggering shapefile and mapfile creation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
174 }
cbd397712ecf Render an OpenLayers map with the layer even published after triggering shapefile and mapfile creation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
175 catch (Exception e) {
cbd397712ecf Render an OpenLayers map with the layer even published after triggering shapefile and mapfile creation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
176 logger.error(e, e);
cbd397712ecf Render an OpenLayers map with the layer even published after triggering shapefile and mapfile creation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
177 request.setAttribute(
cbd397712ecf Render an OpenLayers map with the layer even published after triggering shapefile and mapfile creation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
178 CommunicationKeys.REQUEST_EXCEPTION_MESSAGE_ID,
cbd397712ecf Render an OpenLayers map with the layer even published after triggering shapefile and mapfile creation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
179 e.getMessage());
cbd397712ecf Render an OpenLayers map with the layer even published after triggering shapefile and mapfile creation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
180
cbd397712ecf Render an OpenLayers map with the layer even published after triggering shapefile and mapfile creation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
181 return super.getExceptionForward(mapping);
cbd397712ecf Render an OpenLayers map with the layer even published after triggering shapefile and mapfile creation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
182 }
cbd397712ecf Render an OpenLayers map with the layer even published after triggering shapefile and mapfile creation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
183 }
cbd397712ecf Render an OpenLayers map with the layer even published after triggering shapefile and mapfile creation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
184 }
cbd397712ecf Render an OpenLayers map with the layer even published after triggering shapefile and mapfile creation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
185 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf-8 :

http://dive4elements.wald.intevation.org