Author: angela
Date: Tue Feb 18 15:07:23 2014
New Revision: 1569377
URL: http://svn.apache.org/r1569377
Log:
OAK-1398 : Restore and OPV INITIALIZE/COMPUTE (replace TODO by log output)
Modified:
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/version/VersionableState.java
Modified:
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/version/VersionableState.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/version/VersionableState.java?rev=1569377&r1=1569376&r2=1569377&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/version/VersionableState.java
(original)
+++
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/version/VersionableState.java
Tue Feb 18 15:07:23 2014
@@ -18,6 +18,32 @@
*/
package org.apache.jackrabbit.oak.plugins.version;
+import java.util.Collections;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+import javax.jcr.RepositoryException;
+import javax.jcr.Value;
+import javax.jcr.nodetype.PropertyDefinition;
+import javax.jcr.version.OnParentVersionAction;
+
+import com.google.common.collect.Lists;
+import org.apache.jackrabbit.oak.api.CommitFailedException;
+import org.apache.jackrabbit.oak.api.PropertyState;
+import org.apache.jackrabbit.oak.api.Type;
+import org.apache.jackrabbit.oak.plugins.identifier.IdentifierManager;
+import org.apache.jackrabbit.oak.plugins.memory.EmptyNodeState;
+import org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder;
+import org.apache.jackrabbit.oak.plugins.memory.PropertyStates;
+import org.apache.jackrabbit.oak.plugins.nodetype.ReadOnlyNodeTypeManager;
+import org.apache.jackrabbit.oak.plugins.tree.ImmutableTree;
+import org.apache.jackrabbit.oak.spi.state.NodeBuilder;
+import org.apache.jackrabbit.oak.spi.state.NodeState;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
import static com.google.common.base.Preconditions.checkNotNull;
import static javax.jcr.version.OnParentVersionAction.ABORT;
import static javax.jcr.version.OnParentVersionAction.COMPUTE;
@@ -44,32 +70,6 @@ import static org.apache.jackrabbit.JcrC
import static org.apache.jackrabbit.oak.plugins.version.Utils.primaryTypeOf;
import static org.apache.jackrabbit.oak.plugins.version.Utils.uuidFromNode;
-import java.util.Collections;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Set;
-
-import javax.annotation.Nonnull;
-import javax.annotation.Nullable;
-import javax.jcr.RepositoryException;
-import javax.jcr.Value;
-import javax.jcr.nodetype.PropertyDefinition;
-import javax.jcr.version.OnParentVersionAction;
-
-import com.google.common.collect.Lists;
-import org.apache.jackrabbit.oak.api.CommitFailedException;
-import org.apache.jackrabbit.oak.api.PropertyState;
-import org.apache.jackrabbit.oak.api.Type;
-import org.apache.jackrabbit.oak.plugins.identifier.IdentifierManager;
-import org.apache.jackrabbit.oak.plugins.tree.ImmutableTree;
-import org.apache.jackrabbit.oak.plugins.memory.EmptyNodeState;
-import org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder;
-import org.apache.jackrabbit.oak.plugins.memory.PropertyStates;
-import org.apache.jackrabbit.oak.plugins.nodetype.ReadOnlyNodeTypeManager;
-import org.apache.jackrabbit.oak.spi.state.NodeBuilder;
-import org.apache.jackrabbit.oak.spi.state.NodeState;
-import org.apache.jackrabbit.oak.util.TODO;
-
/**
* {@code VersionableState} provides methods to create a versionable state
* for a version based on a versionable node.
@@ -82,6 +82,8 @@ import org.apache.jackrabbit.oak.util.TO
*/
class VersionableState {
+ private static final Logger log =
LoggerFactory.getLogger(VersionableState.class);
+
private static final String JCR_CHILDVERSIONHISTORY =
"jcr:childVersionHistory";
private static final Set<String> BASIC_PROPERTIES = new HashSet<String>();
private static final Set<String> BASIC_FROZEN_PROPERTIES = new
HashSet<String>();
@@ -287,15 +289,16 @@ class VersionableState {
}
}
for (PropertyState p : dest.getProperties()) {
- if (BASIC_PROPERTIES.contains(p.getName())) {
+ String propName = p.getName();
+ if (BASIC_PROPERTIES.contains(propName)) {
continue;
}
- if (frozen.hasProperty(p.getName())) {
+ if (frozen.hasProperty(propName)) {
continue;
}
int action = getOPV(dest, p);
if (action == COPY || action == VERSION || action == ABORT) {
- dest.removeProperty(p.getName());
+ dest.removeProperty(propName);
} else if (action == IGNORE) {
// no action
} else if (action == INITIALIZE) {
@@ -304,6 +307,9 @@ class VersionableState {
// only COMPUTE property definitions currently are
// jcr:primaryType and jcr:mixinTypes
// do nothing for now
+ if (!(JCR_PRIMARYTYPE.equals(propName) ||
JCR_MIXINTYPES.equals(propName))) {
+ log.warn("OPV.COMPUTE not implemented for restoring
property: " + propName);
+ }
}
}
restoreChildren(frozen, dest, selector);
@@ -403,10 +409,11 @@ class VersionableState {
} else if (action == IGNORE) {
// no action
} else if (action == INITIALIZE) {
- TODO.unimplemented().doNothing();
+ log.warn("OPV.INITIALIZE not implemented for restoring child
nodes.");
} else if (action == COMPUTE) {
// there are currently no child node definitions
// with OPV compute
+ log.warn("OPV.COMPUTE not implemented for restoring child
nodes: ");
}
}
}