You are viewing a plain text version of this content. The canonical link for it is here.
Posted to oak-commits@jackrabbit.apache.org by ju...@apache.org on 2014/04/24 16:40:50 UTC
svn commit: r1589751 - in /jackrabbit/oak/branches/1.0: ./
oak-upgrade/src/main/java/org/apache/jackrabbit/oak/upgrade/RepositoryUpgrade.java
Author: jukka
Date: Thu Apr 24 14:40:50 2014
New Revision: 1589751
URL: http://svn.apache.org/r1589751
Log:
1.0: Merged revision 1589748 (OAK-1760)
Modified:
jackrabbit/oak/branches/1.0/ (props changed)
jackrabbit/oak/branches/1.0/oak-upgrade/src/main/java/org/apache/jackrabbit/oak/upgrade/RepositoryUpgrade.java
Propchange: jackrabbit/oak/branches/1.0/
------------------------------------------------------------------------------
Merged /jackrabbit/oak/trunk:r1589748
Modified: jackrabbit/oak/branches/1.0/oak-upgrade/src/main/java/org/apache/jackrabbit/oak/upgrade/RepositoryUpgrade.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/branches/1.0/oak-upgrade/src/main/java/org/apache/jackrabbit/oak/upgrade/RepositoryUpgrade.java?rev=1589751&r1=1589750&r2=1589751&view=diff
==============================================================================
--- jackrabbit/oak/branches/1.0/oak-upgrade/src/main/java/org/apache/jackrabbit/oak/upgrade/RepositoryUpgrade.java (original)
+++ jackrabbit/oak/branches/1.0/oak-upgrade/src/main/java/org/apache/jackrabbit/oak/upgrade/RepositoryUpgrade.java Thu Apr 24 14:40:50 2014
@@ -93,6 +93,7 @@ import javax.jcr.version.OnParentVersion
import com.google.common.collect.HashBiMap;
import com.google.common.collect.ImmutableMap;
import com.google.common.collect.Lists;
+
import org.apache.jackrabbit.core.RepositoryContext;
import org.apache.jackrabbit.core.config.BeanConfig;
import org.apache.jackrabbit.core.config.LoginModuleConfig;
@@ -108,7 +109,6 @@ import org.apache.jackrabbit.oak.api.Pro
import org.apache.jackrabbit.oak.api.Type;
import org.apache.jackrabbit.oak.namepath.GlobalNameMapper;
import org.apache.jackrabbit.oak.namepath.NameMapper;
-import org.apache.jackrabbit.oak.plugins.document.DocumentNodeStore;
import org.apache.jackrabbit.oak.plugins.index.CompositeIndexEditorProvider;
import org.apache.jackrabbit.oak.plugins.index.IndexUpdateProvider;
import org.apache.jackrabbit.oak.plugins.index.property.PropertyIndexEditorProvider;
@@ -117,6 +117,7 @@ import org.apache.jackrabbit.oak.plugins
import org.apache.jackrabbit.oak.plugins.name.Namespaces;
import org.apache.jackrabbit.oak.plugins.nodetype.TypeEditorProvider;
import org.apache.jackrabbit.oak.plugins.nodetype.write.InitialContent;
+import org.apache.jackrabbit.oak.plugins.segment.SegmentNodeBuilder;
import org.apache.jackrabbit.oak.security.SecurityProviderImpl;
import org.apache.jackrabbit.oak.spi.commit.CommitHook;
import org.apache.jackrabbit.oak.spi.commit.CommitInfo;
@@ -168,12 +169,6 @@ public class RepositoryUpgrade {
private boolean copyBinariesByReference = false;
/**
- * NodeState are copied by value by recursing down the complete tree
- * This is a temporary approach for OAK-1760 for 1.0 branch.
- */
- private final boolean copyNodeStateByValue;
-
- /**
* Copies the contents of the repository in the given source directory
* to the given target node store.
*
@@ -215,7 +210,6 @@ public class RepositoryUpgrade {
public RepositoryUpgrade(RepositoryContext source, NodeStore target) {
this.source = source;
this.target = target;
- this.copyNodeStateByValue = target instanceof DocumentNodeStore;
}
public boolean isCopyBinariesByReference() {
@@ -753,33 +747,39 @@ public class RepositoryUpgrade {
NodeState state = new JackrabbitNodeState(
pm, root, uriToPrefix, ROOT_NODE_ID, "/", copyBinariesByReference);
- copyState(builder, state, copyNodeStateByValue);
+ for (PropertyState property : state.getProperties()) {
+ builder.setProperty(property);
+ }
+ for (ChildNodeEntry child : state.getChildNodeEntries()) {
+ String childName = child.getName();
+ if (!JCR_SYSTEM.equals(childName)) {
+ copyState(builder, childName, child.getNodeState());
+ }
+ }
+
return name;
}
- private void copyState(NodeBuilder parent, String childName, NodeState state) {
- if (copyNodeStateByValue) {
- copyState(parent.child(childName), state, true);
+ private void copyState(NodeBuilder parent, String name, NodeState state) {
+ if (parent instanceof SegmentNodeBuilder) {
+ parent.setChildNode(name, state);
} else {
- parent.setChildNode(childName, state);
+ setChildNode(parent, name, state);
}
}
- private void copyState(NodeBuilder builder, NodeState state, boolean copyByValue) {
+ /**
+ * NodeState are copied by value by recursing down the complete tree
+ * This is a temporary approach for OAK-1760 for 1.0 branch.
+ */
+ private void setChildNode(NodeBuilder parent, String name, NodeState state) {
+ NodeBuilder builder = parent.setChildNode(name);
for (PropertyState property : state.getProperties()) {
builder.setProperty(property);
}
for (ChildNodeEntry child : state.getChildNodeEntries()) {
- String childName = child.getName();
- if (!JCR_SYSTEM.equals(childName)) {
- NodeState childNodeState = child.getNodeState();
- if (copyByValue) {
- NodeBuilder childBuilder = builder.child(childName);
- copyState(childBuilder, childNodeState, true);
- } else {
- builder.setChildNode(childName, childNodeState);
- }
- }
+ setChildNode(builder, child.getName(), child.getNodeState());
}
}
+
}