Disable old odk approach
authorMathieu Baudier <mbaudier@argeo.org>
Fri, 25 Feb 2022 05:07:08 +0000 (06:07 +0100)
committerMathieu Baudier <mbaudier@argeo.org>
Fri, 25 Feb 2022 05:07:08 +0000 (06:07 +0100)
org.argeo.app.core/src/org/argeo/app/odk/BundleResourceOdkForm.java
org.argeo.app.core/src/org/argeo/app/odk/OdkForm.java
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

index 97f978b74a2519109457146eee89c396e12521e1..8195dd46645d74140cacfa79a0ccbad349e19056 100644 (file)
@@ -13,6 +13,7 @@ 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;
index ec37a6f2304af39b1e83fc84d788aeddeba64a6f..0cee0f8b32147bfc76a9799136a48c3481f10ffc 100644 (file)
@@ -3,6 +3,7 @@ package org.argeo.app.odk;
 import java.io.InputStream;
 
 /** Abstraction of a single ODK form. */
+@Deprecated
 public interface OdkForm {
        String getFormId();
 
index c88bf4ae9fc5c81545abdd1c02d90bde34517520..4732e705e48e69bd7520ca46d837a8d8004e2604 100644 (file)
@@ -2,9 +2,6 @@ package org.argeo.app.servlet.odk;
 
 import java.io.IOException;
 import java.io.Writer;
-import java.util.Collections;
-import java.util.HashSet;
-import java.util.Set;
 
 import javax.jcr.Node;
 import javax.jcr.NodeIterator;
@@ -22,7 +19,6 @@ import javax.servlet.http.HttpServletResponse;
 import org.argeo.api.cms.CmsConstants;
 import org.argeo.api.cms.CmsLog;
 import org.argeo.app.api.EntityType;
-import org.argeo.app.odk.OdkForm;
 import org.argeo.app.odk.OrxListName;
 import org.argeo.app.odk.OrxManifestName;
 import org.argeo.cms.auth.RemoteAuthUtils;
@@ -35,7 +31,7 @@ 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 Set<OdkForm> odkForms = Collections.synchronizedSet(new HashSet<>());
 
 //     private DateTimeFormatter versionFormatter = DateTimeFormatter.ofPattern("YYYY-MM-dd-HHmm")
 //                     .withZone(ZoneId.from(ZoneOffset.UTC));
@@ -60,107 +56,107 @@ public class OdkFormListServlet extends HttpServlet {
                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 {
+//             boolean oldApproach = false;
+//             if (!oldApproach) {
+               try {
 
-                               Query query;
-                               if (pathInfo == null) {
+                       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 {
-                                       query = session.getWorkspace().getQueryManager()
-                                                       .createQuery(
-                                                                       "SELECT node FROM [" + OrxListName.xform.get()
-                                                                                       + "] AS node WHERE ISDESCENDANTNODE (node, '" + pathInfo + "')",
-                                                                       Query.JCR_SQL2);
-                               }
-                               QueryResult queryResult = query.execute();
+                               query = session.getWorkspace().getQueryManager()
+                                               .createQuery("SELECT * FROM [" + OrxListName.xform.get() + "]", Query.JCR_SQL2);
+                       } else {
+                               query = session.getWorkspace().getQueryManager()
+                                               .createQuery(
+                                                               "SELECT node FROM [" + OrxListName.xform.get()
+                                                                               + "] AS node WHERE ISDESCENDANTNODE (node, '" + pathInfo + "')",
+                                                               Query.JCR_SQL2);
+                       }
+                       QueryResult queryResult = query.execute();
 
-                               NodeIterator nit = queryResult.getNodes();
+                       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();
-                                       if (node.isNodeType(OrxListName.xform.get())) {
-                                               sb.append("<xform>");
-                                               sb.append("<formID>" + node.getProperty(OrxListName.formID.get()).getString() + "</formID>");
-                                               sb.append("<name>" + Jcr.getTitle(node) + "</name>");
-                                               sb.append("<version>" + node.getProperty(OrxListName.version.get()).getString() + "</version>");
-                                               sb.append("<hash>md5:" + JcrxApi.getChecksum(node, JcrxApi.MD5) + "</hash>");
-                                               if (node.hasProperty(Property.JCR_DESCRIPTION))
-                                                       sb.append("<name>" + node.getProperty(Property.JCR_DESCRIPTION).getString() + "</name>");
-                                               sb.append("<downloadUrl>" + protocol + "://" + serverName
-                                                               + (serverPort == 80 || serverPort == 443 ? "" : ":" + serverPort) + "/api/odk/form"
-                                                               + node.getPath() + "</downloadUrl>");
-                                               if (node.hasNode(OrxManifestName.manifest.name())) {
-                                                       sb.append("<manifestUrl>" + protocol + "://" + serverName
-                                                                       + (serverPort == 80 || serverPort == 443 ? "" : ":" + serverPort)
-                                                                       + "/api/odk/formManifest" + node.getNode(OrxManifestName.manifest.name()).getPath()
-                                                                       + "</manifestUrl>");
-                                               }
-                                               sb.append("</xform>");
-                                       } else if (node.isNodeType(EntityType.formSet.get())) {
-                                               sb.append("<xforms-group>");
-                                               sb.append("<groupId>" + node.getPath() + "</groupId>");
-                                               sb.append("<name>" + node.getProperty(Property.JCR_TITLE).getString() + "</name>");
-                                               sb.append("<listUrl>" + protocol + "://" + serverName
-                                                               + (serverPort == 80 || serverPort == 443 ? "" : ":" + serverPort) + "/api/odk/formList"
-                                                               + node.getPath() + "</listUrl>");
-                                               sb.append("</xforms-group>");
-                                       }
-                                       String str = sb.toString();
-                                       if (!str.equals("")) {
-                                               if (log.isDebugEnabled())
-                                                       log.debug(str);
-                                               writer.append(str);
+                       while (nit.hasNext()) {
+                               StringBuilder sb = new StringBuilder();
+                               Node node = nit.nextNode();
+                               if (node.isNodeType(OrxListName.xform.get())) {
+                                       sb.append("<xform>");
+                                       sb.append("<formID>" + node.getProperty(OrxListName.formID.get()).getString() + "</formID>");
+                                       sb.append("<name>" + Jcr.getTitle(node) + "</name>");
+                                       sb.append("<version>" + node.getProperty(OrxListName.version.get()).getString() + "</version>");
+                                       sb.append("<hash>md5:" + JcrxApi.getChecksum(node, JcrxApi.MD5) + "</hash>");
+                                       if (node.hasProperty(Property.JCR_DESCRIPTION))
+                                               sb.append("<name>" + node.getProperty(Property.JCR_DESCRIPTION).getString() + "</name>");
+                                       sb.append("<downloadUrl>" + protocol + "://" + serverName
+                                                       + (serverPort == 80 || serverPort == 443 ? "" : ":" + serverPort) + "/api/odk/form"
+                                                       + node.getPath() + "</downloadUrl>");
+                                       if (node.hasNode(OrxManifestName.manifest.name())) {
+                                               sb.append("<manifestUrl>" + protocol + "://" + serverName
+                                                               + (serverPort == 80 || serverPort == 443 ? "" : ":" + serverPort)
+                                                               + "/api/odk/formManifest" + node.getNode(OrxManifestName.manifest.name()).getPath()
+                                                               + "</manifestUrl>");
                                        }
+                                       sb.append("</xform>");
+                               } else if (node.isNodeType(EntityType.formSet.get())) {
+                                       sb.append("<xforms-group>");
+                                       sb.append("<groupId>" + node.getPath() + "</groupId>");
+                                       sb.append("<name>" + node.getProperty(Property.JCR_TITLE).getString() + "</name>");
+                                       sb.append("<listUrl>" + protocol + "://" + serverName
+                                                       + (serverPort == 80 || serverPort == 443 ? "" : ":" + serverPort) + "/api/odk/formList"
+                                                       + node.getPath() + "</listUrl>");
+                                       sb.append("</xforms-group>");
                                }
-                       } catch (RepositoryException e) {
-                               e.printStackTrace();
-                               // TODO error message
-                               // resp.sendError(500);
-                               resp.sendError(503);
-                       } 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);
+                               if (!str.equals("")) {
+                                       if (log.isDebugEnabled())
+                                               log.debug(str);
+                                       writer.append(str);
+                               }
                        }
+               } catch (RepositoryException e) {
+                       e.printStackTrace();
+                       // TODO error message
+                       // resp.sendError(500);
+                       resp.sendError(503);
+               } finally {
+                       Jcr.logout(session);
                }
-               writer.append("</xforms>");
-       }
 
-       public void addForm(OdkForm odkForm) {
-               odkForms.add(odkForm);
+//             } 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 removeForm(OdkForm odkForm) {
-               odkForms.remove(odkForm);
-       }
+//     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 067262edc097d96e4166a43479fe41d8d8219335..d236bc5c726167352edc305449ef09af582f75c7 100644 (file)
@@ -1,13 +1,8 @@
 package org.argeo.app.servlet.odk;
 
 import java.io.IOException;
-import java.io.InputStream;
-import java.io.OutputStream;
 import java.net.URLDecoder;
 import java.nio.charset.StandardCharsets;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.Map;
 
 import javax.jcr.Repository;
 import javax.jcr.RepositoryException;
@@ -17,8 +12,6 @@ import javax.servlet.http.HttpServlet;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
-import org.apache.commons.io.FilenameUtils;
-import org.argeo.app.odk.OdkForm;
 import org.argeo.app.odk.OdkNames;
 import org.argeo.cms.auth.RemoteAuthUtils;
 import org.argeo.cms.servlet.ServletHttpRequest;
@@ -29,7 +22,7 @@ public class OdkFormServlet extends HttpServlet {
        private static final long serialVersionUID = 7838305967987687370L;
 
        private Repository repository;
-       private Map<String, OdkForm> odkForms = Collections.synchronizedMap(new HashMap<>());
+//     private Map<String, OdkForm> odkForms = Collections.synchronizedMap(new HashMap<>());
 
        @Override
        protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
@@ -41,25 +34,25 @@ public class OdkFormServlet extends HttpServlet {
                if (pathInfo.startsWith("//"))
                        pathInfo = pathInfo.substring(1);
 
-               boolean oldApproach = false;
+//             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);
-                               }
-                       }
+//                     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
@@ -69,13 +62,13 @@ 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 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;