Hi guys, Just wanted to know if the issue in below thread has ever been fixed.
http://web.archiveorange.com/archive/v/uRmkWnxszXP6g7Xuw33H To shortly describe the use case: http://cocoon.apache.org/2.1/userdocs/ziparchive-serializer.html The zipserializer only allows either: - You specify a @src pointing to some cocoon pipeline using cocoon:// (Ideally it would also support the servlet: protocol as now I have to provide a façade in the calling cocoon block) - You specify inline content and the @serializer In a ideal world you should be able to use @src in combination with the @serializer because now I have to first include the content from a pipeline by using <cinclude> before calling <map:serialize type="zip"/> I actually created some nice generic functionality to work around some issues: ************************ FLOWSCRIPT *************************************** function downloadImdsZip() { var entries = []; new Collection(cocoon.request.getParameterValues("id")).forEach(function(id){ var entry = {"name": id + ".xml", "source": "cocoon://chemicalcontent/imds/" + id + ".xml", "serializer": "upload"}; print('Adding entry [name=' + entry.name + ', source=' + entry.source + '] to ZIP archive.'); entries.push(entry); }); var response = cocoon.response; response.setHeader( "Content-Disposition", "attachment; filename=imds.zip" ); cocoon.sendPage("zipArchive", {"entries": entries}); } ************************************************************************* <?xml version="1.0" encoding="UTF-8"?> <jx:template xmlns:jx="http://apache.org/cocoon/templates/jx/1.0" xmlns:zip="http://apache.org/cocoon/zip-archive/1.0" xmlns:cinclude="http://apache.org/cocoon/include/1.0"> <!-- This jx expects an array called 'entries' containing objects with following properties: * name (mandatory) * source (mandatory) * serializer (optional) * * If both source and serializer are provided, we assume that we want to include the content inline so we can specify the serializer --> <zip:archive> <jx:forEach var="entry" items="${entries}"> <zip:entry name="${entry.name}"> <jx:choose> <jx:when test="${entry.serializer != null}"> <jx:attribute name="serializer" value="${entry.serializer}"/> <cinclude:include src="${entry.source}"/> </jx:when> <jx:otherwise> <jx:attribute name="src" value="${entry.source}"/> </jx:otherwise> </jx:choose> </zip:entry> </jx:forEach> </zip:archive> </jx:template> ************************************************************************* <map:match pattern="zipArchive"> <map:generate src="jx/zipArchive.jx" type="jx"/> <map:transform type="cinclude"/> <map:serialize type="zip"/> </map:match> ************************************************************************* But I now am facing the same nullpointer exception as in the link above. Anyone some usefull input on this matter? Cheers, Robby Pelssers