Author: tomekr
Date: Wed Dec  7 09:05:56 2016
New Revision: 1773028

URL: http://svn.apache.org/viewvc?rev=1773028&view=rev
Log:
OAK-5233: Parameter --src-datastore is being ignored for JCR2 upgrade

Modified:
    
jackrabbit/oak/trunk/oak-upgrade/src/main/java/org/apache/jackrabbit/oak/upgrade/cli/parser/StoreArguments.java

Modified: 
jackrabbit/oak/trunk/oak-upgrade/src/main/java/org/apache/jackrabbit/oak/upgrade/cli/parser/StoreArguments.java
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-upgrade/src/main/java/org/apache/jackrabbit/oak/upgrade/cli/parser/StoreArguments.java?rev=1773028&r1=1773027&r2=1773028&view=diff
==============================================================================
--- 
jackrabbit/oak/trunk/oak-upgrade/src/main/java/org/apache/jackrabbit/oak/upgrade/cli/parser/StoreArguments.java
 (original)
+++ 
jackrabbit/oak/trunk/oak-upgrade/src/main/java/org/apache/jackrabbit/oak/upgrade/cli/parser/StoreArguments.java
 Wed Dec  7 09:05:56 2016
@@ -54,7 +54,7 @@ public class StoreArguments {
 
     public StoreArguments(MigrationOptions options, List<String> arguments) 
throws CliArgumentException {
         this.options = options;
-        List<StoreDescriptor> descriptors = createStoreDescriptors(arguments);
+        List<StoreDescriptor> descriptors = createStoreDescriptors(arguments, 
options);
 
         src = descriptors.get(0);
         dst = descriptors.get(1);
@@ -115,11 +115,11 @@ public class StoreArguments {
         return !srcHasExternalBlobRefs;
     }
 
-    private static List<StoreDescriptor> createStoreDescriptors(List<String> 
arguments) throws CliArgumentException {
+    private static List<StoreDescriptor> createStoreDescriptors(List<String> 
arguments, MigrationOptions options) throws CliArgumentException {
         List<StoreDescriptor> descriptors = mapToStoreDescriptors(arguments);
         mergeCrx2Descriptors(descriptors);
         addSegmentAsDestination(descriptors);
-        validateDescriptors(descriptors);
+        validateDescriptors(descriptors, options);
         return descriptors;
     }
 
@@ -195,7 +195,7 @@ public class StoreArguments {
         }
     }
 
-    private static void validateDescriptors(List<StoreDescriptor> descriptors) 
throws CliArgumentException {
+    private static void validateDescriptors(List<StoreDescriptor> descriptors, 
MigrationOptions options) throws CliArgumentException {
         if (descriptors.size() < 2) {
             throw new CliArgumentException("Not enough node store arguments: " 
+ descriptors.toString(), 1);
         } else if (descriptors.size() > 2) {
@@ -208,6 +208,9 @@ public class StoreArguments {
         if (src.getType() == dst.getType() && 
src.getPath().equals(dst.getPath())) {
             throw new CliArgumentException("The source and the destination is 
the same repository.", 1);
         }
+        if (src.getType() == StoreType.JCR2_DIR_XML && 
options.isSrcBlobStoreDefined()) {
+            throw new CliArgumentException("The --src-datastore can't be used 
for the repository upgrade. Source datastore configuration is placed in the 
repository.xml file.", 1);
+        }
     }
 
     private static void logSegmentVersion() {


Reply via email to