Author: jukka
Date: Wed Feb 26 20:33:03 2014
New Revision: 1572239

URL: http://svn.apache.org/r1572239
Log:
OAK-1391: Use an existing data store during migration

Implement Blob.getReference() if the source repository supports ReferenceBinary

Modified:
    
jackrabbit/oak/trunk/oak-upgrade/src/main/java/org/apache/jackrabbit/oak/upgrade/JackrabbitNodeState.java

Modified: 
jackrabbit/oak/trunk/oak-upgrade/src/main/java/org/apache/jackrabbit/oak/upgrade/JackrabbitNodeState.java
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-upgrade/src/main/java/org/apache/jackrabbit/oak/upgrade/JackrabbitNodeState.java?rev=1572239&r1=1572238&r2=1572239&view=diff
==============================================================================
--- 
jackrabbit/oak/trunk/oak-upgrade/src/main/java/org/apache/jackrabbit/oak/upgrade/JackrabbitNodeState.java
 (original)
+++ 
jackrabbit/oak/trunk/oak-upgrade/src/main/java/org/apache/jackrabbit/oak/upgrade/JackrabbitNodeState.java
 Wed Feb 26 20:33:03 2014
@@ -27,10 +27,12 @@ import java.io.InputStream;
 import java.math.BigDecimal;
 import java.util.List;
 
+import javax.jcr.Binary;
 import javax.jcr.NamespaceRegistry;
 import javax.jcr.PropertyType;
 import javax.jcr.RepositoryException;
 
+import org.apache.jackrabbit.api.ReferenceBinary;
 import org.apache.jackrabbit.core.id.NodeId;
 import org.apache.jackrabbit.core.id.PropertyId;
 import org.apache.jackrabbit.core.persistence.PersistenceManager;
@@ -316,6 +318,24 @@ class JackrabbitNodeState extends Abstra
                     return new ByteArrayInputStream(new byte[0]);
                 }
             }
+            @Override
+            public String getReference() {
+                try {
+                    Binary binary = value.getBinary();
+                    try {
+                        if (binary instanceof ReferenceBinary) {
+                            return ((ReferenceBinary) binary).getReference();
+                        } else {
+                            return null;
+                        }
+                    } finally {
+                        binary.dispose();
+                    }
+                } catch (RepositoryException e) {
+                    warn("Unable to get blob reference", e);
+                    return null;
+                }
+            }
         };
     }
 


Reply via email to