You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@archiva.apache.org by ol...@apache.org on 2013/12/13 05:47:10 UTC

svn commit: r1550639 - in /archiva/trunk/archiva-modules: archiva-base/archiva-configuration/src/main/mdo/ archiva-base/archiva-repository-admin/archiva-repository-admin-api/src/main/java/org/apache/archiva/admin/model/beans/ archiva-base/archiva-repos...

Author: olamy
Date: Fri Dec 13 04:47:10 2013
New Revision: 1550639

URL: http://svn.apache.org/r1550639
Log:
file lock manager must be configurable

Added:
    archiva/trunk/archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-api/src/main/java/org/apache/archiva/admin/model/beans/FileLockConfiguration.java   (with props)
Modified:
    archiva/trunk/archiva-modules/archiva-base/archiva-configuration/src/main/mdo/configuration.mdo
    archiva/trunk/archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-api/src/main/java/org/apache/archiva/admin/model/beans/ArchivaRuntimeConfiguration.java
    archiva/trunk/archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-default/src/main/java/org/apache/archiva/admin/repository/runtime/DefaultArchivaRuntimeConfigurationAdmin.java
    archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/main/java/org/apache/archiva/rest/services/DefaultArchivaRuntimeConfigurationService.java

Modified: archiva/trunk/archiva-modules/archiva-base/archiva-configuration/src/main/mdo/configuration.mdo
URL: http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-base/archiva-configuration/src/main/mdo/configuration.mdo?rev=1550639&r1=1550638&r2=1550639&view=diff
==============================================================================
--- archiva/trunk/archiva-modules/archiva-base/archiva-configuration/src/main/mdo/configuration.mdo (original)
+++ archiva/trunk/archiva-modules/archiva-base/archiva-configuration/src/main/mdo/configuration.mdo Fri Dec 13 04:47:10 2013
@@ -1485,6 +1485,14 @@
             <type>CacheConfiguration</type>
           </association>
         </field>
+        <field>
+          <name>fileLockConfiguration</name>
+          <description>the FileLocking configuration</description>
+          <version>1.4.0+</version>
+          <association>
+            <type>FileLockConfiguration</type>
+          </association>
+        </field>
       </fields>
     </class>
 
@@ -1661,6 +1669,27 @@
       </fields>
     </class>
 
+    <class>
+      <name>FileLockConfiguration</name>
+      <version>1.4.0+</version>
+      <description>File Locking configuration.</description>
+      <fields>
+        <field>
+          <name>skipLocking</name>
+          <description>skipping the locking mechanism</description>
+          <version>1.4.0+</version>
+          <type>boolean</type>
+          <defaultValue>true</defaultValue>
+        </field>
+        <field>
+          <name>lockingTimeout</name>
+          <description>maximum time to wait to get the file lock (0 infinite)</description>
+          <version>1.4.0+</version>
+          <type>int</type>
+          <defaultValue>0</defaultValue>
+        </field>
+      </fields>
+    </class>
 
     <class>
       <name>CacheConfiguration</name>

Modified: archiva/trunk/archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-api/src/main/java/org/apache/archiva/admin/model/beans/ArchivaRuntimeConfiguration.java
URL: http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-api/src/main/java/org/apache/archiva/admin/model/beans/ArchivaRuntimeConfiguration.java?rev=1550639&r1=1550638&r2=1550639&view=diff
==============================================================================
--- archiva/trunk/archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-api/src/main/java/org/apache/archiva/admin/model/beans/ArchivaRuntimeConfiguration.java (original)
+++ archiva/trunk/archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-api/src/main/java/org/apache/archiva/admin/model/beans/ArchivaRuntimeConfiguration.java Fri Dec 13 04:47:10 2013
@@ -24,11 +24,16 @@ import javax.xml.bind.annotation.XmlRoot
  * @author Olivier Lamy
  * @since 1.4-M4
  */
