Search in sources :

Example 1 with EventData

use of org.alfresco.repo.event.v1.model.EventData in project alfresco-repository by Alfresco.

the class DeleteRepoEventIT method testDeleteContent.

@Test
public void testDeleteContent() {
    PropertyMap propertyMap = new PropertyMap();
    propertyMap.put(ContentModel.PROP_TITLE, "test title");
    NodeRef nodeRef = createNode(ContentModel.TYPE_CONTENT, propertyMap);
    NodeResource createdResource = getNodeResource(1);
    assertNotNull("Resource ID is null", createdResource.getId());
    assertNotNull("Default aspects were not added. ", createdResource.getAspectNames());
    assertNotNull("Missing createdByUser property.", createdResource.getCreatedByUser());
    assertNotNull("Missing createdAt property.", createdResource.getCreatedAt());
    assertNotNull("Missing modifiedByUser property.", createdResource.getModifiedByUser());
    assertNotNull("Missing modifiedAt property.", createdResource.getModifiedAt());
    assertNotNull("Missing node resource properties", createdResource.getProperties());
    deleteNode(nodeRef);
    final RepoEvent<EventData<NodeResource>> resultRepoEvent = getRepoEvent(2);
    assertEquals("Repo event type:", EventType.NODE_DELETED.getType(), resultRepoEvent.getType());
    assertEquals(createdResource.getId(), getNodeResource(resultRepoEvent).getId());
    // There should be no resourceBefore
    EventData<NodeResource> eventData = getEventData(resultRepoEvent);
    assertNull("There should be no 'resourceBefore' object for the Deleted event type.", eventData.getResourceBefore());
}
Also used : NodeResource(org.alfresco.repo.event.v1.model.NodeResource) NodeRef(org.alfresco.service.cmr.repository.NodeRef) PropertyMap(org.alfresco.util.PropertyMap) EventData(org.alfresco.repo.event.v1.model.EventData) Test(org.junit.Test)

Example 2 with EventData

use of org.alfresco.repo.event.v1.model.EventData in project alfresco-repository by Alfresco.

the class PeerAssociationRepoEventIT method testAddMultiplePeerAssociationDifferentTransaction.

@Test
public void testAddMultiplePeerAssociationDifferentTransaction() {
    final NodeRef content1NodeRef = createNode(ContentModel.TYPE_CONTENT);
    final NodeRef content2NodeRef = createNode(ContentModel.TYPE_CONTENT);
    final NodeRef content3NodeRef = createNode(ContentModel.TYPE_CONTENT);
    checkNumOfEvents(3);
    RepoEvent<EventData<NodeResource>> resultRepoEvent = getRepoEventWithoutWait(1);
    assertEquals("Wrong repo event type.", EventType.NODE_CREATED.getType(), resultRepoEvent.getType());
    resultRepoEvent = getRepoEventWithoutWait(2);
    assertEquals("Wrong repo event type.", EventType.NODE_CREATED.getType(), resultRepoEvent.getType());
    resultRepoEvent = getRepoEventWithoutWait(3);
    assertEquals("Wrong repo event type.", EventType.NODE_CREATED.getType(), resultRepoEvent.getType());
    retryingTransactionHelper.doInTransaction(() -> {
        nodeService.createAssociation(content1NodeRef, content2NodeRef, ContentModel.ASSOC_ORIGINAL);
        return null;
    });
    retryingTransactionHelper.doInTransaction(() -> {
        nodeService.createAssociation(content3NodeRef, content2NodeRef, ContentModel.ASSOC_ORIGINAL);
        return null;
    });
    List<AssociationRef> peerAssociationRefs = retryingTransactionHelper.doInTransaction(() -> nodeService.getSourceAssocs(content2NodeRef, ContentModel.ASSOC_ORIGINAL));
    assertEquals(2, peerAssociationRefs.size());
    checkNumOfEvents(7);
    List<RepoEvent<EventData<PeerAssociationResource>>> peerAssocRepoEvent = getFilteredEvents(EventType.PEER_ASSOC_CREATED);
    // we should have 2 assoc.peer.Created events
    assertEquals("Wrong association events number", 2, peerAssocRepoEvent.size());
    assertEquals("Wrong source", content1NodeRef.getId(), getPeerAssocResource(peerAssocRepoEvent.get(0)).getSource().getId());
    assertEquals("Wrong target", content2NodeRef.getId(), getPeerAssocResource(peerAssocRepoEvent.get(0)).getTarget().getId());
    assertEquals("Wrong assoc type", "cm:original", getPeerAssocResource(peerAssocRepoEvent.get(0)).getAssocType());
    assertEquals("Wrong source", content3NodeRef.getId(), getPeerAssocResource(peerAssocRepoEvent.get(1)).getSource().getId());
    assertEquals("Wrong target", content2NodeRef.getId(), getPeerAssocResource(peerAssocRepoEvent.get(1)).getTarget().getId());
    assertEquals("Wrong assoc type", "cm:original", getPeerAssocResource(peerAssocRepoEvent.get(1)).getAssocType());
}
Also used : NodeRef(org.alfresco.service.cmr.repository.NodeRef) RepoEvent(org.alfresco.repo.event.v1.model.RepoEvent) PeerAssociationResource(org.alfresco.repo.event.v1.model.PeerAssociationResource) EventData(org.alfresco.repo.event.v1.model.EventData) AssociationRef(org.alfresco.service.cmr.repository.AssociationRef) Test(org.junit.Test)

