Mercurial > dive4elements > gnv-client
comparison gnv-artifacts/src/main/java/de/intevation/gnv/artifacts/context/GNVArtifactContextFactory.java @ 358:2f7a28f211c7
Fetch ChartTheme from CallContext instead of creating it each time before creating a chart.
gnv-artifacts/trunk@431 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Ingo Weinzierl <ingo.weinzierl@intevation.de> |
---|---|
date | Tue, 15 Dec 2009 15:30:25 +0000 |
parents | 226091ed3cbd |
children | 77cd3a2bc381 |
comparison
equal
deleted
inserted
replaced
357:25e4724aa504 | 358:2f7a28f211c7 |
---|---|
16 import de.intevation.artifacts.ArtifactContextFactory; | 16 import de.intevation.artifacts.ArtifactContextFactory; |
17 import de.intevation.gnv.artifacts.cache.CacheFactory; | 17 import de.intevation.gnv.artifacts.cache.CacheFactory; |
18 import de.intevation.gnv.geobackend.base.connectionpool.ConnectionPoolFactory; | 18 import de.intevation.gnv.geobackend.base.connectionpool.ConnectionPoolFactory; |
19 import de.intevation.gnv.geobackend.base.query.container.QueryContainerFactory; | 19 import de.intevation.gnv.geobackend.base.query.container.QueryContainerFactory; |
20 import de.intevation.gnv.geobackend.base.query.container.exception.QueryContainerException; | 20 import de.intevation.gnv.geobackend.base.query.container.exception.QueryContainerException; |
21 import de.intevation.gnv.chart.XMLChartTheme; | |
22 import de.intevation.gnv.utils.ArtifactXMLUtilities; | |
21 | 23 |
22 /** | 24 /** |
23 * @author Tim Englich <tim.englich@intevation.de> | 25 * @author Tim Englich <tim.englich@intevation.de> |
24 * | 26 * |
25 */ | 27 */ |
33 | 35 |
34 public static final String XPATH_GEOBACKEND_QUERYCONFIGURATION = "artifact-database/geo-backend/query-configuration"; | 36 public static final String XPATH_GEOBACKEND_QUERYCONFIGURATION = "artifact-database/geo-backend/query-configuration"; |
35 | 37 |
36 private final static String CACHECONFIGNODEPATH = "/artifact-database/ehcache/configuration"; | 38 private final static String CACHECONFIGNODEPATH = "/artifact-database/ehcache/configuration"; |
37 | 39 |
40 private final static String CHARTCONFIGNODEPATH = "/artifact-database/charttemplate/configuration"; | |
41 | |
42 public final static String CHARTTEMPLATE = "template"; | |
43 | |
38 /** | 44 /** |
39 * Constructor | 45 * Constructor |
40 */ | 46 */ |
41 public GNVArtifactContextFactory() { | 47 public GNVArtifactContextFactory() { |
42 super(); | 48 super(); |
45 | 51 |
46 /** | 52 /** |
47 * @see de.intevation.artifacts.ArtifactContextFactory#createArtifactContext(org.w3c.dom.Document) | 53 * @see de.intevation.artifacts.ArtifactContextFactory#createArtifactContext(org.w3c.dom.Document) |
48 */ | 54 */ |
49 public Object createArtifactContext(Document config) { | 55 public Object createArtifactContext(Document config) { |
50 Object returnValue = null; | 56 GNVArtifactContext returnValue = null; |
51 try { | 57 try { |
52 log.debug("GNVArtifactContextFactory.createArtifactContext"); | 58 log.debug("GNVArtifactContextFactory.createArtifactContext"); |
53 log.info("Initialisation of the Geo-BackendConnectionPool"); | 59 log.info("Initialisation of the Geo-BackendConnectionPool"); |
54 String backendConfigurationFile = Config.getStringXPath(config, | 60 String backendConfigurationFile = Config.getStringXPath(config, |
55 XPATH_GEOBACKEND_CONFIGURATION); | 61 XPATH_GEOBACKEND_CONFIGURATION); |
73 CACHECONFIGNODEPATH); | 79 CACHECONFIGNODEPATH); |
74 cacheConfigurationFile = Config.replaceConfigDir(cacheConfigurationFile); | 80 cacheConfigurationFile = Config.replaceConfigDir(cacheConfigurationFile); |
75 CacheFactory cf = CacheFactory.getInstance(); | 81 CacheFactory cf = CacheFactory.getInstance(); |
76 cf.initializeCache(cacheConfigurationFile); | 82 cf.initializeCache(cacheConfigurationFile); |
77 | 83 |
84 log.info("Initialisation of chart template"); | |
85 String chartConfigFile = Config.getStringXPath( | |
86 config, CHARTCONFIGNODEPATH | |
87 ); | |
88 chartConfigFile = Config.replaceConfigDir(chartConfigFile); | |
89 log.debug("Parse xml configuration of " + chartConfigFile); | |
90 InputStream is = new FileInputStream(chartConfigFile); | |
91 Document template = ArtifactXMLUtilities.readDocument(is); | |
92 XMLChartTheme theme = new XMLChartTheme("XMLChartTheme"); | |
93 theme.applyXMLConfiguration(template); | |
94 | |
78 returnValue = new GNVArtifactContext(config); | 95 returnValue = new GNVArtifactContext(config); |
96 | |
97 returnValue.put(CHARTTEMPLATE, theme); | |
79 } catch (FileNotFoundException e) { | 98 } catch (FileNotFoundException e) { |
80 log.error(e, e); | 99 log.error(e, e); |
81 } catch (IOException e) { | 100 } catch (IOException e) { |
82 log.error(e, e); | 101 log.error(e, e); |
83 } catch (QueryContainerException e) { | 102 } catch (QueryContainerException e) { |