Author: mreutegg
Date: Tue Aug 6 13:04:53 2019
New Revision: 1864518
URL: http://svn.apache.org/viewvc?rev=1864518&view=rev
Log:
OAK-8521: Add shutdown hook for oak-run commands
Slightly modified patch provided by Vinod Holani
Modified:
jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/plugins/document/util/MapDBMapFactory.java
jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/run/CheckpointsCommand.java
jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/run/ClusterNodesCommand.java
jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/run/DataStoreCheckCommand.java
jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/run/DataStoreCommand.java
jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/run/GarbageCommand.java
jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/run/RecoveryCommand.java
jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/run/RepairCommand.java
jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/run/ResetClusterIdCommand.java
jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/run/Utils.java
Modified:
jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/plugins/document/util/MapDBMapFactory.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/plugins/document/util/MapDBMapFactory.java?rev=1864518&r1=1864517&r2=1864518&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/plugins/document/util/MapDBMapFactory.java
(original)
+++
jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/plugins/document/util/MapDBMapFactory.java
Tue Aug 6 13:04:53 2019
@@ -43,7 +43,6 @@ public class MapDBMapFactory extends Map
public MapDBMapFactory() {
this.db = DBMaker.newTempFileDB()
.deleteFilesAfterClose()
- .closeOnJvmShutdown()
.transactionDisable()
.asyncWriteEnable()
.make();
Modified:
jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/run/CheckpointsCommand.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/run/CheckpointsCommand.java?rev=1864518&r1=1864517&r2=1864518&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/run/CheckpointsCommand.java
(original)
+++
jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/run/CheckpointsCommand.java
Tue Aug 6 13:04:53 2019
@@ -50,7 +50,7 @@ class CheckpointsCommand implements Comm
boolean success = false;
Checkpoints cps;
- Closer closer = Closer.create();
+ Closer closer = Utils.createCloserWithShutdownHook();
try {
String op = "list";
if (options.nonOptionArguments().size() >= 2) {
Modified:
jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/run/ClusterNodesCommand.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/run/ClusterNodesCommand.java?rev=1864518&r1=1864517&r2=1864518&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/run/ClusterNodesCommand.java
(original)
+++
jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/run/ClusterNodesCommand.java
Tue Aug 6 13:04:53 2019
@@ -42,7 +42,7 @@ class ClusterNodesCommand implements Com
@Override
public void execute(String... args) throws Exception {
- Closer closer = Closer.create();
+ Closer closer = Utils.createCloserWithShutdownHook();
try {
String h = "clusternodes mongodb://host:port/database|jdbc:...";
ClusterNodesOptions options = new
ClusterNodesOptions(h).parse(args);
Modified:
jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/run/DataStoreCheckCommand.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/run/DataStoreCheckCommand.java?rev=1864518&r1=1864517&r2=1864518&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/run/DataStoreCheckCommand.java
(original)
+++
jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/run/DataStoreCheckCommand.java
Tue Aug 6 13:04:53 2019
@@ -119,7 +119,7 @@ public class DataStoreCheckCommand imple
+ "[--s3ds <s3ds_config>|--fds <fds_config>|--azureblobds
<azureblobds_config>|--nods]"
+ " [--dump <path>] [--repoHome <repo_home>] [--track]
[--verbose]";
- try (Closer closer = Closer.create()) {
+ try (Closer closer = Utils.createCloserWithShutdownHook()) {
// Options for operations requested
OptionSpecBuilder idOp = parser.accepts("id", "Get ids");
OptionSpecBuilder refOp = parser.accepts("ref", "Get references");
Modified:
jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/run/DataStoreCommand.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/run/DataStoreCommand.java?rev=1864518&r1=1864517&r2=1864518&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/run/DataStoreCommand.java
(original)
+++
jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/run/DataStoreCommand.java
Tue Aug 6 13:04:53 2019
@@ -108,7 +108,7 @@ public class DataStoreCommand implements
logCliArgs(args);
boolean success = false;
- try (Closer closer = Closer.create()) {
+ try (Closer closer = Utils.createCloserWithShutdownHook()) {
opts.setTempDirectory(dataStoreOpts.getWorkDir().getAbsolutePath());
NodeStoreFixture fixture = NodeStoreFixtureProvider.create(opts);
closer.register(fixture);
@@ -152,7 +152,7 @@ public class DataStoreCommand implements
private void execute(NodeStoreFixture fixture, DataStoreOptions
dataStoreOpts, Options opts, Closer closer)
throws Exception {
- try (Closer metricsCloser = Closer.create()) {
+ try (Closer metricsCloser = Utils.createCloserWithShutdownHook()) {
MetricsExporterFixture metricsExporterFixture =
MetricsExporterFixtureProvider.create(dataStoreOpts,
fixture.getWhiteboard());
metricsCloser.register(metricsExporterFixture);
Modified:
jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/run/GarbageCommand.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/run/GarbageCommand.java?rev=1864518&r1=1864517&r2=1864518&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/run/GarbageCommand.java
(original)
+++
jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/run/GarbageCommand.java
Tue Aug 6 13:04:53 2019
@@ -27,7 +27,7 @@ class GarbageCommand implements Command
@Override
public void execute(String... args) throws Exception {
- Closer closer = Closer.create();
+ Closer closer = Utils.createCloserWithShutdownHook();
String h = "garbage mongodb://host:port/database | jdbc:...";
try {
NodeStore store = Utils.bootstrapNodeStore(args, closer, h);
Modified:
jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/run/RecoveryCommand.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/run/RecoveryCommand.java?rev=1864518&r1=1864517&r2=1864518&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/run/RecoveryCommand.java
(original)
+++
jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/run/RecoveryCommand.java
Tue Aug 6 13:04:53 2019
@@ -44,7 +44,7 @@ class RecoveryCommand implements Command
@Override
public void execute(String... args) throws Exception {
MapFactory.setInstance(new MapDBMapFactory());
- Closer closer = Closer.create();
+ Closer closer = Utils.createCloserWithShutdownHook();
String h = "recovery mongodb://host:port/database|jdbc:... { dryRun }";
try {
Modified:
jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/run/RepairCommand.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/run/RepairCommand.java?rev=1864518&r1=1864517&r2=1864518&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/run/RepairCommand.java
(original)
+++
jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/run/RepairCommand.java
Tue Aug 6 13:04:53 2019
@@ -28,7 +28,7 @@ class RepairCommand implements Command {
@Override
public void execute(String... args) throws Exception {
- Closer closer = Closer.create();
+ Closer closer = Utils.createCloserWithShutdownHook();
String h = "repair mongodb://host:port/database path";
try {
NodeStore store = Utils.bootstrapNodeStore(args, closer, h);
Modified:
jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/run/ResetClusterIdCommand.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/run/ResetClusterIdCommand.java?rev=1864518&r1=1864517&r2=1864518&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/run/ResetClusterIdCommand.java
(original)
+++
jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/run/ResetClusterIdCommand.java
Tue Aug 6 13:04:53 2019
@@ -76,7 +76,7 @@ class ResetClusterIdCommand implements C
String help = "resetclusterid {<path>|<mongo-uri>|<jdbc-uri>}";
Utils.NodeStoreOptions opts = new
Utils.NodeStoreOptions(help).parse(args);
- Closer closer = Closer.create();
+ Closer closer = Utils.createCloserWithShutdownHook();
try {
NodeStore store = Utils.bootstrapNodeStore(opts, closer);
deleteClusterId(store);
Modified:
jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/run/Utils.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/run/Utils.java?rev=1864518&r1=1864517&r2=1864518&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/run/Utils.java
(original)
+++
jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/run/Utils.java
Tue Aug 6 13:04:53 2019
@@ -341,6 +341,19 @@ class Utils {
};
}
+ static Closer createCloserWithShutdownHook() {
+ Closer closer = Closer.create();
+ Runtime.getRuntime().addShutdownHook(new Thread() {
+ public void run() {
+ try {
+ closer.close();
+ } catch (IOException e) {
+ e.printStackTrace(System.err);
+ }
+ }
+ });
+ return closer;
+ }
private static Properties loadAndTransformProps(String cfgPath) throws
IOException {
Dictionary dict = ConfigurationHandler.read(new
FileInputStream(cfgPath));