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 md...@apache.org on 2012/10/04 22:48:24 UTC
svn commit: r1394256 - in
/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak:
plugins/commit/ plugins/identifier/ plugins/index/property/ plugins/type/
query/ast/ security/user/
Author: mduerig
Date: Thu Oct 4 20:48:23 2012
New Revision: 1394256
URL: http://svn.apache.org/viewvc?rev=1394256&view=rev
Log:
OAK-350: Unify PropertyState and CoreValue
- Replace CoreValue.getString with PropertyState.getValue(Type)
Modified:
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/commit/AnnotatingConflictHandler.java
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/commit/ConflictValidator.java
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/identifier/IdentifierManager.java
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/property/PropertyIndexLookup.java
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/type/TypeValidator.java
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/query/ast/SelectorImpl.java
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/ImpersonationImpl.java
Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/commit/AnnotatingConflictHandler.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/commit/AnnotatingConflictHandler.java?rev=1394256&r1=1394255&r2=1394256&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/commit/AnnotatingConflictHandler.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/commit/AnnotatingConflictHandler.java Thu Oct 4 20:48:23 2012
@@ -16,21 +16,18 @@
*/
package org.apache.jackrabbit.oak.plugins.commit;
-import java.util.ArrayList;
import java.util.List;
-import javax.jcr.PropertyType;
-
-import org.apache.jackrabbit.oak.plugins.memory.MultiPropertyState;
-import org.apache.jackrabbit.oak.spi.commit.ConflictHandler;
-import org.apache.jackrabbit.oak.api.CoreValue;
+import com.google.common.collect.Lists;
import org.apache.jackrabbit.oak.api.CoreValueFactory;
import org.apache.jackrabbit.oak.api.PropertyState;
import org.apache.jackrabbit.oak.api.Tree;
+import org.apache.jackrabbit.oak.spi.commit.ConflictHandler;
import org.apache.jackrabbit.oak.spi.state.ChildNodeEntry;
import org.apache.jackrabbit.oak.spi.state.NodeState;
import static org.apache.jackrabbit.JcrConstants.JCR_MIXINTYPES;
+import static org.apache.jackrabbit.oak.api.Type.NAMES;
import static org.apache.jackrabbit.oak.plugins.type.NodeTypeConstants.ADD_EXISTING;
import static org.apache.jackrabbit.oak.plugins.type.NodeTypeConstants.CHANGE_CHANGED;
import static org.apache.jackrabbit.oak.plugins.type.NodeTypeConstants.CHANGE_DELETED;
@@ -126,16 +123,18 @@ public class AnnotatingConflictHandler i
return Resolution.THEIRS;
}
- private Tree addConflictMarker(Tree parent) {
+ private static Tree addConflictMarker(Tree parent) {
PropertyState jcrMixin = parent.getProperty(JCR_MIXINTYPES);
- List<CoreValue> mixins = new ArrayList<CoreValue>();
- if (jcrMixin != null) {
- assert jcrMixin.isArray();
- mixins.addAll(jcrMixin.getValues());
+ List<String> mixins;
+ if (jcrMixin == null) {
+ mixins = Lists.newArrayList();
+ }
+ else {
+ mixins = Lists.newArrayList(jcrMixin.getValue(NAMES));
}
if (!mixins.contains(MIX_REP_MERGE_CONFLICT)) {
- mixins.add(valueFactory.createValue(MIX_REP_MERGE_CONFLICT, PropertyType.NAME));
- parent.setProperty(new MultiPropertyState(JCR_MIXINTYPES, mixins));
+ mixins.add(MIX_REP_MERGE_CONFLICT);
+ parent.setProperty(JCR_MIXINTYPES, mixins, NAMES);
}
return getOrCreateNode(parent, REP_OURS);
Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/commit/ConflictValidator.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/commit/ConflictValidator.java?rev=1394256&r1=1394255&r2=1394256&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/commit/ConflictValidator.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/commit/ConflictValidator.java Thu Oct 4 20:48:23 2012
@@ -20,13 +20,14 @@ import javax.jcr.InvalidItemStateExcepti
import org.apache.jackrabbit.JcrConstants;
import org.apache.jackrabbit.oak.api.CommitFailedException;
-import org.apache.jackrabbit.oak.api.CoreValue;
import org.apache.jackrabbit.oak.api.PropertyState;
import org.apache.jackrabbit.oak.plugins.type.NodeTypeConstants;
import org.apache.jackrabbit.oak.spi.commit.DefaultValidator;
import org.apache.jackrabbit.oak.spi.commit.Validator;
import org.apache.jackrabbit.oak.spi.state.NodeState;
+import static org.apache.jackrabbit.oak.api.Type.STRINGS;
+
/**
* {@link Validator} which checks the presence of conflict markers
* in the tree in fails the commit if any are found.
@@ -63,8 +64,8 @@ public class ConflictValidator extends D
private static void failOnMergeConflict(PropertyState property) throws CommitFailedException {
if (JcrConstants.JCR_MIXINTYPES.equals(property.getName())) {
assert property.isArray();
- for (CoreValue v : property.getValues()) {
- if (NodeTypeConstants.MIX_REP_MERGE_CONFLICT.equals(v.getString())) {
+ for (String v : property.getValue(STRINGS)) {
+ if (NodeTypeConstants.MIX_REP_MERGE_CONFLICT.equals(v)) {
throw new CommitFailedException(new InvalidItemStateException("Item has unresolved conflicts"));
}
}
Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/identifier/IdentifierManager.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/identifier/IdentifierManager.java?rev=1394256&r1=1394255&r2=1394256&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/identifier/IdentifierManager.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/identifier/IdentifierManager.java Thu Oct 4 20:48:23 2012
@@ -19,7 +19,6 @@ package org.apache.jackrabbit.oak.plugin
import java.io.UnsupportedEncodingException;
import java.text.ParseException;
import java.util.Collections;
-import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.UUID;
@@ -40,6 +39,7 @@ import org.apache.jackrabbit.oak.api.Res
import org.apache.jackrabbit.oak.api.ResultRow;
import org.apache.jackrabbit.oak.api.Root;
import org.apache.jackrabbit.oak.api.Tree;
+import org.apache.jackrabbit.oak.api.Type;
import org.apache.jackrabbit.oak.commons.PathUtils;
import org.apache.jackrabbit.oak.namepath.NamePathMapper;
import org.apache.jackrabbit.oak.plugins.memory.StringValue;
@@ -47,6 +47,7 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import static org.apache.jackrabbit.oak.api.Type.STRING;
+import static org.apache.jackrabbit.oak.api.Type.STRINGS;
/**
* IdentifierManager...
@@ -237,8 +238,8 @@ public class IdentifierManager {
@Override
public boolean apply(PropertyState pState) {
if (pState.isArray()) {
- for (CoreValue value : pState.getValues()) {
- if (uuid.equals(value.getString())) {
+ for (String value : pState.getValue(Type.STRINGS)) {
+ if (uuid.equals(value)) {
return true;
}
}
@@ -265,9 +266,8 @@ public class IdentifierManager {
PropertyState pMixin = tree.getProperty(JcrConstants.JCR_MIXINTYPES);
if (pMixin != null) {
- List<CoreValue> mixinTypes = pMixin.getValues();
- for (CoreValue mixinType : mixinTypes) {
- if (ntName.equals(mixinType.getString())) {
+ for (String mixinType : pMixin.getValue(STRINGS)) {
+ if (ntName.equals(mixinType)) {
return true;
}
}
Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/property/PropertyIndexLookup.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/property/PropertyIndexLookup.java?rev=1394256&r1=1394255&r2=1394256&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/property/PropertyIndexLookup.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/property/PropertyIndexLookup.java Thu Oct 4 20:48:23 2012
@@ -20,6 +20,7 @@ import java.util.Set;
import org.apache.jackrabbit.oak.api.CoreValue;
import org.apache.jackrabbit.oak.api.PropertyState;
+import org.apache.jackrabbit.oak.api.Type;
import org.apache.jackrabbit.oak.plugins.memory.StringValue;
import org.apache.jackrabbit.oak.spi.state.ChildNodeEntry;
import org.apache.jackrabbit.oak.spi.state.NodeState;
@@ -84,8 +85,8 @@ public class PropertyIndexLookup {
if (property != null) {
// We have an index for this property, so use it
- for (CoreValue path : property.getValues()) {
- paths.add(path.getString());
+ for (String path : property.getValue(Type.STRINGS)) {
+ paths.add(path);
}
} else {
// No index available, so first check this node for a match
Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/type/TypeValidator.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/type/TypeValidator.java?rev=1394256&r1=1394255&r2=1394256&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/type/TypeValidator.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/type/TypeValidator.java Thu Oct 4 20:48:23 2012
@@ -45,6 +45,8 @@ import org.slf4j.LoggerFactory;
import static org.apache.jackrabbit.JcrConstants.JCR_MIXINTYPES;
import static org.apache.jackrabbit.JcrConstants.JCR_PRIMARYTYPE;
import static org.apache.jackrabbit.JcrConstants.NT_UNSTRUCTURED;
+import static org.apache.jackrabbit.oak.api.Type.STRING;
+import static org.apache.jackrabbit.oak.api.Type.STRINGS;
/**
* Validator implementation that check JCR node type constraints.
@@ -140,11 +142,11 @@ class TypeValidator implements Validator
public Validator childNodeAdded(String name, NodeState after) throws CommitFailedException {
try {
PropertyState type = after.getProperty(JCR_PRIMARYTYPE);
- if (type == null || type.getValues().isEmpty()) {
+ if (type == null || type.count() == 0) {
getParentType().canAddChildNode(name);
}
else {
- String ntName = type.getValues().get(0).getString();
+ String ntName = type.getValue(STRING, 0);
getParentType().checkAddChildNode(name, ntName);
}
@@ -194,8 +196,7 @@ class TypeValidator implements Validator
boolean primaryType = JCR_PRIMARYTYPE.equals(after.getName());
boolean mixinType = JCR_MIXINTYPES.equals(after.getName());
if (primaryType || mixinType) {
- for (CoreValue cv : after.getValues()) {
- String ntName = cv.getString();
+ for (String ntName : after.getValue(STRINGS)) {
NodeType nt = ntm.getNodeType(ntName);
if (nt.isAbstract()) {
throw new ConstraintViolationException("Can't create node with abstract type: " + ntName);
@@ -213,8 +214,7 @@ class TypeValidator implements Validator
private NodeType getPrimaryType(Tree tree) throws RepositoryException {
PropertyState jcrPrimaryType = tree.getProperty(JCR_PRIMARYTYPE);
if (jcrPrimaryType != null) {
- for (CoreValue typeName : jcrPrimaryType.getValues()) {
- String ntName = typeName.getString();
+ for (String ntName : jcrPrimaryType.getValue(STRINGS)) {
NodeType type = ntm.getNodeType(ntName);
if (type == null) {
log.warn("Could not find node type {} for item at {}", ntName, tree.getPath());
@@ -230,8 +230,7 @@ class TypeValidator implements Validator
List<NodeType> types = Lists.newArrayList();
PropertyState jcrMixinType = tree.getProperty(JCR_MIXINTYPES);
if (jcrMixinType != null) {
- for (CoreValue typeName : jcrMixinType.getValues()) {
- String ntName = typeName.getString();
+ for (String ntName : jcrMixinType.getValue(STRINGS)) {
NodeType type = ntm.getNodeType(ntName);
if (type == null) {
log.warn("Could not find mixin type {} for item at {}", ntName, tree.getPath());
Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/query/ast/SelectorImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/query/ast/SelectorImpl.java?rev=1394256&r1=1394255&r2=1394256&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/query/ast/SelectorImpl.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/query/ast/SelectorImpl.java Thu Oct 4 20:48:23 2012
@@ -26,6 +26,7 @@ import javax.jcr.nodetype.NodeType;
import javax.jcr.nodetype.NodeTypeIterator;
import javax.jcr.nodetype.NodeTypeManager;
+import com.google.common.collect.ImmutableSet;
import org.apache.jackrabbit.oak.api.CoreValue;
import org.apache.jackrabbit.oak.api.PropertyState;
import org.apache.jackrabbit.oak.api.Tree;
@@ -40,7 +41,7 @@ import org.apache.jackrabbit.oak.spi.que
import org.apache.jackrabbit.oak.spi.query.QueryIndex;
import org.apache.jackrabbit.oak.spi.state.NodeState;
-import com.google.common.collect.ImmutableSet;
+import static org.apache.jackrabbit.oak.api.Type.STRINGS;
/**
* A selector within a query.
@@ -190,8 +191,8 @@ public class SelectorImpl extends Source
ImmutableSet.Builder<String> builder = ImmutableSet.builder();
PropertyState property = tree.getProperty(name);
if (property != null) {
- for (CoreValue value : property.getValues()) {
- builder.add(value.getString());
+ for (String value : property.getValue(STRINGS)) {
+ builder.add(value);
}
}
return builder.build();
Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/ImpersonationImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/ImpersonationImpl.java?rev=1394256&r1=1394255&r2=1394256&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/ImpersonationImpl.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/ImpersonationImpl.java Thu Oct 4 20:48:23 2012
@@ -20,6 +20,7 @@ import java.security.Principal;
import java.security.acl.Group;
import java.util.HashSet;
import java.util.Set;
+
import javax.jcr.RepositoryException;
import javax.jcr.Session;
import javax.jcr.UnsupportedRepositoryOperationException;
@@ -31,7 +32,6 @@ import org.apache.jackrabbit.api.securit
import org.apache.jackrabbit.api.security.user.Authorizable;
import org.apache.jackrabbit.api.security.user.Impersonation;
import org.apache.jackrabbit.api.security.user.User;
-import org.apache.jackrabbit.oak.api.CoreValue;
import org.apache.jackrabbit.oak.api.PropertyState;
import org.apache.jackrabbit.oak.api.Tree;
import org.apache.jackrabbit.oak.spi.security.principal.PrincipalIteratorAdapter;
@@ -39,6 +39,8 @@ import org.apache.jackrabbit.oak.spi.sec
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import static org.apache.jackrabbit.oak.api.Type.STRINGS;
+
/**
* ImpersonationImpl...
*/
@@ -183,8 +185,8 @@ class ImpersonationImpl implements Imper
Tree userTree = user.getTree();
PropertyState impersonators = userTree.getProperty(REP_IMPERSONATORS);
if (impersonators != null) {
- for (CoreValue v : impersonators.getValues()) {
- princNames.add(v.getString());
+ for (String v : impersonators.getValue(STRINGS)) {
+ princNames.add(v);
}
}
return princNames;