Merged HEAD-BUG-FIX (5.0/Cloud) to HEAD (5.0/Cloud)

82375: Merged WAT2 (5.0/Cloud) to HEAD-BUG-FIX (5.0/Cloud)
      76480: Re-worked download activity posting following Kev's changes


git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@83218 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
Erik Winlof
2014-09-04 06:50:52 +00:00
parent d2afc32068
commit 7954be61aa
11 changed files with 70 additions and 145 deletions

View File

@@ -32,15 +32,10 @@ import java.util.regex.Pattern;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.alfresco.events.types.ContentEvent;
import org.alfresco.events.types.ContentEventImpl;
import org.alfresco.events.types.ContentReadRangeEvent;
import org.alfresco.events.types.Event;
import org.alfresco.jlan.util.IPAddress;
import org.alfresco.model.ContentModel;
import org.alfresco.repo.Client;
import org.alfresco.repo.Client.ClientType;
import org.alfresco.repo.events.EventPreparator;
import org.alfresco.repo.events.EventPublisher;
import org.alfresco.repo.lock.LockUtils;
import org.alfresco.repo.model.filefolder.HiddenAspect;
@@ -48,6 +43,7 @@ import org.alfresco.repo.policy.BehaviourFilter;
import org.alfresco.repo.tenant.TenantService;
import org.alfresco.service.ServiceRegistry;
import org.alfresco.service.cmr.action.ActionService;
import org.alfresco.service.cmr.activities.ActivityPoster;
import org.alfresco.service.cmr.dictionary.DictionaryService;
import org.alfresco.service.cmr.lock.LockService;
import org.alfresco.service.cmr.model.FileFolderService;
@@ -112,6 +108,7 @@ public class WebDAVHelper
private TenantService m_tenantService;
private HiddenAspect m_hiddenAspect;
private EventPublisher eventPublisher;
private ActivityPoster poster;
// pattern is tested against full path after it has been lower cased.
private Pattern m_renameShufflePattern = Pattern.compile("(.*/\\..*)|(.*[a-f0-9]{8}+$)|(.*\\.tmp$)|(.*\\.wbk$)|(.*\\.bak$)|(.*\\~$)|(.*backup.*\\.do[ct]{1}[x]?[m]?$)|(.*\\.sb\\-\\w{8}\\-\\w{6}$)");
@@ -335,6 +332,15 @@ public class WebDAVHelper
this.eventPublisher = eventPublisher;
}
/**
* @param poster
*/
public void setPoster(ActivityPoster poster)
{
this.poster = poster;
}
/**
* @param dictionaryService the dictionary service
*/
@@ -1091,25 +1097,30 @@ public class WebDAVHelper
protected void publishReadEvent(final FileInfo realNodeInfo, final String mimetype, final Long size, final String contentEncoding, final String range)
{
eventPublisher.publishEvent(new EventPreparator(){
@Override
public Event prepareEvent(String user, String networkId, String transactionId)
{
// SiteService siteService = getServiceRegistry().getSiteService();
// final String siteId = siteService.getSiteShortName(realNodeInfo.getNodeRef());
if (StringUtils.hasText(range))
{
return new ContentReadRangeEvent(user, networkId, transactionId, realNodeInfo.getNodeRef().getId(),
null, realNodeInfo.getType().toString(), Client.asType(ClientType.webdav), realNodeInfo.getName(), mimetype, size, contentEncoding, range);
}
else
{
return new ContentEventImpl(ContentEvent.DOWNLOAD, user, networkId, transactionId, realNodeInfo.getNodeRef().getId(),
null, realNodeInfo.getType().toString(), Client.asType(ClientType.webdav), realNodeInfo.getName(), mimetype, size, contentEncoding);
}
}
});
if (!StringUtils.hasText(range))
{
//Its not a range request
SiteService siteService = getServiceRegistry().getSiteService();
final String siteId = siteService.getSiteShortName(realNodeInfo.getNodeRef());
poster.postFileFolderActivity(ActivityPoster.DOWNLOADED, null, m_tenantService.getCurrentUserDomain(),
siteId, null, realNodeInfo.getNodeRef(), realNodeInfo.getName(),
"webdav", Client.asType(ClientType.webdav), null);
}
// eventPublisher.publishEvent(new EventPreparator(){
// @Override
// public Event prepareEvent(String user, String networkId, String transactionId)
// {
//
//
// if (StringUtils.hasText(range))
// {
// return new ContentReadRangeEvent(user, networkId, transactionId, realNodeInfo.getNodeRef().getId(),
// siteId, realNodeInfo.getType().toString(), Client.asType(ClientType.webdav), realNodeInfo.getName(), mimetype, size, contentEncoding, range);
// }
// }
// });
}