<ehcache>

    <!-- Sets the path to the directory where cache .data files are created.

         If the path is a Java System Property it is replaced by
         its value in the running VM.

         The following properties are translated:
         user.home - User's home directory
         user.dir - User's current working directory
         java.io.tmpdir - Default temp file path -->
    <diskStore path="java.io.tmpdir"/>

    <!-- Queries cache -->
	<cache name="org.hibernate.cache.StandardQueryCache"
	        maxElementsInMemory="1000"
	        eternal="false"
	        timeToLiveSeconds="120"
	        overflowToDisk="true"/>

	<cache name="org.hibernate.cache.UpdateTimestampsCache"
        maxElementsInMemory="5000"
        eternal="true"
        overflowToDisk="true"/>

    <!-- Object cache -->

     <cache name="tudu.domain.model.User"
        maxElementsInMemory="5000"
        eternal="false"
        overflowToDisk="true"
        timeToIdleSeconds="600"
        />
        
     <cache name="tudu.domain.model.User.roles"
        maxElementsInMemory="20000"
        eternal="false"
        overflowToDisk="true"
        timeToIdleSeconds="600"
        /> 
        
     <cache name="tudu.domain.model.User.todoLists"
        maxElementsInMemory="20000"
        eternal="false"
        overflowToDisk="true"
        timeToIdleSeconds="600"
        /> 
        
     <cache name="tudu.domain.model.Role"
        maxElementsInMemory="20000"
        eternal="false"
        overflowToDisk="true"
        timeToIdleSeconds="600"
        /> 

     <cache name="tudu.domain.model.Todo"
        maxElementsInMemory="50000"
        eternal="false"
        overflowToDisk="true"
        timeToIdleSeconds="600"
        />

     <cache name="tudu.domain.model.TodoList"
        maxElementsInMemory="20000"
        eternal="false"
        overflowToDisk="true"
        timeToIdleSeconds="600"
        />
        
     <cache name="tudu.domain.model.TodoList.todos"
        maxElementsInMemory="50000"
        eternal="false"
        overflowToDisk="true"
        timeToIdleSeconds="600"
        />
        
     <cache name="tudu.domain.model.TodoList.users"
        maxElementsInMemory="5000"
        eternal="false"
        overflowToDisk="true"
        timeToIdleSeconds="300"
        />
        
     <cache name="tudu.domain.model.Property"
        maxElementsInMemory="50"
        eternal="false"
        overflowToDisk="true"
        timeToIdleSeconds="600"
        /> 
        
     <cache name="AcegiUserCache"
        maxElementsInMemory="5000"
        eternal="false"
        overflowToDisk="true"
        timeToIdleSeconds="300"
        />

    <!--Default Cache configuration. These will applied to caches programmatically created through
        the CacheManager.

        The following attributes are required for defaultCache:

        maxInMemory       - Sets the maximum number of objects that will be created in memory
        eternal           - Sets whether elements are eternal. If eternal,  timeouts are ignored and the element
                            is never expired.
        timeToIdleSeconds - Sets the time to idle for an element before it expires.
                            i.e. The maximum amount of time between accesses before an element expires
                            Is only used if the element is not eternal.
                            Optional attribute. A value of 0 means that an Element can idle for infinity
        timeToLiveSeconds - Sets the time to live for an element before it expires.
                            i.e. The maximum time between creation time and when an element expires.
                            Is only used if the element is not eternal.
                            Optional attribute. A value of 0 means that and Element can live for infinity
        overflowToDisk    - Sets whether elements can overflow to disk when the in-memory cache
                            has reached the maxInMemory limit.

        -->
    <defaultCache
        maxElementsInMemory="100000"
        eternal="true"
        overflowToDisk="true"
        />

</ehcache>
