Author: chetanm
Date: Mon May 15 08:35:45 2017
New Revision: 1795149

URL: http://svn.apache.org/viewvc?rev=1795149&view=rev
Log:
OAK-6210 - Provide a consistent and extensible way to handle oak-run options 
while creating NodeStore

Provide an option to disable System.exit

Modified:
    
jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/run/cli/Options.java
    
jackrabbit/oak/trunk/oak-run/src/test/java/org/apache/jackrabbit/oak/run/cli/OptionsTest.java

Modified: 
jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/run/cli/Options.java
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/run/cli/Options.java?rev=1795149&r1=1795148&r2=1795149&view=diff
==============================================================================
--- 
jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/run/cli/Options.java
 (original)
+++ 
jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/run/cli/Options.java
 Mon May 15 08:35:45 2017
@@ -38,6 +38,7 @@ public class Options {
     private final EnumSet<OptionBeans> oakRunOptions;
     private final ClassToInstanceMap<OptionsBean> optionBeans = 
MutableClassToInstanceMap.create();
     private OptionSet optionSet;
+    private boolean disableSystemExit;
 
     public Options(){
         this.oakRunOptions = EnumSet.allOf(OptionBeans.class);
@@ -104,7 +105,7 @@ public class Options {
         if (optionBeans.containsKey(CommonOptions.class)
                 && getCommonOpts().isHelpRequested()){
             parser.printHelpOn(System.out);
-            System.exit(0);
+            systemExit(0);
         }
     }
 
@@ -113,8 +114,18 @@ public class Options {
         if (optionBeans.containsKey(CommonOptions.class)
                 && getCommonOpts().getNonOptions().isEmpty()){
             parser.printHelpOn(System.out);
-            System.exit(1);
+            systemExit(1);
         }
     }
 
+    private void systemExit(int code) {
+        if (!disableSystemExit) {
+            System.exit(code);
+        }
+    }
+
+    Options withDisableSystemExit() {
+        this.disableSystemExit = true;
+        return this;
+    }
 }

Modified: 
jackrabbit/oak/trunk/oak-run/src/test/java/org/apache/jackrabbit/oak/run/cli/OptionsTest.java
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-run/src/test/java/org/apache/jackrabbit/oak/run/cli/OptionsTest.java?rev=1795149&r1=1795148&r2=1795149&view=diff
==============================================================================
--- 
jackrabbit/oak/trunk/oak-run/src/test/java/org/apache/jackrabbit/oak/run/cli/OptionsTest.java
 (original)
+++ 
jackrabbit/oak/trunk/oak-run/src/test/java/org/apache/jackrabbit/oak/run/cli/OptionsTest.java
 Mon May 15 08:35:45 2017
@@ -29,7 +29,7 @@ public class OptionsTest {
     @Test
     public void noArgs() throws Exception{
         OptionParser parser = new OptionParser();
-        Options opts = new Options();
+        Options opts = new Options().withDisableSystemExit();
         opts.parseAndConfigure(parser, new String[]{});
         assertNotNull(opts.getCommonOpts());
     }
@@ -37,7 +37,7 @@ public class OptionsTest {
     @Test
     public void help() throws Exception{
         OptionParser parser = new OptionParser();
-        Options opts = new Options();
+        Options opts = new Options().withDisableSystemExit();
         opts.parseAndConfigure(parser, new String[]{"-h"});
         assertTrue(opts.getCommonOpts().isHelpRequested());
 


Reply via email to