changeset 99:bb45c5097cb6

ehcache Integration for storing the chartresultvalues gnv-artifacts/trunk@146 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Tim Englich <tim.englich@intevation.de>
date Mon, 28 Sep 2009 14:17:15 +0000
parents 156db25ad4b4
children f07637f96312
files gnv-artifacts/Changelog gnv-artifacts/pom.xml gnv-artifacts/src/main/java/de/intevation/gnv/artifacts/GNVArtifactBase.java gnv-artifacts/src/main/java/de/intevation/gnv/artifacts/cache/CacheFactory.java gnv-artifacts/src/main/java/de/intevation/gnv/artifacts/context/GNVArtifactContextFactory.java gnv-artifacts/src/main/java/de/intevation/gnv/transition/MinMaxTransition.java gnv-artifacts/src/main/java/de/intevation/gnv/transition/OutputTransition.java gnv-artifacts/src/main/java/de/intevation/gnv/transition/OutputTransitionBase.java gnv-artifacts/src/main/java/de/intevation/gnv/transition/SingleInputTransition.java gnv-artifacts/src/main/java/de/intevation/gnv/transition/Transition.java gnv-artifacts/src/main/java/de/intevation/gnv/transition/TransitionBase.java gnv-artifacts/src/main/java/de/intevation/gnv/transition/profile/vertical/VerticalProfileOutputTransition.java gnv-artifacts/src/main/java/de/intevation/gnv/transition/timeseries/TimeSeriesOutputTransition.java gnv-artifacts/src/test/ressources/conf.xml gnv-artifacts/src/test/ressources/ehcache.xml
diffstat 15 files changed, 212 insertions(+), 51 deletions(-) [+]
line wrap: on
line diff
--- a/gnv-artifacts/Changelog	Mon Sep 28 10:20:41 2009 +0000
+++ b/gnv-artifacts/Changelog	Mon Sep 28 14:17:15 2009 +0000
@@ -1,3 +1,32 @@
+2009-09-28  Tim Englich  <tim.englich@intevation.de>
+
+    * pom.xml Edited:
+      Added the Dependeny to the ehcache-Library
+    * src/test/ressources/ehcache.xml Added:
+     The ehcache-Configuration. 
+    * src/test/ressources/conf.xml Edited:
+      Added the Link to the ehcache-Configuration. 
+    * src/main/java/de/intevation/gnv/artifacts/context/GNVArtifactContextFactory.java (createArtifactContext) Edited:
+      Added the Initialisation of the CacheManager. 
+    
+    * src/main/java/de/intevation/gnv/artifacts/cache/CacheFactory.java Added:
+      An Fractoryimplementation for the central access to the Cache. 
+      
+    * src/main/java/de/intevation/gnv/transition/MinMaxTransition.java (purifyResult) Edited,
+    * src/main/java/de/intevation/gnv/transition/SingleInputTransition.java (purifyResult) Edited, 
+    * src/main/java/de/intevation/gnv/transition/Transition.java Edited,
+    * src/main/java/de/intevation/gnv/transition/TransitionBase.java Edited, 
+    * src/main/java/de/intevation/gnv/artifacts/GNVArtifactBase.java Edited: 
+      Signature of Methods purifyResults, advanced and feed Changed to put the uuid to the Transition 
+    * src/main/java/de/intevation/gnv/transition/profile/vertical/VerticalProfileOutputTransition.java (createChart) Edited:
+      Methodsignatur of getChartResult change for putting the uuid of an Artifact into it
+    * src/main/java/de/intevation/gnv/transition/OutputTransition.java (out) Edited, 
+      src/main/java/de/intevation/gnv/transition/timeseries/TimeSeriesOutputTransition.java (out) Edited:
+      Method Signature Changed for putting the uuid of an Artifact to the Transition. 
+      stored 
+    * src/main/java/de/intevation/gnv/transition/OutputTransitionBase.java Edited:
+      removed the persitence of the Chartresults and put them into an Cache instance. 
+      
 2009-09-28  Tim Englich  <tim.englich@intevation.de>
 
     * src/main/java/de/intevation/gnv/transition/timeseries/TimeSeriesOutputTransition.java (getStatisticsGenerator) Edited:
--- a/gnv-artifacts/pom.xml	Mon Sep 28 10:20:41 2009 +0000
+++ b/gnv-artifacts/pom.xml	Mon Sep 28 14:17:15 2009 +0000
@@ -62,6 +62,11 @@
       <artifactId>commons-math</artifactId>
       <version>1.1</version>
     </dependency>
