mirror of
https://github.com/Alfresco/alfresco-community-repo.git
synced 2025-08-07 17:49:17 +00:00
Merged DEV/JASONH to HEAD
12201: MT-enable (implementing ALFCOM-1892), also add ALFCOM-1809 workaround 12242: Refactor creating getRootNode method 12662: improve ALFCOM-1892, also remove ALFCOM-1809 workaround (should not be required) git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@12664 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
@@ -272,9 +272,59 @@ public class WebDAVServlet extends HttpServlet
|
|||||||
NamespaceService namespaceService = (NamespaceService) context.getBean("NamespaceService");
|
NamespaceService namespaceService = (NamespaceService) context.getBean("NamespaceService");
|
||||||
|
|
||||||
// Create the WebDAV helper
|
// Create the WebDAV helper
|
||||||
|
|
||||||
m_davHelper = new WebDAVHelper(m_serviceRegistry, authService);
|
m_davHelper = new WebDAVHelper(m_serviceRegistry, authService);
|
||||||
|
|
||||||
|
|
||||||
|
String storeValue = context.getServletContext().getInitParameter(org.alfresco.repo.webdav.WebDAVServlet.KEY_STORE);
|
||||||
|
if (storeValue == null)
|
||||||
|
{
|
||||||
|
throw new ServletException("Device missing init value: " + KEY_STORE);
|
||||||
|
}
|
||||||
|
|
||||||
|
m_rootPath = context.getServletContext().getInitParameter(org.alfresco.repo.webdav.WebDAVServlet.KEY_ROOT_PATH);
|
||||||
|
if (m_rootPath == null)
|
||||||
|
{
|
||||||
|
throw new ServletException("Device missing init value: " + KEY_ROOT_PATH);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Initialize the root node
|
||||||
|
m_rootNodeRef = getRootNode(storeValue, m_rootPath, context, nodeService, searchService,
|
||||||
|
namespaceService, m_transactionService);
|
||||||
|
|
||||||
|
|
||||||
|
// Create the WebDAV methods table
|
||||||
|
|
||||||
|
m_davMethods = new Hashtable<String,Class>();
|
||||||
|
|
||||||
|
m_davMethods.put(WebDAV.METHOD_PROPFIND, PropFindMethod.class);
|
||||||
|
m_davMethods.put(WebDAV.METHOD_COPY, CopyMethod.class);
|
||||||
|
m_davMethods.put(WebDAV.METHOD_DELETE, DeleteMethod.class);
|
||||||
|
m_davMethods.put(WebDAV.METHOD_GET, GetMethod.class);
|
||||||
|
m_davMethods.put(WebDAV.METHOD_HEAD, HeadMethod.class);
|
||||||
|
m_davMethods.put(WebDAV.METHOD_LOCK, LockMethod.class);
|
||||||
|
m_davMethods.put(WebDAV.METHOD_MKCOL, MkcolMethod.class);
|
||||||
|
m_davMethods.put(WebDAV.METHOD_MOVE, MoveMethod.class);
|
||||||
|
m_davMethods.put(WebDAV.METHOD_OPTIONS, OptionsMethod.class);
|
||||||
|
m_davMethods.put(WebDAV.METHOD_POST, PostMethod.class);
|
||||||
|
m_davMethods.put(WebDAV.METHOD_PUT, PutMethod.class);
|
||||||
|
m_davMethods.put(WebDAV.METHOD_UNLOCK, UnlockMethod.class);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param config
|
||||||
|
* @param context
|
||||||
|
* @param nodeService
|
||||||
|
* @param searchService
|
||||||
|
* @param namespaceService
|
||||||
|
*/
|
||||||
|
public static NodeRef getRootNode(String storeValue, String m_rootPath,
|
||||||
|
WebApplicationContext context, NodeService nodeService,
|
||||||
|
SearchService searchService, NamespaceService namespaceService,
|
||||||
|
TransactionService m_transactionService)
|
||||||
|
throws ServletException {
|
||||||
|
|
||||||
|
NodeRef m_rootNodeRef = null;
|
||||||
|
|
||||||
// Initialize the root node
|
// Initialize the root node
|
||||||
|
|
||||||
ServerConfigurationBean fileSrvConfig = (ServerConfigurationBean) context.getBean(ServerConfigurationBean.SERVER_CONFIGURATION);
|
ServerConfigurationBean fileSrvConfig = (ServerConfigurationBean) context.getBean(ServerConfigurationBean.SERVER_CONFIGURATION);
|
||||||
@@ -286,6 +336,7 @@ public class WebDAVServlet extends HttpServlet
|
|||||||
AuthenticationComponent authComponent = (AuthenticationComponent) context.getBean("authenticationComponent");
|
AuthenticationComponent authComponent = (AuthenticationComponent) context.getBean("authenticationComponent");
|
||||||
authComponent.setCurrentUser( authComponent.getSystemUserName());
|
authComponent.setCurrentUser( authComponent.getSystemUserName());
|
||||||
|
|
||||||
|
|
||||||
// Wrap the initialization in a transaction
|
// Wrap the initialization in a transaction
|
||||||
|
|
||||||
UserTransaction tx = m_transactionService.getUserTransaction(true);
|
UserTransaction tx = m_transactionService.getUserTransaction(true);
|
||||||
@@ -297,9 +348,7 @@ public class WebDAVServlet extends HttpServlet
|
|||||||
if ( tx != null)
|
if ( tx != null)
|
||||||
tx.begin();
|
tx.begin();
|
||||||
|
|
||||||
// Get the store
|
// Get the store
|
||||||
|
|
||||||
String storeValue = config.getInitParameter(KEY_STORE);
|
|
||||||
if (storeValue == null)
|
if (storeValue == null)
|
||||||
{
|
{
|
||||||
throw new ServletException("Device missing init value: " + KEY_STORE);
|
throw new ServletException("Device missing init value: " + KEY_STORE);
|
||||||
@@ -314,9 +363,7 @@ public class WebDAVServlet extends HttpServlet
|
|||||||
}
|
}
|
||||||
NodeRef storeRootNodeRef = nodeService.getRootNode(storeRef);
|
NodeRef storeRootNodeRef = nodeService.getRootNode(storeRef);
|
||||||
|
|
||||||
// Get the root path
|
// Check the root path
|
||||||
|
|
||||||
m_rootPath = config.getInitParameter(KEY_ROOT_PATH);
|
|
||||||
if (m_rootPath == null)
|
if (m_rootPath == null)
|
||||||
{
|
{
|
||||||
throw new ServletException("Device missing init value: " + KEY_ROOT_PATH);
|
throw new ServletException("Device missing init value: " + KEY_ROOT_PATH);
|
||||||
@@ -342,6 +389,7 @@ public class WebDAVServlet extends HttpServlet
|
|||||||
{
|
{
|
||||||
// we found a node
|
// we found a node
|
||||||
m_rootNodeRef = nodeRefs.get(0);
|
m_rootNodeRef = nodeRefs.get(0);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Commit the transaction
|
// Commit the transaction
|
||||||
@@ -359,21 +407,8 @@ public class WebDAVServlet extends HttpServlet
|
|||||||
authComponent.clearCurrentSecurityContext();
|
authComponent.clearCurrentSecurityContext();
|
||||||
}
|
}
|
||||||
|
|
||||||
// Create the WebDAV methods table
|
return m_rootNodeRef;
|
||||||
|
|
||||||
m_davMethods = new Hashtable<String,Class>();
|
}
|
||||||
|
|
||||||
m_davMethods.put(WebDAV.METHOD_PROPFIND, PropFindMethod.class);
|
|
||||||
m_davMethods.put(WebDAV.METHOD_COPY, CopyMethod.class);
|
|
||||||
m_davMethods.put(WebDAV.METHOD_DELETE, DeleteMethod.class);
|
|
||||||
m_davMethods.put(WebDAV.METHOD_GET, GetMethod.class);
|
|
||||||
m_davMethods.put(WebDAV.METHOD_HEAD, HeadMethod.class);
|
|
||||||
m_davMethods.put(WebDAV.METHOD_LOCK, LockMethod.class);
|
|
||||||
m_davMethods.put(WebDAV.METHOD_MKCOL, MkcolMethod.class);
|
|
||||||
m_davMethods.put(WebDAV.METHOD_MOVE, MoveMethod.class);
|
|
||||||
m_davMethods.put(WebDAV.METHOD_OPTIONS, OptionsMethod.class);
|
|
||||||
m_davMethods.put(WebDAV.METHOD_POST, PostMethod.class);
|
|
||||||
m_davMethods.put(WebDAV.METHOD_PUT, PutMethod.class);
|
|
||||||
m_davMethods.put(WebDAV.METHOD_UNLOCK, UnlockMethod.class);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user