Skip to content

Commit 018c662

Browse files
committed
Allow adding multiple examples for config help
1 parent 324535a commit 018c662

File tree

3 files changed

+27
-21
lines changed

3 files changed

+27
-21
lines changed

java/src/org/openqa/selenium/grid/config/ConfigFlags.java

Lines changed: 20 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@
2929

3030
import java.io.PrintStream;
3131
import java.nio.file.Path;
32+
import java.util.Arrays;
3233
import java.util.List;
3334
import java.util.Map;
3435
import java.util.Set;
@@ -109,6 +110,8 @@ public boolean dumpConfigHelp(Config config, Set<Role> currentRoles, PrintStream
109110

110111
StringBuilder demoToml = new StringBuilder();
111112
demoToml.append("Configuration help for Toml config file").append("\n\n");
113+
demoToml.append("In case of parsing errors, validate the config using https://www.toml-lint.com/").append("\n\n");
114+
demoToml.append("Refer https://toml.io/en/ for TOML usage guidance").append("\n\n");
112115
allOptions.forEach((section, options) -> {
113116
demoToml.append("[").append(section).append("]\n");
114117
options.stream().filter(option -> !option.hidden).forEach(option -> {
@@ -119,22 +122,24 @@ public boolean dumpConfigHelp(Config config, Set<Role> currentRoles, PrintStream
119122
if (!option.defaultValue.isEmpty()) {
120123
demoToml.append("# Default: ").append(option.defaultValue).append("\n");
121124
}
122-
demoToml.append("# Example: ").append("\n");
123-
if (option.prefixed) {
124-
demoToml.append("[[")
125-
.append(section)
126-
.append(".")
127-
.append(option.optionName)
128-
.append("]]")
129-
.append(option.example(config))
130-
.append("\n\n");
131-
} else {
132-
demoToml.append(option.optionName)
133-
.append(" = ")
134-
.append(option.example(config)).append("\n\n");
135-
}
125+
Arrays.stream(option.example()).forEach(example -> {
126+
demoToml.append("# Example: ").append("\n");
127+
if (option.prefixed) {
128+
demoToml.append("[[")
129+
.append(section)
130+
.append(".")
131+
.append(option.optionName)
132+
.append("]]")
133+
.append(option.example(config, example))
134+
.append("\n\n");
135+
} else {
136+
demoToml.append(option.optionName)
137+
.append(" = ")
138+
.append(option.example(config, example)).append("\n\n");
139+
}
140+
});
141+
demoToml.append("\n");
136142
});
137-
demoToml.append("\n");
138143
});
139144

140145
dumpTo.print(demoToml);

java/src/org/openqa/selenium/grid/config/ConfigValue.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,5 +36,5 @@
3636

3737
boolean prefixed() default false;
3838

39-
String example();
39+
String[] example();
4040
}

java/src/org/openqa/selenium/grid/config/DescribedOption.java

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@
3030
import java.lang.reflect.Field;
3131
import java.lang.reflect.ParameterizedType;
3232
import java.lang.reflect.Type;
33+
import java.util.Arrays;
3334
import java.util.Collection;
3435
import java.util.HashSet;
3536
import java.util.List;
@@ -50,7 +51,7 @@ public class DescribedOption implements Comparable<DescribedOption> {
5051
public final String optionName;
5152
public final String description;
5253
public final String type;
53-
public final String example;
54+
public final String[] example;
5455
public final String defaultValue;
5556
public final boolean prefixed;
5657
public final boolean repeats;
@@ -133,11 +134,11 @@ public boolean requiresTomlQuoting() {
133134
return quotable;
134135
}
135136

136-
public String example() {
137+
public String[] example() {
137138
return example;
138139
}
139140

140-
public String example(Config config) {
141+
public String example(Config config, String example) {
141142
Optional<List<String>> allOptions = config.getAll(section, optionName);
142143
if (allOptions.isPresent() && !allOptions.get().isEmpty()) {
143144
if (repeats) {
@@ -179,7 +180,7 @@ public boolean equals(Object o) {
179180
Objects.equals(description, that.description) &&
180181
Objects.equals(defaultValue, that.defaultValue) &&
181182
Objects.equals(type, that.type) &&
182-
Objects.equals(example, that.example) &&
183+
Arrays.equals(example, that.example) &&
183184
Objects.equals(flags, that.flags);
184185
}
185186

@@ -189,7 +190,7 @@ public int hashCode() {
189190
optionName,
190191
description,
191192
type,
192-
example,
193+
Arrays.hashCode(example),
193194
repeats,
194195
quotable,
195196
flags,

0 commit comments

Comments
 (0)