Author: chetanm
Date: Thu May 18 12:01:24 2017
New Revision: 1795506
URL: http://svn.apache.org/viewvc?rev=1795506&view=rev
Log:
OAK-6236 - Improve the help output from oak-run commands
Added:
jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/run/cli/OakHelpFormatter.java
(with props)
Modified:
jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/index/IndexCommand.java
jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/index/IndexOptions.java
jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/run/AvailableModes.java
jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/run/cli/BlobStoreOptions.java
jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/run/cli/CommonOptions.java
jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/run/cli/DocumentNodeStoreOptions.java
jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/run/cli/Options.java
jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/run/cli/OptionsBean.java
jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/run/cli/RDBStoreOptions.java
Modified:
jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/index/IndexCommand.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/index/IndexCommand.java?rev=1795506&r1=1795505&r2=1795506&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/index/IndexCommand.java
(original)
+++
jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/index/IndexCommand.java
Thu May 18 12:01:24 2017
@@ -26,16 +26,20 @@ import java.nio.file.Path;
import joptsimple.OptionParser;
import org.apache.felix.inventory.Format;
import org.apache.jackrabbit.oak.console.NodeStoreFixture;
+import org.apache.jackrabbit.oak.run.cli.CommonOptions;
import org.apache.jackrabbit.oak.run.cli.NodeStoreFixtureProvider;
import org.apache.jackrabbit.oak.run.cli.Options;
import org.apache.jackrabbit.oak.run.commons.Command;
import org.apache.jackrabbit.oak.spi.state.NodeStore;
public class IndexCommand implements Command {
-
+ public static final String NAME = "index";
public static final String INDEX_DEFINITIONS_JSON =
"index-definitions.json";
public static final String INDEX_INFO_TXT = "index-info.txt";
public static final String INDEX_CONSISTENCY_CHECK_TXT =
"index-consistency-check-report.txt";
+
+ private final String summary = "Provides index management related
operations";
+
private File info;
private File definitions;
private File consistencyCheckReport;
@@ -45,8 +49,10 @@ public class IndexCommand implements Com
OptionParser parser = new OptionParser();
Options opts = new Options();
+ opts.setCommandName(NAME);
+ opts.setSummary(summary);
+ opts.setConnectionString(CommonOptions.DEFAULT_CONNECTION_STRING);
opts.registerOptionsFactory(IndexOptions.FACTORY);
-
opts.parseAndConfigure(parser, args);
IndexOptions indexOpts = opts.getOptionBean(IndexOptions.class);
Modified:
jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/index/IndexOptions.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/index/IndexOptions.java?rev=1795506&r1=1795505&r2=1795506&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/index/IndexOptions.java
(original)
+++
jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/index/IndexOptions.java
Thu May 18 12:01:24 2017
@@ -23,6 +23,7 @@ import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Collections;
+import java.util.HashSet;
import java.util.List;
import java.util.Set;
@@ -54,6 +55,7 @@ public class IndexOptions implements Opt
private OptionSet options;
private final Set<OptionSpec> actionOpts;
private final OptionSpec<String> indexPaths;
+ private final Set<String> operationNames;
public IndexOptions(OptionParser parser){
@@ -76,6 +78,7 @@ public class IndexOptions implements Opt
//Set of options which define action
actionOpts = ImmutableSet.of(stats, definitions, consistencyCheck,
dumpIndex);
+ operationNames = collectionOperationNames(actionOpts);
}
@Override
@@ -83,6 +86,27 @@ public class IndexOptions implements Opt
this.options = options;
}
+ @Override
+ public String title() {
+ return "";
+ }
+
+ @Override
+ public String description() {
+ return "Index command supports following operations. Most operations
are read only. For performing them " +
+ "BloStore related options must be provided as they would
access the binaries stored there ";
+ }
+
+ @Override
+ public int order() {
+ return 50;
+ }
+
+ @Override
+ public Set<String> operationNames() {
+ return operationNames;
+ }
+
public File getWorkDir() throws IOException {
File workDir = workDirOpt.value(options);
FileUtils.forceMkdir(workDir);
@@ -136,4 +160,12 @@ public class IndexOptions implements Opt
}
return new ArrayList<>(paths);
}
+
+ private static Set<String> collectionOperationNames(Set<OptionSpec>
actionOpts){
+ Set<String> result = new HashSet<>();
+ for (OptionSpec spec : actionOpts){
+ result.addAll(spec.options());
+ }
+ return result;
+ }
}
Modified:
jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/run/AvailableModes.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/run/AvailableModes.java?rev=1795506&r1=1795505&r2=1795506&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/run/AvailableModes.java
(original)
+++
jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/run/AvailableModes.java
Thu May 18 12:01:24 2017
@@ -53,6 +53,6 @@ public final class AvailableModes {
.put("tika", new TikaCommand())
.put("upgrade", new UpgradeCommand())
.put("unlockupgrade", new UnlockUpgradeCommand())
- .put("index", new IndexCommand())
+ .put(IndexCommand.NAME, new IndexCommand())
.build());
}
Modified:
jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/run/cli/BlobStoreOptions.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/run/cli/BlobStoreOptions.java?rev=1795506&r1=1795505&r2=1795506&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/run/cli/BlobStoreOptions.java
(original)
+++
jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/run/cli/BlobStoreOptions.java
Thu May 18 12:01:24 2017
@@ -19,6 +19,9 @@
package org.apache.jackrabbit.oak.run.cli;
+import java.util.Collections;
+import java.util.Set;
+
import joptsimple.OptionParser;
import joptsimple.OptionSet;
import joptsimple.OptionSpec;
@@ -49,6 +52,26 @@ public class BlobStoreOptions implements
this.options = options;
}
+ @Override
+ public String title() {
+ return "BlobStore Options";
+ }
+
+ @Override
+ public String description() {
+ return "Options related to configuring a BlobStore";
+ }
+
+ @Override
+ public int order() {
+ return 10;
+ }
+
+ @Override
+ public Set<String> operationNames() {
+ return Collections.emptySet();
+ }
+
public String getFDSConfigPath(){
return fdsOption.value(options);
}
Modified:
jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/run/cli/CommonOptions.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/run/cli/CommonOptions.java?rev=1795506&r1=1795505&r2=1795506&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/run/cli/CommonOptions.java
(original)
+++
jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/run/cli/CommonOptions.java
Thu May 18 12:01:24 2017
@@ -19,7 +19,9 @@
package org.apache.jackrabbit.oak.run.cli;
+import java.util.Collections;
import java.util.List;
+import java.util.Set;
import joptsimple.OptionParser;
import joptsimple.OptionSet;
@@ -28,6 +30,7 @@ import joptsimple.OptionSpec;
import static java.util.Arrays.asList;
public class CommonOptions implements OptionsBean {
+ public static final String DEFAULT_CONNECTION_STRING =
"{<path-to-repository> | <mongodb-uri>} | <rdb-uri>}";
private final OptionSpec<Void> help;
private final OptionSpec<Void> readWriteOption;
private final OptionSpec<String> nonOption;
@@ -36,7 +39,7 @@ public class CommonOptions implements Op
public CommonOptions(OptionParser parser){
help = parser.acceptsAll(asList("h", "?", "help"), "show
help").forHelp();
readWriteOption = parser.accepts("read-write", "connect to repository
in read-write mode");
- nonOption = parser.nonOptions("{<path-to-repository> |
<mongodb-uri>}");
+ nonOption = parser.nonOptions(DEFAULT_CONNECTION_STRING);
}
@Override
@@ -72,4 +75,24 @@ public class CommonOptions implements Op
List<String> nonOptions = nonOption.values(options);
return nonOptions.size() > 0 ? nonOptions.get(0) : "";
}
+
+ @Override
+ public String title() {
+ return null;
+ }
+
+ @Override
+ public String description() {
+ return null;
+ }
+
+ @Override
+ public int order() {
+ return 0;
+ }
+
+ @Override
+ public Set<String> operationNames() {
+ return Collections.emptySet();
+ }
}
Modified:
jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/run/cli/DocumentNodeStoreOptions.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/run/cli/DocumentNodeStoreOptions.java?rev=1795506&r1=1795505&r2=1795506&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/run/cli/DocumentNodeStoreOptions.java
(original)
+++
jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/run/cli/DocumentNodeStoreOptions.java
Thu May 18 12:01:24 2017
@@ -19,6 +19,9 @@
package org.apache.jackrabbit.oak.run.cli;
+import java.util.Collections;
+import java.util.Set;
+
import joptsimple.OptionParser;
import joptsimple.OptionSet;
import joptsimple.OptionSpec;
@@ -44,6 +47,26 @@ public class DocumentNodeStoreOptions im
this.options = options;
}
+ @Override
+ public String title() {
+ return "DocumentNodeStore Options";
+ }
+
+ @Override
+ public String description() {
+ return "Options related to constructing DocumentNodeStore";
+ }
+
+ @Override
+ public int order() {
+ return 20;
+ }
+
+ @Override
+ public Set<String> operationNames() {
+ return Collections.emptySet();
+ }
+
public int getClusterId(){
return clusterId.value(options);
}
Added:
jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/run/cli/OakHelpFormatter.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/run/cli/OakHelpFormatter.java?rev=1795506&view=auto
==============================================================================
---
jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/run/cli/OakHelpFormatter.java
(added)
+++
jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/run/cli/OakHelpFormatter.java
Thu May 18 12:01:24 2017
@@ -0,0 +1,228 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you 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.jackrabbit.oak.run.cli;
+
+import java.lang.reflect.Field;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
+import javax.annotation.Nullable;
+
+import com.google.common.collect.Lists;
+import com.google.common.collect.Maps;
+import com.google.common.primitives.Ints;
+import joptsimple.BuiltinHelpFormatter;
+import joptsimple.HelpFormatter;
+import joptsimple.OptionDescriptor;
+import joptsimple.OptionSpec;
+import joptsimple.internal.Strings;
+
+import static com.google.common.base.StandardSystemProperty.LINE_SEPARATOR;
+
+public class OakHelpFormatter implements HelpFormatter {
+ private static final int COL_WIDTH = 120;
+ private final List<OptionsBean> optionBeans;
+ private final String commandName;
+ private final String connectionString;
+ private final String summary;
+
+ public OakHelpFormatter(Iterable<OptionsBean> optionBeans, @Nullable
String commandName,
+ @Nullable String summary,@Nullable String
connectionString) {
+ this.optionBeans = Lists.newArrayList(optionBeans);
+ this.commandName = commandName;
+ this.summary = summary;
+ this.connectionString = connectionString;
+ }
+
+ @Override
+ public String format(Map<String, ? extends OptionDescriptor> options) {
+ Map<String, ? extends OptionDescriptor> clonedOptions =
Maps.newHashMap(options);
+ List<OptionCategory> optionCategories = categorise(clonedOptions);
+ //TODO Take care of left over options
+
+ StringBuilder builder = new StringBuilder();
+ builder.append(new
MainSectionFormatter().format(options)).append(LINE_SEPARATOR.value());
+
+ for (OptionCategory c : optionCategories){
+ builder.append(c.format()).append(LINE_SEPARATOR.value());
+ }
+
+ return builder.toString();
+ }
+
+ private List<OptionCategory> categorise(Map<String, ? extends
OptionDescriptor> options) {
+ List<OptionCategory> result = new ArrayList<>();
+
+ for (OptionsBean bean : optionBeans) {
+ Map<String, OptionDescriptor> optsForThisBean = new HashMap<>();
+ Map<String, OptionDescriptor> operationsForThisBean = new
HashMap<>();
+ for (String name : getOptionNames(bean)) {
+ OptionDescriptor desc = options.remove(name);
+ if (desc != null) {
+ if (bean.operationNames().contains(name)){
+ operationsForThisBean.put(name, desc);
+ } else {
+ optsForThisBean.put(name, desc);
+ }
+ }
+ }
+ result.add(new OptionCategory(bean, optsForThisBean,
operationsForThisBean));
+ }
+ Collections.sort(result, Collections.reverseOrder());
+ return result;
+ }
+
+ private static int getColWidth() {
+ return COL_WIDTH;
+ }
+
+ private static Set<String> getOptionNames(OptionsBean bean) {
+ Set<String> names = new HashSet<>();
+ try {
+ for (Field field : bean.getClass().getDeclaredFields()) {
+ if (OptionSpec.class.isAssignableFrom(field.getType())) {
+ field.setAccessible(true);
+ OptionSpec spec = (OptionSpec) field.get(bean);
+ names.addAll(spec.options());
+ }
+ }
+ } catch (Exception e) {
+ throw new RuntimeException(e);
+ }
+ return names;
+ }
+
+
+ private static class OptionCategory implements Comparable<OptionCategory> {
+ final OptionsBean bean;
+ final Map<String, ? extends OptionDescriptor> options;
+ final Map<String, ? extends OptionDescriptor> operations;
+
+ public OptionCategory(OptionsBean bean, Map<String, ? extends
OptionDescriptor> options,
+ Map<String, OptionDescriptor> operations) {
+ this.bean = bean;
+ this.options = options;
+ this.operations = operations;
+ }
+
+ public String format() {
+ StringBuilder builder = new StringBuilder();
+ builder.append(new CategoryFormatter(bean).format(options));
+ if (!operations.isEmpty()) {
+ builder.append(LINE_SEPARATOR.value());
+ builder.append(new OperationsFormatter().format(operations));
+ }
+ return builder.toString();
+ }
+
+ @Override
+ public int compareTo(OptionCategory that) {
+ return Ints.compare(this.bean.order(), that.bean.order());
+ }
+ }
+
+ private static class CategoryFormatter extends BuiltinHelpFormatter {
+ final OptionsBean bean;
+
+ public CategoryFormatter(OptionsBean bean) {
+ super(getColWidth(), 2);
+ this.bean = bean;
+ }
+
+ @Override
+ protected void addRows(Collection<? extends OptionDescriptor> options)
{
+ addHeader();
+ super.addRows(options);
+ }
+
+ @Override
+ protected void addNonOptionsDescription(Collection<? extends
OptionDescriptor> options) {
+ //Noop call as category options do not specify non options
+ }
+
+ private void addHeader() {
+ String title = bean.title();
+ if (title != null) {
+ addNonOptionRow(title);
+ addNonOptionRow(Strings.repeat('=', title.length()));
+ }
+
+ if (bean.description() != null) {
+ addNonOptionRow(bean.description());
+ }
+ }
+ }
+
+ /**
+ * Used for rending options which are "operations"
+ */
+ private static class OperationsFormatter extends BuiltinHelpFormatter {
+
+ public static final String OPERATIONS = "Operations";
+
+ public OperationsFormatter() {
+ super(getColWidth(), 2);
+ }
+
+ @Override
+ protected void addHeaders(Collection<? extends OptionDescriptor>
options) {
+ addOptionRow(OPERATIONS, message( "description.header" ) );
+ addOptionRow( Strings.repeat('-', OPERATIONS.length()), message(
"description.divider" ) );
+ }
+
+ @Override
+ protected void addNonOptionsDescription(Collection<? extends
OptionDescriptor> options) {
+ //Noop call as category options do not specify non options
+ }
+ }
+
+ /**
+ * Formatter for the first section of the help. It dumps the connection
string, command
+ * and summary only. No options are handled by this formatter
+ */
+ private class MainSectionFormatter extends BuiltinHelpFormatter {
+
+ public MainSectionFormatter(){
+ super(getColWidth(), 2);
+ }
+
+ @Override
+ protected void addRows(Collection<? extends OptionDescriptor> options)
{
+ String firstLine = commandName != null ? commandName + " " : "";
+ if (connectionString != null) {
+ firstLine += connectionString;
+ }
+
+ addNonOptionRow(firstLine);
+
+ if (summary != null) {
+ addNonOptionRow(summary);
+ }
+
+ fitRowsToWidth();
+ }
+ }
+}
Propchange:
jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/run/cli/OakHelpFormatter.java
------------------------------------------------------------------------------
svn:eol-style = native
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=1795506&r1=1795505&r2=1795506&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
Thu May 18 12:01:24 2017
@@ -27,7 +27,6 @@ import com.google.common.collect.ClassTo
import com.google.common.collect.Iterables;
import com.google.common.collect.MutableClassToInstanceMap;
import com.google.common.collect.Sets;
-import joptsimple.BuiltinHelpFormatter;
import joptsimple.OptionParser;
import joptsimple.OptionSet;
@@ -40,6 +39,9 @@ public class Options {
private final ClassToInstanceMap<OptionsBean> optionBeans =
MutableClassToInstanceMap.create();
private OptionSet optionSet;
private boolean disableSystemExit;
+ private String commandName;
+ private String summary;
+ private String connectionString;
public Options(){
this.oakRunOptions = EnumSet.allOf(OptionBeans.class);
@@ -67,7 +69,7 @@ public class Options {
OptionsBean bean = o.newInstance(parser);
optionBeans.put(bean.getClass(), bean);
}
- parser.formatHelpWith(new BuiltinHelpFormatter(120, 2));
+ parser.formatHelpWith(new OakHelpFormatter(optionBeans.values(),
commandName, summary, connectionString));
optionSet = parser.parse(args);
configure(optionSet);
checkForHelp(parser);
@@ -93,6 +95,26 @@ public class Options {
beanFactories.add(factory);
}
+ public Options withDisableSystemExit() {
+ this.disableSystemExit = true;
+ return this;
+ }
+
+ public Options setCommandName(String commandName) {
+ this.commandName = commandName;
+ return this;
+ }
+
+ public Options setSummary(String summary) {
+ this.summary = summary;
+ return this;
+ }
+
+ public Options setConnectionString(String connectionString) {
+ this.connectionString = connectionString;
+ return this;
+ }
+
public CommonOptions getCommonOpts(){
return getOptionBean(CommonOptions.class);
}
@@ -125,9 +147,4 @@ public class Options {
System.exit(code);
}
}
-
- public Options withDisableSystemExit() {
- this.disableSystemExit = true;
- return this;
- }
}
Modified:
jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/run/cli/OptionsBean.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/run/cli/OptionsBean.java?rev=1795506&r1=1795505&r2=1795506&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/run/cli/OptionsBean.java
(original)
+++
jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/run/cli/OptionsBean.java
Thu May 18 12:01:24 2017
@@ -19,9 +19,32 @@
package org.apache.jackrabbit.oak.run.cli;
+import java.util.Set;
+
import joptsimple.OptionSet;
public interface OptionsBean {
void configure(OptionSet options);
+
+ /**
+ * Title string for this set of options
+ */
+ String title();
+
+ /**
+ * Description string for this set of options
+ */
+ String description();
+
+ /**
+ * Used to sort the help output. Help for OptionsBean in descending order
i.e.
+ * bean having highest order would be rendered first
+ */
+ int order();
+
+ /**
+ * Option names which are actually performing operation
+ */
+ Set<String> operationNames();
}
Modified:
jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/run/cli/RDBStoreOptions.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/run/cli/RDBStoreOptions.java?rev=1795506&r1=1795505&r2=1795506&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/run/cli/RDBStoreOptions.java
(original)
+++
jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/run/cli/RDBStoreOptions.java
Thu May 18 12:01:24 2017
@@ -19,6 +19,9 @@
package org.apache.jackrabbit.oak.run.cli;
+import java.util.Collections;
+import java.util.Set;
+
import joptsimple.OptionParser;
import joptsimple.OptionSet;
import joptsimple.OptionSpec;
@@ -38,6 +41,26 @@ public class RDBStoreOptions implements
this.options = options;
}
+ @Override
+ public String title() {
+ return "RDBDocumentStore Options";
+ }
+
+ @Override
+ public int order() {
+ return 15;
+ }
+
+ @Override
+ public String description() {
+ return "Options related to configuring RDBDocumentStore for
DocumentNodeStore based setups";
+ }
+
+ @Override
+ public Set<String> operationNames() {
+ return Collections.emptySet();
+ }
+
public String getUser(){
return rdbjdbcuser.value(options);
}