Mercurial > dive4elements > river
comparison flys-artifacts/src/main/java/de/intevation/flys/artifacts/services/MetaDataService.java @ 947:db8d93cb65fd
Made meta data template configurable.
flys-artifacts/trunk@2363 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Sascha L. Teichmann <sascha.teichmann@intevation.de> |
---|---|
date | Tue, 19 Jul 2011 16:39:32 +0000 |
parents | 24b53f9aa9dc |
children | 0881cd4be773 |
comparison
equal
deleted
inserted
replaced
946:854620e52971 | 947:db8d93cb65fd |
---|---|
1 package de.intevation.flys.artifacts.services; | 1 package de.intevation.flys.artifacts.services; |
2 | 2 |
3 import java.io.InputStream; | 3 import java.io.InputStream; |
4 import java.io.IOException; | 4 import java.io.IOException; |
5 import java.io.File; | |
6 import java.io.FileInputStream; | |
5 | 7 |
6 import java.sql.Connection; | 8 import java.sql.Connection; |
7 import java.sql.SQLException; | 9 import java.sql.SQLException; |
8 | 10 |
9 import org.w3c.dom.Document; | 11 import org.w3c.dom.Document; |
16 import de.intevation.artifacts.CallMeta; | 18 import de.intevation.artifacts.CallMeta; |
17 import de.intevation.artifacts.ServiceFactory; | 19 import de.intevation.artifacts.ServiceFactory; |
18 | 20 |
19 import de.intevation.artifactdatabase.DefaultService; | 21 import de.intevation.artifactdatabase.DefaultService; |
20 | 22 |
23 import de.intevation.artifacts.common.utils.Config; | |
21 import de.intevation.artifacts.common.utils.XMLUtils; | 24 import de.intevation.artifacts.common.utils.XMLUtils; |
22 | 25 |
23 import de.intevation.artifacts.common.ArtifactNamespaceContext; | 26 import de.intevation.artifacts.common.ArtifactNamespaceContext; |
24 | 27 |
25 import de.intevation.flys.artifacts.services.meta.Builder; | 28 import de.intevation.flys.artifacts.services.meta.Builder; |
33 public class MetaDataService | 36 public class MetaDataService |
34 extends DefaultService | 37 extends DefaultService |
35 { | 38 { |
36 private static Logger log = Logger.getLogger(MetaDataService.class); | 39 private static Logger log = Logger.getLogger(MetaDataService.class); |
37 | 40 |
41 public static final String XPATH_META_DATA_TEMPLATE = | |
42 "/artifact-database/metadata/@template"; | |
43 | |
38 public static final String XPATH_RIVER = "/art:river/text()"; | 44 public static final String XPATH_RIVER = "/art:river/text()"; |
39 | |
40 public static final String META_DATA_TEMPLATE = "/metadata/template.xml"; | |
41 | 45 |
42 protected Builder builder; | 46 protected Builder builder; |
43 | 47 |
44 public MetaDataService() { | 48 public MetaDataService() { |
45 } | 49 } |
98 | 102 |
99 @Override | 103 @Override |
100 public void setup(ServiceFactory factory, Object globalContext) { | 104 public void setup(ServiceFactory factory, Object globalContext) { |
101 log.debug("MetaDataService.setup"); | 105 log.debug("MetaDataService.setup"); |
102 | 106 |
103 InputStream in = getClass().getResourceAsStream(META_DATA_TEMPLATE); | 107 String path = Config.getStringXPath(XPATH_META_DATA_TEMPLATE); |
104 | 108 |
105 if (in == null) { | 109 if (path == null) { |
106 log.error("cannot get template resource"); | 110 log.error("no path to template file given"); |
107 return; | 111 return; |
108 } | 112 } |
109 | 113 |
114 path = Config.replaceConfigDir(path); | |
115 | |
116 File file = new File(path); | |
117 | |
118 if (!file.isFile() || !file.canRead()) { | |
119 log.error("Cannot open template file '" + file + "'"); | |
120 return; | |
121 } | |
122 | |
123 InputStream in = null; | |
124 | |
110 try { | 125 try { |
126 in = new FileInputStream(file); | |
111 Document template = XMLUtils.parseDocument(in); | 127 Document template = XMLUtils.parseDocument(in); |
112 if (template == null) { | 128 if (template == null) { |
113 log.error("cannot parse meta data template"); | 129 log.error("cannot parse meta data template"); |
114 } | 130 } |
115 else { | 131 else { |
116 builder = new Builder(template); | 132 builder = new Builder(template); |
117 } | 133 } |
134 } | |
135 catch (IOException ioe) { | |
136 log.error(ioe); | |
118 } | 137 } |
119 finally { | 138 finally { |
120 try { | 139 try { |
121 in.close(); | 140 in.close(); |
122 } | 141 } |