X-Git-Url: http://git.argeo.org/?a=blobdiff_plain;f=server%2Fruntime%2Forg.argeo.server.jackrabbit%2Fsrc%2Fmain%2Fjava%2Forg%2Fargeo%2Fserver%2Fjcr%2FJcrResourceAdapter.java;fp=server%2Fruntime%2Forg.argeo.server.jackrabbit%2Fsrc%2Fmain%2Fjava%2Forg%2Fargeo%2Fserver%2Fjcr%2FJcrResourceAdapter.java;h=020672b86b5c1a42647eebd0f97f9bd9520918bb;hb=ff2edf71a6223a88a10d2f6c51db2797bfb0c4b9;hp=44e6ecc15bb7a18712f15fd9f2ed13a24d214d06;hpb=92d282b306f1011fe31908b4dfffd99be8538fa2;p=lgpl%2Fargeo-commons.git diff --git a/server/runtime/org.argeo.server.jackrabbit/src/main/java/org/argeo/server/jcr/JcrResourceAdapter.java b/server/runtime/org.argeo.server.jackrabbit/src/main/java/org/argeo/server/jcr/JcrResourceAdapter.java index 44e6ecc15..020672b86 100644 --- a/server/runtime/org.argeo.server.jackrabbit/src/main/java/org/argeo/server/jcr/JcrResourceAdapter.java +++ b/server/runtime/org.argeo.server.jackrabbit/src/main/java/org/argeo/server/jcr/JcrResourceAdapter.java @@ -5,17 +5,14 @@ import java.io.InputStream; import java.util.ArrayList; import java.util.Calendar; import java.util.List; -import java.util.StringTokenizer; import javax.activation.MimetypesFileTypeMap; import javax.jcr.Node; import javax.jcr.Property; -import javax.jcr.PropertyIterator; import javax.jcr.Repository; import javax.jcr.RepositoryException; import javax.jcr.Session; import javax.jcr.SimpleCredentials; -import javax.jcr.Value; import javax.jcr.version.Version; import javax.jcr.version.VersionHistory; import javax.jcr.version.VersionIterator; @@ -24,6 +21,7 @@ import org.apache.commons.io.FilenameUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.argeo.ArgeoException; +import org.argeo.jcr.JcrUtils; import org.springframework.beans.factory.DisposableBean; import org.springframework.beans.factory.InitializingBean; import org.springframework.core.io.Resource; @@ -44,27 +42,7 @@ public class JcrResourceAdapter implements InitializingBean, DisposableBean { // private String restoreBase = "/.restore"; public void mkdirs(String path) { - try { - StringTokenizer st = new StringTokenizer(path, "/"); - StringBuffer current = new StringBuffer("/"); - Node currentNode = session().getRootNode(); - while (st.hasMoreTokens()) { - String part = st.nextToken(); - current.append(part).append('/'); - if (!session().itemExists(current.toString())) { - currentNode = currentNode.addNode(part, "nt:folder"); - if (versioning) - currentNode.addMixin("mix:versionable"); - if (log.isTraceEnabled()) - log.debug("Added folder " + part + " as " + current); - } else { - currentNode = (Node) session().getItem(current.toString()); - } - } - session().save(); - } catch (RepositoryException e) { - throw new ArgeoException("Cannot mkdirs " + path, e); - } + JcrUtils.mkdirs(session(), path, "nt:folder", versioning); } public void create(String path, Resource file, String mimeType) { @@ -193,14 +171,6 @@ public class JcrResourceAdapter implements InitializingBean, DisposableBean { try { Node fileNode = (Node) session().getItem(path); - - // if (revision == 0) { - // InputStream in = fromVersion(fileNode.getBaseVersion()); - // if (log.isDebugEnabled()) - // log.debug("Retrieved " + path + " at base revision "); - // return in; - // } - VersionHistory history = fileNode.getVersionHistory(); int count = 0; Version version = null; @@ -232,22 +202,6 @@ public class JcrResourceAdapter implements InitializingBean, DisposableBean { return in; } - // protected InputStream restoreOrGetRevision(Node fileNode, Version - // version, - // Integer revision) throws RepositoryException { - // Node parentFolder = (Node) fileNode - // .getAncestor(fileNode.getDepth() - 1); - // String restoreFolderPath = restoreBase + parentFolder.getPath(); - // mkdirs(restoreFolderPath); - // String subNodeName = fileNode.getName() + "__" + fill(revision); - // Node restoreFolder = (Node) session().getItem(restoreFolderPath); - // if (!restoreFolder.hasNode(subNodeName)) { - // parentFolder.restore(version, subNodeName, true); - // } - // return parentFolder.getNode(subNodeName + "/jcr:content").getProperty( - // "jcr:data").getStream(); - // } - protected Session session() { return session; } @@ -281,34 +235,6 @@ public class JcrResourceAdapter implements InitializingBean, DisposableBean { this.defaultEncoding = defaultEncoding; } - /** Recursively outputs the contents of the given node. */ - public static void debug(Node node) throws RepositoryException { - // First output the node path - log.debug(node.getPath()); - // Skip the virtual (and large!) jcr:system subtree - if (node.getName().equals("jcr:system")) { - return; - } - - // Then output the properties - PropertyIterator properties = node.getProperties(); - while (properties.hasNext()) { - Property property = properties.nextProperty(); - if (property.getDefinition().isMultiple()) { - // A multi-valued property, print all values - Value[] values = property.getValues(); - for (int i = 0; i < values.length; i++) { - log.debug(property.getPath() + " = " - + values[i].getString()); - } - } else { - // A single-valued property - log.debug(property.getPath() + " = " + property.getString()); - } - } - - } - protected String fill(Integer number) { int size = 4; String str = number.toString();