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 am...@apache.org on 2018/09/27 04:47:17 UTC
svn commit: r1842069 - in /jackrabbit/oak/trunk:
oak-core/src/main/java/org/apache/jackrabbit/oak/
oak-store-composite/src/main/java/org/apache/jackrabbit/oak/composite/
oak-store-composite/src/test/java/org/apache/jackrabbit/oak/composite/
Author: amitj
Date: Thu Sep 27 04:47:17 2018
New Revision: 1842069
URL: http://svn.apache.org/viewvc?rev=1842069&view=rev
Log:
OAK-7779: Ignore copying of namespace index node in InitialContentMigrator
- Ignore copying of /jcr:system/rep:namespaces
- Test case
Modified:
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/InitialContent.java
jackrabbit/oak/trunk/oak-store-composite/src/main/java/org/apache/jackrabbit/oak/composite/InitialContentMigrator.java
jackrabbit/oak/trunk/oak-store-composite/src/test/java/org/apache/jackrabbit/oak/composite/InitialContentMigratorTest.java
Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/InitialContent.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/InitialContent.java?rev=1842069&r1=1842068&r2=1842069&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/InitialContent.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/InitialContent.java Thu Sep 27 04:47:17 2018
@@ -82,10 +82,11 @@ public class InitialContent implements R
.setProperty(JCR_PRIMARYTYPE, NT_REP_NODE_TYPES, Type.NAME);
system.child(VersionConstants.JCR_ACTIVITIES)
.setProperty(JCR_PRIMARYTYPE, VersionConstants.REP_ACTIVITIES, Type.NAME);
-
- Namespaces.setupNamespaces(system);
}
+ NodeBuilder system = builder.getChildNode(JCR_SYSTEM);
+ Namespaces.setupNamespaces(system);
+
NodeBuilder versionStorage = builder.child(JCR_SYSTEM)
.child(JCR_VERSIONSTORAGE);
if (prePopulateVS && !isInitialized(versionStorage)) {
Modified: jackrabbit/oak/trunk/oak-store-composite/src/main/java/org/apache/jackrabbit/oak/composite/InitialContentMigrator.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-store-composite/src/main/java/org/apache/jackrabbit/oak/composite/InitialContentMigrator.java?rev=1842069&r1=1842068&r2=1842069&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-store-composite/src/main/java/org/apache/jackrabbit/oak/composite/InitialContentMigrator.java (original)
+++ jackrabbit/oak/trunk/oak-store-composite/src/main/java/org/apache/jackrabbit/oak/composite/InitialContentMigrator.java Thu Sep 27 04:47:17 2018
@@ -45,6 +45,7 @@ import java.util.Map;
import java.util.Set;
import static org.apache.jackrabbit.oak.spi.cluster.ClusterRepositoryInfo.CLUSTER_CONFIG_NODE;
+import static org.apache.jackrabbit.oak.spi.namespace.NamespaceConstants.NAMESPACES_PATH;
public class InitialContentMigrator {
@@ -52,7 +53,8 @@ public class InitialContentMigrator {
private static final String CLUSTER_ID = System.getProperty("oak.composite.seed.clusterId", "1");
- private static final Set<String> DEFAULT_IGNORED_PATHS = ImmutableSet.of("/" + CLUSTER_CONFIG_NODE);
+ private static final Set<String> DEFAULT_IGNORED_PATHS = ImmutableSet
+ .of("/" + CLUSTER_CONFIG_NODE, NAMESPACES_PATH);
private static final Logger LOG = LoggerFactory.getLogger(InitialContentMigrator.class);
Modified: jackrabbit/oak/trunk/oak-store-composite/src/test/java/org/apache/jackrabbit/oak/composite/InitialContentMigratorTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-store-composite/src/test/java/org/apache/jackrabbit/oak/composite/InitialContentMigratorTest.java?rev=1842069&r1=1842068&r2=1842069&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-store-composite/src/test/java/org/apache/jackrabbit/oak/composite/InitialContentMigratorTest.java (original)
+++ jackrabbit/oak/trunk/oak-store-composite/src/test/java/org/apache/jackrabbit/oak/composite/InitialContentMigratorTest.java Thu Sep 27 04:47:17 2018
@@ -16,7 +16,11 @@
*/
package org.apache.jackrabbit.oak.composite;
+import static org.apache.jackrabbit.JcrConstants.JCR_SYSTEM;
import static org.apache.jackrabbit.oak.spi.cluster.ClusterRepositoryInfo.CLUSTER_CONFIG_NODE;
+import static org.apache.jackrabbit.oak.spi.namespace.NamespaceConstants.NAMESPACES_PATH;
+import static org.apache.jackrabbit.oak.spi.namespace.NamespaceConstants.REP_NAMESPACES;
+import static org.apache.jackrabbit.oak.spi.namespace.NamespaceConstants.REP_NSDATA;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;
@@ -29,13 +33,19 @@ import java.util.concurrent.TimeUnit;
import java.util.concurrent.atomic.AtomicBoolean;
import java.util.stream.Collectors;
+import org.apache.jackrabbit.oak.InitialContent;
import org.apache.jackrabbit.oak.api.CommitFailedException;
import org.apache.jackrabbit.oak.plugins.document.DocumentMK;
import org.apache.jackrabbit.oak.plugins.document.DocumentNodeStore;
import org.apache.jackrabbit.oak.plugins.document.DocumentStore;
import org.apache.jackrabbit.oak.plugins.document.memory.MemoryDocumentStore;
import org.apache.jackrabbit.oak.plugins.memory.MemoryNodeStore;
+import org.apache.jackrabbit.oak.plugins.name.NamespaceEditorProvider;
+import org.apache.jackrabbit.oak.plugins.name.Namespaces;
+import org.apache.jackrabbit.oak.plugins.nodetype.TypeEditorProvider;
import org.apache.jackrabbit.oak.spi.commit.CommitInfo;
+import org.apache.jackrabbit.oak.spi.commit.CompositeEditorProvider;
+import org.apache.jackrabbit.oak.spi.commit.EditorHook;
import org.apache.jackrabbit.oak.spi.commit.EmptyHook;
import org.apache.jackrabbit.oak.spi.mount.Mount;
import org.apache.jackrabbit.oak.spi.mount.MountInfoProvider;
@@ -48,6 +58,46 @@ import org.junit.Test;
public class InitialContentMigratorTest {
@Test
+ public void noMigrationJcrNamespaces() throws Exception {
+ // Initialize seed
+ NodeStore seed = new MemoryNodeStore();
+ EditorHook hook = new EditorHook(
+ new CompositeEditorProvider(new NamespaceEditorProvider(), new TypeEditorProvider()));
+ NodeBuilder seedRootBuilder = seed.getRoot().builder();
+
+ // Initialize seed content
+ new InitialContent().initialize(seedRootBuilder);
+ NodeBuilder namespaceBuilder = seedRootBuilder.getChildNode(JCR_SYSTEM).getChildNode(REP_NAMESPACES);
+ Namespaces.addCustomMapping(namespaceBuilder, "http://sling.apache.org/jcr/sling/1.0", "sling");
+ Namespaces.buildIndexNode(namespaceBuilder);
+
+ seed.merge(seedRootBuilder, hook, CommitInfo.EMPTY);
+
+ // Initialize target to migrate to
+ MemoryNodeStore target = new MemoryNodeStore();
+ NodeBuilder targetRootBuilder = target.getRoot().builder();
+ targetRootBuilder.child(JCR_SYSTEM);
+ target.merge(targetRootBuilder, EmptyHook.INSTANCE, CommitInfo.EMPTY);
+
+ MountInfoProvider mip = Mounts.newBuilder().mount("seed", "/first").build();
+ // perform migration
+ InitialContentMigrator icm = new InitialContentMigrator(target, seed, mip.getMountByName("seed"));
+ icm.migrate();
+
+ // Initialize target with a little different namespace
+ targetRootBuilder = target.getRoot().builder();
+ new InitialContent().initialize(targetRootBuilder);
+ NodeBuilder targetNamespaceBuilder = targetRootBuilder.getChildNode(JCR_SYSTEM).getChildNode(REP_NAMESPACES);
+ Namespaces.addCustomMapping(targetNamespaceBuilder, "http://pling.apache.org/jcr/sling/1.0", "pling");
+ Namespaces.buildIndexNode(targetNamespaceBuilder);
+ target.merge(targetRootBuilder, hook, CommitInfo.EMPTY);
+
+ NodeState targetRoot = target.getRoot();
+ assertTrue(NAMESPACES_PATH + "/" + REP_NSDATA + " should have been created",
+ targetRoot.getChildNode(JCR_SYSTEM).getChildNode(REP_NAMESPACES).hasChildNode(REP_NSDATA));
+ }
+
+ @Test
public void migrateContentWithCheckpoints() throws IOException, CommitFailedException {
// 1. populate the seed store with