mirror of
https://github.com/Alfresco/alfresco-community-repo.git
synced 2025-10-08 14:51:49 +00:00
MNT-16375 "CMISChangelog auditing enablement impacts CMIS connection if quantity records are excessive" fix tests
git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/BRANCHES/DEV/5.2.N/root@129392 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
@@ -1,3 +1,4 @@
|
|||||||
|
|
||||||
/*
|
/*
|
||||||
* #%L
|
* #%L
|
||||||
* Alfresco Repository
|
* Alfresco Repository
|
||||||
@@ -26,135 +27,140 @@
|
|||||||
|
|
||||||
package org.alfresco.opencmis;
|
package org.alfresco.opencmis;
|
||||||
|
|
||||||
import static org.junit.Assert.assertEquals;
|
import static org.junit.Assert.assertEquals;
|
||||||
import static org.junit.Assert.assertFalse;
|
import static org.junit.Assert.assertFalse;
|
||||||
import static org.junit.Assert.assertNotNull;
|
import static org.junit.Assert.assertNotNull;
|
||||||
import static org.junit.Assert.assertNull;
|
import static org.junit.Assert.assertNull;
|
||||||
import static org.junit.Assert.assertTrue;
|
import static org.junit.Assert.assertTrue;
|
||||||
import static org.junit.Assert.fail;
|
import static org.junit.Assert.fail;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
import java.math.BigInteger;
|
import java.math.BigInteger;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
import java.util.GregorianCalendar;
|
import java.util.GregorianCalendar;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.HashSet;
|
import java.util.HashSet;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
|
||||||
import org.alfresco.model.ContentModel;
|
import org.alfresco.model.ContentModel;
|
||||||
import org.alfresco.opencmis.dictionary.CMISDictionaryService;
|
import org.alfresco.opencmis.dictionary.CMISDictionaryService;
|
||||||
import org.alfresco.opencmis.dictionary.PropertyDefinitionWrapper;
|
import org.alfresco.opencmis.dictionary.PropertyDefinitionWrapper;
|
||||||
import org.alfresco.opencmis.dictionary.TypeDefinitionWrapper;
|
import org.alfresco.opencmis.dictionary.TypeDefinitionWrapper;
|
||||||
import org.alfresco.opencmis.search.CMISQueryOptions;
|
import org.alfresco.opencmis.search.CMISQueryOptions;
|
||||||
import org.alfresco.opencmis.search.CMISQueryOptions.CMISQueryMode;
|
import org.alfresco.opencmis.search.CMISQueryOptions.CMISQueryMode;
|
||||||
import org.alfresco.repo.action.evaluator.ComparePropertyValueEvaluator;
|
import org.alfresco.repo.action.evaluator.ComparePropertyValueEvaluator;
|
||||||
import org.alfresco.repo.action.executer.AddFeaturesActionExecuter;
|
import org.alfresco.repo.action.executer.AddFeaturesActionExecuter;
|
||||||
import org.alfresco.repo.audit.AuditComponent;
|
import org.alfresco.repo.audit.AuditComponent;
|
||||||
import org.alfresco.repo.audit.AuditServiceImpl;
|
import org.alfresco.repo.audit.AuditComponentImpl;
|
||||||
import org.alfresco.repo.audit.UserAuditFilter;
|
import org.alfresco.repo.audit.AuditServiceImpl;
|
||||||
import org.alfresco.repo.audit.model.AuditModelRegistryImpl;
|
import org.alfresco.repo.audit.UserAuditFilter;
|
||||||
import org.alfresco.repo.content.MimetypeMap;
|
import org.alfresco.repo.audit.model.AuditModelRegistryImpl;
|
||||||
import org.alfresco.repo.dictionary.DictionaryDAO;
|
import org.alfresco.repo.batch.BatchProcessWorkProvider;
|
||||||
import org.alfresco.repo.dictionary.M2Model;
|
import org.alfresco.repo.batch.BatchProcessor;
|
||||||
import org.alfresco.repo.domain.audit.AuditDAO;
|
import org.alfresco.repo.content.MimetypeMap;
|
||||||
import org.alfresco.repo.domain.node.NodeDAO;
|
import org.alfresco.repo.dictionary.DictionaryDAO;
|
||||||
import org.alfresco.repo.model.Repository;
|
import org.alfresco.repo.dictionary.M2Model;
|
||||||
import org.alfresco.repo.node.archive.NodeArchiveService;
|
import org.alfresco.repo.domain.audit.AuditDAO;
|
||||||
import org.alfresco.repo.security.authentication.AuthenticationContext;
|
import org.alfresco.repo.domain.node.NodeDAO;
|
||||||
import org.alfresco.repo.security.authentication.AuthenticationUtil;
|
import org.alfresco.repo.model.Repository;
|
||||||
import org.alfresco.repo.security.authentication.AuthenticationUtil.RunAsWork;
|
import org.alfresco.repo.node.archive.NodeArchiveService;
|
||||||
import org.alfresco.repo.tenant.TenantAdminService;
|
import org.alfresco.repo.security.authentication.AuthenticationContext;
|
||||||
import org.alfresco.repo.tenant.TenantService;
|
import org.alfresco.repo.security.authentication.AuthenticationUtil;
|
||||||
import org.alfresco.repo.tenant.TenantUtil;
|
import org.alfresco.repo.security.authentication.AuthenticationUtil.RunAsWork;
|
||||||
import org.alfresco.repo.tenant.TenantUtil.TenantRunAsWork;
|
import org.alfresco.repo.tenant.TenantAdminService;
|
||||||
import org.alfresco.repo.transaction.RetryingTransactionHelper;
|
import org.alfresco.repo.tenant.TenantService;
|
||||||
import org.alfresco.repo.transaction.RetryingTransactionHelper.RetryingTransactionCallback;
|
import org.alfresco.repo.tenant.TenantUtil;
|
||||||
import org.alfresco.repo.version.VersionableAspectTest;
|
import org.alfresco.repo.tenant.TenantUtil.TenantRunAsWork;
|
||||||
import org.alfresco.repo.workflow.WorkflowDeployer;
|
import org.alfresco.repo.transaction.RetryingTransactionHelper;
|
||||||
import org.alfresco.service.cmr.action.ActionCondition;
|
import org.alfresco.repo.transaction.RetryingTransactionHelper.RetryingTransactionCallback;
|
||||||
import org.alfresco.service.cmr.action.ActionService;
|
import org.alfresco.repo.version.VersionableAspectTest;
|
||||||
import org.alfresco.service.cmr.dictionary.AspectDefinition;
|
import org.alfresco.repo.workflow.WorkflowDeployer;
|
||||||
import org.alfresco.service.cmr.dictionary.DictionaryService;
|
import org.alfresco.service.cmr.action.ActionCondition;
|
||||||
import org.alfresco.service.cmr.lock.LockService;
|
import org.alfresco.service.cmr.action.ActionService;
|
||||||
import org.alfresco.service.cmr.lock.LockType;
|
import org.alfresco.service.cmr.dictionary.AspectDefinition;
|
||||||
import org.alfresco.service.cmr.model.FileFolderService;
|
import org.alfresco.service.cmr.dictionary.DictionaryService;
|
||||||
import org.alfresco.service.cmr.model.FileInfo;
|
import org.alfresco.service.cmr.lock.LockService;
|
||||||
import org.alfresco.service.cmr.repository.ChildAssociationRef;
|
import org.alfresco.service.cmr.lock.LockType;
|
||||||
import org.alfresco.service.cmr.repository.ContentService;
|
import org.alfresco.service.cmr.model.FileFolderService;
|
||||||
import org.alfresco.service.cmr.repository.ContentWriter;
|
import org.alfresco.service.cmr.model.FileInfo;
|
||||||
import org.alfresco.service.cmr.repository.NodeRef;
|
import org.alfresco.service.cmr.repository.ChildAssociationRef;
|
||||||
import org.alfresco.service.cmr.repository.NodeService;
|
import org.alfresco.service.cmr.repository.ContentService;
|
||||||
import org.alfresco.service.cmr.repository.StoreRef;
|
import org.alfresco.service.cmr.repository.ContentWriter;
|
||||||
import org.alfresco.service.cmr.rule.Rule;
|
import org.alfresco.service.cmr.repository.NodeRef;
|
||||||
import org.alfresco.service.cmr.rule.RuleService;
|
import org.alfresco.service.cmr.repository.NodeService;
|
||||||
import org.alfresco.service.cmr.rule.RuleType;
|
import org.alfresco.service.cmr.repository.StoreRef;
|
||||||
import org.alfresco.service.cmr.search.SearchService;
|
import org.alfresco.service.cmr.rule.Rule;
|
||||||
import org.alfresco.service.cmr.security.AccessPermission;
|
import org.alfresco.service.cmr.rule.RuleService;
|
||||||
import org.alfresco.service.cmr.security.AuthorityService;
|
import org.alfresco.service.cmr.rule.RuleType;
|
||||||
import org.alfresco.service.cmr.security.AuthorityType;
|
import org.alfresco.service.cmr.search.SearchService;
|
||||||
import org.alfresco.service.cmr.security.PermissionService;
|
import org.alfresco.service.cmr.security.AccessPermission;
|
||||||
import org.alfresco.service.cmr.tagging.TaggingService;
|
import org.alfresco.service.cmr.security.AuthorityService;
|
||||||
import org.alfresco.service.cmr.version.Version;
|
import org.alfresco.service.cmr.security.AuthorityType;
|
||||||
import org.alfresco.service.cmr.version.VersionService;
|
import org.alfresco.service.cmr.security.PermissionService;
|
||||||
import org.alfresco.service.cmr.version.VersionType;
|
import org.alfresco.service.cmr.tagging.TaggingService;
|
||||||
import org.alfresco.service.cmr.workflow.WorkflowAdminService;
|
import org.alfresco.service.cmr.version.Version;
|
||||||
import org.alfresco.service.cmr.workflow.WorkflowService;
|
import org.alfresco.service.cmr.version.VersionService;
|
||||||
import org.alfresco.service.namespace.NamespaceService;
|
import org.alfresco.service.cmr.version.VersionType;
|
||||||
import org.alfresco.service.namespace.QName;
|
import org.alfresco.service.cmr.workflow.WorkflowAdminService;
|
||||||
import org.alfresco.service.transaction.TransactionService;
|
import org.alfresco.service.cmr.workflow.WorkflowService;
|
||||||
import org.alfresco.util.ApplicationContextHelper;
|
import org.alfresco.service.namespace.NamespaceService;
|
||||||
import org.alfresco.util.Pair;
|
import org.alfresco.service.namespace.QName;
|
||||||
import org.apache.chemistry.opencmis.commons.PropertyIds;
|
import org.alfresco.service.transaction.TransactionService;
|
||||||
import org.apache.chemistry.opencmis.commons.data.Ace;
|
import org.alfresco.util.ApplicationContextHelper;
|
||||||
import org.apache.chemistry.opencmis.commons.data.AllowableActions;
|
import org.alfresco.util.Pair;
|
||||||
import org.apache.chemistry.opencmis.commons.data.CmisExtensionElement;
|
import org.apache.chemistry.opencmis.commons.PropertyIds;
|
||||||
import org.apache.chemistry.opencmis.commons.data.FailedToDeleteData;
|
import org.apache.chemistry.opencmis.commons.data.Ace;
|
||||||
import org.apache.chemistry.opencmis.commons.data.ObjectData;
|
import org.apache.chemistry.opencmis.commons.data.AllowableActions;
|
||||||
import org.apache.chemistry.opencmis.commons.data.ObjectInFolderData;
|
import org.apache.chemistry.opencmis.commons.data.CmisExtensionElement;
|
||||||
import org.apache.chemistry.opencmis.commons.data.ObjectInFolderList;
|
import org.apache.chemistry.opencmis.commons.data.FailedToDeleteData;
|
||||||
import org.apache.chemistry.opencmis.commons.data.ObjectList;
|
import org.apache.chemistry.opencmis.commons.data.ObjectData;
|
||||||
import org.apache.chemistry.opencmis.commons.data.ObjectParentData;
|
import org.apache.chemistry.opencmis.commons.data.ObjectInFolderData;
|
||||||
import org.apache.chemistry.opencmis.commons.data.Properties;
|
import org.apache.chemistry.opencmis.commons.data.ObjectInFolderList;
|
||||||
import org.apache.chemistry.opencmis.commons.data.PropertyData;
|
import org.apache.chemistry.opencmis.commons.data.ObjectList;
|
||||||
import org.apache.chemistry.opencmis.commons.data.RepositoryInfo;
|
import org.apache.chemistry.opencmis.commons.data.ObjectParentData;
|
||||||
import org.apache.chemistry.opencmis.commons.definitions.PropertyDefinition;
|
import org.apache.chemistry.opencmis.commons.data.Properties;
|
||||||
import org.apache.chemistry.opencmis.commons.definitions.TypeDefinition;
|
import org.apache.chemistry.opencmis.commons.data.PropertyData;
|
||||||
import org.apache.chemistry.opencmis.commons.definitions.TypeDefinitionContainer;
|
import org.apache.chemistry.opencmis.commons.data.RepositoryInfo;
|
||||||
import org.apache.chemistry.opencmis.commons.enums.AclPropagation;
|
import org.apache.chemistry.opencmis.commons.definitions.PropertyDefinition;
|
||||||
import org.apache.chemistry.opencmis.commons.enums.Action;
|
import org.apache.chemistry.opencmis.commons.definitions.TypeDefinition;
|
||||||
import org.apache.chemistry.opencmis.commons.enums.ChangeType;
|
import org.apache.chemistry.opencmis.commons.definitions.TypeDefinitionContainer;
|
||||||
import org.apache.chemistry.opencmis.commons.enums.CmisVersion;
|
import org.apache.chemistry.opencmis.commons.enums.AclPropagation;
|
||||||
import org.apache.chemistry.opencmis.commons.enums.IncludeRelationships;
|
import org.apache.chemistry.opencmis.commons.enums.Action;
|
||||||
import org.apache.chemistry.opencmis.commons.enums.UnfileObject;
|
import org.apache.chemistry.opencmis.commons.enums.ChangeType;
|
||||||
import org.apache.chemistry.opencmis.commons.enums.VersioningState;
|
import org.apache.chemistry.opencmis.commons.enums.CmisVersion;
|
||||||
import org.apache.chemistry.opencmis.commons.exceptions.CmisConstraintException;
|
import org.apache.chemistry.opencmis.commons.enums.IncludeRelationships;
|
||||||
import org.apache.chemistry.opencmis.commons.exceptions.CmisRuntimeException;
|
import org.apache.chemistry.opencmis.commons.enums.UnfileObject;
|
||||||
import org.apache.chemistry.opencmis.commons.exceptions.CmisUpdateConflictException;
|
import org.apache.chemistry.opencmis.commons.enums.VersioningState;
|
||||||
import org.apache.chemistry.opencmis.commons.impl.dataobjects.AccessControlListImpl;
|
import org.apache.chemistry.opencmis.commons.exceptions.CmisConstraintException;
|
||||||
import org.apache.chemistry.opencmis.commons.impl.dataobjects.CmisExtensionElementImpl;
|
import org.apache.chemistry.opencmis.commons.exceptions.CmisRuntimeException;
|
||||||
import org.apache.chemistry.opencmis.commons.impl.dataobjects.ContentStreamImpl;
|
import org.apache.chemistry.opencmis.commons.exceptions.CmisUpdateConflictException;
|
||||||
import org.apache.chemistry.opencmis.commons.impl.dataobjects.ExtensionDataImpl;
|
import org.apache.chemistry.opencmis.commons.impl.dataobjects.AccessControlListImpl;
|
||||||
import org.apache.chemistry.opencmis.commons.impl.dataobjects.PropertiesImpl;
|
import org.apache.chemistry.opencmis.commons.impl.dataobjects.CmisExtensionElementImpl;
|
||||||
import org.apache.chemistry.opencmis.commons.impl.dataobjects.PropertyDecimalDefinitionImpl;
|
import org.apache.chemistry.opencmis.commons.impl.dataobjects.ContentStreamImpl;
|
||||||
import org.apache.chemistry.opencmis.commons.impl.dataobjects.PropertyIdImpl;
|
import org.apache.chemistry.opencmis.commons.impl.dataobjects.ExtensionDataImpl;
|
||||||
import org.apache.chemistry.opencmis.commons.impl.dataobjects.PropertyIntegerDefinitionImpl;
|
import org.apache.chemistry.opencmis.commons.impl.dataobjects.PropertiesImpl;
|
||||||
import org.apache.chemistry.opencmis.commons.impl.dataobjects.PropertyIntegerImpl;
|
import org.apache.chemistry.opencmis.commons.impl.dataobjects.PropertyDecimalDefinitionImpl;
|
||||||
import org.apache.chemistry.opencmis.commons.impl.dataobjects.PropertyStringImpl;
|
import org.apache.chemistry.opencmis.commons.impl.dataobjects.PropertyIdImpl;
|
||||||
import org.apache.chemistry.opencmis.commons.impl.server.AbstractServiceFactory;
|
import org.apache.chemistry.opencmis.commons.impl.dataobjects.PropertyIntegerDefinitionImpl;
|
||||||
import org.apache.chemistry.opencmis.commons.server.CallContext;
|
import org.apache.chemistry.opencmis.commons.impl.dataobjects.PropertyIntegerImpl;
|
||||||
import org.apache.chemistry.opencmis.commons.server.CmisService;
|
import org.apache.chemistry.opencmis.commons.impl.dataobjects.PropertyStringImpl;
|
||||||
import org.apache.chemistry.opencmis.commons.spi.Holder;
|
import org.apache.chemistry.opencmis.commons.impl.server.AbstractServiceFactory;
|
||||||
import org.junit.After;
|
import org.apache.chemistry.opencmis.commons.server.CallContext;
|
||||||
import org.junit.Before;
|
import org.apache.chemistry.opencmis.commons.server.CmisService;
|
||||||
import org.junit.Test;
|
import org.apache.chemistry.opencmis.commons.spi.Holder;
|
||||||
import org.springframework.context.ApplicationContext;
|
import org.apache.commons.logging.Log;
|
||||||
|
import org.apache.commons.logging.LogFactory;
|
||||||
|
import org.junit.After;
|
||||||
|
import org.junit.Before;
|
||||||
|
import org.junit.Test;
|
||||||
|
import org.springframework.context.ApplicationContext;
|
||||||
import org.springframework.extensions.webscripts.GUID;
|
import org.springframework.extensions.webscripts.GUID;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -164,7 +170,9 @@ import org.springframework.extensions.webscripts.GUID;
|
|||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
public class CMISTest
|
public class CMISTest
|
||||||
{
|
{
|
||||||
|
private static Log logger = LogFactory.getLog(CMISTest.class);
|
||||||
|
|
||||||
private static final QName TEST_START_TASK = QName.createQName("http://www.alfresco.org/model/workflow/test/1.0", "startTaskVarScriptAssign");
|
private static final QName TEST_START_TASK = QName.createQName("http://www.alfresco.org/model/workflow/test/1.0", "startTaskVarScriptAssign");
|
||||||
private static final QName TEST_WORKFLOW_TASK = QName.createQName("http://www.alfresco.org/model/workflow/test/1.0", "assignVarTask");
|
private static final QName TEST_WORKFLOW_TASK = QName.createQName("http://www.alfresco.org/model/workflow/test/1.0", "assignVarTask");
|
||||||
|
|
||||||
@@ -196,6 +204,7 @@ public class CMISTest
|
|||||||
private TenantService tenantService;
|
private TenantService tenantService;
|
||||||
private SearchService searchService;
|
private SearchService searchService;
|
||||||
private java.util.Properties globalProperties;
|
private java.util.Properties globalProperties;
|
||||||
|
private AuditComponentImpl auditComponent;
|
||||||
|
|
||||||
private AlfrescoCmisServiceFactory factory;
|
private AlfrescoCmisServiceFactory factory;
|
||||||
|
|
||||||
@@ -374,7 +383,8 @@ public class CMISTest
|
|||||||
this.tenantAdminService = (TenantAdminService) ctx.getBean("tenantAdminService");
|
this.tenantAdminService = (TenantAdminService) ctx.getBean("tenantAdminService");
|
||||||
this.tenantService = (TenantService) ctx.getBean("tenantService");
|
this.tenantService = (TenantService) ctx.getBean("tenantService");
|
||||||
this.searchService = (SearchService) ctx.getBean("SearchService");
|
this.searchService = (SearchService) ctx.getBean("SearchService");
|
||||||
|
this.auditComponent = (AuditComponentImpl) ctx.getBean("auditComponent");
|
||||||
|
|
||||||
this.globalProperties = (java.util.Properties) ctx.getBean("global-properties");
|
this.globalProperties = (java.util.Properties) ctx.getBean("global-properties");
|
||||||
this.globalProperties.setProperty(VersionableAspectTest.AUTO_VERSION_PROPS_KEY, "true");
|
this.globalProperties.setProperty(VersionableAspectTest.AUTO_VERSION_PROPS_KEY, "true");
|
||||||
}
|
}
|
||||||
@@ -2649,7 +2659,7 @@ public class CMISTest
|
|||||||
|
|
||||||
Holder<String> changeLogToken = new Holder<String>();
|
Holder<String> changeLogToken = new Holder<String>();
|
||||||
changeLogToken.setValue(actualToken);
|
changeLogToken.setValue(actualToken);
|
||||||
ObjectList changeLog = CMISTest.this.cmisConnector.getContentChanges(changeLogToken, new BigInteger("0"));
|
ObjectList changeLog = CMISTest.this.cmisConnector.getContentChanges(changeLogToken, new BigInteger("10"));
|
||||||
List<ObjectData> events = changeLog.getObjects();
|
List<ObjectData> events = changeLog.getObjects();
|
||||||
int count = events.size();
|
int count = events.size();
|
||||||
// it should be 3 entries: 1 for previous folder create, 1 new CREATE (for document create)
|
// it should be 3 entries: 1 for previous folder create, 1 new CREATE (for document create)
|
||||||
@@ -2677,7 +2687,7 @@ public class CMISTest
|
|||||||
|
|
||||||
changeLogToken = new Holder<String>();
|
changeLogToken = new Holder<String>();
|
||||||
changeLogToken.setValue(actualToken2);
|
changeLogToken.setValue(actualToken2);
|
||||||
changeLog = CMISTest.this.cmisConnector.getContentChanges(changeLogToken, new BigInteger("0"));
|
changeLog = CMISTest.this.cmisConnector.getContentChanges(changeLogToken, new BigInteger("10"));
|
||||||
events = changeLog.getObjects();
|
events = changeLog.getObjects();
|
||||||
count = events.size();
|
count = events.size();
|
||||||
assertEquals(2, count);
|
assertEquals(2, count);
|
||||||
@@ -2698,7 +2708,7 @@ public class CMISTest
|
|||||||
|
|
||||||
changeLogToken = new Holder<String>();
|
changeLogToken = new Holder<String>();
|
||||||
changeLogToken.setValue(actualToken3);
|
changeLogToken.setValue(actualToken3);
|
||||||
changeLog = CMISTest.this.cmisConnector.getContentChanges(changeLogToken, new BigInteger("0"));
|
changeLog = CMISTest.this.cmisConnector.getContentChanges(changeLogToken, new BigInteger("10"));
|
||||||
events = changeLog.getObjects();
|
events = changeLog.getObjects();
|
||||||
count = events.size();
|
count = events.size();
|
||||||
assertEquals(2, count);
|
assertEquals(2, count);
|
||||||
@@ -3578,5 +3588,127 @@ public class CMISTest
|
|||||||
auditSubsystem.destroy();
|
auditSubsystem.destroy();
|
||||||
AuthenticationUtil.popAuthentication();
|
AuthenticationUtil.popAuthentication();
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testMNT16375() throws Exception
|
||||||
|
{
|
||||||
|
setupAudit();
|
||||||
|
|
||||||
|
AuthenticationUtil.pushAuthentication();
|
||||||
|
AuthenticationUtil.setFullyAuthenticatedUser(AuthenticationUtil.getAdminUserName());
|
||||||
|
|
||||||
|
withCmisService(new CmisServiceCallback<Void>()
|
||||||
|
{
|
||||||
|
@Override
|
||||||
|
public Void execute(CmisService cmisService)
|
||||||
|
{
|
||||||
|
long start = System.currentTimeMillis();
|
||||||
|
|
||||||
|
List<RepositoryInfo> repositories = cmisService.getRepositoryInfos(null);
|
||||||
|
|
||||||
|
long end = System.currentTimeMillis();
|
||||||
|
|
||||||
|
logger.info("time = " + (end - start) + "ms");
|
||||||
|
|
||||||
|
assertNotNull(repositories);
|
||||||
|
assertTrue(repositories.size() > 0);
|
||||||
|
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}, CmisVersion.CMIS_1_1);
|
||||||
|
}
|
||||||
|
|
||||||
|
//@Test
|
||||||
|
public void populate() throws Exception
|
||||||
|
{
|
||||||
|
setupAudit();
|
||||||
|
|
||||||
|
final NodeRef companyHomeNodeRef = repositoryHelper.getCompanyHome();
|
||||||
|
final int batchSize = 100;
|
||||||
|
final int totalWork = 500000;
|
||||||
|
|
||||||
|
BatchProcessor.BatchProcessWorker<String> worker = new BatchProcessor.BatchProcessWorker<String>()
|
||||||
|
{
|
||||||
|
public String getIdentifier(String folder)
|
||||||
|
{
|
||||||
|
return folder;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void beforeProcess() throws Throwable
|
||||||
|
{
|
||||||
|
AuthenticationUtil.pushAuthentication();
|
||||||
|
AuthenticationUtil.setFullyAuthenticatedUser(AuthenticationUtil.getAdminUserName());
|
||||||
|
}
|
||||||
|
|
||||||
|
public void afterProcess() throws Throwable
|
||||||
|
{
|
||||||
|
AuthenticationUtil.popAuthentication();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void process(final String guid) throws Throwable
|
||||||
|
{
|
||||||
|
Map<String, Serializable> auditData = new HashMap<>();
|
||||||
|
HashMap<String, Serializable> data = new HashMap<>();
|
||||||
|
data.put("nodeRef", "workspace://SpacesStore/" + guid);
|
||||||
|
data.put("objectId", guid);
|
||||||
|
auditData.put("/CMISChangeLog/CREATED/result/value", data);
|
||||||
|
auditDAO.createAuditEntry(2l, System.currentTimeMillis(), "admin", auditData);
|
||||||
|
|
||||||
|
// perform CREATED, UPDATED, SECURITY, DELETED CMIS change type actions
|
||||||
|
// FileInfo folderInfo = fileFolderService.create(companyHomeNodeRef, folder, ContentModel.TYPE_FOLDER);
|
||||||
|
// nodeService.setProperty(folderInfo.getNodeRef(), ContentModel.PROP_NAME, folder);
|
||||||
|
// assertNotNull(folderInfo);
|
||||||
|
//
|
||||||
|
// String content = GUID.generate();
|
||||||
|
// FileInfo document = fileFolderService.create(folderInfo.getNodeRef(), content, ContentModel.TYPE_CONTENT);
|
||||||
|
// assertNotNull(document);
|
||||||
|
// nodeService.setProperty(document.getNodeRef(), ContentModel.PROP_NAME, content);
|
||||||
|
//
|
||||||
|
// permissionService.setPermission(document.getNodeRef(), "SomeAuthority", PermissionService.EXECUTE_CONTENT, true);
|
||||||
|
//
|
||||||
|
// fileFolderService.delete(document.getNodeRef());
|
||||||
|
// fileFolderService.delete(folderInfo.getNodeRef());
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
BatchProcessWorkProvider<String> provider = new BatchProcessWorkProvider<String>()
|
||||||
|
{
|
||||||
|
private int counter = 0;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getTotalEstimatedWorkSize()
|
||||||
|
{
|
||||||
|
return totalWork;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Collection<String> getNextWork()
|
||||||
|
{
|
||||||
|
if(counter < totalWork)
|
||||||
|
{
|
||||||
|
counter += batchSize;
|
||||||
|
List<String> guids = new ArrayList<>(batchSize);
|
||||||
|
for(int i = 0; i < batchSize; i++)
|
||||||
|
{
|
||||||
|
guids.add(GUID.generate());
|
||||||
|
}
|
||||||
|
|
||||||
|
return guids;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
return Collections.emptyList();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
new BatchProcessor<String>(
|
||||||
|
"CMISTest.createAuditEntries",
|
||||||
|
transactionService.getRetryingTransactionHelper(),
|
||||||
|
provider,
|
||||||
|
4, batchSize,
|
||||||
|
ctx,
|
||||||
|
logger, 100).process(worker, true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -564,13 +564,13 @@ public class AuditDAOTest extends TestCase
|
|||||||
createItem(info1, 14);
|
createItem(info1, 14);
|
||||||
|
|
||||||
|
|
||||||
auditDAO.findAuditEntries(preDeleteCallback, new AuditQueryParameters(), -1);
|
auditDAO.findAuditEntries(preDeleteCallback, new AuditQueryParameters(), Integer.MAX_VALUE);
|
||||||
assertEquals(5, preDeleteCallback.numEntries(app1));
|
assertEquals(5, preDeleteCallback.numEntries(app1));
|
||||||
assertEquals(2, preDeleteCallback.numEntries(app2));
|
assertEquals(2, preDeleteCallback.numEntries(app2));
|
||||||
|
|
||||||
auditDAO.deleteAuditEntries(app1Id, t1, t2);
|
auditDAO.deleteAuditEntries(app1Id, t1, t2);
|
||||||
|
|
||||||
auditDAO.findAuditEntries(resultsCallback, new AuditQueryParameters(), -1);
|
auditDAO.findAuditEntries(resultsCallback, new AuditQueryParameters(), Integer.MAX_VALUE);
|
||||||
assertEquals("Two entries should have been deleted from app1", 3, resultsCallback.numEntries(app1));
|
assertEquals("Two entries should have been deleted from app1", 3, resultsCallback.numEntries(app1));
|
||||||
assertEquals("No entries should have been deleted from app2", 2, resultsCallback.numEntries(app2));
|
assertEquals("No entries should have been deleted from app2", 2, resultsCallback.numEntries(app2));
|
||||||
return null;
|
return null;
|
||||||
|
Reference in New Issue
Block a user