Export to XML using standard JCR mechanism.
[gpl/argeo-suite.git] / knowledge / org.argeo.support.odk / src / org / argeo / support / odk / servlet / OdkManifestServlet.java
index 88b9c69efdb41f74e0fda931fc4fd13e7ad52be4..091f4dabfc7340cda6b95ad4092a7918572890ec 100644 (file)
@@ -60,8 +60,20 @@ public class OdkManifestServlet extends HttpServlet {
                                                if (file.isNodeType(NodeType.NT_ADDRESS)) {
                                                        Node target = file.getProperty(Property.JCR_ID).getNode();
                                                        writer.append("<filename>");
-                                                       writer.append(target.getPath().substring(1) + ".xml");
+                                                       // Work around bug in ODK Collect not supporting paths
+                                                       // writer.append(target.getPath().substring(1) + ".xml");
+                                                       writer.append(target.getIdentifier() + ".xml");
                                                        writer.append("</filename>");
+
+//                                                     StringBuilder xml = new StringBuilder();
+//                                                     xml.append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>");
+//                                                     JcrUtils.toSimpleXml(target, xml);
+//                                                     String fileCsum = DigestUtils.digest(DigestUtils.MD5,
+//                                                                     xml.toString().getBytes(StandardCharsets.UTF_8));
+//                                                     writer.append("<hash>");
+//                                                     writer.append("md5sum:" + fileCsum);
+//                                                     writer.append("</hash>");
+
                                                        try (ByteArrayOutputStream out = new ByteArrayOutputStream()) {
                                                                session.exportDocumentView(target.getPath(), out, true, false);
                                                                String fileCsum = DigestUtils.digest(DigestUtils.MD5, out.toByteArray());
@@ -82,6 +94,14 @@ public class OdkManifestServlet extends HttpServlet {
                        } else if (node.isNodeType(OrxManifestName.mediaFile.get())) {
                                if (node.isNodeType(NodeType.NT_ADDRESS)) {
                                        Node target = node.getProperty(Property.JCR_ID).getNode();
+
+//                                     StringBuilder xml = new StringBuilder();
+//                                     xml.append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>");
+//                                     JcrUtils.toSimpleXml(target, xml);
+//                                     System.out.println(xml);
+//                                     resp.getOutputStream().write(xml.toString().getBytes(StandardCharsets.UTF_8));
+//                                     resp.flushBuffer();
+
                                        try (ByteArrayOutputStream out = new ByteArrayOutputStream()) {
                                                session.exportDocumentView(target.getPath(), out, true, false);
                                                System.out.println(new String(out.toByteArray(), StandardCharsets.UTF_8));