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:
Matt Ward
2012-02-22 15:28:47 +00:00
parent b7e992b9df
commit 90326eb7e6
3 changed files with 18 additions and 61 deletions

View File

@@ -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>

View File

@@ -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");
}

View File

@@ -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;
} }
}); });