chemistry-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Florian Müller (JIRA) <j...@apache.org>
Subject [jira] [Resolved] (CMIS-639) AtomPub: Query result entries are missing the <atom:content> element
Date Mon, 18 Mar 2013 16:22:15 GMT

     [ https://issues.apache.org/jira/browse/CMIS-639?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

Florian Müller resolved CMIS-639.
---------------------------------

       Resolution: Fixed
    Fix Version/s: OpenCMIS 0.9.0

Added empty atom:content tag to all Atom entries that don't have content (folders, policies,
items, relationships, type definitions, query results, etc.) for Atom spec compliance.
                
> AtomPub: Query result entries are missing the <atom:content> element
> --------------------------------------------------------------------
>
>                 Key: CMIS-639
>                 URL: https://issues.apache.org/jira/browse/CMIS-639
>             Project: Chemistry
>          Issue Type: Bug
>          Components: opencmis-server
>    Affects Versions: OpenCMIS 0.8.0
>            Reporter: Stefan Kopf
>            Assignee: Florian Müller
>             Fix For: OpenCMIS 0.9.0
>
>
> Acording to CMIS spec, the <atom:content> element is required in every <atom:entry>
element. See Sections 3.5.2 and 3.4.1.3.6.
> The <atom:content> element is present in every <atom:entry> returned for
getChildren in the NavigationService or for getObject in the ObjectService.
> For some reason, the method writeQueryResultEntry in the ...atompub.DiscoveryService
does not make use of AtomPubUtils.writeObjectEntry but assembles the result itself. But in
this process, the <atom:content> element is missing.
> This problem can be fixed as follows in org.apache.chemistry.opencmis.server.impl.atompub.DiscoveryService:
> {code:java}
>     private static void writeQueryResultEntry(AtomEntry entry, ObjectData result, String
id, GregorianCalendar now, UrlBuilder baseUrl)
>             throws Exception {
>         CmisObjectType resultJaxb = convert(result);
>         if (resultJaxb == null) {
>             return;
>         }
>         // start
>         entry.startEntry(false);
>         // write Atom base tags
>         entry.writeAuthor("");
>         entry.writeId(entry.generateAtomId(id));
>         entry.writePublished(now);
>         entry.writeTitle("Query Result " + id);
>         entry.writeUpdated(now);
>         
>         // BUGFIX start
>         String fileName = getStringProperty(result, PropertyIds.CONTENT_STREAM_FILE_NAME);
>         String mimeType = getStringProperty(result, PropertyIds.CONTENT_STREAM_MIME_TYPE);
>         String streamId = getIdProperty(result, PropertyIds.CONTENT_STREAM_ID);
>         BigInteger length = getIntegerProperty(result, PropertyIds.CONTENT_STREAM_LENGTH);
>         boolean hasContent = fileName != null || mimeType != null || streamId != null
|| length != null;
>         String contentSrc = null;
>         if (hasContent) {
>             UrlBuilder contentSrcBuilder = compileUrlBuilder(baseUrl, AtomPubUtils.RESOURCE_CONTENT,
result.getId());
>             if (fileName != null) {
>                 contentSrcBuilder.addPathSegment(fileName);
>             }
>             contentSrc = contentSrcBuilder.toString();
>         }
>         entry.writeContent(contentSrc, mimeType);
>         // BUGFIX end
>         // write query result object
>         JaxBHelper.marshal(JaxBHelper.CMIS_EXTRA_OBJECT_FACTORY.createObject(resultJaxb),
entry.getWriter(), true);
>         // we are done
>         entry.endEntry();
>     }
> {code}

--
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

Mime
View raw message