+    <dependency>
+      <groupId>net.sf.ehcache</groupId>
+      <artifactId>ehcache</artifactId>
+      <version>1.6.2</version>
+    </dependency>
     
   </dependencies>
 </project>
--- a/gnv-artifacts/src/main/java/de/intevation/gnv/artifacts/GNVArtifactBase.java	Mon Sep 28 10:20:41 2009 +0000
+++ b/gnv-artifacts/src/main/java/de/intevation/gnv/artifacts/GNVArtifactBase.java	Mon Sep 28 14:17:15 2009 +0000
@@ -92,6 +92,7 @@
     @Override
     public Document advance(Document target, CallContext context) {
         log.debug("GNVArtifactBase.advance");
+        String uuid = Config.getStringXPath(target, "action/uuid/@value");
         Document result = XMLUtils.newDocument();
         try {
             if (this.current != null){
@@ -103,10 +104,10 @@
                         try {
                             Transition nextStep = this.transitions.get(transitionName);
                             // 2.Ergebnisse Berechnen
-                            this.current.advance();
+                            this.current.advance(uuid);
                             // 3. Ergebnisse übergeben
                             nextStep.setDescibeData(this.current.getDescibeData());
-                            nextStep.putInputData(this.current.getInputData());
+                            nextStep.putInputData(this.current.getInputData(),uuid);
                             // 4. Umschalten auf neue Transistion
                             this.current = nextStep;
                             result = new ArtifactXMLUtilities().createSuccessReport("Advance success", XMLUtils.newDocument());
@@ -160,7 +161,8 @@
         Document result = XMLUtils.newDocument();
         try {
             if (this.current != null){
-                this.current.putInputData(this.parseInputData(target, "/action/data/input"));
+                String uuid = Config.getStringXPath(target, "action/uuid/@value");
+                this.current.putInputData(this.parseInputData(target, "/action/data/input"),uuid);
                 result = new ArtifactXMLUtilities().createSuccessReport("Feed success", XMLUtils.newDocument());
             }else{
                 String msg = "No Transition instantiated";
@@ -360,10 +362,7 @@
         }
         return returnValue.values();
     }
-    /**
-     * @see de.intevation.artifactdatabase.DefaultArtifact#out(org.w3c.dom.Document, java.lang.Object)
-     */
- 
+
     
     /**
      * @see de.intevation.artifactdatabase.DefaultArtifact#out(org.w3c.dom.Document, java.io.OutputStream, de.intevation.artifacts.CallContext)
@@ -375,8 +374,9 @@
         try {
             
             if (current != null && current instanceof OutputTransition){
-              ((OutputTransition)current).out(this.readOutputType(format),this.parseInputData(format, "/action/out/params/input"), outputStream);
-               context.afterCall(CallContext.STORE); // TODO: FIXME Schmutzige Lösung: Besser einen weiteren Transitionsschritt zwischenschalten.
+                String uuid = Config.getStringXPath(format, "action/uuid/@value");
+              ((OutputTransition)current).out(this.readOutputType(format),this.parseInputData(format, "/action/out/params/input"), outputStream,uuid);
+               //context.afterCall(CallContext.STORE); // TODO: FIXME Schmutzige Lösung: Besser einen weiteren Transitionsschritt zwischenschalten.
             }
         } catch (TransitionException e) {
             log.error(e,e);
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/gnv-artifacts/src/main/java/de/intevation/gnv/artifacts/cache/CacheFactory.java	Mon Sep 28 14:17:15 2009 +0000
@@ -0,0 +1,82 @@
+/**
+ *
+ */
+package de.intevation.gnv.artifacts.cache;
+
+import net.sf.ehcache.Cache;
+import net.sf.ehcache.CacheManager;
+
+import org.apache.log4j.Logger;
+
+/**
+ * @author Tim Englich <tim.englich@intevation.de>
+ *
+ */
+public class CacheFactory {
+
+    /**
+     * the logger, used to log exceptions and additonaly information
+     */
+    private static Logger log = Logger.getLogger(CacheFactory.class);
+    
+    private final static String CACHENAME = "artifactdata";
+
+    
+    /**
+     * The singleton Instance of this Factory.
+     */
+    private static CacheFactory instance = null;
+
+    /**
+     * 
+     */
+    private CacheManager cacheManager = null;
+
+    /**
+     * Basic-Constructor of this Class
+     */
+    private CacheFactory() {
+        super();
+    }
+
+    /**
+     * This Method provides an singleton Instance of this Class.
+     * @return an singleton Instance of this Class
+     */
+    public static CacheFactory getInstance(){
+        if (instance == null){
+            instance = new CacheFactory();
+        }
+        return instance;
+    }
+    
+    
+    /**
+     * Getting the ConnectionPool
+     * @return the ConnectionPool
+     */
+    public Cache getCache(){
+        return this.cacheManager.getCache(CACHENAME);
+    }
+
+    /**
+     * Initializes the ConnectionPool.
+     * Should only be called once on system startup
+     * @param properties the Properties for the Individual Configuration of the ConnectionPool
+     */
+    public void initializeCache(String configurationFileName){
+        if (cacheManager == null){
+            cacheManager = new CacheManager(configurationFileName);
+            cacheManager.addCache(CACHENAME);
+        }
+    }
+
+    /**
+     * Checks if the ConnectionPool has already been initialized.
+     * @return true if the ConnectionPool is initialized.
+     */
+    public boolean isInitialized(){
+        return this.cacheManager != null;
+    }
+
+}
--- a/gnv-artifacts/src/main/java/de/intevation/gnv/artifacts/context/GNVArtifactContextFactory.java	Mon Sep 28 10:20:41 2009 +0000
+++ b/gnv-artifacts/src/main/java/de/intevation/gnv/artifacts/context/GNVArtifactContextFactory.java	Mon Sep 28 14:17:15 2009 +0000
@@ -14,6 +14,7 @@
 
 import de.intevation.artifactdatabase.Config;
 import de.intevation.artifacts.ArtifactContextFactory;
+import de.intevation.gnv.artifacts.cache.CacheFactory;
 import de.intevation.gnv.geobackend.base.connectionpool.ConnectionPoolFactory;
 import de.intevation.gnv.geobackend.base.query.container.QueryContainerFactory;
 import de.intevation.gnv.geobackend.base.query.container.exception.QueryContainerException;
@@ -32,6 +33,8 @@
     
     public static final String XPATH_GEOBACKEND_QUERYCONFIGURATION= "artifact-database/geo-backend/query-configuration";
     
+    private final static String CACHECONFIGNODEPATH = "/artifact-database/ehcache/configuration";
+    
     /**
      * Constructor
      */
@@ -59,6 +62,12 @@
             QueryContainerFactory qcf = QueryContainerFactory.getInstance();
             qcf.initializeQueryContainer(queryProperties);
             
+            
+            log.info("Initialisation of the Cache");
+            String cacheConfigurationFile = Config.getStringXPath(config, CACHECONFIGNODEPATH);
+            CacheFactory cf = CacheFactory.getInstance();
+            cf.initializeCache(cacheConfigurationFile);
+            
             returnValue = new GNVArtifactContext(config);
         } catch (FileNotFoundException e) {
             log.error(e,e);
--- a/gnv-artifacts/src/main/java/de/intevation/gnv/transition/MinMaxTransition.java	Mon Sep 28 10:20:41 2009 +0000
+++ b/gnv-artifacts/src/main/java/de/intevation/gnv/transition/MinMaxTransition.java	Mon Sep 28 14:17:15 2009 +0000
@@ -32,11 +32,12 @@
     public MinMaxTransition() {
         super();
     }
+    
     /**
-     * @see de.intevation.gnv.transition.TransitionBase#purifyResult(java.util.Collection)
+     * @see de.intevation.gnv.transition.TransitionBase#purifyResult(java.util.Collection, java.lang.String)
      */
     @Override
-    protected void purifyResult(Collection<Result> result) {
+    protected void purifyResult(Collection<Result> result, String uuid) {
         log.debug("MinMaxTransition.purifyResult");
         if (this.descibeData == null){
             this.descibeData = new ArrayList<Object>();
--- a/gnv-artifacts/src/main/java/de/intevation/gnv/transition/OutputTransition.java	Mon Sep 28 10:20:41 2009 +0000
+++ b/gnv-artifacts/src/main/java/de/intevation/gnv/transition/OutputTransition.java	Mon Sep 28 14:17:15 2009 +0000
@@ -20,7 +20,7 @@
      * @return The Bytecode of the Result
      * @throws TransitionException
      */
-    public void out( String outputMode, Collection<InputData> inputData, OutputStream outputStream) throws TransitionException;
+    public void out( String outputMode, Collection<InputData> inputData, OutputStream outputStream, String uuid) throws TransitionException;
     
     /**
      * Delivers the provided OutputModes of an Transition
--- a/gnv-artifacts/src/main/java/de/intevation/gnv/transition/OutputTransitionBase.java	Mon Sep 28 10:20:41 2009 +0000
+++ b/gnv-artifacts/src/main/java/de/intevation/gnv/transition/OutputTransitionBase.java	Mon Sep 28 14:17:15 2009 +0000
@@ -3,14 +3,18 @@
  */
 package de.intevation.gnv.transition;
 
+import java.io.OutputStream;
 import java.util.ArrayList;
 import java.util.Collection;
 
+import net.sf.ehcache.Element;
+
 import org.apache.log4j.Logger;
 import org.w3c.dom.Node;
 import org.w3c.dom.NodeList;
 
 import de.intevation.artifactdatabase.Config;
+import de.intevation.gnv.artifacts.cache.CacheFactory;
 import de.intevation.gnv.geobackend.base.Result;
 import de.intevation.gnv.transition.exception.TransitionException;
 
@@ -31,11 +35,7 @@
      * the logger, used to log exceptions and additonaly information
      */
     private static Logger log = Logger.getLogger(OutputTransitionBase.class);
-    /**
-     * The Results which should be used for Rendering the Charts or 
-     * do other output
-     */
-    protected Collection<Result> chartResult = null;
+    
     
     /**
      * The different Outputmodes which are provided by an OutputTransition
@@ -108,21 +108,47 @@
      * @see de.intevation.gnv.transition.TransitionBase#advance()
      */
     @Override
-    public void advance() throws TransitionException {
+    public void advance(String uuid) throws TransitionException {
         log.debug("OutputTransitionBase.advance");
-        if (this.chartResult == null){
-            super.advance();
+        if (this.getChartResult(uuid) == null){
+            super.advance(uuid);
         }
     }
 
     /**
-     * @see de.intevation.gnv.transition.TransitionBase#getInputData()
+     * @see de.intevation.gnv.transition.OutputTransition#out(java.lang.String, java.util.Collection, java.io.OutputStream)
+     */
+    public void out(String outputMode, Collection<InputData> inputData,
+            OutputStream outputStream) throws TransitionException {
+    }
+
+    /**
+     * @return
+     */
+    protected Collection<Result> getChartResult(String uuid) {
+        log.debug("OutputTransitionBase.getChartResult");
+        if (CacheFactory.getInstance().isInitialized()){
+            String key = uuid+super.getID();
+            log.debug("Hash for Queryelements: "+key);
+            Element value = CacheFactory.getInstance().getCache().get(key);
+            if (value != null){
+                return (Collection<Result>)(value.getObjectValue());
+            }
+        }
+        return null;
+    }
+    
+    /**
+     * @see de.intevation.gnv.transition.TransitionBase#purifyResult(java.util.Collection, java.lang.String)
      */
     @Override
-    public Collection<InputData> getInputData() throws TransitionException {
-        log.debug("OutputTransitionBase.getInputData");
-        this.chartResult = null;
-        return super.getInputData();
+    protected void purifyResult(Collection<Result> result, String uuid) {
+        log.debug("OutputTransitionBase.purifyResult");
+        if (CacheFactory.getInstance().isInitialized()){
+            String key = uuid+super.getID();
+            log.debug("Hash for Queryelements: "+key);
+            CacheFactory.getInstance().getCache().put(new Element(key, result));
+        }
     }
 
 }
--- a/gnv-artifacts/src/main/java/de/intevation/gnv/transition/SingleInputTransition.java	Mon Sep 28 10:20:41 2009 +0000
+++ b/gnv-artifacts/src/main/java/de/intevation/gnv/transition/SingleInputTransition.java	Mon Sep 28 14:17:15 2009 +0000
@@ -40,8 +40,11 @@
         return true;
     }
 
+    /**
+     * @see de.intevation.gnv.transition.TransitionBase#purifyResult(java.util.Collection, java.lang.String)
+     */
     @Override
-    protected void purifyResult(Collection<Result> result) {
+    protected void purifyResult(Collection<Result> result, String uuid) {
         log.debug("SingleInputTransition.purifyResult");
         if (this.descibeData == null){
             this.descibeData = new ArrayList<Object>();
--- a/gnv-artifacts/src/main/java/de/intevation/gnv/transition/Transition.java	Mon Sep 28 10:20:41 2009 +0000
+++ b/gnv-artifacts/src/main/java/de/intevation/gnv/transition/Transition.java	Mon Sep 28 14:17:15 2009 +0000
@@ -37,11 +37,11 @@
     
     public Collection<InputValue> getRequiredInputValues();
     
-    public void putInputData(Collection<InputData> inputData) throws TransitionException;
+    public void putInputData(Collection<InputData> inputData, String uuid) throws TransitionException;
     
     public Collection<InputData> getInputData() throws TransitionException;
     
-    public void advance() throws TransitionException;
+    public void advance(String uuid) throws TransitionException;
     
     
     public Collection<Object> getDescibeData();
--- a/gnv-artifacts/src/main/java/de/intevation/gnv/transition/TransitionBase.java	Mon Sep 28 10:20:41 2009 +0000
+++ b/gnv-artifacts/src/main/java/de/intevation/gnv/transition/TransitionBase.java	Mon Sep 28 14:17:15 2009 +0000
@@ -70,7 +70,7 @@
     
     private Transition parent = null;
     
-    private Map<String,InputData> inputData = null;
+    protected Map<String,InputData> inputData = null;
     
     protected Collection<Object> descibeData = null;
     
@@ -180,7 +180,7 @@
     /**
      * @see de.intevation.gnv.transition.Transition#putInputData(java.util.Collection)
      */
-    public void putInputData(Collection<InputData> inputData) throws TransitionException {
+    public void putInputData(Collection<InputData> inputData, String uuid) throws TransitionException {
         log.debug("TransitionBase.putInputData");
         if (inputData != null){
             Iterator<InputData> it = inputData.iterator();
@@ -284,7 +284,7 @@
     /**
      * @see de.intevation.gnv.transition.Transition#advance()
      */
-    public void advance() throws TransitionException {
+    public void advance(String uuid) throws TransitionException {
         log.debug("TransitionBase.advance");
         try {
             List<String> list = new ArrayList<String>();
@@ -316,7 +316,7 @@
                     QueryExecutor queryExecutor = QueryExecutorFactory.getInstance().getQueryExecutor();
                     result = queryExecutor.executeQuery(this.queryID, filterValues);
                 }
-                this.purifyResult(result);
+                this.purifyResult(result, uuid);
             } catch (RuntimeException e) {
                 log.error(e,e);
             }
@@ -362,7 +362,7 @@
     /**
      * @param result
      */
-    protected void purifyResult(Collection<Result> result) {
+    protected void purifyResult(Collection<Result> result, String uuid) {
         if (this.descibeData == null){
             this.descibeData = new ArrayList<Object>();
         }
--- a/gnv-artifacts/src/main/java/de/intevation/gnv/transition/profile/vertical/VerticalProfileOutputTransition.java	Mon Sep 28 10:20:41 2009 +0000
+++ b/gnv-artifacts/src/main/java/de/intevation/gnv/transition/profile/vertical/VerticalProfileOutputTransition.java	Mon Sep 28 14:17:15 2009 +0000
@@ -51,11 +51,11 @@
     protected void createChart(OutputStream outputStream,
             Collection<KeyValueDescibeData> parameters,
             Collection<KeyValueDescibeData> measurements,
-            ChartStyle chartStyle, ChartLabels chartLables) throws IOException, TechnicalChartException {
+            ChartStyle chartStyle, ChartLabels chartLables,String uuid) throws IOException, TechnicalChartException {
         VerticalProfileChartFactory chartFactory = new VerticalProfileChartFactory();
         chartFactory.createSimpleVerticalProfileChart(chartLables, chartStyle, 
                                                  parameters, measurements, 
-                                                 outputStream, this.chartResult);
+                                                 outputStream, this.getChartResult(uuid));
     }
 
     /**
--- a/gnv-artifacts/src/main/java/de/intevation/gnv/transition/timeseries/TimeSeriesOutputTransition.java	Mon Sep 28 10:20:41 2009 +0000
+++ b/gnv-artifacts/src/main/java/de/intevation/gnv/transition/timeseries/TimeSeriesOutputTransition.java	Mon Sep 28 14:17:15 2009 +0000
@@ -77,10 +77,12 @@
    /**
     * @see de.intevation.gnv.transition.OutputTransition#out(java.lang.String, java.util.Collection, java.io.OutputStream)
     */
-    public void out(String outputMode, Collection<InputData> inputData, OutputStream outputStream) throws TransitionException {
+    public void out(String outputMode, Collection<InputData> inputData, OutputStream outputStream, String uuid) throws TransitionException {
         log.debug("TimeSeriesOutputTransition.out");
         try {
-            this.advance();
+       
+            this.advance(uuid);
+            Collection<Result> chartResult = this.getChartResult(uuid); 
             if (outputMode.equalsIgnoreCase("chart")){
                 log.debug("Chart will be generated.");
                 int chartWidth = 600;
@@ -106,12 +108,12 @@
                 ChartStyle chartStyle = this.creatStyle(chartWidth,chartHeight);
                 ChartLabels chartLables = new ChartLabels(this.getSelectedFeatureName(),this.domainLable);
                 this.createChart(outputStream, parameters, measurements,
-                        chartStyle, chartLables);
+                        chartStyle, chartLables,uuid);
             }else if (outputMode.equalsIgnoreCase("csv")){
                 log.debug("CSV-File will be generated.");
-                if(this.chartResult != null){
+                if(chartResult != null){
                     CSVWriter writer = new CSVWriter(new OutputStreamWriter(outputStream,"ISO-8859-1"), ','); // USE THIS ENCODING BECAUSE OF PROBLEMS WITH EXCEL AND UTF-8
-                    Iterator<Result>it = this.chartResult.iterator();
+                    Iterator<Result>it = chartResult.iterator();
                     while (it.hasNext()){
                         Result result = it.next();
                         int i = 0;
@@ -131,7 +133,7 @@
             }else if (outputMode.equalsIgnoreCase("statistics")){
                 log.debug("Statistics will be generated.");
                 Statistics s = getStatisticsGenerator();
-                Collection<Statistic> statistics = s.calculateStatistics(this.chartResult);
+                Collection<Statistic> statistics = s.calculateStatistics(chartResult);
                 Document doc = this.writeStatistics2XML(statistics);
                 this.writeDocument2OutputStream(doc, outputStream);
             }
@@ -219,20 +221,12 @@
     protected void createChart(OutputStream outputStream,
             Collection<KeyValueDescibeData> parameters,
             Collection<KeyValueDescibeData> measurements,
-            ChartStyle chartStyle, ChartLabels chartLables) throws IOException,
+            ChartStyle chartStyle, ChartLabels chartLables, String uuid) throws IOException,
             TechnicalChartException {
         ChartFactory chartFactory = new ChartFactory();
         chartFactory.createSimpleTimeSeriesChart(chartLables, chartStyle,
                                                  parameters, measurements, 
-                                                 outputStream, this.chartResult);
-    }
-
-    /**
-     * @see de.intevation.gnv.transition.TransitionBase#purifyResult(java.util.Collection)
-     */
-    @Override
-    protected void purifyResult(Collection<Result> result) {
-        this.chartResult = result;
+                                                 outputStream, this.getChartResult(uuid));
     }
     
     protected ChartStyle creatStyle(int witdh, int height){
--- a/gnv-artifacts/src/test/ressources/conf.xml	Mon Sep 28 10:20:41 2009 +0000
+++ b/gnv-artifacts/src/test/ressources/conf.xml	Mon Sep 28 14:17:15 2009 +0000
@@ -479,6 +479,9 @@
            </artifact>
          
     </artifacts>
+    <ehcache>
+        <configuration>src/test/ressources/ehcache.xml</configuration>
+    </ehcache>
     <geo-backend>
         <backend-configuration>../geo-backend/src/test/ressources/ArcSDEConnectionPoolTestCase.properties</backend-configuration>
         <query-configuration>src/test/ressources/queries.properties</query-configuration>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/gnv-artifacts/src/test/ressources/ehcache.xml	Mon Sep 28 14:17:15 2009 +0000
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ehcache>
+    <defaultCache maxElementsInMemory="1000"
+        eternal="true"
+        overflowToDisk="false"
+        memoryStoreEvictionPolicy="FIFO"
+         />
+</ehcache>
+

http://dive4elements.wald.intevation.org