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;
+ }
+ }
};
}