[ 
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

Reply via email to