mirror of
https://github.com/Alfresco/alfresco-community-repo.git
synced 2025-08-07 17:49:17 +00:00
Merged HEAD-BUG-FIX (5.0/Cloud) to HEAD (5.0/Cloud)
78427: Reverse Merge HEAD-BUG-FIX (5.0/Cloud): Caused build #55 failure 78353: Merged V4.2-BUG-FIX (4.2.4) to HEAD-BUG-FIX (5.0/Cloud) 76112: Merged DEV to V4.2-BUG-FIX (4.2.3) 76109: MNT-11727: CMIS change log doesn't include change events for update operations Move and rename operations should be shown as an UPDATE in the CMIS change log. Added unit test. git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@82557 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
@@ -23,8 +23,6 @@
|
|||||||
<PathMap source="/alfresco-api/post/PermissionService/setInheritParentPermissions" target="/CMISChangeLog/SECURITY" />
|
<PathMap source="/alfresco-api/post/PermissionService/setInheritParentPermissions" target="/CMISChangeLog/SECURITY" />
|
||||||
<PathMap source="/alfresco-api/post/PermissionService/clearPermission" target="/CMISChangeLog/SECURITY" />
|
<PathMap source="/alfresco-api/post/PermissionService/clearPermission" target="/CMISChangeLog/SECURITY" />
|
||||||
<PathMap source="/alfresco-api/post/PermissionService/deletePermission" target="/CMISChangeLog/SECURITY" />
|
<PathMap source="/alfresco-api/post/PermissionService/deletePermission" target="/CMISChangeLog/SECURITY" />
|
||||||
<PathMap source="/alfresco-api/post/NodeService/moveNode" target="/CMISChangeLog/UPDATED" />
|
|
||||||
<PathMap source="/alfresco-api/post/FileFolderService/moveFrom" target="/CMISChangeLog/UPDATED" />
|
|
||||||
</PathMappings>
|
</PathMappings>
|
||||||
|
|
||||||
<Application name="CMISChangeLog" key="CMISChangeLog">
|
<Application name="CMISChangeLog" key="CMISChangeLog">
|
||||||
@@ -39,15 +37,9 @@
|
|||||||
|
|
||||||
<AuditPath key="UPDATED">
|
<AuditPath key="UPDATED">
|
||||||
<AuditPath key="args">
|
<AuditPath key="args">
|
||||||
<AuditPath key="nodeRef">
|
<AuditPath key="nodeRef">
|
||||||
<RecordValue key="value" dataExtractor="changeLog" />
|
<RecordValue key="value" dataExtractor="changeLog" />
|
||||||
</AuditPath>
|
</AuditPath>
|
||||||
<AuditPath key="nodeToMoveRef">
|
|
||||||
<RecordValue key="value" dataExtractor="changeLog" />
|
|
||||||
</AuditPath>
|
|
||||||
<AuditPath key="sourceNodeRef">
|
|
||||||
<RecordValue key="value" dataExtractor="changeLog" />
|
|
||||||
</AuditPath>
|
|
||||||
</AuditPath>
|
</AuditPath>
|
||||||
<AuditPath key="error">
|
<AuditPath key="error">
|
||||||
<RecordValue key="value" dataExtractor="nullValue" />
|
<RecordValue key="value" dataExtractor="nullValue" />
|
||||||
|
@@ -97,7 +97,6 @@ import org.apache.chemistry.opencmis.commons.data.RepositoryInfo;
|
|||||||
import org.apache.chemistry.opencmis.commons.definitions.TypeDefinition;
|
import org.apache.chemistry.opencmis.commons.definitions.TypeDefinition;
|
||||||
import org.apache.chemistry.opencmis.commons.enums.AclPropagation;
|
import org.apache.chemistry.opencmis.commons.enums.AclPropagation;
|
||||||
import org.apache.chemistry.opencmis.commons.enums.Action;
|
import org.apache.chemistry.opencmis.commons.enums.Action;
|
||||||
import org.apache.chemistry.opencmis.commons.enums.ChangeType;
|
|
||||||
import org.apache.chemistry.opencmis.commons.enums.CmisVersion;
|
import org.apache.chemistry.opencmis.commons.enums.CmisVersion;
|
||||||
import org.apache.chemistry.opencmis.commons.enums.IncludeRelationships;
|
import org.apache.chemistry.opencmis.commons.enums.IncludeRelationships;
|
||||||
import org.apache.chemistry.opencmis.commons.enums.VersioningState;
|
import org.apache.chemistry.opencmis.commons.enums.VersioningState;
|
||||||
@@ -2301,87 +2300,6 @@ public class CMISTest
|
|||||||
}, "user2", "tenant2");
|
}, "user2", "tenant2");
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* MNT-11727: move and rename operations should be shown as an UPDATE in the CMIS change log
|
|
||||||
*/
|
|
||||||
@Test
|
|
||||||
public void tesMoveRenameWithCMISshouldBeAuditedAsUPDATE() throws Exception
|
|
||||||
{
|
|
||||||
// setUp audit subsystem
|
|
||||||
setupAudit();
|
|
||||||
|
|
||||||
AuthenticationUtil.pushAuthentication();
|
|
||||||
AuthenticationUtil.setFullyAuthenticatedUser(AuthenticationUtil.getAdminUserName());
|
|
||||||
|
|
||||||
try
|
|
||||||
{
|
|
||||||
assertTrue("Audit is not enabled", auditSubsystem.isAuditEnabled());
|
|
||||||
assertNotNull("CMIS audit is not enabled", auditSubsystem.getAuditApplicationByName("CMISChangeLog"));
|
|
||||||
|
|
||||||
NodeRef companyHomeNodeRef = repositoryHelper.getCompanyHome();
|
|
||||||
|
|
||||||
String folder = GUID.generate();
|
|
||||||
FileInfo folderInfo = fileFolderService.create(companyHomeNodeRef, folder, ContentModel.TYPE_FOLDER);
|
|
||||||
|
|
||||||
final String actualToken = changeLogService.getLastChangeLogToken();
|
|
||||||
|
|
||||||
String content = GUID.generate();
|
|
||||||
FileInfo document = fileFolderService.create(folderInfo.getNodeRef(), content, ContentModel.TYPE_CONTENT);
|
|
||||||
assertNotNull(document);
|
|
||||||
nodeService.setProperty(document.getNodeRef(), ContentModel.PROP_NAME, content);
|
|
||||||
|
|
||||||
Holder<String> changeLogToken = new Holder<String>();
|
|
||||||
changeLogToken.setValue(actualToken);
|
|
||||||
ObjectList changeLog = CMISTest.this.cmisConnector.getContentChanges(changeLogToken, new BigInteger("0"));
|
|
||||||
List<ObjectData> events = changeLog.getObjects();
|
|
||||||
int count = events.size();
|
|
||||||
// it should be 3 entries: 1 for previous folder create, 1 new CREATE (for document create)
|
|
||||||
// and 1 NEW UPDATE
|
|
||||||
assertEquals(3, count);
|
|
||||||
|
|
||||||
assertEquals(events.get(0).getProperties().getPropertyList().get(0).getValues().get(0), folderInfo.getNodeRef().getId());
|
|
||||||
assertEquals(events.get(0).getChangeEventInfo().getChangeType(), ChangeType.CREATED);
|
|
||||||
|
|
||||||
assertTrue(((String) events.get(1).getProperties().getPropertyList().get(0).getValues().get(0)).contains(document.getNodeRef().getId()));
|
|
||||||
assertEquals(events.get(1).getChangeEventInfo().getChangeType(), ChangeType.CREATED);
|
|
||||||
|
|
||||||
assertTrue(((String) events.get(2).getProperties().getPropertyList().get(0).getValues().get(0)).contains(document.getNodeRef().getId()));
|
|
||||||
assertEquals(events.get(2).getChangeEventInfo().getChangeType(), ChangeType.UPDATED);
|
|
||||||
|
|
||||||
// test rename
|
|
||||||
final String actualToken2 = changeLogService.getLastChangeLogToken();
|
|
||||||
nodeService.setProperty(document.getNodeRef(), ContentModel.PROP_NAME, content + "-updated");
|
|
||||||
|
|
||||||
changeLogToken = new Holder<String>();
|
|
||||||
changeLogToken.setValue(actualToken2);
|
|
||||||
changeLog = CMISTest.this.cmisConnector.getContentChanges(changeLogToken, new BigInteger("0"));
|
|
||||||
events = changeLog.getObjects();
|
|
||||||
count = events.size();
|
|
||||||
assertEquals(2, count);
|
|
||||||
assertEquals("Rename operation should be shown as an UPDATE in the CMIS change log", events.get(1).getChangeEventInfo().getChangeType(), ChangeType.UPDATED);
|
|
||||||
|
|
||||||
// test move
|
|
||||||
String targetFolder = GUID.generate();
|
|
||||||
FileInfo targetFolderInfo = fileFolderService.create(companyHomeNodeRef, targetFolder, ContentModel.TYPE_FOLDER);
|
|
||||||
|
|
||||||
final String actualToken3 = changeLogService.getLastChangeLogToken();
|
|
||||||
nodeService.moveNode(document.getNodeRef(), targetFolderInfo.getNodeRef(), ContentModel.ASSOC_CONTAINS, ContentModel.ASSOC_CONTAINS);
|
|
||||||
|
|
||||||
changeLogToken = new Holder<String>();
|
|
||||||
changeLogToken.setValue(actualToken3);
|
|
||||||
changeLog = CMISTest.this.cmisConnector.getContentChanges(changeLogToken, new BigInteger("0"));
|
|
||||||
events = changeLog.getObjects();
|
|
||||||
count = events.size();
|
|
||||||
assertEquals(2, count);
|
|
||||||
assertEquals("Move operation should be shown as an UPDATE in the CMIS change log", events.get(1).getChangeEventInfo().getChangeType(), ChangeType.UPDATED);
|
|
||||||
}
|
|
||||||
finally
|
|
||||||
{
|
|
||||||
auditSubsystem.destroy();
|
|
||||||
AuthenticationUtil.popAuthentication();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* MNT-11304: Test that Alfresco has no default boundaries for decimals
|
* MNT-11304: Test that Alfresco has no default boundaries for decimals
|
||||||
* @throws Exception
|
* @throws Exception
|
||||||
|
Reference in New Issue
Block a user