]> source.dussan.org Git - archiva.git/commitdiff
configure maxElementsInMemory and maxElementsOnDisk
authorOlivier Lamy <olamy@apache.org>
Thu, 27 Dec 2012 22:04:22 +0000 (22:04 +0000)
committerOlivier Lamy <olamy@apache.org>
Thu, 27 Dec 2012 22:04:22 +0000 (22:04 +0000)
git-svn-id: https://svn.apache.org/repos/asf/archiva/trunk@1426342 13f79535-47bb-0310-9956-ffa450edef68

archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-api/src/main/java/org/apache/archiva/admin/model/beans/CacheConfiguration.java
archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-default/src/main/java/org/apache/archiva/admin/repository/runtime/DefaultRedbackRuntimeConfigurationAdmin.java
archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/main/java/org/apache/archiva/rest/services/DefaultRedbackRuntimeConfigurationService.java
archiva-modules/archiva-web/archiva-web-common/src/main/resources/org/apache/archiva/i18n/default.properties
archiva-modules/archiva-web/archiva-webapp/src/main/webapp/js/archiva/general-admin.js
archiva-modules/archiva-web/archiva-webapp/src/main/webapp/js/templates/archiva/general-admin.html

index 20c18102e3ebe280bb0c761f2fab4e4c1b97fd30..ed4814b0263ddcff8e5b6857008c02011b2bda5b 100644 (file)
@@ -39,6 +39,16 @@ public class CacheConfiguration
      */
     private int timeToLiveSeconds = -1;
 
+    /**
+     * max elements in memory.
+     */
+    private int maxElementsInMemory = -1;
+
+    /**
+     * max elements on disk.
+     */
+    private int maxElementsOnDisk = -1;
+
     public CacheConfiguration()
     {
         // no op
@@ -64,6 +74,26 @@ public class CacheConfiguration
         this.timeToLiveSeconds = timeToLiveSeconds;
     }
 
+    public int getMaxElementsInMemory()
+    {
+        return maxElementsInMemory;
+    }
+
+    public void setMaxElementsInMemory( int maxElementsInMemory )
+    {
+        this.maxElementsInMemory = maxElementsInMemory;
+    }
+
+    public int getMaxElementsOnDisk()
+    {
+        return maxElementsOnDisk;
+    }
+
+    public void setMaxElementsOnDisk( int maxElementsOnDisk )
+    {
+        this.maxElementsOnDisk = maxElementsOnDisk;
+    }
+
     @Override
     public String toString()
     {
@@ -71,6 +101,8 @@ public class CacheConfiguration
         sb.append( "CacheConfiguration" );
         sb.append( "{timeToIdleSeconds=" ).append( timeToIdleSeconds );
         sb.append( ", timeToLiveSeconds=" ).append( timeToLiveSeconds );
+        sb.append( ", maxElementsInMemory=" ).append( maxElementsInMemory );
+        sb.append( ", maxElementsOnDisk=" ).append( maxElementsOnDisk );
         sb.append( '}' );
         return sb.toString();
     }
index f8f83f3c4d206f2ed29abfb4ae16348dfbecc644..3c12a2e84fc2e8dbfe9a8511e023c1b02e197739 100644 (file)
@@ -147,6 +147,24 @@ public class DefaultRedbackRuntimeConfigurationAdmin
             usersCache.setTimeToLiveSeconds(
                 redbackRuntimeConfiguration.getUsersCacheConfiguration().getTimeToLiveSeconds() );
 
+            if ( redbackRuntimeConfiguration.getUsersCacheConfiguration().getMaxElementsInMemory() < 0 )
+            {
+                redbackRuntimeConfiguration.getUsersCacheConfiguration().setMaxElementsInMemory(
+                    usersCache.getMaxElementsInMemory() );
+                save = true;
+            }
+            usersCache.setMaxElementsInMemory(
+                redbackRuntimeConfiguration.getUsersCacheConfiguration().getMaxElementsInMemory() );
+
+            if ( redbackRuntimeConfiguration.getUsersCacheConfiguration().getMaxElementsOnDisk() < 0 )
+            {
+                redbackRuntimeConfiguration.getUsersCacheConfiguration().setMaxElementsOnDisk(
+                    usersCache.getMaxElementsOnDisk() );
+                save = true;
+            }
+            usersCache.setMaxElementsOnDisk(
+                redbackRuntimeConfiguration.getUsersCacheConfiguration().getMaxElementsOnDisk() );
+
             if ( save )
             {
                 updateRedbackRuntimeConfiguration( redbackRuntimeConfiguration );
index b4d68d721f8fe6c3f40f7900f99840ccedd5038a..f98b09a528c67176ea2d7bc0c6285b73f6713d88 100644 (file)
@@ -55,7 +55,7 @@ import java.util.Properties;
  * @author Olivier Lamy
  * @since 1.4-M4
  */
-@Service( "archivaRuntimeConfigurationService#rest" )
+@Service("archivaRuntimeConfigurationService#rest")
 public class DefaultRedbackRuntimeConfigurationService
     extends AbstractRestService
     implements RedbackRuntimeConfigurationService
@@ -64,18 +64,18 @@ public class DefaultRedbackRuntimeConfigurationService
     private RedbackRuntimeConfigurationAdmin redbackRuntimeConfigurationAdmin;
 
     @Inject
-    @Named( value = "userManager#configurable" )
+    @Named(value = "userManager#configurable")
     private UserManager userManager;
 
     @Inject
     private ApplicationContext applicationContext;
 
     @Inject
-    @Named( value = "ldapConnectionFactory#configurable" )
+    @Named(value = "ldapConnectionFactory#configurable")
     private LdapConnectionFactory ldapConnectionFactory;
 
     @Inject
-    @Named( value = "cache#users" )
+    @Named(value = "cache#users")
     private Cache usersCache;
 
 
@@ -144,6 +144,10 @@ public class DefaultRedbackRuntimeConfigurationService
                 redbackRuntimeConfiguration.getUsersCacheConfiguration().getTimeToIdleSeconds() );
             usersCache.setTimeToLiveSeconds(
                 redbackRuntimeConfiguration.getUsersCacheConfiguration().getTimeToLiveSeconds() );
