# HG changeset patch # User Ingo Weinzierl # Date 1266838174 0 # Node ID 40ead2d2a08d634188d7c3f4a3a5b0ecf9e72dc7 # Parent 6a3a1da5e68055bb249b6f432358be48878c78af 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 diff -r 6a3a1da5e680 -r 40ead2d2a08d gnv-artifacts/ChangeLog --- a/gnv-artifacts/ChangeLog Mon Feb 22 10:43:25 2010 +0000 +++ b/gnv-artifacts/ChangeLog Mon Feb 22 11:29:34 2010 +0000 @@ -1,3 +1,20 @@ +2010-02-22 Ingo Weinzierl + + * doc/conf/conf.xml: Restructured configuration of shapfile and template + directories. Moved map-generator part into gnv section. + Moved shapefile-directory configuration to an own section and removed + duplicated shapefile-directory config from map-generator. + + * src/main/java/de/intevation/gnv/utils/MapfileGenerator.java: Adjusted + xpath expressions regarding the changes in conf.xml. MapfileGenerator got + some instance variables to store information about mapfile location, + velocity log file and shapefile and template directories. This avoids + reading conf.xml every single time while updating the mapfile. + + * src/main/java/de/intevation/gnv/artifacts/context/GNVArtifactContextFactory.java: + Adjusted xpath expression regaring the changes of shapefile-directory in + conf.xml. + 2010-02-22 Ingo Weinzierl * doc/conf/conf.xml: Added path for velocity logfile. diff -r 6a3a1da5e680 -r 40ead2d2a08d gnv-artifacts/doc/conf/conf.xml --- a/gnv-artifacts/doc/conf/conf.xml Mon Feb 22 10:43:25 2010 +0000 +++ b/gnv-artifacts/doc/conf/conf.xml Mon Feb 22 11:29:34 2010 +0000 @@ -461,7 +461,6 @@ - @@ -476,6 +475,19 @@ --> + + + + + + + + + ${artifacts.config.dir}/maptemplates + mapfile.vm + + @@ -514,17 +526,4 @@ --> - - - - mapfile.map - /opt/artifacts/mapfiles - /opt/artifacts/shapefiles - - - /opt/artifacts/conf/maptemplates - mapfile.vm - - diff -r 6a3a1da5e680 -r 40ead2d2a08d gnv-artifacts/src/main/java/de/intevation/gnv/artifacts/context/GNVArtifactContextFactory.java --- a/gnv-artifacts/src/main/java/de/intevation/gnv/artifacts/context/GNVArtifactContextFactory.java Mon Feb 22 10:43:25 2010 +0000 +++ b/gnv-artifacts/src/main/java/de/intevation/gnv/artifacts/context/GNVArtifactContextFactory.java Mon Feb 22 11:29:34 2010 +0000 @@ -82,7 +82,7 @@ "/artifact-database/gnv/horizontal-cross-section/extrapolation/@rounds"; public final static String HORIZONTAL_CROSS_SECTION_RESULT_SHAPEFILE_PATH = - "/artifact-database/gnv/horizontal-cross-section/result-shapefile-directory/@path"; + "/artifact-database/gnv/shapefile-directory/@path"; public final static String VERTICAL_CROSS_SECTION_SAMPLES = "/artifact-database/gnv/vertical-cross-section/samples"; diff -r 6a3a1da5e680 -r 40ead2d2a08d gnv-artifacts/src/main/java/de/intevation/gnv/utils/MapfileGenerator.java --- a/gnv-artifacts/src/main/java/de/intevation/gnv/utils/MapfileGenerator.java Mon Feb 22 10:43:25 2010 +0000 +++ b/gnv-artifacts/src/main/java/de/intevation/gnv/utils/MapfileGenerator.java Mon Feb 22 11:29:34 2010 +0000 @@ -2,9 +2,7 @@ import de.intevation.artifactdatabase.Config; import de.intevation.artifactdatabase.XMLUtils; - import de.intevation.artifacts.ArtifactNamespaceContext; - import de.intevation.gnv.wms.LayerInfo; import java.io.File; @@ -13,11 +11,9 @@ import java.io.IOException; import java.io.StringWriter; import java.io.Writer; - import java.util.ArrayList; import java.util.Date; import java.util.List; -import java.util.Properties; import javax.xml.xpath.XPathConstants; @@ -25,13 +21,13 @@ import org.apache.velocity.Template; import org.apache.velocity.VelocityContext; - import org.apache.velocity.app.VelocityEngine; import org.w3c.dom.Document; import org.w3c.dom.Node; import org.w3c.dom.NodeList; + /** * @author Ingo Weinzierl (ingo.weinzierl@intevation.de) */ @@ -39,19 +35,16 @@ extends Thread { public static final String TEMPLATE_PATH = - "/artifact-database/map-generator/templates/path/text()"; + "/artifact-database/gnv/map-generator/templates/path/text()"; public static final String TEMPLATE_MAPFILE = - "/artifact-database/map-generator/templates/maptemplate/text()"; + "/artifact-database/gnv/map-generator/templates/maptemplate/text()"; public static final String MAPFILE_PATH = - "/artifact-database/map-generator/mapfile/path/text()"; - - public static final String MAPFILE_NAME = - "/artifact-database/map-generator/mapfile/name/text()"; + "/artifact-database/gnv/map-generator/mapfile/@path"; public static final String SHAPEFILE_BASE_DIR = - "/artifact-database/map-generator/mapfile/shapefiles/text()"; + "/artifact-database/gnv/shapefile-directory/@path"; public static final String VELOCITY_LOGFILE = "/artifact-database/velocity/logfile/@path"; @@ -71,6 +64,11 @@ private static MapfileGenerator instance; + private File mapfile; + private String shapefileDirectory; + private String templatePath; + private String velocityLogfile; + private VelocityEngine velocityEngine; private boolean lock[]; @@ -185,15 +183,16 @@ protected String getTemplateBaseDir() { - if (templatePath == null) + if (templatePath == null) { templatePath = Config.getStringXPath(TEMPLATE_PATH); + templatePath = Config.replaceConfigDir(templatePath); + } return templatePath; } protected Template getTemplateByName(String model) { - String templatePath = getTemplateBaseDir(); if (model.indexOf(".vm") < 0) { model = model.concat(".vm"); } @@ -224,7 +223,23 @@ protected String getShapefileBaseDir() { - return Config.getStringXPath(SHAPEFILE_BASE_DIR); + if (shapefileDirectory == null) { + shapefileDirectory = Config.getStringXPath(SHAPEFILE_BASE_DIR); + shapefileDirectory = Config.replaceConfigDir(shapefileDirectory); + } + + return shapefileDirectory; + } + + + protected File getMapfile() { + if (mapfile == null) { + String tmp = Config.getStringXPath(MAPFILE_PATH); + tmp = Config.replaceConfigDir(tmp); + mapfile = new File(tmp); + } + + return mapfile; } @@ -320,8 +335,6 @@ protected void writeMapfile(List layers) { - String pathName = Config.getStringXPath(MAPFILE_PATH); - String mapName = Config.getStringXPath(MAPFILE_NAME); String tmpMapName = "mapfile" + new Date().getTime(); int layersize = layers.size(); @@ -347,13 +360,12 @@ } } + File map = getMapfile(); Writer writer = null; File tmp = null; - File map = null; try { - tmp = new File(pathName, tmpMapName); - map = new File(pathName, mapName); + tmp = new File(map.getParent(), tmpMapName); tmp.createNewFile(); writer = new FileWriter(tmp);