X-Git-Url: https://git.argeo.org/?a=blobdiff_plain;f=org.argeo.jcr%2Fsrc%2Forg%2Fargeo%2Fjcr%2FJcr.java;h=624b92b5bef4d5bf7ea792048618e53337ed7dbf;hb=b4c4c47379e740b494a4a759df07c7b09a7649fa;hp=230921d551f191ae65f879b998308936d7aff248;hpb=5ec9d72c96b13bf18d702bf01dc2c03b0aee43a4;p=lgpl%2Fargeo-commons.git diff --git a/org.argeo.jcr/src/org/argeo/jcr/Jcr.java b/org.argeo.jcr/src/org/argeo/jcr/Jcr.java index 230921d55..624b92b5b 100644 --- a/org.argeo.jcr/src/org/argeo/jcr/Jcr.java +++ b/org.argeo.jcr/src/org/argeo/jcr/Jcr.java @@ -20,6 +20,7 @@ import javax.jcr.Repository; import javax.jcr.RepositoryException; import javax.jcr.Session; import javax.jcr.Value; +import javax.jcr.Workspace; import javax.jcr.nodetype.NodeType; import javax.jcr.security.Privilege; import javax.jcr.version.Version; @@ -97,6 +98,15 @@ public class Jcr { } } + /** + * @see Node#getSession() + * @see Session#getWorkspace() + * @see Workspace#getName() + */ + public static String getWorkspaceName(Node node) { + return session(node).getWorkspace().getName(); + } + /** * @see Node#getIdentifier() * @throws IllegalStateException caused by {@link RepositoryException} @@ -361,11 +371,12 @@ public class Jcr { public static void save(Node node) { try { Session session = node.getSession(); - if (node.isNodeType(NodeType.MIX_LAST_MODIFIED)) { - set(node, Property.JCR_LAST_MODIFIED, Instant.now()); - set(node, Property.JCR_LAST_MODIFIED_BY, session.getUserID()); - } - session.save(); +// if (node.isNodeType(NodeType.MIX_LAST_MODIFIED)) { +// set(node, Property.JCR_LAST_MODIFIED, Instant.now()); +// set(node, Property.JCR_LAST_MODIFIED_BY, session.getUserID()); +// } + if (session.hasPendingChanges()) + session.save(); } catch (RepositoryException e) { throw new IllegalStateException("Cannot save session related to " + node + " in workspace " + session(node).getWorkspace().getName(), e); @@ -421,7 +432,16 @@ public class Jcr { } } - /** Check in this node. */ + /** @see VersionManager#checkpoint(String) */ + public static void checkpoint(Node node) { + try { + versionManager(node).checkpoint(node.getPath()); + } catch (RepositoryException e) { + throw new IllegalStateException("Cannot check in " + node, e); + } + } + + /** @see VersionManager#checkin(String) */ public static void checkin(Node node) { try { versionManager(node).checkin(node.getPath()); @@ -430,7 +450,7 @@ public class Jcr { } } - /** Check out this node. */ + /** @see VersionManager#checkout(String) */ public static void checkout(Node node) { try { versionManager(node).checkout(node.getPath());