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 ba...@apache.org on 2013/03/07 19:26:51 UTC

svn commit: r1453987 - in /jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak: security/authorization/AccessControlImporter.java security/user/UserImporter.java spi/xml/NodeInfo.java spi/xml/PropInfo.java spi/xml/TextValue.java

Author: baedke
Date: Thu Mar  7 18:26:50 2013
New Revision: 1453987

URL: http://svn.apache.org/r1453987
Log:
OAK-127: initial version of session import

Modified:
    jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/authorization/AccessControlImporter.java
    jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/UserImporter.java
    jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/spi/xml/NodeInfo.java
    jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/spi/xml/PropInfo.java
    jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/spi/xml/TextValue.java

Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/authorization/AccessControlImporter.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/authorization/AccessControlImporter.java?rev=1453987&r1=1453986&r2=1453987&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/authorization/AccessControlImporter.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/authorization/AccessControlImporter.java Thu Mar  7 18:26:50 2013
@@ -243,18 +243,15 @@ class AccessControlImporter implements P
         private void setPrivilegeNames(TextValue[] txtValues) throws RepositoryException {
             privileges = new ArrayList<Privilege>();
             for (TextValue value : txtValues) {
-                // FIXME: proper namespace handling (in case of local remapping)
-                Value privilegeName = value.getValue(PropertyType.NAME, namePathMapper);
+                Value privilegeName = value.getValue(PropertyType.NAME);
                 privileges.add(acMgr.privilegeFromName(privilegeName.getString()));
             }
         }
 
         private void addRestriction(PropInfo propInfo) throws RepositoryException {
-            // FIXME: proper namespace handling (in case of local remapping)
             String restrictionName = propInfo.getName();
             int targetType = acl.getRestrictionType(restrictionName);
-            // FIXME: proper namespace handling (in case of local remapping)
-            restrictions.put(propInfo.getName(), propInfo.getValue(targetType, namePathMapper));
+            restrictions.put(propInfo.getName(), propInfo.getValue(targetType));
         }
 
         private void addRestrictions(List<PropInfo> propInfos) throws RepositoryException {

Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/UserImporter.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/UserImporter.java?rev=1453987&r1=1453986&r2=1453987&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/UserImporter.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/UserImporter.java Thu Mar  7 18:26:50 2013
@@ -364,7 +364,7 @@ public class UserImporter implements Pro
                 }
             }
         } else {
-            log.warn("{} is not of type {}", childInfo.getString(), NT_REP_MEMBERS);
+            log.warn("{} is not of type {}", childInfo.getName(), NT_REP_MEMBERS);
         }
     }
 

Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/spi/xml/NodeInfo.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/spi/xml/NodeInfo.java?rev=1453987&r1=1453986&r2=1453987&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/spi/xml/NodeInfo.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/spi/xml/NodeInfo.java Thu Mar  7 18:26:50 2013
@@ -68,7 +68,7 @@ public class NodeInfo {
      *
      * @return node name
      */
-    public String getString() {
+    public String getName() {
         return name;
     }
 

Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/spi/xml/PropInfo.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/spi/xml/PropInfo.java?rev=1453987&r1=1453986&r2=1453987&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/spi/xml/PropInfo.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/spi/xml/PropInfo.java Thu Mar  7 18:26:50 2013
@@ -21,7 +21,7 @@ import javax.jcr.RepositoryException;
 import javax.jcr.Value;
 import javax.jcr.nodetype.PropertyDefinition;
 
-import org.apache.jackrabbit.oak.namepath.NamePathMapper;
+import org.apache.jackrabbit.oak.plugins.nodetype.EffectiveNodeType;
 
 /**
  * Information about a property being imported. This class is used
@@ -125,18 +125,47 @@ public class PropInfo {
         return values;
     }
 
-    public Value getValue(int targetType, NamePathMapper namePathMapper) throws RepositoryException {
+    public Value getValue(int targetType) throws RepositoryException {
         if (multipleStatus == MultipleStatus.MULTIPLE) {
             throw new RepositoryException("TODO");
         }
-        return values[0].getValue(targetType, namePathMapper);
+        return values[0].getValue(targetType);
     }
 
-    public Value[] getValues(int targetType, NamePathMapper namePathMapper) throws RepositoryException {
+    public Value[] getValues(int targetType) throws RepositoryException {
         Value[] va = new Value[values.length];
         for (int i = 0; i < values.length; i++) {
-            va[i] = values[i].getValue(targetType, namePathMapper);
+            va[i] = values[i].getValue(targetType);
         }
         return va;
     }
+
+    //TODO check multivalue handling
+    public PropertyDefinition getPropertyDef(EffectiveNodeType ent) {
+        Iterable<PropertyDefinition> definitions = ent.getNamedPropertyDefinitions(getName());
+        int knownType = getType();
+        for (PropertyDefinition def : definitions) {
+            int requiredType = def.getRequiredType();
+            if ((requiredType == PropertyType.UNDEFINED || knownType == PropertyType.UNDEFINED || requiredType == knownType)
+                    && (def.isMultiple() || multipleStatus == MultipleStatus.UNKNOWN)) {
+                return def;
+            }
+        }
+        definitions = ent.getResidualPropertyDefinitions();
+        for (PropertyDefinition def : definitions) {
+            int requiredType = def.getRequiredType();
+            if ((requiredType == PropertyType.UNDEFINED || knownType == PropertyType.UNDEFINED || requiredType == knownType)
+                    && !def.isMultiple() && multipleStatus == MultipleStatus.UNKNOWN) {
+                return def;
+            }
+        }
+        for (PropertyDefinition def : definitions) {
+            int requiredType = def.getRequiredType();
+            if ((requiredType == PropertyType.UNDEFINED || knownType == PropertyType.UNDEFINED || requiredType == knownType)
+                    && def.isMultiple()) {
+                return def;
+            }
+        }
+        return null;
+    }
 }
\ No newline at end of file

Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/spi/xml/TextValue.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/spi/xml/TextValue.java?rev=1453987&r1=1453986&r2=1453987&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/spi/xml/TextValue.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/spi/xml/TextValue.java Thu Mar  7 18:26:50 2013
@@ -20,8 +20,6 @@ import javax.jcr.RepositoryException;
 import javax.jcr.Value;
 import javax.jcr.ValueFormatException;
 
-import org.apache.jackrabbit.oak.namepath.NamePathMapper;
-
 /**
  * {@code TextValue} represents a serialized property value read
  * from a System or Document View XML document.
@@ -30,8 +28,7 @@ public interface TextValue {
 
     String getString();
 
-    // TODO: review again
-    Value getValue(int targetType, NamePathMapper namePathMapper) throws ValueFormatException, RepositoryException;
+    Value getValue(int targetType) throws ValueFormatException, RepositoryException;
 
     /**
      * Dispose this value, i.e. free all bound resources. Once a value has