From 6c42d7ee01c29a184390a3fd789ebdf5cde84a00 Mon Sep 17 00:00:00 2001 From: Mathieu Baudier Date: Fri, 25 Feb 2022 06:13:04 +0100 Subject: [PATCH] Remove old ODK approach --- .../argeo/app/odk/BundleResourceOdkForm.java | 102 ------------------ .../src/org/argeo/app/odk/OdkForm.java | 21 ---- .../app/servlet/odk/OdkFormListServlet.java | 44 -------- .../argeo/app/servlet/odk/OdkFormServlet.java | 25 ----- .../app/servlet/odk/OdkManifestServlet.java | 15 +-- .../app/servlet/odk/OdkSubmissionServlet.java | 5 - 6 files changed, 1 insertion(+), 211 deletions(-) delete mode 100644 org.argeo.app.core/src/org/argeo/app/odk/BundleResourceOdkForm.java delete mode 100644 org.argeo.app.core/src/org/argeo/app/odk/OdkForm.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 index 8195dd4..0000000 --- a/org.argeo.app.core/src/org/argeo/app/odk/BundleResourceOdkForm.java +++ /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 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 index 0cee0f8..0000000 --- a/org.argeo.app.core/src/org/argeo/app/odk/OdkForm.java +++ /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(); -} diff --git a/org.argeo.app.servlet.odk/src/org/argeo/app/servlet/odk/OdkFormListServlet.java b/org.argeo.app.servlet.odk/src/org/argeo/app/servlet/odk/OdkFormListServlet.java index 4732e70..21b3421 100644 --- a/org.argeo.app.servlet.odk/src/org/argeo/app/servlet/odk/OdkFormListServlet.java +++ b/org.argeo.app.servlet.odk/src/org/argeo/app/servlet/odk/OdkFormListServlet.java @@ -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 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(""); writer.append(""); -// 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(""); -// sb.append("" + form.getFormId() + ""); -// sb.append("" + form.getName() + ""); -// sb.append("" + form.getVersion() + ""); -// sb.append("" + form.getHash(null) + ""); -// sb.append("" + form.getDescription() + ""); -// sb.append("" + protocol + "://" + serverName -// + (serverPort == 80 || serverPort == 443 ? "" : ":" + serverPort) + "/api/odk/form/" -// + form.getFileName() + ""); -// sb.append(""); -// String str = sb.toString(); -// if (log.isDebugEnabled()) -// log.debug(str); -// writer.append(str); -// } -// } writer.append(""); } -// public void addForm(OdkForm odkForm) { -// odkForms.add(odkForm); -// } -// -// public void removeForm(OdkForm odkForm) { -// odkForms.remove(odkForm); -// } - public void setRepository(Repository repository) { this.repository = repository; } diff --git a/org.argeo.app.servlet.odk/src/org/argeo/app/servlet/odk/OdkFormServlet.java b/org.argeo.app.servlet.odk/src/org/argeo/app/servlet/odk/OdkFormServlet.java index d236bc5..0ccd119 100644 --- a/org.argeo.app.servlet.odk/src/org/argeo/app/servlet/odk/OdkFormServlet.java +++ b/org.argeo.app.servlet.odk/src/org/argeo/app/servlet/odk/OdkFormServlet.java @@ -22,7 +22,6 @@ public class OdkFormServlet extends HttpServlet { private static final long serialVersionUID = 7838305967987687370L; private Repository repository; -// private Map 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; } diff --git a/org.argeo.app.servlet.odk/src/org/argeo/app/servlet/odk/OdkManifestServlet.java b/org.argeo.app.servlet.odk/src/org/argeo/app/servlet/odk/OdkManifestServlet.java index 9d1812c..f296170 100644 --- a/org.argeo.app.servlet.odk/src/org/argeo/app/servlet/odk/OdkManifestServlet.java +++ b/org.argeo.app.servlet.odk/src/org/argeo/app/servlet/odk/OdkManifestServlet.java @@ -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(""); writer.append("md5sum:" + DigestUtils.toHexString(out.getMessageDigest().digest())); writer.append(""); } - -// try (ByteArrayOutputStream out = new ByteArrayOutputStream()) { -// session.exportDocumentView(target.getPath(), out, true, false); -// String fileCsum = DigestUtils.digest(DigestUtils.MD5, out.toByteArray()); -// writer.append(""); -// writer.append("md5sum:" + fileCsum); -// writer.append(""); -// } writer.append("" + protocol + "://" + serverName + (serverPort == 80 || serverPort == 443 ? "" : ":" + serverPort) + "/api/odk/formManifest" + file.getPath() + ""); @@ -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); } diff --git a/org.argeo.app.servlet.odk/src/org/argeo/app/servlet/odk/OdkSubmissionServlet.java b/org.argeo.app.servlet.odk/src/org/argeo/app/servlet/odk/OdkSubmissionServlet.java index 5efbd1b..25d00f4 100644 --- a/org.argeo.app.servlet.odk/src/org/argeo/app/servlet/odk/OdkSubmissionServlet.java +++ b/org.argeo.app.servlet.odk/src/org/argeo/app/servlet/odk/OdkSubmissionServlet.java @@ -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); -- 2.30.2