mirror of https://github.com/apache/archiva.git
[MRM-1702] make the locking configurable via the UI
git-svn-id: https://svn.apache.org/repos/asf/archiva/trunk@1550708 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
3e91228d28
commit
4803f6be06
|
@ -162,6 +162,13 @@ public class DefaultArchivaRuntimeConfigurationAdmin
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if ( archivaRuntimeConfiguration.getFileLockConfiguration() != null )
|
||||||
|
{
|
||||||
|
res.setFileLockConfiguration(
|
||||||
|
new BeanReplicator().replicateBean( archivaRuntimeConfiguration.getFileLockConfiguration(),
|
||||||
|
FileLockConfiguration.class ) );
|
||||||
|
}
|
||||||
|
|
||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -375,30 +375,31 @@ public class DefaultRedbackRuntimeConfigurationAdmin
|
||||||
}
|
}
|
||||||
|
|
||||||
private org.apache.archiva.configuration.RedbackRuntimeConfiguration build(
|
private org.apache.archiva.configuration.RedbackRuntimeConfiguration build(
|
||||||
RedbackRuntimeConfiguration archivaRuntimeConfiguration )
|
RedbackRuntimeConfiguration redbackRuntimeConfiguration )
|
||||||
{
|
{
|
||||||
org.apache.archiva.configuration.RedbackRuntimeConfiguration redbackRuntimeConfiguration =
|
org.apache.archiva.configuration.RedbackRuntimeConfiguration res =
|
||||||
new BeanReplicator().replicateBean( archivaRuntimeConfiguration,
|
new BeanReplicator().replicateBean( redbackRuntimeConfiguration,
|
||||||
org.apache.archiva.configuration.RedbackRuntimeConfiguration.class );
|
org.apache.archiva.configuration.RedbackRuntimeConfiguration.class );
|
||||||
|
|
||||||
if ( archivaRuntimeConfiguration.getLdapConfiguration() == null )
|
if ( redbackRuntimeConfiguration.getLdapConfiguration() == null )
|
||||||
{
|
{
|
||||||
archivaRuntimeConfiguration.setLdapConfiguration( new LdapConfiguration() );
|
redbackRuntimeConfiguration.setLdapConfiguration( new LdapConfiguration() );
|
||||||
}
|
}
|
||||||
redbackRuntimeConfiguration.setLdapConfiguration(
|
res.setLdapConfiguration(
|
||||||
new BeanReplicator().replicateBean( archivaRuntimeConfiguration.getLdapConfiguration(),
|
new BeanReplicator().replicateBean( redbackRuntimeConfiguration.getLdapConfiguration(),
|
||||||
org.apache.archiva.configuration.LdapConfiguration.class ) );
|
org.apache.archiva.configuration.LdapConfiguration.class ) );
|
||||||
|
|
||||||
if ( archivaRuntimeConfiguration.getUsersCacheConfiguration() == null )
|
if ( redbackRuntimeConfiguration.getUsersCacheConfiguration() == null )
|
||||||
{
|
{
|
||||||
archivaRuntimeConfiguration.setUsersCacheConfiguration( new CacheConfiguration() );
|
redbackRuntimeConfiguration.setUsersCacheConfiguration( new CacheConfiguration() );
|
||||||
}
|
}
|
||||||
|
|
||||||
redbackRuntimeConfiguration.setUsersCacheConfiguration(
|
|
||||||
new BeanReplicator().replicateBean( archivaRuntimeConfiguration.getUsersCacheConfiguration(),
|
res.setUsersCacheConfiguration(
|
||||||
|
new BeanReplicator().replicateBean( redbackRuntimeConfiguration.getUsersCacheConfiguration(),
|
||||||
org.apache.archiva.configuration.CacheConfiguration.class ) );
|
org.apache.archiva.configuration.CacheConfiguration.class ) );
|
||||||
|
|
||||||
List<LdapGroupMapping> ldapGroupMappings = archivaRuntimeConfiguration.getLdapGroupMappings();
|
List<LdapGroupMapping> ldapGroupMappings = redbackRuntimeConfiguration.getLdapGroupMappings();
|
||||||
|
|
||||||
if ( ldapGroupMappings != null && ldapGroupMappings.size() > 0 )
|
if ( ldapGroupMappings != null && ldapGroupMappings.size() > 0 )
|
||||||
{
|
{
|
||||||
|
@ -416,9 +417,9 @@ public class DefaultRedbackRuntimeConfigurationAdmin
|
||||||
mappings.add( mapping );
|
mappings.add( mapping );
|
||||||
|
|
||||||
}
|
}
|
||||||
redbackRuntimeConfiguration.setLdapGroupMappings( mappings );
|
res.setLdapGroupMappings( mappings );
|
||||||
}
|
}
|
||||||
return redbackRuntimeConfiguration;
|
return res;
|
||||||
}
|
}
|
||||||
|
|
||||||
// wrapper for UserConfiguration to intercept values (and store it not yet migrated)
|
// wrapper for UserConfiguration to intercept values (and store it not yet migrated)
|
||||||
|
|
|
@ -681,6 +681,11 @@ archiva-runtime-configuration.title=Archiva Runtime Configuration
|
||||||
runtime-configuration.cache.failure.title=Url Cache Failure
|
runtime-configuration.cache.failure.title=Url Cache Failure
|
||||||
runtime-configuration.maven.network.title=Maven Network
|
runtime-configuration.maven.network.title=Maven Network
|
||||||
|
|
||||||
|
runtime-configuration.filelocking.title=FileLocking
|
||||||
|
runtime.fileLockConfiguration.lockingTimeout.label=Lock Timeout
|
||||||
|
runtime.fileLockConfiguration.skipLocking.label=Skip Locking
|
||||||
|
|
||||||
|
|
||||||
redback.runtime.ldap.mapping.group.label=LDAP Groups
|
redback.runtime.ldap.mapping.group.label=LDAP Groups
|
||||||
redback.runtime.ldap.mapping.roles.label=Roles
|
redback.runtime.ldap.mapping.roles.label=Roles
|
||||||
redback-runtime-ldap-group-mapping.updated=LDAP Role-Group mapping updated.
|
redback-runtime-ldap-group-mapping.updated=LDAP Role-Group mapping updated.
|
||||||
|
|
|
@ -317,7 +317,8 @@ define("archiva/admin/features/generaladmin/main",["jquery","i18n","utils","jque
|
||||||
var archivaRuntimeConfiguration=mapArchivaRuntimeConfiguration(data);
|
var archivaRuntimeConfiguration=mapArchivaRuntimeConfiguration(data);
|
||||||
var archivaRuntimeConfigurationViewModel=new ArchivaRuntimeConfigurationViewModel(archivaRuntimeConfiguration);
|
var archivaRuntimeConfigurationViewModel=new ArchivaRuntimeConfigurationViewModel(archivaRuntimeConfiguration);
|
||||||
ko.applyBindings(archivaRuntimeConfigurationViewModel,mainContent.find("#cache-failure-form").get(0));
|
ko.applyBindings(archivaRuntimeConfigurationViewModel,mainContent.find("#cache-failure-form").get(0));
|
||||||
var validator = mainContent.find("#cache-failure-form-id")
|
ko.applyBindings(archivaRuntimeConfigurationViewModel,mainContent.find("#filelocking-form").get(0));
|
||||||
|
mainContent.find("#cache-failure-form-id")
|
||||||
.validate({
|
.validate({
|
||||||
showErrors: function(validator, errorMap, errorList) {
|
showErrors: function(validator, errorMap, errorList) {
|
||||||
customShowError(mainContent.find("#cache-failure-form-id" ),validator,errorMap,errorMap);
|
customShowError(mainContent.find("#cache-failure-form-id" ),validator,errorMap,errorMap);
|
||||||
|
@ -362,16 +363,31 @@ define("archiva/admin/features/generaladmin/main",["jquery","i18n","utils","jque
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
ArchivaRuntimeConfiguration=function(cacheConfiguration){
|
FileLockConfiguration=function(skipLocking,lockingTimeout){
|
||||||
this.urlFailureCacheConfiguration=ko.observable(cacheConfiguration);
|
//private boolean skipLocking = true;
|
||||||
|
this.skipLocking=ko.observable(skipLocking);
|
||||||
|
//private int lockingTimeout = 0;
|
||||||
|
this.lockingTimeout=ko.observable(lockingTimeout) ;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ArchivaRuntimeConfiguration=function(cacheConfiguration,fileLockConfiguration){
|
||||||
|
this.urlFailureCacheConfiguration=ko.observable(cacheConfiguration);
|
||||||
|
this.fileLockConfiguration=ko.observable(fileLockConfiguration);
|
||||||
|
}
|
||||||
|
|
||||||
|
mapFileLockConfiguration=function(data){
|
||||||
|
if (!data){
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
return new FileLockConfiguration(data.skipLocking,data.lockingTimeout);
|
||||||
|
}
|
||||||
|
|
||||||
mapArchivaRuntimeConfiguration=function(data){
|
mapArchivaRuntimeConfiguration=function(data){
|
||||||
if(!data){
|
if(!data){
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
return new ArchivaRuntimeConfiguration(data.urlFailureCacheConfiguration?mapCacheConfiguration(data.urlFailureCacheConfiguration):null);
|
return new ArchivaRuntimeConfiguration(data.urlFailureCacheConfiguration?mapCacheConfiguration(data.urlFailureCacheConfiguration):null,
|
||||||
|
data.fileLockConfiguration?mapFileLockConfiguration(data.fileLockConfiguration):null);
|
||||||
}
|
}
|
||||||
//---------------------------
|
//---------------------------
|
||||||
// organisation/appearance configuration part
|
// organisation/appearance configuration part
|
||||||
|
|
|
@ -287,6 +287,7 @@
|
||||||
<ul class="nav nav-tabs">
|
<ul class="nav nav-tabs">
|
||||||
<li class="active" id="network-configuration-form-li"><a href="#network-configuration-form-content" data-toggle="tab">${$.i18n.prop('runtime-configuration.maven.network.title')}</a></li>
|
<li class="active" id="network-configuration-form-li"><a href="#network-configuration-form-content" data-toggle="tab">${$.i18n.prop('runtime-configuration.maven.network.title')}</a></li>
|
||||||
<li id="cache-failure-form-li"><a href="#cache-failure-form-content" data-toggle="tab">${$.i18n.prop('runtime-configuration.cache.failure.title')}</a></li>
|
<li id="cache-failure-form-li"><a href="#cache-failure-form-content" data-toggle="tab">${$.i18n.prop('runtime-configuration.cache.failure.title')}</a></li>
|
||||||
|
<li id="filelocking-form-li"><a href="#filelocking-form-content" data-toggle="tab">${$.i18n.prop('runtime-configuration.filelocking.title')}</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
<div class="tab-content">
|
<div class="tab-content">
|
||||||
|
@ -297,9 +298,11 @@
|
||||||
<div id="network-configuration-form" data-bind='template: {name:"network-configuration-form-tmpl"}'></div>
|
<div id="network-configuration-form" data-bind='template: {name:"network-configuration-form-tmpl"}'></div>
|
||||||
</div>
|
</div>
|
||||||
<div class="tab-pane" id="cache-failure-form-content">
|
<div class="tab-pane" id="cache-failure-form-content">
|
||||||
|
|
||||||
<div id="cache-failure-form" data-bind='template: {name:"cache-failure-form-tmpl"}'></div>
|
<div id="cache-failure-form" data-bind='template: {name:"cache-failure-form-tmpl"}'></div>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="tab-pane" id="filelocking-form-content">
|
||||||
|
<div id="filelocking-form" data-bind='template: {name:"filelocking-form-tmpl"}'></div>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
@ -369,6 +372,8 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<button id="cache-failure-form-btn-save" data-loading-text="${$.i18n.prop('common.loading')}"
|
<button id="cache-failure-form-btn-save" data-loading-text="${$.i18n.prop('common.loading')}"
|
||||||
data-bind="click: save" class="btn">${$.i18n.prop('save')}</button>
|
data-bind="click: save" class="btn">${$.i18n.prop('save')}</button>
|
||||||
|
|
||||||
|
@ -376,6 +381,35 @@
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
|
||||||
|
<script id="filelocking-form-tmpl" type="text/html">
|
||||||
|
|
||||||
|
<form class="well form-horizontal" id="filelocking-form-id">
|
||||||
|
|
||||||
|
<div class="control-group">
|
||||||
|
<label class="control-label" for="skipLocking">${$.i18n.prop('runtime.fileLockConfiguration.skipLocking.label')}</label>
|
||||||
|
<div class="controls">
|
||||||
|
<input type="checkbox" class="xlarge" data-bind="checked: archivaRuntimeConfiguration().fileLockConfiguration().skipLocking"
|
||||||
|
id="skipLocking" name="skipLocking" />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="control-group">
|
||||||
|
<label class="control-label" for="lockingTimeout">${$.i18n.prop('runtime.fileLockConfiguration.lockingTimeout.label')}</label>
|
||||||
|
<div class="controls">
|
||||||
|
<input type="text" class="xlarge required digits" data-bind="value: archivaRuntimeConfiguration().fileLockConfiguration().lockingTimeout"
|
||||||
|
id="lockingTimeout" name="lockingTimeout" />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<button id="filelocking-form-btn-save" data-loading-text="${$.i18n.prop('common.loading')}"
|
||||||
|
data-bind="click: save" class="btn">${$.i18n.prop('save')}</button>
|
||||||
|
|
||||||
|
</form>
|
||||||
|
|
||||||
|
</script>
|
||||||
|
|
||||||
|
|
||||||
<script id="system-status-main" type="text/html">
|
<script id="system-status-main" type="text/html">
|
||||||
<div class="page-header">
|
<div class="page-header">
|
||||||
<h4>${$.i18n.prop('system-status.header.version.info')}</h4>
|
<h4>${$.i18n.prop('system-status.header.version.info')}</h4>
|
||||||
|
|
Loading…
Reference in New Issue