mirror of
https://github.com/Alfresco/alfresco-community-repo.git
synced 2025-08-14 17:58:59 +00:00
ALF-10618 Trigger the metadata extractor on webdav uploads, to mirror the behaviour on other content upload routes
git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@31299 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
@@ -26,6 +26,8 @@ import java.util.Map;
|
|||||||
import javax.servlet.http.HttpServletResponse;
|
import javax.servlet.http.HttpServletResponse;
|
||||||
|
|
||||||
import org.alfresco.model.ContentModel;
|
import org.alfresco.model.ContentModel;
|
||||||
|
import org.alfresco.repo.action.executer.ContentMetadataExtracter;
|
||||||
|
import org.alfresco.service.cmr.action.Action;
|
||||||
import org.alfresco.service.cmr.lock.LockStatus;
|
import org.alfresco.service.cmr.lock.LockStatus;
|
||||||
import org.alfresco.service.cmr.model.FileExistsException;
|
import org.alfresco.service.cmr.model.FileExistsException;
|
||||||
import org.alfresco.service.cmr.model.FileFolderService;
|
import org.alfresco.service.cmr.model.FileFolderService;
|
||||||
@@ -168,6 +170,14 @@ public class PutMethod extends WebDAVMethod
|
|||||||
// Write the new data to the content node
|
// Write the new data to the content node
|
||||||
writer.putContent(is);
|
writer.putContent(is);
|
||||||
|
|
||||||
|
// Ask for the document metadata to be extracted
|
||||||
|
Action extract = getActionService().createAction(ContentMetadataExtracter.EXECUTOR_NAME);
|
||||||
|
if(extract != null)
|
||||||
|
{
|
||||||
|
extract.setExecuteAsynchronously(true);
|
||||||
|
getActionService().executeAction(extract, contentNodeInfo.getNodeRef());
|
||||||
|
}
|
||||||
|
|
||||||
// Set the response status, depending if the node existed or not
|
// Set the response status, depending if the node existed or not
|
||||||
m_response.setStatus(created ? HttpServletResponse.SC_CREATED : HttpServletResponse.SC_NO_CONTENT);
|
m_response.setStatus(created ? HttpServletResponse.SC_CREATED : HttpServletResponse.SC_NO_CONTENT);
|
||||||
}
|
}
|
||||||
|
@@ -27,6 +27,7 @@ import java.util.StringTokenizer;
|
|||||||
|
|
||||||
import org.alfresco.model.ContentModel;
|
import org.alfresco.model.ContentModel;
|
||||||
import org.alfresco.service.ServiceRegistry;
|
import org.alfresco.service.ServiceRegistry;
|
||||||
|
import org.alfresco.service.cmr.action.ActionService;
|
||||||
import org.alfresco.service.cmr.dictionary.DictionaryService;
|
import org.alfresco.service.cmr.dictionary.DictionaryService;
|
||||||
import org.alfresco.service.cmr.lock.LockService;
|
import org.alfresco.service.cmr.lock.LockService;
|
||||||
import org.alfresco.service.cmr.model.FileFolderService;
|
import org.alfresco.service.cmr.model.FileFolderService;
|
||||||
@@ -75,6 +76,7 @@ public class WebDAVHelper
|
|||||||
private DictionaryService m_dictionaryService;
|
private DictionaryService m_dictionaryService;
|
||||||
private MimetypeService m_mimetypeService;
|
private MimetypeService m_mimetypeService;
|
||||||
private LockService m_lockService;
|
private LockService m_lockService;
|
||||||
|
private ActionService m_actionService;
|
||||||
private AuthenticationService m_authService;
|
private AuthenticationService m_authService;
|
||||||
private PermissionService m_permissionService;
|
private PermissionService m_permissionService;
|
||||||
|
|
||||||
@@ -96,6 +98,7 @@ public class WebDAVHelper
|
|||||||
m_dictionaryService = m_serviceRegistry.getDictionaryService();
|
m_dictionaryService = m_serviceRegistry.getDictionaryService();
|
||||||
m_mimetypeService = m_serviceRegistry.getMimetypeService();
|
m_mimetypeService = m_serviceRegistry.getMimetypeService();
|
||||||
m_lockService = m_serviceRegistry.getLockService();
|
m_lockService = m_serviceRegistry.getLockService();
|
||||||
|
m_actionService = m_serviceRegistry.getActionService();
|
||||||
m_permissionService = m_serviceRegistry.getPermissionService();
|
m_permissionService = m_serviceRegistry.getPermissionService();
|
||||||
|
|
||||||
m_authService = authService;
|
m_authService = authService;
|
||||||
@@ -170,6 +173,14 @@ public class WebDAVHelper
|
|||||||
return m_lockService;
|
return m_lockService;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return Return the action service
|
||||||
|
*/
|
||||||
|
public final ActionService getActionService()
|
||||||
|
{
|
||||||
|
return m_actionService;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
* @return Return the permission service
|
* @return Return the permission service
|
||||||
|
@@ -51,6 +51,7 @@ import org.alfresco.repo.security.authentication.AuthenticationUtil.RunAsWork;
|
|||||||
import org.alfresco.repo.security.permissions.AccessDeniedException;
|
import org.alfresco.repo.security.permissions.AccessDeniedException;
|
||||||
import org.alfresco.repo.transaction.RetryingTransactionHelper.RetryingTransactionCallback;
|
import org.alfresco.repo.transaction.RetryingTransactionHelper.RetryingTransactionCallback;
|
||||||
import org.alfresco.service.ServiceRegistry;
|
import org.alfresco.service.ServiceRegistry;
|
||||||
|
import org.alfresco.service.cmr.action.ActionService;
|
||||||
import org.alfresco.service.cmr.coci.CheckOutCheckInService;
|
import org.alfresco.service.cmr.coci.CheckOutCheckInService;
|
||||||
import org.alfresco.service.cmr.lock.LockService;
|
import org.alfresco.service.cmr.lock.LockService;
|
||||||
import org.alfresco.service.cmr.lock.LockStatus;
|
import org.alfresco.service.cmr.lock.LockStatus;
|
||||||
@@ -662,6 +663,16 @@ public abstract class WebDAVMethod
|
|||||||
return m_davHelper.getLockService();
|
return m_davHelper.getLockService();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Convenience method to return the action service
|
||||||
|
*
|
||||||
|
* @return ActionService
|
||||||
|
*/
|
||||||
|
protected final ActionService getActionService()
|
||||||
|
{
|
||||||
|
return m_davHelper.getActionService();
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Convenience method to return the permission service
|
* Convenience method to return the permission service
|
||||||
*
|
*
|
||||||
@@ -1474,9 +1485,24 @@ public abstract class WebDAVMethod
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public String toString()
|
||||||
|
{
|
||||||
|
StringBuffer sb = new StringBuffer();
|
||||||
|
|
||||||
|
if(m_request != null)
|
||||||
|
{
|
||||||
|
sb.append("WebDAV ");
|
||||||
|
sb.append(m_request.getMethod());
|
||||||
|
sb.append(" request for ");
|
||||||
|
sb.append(m_strPath);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
sb.append("Inactive WebDAV request via ");
|
||||||
|
String clz = getClass().getName();
|
||||||
|
sb.append(clz.substring(clz.lastIndexOf('.')+1));
|
||||||
|
}
|
||||||
|
|
||||||
|
return sb.toString();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user