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) {

http://dive4elements.wald.intevation.org