*/
private int timeToLiveSeconds = -1;
+ /**
+ * max elements in memory.
+ */
+ private int maxElementsInMemory = -1;
+
+ /**
+ * max elements on disk.
+ */
+ private int maxElementsOnDisk = -1;
+
public CacheConfiguration()
{
// no op
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()
{
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();
}
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 );
* @author Olivier Lamy
* @since 1.4-M4
*/
-@Service( "archivaRuntimeConfigurationService#rest" )
+@Service("archivaRuntimeConfigurationService#rest")
public class DefaultRedbackRuntimeConfigurationService
extends AbstractRestService
implements RedbackRuntimeConfigurationService
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;
redbackRuntimeConfiguration.getUsersCacheConfiguration().getTimeToIdleSeconds() );
usersCache.setTimeToLiveSeconds(
redbackRuntimeConfiguration.getUsersCacheConfiguration().getTimeToLiveSeconds() );
+ usersCache.setMaxElementsInMemory(
+ redbackRuntimeConfiguration.getUsersCacheConfiguration().getMaxElementsInMemory() );
+ usersCache.setMaxElementsOnDisk(
+ redbackRuntimeConfiguration.getUsersCacheConfiguration().getMaxElementsOnDisk() );
return Boolean.TRUE;
}
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
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) {
}
- CacheConfiguration=function(timeToIdleSeconds,timeToLiveSeconds){
+ CacheConfiguration=function(timeToIdleSeconds,timeToLiveSeconds,maxElementsInMemory,maxElementsOnDisk){
var self=this;
this.modified=ko.observable(false);
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
</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>