-@XmlRootElement( name = "archivaRuntimeConfiguration" )
+@XmlRootElement(name = "archivaRuntimeConfiguration")
 public class ArchivaRuntimeConfiguration
 {
     private CacheConfiguration urlFailureCacheConfiguration;
 
+    /**
+     * @since 2.0.0
+     */
+    private FileLockConfiguration fileLockConfiguration;
+
     public ArchivaRuntimeConfiguration()
     {
         // no op
@@ -44,13 +49,24 @@ public class ArchivaRuntimeConfiguration
         this.urlFailureCacheConfiguration = urlFailureCacheConfiguration;
     }
 
+    public FileLockConfiguration getFileLockConfiguration()
+    {
+        return fileLockConfiguration;
+    }
+
+    public void setFileLockConfiguration( FileLockConfiguration fileLockConfiguration )
+    {
+        this.fileLockConfiguration = fileLockConfiguration;
+    }
+
     @Override
     public String toString()
     {
-        final StringBuilder sb = new StringBuilder();
-        sb.append( "ArchivaRuntimeConfiguration" );
-        sb.append( "{urlFailureCacheConfiguration=" ).append( urlFailureCacheConfiguration );
+        final StringBuilder sb = new StringBuilder( "ArchivaRuntimeConfiguration{" );
+        sb.append( "urlFailureCacheConfiguration=" ).append( urlFailureCacheConfiguration );
+        sb.append( ", fileLockConfiguration=" ).append( fileLockConfiguration );
         sb.append( '}' );
         return sb.toString();
     }
+
 }

Added: archiva/trunk/archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-api/src/main/java/org/apache/archiva/admin/model/beans/FileLockConfiguration.java
URL: http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-api/src/main/java/org/apache/archiva/admin/model/beans/FileLockConfiguration.java?rev=1550639&view=auto
==============================================================================
--- archiva/trunk/archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-api/src/main/java/org/apache/archiva/admin/model/beans/FileLockConfiguration.java (added)
+++ archiva/trunk/archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-api/src/main/java/org/apache/archiva/admin/model/beans/FileLockConfiguration.java Fri Dec 13 04:47:10 2013
@@ -0,0 +1,72 @@
+// =================== DO NOT EDIT THIS FILE ====================
+// Generated by Modello 1.7,
+// any modifications will be overwritten.
+// ==============================================================
+
+package org.apache.archiva.admin.model.beans;
+
+import javax.xml.bind.annotation.XmlRootElement;
+import java.io.Serializable;
+
+/**
+ * File Locking configuration.
+ *
+ * @since 2.0.0
+ */
+@XmlRootElement( name = "fileLockConfiguration" )
+public class FileLockConfiguration
+    implements Serializable
+{
+
+    /**
+     * skipping the locking mechanism.
+     */
+    private boolean skipLocking = true;
+
+    /**
+     * maximum time to wait to get the file lock (0 infinite).
+     */
+    private int lockingTimeout = 0;
+
+
+    /**
+     * Get maximum time to wait to get the file lock (0 infinite).
+     *
+     * @return int
+     */
+    public int getLockingTimeout()
+    {
+        return this.lockingTimeout;
+    }
+
+    /**
+     * Get skipping the locking mechanism.
+     *
+     * @return boolean
+     */
+    public boolean isSkipLocking()
+    {
+        return this.skipLocking;
+    }
+
+    /**
+     * Set maximum time to wait to get the file lock (0 infinite).
+     *
+     * @param lockingTimeout
+     */
+    public void setLockingTimeout( int lockingTimeout )
+    {
+        this.lockingTimeout = lockingTimeout;
+    }
+
+    /**
+     * Set skipping the locking mechanism.
+     *
+     * @param skipLocking
+     */
+    public void setSkipLocking( boolean skipLocking )
+    {
+        this.skipLocking = skipLocking;
+    }
+
+}

Propchange: archiva/trunk/archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-api/src/main/java/org/apache/archiva/admin/model/beans/FileLockConfiguration.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: archiva/trunk/archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-api/src/main/java/org/apache/archiva/admin/model/beans/FileLockConfiguration.java
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Modified: archiva/trunk/archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-default/src/main/java/org/apache/archiva/admin/repository/runtime/DefaultArchivaRuntimeConfigurationAdmin.java
URL: http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-default/src/main/java/org/apache/archiva/admin/repository/runtime/DefaultArchivaRuntimeConfigurationAdmin.java?rev=1550639&r1=1550638&r2=1550639&view=diff
==============================================================================
--- archiva/trunk/archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-default/src/main/java/org/apache/archiva/admin/repository/runtime/DefaultArchivaRuntimeConfigurationAdmin.java (original)
+++ archiva/trunk/archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-default/src/main/java/org/apache/archiva/admin/repository/runtime/DefaultArchivaRuntimeConfigurationAdmin.java Fri Dec 13 04:47:10 2013
@@ -22,6 +22,7 @@ import net.sf.beanlib.provider.replicato
 import org.apache.archiva.admin.model.RepositoryAdminException;
 import org.apache.archiva.admin.model.beans.ArchivaRuntimeConfiguration;
 import org.apache.archiva.admin.model.beans.CacheConfiguration;
