]> source.dussan.org Git - archiva.git/commitdiff
[MRM-1478] Enable DB caching
authorOlivier Lamy <olamy@apache.org>
Tue, 28 Jun 2011 22:19:30 +0000 (22:19 +0000)
committerOlivier Lamy <olamy@apache.org>
Tue, 28 Jun 2011 22:19:30 +0000 (22:19 +0000)
Submitted by Maria Catherine Tan
patch applied with modifications

git-svn-id: https://svn.apache.org/repos/asf/archiva/trunk@1140869 13f79535-47bb-0310-9956-ffa450edef68

archiva-modules/archiva-web/archiva-webapp/pom.xml
archiva-modules/archiva-web/archiva-webapp/src/main/resources/ehcache.xml [new file with mode: 0644]
archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/applicationContext.xml
pom.xml

index f33940dbac833308fc498eb1fca0fc68397654e5..afb20eca4f9c2385e05786b0d973b1fdae9a7be1 100644 (file)
       <scope>test</scope>
       <version>${struts.version}</version>
     </dependency>
+    <dependency>
+      <groupId>jpox</groupId>
+      <artifactId>jpox-ehcache</artifactId>
+      <exclusions>
+        <exclusion>
+          <groupId>commons-logging</groupId>
+          <artifactId>commons-logging</artifactId>
+        </exclusion>
+        <exclusion>
+          <groupId>ehcache</groupId>
+          <artifactId>ehcache</artifactId>
+        </exclusion>
+      </exclusions>
+    </dependency>
   </dependencies>
   <build>
     <resources>
               <tasks>
                 <mkdir dir="${basedir}/target/archiva/WEB-INF/"/>
                 <copy todir="${basedir}/target/archiva/WEB-INF/">
-                  <fileset dir="${basedir}/target" includes="classes/" excludes="**/struts.xml"/>
+                  <fileset dir="${basedir}/target" includes="classes/" excludes="**/struts.xml,**/ehcache.xml"/>
                 </copy>
               </tasks>
             </configuration>
             <artifactId>derby</artifactId>
             <version>10.1.3.1</version>
           </dependency>
-          <!-- Enable the following if you want JSP 2.0 or JVM version < 1.5 <dependency>
-            <groupId>commons-logging</groupId>
-            <artifactId>commons-logging</artifactId>
-            <version>1.1</version>
-            <type>jar</type>
-          </dependency>
-          <dependency>
-            <groupId>org.slf4j</groupId>
-            <artifactId>slf4j-jcl</artifactId>
-            <version>1.0.1</version>
-            <type>jar</type>
-          </dependency>
-          <dependency>
-            <groupId>log4j</groupId>
-            <artifactId>log4j</artifactId>
-            <version>1.2.14</version>
-            <type>jar</type>
-          </dependency>
-           -->
         </dependencies>
       </plugin>
       <plugin>
diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/resources/ehcache.xml b/archiva-modules/archiva-web/archiva-webapp/src/main/resources/ehcache.xml
new file mode 100644 (file)
index 0000000..3dc15b0
--- /dev/null
@@ -0,0 +1,74 @@
+<ehcache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+  <diskStore path="java.io.tmpdir" />
+
+  <!-- make default cache very short lived -->
+
+  <defaultCache
+    maxElementsInMemory="100"
+    maxElementsOnDisk="0"
+    eternal="false"
+    overflowToDisk="false"
+    timeToIdleSeconds="300"
+    timeToLiveSeconds="600"
+    memoryStoreEvictionPolicy="LFU" />
+
+  <!--
+    cache Redback classes longer to avoid a lot of SQL queries
+    See REDBACK-227
+  -->
+  <cache name="defaultJpox"
+      maxElementsInMemory="10000"
+      maxElementsOnDisk="0"
+      eternal="false"
+      overflowToDisk="false"
+      timeToIdleSeconds="1800"
+      timeToLiveSeconds="14400"
+      memoryStoreEvictionPolicy="LFU" />
+
+  <cache name="org.codehaus.plexus.redback.rbac.jdo.JdoOperation"
+    maxElementsInMemory="10000"
+    maxElementsOnDisk="0"
+    eternal="false"
+    overflowToDisk="false"
+    timeToIdleSeconds="1800"
+    timeToLiveSeconds="14400"
+    memoryStoreEvictionPolicy="LFU" />
+
+  <cache name="org.codehaus.plexus.redback.rbac.jdo.JdoPermission"
+    maxElementsInMemory="10000"
+    maxElementsOnDisk="0"
+    eternal="false"
+    overflowToDisk="false"
+    timeToIdleSeconds="1800"
+    timeToLiveSeconds="14400"
+    memoryStoreEvictionPolicy="LFU" />
+
+  <cache name="org.codehaus.plexus.redback.rbac.jdo.JdoResource"
+    maxElementsInMemory="10000"
+    maxElementsOnDisk="0"
+    eternal="false"
+    overflowToDisk="false"
+    timeToIdleSeconds="1800"
+    timeToLiveSeconds="14400"
+    memoryStoreEvictionPolicy="LFU" />
+
+  <cache name="org.codehaus.plexus.redback.rbac.jdo.JdoRole"
+    maxElementsInMemory="10000"
+    maxElementsOnDisk="0"
+    eternal="false"
+    overflowToDisk="false"
+    timeToIdleSeconds="1800"
+    timeToLiveSeconds="14400"
+    memoryStoreEvictionPolicy="LFU" />
+
+  <cache name="org.codehaus.plexus.redback.rbac.jdo.JdoUserAssignment"
+    maxElementsInMemory="10000"
+    maxElementsOnDisk="0"
+    eternal="false"
+    overflowToDisk="false"
+    timeToIdleSeconds="300"
+    timeToLiveSeconds="600"
+    memoryStoreEvictionPolicy="LFU" />
+
+</ehcache>
+
index 01d6dd05596b55c40f4a92233a3d1781f327ba69..857c4d9ec06709b183013403f56bdb1e1ddf1e6f 100644 (file)
         <!-- NEEDED FOR POSTGRES, But causes problems in other JDBC implementations.
         <prop key="org.jpox.identifier.case">PreserveCase</prop>
         -->
+
+        <!-- cache activation -->
+        <prop key="org.jpox.cache.level2">true</prop>
+        <prop key="org.jpox.cache.level2.type">ehcacheclassbased</prop>
+        <prop key="org.jpox.cache.level2.cacheName">defaultJpox</prop>
+        <prop key="org.jpox.cache.level2.configurationFile">/ehcache.xml</prop>
       </props>
     </property>
   </bean>
diff --git a/pom.xml b/pom.xml
index 136efafb73e1cc222436b361b77e11d3f1c1f62c..b03cd5ea04f787931b2b8dbc4f4b7345bc5add19 100644 (file)
--- a/pom.xml
+++ b/pom.xml
         <version>1.8.3</version>
         <scope>test</scope>
       </dependency>
+      <dependency>
+        <groupId>jpox</groupId>
+        <artifactId>jpox-ehcache</artifactId>
+        <version>1.1.9</version>
+      </dependency>
     </dependencies>
   </dependencyManagement>