Example 3 with EventData

use of org.alfresco.repo.event.v1.model.EventData in project alfresco-repository by Alfresco.

the class PeerAssociationRepoEventIT method testRemovePeerAssociation.

@Test
public void testRemovePeerAssociation() {
    final NodeRef content1NodeRef = createNode(ContentModel.TYPE_CONTENT);
    final NodeRef content2NodeRef = createNode(ContentModel.TYPE_CONTENT);
    checkNumOfEvents(2);
    RepoEvent<EventData<NodeResource>> resultRepoEvent = getRepoEventWithoutWait(1);
    assertEquals("Wrong repo event type.", EventType.NODE_CREATED.getType(), resultRepoEvent.getType());
    resultRepoEvent = getRepoEventWithoutWait(2);
    assertEquals("Wrong repo event type.", EventType.NODE_CREATED.getType(), resultRepoEvent.getType());
    // Create peer association
    retryingTransactionHelper.doInTransaction(() -> nodeService.createAssociation(content1NodeRef, content2NodeRef, ContentModel.ASSOC_ORIGINAL));
    List<AssociationRef> peerAssociationRefs = retryingTransactionHelper.doInTransaction(() -> nodeService.getSourceAssocs(content2NodeRef, ContentModel.ASSOC_ORIGINAL));
    assertEquals(1, peerAssociationRefs.size());
    checkNumOfEvents(4);
    // Remove peer association
    retryingTransactionHelper.doInTransaction(() -> {
        nodeService.removeAssociation(content1NodeRef, content2NodeRef, ContentModel.ASSOC_ORIGINAL);
        return null;
    });
    peerAssociationRefs = retryingTransactionHelper.doInTransaction(() -> nodeService.getSourceAssocs(content2NodeRef, ContentModel.ASSOC_ORIGINAL));
    assertEquals(0, peerAssociationRefs.size());
    checkNumOfEvents(6);
    // Check the peer assoc created event
    final RepoEvent<EventData<PeerAssociationResource>> peerAssocRepoEvent = getFilteredEvent(EventType.PEER_ASSOC_CREATED, 0);
    assertEquals("Wrong repo event type.", EventType.PEER_ASSOC_CREATED.getType(), peerAssocRepoEvent.getType());
    assertNotNull("Repo event ID is not available. ", peerAssocRepoEvent.getId());
    assertNotNull("Source is not available", peerAssocRepoEvent.getSource());
    assertEquals("Repo event source is not available. ", "/" + descriptorService.getCurrentRepositoryDescriptor().getId(), peerAssocRepoEvent.getSource().toString());
    assertNotNull("Repo event creation time is not available. ", peerAssocRepoEvent.getTime());
    assertEquals("Repo event datacontenttype", "application/json", peerAssocRepoEvent.getDatacontenttype());
    assertNotNull(peerAssocRepoEvent.getDataschema());
    assertEquals(EventJSONSchema.PEER_ASSOC_CREATED_V1.getSchema(), peerAssocRepoEvent.getDataschema());
    final EventData<PeerAssociationResource> nodeResourceEventData = getEventData(peerAssocRepoEvent);
    // EventData attributes
    assertNotNull("Event data group ID is not available. ", nodeResourceEventData.getEventGroupId());
    assertNull("resourceBefore property is not available", nodeResourceEventData.getResourceBefore());
    final PeerAssociationResource peerAssociationResource = getPeerAssocResource(peerAssocRepoEvent);
    assertEquals("Wrong source", content1NodeRef.getId(), peerAssociationResource.getSource().getId());
    assertEquals("Wrong target", content2NodeRef.getId(), peerAssociationResource.getTarget().getId());
    assertEquals("Wrong assoc type", "cm:original", peerAssociationResource.getAssocType());
    // Check the peer assoc deleted event
    final RepoEvent<EventData<PeerAssociationResource>> peerAssocRepoEvent2 = getFilteredEvent(EventType.PEER_ASSOC_DELETED, 0);
    assertEquals("Wrong repo event type.", EventType.PEER_ASSOC_DELETED.getType(), peerAssocRepoEvent2.getType());
    assertNotNull("Repo event ID is not available. ", peerAssocRepoEvent2.getId());
    assertNotNull("Source is not available", peerAssocRepoEvent2.getSource());
    assertEquals("Repo event source is not available. ", "/" + descriptorService.getCurrentRepositoryDescriptor().getId(), peerAssocRepoEvent2.getSource().toString());
    assertNotNull("Repo event creation time is not available. ", peerAssocRepoEvent2.getTime());
    assertEquals("Repo event datacontenttype", "application/json", peerAssocRepoEvent2.getDatacontenttype());
    assertNotNull(peerAssocRepoEvent2.getDataschema());
    assertEquals(EventJSONSchema.PEER_ASSOC_DELETED_V1.getSchema(), peerAssocRepoEvent2.getDataschema());
    final EventData<PeerAssociationResource> nodeResourceEventData2 = getEventData(peerAssocRepoEvent2);
    // EventData attributes
    assertNotNull("Event data group ID is not available. ", nodeResourceEventData2.getEventGroupId());
    assertNull("resourceBefore property is not available", nodeResourceEventData2.getResourceBefore());
    final PeerAssociationResource peerAssociationResource2 = getPeerAssocResource(peerAssocRepoEvent2);
    assertEquals("Wrong source", content1NodeRef.getId(), peerAssociationResource2.getSource().getId());
    assertEquals("Wrong target", content2NodeRef.getId(), peerAssociationResource2.getTarget().getId());
    assertEquals("Wrong assoc type", "cm:original", peerAssociationResource2.getAssocType());
}
Also used : NodeRef(org.alfresco.service.cmr.repository.NodeRef) PeerAssociationResource(org.alfresco.repo.event.v1.model.PeerAssociationResource) EventData(org.alfresco.repo.event.v1.model.EventData) AssociationRef(org.alfresco.service.cmr.repository.AssociationRef) Test(org.junit.Test)

