From 7424eb206521b32871b8267110628b35257762af Mon Sep 17 00:00:00 2001 From: Mathieu Baudier Date: Sat, 23 Jan 2021 12:39:43 +0100 Subject: [PATCH] Introduce set mime type. --- org.argeo.jcr/src/org/argeo/jcr/JcrUtils.java | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/org.argeo.jcr/src/org/argeo/jcr/JcrUtils.java b/org.argeo.jcr/src/org/argeo/jcr/JcrUtils.java index d66293d96..cb9fe6e47 100644 --- a/org.argeo.jcr/src/org/argeo/jcr/JcrUtils.java +++ b/org.argeo.jcr/src/org/argeo/jcr/JcrUtils.java @@ -727,7 +727,7 @@ public class JcrUtils { Workspace fromWorkspace = fromSession.getWorkspace(); Workspace toWorkspace = toSession.getWorkspace(); String errorMsg = "Cannot copy workspace " + fromWorkspace + " to " + toWorkspace + " via XML."; - + try (PipedInputStream in = new PipedInputStream(1024 * 1024);) { new Thread(() -> { try (PipedOutputStream out = new PipedOutputStream(in)) { @@ -1621,6 +1621,7 @@ public class JcrUtils { } binary = contentNode.getSession().getValueFactory().createBinary(in); contentNode.setProperty(Property.JCR_DATA, binary); + updateLastModified(contentNode); return fileNode; } catch (RepositoryException e) { throw new JcrException("Cannot create file node " + fileName + " under " + folderNode, e); @@ -1634,6 +1635,19 @@ public class JcrUtils { return fileNode.getNode(Node.JCR_CONTENT).getProperty(Property.JCR_DATA).getBinary().getStream(); } + /** + * Set the properties of {@link NodeType#MIX_MIMETYPE} on the content of this + * file node. + */ + public static void setFileMimeType(Node fileNode, String mimeType, String encoding) throws RepositoryException { + Node contentNode = fileNode.getNode(Node.JCR_CONTENT); + if (mimeType != null) + contentNode.setProperty(Property.JCR_MIMETYPE, mimeType); + if (encoding != null) + contentNode.setProperty(Property.JCR_ENCODING, encoding); + // TODO remove properties if args are null? + } + /** * Computes the checksum of an nt:file. * -- 2.30.2