diff options
author | Robert Newson <rnewson@apache.org> | 2023-04-02 17:17:21 +0100 |
---|---|---|
committer | Robert Newson <rnewson@apache.org> | 2023-04-02 17:17:36 +0100 |
commit | fdfc4052539101e27e72fc85d0586d3783bf1208 (patch) | |
tree | cc321a842114b17bfcdaa76361fd02d80f4e24ea | |
parent | 23dc895b1353d85bed1432cb344167beff83f5c7 (diff) | |
download | couchdb-fdfc4052539101e27e72fc85d0586d3783bf1208.tar.gz |
admin task to close all indexes
-rw-r--r-- | nouveau/server/src/main/java/org/apache/couchdb/nouveau/NouveauApplication.java | 4 | ||||
-rw-r--r-- | nouveau/server/src/main/java/org/apache/couchdb/nouveau/tasks/CloseAllIndexesTask.java | 38 |
2 files changed, 42 insertions, 0 deletions
diff --git a/nouveau/server/src/main/java/org/apache/couchdb/nouveau/NouveauApplication.java b/nouveau/server/src/main/java/org/apache/couchdb/nouveau/NouveauApplication.java index 01465f4d8..82bbbdc7c 100644 --- a/nouveau/server/src/main/java/org/apache/couchdb/nouveau/NouveauApplication.java +++ b/nouveau/server/src/main/java/org/apache/couchdb/nouveau/NouveauApplication.java @@ -20,6 +20,7 @@ import java.util.ServiceLoader; import org.apache.couchdb.nouveau.core.IndexManager; import org.apache.couchdb.nouveau.core.UpdatesOutOfOrderExceptionMapper; +import org.apache.couchdb.nouveau.tasks.CloseAllIndexesTask; import io.dropwizard.core.Application; import io.dropwizard.core.setup.Bootstrap; @@ -75,6 +76,9 @@ public class NouveauApplication extends Application<NouveauApplicationConfigurat indexManager.setObjectMapper(environment.getObjectMapper()); indexManager.setRootDir(configuration.getRootDir()); environment.lifecycle().manage(indexManager); + + // configure tasks + environment.admin().addTask(new CloseAllIndexesTask(indexManager)); } } diff --git a/nouveau/server/src/main/java/org/apache/couchdb/nouveau/tasks/CloseAllIndexesTask.java b/nouveau/server/src/main/java/org/apache/couchdb/nouveau/tasks/CloseAllIndexesTask.java new file mode 100644 index 000000000..fe9bd155f --- /dev/null +++ b/nouveau/server/src/main/java/org/apache/couchdb/nouveau/tasks/CloseAllIndexesTask.java @@ -0,0 +1,38 @@ +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package org.apache.couchdb.nouveau.tasks; + +import java.io.PrintWriter; +import java.util.List; +import java.util.Map; + +import org.apache.couchdb.nouveau.core.IndexManager; + +import io.dropwizard.servlets.tasks.Task; + +public class CloseAllIndexesTask extends Task { + + private final IndexManager indexManager; + + public CloseAllIndexesTask(final IndexManager indexManager) { + super("close_all_indexes"); + this.indexManager = indexManager; + } + + @Override + public void execute(Map<String, List<String>> parameters, PrintWriter output) throws Exception { + indexManager.stop(); + } + +} |