Merged FILE-FOLDER-API (5.2.0) to HEAD (5.2)

124565 gjames: RA-884: Posting DOWNLOAD activities in a new (non-readonly) transaction


git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@126569 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
Jamal Kaabi-Mofrad
2016-05-10 11:30:47 +00:00
parent 2c01c845e6
commit 78bb09840c
2 changed files with 25 additions and 1 deletions

View File

@@ -57,6 +57,7 @@ import org.alfresco.repo.tenant.TenantUtil;
import org.alfresco.repo.thumbnail.ThumbnailDefinition; import org.alfresco.repo.thumbnail.ThumbnailDefinition;
import org.alfresco.repo.thumbnail.ThumbnailHelper; import org.alfresco.repo.thumbnail.ThumbnailHelper;
import org.alfresco.repo.thumbnail.ThumbnailRegistry; import org.alfresco.repo.thumbnail.ThumbnailRegistry;
import org.alfresco.repo.transaction.RetryingTransactionHelper;
import org.alfresco.repo.version.VersionModel; import org.alfresco.repo.version.VersionModel;
import org.alfresco.rest.antlr.WhereClauseParser; import org.alfresco.rest.antlr.WhereClauseParser;
import org.alfresco.rest.api.Nodes; import org.alfresco.rest.api.Nodes;
@@ -183,6 +184,7 @@ public class NodesImpl implements Nodes
private ThumbnailService thumbnailService; private ThumbnailService thumbnailService;
private SiteService siteService; private SiteService siteService;
private ActivityPoster poster; private ActivityPoster poster;
private RetryingTransactionHelper retryingTransactionHelper;
private enum Activity_Type private enum Activity_Type
{ {
@@ -226,6 +228,7 @@ public class NodesImpl implements Nodes
this.authorityService = sr.getAuthorityService(); this.authorityService = sr.getAuthorityService();
this.thumbnailService = sr.getThumbnailService(); this.thumbnailService = sr.getThumbnailService();
this.siteService = sr.getSiteService(); this.siteService = sr.getSiteService();
this.retryingTransactionHelper = sr.getRetryingTransactionHelper();
if (defaultIgnoreTypesAndAspects != null) if (defaultIgnoreTypesAndAspects != null)
{ {
@@ -1913,6 +1916,19 @@ public class NodesImpl implements Nodes
} }
String attachFileName = (attach ? name : null); String attachFileName = (attach ? name : null);
final ActivityInfo activityInfo = getActivityInfo(getParentNodeRef(nodeRef), nodeRef);
//Activity posting needs a transaction
retryingTransactionHelper.doInTransaction(new RetryingTransactionHelper.RetryingTransactionCallback<Void>()
{
@Override
public Void execute() throws Throwable
{
postActivity(Activity_Type.DOWNLOADED, activityInfo);
return null;
}
}, false, true);
return new NodeBinaryResource(nodeRef, ContentModel.PROP_CONTENT, ci, attachFileName); return new NodeBinaryResource(nodeRef, ContentModel.PROP_CONTENT, ci, attachFileName);
} }

View File

@@ -102,11 +102,16 @@ public class ActivitiesPostingTest extends AbstractBaseApiTest
dUpdate.setName("d1b.txt"); dUpdate.setName("d1b.txt");
HttpResponse response = put(URL_NODES, u1.getId(), documentResp.getId(), toJsonAsStringNonNull(dUpdate), null, 200); HttpResponse response = put(URL_NODES, u1.getId(), documentResp.getId(), toJsonAsStringNonNull(dUpdate), null, 200);
//Now download it
response = getSingle(NodesEntityResource.class, u1.getId(), documentResp.getId()+"/content", null, 200);
String textContent = response.getResponse();
assertNotNull(textContent);
delete(URL_NODES, u1.getId(), documentResp.getId(), 204); delete(URL_NODES, u1.getId(), documentResp.getId(), 204);
delete(URL_NODES, u1.getId(), createdFolder.getId(), 204); delete(URL_NODES, u1.getId(), createdFolder.getId(), 204);
List<Activity> activities = getMyActivites(); List<Activity> activities = getMyActivites();
assertEquals(activities.size(),5); assertEquals(activities.size(),6);
Activity act = matchActivity(activities, ActivityType.FOLDER_ADDED, u1.getId(), tSite.getSiteId(), docLibNodeRef.getId(), folder1); Activity act = matchActivity(activities, ActivityType.FOLDER_ADDED, u1.getId(), tSite.getSiteId(), docLibNodeRef.getId(), folder1);
assertNotNull(act); assertNotNull(act);
@@ -121,6 +126,9 @@ public class ActivitiesPostingTest extends AbstractBaseApiTest
act = matchActivity(activities, ActivityType.FILE_DELETED, u1.getId(), tSite.getSiteId(), createdFolder.getId(), dUpdate.getName()); act = matchActivity(activities, ActivityType.FILE_DELETED, u1.getId(), tSite.getSiteId(), createdFolder.getId(), dUpdate.getName());
assertNotNull(act); assertNotNull(act);
act = matchActivity(activities, ActivityPoster.DOWNLOADED, u1.getId(), tSite.getSiteId(), createdFolder.getId(), dUpdate.getName());
assertNotNull(act);
} }
@Test @Test