X-Git-Url: https://git.argeo.org/?a=blobdiff_plain;f=org.argeo.cms%2Fsrc%2Forg%2Fargeo%2Fcms%2Fintegration%2FJcrWriteServlet.java;h=68312173443ad07b61a888d0e49fdd6f99c95963;hb=2f47a72478c876464ac31cecc138183fccfeac91;hp=d678ccbbe0aab06becc51cc0e4dde329105c4105;hpb=163d57530b5cddc5df72e6e5985224cccd9e2232;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 {