use of org.alfresco.repo.event.v1.model.RepoEvent in project alfresco-repository by Alfresco.
the class AbstractContextAwareRepoEvent method getChildAssocResource.
protected <D extends DataAttributes<ChildAssociationResource>> ChildAssociationResource getChildAssocResource(RepoEvent<D> repoEvent) {
assertNotNull(repoEvent);
D eventData = repoEvent.getData();
assertNotNull(eventData);
ChildAssociationResource resource = eventData.getResource();
assertNotNull(resource);
return resource;
}
use of org.alfresco.repo.event.v1.model.RepoEvent in project alfresco-repository by Alfresco.
the class AbstractContextAwareRepoEvent method getNodeResource.
protected <D extends DataAttributes<NodeResource>> NodeResource getNodeResource(RepoEvent<D> repoEvent) {
assertNotNull(repoEvent);
D eventData = getEventData(repoEvent);
assertNotNull(eventData);
NodeResource resource = eventData.getResource();
assertNotNull(resource);
return resource;
}
use of org.alfresco.repo.event.v1.model.RepoEvent in project alfresco-repository by Alfresco.
the class UpdateRepoEventIT method testUpdateNodeResourceContent.
@Test
public void testUpdateNodeResourceContent() {
ContentService contentService = (ContentService) applicationContext.getBean("contentService");
final NodeRef nodeRef = createNode(ContentModel.TYPE_CONTENT);
RepoEvent<EventData<NodeResource>> resultRepoEvent = getRepoEvent(1);
assertEquals("Wrong repo event type.", EventType.NODE_CREATED.getType(), resultRepoEvent.getType());
NodeResource resource = getNodeResource(resultRepoEvent);
assertNull("Content should have been null.", resource.getContent());
retryingTransactionHelper.doInTransaction(() -> {
ContentWriter writer = contentService.getWriter(nodeRef, ContentModel.TYPE_CONTENT, true);
writer.setMimetype(MimetypeMap.MIMETYPE_PDF);
writer.setEncoding("UTF-8");
writer.putContent("test content.");
return null;
});
checkNumOfEvents(2);
resultRepoEvent = getRepoEvent(2);
assertEquals("Wrong repo event type.", EventType.NODE_UPDATED.getType(), resultRepoEvent.getType());
resource = getNodeResource(resultRepoEvent);
ContentInfo content = resource.getContent();
assertNotNull(content);
assertEquals(MimetypeMap.MIMETYPE_PDF, content.getMimeType());
assertEquals("UTF-8", content.getEncoding());
assertTrue(content.getSizeInBytes() > 0);
NodeResource resourceBefore = getNodeResourceBefore(resultRepoEvent);
assertNull("Content should have been null.", resourceBefore.getContent());
// Update the content again
retryingTransactionHelper.doInTransaction(() -> {
ContentWriter writer = contentService.getWriter(nodeRef, ContentModel.TYPE_CONTENT, true);
writer.setMimetype(MimetypeMap.MIMETYPE_PDF);
writer.setEncoding("UTF-8");
writer.putContent("A quick brown fox jumps over the lazy dog.");
return null;
});
resource = getNodeResource(3);
content = resource.getContent();
assertNotNull(content);
assertEquals(MimetypeMap.MIMETYPE_PDF, content.getMimeType());
assertEquals("UTF-8", content.getEncoding());
assertTrue(content.getSizeInBytes() > 0);
resourceBefore = getNodeResourceBefore(3);
assertNotNull("Content should not have been null.", resourceBefore.getContent());
content = resourceBefore.getContent();
assertNotNull(content);
assertEquals(MimetypeMap.MIMETYPE_PDF, content.getMimeType());
assertEquals("UTF-8", content.getEncoding());
assertTrue(content.getSizeInBytes() > 0);
assertNotNull(resourceBefore.getModifiedAt());
// Apart from the 'content' and 'modifiedAt' properties the rest should be not be not set
// for the resourceBefore object
assertNull(resourceBefore.getId());
assertNull(resourceBefore.getName());
assertNull(resourceBefore.getNodeType());
assertNull(resourceBefore.isFile());
assertNull(resourceBefore.isFolder());
assertNull(resourceBefore.getModifiedByUser());
assertNull(resourceBefore.getCreatedAt());
assertNull(resourceBefore.getCreatedByUser());
assertNull(resourceBefore.getProperties());
assertNull(resourceBefore.getAspectNames());
assertNull(resourceBefore.getPrimaryHierarchy());
}
use of org.alfresco.repo.event.v1.model.RepoEvent in project alfresco-repository by Alfresco.
the class UpdateRepoEventIT method testUpdateNodeResourceContentSameContentSize.
@Test
public void testUpdateNodeResourceContentSameContentSize() {
ContentService contentService = (ContentService) applicationContext.getBean("contentService");
final NodeRef nodeRef = createNode(ContentModel.TYPE_CONTENT);
RepoEvent<EventData<NodeResource>> resultRepoEvent = getRepoEvent(1);
assertEquals("Wrong repo event type.", EventType.NODE_CREATED.getType(), resultRepoEvent.getType());
NodeResource resource = getNodeResource(resultRepoEvent);
assertNull("Content should have been null.", resource.getContent());
retryingTransactionHelper.doInTransaction(() -> {
ContentWriter writer = contentService.getWriter(nodeRef, ContentModel.TYPE_CONTENT, true);
writer.setMimetype(MimetypeMap.MIMETYPE_PDF);
writer.setEncoding("UTF-8");
writer.putContent("test content a");
return null;
});
checkNumOfEvents(2);
resultRepoEvent = getRepoEvent(2);
assertEquals("Wrong repo event type.", EventType.NODE_UPDATED.getType(), resultRepoEvent.getType());
resource = getNodeResource(resultRepoEvent);
ContentInfo content = resource.getContent();
assertNotNull(content);
assertEquals(MimetypeMap.MIMETYPE_PDF, content.getMimeType());
assertEquals("UTF-8", content.getEncoding());
assertEquals(14, (long) content.getSizeInBytes());
NodeResource resourceBefore = getNodeResourceBefore(resultRepoEvent);
assertNull("Content should have been null.", resourceBefore.getContent());
// Update the content again - different content but same size
retryingTransactionHelper.doInTransaction(() -> {
ContentWriter writer = contentService.getWriter(nodeRef, ContentModel.TYPE_CONTENT, true);
writer.setMimetype(MimetypeMap.MIMETYPE_PDF);
writer.setEncoding("UTF-8");
writer.putContent("test content b");
return null;
});
resource = getNodeResource(3);
content = resource.getContent();
assertNotNull(content);
assertEquals(MimetypeMap.MIMETYPE_PDF, content.getMimeType());
assertEquals("UTF-8", content.getEncoding());
assertEquals(14, (long) content.getSizeInBytes());
resourceBefore = getNodeResourceBefore(3);
assertNotNull("Content should not have been null.", resourceBefore.getContent());
content = resourceBefore.getContent();
assertNotNull(content);
assertEquals(MimetypeMap.MIMETYPE_PDF, content.getMimeType());
assertEquals("UTF-8", content.getEncoding());
assertEquals(14, (long) content.getSizeInBytes());
assertNotNull(resourceBefore.getModifiedAt());
// Apart from the 'content' and 'modifiedAt' properties the rest should be not be not set
// for the resourceBefore object
assertNull(resourceBefore.getId());
assertNull(resourceBefore.getName());
assertNull(resourceBefore.getNodeType());
assertNull(resourceBefore.isFile());
assertNull(resourceBefore.isFolder());
assertNull(resourceBefore.getModifiedByUser());
assertNull(resourceBefore.getCreatedAt());
assertNull(resourceBefore.getCreatedByUser());
assertNull(resourceBefore.getProperties());
assertNull(resourceBefore.getAspectNames());
assertNull(resourceBefore.getPrimaryHierarchy());
}
use of org.alfresco.repo.event.v1.model.RepoEvent in project alfresco-repository by Alfresco.
the class UpdateRepoEventIT method testUpdateNodeType.
@Test
public void testUpdateNodeType() {
final NodeRef nodeRef = createNode(ContentModel.TYPE_CONTENT);
// old node's type
assertEquals("Created node does not have the correct type", ContentModel.TYPE_CONTENT, nodeService.getType(nodeRef));
// node.Created event should be generated
RepoEvent<EventData<NodeResource>> resultRepoEvent = getRepoEvent(1);
assertEquals("Wrong repo event type.", EventType.NODE_CREATED.getType(), resultRepoEvent.getType());
NodeResource nodeResource = getNodeResource(resultRepoEvent);
assertEquals("cm:content node type was not found", "cm:content", nodeResource.getNodeType());
retryingTransactionHelper.doInTransaction(() -> {
nodeService.setType(nodeRef, ContentModel.TYPE_FOLDER);
// new node's type
assertEquals("Wrong node type", ContentModel.TYPE_FOLDER, nodeService.getType(nodeRef));
return null;
});
// we should have 2 events, node.Created and node.Updated
checkNumOfEvents(2);
resultRepoEvent = getRepoEvent(2);
assertEquals("Wrong repo event type.", EventType.NODE_UPDATED.getType(), resultRepoEvent.getType());
nodeResource = getNodeResource(resultRepoEvent);
assertEquals("Incorrect node type was found", "cm:folder", nodeResource.getNodeType());
NodeResource resourceBefore = getNodeResourceBefore(2);
assertEquals("Incorrect node type was found", "cm:content", resourceBefore.getNodeType());
// assertNotNull(resourceBefore.getModifiedAt()); uncomment this when the issue will be fixed
assertNull(resourceBefore.getId());
assertNull(resourceBefore.getContent());
assertNull(resourceBefore.isFile());
assertNull(resourceBefore.isFolder());
assertNull(resourceBefore.getModifiedByUser());
assertNull(resourceBefore.getCreatedAt());
assertNull(resourceBefore.getCreatedByUser());
assertNull(resourceBefore.getProperties());
assertNull(resourceBefore.getAspectNames());
assertNull(resourceBefore.getPrimaryHierarchy());
}
Aggregations