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/02/26 21:17:48 UTC
svn commit: r1572229 - in
/jackrabbit/oak/trunk/oak-upgrade/src/main/java/org/apache/jackrabbit/oak/upgrade:
RepositoryUpgrade.java security/GroupEditor.java
Author: jukka
Date: Wed Feb 26 20:17:47 2014
New Revision: 1572229
URL: http://svn.apache.org/r1572229
Log:
OAK-1473: RepositoryUpgrade creates incorrect SNS names for property and child node definitions
Fix the SNS name indices.
Also address the TODO in BUILT_IN_NODE_TYPES and simplify GroupEditor by using NodeState.getName(String)
Modified:
jackrabbit/oak/trunk/oak-upgrade/src/main/java/org/apache/jackrabbit/oak/upgrade/RepositoryUpgrade.java
jackrabbit/oak/trunk/oak-upgrade/src/main/java/org/apache/jackrabbit/oak/upgrade/security/GroupEditor.java
Modified: jackrabbit/oak/trunk/oak-upgrade/src/main/java/org/apache/jackrabbit/oak/upgrade/RepositoryUpgrade.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-upgrade/src/main/java/org/apache/jackrabbit/oak/upgrade/RepositoryUpgrade.java?rev=1572229&r1=1572228&r2=1572229&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-upgrade/src/main/java/org/apache/jackrabbit/oak/upgrade/RepositoryUpgrade.java (original)
+++ jackrabbit/oak/trunk/oak-upgrade/src/main/java/org/apache/jackrabbit/oak/upgrade/RepositoryUpgrade.java Wed Feb 26 20:17:47 2014
@@ -140,85 +140,6 @@ public class RepositoryUpgrade {
private final NodeStore target;
/**
- * the set of oak built-in nodetypes
- * todo: load from file or from repo
- */
- private static final Set<String> BUILT_IN_NODE_TYPES = ImmutableSet.of(
- "mix:created",
- "mix:etag",
- "mix:language",
- "mix:lastModified",
- "mix:lifecycle",
- "mix:lockable",
- "mix:mimeType",
- "mix:referenceable",
- "mix:shareable",
- "mix:simpleVersionable",
- "mix:title",
- "mix:versionable",
- "nt:activity",
- "nt:address",
- "nt:base",
- "nt:childNodeDefinition",
- "nt:configuration",
- "nt:file",
- "nt:folder",
- "nt:frozenNode",
- "nt:hierarchyNode",
- "nt:linkedFile",
- "nt:nodeType",
- "nt:propertyDefinition",
- "nt:query",
- "nt:resource",
- "nt:unstructured",
- "nt:version",
- "nt:versionHistory",
- "nt:versionLabels",
- "nt:versionedChild",
- "rep:ChildNodeDefinition",
- "rep:ChildNodeDefinitions",
- "rep:NamedChildNodeDefinitions",
- "rep:NamedPropertyDefinitions",
- "rep:NodeType",
- "rep:PropertyDefinition",
- "rep:PropertyDefinitions",
- "oak:QueryIndexDefinition",
- "oak:Unstructured",
- "rep:ACE",
- "rep:ACL",
- "rep:AccessControl",
- "rep:AccessControllable",
- "rep:Activities",
- "rep:Authorizable",
- "rep:AuthorizableFolder",
- "rep:Configurations",
- "rep:DenyACE",
- "rep:GrantACE",
- "rep:Group",
- "rep:Impersonatable",
- "rep:MemberReferences",
- "rep:MemberReferencesList",
- "rep:Members",
- "rep:MergeConflict",
- "rep:PermissionStore",
- "rep:Permissions",
- "rep:Policy",
- "rep:PrincipalAccessControl",
- "rep:Privilege",
- "rep:Privileges",
- "rep:RepoAccessControllable",
- "rep:Restrictions",
- "rep:RetentionManageable",
- "rep:Token",
- "rep:User",
- "rep:VersionReference",
- "rep:nodeTypes",
- "rep:root",
- "rep:system",
- "rep:versionStorage"
- );
-
- /**
* Copies the contents of the repository in the given source directory
* to the given target node store.
*
@@ -460,15 +381,13 @@ public class RepositoryUpgrade {
logger.info("Copying registered node types");
for (Name name : sourceRegistry.getRegisteredNodeTypes()) {
- // skip built-in nodetypes (OAK-1235)
String oakName = getOakName(name);
- if (BUILT_IN_NODE_TYPES.contains(oakName)) {
- logger.info("skipping built-on nodetype: {}", name);
- continue;
- }
- QNodeTypeDefinition def = sourceRegistry.getNodeTypeDef(name);
- NodeBuilder type = types.child(oakName);
- copyNodeType(def, type);
+ // skip built-in nodetypes (OAK-1235)
+ if (!types.hasChildNode(oakName)) {
+ QNodeTypeDefinition def = sourceRegistry.getNodeTypeDef(name);
+ NodeBuilder type = types.child(oakName);
+ copyNodeType(def, type);
+ }
}
}
@@ -506,14 +425,14 @@ public class RepositoryUpgrade {
// + jcr:propertyDefinition (nt:propertyDefinition) = nt:propertyDefinition protected sns
QPropertyDefinition[] properties = def.getPropertyDefs();
for (int i = 0; i < properties.length; i++) {
- String name = JCR_PROPERTYDEFINITION + '[' + i + ']';
+ String name = JCR_PROPERTYDEFINITION + '[' + (i + 1) + ']';
copyPropertyDefinition(properties[i], builder.child(name));
}
// + jcr:childNodeDefinition (nt:childNodeDefinition) = nt:childNodeDefinition protected sns
QNodeDefinition[] childNodes = def.getChildNodeDefs();
for (int i = 0; i < childNodes.length; i++) {
- String name = JCR_CHILDNODEDEFINITION + '[' + i + ']';
+ String name = JCR_CHILDNODEDEFINITION + '[' + (i + 1) + ']';
copyChildNodeDefinition(childNodes[i], builder.child(name));
}
}
Modified: jackrabbit/oak/trunk/oak-upgrade/src/main/java/org/apache/jackrabbit/oak/upgrade/security/GroupEditor.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-upgrade/src/main/java/org/apache/jackrabbit/oak/upgrade/security/GroupEditor.java?rev=1572229&r1=1572228&r2=1572229&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-upgrade/src/main/java/org/apache/jackrabbit/oak/upgrade/security/GroupEditor.java (original)
+++ jackrabbit/oak/trunk/oak-upgrade/src/main/java/org/apache/jackrabbit/oak/upgrade/security/GroupEditor.java Wed Feb 26 20:17:47 2014
@@ -86,10 +86,10 @@ class GroupEditor extends DefaultEditor
return null;
}
- PropertyState primaryType = after.getProperty(JCR_PRIMARYTYPE);
- String nt = primaryType == null ? null : primaryType.getValue(Type.NAME);
+ String nt = after.getName(JCR_PRIMARYTYPE);
if (nt == null) {
- throw new CommitFailedException(CONSTRAINT, 34, JCR_PRIMARYTYPE + " missing at " + state.path);
+ throw new CommitFailedException(
+ CONSTRAINT, 34, JCR_PRIMARYTYPE + " missing at " + state.path);
}
if (UserConstants.NT_REP_GROUP.equals(nt)) {