This is an automated email from the ASF dual-hosted git repository. rombert pushed a commit to annotated tag org.apache.sling.jcr.contentloader-2.0.4-incubator in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-jcr-contentloader.git
commit bb27019a34f4e478488f93dd791e8b8fe3d95116 Author: Carsten Ziegeler <[email protected]> AuthorDate: Wed Jun 25 15:52:27 2008 +0000 Create path if it is not existend git-svn-id: https://svn.apache.org/repos/asf/incubator/sling/trunk/jcr/contentloader@671589 13f79535-47bb-0310-9956-ffa450edef68 --- .../apache/sling/jcr/contentloader/internal/Loader.java | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/src/main/java/org/apache/sling/jcr/contentloader/internal/Loader.java b/src/main/java/org/apache/sling/jcr/contentloader/internal/Loader.java index fa7c191..46af1f8 100644 --- a/src/main/java/org/apache/sling/jcr/contentloader/internal/Loader.java +++ b/src/main/java/org/apache/sling/jcr/contentloader/internal/Loader.java @@ -35,6 +35,7 @@ import java.util.LinkedList; import java.util.List; import java.util.Map; import java.util.Set; +import java.util.StringTokenizer; import javax.jcr.InvalidSerializedDataException; import javax.jcr.Item; @@ -557,9 +558,21 @@ public class Loader { int firstSlash = path.indexOf("/"); - // it´s a relative path + // it's a relative path if (firstSlash != 0) path = "/" + path; + if ( !session.itemExists(path) ) { + Node currentNode = session.getRootNode(); + final StringTokenizer st = new StringTokenizer(path.substring(1), "/"); + while ( st.hasMoreTokens() ) { + final String name = st.nextToken(); + if ( !currentNode.hasNode(name) ) { + currentNode.addNode(name, "nt:folder"); + } + currentNode = currentNode.getNode(name); + } + return currentNode; + } Item item = session.getItem(path); return (item.isNode()) ? (Node) item : null; } -- To stop receiving notification emails like this one, please contact "[email protected]" <[email protected]>.
