diff options
5 files changed, 81 insertions, 18 deletions
diff --git a/archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-default/src/main/java/org/apache/archiva/admin/repository/runtime/DefaultArchivaRuntimeConfigurationAdmin.java b/archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-default/src/main/java/org/apache/archiva/admin/repository/runtime/DefaultArchivaRuntimeConfigurationAdmin.java index 3c6704d8b..3ac847b9f 100644 --- a/archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-default/src/main/java/org/apache/archiva/admin/repository/runtime/DefaultArchivaRuntimeConfigurationAdmin.java +++ b/archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-default/src/main/java/org/apache/archiva/admin/repository/runtime/DefaultArchivaRuntimeConfigurationAdmin.java @@ -162,6 +162,13 @@ public class DefaultArchivaRuntimeConfigurationAdmin } + if ( archivaRuntimeConfiguration.getFileLockConfiguration() != null ) + { + res.setFileLockConfiguration( + new BeanReplicator().replicateBean( archivaRuntimeConfiguration.getFileLockConfiguration(), + FileLockConfiguration.class ) ); + } + return res; } diff --git a/archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-default/src/main/java/org/apache/archiva/admin/repository/runtime/DefaultRedbackRuntimeConfigurationAdmin.java b/archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-default/src/main/java/org/apache/archiva/admin/repository/runtime/DefaultRedbackRuntimeConfigurationAdmin.java index 834b50556..37ffe0aa8 100644 --- a/archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-default/src/main/java/org/apache/archiva/admin/repository/runtime/DefaultRedbackRuntimeConfigurationAdmin.java +++ b/archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-default/src/main/java/org/apache/archiva/admin/repository/runtime/DefaultRedbackRuntimeConfigurationAdmin.java @@ -375,30 +375,31 @@ public class DefaultRedbackRuntimeConfigurationAdmin } private org.apache.archiva.configuration.RedbackRuntimeConfiguration build( - RedbackRuntimeConfiguration archivaRuntimeConfiguration ) + RedbackRuntimeConfiguration redbackRuntimeConfiguration ) { - org.apache.archiva.configuration.RedbackRuntimeConfiguration redbackRuntimeConfiguration = - new BeanReplicator().replicateBean( archivaRuntimeConfiguration, + org.apache.archiva.configuration.RedbackRuntimeConfiguration res = + new BeanReplicator().replicateBean( redbackRuntimeConfiguration, org.apache.archiva.configuration.RedbackRuntimeConfiguration.class ); - if ( archivaRuntimeConfiguration.getLdapConfiguration() == null ) + if ( redbackRuntimeConfiguration.getLdapConfiguration() == null ) { - archivaRuntimeConfiguration.setLdapConfiguration( new LdapConfiguration() ); + redbackRuntimeConfiguration.setLdapConfiguration( new LdapConfiguration() ); } - redbackRuntimeConfiguration.setLdapConfiguration( - new BeanReplicator().replicateBean( archivaRuntimeConfiguration.getLdapConfiguration(), + res.setLdapConfiguration( + new BeanReplicator().replicateBean( redbackRuntimeConfiguration.getLdapConfiguration(), 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 ) ); - List<LdapGroupMapping> ldapGroupMappings = archivaRuntimeConfiguration.getLdapGroupMappings(); + List<LdapGroupMapping> ldapGroupMappings = redbackRuntimeConfiguration.getLdapGroupMappings(); if ( ldapGroupMappings != null && ldapGroupMappings.size() > 0 ) { @@ -416,9 +417,9 @@ public class DefaultRedbackRuntimeConfigurationAdmin 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) diff --git a/archiva-modules/archiva-web/archiva-web-common/src/main/resources/org/apache/archiva/i18n/default.properties b/archiva-modules/archiva-web/archiva-web-common/src/main/resources/org/apache/archiva/i18n/default.properties index 07af93db1..134e48b90 100644 --- a/archiva-modules/archiva-web/archiva-web-common/src/main/resources/org/apache/archiva/i18n/default.properties +++ b/archiva-modules/archiva-web/archiva-web-common/src/main/resources/org/apache/archiva/i18n/default.properties @@ -681,6 +681,11 @@ archiva-runtime-configuration.title=Archiva Runtime Configuration runtime-configuration.cache.failure.title=Url Cache Failure 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.roles.label=Roles redback-runtime-ldap-group-mapping.updated=LDAP Role-Group mapping updated. diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/js/archiva/admin/features/generaladmin/main.js b/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/js/archiva/admin/features/generaladmin/main.js index 2ce5c7562..4784224b4 100644 --- a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/js/archiva/admin/features/generaladmin/main.js +++ b/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/js/archiva/admin/features/generaladmin/main.js @@ -317,7 +317,8 @@ define("archiva/admin/features/generaladmin/main",["jquery","i18n","utils","jque var archivaRuntimeConfiguration=mapArchivaRuntimeConfiguration(data); var archivaRuntimeConfigurationViewModel=new ArchivaRuntimeConfigurationViewModel(archivaRuntimeConfiguration); 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({ showErrors: function(validator, errorMap, errorList) { 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){ + //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){ if(!data){ 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 diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/js/templates/archiva/general-admin.html b/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/js/templates/archiva/general-admin.html index fe734ee83..1397b4eaf 100644 --- a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/js/templates/archiva/general-admin.html +++ b/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/js/templates/archiva/general-admin.html @@ -287,6 +287,7 @@ <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 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> <div class="tab-content"> @@ -297,9 +298,11 @@ <div id="network-configuration-form" data-bind='template: {name:"network-configuration-form-tmpl"}'></div> </div> <div class="tab-pane" id="cache-failure-form-content"> - <div id="cache-failure-form" data-bind='template: {name:"cache-failure-form-tmpl"}'></div> </div> + <div class="tab-pane" id="filelocking-form-content"> + <div id="filelocking-form" data-bind='template: {name:"filelocking-form-tmpl"}'></div> + </div> </div> </script> @@ -369,6 +372,8 @@ </div> </div> + + <button id="cache-failure-form-btn-save" data-loading-text="${$.i18n.prop('common.loading')}" data-bind="click: save" class="btn">${$.i18n.prop('save')}</button> @@ -376,6 +381,35 @@ </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"> <div class="page-header"> <h4>${$.i18n.prop('system-status.header.version.info')}</h4> |