From: Mathieu Baudier Date: Mon, 2 Mar 2020 10:34:30 +0000 (+0100) Subject: Delete support in the JCR write servlet. X-Git-Tag: argeo-commons-2.1.88~12 X-Git-Url: https://git.argeo.org/?p=lgpl%2Fargeo-commons.git;a=commitdiff_plain;h=4c96729d93e6db492312a54e1f876cb27389793e Delete support in the JCR write servlet. --- diff --git a/org.argeo.cms/src/org/argeo/cms/integration/JcrWriteServlet.java b/org.argeo.cms/src/org/argeo/cms/integration/JcrWriteServlet.java index 683121734..71d915674 100644 --- a/org.argeo.cms/src/org/argeo/cms/integration/JcrWriteServlet.java +++ b/org.argeo.cms/src/org/argeo/cms/integration/JcrWriteServlet.java @@ -23,8 +23,8 @@ public class JcrWriteServlet extends JcrReadServlet { @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { - if (log.isTraceEnabled()) - log.trace("Data service: " + req.getPathInfo()); + if (log.isDebugEnabled()) + log.debug("Data service POST: " + req.getPathInfo()); String dataWorkspace = getWorkspace(req); String jcrPath = getJcrPath(req); @@ -54,10 +54,39 @@ public class JcrWriteServlet extends JcrReadServlet { byte[] bytes = IOUtils.toByteArray(req.getInputStream()); JcrUtils.copyBytesAsFile(node.getParent(), node.getName(), bytes); } + session.save(); } catch (Exception e) { new CmsExceptionsChain(e).writeAsJson(getObjectMapper(), resp); } finally { JcrUtils.logoutQuietly(session); } } + + @Override + protected void doDelete(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { + if (log.isDebugEnabled()) + log.debug("Data service DELETE: " + req.getPathInfo()); + + String dataWorkspace = getWorkspace(req); + String jcrPath = getJcrPath(req); + + Session session = null; + try { + // authentication + session = openJcrSession(req, resp, getRepository(), dataWorkspace); + if (!session.itemExists(jcrPath)) { + // ignore + return; + } else { + Node node = session.getNode(jcrPath); + node.remove(); + } + session.save(); + } catch (Exception e) { + new CmsExceptionsChain(e).writeAsJson(getObjectMapper(), resp); + } finally { + JcrUtils.logoutQuietly(session); + } + } + }