Index: oak-upgrade/src/main/java/org/apache/jackrabbit/oak/upgrade/cli/parser/MigrationOptions.java =================================================================== --- oak-upgrade/src/main/java/org/apache/jackrabbit/oak/upgrade/cli/parser/MigrationOptions.java (revision 1769379) +++ oak-upgrade/src/main/java/org/apache/jackrabbit/oak/upgrade/cli/parser/MigrationOptions.java (working copy) @@ -87,6 +87,8 @@ private final String dstS3; + private final Boolean srcExternalBlobs; + public MigrationOptions(MigrationCliArguments args) { this.disableMmap = args.hasOption(OptionParserFactory.DISABLE_MMAP); this.copyBinaries = args.hasOption(OptionParserFactory.COPY_BINARIES); @@ -134,6 +136,13 @@ this.dstFds = args.getOption(OptionParserFactory.DST_FDS); this.dstS3 = args.getOption(OptionParserFactory.DST_S3); this.dstS3Config = args.getOption(OptionParserFactory.DST_S3_CONFIG); + + if (args.hasOption(OptionParserFactory.SRC_EXTERNAL_BLOBS)) { + this.srcExternalBlobs = Boolean + .valueOf(OptionParserFactory.SRC_EXTERNAL_BLOBS); + } else { + this.srcExternalBlobs = null; + } } public boolean isCopyBinaries() { @@ -329,6 +338,10 @@ log.info("Missing binaries won't break the migration"); } + if (srcExternalBlobs != null) { + log.info("Source DataStore external blobs: {}", srcExternalBlobs); + } + log.info("Cache size: {} MB", cacheSizeInMB); } @@ -352,4 +365,8 @@ return calendar; } + public Boolean getSrcExternalBlobs() { + return srcExternalBlobs; + } + } Index: oak-upgrade/src/main/java/org/apache/jackrabbit/oak/upgrade/cli/parser/OptionParserFactory.java =================================================================== --- oak-upgrade/src/main/java/org/apache/jackrabbit/oak/upgrade/cli/parser/OptionParserFactory.java (revision 1769379) +++ oak-upgrade/src/main/java/org/apache/jackrabbit/oak/upgrade/cli/parser/OptionParserFactory.java (working copy) @@ -52,6 +52,8 @@ public static final String SRC_S3_CONFIG = "src-s3config"; + public static final String SRC_EXTERNAL_BLOBS = "src-external-ds"; + public static final String DST_FDS = "datastore"; public static final String DST_FBS = "fileblobstore"; @@ -112,6 +114,7 @@ op.accepts(DST_S3_CONFIG, "Configuration file for the target S3DataStore").withRequiredArg() .ofType(String.class); op.accepts(IGNORE_MISSING_BINARIES, "Don't break the migration if some binaries are missing"); + op.accepts(SRC_EXTERNAL_BLOBS, "Flag specifying if the source Store has external references or not"); } private static void addRdbOptions(OptionParser op) { Index: oak-upgrade/src/main/java/org/apache/jackrabbit/oak/upgrade/cli/parser/StoreArguments.java =================================================================== --- oak-upgrade/src/main/java/org/apache/jackrabbit/oak/upgrade/cli/parser/StoreArguments.java (revision 1769379) +++ oak-upgrade/src/main/java/org/apache/jackrabbit/oak/upgrade/cli/parser/StoreArguments.java (working copy) @@ -58,6 +58,10 @@ src = descriptors.get(0); dst = descriptors.get(1); + + if (options.getSrcExternalBlobs() != null) { + srcHasExternalBlobRefs = options.getSrcExternalBlobs(); + } } public void logOptions() {