+import org.apache.archiva.admin.model.beans.FileLockConfiguration;
 import org.apache.archiva.admin.model.runtime.ArchivaRuntimeConfigurationAdmin;
 import org.apache.archiva.configuration.ArchivaConfiguration;
 import org.apache.archiva.configuration.Configuration;
@@ -38,7 +39,7 @@ import javax.inject.Named;
  * @author Olivier Lamy
  * @since 1.4-M4
  */
-@Service("archivaRuntimeConfigurationAdmin#default")
+@Service( "archivaRuntimeConfigurationAdmin#default" )
 public class DefaultArchivaRuntimeConfigurationAdmin
     implements ArchivaRuntimeConfigurationAdmin
 {
@@ -59,6 +60,12 @@ public class DefaultArchivaRuntimeConfig
         boolean save = false;
 
         // NPE free
+        if ( archivaRuntimeConfiguration.getFileLockConfiguration() == null )
+        {
+            archivaRuntimeConfiguration.setFileLockConfiguration( new FileLockConfiguration() );
+        }
+
+        // NPE free
         if ( archivaRuntimeConfiguration.getUrlFailureCacheConfiguration() == null )
         {
             archivaRuntimeConfiguration.setUrlFailureCacheConfiguration( new CacheConfiguration() );
@@ -179,6 +186,13 @@ public class DefaultArchivaRuntimeConfig
 
         }
 
+        if ( archivaRuntimeConfiguration.getFileLockConfiguration() != null )
+        {
+            res.setFileLockConfiguration(
+                new BeanReplicator().replicateBean( archivaRuntimeConfiguration.getFileLockConfiguration(),
+                                                    org.apache.archiva.configuration.FileLockConfiguration.class ) );
+        }
+
         return res;
     }
 }

Modified: archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/main/java/org/apache/archiva/rest/services/DefaultArchivaRuntimeConfigurationService.java
URL: http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/main/java/org/apache/archiva/rest/services/DefaultArchivaRuntimeConfigurationService.java?rev=1550639&r1=1550638&r2=1550639&view=diff
==============================================================================
--- archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/main/java/org/apache/archiva/rest/services/DefaultArchivaRuntimeConfigurationService.java (original)
+++ archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/main/java/org/apache/archiva/rest/services/DefaultArchivaRuntimeConfigurationService.java Fri Dec 13 04:47:10 2013
@@ -21,7 +21,9 @@ package org.apache.archiva.rest.services
 import org.apache.archiva.admin.model.RepositoryAdminException;
 import org.apache.archiva.admin.model.beans.ArchivaRuntimeConfiguration;
 import org.apache.archiva.admin.model.beans.CacheConfiguration;
+import org.apache.archiva.admin.model.beans.FileLockConfiguration;
 import org.apache.archiva.admin.model.runtime.ArchivaRuntimeConfigurationAdmin;
+import org.apache.archiva.common.filelock.FileLockManager;
 import org.apache.archiva.redback.components.cache.Cache;
 import org.apache.archiva.rest.api.services.ArchivaRestServiceException;
 import org.apache.archiva.rest.api.services.ArchivaRuntimeConfigurationService;
@@ -46,6 +48,10 @@ public class DefaultArchivaRuntimeConfig
     @Named( value = "cache#url-failures-cache" )
     private Cache usersCache;
 
+    @Inject
+    @Named( value = "fileLockManager#default" )
+    private FileLockManager fileLockManager;
+
     public ArchivaRuntimeConfiguration getArchivaRuntimeConfiguration()
         throws ArchivaRestServiceException
     {
@@ -73,6 +79,15 @@ public class DefaultArchivaRuntimeConfig
                 usersCache.setMaxElementsOnDisk( cacheConfiguration.getMaxElementsOnDisk() );
                 usersCache.setMaxElementsInMemory( cacheConfiguration.getMaxElementsInMemory() );
             }
+
+            FileLockConfiguration fileLockConfiguration = archivaRuntimeConfiguration.getFileLockConfiguration();
+            if ( fileLockConfiguration != null )
+            {
+                fileLockManager.setTimeout( fileLockConfiguration.getLockingTimeout() );
+                fileLockConfiguration.setSkipLocking( fileLockConfiguration.isSkipLocking() );
+            }
+
+
         }
         catch ( RepositoryAdminException e )
         {