[
https://issues.apache.org/jira/browse/CMIS-722?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13768455#comment-13768455
]
linzhixing commented on CMIS-722:
---------------------------------
If the next link always shows like "<atom:link rel="next"
href="http://<RepositoryPath>/changes?changeLogToken=xxxxxx"
type="application/atom+xml;type=feed"/>",
In
org.apache.chemistry.opencmis.client.bindings.spi.atompub.DiscoveryServiceImpl,
The present:
Line:84
for (AtomElement element : feed.getElements()) {
if (element.getObject() instanceof AtomLink) {
if (isNextLink(element)) {
result.setHasMoreItems(Boolean.TRUE);
}
}
}
So, simply modify it to something like:
for (AtomElement element : feed.getElements()) {
if (element.getObject() instanceof AtomLink) {
if (isNextLink(element)) {
Map<String,String> map = extractUrlParameters(element.getHref());
changeLogToken.setValue(map.get("changeLogToken"));
//Holder<String>changeLogToken is renewed
result.setHasMoreItems(Boolean.TRUE);
}
}
}
if(!result.hasMoreItems){
//No next link means the next latestChangeLogToken is RepositoryInfo's
token.
changeLogToken.setValue(getRepoitoryInfo().getLatestChangeLogToken());
}
And the Client API could get a renewed Holder<String>changeToken argument,
though I've never touched codes(especially AtomFeed) in API...
> getContentChanges doesn't renew Holder<String>changeLogToken in AtomPub Client
> ------------------------------------------------------------------------------
>
> Key: CMIS-722
> URL: https://issues.apache.org/jira/browse/CMIS-722
> Project: Chemistry
> Issue Type: Bug
> Components: opencmis-client-bindings
> Affects Versions: OpenCMIS 0.10.0
> Reporter: linzhixing
>
> org.apache.chemistry.opencmis.client.bindings.spi.atompub.DiscoveryServiceImpl#getContentChanges,
> which is called from SessionImpl(Line:326), seems not to return a new
> Holder<String>changeLogToken argument. When I execute getContentChange from
> OpenCMIS client, changeLogToken remains the same as its input value.
> I confirmed that my CMIS server updates Holder<String>changeLogToken to the
> latest token in the returned list both in debugging and Atom feed <atom:link
> rel="next">.
> To see
> org.apache.chemistry.opencmis.client.bindings.spi.webservices.DiscoveryServiceImpl#getContentChanges(Line:66),
> one can find
> setHolderValue(portChangeLokToken, changeLogToken);
> but I can't find any such code in atompub DiscoveryServiceImpl.
> So I suppose some codes should be added that sets a renewed changeLogToken
> reading from an atom feed page link.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira