You are viewing a plain text version of this content. The canonical link for it is here.
Posted to oak-commits@jackrabbit.apache.org by jo...@apache.org on 2022/07/26 08:25:02 UTC
[jackrabbit-oak] 01/03: refactoring: all commands return the final status code (instead using system.exit directly)
This is an automated email from the ASF dual-hosted git repository.
joerghoh pushed a commit to branch OAK-9849
in repository https://gitbox.apache.org/repos/asf/jackrabbit-oak.git
commit afc5f8c3f353efff1ad925b6194342c6122f109c
Author: Joerg Hoh <jh...@adobe.com>
AuthorDate: Fri Jul 22 19:25:59 2022 +0200
refactoring: all commands return the final status code (instead using system.exit directly)
---
.../jackrabbit/oak/benchmark/ElasticBenchmarkRunner.java | 4 ++--
.../apache/jackrabbit/oak/run/BenchmarkElasticCommand.java | 4 ++--
.../jackrabbit/oak/benchmark/LuceneBenchmarkRunner.java | 3 ++-
.../apache/jackrabbit/oak/run/BenchmarkLuceneCommand.java | 4 ++--
.../jackrabbit/oak/run/ScalabilityLuceneCommand.java | 4 ++--
.../oak/scalability/LuceneScalabilityRunner.java | 4 ++--
.../jackrabbit/oak/benchmark/SolrBenchmarkRunner.java | 4 ++--
.../apache/jackrabbit/oak/run/BenchmarkSolrCommand.java | 4 ++--
.../apache/jackrabbit/oak/benchmark/BenchmarkRunner.java | 6 ++++--
.../org/apache/jackrabbit/oak/run/BenchmarkCommand.java | 4 ++--
.../org/apache/jackrabbit/oak/run/ScalabilityCommand.java | 4 ++--
.../jackrabbit/oak/scalability/ScalabilityRunner.java | 6 ++++--
.../org/apache/jackrabbit/oak/run/commons/Command.java | 2 +-
.../apache/jackrabbit/oak/index/ElasticIndexCommand.java | 5 +++--
.../java/org/apache/jackrabbit/oak/console/Console.java | 4 ++--
.../java/org/apache/jackrabbit/oak/explorer/Explorer.java | 5 +++--
.../jackrabbit/oak/exporter/NodeStateExportCommand.java | 3 ++-
.../java/org/apache/jackrabbit/oak/index/IndexCommand.java | 5 +++--
.../jackrabbit/oak/index/merge/IndexDiffCommand.java | 9 +++++----
.../org/apache/jackrabbit/oak/index/merge/IndexMerge.java | 5 +++--
.../jackrabbit/oak/plugins/tika/TextExtractorMain.java | 3 ++-
.../java/org/apache/jackrabbit/oak/run/BackupCommand.java | 4 ++--
.../java/org/apache/jackrabbit/oak/run/CheckCommand.java | 4 ++--
.../org/apache/jackrabbit/oak/run/CheckpointsCommand.java | 6 ++++--
.../org/apache/jackrabbit/oak/run/ClusterNodesCommand.java | 3 ++-
.../java/org/apache/jackrabbit/oak/run/CompactCommand.java | 6 +++---
.../apache/jackrabbit/oak/run/CompositePrepareCommand.java | 3 ++-
.../java/org/apache/jackrabbit/oak/run/ConsoleCommand.java | 4 ++--
.../jackrabbit/oak/run/DataStoreCacheUpgradeCommand.java | 8 +++++---
.../apache/jackrabbit/oak/run/DataStoreCheckCommand.java | 4 ++--
.../org/apache/jackrabbit/oak/run/DataStoreCommand.java | 7 ++++---
.../java/org/apache/jackrabbit/oak/run/DebugCommand.java | 6 +++---
.../java/org/apache/jackrabbit/oak/run/ExploreCommand.java | 4 ++--
.../apache/jackrabbit/oak/run/FileStoreDiffCommand.java | 6 +++---
.../oak/run/FrozenNodeRefsByScanningCommand.java | 5 +++--
.../oak/run/FrozenNodeRefsUsingIndexCommand.java | 5 +++--
.../java/org/apache/jackrabbit/oak/run/GarbageCommand.java | 5 +++--
.../java/org/apache/jackrabbit/oak/run/HelpCommand.java | 4 ++--
.../java/org/apache/jackrabbit/oak/run/HistoryCommand.java | 6 +++---
.../java/org/apache/jackrabbit/oak/run/IOTraceCommand.java | 5 +++--
.../org/apache/jackrabbit/oak/run/IndexMergeCommand.java | 4 ++--
.../org/apache/jackrabbit/oak/run/JsonIndexCommand.java | 3 ++-
.../apache/jackrabbit/oak/run/PersistentCacheCommand.java | 5 +++--
.../jackrabbit/oak/run/PurgeOldIndexVersionCommand.java | 3 ++-
.../org/apache/jackrabbit/oak/run/RDBDDLDumpCommand.java | 6 +++---
.../apache/jackrabbit/oak/run/RecoverJournalCommand.java | 10 +++++-----
.../org/apache/jackrabbit/oak/run/RecoveryCommand.java | 7 ++++---
.../java/org/apache/jackrabbit/oak/run/RepairCommand.java | 7 ++++---
.../apache/jackrabbit/oak/run/ResetClusterIdCommand.java | 3 ++-
.../java/org/apache/jackrabbit/oak/run/RestoreCommand.java | 6 +++---
.../org/apache/jackrabbit/oak/run/RevisionsCommand.java | 4 +++-
.../org/apache/jackrabbit/oak/run/SearchNodesCommand.java | 14 +++++++-------
.../org/apache/jackrabbit/oak/run/SegmentCopyCommand.java | 6 +++---
.../java/org/apache/jackrabbit/oak/run/ServerCommand.java | 5 +++--
.../org/apache/jackrabbit/oak/run/ThreadDumpCommand.java | 5 +++--
.../java/org/apache/jackrabbit/oak/run/TikaCommand.java | 4 ++--
.../apache/jackrabbit/oak/run/UnlockUpgradeCommand.java | 8 +++++---
.../java/org/apache/jackrabbit/oak/run/UpgradeCommand.java | 3 ++-
58 files changed, 163 insertions(+), 127 deletions(-)
diff --git a/oak-benchmarks-elastic/src/main/java/org/apache/jackrabbit/oak/benchmark/ElasticBenchmarkRunner.java b/oak-benchmarks-elastic/src/main/java/org/apache/jackrabbit/oak/benchmark/ElasticBenchmarkRunner.java
index 555bd2d23d..6dc9398b54 100644
--- a/oak-benchmarks-elastic/src/main/java/org/apache/jackrabbit/oak/benchmark/ElasticBenchmarkRunner.java
+++ b/oak-benchmarks-elastic/src/main/java/org/apache/jackrabbit/oak/benchmark/ElasticBenchmarkRunner.java
@@ -25,7 +25,7 @@ public class ElasticBenchmarkRunner extends BenchmarkRunner {
private static ElasticConnection connection;
- public static void main(String[] args) throws Exception {
+ public static int main(String[] args) throws Exception {
initOptionSet(args);
statsProvider = options.has(benchmarkOptions.getMetrics()) ? getStatsProvider() : StatisticsProvider.NOOP;
// Create an Elastic Client Connection here and pass down to all the tests
@@ -80,7 +80,7 @@ public class ElasticBenchmarkRunner extends BenchmarkRunner {
)
);
- BenchmarkRunner.main(args);
+ return BenchmarkRunner.main(args);
} finally {
connection.close();
}
diff --git a/oak-benchmarks-elastic/src/main/java/org/apache/jackrabbit/oak/run/BenchmarkElasticCommand.java b/oak-benchmarks-elastic/src/main/java/org/apache/jackrabbit/oak/run/BenchmarkElasticCommand.java
index 5672062294..5faea8d789 100644
--- a/oak-benchmarks-elastic/src/main/java/org/apache/jackrabbit/oak/run/BenchmarkElasticCommand.java
+++ b/oak-benchmarks-elastic/src/main/java/org/apache/jackrabbit/oak/run/BenchmarkElasticCommand.java
@@ -22,7 +22,7 @@ import org.apache.jackrabbit.oak.run.commons.Command;
public class BenchmarkElasticCommand implements Command {
@Override
- public void execute(String... args) throws Exception {
- ElasticBenchmarkRunner.main(args);
+ public int execute(String... args) throws Exception {
+ return ElasticBenchmarkRunner.main(args);
}
}
diff --git a/oak-benchmarks-lucene/src/main/java/org/apache/jackrabbit/oak/benchmark/LuceneBenchmarkRunner.java b/oak-benchmarks-lucene/src/main/java/org/apache/jackrabbit/oak/benchmark/LuceneBenchmarkRunner.java
index fa5a6b39e6..f2cc38558c 100644
--- a/oak-benchmarks-lucene/src/main/java/org/apache/jackrabbit/oak/benchmark/LuceneBenchmarkRunner.java
+++ b/oak-benchmarks-lucene/src/main/java/org/apache/jackrabbit/oak/benchmark/LuceneBenchmarkRunner.java
@@ -23,7 +23,7 @@ import java.util.Arrays;
public class LuceneBenchmarkRunner extends BenchmarkRunner {
- public static void main(String[] args) throws Exception {
+ public static int main(String[] args) throws Exception {
initOptionSet(args);
statsProvider = options.has(benchmarkOptions.getMetrics()) ? getStatsProvider() : StatisticsProvider.NOOP;
BenchmarkRunner.addToBenchMarkList(
@@ -57,5 +57,6 @@ public class LuceneBenchmarkRunner extends BenchmarkRunner {
);
BenchmarkRunner.main(args);
+ return 0;
}
}
diff --git a/oak-benchmarks-lucene/src/main/java/org/apache/jackrabbit/oak/run/BenchmarkLuceneCommand.java b/oak-benchmarks-lucene/src/main/java/org/apache/jackrabbit/oak/run/BenchmarkLuceneCommand.java
index 7906415b00..32c1dedd52 100644
--- a/oak-benchmarks-lucene/src/main/java/org/apache/jackrabbit/oak/run/BenchmarkLuceneCommand.java
+++ b/oak-benchmarks-lucene/src/main/java/org/apache/jackrabbit/oak/run/BenchmarkLuceneCommand.java
@@ -23,7 +23,7 @@ import org.apache.jackrabbit.oak.run.commons.Command;
public class BenchmarkLuceneCommand implements Command {
@Override
- public void execute(String... args) throws Exception {
- LuceneBenchmarkRunner.main(args);
+ public int execute(String... args) throws Exception {
+ return LuceneBenchmarkRunner.main(args);
}
}
diff --git a/oak-benchmarks-lucene/src/main/java/org/apache/jackrabbit/oak/run/ScalabilityLuceneCommand.java b/oak-benchmarks-lucene/src/main/java/org/apache/jackrabbit/oak/run/ScalabilityLuceneCommand.java
index 1251dad598..5a0e1ba0e4 100644
--- a/oak-benchmarks-lucene/src/main/java/org/apache/jackrabbit/oak/run/ScalabilityLuceneCommand.java
+++ b/oak-benchmarks-lucene/src/main/java/org/apache/jackrabbit/oak/run/ScalabilityLuceneCommand.java
@@ -22,7 +22,7 @@ import org.apache.jackrabbit.oak.scalability.LuceneScalabilityRunner;
public class ScalabilityLuceneCommand extends ScalabilityCommand {
@Override
- public void execute(String... args) throws Exception {
- LuceneScalabilityRunner.main(args);
+ public int execute(String... args) throws Exception {
+ return LuceneScalabilityRunner.main(args);
}
}
diff --git a/oak-benchmarks-lucene/src/main/java/org/apache/jackrabbit/oak/scalability/LuceneScalabilityRunner.java b/oak-benchmarks-lucene/src/main/java/org/apache/jackrabbit/oak/scalability/LuceneScalabilityRunner.java
index ed85b4e28c..f3ee6890db 100644
--- a/oak-benchmarks-lucene/src/main/java/org/apache/jackrabbit/oak/scalability/LuceneScalabilityRunner.java
+++ b/oak-benchmarks-lucene/src/main/java/org/apache/jackrabbit/oak/scalability/LuceneScalabilityRunner.java
@@ -48,7 +48,7 @@ import java.util.Arrays;
public class LuceneScalabilityRunner extends ScalabilityRunner {
- public static void main(String[] args) throws Exception {
+ public static int main(String[] args) throws Exception {
initOptionSet(args);
ScalabilityRunner.addToScalabilitySuiteList(
Arrays.asList(
@@ -82,7 +82,7 @@ public class LuceneScalabilityRunner extends ScalabilityRunner {
.addBenchmarks(new AggregateNodeSearcher())
)
);
-
+ return 0;
}
}
diff --git a/oak-benchmarks-solr/src/main/java/org/apache/jackrabbit/oak/benchmark/SolrBenchmarkRunner.java b/oak-benchmarks-solr/src/main/java/org/apache/jackrabbit/oak/benchmark/SolrBenchmarkRunner.java
index f07a57fe49..5b0415b57e 100644
--- a/oak-benchmarks-solr/src/main/java/org/apache/jackrabbit/oak/benchmark/SolrBenchmarkRunner.java
+++ b/oak-benchmarks-solr/src/main/java/org/apache/jackrabbit/oak/benchmark/SolrBenchmarkRunner.java
@@ -23,7 +23,7 @@ import java.util.Arrays;
public class SolrBenchmarkRunner extends BenchmarkRunner {
- public static void main(String[] args) throws Exception {
+ public static int main(String[] args) throws Exception {
initOptionSet(args);
statsProvider = options.has(benchmarkOptions.getMetrics()) ? getStatsProvider() : StatisticsProvider.NOOP;
@@ -35,6 +35,6 @@ public class SolrBenchmarkRunner extends BenchmarkRunner {
benchmarkOptions.getWithServer().value(options)))
);
- BenchmarkRunner.main(args);
+ return BenchmarkRunner.main(args);
}
}
diff --git a/oak-benchmarks-solr/src/main/java/org/apache/jackrabbit/oak/run/BenchmarkSolrCommand.java b/oak-benchmarks-solr/src/main/java/org/apache/jackrabbit/oak/run/BenchmarkSolrCommand.java
index e7b39fd4ea..6867c806fa 100644
--- a/oak-benchmarks-solr/src/main/java/org/apache/jackrabbit/oak/run/BenchmarkSolrCommand.java
+++ b/oak-benchmarks-solr/src/main/java/org/apache/jackrabbit/oak/run/BenchmarkSolrCommand.java
@@ -21,7 +21,7 @@ import org.apache.jackrabbit.oak.run.commons.Command;
public class BenchmarkSolrCommand implements Command {
@Override
- public void execute(String... args) throws Exception {
- SolrBenchmarkRunner.main(args);
+ public int execute(String... args) throws Exception {
+ return SolrBenchmarkRunner.main(args);
}
}
diff --git a/oak-benchmarks/src/main/java/org/apache/jackrabbit/oak/benchmark/BenchmarkRunner.java b/oak-benchmarks/src/main/java/org/apache/jackrabbit/oak/benchmark/BenchmarkRunner.java
index 5edd058902..0829333e4e 100644
--- a/oak-benchmarks/src/main/java/org/apache/jackrabbit/oak/benchmark/BenchmarkRunner.java
+++ b/oak-benchmarks/src/main/java/org/apache/jackrabbit/oak/benchmark/BenchmarkRunner.java
@@ -79,13 +79,13 @@ public class BenchmarkRunner {
private static boolean initFlag = false;
- public static void main(String[] args) throws Exception {
+ public static int main(String[] args) throws Exception {
initOptionSet(args);
if (options.has(benchmarkOptions.getHelp())) {
parser.printHelpOn(System.out);
- System.exit(0);
+ return 0;
}
String uri = benchmarkOptions.getMongouri().value(options);
@@ -504,7 +504,9 @@ public class BenchmarkRunner {
reportMetrics(statsProvider);
} else {
System.err.println("Unknown arguments: " + argset);
+ return 1;
}
+ return 0;
}
private static void reportMetrics(StatisticsProvider statsProvider) {
diff --git a/oak-benchmarks/src/main/java/org/apache/jackrabbit/oak/run/BenchmarkCommand.java b/oak-benchmarks/src/main/java/org/apache/jackrabbit/oak/run/BenchmarkCommand.java
index 5152b12b57..e90b49ee70 100644
--- a/oak-benchmarks/src/main/java/org/apache/jackrabbit/oak/run/BenchmarkCommand.java
+++ b/oak-benchmarks/src/main/java/org/apache/jackrabbit/oak/run/BenchmarkCommand.java
@@ -23,8 +23,8 @@ import org.apache.jackrabbit.oak.run.commons.Command;
class BenchmarkCommand implements Command {
@Override
- public void execute(String... args) throws Exception {
- BenchmarkRunner.main(args);
+ public int execute(String... args) throws Exception {
+ return BenchmarkRunner.main(args);
}
}
diff --git a/oak-benchmarks/src/main/java/org/apache/jackrabbit/oak/run/ScalabilityCommand.java b/oak-benchmarks/src/main/java/org/apache/jackrabbit/oak/run/ScalabilityCommand.java
index f3c65576fc..de51b8e221 100644
--- a/oak-benchmarks/src/main/java/org/apache/jackrabbit/oak/run/ScalabilityCommand.java
+++ b/oak-benchmarks/src/main/java/org/apache/jackrabbit/oak/run/ScalabilityCommand.java
@@ -23,8 +23,8 @@ import org.apache.jackrabbit.oak.scalability.ScalabilityRunner;
class ScalabilityCommand implements Command {
@Override
- public void execute(String... args) throws Exception {
- ScalabilityRunner.main(args);
+ public int execute(String... args) throws Exception {
+ return ScalabilityRunner.main(args);
}
}
diff --git a/oak-benchmarks/src/main/java/org/apache/jackrabbit/oak/scalability/ScalabilityRunner.java b/oak-benchmarks/src/main/java/org/apache/jackrabbit/oak/scalability/ScalabilityRunner.java
index 0c66de41c2..e8dc7f5463 100644
--- a/oak-benchmarks/src/main/java/org/apache/jackrabbit/oak/scalability/ScalabilityRunner.java
+++ b/oak-benchmarks/src/main/java/org/apache/jackrabbit/oak/scalability/ScalabilityRunner.java
@@ -56,13 +56,13 @@ public class ScalabilityRunner {
protected static OptionSet options;
private static boolean initFlag = false;
- public static void main(String[] args) throws Exception {
+ public static int main(String[] args) throws Exception {
initOptionSet(args);
OptionSet options = parser.parse(args);
if (options.has(scalabilityOptions.getHelp())) {
parser.printHelpOn(System.out);
- System.exit(0);
+ return 0;
}
int cacheSize = scalabilityOptions.getCache().value(options);
@@ -187,7 +187,9 @@ public class ScalabilityRunner {
}
} else {
System.err.println("Unknown arguments: " + argset);
+ return 1;
}
+ return 0;
}
protected static void addToScalabilitySuiteList(List<ScalabilitySuite> suites) {
diff --git a/oak-run-commons/src/main/java/org/apache/jackrabbit/oak/run/commons/Command.java b/oak-run-commons/src/main/java/org/apache/jackrabbit/oak/run/commons/Command.java
index 16385f6303..f7be83b137 100644
--- a/oak-run-commons/src/main/java/org/apache/jackrabbit/oak/run/commons/Command.java
+++ b/oak-run-commons/src/main/java/org/apache/jackrabbit/oak/run/commons/Command.java
@@ -19,6 +19,6 @@ package org.apache.jackrabbit.oak.run.commons;
public interface Command {
- void execute(String... args) throws Exception;
+ int execute(String... args) throws Exception;
}
diff --git a/oak-run-elastic/src/main/java/org/apache/jackrabbit/oak/index/ElasticIndexCommand.java b/oak-run-elastic/src/main/java/org/apache/jackrabbit/oak/index/ElasticIndexCommand.java
index 682e57e945..1bbc4fb1bf 100644
--- a/oak-run-elastic/src/main/java/org/apache/jackrabbit/oak/index/ElasticIndexCommand.java
+++ b/oak-run-elastic/src/main/java/org/apache/jackrabbit/oak/index/ElasticIndexCommand.java
@@ -74,7 +74,7 @@ public class ElasticIndexCommand implements Command {
@Override
- public void execute(String... args) throws Exception {
+ public int execute(String... args) throws Exception {
OptionParser parser = new OptionParser();
opts = new Options();
@@ -123,8 +123,9 @@ public class ElasticIndexCommand implements Command {
if (!success) {
//Needed for changes after OAK-6409
- System.exit(1);
+ return 1;
}
+ return 0;
}
private void execute(NodeStoreFixture fixture, ElasticIndexOptions indexOpts, Closer closer)
diff --git a/oak-run/src/main/java/org/apache/jackrabbit/oak/console/Console.java b/oak-run/src/main/java/org/apache/jackrabbit/oak/console/Console.java
index eb5f4ee076..1534b5dbf7 100644
--- a/oak-run/src/main/java/org/apache/jackrabbit/oak/console/Console.java
+++ b/oak-run/src/main/java/org/apache/jackrabbit/oak/console/Console.java
@@ -36,7 +36,7 @@ import org.codehaus.groovy.tools.shell.util.Preferences;
*/
public class Console {
- public static void main(String[] args) throws Exception {
+ public static int main(String[] args) throws Exception {
OptionParser parser = new OptionParser();
OptionSpec quiet = parser.accepts("quiet", "be less chatty");
@@ -75,6 +75,6 @@ public class Console {
}
}
- System.exit(code);
+ return code;
}
}
\ No newline at end of file
diff --git a/oak-run/src/main/java/org/apache/jackrabbit/oak/explorer/Explorer.java b/oak-run/src/main/java/org/apache/jackrabbit/oak/explorer/Explorer.java
index 7388258ca8..30e27468ad 100644
--- a/oak-run/src/main/java/org/apache/jackrabbit/oak/explorer/Explorer.java
+++ b/oak-run/src/main/java/org/apache/jackrabbit/oak/explorer/Explorer.java
@@ -53,7 +53,7 @@ public class Explorer {
}
}
- public static void main(String[] args) throws IOException {
+ public static int main(String[] args) throws IOException {
OptionParser parser = new OptionParser();
OptionSpec skipSizeCheck = parser.accepts("skip-size-check", "Don't compute the size of the records");
OptionSpec<String> nonOptions = parser.nonOptions("path to repository").ofType(String.class);
@@ -61,7 +61,7 @@ public class Explorer {
if (options.valuesOf(nonOptions).isEmpty()) {
parser.printHelpOn(System.err);
- System.exit(1);
+ return 1;
}
String path = options.valuesOf(nonOptions).get(0);
@@ -73,6 +73,7 @@ public class Explorer {
backend = new SegmentTarExplorerBackend(path);
}
new Explorer(path, backend, options.has(skipSizeCheck));
+ return 0;
}
private final ExplorerBackend backend;
diff --git a/oak-run/src/main/java/org/apache/jackrabbit/oak/exporter/NodeStateExportCommand.java b/oak-run/src/main/java/org/apache/jackrabbit/oak/exporter/NodeStateExportCommand.java
index 7e9f614691..8c56043994 100644
--- a/oak-run/src/main/java/org/apache/jackrabbit/oak/exporter/NodeStateExportCommand.java
+++ b/oak-run/src/main/java/org/apache/jackrabbit/oak/exporter/NodeStateExportCommand.java
@@ -35,7 +35,7 @@ public class NodeStateExportCommand implements Command {
private final String summary = "Exports NodeState as json";
@Override
- public void execute(String... args) throws Exception {
+ public int execute(String... args) throws Exception {
Stopwatch w = Stopwatch.createStarted();
OptionParser parser = new OptionParser();
@@ -69,5 +69,6 @@ public class NodeStateExportCommand implements Command {
eo.getPath(), dir.getAbsolutePath(), w);
}
+ return 0;
}
}
diff --git a/oak-run/src/main/java/org/apache/jackrabbit/oak/index/IndexCommand.java b/oak-run/src/main/java/org/apache/jackrabbit/oak/index/IndexCommand.java
index 20a1ae0958..0578bde1f5 100644
--- a/oak-run/src/main/java/org/apache/jackrabbit/oak/index/IndexCommand.java
+++ b/oak-run/src/main/java/org/apache/jackrabbit/oak/index/IndexCommand.java
@@ -83,7 +83,7 @@ public class IndexCommand implements Command {
}
@Override
- public void execute(String... args) throws Exception {
+ public int execute(String... args) throws Exception {
OptionParser parser = new OptionParser();
opts = new Options();
@@ -145,8 +145,9 @@ public class IndexCommand implements Command {
}
if (!success) {
- System.exit(1);
+ return 1;
}
+ return 0;
}
public static void setDisableExitOnError(boolean disableExitOnError) {
diff --git a/oak-run/src/main/java/org/apache/jackrabbit/oak/index/merge/IndexDiffCommand.java b/oak-run/src/main/java/org/apache/jackrabbit/oak/index/merge/IndexDiffCommand.java
index eb56427428..82912df0df 100644
--- a/oak-run/src/main/java/org/apache/jackrabbit/oak/index/merge/IndexDiffCommand.java
+++ b/oak-run/src/main/java/org/apache/jackrabbit/oak/index/merge/IndexDiffCommand.java
@@ -29,7 +29,7 @@ import joptsimple.OptionSpec;
public class IndexDiffCommand implements Command {
@Override
- public void execute(String... args) throws Exception {
+ public int execute(String... args) throws Exception {
OptionParser parser = new OptionParser();
OptionSpec<String> customDirOption = parser
.accepts("custom", "Path to index definition files (.json). " +
@@ -79,7 +79,7 @@ public class IndexDiffCommand implements Command {
compareDirectory.isEmpty() &&
extractFile.isEmpty())) {
parser.printHelpOn(System.out);
- return;
+ return 1;
}
if (!customDir.isEmpty()) {
System.out.println("Listing differences between out-of-the-box and customized indexes " +
@@ -90,7 +90,7 @@ public class IndexDiffCommand implements Command {
String mergeAdd = mergeAddFileOption.value(options);
if (mergeAdd.isEmpty()) {
parser.printHelpOn(System.out);
- return;
+ return 1;
}
if (targetDirectory.isEmpty()) {
System.out.println("Merging indexes " +
@@ -118,7 +118,7 @@ public class IndexDiffCommand implements Command {
} else {
if (index1.isEmpty() || index2.isEmpty()) {
parser.printHelpOn(System.out);
- return;
+ return 1;
}
System.out.println("Comparing indexes " + index1 + " and " + index2 +
" for directory \"" +
@@ -138,6 +138,7 @@ public class IndexDiffCommand implements Command {
IndexDiff.extractAll(extractFile, targetDirectory);
}
}
+ return 0;
}
}
diff --git a/oak-run/src/main/java/org/apache/jackrabbit/oak/index/merge/IndexMerge.java b/oak-run/src/main/java/org/apache/jackrabbit/oak/index/merge/IndexMerge.java
index 7ca4859678..c485b5ed01 100644
--- a/oak-run/src/main/java/org/apache/jackrabbit/oak/index/merge/IndexMerge.java
+++ b/oak-run/src/main/java/org/apache/jackrabbit/oak/index/merge/IndexMerge.java
@@ -96,7 +96,7 @@ public class IndexMerge {
*
* @param args the command line arguments
*/
- public void execute(String... args) throws Exception {
+ public int execute(String... args) throws Exception {
OptionParser parser = new OptionParser();
OptionSpec<Void> quietOption = parser.accepts("quiet", "be less chatty");
OptionSpec<String> indexDirectory = parser.accepts("indexDir", "Index directory").
@@ -162,8 +162,9 @@ public class IndexMerge {
executorService.shutdown();
}
if (!success) {
- System.exit(1);
+ return 1;
}
+ return 0;
}
private void storeIndex(NodeStore ns, String newIndexName, JsonObject indexDef) {
diff --git a/oak-run/src/main/java/org/apache/jackrabbit/oak/plugins/tika/TextExtractorMain.java b/oak-run/src/main/java/org/apache/jackrabbit/oak/plugins/tika/TextExtractorMain.java
index 706e54dd7c..4e1134b7a6 100644
--- a/oak-run/src/main/java/org/apache/jackrabbit/oak/plugins/tika/TextExtractorMain.java
+++ b/oak-run/src/main/java/org/apache/jackrabbit/oak/plugins/tika/TextExtractorMain.java
@@ -46,7 +46,7 @@ public class TextExtractorMain {
private TextExtractorMain() {
}
- public static void main(String[] args) throws Exception {
+ public static int main(String[] args) throws Exception {
OptionParser parser = new OptionParser();
Options opts = new Options();
@@ -175,5 +175,6 @@ public class TextExtractorMain {
writer.close();
}
}
+ return 0;
}
}
\ No newline at end of file
diff --git a/oak-run/src/main/java/org/apache/jackrabbit/oak/run/BackupCommand.java b/oak-run/src/main/java/org/apache/jackrabbit/oak/run/BackupCommand.java
index 7e897fe9da..96cb9aa084 100644
--- a/oak-run/src/main/java/org/apache/jackrabbit/oak/run/BackupCommand.java
+++ b/oak-run/src/main/java/org/apache/jackrabbit/oak/run/BackupCommand.java
@@ -27,7 +27,7 @@ import org.apache.jackrabbit.oak.segment.tool.Backup;
class BackupCommand implements Command {
@Override
- public void execute(String... args) throws Exception {
+ public int execute(String... args) throws Exception {
OptionParser parser = new OptionParser();
OptionSet options = parser.parse(args);
@@ -44,7 +44,7 @@ class BackupCommand implements Command {
.withTarget(target)
.build()
.run();
- System.exit(statusCode);
+ return statusCode;
}
}
\ No newline at end of file
diff --git a/oak-run/src/main/java/org/apache/jackrabbit/oak/run/CheckCommand.java b/oak-run/src/main/java/org/apache/jackrabbit/oak/run/CheckCommand.java
index 7a0815679e..0a9359a91c 100644
--- a/oak-run/src/main/java/org/apache/jackrabbit/oak/run/CheckCommand.java
+++ b/oak-run/src/main/java/org/apache/jackrabbit/oak/run/CheckCommand.java
@@ -32,7 +32,7 @@ import org.apache.jackrabbit.oak.segment.tool.Check;
class CheckCommand implements Command {
@Override
- public void execute(String... args) throws Exception {
+ public int execute(String... args) throws Exception {
OptionParser parser = new OptionParser();
OptionSpec<Boolean> mmapArg = parser.accepts("mmap", "use memory mapping for the file store (default: true)")
.withOptionalArg()
@@ -94,7 +94,7 @@ class CheckCommand implements Command {
builder.withRevisionsCount(options.valueOf(last) != null ? last.value(options) : 1);
}
- System.exit(builder.build().run());
+ return builder.build().run();
}
private void printUsageAndExit(OptionParser parser, String... messages) throws IOException {
diff --git a/oak-run/src/main/java/org/apache/jackrabbit/oak/run/CheckpointsCommand.java b/oak-run/src/main/java/org/apache/jackrabbit/oak/run/CheckpointsCommand.java
index 792dd054ed..b5c8caa531 100644
--- a/oak-run/src/main/java/org/apache/jackrabbit/oak/run/CheckpointsCommand.java
+++ b/oak-run/src/main/java/org/apache/jackrabbit/oak/run/CheckpointsCommand.java
@@ -33,7 +33,7 @@ import org.apache.jackrabbit.oak.run.commons.Command;
class CheckpointsCommand implements Command {
@Override
- public void execute(String... args) throws Exception {
+ public int execute(String... args) throws Exception {
CheckpointsOptions options = new CheckpointsOptions("checkpoints {<path>|<mongo-uri>|<jdbc-uri>} [list|rm-all|rm-unreferenced|rm <checkpoint>|info <checkpoint>|set <checkpoint> <name> [<value>]] [--segment]").parse(args);;
if (options.isHelp()) {
@@ -170,8 +170,10 @@ class CheckpointsCommand implements Command {
closer.close();
}
if (!success) {
- System.exit(1);
+ return 1;
}
+ return 0;
+
}
private static void failWith(String message) {
diff --git a/oak-run/src/main/java/org/apache/jackrabbit/oak/run/ClusterNodesCommand.java b/oak-run/src/main/java/org/apache/jackrabbit/oak/run/ClusterNodesCommand.java
index d93eafe100..60905a431e 100644
--- a/oak-run/src/main/java/org/apache/jackrabbit/oak/run/ClusterNodesCommand.java
+++ b/oak-run/src/main/java/org/apache/jackrabbit/oak/run/ClusterNodesCommand.java
@@ -41,7 +41,7 @@ import joptsimple.OptionSpec;
class ClusterNodesCommand implements Command {
@Override
- public void execute(String... args) throws Exception {
+ public int execute(String... args) throws Exception {
Closer closer = Utils.createCloserWithShutdownHook();
try {
String h = "clusternodes mongodb://host:port/database|jdbc:...";
@@ -83,6 +83,7 @@ class ClusterNodesCommand implements Command {
} finally {
closer.close();
}
+ return 0;
}
private static void print(List<ClusterNodeInfoDocument> docs, boolean verbose) {
diff --git a/oak-run/src/main/java/org/apache/jackrabbit/oak/run/CompactCommand.java b/oak-run/src/main/java/org/apache/jackrabbit/oak/run/CompactCommand.java
index 77f9dcda04..23c97cd171 100644
--- a/oak-run/src/main/java/org/apache/jackrabbit/oak/run/CompactCommand.java
+++ b/oak-run/src/main/java/org/apache/jackrabbit/oak/run/CompactCommand.java
@@ -37,7 +37,7 @@ class CompactCommand implements Command {
}
@Override
- public void execute(String... args) throws Exception {
+ public int execute(String... args) throws Exception {
OptionParser parser = new OptionParser();
OptionSpec<String> directoryArg = parser.nonOptions(
"Path/URI to TAR/remote segment store (required)").ofType(String.class);
@@ -82,7 +82,7 @@ class CompactCommand implements Command {
if (path == null) {
System.err.println("Compact a file store. Usage: compact [path] <options>");
parser.printHelpOn(System.err);
- System.exit(-1);
+ return -1;
}
int code = 0;
@@ -141,7 +141,7 @@ class CompactCommand implements Command {
.run();
}
- System.exit(code);
+ return code;
}
}
diff --git a/oak-run/src/main/java/org/apache/jackrabbit/oak/run/CompositePrepareCommand.java b/oak-run/src/main/java/org/apache/jackrabbit/oak/run/CompositePrepareCommand.java
index 5cce6c4f34..66102e9515 100644
--- a/oak-run/src/main/java/org/apache/jackrabbit/oak/run/CompositePrepareCommand.java
+++ b/oak-run/src/main/java/org/apache/jackrabbit/oak/run/CompositePrepareCommand.java
@@ -42,7 +42,7 @@ import org.slf4j.LoggerFactory;
public class CompositePrepareCommand implements Command {
@Override
- public void execute(String... args) throws Exception {
+ public int execute(String... args) throws Exception {
OptionParser parser = new OptionParser();
OptionSpec<?> help = parser
@@ -77,6 +77,7 @@ public class CompositePrepareCommand implements Command {
} finally {
fs.close();
}
+ return 0;
}
public static class OakResourceTransformer {
diff --git a/oak-run/src/main/java/org/apache/jackrabbit/oak/run/ConsoleCommand.java b/oak-run/src/main/java/org/apache/jackrabbit/oak/run/ConsoleCommand.java
index 052341de3e..2bb1e8a259 100644
--- a/oak-run/src/main/java/org/apache/jackrabbit/oak/run/ConsoleCommand.java
+++ b/oak-run/src/main/java/org/apache/jackrabbit/oak/run/ConsoleCommand.java
@@ -23,8 +23,8 @@ import org.apache.jackrabbit.oak.console.Console;
class ConsoleCommand implements Command {
@Override
- public void execute(String... args) throws Exception {
- Console.main(args);
+ public int execute(String... args) throws Exception {
+ return Console.main(args);
}
}
diff --git a/oak-run/src/main/java/org/apache/jackrabbit/oak/run/DataStoreCacheUpgradeCommand.java b/oak-run/src/main/java/org/apache/jackrabbit/oak/run/DataStoreCacheUpgradeCommand.java
index 3755064877..a835a2d0cd 100644
--- a/oak-run/src/main/java/org/apache/jackrabbit/oak/run/DataStoreCacheUpgradeCommand.java
+++ b/oak-run/src/main/java/org/apache/jackrabbit/oak/run/DataStoreCacheUpgradeCommand.java
@@ -32,7 +32,7 @@ import static java.util.Arrays.asList;
*/
public class DataStoreCacheUpgradeCommand implements Command {
@Override
- public void execute(String... args) throws Exception {
+ public int execute(String... args) throws Exception {
OptionParser parser = new OptionParser();
try {
@@ -56,12 +56,12 @@ public class DataStoreCacheUpgradeCommand implements Command {
} catch (Exception e) {
System.err.println(e);
parser.printHelpOn(System.err);
- return;
+ return 1;
}
if (options.has(help)) {
parser.printHelpOn(System.out);
- return;
+ return 1;
}
File homeDir = options.valueOf(homeDirOption);
@@ -77,6 +77,8 @@ public class DataStoreCacheUpgradeCommand implements Command {
} catch (Exception e) {
e.printStackTrace();
System.err.println("Error upgrading cache");
+ return 1;
}
+ return 0;
}
}
diff --git a/oak-run/src/main/java/org/apache/jackrabbit/oak/run/DataStoreCheckCommand.java b/oak-run/src/main/java/org/apache/jackrabbit/oak/run/DataStoreCheckCommand.java
index 726fe143e9..ff2a797422 100644
--- a/oak-run/src/main/java/org/apache/jackrabbit/oak/run/DataStoreCheckCommand.java
+++ b/oak-run/src/main/java/org/apache/jackrabbit/oak/run/DataStoreCheckCommand.java
@@ -110,8 +110,8 @@ public class DataStoreCheckCommand implements Command {
};
@Override
- public void execute(String... args) throws Exception {
- System.exit(checkDataStore(args));
+ public int execute(String... args) throws Exception {
+ return checkDataStore(args);
}
static int checkDataStore(String... args) {
diff --git a/oak-run/src/main/java/org/apache/jackrabbit/oak/run/DataStoreCommand.java b/oak-run/src/main/java/org/apache/jackrabbit/oak/run/DataStoreCommand.java
index a839aa53b2..316b428099 100644
--- a/oak-run/src/main/java/org/apache/jackrabbit/oak/run/DataStoreCommand.java
+++ b/oak-run/src/main/java/org/apache/jackrabbit/oak/run/DataStoreCommand.java
@@ -122,7 +122,7 @@ public class DataStoreCommand implements Command {
};
- @Override public void execute(String... args) throws Exception {
+ @Override public int execute(String... args) throws Exception {
OptionParser parser = new OptionParser();
opts = new Options();
@@ -152,7 +152,7 @@ public class DataStoreCommand implements Command {
log.info("Node Store fixture created and registered");
if (!checkParameters(dataStoreOpts, opts, fixture, parser)) {
- return;
+ return 1;
}
execute(fixture, dataStoreOpts, opts, closer);
success = true;
@@ -164,8 +164,9 @@ public class DataStoreCommand implements Command {
}
if (!success) {
- System.exit(1);
+ return 1;
}
+ return 0;
}
private static boolean checkParameters(DataStoreOptions dataStoreOpts, Options opts, NodeStoreFixture fixture,
diff --git a/oak-run/src/main/java/org/apache/jackrabbit/oak/run/DebugCommand.java b/oak-run/src/main/java/org/apache/jackrabbit/oak/run/DebugCommand.java
index dbf63329db..722c736c13 100644
--- a/oak-run/src/main/java/org/apache/jackrabbit/oak/run/DebugCommand.java
+++ b/oak-run/src/main/java/org/apache/jackrabbit/oak/run/DebugCommand.java
@@ -32,17 +32,17 @@ import org.apache.jackrabbit.oak.segment.tool.DebugTars;
class DebugCommand implements Command {
@Override
- public void execute(String... args) throws Exception {
+ public int execute(String... args) throws Exception {
OptionParser parser = new OptionParser();
OptionSpec<String> nonOptions = parser.nonOptions().ofType(String.class);
OptionSet options = parser.parse(args);
if (options.valuesOf(nonOptions).isEmpty()) {
System.err.println("usage: debug <path> [id...]");
- System.exit(1);
+ return 1;
}
- System.exit(debug(options.valuesOf(nonOptions)));
+ return debug(options.valuesOf(nonOptions));
}
private static int debug(List<String> args) {
diff --git a/oak-run/src/main/java/org/apache/jackrabbit/oak/run/ExploreCommand.java b/oak-run/src/main/java/org/apache/jackrabbit/oak/run/ExploreCommand.java
index e4d60dd46c..5b533d5d36 100644
--- a/oak-run/src/main/java/org/apache/jackrabbit/oak/run/ExploreCommand.java
+++ b/oak-run/src/main/java/org/apache/jackrabbit/oak/run/ExploreCommand.java
@@ -23,8 +23,8 @@ import org.apache.jackrabbit.oak.explorer.Explorer;
class ExploreCommand implements Command {
@Override
- public void execute(String... args) throws Exception {
- Explorer.main(args);
+ public int execute(String... args) throws Exception {
+ return Explorer.main(args);
}
}
diff --git a/oak-run/src/main/java/org/apache/jackrabbit/oak/run/FileStoreDiffCommand.java b/oak-run/src/main/java/org/apache/jackrabbit/oak/run/FileStoreDiffCommand.java
index 5b0871b216..ae5792d8d4 100644
--- a/oak-run/src/main/java/org/apache/jackrabbit/oak/run/FileStoreDiffCommand.java
+++ b/oak-run/src/main/java/org/apache/jackrabbit/oak/run/FileStoreDiffCommand.java
@@ -31,7 +31,7 @@ import org.apache.jackrabbit.oak.segment.tool.Revisions;
class FileStoreDiffCommand implements Command {
@Override
- public void execute(String... args) throws Exception {
+ public int execute(String... args) throws Exception {
OptionParser parser = new OptionParser();
OptionSpec<?> help = parser.acceptsAll(asList("h", "?", "help"), "show help").forHelp();
OptionSpec<File> storeO = parser.nonOptions("Path to segment store (required)").ofType(File.class);
@@ -52,7 +52,7 @@ class FileStoreDiffCommand implements Command {
if (store == null) {
parser.printHelpOn(System.out);
- System.exit(1);
+ return 1;
}
File out = outO.value(options);
@@ -81,7 +81,7 @@ class FileStoreDiffCommand implements Command {
.build()
.run();
}
- System.exit(statusCode);
+ return statusCode;
}
private File defaultOutFile() {
diff --git a/oak-run/src/main/java/org/apache/jackrabbit/oak/run/FrozenNodeRefsByScanningCommand.java b/oak-run/src/main/java/org/apache/jackrabbit/oak/run/FrozenNodeRefsByScanningCommand.java
index e2cdea4ed0..323f664f10 100644
--- a/oak-run/src/main/java/org/apache/jackrabbit/oak/run/FrozenNodeRefsByScanningCommand.java
+++ b/oak-run/src/main/java/org/apache/jackrabbit/oak/run/FrozenNodeRefsByScanningCommand.java
@@ -96,7 +96,7 @@ public class FrozenNodeRefsByScanningCommand implements Command {
private final String summary = "Scans repository and lists all references to nt:frozenNode";
@Override
- public void execute(String... args) throws Exception {
+ public int execute(String... args) throws Exception {
OptionParser parser = new OptionParser();
Options opts = new Options();
@@ -117,10 +117,11 @@ public class FrozenNodeRefsByScanningCommand implements Command {
int count = uuidscan(userOption, passwordOption, options, nodeStoreFixture);
if (count > 0) {
System.err.println("FAILURE: " + count + " Reference(s) (in any uuid formatted property value) to nt:frozenNode found.");
- System.exit(1);
+ return 1;
} else {
System.out.println("SUCCESS: No references (in any uuid formatted property value) to nt:frozenNode found.");
}
+ return 0;
}
/**
diff --git a/oak-run/src/main/java/org/apache/jackrabbit/oak/run/FrozenNodeRefsUsingIndexCommand.java b/oak-run/src/main/java/org/apache/jackrabbit/oak/run/FrozenNodeRefsUsingIndexCommand.java
index 7f0dad2a42..7959929536 100644
--- a/oak-run/src/main/java/org/apache/jackrabbit/oak/run/FrozenNodeRefsUsingIndexCommand.java
+++ b/oak-run/src/main/java/org/apache/jackrabbit/oak/run/FrozenNodeRefsUsingIndexCommand.java
@@ -50,16 +50,17 @@ public class FrozenNodeRefsUsingIndexCommand implements Command {
public static final String NAME = "frozennoderefsusingindex";
@Override
- public void execute(String... args) throws Exception {
+ public int execute(String... args) throws Exception {
String help = NAME + " {<path>|<mongo-uri>|<jdbc-uri>} [options]";
Utils.NodeStoreOptions nopts = new Utils.NodeStoreOptions(help).parse(args);
int count = countNtFrozenNodeReferences(nopts);
if (count > 0) {
System.err.println("FAILURE: " + count + " Reference(s) (in /oak:index/references) to nt:frozenNode found.");
- System.exit(1);
+ return 1;
} else {
System.out.println("SUCCESS: No references (in /oak:index/references) to nt:frozenNode found.");
}
+ return 0;
}
/**
diff --git a/oak-run/src/main/java/org/apache/jackrabbit/oak/run/GarbageCommand.java b/oak-run/src/main/java/org/apache/jackrabbit/oak/run/GarbageCommand.java
index 4787f65676..39264674c5 100644
--- a/oak-run/src/main/java/org/apache/jackrabbit/oak/run/GarbageCommand.java
+++ b/oak-run/src/main/java/org/apache/jackrabbit/oak/run/GarbageCommand.java
@@ -26,14 +26,14 @@ import org.apache.jackrabbit.oak.spi.state.NodeStore;
class GarbageCommand implements Command {
@Override
- public void execute(String... args) throws Exception {
+ public int execute(String... args) throws Exception {
Closer closer = Utils.createCloserWithShutdownHook();
String h = "garbage mongodb://host:port/database | jdbc:...";
try {
NodeStore store = Utils.bootstrapNodeStore(args, closer, h);
if (!(store instanceof DocumentNodeStore)) {
System.err.println("Garbage mode only available for DocumentNodeStore");
- System.exit(1);
+ return 1;
}
DocumentNodeStore dns = (DocumentNodeStore) store;
@@ -43,6 +43,7 @@ class GarbageCommand implements Command {
} finally {
closer.close();
}
+ return 0;
}
}
\ No newline at end of file
diff --git a/oak-run/src/main/java/org/apache/jackrabbit/oak/run/HelpCommand.java b/oak-run/src/main/java/org/apache/jackrabbit/oak/run/HelpCommand.java
index ef14133599..d899eb13ab 100644
--- a/oak-run/src/main/java/org/apache/jackrabbit/oak/run/HelpCommand.java
+++ b/oak-run/src/main/java/org/apache/jackrabbit/oak/run/HelpCommand.java
@@ -25,10 +25,10 @@ import static org.apache.jackrabbit.oak.run.AvailableModes.MODES;
class HelpCommand implements Command {
@Override
- public void execute(String... args) throws Exception {
+ public int execute(String... args) throws Exception {
System.err.print("Available run modes: ");
System.err.println(Joiner.on(", ").join(MODES.getModes()));
- System.exit(1);
+ return 1;
}
}
\ No newline at end of file
diff --git a/oak-run/src/main/java/org/apache/jackrabbit/oak/run/HistoryCommand.java b/oak-run/src/main/java/org/apache/jackrabbit/oak/run/HistoryCommand.java
index d70c56db04..91fc09b875 100644
--- a/oak-run/src/main/java/org/apache/jackrabbit/oak/run/HistoryCommand.java
+++ b/oak-run/src/main/java/org/apache/jackrabbit/oak/run/HistoryCommand.java
@@ -30,7 +30,7 @@ import org.apache.jackrabbit.oak.segment.tool.History;
class HistoryCommand implements Command {
@Override
- public void execute(String... args) throws Exception {
+ public int execute(String... args) throws Exception {
OptionParser parser = new OptionParser();
OptionSpec<File> directoryArg = parser.nonOptions(
"Path to segment store (required)").ofType(File.class);
@@ -49,7 +49,7 @@ class HistoryCommand implements Command {
if (directory == null) {
System.err.println("Trace the history of a path. Usage: history [File] <options>");
parser.printHelpOn(System.err);
- System.exit(-1);
+ return -1;
}
String path = pathArg.value(options);
@@ -64,7 +64,7 @@ class HistoryCommand implements Command {
.withDepth(depth)
.build()
.run();
- System.exit(returnCode);
+ return returnCode;
}
}
\ No newline at end of file
diff --git a/oak-run/src/main/java/org/apache/jackrabbit/oak/run/IOTraceCommand.java b/oak-run/src/main/java/org/apache/jackrabbit/oak/run/IOTraceCommand.java
index 09716e57c6..1886fce476 100644
--- a/oak-run/src/main/java/org/apache/jackrabbit/oak/run/IOTraceCommand.java
+++ b/oak-run/src/main/java/org/apache/jackrabbit/oak/run/IOTraceCommand.java
@@ -60,7 +60,7 @@ class IOTraceCommand implements Command {
public static final String NAME = "iotrace";
@Override
- public void execute(String... args) throws Exception {
+ public int execute(String... args) throws Exception {
OptionParser optionParser = new OptionParser();
ArgumentAcceptingOptionSpec<Traces> traceOption = optionParser
.accepts("trace", "type of the traversal. Either of " + Arrays.toString(Traces.values()))
@@ -151,8 +151,9 @@ class IOTraceCommand implements Command {
trace.collectIOTrace(segmentStore, mmap, segmentCache, output);
} catch (OptionException e) {
printUsage(optionParser, System.err, e.getMessage());
- System.exit(1);
+ return 1;
}
+ return 0;
}
private static void printUsage(
diff --git a/oak-run/src/main/java/org/apache/jackrabbit/oak/run/IndexMergeCommand.java b/oak-run/src/main/java/org/apache/jackrabbit/oak/run/IndexMergeCommand.java
index 841667c5a5..d46d211998 100644
--- a/oak-run/src/main/java/org/apache/jackrabbit/oak/run/IndexMergeCommand.java
+++ b/oak-run/src/main/java/org/apache/jackrabbit/oak/run/IndexMergeCommand.java
@@ -24,8 +24,8 @@ import org.apache.jackrabbit.oak.run.commons.Command;
public class IndexMergeCommand implements Command {
@Override
- public void execute(String... args) throws Exception {
- new IndexMerge().execute(args);
+ public int execute(String... args) throws Exception {
+ return new IndexMerge().execute(args);
}
}
diff --git a/oak-run/src/main/java/org/apache/jackrabbit/oak/run/JsonIndexCommand.java b/oak-run/src/main/java/org/apache/jackrabbit/oak/run/JsonIndexCommand.java
index 0b6097bb9c..efc484909b 100644
--- a/oak-run/src/main/java/org/apache/jackrabbit/oak/run/JsonIndexCommand.java
+++ b/oak-run/src/main/java/org/apache/jackrabbit/oak/run/JsonIndexCommand.java
@@ -85,7 +85,7 @@ public class JsonIndexCommand implements Command {
private final Map<String, Object> data = new HashMap<String, Object>();
@Override
- public void execute(String... args) throws Exception {
+ public int execute(String... args) throws Exception {
OptionParser parser = new OptionParser();
OptionSpec<String> scriptOption = parser
.accepts("script", "Path to Script").withOptionalArg()
@@ -114,6 +114,7 @@ public class JsonIndexCommand implements Command {
nodeStoreFixture.close();
reader.close();
}
+ return 0;
}
private LineNumberReader openScriptReader(String script)
diff --git a/oak-run/src/main/java/org/apache/jackrabbit/oak/run/PersistentCacheCommand.java b/oak-run/src/main/java/org/apache/jackrabbit/oak/run/PersistentCacheCommand.java
index a82da756f3..71ff817a51 100644
--- a/oak-run/src/main/java/org/apache/jackrabbit/oak/run/PersistentCacheCommand.java
+++ b/oak-run/src/main/java/org/apache/jackrabbit/oak/run/PersistentCacheCommand.java
@@ -41,7 +41,7 @@ public class PersistentCacheCommand implements Command {
@SuppressWarnings("unchecked")
@Override
- public void execute(String... args) throws Exception {
+ public int execute(String... args) throws Exception {
OptionParser parser = new OptionParser();
OptionSpec<String> pathSpec = parser.accepts("path",
"only list entries starting with this path prefix").
@@ -77,7 +77,7 @@ public class PersistentCacheCommand implements Command {
"create table cache as select * from csvread('cache.csv', null, 'fieldDelimiter=')");
System.out.println();
parser.printHelpOn(System.out);
- return;
+ return 1;
}
String path = pathSpec.value(options);
String revision = revisionSpec.value(options);
@@ -93,6 +93,7 @@ public class PersistentCacheCommand implements Command {
dump(write, path, revision, map, fileName, values, raw);
}
write.flush();
+ return 0;
}
static void dump(PrintWriter write, String path, String revision,
diff --git a/oak-run/src/main/java/org/apache/jackrabbit/oak/run/PurgeOldIndexVersionCommand.java b/oak-run/src/main/java/org/apache/jackrabbit/oak/run/PurgeOldIndexVersionCommand.java
index 160db17284..adc15eebe7 100644
--- a/oak-run/src/main/java/org/apache/jackrabbit/oak/run/PurgeOldIndexVersionCommand.java
+++ b/oak-run/src/main/java/org/apache/jackrabbit/oak/run/PurgeOldIndexVersionCommand.java
@@ -41,7 +41,7 @@ public class PurgeOldIndexVersionCommand implements Command {
private final static String DEFAULT_INDEX_PATH = "/oak:index";
@Override
- public void execute(String... args) throws Exception {
+ public int execute(String... args) throws Exception {
Options opts = parseCommandLineParams(args);
try (NodeStoreFixture fixture = NodeStoreFixtureProvider.create(opts)) {
if (!opts.getCommonOpts().isReadWrite()) {
@@ -49,6 +49,7 @@ public class PurgeOldIndexVersionCommand implements Command {
}
new PurgeOldIndexVersion().execute(fixture.getStore(), opts.getCommonOpts().isReadWrite(), threshold, indexPaths);
}
+ return 0;
}
private Options parseCommandLineParams(String... args) throws Exception {
diff --git a/oak-run/src/main/java/org/apache/jackrabbit/oak/run/RDBDDLDumpCommand.java b/oak-run/src/main/java/org/apache/jackrabbit/oak/run/RDBDDLDumpCommand.java
index bd6018b094..66f3e0afce 100644
--- a/oak-run/src/main/java/org/apache/jackrabbit/oak/run/RDBDDLDumpCommand.java
+++ b/oak-run/src/main/java/org/apache/jackrabbit/oak/run/RDBDDLDumpCommand.java
@@ -29,7 +29,7 @@ import joptsimple.OptionSpec;
public class RDBDDLDumpCommand implements Command {
@Override
- public void execute(String... args) throws Exception {
+ public int execute(String... args) throws Exception {
OptionParser parser = new OptionParser();
OptionSpec<Void> helpOption = parser.accepts("help", "show help").forHelp();
OptionSpec<String> dbOption = parser.accepts("db", "Database type: one of " + RDBHelper.getSupportedDatabases())
@@ -51,14 +51,14 @@ public class RDBDDLDumpCommand implements Command {
Integer upgrade = upgradeSchemaOption.value(options);
RDBHelper.dump(db, initial, upgrade);
}
- System.exit(0);
+ return 0;
} catch (joptsimple.OptionException ex) {
System.err.println(ex.getLocalizedMessage());
System.err.println(Arrays.toString(args));
System.err.println();
System.err.println("Options:");
parser.printHelpOn(System.err);
- System.exit(2);
+ return 2;
}
}
}
diff --git a/oak-run/src/main/java/org/apache/jackrabbit/oak/run/RecoverJournalCommand.java b/oak-run/src/main/java/org/apache/jackrabbit/oak/run/RecoverJournalCommand.java
index f6eeaa4cdd..50922ea6d5 100644
--- a/oak-run/src/main/java/org/apache/jackrabbit/oak/run/RecoverJournalCommand.java
+++ b/oak-run/src/main/java/org/apache/jackrabbit/oak/run/RecoverJournalCommand.java
@@ -32,7 +32,7 @@ import org.apache.jackrabbit.oak.segment.tool.RecoverJournal;
class RecoverJournalCommand implements Command {
@Override
- public void execute(String... args) throws Exception {
+ public int execute(String... args) throws Exception {
OptionParser options = new OptionParser();
OptionSpec<?> help = options.acceptsAll(asList("h", "help"), "Prints help and exits");
OptionSpec<File> dir = options.nonOptions()
@@ -42,17 +42,17 @@ class RecoverJournalCommand implements Command {
if (parsed.has(help)) {
options.printHelpOn(System.out);
- System.exit(0);
+ return 0;
}
if (parsed.valuesOf(dir).size() == 0) {
System.err.println("Segment Store path not specified");
- System.exit(1);
+ return 1;
}
if (parsed.valuesOf(dir).size() > 1) {
System.err.println("Too many Segment Store paths specified");
- System.exit(1);
+ return 1;
}
int code = RecoverJournal.builder()
@@ -61,7 +61,7 @@ class RecoverJournalCommand implements Command {
.withErr(System.err)
.build()
.run();
- System.exit(code);
+ return code;
}
}
diff --git a/oak-run/src/main/java/org/apache/jackrabbit/oak/run/RecoveryCommand.java b/oak-run/src/main/java/org/apache/jackrabbit/oak/run/RecoveryCommand.java
index 32978cd05d..40329380c8 100644
--- a/oak-run/src/main/java/org/apache/jackrabbit/oak/run/RecoveryCommand.java
+++ b/oak-run/src/main/java/org/apache/jackrabbit/oak/run/RecoveryCommand.java
@@ -44,7 +44,7 @@ class RecoveryCommand implements Command {
MapFactory oldf = MapFactory.getInstance();
@Override
- public void execute(String... args) throws Exception {
+ public int execute(String... args) throws Exception {
Closer closer = Utils.createCloserWithShutdownHook();
MapDBMapFactory mdbmf = new MapDBMapFactory();
closer.register(mdbmf);
@@ -96,7 +96,7 @@ class RecoveryCommand implements Command {
if (agent == null || seeker == null) {
System.err.println("Recovery only available for MongoDocumentStore and RDBDocumentStore (this: "
+ ds.getClass().getName() + ")");
- System.exit(1);
+ return 1;
}
if (builder.getClusterId() == 0) {
@@ -114,7 +114,7 @@ class RecoveryCommand implements Command {
catch (Throwable e) {
e.printStackTrace(System.err);
}
- System.exit(1);
+ return 1;
}
Iterable<NodeDocument> docs = seeker.getCandidates(0);
@@ -129,5 +129,6 @@ class RecoveryCommand implements Command {
closer.close();
MapFactory.setInstance(oldf);
}
+ return 0;
}
}
diff --git a/oak-run/src/main/java/org/apache/jackrabbit/oak/run/RepairCommand.java b/oak-run/src/main/java/org/apache/jackrabbit/oak/run/RepairCommand.java
index c84ed47eee..6446d1473e 100644
--- a/oak-run/src/main/java/org/apache/jackrabbit/oak/run/RepairCommand.java
+++ b/oak-run/src/main/java/org/apache/jackrabbit/oak/run/RepairCommand.java
@@ -27,19 +27,19 @@ import org.apache.jackrabbit.oak.spi.state.NodeStore;
class RepairCommand implements Command {
@Override
- public void execute(String... args) throws Exception {
+ public int execute(String... args) throws Exception {
Closer closer = Utils.createCloserWithShutdownHook();
String h = "repair mongodb://host:port/database path";
try {
NodeStore store = Utils.bootstrapNodeStore(args, closer, h);
if (!(store instanceof DocumentNodeStore)) {
System.err.println("Repair only available for DocumentNodeStore");
- System.exit(1);
+ return 1;
}
DocumentNodeStore dns = (DocumentNodeStore) store;
if (!(dns.getDocumentStore() instanceof MongoDocumentStore)) {
System.err.println("Repair only available for MongoDocumentStore");
- System.exit(1);
+ return 1;
}
MongoDocumentStore docStore = (MongoDocumentStore) dns.getDocumentStore();
@@ -50,6 +50,7 @@ class RepairCommand implements Command {
} finally {
closer.close();
}
+ return 0;
}
}
diff --git a/oak-run/src/main/java/org/apache/jackrabbit/oak/run/ResetClusterIdCommand.java b/oak-run/src/main/java/org/apache/jackrabbit/oak/run/ResetClusterIdCommand.java
index 4c4ee993c0..436e2b5256 100644
--- a/oak-run/src/main/java/org/apache/jackrabbit/oak/run/ResetClusterIdCommand.java
+++ b/oak-run/src/main/java/org/apache/jackrabbit/oak/run/ResetClusterIdCommand.java
@@ -72,7 +72,7 @@ class ResetClusterIdCommand implements Command {
}
@Override
- public void execute(String... args) throws Exception {
+ public int execute(String... args) throws Exception {
String help = "resetclusterid {<path>|<mongo-uri>|<jdbc-uri>}";
Utils.NodeStoreOptions opts = new Utils.NodeStoreOptions(help).parse(args);
@@ -85,5 +85,6 @@ class ResetClusterIdCommand implements Command {
} finally {
closer.close();
}
+ return 0;
}
}
diff --git a/oak-run/src/main/java/org/apache/jackrabbit/oak/run/RestoreCommand.java b/oak-run/src/main/java/org/apache/jackrabbit/oak/run/RestoreCommand.java
index 36bec470d1..67bd6e30e4 100644
--- a/oak-run/src/main/java/org/apache/jackrabbit/oak/run/RestoreCommand.java
+++ b/oak-run/src/main/java/org/apache/jackrabbit/oak/run/RestoreCommand.java
@@ -27,13 +27,13 @@ import org.apache.jackrabbit.oak.segment.tool.Restore;
class RestoreCommand implements Command {
@Override
- public void execute(String... args) throws Exception {
+ public int execute(String... args) throws Exception {
OptionParser parser = new OptionParser();
OptionSet options = parser.parse(args);
if (options.nonOptionArguments().size() < 2) {
System.err.println("This command requires a target and a source folder");
- System.exit(1);
+ return 1;
}
File target = new File(options.nonOptionArguments().get(0).toString());
@@ -44,7 +44,7 @@ class RestoreCommand implements Command {
.withTarget(target)
.build()
.run();
- System.exit(statusCode);
+ return statusCode;
}
}
\ No newline at end of file
diff --git a/oak-run/src/main/java/org/apache/jackrabbit/oak/run/RevisionsCommand.java b/oak-run/src/main/java/org/apache/jackrabbit/oak/run/RevisionsCommand.java
index 21e5aff706..f39795d622 100644
--- a/oak-run/src/main/java/org/apache/jackrabbit/oak/run/RevisionsCommand.java
+++ b/oak-run/src/main/java/org/apache/jackrabbit/oak/run/RevisionsCommand.java
@@ -165,7 +165,7 @@ public class RevisionsCommand implements Command {
}
@Override
- public void execute(String... args) throws Exception {
+ public int execute(String... args) throws Exception {
Closer closer = Closer.create();
try {
RevisionsOptions options = new RevisionsOptions(USAGE).parse(args);
@@ -182,6 +182,7 @@ public class RevisionsCommand implements Command {
sweep(options, closer);
} else {
System.err.println("unknown revisions command: " + subCmd);
+ return 1;
}
} catch (Throwable e) {
LOG.error("Command failed", e);
@@ -189,6 +190,7 @@ public class RevisionsCommand implements Command {
} finally {
closer.close();
}
+ return 0;
}
private void setupLoggers(boolean verbose) {
diff --git a/oak-run/src/main/java/org/apache/jackrabbit/oak/run/SearchNodesCommand.java b/oak-run/src/main/java/org/apache/jackrabbit/oak/run/SearchNodesCommand.java
index da3bd2514b..51de3b3e63 100644
--- a/oak-run/src/main/java/org/apache/jackrabbit/oak/run/SearchNodesCommand.java
+++ b/oak-run/src/main/java/org/apache/jackrabbit/oak/run/SearchNodesCommand.java
@@ -34,7 +34,7 @@ import org.apache.jackrabbit.oak.segment.tool.SearchNodes.Output;
class SearchNodesCommand implements Command {
@Override
- public void execute(String... args) throws Exception {
+ public int execute(String... args) throws Exception {
OptionParser options = new OptionParser();
OptionSpec<String> property = options.acceptsAll(asList("p", "property"), "Matches a property name")
.withRequiredArg()
@@ -57,17 +57,17 @@ class SearchNodesCommand implements Command {
if (parsed.has(help)) {
options.printHelpOn(System.out);
- System.exit(0);
+ return 0;
}
if (parsed.valuesOf(dir).size() == 0) {
System.err.println("Segment Store path not specified");
- System.exit(1);
+ return 1;
}
if (parsed.valuesOf(dir).size() > 1) {
System.err.println("Too many Segment Store paths specified");
- System.exit(1);
+ return 1;
}
Builder builder = SearchNodes.builder()
@@ -87,7 +87,7 @@ class SearchNodesCommand implements Command {
break;
default:
System.err.printf("Unrecognized output: %s\n", v);
- System.exit(1);
+ return 1;
}
}
@@ -104,13 +104,13 @@ class SearchNodesCommand implements Command {
if (parts.length != 2) {
System.err.println("Invalid property value specified: " + v);
- System.exit(1);
+ return 1;
}
builder.withValue(parts[0], parts[1]);
}
- System.exit(builder.build().run());
+ return builder.build().run();
}
}
diff --git a/oak-run/src/main/java/org/apache/jackrabbit/oak/run/SegmentCopyCommand.java b/oak-run/src/main/java/org/apache/jackrabbit/oak/run/SegmentCopyCommand.java
index b2b9219d41..d0cdf733ec 100644
--- a/oak-run/src/main/java/org/apache/jackrabbit/oak/run/SegmentCopyCommand.java
+++ b/oak-run/src/main/java/org/apache/jackrabbit/oak/run/SegmentCopyCommand.java
@@ -31,7 +31,7 @@ import joptsimple.OptionSet;
class SegmentCopyCommand implements Command {
@Override
- public void execute(String... args) throws Exception {
+ public int execute(String... args) throws Exception {
OptionParser parser = new OptionParser();
OptionSpec<Integer> last = parser.accepts("last", "define the number of revisions to be copied (default: 1)")
@@ -69,7 +69,7 @@ class SegmentCopyCommand implements Command {
builder.withRevisionsCount(last.value(options) != null ? last.value(options) : 1);
}
- System.exit(builder.build().run());
+ return builder.build().run();
} else {
SegmentCopy.Builder builder = SegmentCopy.builder()
.withSource(source)
@@ -86,7 +86,7 @@ class SegmentCopyCommand implements Command {
builder.withFlat(flat.value(options));
}
- System.exit(builder.build().run());
+ return builder.build().run();
}
}
diff --git a/oak-run/src/main/java/org/apache/jackrabbit/oak/run/ServerCommand.java b/oak-run/src/main/java/org/apache/jackrabbit/oak/run/ServerCommand.java
index 1926d9a621..4458d7022f 100644
--- a/oak-run/src/main/java/org/apache/jackrabbit/oak/run/ServerCommand.java
+++ b/oak-run/src/main/java/org/apache/jackrabbit/oak/run/ServerCommand.java
@@ -56,7 +56,7 @@ class ServerCommand implements Command {
}
@Override
- public void execute(String... args) throws Exception {
+ public int execute(String... args) throws Exception {
OptionParser parser = new OptionParser();
OptionSpec<Integer> cache = parser.accepts("cache", "cache size (MB)").withRequiredArg().ofType(Integer.class).defaultsTo(100);
@@ -84,7 +84,7 @@ class ServerCommand implements Command {
if (options.has(help)) {
parser.printHelpOn(System.out);
- System.exit(0);
+ return 0;
}
OakFixture oakFixture;
@@ -131,6 +131,7 @@ class ServerCommand implements Command {
}
startOakServer(oakFixture, uri, cIds);
+ return 0;
}
}
\ No newline at end of file
diff --git a/oak-run/src/main/java/org/apache/jackrabbit/oak/run/ThreadDumpCommand.java b/oak-run/src/main/java/org/apache/jackrabbit/oak/run/ThreadDumpCommand.java
index 4b97b6b4a1..4e560234cb 100644
--- a/oak-run/src/main/java/org/apache/jackrabbit/oak/run/ThreadDumpCommand.java
+++ b/oak-run/src/main/java/org/apache/jackrabbit/oak/run/ThreadDumpCommand.java
@@ -55,7 +55,7 @@ public class ThreadDumpCommand implements Command {
@SuppressWarnings("unchecked")
@Override
- public void execute(String... args) throws Exception {
+ public int execute(String... args) throws Exception {
OptionParser parser = new OptionParser();
OptionSpec<Void> convertSpec = parser.accepts("convert",
"convert the thread dumps to the standard format");
@@ -85,7 +85,7 @@ public class ThreadDumpCommand implements Command {
System.out.println("Mode: " + THREADDUMP);
System.out.println();
parser.printHelpOn(System.out);
- return;
+ return 1;
}
boolean convert = options.has(convertSpec);
boolean filter = options.has(filterSpec);
@@ -132,6 +132,7 @@ public class ThreadDumpCommand implements Command {
Profiler.main(list.toArray(new String[0]));
}
}
+ return 0;
}
private static File combineAndExpandFiles(File file) throws IOException {
diff --git a/oak-run/src/main/java/org/apache/jackrabbit/oak/run/TikaCommand.java b/oak-run/src/main/java/org/apache/jackrabbit/oak/run/TikaCommand.java
index 17d9bb1a9c..5263348263 100644
--- a/oak-run/src/main/java/org/apache/jackrabbit/oak/run/TikaCommand.java
+++ b/oak-run/src/main/java/org/apache/jackrabbit/oak/run/TikaCommand.java
@@ -23,8 +23,8 @@ import org.apache.jackrabbit.oak.plugins.tika.TextExtractorMain;
class TikaCommand implements Command {
@Override
- public void execute(String... args) throws Exception {
- TextExtractorMain.main(args);
+ public int execute(String... args) throws Exception {
+ return TextExtractorMain.main(args);
}
}
diff --git a/oak-run/src/main/java/org/apache/jackrabbit/oak/run/UnlockUpgradeCommand.java b/oak-run/src/main/java/org/apache/jackrabbit/oak/run/UnlockUpgradeCommand.java
index a266a84fd7..6dd57cfa83 100644
--- a/oak-run/src/main/java/org/apache/jackrabbit/oak/run/UnlockUpgradeCommand.java
+++ b/oak-run/src/main/java/org/apache/jackrabbit/oak/run/UnlockUpgradeCommand.java
@@ -49,7 +49,7 @@ import static org.apache.jackrabbit.oak.plugins.document.DocumentNodeStore.VERSI
class UnlockUpgradeCommand implements Command {
@Override
- public void execute(String... args) throws Exception {
+ public int execute(String... args) throws Exception {
OptionParser parser = new OptionParser();
// RDB specific options
OptionSpec<String> rdbjdbcuser = parser.accepts("rdbjdbcuser", "RDB JDBC user").withOptionalArg().defaultsTo("");
@@ -63,12 +63,12 @@ class UnlockUpgradeCommand implements Command {
if (options.has(help)) {
parser.printHelpOn(System.out);
- return;
+ return 0;
}
if (nonOptions.isEmpty()) {
parser.printHelpOn(System.err);
- return;
+ return 0;
}
DocumentStore store = null;
@@ -97,10 +97,12 @@ class UnlockUpgradeCommand implements Command {
}
} catch (DocumentStoreException e) {
System.err.println(e.getMessage());
+ return 1;
} finally {
if (store != null) {
store.dispose();
}
}
+ return 0;
}
}
diff --git a/oak-run/src/main/java/org/apache/jackrabbit/oak/run/UpgradeCommand.java b/oak-run/src/main/java/org/apache/jackrabbit/oak/run/UpgradeCommand.java
index caa5242713..6310b39083 100644
--- a/oak-run/src/main/java/org/apache/jackrabbit/oak/run/UpgradeCommand.java
+++ b/oak-run/src/main/java/org/apache/jackrabbit/oak/run/UpgradeCommand.java
@@ -22,8 +22,9 @@ import org.apache.jackrabbit.oak.run.commons.Command;
class UpgradeCommand implements Command {
@Override
- public void execute(String... args) throws Exception {
+ public int execute(String... args) throws Exception {
System.out.println("This command was moved to the oak-upgrade module");
+ return 1;
}
}