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 )
{