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.1.0 in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-jcr-contentloader.git
commit a4686f9d156da1022f3210e1ff811a1da9e07e28 Author: Eric Norman <[email protected]> AuthorDate: Fri Jul 2 23:18:18 2010 +0000 SLING-1172 Allow uploading JSON files to create content structures Fixed the import case where no name is provided git-svn-id: https://svn.apache.org/repos/asf/sling/trunk/bundles/jcr/contentloader@960134 13f79535-47bb-0310-9956-ffa450edef68 --- .../sling/jcr/contentloader/internal/DefaultContentCreator.java | 3 ++- .../sling/jcr/contentloader/internal/DefaultContentImporter.java | 5 ++++- .../apache/sling/jcr/contentloader/internal/readers/JsonReader.java | 4 +--- 3 files changed, 7 insertions(+), 5 deletions(-) diff --git a/src/main/java/org/apache/sling/jcr/contentloader/internal/DefaultContentCreator.java b/src/main/java/org/apache/sling/jcr/contentloader/internal/DefaultContentCreator.java index 3c5565d..57af6c1 100644 --- a/src/main/java/org/apache/sling/jcr/contentloader/internal/DefaultContentCreator.java +++ b/src/main/java/org/apache/sling/jcr/contentloader/internal/DefaultContentCreator.java @@ -239,6 +239,7 @@ public class DefaultContentCreator implements ContentCreator { String[] mixinNodeTypes) throws RepositoryException { final Node parentNode = this.parentNodeStack.peek(); + boolean isParentImport = (name == null && isParentNodeImport); if ( name == null ) { if ( this.parentNodeStack.size() > 1 ) { throw new RepositoryException("Node needs to have a name."); @@ -247,7 +248,7 @@ public class DefaultContentCreator implements ContentCreator { } // if we are in parent node import mode, we don't create the root top level node! - if ( !isParentNodeImport || this.parentNodeStack.size() > 1 ) { + if ( !isParentImport || this.parentNodeStack.size() > 1 ) { // if node already exists but should be overwritten, delete it if (!this.ignoreOverwriteFlag && this.configuration.isOverwrite() && parentNode.hasNode(name)) { parentNode.getNode(name).remove(); diff --git a/src/main/java/org/apache/sling/jcr/contentloader/internal/DefaultContentImporter.java b/src/main/java/org/apache/sling/jcr/contentloader/internal/DefaultContentImporter.java index c974fd7..b1c14e9 100644 --- a/src/main/java/org/apache/sling/jcr/contentloader/internal/DefaultContentImporter.java +++ b/src/main/java/org/apache/sling/jcr/contentloader/internal/DefaultContentImporter.java @@ -120,7 +120,10 @@ public class DefaultContentImporter extends BaseImportLoader implements JcrConte private String toPlainName(DefaultContentCreator contentCreator, String name) { final String providerExt = contentCreator.getImportProviderExtension(name); if (providerExt != null) { - return name.substring(0, name.length() - providerExt.length()); + if (name.length() == providerExt.length()) { + return null; //no name is provided + } + return name.substring(0, name.length() - providerExt.length()); } return name; } diff --git a/src/main/java/org/apache/sling/jcr/contentloader/internal/readers/JsonReader.java b/src/main/java/org/apache/sling/jcr/contentloader/internal/readers/JsonReader.java index 01696e0..2a8e599 100644 --- a/src/main/java/org/apache/sling/jcr/contentloader/internal/readers/JsonReader.java +++ b/src/main/java/org/apache/sling/jcr/contentloader/internal/readers/JsonReader.java @@ -105,7 +105,6 @@ public class JsonReader implements ContentReader { ignoredNames.add("jcr:successors"); ignoredNames.add("jcr:checkedOut"); ignoredNames.add("jcr:created"); - ignoredNames.add(":name"); } private static final Set<String> ignoredPrincipalPropertyNames = new HashSet<String>(); @@ -157,8 +156,7 @@ public class JsonReader implements ContentReader { } JSONObject json = new JSONObject(jsonString); - String optionalName = json.optString(":name", null); - this.createNode(optionalName, json, contentCreator); + this.createNode(null, json, contentCreator); } catch (JSONException je) { throw (IOException) new IOException(je.getMessage()).initCause(je); } -- To stop receiving notification emails like this one, please contact "[email protected]" <[email protected]>.
