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());