This is an automated email from the ASF dual-hosted git repository.

rombert pushed a commit to annotated tag 
org.apache.sling.testing.sling-mock-1.1.2
in repository 
https://gitbox.apache.org/repos/asf/sling-org-apache-sling-testing-sling-mock.git

commit 62e7e2a94fd79203a047f8e7e25bd49a111c615a
Author: Stefan Seifert <[email protected]>
AuthorDate: Wed Jan 14 12:06:25 2015 +0000

    SLING-4267 support importing nt:resource noded in jackrabbit with empty 
binary data
    enable content loader unit tests in sling-mock-jackrabbit
    
    git-svn-id: 
https://svn.apache.org/repos/asf/sling/trunk/testing/mocks/sling-mock@1651632 
13f79535-47bb-0310-9956-ffa450edef68
---
 .../sling/testing/mock/sling/loader/ContentLoader.java      |  9 +++++++--
 .../mock/sling/loader/AbstractContentLoaderJsonDamTest.java | 13 ++++++++++++-
 2 files changed, 19 insertions(+), 3 deletions(-)

diff --git 
a/src/main/java/org/apache/sling/testing/mock/sling/loader/ContentLoader.java 
b/src/main/java/org/apache/sling/testing/mock/sling/loader/ContentLoader.java
index b577e43..3b6374e 100644
--- 
a/src/main/java/org/apache/sling/testing/mock/sling/loader/ContentLoader.java
+++ 
b/src/main/java/org/apache/sling/testing/mock/sling/loader/ContentLoader.java
@@ -18,6 +18,7 @@
  */
 package org.apache.sling.testing.mock.sling.loader;
 
+import java.io.ByteArrayInputStream;
 import java.io.IOException;
 import java.io.InputStream;
 import java.text.DateFormat;
@@ -55,6 +56,7 @@ public final class ContentLoader {
     private static final String REFERENCE = "jcr:reference:";
     private static final String PATH = "jcr:path:";
     private static final String CONTENTTYPE_OCTET_STREAM = 
"application/octet-stream";
+    private static final String JCR_DATA_PLACEHOLDER = ":jcr:data";
 
     private static final Set<String> IGNORED_NAMES = ImmutableSet.of(
             JcrConstants.JCR_PRIMARYTYPE,
@@ -67,7 +69,6 @@ public final class ContentLoader {
             JcrConstants.JCR_VERSIONHISTORY,
             "jcr:checkedOut",
             "jcr:isCheckedOut",
-            ":jcr:data",
             "rep:policy");
 
     private final ResourceResolver resourceResolver;
@@ -204,7 +205,11 @@ public final class ContentLoader {
         JSONArray names = jsonObject.names();
         for (int i = 0; names != null && i < names.length(); i++) {
             final String name = names.getString(i);
-            if (!IGNORED_NAMES.contains(name)) {
+            if (StringUtils.equals(name, JCR_DATA_PLACEHOLDER)) {
+                // we cannot import binary data here - but to avoid complaints 
by JCR we create it with empty binary data
+                this.setProperty(props, JcrConstants.JCR_DATA, new 
ByteArrayInputStream(new byte[0]));
+            }
+            else if (!IGNORED_NAMES.contains(name)) {
                 Object obj = jsonObject.get(name);
                 if (!(obj instanceof JSONObject)) {
                     this.setProperty(props, name, obj);
diff --git 
a/src/test/java/org/apache/sling/testing/mock/sling/loader/AbstractContentLoaderJsonDamTest.java
 
b/src/test/java/org/apache/sling/testing/mock/sling/loader/AbstractContentLoaderJsonDamTest.java
index 0f00113..7222cd3 100644
--- 
a/src/test/java/org/apache/sling/testing/mock/sling/loader/AbstractContentLoaderJsonDamTest.java
+++ 
b/src/test/java/org/apache/sling/testing/mock/sling/loader/AbstractContentLoaderJsonDamTest.java
@@ -21,6 +21,8 @@ package org.apache.sling.testing.mock.sling.loader;
 import static org.junit.Assert.assertArrayEquals;
 import static org.junit.Assert.assertEquals;
 
+import java.io.IOException;
+
 import javax.jcr.NamespaceRegistry;
 import javax.jcr.RepositoryException;
 import javax.jcr.Session;
@@ -68,7 +70,7 @@ public abstract class AbstractContentLoaderJsonDamTest {
     }
 
     @Test
-    public void testDamAssetMetadata() {
+    public void testDamAssetMetadata() throws IOException {
         Resource assetMetadata = this.resourceResolver
                 
.getResource("/content/dam/sample/portraits/scott_reynolds.jpg/jcr:content/metadata");
         ValueMap props = ResourceUtil.getValueMap(assetMetadata);
@@ -80,6 +82,15 @@ public abstract class AbstractContentLoaderJsonDamTest {
 
         assertArrayEquals(new String[] { 
"stockphotography:business/business_people", "properties:style/color",
                 "properties:orientation/landscape" }, props.get("app:tags", 
String[].class));
+
+        /*
+         TODO: this is not working yet in the different resource resolver 
types - goal: validate binary is present, but empty.
+        Resource binaryMetadata = this.resourceResolver
+                
.getResource("/content/dam/sample/portraits/scott_reynolds.jpg/jcr:content/renditions/original/jcr:content");
+        ValueMap binaryProps = ResourceUtil.getValueMap(binaryMetadata);
+        InputStream is = binaryProps.get(JcrConstants.JCR_DATA, 
InputStream.class);
+        assertNotNull(is);
+        */
     }
 
 }

-- 
To stop receiving notification emails like this one, please contact
"[email protected]" <[email protected]>.

Reply via email to