Example 4 with EventData

use of org.alfresco.repo.event.v1.model.EventData in project alfresco-repository by Alfresco.

the class AbstractContextAwareRepoEvent method getNodeResourceWithoutWait.

protected NodeResource getNodeResourceWithoutWait(int eventSequenceNumber) {
    DataAttributes<NodeResource> eventData = getEventDataWithoutWait(eventSequenceNumber);
    NodeResource resource = eventData.getResource();
    assertNotNull(resource);
    return resource;
}
Also used : NodeResource(org.alfresco.repo.event.v1.model.NodeResource)

Example 5 with EventData

use of org.alfresco.repo.event.v1.model.EventData in project alfresco-repository by Alfresco.

the class AbstractContextAwareRepoEvent method getPeerAssocResource.

protected <D extends DataAttributes<PeerAssociationResource>> PeerAssociationResource getPeerAssocResource(RepoEvent<D> repoEvent) {
    assertNotNull(repoEvent);
    D eventData = repoEvent.getData();
    assertNotNull(eventData);
    PeerAssociationResource resource = eventData.getResource();
    assertNotNull(resource);
    return resource;
}
Also used : PeerAssociationResource(org.alfresco.repo.event.v1.model.PeerAssociationResource) GUID(org.alfresco.util.GUID)

Aggregations

EventData (org.alfresco.repo.event.v1.model.EventData)25 NodeRef (org.alfresco.service.cmr.repository.NodeRef)25 Test (org.junit.Test)25 NodeResource (org.alfresco.repo.event.v1.model.NodeResource)14 ChildAssociationResource (org.alfresco.repo.event.v1.model.ChildAssociationResource)13 RepoEvent (org.alfresco.repo.event.v1.model.RepoEvent)12 ChildAssociationRef (org.alfresco.service.cmr.repository.ChildAssociationRef)12 PeerAssociationResource (org.alfresco.repo.event.v1.model.PeerAssociationResource)6 AssociationRef (org.alfresco.service.cmr.repository.AssociationRef)5 GUID (org.alfresco.util.GUID)4 EventType (org.alfresco.repo.event.v1.model.EventType)3 ContentInfo (org.alfresco.repo.event.v1.model.ContentInfo)2 ContentService (org.alfresco.service.cmr.repository.ContentService)2 ContentWriter (org.alfresco.service.cmr.repository.ContentWriter)2 PropertyMap (org.alfresco.util.PropertyMap)2 M2Model (org.alfresco.repo.dictionary.M2Model)1 M2Type (org.alfresco.repo.dictionary.M2Type)1 CustomModelDefinition (org.alfresco.service.cmr.dictionary.CustomModelDefinition)1 TypeDefinition (org.alfresco.service.cmr.dictionary.TypeDefinition)1 QName (org.alfresco.service.namespace.QName)1