mirror of
https://github.com/Alfresco/alfresco-community-repo.git
synced 2025-08-07 17:49:17 +00:00
ALF-12866: WebDAV should use in-memory locking for transient locks
git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@34167 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
@@ -23,6 +23,22 @@
|
|||||||
<property name="rootNode" ref="webdavRootNode" />
|
<property name="rootNode" ref="webdavRootNode" />
|
||||||
<property name="enabled" ><value>${system.webdav.servlet.enabled}</value></property>
|
<property name="enabled" ><value>${system.webdav.servlet.enabled}</value></property>
|
||||||
</bean>
|
</bean>
|
||||||
|
|
||||||
|
<bean id="webdavLockStoreFactory" class="org.alfresco.repo.webdav.LockStoreFactoryImpl">
|
||||||
|
<property name="hazelcast" ref="hazelcastInstance"/>
|
||||||
|
</bean>
|
||||||
|
|
||||||
|
<bean id="hazelcastInstance" class="com.hazelcast.core.Hazelcast" factory-method="newHazelcastInstance">
|
||||||
|
<constructor-arg>
|
||||||
|
<bean class="com.hazelcast.config.Config">
|
||||||
|
<property name="groupConfig">
|
||||||
|
<bean class="com.hazelcast.config.GroupConfig">
|
||||||
|
<property name="name" value="webdav"/>
|
||||||
|
<property name="password" value="secret"/>
|
||||||
|
</bean>
|
||||||
|
</property>
|
||||||
|
</bean>
|
||||||
|
</constructor-arg>
|
||||||
|
</bean>
|
||||||
|
|
||||||
</beans>
|
</beans>
|
@@ -1,45 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright (C) 2005-2010 Alfresco Software Limited.
|
|
||||||
*
|
|
||||||
* This file is part of Alfresco
|
|
||||||
*
|
|
||||||
* Alfresco is free software: you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU Lesser General Public License as published by
|
|
||||||
* the Free Software Foundation, either version 3 of the License, or
|
|
||||||
* (at your option) any later version.
|
|
||||||
*
|
|
||||||
* Alfresco is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU Lesser General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU Lesser General Public License
|
|
||||||
* along with Alfresco. If not, see <http://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
package org.alfresco.model;
|
|
||||||
|
|
||||||
import org.alfresco.service.namespace.QName;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* WebDAV Model Constants
|
|
||||||
*
|
|
||||||
* @author Ivan Rybnikov
|
|
||||||
*/
|
|
||||||
public interface WebDAVModel
|
|
||||||
{
|
|
||||||
static final String WEBDAV_MODEL_1_0_URI = "http://www.alfresco.org/model/webdav/1.0";
|
|
||||||
|
|
||||||
// Exclusive lock token
|
|
||||||
static final QName PROP_OPAQUE_LOCK_TOKEN = QName.createQName(WEBDAV_MODEL_1_0_URI, "opaquelocktoken");
|
|
||||||
|
|
||||||
// Lock depth
|
|
||||||
static final QName PROP_LOCK_DEPTH = QName.createQName(WEBDAV_MODEL_1_0_URI, "lockDepth");
|
|
||||||
|
|
||||||
// Lock type
|
|
||||||
static final QName PROP_LOCK_SCOPE = QName.createQName(WEBDAV_MODEL_1_0_URI, "lockScope");
|
|
||||||
|
|
||||||
// Node's shared locks
|
|
||||||
static final QName PROP_SHARED_LOCK_TOKENS = QName.createQName(WEBDAV_MODEL_1_0_URI, "sharedLockTokens");
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
@@ -30,7 +30,6 @@ import java.util.Set;
|
|||||||
|
|
||||||
import org.alfresco.model.ApplicationModel;
|
import org.alfresco.model.ApplicationModel;
|
||||||
import org.alfresco.model.ContentModel;
|
import org.alfresco.model.ContentModel;
|
||||||
import org.alfresco.model.WebDAVModel;
|
|
||||||
import org.alfresco.repo.jscript.ScriptNode;
|
import org.alfresco.repo.jscript.ScriptNode;
|
||||||
import org.alfresco.repo.security.authentication.AuthenticationComponent;
|
import org.alfresco.repo.security.authentication.AuthenticationComponent;
|
||||||
import org.alfresco.repo.security.authentication.AuthenticationUtil;
|
import org.alfresco.repo.security.authentication.AuthenticationUtil;
|
||||||
@@ -1724,13 +1723,7 @@ public class VersionServiceImplTest extends BaseVersionStoreTest
|
|||||||
{
|
{
|
||||||
VersionHistory versionHistory = versionService.getVersionHistory(versionableNode);
|
VersionHistory versionHistory = versionService.getVersionHistory(versionableNode);
|
||||||
assertNotNull(versionHistory);
|
assertNotNull(versionHistory);
|
||||||
assertEquals(1, versionHistory.getAllVersions().size());
|
assertEquals(1, versionHistory.getAllVersions().size());
|
||||||
|
|
||||||
nodeService.setProperty(versionableNode, WebDAVModel.PROP_OPAQUE_LOCK_TOKEN, lockToken);
|
|
||||||
nodeService.setProperty(versionableNode, WebDAVModel.PROP_SHARED_LOCK_TOKENS, lockToken);
|
|
||||||
nodeService.setProperty(versionableNode, WebDAVModel.PROP_LOCK_DEPTH, "0");
|
|
||||||
nodeService.setProperty(versionableNode, WebDAVModel.PROP_LOCK_SCOPE, "exclusive");
|
|
||||||
|
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@@ -1743,7 +1736,6 @@ public class VersionServiceImplTest extends BaseVersionStoreTest
|
|||||||
VersionHistory versionHistory = versionService.getVersionHistory(versionableNode);
|
VersionHistory versionHistory = versionService.getVersionHistory(versionableNode);
|
||||||
assertNotNull(versionHistory);
|
assertNotNull(versionHistory);
|
||||||
assertEquals(1, versionHistory.getAllVersions().size());
|
assertEquals(1, versionHistory.getAllVersions().size());
|
||||||
|
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1755,12 +1747,6 @@ public class VersionServiceImplTest extends BaseVersionStoreTest
|
|||||||
VersionHistory versionHistory = versionService.getVersionHistory(versionableNode);
|
VersionHistory versionHistory = versionService.getVersionHistory(versionableNode);
|
||||||
assertNotNull(versionHistory);
|
assertNotNull(versionHistory);
|
||||||
assertEquals(1, versionHistory.getAllVersions().size());
|
assertEquals(1, versionHistory.getAllVersions().size());
|
||||||
|
|
||||||
nodeService.removeProperty(versionableNode, WebDAVModel.PROP_OPAQUE_LOCK_TOKEN);
|
|
||||||
nodeService.removeProperty(versionableNode, WebDAVModel.PROP_SHARED_LOCK_TOKENS);
|
|
||||||
nodeService.removeProperty(versionableNode, WebDAVModel.PROP_LOCK_DEPTH);
|
|
||||||
nodeService.removeProperty(versionableNode, WebDAVModel.PROP_LOCK_SCOPE);
|
|
||||||
|
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
Reference in New Issue
Block a user