# HG changeset patch # User Sascha L. Teichmann # Date 1311093572 0 # Node ID db8d93cb65fdfcd159a498bcad68a1169e89c98b # Parent 854620e529716782312a76b5ae83ef0d9d09210a Made meta data template configurable. flys-artifacts/trunk@2363 c6561f87-3c4e-4783-a992-168aeb5c3f6f diff -r 854620e52971 -r db8d93cb65fd flys-artifacts/ChangeLog --- a/flys-artifacts/ChangeLog Tue Jul 19 16:14:52 2011 +0000 +++ b/flys-artifacts/ChangeLog Tue Jul 19 16:39:32 2011 +0000 @@ -1,3 +1,14 @@ +2011-07-15 Sascha L. Teichmann + + * src/main/resources/metadata/template.xml: Deleted. + + * doc/conf/meta-data-template.xml: New. Was template.xml + + * doc/conf/conf.xml: Made meta data template configurable. + + * src/main/java/de/intevation/flys/artifacts/services/MetaDataService.java: + Load template from configuration not from resources. + 2011-07-15 Sascha L. Teichmann * src/main/resources/metadata/template.xml: s/[a-z]+-id/db-id/ diff -r 854620e52971 -r db8d93cb65fd flys-artifacts/doc/conf/conf.xml --- a/flys-artifacts/doc/conf/conf.xml Tue Jul 19 16:14:52 2011 +0000 +++ b/flys-artifacts/doc/conf/conf.xml Tue Jul 19 16:39:32 2011 +0000 @@ -90,6 +90,9 @@ de.intevation.flys.exports.ATExporter + + + 8181 diff -r 854620e52971 -r db8d93cb65fd flys-artifacts/doc/conf/meta-data-template.xml --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/flys-artifacts/doc/conf/meta-data-template.xml Tue Jul 19 16:39:32 2011 +0000 @@ -0,0 +1,215 @@ + + + + + + SELECT id AS river_id, name as river_name FROM rivers + WHERE name ILIKE ${river} + + + + + + + + + + SELECT id AS gauge_id, + name AS gauge_name + FROM gauges WHERE river_id = ${river_id} + + + + + + + + SELECT description AS gauge_desc, + d.id AS discharge_id, + ti.start_time AS g_start, + ti.stop_time AS g_stop + FROM discharge_tables d JOIN time_intervals ti + ON d.time_interval_id = ti.id + WHERE d.gauge_id = ${gauge_id} AND d.kind = 1 + + + + + + + + + + + + + + + + + + SELECT id AS fix_id, + description AS fix_description + FROM wsts WHERE kind = 2 AND river_id = ${river_id} + + + + + + + + + SELECT id AS fix_column_id, + name AS fix_column_name + FROM wst_columns WHERE wst_id = ${fix_id} + ORDER by position + + + + + + + + + + + + + + + + + SELECT id AS prot_id, + description AS prot_description + FROM wsts WHERE kind = 5 AND river_id = ${river_id} + + + + + + + + + SELECT id AS prot_column_id, + name AS prot_column_name + FROM wst_columns WHERE wst_id = ${prot_id} + ORDER by position + + + + + + + + + + + + + + + + + SELECT id AS fw_id, + description AS fw_description + FROM wsts WHERE kind = 4 AND river_id = ${river_id} + + + + + + + + + SELECT id AS fw_column_id, + name AS fw_column_name + FROM wst_columns WHERE wst_id = ${fw_id} + ORDER by position + + + + + + + + + + + + + + + + + SELECT id AS wl_id, + description AS wl_description + FROM wsts WHERE kind = 0 AND river_id = ${river_id} + + + + + + + + + SELECT id AS wl_column_id, + name AS wl_column_name + FROM wst_columns WHERE wst_id = ${wl_id} + ORDER by position + + + + + + + + + + + + + + + + + SELECT id AS els_id, + description AS els_description + FROM wsts WHERE kind = 1 AND river_id = ${river_id} + + + + + + + + + SELECT id AS els_column_id, + name AS els_column_name + FROM wst_columns WHERE wst_id = ${els_id} + ORDER by position + + + + + + + + + + + + + + + + + + + + + + + + + + diff -r 854620e52971 -r db8d93cb65fd flys-artifacts/src/main/java/de/intevation/flys/artifacts/services/MetaDataService.java --- a/flys-artifacts/src/main/java/de/intevation/flys/artifacts/services/MetaDataService.java Tue Jul 19 16:14:52 2011 +0000 +++ b/flys-artifacts/src/main/java/de/intevation/flys/artifacts/services/MetaDataService.java Tue Jul 19 16:39:32 2011 +0000 @@ -2,6 +2,8 @@ import java.io.InputStream; import java.io.IOException; +import java.io.File; +import java.io.FileInputStream; import java.sql.Connection; import java.sql.SQLException; @@ -18,6 +20,7 @@ import de.intevation.artifactdatabase.DefaultService; +import de.intevation.artifacts.common.utils.Config; import de.intevation.artifacts.common.utils.XMLUtils; import de.intevation.artifacts.common.ArtifactNamespaceContext; @@ -35,10 +38,11 @@ { private static Logger log = Logger.getLogger(MetaDataService.class); + public static final String XPATH_META_DATA_TEMPLATE = + "/artifact-database/metadata/@template"; + public static final String XPATH_RIVER = "/art:river/text()"; - public static final String META_DATA_TEMPLATE = "/metadata/template.xml"; - protected Builder builder; public MetaDataService() { @@ -100,14 +104,26 @@ public void setup(ServiceFactory factory, Object globalContext) { log.debug("MetaDataService.setup"); - InputStream in = getClass().getResourceAsStream(META_DATA_TEMPLATE); + String path = Config.getStringXPath(XPATH_META_DATA_TEMPLATE); - if (in == null) { - log.error("cannot get template resource"); + if (path == null) { + log.error("no path to template file given"); return; } + path = Config.replaceConfigDir(path); + + File file = new File(path); + + if (!file.isFile() || !file.canRead()) { + log.error("Cannot open template file '" + file + "'"); + return; + } + + InputStream in = null; + try { + in = new FileInputStream(file); Document template = XMLUtils.parseDocument(in); if (template == null) { log.error("cannot parse meta data template"); @@ -116,6 +132,9 @@ builder = new Builder(template); } } + catch (IOException ioe) { + log.error(ioe); + } finally { try { in.close(); diff -r 854620e52971 -r db8d93cb65fd flys-artifacts/src/main/resources/metadata/template.xml --- a/flys-artifacts/src/main/resources/metadata/template.xml Tue Jul 19 16:14:52 2011 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,215 +0,0 @@ - - - - - - SELECT id AS river_id, name as river_name FROM rivers - WHERE name ILIKE ${river} - - - - - - - - - - SELECT id AS gauge_id, - name AS gauge_name - FROM gauges WHERE river_id = ${river_id} - - - - - - - - SELECT description AS gauge_desc, - d.id AS discharge_id, - ti.start_time AS g_start, - ti.stop_time AS g_stop - FROM discharge_tables d JOIN time_intervals ti - ON d.time_interval_id = ti.id - WHERE d.gauge_id = ${gauge_id} AND d.kind = 1 - - - - - - - - - - - - - - - - - - SELECT id AS fix_id, - description AS fix_description - FROM wsts WHERE kind = 2 AND river_id = ${river_id} - - - - - - - - - SELECT id AS fix_column_id, - name AS fix_column_name - FROM wst_columns WHERE wst_id = ${fix_id} - ORDER by position - - - - - - - - - - - - - - - - - SELECT id AS prot_id, - description AS prot_description - FROM wsts WHERE kind = 5 AND river_id = ${river_id} - - - - - - - - - SELECT id AS prot_column_id, - name AS prot_column_name - FROM wst_columns WHERE wst_id = ${prot_id} - ORDER by position - - - - - - - - - - - - - - - - - SELECT id AS fw_id, - description AS fw_description - FROM wsts WHERE kind = 4 AND river_id = ${river_id} - - - - - - - - - SELECT id AS fw_column_id, - name AS fw_column_name - FROM wst_columns WHERE wst_id = ${fw_id} - ORDER by position - - - - - - - - - - - - - - - - - SELECT id AS wl_id, - description AS wl_description - FROM wsts WHERE kind = 0 AND river_id = ${river_id} - - - - - - - - - SELECT id AS wl_column_id, - name AS wl_column_name - FROM wst_columns WHERE wst_id = ${wl_id} - ORDER by position - - - - - - - - - - - - - - - - - SELECT id AS els_id, - description AS els_description - FROM wsts WHERE kind = 1 AND river_id = ${river_id} - - - - - - - - - SELECT id AS els_column_id, - name AS els_column_name - FROM wst_columns WHERE wst_id = ${els_id} - ORDER by position - - - - - - - - - - - - - - - - - - - - - - - - - -