aboutsummaryrefslogtreecommitdiffstats
path: root/archiva-modules
diff options
context:
space:
mode:
Diffstat (limited to 'archiva-modules')
-rw-r--r--archiva-modules/archiva-base/archiva-configuration/src/main/mdo/configuration.mdo29
-rw-r--r--archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-api/src/main/java/org/apache/archiva/admin/model/beans/ArchivaRuntimeConfiguration.java24
-rw-r--r--archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-api/src/main/java/org/apache/archiva/admin/model/beans/FileLockConfiguration.java72
-rw-r--r--archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-default/src/main/java/org/apache/archiva/admin/repository/runtime/DefaultArchivaRuntimeConfigurationAdmin.java16
-rw-r--r--archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/main/java/org/apache/archiva/rest/services/DefaultArchivaRuntimeConfigurationService.java15
5 files changed, 151 insertions, 5 deletions
diff --git a/archiva-modules/archiva-base/archiva-configuration/src/main/mdo/configuration.mdo b/archiva-modules/archiva-base/archiva-configuration/src/main/mdo/configuration.mdo
index 209e62b58..c64f8f8e6 100644
--- a/archiva-modules/archiva-base/archiva-configuration/src/main/mdo/configuration.mdo
+++ b/archiva-modules/archiva-base/archiva-configuration/src/main/mdo/configuration.mdo
@@ -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>
diff --git a/archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-api/src/main/java/org/apache/archiva/admin/model/beans/ArchivaRuntimeConfiguration.java b/archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-api/src/main/java/org/apache/archiva/admin/model/beans/ArchivaRuntimeConfiguration.java
index fb347c799..91b0779bc 100644
--- a/archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-api/src/main/java/org/apache/archiva/admin/model/beans/ArchivaRuntimeConfiguration.java
+++ b/archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-api/src/main/java/org/apache/archiva/admin/model/beans/ArchivaRuntimeConfiguration.java
@@ -24,11 +24,16 @@ import javax.xml.bind.annotation.XmlRootElement;
* @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();
}
+
}
diff --git a/archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-api/src/main/java/org/apache/archiva/admin/model/beans/FileLockConfiguration.java b/archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-api/src/main/java/org/apache/archiva/admin/model/beans/FileLockConfiguration.java
new file mode 100644
index 000000000..05faee946
--- /dev/null
+++ b/archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-api/src/main/java/org/apache/archiva/admin/model/beans/FileLockConfiguration.java
@@ -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;
+ }
+
+}
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 a5ea1fbe1..3c6704d8b 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
@@ -22,6 +22,7 @@ import net.sf.beanlib.provider.replicator.BeanReplicator;
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 DefaultArchivaRuntimeConfigurationAdmin
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 DefaultArchivaRuntimeConfigurationAdmin
}
+ if ( archivaRuntimeConfiguration.getFileLockConfiguration() != null )
+ {
+ res.setFileLockConfiguration(
+ new BeanReplicator().replicateBean( archivaRuntimeConfiguration.getFileLockConfiguration(),
+ org.apache.archiva.configuration.FileLockConfiguration.class ) );
+ }
+
return res;
}
}
diff --git a/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/main/java/org/apache/archiva/rest/services/DefaultArchivaRuntimeConfigurationService.java b/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/main/java/org/apache/archiva/rest/services/DefaultArchivaRuntimeConfigurationService.java
index e39af9ba7..c83feb2b3 100644
--- a/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/main/java/org/apache/archiva/rest/services/DefaultArchivaRuntimeConfigurationService.java
+++ b/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/main/java/org/apache/archiva/rest/services/DefaultArchivaRuntimeConfigurationService.java
@@ -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 DefaultArchivaRuntimeConfigurationService
@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 DefaultArchivaRuntimeConfigurationService
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 )
{