mirror of
https://github.com/Alfresco/alfresco-community-repo.git
synced 2025-08-07 17:49:17 +00:00
ALF-19173 pagination in cmis change log feed broken
1. In CMISConnector#getContentChanges() was changed newChangeLogToken formation. 2. In CMISTest was added testGetContentChanges() test. git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@55173 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
@@ -3336,7 +3336,9 @@ public class CMISConnector implements ApplicationContextAware, ApplicationListen
|
|||||||
{
|
{
|
||||||
if (result.getObjects().size() >= maxResults)
|
if (result.getObjects().size() >= maxResults)
|
||||||
{
|
{
|
||||||
newChangeLogToken = result.getObjects().remove(result.getObjects().size() - 1).getId();
|
StringBuilder clt = new StringBuilder();
|
||||||
|
newChangeLogToken = (from == null ? clt.append(maxItems.intValue() + 1).toString() : clt.append(from.longValue() + maxItems.intValue()).toString());
|
||||||
|
result.getObjects().remove(result.getObjects().size() - 1).getId();
|
||||||
result.setHasMoreItems(true);
|
result.setHasMoreItems(true);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
@@ -45,6 +45,7 @@ import org.apache.chemistry.opencmis.commons.data.CmisExtensionElement;
|
|||||||
import org.apache.chemistry.opencmis.commons.data.ObjectData;
|
import org.apache.chemistry.opencmis.commons.data.ObjectData;
|
||||||
import org.apache.chemistry.opencmis.commons.data.ObjectInFolderData;
|
import org.apache.chemistry.opencmis.commons.data.ObjectInFolderData;
|
||||||
import org.apache.chemistry.opencmis.commons.data.ObjectInFolderList;
|
import org.apache.chemistry.opencmis.commons.data.ObjectInFolderList;
|
||||||
|
import org.apache.chemistry.opencmis.commons.data.ObjectList;
|
||||||
import org.apache.chemistry.opencmis.commons.data.Properties;
|
import org.apache.chemistry.opencmis.commons.data.Properties;
|
||||||
import org.apache.chemistry.opencmis.commons.data.PropertyData;
|
import org.apache.chemistry.opencmis.commons.data.PropertyData;
|
||||||
import org.apache.chemistry.opencmis.commons.data.RepositoryInfo;
|
import org.apache.chemistry.opencmis.commons.data.RepositoryInfo;
|
||||||
@@ -93,6 +94,8 @@ public class CMISTest
|
|||||||
private ActionService actionService;
|
private ActionService actionService;
|
||||||
private RuleService ruleService;
|
private RuleService ruleService;
|
||||||
|
|
||||||
|
private CMISConnector cmisConnector;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Test class to provide the service factory
|
* Test class to provide the service factory
|
||||||
*
|
*
|
||||||
@@ -222,6 +225,7 @@ public class CMISTest
|
|||||||
this.lockService = (LockService) ctx.getBean("lockService");
|
this.lockService = (LockService) ctx.getBean("lockService");
|
||||||
this.repositoryHelper = (Repository)ctx.getBean("repositoryHelper");
|
this.repositoryHelper = (Repository)ctx.getBean("repositoryHelper");
|
||||||
this.factory = (AlfrescoCmisServiceFactory)ctx.getBean("CMISServiceFactory");
|
this.factory = (AlfrescoCmisServiceFactory)ctx.getBean("CMISServiceFactory");
|
||||||
|
this.cmisConnector = (CMISConnector) ctx.getBean("CMISConnector");
|
||||||
this.context = new SimpleCallContext("admin", "admin");
|
this.context = new SimpleCallContext("admin", "admin");
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1124,4 +1128,19 @@ public class CMISTest
|
|||||||
AuthenticationUtil.popAuthentication();
|
AuthenticationUtil.popAuthentication();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void testGetContentChanges()
|
||||||
|
{
|
||||||
|
// create folder with file
|
||||||
|
String folderName = "testfolder" + GUID.generate();
|
||||||
|
String docName = "testdoc.txt" + GUID.generate();
|
||||||
|
createContent(folderName, docName, false);
|
||||||
|
folderName = "testfolder" + GUID.generate();
|
||||||
|
docName = "testdoc.txt" + GUID.generate();
|
||||||
|
createContent(folderName, docName, false);
|
||||||
|
Holder<String> changeLogToken = new Holder<String>();
|
||||||
|
ObjectList ol = this.cmisConnector.getContentChanges(changeLogToken, new BigInteger("2"));
|
||||||
|
assertEquals(2, ol.getNumItems());
|
||||||
|
assertEquals("3", changeLogToken.getValue());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user