annotate gnv-artifacts/src/main/java/de/intevation/gnv/utils/MapfileGenerator.java @ 625:40ead2d2a08d

Restructured configuration, removed duplicated entry and store config information in MapfileGenerator to avoid reading config file every time while updating mapfile. gnv-artifacts/trunk@697 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Ingo Weinzierl <ingo.weinzierl@intevation.de>
date Mon, 22 Feb 2010 11:29:34 +0000
parents 6a3a1da5e680
children 9ba6bb85d6dd
rev   line source
621
567216b56983 Added MapfileGenerator stub and MapfileGenerator calls after writing and removing shapefiles.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
1 package de.intevation.gnv.utils;
567216b56983 Added MapfileGenerator stub and MapfileGenerator calls after writing and removing shapefiles.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
2
622
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
3 import de.intevation.artifactdatabase.Config;
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
4 import de.intevation.artifactdatabase.XMLUtils;
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
5 import de.intevation.artifacts.ArtifactNamespaceContext;
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
6 import de.intevation.gnv.wms.LayerInfo;
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
7
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
8 import java.io.File;
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
9 import java.io.FileNotFoundException;
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
10 import java.io.FileWriter;
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
11 import java.io.IOException;
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
12 import java.io.StringWriter;
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
13 import java.io.Writer;
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
14 import java.util.ArrayList;
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
15 import java.util.Date;
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
16 import java.util.List;
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
17
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
18 import javax.xml.xpath.XPathConstants;
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
19
621
567216b56983 Added MapfileGenerator stub and MapfileGenerator calls after writing and removing shapefiles.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
20 import org.apache.log4j.Logger;
622
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
21
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
22 import org.apache.velocity.Template;
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
23 import org.apache.velocity.VelocityContext;
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
24 import org.apache.velocity.app.VelocityEngine;
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
25
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
26 import org.w3c.dom.Document;
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
27 import org.w3c.dom.Node;
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
28 import org.w3c.dom.NodeList;
621
567216b56983 Added MapfileGenerator stub and MapfileGenerator calls after writing and removing shapefiles.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
29
625
40ead2d2a08d Restructured configuration, removed duplicated entry and store config information in MapfileGenerator to avoid reading config file every time while updating mapfile.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 624
diff changeset
30
621
567216b56983 Added MapfileGenerator stub and MapfileGenerator calls after writing and removing shapefiles.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
31 /**
567216b56983 Added MapfileGenerator stub and MapfileGenerator calls after writing and removing shapefiles.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
32 * @author Ingo Weinzierl (ingo.weinzierl@intevation.de)
567216b56983 Added MapfileGenerator stub and MapfileGenerator calls after writing and removing shapefiles.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
33 */
567216b56983 Added MapfileGenerator stub and MapfileGenerator calls after writing and removing shapefiles.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
34 public class MapfileGenerator
567216b56983 Added MapfileGenerator stub and MapfileGenerator calls after writing and removing shapefiles.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
35 extends Thread
567216b56983 Added MapfileGenerator stub and MapfileGenerator calls after writing and removing shapefiles.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
36 {
622
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
37 public static final String TEMPLATE_PATH =
625
40ead2d2a08d Restructured configuration, removed duplicated entry and store config information in MapfileGenerator to avoid reading config file every time while updating mapfile.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 624
diff changeset
38 "/artifact-database/gnv/map-generator/templates/path/text()";
622
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
39
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
40 public static final String TEMPLATE_MAPFILE =
625
40ead2d2a08d Restructured configuration, removed duplicated entry and store config information in MapfileGenerator to avoid reading config file every time while updating mapfile.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 624
diff changeset
41 "/artifact-database/gnv/map-generator/templates/maptemplate/text()";
621
567216b56983 Added MapfileGenerator stub and MapfileGenerator calls after writing and removing shapefiles.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
42
567216b56983 Added MapfileGenerator stub and MapfileGenerator calls after writing and removing shapefiles.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
43 public static final String MAPFILE_PATH =
625
40ead2d2a08d Restructured configuration, removed duplicated entry and store config information in MapfileGenerator to avoid reading config file every time while updating mapfile.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 624
diff changeset
44 "/artifact-database/gnv/map-generator/mapfile/@path";
622
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
45
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
46 public static final String SHAPEFILE_BASE_DIR =
625
40ead2d2a08d Restructured configuration, removed duplicated entry and store config information in MapfileGenerator to avoid reading config file every time while updating mapfile.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 624
diff changeset
47 "/artifact-database/gnv/shapefile-directory/@path";
622
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
48
624
6a3a1da5e680 Improved velocity configuration.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 623
diff changeset
49 public static final String VELOCITY_LOGFILE =
6a3a1da5e680 Improved velocity configuration.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 623
diff changeset
50 "/artifact-database/velocity/logfile/@path";
6a3a1da5e680 Improved velocity configuration.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 623
diff changeset
51
622
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
52 public static final String META_FILE_NAME = "meta.xml";
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
53
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
54 public static final String XPATH_LAYER = "/art:meta/art:layer";
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
55 public static final String XPATH_LAYER_NAME = "art:name";
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
56 public static final String XPATH_LAYER_TYPE = "art:type";
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
57 public static final String XPATH_LAYER_DATA = "art:data";
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
58 public static final String XPATH_LAYER_STATUS = "art:status";
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
59 public static final String XPATH_LAYER_MODEL = "art:model";
621
567216b56983 Added MapfileGenerator stub and MapfileGenerator calls after writing and removing shapefiles.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
60
567216b56983 Added MapfileGenerator stub and MapfileGenerator calls after writing and removing shapefiles.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
61 protected static final long SLEEPTIME = 10 * 1000L; // 10 seconds
567216b56983 Added MapfileGenerator stub and MapfileGenerator calls after writing and removing shapefiles.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
62
567216b56983 Added MapfileGenerator stub and MapfileGenerator calls after writing and removing shapefiles.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
63 private static Logger logger = Logger.getLogger(MapfileGenerator.class);
567216b56983 Added MapfileGenerator stub and MapfileGenerator calls after writing and removing shapefiles.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
64
567216b56983 Added MapfileGenerator stub and MapfileGenerator calls after writing and removing shapefiles.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
65 private static MapfileGenerator instance;
567216b56983 Added MapfileGenerator stub and MapfileGenerator calls after writing and removing shapefiles.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
66
625
40ead2d2a08d Restructured configuration, removed duplicated entry and store config information in MapfileGenerator to avoid reading config file every time while updating mapfile.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 624
diff changeset
67 private File mapfile;
40ead2d2a08d Restructured configuration, removed duplicated entry and store config information in MapfileGenerator to avoid reading config file every time while updating mapfile.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 624
diff changeset
68 private String shapefileDirectory;
40ead2d2a08d Restructured configuration, removed duplicated entry and store config information in MapfileGenerator to avoid reading config file every time while updating mapfile.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 624
diff changeset
69 private String templatePath;
40ead2d2a08d Restructured configuration, removed duplicated entry and store config information in MapfileGenerator to avoid reading config file every time while updating mapfile.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 624
diff changeset
70 private String velocityLogfile;
40ead2d2a08d Restructured configuration, removed duplicated entry and store config information in MapfileGenerator to avoid reading config file every time while updating mapfile.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 624
diff changeset
71
622
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
72 private VelocityEngine velocityEngine;
621
567216b56983 Added MapfileGenerator stub and MapfileGenerator calls after writing and removing shapefiles.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
73 private boolean lock[];
567216b56983 Added MapfileGenerator stub and MapfileGenerator calls after writing and removing shapefiles.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
74
567216b56983 Added MapfileGenerator stub and MapfileGenerator calls after writing and removing shapefiles.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
75
567216b56983 Added MapfileGenerator stub and MapfileGenerator calls after writing and removing shapefiles.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
76
567216b56983 Added MapfileGenerator stub and MapfileGenerator calls after writing and removing shapefiles.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
77 private MapfileGenerator() {
567216b56983 Added MapfileGenerator stub and MapfileGenerator calls after writing and removing shapefiles.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
78 lock = new boolean[1];
567216b56983 Added MapfileGenerator stub and MapfileGenerator calls after writing and removing shapefiles.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
79 }
567216b56983 Added MapfileGenerator stub and MapfileGenerator calls after writing and removing shapefiles.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
80
567216b56983 Added MapfileGenerator stub and MapfileGenerator calls after writing and removing shapefiles.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
81
567216b56983 Added MapfileGenerator stub and MapfileGenerator calls after writing and removing shapefiles.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
82 public static void main(String[] args) {
622
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
83 // TODO IMPLEMENT ME
621
567216b56983 Added MapfileGenerator stub and MapfileGenerator calls after writing and removing shapefiles.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
84 }
567216b56983 Added MapfileGenerator stub and MapfileGenerator calls after writing and removing shapefiles.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
85
567216b56983 Added MapfileGenerator stub and MapfileGenerator calls after writing and removing shapefiles.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
86
567216b56983 Added MapfileGenerator stub and MapfileGenerator calls after writing and removing shapefiles.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
87 public static synchronized MapfileGenerator getInstance() {
567216b56983 Added MapfileGenerator stub and MapfileGenerator calls after writing and removing shapefiles.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
88 if (instance == null) {
567216b56983 Added MapfileGenerator stub and MapfileGenerator calls after writing and removing shapefiles.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
89 instance = new MapfileGenerator();
567216b56983 Added MapfileGenerator stub and MapfileGenerator calls after writing and removing shapefiles.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
90 instance.setDaemon(true);
567216b56983 Added MapfileGenerator stub and MapfileGenerator calls after writing and removing shapefiles.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
91 instance.start();
567216b56983 Added MapfileGenerator stub and MapfileGenerator calls after writing and removing shapefiles.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
92 }
567216b56983 Added MapfileGenerator stub and MapfileGenerator calls after writing and removing shapefiles.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
93
567216b56983 Added MapfileGenerator stub and MapfileGenerator calls after writing and removing shapefiles.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
94 return instance;
567216b56983 Added MapfileGenerator stub and MapfileGenerator calls after writing and removing shapefiles.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
95 }
567216b56983 Added MapfileGenerator stub and MapfileGenerator calls after writing and removing shapefiles.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
96
567216b56983 Added MapfileGenerator stub and MapfileGenerator calls after writing and removing shapefiles.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
97
567216b56983 Added MapfileGenerator stub and MapfileGenerator calls after writing and removing shapefiles.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
98 public void update() {
567216b56983 Added MapfileGenerator stub and MapfileGenerator calls after writing and removing shapefiles.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
99 synchronized (lock) {
622
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
100 logger.debug("update");
621
567216b56983 Added MapfileGenerator stub and MapfileGenerator calls after writing and removing shapefiles.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
101 lock[0] = true;
567216b56983 Added MapfileGenerator stub and MapfileGenerator calls after writing and removing shapefiles.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
102 lock.notify();
567216b56983 Added MapfileGenerator stub and MapfileGenerator calls after writing and removing shapefiles.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
103 }
567216b56983 Added MapfileGenerator stub and MapfileGenerator calls after writing and removing shapefiles.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
104 }
567216b56983 Added MapfileGenerator stub and MapfileGenerator calls after writing and removing shapefiles.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
105
567216b56983 Added MapfileGenerator stub and MapfileGenerator calls after writing and removing shapefiles.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
106
567216b56983 Added MapfileGenerator stub and MapfileGenerator calls after writing and removing shapefiles.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
107 public void run() {
622
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
108 logger.debug("Start MapfileGenerator thread...");
621
567216b56983 Added MapfileGenerator stub and MapfileGenerator calls after writing and removing shapefiles.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
109 try {
567216b56983 Added MapfileGenerator stub and MapfileGenerator calls after writing and removing shapefiles.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
110 for (;;) {
567216b56983 Added MapfileGenerator stub and MapfileGenerator calls after writing and removing shapefiles.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
111 synchronized (lock) {
567216b56983 Added MapfileGenerator stub and MapfileGenerator calls after writing and removing shapefiles.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
112 while (!lock[0]) {
567216b56983 Added MapfileGenerator stub and MapfileGenerator calls after writing and removing shapefiles.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
113 lock.wait(SLEEPTIME);
567216b56983 Added MapfileGenerator stub and MapfileGenerator calls after writing and removing shapefiles.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
114 }
567216b56983 Added MapfileGenerator stub and MapfileGenerator calls after writing and removing shapefiles.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
115 lock[0] = false;
567216b56983 Added MapfileGenerator stub and MapfileGenerator calls after writing and removing shapefiles.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
116 }
622
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
117
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
118 logger.debug("Start sync process now...");
621
567216b56983 Added MapfileGenerator stub and MapfileGenerator calls after writing and removing shapefiles.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
119 generate();
567216b56983 Added MapfileGenerator stub and MapfileGenerator calls after writing and removing shapefiles.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
120 }
567216b56983 Added MapfileGenerator stub and MapfileGenerator calls after writing and removing shapefiles.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
121 }
567216b56983 Added MapfileGenerator stub and MapfileGenerator calls after writing and removing shapefiles.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
122 catch (InterruptedException ie) {
622
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
123 logger.debug("MapfileGenerator thread got an interrupt.");
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
124 }
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
125 finally {
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
126 logger.debug("THREAD END");
621
567216b56983 Added MapfileGenerator stub and MapfileGenerator calls after writing and removing shapefiles.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
127 }
567216b56983 Added MapfileGenerator stub and MapfileGenerator calls after writing and removing shapefiles.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
128 }
567216b56983 Added MapfileGenerator stub and MapfileGenerator calls after writing and removing shapefiles.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
129
567216b56983 Added MapfileGenerator stub and MapfileGenerator calls after writing and removing shapefiles.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
130
622
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
131 protected void generate() {
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
132 File basedir = new File(getShapefileBaseDir());
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
133 List layers = new ArrayList();
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
134 searchMetaInformation(basedir, layers);
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
135 writeMapfile(layers);
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
136 }
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
137
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
138
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
139 protected VelocityEngine getVelocityEngine() {
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
140 if (velocityEngine == null) {
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
141 velocityEngine = new VelocityEngine();
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
142 try {
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
143 setupVelocity(velocityEngine);
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
144 }
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
145 catch (Exception e) {
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
146 logger.error(e, e);
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
147 return null;
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
148 }
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
149 }
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
150 return velocityEngine;
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
151 }
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
152
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
153
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
154 protected void setupVelocity(VelocityEngine engine)
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
155 throws Exception
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
156 {
624
6a3a1da5e680 Improved velocity configuration.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 623
diff changeset
157 engine.setProperty(
622
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
158 "input.encoding",
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
159 "UTF-8");
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
160
624
6a3a1da5e680 Improved velocity configuration.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 623
diff changeset
161 engine.setProperty(
6a3a1da5e680 Improved velocity configuration.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 623
diff changeset
162 VelocityEngine.RUNTIME_LOG,
6a3a1da5e680 Improved velocity configuration.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 623
diff changeset
163 getVelocityLogfile());
622
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
164
624
6a3a1da5e680 Improved velocity configuration.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 623
diff changeset
165 engine.setProperty(
6a3a1da5e680 Improved velocity configuration.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 623
diff changeset
166 "resource.loader",
6a3a1da5e680 Improved velocity configuration.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 623
diff changeset
167 "file");
622
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
168
624
6a3a1da5e680 Improved velocity configuration.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 623
diff changeset
169 engine.setProperty(
6a3a1da5e680 Improved velocity configuration.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 623
diff changeset
170 "file.resource.loader.path",
6a3a1da5e680 Improved velocity configuration.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 623
diff changeset
171 getTemplateBaseDir());
6a3a1da5e680 Improved velocity configuration.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 623
diff changeset
172
6a3a1da5e680 Improved velocity configuration.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 623
diff changeset
173 engine.init();
6a3a1da5e680 Improved velocity configuration.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 623
diff changeset
174 }
6a3a1da5e680 Improved velocity configuration.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 623
diff changeset
175
6a3a1da5e680 Improved velocity configuration.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 623
diff changeset
176
6a3a1da5e680 Improved velocity configuration.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 623
diff changeset
177 protected String getVelocityLogfile() {
6a3a1da5e680 Improved velocity configuration.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 623
diff changeset
178 if (velocityLogfile == null)
6a3a1da5e680 Improved velocity configuration.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 623
diff changeset
179 velocityLogfile = Config.getStringXPath(VELOCITY_LOGFILE);
6a3a1da5e680 Improved velocity configuration.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 623
diff changeset
180
6a3a1da5e680 Improved velocity configuration.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 623
diff changeset
181 return velocityLogfile;
622
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
182 }
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
183
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
184
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
185 protected String getTemplateBaseDir() {
625
40ead2d2a08d Restructured configuration, removed duplicated entry and store config information in MapfileGenerator to avoid reading config file every time while updating mapfile.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 624
diff changeset
186 if (templatePath == null) {
624
6a3a1da5e680 Improved velocity configuration.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 623
diff changeset
187 templatePath = Config.getStringXPath(TEMPLATE_PATH);
625
40ead2d2a08d Restructured configuration, removed duplicated entry and store config information in MapfileGenerator to avoid reading config file every time while updating mapfile.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 624
diff changeset
188 templatePath = Config.replaceConfigDir(templatePath);
40ead2d2a08d Restructured configuration, removed duplicated entry and store config information in MapfileGenerator to avoid reading config file every time while updating mapfile.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 624
diff changeset
189 }
624
6a3a1da5e680 Improved velocity configuration.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 623
diff changeset
190
6a3a1da5e680 Improved velocity configuration.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 623
diff changeset
191 return templatePath;
622
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
192 }
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
193
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
194
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
195 protected Template getTemplateByName(String model) {
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
196 if (model.indexOf(".vm") < 0) {
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
197 model = model.concat(".vm");
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
198 }
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
199
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
200 try {
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
201 VelocityEngine engine = getVelocityEngine();
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
202 if (engine == null) {
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
203 logger.error("Error while fetching VelocityEngine.");
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
204 return null;
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
205 }
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
206
624
6a3a1da5e680 Improved velocity configuration.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 623
diff changeset
207 return engine.getTemplate(model);
622
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
208 }
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
209 catch (Exception e) {
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
210 logger.warn(e, e);
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
211 }
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
212
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
213 return null;
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
214 }
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
215
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
216
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
217 protected Template getMapfileTemplate()
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
218 throws Exception
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
219 {
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
220 String mapfileName = Config.getStringXPath(TEMPLATE_MAPFILE);
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
221 return getTemplateByName(mapfileName);
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
222 }
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
223
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
224
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
225 protected String getShapefileBaseDir() {
625
40ead2d2a08d Restructured configuration, removed duplicated entry and store config information in MapfileGenerator to avoid reading config file every time while updating mapfile.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 624
diff changeset
226 if (shapefileDirectory == null) {
40ead2d2a08d Restructured configuration, removed duplicated entry and store config information in MapfileGenerator to avoid reading config file every time while updating mapfile.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 624
diff changeset
227 shapefileDirectory = Config.getStringXPath(SHAPEFILE_BASE_DIR);
40ead2d2a08d Restructured configuration, removed duplicated entry and store config information in MapfileGenerator to avoid reading config file every time while updating mapfile.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 624
diff changeset
228 shapefileDirectory = Config.replaceConfigDir(shapefileDirectory);
40ead2d2a08d Restructured configuration, removed duplicated entry and store config information in MapfileGenerator to avoid reading config file every time while updating mapfile.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 624
diff changeset
229 }
40ead2d2a08d Restructured configuration, removed duplicated entry and store config information in MapfileGenerator to avoid reading config file every time while updating mapfile.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 624
diff changeset
230
40ead2d2a08d Restructured configuration, removed duplicated entry and store config information in MapfileGenerator to avoid reading config file every time while updating mapfile.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 624
diff changeset
231 return shapefileDirectory;
40ead2d2a08d Restructured configuration, removed duplicated entry and store config information in MapfileGenerator to avoid reading config file every time while updating mapfile.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 624
diff changeset
232 }
40ead2d2a08d Restructured configuration, removed duplicated entry and store config information in MapfileGenerator to avoid reading config file every time while updating mapfile.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 624
diff changeset
233
40ead2d2a08d Restructured configuration, removed duplicated entry and store config information in MapfileGenerator to avoid reading config file every time while updating mapfile.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 624
diff changeset
234
40ead2d2a08d Restructured configuration, removed duplicated entry and store config information in MapfileGenerator to avoid reading config file every time while updating mapfile.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 624
diff changeset
235 protected File getMapfile() {
40ead2d2a08d Restructured configuration, removed duplicated entry and store config information in MapfileGenerator to avoid reading config file every time while updating mapfile.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 624
diff changeset
236 if (mapfile == null) {
40ead2d2a08d Restructured configuration, removed duplicated entry and store config information in MapfileGenerator to avoid reading config file every time while updating mapfile.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 624
diff changeset
237 String tmp = Config.getStringXPath(MAPFILE_PATH);
40ead2d2a08d Restructured configuration, removed duplicated entry and store config information in MapfileGenerator to avoid reading config file every time while updating mapfile.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 624
diff changeset
238 tmp = Config.replaceConfigDir(tmp);
40ead2d2a08d Restructured configuration, removed duplicated entry and store config information in MapfileGenerator to avoid reading config file every time while updating mapfile.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 624
diff changeset
239 mapfile = new File(tmp);
40ead2d2a08d Restructured configuration, removed duplicated entry and store config information in MapfileGenerator to avoid reading config file every time while updating mapfile.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 624
diff changeset
240 }
40ead2d2a08d Restructured configuration, removed duplicated entry and store config information in MapfileGenerator to avoid reading config file every time while updating mapfile.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 624
diff changeset
241
40ead2d2a08d Restructured configuration, removed duplicated entry and store config information in MapfileGenerator to avoid reading config file every time while updating mapfile.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 624
diff changeset
242 return mapfile;
622
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
243 }
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
244
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
245
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
246 protected void searchMetaInformation(File file, List store) {
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
247 if (file.isDirectory()) {
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
248 File[] files = file.listFiles();
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
249
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
250 if (files != null && files.length != 0) {
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
251 int size = files.length;
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
252 for (File tmp: files) {
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
253 searchMetaInformation(tmp, store);
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
254 }
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
255 }
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
256 }
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
257 else if (file.getName().equals(META_FILE_NAME)) {
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
258 LayerInfo[] info = parseMeta(file);
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
259
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
260 int infoSize = info.length;
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
261 for (int j = 0; j < infoSize; j++) {
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
262 if (info[j] != null) {
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
263 store.add(info[j]);
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
264 }
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
265 }
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
266 }
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
267 }
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
268
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
269
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
270 protected LayerInfo[] parseMeta(File file) {
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
271 Document meta = XMLUtils.parseDocument(file);
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
272 List layers = new ArrayList();
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
273
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
274 NodeList layerset = (NodeList) XMLUtils.xpath(
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
275 meta,
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
276 XPATH_LAYER,
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
277 XPathConstants.NODESET,
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
278 ArtifactNamespaceContext.INSTANCE);
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
279
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
280 int size = layerset.getLength();
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
281 for (int i = 0; i < size; i++) {
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
282 LayerInfo info = parseLayer(layerset.item(i));
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
283
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
284 if (info != null && !info.isEmpty() && !info.isBroken()) {
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
285 layers.add(info);
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
286 }
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
287 else {
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
288 logger.warn("Found broken LayerInfo object.");
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
289 }
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
290 }
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
291
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
292 return (LayerInfo[]) layers.toArray(new LayerInfo[layers.size()]);
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
293 }
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
294
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
295
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
296 protected LayerInfo parseLayer(Node layer) {
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
297 LayerInfo info = new LayerInfo();
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
298
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
299 String name = parseLayerAttr(layer, XPATH_LAYER_NAME);
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
300 if (name != null && !name.equals("")) {
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
301 info.setName(name);
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
302 }
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
303
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
304 String model = parseLayerAttr(layer, XPATH_LAYER_MODEL);
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
305 if (model != null && !model.equals("")) {
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
306 info.setModel(model);
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
307 }
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
308
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
309 String type = parseLayerAttr(layer, XPATH_LAYER_TYPE);
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
310 if (type != null && !type.equals("")) {
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
311 info.setType(type);
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
312 }
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
313
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
314 String data = parseLayerAttr(layer, XPATH_LAYER_DATA);
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
315 if (data != null && !data.equals("")) {
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
316 info.setData(data);
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
317 }
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
318
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
319 String status = parseLayerAttr(layer, XPATH_LAYER_STATUS);
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
320 if (status != null && !status.equals("")) {
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
321 info.setStatus(status);
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
322 }
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
323
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
324 return info;
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
325 }
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
326
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
327
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
328 protected String parseLayerAttr(Node node, String xpath) {
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
329 return (String) XMLUtils.xpath(
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
330 node,
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
331 xpath,
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
332 XPathConstants.STRING,
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
333 ArtifactNamespaceContext.INSTANCE);
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
334 }
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
335
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
336
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
337 protected void writeMapfile(List layers) {
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
338 String tmpMapName = "mapfile" + new Date().getTime();
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
339
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
340 int layersize = layers.size();
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
341 StringBuilder sb = new StringBuilder();
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
342 StringWriter sw = null;
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
343 LayerInfo info = null;
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
344
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
345 for (int i = 0; i < layersize; i++) {
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
346 sw = new StringWriter();
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
347 info = (LayerInfo) layers.get(i);
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
348
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
349 Template layerTemplate = getTemplateByName(info.getModel());
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
350 VelocityContext context = new VelocityContext();
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
351 context.put("info", info);
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
352
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
353 try {
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
354 layerTemplate.merge(context, sw);
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
355 sb.append(sw.toString());
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
356 }
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
357 catch (IOException ioe) {
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
358 logger.warn("Error while filling layer template.");
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
359 logger.warn(ioe, ioe);
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
360 }
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
361 }
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
362
625
40ead2d2a08d Restructured configuration, removed duplicated entry and store config information in MapfileGenerator to avoid reading config file every time while updating mapfile.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 624
diff changeset
363 File map = getMapfile();
622
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
364 Writer writer = null;
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
365 File tmp = null;
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
366
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
367 try {
625
40ead2d2a08d Restructured configuration, removed duplicated entry and store config information in MapfileGenerator to avoid reading config file every time while updating mapfile.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 624
diff changeset
368 tmp = new File(map.getParent(), tmpMapName);
622
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
369
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
370 tmp.createNewFile();
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
371 writer = new FileWriter(tmp);
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
372
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
373 VelocityContext context = new VelocityContext();
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
374 context.put("LAYERS", sb.toString());
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
375
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
376 Template mapTemplate = getMapfileTemplate();
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
377 if (mapTemplate == null) {
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
378 logger.warn("No mapfile template found.");
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
379 return;
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
380 }
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
381
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
382 mapTemplate.merge(context, writer);
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
383
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
384 // we need to create a temporary mapfile first und rename it into
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
385 // real mapfile because we don't run into race conditions on this
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
386 // way. (iw)
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
387 tmp.renameTo(map);
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
388 }
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
389 catch (FileNotFoundException fnfe) {
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
390 logger.error(fnfe, fnfe);
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
391 }
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
392 catch (IOException ioe) {
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
393 logger.error(ioe, ioe);
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
394 }
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
395 catch (Exception e) {
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
396 logger.error(e, e);
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
397 }
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
398 finally {
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
399 try {
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
400 // close file writer
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
401 if (writer != null) {
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
402 writer.close();
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
403 }
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
404
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
405 // remove temporary mapfile if an error occured and it still
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
406 // exists
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
407 if (tmp.exists()) {
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
408 tmp.delete();
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
409 }
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
410 }
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
411 catch (IOException ioe) {
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
412 logger.debug(ioe, ioe);
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
413 }
89aca25642d6 Implemented method stubs of MapfileGenerator. Mapfiles are successfully created corresponding meta.xml files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 621
diff changeset
414 }
621
567216b56983 Added MapfileGenerator stub and MapfileGenerator calls after writing and removing shapefiles.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
415 }
567216b56983 Added MapfileGenerator stub and MapfileGenerator calls after writing and removing shapefiles.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
416 }
567216b56983 Added MapfileGenerator stub and MapfileGenerator calls after writing and removing shapefiles.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
417 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8:

http://dive4elements.wald.intevation.org