X-Git-Url: https://git.argeo.org/?a=blobdiff_plain;f=org.argeo.cms%2Fsrc%2Forg%2Fargeo%2Fcms%2Fintegration%2FJcrWriteServlet.java;h=68312173443ad07b61a888d0e49fdd6f99c95963;hb=85478bbe1d6fd4f1efd5b461cdf02da17d282930;hp=d678ccbbe0aab06becc51cc0e4dde329105c4105;hpb=1ffd6c22683f3c03e4c1193ac6bc33c77e155d2b;p=lgpl%2Fargeo-commons.git 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 d678ccbbe..683121734 100644 --- a/org.argeo.cms/src/org/argeo/cms/integration/JcrWriteServlet.java +++ b/org.argeo.cms/src/org/argeo/cms/integration/JcrWriteServlet.java @@ -2,6 +2,7 @@ package org.argeo.cms.integration; import java.io.IOException; +import javax.jcr.ImportUUIDBehavior; import javax.jcr.Node; import javax.jcr.Session; import javax.jcr.nodetype.NodeType; @@ -32,10 +33,18 @@ public class JcrWriteServlet extends JcrReadServlet { try { // authentication session = openJcrSession(req, resp, getRepository(), dataWorkspace); + + if (req.getContentType() != null && req.getContentType().equals(XML_CONTENT_TYPE)) { +// resp.setContentType(XML_CONTENT_TYPE); + session.getWorkspace().importXML(jcrPath, req.getInputStream(), + ImportUUIDBehavior.IMPORT_UUID_COLLISION_REMOVE_EXISTING); + return; + } + if (!session.itemExists(jcrPath)) { String parentPath = FilenameUtils.getFullPathNoEndSeparator(jcrPath); String fileName = FilenameUtils.getName(jcrPath); - Node folderNode = JcrUtils.mkdirs(session, parentPath); + Node folderNode = JcrUtils.mkfolders(session, parentPath); byte[] bytes = IOUtils.toByteArray(req.getInputStream()); JcrUtils.copyBytesAsFile(folderNode, fileName, bytes); } else {