Remove old ODK approach
authorMathieu Baudier <mbaudier@argeo.org>
Fri, 25 Feb 2022 05:13:04 +0000 (06:13 +0100)
committerMathieu Baudier <mbaudier@argeo.org>
Fri, 25 Feb 2022 05:13:04 +0000 (06:13 +0100)
org.argeo.app.core/src/org/argeo/app/odk/BundleResourceOdkForm.java [deleted file]
org.argeo.app.core/src/org/argeo/app/odk/OdkForm.java [deleted file]
org.argeo.app.servlet.odk/src/org/argeo/app/servlet/odk/OdkFormListServlet.java
org.argeo.app.servlet.odk/src/org/argeo/app/servlet/odk/OdkFormServlet.java
org.argeo.app.servlet.odk/src/org/argeo/app/servlet/odk/OdkManifestServlet.java
org.argeo.app.servlet.odk/src/org/argeo/app/servlet/odk/OdkSubmissionServlet.java

diff --git a/org.argeo.app.core/src/org/argeo/app/odk/BundleResourceOdkForm.java b/org.argeo.app.core/src/org/argeo/app/odk/BundleResourceOdkForm.java
deleted file mode 100644 (file)
index 8195dd4..0000000
+++ /dev/null
@@ -1,102 +0,0 @@
-package org.argeo.app.odk;
-
-import java.io.ByteArrayInputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.net.URL;
-import java.util.Map;
-
-import org.apache.commons.io.FilenameUtils;
-import org.apache.commons.io.IOUtils;
-import org.argeo.util.DigestUtils;
-import org.osgi.framework.Bundle;
-import org.osgi.framework.BundleContext;
-
-/** {@link OdkForm} implementation based on an OSGi {@link Bundle} resource. */
-@Deprecated
-public class BundleResourceOdkForm implements OdkForm {
-       private String formId;
-       private String name;
-       private String version;
-       private String description;
-       private String hash;
-       private String fileName;
-
-       private byte[] data;
-
-       public void init(Map<String, String> properties, BundleContext bundleContext) throws IOException {
-               String location = properties.get("location");
-               fileName = FilenameUtils.getName(location);
-               URL url = bundleContext.getBundle().getResource(location);
-               data = IOUtils.toByteArray(url.openStream());
-               hash = "md5:" + DigestUtils.digest(DigestUtils.MD5, data);
-
-               // TODO get it from the XML
-               formId = properties.get("formId");
-               version = properties.get("version");
-
-               name = properties.get("name");
-               description = properties.get("description");
-       }
-
-       @Override
-       public String getFormId() {
-               return formId;
-       }
-
-       @Override
-       public String getName() {
-               return name;
-       }
-
-       @Override
-       public String getVersion() {
-               return version;
-       }
-
-       @Override
-       public String getDescription() {
-               return description;
-       }
-
-       @Override
-       public String getHash(String hashType) {
-               return hash;
-       }
-
-       @Override
-       public String getFileName() {
-               return fileName;
-       }
-
-       @Override
-       public InputStream openStream() {
-               return new ByteArrayInputStream(data);
-       }
-
-       @Override
-       public int hashCode() {
-               assert formId != null;
-               assert version != null;
-               return formId.hashCode() + version.hashCode();
-       }
-
-       @Override
-       public boolean equals(Object obj) {
-               assert formId != null;
-               assert version != null;
-               if (!(obj instanceof OdkForm))
-                       return false;
-               OdkForm other = (OdkForm) obj;
-               assert other.getFormId() != null;
-               assert other.getVersion() != null;
-
-               return other.getFormId().equals(formId) && other.getVersion().equals(version);
-       }
-
-       @Override
-       public String toString() {
-               return "ODK Form " + formId + ", v" + version;
-       }
-
-}
diff --git a/org.argeo.app.core/src/org/argeo/app/odk/OdkForm.java b/org.argeo.app.core/src/org/argeo/app/odk/OdkForm.java
deleted file mode 100644 (file)
index 0cee0f8..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-package org.argeo.app.odk;
-
-import java.io.InputStream;
-
-/** Abstraction of a single ODK form. */
-@Deprecated
-public interface OdkForm {
-       String getFormId();
-
-       String getName();
-
-       String getVersion();
-
-       String getDescription();
-
-       String getHash(String hashType);
-
-       String getFileName();
-
-       InputStream openStream();
-}
index 4732e705e48e69bd7520ca46d837a8d8004e2604..21b342112df1423a5b1524543a55082862990d35 100644 (file)
@@ -31,11 +31,6 @@ public class OdkFormListServlet extends HttpServlet {
        private static final long serialVersionUID = 2706191315048423321L;
        private final static CmsLog log = CmsLog.getLog(OdkFormListServlet.class);
 
-//     private Set<OdkForm> odkForms = Collections.synchronizedSet(new HashSet<>());
-
-//     private DateTimeFormatter versionFormatter = DateTimeFormatter.ofPattern("YYYY-MM-dd-HHmm")
-//                     .withZone(ZoneId.from(ZoneOffset.UTC));
-
        private Repository repository;
 
        @Override
@@ -52,18 +47,13 @@ public class OdkFormListServlet extends HttpServlet {
 
                Session session = RemoteAuthUtils.doAs(() -> Jcr.login(repository, CmsConstants.SYS_WORKSPACE),
                                new ServletHttpRequest(req));
-//             session = NodeUtils.openDataAdminSession(repository, NodeConstants.SYS_WORKSPACE);
                Writer writer = resp.getWriter();
                writer.append("<?xml version='1.0' encoding='UTF-8' ?>");
                writer.append("<xforms xmlns=\"http://openrosa.org/xforms/xformsList\">");
-//             boolean oldApproach = false;
-//             if (!oldApproach) {
                try {
 
                        Query query;
                        if (pathInfo == null) {
-//                             query = session.getWorkspace().getQueryManager()
-//                                             .createQuery("SELECT * FROM [nt:unstructured]", Query.JCR_SQL2);
                                query = session.getWorkspace().getQueryManager()
                                                .createQuery("SELECT * FROM [" + OrxListName.xform.get() + "]", Query.JCR_SQL2);
                        } else {
@@ -76,12 +66,6 @@ public class OdkFormListServlet extends HttpServlet {
                        QueryResult queryResult = query.execute();
 
                        NodeIterator nit = queryResult.getNodes();
-//                             log.debug(session.getUserID());
-//                             log.debug(session.getWorkspace().getName());
-//                             NodeIterator nit = session.getRootNode().getNodes();
-//                             while (nit.hasNext()) {
-//                                     log.debug(nit.nextNode());
-//                             }
                        while (nit.hasNext()) {
                                StringBuilder sb = new StringBuilder();
                                Node node = nit.nextNode();
@@ -127,37 +111,9 @@ public class OdkFormListServlet extends HttpServlet {
                } finally {
                        Jcr.logout(session);
                }
-
-//             } else {
-//                     for (OdkForm form : odkForms) {
-//                             StringBuilder sb = new StringBuilder();
-//                             sb.append("<xform>");
-//                             sb.append("<formID>" + form.getFormId() + "</formID>");
-//                             sb.append("<name>" + form.getName() + "</name>");
-//                             sb.append("<version>" + form.getVersion() + "</version>");
-//                             sb.append("<hash>" + form.getHash(null) + "</hash>");
-//                             sb.append("<descriptionText>" + form.getDescription() + "</descriptionText>");
-//                             sb.append("<downloadUrl>" + protocol + "://" + serverName
-//                                             + (serverPort == 80 || serverPort == 443 ? "" : ":" + serverPort) + "/api/odk/form/"
-//                                             + form.getFileName() + "</downloadUrl>");
-//                             sb.append("</xform>");
-//                             String str = sb.toString();
-//                             if (log.isDebugEnabled())
-//                                     log.debug(str);
-//                             writer.append(str);
-//                     }
-//             }
                writer.append("</xforms>");
        }
 
-//     public void addForm(OdkForm odkForm) {
-//             odkForms.add(odkForm);
-//     }
-//
-//     public void removeForm(OdkForm odkForm) {
-//             odkForms.remove(odkForm);
-//     }
-
        public void setRepository(Repository repository) {
                this.repository = repository;
        }
index d236bc5c726167352edc305449ef09af582f75c7..0ccd11986ee51ea116baee06d998f9f898c3e7eb 100644 (file)
@@ -22,7 +22,6 @@ public class OdkFormServlet extends HttpServlet {
        private static final long serialVersionUID = 7838305967987687370L;
 
        private Repository repository;
-//     private Map<String, OdkForm> odkForms = Collections.synchronizedMap(new HashMap<>());
 
        @Override
        protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
@@ -34,25 +33,9 @@ public class OdkFormServlet extends HttpServlet {
                if (pathInfo.startsWith("//"))
                        pathInfo = pathInfo.substring(1);
 
-//             boolean oldApproach = false;
                try {
-//                     if (!oldApproach) {
                        String path = URLDecoder.decode(pathInfo, StandardCharsets.UTF_8);
                        session.exportDocumentView(path + "/" + OdkNames.H_HTML, resp.getOutputStream(), true, false);
-//                     } else {
-//
-//                             String fileName = FilenameUtils.getName(pathInfo);
-//                             OdkForm form = odkForms.get(fileName);
-//                             if (form == null)
-//                                     throw new IllegalArgumentException("No form named " + fileName + " was found");
-//
-//                             byte[] buffer = new byte[1024];
-//                             try (InputStream in = form.openStream(); OutputStream out = resp.getOutputStream();) {
-//                                     int bytesRead;
-//                                     while ((bytesRead = in.read(buffer)) != -1)
-//                                             out.write(buffer, 0, bytesRead);
-//                             }
-//                     }
                } catch (RepositoryException e) {
                        e.printStackTrace();
                        // TODO error message
@@ -62,14 +45,6 @@ public class OdkFormServlet extends HttpServlet {
                }
        }
 
-//     public void addForm(OdkForm odkForm) {
-//             odkForms.put(odkForm.getFileName(), odkForm);
-//     }
-//
-//     public void removeForm(OdkForm odkForm) {
-//             odkForms.remove(odkForm.getFileName());
-//     }
-
        public void setRepository(Repository repository) {
                this.repository = repository;
        }
index 9d1812cabfb6b8f13cdf316206b8c29ec45542bd..f296170778a381e05cfbf61a52751ee8bb12839a 100644 (file)
@@ -91,21 +91,13 @@ public class OdkManifestServlet extends HttpServlet {
 
                                                        MessageDigest messageDigest = MessageDigest.getInstance(DigestUtils.MD5);
                                                        // TODO cache a temp file ?
-                                                       try (DigestOutputStream out = new DigestOutputStream(new NullOutputStream(),
+                                                       try (DigestOutputStream out = new DigestOutputStream(NullOutputStream.NULL_OUTPUT_STREAM,
                                                                        messageDigest)) {
                                                                writeMediaFile(out, target, mimeType, charset);
                                                                writer.append("<hash>");
                                                                writer.append("md5sum:" + DigestUtils.toHexString(out.getMessageDigest().digest()));
                                                                writer.append("</hash>");
                                                        }
-
-//                                                     try (ByteArrayOutputStream out = new ByteArrayOutputStream()) {
-//                                                             session.exportDocumentView(target.getPath(), out, true, false);
-//                                                             String fileCsum = DigestUtils.digest(DigestUtils.MD5, out.toByteArray());
-//                                                             writer.append("<hash>");
-//                                                             writer.append("md5sum:" + fileCsum);
-//                                                             writer.append("</hash>");
-//                                                     }
                                                        writer.append("<downloadUrl>" + protocol + "://" + serverName
                                                                        + (serverPort == 80 || serverPort == 443 ? "" : ":" + serverPort)
                                                                        + "/api/odk/formManifest" + file.getPath() + "</downloadUrl>");
@@ -123,11 +115,6 @@ public class OdkManifestServlet extends HttpServlet {
                                        Node target = node.getProperty(Property.JCR_ID).getNode();
 
                                        writeMediaFile(resp.getOutputStream(), target, mimeType, charset);
-//                                     try (ByteArrayOutputStream out = new ByteArrayOutputStream()) {
-//                                             session.exportDocumentView(target.getPath(), out, true, false);
-//                                             System.out.println(new String(out.toByteArray(), StandardCharsets.UTF_8));
-//                                             resp.getOutputStream().write(out.toByteArray());
-//                                     }
                                } else {
                                        throw new IllegalArgumentException("Unsupported node " + node);
                                }
index 5efbd1b689fb4b518a65f0e0c5d429a8a9a5124a..25d00f45f4176bc0902706f9d75a3a5b148a9dd9 100644 (file)
@@ -58,12 +58,8 @@ public class OdkSubmissionServlet extends HttpServlet {
                Session session = RemoteAuthUtils.doAs(() -> Jcr.login(repository, null), request);
 
                try {
-//                     Node submissions = JcrUtils.mkdirs(session,
-//                                     "/" + EntityType.form.get() + "/" + EntityNames.SUBMISSIONS_BASE);
                        CmsSession cmsSession = RemoteAuthUtils.getCmsSession(request);
 
-//                     ClassLoader currentContextCl = Thread.currentThread().getContextClassLoader();
-//                     Thread.currentThread().setContextClassLoader(CmsJcrUtils.class.getClassLoader());
                        Session adminSession = null;
                        try {
                                // TODO centralise at a deeper level
@@ -71,7 +67,6 @@ public class OdkSubmissionServlet extends HttpServlet {
                                SuiteUtils.getOrCreateCmsSessionNode(adminSession, cmsSession);
                        } finally {
                                Jcr.logout(adminSession);
-//                             Thread.currentThread().setContextClassLoader(currentContextCl);
                        }
 
                        Node cmsSessionNode = SuiteUtils.getCmsSessionNode(session, cmsSession);