Author: tomekr
Date: Mon Dec 10 18:01:15 2018
New Revision: 1848615
URL: http://svn.apache.org/viewvc?rev=1848615&view=rev
Log:
OAK-7953: Test failure: JdbcToSegmentWithMetadataTest.validateMigration()
Modified:
jackrabbit/oak/trunk/oak-upgrade/src/main/java/org/apache/jackrabbit/oak/upgrade/RepositorySidegrade.java
jackrabbit/oak/trunk/oak-upgrade/src/main/java/org/apache/jackrabbit/oak/upgrade/cli/parser/MigrationOptions.java
jackrabbit/oak/trunk/oak-upgrade/src/main/java/org/apache/jackrabbit/oak/upgrade/cli/parser/OptionParserFactory.java
jackrabbit/oak/trunk/oak-upgrade/src/test/java/org/apache/jackrabbit/oak/upgrade/cli/AbstractOak2OakTest.java
jackrabbit/oak/trunk/oak-upgrade/src/test/java/org/apache/jackrabbit/oak/upgrade/cli/JdbcToSegmentWithMetadataTest.java
Modified:
jackrabbit/oak/trunk/oak-upgrade/src/main/java/org/apache/jackrabbit/oak/upgrade/RepositorySidegrade.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-upgrade/src/main/java/org/apache/jackrabbit/oak/upgrade/RepositorySidegrade.java?rev=1848615&r1=1848614&r2=1848615&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-upgrade/src/main/java/org/apache/jackrabbit/oak/upgrade/RepositorySidegrade.java
(original)
+++
jackrabbit/oak/trunk/oak-upgrade/src/main/java/org/apache/jackrabbit/oak/upgrade/RepositorySidegrade.java
Mon Dec 10 18:01:15 2018
@@ -34,6 +34,7 @@ import org.apache.jackrabbit.oak.api.Com
import org.apache.jackrabbit.oak.api.PropertyState;
import org.apache.jackrabbit.oak.api.Type;
import org.apache.jackrabbit.oak.commons.PathUtils;
+import org.apache.jackrabbit.oak.plugins.document.DocumentNodeState;
import org.apache.jackrabbit.oak.plugins.migration.FilteringNodeState;
import org.apache.jackrabbit.oak.plugins.migration.NodeStateCopier;
import org.apache.jackrabbit.oak.plugins.migration.report.LoggingReporter;
@@ -520,7 +521,7 @@ public class RepositorySidegrade {
private NodeState wrapNodeState(NodeState source, boolean tracePaths,
boolean filterPaths) {
NodeState wrapped = source;
- if (migrateDocumentMetadata) {
+ if (migrateDocumentMetadata && source instanceof DocumentNodeState) {
wrapped = MetadataExposingNodeState.wrap(wrapped);
}
if (!isCompleteMigration() && filterPaths) {
Modified:
jackrabbit/oak/trunk/oak-upgrade/src/main/java/org/apache/jackrabbit/oak/upgrade/cli/parser/MigrationOptions.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-upgrade/src/main/java/org/apache/jackrabbit/oak/upgrade/cli/parser/MigrationOptions.java?rev=1848615&r1=1848614&r2=1848615&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-upgrade/src/main/java/org/apache/jackrabbit/oak/upgrade/cli/parser/MigrationOptions.java
(original)
+++
jackrabbit/oak/trunk/oak-upgrade/src/main/java/org/apache/jackrabbit/oak/upgrade/cli/parser/MigrationOptions.java
Mon Dec 10 18:01:15 2018
@@ -32,7 +32,7 @@ public class MigrationOptions {
private static final DateFormat DATE_FORMAT = new
SimpleDateFormat("yyyy-MM-dd");
- private static final boolean ADD_SECONDARY_METADATA =
Boolean.getBoolean("oak.upgrade.addSecondaryMetadata");
+ private static final String ADD_SECONDARY_METADATA_PROP =
"oak.upgrade.addSecondaryMetadata";
private final boolean copyBinaries;
@@ -94,6 +94,8 @@ public class MigrationOptions {
private final Boolean srcExternalBlobs;
+ private final Boolean addSecondaryMetadata;
+
public MigrationOptions(MigrationCliArguments args) throws
CliArgumentException {
this.disableMmap = args.hasOption(OptionParserFactory.DISABLE_MMAP);
this.copyBinaries = args.hasOption(OptionParserFactory.COPY_BINARIES);
@@ -148,6 +150,12 @@ public class MigrationOptions {
} else {
this.srcExternalBlobs = null;
}
+
+ if (System.getProperty(ADD_SECONDARY_METADATA_PROP) == null) {
+ this.addSecondaryMetadata =
args.hasOption(OptionParserFactory.ADD_SECONDARY_METADATA);
+ } else {
+ this.addSecondaryMetadata =
Boolean.getBoolean(ADD_SECONDARY_METADATA_PROP);
+ }
}
public boolean isCopyBinaries() {
@@ -218,7 +226,7 @@ public class MigrationOptions {
return forceCheckpoints;
}
- public boolean isAddSecondaryMetadata() { return ADD_SECONDARY_METADATA; }
+ public boolean isAddSecondaryMetadata() { return addSecondaryMetadata; }
public String getSrcUser() {
return srcUser;
@@ -357,7 +365,7 @@ public class MigrationOptions {
log.info("Checkpoints will be migrated even with the custom paths
specified");
}
- if (ADD_SECONDARY_METADATA) {
+ if (addSecondaryMetadata) {
log.info("Secondary metadata will be added");
}
Modified:
jackrabbit/oak/trunk/oak-upgrade/src/main/java/org/apache/jackrabbit/oak/upgrade/cli/parser/OptionParserFactory.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-upgrade/src/main/java/org/apache/jackrabbit/oak/upgrade/cli/parser/OptionParserFactory.java?rev=1848615&r1=1848614&r2=1848615&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-upgrade/src/main/java/org/apache/jackrabbit/oak/upgrade/cli/parser/OptionParserFactory.java
(original)
+++
jackrabbit/oak/trunk/oak-upgrade/src/main/java/org/apache/jackrabbit/oak/upgrade/cli/parser/OptionParserFactory.java
Mon Dec 10 18:01:15 2018
@@ -84,6 +84,8 @@ public class OptionParserFactory {
public static final String FORCE_CHECKPOINTS = "force-checkpoints";
+ public static final String ADD_SECONDARY_METADATA =
"add-secondary-metadata";
+
public static OptionParser create() {
OptionParser op = new OptionParser();
addUsageOptions(op);
@@ -157,5 +159,6 @@ public class OptionParserFactory {
op.accepts(ONLY_VERIFY, "Performs only --" + VERIFY + ", without
copying content");
op.accepts(SKIP_CHECKPOINTS, "Don't copy checkpoints on the full
segment->segment migration");
op.accepts(FORCE_CHECKPOINTS, "Copy checkpoints even if the
--include,exclude,merge-paths option is specified");
+ op.accepts(ADD_SECONDARY_METADATA, "Adds the metadata required by
secondary store");
}
}
Modified:
jackrabbit/oak/trunk/oak-upgrade/src/test/java/org/apache/jackrabbit/oak/upgrade/cli/AbstractOak2OakTest.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-upgrade/src/test/java/org/apache/jackrabbit/oak/upgrade/cli/AbstractOak2OakTest.java?rev=1848615&r1=1848614&r2=1848615&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-upgrade/src/test/java/org/apache/jackrabbit/oak/upgrade/cli/AbstractOak2OakTest.java
(original)
+++
jackrabbit/oak/trunk/oak-upgrade/src/test/java/org/apache/jackrabbit/oak/upgrade/cli/AbstractOak2OakTest.java
Mon Dec 10 18:01:15 2018
@@ -17,6 +17,8 @@
package org.apache.jackrabbit.oak.upgrade.cli;
import static java.util.Collections.singletonMap;
+import static
org.apache.jackrabbit.oak.plugins.document.secondary.DelegatingDocumentNodeState.PROP_LAST_REV;
+import static
org.apache.jackrabbit.oak.plugins.document.secondary.DelegatingDocumentNodeState.PROP_REVISION;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertTrue;
@@ -46,6 +48,8 @@ import org.apache.jackrabbit.oak.commons
import org.apache.jackrabbit.oak.jcr.Jcr;
import org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl;
import org.apache.jackrabbit.oak.plugins.document.DocumentNodeState;
+import org.apache.jackrabbit.oak.plugins.document.Revision;
+import org.apache.jackrabbit.oak.plugins.document.RevisionVector;
import
org.apache.jackrabbit.oak.plugins.index.reference.ReferenceIndexProvider;
import org.apache.jackrabbit.oak.plugins.segment.SegmentNodeState;
import org.apache.jackrabbit.oak.spi.commit.CommitInfo;
@@ -166,6 +170,9 @@ public abstract class AbstractOak2OakTes
if (supportsCheckpointMigration()) {
verifyCheckpoint();
}
+ if (supportsMetadataMigration()) {
+ verifyMetadata();
+ }
}
public static void verifyContent(Session session) throws
RepositoryException {
@@ -236,6 +243,18 @@ public abstract class AbstractOak2OakTes
}
}
+ private void verifyMetadata() {
+ NodeState root = destination.getRoot();
+ assertTrue(root.hasProperty(PROP_REVISION));
+ assertTrue(root.hasProperty(PROP_LAST_REV));
+ RevisionVector.fromString(root.getString(PROP_REVISION));
+ Revision.fromString(root.getString(PROP_LAST_REV));
+
+ NodeState appsNode = destination.getRoot().getChildNode("apps");
+ assertTrue(appsNode.hasProperty(PROP_LAST_REV));
+ Revision.fromString(appsNode.getString(PROP_LAST_REV));
+ }
+
private static void assertSameRecord(NodeState ns1, NodeState ns2) {
String recordId1 = getRecordId(ns1);
String recordId2 = getRecordId(ns2);
@@ -258,4 +277,8 @@ public abstract class AbstractOak2OakTes
protected boolean supportsCheckpointMigration() {
return false;
}
+
+ protected boolean supportsMetadataMigration() {
+ return false;
+ }
}
Modified:
jackrabbit/oak/trunk/oak-upgrade/src/test/java/org/apache/jackrabbit/oak/upgrade/cli/JdbcToSegmentWithMetadataTest.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-upgrade/src/test/java/org/apache/jackrabbit/oak/upgrade/cli/JdbcToSegmentWithMetadataTest.java?rev=1848615&r1=1848614&r2=1848615&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-upgrade/src/test/java/org/apache/jackrabbit/oak/upgrade/cli/JdbcToSegmentWithMetadataTest.java
(original)
+++
jackrabbit/oak/trunk/oak-upgrade/src/test/java/org/apache/jackrabbit/oak/upgrade/cli/JdbcToSegmentWithMetadataTest.java
Mon Dec 10 18:01:15 2018
@@ -19,7 +19,6 @@ package org.apache.jackrabbit.oak.upgrad
import org.apache.jackrabbit.oak.upgrade.cli.container.JdbcNodeStoreContainer;
import org.apache.jackrabbit.oak.upgrade.cli.container.NodeStoreContainer;
import
org.apache.jackrabbit.oak.upgrade.cli.container.SegmentNodeStoreContainer;
-import org.junit.BeforeClass;
import java.io.IOException;
@@ -29,11 +28,6 @@ public class JdbcToSegmentWithMetadataTe
private final NodeStoreContainer destination;
- @BeforeClass
- public static void setMetadataProperty() throws IOException {
- System.setProperty("oak.upgrade.addSecondaryMetadata", "true");
- }
-
public JdbcToSegmentWithMetadataTest() throws IOException {
source = new JdbcNodeStoreContainer();
destination = new SegmentNodeStoreContainer();
@@ -52,11 +46,16 @@ public class JdbcToSegmentWithMetadataTe
@Override
protected String[] getArgs() {
return new String[] { "--src-user", "sa", "--src-password", "pwd",
source.getDescription(),
- destination.getDescription() };
+ destination.getDescription() , "--add-secondary-metadata"};
}
@Override
protected boolean supportsCheckpointMigration() {
return true;
}
+
+ @Override
+ protected boolean supportsMetadataMigration() {
+ return true;
+ }
}