+            usersCache.setMaxElementsInMemory(
+                redbackRuntimeConfiguration.getUsersCacheConfiguration().getMaxElementsInMemory() );
+            usersCache.setMaxElementsOnDisk(
+                redbackRuntimeConfiguration.getUsersCacheConfiguration().getMaxElementsOnDisk() );
 
             return Boolean.TRUE;
         }
index f90f02e12941b29be73e451d5bb94039c3834b3a..35b0ecdc41719ba2c03b8929696ccfb2bb3d96a1 100644 (file)
@@ -639,5 +639,7 @@ redback.runtime.usersCacheTimeToLiveSeconds.help.content=
 redback.runtime.usersCacheTimeToIdleSeconds.label=Time to Idle (seconds)
 redback.runtime.usersCacheTimeToIdleSeconds.help.title=
 redback.runtime.usersCacheTimeToIdleSeconds.help.content=
+redback.runtime.maxElementsInMemory.label=Max Elements in memory
+redback.runtime.maxElementsOnDisk.label=Max Elements on disk
 
 
index 0db8054b1e2c8ca867bad7728ed4e254563a0e10..dbbbed316ff082ec50edc1b52ea1ad263612f802 100644 (file)
@@ -1504,6 +1504,16 @@ define("archiva.general-admin",["jquery","i18n","utils","jquery.tmpl","knockout"
           digits: true,
           min: 1,
           required: true
+        },
+        maxElementsInMemory : {
+          digits: true,
+          min: 1,
+          required: true
+        },
+        maxElementsOnDisk : {
+          digits: true,
+          min: 1,
+          required: true
         }
       },
       showErrors: function(validator, errorMap, errorList) {
@@ -1563,7 +1573,7 @@ define("archiva.general-admin",["jquery","i18n","utils","jquery.tmpl","knockout"
 
   }
 
-  CacheConfiguration=function(timeToIdleSeconds,timeToLiveSeconds){
+  CacheConfiguration=function(timeToIdleSeconds,timeToLiveSeconds,maxElementsInMemory,maxElementsOnDisk){
     var self=this;
     this.modified=ko.observable(false);
 
@@ -1573,13 +1583,19 @@ define("archiva.general-admin",["jquery","i18n","utils","jquery.tmpl","knockout"
     this.timeToLiveSeconds=ko.observable(timeToLiveSeconds);
     this.timeToLiveSeconds.subscribe(function(newValue){self.modified(true)});
 
+    this.maxElementsInMemory=ko.observable(maxElementsInMemory);
+    this.maxElementsInMemory.subscribe(function(newValue){self.modified(true)});
+
+    this.maxElementsOnDisk=ko.observable(maxElementsOnDisk);
+    this.maxElementsOnDisk.subscribe(function(newValue){self.modified(true)});
+
   }
 
   mapCacheConfiguration=function(data){
     if(!data){
       return new CacheConfiguration();
     }
-    return new CacheConfiguration(data.timeToIdleSeconds,data.timeToLiveSeconds);
+    return new CacheConfiguration(data.timeToIdleSeconds,data.timeToLiveSeconds,data.maxElementsInMemory,data.maxElementsOnDisk);
   }
 
 });
\ No newline at end of file
index f37f670f4f7fb8645bec38c1e15040f6e2cf57e9..0a646304660469c04d5fa4bad14016a55d441247 100644 (file)
               </div>
             </div>
 
+            <div class="control-group">
+              <label class="control-label" for="maxElementsInMemory">${$.i18n.prop('redback.runtime.maxElementsInMemory.label')}</label>
+              <div class="controls">
+                <input type="text" class="xlarge required numeric" data-bind="value: redbackRuntimeConfiguration().usersCacheConfiguration().maxElementsInMemory"
+                       id="maxElementsInMemory" name="maxElementsInMemory" />
+              </div>
+            </div>
+
+            <div class="control-group">
+              <label class="control-label" for="maxElementsOnDisk">${$.i18n.prop('redback.runtime.maxElementsOnDisk.label')}</label>
+              <div class="controls">
+                <input type="text" class="xlarge required numeric" data-bind="value: redbackRuntimeConfiguration().usersCacheConfiguration().maxElementsOnDisk"
+                       id="maxElementsOnDisk" name="maxElementsOnDisk" />
+              </div>
+            </div>
+
           </form>